==== imp/makep3_gen.txt ====
offer p3gens
parm nocheck
edit perq3gen02s,p3gens
a/%incl/d1i<itrimp_hostcodes>
a'd1i<ercs01:ebits_ecodes5>
a'd1i<tripcnsts>
a'd1i<itrimp_tform2s>
a'd1i<ercs01:ebits_especs2>
e
imp p3gens,.null
offer p3gens,ercs01

==== imp/opt04s.txt ====
!
! 25Sep90   Correction to base adjust array in ctop which was wrong
!
!
! Warning this module has the revised triples spec.
!
! In first attempt at Triple Imp considerable use was made of constant operands
! to pass information from Pass2 to GEN. Although for specialised operations like
! passing Labels this still applies, this adhocery has caused problems with arrays
! and pointers particularly in mapped records. The operands for four triples
! have thus been redefined in a more standard way.
!
! GETPTR    X1 is now (ptype of passed)<<16! DIMENSION
!           Opnd2 is either a 32 bit const with the size (ACC) as value or
!           the ptr or arrayhead as normal operand.
!
! VMY       X1 is now dim<<28!maxdim<<24!array name(where known)
!           Opnd2 is either a 32 bit const with DV offset into const area or
!           the arrayhead as a standard operand
!
! AINDX     X1 is ELSIZE<<20 !spare

==== imp/makep3_p1.txt ====
edit poneb01s,p3p1s
i<itrimp_perq3poneas>
ta/%inc/
d1i<itrimp_hostcodes>
a'
d1i<itrimp_tform2s>
m/%constlonglongreal/
(a/r'/a16d/'/i/'/)154
e
imp p3p1s,.null
offer p3p1s,ercs01

==== imp/makep3_p2.txt ====
edit timp02s,p3p2s
i<itrimp_perq3ptwoas>
ta/%inc/
d1i<itrimp_hostcodes>
a'
d1i<tripcnsts>
a'
d1i<itrimp_tform2s>
e
imp p3p2s,.null
offer p3p2s,ercs01

==== imp/makep3_opt.txt ====
edit opt03s,p3pos
i<itrimp_perq3optas>
ta/%inc/
d1i<itrimp_hostcodes>
a'
d1i<itrimp_tform2s>
a'
d1i<tripcnsts>
e
imp p3pos,.null
offer p3pos,ercs01

==== imp/make88k_gen5.txt ====
parm nocheck
edit drsgen05s,dgens
a/%incl/d1i<itrimp_hostcodes>
a'd1i<ercs01:ebits_ecodes28>
a'd1i<tripcnsts>
a'd1i<itrimp_tform2s>
a'd1i<ercs01:ebits_especs5>
ta/host=/r6i/DRS/
e
imp dgens,.null
transfer dgens,castle(ercc07,pete)impdir/sources/d386p4s10.i,file

==== imp/make88k_p1.txt ====
edit poneb02s,m88p102s
i<itrimp_m88kponeas>
ta/%inc/
d1i<itrimp_hostcodes>
a'
d1i<itrimp_tform2s>
m/%constlonglongreal/
ta/host=/i/PERQ3
/d
1e
imp m88p102s,m88p1y
permit m88p102s

==== imp/make88k_p2.txt ====
edit timp06s,m88p206s
i<itrimp_m88kptwoas>
ta/%inc/
d1i<itrimp_hostcodes>
a'
d1i<tripcnsts>
a'
d1i<itrimp_tform2s>
ta/host=/i/PERQ3
/d1
e
imp m88p206s,y
permit m88p206s


==== imp/make88k_p3.txt ====
edit opt04s,m88p305s
i<itrimp_M88Koptas>
ta/%inc/
d1i<itrimp_hostcodes>
a'
d1i<itrimp_tform2s>
a'
d1i<tripcnsts>
e
imp m88p305s,.null
permit m88p305s

==== imp/make88k_p4.txt ====
parm nocheck
edit m88kp405s,m88p419s
a/%incl/d1i<itrimp_hostcodes>
a'd1i<ercs01:ebits_ecodes28>
a'd1i<tripcnsts>
a'd1i<itrimp_tform2s>
ta/host=/r6i/Perq3/
e
imp m88p419s,.null
permit m88p419s

==== imp/makeoptimp.txt ====
parm opt,maxdict,nolist
imp ercc07:itrimp_ibmponeas+ercc07:poneb02s,ip1ox,l0
imp ercc07:itrimp_ibmptwoas+timp03s,ip23ox,l1
imp ercc07:itrimp_ibmoptas+opt03s,iopt3ox,l2
imp cserv01s,cserv01ox,l4
imp ibmgen05s,igen5ox,l5
parm map
LINK
IP1oX
IP23oX
IOPT3oX
IGEN5oX
CSERV01oX
.END
P0Y
MODIFY P0Y
SATISFY REFS
.ALL
SATISFY DATA
.ALL
SUPPRESS

==== ercc04_emas-a ====
ftp> ls
200 PORT Command OK (129.215.16.14 129.75 (33099))
150 Data connection opened
-rw-------  41776 ercc08_ercc04 archive          8192 Sep 30  1991 bob
-rw-------  10608 ercc08_ercc04 archive         16384 Jun 23  1988 e3b
-rw-------  37396 ercc08_ercc04 archive        143360 Dec  1  1990 editl
-rw-------  10204 ercc08_ercc04 archive         86016 Jun 16  1988 edwin7
-rw-------   7216 ercc08_ercc04 archive        344064 Jun 16  1988 edwins2900
-rw-------  34988 ercc08_ercc04 archive         77824 Aug 25  1990 emas3specs
-r--------  16552 ercc08_ercc04 archive         77824 Jun 23  1988 emas3specs[1]
drwx------  17908 ercc08_ercc04 ercc08_ercc04         10 Aug 25  1990 ercc63
-rw-------  34360 ercc08_ercc04 archive         61440 Aug 25  1990 fonts
-rw-------  32608 ercc08_ercc04 archive          8192 Aug 25  1990 heaps
drwx------  46128 ercc08_ercc04 ercc08_ercc04          1 Sep 30  1991 imptoc
drwx------  41876 ercc08_ercc04 ercc08_ercc04         49 Jul  1  1992 kanji
-rw-------  37500 ercc08_ercc04 archive          8192 Dec  1  1990 lexicon
-rw-------  53180 ercc08_ercc04 archive        385024 Jul  1  1992 mail6l
-rw-------  52764 ercc08_ercc04 archive        368640 Jul  1  1992 mail7l
-rw-------   6092 ercc08_ercc04 archive         45056 May 19  1988 mail85
-rw-------   5988 ercc08_ercc04 archive        335872 May 19  1988 mail86
-rw-------   6196 ercc08_ercc04 archive        958464 May 19  1988 mail87

==== ercc04_emas-2900 ====
ftp> ls
200 PORT Command OK (129.215.16.14 129.155 (33179))
150 Data connection opened
-rw-------  12532 ercc08_ercc04 archive         36864 May 16  1983 a
-rw-------  29968 ercc08_ercc04 archive         20480 Jan 20  1981 acr5
-rw-------  29240 ercc08_ercc04 archive          8192 Feb 18  1981 acrs
-rw-------  25280 ercc08_ercc04 archive        315392 Jul 27  1981 agss
-r--------  23296 ercc08_ercc04 archive        315392 Sep  3  1981 agss[2]
-r--------  22028 ercc08_ercc04 archive        315392 Jan  6  1982 agss[1]
-rw-------  25908 ercc08_ercc04 archive         49152 Jul  1  1981 allsorts
-rw-------  26016 ercc08_ercc04 archive        135168 Jun 29  1981 allviewlogs
-r--------  24756 ercc08_ercc04 archive        167936 Aug 10  1981 allviewlogs[1]
-rw-------  28716 ercc08_ercc04 archive          8192 Mar 23  1981 autofile
-rw-------   5516 ercc08_ercc04 archive        249856 Mar  1  1985 b01conn
-rw-------   5408 ercc08_ercc04 archive        315392 Mar  1  1985 b02direct
-rw-------   5304 ercc08_ercc04 archive         81920 Mar  1  1985 b07ss
-rw-------  37196 ercc08_ercc04 archive         12288 Jun  3  1980 bad
-rw-------  16628 ercc08_ercc04 archive         24576 Oct 13  1982 bads
-rw-------  16524 ercc08_ercc04 archive         24576 Oct 13  1982 bady
-rw-------  32336 ercc08_ercc04 archive         12288 Oct 28  1980 bits
-rw-------  24652 ercc08_ercc04 archive         28672 Aug 10  1981 bobpd

==== ecmi01/robot52.txt ====
.pg 5.2 A practical example: CONSIGHT-1
The CONSIGHT-1 [6] system was developed by General Motors as a vision system
to permit some of their robots to cope with 2.5-D parts arriving at the
robot's work cell on a conveyor belt, at random intervals and in random
orientations. The essential ingredients are a linear array camera looking down
onto the conveyor belt, viewing a slice across the belt, and two light
projectors each projecting a plane of light. The two planes of light and the
viewing plane of the camera all intersect at the surface of the belt, in a
line across the belt. The side view of the arrangement therefore looks like
this: .sp 16 .br Normally, when there is nothing on the belt, the camera sees
the line of light caused by the two projectors. When an object approaches,
just before it reaches the 'viewing line', it obstructs one of the planes of
light but not both, so that the camera still sees a line of light straight
across the belt. When the object is crossing the 'viewing line', it prevents
both of the planes of light from reaching the surface of the belt, and so the
camera only sees part of a line of light across the belt. The dark portion of
the line is the width of the object there: 
.nf

     
     

==== ecmi01/robot53.txt ====
.pg 5.3 2-D grey level vision: the GM chip spotter
Silhouette vision, while simple, is not very useful. It requires reasonable
lighting, and the interior of the image of objects offers no information.
Grey level images, in which each pixel's value is a grey level typically in 
the range 0-15 or 0-255 rather than merely 0 or 1, carry vastly more 
information. Methods of processing such images are described in [5]; they are 
correspondingly more sophisticated than those for silhouettes. This section 
describes one practical application, the General Motors 'chip spotter'. It has 
various idiosyncratic features, but then most practical vision systems do!
.ti 4
This particular vision system was devised for the task of automatically 
inspecting integrated circuit chips mounted on a heat sink. The inspection has 
two purposes - the first is to detect chips with certain mechanical
manufacturing faults so that they can be rejected rapidly, the second is to 
find the orientation of the chip on the heat sink so that automatic test
equipment can be correctly lowered onto it. The chip and heat sink forms 
part of the high energy ignition system on all General Motors cars.
.nf

   
   

==== ecmi01/robot54.txt ====
.pg 5.4 3-D visual processing
Three dimensional perception would clearly be very useful to a robot - for 
instance, it would then be possible for it to tell whether parts were properly 
aligned with each other before trying to fit them together. There are 
essentially two ways of acquiring the range information on which to base 3-D 
vision. The first is by measuring the time of flight of some kind of wave, 
sound or light or radar, from a known transmitting point reflected to a known 
receiving point. Various problems make this unsuitable for robotics, 
unfortunately:
.nf
a) if the transmitted wave spreads it is hard to be sure where the reflection 
   is coming from; if it does not spread then it is necessary to scan the
   transmitted wave over the scene, and this takes time to do
b) sound travels at around 330 m/s in air. Awaiting the refelction from a n o
   object only 1.5m away wastes around 0.01 secs, so that the time needed to
   build an adequate image is uneconomically large
c) light and other elctromagnetic radiation travels at nearly 300,000,000 m/s
   in air. It would therefore be necessary to be able to measure a time
   difference of only 0.00000001 secs in order to be able to detect the re
   reflection, and considerably smaller times in order to be able to calculate
   the range with any accuracy. While this might be technologically feasible,

==== ecmi01/ecmu05_check.txt ====

check:-
recorded(Sentence,verb(Person,Number,Tense,

==== ecmi01/oldai2_findall.txt ====
findall(X,P,L) :-
         asserta(found([])),
         call(P),
         rec(X),
         fail.
findall(X,P,L) :-
         retract(found(L)),!.

rec(X) :-
         retract(found(L)),!,
         append(L,[X],L1),
         asserta(found(L1)).

append([],X,X).
append([X|L1],L2,[X|L3]) :- append(L1,L2,L3).

==== ecmi01/oldai2_queens.txt ====
/* NON-ATTACKING QUEENS.
   Peter Ross 24 Nov 81.

   This generates solutions to the problem of placing N queens on an NxN
   board so that none attacks any other. To use, call queens(N) and it
   will print out a board with queens represented by 'Q'.
   Note: no solutions for N=2,3.
         speed of solution drops rapidly as you increase N - N=8 may
         cause you a ten-minute wait!

   Meta-level ideas: represent a position of a queen as p(r,c) meaning
         a queen in row r, column c. Then a solution will be represented
         as N of these with no r occuring twice (queens can't be on the
         same row) and no c occuring twice (queens can't be on the same
         column). THEREFORE we can order the solution, say by taking the
         rows in descending order (i.e. from N to 1). The c's will just
         be some permutation of 1 to N. So, tasks are (taking, say, N=4):
           a) form the rows set [4,3,2,1]
           b) form a permutation of it, e.g. [3,1,4,2]
           c) construct a position from this, viz.
                 [p(4,3),p(3,1),p(2,4),p(1,2)]

==== ecmi01/queens.txt ====
/* NON-ATTACKING QUEENS.
   Peter Ross 24 Nov 81.

   This generates solutions to the problem of placing N queens on an NxN
   board so that none attacks any other. To use, call queens(N) and it
   will print out a board with queens represented by 'Q'.
   Note: no solutions for N=2,3.
         speed of solution drops rapidly as you increase N - N=8 may
         cause you a ten-minute wait!

   Meta-level ideas: represent a position of a queen as p(r,c) meaning
         a queen in row r, column c. Then a solution will be represented
         as N of these with no r occuring twice (queens can't be on the
         same row) and no c occuring twice (queens can't be on the same
         column). THEREFORE we can order the solution, say by taking the
         rows in descending order (i.e. from N to 1). The c's will just
         be some permutation of 1 to N. So, tasks are (taking, say, N=4):
           a) form the rows set [4,3,2,1]
           b) form a permutation of it, e.g. [3,1,4,2]
           c) construct a position from this, viz.
                 [p(4,3),p(3,1),p(2,4),p(1,2)]

==== ecmi01/ff_main.txt ====
% File: ECMI01.FF_MAIN
% Author: Peter Hammond, IC, 1982. Rewritten by Peter Ross
% Updated: 30 Nov 1983
% Purpose: FAULFINDER's top level

% Top level, after using ffload/1 from 'load' to set up a database, is
% find_fault/0.

find_fault :-
	initialise,
	prompt(Old, '..? '),
	writef('The system will ask you some questions about your problem.\l'),
	explain_replies,
	nl, nl,
	top_fault(Name),
	find_out(Name, State, [find_fault]),
	describe(Name, State).
find_fault :-
        \+ top_fault(_),
        writef('You haven''t read in a specific description file, sunshine.\l'),
        writef('Use ffload(File) to read one (e.g. ecmi01.ff_gasheater).\l').

==== ecmi01/lisp.txt ====
%begin
%EXTERNALROUTINESPEC PROMPT(%STRING(15) S)
!*-%EXTERNALROUTINE LISP INTP(%INTEGER SPACE, INITMODE)
%const %integer initmode = 1
!
! ***** READ  ROUTINES *****
!
%INTEGERFNSPEC RATOM
%INTEGERFNSPEC READ SEXP(%STRING(15) PMPT)
!
! ***** PRINT ROUTINES *****
!
%ROUTINESPEC PRINT CHARS(%STRING(72) PHRASE)
%STRING(15)%FNSPEC NUMBER(%INTEGER I)
%STRING(72)%FNSPEC PNAME(%INTEGER INDEX)
%ROUTINESPEC PRINT(%INTEGER INDEX)
!
! ***** LISP  ROUTINES *****
!
%INTEGERFNSPEC PUSH(%INTEGER INDEX)
%INTEGERFNSPEC CONS(%INTEGER CAR, CDR)

==== ecmi01/newsys.txt ====
                              UNIX on the VAX-11/750
                              ----------------------

The new UNIX system has some significant differences from the old one. Your best
course would be to look at (a) this document (b) the online documentation for
the commands 'man', 'more', 'apropos' and 'whatis' in that order. The list below
shows which commands are new or changed; a few new commands aren't mentioned,
either because they are too esoteric or because they are useless without extra
hardware (such as networking). A '+' in the left-hand column indicates that the
command is NEW.

The information below is the best that was available before the software 
is available on our VAX - so don't treat it as definitive. 

The control characters should be as before, viz. control-Z for end-of-file,
control-C to interrupt. The character for stopping a job (something which
didn't exist on the old UNIX) is control-X, not control-Z as the documentation
will tell you. The documentation about the whole system, when it arrives, will
actually be correct apart from the business of control-key functions - these
will be changed to what we are more accustomed to (i.e. as above).


==== ecmi01/rselong.txt ====
  RESEARCH INTO THE CONSTRUCTION AND APPLICATION OF INTELLIGENT KNOWLEDGE
                  BASED SYSTEMS THAT AID COMPUTER USERS

                            Dr. Peter Ross,
                  Department of Artificial Intelligence,
                        University of Edinburgh.
   
INTRODUCTION

   Intelligent knowledge-based (IKB) systems, sometimes referred to as 'expert
systems', are computer programs or sets of programs which contain explicit
knowledge concerning some particular area of human expertise, organised in
such a way that they can function as an expert consultant in that area. Some
existing examples are MECHO (which solves problems in mechanics - [Bundy79]),
MYCIN (which diagnoses bacterial infections - [Shortliffe76]), MOLGEN (which
designs molecular genetic experiments - [Stefik81]) and EL (which analyses
analogue electric circuits [Stallman77]). They contain the factual knowledge
of their subject as sets of rules - for example, one of MYCIN's rules is

   If (a) the infection is primary-bacteremia, and
      (b) the site of the culture is one of the sterile sites, and

==== ecmi01/random.txt ====
/* Simple random number generator.
   Good for numbers in some range less than 100,000 long.
   Called thus:
	random(X, Lower, Upper)
   where Lower and Upper must be instantiated to integers,
   and X must be uninstantiated. Instantiates X to an integer
   in the range    Lower ... Upper-1.

   Cobbled up by Peter Ross, 3 May 1983
*/
seed(27134, 9213, 17773).

getrand(X) :-   seed(A,B,C),
                A1 is (A*171) mod 30269,
                B1 is (B*170) mod 30307,
                C1 is (C*172) mod 30323,
		retract(seed(A,B,C)),
		asserta(seed(A1,B1,C1)),
		X is (7*A + 11*B + 13*C) mod 100000.

random(X,Lower,Upper) :-  (nonvar(X); var(Lower); var(Upper); Upper =< Lower),

==== ecmi01/findall.txt ====
findall(X,P,L) :-
         asserta(found([])),
         call(P),
         rec(X),
         fail.
findall(X,P,L) :-
         retract(found(L)),!.

rec(X) :-
         retract(found(L)),!,
         append(L,[X],L1),
         asserta(found(L1)).

append([],X,X).
append([X|L1],L2,[X|L3]) :- append(L1,L2,L3).

==== ecmi01/diff.txt ====
:- op(700,xfx,:).
:- op(200,xfy,@).

go :- write('Want instructions? Type y or n and press return...'), nl,
      prompt(Old,'y/n? '),
      get(C), skip(10),
      tellall(C),
      prompt(Yn,'diff: '),
      dv.

tellall(C) :- (C=89;C=121),
         emas(ty,'ecmi01.ai2_diffnotes').
tellall(C).
dv :- repeat, read(T), (T=stop; derive(T), fail).

derive(T:X) :- T : X, !.

X : [U] :- X : U.
X : [U|V] :- d(X,U,W), simplify(W,Z), Z : [V].
X : Y :- d(X,Y,W), simplify(W,Z), nl, output(Z), nl, nl.


==== ecmi01/oldai2_grtrans.txt ====
expr(Z,S0,S) :- term(Z,S0,S).
expr(Z,S0,S) :- term(X,S0,S1),c(S1,43,S2),expr(Y,S2,S),Z is X+Y.
expr(Z,S0,S) :- term(X,S0,S1),c(S1,45,S2),expr(Y,S2,S),Z is X-Y.

term(Z,S0,S) :- number(Z,S0,S).
term(Z,S0,S) :-
         number(X,S0,S1),c(S1,42,S2),
         write('s2 '),write(S2),nl,
         write('s  '),write(S),nl,
         term(Y,S2,S),
         write('y  '),write(Y),nl,
         write('x  '),write(X),nl,
         integer(X),integer(Y),
         Z is X*Y.
term(Z,S0,S) :- number(X,S0,S1),c(S1,47,S2),term(Y,S2,S),Z is X/Y.

number(X,S0,S) :- c(S0,C,S),48=<C,C=<57,X is C-48.
number(X,S0,S) :- c(S0,43,S1),number(X,S1,S).
number(X,S0,S) :- c(S0,45,S1),number(Y,S1,S),X is -Y.

==== ecmi01/oldai2_stuart.txt ====

/* this file defines various facts about the House of Stuart.        */
/* The various fact declarations in it should be read thus:          */
/*   father(person1,person2).   means person1 is father of person2.  */
/*   mother(   "   ,   "   ).     "      "     " mother "     "   .  */
/* and so on.
   Note that 'ggparent' stands for "great-grand-parent". */

father(robert_II,robert_III).
father(robert_III,james_I).
father(james_I,james_II).
mother(joan_beaufort,james_II).
father(james_II,james_III).
father(james_II,alexander_duke_of_albany).
father(james_II,mary).
                 /* the next two relationships are for historical   */
                 /* convenience. It saves having to clutter things  */
                 /* up with lord_james_hamilton's children ...      */
                 /* Note prolog DOESN'T know what 'ggfather' means. */
ggfather(lord_james_hamilton,matthew_earl_of_lennox).
ggmother(mary,matthew_earl_of_lennox).

==== ecmi01/ai2_scons.txt ====
/* This file defines three useful predicates:
         retractall(X)   which retracts all clauses beginning with
                         X, e.g. retractall(fry(_)) will retract
                         the clause fry(fish) and the clause
                         fry(X) :- (fishy(X);vegatable(X)).
         scons(File)     which consults the file File, but doesn't
                         print extra information on your terminal
                         (scons = Silent CONSult)
         srecons(File)   which does the same but reconsults
                         (srecons = Silent RECONSult)
*/

retractall(X) :- retract(X), fail.
retractall(X) :- retract((X:-Y)), fail.
retractall(_).           % this succeeds when the other two have failed
                         % because nothing is left to retract.

scons(File) :-
         seeing(Input),
         see(File),
         repeat,

==== ecmi01/stuart.txt ====

/* this file defines various facts about the House of Stuart.        */
/* The various fact declarations in it should be read thus:          */
/*   father(person1,person2).   means person1 is father of person2.  */
/*   mother(   "   ,   "   ).     "      "     " mother "     "   .  */
/* and so on.
   Note that 'ggparent' stands for "great-grand-parent". */

father(robert_II,robert_III).
father(robert_III,james_I).
father(james_I,james_II).
mother(joan_beaufort,james_II).
father(james_II,james_III).
father(james_II,alexander_duke_of_albany).
father(james_II,mary).
                 /* the next two relationships are for historical   */
                 /* convenience. It saves having to clutter things  */
                 /* up with lord_james_hamilton's children ...      */
                 /* Note prolog DOESN'T know what 'ggfather' means. */
ggfather(lord_james_hamilton,matthew_earl_of_lennox).
ggmother(mary,matthew_earl_of_lennox).

==== ecmi01/ai2_setstuff.txt ====
/* This file defines various handy relationships involving sets.
   Here 'set' actually means 'list', but it sounds better ... */


/* member(H,List). Is H one of the elements of List? */
member(H,[H|_]).                 /* yes, if its the first member!    */
member(H,[_|T]) :- member(H,T).  /* yes, if its in the tail. N.B.    */
                                 /* T will be a list. Note that you  */
                                 /* fail if you get to asking for    */
                                 /* member(H,[]) , since this doesnt */
                                 /* match either clause's head       */

 /* intersect(A,B,I). I is the intersection of A and B */
intersect([H|T],B,[H|U]) :-
                 member(H,B),    /* if the answer's got H in it, then */
                 intersect(T,B,U). /* it must be in B                 */
intersect([_|T],B,U) :-
                 intersect(T,B,U). /* If first clause failed, we can  */
                                   /* ignore the head of first list   */
intersect(_,_,[]).               /* If the second also failed, the    */
                                 /* intersection is empty.            */

==== ecmi01/oldai2_family.txt ====

/* definition of some family relationships */

parent(X,Y) :- mother(X,Y).      /* X is the parent of Y if ... */
parent(X,Y) :- father(X,Y).      /* Or if ...                   */

gparent(X,Y) :-                  /* X is grandparent of Y if    */
         parent(X,A),            /* X is parent of (someone) A, */
         parent(A,Y).            /* and A is parent of Y.       */

ggparent(X,Y) :-         /* X is the great-grandparent of Y if  */
         gparent(X,A),   /* X is the grandparent of (someone) A */
         parent(A,Y).    /* and A is the parent of Y.           */
                         /* N.B. alternative: "X is parent of A */
                         /* and A is gparent of Y". It's the    */
                         /* same thing here - why? If you went  */
                         /* on to define 'gggparent' for use in */
                         /* the "stuart" database, the choice   */
                         /* WOULD matter. Why? look at the file */
                         /* "ai2_stuart" ...                    */


==== ecmi01/family.txt ====

/* definition of some family relationships */

parent(X,Y) :- mother(X,Y).      /* X is the parent of Y if ... */
parent(X,Y) :- father(X,Y).      /* Or if ...                   */

gparent(X,Y) :-                  /* X is grandparent of Y if    */
         parent(X,A),            /* X is parent of (someone) A, */
         parent(A,Y).            /* and A is parent of Y.       */

ggparent(X,Y) :-         /* X is the great-grandparent of Y if  */
         gparent(X,A),   /* X is the grandparent of (someone) A */
         parent(A,Y).    /* and A is the parent of Y.           */
                         /* N.B. alternative: "X is parent of A */
                         /* and A is gparent of Y". It's the    */
                         /* same thing here - why? If you went  */
                         /* on to define 'gggparent' for use in */
                         /* the "stuart" database, the choice   */
                         /* WOULD matter. Why? look at the file */
                         /* "ai2_stuart" ...                    */


==== ecmi01/scunit.txt ====
(*$L #5:SCUNIT.LST.TEXT*)
(*$S+*)
UNIT SCUNIT;
  (*Copyright 1980 Kenneth L. Bowles, All rights reserved. Permission is
    hereby granted to use this material for any non-commercial purpose*)
  
  (*This version includes specific constants for Terak 8510A*)
INTERFACE
TYPE
    SCCHSET = SET OF CHAR;
    SCKEYCOMMAND = (BACKSPACEKEY,ETXKEY,ESCKEY,DELKEY,UPKEY,DOWNKEY,
                                LEFTKEY,RIGHTKEY,NOTLEGAL);
    
VAR
  SCCH:CHAR;

PROCEDURE SCINITIALIZE;
PROCEDURE SCLEFT;
PROCEDURE SCRIGHT;
PROCEDURE SCUP;
PROCEDURE SCDOWN;

==== ecmi01/liza.txt ====
/*   Simple ELIZA
     -- a natural language misunderstander --
     Alan Bundy 15-Nov-79, Richard O'Keefe 17-Feb-81
     Peter Ross 5-Nov-81
*/

:-(['ecmi25.util_readin']).       % load read_in + necessary support.

/* The top level: call liza (so named 'cos it's a mini-version of ELIZA)
   to get going.
   The predicate read_in reads in sentences, currently ending with a
   full stop, exclamation mark or question mark. Thus
         read_in(X)
   will read in
         hello there.
   as
         X = [hello,there,.]
   NOTE: use lower-case letters at the front of words, this is a simple
   beast!
*/


==== ecmi01/ai2_readin.txt ====
/* Read in a sentence.

   Clearly, when reading in text character by character (using get0),
   it is essential NEVER to backtrack over a get0 goal, otherwise you'd
   have lost the character it read in. Thus, when you get a character,
   you must make sure it gets used. If it can't get used in one context
   (e.g. when constructing a word, and you reach a space) it must be
   passed back to predicates that can use it.
   Thus, for example, readword has three arguments below: the first is
   a character, potentially the first of a word but perhaps a bit of
   interword filling (space or tab), the second is uninstantiated at
   first but will be a word eventually, the third is uninstantiated but
   will finally be instantiated to the character that followed the word
   - i.e. the character that told readword it had reached the end of a
   word.
   Similarly, restsent (which is "higher-level" than readword) has three
   arguments: the first is the word just read, the second is the
   character following that word (which has to be handed forward for the
   reasons explained above) and the third is a variable that will be
   instantiated by restsent to a list consisting of the rest of the 
   sentence. The first argument is necessary in order that restsent can

==== ecmi01/ecmu19_tillities.txt ====


                 /* UTILITIES */
                 /* """"""""" */


printstring([]):-!.
printstring([H|T]):-put(H),printstring(T).

read_in([W|Ws]):-get0(C),readword(C,W,C1),restsent(W,C1,Ws).

  restsent(W,_,[]):-lastword(W),!.
  restsent(W,C,[W1|Ws]):-readword(C,W1,C1),restsent(W1,C1,Ws).

  readword(C,W,C1):-singlec(C),!,name(W,[C]),get0(C1).
  readword(C,W,C2):-in_word(C,NewC),!,get0(C1),restword(C1,Cs,C2),name(W,[NewC|Cs]).
  readword(C,W,C2):-get0(C1),readword(C1,W,C2).

  restword(C,[NewC|Cs],C2):-in_word(C,NewC),!,get0(C1),restword(C1,Cs,C2).
  restword(C,[],C).


==== ecmi01/ks299_doc.txt ====
PRACTICAL EXERCISE: A SIMPLE EXPERT SYSTEM SHELL, WRITTEN IN PROLOG

Peter Ross


1. INTRODUCTION

   This describes how to use a simple expert system shell, and gives a number
   of exercises based on it. The shell is modelled loosely on Teknowledge's
   KS-300 (and so is called ks299, since it's not quite the full shilling).
   The shell can be found in

	UNIX: /u4/peter/prolog/ks299/int
	EMAS: ECMI01.KS299_INT

   Neither version needs any external utilities. A sample knowledge base can
   be found in

	UNIX: /u4/peter/prolog/ks299/wine
	EMAS: ECMI01.KS299_WINE


==== ecmi01/grtrans.txt ====
expr(Z,S0,S) :- term(Z,S0,S).
expr(Z,S0,S) :- term(X,S0,S1),c(S1,43,S2),expr(Y,S2,S),Z is X+Y.
expr(Z,S0,S) :- term(X,S0,S1),c(S1,45,S2),expr(Y,S2,S),Z is X-Y.

term(Z,S0,S) :- number(Z,S0,S).
term(Z,S0,S) :-
         number(X,S0,S1),c(S1,42,S2),
         write('s2 '),write(S2),nl,
         write('s  '),write(S),nl,
         term(Y,S2,S),
         write('y  '),write(Y),nl,
         write('x  '),write(X),nl,
         integer(X),integer(Y),
         Z is X*Y.
term(Z,S0,S) :- number(X,S0,S1),c(S1,47,S2),term(Y,S2,S),Z is X/Y.

number(X,S0,S) :- c(S0,C,S),48=<C,C=<57,X is C-48.
number(X,S0,S) :- c(S0,43,S1),number(X,S1,S).
number(X,S0,S) :- c(S0,45,S1),number(Y,S1,S),X is -Y.

==== ecmi01/useful.txt ====
/* call the editor */

em(File) :-
         (retract(emfile(X));true),
         assert(emfile(File)),
         emas(em,File).

rem(File) :-
         em(File),
         reconsult(File).

em :-    emfile(File),
         emas(em,File).
rem :-   emfile(File),
         emas(em,File),
         reconsult(File).


==== ecmi01/oldai2_simplify.txt ====
/* SIMPLIFY.
   The aim of the predicate simplify is to reshuffle expressions which
   are sums of unknowns (represented by Prolog atoms) and integers so
   that all the unknowns are at the start and the sum of all the
   integers is at the end, e.g.
         x+3+y+4+z      gets reshuffled to      x+y+z+7
   This is (a) useful in mathematical manipulations by computer
   and     (b) an illustration of a useful technique called
               "difference pairs".

   To summarise the idea: a structure such as +(a,+(b,c)) could be
   drawn as
                 +
                / \
               a   +
                  / \
                 b   c

   The idea is that when constructing such things you can represent
   intermediate stages as the "difference" of
                 +

==== ecmi01/ai2_news.txt ====
   Differences between PROLOG version 4 and versions 3 and 2
   ---------------------------------------------------------
There is a new version (version 4) as from 10 February 82 with the following
bugs fixed:
1) The bugs with name and =.. have been fixed.
2) The arithmetic bugs involving negative numbers have been fixed.
3) The debugging has been improved slightly. It is now possible to trace past
   cuts. Cuts are, in fact, now invisible to the tracing - like a few other
   evaluable predicates. Also the system no longer traces various obscure parts
   of the top level that used to appear before.
4) prompt(_,_) will not crash anymore if given a long atom. The atom can be any
   length, but note that the prompt actually used will be a truncated version
   of this if it too long. This seems to be an EMAS limitation. The current max
   length is 15.
5) The system now restores its event and interrupt handlers properly after
   returning from programs called through emas(_) or emas(_,_). This, for one
   thing, allows various editors other than the standard one to be used from
   within PROLOG (they used to mess things up so that you couldn't interrupt
   properly after using them).
6) The interrupt handling system has been improved somewhat, so that there
   should be very few of the "funny crashes". One way to make them happen

==== ecmi01/eec.txt ====
%
% This file contains some facts about countries of the EEC, expressed in Prolog.
% (N.B. there are many other ways of expressing these facts in Prolog - follow
% the lectures!).
%
% The file is accessible to you as ECMI01.AI2_EEC and you can "read it in"
% when you are talking to the Prolog interpreter, by the Prolog command
%       ['ecmi01.ai2_eec'].
% - the square brackets, single quotes and the final full stop all being
% necessary.

               % Written by Peter Ross, 11 October 1982
               

area(belgium,11781).
currency(belgium,franc).
population(belgium,9855).
exports(belgium,['manufactured goods',coal,steel,textiles]).
capital(belgium,brussels).
roads(belgium,11277).
natday(belgium,july,21).

==== ecmi01/ecmu05_project.txt ====
/* the morphology charts */

/* Group 1 nouns */

ending(n1,"a",noun(nom,sing,_,_,_,_)).
ending(n1,"am",noun(acc,sing,_,_,_,_)).
ending(n1,"ae",noun(gen,sing,_,_,_,_)).
ending(n1,"ae",noun(dat,sing,_,_,_,_)).
ending(n1,"a",noun(abl,sing,_,_,_,_)).
ending(n1,"ae",noun(nom,plural,_,_,_,_)).
ending(n1,"as",noun(acc,plural,_,_,_,_)).
ending(n1,"arum",noun(gen,plural,_,_,_,_)).
ending(n1,"is",noun(dat,plural,_,_,_,_)).
ending(n1,"is",noun(abl,plural,_,_,_,_)).


/* Group 2 nouns */

/* type a... */

ending(n2a,"us",noun(nom,sing,_,_,_,_)).

==== ecmi01/ks299_wine.txt ====
% File:    /u4/peter/prolog/ks299/wine
% Author:  Peter Ross
% Updated: 6 Sep 84
% Purpose: a simple knowledge base for the KS299 expert system shell

'What is the overall taste (delicate/average/strong)'
    finds tastiness of meal.

'Is there a sauce (yes/no)'
    finds has_sauce.

'What sort of sauce (spicy/creamy/tomatoey/other)'
    finds sauce of meal.

'What body do you prefer (light/medium/full)'
    finds preferred_body of wine.

'What colour do you prefer (red/white)'
    finds preferred_colour of wine.

'What sweetness do you prefer (dry/medium/sweet)'

==== ecmi01/ai2_recurse.txt ====
/* Some examples of recursion.
 *
 *   member(X,List)  succeeds if X is a member of List
 *   append(L1,L2,Ans)  succeeds if Ans is the concatenation of
 *                      L1 and L2
 *   get_n(L,Ans,N)  succeeds if Ans is the list containing the
 *                   first N elements of L
*/

member(X,[X|L]).
member(X,[_|L]) :- member(X,L).

append([X|L3],L4,[X|Ans1]) :- append(L3,L4,Ans1).
append([],L,L).

get_n([],[],_).
get_n([X|L1],[X|Ans1],N) :-
         N>0,
         N1 is N-1,
         get_n(L1,Ans1,N1).
get_n(_,[],0).

==== ecmi01/rserefs.txt ====


REFERENCES

[Bundy79]       A.Bundy, L.Byrd, G.Luger, C.Mellish and M.Palmer, Solving
                mechanics problems using meta-level inference, in Expert
                Systems in the Micro-electronic Age, ed. D.Michie, Edinburgh
                University Press, 1979

[Hayes-Roth82]  eds. F.Hayes-Roth, D.Waterman and D.B.Lenat, Building Expert
                Systems, to be published in 1982

[Shortliffe76]  E.H.Shortliffe, Computer-based medical consultations: MYCIN,
                New York: American Elsevier, 1976

[Stallman77]    R.M.Stallman and G.J.Sussman, Forward reasoning and
                dependency-directed backtracking in a system for computer-
                aided circuit analysis, Artificial Intelligence, 9, pp. 135-
                196, 1977

[Stefik81]      M.J.Stefik, Planning with constraints, Artificial Intelligence,

==== ecmi01/ai2_ineq.txt ====
/* definition of equality/inequality */

eq(X,X).

ineq(X,X) :- !, fail.
ineq(X,Y).

==== ecmi01/unixgive.txt ====
/*      UNIX support routines for file transfer

	Support routines for microcomputer file transfer between
	UNIX and UCSD (TTY program)

	Ann Macintosh  August 1980

	Give file protocol
		* is the escape character
		*B indicates beginning of file
		*E indicates end of file
		*C indicates a '*' char within the file
		** indicates abnormal termination            */


#include <stdio.h>
#include <sgtty.h>
#include <signal.h>

#define GTTY TIOCGETA
#define STTY TIOCSETA

==== ecmi01/ccall.txt ====
I've talked to Geoff Millard briefly about C on EMAS in the future.
We'll be very interested in using a C compiler to port some AI stuff
onto EMAS 3, for teaching. He said you would be interested in a list of
the library routines and standard macros that C-Prolog uses, because
the question of what library routines to provide is still open. Here
they are -

abort	 execl	  fopen	   index    printf   signal   strlen
access	 exit	  fork	   isatty   putc     sizeof   strncpy
atan2	 fclose	  fprintf  link	    putchar  sprintf  times
chdir	 feof	  getc	   longjmp  sbrk     sscanf   unlink
clearerr fflush	  getchar  perror   setbuf   strcmp   wait
close	 fileno	  getenv   pow	    setjmp   strcpy

sbrk is used to get space; there's a special storage allocator defined
in the source, so malloc/calloc are not used.

When there is a C compiler ready for some people to try to break, I'd
be happy to have a go!
						Peter Ross ext 2557,
						central

==== ecmi01/ff_gasheater.txt ====
% File: /usr/lib/prolog/teach/faultfinder/gasheater
% Author: Peter Hammond + Peter Ross
% Updated: 30 Nov 1983
% Purpose: FAULTFINDER: a specific example.

%	====================
%	=                  =
%	= Gas Water Heater =
%	=                  =
%	====================

top_fault = ghnwp.


%		******************
%		* General faults *
%		******************

ghnwp:	name = '<gas heater not working properly>'
	& type = general
	& preconditions = none

==== ecmi01/ai2_recurse2.txt ====
/* generate integers */

is_int(0).
is_int(X) :-
         is_int(Y),
         X is Y+1.

/* generate pairs with sum X */

pair(X,X,0).
pair(X,N1,N2) :-
         X>0,
         X1 is X-1,
         pair(X1,N1,N3),
         N2 is N3+1.

/* generate Pythagorean triples */
pythag(X,Y,Z) :-
         is_int(A),
         pair(A,Y,Z),            % get a pair of numbers Y and Z
         Z>0,

==== ecmi01/anadex.txt ====
(*$S+*)
PROGRAM ANADEXPIC;
(*$I-*)
  
CONST
  TXTMD = 29;                                       (* TEXT/NORMAL MODE     *)
  GRFMD = 28;                                       (* GRAPHICS MODE        *)
  CTRL  = 3;                                        (* CONTROL CHARACTER    *)
  NUL   = 0;                                        (* NUL TO CLEAR SCREEN  *)
  BELL  = 7;                                        (* TELL WHEN PIC DRAWN  *)
  LF    = 10;                                       (* LINE FEED            *)
  VT    = 11;                                       (* VERTICAL TAB         *)
  FF    = 12;                                       (* FORM FEED            *)
  CR    = 13;                                       (* CARRAGE RETURN       *)
  SP    = 32;                                       (* SPACE                *)
  
TYPE
  LINE = PACKED ARRAY [0..319] OF BOOLEAN;          (* FOR SWOPPING ARRAY   *)
  BLOCK = PACKED ARRAY [0..239,0..319] OF BOOLEAN;  (* PICTURE FORMAT       *)
  FOUR = 1..4;
  PICFORMAT = RECORD CASE FOUR OF

==== ecmi01/startup.txt ====
SETMODE VIDEO=ON,LOWER

==== ecmi01/oldai2_setstuff.txt ====
/* This file defines various handy relationships involving sets.
   Here 'set' actually means 'list', but it sounds better ... */


/* member(H,List). Is H one of the elements of List? */
member(H,[H|_]).                 /* yes, if its the first member!    */
member(H,[_|T]) :- member(H,T).  /* yes, if its in the tail. N.B.    */
                                 /* T will be a list. Note that you  */
                                 /* fail if you get to asking for    */
                                 /* member(H,[]) , since this doesnt */
                                 /* match either clause's head       */

 /* intersect(A,B,I). I is the intersection of A and B */
intersect([H|T],B,[H|U]) :-
                 member(H,B),    /* if the answer's got H in it, then */
                 intersect(T,B,U). /* it must be in B                 */
intersect([_|T],B,U) :-
                 intersect(T,B,U). /* If first clause failed, we can  */
                                   /* ignore the head of first list   */
intersect(_,_,[]).               /* If the second also failed, the    */
                                 /* intersection is empty.            */

==== ecmi01/oldai2_recurse.txt ====
/* Some examples of recursion.
 *
 *   member(X,List)  succeeds if X is a member of List
 *   append(L1,L2,Ans)  succeeds if Ans is the concatenation of
 *                      L1 and L2
 *   get_n(L,Ans,N)  succeeds if Ans is the list containing the
 *                   first N elements of L
*/

member(X,[X|L]).
member(X,[_|L]) :- member(X,L).

append([X|L3],L4,[X|Ans1]) :- append(L3,L4,Ans1).
append([],L,L).

get_n([],[],_).
get_n([X|L1],[X|Ans1],N) :-
         N>0,
         N1 is N-1,
         get_n(L1,Ans1,N1).
get_n(_,[],0).

==== ecmi01/commreadin.txt ====

read_in([W|Ws]) :- get0(C),
                   readword(C,W,C1),
                   restsent(W,C1,Ws).

/* Given a word and the character after it, read in the rest
   of the sentence */
restsent(W,10,[]) :- !.
restsent(W,_,[]) :- lastword(W), !.
restsent(W,C,[W1|Ws]) :- readword(C,W1,C1),
                         restsent(W1,C1,Ws).

/* Read in a single word, given an initial character (C),
   and remembering what character came after the word */
readword(C,W,C1) :- single_char(C,W), !,
                    get0(C1).
readword(C,W,C2) :- in_word(C,NewC), !,
                    get0(C1),
                    restword(C1,Cs,C2),
                    name(W,[NewC|Cs]).
readword(C,W,C2) :- get0(C1),

==== ecmi01/oldai2_grulex.txt ====
/* Example of definite clause grammar, as given on the class handout */

expr(Z) --> term(Z).
expr(Z) --> term(X),"+",expr(Y),{Z is X+Y}.
expr(Z) --> term(X),"-",expr(Y),{Z is X-Y}.

term(Z) --> number(Z).
term(Z) --> number(X),"*",term(Y),{Z is X*Y}.
term(Z) --> number(X),"/",term(Y),{Z is X/Y}.

number(X) --> [C],{48=<C,C=<57,X is C-48}.
number(C) --> "+",number(C).
number(C) --> "-",number(X),{C is -X}.

==== ecmi01/pics_pica1.txt ====
   0 255   0 255   2   2
 174 175 174 174 176 173 177 173 175 175 174 173 175 174 174 174
 174 175 175 173 173 172 171 174 175 174 176 174 174 173 174 173
 173 174 174 176 174 173 175 173 173 174 172 173 176 173 175 172
 171 171 173 172 171 171 170 169 169 172 171 169 169 168 167 168
 168 165 166 163 163 164 161 163 161 160 161 160 158 159 157 158
 158 155 156 156 153 153 154 152 151 151 150 151 147 146 148 146
 146 146 143 145 144 143 144 142 140 139 139 139 141 139 137 137
 134 133 134 132 134 132 132 132 131 130 130 131 129 128 130 129
 176 176 173 174 176 176 177 176 176 175 175 174 174 172 176 175
 175 174 174 173 174 174 175 175 175 174 176 174 173 174 174 175
 175 174 176 175 174 176 176 173 176 174 173 171 173 172 174 171
 173 173 173 174 172 172 173 172 172 170 171 169 168 168 169 168
 167 167 164 165 164 164 163 163 162 162 161 158 160 159 158 157
 157 156 156 155 153 154 151 150 148 149 148 149 150 146 146 145
 147 144 145 143 142 140 141 141 139 139 139 138 137 137 138 138
 136 136 134 134 133 133 131 132 130 129 130 129 128 128 128 129
 175 176 175 176 175 176 176 176 177 177 175 176 175 175 176 177
 175 175 175 173 175 174 176 174 176 175 174 173 176 177 176 175
 175 174 176 177 175 176 176 176 176 175 175 174 172 173 172 172
 173 173 172 174 173 171 172 173 171 170 171 170 168 169 167 169

==== ecmi01/grulex.txt ====
/* Example of definite clause grammar, as given on the class handout */

expr(Z) --> term(Z).
expr(Z) --> term(X),"+",expr(Y),{Z is X+Y}.
expr(Z) --> term(X),"-",expr(Y),{Z is X-Y}.

term(Z) --> number(Z).
term(Z) --> number(X),"*",term(Y),{Z is X*Y}.
term(Z) --> number(X),"/",term(Y),{Z is X/Y}.

number(X) --> [C],{48=<C,C=<57,X is C-48}.
number(C) --> "+",number(C).
number(C) --> "-",number(X),{C is -X}.

==== ecmi01/ff_explain.txt ====
% File: ECMI01.FF_EXPLAIN
% Author: Peter Hammond, IC, 1982. Rewritten by Peter Ross
% Updated: 30 Nov 1983
% Purpose: the explanation subsystem for FAULTFINDER

% The only export is read_ans/2. The first arg is a variable, the
% second is a history list containing the (explainable) goals that
% led to the calling of read_ans/2. The goals in the list have arity
% one less than in reality, because the History argument is omitted.

read_ans(Ans, History) :-
	read_poss_ans(Ans1),
	check_for_query(Ans1, Ans, History).

check_for_query(A, A, _) :-
	A \== why.
check_for_query(why, A, History) :-
	trace_query(History),
	check_again_for_query(A).

check_again_for_query(A) :-

==== ecmi01/ff_ff.txt ====
% File: ECMI01.FF_FF
% Author: Peter Hammond, IC, 1982. Rewritten by Peter Ross
% Updated: 30 Nov 1983
% Purpose: a very simple 'expert system'

% FAULTFINDER: a general fault finding system. See below for a brief account.
%
% The rewrite was for various reasons:
%	- the original was in Waterloo Prolog
%	- EMAS Prolog does not offer 'ancestor(_)' or any fast-moving
%	  kludge of it in Prolog
%	- the i/o needed tidying.
%
% Desirable improvements:
%	- probabilistic reasoning
%	- a better interface for questioning the user
%	- a mechanism for 'how' questions
%	- a 'help' mechanism

% These commands load the system. To load a specific fault description
% file, use ffload/1 giving a filename or a list of filenames.

==== ecmi01/recurse.txt ====
/* Some examples of recursion.
 *
 *   member(X,List)  succeeds if X is a member of List
 *   append(L1,L2,Ans)  succeeds if Ans is the concatenation of
 *                      L1 and L2
 *   get_n(L,Ans,N)  succeeds if Ans is the list containing the
 *                   first N elements of L
*/

member(X,[X|L]).
member(X,[_|L]) :- member(X,L).

append([X|L3],L4,[X|Ans1]) :- append(L3,L4,Ans1).
append([],L,L).

get_n([],[],_).
get_n([X|L1],[X|Ans1],N) :-
         N>0,
         N1 is N-1,
         get_n(L1,Ans1,N1).
get_n(_,[],0).

==== ecmi01/ff_load.txt ====
% File: ECMI01.FF_LOAD
% Author: Peter Hammond, IC, 1982. Rewritten by Peter Ross
% Updated: 30 Nov 1983
% Purpose: code for loading a fault database for FAULTFINDER

% This is a simple loading loop for FAULTFINDER fault description files
% Top level for loading is ffload/1.
% The arg can be a file name or a list of them. Items from the file are
% recorded in the internal database, under the terse form of fault name
% as the key. There is a check that, for each fault, only one instance
% of each property appears.

ffload([File|Files]) :- 
	!,
	ffload(File),
	ffload(Files).
ffload([]).
ffload(File) :-
	seeing(Old),
	see(File),
	repeat,

==== ecmi01/pica1.txt ====
   0 255   0 255   2   2
 174 175 174 174 176 173 177 173 175 175 174 173 175 174 174 174
 174 175 175 173 173 172 171 174 175 174 176 174 174 173 174 173
 173 174 174 176 174 173 175 173 173 174 172 173 176 173 175 172
 171 171 173 172 171 171 170 169 169 172 171 169 169 168 167 168
 168 165 166 163 163 164 161 163 161 160 161 160 158 159 157 158
 158 155 156 156 153 153 154 152 151 151 150 151 147 146 148 146
 146 146 143 145 144 143 144 142 140 139 139 139 141 139 137 137
 134 133 134 132 134 132 132 132 131 130 130 131 129 128 130 129
 176 176 173 174 176 176 177 176 176 175 175 174 174 172 176 175
 175 174 174 173 174 174 175 175 175 174 176 174 173 174 174 175
 175 174 176 175 174 176 176 173 176 174 173 171 173 172 174 171
 173 173 173 174 172 172 173 172 172 170 171 169 168 168 169 168
 167 167 164 165 164 164 163 163 162 162 161 158 160 159 158 157
 157 156 156 155 153 154 151 150 148 149 148 149 150 146 146 145
 147 144 145 143 142 140 141 141 139 139 139 138 137 137 138 138
 136 136 134 134 133 133 131 132 130 129 130 129 128 128 128 129
 175 176 175 176 175 176 176 176 177 177 175 176 175 175 176 177
 175 175 175 173 175 174 176 174 176 175 174 173 176 177 176 175
 175 174 176 177 175 176 176 176 176 175 175 174 172 173 172 172
 173 173 172 174 173 171 172 173 171 170 171 170 168 169 167 169

==== ecmi01/partfiles.txt ====
pdfile(X) :- exists(X),!,
         (curpdfile(Y),retract(curpdfile(Y));true),assert(curpdfile(X)).
pdfile(X) :- write('The file '),write(X),write(' is not available to you'),nl.
typd(X) :- curpdfile(Y), name(Y,L),
           name(X,L1), append(L,[95|L1],L2),
           name(Z,L2), emas(ty,Z).
anpd :- curpdfile(X),!,emas(analyse,X).
anpd :- write('No file specified - use pdfile(X).'),nl.
anpd(X) :- curpdfile(Y), name(Y,L), name(X,L1),
           append(L,[95|L1],L2), name(Z,L2),
           emas(analyse,Z).
append([],L,L).
append([X|L1],L2,[X|L3]) :- append(L1,L2,L3).

==== ecmi01/ai2_diffnotes.txt ====
This program differentiates given expressions with respect to specified
unknowns. Expressions can be formed using brackets, the operators
 + - * /   and   @ (meaning 'to the power of')
and the functions
 sin() cos() tan() log() exp().
Unknowns are represented by Prolog atoms. The input should be given in
the form
         expression : unknown.
or
         expression : [unknown,unknown,...].
for multiple differentiation. For example,
         sin(x@2+1):x.
         x@4 + a*x@3 + b*x@2 + c*c + d : [x,x].
         x@y :[x,y,y].
are all acceptable. Don't forget the final dot!
To stop, type stop.
...............................................

==== ecmi01/rt2pas.txt ====
(*$I-*)
PROGRAM RT2PAS;
CONST
  EMPTY = 512;
  PERM = 1024;
  TENTATIVE = 256;
  ENDMARK = 2048;

TYPE
  DATEWRD = PACKED RECORD
                YEAR:  0..31; (*YEAR-72*)
                DAY:   0..31; (*ALLOCATE*)
                MONTH: 0..31; (*5 BITS EA*)
                JUNK:  0..1   (*INTEGER FILL*)
            END;
  CHARS = PACKED ARRAY [0..2] OF CHAR;
  FILENTRY = RECORD
    STATUSWORD: INTEGER;
    FIRST: INTEGER;
    SECOND: INTEGER;
    EXTENSION: INTEGER;

==== ecmi01/oldai2_maze.txt ====
/* Maze.
   Peter Ross, 12-Nov-81.

   The database in this file describes a maze. All the cells are
   labelled with a letter and number, e.g. e2, f12 etc, except for
   the two called in and home. The predicate door(X,Y) means that
   there is a (two way) door between cells X and Y. The predicate
   move(X,Y) expresses the fact that the doors are two-way - it
   means you can move from cell X to cell Y in one move.

   Tasks:
         (1) show you CAN get from in to home.
         (2) find the shortest route
         (3) show you CAN'T get from in to home if the doors are
             only one way!

   NOTE: don't bother trying to draw the maze - (a) it has an
         idiosyncratic cell labelling scheme, and (b) it isn't
         two-dimensional!

*/

==== ecmi01/diffnotes.txt ====
This program differentiates given expressions with respect to specified
unknowns. Expressions can be formed using brackets, the operators
 + - * /   and   @ (meaning 'to the power of')
and the functions
 sin() cos() tan() log() exp().
Unknowns are represented by Prolog atoms. The input should be given in
the form
         expression : unknown.
or
         expression : [unknown,unknown,...].
for multiple differentiation. For example,
         sin(x@2+1):x.
         x@4 + a*x@3 + b*x@2 + c*c + d : [x,x].
         x@y :[x,y,y].
are all acceptable. Don't forget the final dot!
To stop, type stop.
...............................................

==== ecmi01/exp.txt ====
exp(X,0,1).
exp(X,Y,Z) :- even(Y), R is Y/2, P is X*X, exp(P,R,Z).
exp(X,Y,Z) :- T is Y-1, exp(X,T,Z1), Z is Z1*X.
even(R) :- 0 is R mod 2.

==== ecmi01/robot5.txt ====
.pg 5. ROBOTIC VISION
A robot whose only sensory capabilities are touch and force is still almost
totally isolated from the real world. This would be so even if touch and
force sensing could be as good as their human counterpart; to imagine the
sensory information available to one of today's robots, think of being blind
and deaf
and wearing woolen mittens in sub-zero temperatures which have numbed your
fingers and frozen the mittens stiff. You can still 'feel' objects in your
grasp, but only by a sense of muscle resistance, and you can only sense the
grossest characteristics of shape.
Being blind and deaf you can only become aware of new objects by actually 
touching them, and only memory will allow you to keep track of 'known'
objects.
.ti 4
This analogy helps to explain why providing a robot with a visual sense
is such a desirable goal, even though the technology of visual processing is
still fairly rudimentary. At present it is possible for a robot vision
system to find and identify objects provided that it has an adequate
description of the object and that the lighting conditions are well
controlled so that the object can be seen as a clear silhouette. Finding
and identifying objects when they overlap (the 'bin picking' problem) or

==== ecmi01/oldai2_recurse2.txt ====
/* generate integers */

is_int(0).
is_int(X) :-
         is_int(Y),
         X is Y+1.

/* generate pairs with sum X */

pair(X,X,0).
pair(X,N1,N2) :-
         X>0,
         X1 is X-1,
         pair(X1,N1,N3),
         N2 is N3+1.

/* generate Pythagorean triples */
pythag(X,Y,Z) :-
         is_int(A),
         pair(A,Y,Z),            % get a pair of numbers Y and Z
         Z>0,

==== ecmi01/missio.txt ====
% Missionaries and Cannibals: teaching example
%     Peter Ross, May 1983
%
% To start it:
%	?- search(state(3,3,0,0,left), state(3,3,0,0,left), Ans).
% or
%	?- try(Ans).
% Oddity: trace it, and 'check(_,_)' never appears in the trace.

:- op(700,yfx,&).

search(state(0,0,_,_,right), Answer, Answer).

search(state(Ml,Cl,Mr,Cr,left), PastMoves, Answer) :-
	try(M,C,given(Ml,Cl)),
	NewMl is Ml-M, NewCl is Cl-C,
	NewMr is Mr+M, NewCr is Cr+C,
	NewState = state(NewMl,NewCl,NewMr,NewCr,right),
	check(NewState,PastMoves),
	search(NewState, PastMoves & NewState, Answer).


==== ecmi01/oldai2_readin.txt ====
/* Read in a sentence.

   Clearly, when reading in text character by character (using get0),
   it is essential NEVER to backtrack over a get0 goal, otherwise you'd
   have lost the character it read in. Thus, when you get a character,
   you must make sure it gets used. If it can't get used in one context
   (e.g. when constructing a word, and you reach a space) it must be
   passed back to predicates that can use it.
   Thus, for example, readword has three arguments below: the first is
   a character, potentially the first of a word but perhaps a bit of
   interword filling (space or tab), the second is uninstantiated at
   first but will be a word eventually, the third is uninstantiated but
   will finally be instantiated to the character that followed the word
   - i.e. the character that told readword it had reached the end of a
   word.
   Similarly, restsent (which is "higher-level" than readword) has three
   arguments: the first is the word just read, the second is the
   character following that word (which has to be handed forward for the
   reasons explained above) and the third is a variable that will be
   instantiated by restsent to a list consisting of the rest of the 
   sentence. The first argument is necessary in order that restsent can

==== ecmi01/scons.txt ====
/* This file defines three useful predicates:
         retractall(X)   which retracts all clauses beginning with
                         X, e.g. retractall(fry(_)) will retract
                         the clause fry(fish) and the clause
                         fry(X) :- (fishy(X);vegatable(X)).
         scons(File)     which consults the file File, but doesn't
                         print extra information on your terminal
                         (scons = Silent CONSult)
         srecons(File)   which does the same but reconsults
                         (srecons = Silent RECONSult)
*/

retractall(X) :- retract(X), fail.
retractall(X) :- retract((X:-Y)), fail.
retractall(_).           % this succeeds when the other two have failed
                         % because nothing is left to retract.

scons(File) :-
         seeing(Input),
         see(File),
         repeat,

==== ecmi01/readin.txt ====

read_in([W|Ws]) :- get0(C),
                   readword(C,W,C1),
                   restsent(W,C1,Ws).

/* Given a word and the character after it, read in the rest
   of the sentence */
restsent(W,10,[]) :- !.
restsent(W,_,[]) :- lastword(W), !.
restsent(W,C,[W1|Ws]) :- readword(C,W1,C1),
                         restsent(W1,C1,Ws).

/* Read in a single word, given an initial character (C),
   and remembering what character came after the word */
readword(C,W,C1) :- single_char(C,W), !,
                    get0(C1).
readword(C,W,C2) :- in_word(C,NewC), !,
                    get0(C1),
                    restword(C1,Cs,C2),
                    name(W,[NewC|Cs]).
readword(C,W,C2) :- get0(C1),

==== ecmi01/ai2_diff.txt ====
:- op(700,xfx,:).
:- op(200,xfy,@).

go :- write('Want instructions? Type y or n and press return...'), nl,
      prompt(Old,'y/n? '),
      get(C), skip(10),
      tellall(C),
      prompt(Yn,'diff: '),
      dv.

tellall(C) :- (C=89;C=121),
         emas(ty,'ecmi01.ai2_diffnotes').
tellall(C).
dv :- repeat, read(T), (T=stop; derive(T), fail).

derive(T:X) :- T : X, !.

X : [U] :- X : U.
X : [U|V] :- d(X,U,W), simplify(W,Z), Z : [V].
X : Y :- d(X,Y,W), simplify(W,Z), nl, output(Z), nl, nl.


==== ecmi01/setup.txt ====
OPTION(FSTARTFILE=ECMI25.INIT)
OPTION(REMOVEDIR=PLULIB.PACKDIR)
OPTION(SEARCHDIR=ECMI25.PROLOG#DIR)
OPTION(SEARCHDIR=ECMI25.COMMANDS)
DELIVER(PETER_ROSS_FORREST_HILL)
OPTION(NOBRACKETS,NOECHO,ARRAYDIAG=0)
SETMODE VIDEO=ON,LOWER

==== ecmi01/readindoc.txt ====
The predicate 'read_in(L)' in ECMI01.COMMREADIN reads in sentences typed by
the user and returns the words as elements of the list L. The end of a
sentence is marked either by the <return> key or by the backslash symbol -
but note that EMAS won't pass your typing on to Prolog until you type <return>,
so if you have a backslash in a line, it'll appear to be two sentences to
this version of 'read_in(L)'. The following characters are recognised as
one-character words:

         ! " # $ % & ' ( ) * + , - . : ; < = > ? @ [ \ ] ^ ` { | } ~

The character '_' is taken to be a normal character that can appear within
words.

You can copy the file and modify it to suit your needs. The single-character
words are defined by a call to 'in_set(L)' whose argument is a list of lists,
or numbers. Each number is an ASCII character code for what is to be taken as
a valid single-character word; each list contains two numbers, representing a
character range.
                                         Peter Ross, 7 December 1982

==== ecmi01/ai2_liza.txt ====
/*   Simple ELIZA
     -- a natural language misunderstander --
     Alan Bundy 15-Nov-79, Richard O'Keefe 17-Feb-81
     Peter Ross 5-Nov-81
*/

:-(['ecmi25.util_readin']).       % load read_in + necessary support.

/* The top level: call liza (so named 'cos it's a mini-version of ELIZA)
   to get going.
   The predicate read_in reads in sentences, currently ending with a
   full stop, exclamation mark or question mark. Thus
         read_in(X)
   will read in
         hello there.
   as
         X = [hello,there,.]
   NOTE: use lower-case letters at the front of words, this is a simple
   beast!
*/


==== ecmi01/maze.txt ====
/* Maze.
   Peter Ross, 12-Nov-81.

   The database in this file describes a maze. All the cells are
   labelled with a letter and number, e.g. e2, f12 etc, except for
   the two called in and home. The predicate door(X,Y) means that
   there is a (two way) door between cells X and Y. The predicate
   move(X,Y) expresses the fact that the doors are two-way - it
   means you can move from cell X to cell Y in one move.

   Tasks:
         (1) show you CAN get from in to home.
         (2) find the shortest route
         (3) show you CAN'T get from in to home if the doors are
             only one way!

   NOTE: don't bother trying to draw the maze - (a) it has an
         idiosyncratic cell labelling scheme, and (b) it isn't
         two-dimensional!

*/

==== ecmi01/simplify.txt ====
/* SIMPLIFY.
   The aim of the predicate simplify is to reshuffle expressions which
   are sums of unknowns (represented by Prolog atoms) and integers so
   that all the unknowns are at the start and the sum of all the
   integers is at the end, e.g.
         x+3+y+4+z      gets reshuffled to      x+y+z+7
   This is (a) useful in mathematical manipulations by computer
   and     (b) an illustration of a useful technique called
               "difference pairs".

   To summarise the idea: a structure such as +(a,+(b,c)) could be
   drawn as
                 +
                / \
               a   +
                  / \
                 b   c

   The idea is that when constructing such things you can represent
   intermediate stages as the "difference" of
                 +

==== ecmi01/oldai2_news.txt ====
   Differences between PROLOG version 4 and versions 3 and 2
   ---------------------------------------------------------
There is a new version (version 4) as from 10 February 82 with the following
bugs fixed:
1) The bugs with name and =.. have been fixed.
2) The arithmetic bugs involving negative numbers have been fixed.
3) The debugging has been improved slightly. It is now possible to trace past
   cuts. Cuts are, in fact, now invisible to the tracing - like a few other
   evaluable predicates. Also the system no longer traces various obscure parts
   of the top level that used to appear before.
4) prompt(_,_) will not crash anymore if given a long atom. The atom can be any
   length, but note that the prompt actually used will be a truncated version
   of this if it too long. This seems to be an EMAS limitation. The current max
   length is 15.
5) The system now restores its event and interrupt handlers properly after
   returning from programs called through emas(_) or emas(_,_). This, for one
   thing, allows various editors other than the standard one to be used from
   within PROLOG (they used to mess things up so that you couldn't interrupt
   properly after using them).
6) The interrupt handling system has been improved somewhat, so that there
   should be very few of the "funny crashes". One way to make them happen

==== ecmi01/warplan.txt ====
:- op(700,xfy,&).
:- op(650,yfx,=>).

% generation and output of a plan

plans(C,T) :- not(consistent(C,true)),!, nl,
	      write('*** impossible ***'),nl.
plans(C,T) :- plan(C,true,T,T1), nl, output(T1), nl.

output(Xs=>X) :- !, output1(Xs), write(X), write('.'), nl.

output1(Xs=>X) :- !, output1(Xs), write(X), write(' ;'), nl.
output1(X) :- write(X), write(' ;'), nl.

% top level of main recursive loop

plan(X&C,P,T,T2) :- !, solve(X,P,T,P1,T1), plan(C,P1,T1,T2).
plan(X,P,T,T1) :- solve(X,P,T,P1,T1).

% to solve a goal


==== ecmi01/anadextra.txt ====
 
 (* These procedures are for use with 'TIGERSNAP' to be run on the TERAK. *)

PROCEDURE DRAWLINE(VAR RANGE:INTEGER; VAR S:PICFORMAT;
                   ROW, X0, Y0, DX, DY, PEN:INTEGER);
EXTERNAL;
  
PROCEDURE FRAME;
VAR I:INTEGER;
BEGIN
  FILLCHAR(SCREEN.C[0],9600,NUL);               (* CLEARS THE ARRAY AND   *)
  UNITWRITE(3,SCREEN.C[0],56);                  (* DRAWS A TERAK SCREEN   *)
  DRAWLINE(I,SCREEN,20,0,0,319,0,1);            (* SIZED FRAME            *)
  DRAWLINE(I,SCREEN,20,319,0,0,239,1);
  DRAWLINE(I,SCREEN,20,319,239,-319,0,1);
  DRAWLINE(I,SCREEN,20,0,239,0,-239,1);
  UNITWRITE(3,SCREEN.C[0],7);
END;
    
PROCEDURE SAVEPIC;                              (* A NUL PROCEDURE BECAUSE *)
BEGIN                                           (* THE FRAME IS DRAWN      *)

==== ecmi01/tut.txt ====
                     DEPARTMENT OF ARTIFICIAL INTELLIGENCE
                                        
                Prolog exercises - for week beginning 6 Dec 1982


1. The normal method of getting a program into the interpreter, and modifying
   it, is fairly cumbersome for beginners. Devise a better method. You could
   restrict yourself to clauses such as
        fred eats haggis
        ian hates chips
   and other such clauses of the form "Object Relation Object". Your program
   should give you a prompt and allow you to add facts (use built-in predicate
   'assertz(Term)') and ask questions - say of the form
        is it true that fred eats haggis
   Points to remember:
   (a) in ECMI25.UTIL_READIN there is a program for 'read_in(List)' such that
       the goal 'read_in(L)' will give a prompt and wait for you to type. If
       you type
                fred eats haggis
       then L will be instantiated to the list [fred,eats,haggis].
       Experiment with it a bit to get the feel of it.

==== ecmi01/oldai2_ineq.txt ====
/* definition of equality/inequality */

eq(X,X).

ineq(X,X) :- !, fail.
ineq(X,Y).

==== ecmi01/ff_utils.txt ====
% File: ECMI01.FF_UTILS
% Author: Peter hammond, IC, 1982. Rewritten by Peter Ross
% Updated: 30 Nov 1983
% Purpose: utilities used in other FAULTFINDER modules

:- op(50, xfy, and).
:- op(60, xfy, or).
:- op(70, xfy, if).
:- op(950, xfy, & ).
:- op(960, xfy, :).	% 950 > ','

once(X) :- X, !.

member(A, [A|_]).
member(A, [_|Rest]) :- member(A, Rest).

memberchk(A, [A|_]) :- !.
memberchk(A, [_|Rest]) :- memberchk(A, Rest).

read_poss_ans(Answer) :- 
	get(NonBlankChar),

==== ecmi01/blocks.txt ====
given(start,on(e,floor)).
given(start,on(c,e)).
given(start,clear(c)).
given(start,on(a,floor)).
given(start,clear(a)).
given(start,on(d,floor)).
given(start,on(b,d)).
given(start,clear(b)).

given(state1,on(x,floor)).
given(state1,on(y,floor)).
given(state1,clear(x)).
given(state1,clear(y)).

given(state2,on(p,floor)).
given(state2,on(q,floor)).
given(state2,on(r,p)).
given(state2,clear(q)).
given(state2,clear(r)).

add(on(U,W), move(U,V,W)).

==== ecmi01/ai2_queens.txt ====
/* NON-ATTACKING QUEENS.
   Peter Ross 24 Nov 81.

   This generates solutions to the problem of placing N queens on an NxN
   board so that none attacks any other. To use, call queens(N) and it
   will print out a board with queens represented by 'Q'.
   Note: no solutions for N=2,3.
         speed of solution drops rapidly as you increase N - N=8 may
         cause you a ten-minute wait!

   Meta-level ideas: represent a position of a queen as p(r,c) meaning
         a queen in row r, column c. Then a solution will be represented
         as N of these with no r occuring twice (queens can't be on the
         same row) and no c occuring twice (queens can't be on the same
         column). THEREFORE we can order the solution, say by taking the
         rows in descending order (i.e. from N to 1). The c's will just
         be some permutation of 1 to N. So, tasks are (taking, say, N=4):
           a) form the rows set [4,3,2,1]
           b) form a permutation of it, e.g. [3,1,4,2]
           c) construct a position from this, viz.
                 [p(4,3),p(3,1),p(2,4),p(1,2)]

==== ecmi01/ecmu19_thelot.txt ====
Introduction.

   For some time I have been aware that areas of Artificial Intelligence develop
rapidly to become the centre of attention, more so than in many other academic
disciplines. But in any subject which is undergoing change, one must be sure
neither to be carried along unprotestingly, nor to reject out-of-hand any 
unexpected changes of, say, methodology or the sphere of study. Such major
revisions in the domain and purpose of a subject happen from time to time, and
when they do, it is for all interested parties to explore and constructively
criticise the developments.

   In Linguistics in the mid 1950's there was a major change with the 
introduction of transformational generative grammar, which, modified several
times, has dominated theoretical syntax for over 20 years, though the future of
transformational grammar (not generative grammar, of which it is a type) is
currently under some question.

   As in theory "a generative grammar is a mathematically precise specification
of the grammatical structure of the sentences that it generates" (p126,Lyons),
it should be easy enough to computerise: indeed, if serious problems were to
occur in implementation, this would point to a need for modifications. This

==== ecmi01/oldai2_diffnotes.txt ====
This program differentiates given expressions with respect to specified
unknowns. Expressions can be formed using brackets, the operators
 + - * /   and   @ (meaning 'to the power of')
and the functions
 sin() cos() tan() log() exp().
Unknowns are represented by Prolog atoms. The input should be given in
the form
         expression : unknown.
or
         expression : [unknown,unknown,...].
for multiple differentiation. For example,
         sin(x@2+1):x.
         x@4 + a*x@3 + b*x@2 + c*c + d : [x,x].
         x@y :[x,y,y].
are all acceptable. Don't forget the final dot!
To stop, type stop.
...............................................

==== ecmi01/news.txt ====
   Differences between PROLOG version 4 and versions 3 and 2
   ---------------------------------------------------------
There is a new version (version 4) as from 10 February 82 with the following
bugs fixed:
1) The bugs with name and =.. have been fixed.
2) The arithmetic bugs involving negative numbers have been fixed.
3) The debugging has been improved slightly. It is now possible to trace past
   cuts. Cuts are, in fact, now invisible to the tracing - like a few other
   evaluable predicates. Also the system no longer traces various obscure parts
   of the top level that used to appear before.
4) prompt(_,_) will not crash anymore if given a long atom. The atom can be any
   length, but note that the prompt actually used will be a truncated version
   of this if it too long. This seems to be an EMAS limitation. The current max
   length is 15.
5) The system now restores its event and interrupt handlers properly after
   returning from programs called through emas(_) or emas(_,_). This, for one
   thing, allows various editors other than the standard one to be used from
   within PROLOG (they used to mess things up so that you couldn't interrupt
   properly after using them).
6) The interrupt handling system has been improved somewhat, so that there
   should be very few of the "funny crashes". One way to make them happen

==== ecmi01/ai2_stuart.txt ====

/* this file defines various facts about the House of Stuart.        */
/* The various fact declarations in it should be read thus:          */
/*   father(person1,person2).   means person1 is father of person2.  */
/*   mother(   "   ,   "   ).     "      "     " mother "     "   .  */
/* and so on.
   Note that 'ggparent' stands for "great-grand-parent". */

father(robert_II,robert_III).
father(robert_III,james_I).
father(james_I,james_II).
mother(joan_beaufort,james_II).
father(james_II,james_III).
father(james_II,alexander_duke_of_albany).
father(james_II,mary).
                 /* the next two relationships are for historical   */
                 /* convenience. It saves having to clutter things  */
                 /* up with lord_james_hamilton's children ...      */
                 /* Note prolog DOESN'T know what 'ggfather' means. */
ggfather(lord_james_hamilton,matthew_earl_of_lennox).
ggmother(mary,matthew_earl_of_lennox).

==== ecmi01/ladybug.txt ====
/* LADYBUG is a 'Buggy'-type program for the Linear Algebra Domain */




instructions :-  nl,
                 write('Welcome to LADYBUG.  The format if very simple.'),
                 nl,
                 write('type "show." to find the status of the tracer.'),
                 nl,
                 write('Turn it off for now.  Next type "protocol." and'),
                 nl,
                 write('choose a number from 1 to 6 (0 for standard protocol)'),
                 nl,
                 write('Then just type "begin." once for each equation'),
                 nl,
                 write('you"d like LADYBUG to solve.  Enjoy...').

begin :- nl,
         write('Please enter an equation (q to quit)'),nl,
         read(Eqn),

==== ecmi01/ecmu19_transbit.txt ====
                     /* Transformational Grammar Programme */
                     /* """""""""""""""""""""""""""""""""" */
                     /* ..........James  Scobbie.......... */
                     /* ~~~~~~~~~~~~~~~  ~~~~~~~~~~~~~~~~~ */
                     /* artificial intelligence department */
                     /* """""""""""""""""""""""""""""""""" */



:-op(500,yfx,[#]).


go:-banner,choose(Namelist),!,s(Deep,_,_),show(Deep),
         do(Deep,Namelist,Surface).


banner:-line(0),nl,
         printstring("Do you want to test the ordering of the current"),nl,
         printstring("package (option 1) or to change some aspects of"),nl,
         printstring("the rule set for testing? (option 2).Choose the"),nl,
         printstring("option you require by typing 1 or 2 followed by"),nl,

==== ecmi01/ai2_family.txt ====

/* definition of some family relationships */

parent(X,Y) :- mother(X,Y).      /* X is the parent of Y if ... */
parent(X,Y) :- father(X,Y).      /* Or if ...                   */

gparent(X,Y) :-                  /* X is grandparent of Y if    */
         parent(X,A),            /* X is parent of (someone) A, */
         parent(A,Y).            /* and A is parent of Y.       */

ggparent(X,Y) :-         /* X is the great-grandparent of Y if  */
         gparent(X,A),   /* X is the grandparent of (someone) A */
         parent(A,Y).    /* and A is the parent of Y.           */
                         /* N.B. alternative: "X is parent of A */
                         /* and A is gparent of Y". It's the    */
                         /* same thing here - why? If you went  */
                         /* on to define 'gggparent' for use in */
                         /* the "stuart" database, the choice   */
                         /* WOULD matter. Why? look at the file */
                         /* "ai2_stuart" ...                    */


==== ecmi01/ans.txt ====
DEPARTMENT OF ARTIFICIAL INTELLIGENCE

Answers to Prolog exercises (#3)

1.      flatten([],[]).
        flatten([[]|T], Tflat) :- flatten(T, Tflat).
        flatten([H|T], [H|Tflat]) :- atomic(H), !, flatten(T, Tflat).
        flatten([H|T], L) :- flatten(H, Hflat),
                             flatten(T, Tflat),
                             append(Hflat, Tflat, L).

    This uses 'append'. The second clause is there to remove empty lists (which
    are atomic). The cut is there in case of backtracking to the top level
    'flatten' goal.
    
2.      reverse([H|T], Rev) :- reverse(T, Trev), append(Trev, [H], Rev).

    This also uses 'append'. The version below is worth studying, even though
    it looks opaque at first; it is an example of a very generally useful
    technique.
    

==== ecmi01/setstuff.txt ====
/* This file defines various handy relationships involving sets.
   Here 'set' actually means 'list', but it sounds better ... */


/* member(H,List). Is H one of the elements of List? */
member(H,[H|_]).                 /* yes, if its the first member!    */
member(H,[_|T]) :- member(H,T).  /* yes, if its in the tail. N.B.    */
                                 /* T will be a list. Note that you  */
                                 /* fail if you get to asking for    */
                                 /* member(H,[]) , since this doesnt */
                                 /* match either clause's head       */

 /* intersect(A,B,I). I is the intersection of A and B */
intersect([H|T],B,[H|U]) :-
                 member(H,B),    /* if the answer's got H in it, then */
                 intersect(T,B,U). /* it must be in B                 */
intersect([_|T],B,U) :-
                 intersect(T,B,U). /* If first clause failed, we can  */
                                   /* ignore the head of first list   */
intersect(_,_,[]).               /* If the second also failed, the    */
                                 /* intersection is empty.            */

==== ecmi01/rselong2.txt ====
  RESEARCH INTO THE CONSTRUCTION AND APPLICATION OF INTELLIGENT KNOWLEDGE
                  BASED SYSTEMS THAT AID COMPUTER USERS

                            Dr. Peter Ross,
                  Department of Artificial Intelligence,
                        University of Edinburgh.
   
INTRODUCTION

   Intelligent knowledge-based (IKB) systems, sometimes referred to as 'expert
systems', are computer programs or sets of programs which contain explicit
knowledge concerning some particular area of human expertise, organised in
such a way that they can function as an expert consultant in that area. Some
existing examples are MECHO (which solves problems in mechanics - [Bundy79]),
MYCIN (which diagnoses bacterial infections and recommends treatments -
[Shortliffe76]), MOLGEN (which designs molecular genetic experiments -
[Stefik81]) and EL (which analyses analogue electric circuits [Stallman77]).
They contain the factual knowledge of their subject as sets of rules - for
example, one of MYCIN's rules is

   If (a) the infection is primary-bacteremia, and

==== ecmi01/unixtake.txt ====
/*      UNIX support routines for file transfer

	Support routines for microcomputer file transfer between
	UNIX and UCSD (TTY program )

	Ann Macintosh   August 1980           */

#include <stdio.h>
#include <sgtty.h>
#include <signal.h>

#define END '?'
#define DLE 16
#define XON 17

#define GTTY TIOCGETA
#define STTY TIOCSETA

#define MAXNAME 40
#define TRUE 1
#define FALSE 0

==== ecmi01/ineq.txt ====
/* definition of equality/inequality */

eq(X,X).

ineq(X,X) :- !, fail.
ineq(X,Y).

==== ecmi01/rt1pas.txt ====
(*$S+*)
(*$I-*)
PROGRAM RT2PAS;
CONST
  EMPTY = 512;
  PERM = 1024;
  TENTATIVE = 256;
  ENDMARK = 2048;

TYPE
  DATEWRD = PACKED RECORD
                YEAR:  0..31; (*YEAR-72*)
                DAY:   0..31; (*ALLOCATE*)
                MONTH: 0..31; (*5 BITS EA*)
                JUNK:  0..1   (*INTEGER FILL*)
            END;
  CHARS = PACKED ARRAY [0..2] OF CHAR;
  FILENTRY = RECORD
    STATUSWORD: INTEGER;
    FIRST: INTEGER;
    SECOND: INTEGER;

==== ecmi01/pgc.txt ====
DEPARTMENT OF ARTIFICIAL INTELLIGENCE

Running The Post-graduate Course



The course starts with the winter term. So, the event queue for the organiser
starts before then:

---- Summer: by early August

	Get together a brief course description and a general reading list,
	to be sent out to new PGs.

---- Summer: by Sept. 15, say.

	Organise the time table. Check that the lecturers will be available
	at the desired times, and that they know it. Send them time tables.
	Dig out information about rooms - for shared courses contact the other
	course organisers. The first lecture is a welcome by the head of the
	department.

==== ecmi01/oldlbug.txt ====
/* LADYBUG is a 'Buggy'-type program for the Linear Algebra Domain */




begin :- nl,
         write('Please enter an equation (q to quit)'),nl,
         read(Eqn),
         protocol(M),
         solve(M,Eqn).


/* PROTOCOL 0: no malrule -- correct algebraic manipulation */
solve(0,Lhs=Rhs) :-
                 present('solving        ',Lhs,Rhs),
                 !,
                 cattract(Lhs,Rhs,Lhs2,Rhs2),
                 iattract(Lhs2,Rhs2,Lhs3,Rhs3),
                 consolidate(Lhs3,Sum_coeffs),
                 present(lhs_consolidate,Sum_coeffs*x,Rhs3),
                 consolidate(Rhs3,Sum_integers),

==== ecmi01/prenglish.txt ====
:- op(300,xf,?).

begin:- asserta(definition(X,X)),
	asserta(definition((P;Q),[P, or, Q])),
	asserta(definition((P:-Q), [P, if, Q])),
	asserta(definition((P,Q), [P, and, Q])),
    prompt(Old, 'Prolog: '), repeat,nl,nl,read(T), (T=stop; process(T), fail).

process(T-D) :- !, asserta(definition(T,D)).
process([T1|T2]?) :- retrovert(T,[T1|T2]), !, nl, write(T).
process(T) :- translate(T,D), nl, output(D), !.
process(_) :- nl, write('*** untranslatable ***'), nl.

retrovert(T,D) :- definition(T1,D), !, T1 =.. [N|L],
		  retrovert_args(Args,L), T =.. [N|Args].

retrovert_args([A|Args],[L|Ls]) :- retrovert(A,L),
				   retrovert_args(Args, Ls).
retrovert_args([], []).

translate(X,X) :- var(X), !.

==== ecmi01/exmsc.txt ====
-----------------
Please distribute
-----------------

		    EXPERT SYSTEMS: the exam  1984

There are three questions on each of the M.Sc. exams (at least, the AI ones).
Answer two; you'll only get credit for the first two you answer (which is not
necessarily the same as the first two you try!). Some (perhaps most) of the
questions will come in several parts connected by some theme; do the bits you
can, obviously. If you find yourself at sea, try to put down what you do know
that you think relevant; you get marks for what you put down, if its relevant!

Revision: the blue/white Xerox paper ("The Organization of Expert Systems:
	  A Prescriptive Tutorial" by M.Stefik &c), lecture handouts and
	  your own notes. If you want reassurance or further reading, then
	  look at the expensive book ("Building Expert Systems", Hayes-Roth
	  &c) and/or "Expert Systems in the Micro-electronic Age", Michie &c.
	  Try AL/X and OPS5 just to get a taste of the practice, they make the
	  course a little less academic - not obligatory, though.


==== ecmi01/init.txt ====
setmode video=on,lower,width=80,tabs=9:17:25:33:41:49:79
setmode flow=on

==== ecmi01/oldai2_minidb.txt ====
% File:         ECMI01.MINIDB
% Updated:	15 October 84 11:10
% Author:	Peter Ross
% Purpose:	a mini database system, needing improvement in every way
% Level:	introductory.

% This is extremely feeble. Learning exercise: improve it.
%
% It uses the following built-in predicates:
%	assert(Term)		- to add to the database
%	retract(Term)		- to remove from the database
%	read(Term)		- to read data (in the form of a term) or
%				  replies (also in the form of a term) from
%				  the user.
%	abolish(Term,Arity)	- to flush out the database
%	bagof(X, Term, List)    - to collect up all the Xs fitting the Term
%
% NOTES: (1) all database items are held as terms of the form  dbitem(Item).
%	 (2) all your input must be valid Prolog terms.
%	 (3) the program is atypical, because backtracking NEVER happens in it.
%	     It can bomb out, if you attempt to query an empty database.

==== ecmi01/ks299_int.txt ====
% File:    /u4/peter/prolog/ks299/int
% Author:  Original by Steven Hardy. Reworked by Peter Ross.
% Updated: 6 Sep 84 by Peter Ross
% Purpose: a simple rule interpreter in the style of KS-300

% Original code courtesy of Teknowledge Inc. - so don't make use of it
% without acknowledging them.

% The rule base is made up of assertions of the form
%	RULE: if PREMISE then CONCLUSION.
% where	RULE is an atom,
%	PREMISE is a simple proposition of the form
%			THING = VALUE
%		     or THING is known
%		     or THING is unknown
%		or is a combination of simple propositions
%		   built up using "and" and "or", where "or"
%		   binds tighter than "and",
%       CONCLUSION is a simple conclusion of the form
%			THING = VALUE
%		     or THING = VALUE cf CONFIDENCE

==== ecmi01/oldai2_scons.txt ====
/* This file defines three useful predicates:
         retractall(X)   which retracts all clauses beginning with
                         X, e.g. retractall(fry(_)) will retract
                         the clause fry(fish) and the clause
                         fry(X) :- (fishy(X);vegatable(X)).
         scons(File)     which consults the file File, but doesn't
                         print extra information on your terminal
                         (scons = Silent CONSult)
         srecons(File)   which does the same but reconsults
                         (srecons = Silent RECONSult)
*/

retractall(X) :- retract(X), fail.
retractall(X) :- retract((X:-Y)), fail.
retractall(_).           % this succeeds when the other two have failed
                         % because nothing is left to retract.

scons(File) :-
         seeing(Input),
         see(File),
         repeat,

==== ecmi01/charlist.txt ====
charlist([],[]).
charlist([X],Y) :- atomic(X),name(X,Y).
charlist([F,','|Rest],L) :-
	name(F,L1), charlist(Rest,L2),
	append(L1,[44|L2],L), !.
charlist([F|R],L) :-
	name(F,L1), charlist(R,L2),
	append(L1,[32|L2],L).

append([],L,L).
append([X|Y],L1,[X|L]) :-
	append(Y,L1,L).

==== ecmi01/ff_rules.txt ====
% File: /usr/lib/prolog/teach/faultfiner/rules
% Author: Peter hammond, IC, 1982. Rewritten by Peter Ross
% Updated: 30 Nov 1983
% Purpose: the guts of FAULTFINDER.

% The only export is check_rule/3. This finds the final state
% of a fault by working recursively through the causes, and their
% causes...

check_rule(general, Fault, History) :-
	check_causes_of(Fault, History).
check_rule(specific, Fault, History) :-
	suggest_action_for(Fault),
	check_again_for(Fault, History).
check_rule(separable, Fault, History) :-
	suggest_action_for(Fault),
	test_action_for(Fault, Ans, History),
	pursue_causes_of(Fault, Ans, History).

%		***********************
%		* Machinery for rules *

==== ecmi01/recurse2.txt ====
/* generate integers */

is_int(0).
is_int(X) :-
         is_int(Y),
         X is Y+1.

/* generate pairs with sum X */

pair(X,X,0).
pair(X,N1,N2) :-
         X>0,
         X1 is X-1,
         pair(X1,N1,N3),
         N2 is N3+1.

/* generate Pythagorean triples */
pythag(X,Y,Z) :-
         is_int(A),
         pair(A,Y,Z),            % get a pair of numbers Y and Z
         Z>0,

==== ecmi01/ai2_simplify.txt ====
/* SIMPLIFY.
   The aim of the predicate simplify is to reshuffle expressions which
   are sums of unknowns (represented by Prolog atoms) and integers so
   that all the unknowns are at the start and the sum of all the
   integers is at the end, e.g.
         x+3+y+4+z      gets reshuffled to      x+y+z+7
   This is (a) useful in mathematical manipulations by computer
   and     (b) an illustration of a useful technique called
               "difference pairs".

   To summarise the idea: a structure such as +(a,+(b,c)) could be
   drawn as
                 +
                / \
               a   +
                  / \
                 b   c

   The idea is that when constructing such things you can represent
   intermediate stages as the "difference" of
                 +

==== ecmi01/ai2_findall.txt ====
findall(X,P,L) :-
         asserta(found([])),
         call(P),
         rec(X),
         fail.
findall(X,P,L) :-
         retract(found(L)),!.

rec(X) :-
         retract(found(L)),!,
         append(L,[X],L1),
         asserta(found(L1)).

append([],X,X).
append([X|L1],L2,[X|L3]) :- append(L1,L2,L3).

==== ecmi01/ff_readme.txt ====
This partitioned file contains the source of a very simple expert system called
FAULTFINDER, and a sample database for it to work on. A brief description
of the idea, though not of the program itself (which is pretty much common
sense), can be found in the file 'FF'. FAULTFINDER is really a general system,
and you need to create specific fault hierarchy descriptios for it to work on.
There is an example in ECMI01.FF_GASHEATER. Look at 'FF' to find out more.

The files in the partitioned file ECMI01.FF are

	README		this file
	EXPLAIN		the explanation sub-system
	FF		the file to read in to get everything else read in
                        It also has a terse description of the system.
	GASHEATER	the specific example (a gas water heater)
	LOAD		the routines to load a file such as 'GASHEATER'
	MAIN		the top level of FAULTFINDER
	RULES		the guts of FAULTFINDER
	UTILS		some utilities used in 'explain', 'main' and 'rules'

To get started, use 'util' so that member/2 and memberchk/2 are available:


==== ecmi01/oldai2_visiting.txt ====
% File: ECMI01.AI2_VISITING
% Author: Peter Ross
% Purpose: a simple database example
%
% This contains a baby database:
%	visiting(A,B)		meaning A is currently visiting B
%	at(A,Place)		meaning A is at Place
%	phone(Place, Number)	meaning the phone at Place is Number
% There is a predicate 'ring' which finds out which number to ring
% to get hold of a particular person, or vice-versa.

% ---- phone numbers -----

phone(place_a, 667-5770).
phone(place_b, 339-5390).
phone(place_c, 229-8901).
phone(place_d, 229-6031).
phone(place_e, 667-1011-2551).

% ---- some 'at' details ----


==== ecmi01/oldai2_diff.txt ====
:- op(700,xfx,:).
:- op(200,xfy,@).

go :- write('Want instructions? Type y or n and press return...'), nl,
      prompt(Old,'y/n? '),
      get(C), skip(10),
      tellall(C),
      prompt(Yn,'diff: '),
      dv.

tellall(C) :- (C=89;C=121),
         emas(ty,'ecmi01.ai2_diffnotes').
tellall(C).
dv :- repeat, read(T), (T=stop; derive(T), fail).

derive(T:X) :- T : X, !.

X : [U] :- X : U.
X : [U|V] :- d(X,U,W), simplify(W,Z), Z : [V].
X : Y :- d(X,Y,W), simplify(W,Z), nl, output(Z), nl, nl.


==== ecmi01/ai2_grulex.txt ====
/* Example of definite clause grammar, as given on the class handout */

expr(Z) --> term(Z).
expr(Z) --> term(X),"+",expr(Y),{Z is X+Y}.
expr(Z) --> term(X),"-",expr(Y),{Z is X-Y}.

term(Z) --> number(Z).
term(Z) --> number(X),"*",term(Y),{Z is X*Y}.
term(Z) --> number(X),"/",term(Y),{Z is X/Y}.

number(X) --> [C],{48=<C,C=<57,X is C-48}.
number(C) --> "+",number(C).
number(C) --> "-",number(X),{C is -X}.

==== ecmi01/oldai2_liza.txt ====
/*   Simple ELIZA
     -- a natural language misunderstander --
     Alan Bundy 15-Nov-79, Richard O'Keefe 17-Feb-81
     Peter Ross 5-Nov-81
*/

:-(['ecmi25.util_readin']).       % load read_in + necessary support.

/* The top level: call liza (so named 'cos it's a mini-version of ELIZA)
   to get going.
   The predicate read_in reads in sentences, currently ending with a
   full stop, exclamation mark or question mark. Thus
         read_in(X)
   will read in
         hello there.
   as
         X = [hello,there,.]
   NOTE: use lower-case letters at the front of words, this is a simple
   beast!
*/


==== ecmi01/ai2_maze.txt ====
/* Maze.
   Peter Ross, 12-Nov-81.

   The database in this file describes a maze. All the cells are
   labelled with a letter and number, e.g. e2, f12 etc, except for
   the two called in and home. The predicate door(X,Y) means that
   there is a (two way) door between cells X and Y. The predicate
   move(X,Y) expresses the fact that the doors are two-way - it
   means you can move from cell X to cell Y in one move.

   Tasks:
         (1) show you CAN get from in to home.
         (2) find the shortest route
         (3) show you CAN'T get from in to home if the doors are
             only one way!

   NOTE: don't bother trying to draw the maze - (a) it has an
         idiosyncratic cell labelling scheme, and (b) it isn't
         two-dimensional!

*/

==== ecmi01/ai2_grtrans.txt ====
expr(Z,S0,S) :- term(Z,S0,S).
expr(Z,S0,S) :- term(X,S0,S1),c(S1,43,S2),expr(Y,S2,S),Z is X+Y.
expr(Z,S0,S) :- term(X,S0,S1),c(S1,45,S2),expr(Y,S2,S),Z is X-Y.

term(Z,S0,S) :- number(Z,S0,S).
term(Z,S0,S) :-
         number(X,S0,S1),c(S1,42,S2),
         write('s2 '),write(S2),nl,
         write('s  '),write(S),nl,
         term(Y,S2,S),
         write('y  '),write(Y),nl,
         write('x  '),write(X),nl,
         integer(X),integer(Y),
         Z is X*Y.
term(Z,S0,S) :- number(X,S0,S1),c(S1,47,S2),term(Y,S2,S),Z is X/Y.

number(X,S0,S) :- c(S0,C,S),48=<C,C=<57,X is C-48.
number(X,S0,S) :- c(S0,43,S1),number(X,S1,S).
number(X,S0,S) :- c(S0,45,S1),number(Y,S1,S),X is -Y.

==== ecmi01/tprover.txt ====
:- op(700,xfy,eqv).
:- op(650,xfy,imp).
:- op(600,xfy,or).
:- op(550,xfy,and).
:- op(500,fy,not).
false(f) :- !.
false(not t) :- !.
false(P eqv Q) :- false((P imp Q) and (Q imp P)).
false(P imp Q) :- false(Q or not P).
false(P or Q) :- false(P), false(Q).
false(P and Q) :- (false(P) ; false(Q)).
false(not not P) :- false(P).
false(not(P eqv Q)) :- false(not(P imp Q) or not(Q imp P)).
false(not(P imp Q)) :- false(not(Q or not P)).
false(not(P or Q)) :- false(not P and not Q).
false(not(P and Q)) :- false(not P or not Q).

theorem(T) :- (false(T), write('false'),!;write('true')),nl.

==== ecmi01/robot51.txt ====
.pg 5.1 2-D silhouette vision
This section describes how various sorts of information can be extracted from 
a simple silhouette image, i.e. an image consisting essentially of a 
rectangular array of values each either 0 (representing a point not part of
the image of some object) or 1 (representing a point that is part of some 
object). Consider, for example, this image of the letter 'T':
.nf
.sp 1
                        00000000000000000000000000
                        00000011111111111100000000
                        00000011111111111100000000
                        00000000001111000000000000
                        00000000001111000000000000
                        00000000001111000000000000
                        00000000001111000000000000
                        00000000001111000000000000
                        00000000000000000000000000
.sp 1
.fi
It conveniently fits the frame of the image and is aligned nicely with the 
sides, which shows that it is an artificial example. The 234 values that make

==== ecmi02/winst_arch1prb.txt ====
/*arch1.prb
Winston arch domain
Alan Bundy 5.12.80
use with winston
version with functions */


/* description trees */

tree(shapetree,1,shape(prism(wedge,block),pyramid)).

tree(touchtree,2,touchrel(separate,touch(marries,abuts))).
default(touchtree,separate). % default predicate

tree(orienttree,1,orientation(lying,standing)).

tree(directiontree,2,direction(leftof,rightof)).

tree(supporttree,2,undef(supports,unsupports)).



==== ecmi02/nl_xnl.txt ====
xnl
atn
atnold
eliza
elizanew
parse
qa
.END




==== ecmi02/nl_eliza.txt ====
/*eliza*/
/*natural language conversational program
Alan Bundy 15.11.79*/


/*variable marker*/
:- op(500,fx,[?]).

/*top level*/
eliza :- read_in(Input), eliza(Input).

eliza([bye,.]) :- !.

eliza(Input) :- sr_pair(S,R),
        match(Input,S,off,Subst),
        replace(R,Subst,Output),
        print_list(Output), eliza.

/*associative one way matcher*/
match([],[],off,[]).


==== ecmi02/nl_parse.txt ====
/*parse*/
/*acceptor and parser for sentences from ATN
Alan Bundy 29.11.79
use with readin*/


/*Acceptor Top Level*/
accept :- read_in(Text), accept(Text).

accept(Text) :- accept_part(Text,sentence,start,[]).

/*Accept part of a sentence*/
accept_part(Text,ATN,finish,Text) :- !.

accept_part([Word|Rest],ATN,start,Rest) :-
        arc(ATN,start,finish,Word,t).

accept_part(Text,ATN,Node,Rest) :-
        arc(ATN,Node,Next,SubATN,nt),
        accept_part(Text,SubATN,start,Text1),
        accept_part(Text1,ATN,Next,Rest).

==== ecmi02/teach_randomold.txt ====
/*random*/
/*Random number generator
Alan Bundy 22.11.79*/

/*Get random Num in Range*/
random(Range,Num) :-
        seed(Seed), random(Range,Seed,Num).

/*Get Num ffrom Seed first time*/
random(Range,Seed,Num) :- Num is (Seed mod Range) + 1.

/*Grow Num on subsequent occasions*/
random(Range,Seed,Num) :-
        NewSeed is 125*Seed + 1,
        random(Range,NewSeed,Num).

/*random number seed*/
seed(13).

/*Choose random element of list*/
random_pick(List,El) :-

==== ecmi02/plan_expon.txt ====
/*----- Synthesis of an exponentiation routine -----*/

:-op(700,xfx,=/=).


X after test(X,U) :- X after_test U.

w:loop(U,V,W) after loop(U,V,W).

R:X1*X2 after mult(R,R1,R2,X1,X2).
R:X1-X2 after subtc(R,R1,X2,X1) :- const(X2).
R:X1/X2 after divc(R,R1,X2,X1) :- const(X2).


zero(X) after_test zero(R,X).
even(X) after_test even(R,X).


test(X,U) needs C :- U needs C.
if(_,_,C,_) needs C.


==== ecmi02/math_divide.txt ====
/* DIVIDE.

Test example for SEMANT and MODEL
Clauses and Model for not divides example (see notes p124)

Alan Bundy  22.6.81 */

/* Clauses */

clause(right, [not_div(X*Z,Y)], [not_div(X,Y)], input). % Input clauses

clause(left, [not_div(Z*X,Y)], [not_div(X,Y)], input).

clause(thirty, [equal(30,2*3*5)], [], input).

clause(hypothesis, [not_div(5,a)], [], input).


clause(conclusion, [], [not_div(30,a)], topclause).     % Top clause



==== ecmi02/evans_evans.txt ====
/*evans*/
/*Evan's Geometric Analogy Program - Rational Reconstruction*/
/*Alan Bundy 26.10.79*/


/*top level program*/
evans(FigA,FigB,FigC,AnsList,Ans) :-
        find_rule(FigA,FigB,Rule), rule_is(Rule),
        apply_rule(Rule,FigC,AnsObjs,AnsRels,Sims),
        ans_desc(AnsObjs,AnsRels,Sims),
        select_result(FigC,AnsList,AnsObjs,AnsRels,Sims,Ans),
        ans_is(Ans).


/*find rule given figures*/
find_rule(FigA,FigB,Rule) :-
        relations(FigA,Source), relations(FigB,Target),
        objects(FigA,Alist), objects(FigB,Blist),
        similarities(FigA,FigB,Triples),
        select_set(Triples,Matches),
        takeaway1(Alist,Matches,Removals),

==== ecmi02/math_semant.txt ====
/* SEMANT.

A Depth First Theorem Prover
with vetting by use of interpretations and
incorporating input restriction.
Use with MODEL
DIVIDE contains test example

Alan Bundy 22.6.81 */


/* Top Goal */

go :-
        clause(Goal,_,_,topclause),     % Find the top clause
        semantic(Goal).                 % and away you go


/* Depth first theorem prover */
semantic(Old) :-
        successor(Old,New),     % Find a successor to the current clause

==== ecmi02/nl_atnold.txt ====
/*atn*/
/*generation of random sentences from an ATN
Alan Bundy 19.11.79
use with eliza (for print_list)*/


/*Top Level*/
generate :- generate(sentence,start,Sentence), print_list(Sentence), fail.

generate(ATN,finish,[]).

generate(ATN,Node,[Word|Rest]) :-
        arc(ATN,Node,NewNode,Word,t),
        generate(ATN,NewNode,Rest).

generate(ATN,Node,Sent) :-
        arc(ATN,Node,NewNode,SubATN,nt),
        generate(SubATN,start,SubBit),
        generate(ATN,NewNode,Rest),
        append(SubBit,Rest,Sent).


==== ecmi02/winst_archprb.txt ====
/*arch.prb
Winston arch domain
Alan Bundy 5.12.80
use with winston */

/* space of description trees */
space(arch,[shapetree,touchtree,orienttree,directiontree,supporttree]).


/* description tree */

tree(shapetree,1,shape(prism(wedge,block),pyramid)).

tree(touchtree,2,touchrel(separate,touch(marries,abuts))).
default(touchtree,separate). % default predicate

tree(orienttree,1,orientation(lying,standing)).

tree(directiontree,2,direction(leftof,rightof)).

tree(supporttree,2,undef(supports,unsupports)).

==== ecmi02/emas4#mung.txt ====


%% NEXT FILE %%

nextfl
,dska:emas4.ccl
,nextfl
,dska:infer.[400,405,teach]
,nextfl
,dska:mandc.[400,405,teach]
,nextfl
,dska:random.[400,405,teach]
,nextfl
,dska:random.old[400,405,teach]
,nextfl
,dska:read.[400,405,teach]
,nextfl
,dska:readin.[400,405,teach]
,nextfl
,dska:figure.[400,405,teach,evans]
,nextfl

==== ecmi02/math_skolem.txt ====
/* SKOLEM.

Skolem Normal Form Procedure
(FORMUL contains test examples)

Alan Bundy 17.3.79 */


/*operator declarations*/

:- op(400,xfy,;).               % Disjunction

:- op(300,xfy,<->).             % Double Implication

:-op(400,xfy,->).               % Implication


/*skolem normal form*/

skolem(Sentence,NormalForm) :- !,               % Normal calling pattern
        skolem(Sentence,NormalForm,[],0).       % assume no free vars and being asserted

==== ecmi02/winst_xwinst.txt ====
xwinst
archprb
arch1prb
blockprb
isolprb
pairprb
winst
.END




==== ecmi02/teach_mandc.txt ====
/*mandc
Missionaries and Cannibals program
Alan Bundy 6.11.79*/


/*top level*/
mandc :- gofrom([3,3,1],[0,0,0],[]).

gofrom([0,0,0],Right,OldLefts) :- writef('which is goal state\n \n',[]).

gofrom(Left,Right,OldLefts) :-
        legal(Left), legal(Right),
        not(member(Left,OldLefts)),
        applymove(Left,Right,[ML,CL,BL],[MR,CR,BR]),
        writef('\nThe left bank now contains %t  missionaries and %t cannibals \n',[ML,CL]),
        writef('The right bank now contains %t missionaries and %t cannibals \n',[MR,CR]),
        gofrom([ML,CL,BL],[MR,CR,BR],[Left|OldLefts]).

gofrom(_,_,_) :- writef('Backing up one move \n',[]), fail.

/*decide which way to move*/

==== ecmi02/winst_pairprb.txt ====
/*pair.prb              It is difficult for the untrained fisher
Winston arch domain     to follow examples of this complexity so
Alan Bundy 5.12.80      here is a simple concept: two wedges.
use with winston */

/* space of description trees */
space(pair,     %  each concept must have a space; is this **right**?
        [shapetree,touchtree,orienttree]).


/* description tree */

tree(shapetree,1,shape(wedge,block)).

tree(touchtree,2,touchrel(separate,touch)).

tree(orienttree,1,orientation(lying,standing)).


%   Examples


==== ecmi02/plan_wplanc.txt ====
/* WARPLAN-C CONDITIONAL PLAN GENERATOR */


plans:-plan_from(start,_).

plan_from(T0,A):-
   want C,
   consistent(C,A),
   plan(C,void,T0,P,T,A,[]),
   other_cases(T,P,A,exit).

plan(X1&X2,P0,T0,P,T,A,G):-!,
   plan(X1,P0,T0,P1,T1,A,G),
   plan(X2,P1,T1,P,T,A,G).
plan(X,P0,T0,P,T0,A,G):-
   (always X,P=P0; holds(X,T0),setadd(X,P0,P)).
plan(X,_,_,_,_,A,_):-minimality_violation(X,A),!,fail.
plan(X,_,T0,_,_,_,G):-recorded(loopcheck,Type,_),
   (Type=weak,mkground(X,0,_);Type=strong),
   listel(X:T0,G),!,fail.
plan(X,P0,T0,P,T,A,G):-

==== ecmi02/math_rewrit.txt ====
/* REWRIT.

Simple depth first search rewrite rule system
see Artificial Mathematicians p 104.
Use with UTIL

Alan Bundy  10.7.81 */


/* Find Normal Form of Expression */

normalize(Expression, NormalForm) :-    % To put an expression in normal form:
        rewrite(Expression, Rewriting),         % Rewrite it once
        normalize(Rewriting, NormalForm).       % and recurse

normalize(Expression, Expression) :-    % The expression is in normal form
        not rewrite(Expression, _).     % if it cannot be rewritten


/* Rewrite Rule of Inference */


==== ecmi02/teach_random.txt ====
/*random*/
/*Random number generator
Alan Bundy 22.11.79*/

/*Get Num from Seed and update seed*/
random(Range,Num) :-
        seed(Seed),
        Num is (Seed mod Range) + 1,
        retract(seed(Seed)),
        NewSeed is 125*Seed+1,
        assert(seed(NewSeed)).


/*random number seed*/
seed(13).

/*Choose random element of list*/
random_pick(List,El) :-
        length(List,L), random(L,N), nth(N,List,El).

/*find nth element of a list*/

==== ecmi02/math_breadt.txt ====
/* BREADTH.

A Breadth First Search Theorem Prover.
EQUAL contains test example.

Alan Bundy 16.6.81 */


/* Top Goal */

go :- breadth(0).


/* Breadth First Search Strategy */

breadth(N) :-
        N1 is N+1,                      % Calculate new depth
        repeat(resolve(input,N,N1)),    % Form all resolvants at that depth
        repeat(resolve(N,input,N1)),
        breadth(N1).                    % and recurse


==== ecmi02/math_formul.txt ====
/* FORMUL.

Test Formulae for SKOLEM program

Alan Bundy 23.6.81 */


test1(Ans) :-
        skolem( all(a, all(b, all(c, some(x, a*xf2 + b*x + c = 0)))), Ans).

test2(Ans) :-
        skolem( all(m, some(delta, all(x, (abs(x)=<delta) -> (1/x)>m))), Ans).




==== ecmi02/plan_xplan.txt ====
xplan
expon
wplanc
wpo
.END




==== ecmi02/evans_figure.txt ====
/*figures*/
/*test descriptions for evans program*/
/*Alan Bundy 26.10.79*/

problem1(Ans) :- evans(figa,figb,figc,[fig1,fig2,fig3,fig4,fig5],Ans).
problem2(Ans) :- evans(figa,figb,figc,[fig1,fig2,fig3,fig4a,fig5],Ans).
problem3(Ans) :- evans(figa,figb,figc,[fig1,fig2,fig3,fig5],Ans).


objects(figa,[tri1,tri2]).
relations(figa,[[inside,tri1,tri2]]).

objects(figb,[tri3]).
relations(figb,[]).

similarities(figa,figb,[[tri2,tri3,direct], [tri1,tri3,[scale,2]]]).

objects(figc,[square,circle]).
relations(figc,[[inside,square,circle]]).



==== ecmi02/plan_wpo.txt ====
:-op(950,xfx,[after,needs,affects,after_test,if]).
:-op(950,fx,[always,never,initially,want]).
:-op(900,xfy,&).
:-op(700,xfx,:).
:-op(600,fx,\).



==== ecmi02/math_unify.txt ====
/* UNIFY.

Unification procedure for first order logic (with occurs check)
See p80 of Artificial Mathematicians.

Alan Bundy 10.7.81 */


/* Top Level */

unify(Exp1, Exp2, Subst) :-             % To unify two expressions
        unify(Exp1, Exp2, true, Subst). % Start with empty substitution


/* Unify with output and input substitutions */

unify(Exp, Exp, Subst, Subst).          % If expressions are identical, succeedd

unify(Exp1, Exp2, OldSubst, AnsSubst) :-        % otherwise
        disagree(Exp1,Exp2,T1,T2),      % find first disagreement pair
        make_pair(T1,T2,Pair),          % make a substitution out of them, if pos

==== ecmi02/math_boyer.txt ====
/* BOYER.

                                                Leon Sterling
                                                Updated: 24 July 81

A simple Boyer-Moore theorem prover as in
                Chap. 11 The Productive Use of Failure
                in 'Artificial Mathematicians'.

        The code written here is a simplified version of the algorithm
described in a paper of J Moore
'Computational Logic: Structure Sharing and Proof of Program Properties',
Xerox report CSL 75-2, which appeared also as Dept. of Computational Logic
memo no. 68, and the second part of Moore's Ph.D. thesis.
This is a simplified version of the theorem-prover described in the book
'A Computational Logic' by Boyer and Moore.

        Variable and procedure names have been chosen to be the same
as much as possible, and the mini-projects will be aided by the description
in the paper.


==== ecmi02/nl_qa.txt ====
/*qa*/
/*Question Answering system based on Eliza
Alan Bundy 16.11.79
use with readin, eliza and infer*/


/*top level*/
qa :- read_in(Input), qa(Input).

qa([bye,.]) :- !.

qa(Input) :-
        translate(Input,Desc,Type), answer(Type,Desc), qa.

/*translation*/
translate(Input,Desc,Type) :-
        sm_triple(S,D,Type), match(Input,S,off,Subst),
        replace1(Subst,D,Desc).

/*replace variables by phrases in description*/
replace1(Subst,Word,Word) :- (atomic(Word); var(Word)), !.

==== ecmi02/winst_isolprb.txt ====
/* isol.prb
Definition of Isolation space and examples for Winston Program
Alan Bundy 18.2.81 */

/* Predicate Trees */

tree(occurtree,2,occur_rel(freeof,contains(singleocc,multocc))).
default(occurtree,freeof).

tree(simtree,2,sim_rel(different(unrelated,inverse),ident)).
default(simtree,unrelated).


/* Examples and near Misses */

specimen(isol1, [singleocc(x,expr_at([1,2],before)),
                freeof(x,expr_at([1,1],before)),
                freeof(x,expr_at([2],before)),
                ident(expr_at([1,1],before),expr_at([2,1],after)),
                ident(expr_at([1,2],before),expr_at([1],after)),
                ident(expr_at([2],before),expr_at([2,2],after)),

==== ecmi02/math_simple.txt ====
/* SIMPLE.

Using PROLOG as a theorem prover:
An equality axioms example.
Try goal 'equal(y,x).'.

Alan Bundy  16.6.81 */


equal(x,y).             % The Hypothesis

equal(X,X).             % The Reflexive Axiom

equal(U,W) :- equal(U,V), equal(W,V).   % The Twisted Transitivity Axiom


/* MINI-PROJECTS

1. Try goal ?- equal(y,x).

2.  Experiment by switching the order of the above axioms and trying

==== ecmi02/math_xmath.txt ====
xmath
boyer
breadt
divide
equal
formul
heuris
model
rewrit
semant
simple
skolem
unify
.END




==== ecmi02/math_heuris.txt ====
/* HEURIS.

A Heurisitic Search Theorem Prover.
EQUAL contains test example.

Alan Bundy 19.6.81 */


/* Top Goal */

go :-
        clause(Goal,_,_,topclause),
        heuristic([Goal]).


/* Heuristic Search Strategy */

heuristic(Fringe) :-
        pick_best(Fringe,Current,Rest),         % Pick the clause with best score
        findall(Clause,successor(Current,Clause),NewClauses),   % findall its successors
        append(Rest,NewClauses,NewFringe),      % Put them on fringe

==== ecmi02/teach_read.txt ====
/*read file term by term*/
foo :- see(mandc), repeat, read(T), write(T), nl,
        T=(:-end), seen.




==== ecmi02/nl_elizanew.txt ====
/*   Simple ELIZA
     -- a natural language misunderstander --
     Alan Bundy 15-Nov-79, Richard O'Keefe 17-Feb-81
*/

:- [readin].    %  load read_in(-) adn its support.

:- public eliza/0. :- mode eliza.

eliza :-
        read_in(Input),
        mandatory_substitutions(Input, Clean),
        Clean \== [bye,.],
        rule(Given, Yield),
        match(Given, Clean),
        reply(Yield), nl, !,
        eliza.
eliza :-
        write('I hope I have helped you.'), nl.

:- mode mandatory_substitutions(+, -), idiom(+, -).

==== ecmi02/teach_infer.txt ====
/*infer*/
/*LOGO type inference package
Alan Bundy 16.11.79*/


/*infer fact by backwards inference*/
infer(Goal) :- infer(Goal,now).

infer(Goal,Sit) :- fact(Goal,Sit).

infer(Goal,Sit) :-
        backward_rule(Ant,Goal), infer(Ant,Sit).

infer(Goal1&Goal2,Sit) :-
        infer(Goal1,Sit), infer(Goal2,Sit).

/*assert fact and trigger forwards inference*/
assert_fact(Fact) :- assert_fact(Fact,now).

assert_fact(Fact,Sit) :-
        assert(fact(Fact,Sit)),

==== ecmi02/math_model.txt ====
/* MODEL.

How to evaluate a clause in an interpretation
(provided it is variable free!!)
use with SEMANT
DIVIDE contains test examples

Alan Bundy 22.6.81 */


/* Vet the clause in any interpretations */

vet(Clause) :-
        not satisfiable(Clause).        % Clause has no model


/* Clause is satisfiable in some Interpretation */

satisfiable(Clause) :-
        interpretation(Interp),         % If there is an interpretation
        model(Interp,Clause),           % in which Clause is true

==== ecmi02/winst_winst.txt ====
/*winst
Rational Reconstruction of Winston Learning Program
Alan Bundy 1.12.80
Version for functions */

/* Top Level Program - learn new concept */
/* ------------------------------------- */

/*First time only accept an example */
winston(Concept) :- !,
        writef('Please give me an example of a %t \n', [Concept]),
        read(Ex), nl,
        make_rec(Concept,Ex,EObjs,ERec),
        maplist(gensym1(plato),EObjs,CObjs),
        make_subst(EObjs,CObjs,Subst),
        subst(Subst,ERec,CRec),
        maplist(add_ups,CRec,CDefn),
        assert(definition(Concept,CObjs,CDefn)),
        winston1(Concept).

/* Is grey area in definition eliminated? */

==== ecmi02/nl_atn.txt ====
/*atn*/
/*generation of random sentences from an ATN
Alan Bundy 19.11.79
use with random*/


/*Top Level*/
generate :- generate(sentence,start),
        writef('\n\n',[]),
        generate.

generate(ATN,finish).

generate(ATN,Node) :-
        arc(ATN,Node,Choices),
        random_pick(Choices,[NewNode,Label,Type]),
        gen(Type,Label,ATN,NewNode).


gen(atn,SubATN,ATN,NewNode) :-
        generate(SubATN,start),

==== ecmi02/teach_xteach.txt ====
xteach
infer
mandc
read
readin
random
randomold
.END




==== ecmi02/evans_xevans.txt ====
xevans
evans
figure
.END




==== ecmi02/winst_blockprb.txt ====
/*block.prb
Winston block domain - simple test example
Alan Bundy 6.12.80
use with winston */


/* space of description tree(s) */
space(block,[shapetree]).

/* description tree(s) */
tree(shapetree,1,shape(prism(wedge,block),pyramid)).

/* Example and near miss */
specimen(block1,[block(a)]).

specimen(wedge1,[wedge(b)]).




==== ecmi02/teach_readin.txt ====
/* Read a sentence */

 :- mode initread(-).
 :- mode readrest(+,-).
 :- mode word(-,?,?).
 :- mode words(-,?,?).
 :- mode alphanum(+,-).
 :- mode alphanums(-,?,?).
 :- mode digits(-,?,?).
 :- mode digit(+).
 :- mode lc(+,-).

 :- module(readin,[read_in(1)]).

/* Read sentence */

read_in(P):-initread(L),words(P,L,[]),!.

initread([K1,K2|U]):-get(K1),get0(K2),readrest(K2,U).

readrest(46,[]):-!.

==== ecmi02/math_equal.txt ====
/* EQUAL.

Test example for BREADT and HEURIS.
Symmetry can be inferred from reflexivity and twisted transitivity
(notes p62).

Alan Bundy  22.6.81 */

clause(hypothesis, [equal(x,y)], [], input ).   % Input clauses
clause(reflexive,  [equal(X,X)], [], input ).
clause(twisted,    [equal(U,W)], [equal(U,V), equal(W,V)], input ).

clause(goal,       [], [equal(y,x)], topclause).        % Top clause




==== ecmi04/scrnlpl.txt ====
%   File   : nlproj.pl
%   Author : Alan Bundy ?
%   Written: ?
%   Updated: 24 January 1985
%   Purpose: a simple RTN grammar sentence generator for AI1 project

%  Taken from file rtn.pl:-

/* generation of random sentences from an rtn */

/* use with random and drinks */

/*top level*/
go :- generate(sentence,start),         /* generate a sentence from start */
      nl,nl.                            /* and print 2 new lines */

generate(RTN,finish).                   /* if at finish then do nothing */

generate(RTN,Node):-                    /* to generate RTN from node */
      arc(RTN,Node,Arcs),               /* find all arcs leaving node */
      random_pick(Arcs,[NewNode,Label,Type]),  /* pick one at random*/

==== ecmi04/trpai1.txt ====
recall
zm-.Emas Prolog                version 4.zm-.Command:.f<red>e
mail compose
ecmi52
student log
@red
y
q
destroy red
.endjob

==== ecmi04/trpai2.txt ====
%external %routine ai1prolog (%string (255) s)
%external %routine %spec obeyjob (%string (255) s)
%external %routine %spec prolog (%string (255) s)
prolog (s)
obeyjob ("ecmi04.trpai1")
%end
%end %of %file

==== ecmi04/winston_winst.txt ====

(Message 1)
From:     HELEN    HPS (on ERCC DEC-10) <Pain@EDXA>
Date:     Wednesday, 16-Jan-85 14:04:30-GMT
To:       ecmi08@2972,Pain@EDXA
Via:      uk.ac.edinburgh.edxa  ; (to uk.ac.edinburgh.emas) 16 Jan 85  14:05:26 gmt
Msg ID:   <132001-454-212@EDXA>

--------
/* winst

Consulting all focussing files
Alan Bundy 8.7.82 */

?- [
	conn,		/* operator declarations */
	focus,		/* top level stuff */
	makerc,		/* make records from specimens */
	classi,		/* classify as exs, non-exs or grey */
	learn		/* and apply focussing */
	].

==== ecmi04/appen1pgp.txt ====
;[6{

                                                 217








APPENDIX A


                      EDITING COMMANDS, STORIES AND NOTES ON THE CHILDREN




                     This appendix contains:

[48{



==== ecmi04/chap6pgp.txt ====
;[6{

                                                 131








CHAPTER 7


                               DETAIL OF THE EDITCOST AND PHONCODE PROGRAMS




                       7.1. Introduction

[48{



==== ecmi04/random.txt ====
/* Random number generator */

random_pick(List,El):-                  /* to pick random element from a list*/
      length(List,L),
      random(L,N),
      nth(N,List,El).

random(Range,Num):-                     /* to choose random number in range */
      seed(Seed),                       /* get seed from database */
      Num is (Seed mod Range) + 1,      /* fit seed into range */
      retract(seed(Seed)),              /* delete old value of seed */
      NewSeed is (125*Seed+1) mod 4093, /* calculate new value*/
      assert(seed(NewSeed)).            /* and assert it into database */

seed(13).                               /* random number seed database entry */

/* to get the nth element of list */

nth(1,[Hd|T],Hd):- !.                   /* if n is i then return first element*/

nth(N,[Hd|T],El):-                      /* otherwise*/

==== ecmi04/exer_print.txt ====
/* Practical example - 28th February 1984 -  Helen Pain */
/* AI1 */


/* Consult the file   'ecmi04.printexs'     */

/* this file contains some examples of input and output
   using read and write */

/* type go to start */

go:-
      write('remember to terminate your input with a full stop'),nl,
      nl,nl,
      process_atom, nl,
      process_atom, nl,
      process_atom, nl,nl,
      process_list, nl,nl,
      process_string, nl,nl,
      process_clause, nl,nl.


==== ecmi04/winston_conn.txt ====

(Message 2)
From:     HELEN    HPS (on ERCC DEC-10) <Pain@EDXA>
Date:     Wednesday, 16-Jan-85 14:04:47-GMT
To:       ecmi08@2972,Pain@EDXA
Via:      uk.ac.edinburgh.edxa  ; (to uk.ac.edinburgh.emas) 16 Jan 85  14:06:00 gmt
Msg ID:   <132001-454-275@EDXA>

--------
/* CONN.

Operator Declarations for Logical Connectives
Alan Bundy 27.8.82 */

:- op(980,xfy,['->','<->']).	/* implication and equivalence */
:- op(850,xfy,v).		/* disjunction */
:- op(710,fy,~).		/* negation */

--------


==== ecmi04/family.txt ====
mother(mary,tom).
mother(mary,jane).
mother(mary,fred).
father(tom,jim).
father(tom,sue).
father(fred,cecil).

female(mary).
female(jane).
male(tom).
male(jim).
female(sue).
male(cecil).
male(fred).

parent(Parent,Child):-
        father(Parent,Child).
parent(Parent,Child):-
        mother(Parent,Child).
son(Son,Person):-
        parent(Person,Son),

==== ecmi04/winston_arch3prb.txt ====

(Message 5)
From:     HELEN    HPS (on ERCC DEC-10) <Pain@EDXA>
Date:     Wednesday, 16-Jan-85 14:05:54-GMT
To:       ecmi08@2972,Pain@EDXA
Via:      uk.ac.edinburgh.edxa  ; (to uk.ac.edinburgh.emas) 16 Jan 85  14:09:59 gmt
Msg ID:   <132001-454-610@EDXA>

--------
/* arch2.prb
Winston arch domain 
Alan Bundy 5.12.80
use with winston */

/* space of description trees */
space(arch,[shapetree,touchtree,orienttree,directiontree,supporttree]).


/* description tree */

tree(shapetree,1,shape(prism(wedge,block),pyramid)).

==== ecmi04/trp1.txt ====
recall
zm-.Emas Prolog.zm-.Command:myprolog.f<red>e
mail compose
ECMI04
student log
@red
y
q
destroy red
.endjob

==== ecmi04/trp2.txt ====
%external %routine myprolog (%string (255) s)
%external %routine %spec obeyjob (%string (255) s)
%external %routine %spec prolog (%string (255) s)
prolog (s)
obeyjob ("ecmi04.trp1")
%end
%end %of %file

==== ecmi04/useful.txt ====
append([],L,L).
append([H|L1],L2,[H|L3]):-
      append(L1,L2,L3).


member(H,[H|_]).
member(H,[_|T]):-
      member(H,T).


rev(L,Revl):-
      rev(L,[],Revl).

rev([],L,L).
rev([H|L1],L2,M):-
      rev(L1,[H|L2],M).

nexto(X,Y,[X,Y|_]).
nexto(X,Y,[_|Z]):-
      nexto(X,Y,Z).


==== ecmi04/exsent.txt ====

29th January 1985                             Helen Pain

        Exercise for week 4, term 2: sentence generator.

        (also basis for Natural Language AI1 project)

Log on to EMAS. Get into PROLOG. Consult the following files:

                 ['ecmi04.rtn'].
                 ['ecmi04.random'].
                 ['ecmi04.drinks'].

Copy them to your own area before you run prolog.

The file 'rtn' contains a sentence generator to be used with an rtn
grammar representation.
The grammar itself is stored in the file 'drinks'.
The file 'random' contains a number of 'utilities' - other generally
useful predicates.


==== ecmi04/exer_greet.txt ====
greet([]).

greet([X|Y]):-
      greet(X),
      greet(Y).

greet(X):-
      write('Hello'),
      tab(1),
      write(X),
      nl.

prstring([]).
prstring([X|Y]):-
      put(X),
      prstring(Y).

greetstr(X):-
      write('Hello'),
      tab(1),
      prstring(X),

==== ecmi04/ai1_drinks.txt ====
/* Example rtn */

/* sentence rtn */
arc(sentence,start,[[a,nounphrase,rtn]]).
arc(sentence,a,[[b,verb,rtn]]).
arc(sentence,b,[[c,nounphrase,rtn]]).
arc(sentence,c,[[finish,stop_mark,rtn]]).

/* nounphrase rtn */
arc(nounphrase,start,[[finish,proper_noun,rtn],[a,determiner,rtn]]).
arc(nounphrase,a,[[finish,noun,rtn],[a,adjective,rtn]]).

/* verb rtn */
arc(verb,start,[[finish,is,word],[finish,drinks,word],[finish,buys,word],
[finish,refuses,word],[finish,has,word],[finish,consumes,word]]).

/* determiner rtn */
arc(determiner,start,[[finish,a,word],[finish,an,word],[finish,the,word]]).

/* noun rtn */
arc(noun,start,[[finish,vicar,word],[finish,policeman,word],[finish,drinks,word]

==== ecmi04/getstart.txt ====
SETMODE LOWER
SETMODE FLOW=ON

==== ecmi04/acknowfnl.txt ====
@part(ackn, root "thesis.mss")
@style(spacing 1)
@pageheading(immediate)
@begin(Titlepage)
@begin(titlebox)
@majorheading(A Computer Tool for Use by Children with 
Learning Difficulties in Spelling)



@majorheading(Helen Pain)

@end(titlebox)

@begin(researchcredit)
@heading(Ph.D.)
@heading(University of Edinburgh)
@heading(1985)
@end(researchcredit)
@end(titlepage)
@prefacesection(Abstract)

==== ecmi04/projs85_quip.txt ====
%   File   : QUIP
%   Author : Dave Plummer
%   Written: 23 January 1985
%   Updated: 24 January 1985
%   Purpose: simple resolution theorem prover for AI1 project


%	The code in this file implements QUIP (QUIck Prover), a resolution 
%	theorem prover, in PROLOG.  For those unfamiliar with theorem
%	proving a quick explanation is given below, for more detail see
%	"The Computational Modelling of Mathematical Reasoning" by Alan Bundy.
%	
%	QUIP proves theorems in a subset of propositional calculus.  In this
%	calculus, propositions are represented by proposition letters, eg
%	a, b, f etc;  Each letter may be thought of as abbreviating an 
%	assertion about the world which is either true or false eg: 
%	
%	"AI is the most interesting subject taught at Edinburgh University",
%	"Theorem proving is the most interesting area of AI",
%	"PASCAL is the best programming language in existence"
%	

==== ecmi04/ai1_colourmap.txt ====
% File: ECMI01.AI2_COLOURMAP
% Author: Leon Sterling
% Updated: 17 November 83
% Purpose: simple depth first search of a set of possibilities
% Needs: UTIL for member/2

% The top level is test/0.
%
% This procedure colours a map so that no two adjoining countries have
% the same colour. It is a famous theorem in mathematics, recently
% proved, that four colours are enough. It is illustrated with the
% map of Europe.
%   The program works by taking each country in turn and trying to put
% it on the map. It checks the country's neighbours to see which of
% the colours can still be used. It stops when all the countries have
% been coloured. With 4 colours and 10 countries there are at most
% 1,048,576 combinations to try!
%   assign_colours(CountriesToDo, MapSoFar, Answer) is intended to have
% as its first argument a list of the countries not yet dealt with, and
% as its second argument a list of the countries coloured so far, together
% with their colours, in the form [ ..., Country=Colour, ...]. The third

==== ecmi04/tpproject.txt ====

(Message 83)
From:     HELEN    HPS (on ERCC DEC-10) <Pain@EDXA>
Date:     Wednesday, 30-Jan-85 22:59:37-GMT
To:       ecmi04@2972,Pain@EDXA
Via:      uk.ac.edinburgh.edxa  ; (to uk.ac.edinburgh.emas) 30 Jan 85  23:01:21 gmt
Msg ID:   <132017-752-421@EDXA>

--------



       AI1 PROLOG PROJECTS: QUIP - A RESOLUTION THEOREM PROVER
       AI1 PROLOG PROJECTS: QUIP - A RESOLUTION THEOREM PROVER
       AI1 PROLOG PROJECTS: QUIP - A RESOLUTION THEOREM PROVER


                                                          Dave Plummer
                                                       30 January 1985


  Quip  is  a  resolution  theorem  prover written in PROLOG.  In this
project you are asked to investigate and understand the code,  and  to

==== ecmi04/appen3pgp.txt ====
;[6{

                                                 246








APPENDIX C

CORPUS OF ERRORS - BOTH STUDIES




                                        STUDY 1 - ERRORS


                     GQ
shipwright      shipright     heard           herd

                     design          desin         scraping        sraping

==== ecmi04/ai1_sentence.txt ====
% File: ECMI01.AI2_SENTENCE
% Author: Peter Ross and others
% Purpose: a simple-minded way of reading in a sentence
% Needs: UTIL for memberchk/2.

% Top-level goal is sentence/1. When it has succeeded the variable
% will be instantiated to a list of atoms representing the words
% typed in - e.g. if you type "who are you?" then sentence/1 will
% instantiate its argument to the list [who, are, you, ?].
%
% Procedures which read things in character by character are slightly
% more tricky than many others to design, because it is important not
% to backtrack over a get/1 goal. If that happens, the character it had
% previously read will be lost.
%
% In the program below, words/2 has an ASCII code as first argument. The
% second argument will be instantiated to the list of atoms corresponding
% to the typed sentence, starting with the given character. The first two
% words/2 clauses therefore define how the end of the sentence is defined.



==== ecmi04/chap2bpgp.txt ====
;[6{

                                                      47








CHAPTER 3

REVIEW OF THE COMPUTING LITERATURE




                       3.1. Introduction

[48{



==== ecmi04/debug.txt ====

/* DEBUG : an experimental debugger.

						Dave Bowen
						Updated: 19 January 1984

This is an experimental Prolog debugger.  I would be most interested in
comments as to whether any features of it are found to be more useful or less
useful than those in the existing debugger.  Currently it only allows user 
interaction at the CALL port of a procedure.

The predicates offered are

	debug/1		invokes the debugger on a specified goal
	tracing/0	(cf trace/0) switches trace mode on (the default)
	notracing/0	(cf notrace/0) switches trace mode off
	spying/1	(cf spy/1) sets a spypoint
	nospying/1	(cf nospy/1) removes a spypoint
	spying/0	(cf debugging/0) lists current spypoints

Note that spying/1 and nospying/1 take the same variety of forms of argument

==== ecmi04/allwinston.txt ====
>>>>ARCH3PRB<<<<

(Message 5)
From:     HELEN    HPS (on ERCC DEC-10) <Pain@EDXA>
Date:     Wednesday, 16-Jan-85 14:05:54-GMT
To:       ecmi08@2972,Pain@EDXA
Via:      uk.ac.edinburgh.edxa  ; (to uk.ac.edinburgh.emas) 16 Jan 85  14:09:59 gmt
Msg ID:   <132001-454-610@EDXA>

--------
/* arch2.prb
Winston arch domain 
Alan Bundy 5.12.80
use with winston */

/* space of description trees */
space(arch,[shapetree,touchtree,orienttree,directiontree,supporttree]).


/* description tree */


==== ecmi04/toemas.txt ====


             March 1984                                  Helen Pain
             AI1             NOTES ON USING EMAS

  Quick      [this note assumes lower case and nobrackets options]
 Reference
             1. LOGGING ON

 LOGGING     First find yourself a terminal, switch it on, and press the
   ON        space bar a few times. You should get a prompt for the host
             machine that you want - type 2972

 Host:           GESQ Host: 2972

             then press then return button (I'll refer to this as <cr>).
             The return button <cr> is pressed at the end of every command
             line.

             You will then be prompted for your user number and password:


==== ecmi04/liz.txt ====
/*   Very Simple ELIZA - LIZ
     -- a natural language misunderstander --
     Alan Bundy 15-Nov-79, Richard O'Keefe 17-Feb-81
     Peter Ross 5-Nov-81, Helen Pain  26-2-85
*/


/* The top level: call liz (so named 'cos it's a mini-version of ELIZA)
   to get going.
          ?- liz.
   The predicate "read" reads in sentences, input as a list.
   It will read in
      input:  [are,you,a,computer].
   NOTE: use lower-case letters at the front of words, this is a simple
   beast!
*/

liz :-
        write('input:'), nl,
        read(Input),
        nl,

==== ecmi04/winston_focus.txt ====

(Message 9)
From:     HELEN    HPS (on ERCC DEC-10) <Pain@EDXA>
Date:     Wednesday, 16-Jan-85 15:55:01-GMT
To:       ecmi08@2972,Pain@EDXA
Via:      uk.ac.edinburgh.edxa  ; (to uk.ac.edinburgh.emas) 16 Jan 85  15:56:27 gmt
Msg ID:   <132001-523-442@EDXA>

--------
/* focus1
Rational Reconstruction of Winston Learning Program
Alan Bundy 1.12.80
Version for functions
More Efficient Version 25.6.82 */

/* Top Level Program - learn new concept */
/* ------------------------------------- */

/*First time only accept an example */
focus(Concept) :-
	abolish(definition,3),

==== ecmi04/rtn.txt ====
/* generation of random sentences from an rtn */

/* use with random and drinks */

/*top level*/
go :- generate(sentence,start),         /* generate a sentence from start */
      nl,nl.                            /* and print 2 new lines */

generate(RTN,finish).                   /* if at finish then do nothing */

generate(RTN,Node):-                    /* to generate RTN from node */
      arc(RTN,Node,Arcs),               /* find all arcs leaving node */
      random_pick(Arcs,[NewNode,Label,Type]),  /* pick one at random*/
      traverse(Label,Type),              /* traverse it */
      generate(RTN,NewNode).            /* and carry on from the other end */

traverse(Word,word):-                   /* to traverse a word arc */
      write(Word), tab(1).              /* write word and a space */

traverse(SubRTN,rtn) :-                 /*to traverse an rtn arc */
      generate(SubRTN,start).           /* generate subrtn from start */

==== ecmi04/winston_classi.txt ====

(Message 8)
From:     HELEN    HPS (on ERCC DEC-10) <Pain@EDXA>
Date:     Wednesday, 16-Jan-85 14:08:28-GMT
To:       ecmi08@2972,Pain@EDXA
Via:      uk.ac.edinburgh.edxa  ; (to uk.ac.edinburgh.emas) 16 Jan 85  14:16:43 gmt
Msg ID:   <132001-455-533@EDXA>

--------
/* classify1

Classify as example, non-example or grey
Alan Bundy 7.7.82 */

classify(CObjs,VObjs,CDefn,VRec,ExDiff,yes) :-
	make_diff(CObjs,VObjs,CDefn,VRec,ExDiff,yes), !.

classify(CObjs,VObjs,CDefn,VRec,BestDiff,grey) :-
	bagof(Diff, make_diff(CObjs,VObjs,CDefn,VRec,Diff,grey), Diffs),
	Diffs \== [], !,
	best(Diffs,BestDiff).

==== ecmi04/exer_useful.txt ====
Exercise - 6th March 1984               Helen Pain
AI1 Practical


Give the command myprolog.

Consult the file "ecmi04.useful".

List it. Try and work out what the predicates are supposed to do.

Try typing the following goals:

      append([a,b],[b,c,d],X).

      member(a,[c,a,b,b,a,g,e]).

      rev(X,[a,p,p,l,e]).

      nexto(a,Y,[c,a,t]).

      replace(a,e,[b,a,n,a,n,a],A).

==== ecmi04/visiting.txt ====
% Author: Peter Ross
% Purpose: a simple database example
%
% This contains a baby database:
%	visiting(A,B)		meaning A is currently visiting B
%	at(A,Place)		meaning A is at Place
%	phone(Place, Number)	meaning the phone at Place is Number
% There is a predicate 'ring' which finds out which number to ring
% to get hold of a particular person, or vice-versa.

% ---- phone numbers -----

phone(place_a, 667-5770).
phone(place_b, 339-5390).
phone(place_c, 229-8901).
phone(place_d, 229-6031).
phone(place_e, 667-1011-2551).

% ---- some 'at' details ----

at(bundy,   place_a).

==== ecmi04/projs85_tpproj.txt ====

(Message 83)
From:     HELEN    HPS (on ERCC DEC-10) <Pain@EDXA>
Date:     Wednesday, 30-Jan-85 22:59:37-GMT
To:       ecmi04@2972,Pain@EDXA
Via:      uk.ac.edinburgh.edxa  ; (to uk.ac.edinburgh.emas) 30 Jan 85  23:01:21 gmt
Msg ID:   <132017-752-421@EDXA>

--------



       AI1 PROLOG PROJECTS: QUIP - A RESOLUTION THEOREM PROVER
       AI1 PROLOG PROJECTS: QUIP - A RESOLUTION THEOREM PROVER
       AI1 PROLOG PROJECTS: QUIP - A RESOLUTION THEOREM PROVER


                                                          Dave Plummer
                                                       30 January 1985


  Quip  is  a  resolution  theorem  prover written in PROLOG.  In this
project you are asked to investigate and understand the code,  and  to

==== ecmi04/winston_learn.txt ====

(Message 4)
From:     HELEN    HPS (on ERCC DEC-10) <Pain@EDXA>
Date:     Wednesday, 16-Jan-85 14:05:36-GMT
To:       ecmi08@2972,Pain@EDXA
Via:      uk.ac.edinburgh.edxa  ; (to uk.ac.edinburgh.emas) 16 Jan 85  14:08:35 gmt
Msg ID:   <132001-454-523@EDXA>

--------
/* learn1

Adjust definition  appropriately
Alan Bundy 7.7.82  */

/* if new example found */
learn1(Concept,Diff,yes,grey) :- !,
	writef('This is a new sort of %t. \n', [Concept]),
	maplist(lub,Diff,New),
	retract(definition(Concept,CObjs,Old)),
	assert(definition(Concept,CObjs,New)).


==== ecmi04/prover.txt ====

(Message 6)
From:     HELEN    HPS (on ERCC DEC-10) <Pain@EDXA>
Date:     Wednesday, 16-Jan-85 14:06:21-GMT
To:       ecmi08@2972,Pain@EDXA
Via:      uk.ac.edinburgh.edxa  ; (to uk.ac.edinburgh.emas) 16 Jan 85  14:11:55 gmt
Msg ID:   <132001-454-734@EDXA>

--------
/* HEURISTIC SEARCH THEOREM PROVER */

go :- heuristic([pair(1,goal)]).

/* Top Level Stuff */
heuristic(Agenda) :-
	member(pair(0,Empty),Agenda).


heuristic( [pair(Score,Current) | Rest] ) :-
	setof1(Clause,successor(Current,Clause),NewClauses),
	add_to_agenda(NewClauses,Rest,NewAgenda),

==== ecmi04/refspgp.txt ====
;[6{








[48{





[6{                                 A Computer Tool for Use by Children with
[48{






==== ecmi04/ai2_suphandout.txt ====

(Message 6)
From:     HELEN    HPS (on ERCC DEC-10) <Pain@EDXA>
Date:     Wednesday, 28-Nov-84 14:43:49-GMT
To:       ecmi04@2972,Pain@EDXA
Via:      uk.ac.edinburgh.edxa  ; (to uk.ac.edinburgh.emas) 28 Nov 84  14:45:12 gmt
Msg ID:   <131720-472-200@EDXA>

--------



                            AI2 - PROJECTS
                            AI2 - PROJECTS
                            AI2 - PROJECTS


                                                            Helen Pain
                                                      26 November 1984


  Each  AI2  student  must  complete  a  project.    A project usually
consists of a program exploring and/or illustrating some area  of  the

==== ecmi04/ai1_babyeliza.txt ====
% File: ECMI01.AI2_BABYELIZA
% Author: Peter Ross
% Purpose: the beginnings of an 'Eliza'-like program
% Needs: UTIL for member/2 and append/3
%	 ECMI01.AI2_SENTENCE for sentence/1

% Top level is go/0.

go :- 
	sentence(Input),
	process(Input).

process(Input) :-
	(member(bye, Input) ; member(goodbye, Input)),
	!,
	write('I enjoyed our little chat.'),
	nl.
process(Input) :-
	pair(InputPattern,OutputPattern),
	match(InputPattern, Input),
	flatten(OutputPattern, Output),

==== ecmi04/scrthemss.txt ====
@style(references STDalphabetic,spacing 1,linewidth 70)
@make(article)
@device(lpt)
@modify(figure,above 2,below 2)
@modify(subheading, below 0)
@set(page=1)
@define(romanize,use enumerate,numbered <(@i)>)
@define(alphabetize,use enumerate,numbered <(@a)>)
@modify(FootnoteCounter, within page, numbered <@*>, referenced <@*>)

@heading(AI1 Prolog Projects: QUIP - a resolution theorem prover)

@>Dave Plummer@*
@>@value(Date)@*

Quip is a resolution theorem prover written in PROLOG.  In this project
you are asked to investigate and understand the code, and to make some
extensions to the program. Look at the file:
@verbatim(             'ecmi04.quip')
At the front of the file is some information about what the program
does and how it is used.

==== ecmi04/projs85_nlproj.txt ====

(Message 85)
From:     HELEN    HPS (on ERCC DEC-10) <Pain@EDXA>
Date:     Wednesday, 30-Jan-85 22:59:54-GMT
To:       ecmi04@2972,Pain@EDXA
Via:      uk.ac.edinburgh.edxa  ; (to uk.ac.edinburgh.emas) 30 Jan 85  23:01:57 gmt
Msg ID:   <132017-752-505@EDXA>

--------



            AI1 PROLOG PROJECTS - NATURAL LANGUAGE PROJECT
            AI1 PROLOG PROJECTS - NATURAL LANGUAGE PROJECT
            AI1 PROLOG PROJECTS - NATURAL LANGUAGE PROJECT


                                                            Helen Pain
                                                       30 January 1985


  This  project is based on a program that generates sentences from an
recursive transition network (RTN).  The  RTN  representation  of  the

==== ecmi04/strips.txt ====
% File: /u3/pec/project/strips
% Author: Peter Clark
% Date: 1 May 1985
% Purpose: STRIPS revised 16 May 1985 for EMAS

:- op(80 ,xfy,'<>').
:- op(90 ,xfy,and).
:- op(100,xfy,[':',then,add]).
:- op(100, fy,[want,if,delete]).

watch :- retract(nowatching), assert(watching).
nowatch :- retract(watching), assert(nowatching).
nowatching.

% go/0 : the top level. Enter the initial and desired world states, format as
%	 follows....
%	 eg. initial      a			final   a
%			  b  				b
%			  c   d				d
%			 -------		       ---
% 	 Format is    [floor,c,b,a,floor,d].         [floor,d,b,a].

==== ecmi04/ai1_atn.txt ====
/* generation of random sentences from an rtn */

/* use with random and drinks */

/*top level*/
go :- generate(sentence,start),         /* generate a sentence from start */
      nl,nl.                            /* and print 2 new lines */

generate(RTN,finish).                   /* if at finish then do nothing */

generate(RTN,Node):-                    /* to generate RTN from node */
      arc(RTN,Node,Arcs),               /* find all arcs leaving node */
      random_pick(Arcs,[NewNode,Label,Type]),  /* pick one at random*/
      traverse(Label,Type),              /* traverse it */
      generate(RTN,NewNode).            /* and carry on from the other end */

traverse(Word,word):-                   /* to traverse a word arc */
      write(Word), tab(1).              /* write word and a space */

traverse(SubRTN,rtn) :-                 /*to traverse an rtn arc */
      generate(SubRTN,start).           /* generate subrtn from start */

==== ecmi04/winston_makerc.txt ====

(Message 3)
From:     HELEN    HPS (on ERCC DEC-10) <Pain@EDXA>
Date:     Wednesday, 16-Jan-85 14:05:05-GMT
To:       ecmi08@2972,Pain@EDXA
Via:      uk.ac.edinburgh.edxa  ; (to uk.ac.edinburgh.emas) 16 Jan 85  14:07:08 gmt
Msg ID:   <132001-454-365@EDXA>

--------
/* make_rec

Make  records from list of relations
Alan Bundy 7.7.82 */

make_rec(Concept,Example,VObjs,VRec,Pairs) :- !,
	specimen(Example,ERelns),
	gen_list(ERelns,VRelns,Pairs),
	maplist(second,Pairs,VObjs),
	maplist(convert,VRelns,VRec).

/* Take list of terms and apply gen_term to each member */

==== ecmi04/mandc.txt ====

%   File   : MANDC
%   Author : Paul
%   Updated: 30 April 1985
%   Purpose: Missionaries and Cannibals by Lawrence Byrd

gofrom([0,0,0],[3,3,1],Oldlefts).

gofrom(Left,Right,Oldlefts):-
	legal(Left),
	legal(Right),
        not looping(Left,Oldlefts),
	applymove(Left,Right,Newleft,Newright),
	append([Left],Oldlefts,Newoldlefts),
	gofrom(Newleft,Newright,Newoldlefts).


applymove(Left,Right,Newleft,Newright):-
	boathere(Left),
	moveload(Left,Right,Newleft,Newright).


==== ecmi04/ai2_liza.txt ====
/*   Simple ELIZA
     -- a natural language misunderstander --
     Alan Bundy 15-Nov-79, Richard O'Keefe 17-Feb-81
     Peter Ross 5-Nov-81
*/

:-(['ecmi25.util_readin']).       % load read_in + necessary support.

/* The top level: call liza (so named 'cos it's a mini-version of ELIZA)
   to get going.
   The predicate read_in reads in sentences, currently ending with a
   full stop, exclamation mark or question mark. Thus
         read_in(X)
   will read in
         hello there.
   as
         X = [hello,there,.]
   NOTE: use lower-case letters at the front of words, this is a simple
   beast!
*/


==== ecmi04/famtree.txt ====
mother(mary,tom).
mother(mary,jane).
mother(mary,fred).
father(tom,jim).
father(tom,sue).
father(fred,cecil).

female(mary).
female(jane).
male(tom).
male(jim).
female(sue).
male(cecil).
male(fred).

parent(Parent,Child):-
        father(Parent,Child).
parent(Parent,Child):-
        mother(Parent,Child).
son(Son,Person):-
        parent(Person,Son),

==== ecmi04/projs85_drinks.txt ====
/* Example rtn */

/* sentence rtn */
arc(sentence,start,[[a,nounphrase,rtn]]).
arc(sentence,a,[[b,verb,rtn]]).
arc(sentence,b,[[c,nounphrase,rtn]]).
arc(sentence,c,[[finish,stop_mark,rtn]]).

/* nounphrase rtn */
arc(nounphrase,start,[[finish,proper_noun,rtn],[a,determiner,rtn]]).
arc(nounphrase,a,[[finish,noun,rtn],[a,adjective,rtn]]).

/* verb rtn */
arc(verb,start,[[finish,is,word],[finish,drinks,word],[finish,buys,word],
[finish,refuses,word],[finish,has,word],[finish,consumes,word]]).

/* determiner rtn */
arc(determiner,start,[[finish,a,word],[finish,an,word],[finish,the,word]]).

/* noun rtn */
arc(noun,start,[[finish,vicar,word],[finish,policeman,word],[finish,drinks,word]

==== ecmi04/ai1_random.txt ====
/* Random number generator */

random_pick(List,El):-                  /* to pick random element from a list*/
      length(List,L),
      random(L,N),
      nth(N,List,El).

random(Range,Num):-                     /* to choose random number in range */
      seed(Seed),                       /* get seed from database */
      Num is (Seed mod Range) + 1,      /* fit seed into range */
      retract(seed(Seed)),              /* delete old value of seed */
      NewSeed is (125*Seed+1) mod 4093, /* calculate new value*/
      assert(seed(NewSeed)).            /* and assert it into database */

seed(13).                               /* random number seed database entry */

/* to get the nth element of list */

nth(1,[Hd|T],Hd):- !.                   /* if n is i then return first element*/

nth(N,[Hd|T],El):-                      /* otherwise*/

==== ecmi04/emnotes.txt ====
Helen Pain                                          February 1984.
AI1 notes

         Notes on using the editor EM

1. Loading a file/Saving a file.

Say you have a file called fred that you want to edit. To load fred
into the editor em from emas command level you type:

      Command:em fred

The word Editor will then be printed and the number of lines in the
files fred (if the file exists). If you do not actually have a file
called fred one will be created.

How do you save the file when you have finished editing? If you are
editing fred and you type w after the > prompt:

      >w


==== ecmi04/charts.txt ====

(Message 7)
From:     HELEN    HPS (on ERCC DEC-10) <Pain@EDXA>
Date:     Wednesday, 16-Jan-85 14:07:26-GMT
To:       ecmi08@2972,Pain@EDXA
Via:      uk.ac.edinburgh.edxa  ; (to uk.ac.edinburgh.emas) 16 Jan 85  14:14:30 gmt
Msg ID:   <132001-455-241@EDXA>

--------
/* 	GENERAL-PURPOSE ACTIVE CHART PARSER		*/

/*  Independent of grammatical formalism used, although the formalism */
/*  will have to have some general resemblance to a phrase-structure */
/*  grammar for a chart to work at all. The phrase-structure grammar */
/*  terms "rule", "LHS", "RHS" have been used here for simplicity,  */
/*  but they should be interpreted fairly abstractly.			*/

/*  All the external interfaces are in terms of 3 data-types:		*/
/*		surface words						*/
/*		syntactic categories					*/
/*		edge-labels						*/

==== ecmi04/ai2_ex1.txt ====
Exercise - 12th November 1984               Helen Pain
AI2 Practical



Consult the file "ecmi04.useful".

List it. Work out what the predicates are supposed to do.

Try typing the following goals:

      append([a,b],[b,c,d],X).

      member(a,[c,a,b,b,a,g,e]).

      rev(X,[a,p,p,l,e]).

      nexto(a,Y,[c,a,t]).

      replace(a,e,[b,a,n,a,n,a],A).
      

==== ecmi04/mystdaref.txt ====

(Message 15)
Subject:  scribe info
From:     Helen Pain <helen@uk.ac.ed.aiva>
Date:     Tue, 19 Nov 85 22:29:09 GMT
To:       ecmi04@uk.ac.ed.emas
Via:      uk.ac.edinburgh.aiva  ; (to uk.ac.edinburgh.emas) 19 Nov 85  22:30:10 gmt
Msg ID:   <sent  19 Nov 85 22:29:09 GMT via AIVA>

@Comment[ Copyright (C) 1979, 1980  UNILOGIC, Ltd. ]

@marker(References,MYSTDalphabetic)
@Comment{

Bibliography format definition for standard open-format alphabetic
references.
}

@Style(Citations=5, StringMax=2000, CitationType=Parentheses,
Citationseparator=";")
@Define(L1,LeftMargin 15,Indent -15,Above 1,Break,Fill)

==== ecmi04/geninfo.txt ====

Folder M#INBOX, messages '1,5,6,8,9,10'

    1   (1313)   01 Feb   J.Wexler @ RCO     Student processes
    5    (580)   03 Feb   J.Wexler @ RCO     Student prolog journals
    6    (172)   07 Feb   L.Byrd             files
    8    (537)   15 Feb   ADVICE @ RCO       Re: file descriptors
    9    (538)   16 Feb   To: ADVICE @ RCO   Re: file descriptors
   10     (57)   16 Feb   To: advice         file size


________________________________________________________________________

(Message 1)
Subject:  Student processes
From:     J.Wexler @ RCO        01 Feb 84  10:30:08 gmt
To:       H.Pain
Msg ID:   <01 Feb 84  10:30:08 gmt  020610@2972>

If you ACCEPT ERCC19.GJNY and INSERT GJNY, you will find you can use the
command GETJNL.  It takes one parameter which is the username of one of

==== ecmi04/winston_infer.txt ====

(Message 10)
From:     HELEN    HPS (on ERCC DEC-10) <Pain@EDXA>
Date:     Wednesday, 16-Jan-85 15:55:21-GMT
To:       ecmi08@2972,Pain@EDXA
Via:      uk.ac.edinburgh.edxa  ; (to uk.ac.edinburgh.emas) 16 Jan 85  15:58:01 gmt
Msg ID:   <132001-523-536@EDXA>

--------
/* infer

Inference package for focus program
Alan Bundy 7.7.82 */

infer(Concept) :-		/* to forward infer from current defn */
	rule(Rule),		/* find a rule */
	eval(Concept,Rule,Conc),	/* evaluate rule in current defn */
	simp(Conc,New),		/* simplify conclusion */
	insert(Concept,New),	/* insert new conclusion in defn */
	infer_mess(New),		/* announce inference */
	fail.			/* force backtracking */

==== ecmi04/projmss.txt ====

(Message 161)
From:     HELEN    HPS (on ERCC DEC-10) <Pain@EDXA>
Date:     Wednesday, 28-Nov-84 14:43:49-GMT
To:       ecmi04@2972,Pain@EDXA
Via:      uk.ac.edinburgh.edxa  ; (to uk.ac.edinburgh.emas) 28 Nov 84  14:45:12 gmt
Msg ID:   <131720-472-200@EDXA>

--------



                            AI2 - PROJECTS
                            AI2 - PROJECTS
                            AI2 - PROJECTS


                                                            Helen Pain
                                                      26 November 1984


  Each  AI2  student  must  complete  a  project.    A project usually
consists of a program exploring and/or illustrating some area  of  the

==== ecmi04/alterer.txt ====
/*  A simple sentence alterer. 
    Helen Pain (from Clocksin and Mellish)  26.2.85

    To use the program, first consult this file and then
    type:
        ?- alter([i,write,a,sentence],X).
    Another sentence will be output, with a number of the
    words in the input sentence changed.

*/
alter([],[]).
alter([H|T],[X|Y]):-
    change(H,X),
    alter(T,Y).

change(we,you).
change(are,[are,not]).
change(french,german).
change(do,no).
change(you,we).
change([are,not],are).

==== ecmi04/wine.txt ====
% File:    /u4/peter/prolog/ks299/wine
% Author:  Peter Ross
% Updated: 6 Sep 84
% Purpose: a simple knowledge base for the KS299 expert system shell

'What is the overall taste (delicate/average/strong)'
    finds tastiness of meal.

'Is there a sauce (yes/no)'
    finds has_sauce.

'What sort of sauce (spicy/creamy/tomatoey/other)'
    finds sauce of meal.

'What body do you prefer (light/medium/full)'
    finds preferred_body of wine.

'What colour do you prefer (red/white)'
    finds preferred_colour of wine.

'What sweetness do you prefer (dry/medium/sweet)'

==== ecmi04/appen2pgp.txt ====
;[6{

                                                 240








APPENDIX B

PHONCODE GRAMMAR AND EXAMPLES




                     In this appendix the following are presented:


                            (a) the grapheme-phoneme grammar used by the phoncode program;


                          (b) a sample of dictionary words, phonetically coded;

==== ecmi04/drinks.txt ====
/* Example rtn */

/* sentence rtn */
arc(sentence,start,[[a,nounphrase,rtn]]).
arc(sentence,a,[[b,verb,rtn]]).
arc(sentence,b,[[c,nounphrase,rtn]]).
arc(sentence,c,[[finish,stop_mark,rtn]]).

/* nounphrase rtn */
arc(nounphrase,start,[[finish,proper_noun,rtn],[a,determiner,rtn]]).
arc(nounphrase,a,[[finish,noun,rtn],[a,adjective,rtn]]).

/* verb rtn */
arc(verb,start,[[finish,is,word],[finish,drinks,word],[finish,buys,word],
[finish,refuses,word],[finish,has,word],[finish,consumes,word]]).

/* determiner rtn */
arc(determiner,start,[[finish,a,word],[finish,an,word],[finish,the,word]]).

/* noun rtn */
arc(noun,start,[[finish,vicar,word],[finish,policeman,word],[finish,drinks,word]

==== ecmi04/chapn6fnl.txt ====
@part(assum,root"thesis.mss")
@chapter(Testing assumptions about the use of the program).
@label(assumptions)

@section(Introduction)
@label(ass-intro)
In chapter @ref(design) a number of assumptions were made about the way
in which the program described would be used. These assumptions 
were tested in two  studies, described in this chapter.
Children from the Reading Unit took part in these studies.

There were  three main purposes of the first  study:
@begin(enumerate)
to test whether children with spelling disabilities
would be both able and willing to use a simple text editor to 
write stories;

to examine the ways in which the text editor was used by the children,
and to consider ways it might be extended;

to provide samples of the children's errors, made in free 

==== ecmi04/allks299.txt ====
>>>>DOC<<<<
PRACTICAL EXERCISE: A SIMPLE EXPERT SYSTEM SHELL, WRITTEN IN PROLOG

Peter Ross


1. INTRODUCTION

   This describes how to use a simple expert system shell, and gives a number
   of exercises based on it. The shell is modelled loosely on Teknowledge's
   KS-300 (and so is called ks299, since it's not quite the full shilling).
   The shell can be found in

	UNIX: /u4/peter/prolog/ks299/int
	EMAS: ECMI01.KS299_INT

   Neither version needs any external utilities. A sample knowledge base can
   be found in

	UNIX: /u4/peter/prolog/ks299/wine
	EMAS: ECMI01.KS299_WINE

==== ecmi04/chap1fnl.txt ====
@part(intro,root "thesis.mss")



@chapter(Introduction)
@set(page=1)
@pageheading(center <@value[page]>,immediate)
@label(background)

@section(Children with learning difficulties in spelling: population
and problem)
@label(pop-problem)

This thesis is concerned with children who, despite being intelligent,
fail to learn how to spell.

Characteristically, they have spelling ages (as measured by standardized tests)
which are two years or more behind their chronological ages.
They are often not able to spell even common words correctly.
In addition, they may have particular difficulty in specific areas:
in perceiving patterns in words; in identifying rhymes; and in the sequencing 

==== ecmi04/quip.txt ====
%   File   : QUIP
%   Author : Dave Plummer
%   Written: 23 January 1985
%   Updated: 24 January 1985
%   Purpose: simple resolution theorem prover for AI1 project


%	The code in this file implements QUIP (QUIck Prover), a resolution 
%	theorem prover, in PROLOG.  For those unfamiliar with theorem
%	proving a quick explanation is given below, for more detail see
%	"The Computational Modelling of Mathematical Reasoning" by Alan Bundy.
%	
%	QUIP proves theorems in a subset of propositional calculus.  In this
%	calculus, propositions are represented by proposition letters, eg
%	a, b, f etc;  Each letter may be thought of as abbreviating an 
%	assertion about the world which is either true or false eg: 
%	
%	"AI is the most interesting subject taught at Edinburgh University",
%	"Theorem proving is the most interesting area of AI",
%	"PASCAL is the best programming language in existence"
%	

==== ecmi04/exuseful.txt ====
Exercise - 12th February 1985               Helen Pain
AI1 Practical


Give the command ai1prolog or p.

Consult the file 'ecmi04.useful'.

List it. Try and work out what the predicates are supposed to do.

Try typing the following goals:

      append([a,b],[b,c,d],X).

      member(a,[c,a,b,b,a,g,e]).

      rev(X,[a,p,p,l,e]).

      nexto(a,Y,[c,a,t]).

      replace(a,e,[b,a,n,a,n,a],A).

==== ecmi04/ex2tree.txt ====
AI1 Prolog exercise 2                            20.11.84				

  Check that you have a copy of emnotes (notes on the editor em).
  Switch the terminal on; call host (2972); log on.

  Look at your files - make sure you still have a copy of the file
  called 'family'. Copy it from me if you haven't (ecmi04.famtree).

  Run prolog - use ai1prolog or p

    Command: ai1prolog

  Consult the file 'family'

    ?- [family].

  Try matching a few goals to remind yourself how it works.

    ?- parent(Who,cecil).

    ?- daughter(tom,D).

==== ecmi04/ex2useful.txt ====
Exercise for week 7 - AI1.

Continuation of 'useful' list processing predicates.


length
------

Try

	?- length(X,[a,sa,d,f,g,h,j]).
	?- length(X,[a,[b,c],d,e]).

nexto
-----

Try

	?- nexto(a,Y,[c,a,t]).
	?- nexto(Y,a,[c,a,t]).
	?- nexto(X,Y,[c,a,t]).

==== ecmi04/ai1_project.txt ====
                    AI1 Projects
                     __________


Log on to EMAS. Get into PROLOG. Consult the following files:

                 ecmi04.atn
                 ecmi04.random
                 ecmi04.drinks

[ you may copy them to your own area before you run prolog if you wish]


In response to the prompt ?- type go.
Try this several times and explore the sentences generated.
List the program.
Trace the program and step through it:
        ?-  trace,go.




==== ecmi04/ks299.txt ====
% File:    /u4/peter/prolog/ks299/int
% Author:  Original by Steven Hardy. Reworked by Peter Ross.
% Updated: 6 Sep 84 by Peter Ross
% Purpose: a simple rule interpreter in the style of KS-300

% Original code courtesy of Teknowledge Inc. - so don't make use of it
% without acknowledging them.

% The rule base is made up of assertions of the form
%	RULE: if PREMISE then CONCLUSION.
% where	RULE is an atom,
%	PREMISE is a simple proposition of the form
%			THING = VALUE
%		     or THING is known
%		     or THING is unknown
%		or is a combination of simple propositions
%		   built up using "and" and "or", where "or"
%		   binds tighter than "and",
%       CONCLUSION is a simple conclusion of the form
%			THING = VALUE
%		     or THING = VALUE cf CONFIDENCE

==== ecmi04/chap4pgp.txt ====
;[6{

                                                      91








CHAPTER 5

DESIGN AND USE OF A COMPUTER PROGRAM
[48{



[6{
                      TO INCORPORATE THE EDITCOST AND PHONCODE CORRECTORS




==== ecmi04/scrthepl.txt ====
%   File   : QUIP
%   Author : Dave Plummer
%   Written: 23 January 1985
%   Updated: 24 January 1985
%   Purpose: simple resolution theorem prover for AI1 project


%	The code in this file implements QUIP (QUIck Prover), a resolution 
%	theorem prover, in PROLOG.  For those unfamiliar with theorem
%	proving a quick explanation is given below, for more detail see
%	"The Computational Modelling of Mathematical Reasoning" by Alan Bundy.
%	
%	QUIP proves theorems in a subset of propositional calculus.  In this
%	calculus, propositions are represented by proposition letters, eg
%	a, b, f etc;  Each letter may be thought of as abbreviating an 
%	assertion about the world which is either true or false eg: 
%	
%	"AI is the most interesting subject taught at Edinburgh University",
%	"Theorem proving is the most interesting area of AI",
%	"PASCAL is the best programming language in existence"
%	

==== ecmi04/chapn8fnl.txt ====

@part(discuss,root "thesis.mss")

@chapter(Performance)
@label(perform)

@section(Introduction)
@label(perform-intro)

In this chapter the performance of the editcost and
phoncode programs, in correcting the errors made by the children,
is assessed.

If the programs are able to provide correction of the errors,
then this provides evidence that:
@begin(alphabetize)
there are regularities in the children's errors;

information relating to these regularities can be used 
by the programs to reconstruct the correction from the error.
@end(alphabetize)

==== ecmi04/ex3visit.txt ====
AI1 TUTORIAL AND PRACTICAL EXERCISE    27 th November 1984
Helen Pain



  LOG ON AND RUN AI1PROLOG OR P

  CONSULT THE FILE ECMI04.VISITING

     ?- ['ecmi04.visiting"].

  GET A LISTING OF IT

      ?- listing.

  READ THE LISTING AND WORK OUT WHAT THE FILE DOES.

  WRITE QUESTIONS TO GET THE ANSWERS TO THE FOLLOWING;

  1. the phone number at place_a


==== ecmi04/projs85_random.txt ====
/* Random number generator */

random_pick(List,El):-                  /* to pick random element from a list*/
      length(List,L),
      random(L,N),
      nth(N,List,El).

random(Range,Num):-                     /* to choose random number in range */
      seed(Seed),                       /* get seed from database */
      Num is (Seed mod Range) + 1,      /* fit seed into range */
      retract(seed(Seed)),              /* delete old value of seed */
      NewSeed is (125*Seed+1) mod 4093, /* calculate new value*/
      assert(seed(NewSeed)).            /* and assert it into database */

seed(13).                               /* random number seed database entry */

/* to get the nth element of list */

nth(1,[Hd|T],Hd):- !.                   /* if n is i then return first element*/

nth(N,[Hd|T],El):-                      /* otherwise*/

==== ecmi04/nlproject.txt ====

(Message 85)
From:     HELEN    HPS (on ERCC DEC-10) <Pain@EDXA>
Date:     Wednesday, 30-Jan-85 22:59:54-GMT
To:       ecmi04@2972,Pain@EDXA
Via:      uk.ac.edinburgh.edxa  ; (to uk.ac.edinburgh.emas) 30 Jan 85  23:01:57 gmt
Msg ID:   <132017-752-505@EDXA>

--------



            AI1 PROLOG PROJECTS - NATURAL LANGUAGE PROJECT
            AI1 PROLOG PROJECTS - NATURAL LANGUAGE PROJECT
            AI1 PROLOG PROJECTS - NATURAL LANGUAGE PROJECT


                                                            Helen Pain
                                                       30 January 1985


  This  project is based on a program that generates sentences from an
recursive transition network (RTN).  The  RTN  representation  of  the

==== ecmi04/projs85_rtn.txt ====
/* generation of random sentences from an rtn */

/* use with random and drinks */

/*top level*/
go :- generate(sentence,start),         /* generate a sentence from start */
      nl,nl.                            /* and print 2 new lines */

generate(RTN,finish).                   /* if at finish then do nothing */

generate(RTN,Node):-                    /* to generate RTN from node */
      arc(RTN,Node,Arcs),               /* find all arcs leaving node */
      random_pick(Arcs,[NewNode,Label,Type]),  /* pick one at random*/
      traverse(Label,Type),              /* traverse it */
      generate(RTN,NewNode).            /* and carry on from the other end */

traverse(Word,word):-                   /* to traverse a word arc */
      write(Word), tab(1).              /* write word and a space */

traverse(SubRTN,rtn) :-                 /*to traverse an rtn arc */
      generate(SubRTN,start).           /* generate subrtn from start */

==== ecmi04/scrnlmss.txt ====
@style(references STDalphabetic,spacing 1,linewidth 70)
@make(article)
@device(LASER)
@modify(figure,above 2,below 2)
@modify(subheading, below 0)
@set(page=1)
@define(romanize,use enumerate,numbered <(@i)>)
@define(alphabetize,use enumerate,numbered <(@a)>)
@modify(FootnoteCounter, within page, numbered <@*>, referenced <@*>)

@heading(AI1 Prolog Projects - Natural Language Project)

@>Helen Pain@*
@>@value(Date)@*

This project is based on a program that generates sentences from
an recursive transition network (RTN). 
The RTN representation of the grammar consists 
of a number of states and connecting arcs. 
The arcs are labelled by other RTN's (non-terminals) or by words (terminals). 
The RTN may be traversed and a sentence generated in the process

==== ecmi04/ai1_visiting.txt ====
% Author: Peter Ross
% Purpose: a simple database example
%
% This contains a baby database:
%	visiting(A,B)		meaning A is currently visiting B
%	at(A,Place)		meaning A is at Place
%	phone(Place, Number)	meaning the phone at Place is Number
% There is a predicate 'ring' which finds out which number to ring
% to get hold of a particular person, or vice-versa.

% ---- phone numbers -----

phone(place_a, 667-5770).
phone(place_b, 339-5390).
phone(place_c, 229-8901).
phone(place_d, 229-6031).
phone(place_e, 667-1011-2551).

% ---- some 'at' details ----

at(bundy,   place_a).

==== ecmi04/gp300mss.txt ====
@style(references MYSTDAlphabetic,leftmargin 1.5inch, 
topmargin .75inch, spacing 1.5, bottommargin 1.5inch,singlesided,
hyphenation on,widestblank 2, font gothic)
@make(thesis)
@device(gp300)
@modify(verbatim,facecode t)
@modify(HD1A, font titlefont0)
@modify(figure,above 2,below 2)
@define(romanize,use enumerate,numbered <(@i) >, referenced <(@i)>)
@define(alphabetize,use enumerate,numbered <(@a) >, referenced <(@a)>)
@modify(equation, leftmargin +1, rightmargin +0)
@modify(EquationCounter, numbered <(@i)>, referenced <(@i)>)
@modify(FootnoteCounter, within chapter)
@use(Bibliography = Thesis.Bib)
@include(acknow.mss)
@include(chap1.mss)
@include(chap2.mss)
@include(chap2b.mss)
@include(chap3.mss)
@include(chap4.mss)
@include(chap5.mss)

==== ecmi04/util.txt ====
em(File) :-
	emas(em,File),
	reconsult(File).


list(Predicate) :-
	current_predicate(Predicate,Template),
	clause(Template,Body),
	nl,
	list1((Template :- Body)),
	fail.

list(_) :- !.


list1((Template :- true)) :-
	!,
	numbervars(Template,1,_),
	print(Template),write('.'),nl.

list1((Template :- Body)) :-

==== ecmi05/elgnames.txt ====
0.9
'EMPTY' ''
'SPACE' ' '
'NL' '
'
'TAB' '      '
'TRUE' 'TRUE'
'FALSE' 'FALSE'
'QUOTE' '"'
'DOTS' ':'
'('
')'
','
'NIL'
'UNDEF'
'THEN'
'ELSE'
'END'
'DELETE'
'UNDO'
'UNDOS'

==== ecmi05/c_evalp.txt ====
/************************************************************************
*									*
*		   C Prolog	evalp.c					*
*		   ========	-------					*
*									*
*  By Fernando Pereira, July 1982.					*
*  EdCAAD, Dept. of Architecture, University of Edinburgh.		*
*									*
*  Based on the Prolog system written in IMP by Luis Damas for ICL 2900	*
*  computers, with some contributions by Lawrence Byrd.  Stricter types	*
*  and several extensions by Richard O'Keefe, also BACKWARDS support.	*
*									*
*  Copyright (C) 1982 Fernando Pereira, Luis Damas and Lawrence Byrd.	*
*  Copyright (C) 1984 F.Pereira, L.Damas, L.Byrd and R.A.O'Keefe.	*
*									*
************************************************************************/

/*----------------------------------------------------------------------+
|									|
|			Evaluable Predicates				|
|									|

==== ecmi05/pop2v11s.txt ====
%CONTROL X'FFFFFFF2'
%EXTERNALROUTINE POP2(%STRING(63)POPPARM);
%EXTERNALINTEGERFNSPEC EVENT(%INTEGER I)
  !POP2 INTERPRETER FOR EMAS
%CONSTSTRING(25) IDENTIFICATION="EMAS POP2: V1.1  08/01/78"
!
%SYSTEMROUTINESPEC OUTFILE(%STRING(15) S %INTEGER L,M,P %C
                      %INTEGERNAME C,F)
%EXTERNALSTRINGFNSPEC SSFMESSAGE
%EXTERNALROUTINESPEC DEFINE(%STRING(63) S)
%EXTERNALINTEGERFNSPEC EXIST(%STRING(15)S)
%EXTERNALROUTINESPEC CLEAR(%STRING(63) S)
%EXTERNALLONGREALFNSPEC CPUTIME
%EXTERNALROUTINESPEC PROMPT(%STRING(17) S)
%EXTERNALINTEGERFNSPEC TEST INT(%INTEGER C %STRING(15) S)
%EXTERNALROUTINESPEC E(%STRING(63) S)
!
! REPRESENTATION OF POP2 VALUES:-
!    ...000 :  INTEGER  (TRUE VALUE * 8)
!    ...100 :  REAL     (TRUE FP VALUE WITH LS BITS FORCED)
!    ....10 :  COMPOUND (BYTE ADDRESS OF FIRST WORD MINUS TWO)

==== ecmi05/z5doc.txt ====
=UDK=``+0Titan12iso-P
`+120025A-P
`+2Kosmos10-P
`+3Kosmos10B-P
`+4Kosmos12B-P
`+5Kosmos14-P
`+6kosmos10i-P
`+7cmr11-P
`+8cmi11-P
`+9SymbolC10-P
`m700,0,0,0,495
`d`t70
`i0
`rd200r
`rr1005r`41. INTRODUCTION.
`rd180r
`rr400r`2There`rr27rseem`rr27rto`rr27rbe`rr27rtwo`rr27rmain`rr27rconcerns`rr27rand`rr27rgoals`rr27rbehind`rr27rthe`rr27rwork`rr27ron`rr26rnatural
	language`rr27rusing`rr27rcomputers,`rr27rconverging`rr27rat`rr27rmany`rr27rpoints.`rr45rOne`rr27rgoal,`rr27rthat`rr27rof`rr27rmore
	natural`rr20rcommunication`rr20rwith`rr19rcomputers,`rr19rhas`rr19rits`rr19rroots`rr19rin`rr19rthe`rr19rconcern`rr19rfor`rr19rapplication
	of the fruits of computational research,`rr19ramplified`rr19rby`rr19rthe`rr19rrecent`rr19rrace`rr19rto`rr19rbuild`rr19ra`rr19rnew
	generation`rr29rof`rr29rcomputers,`rr29rin`rr29rorder`rr29rto`rr28rmake`rr28rthem`rr28reven`rr28rmore`rr28ruser-oriented`rr28rand
	more useful for our purposes.`rr37rThe other`rr19rgoal`rr19ris`rr19rtheoretical`rr19rinvestigation`rr19rof`rr19rhuman
	language,`rr25rand`rr25rsome`rr25rresearchers`rr25rhope`rr25rthat`rr25rthe`rr25rcomputer`rr24rmight`rr24rbe`rr24ra`rr24rvery`rr24ruseful

==== ecmi05/parser.txt ====
% File:		parser
% Author:	Peter Ross
% Updated:	6 June 1985
% Purpose:	simple general purpose active chart parser

% This is a (very) simple general purpose chart parser.
% There is separate user documentation in parser.doc.

% There are three important data structures to know about:
% Edge:
%	edge(Category, Found, Needs, StartVertex, EndVertex)
%		Category is the category as on the LHS of a rule.
%		Found is what has already been accounted for, of the
%		    RHS of that rule. At the start it is just []. It
%		    is ordered so that the most recently found item is
%		    first. To help analyse the chart after the parseing,
%		    the items are of the form
%			Category = VertexNumber
%		    showing the vertex number where that found category
%		    started.
%		Needs is what has not yet been accounted for, of the

==== ecmi05/xlisp_xlsetfc.txt ====
/* xlsetf - set field function */

#include "xlisp.h"

/* external variables */
extern NODE *s_car,*s_cdr,*s_get,*s_svalue,*s_splist;
extern NODE *xlstack;

/* xsetf - built-in function 'setf' */
NODE *xsetf(args)
  NODE *args;
{
    NODE *oldstk,arg,place,value;

    /* create a new stack frame */
    oldstk = xlsave(&arg,&place,&value,NULL);

    /* initialize */
    arg.n_ptr = args;

    /* handle each pair of arguments */

==== ecmi05/tdoc.txt ====
=UDK=``+0Titan12iso-P
`+120025A-P
`+2Kosmos10-P
`+3Kosmos10B-P
`+4Kosmos12B-P
`+5Kosmos14-P
`+6kosmos10i-P
`+7cmr11-P
`+8cmi11-P
`+9SymbolC10-P
`m700,0,0,0,495
`d`t70
`i0
`rd750r
`rr430r`b`5PREMINARIES TO PARSING INFLECTIONAL LANGUAGES:
`rr825rSOME ANALYSES OF POLISH
`rd210r
`rr1065r`p`4Jan Bujnowski
`rd1080r
`rr940r`2This is a modified version of
`rr830ra project submitted in partial fulfilment
`rr650rof the requirements of the degree of M.A. with Honours
`rr825rin Linguistics with Artificial Intelligence.
`rd200r
`rr840r`3Department of Artificial Intelligence,

==== ecmi05/xlisp_factlsp.txt ====
(defun factorial (n)
       (cond ((= n 1) 1)
	     (t (* n (factorial (- n 1))))))

==== ecmi05/t.txt ====
$a device=x2700
$a pageno=0
$a sup='\'
$a bold='~'
$a just=1
$B12
$5
$L1m
~PREMINARIES TO PARSING INFLECTIONAL LANGUAGES:~
$L1M
~SOME ANALYSES OF POLISH~
$4
$b3
$l1m
Jan Bujnowski
$2
$b18
$L1m
This is a modified version of
$L1m
a project submitted in partial fulfilment

==== ecmi05/h_pl.txt ====
/************************************************************************
*									*
*                  C Prolog    pl.h					*
*                  ========    ----					*
*									*
*  By Fernando Pereira, July 1982.					*
*  EdCAAD, Dept. of Architecture, University of Edinburgh.		*
*									*
*  Based on the Prolog system written in IMP by Luis Damas for ICL	*
*  2900 computers, with some contributions by Lawrence Byrd.		*
*									*
*  Copyright (C) 1982 Fernando Pereira, Luis Damas and Lawrence Byrd.	*
*  Beautified, made type-correct, and given additional registers in	*
*  1983 by Richard O'Keefe, DAI Edinburgh.  Made to work on GEC-63s	*
*  and other BACKWARDS machines in 1984 by the same.			*
*									*
************************************************************************/

#include <stdio.h>

#define TRUE	1

==== ecmi05/c_compare.txt ====
/************************************************************************
*									*
*		   C Prolog	compare.c				*
*		   ========	---------				*
*									*
*  By Fernando Pereira, July 1982.					*
*  EdCAAD, Dept. of Architecture, University of Edinburgh.		*
*									*
*  Based on the Prolog system written in IMP by Luis Damas for ICL 2900	*
*  computers, with some contributions by Lawrence Byrd.  Stricter types	*
*  and several extensions by Richard O'Keefe, also BACKWARDS support.	*
*									*
*  Copyright (C) 1982 Fernando Pereira, Luis Damas and Lawrence Byrd.	*
*  Copyright (C) 1984 R.A.O'Keefe.					*
*									*
************************************************************************/

/*----------------------------------------------------------------------+
|									|
|   compare() always compares X->v1ofcf and X->v2ofcf.  It calls comp()	|
|   which actually compares the terms.  Comparison starts with a quick	|

==== ecmi05/xlisp_xldmemc.txt ====
/* xldmem - xlisp dynamic memory management routines */

#include "xlisp.h"

/* useful definitions */
#define ALLOCSIZE (sizeof(struct segment) + (anodes-1) * sizeof(NODE))

/* external variables */
extern NODE *oblist,*keylist;
extern NODE *xlstack;
extern NODE *xlenv,*xlnewenv;
extern long total;
extern int anodes,nnodes,nsegs,nfree,gccalls;
extern struct segment *segs;
extern NODE *fnodes;

/* external procedures */
extern char *malloc();
extern char *calloc();

/* newnode - allocate a new node */

==== ecmi05/xlisp_xlcontc.txt ====
/* xlcont - xlisp control built-in functions */

#include "xlisp.h"

/* external variables */
extern NODE *xlstack,*xlenv,*xlnewenv,*xlvalue;
extern NODE *s_unbound;
extern NODE *s_evalhook,*s_applyhook;
extern NODE *true;

/* external routines */
extern NODE *xlxeval();

/* forward declarations */
FORWARD NODE *let();
FORWARD NODE *prog();
FORWARD NODE *progx();
FORWARD NODE *doloop();

/* xcond - built-in function 'cond' */
NODE *xcond(args)

==== ecmi05/xlisp_xlbfunc.txt ====
/* xlbfun.c - xlisp basic builtin functions */

#include "xlisp.h"

/* external variables */
extern NODE *xlstack;
extern NODE *s_lambda,*s_macro;
extern NODE *s_comma,*s_comat;
extern NODE *s_unbound;
extern char gsprefix[];
extern int gsnumber;

/* forward declarations */
FORWARD NODE *bquote1();
FORWARD NODE *defun();
FORWARD NODE *makesymbol();

/* xeval - the builtin function 'eval' */
NODE *xeval(args)
  NODE *args;
{

==== ecmi05/c_parms.txt ====
/************************************************************************
*									*
*		   C Prolog     parms.c					*
*		   ========	-------					*
*									*
*  By Fernando Pereira, July 1982.					*
*  EdCAAD, Dept. of Architecture, University of Edinburgh.		*
*									*
*  Based on the Prolog system written in IMP by Luis Damas for ICL 2900	*
*  computers, with some contributions by Lawrence Byrd.  Stricter types	*
*  and several extensions by Richard O'Keefe, also BACKWARDS support.	*
*									*
*  Copyright (C) 1982 Fernando Pereira, Luis Damas and Lawrence Byrd.	*
*  Copyright (C) 1984 R.A.O'Keefe.					*
*									*
************************************************************************/

#include "pl.h"

/* Declaration and properties of work areas */


==== ecmi05/elogosdv.txt ====
%BEGIN
!
! CHANNEL USAGE
! ST01 - DUMPFILE AND DRIBBLE AT GOODBYE
! ST02 - ELGNAM
! SM04 - OWNFILE
! SM05 - LOGERRS
! SM06 - LOGOSTK
! SM07 - LOGOMON
! SM08 - BFILE
! SM09 - LOGMASTR
! SM10 - LOGOTEMP
! SM11 - LOGODRIB
! SM12 - NEW LOGON IN EDITMASTER
! ST13 - SHOWFILE?
!
!*****************************************
! GRAPHICS LINKAGE
!*****************************************
!
%EXTERNALINTEGERFNSPEC CONV (%INTEGER X)

==== ecmi05/xlisp_xlmathc.txt ====
/* xlmath - xlisp builtin arithmetic functions */

#include "xlisp.h"

/* external variables */
extern NODE *xlstack;
extern NODE *true;

/* forward declarations */
FORWARD NODE *unary();
FORWARD NODE *binary();
FORWARD NODE *predicate();
FORWARD NODE *compare();

/* xadd - builtin function for addition */
NODE *xadd(args)
  NODE *args;
{
    return (binary(args,'+'));
}


==== ecmi05/xlisp_readme.txt ====
XLISP

This PD file contains the C sourse of David Betz' XLISP v1.4.
It is free, copyable for non-profit use provided you preserve
the details of authorship.

The manual is terse, a reference manual. For a tutorial introduction,
use Winston's LISP, 2nd edition, for Addison-Wesley. Most of the LISP
described in that book is in XLISP.

XLISP v1.4 is essentially a small core set of Common LISP. The object
oriented features of XLISP are NOT part of Common LISP, however.

In the PD file, C soure files are called <something>C and the single
header file is called XLISPH. The manual is in MANUAL.

You will probably need to edit the C source a little. It expects the
header file to be called xlisp.h at present, and it expects LISP files
to be called <something>.lsp. In this PD file, the demo and startup files
are called <something>LSP.


==== ecmi05/lognam30.txt ====
0.9
'EMPTY' ''
'SPACE' ' '
'NL' '
'
'TAB' '      '
'TRUE' 'TRUE'
'FALSE' 'FALSE'
'QUOTE' ''''
'DOTS' ':'
'<'
'>'
'('
')'
'*'
'+'
','
'-'
'/'
'='
'['

==== ecmi05/xlisp_xlinitc.txt ====
/* xlinit.c - xlisp initialization module */

#include "xlisp.h"

/* external variables */
extern NODE *true;
extern NODE *s_quote,*s_function,*s_bquote,*s_comma,*s_comat;
extern NODE *s_lambda,*s_macro;
extern NODE *s_stdin,*s_stdout;
extern NODE *s_evalhook,*s_applyhook;
extern NODE *s_tracenable,*s_tlimit,*s_breakenable;
extern NODE *s_continue,*s_quit;
extern NODE *s_car,*s_cdr,*s_get,*s_svalue,*s_splist,*s_eql;
extern NODE *k_test,*k_tnot,*k_optional,*k_rest,*k_aux;
extern NODE *a_subr,*a_fsubr;
extern NODE *a_list,*a_sym,*a_int,*a_str,*a_obj,*a_fptr;
extern struct fdef ftab[];

/* xlinit - xlisp initialization routine */
xlinit()
{

==== ecmi05/xlisp_xlsubrc.txt ====
/* xlsubr - xlisp builtin function support routines */

#include "xlisp.h"

/* external variables */
extern NODE *k_test,*k_tnot,*s_eql;
extern NODE *xlstack;

/* xlsubr - define a builtin function */
xlsubr(sname,type,subr)
  char *sname; int type; NODE *(*subr)();
{
    NODE *sym;

    /* enter the symbol */
    sym = xlsenter(sname);

    /* initialize the value */
    sym->n_symvalue = newnode(type);
    sym->n_symvalue->n_subr = subr;
}

==== ecmi05/h_arith.txt ====
/************************************************************************
*									*
*		   C Prolog	arith.h					*
*		   ========	-------					*
*									*
*  By Fernando Pereira, July 1982.					*
*  EdCAAD, Dept. of Architecture, University of Edinburgh.		*
*									*
*  Based on the Prolog system written in IMP by Luis Damas for ICL 2900	*
*  computers, with some contributions by Lawrence Byrd.  Stricter types	*
*  and several extensions by Richard O'Keefe, also BACKWARDS support.	*
*									*
*  Copyright (C) 1982 Fernando Pereira, Luis Damas and Lawrence Byrd.	*
*  Copyright (C) 1984 F.Pereira, L.Damas, L.Byrd and R.A.O'Keefe.	*
*									*
************************************************************************/

/*  Internal code for the Nullary operators:				*/

#define	TIME	1
#define	HEAP	2

==== ecmi05/lognam72.txt ====
0.9
'EMPTY' ''
'SPACE' ' '
'NL' '
'
'TAB' '      '
'TRUE' 'TRUE'
'FALSE' 'FALSE'
'QUOTE' ''''
'DOTS' ':'
'('
')'
','
'NIL'
'UNDEF'
'THEN'
'ELSE'
'END'
'DELETE'
'UNDO'
'UNDOS'

==== ecmi05/music.txt ====
THIS IS LOGO MUSIC PSEUDO FILE.
IT IS PERMITTED WRITE UNSHARED TO ALL, AND CONNECTION OF THIS
FILE REPERESENTS ALLOCATION OF MUSIC.

==== ecmi05/lognam90.txt ====
0.9
'EMPTY' ''
'SPACE' ' '
'NL' '
'
'TAB' '      '
'TRUE' 'TRUE'
'FALSE' 'FALSE'
'QUOTE' ''''
'DOTS' ':'
'('
')'
','
'NIL'
'UNDEF'
'THEN'
'ELSE'
'END'
'DELETE'
'UNDO'
'UNDOS'

==== ecmi05/lognam96.txt ====
0.9
'EMPTY' ''
'SPACE' ' '
'NL' '
'
'TAB' '      '
'TRUE' 'TRUE'
'FALSE' 'FALSE'
'QUOTE' ''''
'DOTS' ':'
'('
')'
','
'NIL'
'UNDEF'
'THEN'
'ELSE'
'END'
'DELETE'
'UNDO'
'UNDOS'

==== ecmi05/lognam97.txt ====
0.9
'EMPTY' ''
'SPACE' ' '
'NL' '
'
'TAB' '      '
'TRUE' 'TRUE'
'FALSE' 'FALSE'
'QUOTE' ''''
'DOTS' ':'
'('
')'
','
'NIL'
'UNDEF'
'THEN'
'ELSE'
'END'
'DELETE'
'UNDO'
'UNDOS'

==== ecmi05/lognam98.txt ====
0.9
'EMPTY' ''
'SPACE' ' '
'NL' '
'
'TAB' '      '
'TRUE' 'TRUE'
'FALSE' 'FALSE'
'QUOTE' ''''
'DOTS' ':'
'('
')'
','
'NIL'
'UNDEF'
'THEN'
'ELSE'
'END'
'DELETE'
'UNDO'
'UNDOS'

==== ecmi05/lognam99.txt ====
0.9
'EMPTY' ''
'SPACE' ' '
'NL' '
'
'TAB' '      '
'TRUE' 'TRUE'
'FALSE' 'FALSE'
'QUOTE' ''''
'DOTS' ':'
'('
')'
','
'NIL'
'UNDEF'
'THEN'
'ELSE'
'END'
'DELETE'
'UNDO'
'UNDOS'

==== ecmi05/c_space.txt ====
/************************************************************************
*									*
*		   C Prolog	space.c					*
*		   ========	-------					*
*									*
*  By Fernando Pereira, July 1982.					*
*  EdCAAD, Dept. of Architecture, University of Edinburgh.		*
*									*
*  Based on the Prolog system written in IMP by Luis Damas for ICL 2900	*
*  computers, with some contributions by Lawrence Byrd.  Stricter types	*
*  and several extensions by Richard O'Keefe, also BACKWARDS support.	*
*									*
*  Copyright (C) 1982 Fernando Pereira, Luis Damas and Lawrence Byrd.	*
*  Copyright (C) 1984 F.Pereira, L.Damas, L.Byrd and R.A.O'Keefe.	*
*  This module is based on published work by Weinberg? Weisberg?	*
*									*
************************************************************************/

#include "pl.h"

#ifdef	ERRCHECK

==== ecmi05/tdr.txt ====













                 PREMINARIES      TO  PARSING     INFLECTIONAL     LANGUAGES:

                 PREMINARIES      TO  PARSING     INFLECTIONAL     LANGUAGES:
                                 SOME    ANALYSES     OF   POLISH

                                 SOME    ANALYSES     OF   POLISH




                                           Jan Bujnowski



==== ecmi05/ai2tr90.txt ====
%BEGIN
!
!
!*********************************************************************
!
! MORE COMMENTS AND SWITCH SYSFUN(232) - SYSFUN(280) TIDIED UP
!
!*********************************************************************
!
! CHANNEL USAGE
! ST02 - LOGNAM
! SM04 - LOGOFILE
! SM06 - LOGOSTK
! SM07 - LOGOMON
! SM08 - BFILE
! SM10 - JUNK FILE
!
!*****************************************
! GRAPHICS LINKAGE
!*****************************************
!

==== ecmi05/oldnames.txt ====
0.9
'EMPTY' ''
'SPACE' ' '
'NL' '
'
'TAB' '      '
'TRUE' 'TRUE'
'FALSE' 'FALSE'
'QUOTE' ''''
'DOTS' ':'
'<'
'>'
'('
')'
'*'
'+'
','
'-'
'/'
'='
'['

==== ecmi05/initfile.txt ====
ttyinit
setmode lower

==== ecmi05/sample.txt ====
% File:		sample3
% Author:	Peter Ross nicked it from GDR
% Updated:	3 June 1985

% ============ SAMPLE GRAMMAR ============

initial_category(trial,s).
strategy(trial,S) :-
	prompt(_,'Strategy (td/bu): '),
	read(S),
	member(S,[td,bu]),
	!.
strategy(trial,S) :-
	write('Answer  td.  or  bu.  please'), nl,
	strategy(trial,S).
policy(trial,P) :-
	prompt(_,'Policy (bf/df):   '),
	read(P),
	member(P,[bf,df]),
	!.
policy(trial,P) :-

==== ecmi05/meccano.txt ====
THIS IS LOGO MECCANO PSEUDO FILE.
IT IS PERMITTED WRITE UNSHARED TO ALL, AND CONNECTION OF THIS
FILE REPRESENTS ALLOCATION OF MECCANO.

==== ecmi05/c_auxfn.txt ====
/************************************************************************
*									*
*                  C Prolog    auxfn.c					*
*                  ========    -------					*
*									*
*  By Fernando Pereira, July 1982.					*
*  EdCAAD, Dept. of Architecture, University of Edinburgh.		*
*									*
*  Based on the Prolog system written in IMP by Luis Damas for ICL 2900	*
*  computers, with some contributions by Lawrence Byrd.  Stricter types	*
*  and several extensions by Richard O'Keefe, also BACKWARDS support.	*
*									*
*  Copyright (C) 1982 Fernando Pereira, Luis Damas and Lawrence Byrd.	*
*  Copyright (C) 1984 F.Pereira, L.Damas, L.Byrd and R.A.O'Keefe.	*
*									*
************************************************************************/

#include "pl.h"
#ifdef	COUNTING
static	Sint funcspace;
static	int  funccount, atomcount;

==== ecmi05/c_unify.txt ====
/************************************************************************
*									*
*                  C Prolog    unify.c					*
*                  ========    -------					*
*									*
*  By Fernando Pereira, July 1982.					*
*  EdCAAD, Dept. of Architecture, University of Edinburgh.		*
*									*
*  Based on the Prolog system written in IMP by Luis Damas for ICL 2900	*
*  computers, with some contributions by Lawrence Byrd.  Stricter types	*
*  and several extensions by Richard O'Keefe, also BACKWARDS support.	*
*									*
*  Copyright (C) 1982 Fernando Pereira, Luis Damas and Lawrence Byrd.	*
*  Copyright (C) 1984 F.Pereira, L.Damas, L.Byrd and R.A.O'Keefe.	*
*									*
************************************************************************/

#include "pl.h"

/*  Unify term ta (with global frame ga and local frame V)
    with  term tb (with global frame gb and local frame X)

==== ecmi05/logos.txt ====
%EXTERNALROUTINE LOGO(%STRING(255) GASH)
%EXTERNALROUTINESPEC RUN(%STRING(63) S)
RUN('ECMI05.AI2LOGOY')
%END
%ENDOFFILE

==== ecmi05/xlisp_xlfioc.txt ====
/* xlfio.c - xlisp file i/o */

#include "xlisp.h"
#include "ctype.h"

/* external variables */
extern NODE *s_stdin,*s_stdout;
extern NODE *xlstack;
extern int xlfsize;
extern char buf[];

/* external routines */
extern FILE *fopen();

/* forward declarations */
FORWARD NODE *printit();
FORWARD NODE *flatsize();
FORWARD NODE *explode();
FORWARD NODE *implode();
FORWARD NODE *openit();
FORWARD NODE *getfile();

==== ecmi05/xlisp_xllistc.txt ====
/* xllist - xlisp built-in list functions */

#include "xlisp.h"

#ifdef MEGAMAX
overlay "overflow"
#endif

/* external variables */
extern NODE *xlstack;
extern NODE *s_unbound;
extern NODE *true;

/* external routines */
extern int eq(),eql(),equal();

/* forward declarations */
FORWARD NODE *cxr();
FORWARD NODE *nth(),*assoc();
FORWARD NODE *subst(),*sublis(),*map();
FORWARD NODE *cequal();

==== ecmi05/xlisp_prologlsp.txt ====

;; The following is a tiny Prolog interpreter in MacLisp
;; written by Ken Kahn and modified for XLISP by David Betz.
;; It was inspired by other tiny Lisp-based Prologs of
;; Par Emanuelson and Martin Nilsson.
;; There are no side-effects anywhere in the implementation.
;; Though it is VERY slow of course.

(defun prolog (database &aux goal)
       (do () ((not (progn (princ "Query?") (setq goal (read)))))
              (prove (list (rename-variables goal '(0)))
                     '((bottom-of-environment))
                     database
                     1)))

;; prove - proves the conjunction of the list-of-goals
;;         in the current environment

(defun prove (list-of-goals environment database level)
      (cond ((null list-of-goals) ;; succeeded since there are no goals
             (print-bindings environment environment)

==== ecmi05/c_dbase.txt ====
/************************************************************************
*									*
*		   C Prolog	dbase.c					*
*		   ========	-------					*
*									*
*  By Fernando Pereira, July 1982.					*
*  EdCAAD, Dept. of Architecture, University of Edinburgh.		*
*									*
*  Based on the Prolog system written in IMP by Luis Damas for ICL 2900	*
*  computers, with some contributions by Lawrence Byrd.  Stricter types	*
*  and several extensions by Richard O'Keefe, also BACKWARDS support.	*
*									*
*  Copyright (C) 1982 Fernando Pereira, Luis Damas and Lawrence Byrd.	*
*  Copyright (C) 1984 F.Pereira, L.Damas, L.Byrd and R.A.O'Keefe.	*
*									*
************************************************************************/

#include "pl.h"

/*  Variable table  */


==== ecmi05/elogos30.txt ====
%BEGIN
!
! CHANNEL USAGE
! ST01 - DUMPFILE AND DRIBBLE AT GOODBYE
! ST02 - ELGNAM
! SM04 - OWNFILE
! SM05 - LOGERRS
! SM06 - LOGOSTK
! SM07 - LOGOMON
! SM08 - BFILE
! SM09 - LOGMASTR
! SM10 - LOGOTEMP
! SM11 - LOGODRIB
! SM12 - NEW LOGON IN EDITMASTER
! ST13 - SHOWFILE?
!
!*****************************************
! GRAPHICS LINKAGE
!*****************************************
!
%EXTERNALINTEGERFNSPEC CONV (%INTEGER X)

==== ecmi05/oldlogs.txt ====
%EXTERNALROUTINE OLDLOGO
%EXTERNALROUTINESPEC RUN(%STRING(63) S)
RUN('ECMI05.OLDLOGOY')
%END
%ENDOFFILE

==== ecmi05/xlisp_xlioc.txt ====
/* xlio - xlisp i/o routines */

#include "xlisp.h"

/* external variables */
extern int xlplevel;
extern int xlfsize;
extern NODE *xlstack;
extern NODE *s_stdin;
extern int xldebug;
extern int prompt;

/* xlgetc - get a character from a file or stream */
int xlgetc(fptr)
  NODE *fptr;
{
    NODE *lptr,*cptr;
    FILE *fp;
    int ch;

    /* check for input from nil */

==== ecmi05/readme.txt ====
All the files are owned by ECMI05:
	- the PD file C contains all the C source
	- the PD file H contains all the header files
	  referred to in #include directives, apart from
	  'standard' ones like "stdio" which I assume are
	  somehow provided by the EMAS C support.
	- the PD file PL conatins all the Prolog files
	  that need to be read at boot time in order to
	  create a runnable system. After reading in all these
	  files ONCE, the system state is saved, and it is 
	  this saved state which the world at large should
	  use thereafter.
NOTE WELL: I have not made ANY modifications to the UNIX version source that
	   might tailor it to EMAS, since I know nothing of the EMAS C
	   compiler. In particular, you may have to change all the
		#include ......
	   lines in the C source files.
	   If you want a (UNIX) cross reference listing, let me know. I am:
		ECMI01@emas
		peter@edai
		Peter Ross, central area extension 2557

==== ecmi05/makelogs.txt ====
%EXTERNALROUTINE MAKELOGO
%SYSTEMINTEGERMAPSPEC COMREG(%INTEGER N)
%EXTERNALROUTINESPEC DEFINE(%STRING (63) S)
%EXTERNALROUTINESPEC PERMITFILE(%STRING (63) S)
%EXTERNALROUTINESPEC NEWSMFILE(%STRING (63) S)
%EXTERNALROUTINESPEC CHERISH(%STRING (63) S)
%EXTERNALINTEGERFNSPEC SMADDR(%INTEGER C,%INTEGERNAME L)
%INTEGER LEN,EUNAD,I
%SHORTINTEGERNAME A
%BYTEINTEGERARRAY EUNBYTE(1:7)
%STRING(6) %NAME EMASUSER
EUNAD=COMREG(16)
EUNBYTE(1)=6
%CYCLE I=2,1,7
EUNBYTE(I)=BYTEINTEGER(EUNAD+I-2)
%REPEAT
EMASUSER==STRING(ADDR(EUNBYTE(1)))
DEFINE('SM04,LOGOFILE');NEWSMFILE('LOGOFILE,4096')
A==SHORTINTEGER(SMADDR(4,LEN))
A=0
%PRINTTEXT ' LOGOFILE NOW EXISTS, LENGTH IS '

==== ecmi05/ai2log72.txt ====
%BEGIN
!
! CHANNEL USAGE
! ST02 - LOGNAM
! SM04 - LOGOFILE
! SM06 - LOGOSTK
! SM07 - LOGOMON
! SM08 - BFILE
! SM10 - JUNK FILE
!
!*****************************************
! GRAPHICS LINKAGE
!*****************************************
!
%EXTERNALINTEGERFNSPEC CONV (%INTEGER X)
%EXTERNALROUTINESPEC VECORPOINT (%INTEGER I,J,K,L)
%EXTERNALROUTINESPEC PAUSE
%EXTERNALROUTINESPEC LOAD42 (%STRING(63) FILE)
%EXTERNALROUTINESPEC SET42 (%INTEGER NM)
%EXTERNALROUTINESPEC CLEAR 42
%EXTERNALROUTINESPEC  CH3 (%INTEGER CHAR)

==== ecmi05/xlisp_xlglobc.txt ====
/* xlglobals - xlisp global variables */

#include "xlisp.h"

/* symbols */
NODE *true = NIL;
NODE *s_quote = NIL, *s_function = NIL;
NODE *s_bquote = NIL, *s_comma = NIL, *s_comat = NIL;
NODE *s_evalhook = NIL, *s_applyhook = NIL;
NODE *s_lambda = NIL, *s_macro = NIL;
NODE *s_stdin = NIL, *s_stdout = NIL;
NODE *s_tracenable = NIL, *s_tlimit = NIL, *s_breakenable = NIL;
NODE *s_continue = NIL, *s_quit = NIL;
NODE *s_car = NIL, *s_cdr = NIL;
NODE *s_get = NIL, *s_svalue = NIL, *s_splist = NIL;
NODE *s_eql = NIL, *k_test = NIL, *k_tnot = NIL;
NODE *k_optional = NIL, *k_rest = NIL, *k_aux = NIL;
NODE *a_subr = NIL, *a_fsubr = NIL;
NODE *a_list = NIL, *a_sym = NIL, *a_int = NIL;
NODE *a_str = NIL, *a_obj = NIL, *a_fptr = NIL;
NODE *oblist = NIL, *keylist = NIL, *s_unbound = NIL;

==== ecmi05/ai2log96.txt ====
%BEGIN
!
!
!*********************************************************************
!
! MORE COMMENTS AND SWITCH SYSFUN(232) - SYSFUN(280) TIDIED UP
!
!*********************************************************************
!
! CHANNEL USAGE
! ST01 - DUMPFILE
! ST02 - LOGNAM
! ST03 - LOGOTEMP
! SM04 - LOGOFILE
! SM06 - LOGOSTK
! SM07 - LOGOMON
! SM08 - BFILE
! SM10 - JUNK FILE
!
!*****************************************
! GRAPHICS LINKAGE

==== ecmi05/ai2log97.txt ====
! UPDATED 23/10/80
%BEGIN
!
!
!*********************************************************************
!
! MORE COMMENTS AND SWITCH SYSFUN(232) - SYSFUN(280) TIDIED UP
!
!*********************************************************************
!
! CHANNEL USAGE
! ST01 - DUMPFILE
! ST02 - LOGNAM
! ST03 - LOGOTEMP
! SM04 - LOGOFILE
! SM06 - LOGOSTK
! SM07 - LOGOMON
! SM08 - BFILE
! SM10 - JUNK FILE
!
!*****************************************

==== ecmi05/ai2log98.txt ====
! UPDATED 10/11/80 - ALL FILES MADE TEMPORARY
%BEGIN
!
!
!*********************************************************************
!
! MORE COMMENTS AND SWITCH SYSFUN(232) - SYSFUN(280) TIDIED UP
!
!*********************************************************************
!
! CHANNEL USAGE
! ST01 - T#DUMP
! ST02 - LOGNAM
! ST03 - T#TEMP
! SM04 - LOGOFILE
! SM06 - T#LOGOSTK
! SM07 - LOGOMON
! SM08 - BFILE
! SM10 - JUNK FILE
!
!*****************************************

==== ecmi05/ai2log99.txt ====
! UPDATED 19/12/80
%BEGIN
!
!
!*********************************************************************
!
! MORE COMMENTS AND SWITCH SYSFUN(232) - SYSFUN(280) TIDIED UP
!
!*********************************************************************
!
! CHANNEL USAGE
! ST01 - T#DUMP
! ST02 - LOGNAM
! ST03 - T#TEMP
! SM04 - LOGOFILE
! SM06 - T#LOGOSTK
! SM07 - LOGOMON
! SM08 - BFILE
! SM10 - JUNK FILE
!
!*****************************************

==== ecmi05/c_arith.txt ====
/************************************************************************
*									*
*		   C Prolog      arith.c				*
*		   ========	 -------				*
*									*
*  By Fernando Pereira, July 1982.					*
*  EdCAAD, Dept. of Architecture, University of Edinburgh.		*
*									*
*  Based on the Prolog system written in IMP by Luis Damas for ICL 2900	*
*  computers, with some contributions by Lawrence Byrd.  Stricter types	*
*  and several extensions by Richard O'Keefe, also BACKWARDS support.	*
*									*
*  Copyright (C) 1982 Fernando Pereira, Luis Damas and Lawrence Byrd.	*
*  Copyright (C) 1984 F.Pereira, L.Damas, L.Byrd and R.A.O'Keefe.	*
*									*
************************************************************************/

/* Evaluate arithmetic expressions */

#include "pl.h"
#include "arith.h"

==== ecmi05/plottera.txt ====
THIS IS LOGO PLOTTERA PSEUDO FILE.
IT IS PERMITTED WRITE UNSHARED TO ALL, AND CONNECTION OF THIS
FILE REPRESENTS ALLOCATION OF PLOTTERA.

==== ecmi05/plotterb.txt ====
THIS IS LOGO PLOTTERB PSEUDO FILE.
IT IS PERMITTED WRITE UNSHARED TO ALL, AND CONNECTION OF THIS
FILE REPRESENTS ALLOCATION OF PLOTTERB.

==== ecmi05/c_sysbits.txt ====
/************************************************************************
*									*
*                  C Prolog    sysbits.c				*
*                  ========    ---------				*
*									*
*  By Fernando Pereira, July 1982.					*
*  EdCAAD, Dept. of Architecture, University of Edinburgh.		*
*									*
*  Based on the Prolog system written in IMP by Luis Damas for ICL 2900	*
*  computers, with some contributions by Lawrence Byrd.  Stricter types	*
*  and several extensions by Richard O'Keefe, also BACKWARDS support.	*
*									*
*  Copyright (C) 1982 Fernando Pereira, Luis Damas and Lawrence Byrd.	*
*  Copyright (C) 1984 F.Pereira, L.Damas, L.Byrd and R.A.O'Keefe.	*
*									*
************************************************************************/

/*----------------------------------------------------------------------+
|									|
|    This  is  the  UNIX/PaNiX/Xenix/VMS  interface   module.    Stdio	|
| routines  are called all over the place, and there is an unavoidable	|

==== ecmi05/devtr96.txt ====
%BEGIN
!
!
!*********************************************************************
!
! MORE COMMENTS AND SWITCH SYSFUN(232) - SYSFUN(280) TIDIED UP
!
!*********************************************************************
!
! CHANNEL USAGE
! ST01 - DUMPFILE
! ST02 - LOGNAM
! ST03 - LOGOTEMP
! SM04 - LOGOFILE
! SM06 - LOGOSTK
! SM07 - LOGOMON
! SM08 - BFILE
! SM10 - JUNK FILE
!
!*****************************************
! GRAPHICS LINKAGE

==== ecmi05/xlisp_xlevalc.txt ====
/* xleval - xlisp evaluator */

#include "xlisp.h"

/* external variables */
extern NODE *xlstack,*xlenv,*xlnewenv;
extern NODE *s_lambda,*s_macro;
extern NODE *k_optional,*k_rest,*k_aux;
extern NODE *s_evalhook,*s_applyhook;
extern NODE *s_unbound;
extern NODE *s_stdout;

/* forward declarations */
FORWARD NODE *xlxeval();
FORWARD NODE *evalhook();
FORWARD NODE *evform();
FORWARD NODE *evsym();
FORWARD NODE *evfun();

/* xleval - evaluate an xlisp expression (checking for *evalhook*) */
NODE *xleval(expr)

==== ecmi05/xlisp_xlsymc.txt ====
/* xlsym - symbol handling routines */

#include "xlisp.h"

/* external variables */
extern NODE *oblist,*keylist;
extern NODE *s_unbound;
extern NODE *xlstack;

/* forward declarations */
FORWARD NODE *symenter();
FORWARD NODE *xlmakesym();
FORWARD NODE *findprop();

/* xlenter - enter a symbol into the oblist or keylist */
NODE *xlenter(name,type)
  char *name;
{
    return (symenter(name,type,(*name == ':' ? keylist : oblist)));
}


==== ecmi05/devtr98.txt ====
! UPDATED 10/11/80 - ALL FILES MADE TEMPORARY
%BEGIN
!
!
!*********************************************************************
!
! MORE COMMENTS AND SWITCH SYSFUN(232) - SYSFUN(280) TIDIED UP
!
!*********************************************************************
!
! CHANNEL USAGE
! ST01 - T#DUMP
! ST02 - LOGNAM
! ST03 - T#TEMP
! SM04 - LOGOFILE
! SM06 - T#LOGOSTK
! SM07 - LOGOMON
! SM08 - BFILE
! SM10 - JUNK FILE
!
!*****************************************

==== ecmi05/devtr99.txt ====
! UPDATED 2/12/80 - BUG IN ABBREV
%BEGIN
!
!
!*********************************************************************
!
! MORE COMMENTS AND SWITCH SYSFUN(232) - SYSFUN(280) TIDIED UP
!
!*********************************************************************
!
! CHANNEL USAGE
! ST01 - T#DUMP
! ST02 - LOGNAM
! ST03 - T#TEMP
! SM04 - LOGOFILE
! SM06 - T#LOGOSTK
! SM07 - LOGOMON
! SM08 - BFILE
! SM10 - JUNK FILE
!
!*****************************************

==== ecmi05/xlisp_tracelsp.txt ====
(setq *tracelist* nil)

(defun evalhookfcn (expr &aux val)
       (if (and (consp expr) (member (car expr) *tracelist*))
           (progn (princ ">>> ") (print expr)
                  (setq val (evalhook expr evalhookfcn nil))
                  (princ "<<< ") (print val))
           (evalhook expr evalhookfcn nil)))

(defun trace (fun)
       (if (not (member fun *tracelist*))
	   (progn (setq *tracelist* (cons fun *tracelist*))
                  (setq *evalhook* evalhookfcn)))
       *tracelist*)

(defun untrace (fun)
       (if (null (setq *tracelist* (delete fun *tracelist*)))
           (setq *evalhook* nil))
       *tracelist*)

==== ecmi05/ai2log910.txt ====
! UPDATED 06/02/81 - DOLOGO REMOVED
%BEGIN
!
!
!*********************************************************************
!
! MORE COMMENTS AND SWITCH SYSFUN(232) - SYSFUN(280) TIDIED UP
!
!*********************************************************************
!
! CHANNEL USAGE
! ST01 - T#DUMP
! ST02 - LOGNAM
! ST03 - T#TEMP
! SM04 - LOGOFILE
! SM06 - T#LOGOSTK
! SM07 - LOGOMON
! SM08 - BFILE
! SM10 - JUNK FILE
!
!*****************************************

==== ecmi05/xlisp_xljumpc.txt ====
/* xljump - execution context routines */

#include "xlisp.h"

/* external variables */
extern CONTEXT *xlcontext;
extern NODE *xlvalue;
extern NODE *xlstack,*xlenv,*xlnewenv;
extern int xltrace,xldebug;

/* xlbegin - beginning of an execution context */
xlbegin(cptr,flags,expr)
  CONTEXT *cptr; int flags; NODE *expr;
{
    cptr->c_flags = flags;
    cptr->c_expr = expr;
    cptr->c_xlstack = xlstack;
    cptr->c_xlenv = xlenv;
    cptr->c_xlnewenv = xlnewenv;
    cptr->c_xltrace = xltrace;
    cptr->c_xlcontext = xlcontext;

==== ecmi05/xlisp_makefile.txt ====
SRC1=	xlobj.c xllist.c xlcont.c xlbfun.c
SRC2=	xldmem.c xleval.c xlfio.c xlftab.c xlglob.c xlio.c xlisp.c xljump.c \
	xlmath.c xlprin.c xlread.c xlinit.c
SRC3=	xlsetf.c xlstr.c xlsubr.c xlsym.c xlsys.c xlbind.c xldbug.c
SRCS=	$(SRC1) $(SRC2) $(SRC3) xlisp.h

OBJS=	xlbfun.o xlbind.o xlcont.o xldbug.o xldmem.o xleval.o xlfio.o \
	xlftab.o xlglob.o xlinit.o xlio.o xlisp.o xljump.o xllist.o xlmath.o \
	xlobj.o xlprin.o xlread.o xlsetf.o xlstr.o xlsubr.o xlsym.o xlsys.o 
MISC=	Makefile fact.lsp init.lsp object.lsp prolog.lsp trace.lsp \
	xlstub.c.NOTUSED 

CFLAGS=	-O

xlisp: $(OBJS)
	cc -o xlisp $(CFLAGS) $(OBJS)

$(OBJS): xlisp.h

rcs: $(SRCS)
	rcs -l $?

==== ecmi05/tape.txt ====
THIS IS LOGO TAPE PSEUDO FILE.
IT IS PERMITTED WRITE UNSHARED TO ALL, AND CONNECTION OF THIS
FILE REPRESENTS ALLOCATION OF TAPE.

==== ecmi05/xlisp_objectlsp.txt ====
; This is an example using the object-oriented programming support in
; XLISP.  The example involves defining a class of objects representing
; dictionaries.  Each instance of this class will be a dictionary in
; which names and values can be stored.  There will also be a facility
; for finding the values associated with names after they have been
; stored.

; Create the 'Dictionary' class.

(setq Dictionary (Class 'new))

; Establish the instance variables for the new class.
; The variable 'entries' will point to an association list representing the
; entries in the dictionary instance.

(Dictionary 'ivars '(entries))

; Setup the method for the 'isnew' initialization message.
; This message will be send whenever a new instance of the 'Dictionary'
; class is created.  Its purpose is to allow the new instance to be
; initialized before any other messages are sent to it.  It sets the value

==== ecmi05/xlisp_xlsysc.txt ====
/* xlsys.c - xlisp builtin system functions */

#include "xlisp.h"

/* external variables */
extern NODE *xlstack;
extern int anodes;

/* external symbols */
extern NODE *a_subr,*a_fsubr;
extern NODE *a_list,*a_sym,*a_int,*a_str,*a_obj,*a_fptr;
extern NODE *true;

/* xload - direct input from a file */
NODE *xload(args)
  NODE *args;
{
    NODE *oldstk,fname,*val;
    int vflag,pflag;

    /* create a new stack frame */

==== ecmi05/h_evalp.txt ====
/************************************************************************
*									*
*                  C Prolog     evalp.h					*
*                  ========	-------					*
*									*
*  By Fernando Pereira, July 1982.					*
*  EdCAAD, Dept. of Architecture, University of Edinburgh.		*
*									*
*  Based on the Prolog system written in IMP by Luis Damas for ICL 2900	*
*  computers, with some contributions by Lawrence Byrd.  Stricter types	*
*  and several extensions by Richard O'Keefe, also BACKWARDS support.	*
*									*
*  Copyright (C) 1982 Fernando Pereira, Luis Damas and Lawrence Byrd.	*
*  Copyright (C) 1984 F.Pereira, L.Damas, L.Byrd and R.A.O'Keefe.	*
*									*
************************************************************************/

/*----------------------------------------------------------------------+
|									|
|   These are the internal codes for the evaluable  predicates.   They	|
|   connect  the  definitions in the bootstrap file(s) to the big case	|

==== ecmi05/z5dr.txt ====





                                        1. INTRODUCTION.




                There seem  to be two main concerns and goals behind the work on natural
              language using computers, converging at many points. One goal, that of more
              natural communication with computers, has its roots in the concern for application
              of the fruits of computational research, amplified by the recent race to build a new
              generation of computers, in order to make them even more user-oriented and
              more useful for our purposes. The other goal is theoretical investigation of human
              language, and some researchers hope that the computer might be a very useful
              tool in this task; this hope is expressed by Winograd (1983: 13) thus

              'The computer  shares with  the human  mind the  abiblity to  manipulate
              symbols and carry out complex processes that include making decisions on
              the  basis of  stored knowledge.   Unlike the  human mind,  the computer

==== ecmi05/xlisp_xlispc.txt ====
/* xlisp - an experimental version of lisp that supports object-oriented
           programming */

#include "xlisp.h"

/* define the banner line string */
#define BANNER	"XLISP version 1.4 - 14-FEB-1985, by David Betz"

/* external variables */
extern NODE *s_stdin,*s_stdout;
extern NODE *s_evalhook,*s_applyhook;
extern NODE *true;

/* main - the main routine */
main()
/*
main(argc,argv)
  int argc; char *argv[];
*/
{
    NODE expr;

==== ecmi05/xlisp_xlisph.txt ====
/* xlisp - a small subset of lisp */

/* system specific definitions */
#define UNIX

#ifdef AZTEC
#include "stdio.h"
#include "setjmp.h"
#else
#include <stdio.h>
#include <setjmp.h>
#include <ctype.h>
#endif

/* NNODES	number of nodes to allocate in each request */
/* TDEPTH	trace stack depth */
/* FORWARD	type of a forward declaration (usually "") */
/* LOCAL	type of a local function (usually "static") */

/* for the Computer Innovations compiler */
#ifdef CI

==== ecmi05/c_rewrite.txt ====
/************************************************************************
*									*
*		   C Prolog	rewrite.c				*
*		   ========	---------				*
*									*
*  By Fernando Pereira, July 1982.					*
*  EdCAAD, Dept. of Architecture, University of Edinburgh.		*
*									*
*  Based on the Prolog system written in IMP by Luis Damas for ICL 2900	*
*  computers, with some contributions by Lawrence Byrd.  Stricter types	*
*  and several extensions by Richard O'Keefe, also BACKWARDS support.	*
*									*
*  Copyright (C) 1982 Fernando Pereira, Luis Damas and Lawrence Byrd.	*
*  Copyright (C) 1984 F.Pereira, L.Damas, L.Byrd and R.A.O'Keefe.	*
*									*
************************************************************************/

#include "pl.h"

#define PREFIX	0
#define INFIX	1

==== ecmi05/ai2logs.txt ====
%EXTERNALROUTINE AI2LOGO
%EXTERNALROUTINESPEC RUN(%STRING(63) S)
RUN('ECMI05.AI2LOGOY')
%END
%ENDOFFILE

==== ecmi05/xlisp_manual.txt ====





            XLISP: An Experimental Object Oriented Language

                              Version 1.4

                            January 1, 1985


                                   by
                               David Betz
                           114 Davenport Ave.
                         Manchester, NH  03103

                         (603) 625-4691 (home)




==== ecmi05/xlisp_xlobjc.txt ====
/* xlobj - xlisp object functions */

#include "xlisp.h"

#ifdef MEGAMAX
overlay "overflow"
#endif

/* external variables */
extern NODE *xlstack;
extern NODE *xlenv,*xlnewenv;
extern NODE *s_stdout;
extern NODE *self;
extern NODE *class;
extern NODE *object;
extern NODE *new;
extern NODE *isnew;
extern NODE *msgcls;
extern NODE *msgclass;
extern int varcnt;


==== ecmi05/xlisp_xlreadc.txt ====
/* xlread - xlisp expression input routine */

#include "xlisp.h"
#include "ctype.h"

/* external variables */
extern NODE *s_stdout,*true;
extern NODE *s_quote,*s_function,*s_bquote,*s_comma,*s_comat;
extern NODE *xlstack;
extern int xlplevel;

/* external routines */
extern FILE *fopen();

/* forward declarations */
FORWARD NODE *plist();
FORWARD NODE *pstring();
FORWARD NODE *pquote();
FORWARD NODE *pname();

/* xlload - load a file of xlisp expressions */

==== ecmi05/readmetoo.txt ====
This directory contains
	the C source code for C-Prolog (*.c and *.h files)
	a makefile
	a startup script used by the makefile
	a directory bmark
	    containing some benchmark files
	    the main Edinburgh benchmark files are NOT here
	a directory pl
	    containing the parts of the Prolog system
	    which are defined in Prolog
	some other junk

To make a new Prolog system,
	check the makefile to see that the FinalVn is right.

	if the C part of the system has changed,
	    "make prolog"
	if the Prolog part of the system has changed,
	or if the format of a saved state has changed,
	    "make startup"


==== ecmi05/xlisp_xlprinc.txt ====
/* xlprint - xlisp print routine */

#include "xlisp.h"

/* external variables */
extern NODE *xlstack;
extern char buf[];

/* xlprint - print an xlisp value */
xlprint(fptr,vptr,flag)
  NODE *fptr,*vptr; int flag;
{
    NODE *nptr,*next;

    /* print nil */
    if (vptr == NIL) {
	putstr(fptr,"nil");
	return;
    }

    /* check value type */

==== ecmi05/turtle.txt ====
THIS IS LOGO TURTLE PSEUDO FILE.
IT IS PERMITTED WRITE UNSHARED TO ALL, AND CONNECTION OF THIS
FILE REPRESENTS ALLOCATION OF TURTLE.

==== ecmi05/initlogs.txt ====
%EXTERNALROUTINE INITLOGO
%SYSTEMINTEGERMAPSPEC COMREG(%INTEGER N)
%EXTERNALROUTINESPEC DEFINE(%STRING (63) S)
%EXTERNALROUTINESPEC PERMITFILE(%STRING (63) S)
%EXTERNALROUTINESPEC NEWSMFILE(%STRING (63) S)
%EXTERNALROUTINESPEC CHERISH(%STRING (63) S)
%EXTERNALINTEGERFNSPEC SMADDR(%INTEGER C,%INTEGERNAME L)
%INTEGER LEN,EUNAD,I
%BYTEINTEGERNAME A
%BYTEINTEGERARRAY EUNBYTE(1:7)
%STRING(6) %NAME EMASUSER
EUNAD=COMREG(16)
EUNBYTE(1)=6
%CYCLE I=2,1,7
EUNBYTE(I)=BYTEINTEGER(EUNAD+I-2)
%REPEAT
EMASUSER==STRING(ADDR(EUNBYTE(1)))
DEFINE('SM04,LOGODIR');NEWSMFILE('LOGODIR,4096')
A==BYTEINTEGER(SMADDR(4,LEN))
A=0
%PRINTTEXT ' LOGODIR NOW EXISTS, LENGTH IS '

==== ecmi05/lingos30.txt ====
%BEGIN
!
! CHANNEL USAGE
! ST01 - DUMPFILE AND DRIBBLE AT GOODBYE
! ST02 - ELGNAM
! SM04 - OWNFILE
! SM05 - LOGERRS
! SM06 - LOGOSTK
! SM07 - LOGOMON
! SM08 - BFILE
! SM09 - LOGMASTR
! SM10 - LOGOTEMP
! SM11 - LOGODRIB
! SM12 - NEW LOGON IN EDITMASTER
! ST13 - SHOWFILE?
!
!*****************************************
! GRAPHICS LINKAGE
!*****************************************
!
%EXTERNALINTEGERFNSPEC CONV (%INTEGER X)

==== ecmi05/xlisp_xlbindc.txt ====
/* xlbind - xlisp symbol binding routines */

#include "xlisp.h"

/* external variables */
extern NODE *xlenv,*xlnewenv;

/* xlsbind - bind a value to a symbol sequentially */
xlsbind(sym,val)
  NODE *sym,*val;
{
    NODE *ptr;

    /* create a new environment list entry */
    ptr = newnode(LIST);
    rplacd(ptr,xlenv);
    xlenv = ptr;

    /* create a new variable binding */
    rplaca(ptr,newnode(LIST));
    rplaca(car(ptr),sym);

==== ecmi05/books.txt ====
book(et,sfipubs).
book(son_of_et,sfipubs).
book(i_was_a_teenage_robot,sfipubs).
book(et_rides_again,sfipubs).
book(biggles_and_wendy,virago).
book(freda_the_fire_engine,virago).
book(i_claudius,penguin).
book(history_of_the_western_world,penguin).
book(dictionary_of_computing,penguin).
book(ttl_cookbook,sams).
book(cmos_cookbook,sams).

stocks(james_thin,sfipubs).
stocks(james_thin,virago).
stocks(james_thin,penguin).
stocks(menzies,sfipubs).
stocks(better_books,penguin).
stocks(better_books,virago).
stocks(bauermeister,penguin).
stocks(bauermeister,sams).
stocks(edinbooks,sfipubs).

==== ecmi05/xlisp_xldbugc.txt ====
/* xldebug - xlisp debugging support */

#include "xlisp.h"

/* external variables */
extern long total;
extern int xldebug;
extern int xltrace;
extern NODE *s_unbound;
extern NODE *s_stdin,*s_stdout;
extern NODE *s_tracenable,*s_tlimit,*s_breakenable;
extern NODE *s_continue,*s_quit;
extern NODE *xlstack;
extern NODE *true;
extern NODE **trace_stack;

/* external routines */
extern char *malloc();

/* forward declarations */
FORWARD NODE *stacktop();

==== ecmi05/xlisp_xlftabc.txt ====
/* xlftab.c - xlisp function table */

#include "xlisp.h"

/* external functions */
extern NODE
    *xeval(),*xapply(),*xfuncall(),*xquote(),*xbquote(),
    *xset(),*xsetq(),*xsetf(),*xdefun(),*xdefmacro(),
    *xgensym(),*xmakesymbol(),*xintern(),
    *xsymname(),*xsymvalue(),*xsymplist(),*xget(),*xremprop(),
    *xcar(),*xcaar(),*xcadr(),*xcdr(),*xcdar(),*xcddr(),
    *xcons(),*xlist(),*xappend(),*xreverse(),*xlast(),*xnth(),*xnthcdr(),
    *xmember(),*xassoc(),*xsubst(),*xsublis(),*xremove(),*xlength(),
    *xmapc(),*xmapcar(),*xmapl(),*xmaplist(),
    *xrplca(),*xrplcd(),*xnconc(),*xdelete(),
    *xatom(),*xsymbolp(),*xnumberp(),*xboundp(),*xnull(),*xlistp(),*xconsp(),
    *xeq(),*xeql(),*xequal(),
    *xcond(),*xand(),*xor(),*xlet(),*xletstar(),*xif(),
    *xprog(),*xprogstar(),*xprog1(),*xprog2(),*xprogn(),*xgo(),*xreturn(),
    *xcatch(),*xthrow(),
    *xerror(),*xcerror(),*xbreak(),*xerrset(),*xbaktrace(),*xevalhook(),

==== ecmi05/oldlogos.txt ====
%BEGIN
%EXTERNALROUTINESPEC DISCONNECT(%STRING(63) S)
%EXTERNALROUTINESPEC CLOSESM(%INTEGER CH)
%SYSTEMINTEGERMAPSPEC COMREG(%INTEGER N)
%SYSTEMROUTINESPEC FINFO(%STRING(15) S,%INTEGER LEV,%C
%RECORDNAME R, %INTEGERNAME FLAG)
%EXTERNALSTRINGFNSPEC DATE
%EXTERNALROUTINESPEC LIST(%STRING(63) S)
%EXTERNALSTRINGFNSPEC TIME
%EXTERNALLONGREALFNSPEC CPUTIME
%EXTERNALINTEGERFNSPEC SMADDR(%INTEGER CHANN,%INTEGERNAME LENGTH)
%EXTERNALROUTINESPEC DEFINE(%STRING (65) S)
%EXTERNALROUTINESPEC PERMIT FILE(%STRING (65) S)
%EXTERNALROUTINESPEC NEWSMFILE(%STRING (63) S)
%EXTERNALROUTINESPEC CHERISH(%STRING (63) S)

%EXTERNALROUTINESPEC PROMPT(%STRING(15) M)
%EXTERNALROUTINESPEC DESTROY(%STRING(65) S)
%EXTERNALROUTINESPEC CLOSESTREAM(%INTEGER CH)
%EXTERNALREALFNSPEC RANDOM (%INTEGERNAME I,%INTEGER J)
%EXTERNALINTEGERFNSPEC TESTINT(%INTEGER C,%STRING(15) INT)

==== ecmi05/lognam910.txt ====
0.9
'EMPTY' ''
'SPACE' ' '
'NL' '
'
'TAB' '      '
'TRUE' 'TRUE'
'FALSE' 'FALSE'
'QUOTE' ''''
'DOTS' ':'
'('
')'
','
'NIL'
'UNDEF'
'THEN'
'ELSE'
'END'
'DELETE'
'UNDO'
'UNDOS'

==== ecmi05/c_main.txt ====
/************************************************************************
*									*
*		   C Prolog      main.c					*
*		   ========	 ------					*
*									*
*  By Fernando Pereira, July 1982.					*
*  EdCAAD, Dept. of Architecture, University of Edinburgh.		*
*									*
*  Based on the Prolog system written in IMP by Luis Damas for ICL 2900	*
*  computers, with some contributions by Lawrence Byrd.  Stricter types	*
*  and several extensions by Richard O'Keefe, also BACKWARDS support.	*
*									*
*  Copyright (C) 1982 Fernando Pereira, Luis Damas and Lawrence Byrd.	*
*  Copyright (C) 1984 F.Pereira, L.Damas, L.Byrd and R.A.O'Keefe.	*
*									*
************************************************************************/

#include "pl.h"
#include "evalp.h"
#include "arith.h"
#include <setjmp.h>

==== ecmi05/newlogs.txt ====
%EXTERNALROUTINE NEWLOGO(%STRING(0) S)
%EXTERNALROUTINESPEC RUN(%STRING(63) S)
RUN('ECMI05.NEWLOGOY')
%END
%ENDOFFILE

==== ecmi05/devtr910.txt ====
! UPDATED 06/02/81 - DOLOGO REMOVED
%BEGIN
!
!
!*********************************************************************
!
! MORE COMMENTS AND SWITCH SYSFUN(232) - SYSFUN(280) TIDIED UP
!
!*********************************************************************
!
! CHANNEL USAGE
! ST01 - T#DUMP
! ST02 - LOGNAM
! ST03 - T#TEMP
! SM04 - LOGOFILE
! SM06 - T#LOGOSTK
! SM07 - LOGOMON
! SM08 - BFILE
! SM10 - JUNK FILE
!
!*****************************************

==== ecmi05/prelogos.txt ====
%EXTERNALROUTINE PRELOGO
%SYSTEMINTEGERMAPSPEC COMREG(%INTEGER N)
%EXTERNALROUTINESPEC DEFINE(%STRING (63) S)
%EXTERNALROUTINESPEC PERMITFILE(%STRING(63) S)
%EXTERNALROUTINESPEC NEWSMFILE(%STRING (63) S)
%EXTERNALROUTINESPEC CHERISH(%STRING (63) S)
%EXTERNALINTEGERFNSPEC SMADDR(%INTEGER C,%INTEGERNAME L)
%INTEGER LEN,EUNAD,I
%BYTEINTEGERNAME A
%BYTEINTEGERARRAY EUNBYTE(1:7)
%STRING(6) %NAME EMASUSER
EUNAD=COMREG(16)
EUNBYTE(1)=6
%CYCLE I=2,1,7
EUNBYTE(I)=BYTEINTEGER(EUNAD+I-2)
%REPEAT
EMASUSER==STRING(ADDR(EUNBYTE(1)))
DEFINE('SM04,LOGOINIT');NEWSMFILE('LOGOINIT,4096')
A==BYTEINTEGER(SMADDR(4,LEN))
A=0
%PRINTTEXT ' LOGOINIT NOW EXISTS, LENGTH IS '

==== ecmi05/xlisp_xlstrc.txt ====
/* xlstr - xlisp string builtin functions */

#include "xlisp.h"

/* external variables */
extern NODE *xlstack;

/* external procedures */
extern char *strcat();

/* xstrlen - length of a string */
NODE *xstrlen(args)
  NODE *args;
{
    NODE *val;
    int total;

    /* initialize */
    total = 0;

    /* loop over args and total */

==== ecmi05/parserdoc.txt ====
% File:		parser.doc
% Author:	Peter Ross
% Updated:	7 June 1985

This describes how to use the (very) simple chart parser written in Prolog
in the file 'parser'.

The program expects data in the form of Prolog clauses:

[1] rule(Tag, Category, ExpansionList).
	The 'Tag' argument is just anbitrary Prolog term used to group
	together a set of rule/3 and lexical/3 clauses. The parser needs
	to be told this tag in order to know which set of these clauses
	to use as data. Since it is arbitrary, you could use a compound
	term to allow you to selectively include rules, at no extra cost.
	The 'Category' argument identifies a syntactic category, e.g.
	noun or sentence.
	The 'ExpansionList' is a list giving one possible expansion of that
	category into sub-categories.

[2] lexical(Tag, Word, CategoryList).

==== ecmi05/xlisp_initlsp.txt ====
; get some more memory
(expand 1)

; some fake definitions for Common Lisp pseudo compatiblity
(setq symbol-function symbol-value)
(setq fboundp boundp)
(setq first car)
(setq second cadr)
(setq rest cdr)

; some more cxr functions
(defun caddr (x) (car (cddr x)))
(defun cadddr (x) (cadr (cddr x)))

; (when test code...) - execute code when test is true
(defmacro when (test &rest code)
          `(cond (,test ,@code)))

; (unless test code...) - execute code unless test is true
(defmacro unless (test &rest code)
          `(cond ((not ,test) ,@code)))

==== ecsc01/utilss_compars.txt ====
%constinteger max base commands=12
%conststring(255)%array base commands(1:max base commands)=%C
"alias","remove","monitor","stop","quit","launch","broadcast","tell",
"autoattack","surrender","dump","resources"
!"B","C","D","E","F","G","H","I","J","K","AL","LI","RE","ST"
%recordformat com form (%string(80)comstr,%byteinteger base,type)
%constinteger max possible commands=20
%ownrecord(com form)%array commands(1:max possible commands)
%owninteger max commands=0

%routine sort(%record(com form)%arrayname r,%integer lo,hi)
!%routine sort(%stringarrayname r,%integer lo,hi)
%integer i,j,k,l,n
%record(com form)x
!%string(255)x
l=lo-1
n=hi
!%while n<hi-l %cycle
!  n=2*n
!%repeat
! <=> 1<<((32- shz{shift while not zero}(hi-l-1))&31)

==== ecsc01/utilss_findprivs.txt ====
%externalroutine findpriv(%string(255)u)
%string(6)user
%integer flag,fsys,priv,i
%externalintegerfnspec dfsys(%string(6)user,%integername fsys)
%externalintegerfnspec dsfi (%string(6)user,%integer fsys,type,set,adr)
user<-u
%if length(user)#6 %then flag=8 %and ->out
fsys=-1
flag=dfsys(user,fsys)
->out %unless flag=0
flag=dsfi(user,fsys,38,0,addr(priv))
->out %unless flag=0
write(priv,1)
newline
%for i=0,1,32 %cycle
   %if (priv>>i)&1=1 %then write(i,3)
%repeat
out:
%if flag#0 %start
   printstring("Flag=")
   write(flag,1)

==== ecsc01/utilss_retrieves.txt ====
%externalroutine retrieve(%string(255)s)
%externalintegerfnspec dretrieve(%string(6)t,%integer c)
%systemroutinespec cast out (%string(255)%name s)
%systemintegerfnspec pstoi(%string(255)s)
%string(255)p1,p2
%string(6)t
%integer c,flag
cast out (s)
%unless s->p1.(",").p2 %start
   printstring("Bad param")
   newline
   %return
%finish
t<-p1
c=pstoi(p2)
flag=dretrieve(t,c)
printstring("RETRIEVE ".p1.",".p2." GIVES:")
write(flag,1)
%end
%endoffile

==== ecsc01/utilss_gsqs.txt ====
%externalroutine gsq(%string(255)s)
%externalroutinespec tcpusers(%string(255)s)
tcpusers("GESQ");tcpusers("GSQ2");
%end
%endoffile

==== ecsc01/utilss_iprocs.txt ====
%begin
%externalintegerfnspec DPROCS(%integername max,%integer adr)
%routine idprocs
%integer j,max,adr,l,k
%byteintegerarray plist(0:32*256)
%stringname user
   l=0
   max=256
   adr=addr(plist(0))
   j=dprocs(max,adr)
   %returnif j#0
   %cycle k=0,1,max-1
       user==string(addr(plist(32*k)))
       %unless user="" %start
           write(k,3)
           space
           printstring(user)
           l=l+1
           l=0 %and newline %if l=6
       %finish
   %repeat

==== ecsc01/utilss_finds.txt ====

%record %format rf(%integer conad, filetype, datastart, dataend)
%system %routine %spec connect(%string (31) file, %integer mode, hole, prot,
       %record (rf) %name r, %integer %name flag)
%external %integer %function %spec exist(%string (31) file)
%system %integer %function %spec currentll
%system %long %integer %function %spec load ep(%string (31) entry,
       %integer %name type, flag, %integer loadlevel)
%system %routine %spec unload2(%integer loadlevel, flag)
%external %integer %function %spec uinfi(%integer ep)
%external %routine %spec define(%string (255) s)
%external %routine %spec clear(%string (255) s)
%external %routine %spec closestream(%integer str)
%system %routine %spec ssmessa(%integer fail, %string (63) fname)
%system %routine %spec find entry(%string (31) entry, %integer type, dad,
       %string %name file, %integer %name dr0, dr1, flag)
%system %routine %spec load(%string (31) entry, %integer type,
       %integer %name flag)
%system %routine %spec setpar(%string (255) s)
%system %string %function %spec spar(%integer i)
%system %integer %function %spec parmap

==== ecsc01/sup_samplectopt.txt ====

!
! This file contains the const integers to control compile time options
! in EMAS2900
! it is intended to be concatenated onto the front of sourcefiles
! before compilation
%CONSTINTEGER YES=1
%CONSTINTEGER NO=0
%CONSTINTEGER SSERIES=NO;               ! NO = "P" series, YES = "S" series
%CONSTINTEGER MULTIOCP=YES;             ! YES to include semaphoring
%CONSTINTEGER RECONFIGURE=YES;          ! allow OCP/SAC/SMAC reconfiguration
%CONSTINTEGER SFCFITTED=NO;             ! NO for disc only sites
%CONSTINTEGER CPFITTED=NO;              ! card punch fitted
%CONSTINTEGER CSU FITTED=YES;           ! switch unit
%CONSTINTEGER DAP FITTED=YES;           ! array processor available
%CONSTINTEGER SNOOZING=YES;             ! YES allows suspend in store
                                        ! advantageous with large stores
%CONSTINTEGER PRODUCTION=NO;            ! YES for continuing after
                                        ! software errors(most of which
                                        ! are due to hardware!)
%CONSTINTEGER MONLEVEL=7;               ! 0= no monitoring

==== ecsc01/utilss_bellss.txt ====
%externalroutine bells(%string(255)dummy)
%integer i
%cycle i=1,1,20
      printch    (7)
      spaces(4)
%repeat
%end
%endoffile

==== ecsc01/utilss_testsm.txt ====
program testsm(output);
const out='Pascal test maps OK';
      magic = 402653440;
      fname=' 23,t#             ';
type  str19=packed array [1..19]of char;
      ptr19=^str19;
      ftype=packed array [1..711]of char;
      fptr=^ftype;
var   len:integer;
      mapper:fptr;
      smfile:ptr19;
procedure define(i:integer;stref:ptr19);extern;
procedure opensm(chan,mode:integer;var mapper:fptr;var len:integer);extern;
procedure closesm(chan:integer);extern;
begin
      new(smfile);
      smfile^:=fname;
      smfile^[1]:=chr(5);
      define(magic,smfile);
      opensm(23,1,mapper,len);
      writeln(len:5,' bytes of data accessed');

==== ecsc01/utilss_clnewusrs.txt ====
%externalroutine clnewusers(%string(255)par)
%externalroutinespec newusers(%string(255)s)
%externalroutinespec clearscreen(%string(255)s)
clearscreen("")
newline
newusers(par)
%end
%endoffile

==== ecsc01/utilss_notel.txt ====
Source: .IN         Compiled: 18/04/83   19.55.07
Object: T#O

Parms set: DEFAULTS



              ERCC. Imp80 Compiler Release 1 Version 12 Nov 82


  1023  3069
     1        %systemroutinespec to journal (%integer from,len)
     2        %externalroutine note (%string(255)s)
     3        s="
     4"       **** ".s."
     5"       "
     6        tojournal(addr(s)+1,length(s))
     7        %end
     8        %endoffile

     8 LINES ANALYSED IN    64 MSECS  -  SIZE=   214

==== ecsc01/utilss_heaps.txt ====
%constant %integer true=1,false=0,wordshift=2
%own %integer base=0,heap size=65535<<wordshift,
 moning=true,first hole=0,flag=0,
 first call=true
%record %format holef(%half %integer size,next)
%record %format crf(%integer conad,type,start,end)
%own %record (crf) connect report
%own %record (holef) %name prev,curr,succ
%constant %string (11) heap file="T#IHEAP"
%own %string (11) temp file=""
%system %routine %spec outfile(%string (31) file, %integer length,hole,prot,
    %integer %name conad,flag)
%external %integer %function %spec exist(%string (31) file)
%system %routine %spec destroy(%string (31) file, %integer %name flag)
%system %routine %spec connect(%string (31) file, %integer mode,hole,prot,
    %record (crf) %name report, %integer %name flag)
%system %routine %spec disconnect(%string (31) file, %integer %name flag)
%system %routine %spec newgen(%string (31) old,new, %integer %name flag)
%system %routine %spec rename(%string (31) old,new, %integer %name flag)
%system %routine %spec fill(%integer length,start,filler)
%external %integer %function %spec outpos

==== ecsc01/utilss_where.txt ====
%externalstring(63)%fnspec uinfs(%integer ep)
%systemstring(255)%fnspec itos(%integer i)
%systemstring(8)%fnspec htos(%integer i,places)
%externalroutine where(%string(255)dummy)
%string(63)terms
terms=uinfs(14)
%string(6) tcp
%string(8) hexC
%byteinteger C,N,T
N=charno(terms,1);T=charno(terms,2);C=charno(terms,3);
TCP=substring(terms,4,9)
hexC=htos(C,2)
printstring("You are on Console ".itos(c)." (X'".hexC."') on TCP ".TCP)
printstring(" network address N".itos(N)."T".itos(T))
newlines(2)
%end
%endoffile


==== ecsc01/utilss_pal.txt ====
%source off
{!TITLE     Palindrome Finding Program                                         }
{                                                                              }
{      This program is designed for interactive terminal use. It takes a number}
{as input, reverses the digits, adds the two numbers together and tests the    }
{result to see if it is a palindrome. This process can be repeated until either}
{a palindrome is found or the capacity of the array holding the number is r    }
{reached.                                                                      }
{      Further documentation is contained withing the program.                 }
{      Due to the interactive nature of the program no input or output streams }
{should be defined.                                                            }
{                                                                              }
{                                                                              }

program pal(inp,output);

const
   progname   = 'PALINDROME PROGRAM     VERSION 18  ';
   sp         = ' ';
   maxlength  = 100;
   namelength = 30;

==== ecsc01/locsys_locfile.txt ====
2Room 10 ,Appleton Tower Basement_________________
2Appleton Tower Basement__________________________
 Appleton Tower Basement__________________________
 Appleton Tower Basement__________________________
 Appleton Tower Level 4___________________________
2Appleton Tower Level 4___________________________
 Appleton Tower Level 4___________________________
 Appleton Tower Level 4___________________________
 Appleton Tower Level 4___________________________
2George Square____________________________________
 Appleton Tower Basement__________________________
2Forrest Hill Unix Line___________________________
 Appleton Tower Level 4___________________________
2Appleton Tower Basement__________________________
 Appleton Tower Basement__________________________
2Appleton Tower Basement__________________________
2Appleton Tower Basement__________________________
2Appleton Tower Basement__________________________
 Appleton Tower Basement__________________________
2Appleton Tower Basement__________________________
 Appleton Tower Level 4___________________________

==== ecsc01/t#utilss0_xrefs.txt ====
%EXTERNALROUTINE CROSSREF(%STRING(63)INPUT)
%CONSTINTEGER JOBNAMLEN=6,MAXDISP=15,MAXGLOB=255,MAXHASH=4095, %C
   MAXLINE=511,NAMLEN=8,OUTLINE=132,PAGESIZE=4096
%CONSTSTRING(23)VERSION="2.02 07/08/78  (MDB)"
%OWNSTRING(35)HEADER="* VARIABLE CROSS REFERENCE OF FILE "
%OWNSTRING(35)BLANK=""
%OWNSTRING(87)ASTK="*******************************************"
%INTEGER DATASTART,DEND,LENIN,M,MAXNAMES,MAXSTRINGS,MAXUSES
%STRING(31)DATETIME,MEMNAME,NAML,OUTPUT,VNAME
%EXTERNALROUTINESPEC DEFINE(%STRING(63)S)
%EXTERNALINTEGERFNSPEC SMADDR(%INTEGER N,%INTEGERNAME L)
%EXTERNALROUTINESPEC PROMPT(%STRING(15)S)
%EXTERNALSTRINGFNSPEC DATE
%EXTERNALSTRINGFNSPEC TIME
!*
%STRINGFN ITOSTR(%INTEGER I,M)
%STRING(1)SIGN
%STRING(63)S
M=0%IF M<0
%IF I<0%THEN SIGN="-"%AND I=IMOD(I)%ELSE SIGN=" "
S=""

==== ecsc01/total0303x.txt ====
Œ
Œ
! **** **** Never attempt to compile any of the subsystem without **** ****
! **** **** the PARMS NOCHECK and STACK.                          **** ****
!
!
! %CONST declarations for conditional compilation:
! NEWLOADER - SEPRTN must have the same value
! MACHINE   - SEPRTN  "    "    "    "    "  
! STUDENTSS - LOADER  "    "    "    "    "  
! PDFNFC
! PIPER
! NEWCONNECT.
!
!
! To be attended to:
!    Change OPTION to call a %SYSTEM %ROUTINE SETOPT (% STRING (255) PARMS,
!        %STRING (?) OPTION FILE NAME, %INTEGER %NAME FLAG)
!    so that student supervisors' utilities can use it.
!    Why doesn't DISCONNECT(.ALL) do T# files?  Probably not relevant with
!    the new CONNECT mechanism, but with the old mechanism I suppose it's

==== ecsc01/utilss_awaits.txt ====
%externalstringfnspec vdus(%integer i)
%externalroutinespec printchs(%string(255)s)
%recordformat parmf(%integer dest,srce,p1,p2,p3,p4,p5,p6)
%dynamicroutinespec dpoff(%record(parmf)%name p)
%dynamicintegerfnspec ddelay(%integer secs)
%externalroutine await(%string(255) s)
%record(parmf) p
%integer i
printchs(vdus(1))
newlines(5)
printstring("         This terminal is still in use - please do not try to use it")
newlines(5)
i=ddelay(2)
p=0
      dpoff(p)
      %end; ! AWAIT
%endoffile

==== ecsc01/t#utilss0_preface.txt ====
!TITLE UTILITIES FOR USE ON EMAS

==== ecsc01/t#utilss0_uinffs.txt ====
program uinffs(output);
const uinfstart=2359296;
type
      uinff=packed record
            user:packed array[0..6]of char;
            jobdocfile:packed array[0..31]of char;
            mark,fsys,procno,isuff,reason,batchid,
            sessiclim,scidensad,scidens,startcnsl,aiostat,sctdate,sync1dest,sync2dest,
            asyncdest,aacctrec,aicrevs:integer;
            jobname:packed array[0..15]of char;
            basefile:packed array[0..31]of char;
            previc,
            itaddr0,itaddr1,itaddr2,itaddr3,itaddr4,streamid,dident,scarcity,
            preemptat:integer;
            spoolrfile:packed array[0..11]of char;
            funds,sesslen,priority,decks,drives,partclose:integer;
            tmodes:packed array[1..20]of char{DUMMY FILLER!!!};
            pslot:integer;
            itaddr:packed array[0..63]of char;
            fclosing:packed array[0..3]of char;
            clofes,

==== ecsc01/pi7hs.txt ====
%external %routine initialise %alias "S#INITIALISE"

   ! Note: this version of PRINTINIT7 assumes that the printer is a Philips
   !       GP300 dot matrix printer or a Xerox 2700 laser printer.
   !       Various permission checks (terminal, process used etc.) have been
   !       removed. If required in the future, the original listing of
   !       PRINTINIT7A should be examined and the relevant code used.

   %constant %integer save max=7
   %record %format crrf(%integer conad, filetype, datastart, dataend)
   %record %format fhf(%integer end, start, size, type, fhole, dt, sp1, sp2)
   %record %format infof(%integer vsn, state, %string (7) ident, user, %string (15) dest, srce,
     output, %string (31) name, delivery, %string (63) message, %integer dtrec, dtst, dtopst,
     dtdel, start, length, time, (%integer oplim %or %integer cc), %integer size,
     (%integer prior %or %integer pc), %integer aftdt, ahead, %byte %integer forms,
     mode, copies, order, rerun, decks, drives, fails) {256 bytes}
   %record (infof) %name info
   %record (infof) %array %name saveinfo
   %record %format profrecf(%integer cc, pbar, %string (6) %array bar(0:save max),
     %integer pfile, %record (infof) %array saveinfo(0:save max), %integer gcc,
     %string (8) gdate, %integer pc, gpc)

==== ecsc01/t#utilss0_findprivs.txt ====
%externalroutine findpriv(%string(255)u)
%string(6)user
%integer flag,fsys,priv,i
%externalintegerfnspec dfsys(%string(6)user,%integername fsys)
%externalintegerfnspec dsfi (%string(6)user,%integer fsys,type,set,adr)
user<-u
%if length(user)#6 %then flag=8 %and ->out
fsys=-1
flag=dfsys(user,fsys)
->out %unless flag=0
flag=dsfi(user,fsys,38,0,addr(priv))
->out %unless flag=0
write(priv,1)
newline
%for i=0,1,32 %cycle
   %if (priv>>i)&1=1 %then write(i,3)
%repeat
out:
%if flag#0 %start
   printstring("Flag=")
   write(flag,1)

==== ecsc01/t#utilss0_memos.txt ====
%external %routine %spec writeprofile(%string(11) key, %name info,
    %integer %name version, flag)
%external %routine %spec readprofile(%string(11) key, %name info,
    %integer %name version, flag)
%system %routine %spec setpar(%string(255) s)
%system %string(255) %fn %spec spar(%integer i)
%system %integer %fn %spec parmap
%system %integer %fn %spec pstoi(%string(255) s)
%system %string(255) %fn %spec substring(%string %name s, %integer i, j)
%external %routine %spec prompt(%string(255) s)
%external %integer %fn %spec uinfi(%integer i)
%external %string(255) %fn %spec ucstring(%string(255) s)
%system %string %fn %spec itos(%integer i)
%const %integer secsin24hrs = 86400; ! SECS IN DAY
%const %integer days70 = 25567; ! DAYS FROM JAN1 1900 TO JAN1 1970
%const %long %integer secs70 = x'0000000083AA7E80'; ! SECS DITTO
%const %string(1) snl = "
"
%const %integer maxmemos=10
%record %format proff(%integer %array after(1:maxmemos),
    %string(255) %array text(1:maxmemos))

==== ecsc01/t#utilss0_retrieves.txt ====
%externalroutine retrieve(%string(255)s)
%externalintegerfnspec dretrieve(%string(6)t,%integer c)
%systemroutinespec cast out (%string(255)%name s)
%systemintegerfnspec pstoi(%string(255)s)
%string(255)p1,p2
%string(6)t
%integer c,flag
cast out (s)
%unless s->p1.(",").p2 %start
   printstring("Bad param")
   newline
   %return
%finish
t<-p1
c=pstoi(p2)
flag=dretrieve(t,c)
printstring("RETRIEVE ".p1.",".p2." GIVES:")
write(flag,1)
%end
%endoffile

==== ecsc01/sup_comms56s.txt ====

!  R.D.EAGER        CONTAINS CODE FOR OUTPUT ACCOUNTS IN COMM CONTROL,
!                   LP ADAPTOR AND CP ADAPTOR
!                 VERSION OF 13/06/80
!        DEC 79: INCLUDE AN OPER ADAPTOR
!                HAVE ONLY ONE SERVICE NUMBER, X'37'
!        OTHER POSSIBLE CHANGES
!           MAKE INITIALISATION CALL OF CC INITIALISE ADAPTORS AS WELL
!           MAKE IT POSSIBLE TO DEALLOCATE/ALLOCATE ALL DEVICES
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20A ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DDTADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,WASKLOKCORRECT,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,DQADDR,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0, %C
         %INTEGER ITINT,CONTYPEA,GPCCONFA,FPCCONFA,SFCCONFA, %C
         BLKADDR,DPTADDR,SMACS,TRANS,%LONGINTEGER KMON,  %C
         %INTEGER DITADDR,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,STOREAAD,PROCAAD,SFCCTAD,DRUMTAD,TSLICE,SP0,SP1, %C

==== ecsc01/t#utilss0_allsourcess.txt ====
%constant %integer ssobjfiletype= 1
%constant %integer ssdirfiletype= 2
%constant %integer sscharfiletype= 3
%constant %integer ssdatafiletype= 4
%constant %integer sscorruptobjfiletype=5
%constant %integer sspdfiletype= 6
%constant %integer ssoptfiletype= 9
%constant %integer usingworkfile=0
%record %format connect report format(%integer connect address, file type,
    data start, data end)
%record %format contf(%integer dataend, datastart, psize, filetype, sum,
    datetime, spare1, spare2, mark, null1, ugla, astk, ustk, null2, itwidth,
    ldelim, rdelim, journal, searchdircount, arraydiag, initworksize, spare,
    itinsize, itoutsize, nobl, istk, %long %integer initparms,
    %integer dataecho, terminal, i23, i24, i25, i26, i27, i28, i29, i30, i31,
    i32, %string (31) fstartfile, bstartfile, preloadfile, moddir, cfaults,
    s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, s17, s18, s19, s20,
    s21, s22, s23, s24, s25, s26, s27, s28, s29, s30, s31, s32,
    %string (31) %array searchdir(1:16))
%record %format arf(%string (31) name, %integer type)
%system %routine %spec setpar(%string (255) s)

==== ecsc01/t#utilss0_clnewusrs.txt ====
%externalroutine clnewusers(%string(255)par)
%externalroutinespec newusers(%string(255)s)
%externalroutinespec clearscreen(%string(255)s)
clearscreen("")
newline
newusers(par)
%end
%endoffile

==== ecsc01/t#utilss0_penvs.txt ====
program uinf(output);
const
  userad=2359296;{str6}
  fsysad=2359343;{int}
  basefilead=2359420;{str31}
  scarcityad=2359484;{int}
  preemptad=2359488;{int}
  fundsad=2359504;{int}
  termad=2359564;{str63}
  secstocdad=-2134900564;{int}
  secsfrmnad=-2134900568;{int}
  datead=-2134900673;{int}
  timead=-2134900661;{int}
  usersad=-2134900648;{int}
  ocptypead=-2134900736;{int}
  tojdayad=-2134900680;{int}
  suplvnad=-2134900684;{int}
  rationad=-2134900604;{int}
type
  str6=packed array[0..6]of char;
  str31=packed array[0..31]of char;

==== ecsc01/sup_com37s.txt ====
!
!* Communications record format - extant from CHOPSUPE 22A onwards *
!*
%RECORDFORMAT COMF(%INTEGER OCPTYPE,SLIPL,SBLKS,SEPGS,NDISCS,DLVNADDR, %C
         (%INTEGER GPCTABSIZE,GPCA %OR %INTEGER DCUTABSIZE,DCUA), %C
         %INTEGER SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,TOJDAY,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,SERVAAD,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0,%INTEGER ITINT,CONTYPEA, %C
         (%INTEGER GPCCONFA %OR %INTEGER DCUCONFA), %C
         %INTEGER FPCCONFA,SFCCONFA,BLKADDR,RATION, %C
         (%INTEGER SMACS %OR %INTEGER SCUS), %C
         %INTEGER TRANS,%LONGINTEGER KMON,  %C
         %INTEGER DITADDR,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,STOREAAD,PROCAAD,SFCCTAD,DRUMTAD,TSLICE,FEPS,  %C
         MAXCBT,PERFORMAD,SP1,SP2,SP3,SP4,SP5,SP6, %C
         LSTL,LSTB,PSTL,PSTB,HKEYS,HOOT,SIM,CLKX,CLKY,CLKZ,  %C
         HBIT,SLAVEOFF,INHSSR,SDR1,SDR2,SDR3,  %C
         SDR4,SESR,HOFFBIT,BLOCKZBIT,BLKSHIFT,BLKSIZE,END)

==== ecsc01/utilss_allsourcess.txt ====
%constant %integer ssobjfiletype= 1
%constant %integer ssdirfiletype= 2
%constant %integer sscharfiletype= 3
%constant %integer ssdatafiletype= 4
%constant %integer sscorruptobjfiletype=5
%constant %integer sspdfiletype= 6
%constant %integer ssoptfiletype= 9
%constant %integer usingworkfile=0
%record %format connect report format(%integer connect address, file type,
    data start, data end)
%record %format contf(%integer dataend, datastart, psize, filetype, sum,
    datetime, spare1, spare2, mark, null1, ugla, astk, ustk, null2, itwidth,
    ldelim, rdelim, journal, searchdircount, arraydiag, initworksize, spare,
    itinsize, itoutsize, nobl, istk, %long %integer initparms,
    %integer dataecho, terminal, i23, i24, i25, i26, i27, i28, i29, i30, i31,
    i32, %string (31) fstartfile, bstartfile, preloadfile, moddir, cfaults,
    s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, s17, s18, s19, s20,
    s21, s22, s23, s24, s25, s26, s27, s28, s29, s30, s31, s32,
    %string (31) %array searchdir(1:16))
%record %format arf(%string (31) name, %integer type)
%system %routine %spec setpar(%string (255) s)

==== ecsc01/t#utilss0_pass.txt ====

%constlonginteger password=987325576
%systemroutinespec phex(%integer i)
%externalstring(255)%fnspec interrupt
%externalroutinespec prompt(%string(255)p)
%externalroutinespec setmode(%string(255)s)
%integerfn encrypt(%longinteger n)
%longlongreal lr
%integer i
%constlonglongreal const=131719.0478125
%for i=1,1,6 %cycle
 lr=n
 lr=lr*const
 n=longinteger(addr(lr)+4);!middle 64 bits
%repeat
%result=integer(addr(n))
%end
%externalroutine privilege(%string(255)s)
%longinteger n
n=0
setmode("echo=off")

==== ecsc01/utilss_iprocs2.txt ====
%begin
%recordformat comf(%integerarray i1(1:25),%byteintegerarray b1(1:8),
                   %integerarray i2(1:9),%longinteger l1,
                   %integerarray i3(1:9),%integer MAXPROCS,
                   %integerarray i4(1:4),%integer PROCAAD)
%constrecord(comf)%name com=X'80000000'+48<<18
%integerfn VAL(%integer adr,len,rw,psr)
%integer inseg0,beyondseg0,seg0,seg0ad,dr0
  seg0=adr>>18
  %result=0 %unless 0<len<=32<<18
  %if psr=0 %start
     *LSS_(%LNB+1)
     *ST_PSR
  %finish
  %if seg0#(adr+len-1)>>18 %start
     seg0ad=seg0<<18
     inseg0=X'400000'-(adr-seg0ad)
     beyondseg0=len-inseg0
     %result=VAL(adr,inseg0,rw,psr)&VAL(adr+inseg0,beyondseg0,rw,psr)
  %finish
  dr0=x'18000000'!len

==== ecsc01/t#utilss0_pasmons.txt ====
%external %routine pasmon
   %system %routine %spec ndiag(%integer pc, lnb, fault, inf)
   %integer pc, lnb
      printstring("PASCAL MONITOR ENTERED: THE PROGRAM HAS NOT CRASHED")
      newline
      *lss_(%lnb +2)
      *st_pc
      *stln_lnb
      ndiag(pc, lnb, 0, 0)
      newline
      printstring("PASCAL MONITOR COMPLETED: RETURN TO PROGRAM")
      newline
%end
%end %of %file

==== ecsc01/utilss_fnoks.txt ====
program test_f_name(input,output);
type string31=packed array[1..31]of char;
var  filename:string31;

function fnok(s:string31;write_to:boolean):boolean;
var i,dot,sub:integer;fail,ftype:packed array[0..4]of boolean;done:boolean;

function my_file(s:string31):boolean;
const
  userad=2359296;{str6}
type
  str6=packed array[0..6]of char;
     cheat=record
         dummyi:integer;
         case boolean of
            true:(addr:integer);
            false:(ptr:^str6)
         end;
  var peeker:cheat;me,owner:str6;i:integer;
  begin
     peeker.addr:=userad;

==== ecsc01/utilss_uinffs.txt ====
program uinffs(output);
const uinfstart=2359296;
type
      uinff=packed record
            user:packed array[0..6]of char;
            jobdocfile:packed array[0..31]of char;
            mark,fsys,procno,isuff,reason,batchid,
            sessiclim,scidensad,scidens,startcnsl,aiostat,sctdate,sync1dest,sync2dest,
            asyncdest,aacctrec,aicrevs:integer;
            jobname:packed array[0..15]of char;
            basefile:packed array[0..31]of char;
            previc,
            itaddr0,itaddr1,itaddr2,itaddr3,itaddr4,streamid,dident,scarcity,
            preemptat:integer;
            spoolrfile:packed array[0..11]of char;
            funds,sesslen,priority,decks,drives,partclose:integer;
            tmodes:packed array[1..20]of char{DUMMY FILLER!!!};
            pslot:integer;
            itaddr:packed array[0..63]of char;
            fclosing:packed array[0..3]of char;
            clofes,

==== ecsc01/utilss_hasps.txt ====
%external %routine %spec set return code(%integer flag)
%external %integer %function %spec return code
%external %routine %spec detach(%string (255) s)
%external %routine %spec detachjob(%string (255) s)
%external %routine %spec prompt(%string (255) s)
%external %routine %spec destroy(%string (255) s)
%external %integer %function %spec exist(%string (255) s)
%systemroutinespec move(%integer len,from,to)
%system %routine %spec ssmessa(%integer flag, %string (63) fname)
%system %routine %spec outfile(%string (31) file, %integer size, hole, prot, %c
       %integer %name conad, flag)

%routine makefile(%string (255) ownfile)
   %integer flag, conad, i, j
      %on %event 9 %start
         ->out
      %finish
      destroy(ownfile) %if exist(ownfile) # 0
      outfile(ownfile, 4096, 0, X'40000000' {temp file}, conad, flag)
      %if flag # 0 %then ssmessa(flag, ownfile) %and ->err
      printstring("Enter contents of job file. Finish by typing Ctrl-Y")

==== ecsc01/t#utilss0_iodemos1.txt ====
program iodemo(inp,output,infile,outfile);
type
    string15=packed array[1..15]of char;
    ptr31   =^string31;
    string31=packed array[0..31]of char;
var
    infile,outfile,inp:text;
procedure pprompt(s:string15);extern;
procedure define(k:integer;p:ptr31);extern;

procedure define_files;
var filename:string31;length:integer;first_try,ok:boolean;

function get_name(prompt:string15;var l:integer;var name:string31):boolean;
var ok:boolean;temp:integer;
begin
if first_try then begin pprompt(prompt);reset(inp);first_try:=false;end
             else begin pprompt(prompt);while inp^=' ' do get(inp);end;
for l:=0 to 31 do name[l]:=' ';
l:=1;
while (inp^<>' ') and not(eoln(inp)) and (l<29) do begin

==== ecsc01/t#utilss0_iodemos2.txt ====
program iodemo(inp,output,infile,outfile);
type
    string15=packed array[1..15]of char;
    ptr63   =^string63;
    string63=packed array[0..63]of char;
    string31=packed array[1..31]of char;
var
    infile,outfile,inp:text;
procedure pprompt(s:string15);extern;
procedure pdefine(k:integer;p:ptr63);extern;

procedure define_files;
var filename:string31;length:integer;first_try,ok:boolean;

function get_name(prompt:string15;var l:integer;var name:string31):boolean;
var ok:boolean;temp:integer;
begin
if first_try then begin pprompt(prompt);reset(inp);first_try:=false;end
             else begin pprompt(prompt);while inp^=' ' do get(inp);end;
for l:=1 to 31 do name[l]:=' ';
l:=1;

==== ecsc01/t#utilss0_iodemos3.txt ====
program iodemo(inp,output,infile,outfile);
type
    string15=packed array[1..15]of char;
    ptr63   =^string63;
    string63=packed array[0..63]of char;
    string31=packed array[1..31]of char;
var
    infile,outfile,inp:text;
procedure pprompt(s:string15);extern;
procedure pdefine(k:integer;p:ptr63);extern;

procedure define_files;
var filename:string31;length:integer;first_try,ok:boolean;

function get_name(prompt:string15;
                  var l:integer;
                  var name:string31;
                  write_to:boolean):boolean;
var ok:boolean;temp:integer;

function fnok(s:string31;write_to:boolean):boolean;

==== ecsc01/utilss_clrscreens.txt ====
%externalstringfnspec vdus(%integer i)
%externalroutinespec printchs(%string(255)s)
%externalroutine clearscreen(%string(255)s)
printchs(vdus(1))
%end
%endoffile

==== ecsc01/utilss_usnames.txt ====
%systemstring(31)%fnspec username(%string(6)u,%integer i)
%externalroutine name(%string(255) s)
%string(6)u
%if s = "" %thenreturn
u<-s
s=username(u,1)
%if s#"?" %then printstring(u." <==> ".s) %else printstring("Not known")
newline
%end
%endoffile

==== ecsc01/utilss_user.txt ====
program processes(output);
const uinfstart=2359296;ausers=-2134900645;
type
      uinff=packed array[0..6] of char;
      uinf_p_t=record
               dummyp:integer;
               case boolean of
                  true:(paddr:integer);
                  false:(pval:^uinff)
               end;
      int_p_t=record
              dummyi:integer;
              case boolean of
                  true:(iaddr:integer);
                  false:(ival:^integer)
              end;
var
      i:integer;
      int_ptr:int_p_t;
      uinf_ptr:uinf_p_t;
      user:uinff;

==== ecsc01/utilss_proc1.txt ====
program processes(input,output);
const procaad=-2134900528;maxprocs=-2134900736;
type
      procf=packed record
            user:packed array[0..6] of char;
            incar,category,wsn,rung,active:char;
            actwo,lstat,lamtx,stack,status:integer
            end;
      plist_t=packed array [0..256] of procf;
      proc_p_t=record
               dummyp:integer;
               case boolean of
                  true:(paddr:integer);
                  false:(pval:^procf)
               end;
      integer_p_t=record
                  dummyi:integer;
                  case boolean of
                    true:(iaddr:integer);
                    false:(ival:^integer)
                  end;

==== ecsc01/t#ut0.txt ====
>>>>ALLSOURCESS<<<<
%constant %integer ssobjfiletype= 1
%constant %integer ssdirfiletype= 2
%constant %integer sscharfiletype= 3
%constant %integer ssdatafiletype= 4
%constant %integer sscorruptobjfiletype=5
%constant %integer sspdfiletype= 6
%constant %integer ssoptfiletype= 9
%constant %integer usingworkfile=0
%record %format connect report format(%integer connect address, file type,
    data start, data end)
%record %format contf(%integer dataend, datastart, psize, filetype, sum,
    datetime, spare1, spare2, mark, null1, ugla, astk, ustk, null2, itwidth,
    ldelim, rdelim, journal, searchdircount, arraydiag, initworksize, spare,
    itinsize, itoutsize, nobl, istk, %long %integer initparms,
    %integer dataecho, terminal, i23, i24, i25, i26, i27, i28, i29, i30, i31,
    i32, %string (31) fstartfile, bstartfile, preloadfile, moddir, cfaults,
    s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, s17, s18, s19, s20,
    s21, s22, s23, s24, s25, s26, s27, s28, s29, s30, s31, s32,
    %string (31) %array searchdir(1:16))
%record %format arf(%string (31) name, %integer type)

==== ecsc01/t#utilss0_gsqs.txt ====
%externalroutine gsq(%string(255)s)
%externalroutinespec tcpusers(%string(255)s)
tcpusers("GESQ");tcpusers("GSQ2");
%end
%endoffile

==== ecsc01/locsys_helpinfo.txt ====
!TITLE Location System Help Info
!< Current Version Of Location System 27/09/83

!< Descriptions Of Commands

!< The Command Addname

     This command is used to construct a name list in your ss#profile file,
this name list being used in conjunction with the FIND command (see below)
     The name list contains a user number and string associated with each
entry , these data elements being entered in the following way.

Command:ADDNAME ECTU74,"G.Wallace
Number Of Names Inserted = 1


!>

!< The Command Removename

   This command is the opposite of ADDNAME and simply removes a user from

==== ecsc01/t#utilss0_pal.txt ====
%source off
{!TITLE     Palindrome Finding Program                                         }
{                                                                              }
{      This program is designed for interactive terminal use. It takes a number}
{as input, reverses the digits, adds the two numbers together and tests the    }
{result to see if it is a palindrome. This process can be repeated until either}
{a palindrome is found or the capacity of the array holding the number is r    }
{reached.                                                                      }
{      Further documentation is contained withing the program.                 }
{      Due to the interactive nature of the program no input or output streams }
{should be defined.                                                            }
{                                                                              }
{                                                                              }

program pal(inp,output);

const
   progname   = 'PALINDROME PROGRAM     VERSION 18  ';
   sp         = ' ';
   maxlength  = 100;
   namelength = 30;

==== ecsc01/t#utilss0_copy3s.txt ====
%constant %integer true=0,false=1
%constant %integer testing=false
%if testing = true %start
   %routine %spec monitor(%string (255) s)
%finish
%system %string %function %spec failuremessage(%integer flag)
%system %string (31) %function %spec itos(%integer i)
%own %string (11) save owner,save file
%own %integer already connected=0
%constant %string (6) %name me=9<<18
%system %routine %spec outfile(%string (31) file, %integer size,hole,prot,
    %integer %name conad,flag)
%system %routine %spec move(%integer len,from,to)
%system %routine %spec destroy(%string (31) file, %integer %name flag)
%system %string (31) %function %spec nexttemp
%system %routine %spec setpar(%string (255) par)
%system %integer %function %spec parmap
%system %string (31) %function %spec spar(%integer which)
%system %integer %function %spec allowconnect(%string (6) who,
    %string (11) what)
%system %routine %spec zcopy2(%string (255) par, %integer silent,

==== ecsc01/sup_makechkd.txt ====
PARM NOCHECK,NOLIST,STACK
IMP80 CTOPT+SUP29CSRCE_SUP29CS,SUPZZ,,.OUT
IMP80 CTOPT+SUP29CSRCE_COM37S,COMZZ,,.OUT
IMP80 CTOPT+SUP29CSRCE_PRINT10S,PRINTZZ,,.OUT
IMP80 CTOPT+SUP29CSRCE_OPER38S,OPERZZ,,.OUT
IMP80 CTOPT+SUP29CSRCE_ENTER17S,ENTERZZ,,.OUT
PARM OPT,STACK,NOLIST
IMP80 CTOPT+SUP29CSRCE_GPC40S,GDCZZ,,.OUT
IMP80 SUP29CSRCE_NDIAG07S,NDIAGZZ,,.OUT
IMP80 CTOPT+SUP29CSRCE_COMMS56S,COMMSZZ,,.OUT
IMP80 CTOPT+SUP29CSRCE_FAST44S,FASTZZ,,.OUT
IMP80 CTOPT+SUP29CSRCE_TAPE80S,TAPEZZ,,.OUT
PARM MAP
LINK
SUPZZ
COMZZ
PRINTZZ
OPERZZ
ENTERZZ
GDCZZ
NDIAGZZ

==== ecsc01/utilss_anals.txt ====
%constant %integer ssdatafiletype= 4
%constant %integer ssobjfiletype= 1
%constant %integer sscorruptobjfiletype=5
%constant %integer ssdirfiletype= 2
%constant %integer sscharfiletype= 3
%constant %integer sspdfiletype= 6
%constant %integer ssoptfiletype= 9
%record %format arf(%string (31) name, %integer type)
%record %format pdhf(%integer dataend, datastart, size, filetype, sum,
       datetime, adir, count)
%record %format rf(%integer conad, filetype, datastart, dataend)
%record %format dhf(%integer dataend, datastart, size, filetype, sum,
       datetime, pstart, spare)
%record %format lnf(%byte %integer type, %string (6) name, %integer rest,
       point, dr1)
%record %format frf(%integer conad, filetype, datastart, datend, size, rup,
       eep, mode, users, arch, %string (6) tran, %string (8) date, time,
       %integer count, spare1, spare2)
%record %format hf(%integer dataend, datastart, filesize, filetype, sum,
       datetime, format, records)
%record %format dahf(%integer dataend, datastart, size, filetype, date, time,

==== ecsc01/t#utilss0_getaddr.txt ====
%begin
%recordformat comf %c
(%integerarray i1(1:25),%byteintegerarray b1(1:8),%integerarray i2(1:9),
%longinteger l1,%integerarray i3(1:9),%integer MAXPROCS,
%integerarray i4(1:4),%integer PROCAAD)
%constrecord(comf)%name com=X'80000000'+48<<18
printstring("Addresses of communications record")
newline
printstring("Record starts at ");write(addr(com_i1(1)),10);newline
printstring("Maxprocs is at   ");write(addr(com_maxprocs),10);newline
printstring("Procaad is at    ");write(addr(com_procaad),10);newline
%endofprogram

==== ecsc01/locsys_newsys.txt ====
! Constant Filenames
%CONSTANT %STRING (20) database = "ECMU24.locfile"
%CONSTANT %STRING (20) update   = "ECMU23.upusers"
%CONSTANT %STRING (20) helpfile = "ECMU23.helpfile"

! Stuff Needed For Connect
%RECORD %FORMAT recfor(%INTEGER conad,filetype,datastart,dataend)
%SYSTEM %ROUTINE %SPEC connect(%STRING (31) filename, %INTEGER access,
   maxbytes,prot, %RECORD (recfor) %NAME r, %INTEGER %NAME flag)
%SYSTEM %ROUTINE %SPEC disconnect(%STRING (31) filename, %INTEGER %NAME flag)




! Common External Reference Points
%EXTERNAL %ROUTINE %SPEC writeprofile(%STRING (11) key, %NAME blah,
    %INTEGER %NAME version,flag)
%EXTERNAL %STRING (255) %FUNCTION %SPEC uinfs(%INTEGER i)
%EXTERNAL %INTEGER %FUNCTION %SPEC uinfi(%INTEGER i)
%EXTERNAL %ROUTINE %SPEC readprofile(%STRING (11) key, %NAME info,
    %INTEGER %NAME v,f)

==== ecsc01/utilss_interrupts.txt ====
   
!TITLE Interrupts, %EVENTs and fault trapping.
!<Interrupts
    Subsystem cannot control or handle interrupts on its own, and has to
exploit the facilities offered by Director for the purpose.
!< PRIME CONTINGENCY
    One of the tools provided is the
    %EXTERNAL %INTEGER %FN PRIME CONTINGENCY (%ROUTINE TRAP)
in Director.  This need only be called once, to nominate the routine TRAP
to Director.  The %SPEC of TRAP must be
    %ROUTINE %SPEC TRAP (%INTEGER CLASS, SUBCLASS).
If an interrupt subsequently occurs which is relevant to the process
(and subject to some conditions which will appear later), Director
will suspend the process and force it to enter TRAP, supplying the
two %INTEGER parameters CLASS and SUBCLASS to indicate what sort of
interrupt has occurred.  TRAP will normally be some routine which is
declared as part of the subsystem, and in the standard subsystem it is
the routine DIRTRAP, declared in module BASE.  The corresponding call of
PRIME CONTINGENCY is almost the first instruction executed in the
%SYSTEM %ROUTINE CONTROL declared in module CONT.
!>

==== ecsc01/utilss_preface.txt ====
!TITLE UTILITIES FOR USE ON EMAS

==== ecsc01/t#utilss0_userss.txt ====
%EXTERNALROUTINE MYUSERS(%STRING(255)S)
%externalroutinespec printchs(%string(255)s)
%externalstring(31)%fnspec vdus(%integer i)
!%externalintegerfnspec fecount(%integername a, b)
%EXTERNALINTEGERFNSPEC DPROCEDURE(%INTEGER ACT, ADR)
%RECORDFORMAT RF1(%INTEGER N, A)
%RECORD(RF1) R1
%RECORDFORMAT PF(%STRING(6)USER, %STRING(15)TCP, %BYTEINTEGER A, INVOC, B, N, F,
      %INTEGER LOGS, %BYTEINTEGER site, reason, cons1, cons2, %c
       %INTEGER ID, PROC, G, H, Z)
%RECORD(PF)%ARRAY P(1:256)
%record (pf) %name pp
%INTEGER J, feusers,tcpusers, i, k, f, l, max
%integerarray fe(0:4)
%ownintegerarray index(0:255)

%string (24) t,u
%string(12)%array nam(1:50)
%ownintegerarray nuf(1:50)
%ownintegerarray nus(1:50)


==== ecsc01/sup_gdc02s.txt ====
!*
!*    GPC/DCU driver
!*
%CONSTSTRING(26) VSN=".GDC02 - 4th May 1983"
%OWNINTEGER IVSN=M'GDC2'
!*
%RECORDFORMAT PARMF(%INTEGER DEST,SRCE,(%INTEGER P1,P2,P3,P4,P5,P6 %OR %C
                                          %STRING(23)TEXT))
!*
!*
!* Communications record format - extant from CHOPSUPE 22A onwards *
!*
%RECORDFORMAT COMF(%INTEGER OCPTYPE,SLIPL,SBLKS,SEPGS,NDISCS,DLVNADDR, %C
         (%INTEGER GPCTABSIZE,GPCA %OR %INTEGER DCUTABSIZE,DCUA), %C
         %INTEGER SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,TOJDAY,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,SERVAAD,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0,%INTEGER ITINT,CONTYPEA, %C
         (%INTEGER GPCCONFA %OR %INTEGER DCUCONFA), %C
         %INTEGER FPCCONFA,SFCCONFA,BLKADDR,RATION, %C

==== ecsc01/utilss_copy3s.txt ====
%constant %integer true=0,false=1
%constant %integer testing=false
%if testing = true %start
   %routine %spec monitor(%string (255) s)
%finish
%system %string %function %spec failuremessage(%integer flag)
%system %string (31) %function %spec itos(%integer i)
%own %string (11) save owner,save file
%own %integer already connected=0
%constant %string (6) %name me=9<<18
%system %routine %spec outfile(%string (31) file, %integer size,hole,prot,
    %integer %name conad,flag)
%system %routine %spec move(%integer len,from,to)
%system %routine %spec destroy(%string (31) file, %integer %name flag)
%system %string (31) %function %spec nexttemp
%system %routine %spec setpar(%string (255) par)
%system %integer %function %spec parmap
%system %string (31) %function %spec spar(%integer which)
%system %integer %function %spec allowconnect(%string (6) who,
    %string (11) what)
%system %routine %spec zcopy2(%string (255) par, %integer silent,

==== ecsc01/sup_ndiag07s.txt ====

!*_ DATED 11 NOV 76   1
! ALTERATIONS BY K.YARWOOD ...
!        PRINT FL AND NEXT SYMBOL LINES COMMENTED OUT
!        PRINTTEXT'S TURNED TO PRINTSTRING'S
!        ADDITION FOR LONGINTEGER IN RT PRINT VAR
!         HEX EQUIVALENTS FOR INTS,LONGINTS ETC PRINTED
!        INF PRINTED IN HEX IN RT ERRMESS

%EXTERNALSTRINGFNSPEC STRHEX(%INTEGER I)
%EXTERNALSTRING(8)%FNSPEC STRINT(%INTEGER I)
%CONSTINTEGER STACKBASE=X'80100000';  ! START OF RESIDENT STACK
! %SYSTEMROUTINESPEC SIGNAL(%INTEGER I, J, K, %INTEGERNAME F)
%ROUTINESPEC PRINTMESS(%INTEGER N)
! %SYSTEMROUTINESPEC TIDY EXIT
!*
%ROUTINESPEC INDIAG(%INTEGER OLDLNB, L, PC, %INTEGERNAME NEWLNB)
! %ROUTINESPEC FDIAG(%INTEGER OLDLNB,PC,%INTEGERNAME NEWLNB)
%ROUTINESPEC ERMESS(%INTEGER N, INF)
! %ROUTINESPEC ICL9CELABELS


==== ecsc01/t#utilss0_snoops.txt ====
%conststring(1) snl="
"
%externalroutinespec files(%string(255)s)
%systemstring(31)%fnspec itos(%integer i)
%externalroutine snoop(%string(255)group)
%integer no
%string(2)nos
%if length(group)=6 %then files(group.".") %andreturn
%if length(group)<4 %then printstring("Invalid group".snl) %andreturn
%if length(group)=5 %start
    %for no=0,1,9 %cycle
       nos=itos(no)
       printstring("Command:files ".group.nos.".");newline
       files(group.nos.".")
    %repeat
%finishelsestart
    %for no=0,1,99 %cycle
       nos=itos(no);nos="0".nos %if no<10
       printstring("Command:files ".group.nos.".");newline
       files(group.nos.".")
    %repeat

==== ecsc01/cobhelp.txt ====


COBOL

   Invokes the VAX-11 COBOL compiler to compile a COBOL source program.
   See the VAX-11 COBOL User's Guide for additional information.

   This optional software product is available under separate license.

   Format:

        COBOL file-spec[,...]

   COBOL can also be used to:

        o  Invoke the VAX-11 COBOL-74 compiler (COBOL/C74)

  Additional information available:

  Other_compiler
  /C74

==== ecsc01/sspd_source.txt ====
! The first parameter of the command SS is the particular function
! to be executed. Each one is described in full below.
!
!<General
! If you reply to the 'Function: ' prompt with 'HELP', you will be
! directed to this file
!>
%CONTROL 0
%RECORDFORMAT OF(%STRING(11)NAME, %INTEGER SP12, NKB, %C
      %BYTEINTEGER ARCH, CODES, CCT, OWNP, %C
      EEP, USE, CODES2, SSBYTE, FLAGS, POOL, DAYNO, SP31)
%RECORDFORMAT AF(%STRING(11)NAME, %INTEGER NKB, %STRING(8)DATE, %C
      %STRING(6)TAPE, %INTEGER CHAP, COUNT)
      %RECORDFORMAT %C
DFINF(%INTEGER NKB, RUP, EEP, APF, USE, ARCH, FS, SEG, CCT, CDS, %C
      %BYTEINTEGER SP, DAY, POL, CD2, %C
      %INTEGER SS, %C
      %STRING(6)OFF)
!
!
!

==== ecsc01/utilss_pronames.txt ====
%externalroutine proname(%string(255)user)
%record(%integer no,%string(6)%array user(1:25),%string(31)%array alias(1:25)) data
%integer vsn,flag,i
%externalroutinespec readprofile(%string(11)key,%name data,%integername vsn,flag)
vsn=0
readprofile("GWW",data,vsn,flag)
printstring("Flag=");write(flag,1);printstring("   Vsn=");write(vsn,1);newline
printstring("No=");write(data_no,1);newline
%for i=1,1,data_no  %cycle
  printstring(data_user(i));spaces(5);printstring(data_alias(i));newline
%repeat
%end
%endoffile

==== ecsc01/locsys_tcpusers.txt ====
%externalroutine tcpusers(%string(255) s)

%constant %integer maxtcps=39

%constant %string(15) %array tcpname(1:maxtcps)="TCPA","TCPC","TCPD","TCPM","JCMB",
"G.SQ.","EULIB","SOCS","ATB-1","ATB-2","ATB-3","CS-AT1","CS-AT2","ENGIN","CHEM",
"POLLCK","XGATE","TCPS","GEOG","PSSE","SIAE","FCNRS","BUSH","IGS","HFRO",
"SCRI-I","SCRI-P","FOREST","ERSKIN","WS-COA","GTCP1","GTCP2","GTCP3","GTCP4",
"GTCP5","STCP","STCL-2","null","TEMP"

%integer i,j
%recordformat rf1(%integer n,a)
%recordformat pf(%string(6)user,%string(15)tcp,%byteinteger a,invoc,b,n,f,
%integer logs,%byteinteger c,d,e,r,%integer id,proc,g,h,z)
%record(rf1) r1
%record(pf)%array p(1:256)
%externalroutinespec prompt(%string(255) s)
%externalintegerfnspec dprocedure(%integer a,b)
%systemstringfnspec username(%string(6) user,%integer flag)

%on %event 4 %start

==== ecsc01/utilss_newsnoops.txt ====
%external %routine new snoop(%string (255) s)

   %record %format finff(%string (11) fname, %integer sp12, kbytes,
       %byte %integer arch, codes, cct, ownp, eep, use, codes2, ssbyte,
       flags, pool, dayno, sp31)
   %external %integer %function %spec dfsys(%string (6) user,
       %integer %name fsys)
   %external %integer %function %spec dsfi(%string (6) user, %integer fsys,
       type, set, addr)
   %external %integer %function %spec dfilenames(%string (6) user,
       %record (finff) %array %name inf, %integer %name fileno, maxrec,
       nfiles, %integer fsys, type)
   %external %string (15) %function %spec interrupt
   %system %string (255) %function %spec itos(%integer i)
   %system %routine %spec phex(%integer i)

   %own %integer found=0

   %string (255) %function itos2(%integer i)
      %string (255) s
      s = itos(i)

==== ecsc01/sup_tape80s.txt ====
!***********************************************************************
!
!                          2900 TAPE HANDLER
!
!***********************************************************************
!
%IF SSERIES=NO %START
  !..........PSERIES..........PSERIES..........PSERIES..........PSERIES
  !
  %CONSTINTEGER TOP LBE=36
  !                                                                    { CH FN
  %CONSTINTEGERARRAY LBES(0:TOP LBE)= %C
  X'00000200',                                                         {  1 RF
  X'40001200',                                                         {  2 RR
  X'00000200',                                                         {  3 RF
  X'44C01200',X'86800D10',X'00006200',                                 {  4 RR,AS,RFEC
  X'40001200',                                                         {  5 RR
  X'04C00200',X'86800D10',X'40007200',                                 {  6 RF,AS,RREC
  X'04C00200',X'04805200',X'86800D10',X'00006200',                     {  7 RF,SR,AS,RFEC
  X'44C01200',X'04804200',X'86800D10',X'40007200',                     {  8 RR,SF,AS,RREC
  X'00000200',                                                         {  9 RF

==== ecsc01/utilss_xrefs.txt ====
%EXTERNALROUTINE CROSSREF(%STRING(63)INPUT)
%CONSTINTEGER JOBNAMLEN=6,MAXDISP=15,MAXGLOB=255,MAXHASH=4095, %C
   MAXLINE=511,NAMLEN=8,OUTLINE=132,PAGESIZE=4096
%CONSTSTRING(23)VERSION="2.02 07/08/78  (MDB)"
%OWNSTRING(35)HEADER="* VARIABLE CROSS REFERENCE OF FILE "
%OWNSTRING(35)BLANK=""
%OWNSTRING(87)ASTK="*******************************************"
%INTEGER DATASTART,DEND,LENIN,M,MAXNAMES,MAXSTRINGS,MAXUSES
%STRING(31)DATETIME,MEMNAME,NAML,OUTPUT,VNAME
%EXTERNALROUTINESPEC DEFINE(%STRING(63)S)
%EXTERNALINTEGERFNSPEC SMADDR(%INTEGER N,%INTEGERNAME L)
%EXTERNALROUTINESPEC PROMPT(%STRING(15)S)
%EXTERNALSTRINGFNSPEC DATE
%EXTERNALSTRINGFNSPEC TIME
!*
%STRINGFN ITOSTR(%INTEGER I,M)
%STRING(1)SIGN
%STRING(63)S
M=0%IF M<0
%IF I<0%THEN SIGN="-"%AND I=IMOD(I)%ELSE SIGN=" "
S=""

==== ecsc01/utilss_counters.txt ====
%begin
!%externalroutine t(%string(255)dummy)
%externalintegerfnspec ddelay(%integer i)
%longintegerarray store(1:10)
%longinteger now ,then
%integer counter,flag
%longintegerfn tim(%integer val)
*RRTC_1
*USH_(%LNB+5)
*STUH_%TOS
*USH_1
*USH_-1
*EXIT_-64
%end
%for counter=1,1,10 %cycle
     store(counter)=tim(-19)
     flag=ddelay(30)
%repeat
then=store(1)
%for counter=1,1,10 %cycle
   now=store(counter)

==== ecsc01/t#utilss0_finds.txt ====

%record %format rf(%integer conad, filetype, datastart, dataend)
%system %routine %spec connect(%string (31) file, %integer mode, hole, prot,
       %record (rf) %name r, %integer %name flag)
%external %integer %function %spec exist(%string (31) file)
%system %integer %function %spec currentll
%system %long %integer %function %spec load ep(%string (31) entry,
       %integer %name type, flag, %integer loadlevel)
%system %routine %spec unload2(%integer loadlevel, flag)
%external %integer %function %spec uinfi(%integer ep)
%external %routine %spec define(%string (255) s)
%external %routine %spec clear(%string (255) s)
%external %routine %spec closestream(%integer str)
%system %routine %spec ssmessa(%integer fail, %string (63) fname)
%system %routine %spec find entry(%string (31) entry, %integer type, dad,
       %string %name file, %integer %name dr0, dr1, flag)
%system %routine %spec load(%string (31) entry, %integer type,
       %integer %name flag)
%system %routine %spec setpar(%string (255) s)
%system %string %function %spec spar(%integer i)
%system %integer %function %spec parmap

==== ecsc01/utilss_pasmons.txt ====
%external %routine pasmon
   %system %routine %spec ndiag(%integer pc, lnb, fault, inf)
   %integer pc, lnb
      printstring("PASCAL MONITOR ENTERED: THE PROGRAM HAS NOT CRASHED")
      newline
      *lss_(%lnb +2)
      *st_pc
      *stln_lnb
      ndiag(pc, lnb, 0, 0)
      newline
      printstring("PASCAL MONITOR COMPLETED: RETURN TO PROGRAM")
      newline
%end
%end %of %file

==== ecsc01/t#utilss0_notel.txt ====
Source: .IN         Compiled: 18/04/83   19.55.07
Object: T#O

Parms set: DEFAULTS



              ERCC. Imp80 Compiler Release 1 Version 12 Nov 82


  1023  3069
     1        %systemroutinespec to journal (%integer from,len)
     2        %externalroutine note (%string(255)s)
     3        s="
     4"       **** ".s."
     5"       "
     6        tojournal(addr(s)+1,length(s))
     7        %end
     8        %endoffile

     8 LINES ANALYSED IN    64 MSECS  -  SIZE=   214

==== ecsc01/t#utilss0_heaps.txt ====
%constant %integer true=1,false=0,wordshift=2
%own %integer base=0,heap size=65535<<wordshift,
 moning=true,first hole=0,flag=0,
 first call=true
%record %format holef(%half %integer size,next)
%record %format crf(%integer conad,type,start,end)
%own %record (crf) connect report
%own %record (holef) %name prev,curr,succ
%constant %string (11) heap file="T#IHEAP"
%own %string (11) temp file=""
%system %routine %spec outfile(%string (31) file, %integer length,hole,prot,
    %integer %name conad,flag)
%external %integer %function %spec exist(%string (31) file)
%system %routine %spec destroy(%string (31) file, %integer %name flag)
%system %routine %spec connect(%string (31) file, %integer mode,hole,prot,
    %record (crf) %name report, %integer %name flag)
%system %routine %spec disconnect(%string (31) file, %integer %name flag)
%system %routine %spec newgen(%string (31) old,new, %integer %name flag)
%system %routine %spec rename(%string (31) old,new, %integer %name flag)
%system %routine %spec fill(%integer length,start,filler)
%external %integer %function %spec outpos

==== ecsc01/t#utilss0_where.txt ====
%externalstring(63)%fnspec uinfs(%integer ep)
%systemstring(255)%fnspec itos(%integer i)
%systemstring(8)%fnspec htos(%integer i,places)
%externalroutine where(%string(255)dummy)
%string(63)terms
terms=uinfs(14)
%string(6) tcp
%string(8) hexC
%byteinteger C,N,T
N=charno(terms,1);T=charno(terms,2);C=charno(terms,3);
TCP=substring(terms,4,9)
hexC=htos(C,2)
printstring("You are on Console ".itos(c)." (X'".hexC."') on TCP ".TCP)
printstring(" network address N".itos(N)."T".itos(T))
newlines(2)
%end
%endoffile


==== ecsc01/sup_fast44s.txt ====
!*
!* Communications record format - extant from CHOPSUPE 22B onwards *
!*
%RECORDFORMAT COMF(%INTEGER OCPTYPE,SLIPL,SBLKS,SEPGS,NDISCS,DLVNADDR, %C
         (%INTEGER GPCTABSIZE,GPCA %OR %INTEGER DCUTABSIZE,DCUA), %C
         %INTEGER SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,TOJDAY,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,SERVAAD,  %C
         %BYTEINTEGER NSACS,RESV1, %C
         (%BYTEINTEGER SACPORT1,SACPORT0 %OR %BYTEINTEGER  %C
            OCP1 SCU PORT,OCP0 SCU PORT), %BYTEINTEGER  %C
         NOCPS,SYSTYPE,OCPPORT1,OCPPORT0,%INTEGER ITINT,CONTYPEA, %C
         (%INTEGER GPCCONFA %OR %INTEGER DCUCONFA), %C
         %INTEGER FPCCONFA,SFCCONFA,BLKADDR,RATION, %C
         (%INTEGER SMACS %OR %INTEGER SCUS), %C
         %INTEGER TRANS,%LONGINTEGER KMON,  %C
         %INTEGER DITADDR,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,STOREAAD,PROCAAD,SFCCTAD,DRUMTAD,TSLICE,FEPS,  %C
         MAXCBT,PERFORMAD,%BYTEINTEGER DAPNO,DAPBLKS,DAPUSER,DAPSTATE, %C
         %INTEGER DAP1,SP1,SP2,SP3,SP4, %C

==== ecsc01/sspd_preface.txt ====
==== ecsc01/utilss_userss.txt ====
%EXTERNALROUTINE MYUSERS(%STRING(255)S)
%externalroutinespec printchs(%string(255)s)
%externalstring(31)%fnspec vdus(%integer i)
!%externalintegerfnspec fecount(%integername a, b)
%EXTERNALINTEGERFNSPEC DPROCEDURE(%INTEGER ACT, ADR)
%RECORDFORMAT RF1(%INTEGER N, A)
%RECORD(RF1) R1
%RECORDFORMAT PF(%STRING(6)USER, %STRING(15)TCP, %BYTEINTEGER A, INVOC, B, N, F,
      %INTEGER LOGS, %BYTEINTEGER site, reason, cons1, cons2, %c
       %INTEGER ID, PROC, G, H, Z)
%RECORD(PF)%ARRAY P(1:256)
%record (pf) %name pp
%INTEGER J, feusers,tcpusers, i, k, f, l, max
%integerarray fe(0:4)
%ownintegerarray index(0:255)

%string (24) t,u
%string(12)%array nam(1:50)
%ownintegerarray nuf(1:50)
%ownintegerarray nus(1:50)


==== ecsc01/locsys_profs.txt ====
%record %format profile f(%string(11) key, %integer version, offset, length)
%record %format ssprofile f(%integer end, start, size, filetype, checksum,
                            datetime, format, sp0, marker, max profiles,
                            no profiles, sp1, %record(profile f)%array %c
                            profile(1:500)); ! 500 will never be approached.

! Structure of profile file: It starts with the format of ssprofile f
! above.  The first 8 words are standard Subsystem header. Thereafter:

!   marker:       to check against overwriting or other corruption.
!   max profiles: the maximum number of profiles which this file can currently hold.
!   no profiles:  the actual number of profiles held.
!   profile:      a record array (1:max profiles), each element containing the
!                 following:
!                 key:       the keyword (the only access to profile data)
!                 version:   the version number of the profile format.
!                 offset:    the offset of the start of the profile data.
!                 length:    the length of the profile data, as seen by the
!                            user.  The profile scheme adds a marker word
!                            and rounds up to word align the data.


==== ecsc01/utilss_memos.txt ====
%external %routine %spec writeprofile(%string(11) key, %name info,
    %integer %name version, flag)
%external %routine %spec readprofile(%string(11) key, %name info,
    %integer %name version, flag)
%system %routine %spec setpar(%string(255) s)
%system %string(255) %fn %spec spar(%integer i)
%system %integer %fn %spec parmap
%system %integer %fn %spec pstoi(%string(255) s)
%system %string(255) %fn %spec substring(%string %name s, %integer i, j)
%external %routine %spec prompt(%string(255) s)
%external %integer %fn %spec uinfi(%integer i)
%external %string(255) %fn %spec ucstring(%string(255) s)
%system %string %fn %spec itos(%integer i)
%const %integer secsin24hrs = 86400; ! SECS IN DAY
%const %integer days70 = 25567; ! DAYS FROM JAN1 1900 TO JAN1 1970
%const %long %integer secs70 = x'0000000083AA7E80'; ! SECS DITTO
%const %string(1) snl = "
"
%const %integer maxmemos=10
%record %format proff(%integer %array after(1:maxmemos),
    %string(255) %array text(1:maxmemos))

==== ecsc01/utilss_clss.txt ====
%externalroutinespec printchs(%string(255)s)
%externalstringfnspec vdus(%integer ep)
%externalroutine cls(%string(255)s)
%if s#"" %then printchs(vdus(0))
printchs(vdus(1))
%end
%endoffile

==== ecsc01/utilss_snoops.txt ====
%conststring(1) snl="
"
%externalroutinespec files(%string(255)s)
%systemstring(31)%fnspec itos(%integer i)
%externalroutine snoop(%string(255)group)
%integer no
%string(2)nos
%if length(group)=6 %then files(group.".") %andreturn
%if length(group)<4 %then printstring("Invalid group".snl) %andreturn
%if length(group)=5 %start
    %for no=0,1,9 %cycle
       nos=itos(no)
       printstring("Command:files ".group.nos.".");newline
       files(group.nos.".")
    %repeat
%finishelsestart
    %for no=0,1,99 %cycle
       nos=itos(no);nos="0".nos %if no<10
       printstring("Command:files ".group.nos.".");newline
       files(group.nos.".")
    %repeat

==== ecsc01/t#utilss0_user.txt ====
program processes(output);
const uinfstart=2359296;ausers=-2134900645;
type
      uinff=packed array[0..6] of char;
      uinf_p_t=record
               dummyp:integer;
               case boolean of
                  true:(paddr:integer);
                  false:(pval:^uinff)
               end;
      int_p_t=record
              dummyi:integer;
              case boolean of
                  true:(iaddr:integer);
                  false:(ival:^integer)
              end;
var
      i:integer;
      int_ptr:int_p_t;
      uinf_ptr:uinf_p_t;
      user:uinff;

==== ecsc01/utilss_penvs.txt ====
program uinf(output);
const
  userad=2359296;{str6}
  fsysad=2359343;{int}
  basefilead=2359420;{str31}
  scarcityad=2359484;{int}
  preemptad=2359488;{int}
  fundsad=2359504;{int}
  termad=2359564;{str63}
  secstocdad=-2134900564;{int}
  secsfrmnad=-2134900568;{int}
  datead=-2134900673;{int}
  timead=-2134900661;{int}
  usersad=-2134900648;{int}
  ocptypead=-2134900736;{int}
  tojdayad=-2134900680;{int}
  suplvnad=-2134900684;{int}
  rationad=-2134900604;{int}
type
  str6=packed array[0..6]of char;
  str31=packed array[0..31]of char;

==== ecsc01/utilss_fnok.txt ====
program testfile(input,output);

type
   string31   = packed array [1..31] of char;

var
   filename   : string31;
   flag       : boolean;

procedure readstring(var inp:text;var s:string31; var flag:boolean);

var
   i          : integer;

procedure skipspaces(var inp:text);
begin
   while (inp^=' ') and not (eoln(inp)or eof(inp)) do
      get(inp);
end;

begin

==== ecsc01/t#utilss0_newsnoops.txt ====
%external %routine new snoop(%string (255) s)

   %record %format finff(%string (11) fname, %integer sp12, kbytes,
       %byte %integer arch, codes, cct, ownp, eep, use, codes2, ssbyte,
       flags, pool, dayno, sp31)
   %external %integer %function %spec dfsys(%string (6) user,
       %integer %name fsys)
   %external %integer %function %spec dsfi(%string (6) user, %integer fsys,
       type, set, addr)
   %external %integer %function %spec dfilenames(%string (6) user,
       %record (finff) %array %name inf, %integer %name fileno, maxrec,
       nfiles, %integer fsys, type)
   %external %string (15) %function %spec interrupt
   %system %string (255) %function %spec itos(%integer i)
   %system %routine %spec phex(%integer i)

   %own %integer found=0

   %string (255) %function itos2(%integer i)
      %string (255) s
      s = itos(i)

==== ecsc01/sup_print10s.txt ====
%RECORDFORMAT PARMF(%INTEGER DEST, SRCE, P1, P2, P3, P4, P5, P6)
%EXTRINSICLONGINTEGER KMON
%ROUTINESPEC PRHEX(%INTEGER H)
%ROUTINESPEC PRINTER(%RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC PON(%RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC GDC(%RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC OPMESS(%STRING (23) MESS)
%SYSTEMROUTINESPEC ITOE(%INTEGER A, L)
%IF MULTIOCP=YES %THEN %START
   %EXTERNALROUTINESPEC SEMALOOP(%INTEGERNAME SEMA,%INTEGER PARM)
   %ROUTINESPEC RESERVE LOG
   %ROUTINESPEC RELEASE LOG
   %ROUTINESPEC AWAIT LOG ROUTE
%FINISH
!------------------------------------------------------------------------
!*
!* Communications record format - extant from CHOPSUPE 22A onwards *
!*
%RECORDFORMAT COMF(%INTEGER OCPTYPE,SLIPL,SBLKS,SEPGS,NDISCS,DLVNADDR, %C
         (%INTEGER GPCTABSIZE,GPCA %OR %INTEGER DCUTABSIZE,DCUA), %C
         %INTEGER SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C

==== ecsc01/t#utilss0_compars.txt ====
%constinteger max base commands=12
%conststring(255)%array base commands(1:max base commands)=%C
"alias","remove","monitor","stop","quit","launch","broadcast","tell",
"autoattack","surrender","dump","resources"
!"B","C","D","E","F","G","H","I","J","K","AL","LI","RE","ST"
%recordformat com form (%string(80)comstr,%byteinteger base,type)
%constinteger max possible commands=20
%ownrecord(com form)%array commands(1:max possible commands)
%owninteger max commands=0

%routine sort(%record(com form)%arrayname r,%integer lo,hi)
!%routine sort(%stringarrayname r,%integer lo,hi)
%integer i,j,k,l,n
%record(com form)x
!%string(255)x
l=lo-1
n=hi
!%while n<hi-l %cycle
!  n=2*n
!%repeat
! <=> 1<<((32- shz{shift while not zero}(hi-l-1))&31)

==== ecsc01/sup_oper38s.txt ====
!*
!* OPER37 - 2nd April 1982 *
!*
!* Communications record format - extant from CHOPSUPE 22A onwards *
!*
%RECORDFORMAT COMF(%INTEGER OCPTYPE,SLIPL,SBLKS,SEPGS,NDISCS,DLVNADDR, %C
         (%INTEGER GPCTABSIZE,GPCA %OR %INTEGER DCUTABSIZE,DCUA), %C
         %INTEGER SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,TOJDAY,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,SERVAAD,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0,%INTEGER ITINT,CONTYPEA, %C
         (%INTEGER GPCCONFA %OR %INTEGER DCUCONFA), %C
         %INTEGER FPCCONFA,SFCCONFA,BLKADDR,RATION, %C
         (%INTEGER SMACS %OR %INTEGER SCUS), %C
         %INTEGER TRANS,%LONGINTEGER KMON,  %C
         %INTEGER DITADDR,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,STOREAAD,PROCAAD,SFCCTAD,DRUMTAD,TSLICE,FEPS,  %C
         MAXCBT,PERFORMAD,SP1,SP2,SP3,SP4,SP5,SP6, %C
         LSTL,LSTB,PSTL,PSTB,HKEYS,HOOT,SIM,CLKX,CLKY,CLKZ,  %C

==== ecsc01/utilss_getaddr.txt ====
%begin
%recordformat comf %c
(%integerarray i1(1:25),%byteintegerarray b1(1:8),%integerarray i2(1:9),
%longinteger l1,%integerarray i3(1:9),%integer MAXPROCS,
%integerarray i4(1:4),%integer PROCAAD)
%constrecord(comf)%name com=X'80000000'+48<<18
printstring("Addresses of communications record")
newline
printstring("Record starts at ");write(addr(com_i1(1)),10);newline
printstring("Maxprocs is at   ");write(addr(com_maxprocs),10);newline
printstring("Procaad is at    ");write(addr(com_procaad),10);newline
%endofprogram

==== ecsc01/locsys_broonsinfo.txt ====
STATUS:
       This provides the user with the current state of another users process
, that is to say , how long it has been since the user has executed a command.
       The routine uses DPROCS to obtain information about the user.
In the record used by DPROCS there is a field status which AND'd with 16 gives
result true if and only if the user is active. 
If this turns out to be false the field active gives an integer which can be
translated into a message to show how long the process has be left dormant.
This message works on the lines that the more sleepy the message the longer
it has been left

RENEW:
      This command enables the user to allocate a new location to a particular
TCP's buffer.
      The TCP's name is read in along with the console number (decimal) and
the new location message. To update the location the starting address of the
database file is obtained using CONNECT and the correct location is changed
by calculating the correct offset in the file. 
      In addition to the location being changed a record of what user changed
what location and what TCP+console he/she was on a the time. This is done
in order to check up on invalid locations.

==== ecsc01/t#utilss0_clrscreens.txt ====
%externalstringfnspec vdus(%integer i)
%externalroutinespec printchs(%string(255)s)
%externalroutine clearscreen(%string(255)s)
printchs(vdus(1))
%end
%endoffile

==== ecsc01/sup_enter17s.txt ====
%RECORDFORMAT PARMF(%INTEGER DEST, SRCE, P1, P2, P3, P4, P5, P6)
%RECORDFORMAT SERVAF(%INTEGER P, C)
%EXTERNALINTEGERSPEC INPTR
%EXTERNALINTEGERSPEC OUTPTR
%CONSTINTEGER MASK=X'80FC3FFF'
%EXTERNALINTEGERFNSPEC HANDKEYS
%EXTERNALROUTINESPEC HOOT(%INTEGER NUM)
%EXTERNALROUTINESPEC GDC(%RECORD(PARMF)%NAME P)
%IF SSERIES=NO %START
   %EXTERNALINTEGERFNSPEC GPC INIT(%INTEGER CA,PT,MODE)
%FINISH
%EXTERNALINTEGERFNSPEC SAFE IS READ(%INTEGER ISAD,%INTEGERNAME VAL)
%EXTERNALROUTINESPEC GET PSTB(%INTEGERNAME P0, P1)
%EXTERNALROUTINESPEC SUP29
%EXTERNALROUTINESPEC SUPPOFF(%RECORD(SERVAF)%NAME SERV, %C
      %RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC DISC(%RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC PDISC(%RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC SLAVESONOFF(%INTEGER J)
%EXTERNALROUTINESPEC PKMONREC(%STRING(20)TEXT,%RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC WAIT(%INTEGER MILLISECS)

==== ecsc01/vol_vlink20.txt ====
LINK
SSLD05Z
VOLS20Z
.END
V20Z
SPFIX V20Z,V20R,V20D
PERMIT V20R,,ER

==== ecsc01/t#utilss0_fnoks.txt ====
program test_f_name(input,output);
type string31=packed array[1..31]of char;
var  filename:string31;

function fnok(s:string31;write_to:boolean):boolean;
var i,dot,sub:integer;fail,ftype:packed array[0..4]of boolean;done:boolean;

function my_file(s:string31):boolean;
const
  userad=2359296;{str6}
type
  str6=packed array[0..6]of char;
     cheat=record
         dummyi:integer;
         case boolean of
            true:(addr:integer);
            false:(ptr:^str6)
         end;
  var peeker:cheat;me,owner:str6;i:integer;
  begin
     peeker.addr:=userad;

==== ecsc01/t#utilss0_hasps.txt ====
%external %routine %spec set return code(%integer flag)
%external %integer %function %spec return code
%external %routine %spec detach(%string (255) s)
%external %routine %spec detachjob(%string (255) s)
%external %routine %spec prompt(%string (255) s)
%external %routine %spec destroy(%string (255) s)
%external %integer %function %spec exist(%string (255) s)
%systemroutinespec move(%integer len,from,to)
%system %routine %spec ssmessa(%integer flag, %string (63) fname)
%system %routine %spec outfile(%string (31) file, %integer size, hole, prot, %c
       %integer %name conad, flag)

%routine makefile(%string (255) ownfile)
   %integer flag, conad, i, j
      %on %event 9 %start
         ->out
      %finish
      destroy(ownfile) %if exist(ownfile) # 0
      outfile(ownfile, 4096, 0, X'40000000' {temp file}, conad, flag)
      %if flag # 0 %then ssmessa(flag, ownfile) %and ->err
      printstring("Enter contents of job file. Finish by typing Ctrl-Y")

==== ecsc01/vol_source.txt ====


!********************************************************************
!*                                                                  *
!*                                                                  *
!*               * * * * * * *  * * * * * * * * *                   *
!*             * V O L U M E S  E X E C U T I V E *                 *
!*               * * * * * * *  * * * * * * * * *                   *
!*                                                                  *
!*                                                                  *
!********************************************************************
!*
%CONSTSTRING(3) VERSION="20R"
!* 23-JAN-84:
!*    'NEW RESTORE REQUEST' TO RESOLVE ARCH ALIAS AMBIGUITY.
!*    'BACKUP ONLY' TO DO BACKUP WITH NO SECURE, OVERRIDING EXPLICIT/IMPLICIT
!*    EXPLICIT 'SECURE' COMMAND
!*
! %CONSTSTRING(3) VERSION="20Q"
!* 26-OCT-83:
!*    SYSTEM EPAGES=X500 FOR SECURE OF NEW SYSTEM DISCS

==== ecsc01/locsys_llr.txt ====
! Constant Filename
%CONSTANT %STRING (20)  update = "ECTU74.upusers"


%recordformat rf(%integer conad,filetype,datastart,dataend)
%systemroutinespec connect(%string(31) filename,%integer access,maxbytes,prot,
%record(rf) %name r,%integername flag)
%systemroutinespec disconnect(%string(31) filename,%integername flag)

! Start of routine llr to list all users who have used renew
%externalroutine llr(%string(255) nowt)

%byteintegerarrayformat raformat(0:50)
%byteintegerarrayname contents
%integer i,j,flag,startaddr
%record(rf) r

connect(update,10,0,0,r,flag) { Connect up relevant file}
startaddr=r_conad+r_datastart
%for i=0,1,49 %cycle
   contents==array(startaddr+i*51,RAFORMAT)

==== ecsc01/t#utilss0_proc1.txt ====
program processes(input,output);
const procaad=-2134900528;maxprocs=-2134900736;
type
      procf=packed record
            user:packed array[0..6] of char;
            incar,category,wsn,rung,active:char;
            actwo,lstat,lamtx,stack,status:integer
            end;
      plist_t=packed array [0..256] of procf;
      proc_p_t=record
               dummyp:integer;
               case boolean of
                  true:(paddr:integer);
                  false:(pval:^procf)
               end;
      integer_p_t=record
                  dummyi:integer;
                  case boolean of
                    true:(iaddr:integer);
                    false:(ival:^integer)
                  end;

==== ecsc01/t#utilss0_interrupts.txt ====
   
!TITLE Interrupts, %EVENTs and fault trapping.
!<Interrupts
    Subsystem cannot control or handle interrupts on its own, and has to
exploit the facilities offered by Director for the purpose.
!< PRIME CONTINGENCY
    One of the tools provided is the
    %EXTERNAL %INTEGER %FN PRIME CONTINGENCY (%ROUTINE TRAP)
in Director.  This need only be called once, to nominate the routine TRAP
to Director.  The %SPEC of TRAP must be
    %ROUTINE %SPEC TRAP (%INTEGER CLASS, SUBCLASS).
If an interrupt subsequently occurs which is relevant to the process
(and subject to some conditions which will appear later), Director
will suspend the process and force it to enter TRAP, supplying the
two %INTEGER parameters CLASS and SUBCLASS to indicate what sort of
interrupt has occurred.  TRAP will normally be some routine which is
declared as part of the subsystem, and in the standard subsystem it is
the routine DIRTRAP, declared in module BASE.  The corresponding call of
PRIME CONTINGENCY is almost the first instruction executed in the
%SYSTEM %ROUTINE CONTROL declared in module CONT.
!>

==== ecsc01/t#utilss0_pronames.txt ====
%externalroutine proname(%string(255)user)
%record(%integer no,%string(6)%array user(1:25),%string(31)%array alias(1:25)) data
%integer vsn,flag,i
%externalroutinespec readprofile(%string(11)key,%name data,%integername vsn,flag)
vsn=0
readprofile("GWW",data,vsn,flag)
printstring("Flag=");write(flag,1);printstring("   Vsn=");write(vsn,1);newline
printstring("No=");write(data_no,1);newline
%for i=1,1,data_no  %cycle
  printstring(data_user(i));spaces(5);printstring(data_alias(i));newline
%repeat
%end
%endoffile

==== ecsc01/utilss_pass.txt ====

%constlonginteger password=987325576
%systemroutinespec phex(%integer i)
%externalstring(255)%fnspec interrupt
%externalroutinespec prompt(%string(255)p)
%externalroutinespec setmode(%string(255)s)
%integerfn encrypt(%longinteger n)
%longlongreal lr
%integer i
%constlonglongreal const=131719.0478125
%for i=1,1,6 %cycle
 lr=n
 lr=lr*const
 n=longinteger(addr(lr)+4);!middle 64 bits
%repeat
%result=integer(addr(n))
%end
%externalroutine privilege(%string(255)s)
%longinteger n
n=0
setmode("echo=off")

==== ecsc01/t#utilss0_iprocs2.txt ====
%begin
%recordformat comf(%integerarray i1(1:25),%byteintegerarray b1(1:8),
                   %integerarray i2(1:9),%longinteger l1,
                   %integerarray i3(1:9),%integer MAXPROCS,
                   %integerarray i4(1:4),%integer PROCAAD)
%constrecord(comf)%name com=X'80000000'+48<<18
%integerfn VAL(%integer adr,len,rw,psr)
%integer inseg0,beyondseg0,seg0,seg0ad,dr0
  seg0=adr>>18
  %result=0 %unless 0<len<=32<<18
  %if psr=0 %start
     *LSS_(%LNB+1)
     *ST_PSR
  %finish
  %if seg0#(adr+len-1)>>18 %start
     seg0ad=seg0<<18
     inseg0=X'400000'-(adr-seg0ad)
     beyondseg0=len-inseg0
     %result=VAL(adr,inseg0,rw,psr)&VAL(adr+inseg0,beyondseg0,rw,psr)
  %finish
  dr0=x'18000000'!len

==== ecsc01/t#utilss0_iprocs.txt ====
%begin
%externalintegerfnspec DPROCS(%integername max,%integer adr)
%routine idprocs
%integer j,max,adr,l,k
%byteintegerarray plist(0:32*256)
%stringname user
   l=0
   max=256
   adr=addr(plist(0))
   j=dprocs(max,adr)
   %returnif j#0
   %cycle k=0,1,max-1
       user==string(addr(plist(32*k)))
       %unless user="" %start
           write(k,3)
           space
           printstring(user)
           l=l+1
           l=0 %and newline %if l=6
       %finish
   %repeat

==== ecsc01/t#utilss0_bellss.txt ====
%externalroutine bells(%string(255)dummy)
%integer i
%cycle i=1,1,20
      printch    (7)
      spaces(4)
%repeat
%end
%endoffile

==== ecsc01/t#utilss0_testsm.txt ====
program testsm(output);
const out='Pascal test maps OK';
      magic = 402653440;
      fname=' 23,t#             ';
type  str19=packed array [1..19]of char;
      ptr19=^str19;
      ftype=packed array [1..711]of char;
      fptr=^ftype;
var   len:integer;
      mapper:fptr;
      smfile:ptr19;
procedure define(i:integer;stref:ptr19);extern;
procedure opensm(chan,mode:integer;var mapper:fptr;var len:integer);extern;
procedure closesm(chan:integer);extern;
begin
      new(smfile);
      smfile^:=fname;
      smfile^[1]:=chr(5);
      define(magic,smfile);
      opensm(23,1,mapper,len);
      writeln(len:5,' bytes of data accessed');

==== ecsc01/utilss_iodemos1.txt ====
program iodemo(inp,output,infile,outfile);
type
    string15=packed array[1..15]of char;
    ptr31   =^string31;
    string31=packed array[0..31]of char;
var
    infile,outfile,inp:text;
procedure pprompt(s:string15);extern;
procedure define(k:integer;p:ptr31);extern;

procedure define_files;
var filename:string31;length:integer;first_try,ok:boolean;

function get_name(prompt:string15;var l:integer;var name:string31):boolean;
var ok:boolean;temp:integer;
begin
if first_try then begin pprompt(prompt);reset(inp);first_try:=false;end
             else begin pprompt(prompt);while inp^=' ' do get(inp);end;
for l:=0 to 31 do name[l]:=' ';
l:=1;
while (inp^<>' ') and not(eoln(inp)) and (l<29) do begin

==== ecsc01/utilss_iodemos2.txt ====
program iodemo(inp,output,infile,outfile);
type
    string15=packed array[1..15]of char;
    ptr63   =^string63;
    string63=packed array[0..63]of char;
    string31=packed array[1..31]of char;
var
    infile,outfile,inp:text;
procedure pprompt(s:string15);extern;
procedure pdefine(k:integer;p:ptr63);extern;

procedure define_files;
var filename:string31;length:integer;first_try,ok:boolean;

function get_name(prompt:string15;var l:integer;var name:string31):boolean;
var ok:boolean;temp:integer;
begin
if first_try then begin pprompt(prompt);reset(inp);first_try:=false;end
             else begin pprompt(prompt);while inp^=' ' do get(inp);end;
for l:=1 to 31 do name[l]:=' ';
l:=1;

==== ecsc01/utilss_iodemos3.txt ====
program iodemo(inp,output,infile,outfile);
type
    string15=packed array[1..15]of char;
    ptr63   =^string63;
    string63=packed array[0..63]of char;
    string31=packed array[1..31]of char;
var
    infile,outfile,inp:text;
procedure pprompt(s:string15);extern;
procedure pdefine(k:integer;p:ptr63);extern;

procedure define_files;
var filename:string31;length:integer;first_try,ok:boolean;

function get_name(prompt:string15;
                  var l:integer;
                  var name:string31;
                  write_to:boolean):boolean;
var ok:boolean;temp:integer;

function fnok(s:string31;write_to:boolean):boolean;

==== ecsc01/sup_sup29cs.txt ====

!
! To make S series supervisor requires:-
!     1) Change SSERIES=NO to SSERIES=YES in ctoptions file
!
!
! THESE CONST INTEGERS DEFINE SIZES AND LAYOUT OF IMPORTANT TABLES
! THEY HAVE TO BE HERE TO BE GLOBAL TO ALL ROUTINES INCLUDING IO ONES
!
%CONSTINTEGER LSTLEN=192;               ! LOCAL SEGMENT TABLE LENGTH
%CONSTINTEGER CBTLEN=299;               ! LENGTH OF CBT TABLE
%CONSTLONGINTEGER LCACR=1;              ! ACR OF LOCAL CONTROLLER
%CONSTINTEGER DIRCSEG=10;               ! SEG NO OF DIRECTOR COMMS SEG
%CONSTINTEGER DIRCSEGOFFSET=0;          ! FOR ALIGNMENT IF NEEDED
%CONSTINTEGER DIRCSEGAD=DIRCSEG<<18;    ! VIRTUAL ADDRESS OF DIR COM SEG
%CONSTINTEGER DIRCSEGL=8*CBTLEN+255+2*LSTLEN; ! SIZE OF SAME
                                        ! MADE UP OF 2049 FOR CBT
                                        ! 2*LSTLEN FOR SST
                                        ! 48+64 FOR 2 BITS OF SYTEMCALL TABLE
                                        ! 32+48 FOR DIROUTP&SIGOUT
%CONSTINTEGER LSTACKLEN=3;              ! LOCAL CONT. STACK ELEN

==== ecsc01/t#utilss0_anals.txt ====
%constant %integer ssdatafiletype= 4
%constant %integer ssobjfiletype= 1
%constant %integer sscorruptobjfiletype=5
%constant %integer ssdirfiletype= 2
%constant %integer sscharfiletype= 3
%constant %integer sspdfiletype= 6
%constant %integer ssoptfiletype= 9
%record %format arf(%string (31) name, %integer type)
%record %format pdhf(%integer dataend, datastart, size, filetype, sum,
       datetime, adir, count)
%record %format rf(%integer conad, filetype, datastart, dataend)
%record %format dhf(%integer dataend, datastart, size, filetype, sum,
       datetime, pstart, spare)
%record %format lnf(%byte %integer type, %string (6) name, %integer rest,
       point, dr1)
%record %format frf(%integer conad, filetype, datastart, datend, size, rup,
       eep, mode, users, arch, %string (6) tran, %string (8) date, time,
       %integer count, spare1, spare2)
%record %format hf(%integer dataend, datastart, filesize, filetype, sum,
       datetime, format, records)
%record %format dahf(%integer dataend, datastart, size, filetype, date, time,

==== ecsc01/t#utilss0_counters.txt ====
%begin
!%externalroutine t(%string(255)dummy)
%externalintegerfnspec ddelay(%integer i)
%longintegerarray store(1:10)
%longinteger now ,then
%integer counter,flag
%longintegerfn tim(%integer val)
*RRTC_1
*USH_(%LNB+5)
*STUH_%TOS
*USH_1
*USH_-1
*EXIT_-64
%end
%for counter=1,1,10 %cycle
     store(counter)=tim(-19)
     flag=ddelay(30)
%repeat
then=store(1)
%for counter=1,1,10 %cycle
   now=store(counter)

==== ecsc01/locsys_tcpanal.txt ====
%externalroutine tcpanal(%string(255) s)

%constant %integer maxtcps=27

%constant %string(15) %array tcpname(1:maxtcps)="TCPA","TCPC","TCPD","TCPM","JCMB",
"G.SQ.","EULIB","SOCS","ATB-1","ATB-2","ATB-3","CS-AT1","CS-AT2","ENGIN","CHEM",
"POLLCK","XGATE","TCPS","GEOG","PSSE",
"X25","SCRI-I","SCRI-P","FOREST","ERSKIN","WS-COA","null"

%integer i,tcpusercount,j
%recordformat rf1(%integer n,a)
%recordformat pf(%string(6)user,%string(15)tcp,%byteinteger a,invoc,b,n,f,
%integer logs,%byteinteger c,d,e,r,%integer id,proc,g,h,z)
%record(rf1) r1
%record(pf)%array p(1:256)
%externalroutinespec prompt(%string(255) s)
%externalintegerfnspec dprocedure(%integer a,b)

%on %event 4 %start
printstring("You Are Supposed To Type The Number Associated With The Tcp!")
newline

==== ecsc01/testpi7.txt ====
%external %routine testinit

   ! Note: Version of PRINTINIT7 for transfer of HP Laser Jet files to
   !       APM Filestore (Appleton Tower) Spooler.
   !       Only commands "PRINT", "QUEUE", "STOP", "QUIT", "EXIT" available
   !       under program operation. No permission checks other than on
   !       global process running program. No accounting/profile kept.

   %record %format crrf(%integer conad, filetype, datastart, dataend)
   %record (crrf) crname
   %record %format fhf(%integer end, start, size, type, fhole, dt, sp1, sp2)
   %record %format infof(%integer vsn, state, %string (7) ident, user,
     %string (15) dest, srce, output, %string (31) name, delivery,
     %string (63) message, %integer dtrec, dtst, dtopst, dtdel, start,
     length, time, (%integer oplim %or %integer cc), %integer size,
     (%integer prior %or %integer pc), %integer aftdt, ahead,
     %byte %integer forms, mode, copies, order, rerun, decks, drives, fails)
     {256 bytes}
   %record (infof) %name info
   %record %format pe(%integer dest, srce, p1, p2, p3, p4, p5, p6)
   %record %format reqf(%integer dest, srce, flag, %string (6) user, file,

==== ecsc01/tfile.txt ====
asdlsadjlksjdksladjal;kdjskl;dj
skdl;sakdl; dsad;lskdl;sd
l;k

;ksdl;k

dflkdl;sfgkdl; ewrieowqrioperiepor

==== ecsc01/t#utilss0_clss.txt ====
%externalroutinespec printchs(%string(255)s)
%externalstringfnspec vdus(%integer ep)
%externalroutine cls(%string(255)s)
%if s#"" %then printchs(vdus(0))
printchs(vdus(1))
%end
%endoffile

==== ecsc01/sup_gpc40s.txt ====

%CONSTSTRING (25) VSN="GPC40 15th Mar 1982"
!************************************************GPC GPC GPC
!*
!*   EMAS 2900 SUPERVISOR NOTE
!*                                           No: 5
!*                                         Date: 21/05/80
!*                                       Author: A.Gibbons
!*
!*
!* %EXTERNAL ROUTINE GPC(%RECORD(PARMF)%NAME P)
!*
!* 1. CONVENTIONS
!* The record spec for the parameter is
!*   %RECORDFORMAT PARMF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6)
!* where
!*   DEST is considered as two half words DSNO and DACT. DSNO
!*        must be GPC's DSNO 
!*        DACT is set according to the function required.
!*
!*   SRCE is considered as two halfwords SSNO and SACT.

==== ecsc01/t#utilss0_usnames.txt ====
%systemstring(31)%fnspec username(%string(6)u,%integer i)
%externalroutine name(%string(255) s)
%string(6)u
%if s = "" %thenreturn
u<-s
s=username(u,1)
%if s#"?" %then printstring(u." <==> ".s) %else printstring("Not known")
newline
%end
%endoffile

==== ecsc01/t#utilss0_fnok.txt ====
program testfile(input,output);

type
   string31   = packed array [1..31] of char;

var
   filename   : string31;
   flag       : boolean;

procedure readstring(var inp:text;var s:string31; var flag:boolean);

var
   i          : integer;

procedure skipspaces(var inp:text);
begin
   while (inp^=' ') and not (eoln(inp)or eof(inp)) do
      get(inp);
end;

begin

==== ecsc01/t#utilss0_awaits.txt ====
%externalstringfnspec vdus(%integer i)
%externalroutinespec printchs(%string(255)s)
%recordformat parmf(%integer dest,srce,p1,p2,p3,p4,p5,p6)
%dynamicroutinespec dpoff(%record(parmf)%name p)
%dynamicintegerfnspec ddelay(%integer secs)
%externalroutine await(%string(255) s)
%record(parmf) p
%integer i
printchs(vdus(1))
newlines(5)
printstring("         This terminal is still in use - please do not try to use it")
newlines(5)
i=ddelay(2)
p=0
      dpoff(p)
      %end; ! AWAIT
%endoffile

==== ecsc01/sup_mindiags.txt ====
%EXTERNALSTRINGFNSPEC STRHEX(%INTEGER I)
%SYSTEMROUTINE NDIAG(%INTEGER PCOUNT, LNB, FAULT, INF)
!***********************************************************************
!*_______'MASTER DIAGNOSTIC ROUTINE'. DISCOVERS THE LANGUAGE OF THE    *
!*_______FAILED ROUTINE FROM WORD 4 OF THE GLA AND CALLS APPROPRIATE   *
!*_______DIAGNOSTIC ROUTINE. THIS IS REPEATED TILL ALL DIAGNOSTICS     *
!*_______GIVEN.                                                        *
!*_______PCOUNT = PCOUNTER AT FAILURE                                  *
!*_______LNB    = LOCAL NAME BASE AT FAILURE                           *
!*_______FAULT  = FAILURE  (0=%MONITOR  REQUESTED)                     *
!*_______INF    =ANY FURTHER INFORMATION                               *
!***********************************************************************
PRINTSTRING("
MINIMUM NDIAGS ENTERED
FAULT NO ="); WRITE(FAULT,2)
PRINTSTRING("
PC=X".STRHEX(PCOUNT)."
LNB=X".STRHEX(LNB)."
")
%IF FAULT>0 %THEN %STOP
%END

==== ecsc04/pcompats.txt ====
!********************************************************************
%routinespec pstack(%string(31) name,%integer bits,words,
  %integername controlx,controly,pushcony,popcony,phi1x,phi2x,phi3x,phi4x,
  %integer pushyref,popyref)
%routinespec pplacepads(%string(31) chipname,cellname,%integer portsref,n)
!*********************************************************************
%externalroutinespec stack(%string(31) name,%integer bits,words,
  %integername controlx,controly,pushcony,popcony,phi1x,phi2x,phi3x,phi4x,
  %integerarrayname pushy,popy)
%recordformat connf(%integer type,side,c,w,%string(4) layer)
%externalroutinespec placepads(%string(31) chipname,cellname, %c
  %record(connf)%arrayname ports,%integer n)
!---------------------------------------------------------------------
%externalroutine pstack(%string(31) name,%integer bits,words,
  %integername controlx,controly,pushcony,popcony,phi1x,phi2x,phi3x,phi4x,
  %integer pushyref,popyref)
%integerarray pushy,popy(1:bits)
%integer i
  stack(name,bits,words,controlx,controly,pushcony,popcony,
    phi1x,phi2x,phi3x,phi4x,pushy,popy)
  %for i=1,1,bits %cycle

==== ecsc04/sup24l.txt ====
LINK
ECSC04.SUP24
ERCC07.COM23Z
ERCC07.FAST21Z
ECSC17.OPER16Z
ERCS04.DPRINT25Z
ERCS04.TAPE61Z
ERCC35.GPC16Y
ERCC07.NDIAG06Z
ERCC20.COMMS33Z
.END
SUP24Z
SUPFIX SUP24Z,SUP24T

==== ecsc04/gpms.txt ====

%BEGIN
%INTEGER E0,F0,H0,R
%OWNINTEGER A,W,W1,H,P,F,C=0,S=39,E=33,Q=1,MARKER=X'FFFFC000'
%SWITCH MCM(1:6)
%OWNSHORTINTEGERARRAY ST(0:1000)=%C
   -1,4,'D','E','F',-1,
   0,4,'V','A','L',-2,
   6,7,'U','P','D','A','T','E',-3,
   12,4,'B','I','N',-4,
   21,4,'D','E','C',-5,
   27,4,'B','A','R',-6,
   0(962)
%ROUTINESPEC MONITOR(%INTEGER N)
%ROUTINE LOAD
   %IF H=0 %THEN PRINT SYMBOL(A) %ELSE ST(S)=A %AND S=S+1
%END
%ROUTINE NEXTCH
   %IF C=0 %THEN READ SYMBOL(A) %ELSE A=ST(C) %AND C=C+1
%END
%ROUTINE FIND(%INTEGER X)

==== ecsc04/laycom.txt ====
%EXTERNALROUTINE LAY(%STRING (63) S)
%EXTERNALROUTINESPEC DEFINE(%STRING(63) S)
%EXTERNALROUTINESPEC RUN(%STRING (63) S)
%STRING (63) S1,S2,S3
%IF S->S1.('/').S2 %THEN %START
DEFINE('ST01,'.S1)
   %IF S2->S1.(',').S3 %THEN %START
      DEFINE('ST03,'.S3)
   %FINISH %ELSE S1=S2 %AND DEFINE('ST03,.NULL')
   DEFINE('ST02,'.S1)   ;! DOCUMENT
%FINISH %ELSE %MONITORSTOP
RUN('MYLAYY')
%END
%ENDOFFILE

==== ecsc04/ocgsignals.txt ====

BE41    #25LS2519 QUAD FF/10

DC33    #25LS2539 DUAL DEMUX/20

CE41    #25LS2569 UPDOWN CTR/20
CG17    #25LS2569 UPDOWN CTR/20
CG27    #25LS2569 UPDOWN CTR/20
DA41    #25LS2569 UPDOWN CTR/20

AA01    #2907 BUS TRANS/20
AC01    #2907 BUS TRANS/20
AE01    #2907 BUS TRANS/20
AG01    #2907 BUS TRANS/20

AC19    #29701 RAM/16
AE19    #29701 RAM/16
CA25    #29701 RAM/16
CA33    #29701 RAM/16
CC33    #29701 RAM/16


==== ecsc04/ilaps_pads.txt ====
%include "ilap_inc"
!
%routine draw output pad area
%integer i
  layer(metal)
    box(0,88,96,96) ; box(0,0,96,8) ; box(24,24,72,72)
    box(82,67,86,73) ; box(72,68,82,72) ; box(82,45,86,51)
    box(72,46,82,50) ; box(82,23,86,29) ; box(72,24,82,28)
    box(67,13,73,17) ; box(68,17,72,24) ; box(45,13,51,17)
    box(46,17,50,24) ; box(23,13,29,17) ; box(24,17,28,24)
    box(10,23,14,29) ; box(14,24,24,28) ; box(10,45,14,51)
    box(14,46,24,50) ; box(10,67,14,73) ; box(14,68,24,72)
  layer(contact)
    box(i,89,i+4,91) %and box(i,93,i+4,95) %for i=34,8,58
    box(i,3,i+4,5) %for i=6,10,86
    box(83,68,85,72) ; box(83,46,85,50) ; box(83,24,85,28)
    box(68,14,72,16) ; box(46,14,50,16) ; box(24,14,28,16)
    box(11,24,13,28) ; box(11,46,13,50) ; box(11,68,13,72)
  layer(diffusion)
    box(70,26,96,96) ; box(0,0,96,26)
    box(0,26,26,96) ; box(26,70,70,96)

==== ecsc04/spiceobey.txt ====
DEFINE 5,SPICE2
DEFINE 6,.LP
DEFINE 7,SPICEJ
SPICE

==== ecsc04/xtalkbbc.txt ====






                    BBC Micrcomputer  X-talk  User Guide

                    Release Version 1.0     1st Nov 1984

                               Keith Mitchell

                        ERCC Real Time Support Group



      Contents


      1) Introduction                    2


==== ecsc04/Emas-a/oproute.txt ====
%externalroutine route(%realarray(1)%name ax,bx,%integer n,%real awid, %c
  bwid,twid,tsep,ay,%realname by,%integer v)
%externalrealfnspec sin(%real x)
%externalrealfnspec cos(%real x)
%routinespec genpolys(%integer i,%realarray(1)%name ax,bx, %c
  %realarray(3)%name apx,apy,bpx,bpy,%integerarray(2)%name apv,bpv, %c
  %integerarray(1)%name apn,bpn,%real atw,btw)
%routinespec getsep(%integer i,%realarray(3)%name apx,apy,bpx,bpy,%c
  %integerarray(2)%name apv,bpv,%integerarray(1)%name apn,bpn)
%realarray px,py(0:n-1,1:v),apx,apy,bpx,bpy(1:n,0:n-1,1:v+1)
%integerarray apn,bpn,sign(1:n),apv,bpv(1:n,0:n-1)
%real atw,btw,maxsep,d,r,s,t
%constreal pi=3.14159265
%integer i,j,k,l,m
  atw=(awid-twid)/2
  btw=(bwid-twid)/2
  d=twid+tsep
  ! generate polygon vertex positions
  r=cos(pi/(4*v))
  %for i=1,1,v %cycle
    s=d*cos((2*i-1)*pi/(4*v))/r

==== ecsc04/Emas-a/start.txt ====
alias files,f
alias destroy,delete
alias vecce,v

==== ecsc04/iwcsa.txt ====

!!!!!!!!!!!!!!!!!!!!!!!!! ELEMENT DEFINITIONS !!!!!!!!!!!!!!!!!!!!!!!!!!
%ELEMENTDEF CTR(%INPUT C1,C2,R,S,%INPUTARRAY A(0:3),%OUTPUTARRAY Y(0:3))
%ELEMENTDEF SWITCH(%INPUTARRAY A(0:7),%OUTPUTARRAY Y(0:7))
%ELEMENTDEF INV(%INPUT A,%OUTPUT Y)
%ELEMENTDEF NAND2(%INPUT A,B,%OUTPUT Y)
%ELEMENTDEF NAND2OC(%INPUT A,B,%OUTPUT Y)
%ELEMENTDEF AND2(%INPUT A,B,%OUTPUT Y)
%ELEMENTDEF BUFF(%INPUT A,%OUTPUT Y)
%ELEMENTDEF NOR5(%INPUT A,B,C,D,E,%OUTPUT Y)
%ELEMENTDEF NAND8(%INPUTARRAY A(0:7),%OUTPUT Y)
%ELEMENTDEF MMVBR(%INPUT A1,A2,B,T9,T10,T11,%OUTPUT Q,QB)
%ELEMENTDEF DFF(%INPUT C,D,P,CL,%OUTPUT Q,QB)
%ELEMENTDEF MULT2(%INPUT S0,S1,A,B,%OUTPUT Y)
%ELEMENTDEF MULTB2(%INPUT S0,S1,A,B,%OUTPUT Y)
%ELEMENTDEF RAM8(%INPUT D,RW,CE1,CE2,CE3,%ARRAY A(0:7),%OUTPUT Y)
%ELEMENTDEF RAM10(%INPUT D,RW,CE,%ARRAY A(0:9),%OUTPUT Y)
%ELEMENTDEF COMP(%INPUT A,%OUTPUT Y)




==== ecsc04/xtalkibm.txt ====


                             IBM PC X-talk.


                   Version 1.01  A. Howitt Sept. 1984.



Introduction :

The IBM PC X-talk program is a communications package using asynchronous
protocols to provide a utility for transferring files to  and  from  the
Edinburgh  Multi-Access  System  (EMAS) via a Terminal Control Processor
(TCP).  The program was written originally for the  Sirius  computer  by
Robin  E.   Day  of  Business  Studies  and  hence the user interface is
similar on both machines.

In order to run the program DOS Version 2.00 operating  system  must  be
used  with the extended screen and keyboard control device driver.  This
can be accomplished by placing the command :

==== ecsc04/balls.txt ====
%EXTERNALROUTINE BALL(%STRING(63) FILE)
%EXTERNALROUTINESPEC DEFINE(%STRING(63) S)
%ROUTINESPEC PRINT FORM(%STRING(63) S)
%ROUTINESPEC QSORT(%INTEGER A,B)
%ROUTINESPEC BWRITE(%INTEGER N,M)
%BYTEINTEGERARRAY FORM(1:80)
%CONSTINTEGER VCOL=54,MAXCOL=60,MAXVOTES=22
%INTEGERARRAY VOTE(10:MAXCOL)
%INTEGERARRAY TOT,RANK,ORDER(1:8,10:MAXCOL)
%INTEGERARRAY FORMS(1:8)
%INTEGERARRAY HASH(0:511)
%BYTEINTEGERARRAY FAC(0:511)
%INTEGER COL,TIT1,C1,C2,C3,C4,DEPT,F,H,I,J,K,U,V
%CONSTINTEGERARRAY TOTC(1:10)=4,4,4,1,4,2,3,1,4,5
%CONSTSTRING(3)%ARRAY TIT(10:MAXCOL)="L1 ","L2 ","L3 ","L4 ","L5 ",
  "L6 ","L7 ","S1 ","S2 ","S3 ","S4 ","S5 ","S6 ","S7 ","E1 ","E2 ",
  "E3 ","E4 ","E5 ","E6 ","E7 ","E8 ","E9 ","E10","C1 ","C2 ","C3 ",
  "C4 ","C5 ","H1 ","H2 ","H3 ","H4 ","O1 ","O2 ","O3 ","O4 ","O5 ",
  "O6 ","O7 ","O8 ","I1 ","I2 ","I3 ","I4 ","D1 "(2),"D2 "(2),"D3 "(2)
%CONSTSTRING(21)%ARRAY ABREV(10:MAXCOL)="ADA","ALGOL 68","APL","LISP",
  "UCSD PASCAL","POP-2","PROLOG","BASIC","BCPL","COBOL","LOGO",

==== ecsc04/iwcs.txt ====

!!!!!!!!!!!!!!!!!!!!!!!!! ELEMENT DEFINITIONS !!!!!!!!!!!!!!!!!!!!!!!!!!
%ELEMENTDEF CTR(%INPUT C1,C2,R,S,%INPUTARRAY A(0:3),%OUTPUTARRAY Y(0:3))
%ELEMENTDEF SWITCH(%INPUTARRAY A(0:7),%OUTPUTARRAY Y(0:7))
%ELEMENTDEF INV(%INPUT A,%OUTPUT Y)
%ELEMENTDEF NAND2(%INPUT A,B,%OUTPUT Y)
%ELEMENTDEF NAND2OC(%INPUT A,B,%OUTPUT Y)
%ELEMENTDEF AND2(%INPUT A,B,%OUTPUT Y)
%ELEMENTDEF BUFF(%INPUT A,%OUTPUT Y)
%ELEMENTDEF NOR5(%INPUT A,B,C,D,E,%OUTPUT Y)
%ELEMENTDEF NAND8(%INPUTARRAY A(0:7),%OUTPUT Y)
%ELEMENTDEF MMVBR(%INPUT A1,A2,B,T9,T10,T11,%OUTPUT Q,QB)
%ELEMENTDEF DFF(%INPUT C,D,P,CL,%OUTPUT Q,QB)
%ELEMENTDEF MULT24(%INPUT S0,S1,%ARRAY A,B(0:3),%OUTPUTARRAY Y(0:3))
%ELEMENTDEF MULTB24(%INPUT S0,S1,%ARRAY A,B(0:3),%OUTPUTARRAY Y(0:3))
%ELEMENTDEF RAM8(%INPUT D,RW,CE1,CE2,CE3,%ARRAY A(0:7),%OUTPUT Y)
%ELEMENTDEF RAM10(%INPUT D,RW,CE,%ARRAY A(0:9),%OUTPUT Y)
%ELEMENTDEF COMP(%INPUT A,%OUTPUT Y)




==== ecsc04/as88.txt ====
(CIF 2.0);
(as88.CIF produced by Imp LAP V2.0 on 29-MAY-1981 at 16:11:16);
(Lambda = 300 hundredths of a micron);
DS 100 300 10;    9 gb;
L NM;
B 40 40 0 0;
L ND;
B 40 40 0 0;
L NC;
B 20 20 0 0;
DF;

DS 101 300 10;    9 rb;
L NM;
B 40 40 0 0;
L NP;
B 40 40 0 0;
L NC;
B 20 20 0 0;
DF;


==== ecsc04/iops.txt ====

0
BALR
BCTR
BFCR
NHR
CLHR
OHR
XHR
LHR
CHR
AHR
SHR
MHR
DHR
ACHR
SCHR

0(16)

BTBS

==== ecsc04/facs.txt ====
9EUAB
9YCNW
4EOPD
0
0
6YIAW
0
4EQMD
4EORE
0
0
0
0
0
4EOLZ
0
0
0
0
0
0

==== ecsc04/ilapincs.txt ====
!*********************************************************************
%constant %string (2) blue  ="M", metal    ="M",  nm="M"
%constant %string (2) green ="D", diffusion="D",  nd="D"
%constant %string (2) red   ="P", poly     ="P",  np="P"
%constant %string (2)             implant  ="I",  ni="I"
%constant %string (2)             glass    ="G",  ng="G"
%constant %string (2)             contact  ="C",  nc="C"
%constant %string (2)             buried   ="B",  nb="B"

%constant %integer true = 0,   false = 1

%external %routine %spec first cell number (%integer num)
%external %routine %spec set lambda (%integer l)
%external %routine %spec buried contacts
%external %routine %spec butting contacts
%external %string (2) %fn %spec contacts
%external %integer %map %spec ILAP control
%constant %integer       no warnings = 1
%constant %integer    monitor endsym = 2
%constant %integer        give times = 4
%constant %integer         merge cif = 8

==== ecsc04/m68ops.txt ====
CLIS 0 46
CREF 0 47
GEN 0 48
LOAD 0 49
LLEN 0 50
MC 0 51
MD 0 52
MEM 0 53
MEX 0 54
OBJ 0 55
REL 0 56
SEQ 0 57
SYM 0 58
UNA 0 59
LIST 0 60
ANY 0 61
COMM 0 16
BSZ 0 39
END 0 17
ENDC 0 18
ENDM 0 19

==== ecsc04/sup23wl.txt ====
PARM MAP
LINK
ECSC04.SUP23W
ECSC04.SEMA02Z
ERCC07.COM20Z
ERCC07.FAST17Z
ECSC17.OPER15Y
ERCS04.DPRINT24Z
ERCS04.TAPE58Z
ERCC35.GPC9Y
ERCC07.NDIAG06Z
ERCC20.COMMS29Z
.END
SUP23WZ
SUPFIX SUP23WZ,SUP23WT

==== ecsc04/sup23ws.txt ====

%LONGINTEGERFNSPEC RTDR(%INTEGERFN A)
%INTEGERFNSPEC REQUEST INPUT(%INTEGER OUTPUT POSN,TRIGGER POSN)
%INTEGERFNSPEC REQUEST OUTPUT(%INTEGER OUTPUT POSN,TRIGGER POSN)
%EXTERNALROUTINE SUP29
!-----------------------------------------------------------------------
%OWNSTRING(3) SUPID="23G"
!-----------------------------------------------------------------------
! STORE CONFIGURATION & EPAGE SIZE DECLARATIONS
! AMENDED 24/02/78  "SMACS","TRANS" & "KMON" INCLUDED
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 18D ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DDTADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,KLOKCORRECT,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,PROCMON,DQADDR,  %C
         SACPORT,OCPPORT,ITINT,CONTYPEA,GPCCONFA,FPCCONFA,SFCCONFA, %C
         BLKADDR,DPTADDR,SMACS,TRANS,%LONGINTEGER KMON,  %C
         %INTEGER SPDRQ,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,%INTEGERARRAY SP(0:13), %INTEGER  %C
         LSTL,LSTB,PSTL,PSTB,HKEYS,HOOT,SIM,CLKX,CLKY,CLKZ,  %C

==== ecsc04/stackincs.txt ====
!*******************************************************************************
%routinespec stack(%string(31) name,%integer bits,words,%integername controlx,
 controly,pushcony,popcony,phi1x,phi2x,phi3x,phi4x,%integerarrayname pushy,popy)
!*******************************************************************************
! Declarations for using ILAP included.

%constant %string (2) blue  ="M", metal    ="M",  nm="M"
%constant %string (2) green ="D", diffusion="D",  nd="D"
%constant %string (2) red   ="P", poly     ="P",  np="P"
%constant %string (2)             implant  ="I",  ni="I"
%constant %string (2)             glass    ="G",  ng="G"
%constant %string (2)             contact  ="C",  nc="C"
%constant %string (2)             buried   ="B",  nb="B"

%constant %integer true = 0,   false = 1

%external %integer %map %spec buried contacts
%external %routine %spec end symbol
%external %routine %spec symbol (%string (31) name)
%external %routine %spec box     %alias "ILAPBOX"     (%integer xl, yl, xu, yu)
%external %routine %spec polygon %alias "ILAPPOLYGON" (%real x, y)

==== ecsc04/sup24ns.txt ====

!
! TO MAKE S SERIES SUPERVISOR REQUIRES:-
!     1) UNCOMMENT S SERIES INTERUPT SEQUENCE AFTER IST4I: AND DISCARD
!        P SERIES INTERUUPT CODE
!     2) REPLACE COMF BY S SERIES COM IN ERCC08.COMSF
!     3) CHANGE ALL CALL OF GPC TO DCU
!     4) UNCOMMENT ALL LINES STARTED BY !PSERIES
!

%INTEGERFNSPEC REQUEST INPUT(%INTEGER OUTPUT POSN,TRIGGER POSN)
%INTEGERFNSPEC REQUEST OUTPUT(%INTEGER OUTPUT POSN,TRIGGER POSN)
%INTEGERFNSPEC CHANGE CONTEXT
%LONGINTEGERFNSPEC RTDR(%INTEGERFN A)
%EXTERNALROUTINE SUP29
!-----------------------------------------------------------------------
%OWNSTRING(3) SUPID="24N"
!-----------------------------------------------------------------------
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 18D ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DDTADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C

==== ecsc04/qput12.txt ====
!
! Contact Alan Anderson ,ERCC before modifying this code
!
!
! Dec 6  Vsn 12 - Corrections for IMP on Perq
!
!Sept 8    Vsn 11  - Handles Imp data entries and references.!
!
!August 31 Vsn 10
!                  - Uses in store work file if big memory.
!                  - Ensures old object files taken care of.
!
!August 20 Vsn 9
!                  Lasttype becomes an own - P71
!                  Diagnostic records are moved out of qcodes into
!                  the unswopped area at the back of the file.
!                  For Fortran on Perq only, not IMP.
!                  Comment out decode sections. redtapelen->0.
!
!june 24 - Vsn 7   better error messages
!june 24           watch for adjacency and repitition in data statements

==== ecsc04/message.txt ====
==== ecsc04/perqimports.txt ====
!*
%CONSTINTEGER MODCOUNT=53
!*
%CONSTSTRING(15)%ARRAY MODULES(0:MODCOUNT) = %C
   "F77INIT","F77DCTL","F77DIAG","F77IDIAG","F77FDIAG",
   "F77RMESS","F77IO","F77FMT","F77INTRIN","F77AUX",
   "F77MAP","F77CMESS","F77COMP","F77ANAL","F77ALLOC",
   "F77GEN","F77CODE","F77QPUT","IMPSUP","F77QCODE",
   "F77IOA","F77IOB","F77IOC","F77IOD","F77IOE",
   "F77IOF","F77FILE","F77COPS","F77SUP","EXTHELP",
   "F77REAL",
   "ILAP4","CONTACT","PLA","XPLA","STACK","ROUTE","PAD",
   "ANNOTATE","UTIL","DRC","PLACE","STABLE","PCOMPAT",
   "IMPIOCP","IMPIOCPI","IMPREALFN",
   "TRANSF","CPARSE","CIFSYS","CIFVIEW","PERQPIC","EDWIN","FIRST2"
!*
%CONSTINTEGER RCOUNT=394
!*
%CONSTSTRING(19)%ARRAY RNAMES(0:RCOUNT) = %C
   "F77IOA","F77IOB","F77IOC","F77IOD","F77IOE","F77IOF",
   "INITMAIN","INITGLA","f77IOCP","F77STOP","f77WRITE",

==== ecsc04/lay.txt ====
%BEGIN;  !DOCUMENT LAYOUT PROGRAM
!SYMBOLIC CONSTANTS
%OWNINTEGER   HALF=1
%OWNINTEGER    LINEEXP=0
%OWNINTEGER    EXPIND=0
%OWNINTEGER    EXPBIT=1024
%OWNINTEGER    EXPSH=0
%OWNINTEGER    LINESUB=0
%OWNINTEGER    SUBIND=0
%OWNINTEGER    SUBBIT=2048
%OWNINTEGER    SUBSHB=0
%OWNINTEGER    SUBSHE=0
! PARA HACER LO DE LAS FIGURAS
%OWNINTEGER FIGURA=0
%OWNINTEGER SIN=1;  !SOURCE INPUT STREAM
%OWNINTEGER ERR=0, DOC=2, SOUT=3;  !OUTPUT STREAMS
%OWNINTEGER LBOUND=200;  !LINE BUFF BOUND
%OWNINTEGER ABOUND=200;  !ATOM BUFF BOUND
%OWNINTEGER SBOUND=200;  !SOURCE LINE BUFF BOUND
%OWNINTEGER VBOUND=25;  !VECTOR (EG TAB) BOUND
%OWNINTEGER ESCBIT=256, UNDBIT=128, CASEBIT=32

==== ecsc04/ilap4incs.txt ====
!******************************************************************************
!******************************************************************************
! specs in same order as in perqimports file
%integer %map %spec buried contacts     { FALSE => pla & stacks with no buried contacts
%integer %map %spec ILAP control        { This allows the control over ILAP
%routine %spec warn %alias "ILAPWARNING" (%string(255) s)
%routine %spec die %alias "ILAPDISASTER" (%string (255) s)
%routine %spec update mbb %alias "ILAPUPDATEMBB" (%integer xl, yl, xu, yu)
%routine %spec dump comment (%string (255) s)
%routine %spec symbol (%string (31) name)
%routine %spec external symbol spec (%string (31) name, %integer num, xl, yl, xu, yu)
%routine %spec symbol spec (%string (31) name, %integer xl, yl, xu, yu)
%routine %spec end symbol
%routine %spec ax (%integer u)
%routine %spec ay (%integer v)
%routine %spec axy (%real x, y)
%routine %spec dx (%integer u)
%routine %spec dy (%integer v)
%routine %spec dxy (%real dx, dy)
%routine %spec wirex (%integer x, y, l)
%routine %spec wirey (%integer x, y, l)

==== ecsc04/rom11s.txt ====

  HRCSR=176510        ; HOST DEVICE NOS
  HRBUF=176512
  HXCSR=176514
  HXBUF=176516
  TRCSR=177560        ; TERMINAL DEVICE NOS
  TRBUF=177562
  TXCSR=177564
  TXBUF=177566
  MOV PC,SP        ; SET UP SP TO BE BEFORE CODE
  SUB #2,SP
  CLR @#HRCSR         ; CLEAR DEVICE CSR'S
  CLR @#HXCSR
  CLR @#TRCSR
  CLR @#TXCSR
TR:TSTB @#TRCSR        ; CHAR READY FROM TERMINAL ?
  BPL HR
HX:TSTB @#HXCSR        ; HOST TRANSMITTER READY ?
  BPL HX
  MOVB @#TRBUF,@#HXBUF ; TRANSMIT TERMINAL CHAR TO HOST
HR:TSTB @#HRCSR        ; CHAR READY FROM HOST ?

==== ecsc04/pads.txt ====
!*******************************************************************************
! specs inserted in same order as in perqimports file
%routinespec padvdd
%routinespec padgnd
%routinespec padin(%integername padinx)
%routinespec padout(%integername padoutx)
%routinespec padclout(%integername padcloutx,padcloutclx)
%routinespec padinout(%integername padinoutinx,padinoutoutx,padinoutenx)
!*******************************************************************************
%constant %string (2) blue  ="M", metal    ="M",  nm="M"
%constant %string (2) green ="D", diffusion="D",  nd="D"
%constant %string (2) red   ="P", poly     ="P",  np="P"
%constant %string (2)             implant  ="I",  ni="I"
%constant %string (2)             glass    ="G",  ng="G"
%constant %string (2)             contact  ="C",  nc="C"
%constant %string (2)             buried   ="B",  nb="B"

%constant %integer true = 0,   false = 1

%external %string (2) %fn  %spec contacts
%external %routine %spec end symbol

==== ecsc04/ilap4s.txt ====
!******************************************************************************
!******************************************************************************
! specs in same order as in perqimports file
%routine %spec buried contacts     { pla & stacks with no burried contacts
%routine %spec butting contacts
%string (2) %fn %spec contacts
%integer %map %spec ILAP control        { This allows the control over ILAP
%routine %spec warn %alias "ILAPWARNING" (%string(255) s)
%routine %spec die %alias "ILAPDISASTER" (%string (255) s)
%routine %spec update mbb %alias "ILAPUPDATEMBB" (%integer xl, yl, xu, yu)
%routine %spec dump comment (%string (255) s)
%routine %spec symbol (%string (31) name)
%routine %spec external symbol spec (%string (31) name, %integer num, xl, yl, xu, yu)
%routine %spec symbol spec (%string (31) name, %integer xl, yl, xu, yu)
%routine %spec end symbol
%routine %spec ax (%integer u)
%routine %spec ay (%integer v)
%routine %spec axy (%real x, y)
%routine %spec dx (%integer u)
%routine %spec dy (%integer v)
%routine %spec dxy (%real dx, dy)

==== ecsc04/pinrst.txt ====
AA01    #2907 BUS REC/DRVR

AA0101  GND

AA0103  DTB0 H

AA0102$ RD0 H

AA0107  DTB1 H

AA0106  BDAL1 L

AA0105  NC

AA0104  BDAL0 L

AA0109  DRTB L

AA0108$ RD1 H

AA0110  GND

==== ecsc04/macros.txt ====

$DEF,-,<$DEC,$BAR,-,$BIN,#1;,$BIN,#2;;;>;

$DEF,HANOI,<$#1,#1,#2,#3,$DEF,#1,<$HANOI,$-,#1,1;,#2,$-,$-,6,#2;,#3;;
#2 #3$HANOI,$-,#1,1;,$-,$-,6,#2;,#3;,#3;>;$DEF,0,< >;;>;

]

==== ecsc04/sema01s.txt ====
%RECORDFORMAT PARMF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6)
%EXTERNALROUTINESPEC PTREC(%RECORDNAME P)
%EXTRINSICLONGINTEGER KMON
%EXTERNALSTRING(15)%FNSPEC STRINT(%INTEGER N)
%EXTERNALSTRING(15)%FNSPEC HTOS(%INTEGER N,M)
%EXTERNALROUTINESPEC OPMESS(%STRING(63) S)
%EXTERNALROUTINESPEC MONITOR(%STRING(63) S)
%EXTERNALROUTINESPEC PON(%RECORDNAME P)  
!-----------------------------------------------------------------------
%EXTERNALROUTINE SEMAPHORE(%RECORDNAME P)
%RECORDSPEC P(PARMF)
%OWNBYTEINTEGERARRAY HASH(0:31)=0(32)
! ARRAY DIMENSIONS ASSUME ONLY 'MAXPROCS' SEMAPHORES IN USE AT ONCE
%OWNINTEGERARRAY CELL(1:64)=0(64)    ;  ! (1:MAXPROCS)
%OWNBYTEINTEGERARRAY LINK(1:64)=2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,
  17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,
  40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,
  63,64,1
%OWNINTEGER ASL=64
%INTEGERFNSPEC NEWCELL(%INTEGER S)
%INTEGERFNSPEC RETURN CELL(%INTEGER I)

==== ecsc04/stacks.txt ====
!*******************************************************************************
%routinespec stack(%string(31) name,%integer bits,words,%integername controlx,
 controly,pushcony,popcony,phi1x,phi2x,phi3x,phi4x,%integerarrayname pushy,popy)
!*******************************************************************************
! Declarations for using ILAP included.

%constant %string (2) blue  ="M", metal    ="M",  nm="M"
%constant %string (2) green ="D", diffusion="D",  nd="D"
%constant %string (2) red   ="P", poly     ="P",  np="P"
%constant %string (2)             implant  ="I",  ni="I"
%constant %string (2)             glass    ="G",  ng="G"
%constant %string (2)             contact  ="C",  nc="C"
%constant %string (2)             buried   ="B",  nb="B"

%constant %integer true = 0,   false = 1

%external %string (2) %fn %spec contacts
%external %routine %spec end symbol
%external %routine %spec symbol (%string (31) name)
%external %routine %spec box     %alias "ILAPBOX"     (%integer xl, yl, xu, yu)
%external %routine %spec polygon %alias "ILAPPOLYGON" (%real x, y)

==== ecsc04/spls.txt ====

%EXTERNALROUTINE SPL
%ROUTINESPEC READ LINE
%INTEGERFNSPEC COMPARE(%INTEGER PSP)
%ROUTINESPEC SS
%ROUTINESPEC OUT(%INTEGER N)
%CONSTINTEGERARRAY PS(-1000:-906)= %C
  M'SS',-993,'X',-977,'=',-969,10,-987,'-','>',-957,-930,10,
  -983,-957,':',-1000,-981,'!',-978,'E',10,0,M'INDX',-972,'(',
  -969,')',-970,-957,0,M'EXPR',-965,-964,-946,0,M'OPD',-960,'X',
  -977,-958,-957,0,'N',-953,M'DIG',-952,0,M'RDIG',-948,M'DIG',
  -952,-947,0,M'REXP',-942,-940,-964,-941,0,M'OP',-937,'+',-935,
  '-',-933,'*',-931,'/',0,M'IF',-923,'I','F',-964,-921,-964,
  -922,0,M'COMP',-918,'=',-916,'#',-913,'>','=',-911,'>',-908,
  '<','=',-906,'<',0
%INTEGERARRAY A,PN,T(1:100)
%INTEGERARRAY CT,BTLAB,BTAD(0:100)       ;! CONSTANT & BRANCH  TABLES
%INTEGER I,J,TP,AP,CA,CTP,BTP
CA=0
CT(0)=0        ;! HOLE FOR 'X' BASE
CTP=1

==== ecsc04/temp.txt ====

0
0.0
0000.0
0001
1.0
34.3
+4735.3
-6.7
----2.5
(27)
-+-(-((+(0102.3))))

==== ecsc04/sema02s.txt ====
%RECORDFORMAT PARMF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6)
%EXTERNALROUTINESPEC PTREC(%RECORDNAME P)
%EXTRINSICLONGINTEGER KMON
%EXTERNALSTRING(15)%FNSPEC STRINT(%INTEGER N)
%EXTERNALSTRING(15)%FNSPEC HTOS(%INTEGER N,M)
%EXTERNALROUTINESPEC OPMESS(%STRING(63) S)
%EXTERNALROUTINESPEC MONITOR(%STRING(63) S)
%EXTERNALROUTINESPEC PON(%RECORDNAME P)  
!-----------------------------------------------------------------------
%EXTERNALROUTINE SEMAPHORE(%RECORDNAME P)
%RECORDSPEC P(PARMF)
%OWNBYTEINTEGERARRAY HASH(0:31)=0(32)
! ARRAY DIMENSIONS ASSUME ONLY 'MAXPROCS' SEMAPHORES IN USE AT ONCE
%OWNINTEGERARRAY CELL(1:128)=0(128)    ;  ! (1:MAXPROCS)
%OWNBYTEINTEGERARRAY LINK(1:128)=2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,
  17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,
  40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,
  63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,
  85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,
  105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,
  121,122,123,124,125,126,127,128,1

==== ecsc04/cgwwpps.txt ====
 1991 WIRES

A& :  0 0 0 0 0 0 1 2 2 2 2 2 1 2 0 2 2 2 1 2 2 2 2 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1

B& :  0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 2 2 1 2 2 2 2 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 2 1 1 1 1 1 1

C& :  0 0 0 0 0 0 1 0 0 0 2 0 2 0 2 0 0 2 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 0 2 1 1

D& :  0 0 0 0 0 0 1 0 0 0 2 0 2 0 2 0 0 2 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 0 2 1 1

E& :  0 0 0 0 0 0 1 0 0 0 2 0 2 0 2 0 0 2 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 0 2 1 1

F& :  0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 2 0 0 1 1 1 1 1 2 0 0 0 0 0 0 0 0

AA :   2 1 1 1 2 1 1 1 1 0 1 2 2 2 2 1 2 1 2 1 1 1 1 1 1 1 1 1 2 2 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

AB :   1 1 1 1 1 2 1 1 1 1 1 2 2 2 2 2 2 1 1 2 1 2 1 1 1 1 1 2 2 2 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

AC :   2 2 1 1 2 1 1 1 2 0 2 2 2 2 2 1 2 1 2 1 1 2 2 2 2 1 1 1 1 2 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

AD :   1 2 1 2 1 2 1 1 1 2 1 2 2 2 2 1 2 2 1 2 2 2 2 2 2 2 1 2 1 1 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

==== ecsc04/a68s.txt ====

%EXTERNALROUTINE A68(%STRING(63) SRCE)
%STRING(15) OBJ,LIST
%EXTERNALROUTINESPEC DEFINE(%STRING(63) S)
%CONSTINTEGER IHASH=59
%CONSTBYTEINTEGERARRAY HILINK(0: 58)= %C
   2, 0, 5, 8, 10, 11, 12, 15, 0, 17, 21, 23, 26, 30, 32, 36,
   0, 38, 41, 0, 42, 46, 50, 52, 53, 55, 57, 58, 0, 0, 60, 0,
   62, 66, 69, 73, 76, 0, 77, 0, 79, 82, 85, 88, 0, 0, 0, 91,
   92, 93, 95, 97, 100, 0, 102, 107, 110, 111, 113
%CONSTSTRING(4)%ARRAY INSTR(1:113)= %C
  "PULB","BVS","BHI","SBA","DECA","DECB","CLRA","BLE","DES",
  "CLRB","ANDA","ANDB","NOP","TAB","ORG","DEX","BITA","TPA","BSR",
  "TSTA","BITB","TSTB","FDB","SEV","INS","INCA","PSHA","JMP","INCB",
  "STS","LSRA","PSHB","LSRB","BPL","WAI","NEG","INX","BLS","STX",
  "TST","BLT","COM","NEGA","TAP","CLC","BEQ","TSX","TBA","SBCA",
  "NEGB","BMI","SBCB","ROL","RORA","ADCA","RORB","ADCB","CLI","LDS",
  "ROR","SUBA","LDAA","LSR","ORAA","SUBB","LDAB","BCC","ASRA","ORAB",
  "ASRB","END","BNE","LDX","CBA","CLR","BRA","TXS","DAA","CLV",
  "BGE","EQU","ADDA","COMA","ADDB","RTI","BVC","ASL","COMB","CPX",
  "ROLA","DEC","ROLB","ASR","BCS","CMPA","SWI","CMPB","SEC","RTS",

==== ecsc04/snoopys.txt ====

%EXTERNALROUTINE SNOOPY(%STRING(63) FILE)
%INTEGER I,J,K
%ROUTINESPEC ROWOUT(%INTEGERARRAYNAME L)
%OWNINTEGERARRAY L1(32:95)=X'00',X'18',X'36',X'14',X'3E',X'71',X'18',
   X'18',X'0C',X'18',X'00',X'00',X'00',X'00',X'00',X'01',X'3E',X'0C',
   X'3E',X'7F',X'60',X'7F',X'3E',X'7F',X'3E',X'3E',X'00',X'00',X'04',
   X'00',X'20',X'3C',X'3E',X'08',X'7E',X'3E',X'7E',X'7F',
   X'7F',X'3E',X'63',X'1E',X'07',X'63',X'60',X'41',X'43',X'3E',X'7E',
   X'3E',X'7E',X'3E',X'3F',X'63',X'63',X'63',X'41',X'42',X'7F',
   X'3C',X'00',X'3C',X'08',X'00'
%OWNINTEGERARRAY L2(32:95)=X'00',X'18',X'36',X'14',X'49',X'52',X'24',
   X'18',X'18',X'0C',X'22',X'08',X'00',X'00',X'00',X'02',X'63',X'1C',
   X'43',X'06',X'60',X'60',X'63',X'03',X'63',X'63',X'00',X'18',X'08',
   X'00',X'10',X'66',X'41',X'14',X'63',X'63',X'63',X'60',
   X'60',X'63',X'63',X'0C',X'03',X'66',X'60',X'63',X'63',X'63',X'63',
   X'63',X'63',X'63',X'0C',X'63',X'63',X'63',X'63',X'42',X'02',
   X'30',X'00',X'0C',X'1C',X'00'
%OWNINTEGERARRAY L3(32:95)=X'00',X'18',X'36',X'7F',X'48',X'74',X'18',
   X'18',X'18',X'0C',X'14',X'08',X'00',X'00',X'00',X'04',X'63',X'0C',
   X'06',X'0C',X'6C',X'60',X'60',X'06',X'63',X'63',X'18',X'18',X'10',

==== ecsc04/a68t.txt ====

JOE STAA FRED
FRED EQU $123
 ORG 234
HARRY EQU FRED+*
 EQU 999
ALEX EQU SID
 ORG WHO
* COMMENT
 STAB FRED WHAT WHAT WHAT ?
 ZYX
 BRA FRED
 BEQ *+99
 CLRA
 TAB
 ADDA JOE
 STAA FRED
 ADDB JOE,X
PETE EQU $ABCD
 ADDA PETE
 FCB 300

==== ecsc04/stables.txt ====
!***************************************************************************
%routinespec stable(%string(255) filespec,%integer diags)
%routinespec table(%string(255) filespec)
%routinespec table with diags(%string(255) filespec)
!***************************************************************************
!--------------------------------------------------------------------------!
!  sTABLE: Routine to Convert Boolean Equations to TRUTH Table             !
!                                                                          !
!   This routine is called by two ILAP utilities : TABLE as ILAP routine,  !
! TABLE as a program. The program version gives more feedback to the user, !
! while the external routine only gives feedback on a fatal error.         !
!                                                                          !
! George A. McCaskill 20th August 1982                                     !
!--------------------------------------------------------------------------!
!%include "$ilap:.inc"
%constinteger true=0,false=1
!%include "plautils.inc"
%externalroutinespec fault %alias "ILAPDISASTER" (%string(255) s)
!*******************************************************************************
! specs for external routines in file IMPIOCPI
%externalroutinespec openinput(%integer stream,%string(100) filename)

==== ecsc04/rufc.txt ====



                          O
                        DD
                       D  D
                      O    OO
                       D   O D
                        D O   DD
                        OO        D  OOOO
                        D     9  D  OO   O
       MMM             D      9 OOOOO     O
      MMMMM         MMM D       OOOO
     MM   MM     MOO           D   OO     O
    MM     MM   M OO          D     OOO   O
   MM      MMM M  OO         D       OOO   OO
  MM        MMM   OO        D          OOOOO
      MMMMMMM     OO       D
    MMMMMMMMM     OO      D
   MMM       D    OO     D
   MM       D     OO    D

==== ecsc04/csd083ds.txt ====

%EXTERNALREALFN DISTANCE(%STRING(8) NAM1,%INTEGER ROW1,COL1,PIN1,NOP1,%C
  %REAL X1,Y1,%STRING(8) NAM2,%INTEGER ROW2,COL2,PIN2,NOP2,%REAL X2,Y2)
  %RESULT=SQRT((X1-X2)**2+(Y1-Y2)**2)
%END
%EXTERNALROUTINE POSITION(%STRING(8) NAM,%INTEGER ROW,COL,PIN,NOP, %C
  %REALNAME X,Y)
%CONSTREALARRAY CX(1:7)=0.6,1.5,2.4,3.3,4.2,5.1,6.0
%CONSTREALARRAY CY(1:8)=4.8,4.2,3.6,3.0,2.5,1.6,1.0,0.4
  %IF NAM="C" %THEN %START
    %IF PIN<=NOP//2 %THEN %START
      X=CX(COL)+PIN/10
      Y=CY(ROW)
    %FINISH %ELSE %START
      X=CX(COL)+(NOP-PIN+1)/10
      %IF NOP>=24 %THEN Y=CY(ROW)-0.6 %ELSE Y=CY(ROW)-0.3
    %FINISH
    %RETURN
  %FINISH
  %IF NAM="A1" %THEN X=0 %AND Y=5.0-ROW/8 %AND %RETURN
  %IF NAM="B1" %THEN X=0 %AND Y=2.25-ROW/8 %AND %RETURN

==== ecsc04/figs.txt ====
$A NLS=1
$A TAB=0,3,6,9,12,15,18,21,24,27,30
$B0
%SEMAPHORE MANAGERSEM
$B0
%CYCLING %SEMAPHORE MUTEX1, MUTEX3,R,W
$B2
%BEGIN %PROCESS
$B0
%CAPABILITY .PROCESS
$B0
%CYCLING %SEMAPHORE THE STATUS
$B0
%CYCLE
$B0
$A INDENT=2
READER ENTRY
$B0
%CYCLE
$A INDENT=3
.PROCESS = NEXT PROCESS( .PROCESS .LIST)

==== ecsc04/max86.txt ====

%ELEMENTDEF I8086(%INPUT RESET,READY,CLK,NMI,MX,TEST,XGND,GT0,GT1,INTR,&
  %INOUTARRAY AD(0:15),%OUTPUT BHE,%OUTPUTARRAY S(0:2))
%ELEMENTDEF I8284(%INPUT RES,AEN1,AEN2,RDY1,RDY2,CSYNC,FC, &
  %OUTPUT READY,CLK,PCLK,OSC,RESET,%INOUT X1,X2)
%ELEMENTDEF I8288(%INPUT CLK,AEN,CEN,IOB,%INPUTARRAY S(0:2), &
  %OUTPUT ALE,DEN,DTR,AIOWC,IORC,AMWC,MRDC,INTA)
%ELEMENTDEF I8259(%INPUT CS,RD,WR,INTA,A0,%INPUTARRAY IR(0:7), &
  %OUTPUT INT,EN,%INOUTARRAY D(0:7))
%ELEMENTDEF I8282(%INPUT STB,OE,%INPUTARRAY DI(0:7), &
  %OUTPUTARRAY DO(0:7))
%ELEMENTDEF I8286(%INPUT T,OE,%INOUTARRAY A,B(0:7))
%ELEMENTDEF I2616(%INPUT CE,OE,VPP,%INPUTARRAY A(0:10), &
  %OUTPUTARRAY O(0:7))
%ELEMENTDEF I2142(%INPUT CS1,CS2,WE,OD,%INPUTARRAY A(0:9), &
  %INOUTARRAY IO(1:4))
%ELEMENTDEF I8205(%INPUT E1,E2,E3,A0,A1,A2,%OUTPUTARRAY O(0:7))
%ELEMENTDEF I8251(%INPUT CLK,RESET,CD,WR,RD,CS,TXC,RXC,CTS,RXD, &
  %INPUTARRAY D(0:7),%OUTPUT TXD)
%ELEMENTDEF LDRIV(%INPUT A,B,C,D,VP12,VM12,%OUTPUT Y)
%ELEMENTDEF LREC(%INPUT EIA,MILP,MILM,HYST,STR,%OUTPUT Y)

==== ecsc04/skimps.txt ====

%BEGIN
%ROUTINESPEC READ SYM(%INTEGERNAME I)
%ROUTINESPEC READ PS
%ROUTINESPEC READ LINE
%INTEGERFNSPEC COMPARE(%INTEGER PSP)
%ROUTINESPEC SS
%ROUTINESPEC FAULT(%INTEGER A,B,C,D)
%ROUTINESPEC OUT(%INTEGER I)
%INTEGERFNSPEC CHNEXT
%INTEGERFNSPEC NEWCELL
%INTEGERFNSPEC RETURN CELL(%INTEGER I)
%ROUTINESPEC PRINT NAME(%INTEGER I)
%ROUTINESPEC PRINT LABEL(%INTEGER I)
%ROUTINESPEC SHOW TAGS
%INTEGER I,J,AP,APP,TP,ASL,BTN,CTN,CHP,FAULTS,NL,LEVEL,CA,COMP,SCF,PARS
%INTEGERARRAY PS(-1000:-620)                 ;! REDUCED PHRASE STRUCTURE
%INTEGERARRAY CHL,TAGL(0:255)
%INTEGERARRAY TAG,LINK(1:1000)               ;! TAGS LISTS
%INTEGERARRAY A,PN,NP(1:200)                 ;! ANALYSIS RECORD
%INTEGERARRAY T(1:300)                       ;! SOURCE TEXT

==== ecsc04/max86ww.txt ====

%ELEMENTDEF I8086(%INPUT RESET,READY,CLK,NMI,MX,TEST,XGND,GT0,GT1,INTR,&
  %INOUTARRAY AD(0:15),%OUTPUT GND,BHE,%OUTPUTARRAY S(0:2))
%ELEMENTDEF I8284(%INPUT RES,AEN1,AEN2,RDY1,RDY2,CSYNC,FC, &
  %OUTPUT GND,READY,CLK,PCLK,OSC,RESET,%INOUT X1,X2)
%ELEMENTDEF I8288(%INPUT CLK,AEN,CEN,IOB,%INPUTARRAY S(0:2), &
  %OUTPUT GND,ALE,DEN,DTR,AIOWC,IORC,AMWC,MRDC,INTA)
%ELEMENTDEF I8259(%INPUT CS,RD,WR,INTA,A0,%INPUTARRAY IR(0:7), &
  %OUTPUT GND,INT,EN,%INOUTARRAY D(0:7))
%ELEMENTDEF I8282(%INPUT STB,OE,%INPUTARRAY DI(0:7), &
  %OUTPUT GND,%OUTPUTARRAY DO(0:7))
%ELEMENTDEF I8286(%INPUT T,OE,%INOUTARRAY A,B(0:7))
%ELEMENTDEF I2616(%INPUT CE,OE,VPP,%INPUTARRAY A(0:10), &
  %OUTPUT VCC,%OUTPUTARRAY O(0:7))
%ELEMENTDEF I2142(%INPUT CS1,CS2,WE,OD,%INPUTARRAY A(0:9), &
  %INOUTARRAY IO(1:4))
%ELEMENTDEF I8205(%INPUT E1,E2,E3,A0,A1,A2,%OUTPUT GND, &
  %OUTPUTARRAY O(0:7))
%ELEMENTDEF I8251(%INPUT CLK,RESET,CD,WR,RD,CS,TXC,RXC,CTS,RXD, &
  %INPUTARRAY D(0:7),%OUTPUT GND,TXD)
%ELEMENTDEF LDRIV(%INPUT A,B,C,D,VP12,VM12,%OUTPUT Y)

==== ecsc04/ptests.txt ====
program test(input,output);
imports r123 from r123;
var i:long;
begin
  r1(1234);
  i:=999 ; r2(i) ; writeln(i) ;
  r3('hi there!')
end.

==== ecsc04/three.txt ====
$A MARK=1
$A PAGENO=102

$A LEFT=0; LINE=69; PAGE=57
$A TOP=4; BOTTOM=9
$A NLS=2
$A TAB=1,7,13,19,25
$B5
$L1 CM
CHAPTER 3
$B5
$L1 CM
A FUNCTIONAL CAPABILITY SYSTEM.
$N
$L1 C
3.0.- INTRODUCTION.
$P3
@THE KERNEL ATTEMPTS TO PROVIDE A SYSTEM WIDE PROTECTION AND NAMING
MECHANISM BY OFFERING OPERATIONS TO CREATE CAPABILITIES FOR EXTENDED
TYPES OF OBJECTS. @HOWEVER, A COMMON PROPERTY OF CAPABILITY SYSTEMS
IS THE RELATIVE INDEPENDENCY OF THE DEFINITION OF A TYPE WITH RESPECT

==== ecsc04/four.txt ====
$A MARK=1
$A PAGENO=144


$A LEFT=0; LINE=69; PAGE=57
$A TOP=4; BOTTOM=9
$A NLS=2
$A TAB=1,7,13,19,25
$B5
$L1   CM
CHAPTER 4
$B5
$L1 CM
PROTECTED INTER-PROCESS SYNCHRONISATION.
$N
$L1 C
4.0- INTRODUCTION.
$P3
@THE COMMUNICATION BETWEEN PROCESSES CAN TAKE PLACE VIA THE
INTERCHANGE OF MESSAGES DEPOSITED WITHIN SHARED OPERAND OBJECTS. @THE
SYNCHRONISATION ACTIVITIES REQUIRED TO EFFECT THE COMMUNICATIONS CAN

==== ecsc04/drcs.txt ====
!*********************************************************************
! spec for routine in this file DRC
%routinespec check(%string(31) s,%byteintegerarrayname data, %c
  %shortintegerarrayname tranids,%integer xmax,ymax,xorigin,yorigin)
!*********************************************************************
%constant %string (2) blue  ="M", metal    ="M",  nm="M"
%constant %string (2) green ="D", diffusion="D",  nd="D"
%constant %string (2) red   ="P", poly     ="P",  np="P"
%constant %string (2)             implant  ="I",  ni="I"
%constant %string (2)             glass    ="G",  ng="G"
%constant %string (2)             contact  ="C",  nc="C"
%constant %string (2)             buried   ="B",  nb="B"

%constant %integer true = 0,   false = 1

%external %routine %spec first cell number (%integer num)
%external %routine %spec set lambda (%integer l)
%external %string (2) %fn %spec contacts
%external %integer %map %spec ILAP control
%constant %integer       no warnings = 1
%constant %integer    monitor endsym = 2

==== ecsc04/routeincs.txt ====
!*******************************************************************************1
%recordformat port(%integer x,w)
%integerfnspec route(%string(31) name,%record(port)%arrayname a,b,
  %integer n,%string(4) lay,%integer twid,tsep,sepn)
%routinespec croute(%string(31) name,%record(port)%arrayname a,b,
  %integer n,ya,xb,%string(4) lay,%integer twid,tsep)
!*******************************************************************************
%constant %string (2) blue  ="M", metal    ="M",  nm="M"
%constant %string (2) green ="D", diffusion="D",  nd="D"
%constant %string (2) red   ="P", poly     ="P",  np="P"
%constant %string (2)             implant  ="I",  ni="I"
%constant %string (2)             glass    ="G",  ng="G"
%constant %string (2)             contact  ="C",  nc="C"
%constant %string (2)             buried   ="B",  nb="B"

%constant %integer true = 0,   false = 1

%external %integer %map %spec buried contacts
%external %routine %spec end symbol
%external %routine %spec symbol (%string (31) name)
%external %routine %spec box     %alias "ILAPBOX"     (%integer xl, yl, xu, yu)

==== ecsc04/iskimpps.txt ====


B<NAME>=1
B<CNST>=2
B<ASSI>=3
B<ASSR>=4
B<ASSX>=5

P<SS>=  <UI><SEP>,
        '%IF'<SC><COND>'%THEN'<UI><UIS><ELSE><SEP>,
        <CNST>':'<SS>,
        '%FINISH'<ELSE><SEP>,
        '%INTEGER'<ARR><SEP>,
        <RT><SPEC><NAME><FPP><SEP>,
        '%END'<SEP>,
        '%BEGIN'<SEP>,
        '%ENDOFPROGRAM'<SEP>,
        '*'<ASSI><FORM><SEP>,
        '*'<+-\><CNST><BASE><SEP>,
        '**'<CNST><SEP>,
        <SEP>;

==== ecsc04/padincs.txt ====
!*******************************************************************************
! specs inserted in same order as in perqimports file
%routinespec padvdd
%routinespec padgnd
%routinespec padin(%integername padinx)
%routinespec padout(%integername padoutx)
%routinespec padclout(%integername padcloutx,padcloutclx)
%routinespec padinout(%integername padinoutinx,padinoutoutx,padinoutenx)
!*******************************************************************************
%constant %string (2) blue  ="M", metal    ="M",  nm="M"
%constant %string (2) green ="D", diffusion="D",  nd="D"
%constant %string (2) red   ="P", poly     ="P",  np="P"
%constant %string (2)             implant  ="I",  ni="I"
%constant %string (2)             glass    ="G",  ng="G"
%constant %string (2)             contact  ="C",  nc="C"
%constant %string (2)             buried   ="B",  nb="B"

%constant %integer true = 0,   false = 1

%external %integer %map %spec buried contacts
%external %routine %spec end symbol

==== ecsc04/annotincs.txt ====
!*******************************************************************************
%routine %spec crest (%integer xsize, ysize)
%routine %spec text %alias "ILAPTEXT" (%string (31) name,
   %string (255) text, %integer xsize, ysize)
!*******************************************************************************
! Declarations for using ILAP included.

%constant %string (2) blue  ="M", metal    ="M",  nm="M"
%constant %string (2) green ="D", diffusion="D",  nd="D"
%constant %string (2) red   ="P", poly     ="P",  np="P"
%constant %string (2)             implant  ="I",  ni="I"
%constant %string (2)             glass    ="G",  ng="G"
%constant %string (2)             contact  ="C",  nc="C"
%constant %string (2)             buried   ="B",  nb="B"

%constant %integer true = 0,   false = 1

%external %routine %spec first cell number (%integer num)
%external %routine %spec set lambda (%integer l)
%external %integer %map %spec buried contacts
%external %integer %map %spec ILAP control

==== ecsc04/splstemp.txt ====

%EXTERNALROUTINE SPL
%ROUTINESPEC READ LINE
%INTEGERFNSPEC COMPARE(%INTEGER PSP)
%ROUTINESPEC SS
%ROUTINESPEC OUT(%INTEGER N)
%CONSTINTEGERARRAY PS(-1000:-906)= %C
  M'SS',-993,'X',-977,'=',-969,10,-987,'-','>',-957,-930,10,
  -983,-957,':',-1000,-981,'!',-978,'E',10,0,M'INDX',-972,'(',
  -969,')',-970,-957,0,M'EXPR',-965,-964,-946,0,M'OPD',-960,'X',
  -977,-958,-957,0,'N',-953,M'DIG',-952,0,M'RDIG',-948,M'DIG',
  -952,-947,0,M'REXP',-942,-940,-964,-941,0,M'OP',-937,'+',-935,
  '-',-933,'*',-931,'/',0,M'IF',-923,'I','F',-964,-921,-964,
  -922,0,M'COMP',-918,'=',-916,'#',-913,'>','=',-911,'>',-908,
  '<','=',-906,'<',0
%INTEGERARRAY A,PN,T(1:100)
%INTEGERARRAY CT,BTLAB,BTAD(0:100)       ;! CONSTANT & BRANCH  TABLES
%INTEGER I,J,TP,AP,CA,CTP,BTP
CA=0
CT(0)=0        ;! HOLE FOR 'X' BASE
CTP=1

==== ecsc04/figs.html ====
<html><head></head><body><pre>


<em>semaphore</em> managersem
<em>cycling</em> <em>semaphore</em> mutex1, mutex3,r,w


<em>begin</em> <em>process</em>
<em>capability</em> PROCESS
<em>cycling</em> <em>semaphore</em> the status
<em>cycle</em>
  reader entry
  <em>cycle</em>
     PROCESS = next process( PROCESS LIST)
     <em>if</em> PROCESS # NULL <em>then</em> <em>start</em>
        <em></em>p (the status)
           <em>if</em> PROCESS_STATUS = 'ready' <em>then</em> <em>start</em>
              PROCESS_STATUS = 'running'
           <em>finish</em> <em>else</em> <em>start</em>
              PROCESS = DUMMY
           <em>finish</em>

==== ecsc04/plaincs.txt ====
!*******************************************************************************
%routine %spec pla (%string (31) name,%integer ins,outs,feeds,prods,
  %integerarrayname and,or,%integername phi1y,phi2y, %integerarrayname inx,outx)
!*******************************************************************************
%constant %string (2) blue  ="M", metal    ="M",  nm="M"
%constant %string (2) green ="D", diffusion="D",  nd="D"
%constant %string (2) red   ="P", poly     ="P",  np="P"
%constant %string (2)             implant  ="I",  ni="I"
%constant %string (2)             glass    ="G",  ng="G"
%constant %string (2)             contact  ="C",  nc="C"
%constant %string (2)             buried   ="B",  nb="B"

%constant %integer true = 0,   false = 1

%external %integer %map %spec buried contacts
%external %routine %spec end symbol
%external %routine %spec symbol (%string (31) name)
%external %routine %spec box     %alias "ILAPBOX"     (%integer xl, yl, xu, yu)
%external %routine %spec polygon %alias "ILAPPOLYGON" (%real x, y)
%external %routine %spec wirex   (%integer x, y, l)
%external %routine %spec wirey   (%integer x, y, l)

==== ecsc04/ilaps_ilap4.txt ====
%const %string (31) VERSION = "Imp LAP Version 4.1 17-Sep-82"
!******************************************************************************
!******************************************************************************
!***                                                                        ***
!***                        This is ILAP                                    ***
!***                             or                                         ***
!***                          Imp LAP                                       ***
!***                                                                        ***
!******************************************************************************
!******************************************************************************
! 
! 
! INTRODUCTION:
! 
!    ILAP is a  series  of  external  Imp77  procedures  which  allow  the
! creation  of  syntactically correct CIF2.0 representations of integrated
! circuit layouts.   By embedding a graphics capability into a high  level
! language,  the  use  of  control structures and parameterised symbols is
! made available to the designer.
! 
! 

==== ecsc04/dcapdoc.txt ====

$A INVERT=0; JUST=1; UNDSH='|'; PAGENO=1; UND='~'; CAPSH='|'; CAPSHO='|'
$A MARK=2
$L5UM


DCAP : David's Circuit Assignment Program


$P
DCAP provides a method of description of circuits, the assignment of
functional elements to integrated circuit chips and their layout on
circuit boards. It creates data structures corresponding to the
descriptions in a file which can then be used for further processing.
At the present state of development of the system, this
consists of producing a wire-wrap schedule for the circuit but
it is also intended that it should be used for other stages in the
design and construction process such as printed circuit board design,
production of circuit schematics by plotter etc.
$P
Rather than use a description of the circuit in terms of functional

==== ecsc04/dcapas.txt ====

%EXTERNALROUTINE DCAPA(%STRING(63) PAR)
%ROUTINESPEC READ LINE
%INTEGERFNSPEC COMPARE(%INTEGER PSP)
%ROUTINESPEC SS
%ROUTINESPEC FILL(%SHORTINTEGERARRAYNAME D,%INTEGER FROM,TO,VAL)
%SHORTINTEGERARRAYFORMAT SF(0:32759)
%SHORTINTEGERARRAYNAME S,ED,AD,BD,CD
%SHORTINTEGERNAME SP,EDP,ADP,BDP
%SHORTINTEGERARRAY A,NP(1:1004)
%BYTEINTEGERARRAY T(1:1000)
%SHORTINTEGERARRAY IV(0:72)   ;! ALLOWS 8 NESTING LEVELS
%SHORTINTEGER IVP
%INTEGER AP,TP,I,J,DEF,FIRSTINFO,FAULTS,ELNUM,DUMMY,DCAPFAD
%OWNINTEGER LASTLINK=11
%EXTERNALROUTINESPEC DEFINE(%STRING(63) S)
%SYSTEMROUTINESPEC OUTFILE(%STRING(15) S,%INTEGER LENGTH,MAX,PROT, %C
 %INTEGERNAME CONAD,FLAG)
%STRING(63) P,Q,R,TAPE
%OWNSHORTINTEGERARRAY PS(-1000:-518)= %C
-997,-933,-522,-993,-678,-811,-522,-988,   1,  58,-852,-522,

==== ecsc04/impiospecs.txt ====
!*******************************************************************************
! specs for external routines in file IMPIOCPI
%externalroutinespec openinput(%integer stream,%string(100) filename)
%externalintegerfnspec instream
%externalstring(100)%fnspec infilename(%integer stream)
%externalroutinespec closeinput(%integer stream)
%externalroutinespec openoutput(%integer stream,%string(100) filename)
%externalintegerfnspec outstream
%externalstring(100)%fnspec outfilename(%integer stream)
%externalroutinespec closeoutput(%integer stream)
!*******************************************************************************

==== ecsc04/ilaps_route.txt ====
%include "ilap_inc"
%externalintegerfn route(%string(31) name,%record(port)%arrayname a,b,
  %integer n,%string(4) lay,%integer twid,tsep,sepn)
%externalstring(63)%fnspec itos(%integer n,p)
%external %routine %spec die %alias "ILAPDISASTER" (%string (255) mess)

%routine %spec fault (%string (255) mess)
%integerarray ap(1:n,1:n)
%integerarray apl(1:n)
%integer i,j,k,l,p,q,x,sep,tws,sx
  %for p=1,1,n %cycle
    %if a(p)_w<twid %then fault("A port ".itos(p,0)." too narrow")
    %if b(p)_w<twid %then fault("B port ".itos(p,0)." too narrow")
  %repeat
  %for p=1,1,n-1 %cycle
    %if a(p)_x+a(p)_w+tsep>a(p+1)_x %then fault("A ports ".itos(p,0). %c
      " and ".itos(p+1,0)." too close")
    %if b(p)_x+b(p)_w+tsep>b(p+1)_x %then fault("B ports ".itos(p,0). %c
      " and ".itos(p+1,0)." too close")
  %repeat
  tws=twid+tsep

==== ecsc04/hashs.txt ====

%EXTERNALROUTINE HASH(%STRING(63) S)
%EXTERNALROUTINESPEC DEFINE(%STRING(63) S)
%STRING(4)%ARRAY INSTR(1:171)
%BYTEINTEGERARRAY ITYPE(1:171)
%BYTEINTEGERARRAY ICODE(1:171)
%BYTEINTEGERARRAY ILINK(1:171)
%CONSTINTEGER HASHSIZE=63
%BYTEINTEGERARRAY HILINK(0:HASHSIZE)
%INTEGER I,J,K,L,TYPE,CODE
%STRING(15) T,U
%CONSTSTRING(1)%ARRAY H(0:15)="0","1","2","3","4","5","6","7",
  "8","9","A","B","C","D","E","F"
  S->T.(",").U
  DEFINE("STREAM01,".T)
  SELECT INPUT(1)
  DEFINE("STREAM02,".U)
  %CYCLE I=0,1,HASHSIZE
    HILINK(I)=0
  %REPEAT
  %CYCLE L=1,1,171

==== ecsc04/pins.txt ====
AA01	#2907 BUS REC/DRVR

AA0101	GND

AA0103	DTB0 H

AA0102$ RD0 H

AA0107	DTB1 H

AA0106	BDAL1 L

AA0105	NC

AA0104	BDAL0 L

AA0109	DRTB L

AA0108$ RD1 H

AA0110	GND

==== ecsc04/ilaptests.txt ====
%include "ilapincs"
%begin
  initialise("ilaptest")
  symbol("sym1")
    etpx("pd",1,2,3)
  endsymbol
  drcon
  symbol("sym2")
    dtdy("pu",4,5,6)
  endsymbol
%endofprogram

==== ecsc04/routes.txt ====
!*******************************************************************************1
%recordformat port(%integer x,w)
%integerfnspec route(%string(31) name,%record(port)%arrayname a,b,
  %integer n,%string(4) lay,%integer twid,tsep,sepn)
%routinespec croute(%string(31) name,%record(port)%arrayname a,b,
  %integer n,ya,xb,%string(4) lay,%integer twid,tsep)
!*******************************************************************************
%constant %string (2) blue  ="M", metal    ="M",  nm="M"
%constant %string (2) green ="D", diffusion="D",  nd="D"
%constant %string (2) red   ="P", poly     ="P",  np="P"
%constant %string (2)             implant  ="I",  ni="I"
%constant %string (2)             glass    ="G",  ng="G"
%constant %string (2)             contact  ="C",  nc="C"
%constant %string (2)             buried   ="B",  nb="B"

%constant %integer true = 0,   false = 1

%external %string (2) %fn %spec contacts
%external %routine %spec end symbol
%external %routine %spec symbol (%string (31) name)
%external %routine %spec box     %alias "ILAPBOX"     (%integer xl, yl, xu, yu)

==== ecsc04/xtalk.txt ====


Pascal Compiler IV.13 c6t-4      2/ 5/85                                              Page   1 


    1   0    0:d    1  { $L WORK:TTY.A.LIST.TEXT}
    2   0    0:d    1  {$S+} {SWAPPING MODE FOR MORE SYMBOL TABLE SPACE}
    3   0    0:d    1  
    4   2    1:d    1  PROGRAM TTY;
    5   2    1:d    1  
    6   2    1:d    1  {PROGRAM TO ALLOW MICRO TO ACT AS A TERMINAL TO A REMOTE}
    7   2    1:d    1  {AND TO TRANSFER FILES BETWEEN THE MICRO AND THE REMOTE }
    8   2    1:d    1  
    9   2    1:d    1  Uses 
   10   2    1:d    1  {-----------------------------------------------------------------------------}
   11   2    1:d    1              {TTY.UNIT.G - unit include file for general - 1-Feb-83 }
   12   2    1:d    1  {-----------------------------------------------------------------------------}
   13   2    1:d    1  
   14   2    1:d    1   {$U *system.library  } ScreenOps
   15   2    1:d    1  
   16   2    1:d    1  {-----------------------------------------------------------------------------}

==== ecsc04/pr123s.txt ====
module r123;
exports
procedure r1(i:integer);
procedure r2(var i:integer);
procedure r3(s:string[31]);
private
procedure r1(i:integer);
begin ; end.
procedure r2(var i:integer);
begin ; end.
procedure r3(s:string);
begin ; end.

==== ecsc04/splits.txt ====
%EXTERNALROUTINE SPLIT (%STRING(63) CMD)
!
!
!***************************************************
!*  SIMPLE PRECEDENCE LANGUAGE INTERACTIVE TESTER  *
!*                 S  P  L  I  T                   *
!*                                                 *
!*           NIGEL A CONLIFFE  JUNE 1974           *
!*                          OCTOBER 1975           *
!***************************************************
!
!
!
%CONSTSTRING (40) TITLE='S P L I T : V1 R4'
!
%RECORDFORMAT F1 (%STRING(20) NAME,%BYTEINTEGER TYPE)
%RECORDARRAY SYMTAB (-100:-1) (F1)  ;! SYMBOL TABLE
                                    ;! TYPE=0 FOR NON TERMINAL
                                    ;! TYPE=1 FOR TERMINAL
                                    ;! TYPE=2 FOR DISTINGUISHED SYMBOL
%INTEGERARRAY PS(1:1000)            ;! PHRASE STRUCTURE

==== ecsc04/annotates.txt ====
!*******************************************************************************
%routine %spec crest (%integer xsize, ysize)
%routine %spec text %alias "ILAPTEXT" (%string (31) name,
   %string (255) text, %integer xsize, ysize)
%routine %spec TEXT LAYER (%string (7) LAYER)
!*******************************************************************************
! Declarations for using ILAP included.

%constant %string (2) blue  ="M", metal    ="M",  nm="M"
%constant %string (2) green ="D", diffusion="D",  nd="D"
%constant %string (2) red   ="P", poly     ="P",  np="P"
%constant %string (2)             implant  ="I",  ni="I"
%constant %string (2)             glass    ="G",  ng="G"
%constant %string (2)             contact  ="C",  nc="C"
%constant %string (2)             buried   ="B",  nb="B"

%constant %integer true = 0,   false = 1

%external %routine %spec first cell number (%integer num)
%external %routine %spec set lambda (%integer l)
%external %string (2) %fn  %spec contacts

==== ecsc04/xplas.txt ====
!***********************************************************************
! specs for externalroutines in this file
%routine %spec tpla ( %string (31) symbol name, %string (127) file,
          %integer %name phi1y, phi2y, %integer %array %name inx, outx )
%routine %spec epla ( %string(31) symbol name, %string(127) file,
          %integer %name phi1y, phi2y, %integer %array %name inx, outx )
%routine %spec rom ( %string(31) symbol name,  %string(127) file, 
          %integer %name phi1y, phi2y, %integer %array %name inx, outx )
!***********************************************************************
%external %routine %spec fault %alias "ILAPDISASTER" (%string (255) mess)
%externalroutinespec prompt(%string(63) s)
!*******************************************************************************
! specs for external routines in file IMPIOCPI
%externalroutinespec openinput(%integer stream,%string(100) filename)
%externalintegerfnspec instream
%externalstring(100)%fnspec infilename(%integer stream)
%externalroutinespec closeinput(%integer stream)
%externalroutinespec openoutput(%integer stream,%string(100) filename)
%externalintegerfnspec outstream
%externalstring(100)%fnspec outfilename(%integer stream)
%externalroutinespec closeoutput(%integer stream)

==== ecsc04/ilaps_contacts.txt ====
! The ILAP contact symbols

%include "ilap_inc"

! There now follows some tables which define the symbols -
! The max length of each contact symbol is -
%const %integer sym len = 4

%const %integer  subc start = 1
%const %integer    dm start = subc start + sym len * 5
%const %integer    pm start = dm start + sym len * 5
%const %integer  pdms start = pm start + sym len * 5
%const %integer  pdmn start = pdms start + sym len * 5
%const %integer  pdmw start = pdmn start + sym len * 5
%const %integer  pdme start = pdmw start + sym len * 5
%const %integer pdbns start = pdme start + sym len * 5
%const %integer pdbew start = pdbns start + sym len * 5
%const %integer  pdcn start = pdbew start + sym len * 5
%const %integer  pdcs start = pdcn start + sym len * 5
%const %integer  pdce start = pdcs start + sym len * 5
%const %integer  pdcw start = pdce start + sym len * 5

==== ecsc04/skimpais.txt ====

%CONTROL 0
%BEGIN
%INTEGERARRAY RMN,REG(0:15)
%INTEGERARRAY IMN(1:31)
%INTEGERARRAY LMN,LAD(1:20)
%INTEGERARRAY R(1:4000)
%INTEGERARRAY S(0:16383)
%INTEGER LP,RP,SP,I,J,K,L,M,N,F,MR,TR,ST,CT
%ROUTINESPEC READMN(%INTEGERNAME MN,NEXT)
%ROUTINESPEC FAULT(%INTEGER I,J,K,L)
%ROUTINESPEC OUT(%INTEGER I)
%ROUTINESPEC DUMP
%SWITCH INS(1:31)
%SWITCH IOR(0:10)
%EXTERNALROUTINESPEC DEFINE(%STRING(63) S)
     RMN(0)=M'BR0'  ;  RMN(1)=M'BR1'  ;  RMN(2)=M'BR2'
     RMN(3)=M'BR3'  ;  RMN(4)=M'BR4'  ;  RMN(5)=M'BR5'
     RMN(6)=M'BR6'  ;  RMN(7)=M'BR7'  ;  RMN(8)=M'BR8'
     RMN(9)=M'BR9'  ;  RMN(10)=M'BR10';  RMN(11)=M'BR11'
     RMN(12)=M'BR12';  RMN(13)=M'WK'  ;  RMN(14)=M'STP'

==== ecsc04/spice1.txt ====
.TITLE INVERTER + PASS TRANSISTOR + LOAD
MPD 4 3 0 2 MEHN L=6U W=12U
MPU 1 4 4 2 MDEP L=24U W=6U
MPA 4 5 6 2 MEHN L=6U W=36U
R1 6 7 2.5K
C1 7 0 0.9P
VDD 1 0 5
VBULK 2 0 -3
VIN 3 0 0
VPASS 5 0 PWL(0N 0V 5N 5V)
.TRAN 1N 100N
.PRINT TRAN V(4) V(5) V(6) V(7)
.PLOT TRAN V(4) V(5) V(6) V(7)
.MODEL MEHN NMOS (LEVEL=2 TOX=7E-8 NSUB=3.5E14
+NSS=-1.882E11 XJ=0.75U LD=0.8 NGATE=1E23 GAMMA=0.43
+NFS=1E11 UO=825 UCRIT=6E4 UEXP=0.25 UTRA=0.5
+CBD=12.33E-5 CBS=12.33E-5 JS=2E-5)
.MODEL MDEP NMOS (LEVEL=2 TOX=7E-8 NSUB=3.5E14
+NSS=7.72E11 NGATE=1E23 XJ=0.75U LD=0.8
+UO=825 CBD=12.33E-5 CBS=12.33E-5 JS=2E-5)
.END

==== ecsc04/spice2.txt ====
.TITLE INVERTER + PASS TRANSISTOR + LOAD
MPD 4 3 0 2 MEHN L=6U W=48U
MPU 1 4 4 2 MDEP L=6U W=6U
MPA 4 5 6 2 MEHN L=6U W=36U
R1 6 7 1.25K
C1 7 0 0.45P
R2 7 8 1.25K
C2 8 0 0.45P
VDD 1 0 5
VBULK 2 0 -3
VIN 3 0 0
VPASS 5 0 PWL(0N 0V 5N 5V)
.TRAN 5N 500N
.PRINT TRAN V(5) V(8)
.PLOT TRAN V(5) V(8)
.MODEL MEHN NMOS (LEVEL=2 TOX=7E-8 NSUB=3.5E14
+NSS=-1.882E11 XJ=0.75U LD=0.8 NGATE=1E23 GAMMA=0.43
+NFS=1E11 UO=825 UCRIT=6E4 UEXP=0.25 UTRA=0.5
+CBD=12.33E-5 CBS=12.33E-5 JS=2E-5)
.MODEL MDEP NMOS (LEVEL=2 TOX=7E-8 NSUB=3.5E14
+NSS=7.72E11 NGATE=1E23 XJ=0.75U LD=0.8

==== ecsc04/skimpas.txt ====

%EXTERNALINTEGERARRAY A(1:255)
! INITIALISATION FOR I/O ROUTINES
%EXTERNALBYTEINTEGERARRAY NAMED(1:1024)=10,'R','E','A','D','S','Y','M',
  'B','O','L',10,'N','E','X','T','S','Y','M','B','O','L',10,'S','K',
  'I','P','S','Y','M','B','O','L',11,'P','R','I','N','T','S','Y','M',
  'B','O','L',5,'S','P','A','C','E',6,'S','P','A','C','E','S',7,'N',
  'E','W','L','I','N','E',8,'N','E','W','L','I','N','E','S',7,'N','E',
  'W','P','A','G','E',4,'R','E','A','D',5,'W','R','I','T','E',0(930)
%EXTERNALINTEGERARRAY NAMEDLINK(0:255)=0,76,0(12),89,0(54),84,0(118),
  52,0(11),1,12,23,34,0(4),67,0(23),46,0(5),59,0(17)
%EXTERNALINTEGERARRAY TAGLINK(0:255)=0,13,0(12),16,0(54),14,0(118),8,
  0(11),1,3,4,5,0(4),11,0(23),7,0(5),10,0(17)
%EXTERNALINTEGERARRAY TAG(1:512)=X'40100001',X'01010002',X'41000002',
  X'40000003',X'40100004',X'01010002',X'40000005',X'40100006',
  X'01010002',X'40000007',X'40100008',X'01010002',X'40000009',
  X'4010000A',X'11010002',X'4020000B',X'01010002',X'01010003',0(494)
%EXTERNALINTEGERARRAY LINK(1:512)=2,0,0,0,6,0,0,9,0,0,12,0,0,
  15,0,17,18,0,0(494)
%EXTERNALINTEGER NAMEDP=95
%EXTERNALINTEGER TAGASL=19

==== ecsc04/spice3.txt ====
.TITLE INVERTER + PASS TRANSISTOR + LOAD
MPD 4 3 0 2 MEHN L=6U W=12U
MPU 1 4 4 2 MDEP L=24U W=6U
MPA 4 5 6 2 MEHN L=6U W=36U
R1 6 7 1.25K
C1 7 0 0.45P
R2 7 8 1.25K
C2 8 0 0.45P
VDD 1 0 5
VBULK 2 0 -3
VIN 3 0 PWL(0N 0V 225N 0V 230N 4V)
VPASS 5 0 PWL(0N 0V 5N 5V 195N 5V 200N 0V 245N 0V 250N 5V)
.TRAN 5N 500N
.PRINT TRAN V(5) V(8)
.PLOT TRAN V(5) V(8)
.MODEL MEHN NMOS (LEVEL=2 TOX=7E-8 NSUB=3.5E14
+NSS=-1.882E11 XJ=0.75U LD=0.8 NGATE=1E23 GAMMA=0.43
+NFS=1E11 UO=825 UCRIT=6E4 UEXP=0.25 UTRA=0.5
+CBD=12.33E-5 CBS=12.33E-5 JS=2E-5)
.MODEL MDEP NMOS (LEVEL=2 TOX=7E-8 NSUB=3.5E14
+NSS=7.72E11 NGATE=1E23 XJ=0.75U LD=0.8

==== ecsc04/hanoi#cif.txt ====
(CIF 2.0);
(Produced by Imp LAP V1.11 on 22-DEC-1980 at 15:06:51);
(FAB nMOS, Lambda = 300 hundredths of a micron);
DS 100 300 10;    9 gb;
L NM;
B 40 40 0 0;
L ND;
B 40 40 0 0;
L NC;
B 20 20 0 0;
DF;

DS 101 300 10;    9 rb;
L NM;
B 40 40 0 0;
L NP;
B 40 40 0 0;
L NC;
B 20 20 0 0;
DF;


==== ecsc04/skimpbs.txt ====

%EXTRINSICINTEGERARRAY A(1:255)
%EXTRINSICINTEGERARRAY TAGLINK(0:255)
%EXTRINSICINTEGERARRAY TAG(1:512)
%EXTRINSICINTEGERARRAY LINK(1:512)
!-----------------------------------------------------------------------
%EXTERNALROUTINESPEC EXPR(%INTEGER EXPRP)
%EXTERNALINTEGERFNSPEC COND(%INTEGER CONDP,TLABEL,FLABEL)
%EXTERNALSTRING(255)%FNSPEC STRINT(%INTEGER N,P)
%EXTERNALINTEGERFNSPEC GETWORK
%EXTERNALROUTINESPEC RETURNWORK(%INTEGER WORK)
%EXTERNALROUTINESPEC CLEARWORK
%EXTERNALINTEGERFNSPEC NEWTAG
%EXTERNALROUTINESPEC PUSHTAG(%INTEGER IDENT,FORM,TYPE,DIM,LEVEL,RAD)
%EXTERNALROUTINESPEC POPTAGS
%EXTERNALINTEGERFNSPEC GETLABEL(%INTEGER CONSTP)
%EXTERNALROUTINESPEC FILLLABEL(%INTEGER LABEL)
%EXTERNALINTEGERFNSPEC FILLBRANCH(%INTEGER LABEL)
%EXTERNALROUTINESPEC POPLABELS
%EXTERNALINTEGERFNSPEC NEXTPLABEL
%EXTERNALROUTINESPEC DUMP(%STRING(7) OPN,REG,BASE,%INTEGER DISP)

==== ecsc04/pg7879.txt ====

          




















==== ecsc04/two.txt ====
$A MARK=1
$A PAGENO=42


$A LEFT=0; LINE=69; PAGE=57
$A TOP=4; BOTTOM=9
$A NLS=2
$A TAB=1,7,13,19,25
$B5
$L1 CM
CHAPTER 2.
$B5
$L1 CM
OVERVIEW OF CAPABILITY BASED PROTECTION.
$N
2.0.- .INTRODUCTION.
$P2
@IN THE PRESENT WORK WE ARE CONCERNED WITH PROTECTION MECHANISMS
WITH SPECIAL EMPHASIS ON THE PROVISION OF A SUITABLE SKELETON FOR THE
SUPPORT OF USER AVAILABLE SYNCHRONISING PRIMITIVES.
$P

==== ecsc04/iotests.txt ====
!*******************************************************************************
! specs for external routines in file IMPIOCPI
%externalroutinespec openinput(%integer stream,%string(100) filename)
%externalintegerfnspec instream
%externalstring(100)%fnspec infilename(%integer stream)
%externalroutinespec closeinput(%integer stream)
%externalroutinespec openoutput(%integer stream,%string(100) filename)
%externalintegerfnspec outstream
%externalstring(100)%fnspec outfilename(%integer stream)
%externalroutinespec closeoutput(%integer stream)
!*******************************************************************************
%begin
%integer i
  openoutput(1,"out1")
  select output(1)
  %cycle
    read symbol(i)
    print symbol(i)
  %repeat %until i='*'
  close output(1)
  open input(2,"in2")

==== ecsc04/imcs.txt ====

* 05-039 R05 (+ JJ MODS)
* MODEL 70 MICRO-PROGRAM
* NOV 2, 1971
*
INITAL  DC     0                TRAP
        L      RAL,L(INTENT)    POWER UP
*
*
*PHASE 1 ENTRY POINT, INDEXED RS
AMODRS  A      MDR,MDR          FORM EFFECTIVE OPERAND
        D      PC+CLR           GO TO PHASE 2
*
*
*PHASE 1 ENTRY POINT, UNINDEXED RX
NMODRX  L      MAR,MDR          'A' TO MAR
        D      PC+MR+CLR        FETCH OP, GO TO PHASE 2
*
*
*PHASE 1 ENTRY POINT, INDEXED RX
AMODRX  A      MAR,MDR          'A+(X2)' TO MAR

==== ecsc04/skimpcs.txt ====

%EXTRINSICINTEGERARRAY A(1:255)
%EXTRINSICINTEGER CONDOPT
!-----------------------------------------------------------------------
%EXTERNALROUTINESPEC EXPR(%INTEGER EXPRP)
%EXTERNALROUTINESPEC DUMP(%STRING(7) OPN,REG,BASE,%INTEGER DISP)
%EXTERNALROUTINESPEC FILLLABEL(%INTEGER LABEL)
%EXTERNALINTEGERFNSPEC FILLBRANCH(%INTEGER LABEL)
%EXTERNALINTEGERFNSPEC NEXTPLABEL
%EXTERNALROUTINESPEC FAULT(%STRING(63) MESS)
!-----------------------------------------------------------------------
%EXTERNALINTEGER CONDFLAG=0
!-----------------------------------------------------------------------
%EXTERNALINTEGERFN COND(%INTEGER CONDP,TLABEL,FLABEL)
%ROUTINESPEC PROCESSCOND(%INTEGER CONDP)
%ROUTINESPEC TEST(%INTEGER LTESTP)
%ROUTINESPEC CONDREST(%INTEGER CONDRESTP)
%ROUTINESPEC STORE(%INTEGER TESTP,LEVEL,ANDOR)
%ROUTINESPEC SHOW(%STRING(7) AN,%INTEGERARRAYNAME A,%INTEGER P)
%CONSTSTRING(3)%ARRAY TRUE(1:6)="BZ","BNZ","BNG","BL","BNL","BG"
%CONSTSTRING(3)%ARRAY FALSE(1:6)="BNZ","BZ","BG","BNL","BL","BNG"

==== ecsc04/cs3os2.txt ====

                         Computer Science 3

                    Operating Systems Exercise 2


Task :  To simulate and monitor the behaviour of a single process using
        the EMAS scheduling strategies.  The time-slice reference string
        of a typical process is given in file ECSC04.MOND100.  A category
        table might be:

              1    2    3    4    5    6    7    8    9
pages        24   24   24   48   48   48   72   72   72
time-slices  10   20   40   10   20   40   10   20   40
priority      1    2    3    2    3    4    3    4    5
more pages    4    5    6    7    8    9    7    8    9
less pages    1    2    3    1    2    3    4    5    6
more time     2    3    3    5    6    6    8    9    9
less time     1    1    2    4    4    5    7    7    8

    Output monitoring information during the course of the simulation

==== ecsc04/skimpds.txt ====

%EXTRINSICINTEGERARRAY A(1:255)
%EXTRINSICBYTEINTEGERARRAY NAMED(1:1024)
%EXTRINSICINTEGERARRAY NAMEDLINK(0:255)
%EXTRINSICINTEGERARRAY TAGLINK(0:255)
%EXTRINSICINTEGERARRAY TAG(1:512)
%EXTRINSICINTEGERARRAY LINK(1:512)
%EXTRINSICINTEGERARRAY NEXTRAD(0:15)
%EXTRINSICSTRING(4)%ARRAY DISPLAY(0:15)
%EXTRINSICINTEGER TAGASL,LEVEL,TAGSOPT,NEXTCAD,NAMEDP
!-----------------------------------------------------------------------
%EXTERNALROUTINESPEC EXPR(%INTEGER EXPRP)
!-----------------------------------------------------------------------
%OWNINTEGERARRAY WORKLIST(0:15)=0(16)
%OWNINTEGERARRAY NAMELIST(0:15)=0(16)
%OWNINTEGERARRAY BRANCHLIST(0:15)=0(16)
%OWNINTEGERARRAY STARTLIST(0:15)=0(16)
%OWNINTEGERARRAY COT(0:127)
%OWNINTEGER COTP,FAULTS,PARAMS
!-----------------------------------------------------------------------
%EXTERNALSTRING(255)%FN STRINT(%INTEGER N,P)

==== ecsc04/dcapps.txt ====

P<SS>   = <LI><SEP>,
          <ELAS><DEF><SEP>,
          <NAME>':'<NIS><SEP>,
          '%CHIPDEF'<NAME>'('<CFP><RCFP>')='<CT><RCT><SEP>,
          '%BOARDDEF'<NAME>'('<BFP><RBFP>')<-%ASSEMBLY('<NAME>')'<SEP>,
          '%END'<%DEF><SEP>,
          <TEXT><SEP>;
P<LI>   = <TLST>'->'<TLST>,
          '%FOR'<NAME>'='<EXPR>','<EXPR>','<EXPR>'%DO['<LIN><RLIN>']',
          <NAME>'('<EXPL>','<EXPL>')<-%CHIP('<NAME>')<-'<ELT><RELT>,
          <NAME>'('<EXPL>')<-'<NAME><INDX>,
          '!'<TEXT>;
P<TLST> = <NIS><RNIS>,'%N','%GND','%VCC';
P<INDX> = '('<EXPR>')',;
P<SNAM> = '.'<NAME><INDX>,;
P<NIS>  = <NAME><INDX><SNAM>;
P<RNIS> = ','<NIS><RNIS>,;
P<ELT>  = <NAME><INDX><ENAM>,'%N';
P<ENAM> = '.'<NAME><INDX><ENAM>,;
P<RELT> = ','<ELT><RELT>,;

==== ecsc04/skimpes.txt ====

%EXTRINSICINTEGERARRAY A(1:255)
%EXTRINSICINTEGERARRAY TAGLINK(0:255)
%EXTRINSICINTEGERARRAY TAG(1:512)
%EXTRINSICSTRING(4)%ARRAY DISPLAY(0:15)
%EXTRINSICINTEGER LEVEL,CONDFLAG,EXPROPT
!-----------------------------------------------------------------------
%EXTERNALSTRING(255)%FNSPEC STRINT(%INTEGER N,P)
%EXTERNALSTRING(8)%FNSPEC STRHEX(%INTEGER N)
%EXTERNALROUTINESPEC FAULT(%STRING(63) S)
%EXTERNALSTRING(255)%FNSPEC NAME(%INTEGER IDENT)
%EXTERNALROUTINESPEC DUMP(%STRING(7) OPN,REG,BASE,%INTEGER DISP)
%EXTERNALINTEGERFNSPEC GETWORK
%EXTERNALROUTINESPEC RETURNWORK(%INTEGER WORK)
%EXTERNALROUTINESPEC PROC(%INTEGER AP)
%EXTERNALROUTINESPEC ARRAY(%INTEGER AP)
%EXTERNALINTEGERFNSPEC GETCOTI(%INTEGER CONST)
!-----------------------------------------------------------------------
%EXTERNALROUTINE EXPR(%INTEGER EXPRP)
%INTEGERFNSPEC TOTREE(%INTEGER EXPRP)
%ROUTINESPEC EVALUATE(%INTEGER NODEP)

==== ecsc04/csd083s.txt ====

%EXTERNALREALFN DISTANCE(%STRING(8) NAM1,%INTEGER ROW1,COL1,PIN1,NOP1,%C
  %REAL X1,Y1,%STRING(8) NAM2,%INTEGER ROW2,COL2,PIN2,NOP2,%REAL X2,Y2)
  %RESULT=SQRT((X1-X2)**2+(Y1-Y2)**2)
%END
%EXTERNALROUTINE POSITION(%STRING(8) NAM,%INTEGER ROW,COL,PIN,NOP, %C
  %REALNAME X,Y)
%CONSTREALARRAY CY(1:7)=-0.6,-1.5,-2.4,-3.3,-4.2,-5.1,-6.0
%CONSTREALARRAY CX(1:8)=4.8,4.2,3.6,3.0,2.5,1.6,1.0,0.4
  %IF NAM="C" %THEN %START
    %IF PIN<=NOP//2 %THEN %START
      Y=CY(COL)-PIN/10
      X=CX(ROW)
    %FINISH %ELSE %START
      Y=CY(COL)-(NOP-PIN+1)/10
      %IF NOP>=24 %THEN X=CX(ROW)-0.6 %ELSE X=CX(ROW)-0.3
    %FINISH
    %RETURN
  %FINISH
  %IF NAM="A1" %THEN Y=0 %AND X=5.0-ROW/8 %AND %RETURN
  %IF NAM="B1" %THEN Y=0 %AND X=2.25-ROW/8 %AND %RETURN

==== ecsc04/wires.txt ====
BE41    #25LS2519

......

DC33    #25LS2539

......

CG17    #25LS2569

CG27    #25LS2569

DA41    #25LS2569

......

AA01    #2907 BUS REC/DRVR

AC01    #2907 BUS REC/DRVR

AE01    #2907 BUS REC/DRVR

==== ecsc04/cgpins.txt ====

A&07  GND
A&08  GND
A&09  GND
A&10  GND
A&11  GND
A&12  GND
A&13  GND
A&14  GND
A&16  GND
A&17  GND
A&18  GND
A&19  GND
A&20  GND
A&21  GND
A&22  GND
A&23  GND
A&30  BDAL15 L
A&31  BDAL14 L
A&32  BDAL13 L
A&33  BDAL12 L

==== ecsc04/ilaps_pla.txt ====
%include "ilap_inc"
%external %routine pla (%string (31) name,%integer ins,outs,feeds,prods,
  %integerarrayname and,or,%integername phi1y,phi2y, %integerarrayname inx,outx)
%integer infs,outfs    ;! ins & outs plus feeds
%routinespec define plain
%integer plainmaxy,plainphi1y,plainvddy,plaingndy, plax, play
%routinespec define plaout
%integer plaoutmaxy,plaoutphi2y,plaoutvddy,plaoutgndy
%routinespec define pdp (%string(11)%name name,%integer n)
%routinespec define pup (%string(11)%name name,%integer l)
%integer plapupmaxy
%integer plainxb,plainyb      ;! bases of input buffers
%integer plaoutxb,plaoutyb    ;! bases of output buffers
%integer andpdpyb    ;! y-base of and-plane poly/diff/poly lines
%integer orpdpxb     ;! x-base of or-plane poly/diff/poly lines
%integer orpupyb    ;! y-base of or-plane pull-up pairs
%integer eprods,eoutfs    ;! prods and outfs evened up
%string(11) andpdp,orpdp    ;! for poly/diff/poly symbol names
%string(11) andpup,orpup    ;! for pullup+metal symbol names
%constinteger extragnd=8
%externalstring(11)%fnspec itos(%integer n,m)

==== ecsc04/contactincs.txt ====
!******************************************************************************
! specs in same order as in perqimports file
%routine %spec subc (%integer x, y)
%routine %spec dm (%integer x,y)
%routine %spec pm (%integer x,y)
%routine %spec pdms (%integer x, y)
%routine %spec pdmn (%integer x, y)
%routine %spec pdmw (%integer x, y)
%routine %spec pdme (%integer x, y)
%routine %spec pdbns (%integer x, y)
%routine %spec pdbew (%integer x, y)
%routine %spec pdcn (%integer x, y)
%routine %spec pdcs (%integer x, y)
%routine %spec pdce (%integer x, y)
%routine %spec pdcw (%integer x, y)
%routine %spec pdbn (%integer x, y)
%routine %spec pdbs (%integer x, y)
%routine %spec pdbe (%integer x, y)
%routine %spec pdbw (%integer x, y)
!******************************************************************************
%constant %string (2) blue  ="M", metal    ="M",  nm="M"

==== ecsc04/ilaps_inc.txt ====
! Declarations for using ILAP included.
%end %of %list

%constant %string (2) blue  ="M", metal    ="M",  nm="M"
%constant %string (2) green ="D", diffusion="D",  nd="D"
%constant %string (2) red   ="P", poly     ="P",  np="P"
%constant %string (2)             implant  ="I",  ni="I"
%constant %string (2)             glass    ="G",  ng="G"
%constant %string (2)             contact  ="C",  nc="C"
%constant %string (2)             buried   ="B",  nb="B"

%constant %integer true = 0,   false = 1

%external %routine %spec first cell number (%integer num)
%external %routine %spec set lambda (%real lambda)
%external %integer %map %spec buried contacts
%external %integer %map %spec ILAP control
%constant %integer       no warnings = 1
%constant %integer    monitor endsym = 2
%constant %integer        give times = 4
%constant %integer         merge cif = 8

==== ecsc04/results.txt ====

    USER BALLOT RESULTS
    ===================                     Votes Cast ( Rank in Column 

                                Medicine    Science     Social      Others      ERCC        Under-      Staff &     Overall
                               & Vet Med                Science                             grads        PGs

L1 : ADA                  :     11 (27)    127 (11)     18 (19)     33 (17)     81 (1)      55 (3)     215 (12)    270 (7) 
L2 : ALGOL 68             :     17 (20)     28 (34)      6 (33)      4 (40)     17 (29)      5 (28)     67 (37)     72 (36)
L3 : APL                  :     11 (28)     21 (38)      5 (34)     13 (35)     14 (31)      3 (34)     61 (38)     64 (38)
L4 : LISP                 :      1 (40)     32 (33)      6 (32)      1 (43)      2 (44)     13 (18)     29 (39)     42 (39)
L5 : UCSD PASCAL          :     35 (6)     134 (9)      31 (9)      59 (7)      35 (14)     36 (8)     258 (6)     294 (6) 
L6 : POP-2                :      0 (44)      5 (43)      0 (41)      7 (37)      6 (39)      2 (37)     16 (42)     18 (42)
L7 : PROLOG               :      0 (45)     15 (40)      0 (45)      3 (41)      4 (41)      5 (29)     17 (41)     22 (40)

S1 : BASIC                :     25 (10)     63 (23)     17 (21)     37 (13)      9 (36)     12 (21)    139 (23)    151 (23)
S2 : BCPL                 :      2 (36)      4 (44)      0 (40)      2 (42)      4 (42)      2 (35)     10 (44)     12 (43)
S3 : COBOL                :      2 (38)     28 (35)      3 (36)     28 (20)     25 (21)     17 (15)     69 (35)     86 (34)
S4 : LOGO                 :      1 (43)      6 (42)      0 (43)      0 (44)      0 (45)      4 (33)      3 (45)      7 (45)
S5 : PASCAL               :     17 (18)     96 (18)     39 (7)      36 (14)     22 (23)     37 (5)     173 (20)    210 (16)
S6 : SIMULA               :      2 (39)      7 (41)      0 (44)      0 (45)     11 (34)      1 (40)     19 (40)     20 (41)

==== ecsc04/arrays.txt ====
%end%of%list
    %const%byte%array tbox (0:63)=
           223,   139,   219,   138,   209,   128,   208,   128,
             1,   139,     1,   139,     0,   128,     0,   128,
             1,     0,     0,     0,     0,     0,     0,     0,
             1,   139,     1,   139,     0,   128,     0,   128,
             1,     0,     1,     0,   209,   128,   209,   128,
             0,     0,     0,     0,     0,   128,     0,   128,
             1,     0,     1,     0,   209,   128,   209,   128,
             1,   139,     1,   139,   209,   251,   209,   251
    %const%short%array fbox (0:8191)=
         -11809, -32629,      0,      0,      0,      0,      0,      0,
         -12031, -32768,      0,      0,      0,      0,      0,      0,
              1, -32629,      0,      0,      0,      0,      0,      0,
              0, -32768,      0,      0,      0,      0,      0,      0,
              0,      0,      0,      0,      0,      0,      0,      0,
              0,      0,      0,      0,      0,      0,      0,      0,
              0,      0,      0,      0,      0,      0,      0,      0,
              0,      0,      0,      0,      0,      0,      0,      0,
              0,      0,      0,      0,      0,      0,      0,      0,
              0,      0,      0,      0,      0,      0,      0,      0,

==== ecsc04/serc.txt ====
 $A just=1;invert=0;dcpi=12;und='~';undsh='~';cap='~';capsh='~';line=84
 $a left=6;page=63
 $L1uM
Proposal for a Research Grant
 $l9m

"Investigations into an Environment for the
Design of Very Large Scale Integrated Circuits"


D. J. Rees
December 1981


 $L1U
Introduction
 $P
Integrated circuit fabrication technology now allows very large scale designs to
be manufactured. This is the so-called VLSI technology that has provided a
quantitative leap in complexity from LSI. Integrated circuits have recently been
announced that contain many tens of thousands of transistors and the next decade

==== ecsc04/impiocps.txt ====
module impiocp;

exports
imports stream from stream;
 procedure ioinit;
 procedure openin(s:integer;var filename:pathname);
 function instrm:integer;
 procedure closein(s:integer);
 procedure openout(s:integer;var filename:pathname);
 function outstrm:integer;
 procedure closeout(s:integer);
 function iocpp(ep,n,x:integer):integer;
 exception streamerror(s:integer);
 exception openerror(s:integer);
 exception closeerror(s:integer);
 exception eoferror(s:integer);
 exception iocperror(ep:integer);
private

const
 maxstreams=3;

==== ecsc04/plas.txt ====
!*******************************************************************************
%routine %spec pla (%string (31) name,%integer ins,outs,feeds,prods,
  %integerarrayname and,or,%integername phi1y,phi2y, %integerarrayname inx,outx)
!*******************************************************************************
%constant %string (2) blue  ="M", metal    ="M",  nm="M"
%constant %string (2) green ="D", diffusion="D",  nd="D"
%constant %string (2) red   ="P", poly     ="P",  np="P"
%constant %string (2)             implant  ="I",  ni="I"
%constant %string (2)             glass    ="G",  ng="G"
%constant %string (2)             contact  ="C",  nc="C"
%constant %string (2)             buried   ="B",  nb="B"

%constant %integer true = 0,   false = 1

%external %string (2) %fn %spec  contacts
%external %routine %spec end symbol
%external %routine %spec symbol (%string (31) name)
%external %routine %spec box     %alias "ILAPBOX"     (%integer xl, yl, xu, yu)
%external %routine %spec polygon %alias "ILAPPOLYGON" (%real x, y)
%external %routine %spec wirex   (%integer x, y, l)
%external %routine %spec wirey   (%integer x, y, l)

==== ecsc04/ilaps_noca.txt ====
%external %routine analyse circuit (%integer a, b, c)
   select output (0)
   print string ("No Circuit analysis available at present")
   newline
   %stop
%end

%end %of %file

==== ecsc04/one.txt ====
$A MARK=1
$A PAGENO=12


$A LEFT=0; LINE=69; PAGE=57
$A TOP=4; BOTTOM=9
$A NLS=2
$A TAB=1,7,13,19,25
$A TAB=4,7,10,13,16,19
$B5
$L1 CM
CHAPTER 1
$B5
$L1 CM
THE SYNCHRONISATION PROBLEM.
$N
$L1 C
1.0.- INTRODUCTION.
$P3
@THE PURPOSE OF THIS CHAPTER IS TO ANALIZE THE INTRICACIES ARISING
IN THE DESIGN AND IMPLEMENTATION OF FREELY AVAILABLE @INTER-PROCESS

==== ecsc04/qlformats.txt ====
!* l2fm - code offset became rt 25/mar/82
!------------------------------------------------
!    PERQ OBJECT  RECORD FORMATS
!----------------------------------------------

!                          RED TAPE AT START OF CODE SEGMENT

%RECORDFORMAT CHFM (%HALFINTEGER DICT,RTS,LDATA,MAP)
%RECORD(CHFM) %NAME CH

!                         LDATA LISTHEADS

%HALFINTEGERARRAYFORMAT LDATAFM(0:10)
%HALFINTEGERARRAYNAME LDATA



!                    PROCEDURE ENTRY POINT

%RECORDFORMAT L1FM (%HALFINTEGER LINK,PROPS,RTNO,DIAGDISP,%STRING(31) NAME)


==== ecsc04/app.txt ====

$L1 CM
APPENDIX 1
$B5
$L1 C
A HIGHLY CONCURRENT SHEDULING ALGORITHM.
$P3
@AS MENTIONED IN SECTION 4.2, THE STATUS MARK OF A PROCESS IS
INTERPRETED AS:
$A INDENT=2
.PROCESS$_STATUS = 1 MEANS 'READY'
$B0
.PROCESS$_STATUS = 0 MEANS 'RUNNING'
$A INDENT=0
@FURTHER VALUES OF THE STATUS MARK AND THEIR INTERPRETATION ARE GIVEN
IN THE SEQUEL.
$P
@IN THE FOLLOWING, WE EMPLOY THE NOTATION:
$A INDENT=2
.ITS S,LABEL $C+3 [S=S-1 ; %IF S<0 %THEN -> LABEL]
$B0

==== ecsc04/asst11g.txt ====



%EXTERNALROUTINE ASS11(%STRING (63)FILES)
      %DYNAMICINTEGERFNSPEC TIME40(%INTEGER IN)
      %DYNAMICINTEGERFNSPEC TIME03(%INTEGER IN)
      %EXTERNALINTEGERFNSPEC SMADDR(%INTEGER CHAN, %INTEGERNAME LENGTH)
      %EXTERNALROUTINESPEC DEFINE(%STRING (63)S)
      %DYNAMICSTRING (8) %FN %SPEC DATE
      %EXTERNALROUTINESPEC DUMP BIN(%HALFINTEGERARRAYNAME CODE, %C
        %INTEGER START, FINISH, %STRINGNAME T, %INTEGERNAME FLAG)
      !!
      %INTEGERFNSPEC BREAK UP(%BYTEINTEGERARRAYNAME LNE)
      %ROUTINESPEC OCTAL(%INTEGER N)
      %ROUTINESPEC CODE
      %INTEGERFNSPEC AN OPND(%INTEGER TYPE, %STRING (80)OPND)
      %ROUTINESPEC SET DEF(%INTEGER DEF, OPN)
      %ROUTINESPEC USER DEF(%STRINGNAME OPND)
      %ROUTINESPEC LIST LINE(%INTEGER LEN)
      %INTEGERFNSPEC TEST REG(%STRING (80)REG)
      %INTEGERFNSPEC VALUE(%STRINGNAME OPND)

==== ecsc04/pmons.txt ====

%EXTERNALROUTINE PMONENABLE(%STRING(63) S)
%EXTERNALINTEGERFNSPEC DMONENABLE(%STRING(11) FILE,%INTEGER KB)
%STRING(11) FILE
%INTEGER KB
  S->FILE.(",").S
  KB=0
  %UNTIL S="" %THEN KB=10*KB+CHARNO(S,1)-'0' %AND %C
    S->(FROMSTRING(S,1,1)).S
  WRITE(DMONENABLE(FILE,KB),1)
%END
!-----------------------------------------------------------------------
%EXTERNALROUTINE PMONDISABLE(%STRING(255) S)
%EXTERNALROUTINESPEC DMONDISABLE
  DMONDISABLE
%END
!-----------------------------------------------------------------------
%EXTERNALROUTINE PMONON(%STRING(255) S)
%EXTERNALROUTINESPEC DMONON
  DMONON
%END

==== ecsc04/start.txt ====
SETMODE V=ON

==== ecsc04/places.txt ====
!******************************************************************
! spec for external routine in this file
%recordformat connf(%integer type,side,c,w,%string(4) layer)
%routine %spec place pads ( %string(31) chipname ,cellname,
                    %record(connf)%array %name ports, %integer n )
!******************************************************************
!-----------------------------------------------------------------!
!                                                                 !
! PLACE PADS: an ILAP routine to distribute pads around a design. !
!                                                                 !
! George A. McCaskill                 26th August    1982         !
!        ""                Revised:   10th September 1982         !
!        ""                Revisited: 22nd September 1982         !
!-----------------------------------------------------------------!

!*********************************************************************
%constant %string (2) blue  ="M", metal    ="M",  nm="M"
%constant %string (2) green ="D", diffusion="D",  nd="D"
%constant %string (2) red   ="P", poly     ="P",  np="P"
%constant %string (2)             implant  ="I",  ni="I"
%constant %string (2)             glass    ="G",  ng="G"

==== ecsc04/ilapcomp.txt ====
perqimp ilap4s,ilap4,ilap4l
perqimp contacts,contact,contactl
perqimp plas,pla,plal
perqimp stacks,stack,stackl
perqimp routes,route,routel
perqimp pads,pad,padl
perqimp annotates,annotate,annotatel
perqimp utils,util,utill
perqimp impiocpis,impiocpi,impiocpil
perqimp imprealfns,imprealfn,imprealfnl
perqimp drcs,drc,drcl
perqimp places,place,placel
perqimp stables,stable,stablel
perqimp pcompats,pcompat,pcompatl
perqimp xplas,xpla,xplal

==== ecsc04/bib.txt ====
$A JUST=0
$A NLS=1; SGAP=1
$A PAGENO=0; TAB=1,10; INDENT=2
$L1 CM
BIBLIOGRAPHY.
$B5

$C-9 [@BE74] @BELPAIRE , .G. @WILMOTTE , .J. .P.
$B0
.'A SEMANTIC APPROACH TO THE THEORY OF PARALLEL PROCESSES.',
@PROC. @INTERNATIONAL @COMPUTING @SYMP., 1973, @DAVOS, @NORTH
@HOLLAND @PUB. @CO., @JAN. 1974.
$B1 $C-9 [@BE74] @BELPAIRE , .G. @WILMOTTE , .J. .P.
$B0
'@AN IMPLEMENTATION OF THE @D-OPERATIONS.', @SEMINAIRE .IRIA,
STRUCTURE ET PROGRAMMATION DES CALCULATEURS, 1974, PP.
13-17.
$B1
$C-9 [@BL67] @BLACKNEY , .G. .R. @CUDNEY , .L. .F. @EICKHOLM , .C. .R.
$B0
' .IBM 9020 MULTIPROCESSOR SYSTEM.', .IBM @SYSTEMS @JOURNAL,

==== ecsc04/skimpps.txt ====


B<NAME>=1
B<CNST>=2

P<SS>=  <UI><SEP>,
        '%IF'<SC><COND>'%THEN'<UI><ELSE><SEP>,
        <CNST>':'<SS>,
        '%FINISH'<ELSE><SEP>,
        '%INTEGER'<ARR><SEP>,
        <RT><SPEC><NAME><FPP><SEP>,
        '%END'<SEP>,
        '%BEGIN'<SEP>,
        '%ENDOFPROGRAM'<SEP>,
        <SEP>;

P<UI>=  <NAME><APP><ASS>,
        '->'<CNST>,
        '%START',
        '%RETURN',
        '%RESULT='<+-\><OPD><EXPR>,

==== ecsc04/nocas.txt ====
%external %routine analyse circuit (%integer a, b, c)
   select output (0)
   print string ("No Circuit analysis available at present")
   newline
   %stop
%end

%end %of %file

==== ecsc04/m68decs.txt ====
%CONSTBYTEINTEGERARRAY HASHLINK(0: 58)= %C
   2, 0, 5, 8, 10, 11, 12, 15, 0, 17, 21, 23, 26, 30, 32, 36,
   0, 38, 41, 0, 42, 46, 50, 52, 53, 55, 57, 58, 0, 0, 60, 0,
   62, 66, 69, 73, 76, 0, 77, 0, 79, 82, 85, 88, 0, 0, 0, 91,
   92, 93, 95, 97, 100, 0, 102, 107, 110, 111, 113
%CONSTSTRING(4)%ARRAY INSTR(1:113)= %C
  "PULB","BVS","BHI","SBA","DECA","DECB","CLRA","BLE","DES",
  "CLRB","ANDA","ANDB","NOP","TAB","ORG","DEX","BITA","TPA","BSR",
  "TSTA","BITB","TSTB","FDB","SEV","INS","INCA","PSHA","JMP","INCB",
  "STS","LSRA","PSHB","LSRB","BPL","WAI","NEG","INX","BLS","STX",
  "TST","BLT","COM","NEGA","TAP","CLC","BEQ","TSX","TBA","SBCA",
  "NEGB","BMI","SBCB","ROL","RORA","ADCA","RORB","ADCB","CLI","LDS",
  "ROR","SUBA","LDAA","LSR","ORAA","SUBB","LDAB","BCC","ASRA","ORAB",
  "ASRB","END","BNE","LDX","CBA","CLR","BRA","TXS","DAA","CLV",
  "BGE","EQU","ADDA","COMA","ADDB","RTI","BVC","ASL","COMB","CPX",
  "ROLA","DEC","ROLB","ASR","BCS","CMPA","SWI","CMPB","SEC","RTS",
  "JSR","EORA","FCB","EORB","FCC","INC","ABA","STAA","ASLA","BGT",
  "STAB","ASLB","SEI","PULA"
%CONSTBYTEINTEGERARRAY ICODE(1:113)= %C
  X'33',X'29',X'22',X'10',X'4A',X'5A',X'4F',X'2F',X'34',
  X'5F',X'84',X'C4',X'01',X'16',X'00',X'09',X'85',X'07',X'8D',

==== ecsc04/sup23al.txt ====
LINK
ECSC04.SUP23A
ECSC04.SEMA02Z
ERCC07.COM18Z
ERCC07.FAST13Z
ERCC07.PPROF01Y
ERCC07.OPER14Z
ERCS04.DPRINT21Z
ERCS04.TAPE58Z
ERCC35.GPC6Y
ERCC07.NDIAG06Z
ERCC20.COMMS24Z
.END
SUP23AZ
SUPFIX SUP23AZ,SUP23AT

==== ecsc04/cgplaces.txt ====

A&07    #CONNECTOR/16
A&0701  GND
A&0702  GND
A&0703  GND
A&0704  GND
A&0705  GND
A&0706  GND
A&0707  GND
A&0708  GND
A&0709  BDAL8 L
A&0710  BDAL9 L
A&0711  BDAL10 L
A&0712  BDAL11 L
A&0713  BDAL12 L
A&0714  BDAL13 L
A&0715  BDAL14 L
A&0716  BDAL15 L

A&16    #CONNECTOR/16
A&1601  GND

==== ecsc04/sup23as.txt ====

%EXTERNALROUTINE SUP29
!-----------------------------------------------------------------------
%OWNSTRING(3) SUPID="23A"
!-----------------------------------------------------------------------
! STORE CONFIGURATION & EPAGE SIZE DECLARATIONS
! AMENDED 24/02/78  "SMACS","TRANS" & "KMON" INCLUDED
! COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 18A ONWARDS 
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DDTADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,KLOKCORRECT,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,PROCMON,DQADDR,  %C
         SACPORT,OCPPORT,ITINT,CONTYPEA,GPCCONFA,FPCCONFA,SFCCONFA, %C
         BLKADDR,DPTADDR,SMACS,TRANS,%LONGINTEGER KMON,  %C
         %INTEGER SPDRQ,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,  %C
         %INTEGERARRAY SP(0:15), %INTEGER  %C
         LSTL,LSTB,PSTL,PSTB,HKEYS,HOOT,SIM,CLKX,CLKY,CLKZ,  %C
         HBIT,SLAVEOFF,INHSSR,SDR1,SDR2,SDR3,  %C
         SDR4,SESR,S1,S2,S3,S4,END)
%RECORDNAME COM(COMF)

==== ecsc04/cgposns.txt ====
ADR MAP TO DTB L/ 3
BA38     13.2    1.2
AE20     14.7    3.0
AC20     15.3    3.0

ADS1/ 3
AA22     15.9    2.8
AC19     15.3    3.1
AE19     14.7    3.1

ADS2/ 3
AF20     14.4    3.0
AD20     15.0    3.0
AA25     15.9    2.5

ADS3/ 3
AB26     15.6    2.4
AD21     15.0    2.9
AF21     14.4    2.9

ADS4/ 3

==== ecsc04/ocgplaces.txt ====

A&07    #CONNECTOR/16
A&0701  GND
A&0702  GND
A&0703  GND
A&0704  GND
A&0705  GND
A&0706  GND
A&0707  GND
A&0708  GND
A&0709  BDAL8 L
A&0710  BDAL9 L
A&0711  BDAL10 L
A&0712  BDAL11 L
A&0713  BDAL12 L
A&0714  BDAL13 L
A&0715  BDAL14 L
A&0716  BDAL15 L

A&16    #CONNECTOR/16
A&1601  GND

==== ecsc04/ilaps_annotate.txt ====
! ILAP routines for annotation

! System specifics (for 4 lines)
%const %string (1) SNL = "
"
%external %string (63) %fn %spec ITOS (%integer N, P)
%external %integer %fn %spec OUT STREAM

%include "ilap_inc"

%external %routine %spec warn %alias "ILAPWARNING" (%string(225) ST)
%external %routine %spec update bb %alias "ILAPUPDATEMBB" (%integer xl, yb, xr, yt)
%const %integer no drc = 7

%external %routine crest (%integer bwidth, bheight)
   %const %integer swidth = 34
   %const %integer sheight = 43
   %const %integer cy = 24 {extent of crest in -ve y direction}
   %integer widthscale, heightscale, s, a, b
   %integer x, y {origin of crest in box)
   %integer i, old control

==== ecsc04/proms.txt ====

                                  288 PROM SPECIFICATION


                                         AD                            DO

                                 E   D   C   B   A       8   7   6   5   4   3   2   1
                               (14)(13)(12)(11)(10)     (9) (7) (6) (5) (4) (3) (2) (1)

                                 0   0   0   0   0

                                 0   0   0   0   1

                                 0   0   0   1   0

                                 0   0   0   1   1

                                 0   0   1   0   0

                                 0   0   1   0   1


==== ecsc04/load11s.txt ====

%EXTERNALROUTINE LOAD(%STRING(63) S)
%INTEGER CHS,I,J,K,L
%ROUTINE PB(%INTEGER B)
  CHS=CHS+B
  PRINTCH(B&15+'A')
  PRINTCH(B>>4&15+'A')
%END
%ROUTINE PW(%INTEGER W)
  PB(W&255)
  PB(W>>8&255)
%END
  PRINTCH(1)
  CHS=0
  PW(LENGTH(S))
  READ(I)    ;! LOAD ADDRESS
  PW(I)
  READ(I)    ;! START ADDRESS
  PW(I)
  %CYCLE I=1,1,LENGTH(S)
    PB(CHARNO(S,I))

==== ecsc04/mtest.txt ====

DESTROY MON1,MOND1
PMONENABLE MON1,64
PMONON
EDIT TESTS
D*I/
%BEGIN
%ROUTINE HANOI(%INTEGER N,I,J)
%IF N>0 %THEN %START
HANOI(N-1,I,6-I-J)
WRITE(I,1)
PRINT STRING(" ??")
WRITE(J,1)
HANOI(N-1,6-I-J,J)
%FINISH
%END
HANOI(4,1,2
%ENDOFPROGRAM
/
T
M/??/R2I/->/

==== ecsc04/imcforms.txt ====

%EXTERNALROUTINE FORMAT(%STRING(63) PAR)
%EXTERNALROUTINESPEC DEFINE(%STRING(63) S)
%STRING(63) S1,S2
%INTEGER I,J
%UNLESS PAR->S1.(',').S2 %THEN S1=PAR %AND S2=''
%IF S1='' %THEN S1='.TT'
%IF S2='' %THEN S2='SS#IMCS'
DEFINE('STREAM01,'.S1)
SELECT INPUT(1)
DEFINE('STREAM02,'.S2)
SELECT OUTPUT(2)
%CYCLE
 READ CH(I)
 %IF I=25 %THEN %STOP
 %IF I#NL %THEN %START
  PRINT SYMBOL(I)
  %IF I=' ' %OR 'A'<=I<='Z' %THEN %START
   J=0
   %IF I#' ' %THEN %START
    READ SYMBOL(I) %AND PRINT SYMBOL(I) %AND J=J+1 %UNTIL I=' ' %OR I=NL

==== ecsc04/rcc2007s.txt ====

!
! ERCC DOUBLE HEIGHT BOARD 2000/00/07
! %BOARDDEF RCC2007(%CHIPARRAY IC16(1:7/'ABCDXFG',1:8), &
!  %CHIPARRAY IC40(5:5/'E',1:5), &
!  %EDGEARRAY A1,A2,B1,B2(1:18/'ABCDEFHJKLMNPRSTUV')
!
%EXTERNALREALFN DISTANCE(%STRING(8) NAM1,%INTEGER COL1,ROW1,PIN1, %C
  NOP1,%REAL X1,Y1,%STRING(8) NAM2,%INTEGER COL2,ROW2,PIN2,NOP2, %C
  %REAL X2,Y2)
%RESULT=SQRT((X1-X2)**2+(Y1-Y2)**2)
%END
%EXTERNALROUTINE POSITION(%STRING(8) NAM,%INTEGER COL,ROW,PIN,NOP, %C
  %REALNAME X,Y)
%CONSTREALARRAY IC16Y(1:7)=-1.1,-2.0,-3.1,-4.0,1,-5.1,-6.1
%CONSTREALARRAY ABCDX(1:8)=4.75,4.15,3.55,2.95,2.35,1.75,1.15,0.55
%CONSTREALARRAY EFX(1:4)=4.15,3.25,2.35,1.45
%CONSTREALARRAY ABY(1:18)=-0.25,0,-0.25,0,-0.25,0,-0.25,0,-0.25,0,-0.25,
  0,-0.25,0,-0.25,0,-0.25,0
%CONSTREALARRAY ABX(1:18)=2.25,2.0(2),1.75(2),1.5(2),1.25(2),1.0(2),
  0.75(2),0.5(2),0.25(2),0

==== ecsc04/mond100.txt ====

8269E1027R8255E8448R8456W8455W8303R14592R2048R769R523E576R1028R4152R8263E11264W8264E8299R8257E8304R8462R
8261E1028W8303R8462R8450R8304R8299R
8261E1028W8303R8463R8450R8304R8464R
8261E1028W8303R8464R8304R8450R8299R
8261E1028W8303R8465R8304R8450R
8261E1028W8303R8466R8304R8450R8299R
8261E1028R8304R8303R8467R8450R8468R8299R
8261E8303R8469R1028R8304R8450R
8261E1028R8304R8303R8470R8450R8299R
8261E1028W8303R8471R8304R8450R8299R8472R
8261E1028W8303R8472R8450R8304R
8261E1028R8304R8303R8473R8450R
8261E1028R8474R8450R8304R8303R
8261E1028R8304R8303R8475R8450R8476R8299R8268E1027R8455W8254E
8254E8449R1027W8208E8205E1028R8457R8299R8301R2048R769R543E544E523E576R575R4152R773R525E
573E1028R525E768R773R576R4152R544E523E8204E1027W8254E8449R8456R8299E2048R543E
544E576R1028R768R525E573E773R4152R1027W523E8204E8448R8254E8303R8208E8458R9728R8330R8299E
8299E1028R1027R8254E8303R8449R8205E8458R9728R8330R
8254E1027R8299E1028W8303R8449R8205E8458R9728R8330R8209E
8206E1028R8449R8330R8457R8303R8208E8254E1027R8299E

==== ecsc04/rcc2008s.txt ====

!
! ERCC QUAD HEIGHT BOARD 2000/00/08
! %BOARDDEF RCC2008(%CHIPARRAY IC16(1:7/'ABCDXFG',1:16), &
!  %CHIPARRAY IC40(5:5/'E',1:11), &
!  %EDGEARRAY A1,A2,B1,B2,C1,C2,D1,D2(1:18/'ABCDEFHJKLMNPRSTUV')
!
%EXTERNALREALFN DISTANCE(%STRING(8) NAM1,%INTEGER COL1,ROW1,PIN1, %C
  NOP1,%REAL X1,Y1,%STRING(8) NAM2,%INTEGER COL2,ROW2,PIN2,NOP2, %C
  %REAL X2,Y2)
%RESULT=SQRT((X1-X2)**2+(Y1-Y2)**2)
%END
%EXTERNALROUTINE POSITION(%STRING(8) NAM,%INTEGER COL,ROW,PIN,NOP, %C
  %REALNAME X,Y)
%CONSTREALARRAY IC16Y(1:7)=-1.1,-2.0,-3.1,-4.0,1,-5.1,-6.1
%CONSTREALARRAY ABCDX(1:16)=10.025,9.425,8.825,8.225,7.625,7.025,
  6.425,5.825,4.725,4.125,3.525,2.925,2.325,1.725,1.125,0.525
%CONSTREALARRAY EFX(1:8)=9.425,8.525,7.625,6.725,4.125,3.225,2.325,1.425
%CONSTREALARRAY ABY(1:18)=-0.25,0,-0.25,0,-0.25,0,-0.25,0,-0.25,0,-0.25,
  0,-0.25,0,-0.25,0,-0.25,0
%CONSTREALARRAY ABX(1:18)=2.25,2.0(2),1.75(2),1.5(2),1.25(2),1.0(2),

==== ecsc04/idistas.txt ====
%EXTERNALREALFN DISTANCE(%STRING(8) NAM1,%INTEGER R1,C1,P1,PINS1, %C
  %REAL X1,Y1,%STRING(8) NAM2,%INTEGER R2,C2,P2,PINS2,%REAL X2,Y2)
%INTEGER W
%IF NAM1=NAM2='C' %AND C1=C2 %THEN %START
 %IF P1<=8 %AND P2<=8 %THEN %START
  %IF R1=R2 %THEN %RESULT=!P1-P2!*0.1
  %IF P1+P2<=9 %THEN %RESULT=(P1+P2)*0.1+0.4+!R1-R2!*1.1
  %RESULT=2.2-(P1+P2)*0.1+!R1-R2!*1.1
 %FINISH
 %IF P1>8 %AND P2>8 %THEN %START
  %IF R1=R2 %THEN %RESULT=!P1-P2!*0.1
  %IF P1+P2<=25 %THEN %RESULT=(P1+P2)*0.1-1.2+!R1-R2!*1.1
  %RESULT=3.8-(P1+P2)*0.1+!R1-R2!*1.1
 %FINISH
 %IF P2<P1 %THEN %START
  W=P1
  P1=P2
  P2=W
  W=R1
  R1=R2
  R2=W

==== ecsc04/cv79s.txt ====
<personal information redacted>
$



                          Curriculum Vitae

                          David James Rees

                   Department of Computer Science

Career : 1963-65 : Research student, Computer Unit, University of
                   Edinburgh.
         1965-66 : Assistant Lecturer, Computer Unit, University of
                   Edinburgh.
         1966-   : Lecturer, Department of Computer Science, University
                   of Edinburgh.
         1966-70 : Team Leader, Edinburgh Multi-Access Project.
         1972-73 : Assistant Professor, Department of Computer Sciences,
                   University of Wisconsin, USA.


==== ecsc04/cgsignals.txt ====

BE33    #1K PULLUPS/16

BA41    #25LS2519 QUAD FF/20

DA33    #25LS2539 DUAL DEMUX/20

CA41    #25LS2569 UPDOWN CTR/20
CC41    #25LS2569 UPDOWN CTR/20
CE41    #25LS2569 UPDOWN CTR/20
CG27    #25LS2569 UPDOWN CTR/20

AA01    #2907 BUS TRANS/20
AC01    #2907 BUS TRANS/20
AE01    #2907 BUS TRANS/20
AG01    #2907 BUS TRANS/20

AC19    #29701 RAM/16
AE19    #29701 RAM/16
CA09    #29701 RAM/16
CC09    #29701 RAM/16

==== ecsc04/zero.txt ====

$B5
$L1 CM
CHAPTER 0
$B5
$L1 CM
INTRODUCTION.
$N
$P
@THE HARDWARE OF A COMPUTER SYSTEM MUST BE CAPABLE OF ACCESSING AND
TRANSFORMING THE TOTALITY OF INFORMATION STORED IN ALL OF THE
SYSTEM'S PHYSICAL DEVICES. @THIS IS THE BASIC PROPERTY WHICH GIVES
COMPUTERS THEIR ENORMOUS FLEXIBILITY. @HOWEVER, THIS UNBOUNDED
FREEDOM HAS TO BE RESTRAINED IF IT IS DESIRED TO SUPPORT THE SHARING
OF THE INFORMATION BY VARIOUS USERS. @THE APPARATUS THAT LIMIT
THIS FREEDOM ARE KNOWN AS PROTECTION MECHANISMS.
$P
@THE ORIGINAL MOTIVATION OF PROTECTION MECHANISMS WAS TO DEFEND THE
OPERATING SYSTEM FROM HARMFUL INTERFERENCE BY INCORRECT OR MALICIOUS
USER PROGRAMS. @PRIVILEGED/USER MODES ARE SUFFICIENT TO ACHIEVE THIS
SIMPLE FORM OF PROTECTION. @THE ADDRESS SPACE OF A PROGRAM EXECUTED

==== ecsc04/ilaps_ilaputil.txt ====
! Some machine specific utilities for ILAP

%external %integer %fn %spec out stream

! A monitoring routine for ILAP, which uses system dependent timings -

%external %routine ILAP monitor (%string (255) S)
   %integer I
   I = out stream
   select output (0)
   print string ("Monitor:  CPU =?")
!   print (deltacpu/1000,1,2)
!   print string ("s  PF =")
!   write (delta page,2)
   space;   space
   print string (s)
   newline
%end

%external %byte %integer %fn default technology
   %result = 'N'

==== ecsc04/cgs.txt ====

!-----------------------------------------------------------------------
%EXTERNALROUTINE SORTPL(%STRING(63) S)
%EXTERNALROUTINESPEC DEFINE(%STRING(63) S)
%ROUTINESPEC SQS(%INTEGER FROM,TO)
%RECORDFORMAT PSF(%STRING(7) P,%STRING(23) S)
%RECORDARRAY PS(1:3000)(PSF)
%STRING(31) IN,OUT,T,U
%INTEGER I,PSN
  S->IN.(",").OUT
  DEFINE("STREAM01,".IN)
  SELECT INPUT(1)
  %CYCLE I=1,1,3000
    READ ITEM(T) %UNTIL "A"<=T<="Z"
    ->SORT %IF T="Z"    ;! END MARKER
    READ ITEM(U) %AND T=T.U %UNTIL NEXT ITEM=" "
    PS(I)_P=T
    READ ITEM(T) %UNTIL T#" "
    READ ITEM(U) %AND T=T.U %UNTIL NEXT ITEM="
"
    PS(I)_S=T

==== ecsc04/iskimps.txt ====

%EXTERNALROUTINE ISKIMP(%STRING(63) S)
%ROUTINESPEC READ LINE
%INTEGERFNSPEC COMPARE(%INTEGER PSP)
%ROUTINESPEC SS
%ROUTINESPEC FAULT(%STRING(63) S)
%INTEGERFNSPEC CHNEXT
%INTEGERFNSPEC NEWCELL
%INTEGERFNSPEC RETURN CELL(%INTEGER I)
%ROUTINESPEC PRINT NAME(%INTEGER I)
%ROUTINESPEC PHEX(%INTEGER I,J)
%INTEGER I,J,AP,APP,TP,ASL,BTN,CHP,FAULTS,NL,LEVEL,CA,COMP,SCF,PARS
%INTEGER LOPR,ASSOPP,LSTPP
%OWNSHORTINTEGERARRAY PS(-1000:-573)=%C
   -997,-910,-855,-984, 201, 198,-775,-761, 212, 200, 197, 206,
   -910,-863,-872,-855,-980,   2,  58,-1000,-971, 198, 201, 206,
    201, 211, 200,-872,-855,-961, 201, 206, 212, 197, 199, 197,
    210,-717,-855,-955,-673,-654,   1,-647,-855,-950, 197, 206,
    196,-855,-943, 194, 197, 199, 201, 206,-855,-929, 197, 206,
    196, 207, 198, 208, 210, 207, 199, 210, 193, 205,-855,-924,
     42,   3,-599,-855,-918,  42,-841,   2,-578,-855,-913,  42,

==== ecsc04/imprealfns.txt ====
!***************************************************************************
! specs for fns in this file IMPREALFN
%realfnspec isqrt(%real x)
%realfnspec itan(%real x)
%realfnspec icos(%real x)
%realfnspec isin(%real x)
%realfnspec iarctan(%real x,y)
%realfnspec iarccos(%real x)
%realfnspec iarcsin(%real x)
!***************************************************************************

%external %real %fn isqrt (%real x)
%externalrealfnspec f77sqrt(%realname x,%integername dum)
%integer d
  d=0
  %result=f77sqrt(x,d)
%end

%external %real %fn itan (%real x)
%externalrealfnspec f77tan(%realname x,%integername dum)
%integer d

==== ecsc04/splps.txt ====

P<SS>='X'<INDX>'='<EXPR>'
','->'<N><IF>'
',<N>':'<SS>,'!','E
';
P<INDX>='('<EXPR>')',<N>;
P<EXPR>=<OPD><REXP>;
P<OPD>='X'<INDX>,<N>;
P<N>=<DIG><RDIG>;
P<RDIG>=<DIG><RDIG>,;
P<REXP>=<OP><OPD>,;
P<OP>='+','-','*','/';
P<IF>='IF'<OPD><COMP><OPD>,;
P<COMP>='=','#','>=','>','<=','<';
E

==== ecsc04/sup22wl.txt ====
LINK
ECSC04.SUP22W
ECSC04.SEMA01Z
ERCC07.COM16Z
ERCC07.FAST11Z
ERCC07.PPROF01Y
ECSC17.OPER13Z
ERCS04.DPRINT19Z
ERCS04.TAPE58Z
ERCC35.GPC6Y
ERCC07.NDIAG05Z
ERCC20.COMMS24Z
.END
SUP22WZ
SUPFIX SUP22WZ,SUP22WT

==== ecsc04/imcasss.txt ====

%EXTERNALROUTINE ASSEMBLE(%STRING(63) PAR)
%ROUTINESPEC RLINE
%INTEGERFNSPEC COMPARE(%INTEGER PSP)
%ROUTINESPEC SS1
%ROUTINESPEC SS2
%ROUTINESPEC FAULT(%STRING(63) MESS)
%ROUTINESPEC PHEX(%INTEGER VAL)
%ROUTINESPEC PLINE
%ROUTINESPEC QSORT(%INTEGER A,B)
%STRING(63)%FNSPEC STRSP(%INTEGER N)
%SHORTINTEGERARRAY A(1:100)
%BYTEINTEGERARRAY T(1:100)
%RECORDFORMAT SYMFORM(%STRING(6) CH,%BYTEINTEGER FLAG,%SHORTINTEGER VAL)
%RECORDARRAY SYM(0:511)(SYMFORM)
%SHORTINTEGERARRAYFORMAT RAMF(0:2047)
%SHORTINTEGERARRAYNAME RAM
%SHORTINTEGERARRAYFORMAT DRAMF(0:255)
%SHORTINTEGERARRAYNAME DRAM
%INTEGER AP,TP,TPMAX,I,J,SYMP,FAULTS,RAMADDR,FLAG
%SHORTINTEGER CA

==== ecsc04/sup22ws.txt ====

%EXTERNALROUTINE SUP29
!-----------------------------------------------------------------------
%OWNSTRING(3) SUPID="22F"
!-----------------------------------------------------------------------
! STORE CONFIGURATION & EPAGE SIZE DECLARATIONS
! AMENDED 24/02/78  "SMACS","TRANS" & "KMON" INCLUDED
! COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 13A ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DDTADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,SECSFMN,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,NPROCS,PROCMON,DQADDR,  %C
         SACPORT,OCPPORT,ITINT,CONTYPEA,GPCCONFA,FPCCONFA,SFCCONFA, %C
         BLKADDR,DPTADDR,SMACS,TRANS,%LONGINTEGER KMON,  %C
         %INTEGER SP1,SP2,SP3,SP4,SP5,SP6,SP7,SP8,SP9,  %C
         LSTL,LSTB,PSTL,PSTB,HKEYS,HOOT,SIM,CLKX,CLKY,CLKZ,  %C
         HBIT,SLAVEOFF,SPISAS1,SPISAS2,SPISAS3,SPISAS4,END)
%RECORDNAME COM(COMF)
  COM==RECORD(X'80000000'+48<<18)
%CONSTINTEGER VIRTAD=X'81000000'
%CONSTINTEGER MAXPROCS=64

==== ecsc04/imcps.txt ====

B<NAME>=1
B<CNST>=2
B<SPS> =3
P<SS1> =<SPS><IN1>,
        <NAME><SPS><LIN1>;
P<SS2> =<SPS><IN2><SEP>,
        <NAME><SPS><LIN2><SEP>;
P<SS3> =<NAME><PRIV><SEP>,
        '0'<REP><SEP>;
P<IN1> =<MOP1>,'ORG'<SPS><VAL><SEP>,'END';
P<LIN1>=<MOP1>,'EQU'<SPS><VAL><SEP>;
P<MOP1>='D ','C ','T ','B ','L ',<I>' ','DC ';
P<IN2>=<MOP2>,'ORG'<SPS><VAL>,'END';
P<LIN2>=<MOP2>,'EQU'<SPS><VAL>;
P<MOP2>='D'<SPS><DF><DFS>,
        'C'<SPS><CF><CFS>,
        'T'<SPS><TF><TFS>,
        'B'<SPS><COND>','<VAL>,
        'L'<SPS><RL>,
        <I><SPS><ID>','<RI>,

==== ecsc04/dcapdoc.html ====
<HTML><HEAD></HEAD><BODY><PRE>
<HR>



               <EM>DCAP : David's Circuit Assignment Program</EM>



   DCAP provides a method of description of circuits, the assignment  of
functional  elements  to  integrated  circuit  chips and their layout on
circuit  boards.   It  creates  data  structures  corresponding  to  the
descriptions  in  a  file which can then be used for further processing.
At the present state of development of  the  system,  this  consists  of
producing  a  wire-wrap schedule for the circuit but it is also intended
that it should be used for other stages in the design  and  construction
process  such  as  printed  circuit  board design, production of circuit
schematics by plotter etc.

   Rather than use a description of the circuit in terms  of  functional
relationships  between  signals,  DCAP  works  in  terms  of  functional

==== ecsc04/sup22l.txt ====
LINK
ECSC04.SUP22
ECSC04.SEMA01Z
ERCC07.COM16Z
ERCC07.FAST11Z
ERCC07.PPROF01Y
ECSC17.OPER13Z
ERCS04.DPRINT19Z
ERCS04.TAPE58Z
ERCC35.GPC6Y
ERCC07.NDIAG05Z
ERCC20.COMMS24Z
.END
SUP22Z
SUPFIX SUP22Z,SUP22T

==== ecsc04/memo.txt ====
Alterations to Ilap4s :
    remove output extension #cif
    cif stream = 1 instead of 3
    insert "impiospecs" instead of existing ones
    add ".cif" if necessary
    max boxes = 1000 instead of 2000
    all %halfs to %shorts
    %fn extend only for EMAS [ omit first line ]
    prefix "ilap4incs" with all %specs in right order
    fix Version string
    remove %routinespecs dump comment to c width since already spec-ed
    date & time to timestamp
    lambda & setlambda in 100ths of a micron - all inc files specs updated
    SET DEFAULT GOES OUT
    outfilename goes out
    change default widths sheet

Alterations to utils :
    date & time to timestamp
    no set default any longer
    no outfilename

==== ecsc04/sup22s.txt ====

%EXTERNALROUTINE SUP29
!-----------------------------------------------------------------------
%OWNSTRING(3) SUPID="22F"
!-----------------------------------------------------------------------
! STORE CONFIGURATION & EPAGE SIZE DECLARATIONS
! AMENDED 24/02/78  "SMACS","TRANS" & "KMON" INCLUDED
! COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 13A ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DDTADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,SECSFMN,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,NPROCS,PROCMON,DQADDR,  %C
         SACPORT,OCPPORT,ITINT,CONTYPEA,GPCCONFA,FPCCONFA,SFCCONFA, %C
         BLKADDR,DPTADDR,SMACS,TRANS,%LONGINTEGER KMON,  %C
         %INTEGER SP1,SP2,SP3,SP4,SP5,SP6,SP7,SP8,SP9,  %C
         LSTL,LSTB,PSTL,PSTB,HKEYS,HOOT,SIM,CLKX,CLKY,CLKZ,  %C
         HBIT,SLAVEOFF,SPISAS1,SPISAS2,SPISAS3,SPISAS4,END)
%RECORDNAME COM(COMF)
  COM==RECORD(X'80000000'+48<<18)
%CONSTINTEGER VIRTAD=X'81000000'
%CONSTINTEGER MAXPROCS=64

==== ecsc04/utils.txt ====
!***********************************************************************
! specs in same order as in perqimports file
%routine %spec ILAP monitor (%string (255) S)
%byte %integer %fn %spec default technology
%string (63) %fn %spec itos (%integer n, p)
%routine %spec write (%integer n, p)
%string(127)%fn %spec rtos(%real num,%integer pl,dp)
%routine %spec print(%real num,%integer pl,dp)
%integerfn %spec stoi(%string(63) s)
%integer %fn %spec REM (%integer A, B)
%routine %spec prompt(%string(63) s)
%string (15) %fn %spec timestamp
%real %fn %spec frac pt (%real r)
%routine %spec read (%integer addr, type)
%string (255) %fn %spec sub string (%string (255) st, %integer a, b)
%integerfnspec getvm(%integername size,adr)
%integerfnspec freevm(%integername size,adr)
!***********************************************************************
%externalintegerfnspec outstream
%externalroutinespec dateandtime(%integer timeref)
%externalroutinespec newseg(%shortintegername seg,%shortinteger fsize,finc,fmax)

==== ecsc04/ilaps_stack.txt ====
%include "ilap_inc"
%externalroutine stack(%string(31) name,%integer bits,words,
  %integername controlx,controly,pushcony,popcony,
  phi1x,phi2x,phi3x,phi4x,%integerarrayname pushy,popy)
%routinespec stackcellcon(%integer offset)
%routinespec controlcon
%routinespec positioncell(%string(13) cell,ground,
                          %integer cellypitch,cellxpitch,gndypitch,
                          %integer %name xcur,ycur)
%integer stackcellxpitch,stackcellypitch,conypitch,stackcellgndypitch
%integer i,j,curx,cury,stackcellpushy,stackcellpopy,controlypitch
%integer stackcellaxpitch, stackx, stacky
  %if symbol exists("stackcell")=true %then ->gen
  symbol("stackcell")
    %if Buried contacts = true %start
      layer(poly)
        box(15,4,17,8) ; box(41,21,43,25)
        pdbw(16,3) ; pdbe(42,26)
    %finish %else %start
        pdms(15,5) ; pdmn(43,24)
    %finish

==== ecsc04/cgwws.txt ====

BOTTOM WRAPS

 9.5 INCH LENGTHS, WIRE BIN 21
    1    FH35  ->  CF28

 9.0 INCH LENGTHS, WIRE BIN 20
    2    FH03  ->  CG10

 8.5 INCH LENGTHS, WIRE BIN 17
    3    DE34  ->  AG02
    4    DA45  ->  AB32
    5    DA47  ->  AB33
    6    FF03  ->  CG11

 8.0 INCH LENGTHS, WIRE BIN 16
    7    FD03  ->  CG12
    8    FH43  ->  DA26
    9    FB35  ->  CE21
   10    FD19  ->  CG20


==== ecsc04/sup23l.txt ====
LINK
ECSC04.SUP23W
ECSC04.SEMA02Z
ERCC07.COM20Z
ERCC07.FAST16Z
ERCC07.OPER14Z
ERCS04.DPRINT24Z
ERCS04.TAPE58Z
ERCC35.GPC9Y
ERCC07.NDIAG06Z
ERCC20.COMMS29Z
.END
SUP23Z
SUPFIX SUP23Z,SUP23T

==== ecsc04/contacts.txt ====
!******************************************************************************
! specs in same order as in perqimports file
%routine %spec subc (%integer x, y)
%routine %spec dm (%integer x,y)
%routine %spec pm (%integer x,y)
%routine %spec pdms (%integer x, y)
%routine %spec pdmn (%integer x, y)
%routine %spec pdmw (%integer x, y)
%routine %spec pdme (%integer x, y)
%routine %spec pdbns (%integer x, y)
%routine %spec pdbew (%integer x, y)
%routine %spec pdcn (%integer x, y)
%routine %spec pdcs (%integer x, y)
%routine %spec pdce (%integer x, y)
%routine %spec pdcw (%integer x, y)
%routine %spec pdbn (%integer x, y)
%routine %spec pdbs (%integer x, y)
%routine %spec pdbe (%integer x, y)
%routine %spec pdbw (%integer x, y)
!******************************************************************************
%constant %string (2) blue  ="M", metal    ="M",  nm="M"

==== ecsc04/sup23s.txt ====

%LONGINTEGERFNSPEC RTDR(%INTEGERFN A)
%INTEGERFNSPEC REQUEST INPUT(%INTEGER OUTPUT POSN,TRIGGER POSN)
%INTEGERFNSPEC REQUEST OUTPUT(%INTEGER OUTPUT POSN,TRIGGER POSN)
%EXTERNALROUTINE SUP29
!-----------------------------------------------------------------------
%OWNSTRING(3) SUPID="23F"
!-----------------------------------------------------------------------
! STORE CONFIGURATION & EPAGE SIZE DECLARATIONS
! AMENDED 24/02/78  "SMACS","TRANS" & "KMON" INCLUDED
! COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 18A ONWARDS 
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DDTADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,KLOKCORRECT,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,PROCMON,DQADDR,  %C
         SACPORT,OCPPORT,ITINT,CONTYPEA,GPCCONFA,FPCCONFA,SFCCONFA, %C
         BLKADDR,DPTADDR,SMACS,TRANS,%LONGINTEGER KMON,  %C
         %INTEGER SPDRQ,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,  %C
         %INTEGERARRAY SP(0:15), %INTEGER  %C
         LSTL,LSTB,PSTL,PSTB,HKEYS,HOOT,SIM,CLKX,CLKY,CLKZ,  %C

==== ecsc04/impiocpis.txt ====
!*******************************************************************************
! specs for external routines in this file IMPIOCPI
%routinespec openinput(%integer stream,%string(100) filename)
%integerfnspec instream
%string(100)%fnspec infilename(%integer stream)
%routinespec closeinput(%integer stream)
%routinespec openoutput(%integer stream,%string(100) filename)
%integerfnspec outstream
%string(100)%fnspec outfilename(%integer stream)
%routinespec closeoutput(%integer stream)
%routinespec stop
%shortintegerfnspec iocp(%shortinteger ep,n,x)
!*******************************************************************************
! specs for Pascal routines in IMPIOCP
%externalroutinespec ioinit
%externalroutinespec openin(%shortinteger s,%string(100) filename)
%externalshortintegerfnspec instrm
%externalroutinespec infile(%shortinteger s,%integer fileref)
%externalroutinespec closein(%shortinteger s)
%externalroutinespec openout(%shortinteger s,%string(100) filename)
%externalshortintegerfnspec outstrm

==== ecsc41/ada_sortdemo.txt ====
-- Simple demonstration of the generic sorting package.

    WITH TEXT_IO ; USE TEXT_IO ; -- make standard text I/O available
    WITH gensort ; -- make generic sorting package available

    PROCEDURE sortdemo IS

-- Global Types :

    TYPE intvec IS ARRAY ( INTEGER RANGE <> ) OF INTEGER ;

-- Generic Package Instantiations :

    PACKAGE intsort IS NEW gensort ( INTEGER, intvec, ">" ) ;
    PACKAGE intio IS NEW INTEGER_IO ( INTEGER ) ;
    USE intsort, intio ;

-- Global Variables :

    test_array : intvec ( 1..10 ) ; -- array to be sorted


==== ecsc41/ada_robpack.txt ====
    WITH text_io ; USE text_io ; -- make text input/output available

-- robot_handler => Package definition for simple robot simulation.
    PACKAGE robot_handler IS

--    Package Type Definitions :

       TYPE axis_name IS ( x_axis, y_axis, z_axis ) ;
       SUBTYPE move_range IS INTEGER RANGE -1000..1000 ;
       TYPE param_array IS ARRAY ( axis_name ) OF move_range ;

--    Package Task Types :

--    robot_controller => Task to simulate control of a robot.
       TASK TYPE robot_controller IS

--       Entry points :
          ENTRY open ;
          ENTRY single_axis_move ( axis : axis_name ;
                                   distance : move_range ) ;
          ENTRY compound_move ( axis_deltas : param_array ) ;

==== ecsc41/ada_treedemo2.txt ====
-- Simple demonstration of the generic tree handling package.

    WITH TEXT_IO ; USE TEXT_IO ; -- make standard text I/O available
    WITH tree_handler ; -- make generic tree handling package available

    PROCEDURE treedemo2 IS

-- Global Types :

    SUBTYPE ubyte IS INTEGER RANGE 0..255 ;

    TYPE sub_rec IS RECORD
       one   : ubyte ;
       two   : ubyte ;
       three : ubyte ;
    END RECORD ;

    TYPE rec_test IS RECORD
       main : ubyte ;
       sub  : sub_rec ;
    END RECORD ;

==== ecsc41/ada_setdemo.txt ====
-- Demostration program for generic set handling package.

    WITH text_io ; USE text_io ; -- make text I/O package available
    WITH set_handler ; -- make generic set handling package available

    PROCEDURE setdemo IS

-- Global Types :

    TYPE colour IS ( violet, blue, white, green, yellow, orange, red ) ;

-- Generic Package Instantiation :

    PACKAGE colset IS NEW set_handler ( colour ) ;
    USE colset ;

-- Global Variables :

    colour_set    : set := full_set ; -- full set of colours
    colour_choice : set ;
    leftovers     : set ;

==== ecsc41/ada_idpack.txt ====
-- Package to demonstrate Private Types.
    
    WITH TEXT_IO ; USE TEXT_IO ; -- make text I/O available

    PACKAGE id_handler IS

-- Package Types :

    TYPE id_number IS PRIVATE ;

-- Package Functions :

-- new_id => Genarate an id_number.
    FUNCTION new_id RETURN id_number ;

-- Package Procedures :

-- put => Output an id_number to the terminal.
    PROCEDURE put ( id : id_number ) ;

    PRIVATE -- hidden part

==== ecsc41/ada_sortdemo2.txt ====
-- Demonstration of the generic sorting package.

    WITH TEXT_IO ; USE TEXT_IO ; -- make standard text I/O available
    WITH text_handler ; USE text_handler ; -- varying length strings
    WITH gensort ; -- make generic sorting package available

    PROCEDURE sortdemo2 IS

-- Global Types :

    TYPE sp IS ( W, O, B, A, F, G, K, M, R, N, S ) ; -- spectral types
    SUBTYPE st IS CHARACTER RANGE '0'..'9' ; -- spectral sub-types
    TYPE lc IS ( I, II, III, IV, V ) ; -- luminosity class

    TYPE spectral_class IS RECORD
       sp_type    : sp ;
       sp_sub     : st ;
       luminosity : lc ;
       extras     : text ;
    END RECORD ;


==== ecsc41/ada_treedemo.txt ====
-- Demonstrates the generic tree handling package

    WITH TEXT_IO ; USE TEXT_IO ; -- make standard text I/O available
    WITH text_handler ; USE text_handler ; -- for varying length strings
    WITH tree_handler ; -- make generic tree handling package available

    PROCEDURE treedemo IS

-- Global Types :

    TYPE sp IS ( W, O, B, A, F, G, K, M, R, N, S ) ; -- spectral types
    SUBTYPE st IS CHARACTER RANGE '0'..'9' ; -- spectral sub-types
    TYPE lc IS ( I, II, III, IV, V ) ; -- luminosity class

    TYPE spectral_class IS RECORD
       sp_type    : sp ;
       sp_sub     : st ;
       luminosity : lc ;
       extras     : text ;
    END RECORD ;


==== ecsc41/ada_double.txt ====
-- Simple Ada program which doubles a given integer

    WITH text_io ; USE text_io ; -- Maks standard text I/O available

    PROCEDURE double IS -- program specification

-- Generic Package Instantiations :

    PACKAGE int_io IS NEW integer_io ( integer ) ; USE int_io ;

-- Global Variables :

    value  : INTEGER ; -- value to be doubled
    double : INTEGER ; -- result

    BEGIN -- double

    PUT ( "Value to be doubled ? " ) ; -- prompt user
    GET ( value ) ;                    -- read number
    double := value * 2 ;              -- multiply by two
    PUT ( value ) ;                    -- print value given by user

==== ecsc41/ada_robdemo2.txt ====
WITH TEXT_IO ; USE TEXT_IO ; -- setup standard text I/O package
WITH robot_handler ; USE robot_handler ; -- setup robot package

PROCEDURE robdemo2 IS -- demonstrates use of robot simulation package

-- Type Definitions :

    TYPE command IS ( x_move, y_move, z_move, compound, quit ) ;
    TYPE conv_com IS ARRAY ( x_move..z_move ) OF axis_name ;

-- Generic Package Instantiations :

    PACKAGE com_io IS NEW ENUMERATION_IO ( command ) ;
    PACKAGE mr_io IS NEW INTEGER_IO ( move_range ) ;
    PACKAGE an_IO IS NEW ENUMERATION_IO ( axis_name ) ;
    USE com_io, mr_io, an_io ;

-- Global Constants :

    axis_for : CONSTANT conv_com := ( x_axis, y_axis, z_axis ) ;


==== ecsc41/ada_utilpack.txt ====
-- General Utility Package

    PACKAGE utils IS

--    Package Functions :

--    ch_is_upper => Is character an upper case letter ?
       FUNCTION ch_is_upper ( c : CHARACTER ) RETURN BOOLEAN ;

--    ch_is_lower => Is character a lower case letter ?
       FUNCTION ch_is_lower ( c : CHARACTER ) RETURN BOOLEAN ;

--    upper_case => Return upper case equivalent of a character.
       FUNCTION upper_case ( c : CHARACTER ) RETURN CHARACTER ;

--    lower_case => Return lower case equivalent of a character.
       FUNCTION lower_case ( c : CHARACTER ) RETURN CHARACTER ;

--    upper_case => Return upper case equivalent of a string.
       FUNCTION upper_case ( s : STRING ) RETURN STRING ;


==== ecsc41/ada_robdemo.txt ====
-- Demonstrate use of robot handler package

    WITH robot_handler ; USE robot_handler ;

    PROCEDURE robdemo IS

-- Local Variables :

    r2d2 : robot_controller ; -- robot controller task
    c3po : robot_controller ; -- another robot controller task

    BEGIN -- robdemo

-- setup robot system
    robot_system.open ;

-- setup robot controller task
    r2d2.open ;

-- move in y-axis direction
    r2d2.single_axis_move ( y_axis, -5 ) ;

==== ecsc41/ada_iddemo.txt ====
-- Demonstrates use of Package containing a private type.
    WITH text_io, id_handler ; USE text_io, id_handler ;

    PROCEDURE iddemo IS

-- Local Variables :

    person_id : id_number ;
    animal_id : id_number ;

    BEGIN -- iddemo

-- allocate values to person_id & animal_id
    person_id := new_id ;
    animal_id := new_id ;

-- list ids
    PUT ( "Person Id No. is " ) ; put ( person_id ) ; NEW_LINE ;
    PUT ( "Animal Id No. is " ) ; put ( animal_id ) ; NEW_LINE ;

-- try to explicitly set id number components

==== ecsc41/ada_sortpack.txt ====
-- Generic sorting package.

    GENERIC

       TYPE elem IS PRIVATE ; -- generic object
       TYPE vector IS ARRAY ( INTEGER RANGE <> ) OF elem ;
       WITH FUNCTION ">" ( left, right : elem ) RETURN BOOLEAN ;

    PACKAGE gensort IS

--    swap => swap two values of the generic type
       PROCEDURE swap ( first, second : IN OUT elem ) ;

--    quicksort => Sorts an array of generic objects ( quicksort )
       PROCEDURE quicksort ( v : IN OUT vector ) ;

    END gensort ; ------------------------------------------------------

-- gensort => Body of generic sorting package.
    PACKAGE BODY gensort IS


==== ecsc41/ada_setpack.txt ====
-- Generic set handling package.

    GENERIC

        TYPE elem IS ( <> ) ; -- discrete generic type

    PACKAGE set_handler IS

-- Package Types :

    TYPE set IS PRIVATE ; -- private type

    TYPE elem_list IS ARRAY ( NATURAL RANGE <> ) OF elem ;

-- Package Constants :

    empty_set : CONSTANT set ; -- deferred constants
    full_set  : CONSTANT set ;

-- Package Functions :


==== ecsc41/ada_textpack.txt ====
-- Text handling package for use with strings of up to length 255.

    WITH TEXT_IO ; USE TEXT_IO ; -- make standard text I/O available
    WITH utils ; USE utils ; -- make utilities available

-- text_handler => Text handling package definition.
    PACKAGE text_handler IS

--    Package Types :

       SUBTYPE ubyte IS INTEGER RANGE 0..255 ;

       TYPE text ( len : ubyte := 0 ) IS RECORD
          value : string ( 1..len ) ;
       END RECORD ;

--    Package Procedures :

--    set => Set text object to value of given string.
       PROCEDURE set ( x : OUT text ; y : STRING ) ;


==== ecsc41/ada_treepack.txt ====
-- Generic tree handling package.

    WITH text_io ; USE text_io ; -- make standard I/O available

    GENERIC

       TYPE elem IS PRIVATE ;
       WITH FUNCTION ">" ( x, y : elem ) RETURN BOOLEAN ;
       WITH PROCEDURE put ( x : elem ) ;

    PACKAGE tree_handler IS

-- Package Types :

    TYPE node ; -- full spec given later

    TYPE tree IS ACCESS node ; -- pointer type to node records

    TYPE node IS RECORD -- now give node record definition
       value : elem ;
       left  : tree ;

==== ecslib/emas-2900/toals_view_users1.txt ====
17/12/80 15.54.20 ERCLIB ERCLIB.LIBCONTENTS
17/12/80 16.08.46 ERCLIB NLC
17/12/80 16.59.38 ERCC04 PD13S
17/12/80 17.03.50 ERCC04 PD12S
17/12/80 17.07.53 EBFR12 ERCLIB.LIBCONTENTS
17/12/80 19.07.12 ECZU09 PD4
17/12/80 19.18.22 ECZU09 ERCLIB.LV_VIEWS
17/12/80 19.18.43 ECZU09 PD4
17/12/80 19.21.26 ECZU09 PD3
17/12/80 19.21.52 ECZU09 PD2
17/12/80 19.22.13 ECZU09 PD1
17/12/80 19.22.52 ECZU09 PDI
17/12/80 19.23.43 ECZU09 PDG
17/12/80 19.24.16 ECZU09 PDG
17/12/80 19.41.53 ECSLIB GT
17/12/80 19.49.30 ECSLIB ENCU73.TOAL
17/12/80 20.00.38 ECSLIB GT
17/12/80 20.04.33 ECSLIB GT
17/12/80 20.08.13 ECYU40 ERCLIB.VIEW
17/12/80 20.09.39 ECSLIB GT
17/12/80 20.28.20 ECZU85 KNTLIB.BASICPD

==== ecslib/emas-2900/toals_view_users2.txt ====
22/12/80 16.13.31 EXODUS ERCC04.WINE
22/12/80 16.41.43 ERCC08 ERCLIB.LV_VIEWS
22/12/80 19.43.29 ECSLIB GT
22/12/80 19.50.39 ECSLIB ERCLIB.VIEW
19/12/80 11.36.46 ECYU83 ECSLIB.PICS
19/12/80 11.38.03 ECYU83 PICS
19/12/80 11.42.03 ECYU83 ECZU36.BASIC_BASIC
19/12/80 11.43.58 ECYU83 ECSLIB.GT
19/12/80 11.45.07 ECYU83 ASSORT
19/12/80 11.45.34 ECYU83 DIRECTORY
19/12/80 11.46.49 ECYU83 ECZU36.BASIC_SUMA
19/12/80 11.47.31 ECYU83 DIRECTORY
19/12/80 11.51.21 ECZU36 ECSLIB.GT
19/12/80 11.52.26 ERCLIB T#L
19/12/80 11.58.31 ECYU83 ECSLIB.GT
19/12/80 11.59.05 ECZU36 ECSLIB.GT
19/12/80 12.02.10 ERCLIB T#L
19/12/80 12.06.22 ECYU83 ASSORT
19/12/80 12.11.41 ECYU83 DIRECTORY
19/12/80 12.13.01 ECYU83 DIRECTORY
19/12/80 12.14.50 ECYU83 ERCLIB.LIBCONTENTS

==== ecslib/emas-2900/toals_view_users3.txt ====
07/01/81 10.32.18 EMCT02 EMCT06.IMPVDOC
07/01/81 10.50.37 EMCT06 IMPVDOX
07/01/81 10.50.39 EMCT06 IMPVDOC
07/01/81 10.58.10 ECZU85 GU
07/01/81 11.10.47 ECSC20 O
07/01/81 11.10.55 ECSC20 0
07/01/81 11.10.59 ECSC20 ERCLIB.LV_VIEWS
07/01/81 11.26.06 ERCLIB T#L
07/01/81 11.27.01 ERCLIB ERCLIB.LIBCONTENTS
07/01/81 11.54.04 ERSY01 ERCLIB.LIBCONTENTS
07/01/81 11.56.14 ECSC20 ERCLIB.LV_VIEWS
07/01/81 12.06.08 ERCC04 PD13S
07/01/81 12.12.06 ERCC04 ZZ
07/01/81 12.19.58 ERCC04 VTEST
07/01/81 13.48.25 ERCC04 VTEST
07/01/81 13.49.47 ERCC04 VTEST
07/01/81 14.41.54 ECSC20 VIEWS
07/01/81 14.43.32 ECSC20 ERCC04.LIB
07/01/81 14.45.21 ERCC04 ERCLIB.VIEW
07/01/81 14.48.30 ERCC04 ERCLIB.VIEW
07/01/81 14.52.35 ERCC04 VTEST

==== ecslib/emas-2900/toals_view_users4.txt ====
14/01/81 16.31.21 ERCC04 PD13S
14/01/81 16.32.26 ECYU83 CONS
14/01/81 16.47.32 ECYU83 DIR
14/01/81 16.47.59 ECYU83 ERCLIB.LIBCONTENTS
14/01/81 16.54.29 ECYU20 JUNK
14/01/81 16.54.48 ECYU20 USERS
14/01/81 16.55.11 ECYU20 PROG
14/01/81 17.06.37 ECYU83 WERT
14/01/81 17.06.47 ECYU20 PROG
14/01/81 17.09.56 ECSC29 ERCLIB.LIBCONTENTS
14/01/81 17.17.04 ECYU83 CON
14/01/81 17.19.12 ECXU87 ERCLIB.LIBCONTENTS
14/01/81 17.23.59 ERCLIB ERCLIB.LIBCONTENTS
14/01/81 17.28.09 ECXU54 PAS
14/01/81 17.29.14 ECYU20 PROG
14/01/81 17.30.42 ECXU54 CONLIB
14/01/81 17.31.19 ECXU54 CHAR
14/01/81 17.32.06 ECXU54 COMMANDS
14/01/81 17.33.08 ECXU54 DIR
14/01/81 17.33.36 CONLIB ERCLIB.LIBCONTENTS
14/01/81 17.34.53 ECXU54 DIR

==== ecslib/emas-2900/toals_view_users5.txt ====
08/05/81 17.26.32 ERCC63 SUBSYS.VIEW
08/05/81 17.27.16 EMCT02 ERCC27.MAILHELP
08/05/81 17.29.11 EMCT02 ERCC27.MAILHELP
08/05/81 17.31.59 ECSC20 SUBSYS.VIEW
08/05/81 17.31.59 ECSC20 SCREED
08/05/81 17.33.18 ECSC20 KNTLIB.SCREEDDOC
08/05/81 17.38.13 ECSC04 SUBSYS.VIEW
08/05/81 17.38.13 ECSC04 ERCLIB.LIBCONTENTS
08/05/81 17.41.13 EBFU54 ERCC27.MAILHELP
08/05/81 17.44.03 ECSC20 SUBSYS.VIEW
08/05/81 17.44.03 ECSC20 SCREED
08/05/81 17.44.30 ECSC20 KNTLIB.SCREEDDOC
08/05/81 17.48.55 EMCT02 ERCC27.MAILHELP
08/05/81 17.54.22 ECSC20 SUBSYS.VIEW
08/05/81 17.54.22 ECSC20 SCREED
08/05/81 17.54.34 ECSC20 SUBSYS.VIEW
08/05/81 17.54.34 ECSC20 SCREED
08/05/81 17.55.06 ECSC20 SUBSYS.VIEW
08/05/81 17.55.06 ECSC20 SCREED
08/05/81 17.55.16 ECSC20 KNTLIB.SCREEDDOC
08/05/81 17.55.21 ECYU20 ERCC27.MAILHELP

==== ecslib/emas-2900/edwin_txstack.txt ====
{ EDWIN Transformation stack routines added }               %end %of %list

%constant %integer TRANSFORM STACK DEPTH = 100

%record %format TRANS FM (%real %array A (0:8))

%external %routine %spec UNITY TRANSFORM     %alias "EDWIN_UNITY_TX"     (%record (TRANSFM) %name T)
%external %routine %spec TRANSLATE TRANSFORM %alias "EDWIN_TRANSLATE_TX" (%real X, Y, %record (TRANSFM) %name T)
%external %routine %spec MIRROR X TRANSFORM  %alias "EDWIN_MIRROR_X_TX"  (%record (TRANSFM) %name T)
%external %routine %spec MIRROR Y TRANSFORM  %alias "EDWIN_MIRROR_Y_TX"  (%record (TRANSFM) %name T)
%external %routine %spec ROT DV TRANSFORM    %alias "EDWIN_ROT_DV_TX"    (%real A, B, %record (TRANSFM) %name T)
%external %routine %spec ROT ANG TRANSFORM   %alias "EDWIN_ROT_ANG_TX"   (%real ANGL, %record (TRANSFM) %name T)
%external %routine %spec COMPOSE TRANSFORM   %alias "EDWIN_COMPOSE_TX"   (%record (TRANSFM) %name TA, TB, TC)
%external %routine %spec SCALE TRANSFORM     %alias "EDWIN_SCALE_TX"     (%real XS, YS, %record (TRANSFM) %name T)

%external %routine %spec POP TRANSFORM       %alias "EDWIN_POP_TX"
%external %routine %spec PUSH TRANSFORM      %alias "EDWIN_PUSH_TX"      (%record (TRANSFM) %name T)
%external %routine %spec INIT TRANSFORM      %alias "EDWIN_INIT_TX"
%external %routine %spec PRINT TRANSFORM     %alias "EDWIN_PRINT_TX"     (%record (TRANSFM) %name T)
%external %routine %spec SET TRANSFORM       %alias "EDWIN_SET_TX"       (%record (TRANSFM) %name T)
%external %routine %spec GET TRANSFORM       %alias "EDWIN_GET_TX"       (%record (TRANSFM) %name TX)

==== ecslib/emas-2900/toals_view_users6.txt ====
22/05/81 14.12.17 ECUU36 SUBSYS.VIEW
22/05/81 14.12.17 ECUU36 ECSC20
22/05/81 14.12.56 ECUU36 ERCI34.CDOSUSERS
22/05/81 14.13.38 ECUU36 SUBSYS.VIEW
22/05/81 14.19.18 ECYU20 SUBSYS.VIEW
22/05/81 14.19.18 ECYU20 PROG
22/05/81 14.21.21 ECUU36 KNTLIB.SCREEDDOC
22/05/81 14.22.26 ECXU22 SUBSYS.VIEW
22/05/81 14.22.35 ECXU22 P8
22/05/81 14.26.13 ECUU36 SUBSYS.VIEW
22/05/81 14.26.19 ECUU36 ECSC20
22/05/81 14.35.03 ECSC06 SUBSYS.VIEW
22/05/81 14.35.03 ECSC06 ECSC19.STV
22/05/81 14.43.23 ERCC08 SUBSYS.VIEW
22/05/81 14.43.37 ERCC08 ERCC09.REPORTS
22/05/81 14.44.42 ERCC08 SUBSYS.VIEW
22/05/81 14.44.42 ERCC08 SUBSYS.VIEW
22/05/81 14.48.10 ERCI33 SUBSYS.VIEW
22/05/81 14.48.12 ERCI33 SSUREPORT
22/05/81 14.49.21 ERCI23 SUBSYS.VIEW
22/05/81 14.49.21 ERCI23 ERCLIB.LIBCONTENTS

==== ecslib/emas-2900/toals_view_users7.txt ====
03/07/81 23.25.23 ECSLIB ERCC27.MAILHELP
16/06/81 08.56.22 ECYU40 SUBSYS.VIEW
16/06/81 08.56.22 ECYU40 ERCC27.MAILHELP
16/06/81 09.00.16 ECYU40 SUBSYS.VIEW
16/06/81 09.00.16 ECYU40 ERCC63.PDSCREED
16/06/81 09.30.26 ERUA13 SUBSYS.VIEW
16/06/81 09.30.26 ERUA13 ERCI34.INFORMATION
16/06/81 09.31.25 ERUA13 ERUA14.INFORMATION
16/06/81 09.46.52 ERCM03 SUBSYS.VIEW
16/06/81 09.46.52 ERCM03 ERCC19.ADVISOR
16/06/81 09.55.40 ERCC04 SUBSYS.VIEW
16/06/81 09.55.42 ERCC04 DIRECTOR
16/06/81 10.12.44 ERCC04 SUBSYS.VIEW
16/06/81 10.12.44 ERCC04 LIBS
16/06/81 10.18.24 ERCM09 SUBSYS.VIEW
16/06/81 10.18.26 ERCM09 ERCLIB.LIBCONTENTS
16/06/81 10.21.39 ERCC04 SUBSYS.VIEW
16/06/81 10.21.39 ERCC04 LIBS2
16/06/81 10.27.52 ECZU09 SUBSYS.VIEW
16/06/81 10.27.52 ECZU09 T#LIST
16/06/81 10.32.12 ECZU09 SUBSYS.VIEW

==== ecslib/emas-2900/toals_view_users8.txt ====
20/07/81 20.44.17 ECSC03 ERCC27.MAILHELP
16/06/81 08.56.22 ECYU40 SUBSYS.VIEW
16/06/81 08.56.22 ECYU40 ERCC27.MAILHELP
16/06/81 09.00.16 ECYU40 SUBSYS.VIEW
16/06/81 09.00.16 ECYU40 ERCC63.PDSCREED
16/06/81 09.30.26 ERUA13 SUBSYS.VIEW
16/06/81 09.30.26 ERUA13 ERCI34.INFORMATION
16/06/81 09.31.25 ERUA13 ERUA14.INFORMATION
16/06/81 09.46.52 ERCM03 SUBSYS.VIEW
16/06/81 09.46.52 ERCM03 ERCC19.ADVISOR
16/06/81 09.55.40 ERCC04 SUBSYS.VIEW
16/06/81 09.55.42 ERCC04 DIRECTOR
16/06/81 10.12.44 ERCC04 SUBSYS.VIEW
16/06/81 10.12.44 ERCC04 LIBS
16/06/81 10.18.24 ERCM09 SUBSYS.VIEW
16/06/81 10.18.26 ERCM09 ERCLIB.LIBCONTENTS
16/06/81 10.21.39 ERCC04 SUBSYS.VIEW
16/06/81 10.21.39 ERCC04 LIBS2
16/06/81 10.27.52 ECZU09 SUBSYS.VIEW
16/06/81 10.27.52 ECZU09 T#LIST
16/06/81 10.32.12 ECZU09 SUBSYS.VIEW

==== ecslib/emas-2900/sints.txt ====

%ENDOFLIST
%CONSTSHORTINTEGERARRAY MAIN(1 : 359) =  %C
    1,    7,   13,   18,   22,   25,   29,   33,   37,   40,   47,   51,
   54,   59,   62,   65,   68,   72,   76,   80,   84,   90,   94,   98,
  103,  108,  113,  118,  122,  127,  135,  139,    0,  141,  144,  145,
  152,    0,  157,  159,  161,  163,    0,  165,  167,  168,  169,  174,
    0,  178,  181,  182,  186,  187,  188,  189,    0,  199,  202,    0,
  205,  206,  207,  209,    0,  211,  213,    0,  215,  218,    0,  220,
  226,  230,  233,  235,  238,  241,  243,  245,  247,  249,    0,  251,
  253,  254,  256,  257,  259,  261,  263,    0,  265,  267,  268,  269,
  272,  274,  275,  277,  279,  281,    0,  283,  285,    0,  287,  289,
    0,  291,  294,  298,  301,  303,  304,  305,  306,  308,  309,  311,
  312,    0,  316,  320,  321,  324,  325,  331,    0,  333,  338,  339,
  341,  343,  347,    0,  351,  353,  355,  356,  357,  359,  361,  363,
  365,  367,  369,  371,  373,  375,  377,  379,    0,  381,  382,  383,
    0,  389,  396,  402,  403,  409,  410,  416,  417,  419,  422,    0,
  424,  426,    0,  428,  435,  439,    0,  442,  444,  445,  447,  449,
  451,  453,  455,  457,  459,    0,  461,  464,    0,  466,  469,  472,
  476,  479,  481,  483,  485,  487,  490,  493,  495,  498,  501,  504,
  506,  508,  511,  514,  517,  521,  523,  525,  529,  534,  536,  538,

==== ecslib/emas-2900/edwin_shapes.txt ====
{ EDWIN Geometric utility routines added }                        %end %of %list

! Set up routines
%external %routine %spec SET WIRE MODE  %alias "EDWIN_SET_WIRE_MODE"  (%integer MODE)
%external %routine %spec SET COLOUR MAP %alias "EDWIN_SET_COLOUR_MAP" (%integer ADR, RED, BLUE, GREEN)

! Constants for wire modes
%constant %integer FLAT ENDS = 0
%constant %integer ROUND ENDS = 1
%constant %integer EXTENDED ENDS = 2

! Drawing routines
%external %routine %spec ARC            %alias "EDWIN_ARC"        (%integer OX, OY, RAD, START ANG, END AND)
%external %routine %spec SECTOR         %alias "EDWIN_SECTOR"     (%integer OX, OY, RAD, START ANG, END AND)
%external %routine %spec CIRCLE         %alias "EDWIN_CIRCLE"     (%integer RAD)
%external %routine %spec RECTANGLE      %alias "EDWIN_RECTANGLE"  (%integer XL, YL, XU, YU)
%external %routine %spec BOX            %alias "EDWIN_BOX"        (%integer L, W, %record (POINTFM) %name C, D)
%external %routine %spec WIRE           %alias "EDWIN_WIRE"       (%integer W, NP, %record (POINTFM) %array %name P)
%external %routine %spec POLYGON        %alias "EDWIN_POLYGON"    (%integer NP, %record (POINTFM) %array %name P)

%list;%end %of %file

==== ecslib/emas-2900/pics_mary.txt ====
 
 
 
 
        PPPPPP  EEEEEE      A      CCCCCC  EEEEEE     OOOOOO  N    N
        P    P  E          A A     C       E          O    O  NN   N
        PPPPPP  EEE       A   A    C       EEE        O    O  N N  N
        P       E        AAAAAAA   C       E          O    O  N  N N
        P       EEEEEE  A       A  CCCCCC  EEEEEE     OOOOOO  N   NN
 
                EEEEEE      A      RRRRRR  TTTTTTT  H    H
                E          A A     R    R     T     H    H
                EEE       A   A    RRRRRR     T     HHHHHH
                E        AAAAAAA   R   R      T     H    H
                EEEEEE  A       A  R    R     T     H    H
 
 
 
   MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
   MMMMMMMMMMMMMMMMMMMMMMMMMMMMHH  H HIIIIIHHHHMMMMMMMMMMMMMMMMMMMMMMMMM
   MMMMMMMMMMMMMMMMMMMMMMMMMMMHI888888888888888IIMMMMMMMMMMMMMMMMMMMMMMM

==== ecslib/emas-2900/oldgeneraly_toprinter.txt ====

   TOPRINTRONIX  <file name> / <device or file>

   This program was written by Mark Taunton to allow files produced by
programs such as LAYOUT to be sent to Printronix printers, with the
underlining converted to the format which the printer requires.
The input file must be a text file, and the output can either be a file
which may be sent to the required printer later by the command LIST,
or the name of a printer.

   eg.     TOPRINTRONIX FILE/NEWFILE
   or      TOPRINTRONIX FILE/.LP41

   The following commands are also provided which provide default output 
device names.

   TOLP41  <file>        TOLP15  <file>       TOLP78  <file>


==== ecslib/emas-2900/lpd_layupls.txt ====
$A TAB=5,10,15,30
$L1UM
@CHANGES TO .EMAS .LAYOUT
$A INDENT=1
$B$I0
1.
@NEW PARAMETER .INVO (OUTPUT CASE INVERT) DISTINCT FROM
.INVERT, WHICH NOW APPLIES ONLY TO INPUT. @THIS PERMITS
PROPER TREATMENT OF THE SITUATION WHERE DIFFERENT CASE
CONVENTIONS ARE REQUIRED IN THE INPUT AND UPDATED OUTPUT.
@THE DEFAULT SETTINGS ASSUME UPPER-CASE LETTERS PLUS CASE
MARKERS, WITH THE LETTERS SIGNIFYING LOWER-CASE UNLESS
GOVERNED BY A MARKER. @NORMAL UPPER AND LOWER-CASE REPRESENTATION
IS ACHIEVED BY .$$A$ CAP=0;$ CAPSH=0;$ INVERT=0 (FOR INPUT)
AND .$$A$ CAPO=0;$ CAPSHO=0;$ INVO=0 (FOR OUTPUT).
$B$I0
2.
$T1
$$@L0 IS INTERPRETED AS INTRODUCING AN INDEFINITE NUMBER OF EXPLICIT
LINES.
@THE EFFECT EXTENDS TO THE NEXT DIRECTIVE.

==== ecslib/emas-2900/deptfile.txt ====
$$
IMP77$
*IMP77LIB$
*IMP77AY$
IMP77PD$
RUN77S$
ROUTINES TO RUN IMP77 PROGRAMS
AND COMPILE THEM. NOTE IMP77 COMPILER ITSELF
IS NOT RELEASED TO CSDEPT YET.
$
P.ROBERTSON ECSC17
$
$$
EDWIN$
*EDWINLIB$
*TVIEW,*EDWINTY,*CALCOMP$
EDWINPD$
*TEKPAC,EDWINT,TVIEWSF,CALCOMPS$
Graphics package for any graphics terminal.
$
Gordon Hughes, ECSC01

==== ecslib/emas-2900/edwin_pspecs.txt ====
{ EDWIN procedure specs in PASCAL format.}

{ procedures for initialisation and termination}
procedure initialisefor       (devicetype : integer);                   extern;
procedure terminateedwin;                                               extern;

{ Output primitives}
procedure moveabs             (x,y : integer);                          extern;
procedure moverel             (dx,dy : integer);                        extern;
procedure lineabs             (x,y : integer);                          extern;
procedure linerel             (dx,dy : integer);                        extern;
procedure markerabs           (n,x,y : integer);                        extern;
procedure markerrel           (n,dx,dy : integer);                      extern;
procedure character           (sym : char);                             extern;

{ Control}
procedure newframe;                                                     extern;
procedure update;                                                       extern;
procedure storeon             (stream : integer);                       extern;
procedure storeoff;                                                     extern;
procedure viewon              (stream : integer);                       extern;

==== ecslib/emas-2900/lpd_ldocls.txt ====
$A MARK=2
$A PAGENO=1; JUST=1
$A TAB=12,20,28
$L1CUM
LAYOUT: DOCUMENT PRODUCTION PROGRAM


$P2 @THE BASIC FUNCTION OF .LAYOUT IS TO PRODUCE AN APPROPRIATELY PAGED AND
FORMATTED DOCUMENT FROM A SOURCE FILE IN WHICH THE REQUIRED LAYOUT IS
INDICATED BY %DIRECTIVES INTERSPERSED WITH THE TEXT; IN GENERAL, THE
SPACING AND LINE-STRUCTURE OF THE SOURCE ARE NOT SIGNIFICANT. @A
SECONDARY FUNCTION IS TO OUTPUT AN UPDATED SOURCE FILE SIMILAR TO THE
ORIGINAL EXCEPT THAT THE LINE-STRUCTURE FOLLOWS THAT OF THE FORMATTED
DOCUMENT (SUBJECT TO LIMITATIONS OF LINE LENGTH).
$P @IN ADDITION THE PROGRAM OPTIONALLY PROVIDES FOR THE APPLICATION OF
SHIFT CONVENTIONS TO THE SOURCE (AND UPDATED SOURCE) TO PERMIT THE
REPRESENTATION OF UPPER AND LOWER CASE LETTERS AND UNDERLINED CHARACTERS
WITHIN A RESTRICTED CHARACTER SET. @CODE CONVERSION IS UNDERSTOOD TO BE
CARRIED OUT OUTSIDE THE LAYOUT PROGRAM PROPER, WHICH USES A CHARACTER
SET IN WHICH BOTH UPPER AND LOWER CASE LETTERS AND UNDERLINED CHARACTERS
ARE REPRESENTED BY SINGLE CODES. @THIS CHARACTER SET IS FULL .ASCII

==== ecslib/emas-2900/generals_newuserss.txt ====
!TITLE Source of NEWUSERS
!<
%external %integer %fn %spec OUTPOS
%external %integer %fn %spec UINFI (%integer I)
%external %string (255) %fn %spec UINFS (%integer I)
%const %integer SYS PROCS = 5;          ! Number of system processes
%const %integer OCP TYPE = 10
%const %integer TERMINAL WIDTH = 15

%system %routine %spec FOR ALL USERS (%routine USE)
%system %string (255) %fn %spec USERNAME (%string(255) USER, %integer MACHINE)

%system %integer %fn  STOI (%string (255) S)
   %integer SYM
   %if LENGTH(S)>0 %start
      %result = - STOI (SUB STRING (S, 2, LENGTH(S))) %if CHARNO(S,1)='-' %and LENGTH(S)>1
      SYM = CHARNO(S,LENGTH(S))-'0'
      LENGTH(S) = LENGTH(S)-1
      %result = 10*STOI(S)+SYM
   %finish
   %result = 0

==== ecslib/emas-2900/pics_calender_december.txt ====
        



                                            XXXXXXXXXXXXX
                                         XXXX           XXXX
                                         X                  XXX
                                        XX                     XXX
                                       XX                         XX
                                      XX                            XX
                                     XX                               XX
                                    XX                                 XX
                                    XX                                  XX
                                    XX                                   XX
                                    XX                XXXX                XX
                         XXXXXXXXXX XX        X     X  XXX  X              XX
                     RRRR       XXX  X       XX    X X     X X             X
                 RRRRRRRRR      XXXXX XXXXXX XX XX X      X  X             X
              RRRRRRRRRRRR      XXX                 X      X X             X
            RRRRRRRRRRRRRRR     XXX                       X X              X
         X    RRRRRRRRRRRRRR    XXX                     X XX              XX

==== ecslib/emas-2900/lisp_release70.txt ====
IMP LISPSPDF_LISPRUNS70,LISPRUNY
INSERT LISPRUNY
PERMIT LISPRUNY,,R
IMP LISPSPDF_LISPV08S70,LISPV08Y
INSERT LISPV08Y
PERMIT LISPV08Y,,R
COPY LISPSPDF_INITLSP8,INITLISP
PERMIT INITLISP,,R

==== ecslib/emas-2900/edwin_device.txt ====
{ EDWIN internal procedures for device driver support }       %end %of %list

! EMAS specifics -
%dynamic %integer %fn %spec REM %alias "IMP_REM" (%integer A, B)
%dynamic %string (255) %fn %spec ItoS %alias "IMP_I_TO_S" (%integer I, P)
%dynamic %string (255) %fn %spec RtoS %alias "IMP_R_TO_S" (%long %real R, %integer A, B)
%dynamic %routine %spec Open Output %alias "IMP_OPEN_OUTPUT" (%integer N, %string (255) S)
%dynamic %routine %spec Close Output %alias "IMP_CLOSE_OUTPUT"

%dynamic %routine %spec OPER MESSAGE %alias "EDWIN_OPER_MESSAGE" (%string (255) S)
%dynamic %routine %spec OPER INTERACT %alias "EDWIN_OPER_INTERACT" (%string (255) S)

%external %integer %spec VIEWING        %alias "EDWIN___VIEWING"
%dynamic %routine %spec TEK INPUT      %alias "EDWIN___TEK_INPUT" (%integer %name State, X, Y, %integer INVOKE CURSOR)

%record %format DEV DATA FM (%integer DEV NO   { logical device number },
   %string (31) NAME         { Text name for the device                },
   %integer TYPE             { Model number of the device              },
   %integer ARF              { Aspect Rationing Factor as a percentage },
   %integer DVX, DVY         { Default Viewport X and Y                },
   %integer MVX, MVY         { Maximum Viewport X and Y                },

==== ecslib/emas-2900/pics_asterix.txt ====


+



+



+



+



+



==== ecslib/emas-2900/graph16s.txt ====
%EXTERNALROUTINE FLO(%STRING (63) S)
%STRING (63) INFILE, OUTFILE
%EXTERNALROUTINESPEC DEFINE(%STRING (63) S)
!
! FRONT PANEL USEAGE INFO.
!
%SHORTINTEGERARRAY PINS(0:63,1:38)
!
! PIN PARAMS. TO DRAWING ROUTINES
!
%INTEGERARRAY PICT(1 : 11)
%INTEGERARRAY POSITION(16 : 63)
%INTEGERARRAY LINK, DATA(1 : 1024)
%INTEGER STARTS, ASL, WIRES
%CONSTSTRING (1) SNL = '
'
!
! PIN USEAGE TEXT
!
%CONSTSTRING (11) %ARRAY TXT(-64 : 15) =                   %C
'START','FFCOMP','FFSET0','FFSET1','FFRDDATA','FFDATA',

==== ecslib/emas-2900/vlsiuse_nmos8.txt ====
IDENT *
ND  3  1  0  18
NP  4  2  0  15
NM  2  4  0  18
NI  6  8  0   5
NB  7  7  0   2
NC  1  0  0  10
NG  8 12  0   1
NT  1 15  0   1
NV  5 15  0   3
ZZZ

==== ecslib/emas-2900/generals_prints.txt ====
! TOPRINTRONIX  Mark Tauntons program to send files to line printers.

%external %routine %spec open output (%integer st, %string (255) file)
%external %routine %spec open input  (%integer st, %string (255) file)
%external %routine %spec close input
%external %routine %spec close output

%const %integer  max lines = 10
%const %integer  CR = 13

%external %routine TOPRINTRONIX (%string (255) PARM)
   %string(255) out, rline, sline, line, spaces
   %integer  term, outf, c, maxr, maxs, ms, mr, p
   %own %byte space = ' '

   %routine  READLINE (%string(*) %name line, %integername term)
      %integer  s
      line = ""
      %cycle
         read ch (s)
         term = s %and %return %if s = NL %or s = CR

==== ecslib/emas-2900/coms_release.txt ====
! Program to update a member of a commected PD file.
! Form :   RELEASE CHIMPY,GENERALY
! or       RELEASE ECSC10.CY,GENERALY_CHIMPY

%const %integer TRUE = 1, FALSE = 0

%external %routine %spec COPY (%string (255) PARM)
%external %routine %spec NEWGEN (%string (255) PARM)
%external %routine %spec VIEW (%string (255) PARM)

%external %routine RELEASE (%string (255) FILE)
   %byte VIEWING
   %string (255) NF,SF,PD
   %unless FILE -> SF.(",").PD %start
       Print string ("RELEASE fails - format is RELEASE ECSC10.CHIMPY,GENERALY!")
       newline
       %stop
   %finish
   VIEWING = FALSE
   VIEWING = TRUE %if PD -> PD.("!")
   %unless PD -> PD.("_").NF %start

==== ecslib/emas-2900/intexts.txt ====

!
!**************************************************
!*                                                *
!*    VARIOUS EXTERNAL ROUTINES FOR IMPI          *
!*                                                *
!***************************************************
!
%TRUSTEDPROGRAM
%EXTERNALINTEGER MON REP = 0;           ! REPETITION COUNTER FOR RESUMES
%EXTERNALBYTEINTEGER MONLOCK
%EXTRINSICINTEGER MONFRAME, MONINFO, BRKR9AD
%OWNSHORTINTEGER TRAP BLOCK, TRAP LINE
!

%EXTERNALROUTINE EXTINIT
          *MVI_4(13),X'55';             ! FLAG FOR MDIAG
%END

%EXTERNALROUTINE HEX(%INTEGER N)
%SHORTROUTINE

==== ecslib/emas-2900/pics_calender_september.txt ====



                XXXXXXXXXXXX   XXXXXXXXXXXXXXXXXXXX
             XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
            XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
           XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
           XXXXXXXXXXXXXXXXXX   XXXXXXXXXXXXXXXXXXXXXXXXXX
            XXXXXXXXXXXXX       XXXXXXXXXXXXXXXXXXXXXXXXXX
             XXXXXXXXXXXX       XXXXXXXXXXXXXXXXXXXXXXXXXXX
                 XXXXXXX       XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
                 X    X X       XXXXXXXXXXXXXXXXXXXXXXXXXXXX
                 X   X           XXXXXXXXXXXXXXXXXXXXXXXXXX
            XXXXX  X  X             X     XXXXXXXXXXXXXXXXX
          XX                              XXXXXXXXXXXXXXXX
            XX                       XXXXXXXXXXXXXXXXXXXX
            X                             XXXXXXXXXXXXXX
           X  XXXXXXXXX               XXXXXXXXXXXXXXXXX XXXXXX
            XX         X            XXXXXXXXXXXXXXXXXXXXXXXXXX
                        X          XXXXXXXXXXXXXXXXXXXXXXXXXXX
                       XX          XXXXXXXXXXXXXXXXXXXXXXXXXX

==== ecslib/emas-2900/pics_nell.txt ====
      The Ballad Of Eskimo Nell

When a man grows old and his balls grow cold
And the end of his knob turns blue
When it's bent in the middle like a one-stringed fiddle
He can tell you a yarn or two

So find me a seat and stand me a drink
And I'll tell you a tale as well
Of Dead-eyed Dick and Mexican Pete
And the gentle Eskimo Nell

Now when Dead-eyed Dick and Mexican Pete
Go forth in search of fun
It's usually Dick that wields the prick
And Mexican Pete the gun

And when Dead-eyed Dick and Mexican Pete
Are sore depressed and sad
'Tis usually the cunt that bears the brunt
But the shooting ain't so bad

==== ecslib/emas-2900/edwin_inc.txt ====
{ NB: Specs for Version 4 of EDWIN :  See ECSLIB.EDWIN_SPECS for latest info }
{ EDWIN routine specs added }                      %end %of %list

! Routines for initialisation and termination
%external %routine %spec INITIALISE FOR (%integer DEVICE TYPE)
%external %routine %spec TERMINATE EDWIN

! Output primitives
%external %routine %spec MOVE ABS (%integer X,Y)
%external %routine %spec MOVE REL (%integer DX,DY)
%external %routine %spec LINE ABS (%integer X,Y)
%external %routine %spec LINE REL (%integer DX,DY)
%external %routine %spec MARKER ABS (%integer N,X,Y)
%external %routine %spec MARKER REL (%integer N,DX,DY)
%external %routine %spec CHARACTER (%integer SYM)
%external %routine %spec TEXT (%string (255) ST)
%external %routine %spec TEXT COLOUR ESCAPE %alias "EDWIN_TEXT_COL_ESC" (%integer CH)
%external %routine %spec TEXT FONT ESCAPE %alias "EDWIN_TEXT_FONT_ESC" (%integer CH)

! Control
%external %routine %spec NEW FRAME

==== ecslib/emas-2900/vlsiuse_roller.txt ====
LAYERS P+D+M+C

==== ecslib/emas-2900/basicpd_bintrs.txt ====
    %BEGIN
!
!  DDDD     EEEEEE   BBBB     BBBB     II    EEEEEE
!  DD DD    EE       BB  BB   BB  BB   II    EE
!  DD  DD   EE       BB  BB   BB  BB   II    EE
!  DD  DD   EEEEEE   BBBB     BBBB     II    EEEEEE
!  DD  DD   EE       BB  BB   BB  BB   II    EE
!  DD DD    EE       BB  BB   BB  BB   II    EE
!  DDDD     EEEEEE   BBBB     BBBB     II    EEEEEE
!
!  De EdinBurgh Basic IntErpreter 
!  _  _   _     _     _  _
!***************************************************************
!***************************************************************
!**                                                           **
!**                 WILLIAM ALAN PATERSON                     **
!**                                                           **
!**                  COMPUTER SCIENCE 4 1974/75               **
!**                                                           **
!***************************************************************
!***************************************************************

==== ecslib/emas-2900/gamespd_destruct.txt ====
%EXTERNALROUTINE DESTRUCT
  %INTEGERARRAY AIR(-3:74,-3:21),MSX(1:2),MSY(1:2),U(1:3),V(1:3)
  %INTEGER PLX,PLY,HITS,X,Y
  %STRING(40) SEQ
  %ROUTINE INSTRUCT
    %ROUTINE P(%STRING(72) SEQ)
      PRINTSTRING(SEQ.SNL)
    %END
    P("  In this game there are two missiles, a plane and an air-base.")
    P("You control the plane and the missiles are controlled by the")
    P("computer. The object is to destroy the missiles before they")
    P("destroy the air-base. They will be diverted from doing this and")
    P("will attack you if you come too close. The game is at an end")
    P("when either the base is blown up, or you have blown up both")
    P("missiles. You may destroy your own base if you wish.")
    P("  To move your plane give instuctions like this: ")
    P("    W2S3 or W5N6 or E4S2                         N")
    P("        W=west, E=east, N=north, S=south.       W E")
    P("  You may move a maximum of 8 east or west       S")
    P("but only 6 north or south. The procedure is the same for")
    P("firing at the missiles. the count being taken from where")

==== ecslib/emas-2900/lisp_lispv06s.txt ====
%EXTERNALROUTINESPEC PROMPT(%STRING(15) S)
%EXTERNALROUTINESPEC CLOSE STREAM(%INTEGER N)
%EXTERNALROUTINESPEC DEFINE(%STRING(63) S)
%EXTERNALROUTINE LISP INTP(%INTEGER SPACE, INITMODE)
!
! ***** READ  ROUTINES *****
!
%INTEGERFNSPEC RATOM
%INTEGERFNSPEC READ SEXP(%STRING(15) PMPT)
!
! ***** PRINT ROUTINES *****
!
%ROUTINESPEC PRINT CHARS(%STRING(72) PHRASE)
%STRING(15)%FNSPEC NUMBER(%INTEGER I)
%STRING(72)%FNSPEC PNAME(%INTEGER INDEX)
%ROUTINESPEC PRINT(%INTEGER INDEX)
!
! ***** LISP  ROUTINES *****
!
%INTEGERFNSPEC PUSH(%INTEGER INDEX)
%INTEGERFNSPEC CONS(%INTEGER CAR, CDR)

==== ecslib/emas-2900/lpd_layout15.txt ====
%BEGIN;  !DOCUMENT LAYOUT PROGRAM
!SYMBOLIC CONSTANTS
%OWNINTEGER SIN=1;  !SOURCE INPUT STREAM
%OWNINTEGER ERR=0, DOC=1, SOUT=2;  !OUTPUT STREAMS
%OWNINTEGER LBOUND=200;  !LINE BUFF BOUND
%OWNINTEGER ABOUND=200;  !ATOM BUFF BOUND
%OWNINTEGER SBOUND=200;  !SOURCE LINE BUFF BOUND
%OWNINTEGER VBOUND=25;  !VECTOR (EG TAB) BOUND
%OWNINTEGER ESCBIT=256, UNDBIT=128, CASEBIT=32
%OWNINTEGER CHARMASK=255, BASICMASK=127, LETMASK=95
%OWNINTEGER SENTSP=544;  !512+' '
!LAYOUT PARAMETERS
%OWNINTEGER TOP=2, BOTTOM=4, LEFT=0, PAGE=60, LINE=72
%OWNINTEGER SLINE=80, NLS=1, SGAP=2, PGAP=3
%OWNINTEGER INDENT=0, SECTNO=0, PAGENO=0, START=1
%OWNINTEGER ESCAPE='$', CAP='@', UND='_', CAPSH='.', UNDSH='%'
%OWNINTEGER CAPO='@', UNDO='_', CAPSHO='.', UNDSHO='%'
%OWNINTEGER INVERT=32, ASCII=1, JUST=0, MARK=0
%OWNINTEGERARRAY TAB(0:25) = 1,9,17,25,33,41,49,57,65,73,81,
    89,97,105,113,121,129,137,145,153,161,169,177,185,193,201
%OWNINTEGERARRAY TEMPA(0:25) = 1,9,17,25,33,41,49,57,65,73,81,

==== ecslib/emas-2900/oldgeneraly_clean.txt ====
!TITLE CLEAN

!< General information

The command CLEAN can be used to inspect a users files, and perform
a variety of file management operations on them.  It can be used with
both forground and archived files, and also members of partitioned
files.   A number of options are provided to select which files are
to be 'cleaned'.


The command has the form :         CLEAN mask,options

MASK specifies which files names are to be cleaned -

     eg.       CLEAN SS#*
               CLEAN *TEST
               CLEAN PDFILE_MEM*
               CLEAN ECSLIB.CIF*
               CLEAN T*S


==== ecslib/emas-2900/pdp16pd_arthmans.txt ====

$A MARK=2;UNDSH='@';UND=0;NLS=2
$A CAP=0;CAPO=0;CAPSH=0;CAPSHO=0;INVERT=0;INVO=0
$A TOP=4;BOTTOM=8;UNDSHO='@';SLINE=72
$A LEFT=10;LINE=62;PAGE=52;JUST=1
$A TAB=6,11,16,21,31,41,26
$B10
$L1MU
USERS GUIDE TO A PDP_16 DESIGN AID
$B4
$L1UM
COMPUTER SCIENCE IV
$B
$L1MU
GROUP PROJECT 1974
$B
$L5M
A. ANDERSON
 M.A.C. CURRIE
 L.F. MARSHALL
  P.S. ROBERTSON

==== ecslib/emas-2900/generals_pdlists.txt ====
!TITLE Source of S#PD LIST
!<
%CONST %INTEGER    SS pd file type      = 6
%CONST %INTEGER    SS opt file type     = 9


!( S# pd list

%SYSTEM %ROUTINE pd list(%INTEGER start address, types wanted)

!    Prints the names of the members of the partitioned file
! connected at address 'start address' and their sub-members in turn.
!    Prints out the file-type for each member if 'types wanted' # 0
!)

%ROUTINE lower case(%STRING(255) Text)
%INTEGER each
   %IF LENGTH(Text)>1 %START
      %CYCLE each = 2,1,LENGTH(Text)
         CHARNO(Text,each) = CHARNO(Text,each)!!32 %C
            %IF 'A'<=CHARNO(Text,each)<='Z'

==== ecslib/emas-2900/lisp_lispv07s.txt ====
%EXTERNALROUTINESPEC PROMPT(%STRING(15) S)
%EXTERNALROUTINESPEC CLOSE STREAM(%INTEGER N)
%EXTERNALROUTINESPEC DEFINE(%STRING(63) S)
%EXTERNALROUTINE LISP INTP(%INTEGER SPACE, INITMODE)
!
! ***** READ  ROUTINES *****
!
%INTEGERFNSPEC RATOM
%INTEGERFNSPEC READ SEXP(%STRING(15) PMPT)
!
! ***** PRINT ROUTINES *****
!
%ROUTINESPEC PRINT CHARS(%STRING(72) PHRASE)
%STRING(15)%FNSPEC NUMBER(%INTEGER I)
%STRING(72)%FNSPEC PNAME(%INTEGER INDEX)
%ROUTINESPEC PRINT(%INTEGER INDEX)
!
! ***** LISP  ROUTINES *****
!
%INTEGERFNSPEC PUSH(%INTEGER INDEX)
%INTEGERFNSPEC CONS(%INTEGER CAR, CDR)

==== ecslib/emas-2900/generals_build_userbuild.txt ====
%conststring(1)snl="
"
%externalstring(63)%fnspec itos(%integer i,j)
%begin
!
!
%externalroutinespec open input(%integer st,%string(255)s)
%externalroutinespec open output(%integer st,%string(255)s)

   open input(1,"T#USERLIST")
   open output(2,"T#USERTEXT")
   select input(1)
   select output(2)

!
!
   %routine  read sequence(%string(*)%name s,%integer t)
      skip symbol %while next symbol=' '
      S=""
      S=S.next item %and skipsymbol %until next symbol=t
      skipsymbol

==== ecslib/emas-2900/toals_view_getusers.txt ====
%BEGIN
%INTEGER START,FIN
%INTEGER I
SELECTOUTPUT(1)
READ(START)
I = START+X'28'
FIN=START+X'2000'-2
%CYCLE
   %WHILE I<FIN %CYCLE
      %EXIT %IF BYTEINTEGER(I)='/'
      I=I+1
   %REPEAT
   %EXIT %IF I>=FIN
   I=I-3
   PRINTSTRING(STRING(I));NEWLINE
   I=I+BYTEINTEGER(I)
%REPEAT
%ENDOFPROGRAM

==== ecslib/emas-2900/vlsiuse_fiber.txt ====
LAYERS I+B+G

==== ecslib/emas-2900/generals_pdanals.txt ====
!TITLE Source of PD ANAL
!<
%SYSTEM %STRING %FN %SPEC FAILURE MESSAGE(%INTEGER FAULT)

%EXTERNAL %ROUTINE %SPEC DEFINE(%STRING(255) NUMBER NAME)
%EXTERNAL %ROUTINE %SPEC CLEAR(%STRING(255) NUMBER)

%SYSTEM %INTEGER %FN %SPEC pdaddr(%STRING(255) pdfile)
%SYSTEM %ROUTINE %SPEC pd list(%INTEGER CONNECT ADDRESS, %C
                                        TYPES FLAG)
!(PD ANAL
!   PDANAL  PDFILE, * / OUTPUT
!
!  PDFILE MAY BE TOP LEVEL FILE, OR A MEMBER OF ANOTHER PDFILE
! TO ANY DEPTH.
!
!  OUTPUT MAY BE A FILE, OR ONE OF ".OUT" OR ".TT"
! - ".OUT" MEANS THE CURRENTLY SELECTED OUTPUT STREAM,
! - ".TT"  MEANS THE INTERACTIVE TERMINAL.
!
!  * MEANS EXTRA DATA IS WANTED (FILE-TYPES OF MEMBERS)

==== ecslib/emas-2900/vlsiuse_ra4.txt ====
SIZE 19 28

==== ecslib/emas-2900/pics_santa.txt ====



                          O
                        DD
                       D  D
                      O    OO
                       D   O D
                        D O   DD
                        OO        D  OOOO
                        D     9  D  OO   O
       MMM             D      9 OOOOO     O
      MMMMM         MMM D       OOOO
     MM   MM     MOO           D   OO     O
    MM     MM   M OO          D     OOO   O
   MM      MMM M  OO         D       OOO   OO
  MM        MMM   OO        D          OOOOO
      MMMMMMM     OO       D
    MMMMMMMMM     OO      D
   MMM       D    OO     D
   MM       D     OO    D

==== ecslib/emas-2900/coms_back.txt ====
OPTION ITWIDTH=132

==== ecslib/emas-2900/lisp_lispv08s.txt ====
%EXTERNALROUTINESPEC PROMPT(%STRING(15) S)
%EXTERNALROUTINESPEC CLOSE STREAM(%INTEGER N)
%EXTERNALROUTINESPEC DEFINE(%STRING(63) S)
%EXTERNALROUTINE LISP INTP(%INTEGER SPACE, INITMODE)
!
! ***** READ  ROUTINES *****
!
%INTEGERFNSPEC RATOM
%INTEGERFNSPEC READ SEXP(%STRING(15) PMPT)
!
! ***** PRINT ROUTINES *****
!
%ROUTINESPEC PRINT CHARS(%STRING(72) PHRASE)
%STRING(15)%FNSPEC NUMBER(%INTEGER I)
%STRING(72)%FNSPEC PNAME(%INTEGER INDEX)
%ROUTINESPEC PRINT(%INTEGER INDEX)
!
! ***** LISP  ROUTINES *****
!
%INTEGERFNSPEC PUSH(%INTEGER INDEX)
%INTEGERFNSPEC CONS(%INTEGER CAR, CDR)

==== ecslib/emas-2900/pics_calender_april.txt ====


              ######         #####
            ##########     ##########
           ############   #############
          ############## ###############
         ############### ################
         ############### ################
         ############### ################
          ##########        ############
           #######            ########
            #####              #####
             ###                   ########
         ######                  ##########
      #########                 ############
    ############               #############
    #############             ##############
    ############### ##     #### ############
      ############ ############# ##########
       #########   #############   ######
         ######   ##############

==== ecslib/emas-2900/iperm.txt ====
%constinteger nl=10
%integermapspec integer(%integer a)
%realmapspec real(%integer a)
%string(*)%mapspec string(%integer a)
%record(*)%mapspec record(%integer a)
%bytemapspec byteinteger(%integer a)
%shortmapspec shortinteger(%integer a)
%halfmapspec halfinteger(%integer a)
%longintegermapspec longinteger(%integer a)
%longrealmapspec longreal(%integer a)
%longrealmapspec longlongreal(%integer a)
%bytemapspec length(%string(*)%name s)
%bytemapspec charno(%string(*)%name s,%integer n)
%integerfnspec addr(%name n)
%string(1)%fnspec tostring(%integer k)
%string(1)%fnspec nextitem
%integerfnspec nextch
%integerfnspec nextsymbol
%routinespec readch(%name n)
%routinespec readsymbol(%name n)
%routinespec readitem(%string(*)%name s)

==== ecslib/emas-2900/oldgeneraly_ecceview_preface.txt ====
!TITLE ECCE FOR VIDEOS

                 E C C E   F O R   V I D E O S

   This version of ECCE combines the capabilities of a conventional
context editor with many of the features of a screen editor.  It is
supported by the Department of Computer Science and comments are
welcomed.

   First-time users on EMAS should view the important points in the
section on IMPLEMENTATIONS.  Users who do not already have the Computer
Science library in their search list should give the once-only command
OPTION(SEARCHDIR=ECSLIB.GENERAL).  The command name is VECCE.

                                        Hamish Dewar  April 1983


==== ecslib/emas-2900/generals_widelists.txt ====
!TITLE  Source of WIDELIST
!<

%external %integer %fn %spec   UINFI (%integer PARM) { 15 = terminal width }
%SYSTEM %ROUTINE %SPEC         FILL(%INTEGER  LENGTH,START,CHARACTER)
%SYSTEM %ROUTINE %SPEC         IOCP(%INTEGER  EPNO,PARM)
%SYSTEM %ROUTINE %SPEC         P SYSMES(%INTEGER ROOT,ERROR)
%SYSTEM %STRING(15) %FN %SPEC  ITOS(%INTEGER I)
%SYSTEM %INTEGER %FN %SPEC     PSTOI(%STRING(15) S)
%EXTERNAL %INTEGER %FN %SPEC   RETURN CODE
%EXTERNAL %ROUTINE %SPEC       CLEAR(%STRING(255) STREAM)
%EXTERNAL %ROUTINE %SPEC       DEFINE(%STRING(255) STREAMS)
%EXTERNAL %ROUTINE %SPEC       DESTROY(%STRING(255) FILE)
%SYSTEM %ROUTINE %SPEC         SET F NAME(%STRING(255) S)
%EXTERNAL %ROUTINE %SPEC       SS F OFF
%EXTERNAL %ROUTINE %SPEC       SS F ON
%EXTERNAL %ROUTINE %SPEC       NEW SMFILE(%STRING(255) FILE AND SIZE)
%EXTERNAL %INTEGER %FN %SPEC   SM ADDR(%INTEGER CHANNEL, %INTEGER %NAME LENGTH)
%SYSTEM %INTEGER %FN %SPEC     PD ADDR(%STRING(255) FILE)
%EXTERNAL %ROUTINE %SPEC       PROMPT(%STRING(15) TEXT)


==== ecslib/emas-2900/gamespd_hang.txt ====
%END %OF %LIST; ! The list of Key words.
  %CONSTSTRING(15)%ARRAY WORDS(0:2233)="CABLE","BACON","ACIDS","AGAIN",
  "BANAL","CACTI","CANAL","BALLS","BEGIN","BATCH","BASIC","BANKS",
  "DANCE","ABOVE","BEING","EAGLE","CALLS","CHECK","BLACK","ABOUT",
  "CARDS","CHEAT","BEGUN","AMBER","DEATH","CASES","BELLS","ALARM",
  "ACTOR","BLANK","AFTER","BELOW","FACTS","CHILD","CELLO","CELLS",
  "DATES","ALGOL","FAILS","CLEAR","FAITH","EATEN","FALSE","BOARD",
  "BLIND","DEMON","DIGIT","BLOCK","CLASS","EDITS","DATUM","CLIMB",
  "BREAK","EARTH","COCOA","BRAND","CODES","CITED","CLAWS","ALLOW",
  "EIGHT","BOATS","IDEAS","COBOL","HANDS","BRAIN","CLOCK","FARMS",
  "ENDED","DEPTH","BIRTH","COALS","AMONG","ARMED","HEALS","HEART",
  "HAIRS","BRICK","CITES","HATED","COAST","FAULT","ASIAN","GIANT",
  "DISCS","BONES","ELBOW","FIFTH","HATES","CONIC","APRIL","BRING",
  "COMES","JEANS","FINDS","CLUBS","DISKS","BOOKS","HELLO","CONES",
  "DOING","FIFTY","HAPPY","CRIME","ARRAY","APPLY","FILMS","LEADS",
  "BUILD","HELPS","BULGE","FLOCK","FIRES","ERECT","IMAGE","GLASS",
  "LAKES","LEGAL","LAMBS","FREED","BOXES","GOALS","MAIDS","COULD",
  "DRINK","CYBER","LEAVE","LEARN","MAKES","FREES","HILLS","LARGE",
  "DRIVE","INDIA","BROWN","GIVEN","GREEK","FIRST","GREAT","COUNT",
  "GREEN","OCEAN","MARCH","GOING","GIVES","ENTER","FORCE","LAUGH",
  "FORGE","AUNTS","GIRLS","GRAVE","MATCH","PEACE","NAMED","FLOUR",

==== ecslib/emas-2900/oldgeneraly_compare.txt ====

   COMPARE input1,input2/output

Compares two text files, and lists the differences between
them on a line by line basis.  This is useful when editing
from one file to another, if you forget later which file
had the up to date information.

The /output is optional and defaults to the terminal.
The input files may be sub-sub-... members of a pdfile.


==== ecslib/emas-2900/iskimppd_iskimps.txt ====

%EXTERNALROUTINE ISKIMP(%STRING(63) S)
%ROUTINESPEC READ LINE
%INTEGERFNSPEC COMPARE(%INTEGER PSP)
%ROUTINESPEC SS
%ROUTINESPEC FAULT(%STRING(63) S)
%INTEGERFNSPEC CHNEXT
%INTEGERFNSPEC NEWCELL
%INTEGERFNSPEC RETURN CELL(%INTEGER I)
%ROUTINESPEC PRINT NAME(%INTEGER I)
%ROUTINESPEC PHEX(%INTEGER I,J)
%INTEGER I,J,AP,APP,TP,ASL,BTN,CHP,FAULTS,NL,LEVEL,CA,COMP,SCF,PARS
%INTEGER LOPR,ASSOPP,LSTPP
%OWNSHORTINTEGERARRAY PS(-1000:-573)=%C
   -997,-910,-855,-984, 201, 198,-775,-761, 212, 200, 197, 206,
   -910,-863,-872,-855,-980,   2,  58,-1000,-971, 198, 201, 206,
    201, 211, 200,-872,-855,-961, 201, 206, 212, 197, 199, 197,
    210,-717,-855,-955,-673,-654,   1,-647,-855,-950, 197, 206,
    196,-855,-943, 194, 197, 199, 201, 206,-855,-929, 197, 206,
    196, 207, 198, 208, 210, 207, 199, 210, 193, 205,-855,-924,
     42,   3,-599,-855,-918,  42,-841,   2,-578,-855,-913,  42,

==== ecslib/emas-2900/fundsjob.txt ====
whichemas
funds
donatefunds 5.00,ecsc17
documents
#connect edwin
#connect iperm

==== ecslib/emas-2900/edwin_specs.txt ====
{ EDWIN routine specs added }                                     %end %of %list

! Routines for initialisation and termination
%external %routine %spec INITIALISE FOR     %alias "EDWIN_INIT"          (%integer DEVICE TYPE)
%external %routine %spec TERMINATE EDWIN    %alias "EDWIN_TERM"

! Output primitives
%external %routine %spec MOVE ABS           %alias "EDWIN_MOVE_ABS"      (%integer X, Y)
%external %routine %spec MOVE REL           %alias "EDWIN_MOVE_REL"      (%integer DX, DY)
%external %routine %spec LINE ABS           %alias "EDWIN_LINE_ABS"      (%integer X, Y)
%external %routine %spec LINE REL           %alias "EDWIN_LINE_REL"      (%integer DX, DY)
%external %routine %spec MARKER ABS         %alias "EDWIN_MARK_ABS"      (%integer N, X, Y)
%external %routine %spec MARKER REL         %alias "EDWIN_MARK_REL"      (%integer N, DX, DY)
%external %routine %spec CHARACTER          %alias "EDWIN_CHAR"          (%integer SYM)

! Text output
%external %routine %spec TEXT               %alias "EDWIN_TEXT"          (%string (255) ST)
%external %routine %spec TEXT COLOUR ESCAPE %alias "EDWIN_TEXT_COL_ESC"  (%integer CH)
%external %routine %spec TEXT FONT ESCAPE   %alias "EDWIN_TEXT_FONT_ESC" (%integer CH)

! Control

==== ecslib/emas-2900/gamespd_drafts.txt ====
%EXTERNALROUTINE DRAUGHTS(%STRING(12) S)
%EXTERNALROUTINESPEC CPULIMIT (%STRING(255) S)
%EXTERNALROUTINESPEC PROMPT(%STRING(15) S)
%OWNINTEGER MOB WT = 6
%CONSTINTEGER TRUE =1, FALSE = 0

%OWNINTEGER BACK WT = 4
%OWNINTEGER CENT WT = 4
%OWNINTEGER ADV1 WT = 450
%OWNINTEGER ADV2 WT = 50
%OWNINTEGER CRAMP WT = 6
%OWNINTEGER MON = 'Q'
%OWNINTEGER A WIN = 0
%OWNINTEGER SEARCH LIMIT = 3
%OWNINTEGER CROWN = 1800
%OWNINTEGERARRAY BACK1(1:5) = 77, 75, 73, 71, 64
%OWNINTEGERARRAY BACK2(1:5) =  0,  2,  4,  6, 13
%OWNINTEGERARRAY CENTSQ(0:7) = 51, 53, 42, 44, 33, 35, 24, 26
%OWNINTEGERARRAY MOVE(0:7) =  9, 18, 11, 22, -9,-18,-11,-22
%OWNINTEGERARRAY PLAYER1(-1:26) =     'W',    1,  
   77,   75,   73,   71,   64,   66,   62,   60,   57,   55,   53,   51,

==== ecslib/emas-2900/edwin_icodes.txt ====
{ EDWIN Internal Code Deffinitions }                          %end %of %list

! Device Driver commands
%constant %integer dev initialise = 0
%constant %integer dev terminate  = 1
%constant %integer dev update     = 2
%constant %integer dev newframe   = 3
%constant %integer dev move       = 4
%constant %integer dev line       = 5
%constant %integer dev char       = 6
%constant %integer dev attribute  = 7
%constant %integer dev low wb     = 8
%constant %integer dev high wb    = 9
%constant %integer dev code 10    = 10
%constant %integer dev code 11    = 11
%constant %integer dev low box    = 12
%constant %integer dev high box   = 13
%constant %integer dev circle     = 14
%constant %integer dev code 15    = 15
%constant %integer MAX COM        = 15   { device commands from 0 to MAX COM }


==== ecslib/emas-2900/lpd_jlaydoc.txt ====



                    EDINBURGH REGIONAL COMPUTING CENTRE           September 1977



                     _____________________________________

                     LAYOUT: A DOCUMENT FORMATTING PROGRAM


   LAYOUT is a document formatting program, written in IMP.  Its input is a
character file consisting for the most part of the text of the document to be
produced.  This source file is read once by LAYOUT and the output document file
is produced as it is read.  Optionally, LAYOUT can also produce an updated
source file, the purpose of which is described later.

   The source file is treated as a sequence of 'text atoms' separated by
delimiters, a delimiter being any number of spaces or newlines or both.  A text
atom thus corresponds to a normal word, possibly followed by punctuation.  The
program reads the text atoms and places them one by one, separated by ______

                                                                      single
spaces, in a line buffer until the next text atom would exceed the line length

==== ecslib/emas-2900/edwin_reinsert.txt ====
newdirectory t#edwindir,400,4000
option activedir=t#edwindir
insert EDWIN_DDBBCY
insert EDWIN_DDCALRCOY
insert EDWIN_DDCATSY
insert EDWIN_DDCHASY
insert EDWIN_DDGIGIY
insert EDWIN_DDGP300Y
insert EDWIN_DDHPPLOTY
insert EDWIN_DDERCCHPY
insert EDWIN_DDHPTERMY
insert EDWIN_DDP300Y
insert EDWIN_DDSIGMAY
insert EDWIN_DDTEKY
insert EDWIN_DDWESTWY
insert EDWIN_DDX5AY
insert EDWIN_EDCONFIGY
insert EDWIN_EDWIN5Y
insert EDWIN_edtransy
insert edwin_fintery
insert edwin_pintery

==== ecslib/emas-2900/lisp_lispv08s70.txt ====
%EXTERNALROUTINESPEC PROMPT(%STRING(15) S)
%EXTERNALROUTINESPEC CLOSE STREAM(%INTEGER N)
%EXTERNALROUTINESPEC DEFINE(%STRING(63) S)
%EXTERNALROUTINE LISP INTP(%INTEGER SPACE, INITMODE)
!
! ***** READ  ROUTINES *****
!
%INTEGERFNSPEC RATOM
%INTEGERFNSPEC READ SEXP(%STRING(15) PMPT)
!
! ***** PRINT ROUTINES *****
!
%ROUTINESPEC PRINT CHARS(%STRING(72) PHRASE)
%STRING(15)%FNSPEC NUMBER(%INTEGER I)
%STRING(72)%FNSPEC PNAME(%INTEGER INDEX)
%ROUTINESPEC PRINT(%INTEGER INDEX)
!
! ***** LISP  ROUTINES *****
!
%INTEGERFNSPEC PUSH(%INTEGER INDEX)
%INTEGERFNSPEC CONS(%INTEGER CAR, CDR)

==== ecslib/emas-2900/include_pam.txt ====
%endoflist;  !PAM interface
%recordformat paminfo(%byte GROUPSEP,KEYFLAG, %short allflags,
                      %record(paminfo)%name params)
%external%record(paminfo)%mapspec PAM
%constinteger PAM NEWGROUP=1, PAM NODEFAULT=2, PAM MAJOR=4, PAM KEEPCASE=8,
              PAM INFILE=16, PAM OUTFILE=32
%external%routinespec DEFINE PARAM %alias "PAM_DEFSTRING" %c
          (%string(255) text, %string(*)%name variable, %integer flags)
%external%routinespec DEFINE INT PARAM %alias "PAM_DEFINT" %c
          (%string(255) text, %integername variable, %integer flags)
%external%routinespec DEFINE ENUM PARAM %alias "PAM_DEFENUM" %c
          (%string(255) text, %bytename variable, %integer flags)
%external%routinespec DEFINE BOOLEAN PARAMS %alias "PAM_DEFBOOL" %c
          (%string(255) text, %integername variable, %integer flags)
%external%routinespec PROCESS PARAMETERS %alias "PAM_PROCESS"(%string(255) parm)
%list;%endoffile

==== ecslib/emas-2900/edwin_pshapes.txt ====
{ EDWIN procedure specs for Pascal Geometric Utilities }

procedure SetWireMode  (mode : integer);                                Extern;
procedure SetColourMap (adr, red, blue, green : integer);               Extern;
procedure Circle       (rad : integer);                                 Extern;
procedure Rectangle    (xl, yl, xu, yu : integer);                      Extern;
procedure Box          (L, W : integer; var C, D : pointfm);            Extern;
procedure Wire         (W, NE : integer; var parray : pointa);          Extern;
procedure Polygon      (NE : integer; var parray : pointa);             Extern;

==== ecslib/emas-2900/generals_deletes.txt ====
! A DELETE command for EMAS
! Gordon Hughes, September 1982
! The file fitting code from J. Wexler

%const %integer SSPDFILETYPE = 6
%record %format ARF (%string (31) NAME, %integer TYPE %or %string (11) SNAME, %integer SP12, KBYTES,
    %byte %integer ARCH, CODES, CCT, OWNP, EEP, USE, CODES2, SSBYTE, FLAGS, SP29, SP30, SP31)
%record %format PDHF (%integer DATAEND, DATASTART, SIZE, FILETYPE, SUM, DATETIME, ADIR, COUNT)
%record %format RF (%integer CONAD, FILETYPE, DATASTART, DATAEND)
%record %format AFRECF (%string (11) NAME, %integer KBYTES, %string (8) DATE, %string (6) TAPE, %INTEGER CHAPTER, FLAGS)
%system %routine %spec PRINTMESS (%integer M)
%system %integer %fn %spec STOREMATCH (%integer L, A1, A2)
%system %routine %spec MOVE (%integer LENGTH, FROM, TO)
%external %integer %fn %spec DFILENAMES (%string (6) USER,
   %record (AFRECF) %array %name INF, %integer %name FILENUM, MAXREC, NFILES, %integer FSYS, TYPE)
%external %integer %fn %spec DDESTROY (%string (6) USER, %string (11) FILE,
   %string (8) DATE, %integer FSYS, TYPE)
%system %routine %spec SETWORK (%integer %name AD, FLAG)
%system %integer %map %spec COMREG (%integer I)
%system %routine %spec CONNECT (%string (31) FILE, %integer MODE, HOLE, PROT, %record (RF) %name R, %INTEGER %NAME FLAG)
%external %integer %fn %spec UINFI (%integer I)

==== ecslib/emas-2900/lpd_hlaydcls.html ====
<html><head></head><body><pre>
<hr>

                  <em>layout: document production program</em>


   The basic function of LAYOUT is to produce an  appropriately  paged
and  formatted  document from a source file in which the required layout
is indicated by <em>directives</em> interspersed with the text; in  general,  the
spacing  and  line-structure  of  the  source  are  not  significant. A
secondary function is to output an updated source file  similar  to  the
original  except  that  the line-structure follows that of the formatted
document (subject to limitations of line length).

   In addition the program optionally provides for the  application  of
shift  conventions  to  the  source  (and  updated source) to permit the
representation of upper and lower case letters and underlined characters
within a restricted character set. Code conversion is understood to  be
carried  out  outside  the layout program proper, which uses a character
set in which both upper and lower case letters and underlined characters
are represented by single codes. This  character  set  is  full  ASCII

==== ecslib/emas-2900/gt_view_users1.txt ====
17/12/80 15.54.20 ERCLIB ERCLIB.LIBCONTENTS
17/12/80 16.08.46 ERCLIB NLC
17/12/80 16.59.38 ERCC04 PD13S
17/12/80 17.03.50 ERCC04 PD12S
17/12/80 17.07.53 EBFR12 ERCLIB.LIBCONTENTS
17/12/80 19.07.12 ECZU09 PD4
17/12/80 19.18.22 ECZU09 ERCLIB.LV_VIEWS
17/12/80 19.18.43 ECZU09 PD4
17/12/80 19.21.26 ECZU09 PD3
17/12/80 19.21.52 ECZU09 PD2
17/12/80 19.22.13 ECZU09 PD1
17/12/80 19.22.52 ECZU09 PDI
17/12/80 19.23.43 ECZU09 PDG
17/12/80 19.24.16 ECZU09 PDG
17/12/80 19.41.53 ECSLIB GT
17/12/80 19.49.30 ECSLIB ENCU73.TOAL
17/12/80 20.00.38 ECSLIB GT
17/12/80 20.04.33 ECSLIB GT
17/12/80 20.08.13 ECYU40 ERCLIB.VIEW
17/12/80 20.09.39 ECSLIB GT
17/12/80 20.28.20 ECZU85 KNTLIB.BASICPD

==== ecslib/emas-2900/gt_view_users2.txt ====
22/12/80 16.13.31 EXODUS ERCC04.WINE
22/12/80 16.41.43 ERCC08 ERCLIB.LV_VIEWS
22/12/80 19.43.29 ECSLIB GT
22/12/80 19.50.39 ECSLIB ERCLIB.VIEW
19/12/80 11.36.46 ECYU83 ECSLIB.PICS
19/12/80 11.38.03 ECYU83 PICS
19/12/80 11.42.03 ECYU83 ECZU36.BASIC_BASIC
19/12/80 11.43.58 ECYU83 ECSLIB.GT
19/12/80 11.45.07 ECYU83 ASSORT
19/12/80 11.45.34 ECYU83 DIRECTORY
19/12/80 11.46.49 ECYU83 ECZU36.BASIC_SUMA
19/12/80 11.47.31 ECYU83 DIRECTORY
19/12/80 11.51.21 ECZU36 ECSLIB.GT
19/12/80 11.52.26 ERCLIB T#L
19/12/80 11.58.31 ECYU83 ECSLIB.GT
19/12/80 11.59.05 ECZU36 ECSLIB.GT
19/12/80 12.02.10 ERCLIB T#L
19/12/80 12.06.22 ECYU83 ASSORT
19/12/80 12.11.41 ECYU83 DIRECTORY
19/12/80 12.13.01 ECYU83 DIRECTORY
19/12/80 12.14.50 ECYU83 ERCLIB.LIBCONTENTS

==== ecslib/emas-2900/gt_view_users3.txt ====
07/01/81 10.32.18 EMCT02 EMCT06.IMPVDOC
07/01/81 10.50.37 EMCT06 IMPVDOX
07/01/81 10.50.39 EMCT06 IMPVDOC
07/01/81 10.58.10 ECZU85 GU
07/01/81 11.10.47 ECSC20 O
07/01/81 11.10.55 ECSC20 0
07/01/81 11.10.59 ECSC20 ERCLIB.LV_VIEWS
07/01/81 11.26.06 ERCLIB T#L
07/01/81 11.27.01 ERCLIB ERCLIB.LIBCONTENTS
07/01/81 11.54.04 ERSY01 ERCLIB.LIBCONTENTS
07/01/81 11.56.14 ECSC20 ERCLIB.LV_VIEWS
07/01/81 12.06.08 ERCC04 PD13S
07/01/81 12.12.06 ERCC04 ZZ
07/01/81 12.19.58 ERCC04 VTEST
07/01/81 13.48.25 ERCC04 VTEST
07/01/81 13.49.47 ERCC04 VTEST
07/01/81 14.41.54 ECSC20 VIEWS
07/01/81 14.43.32 ECSC20 ERCC04.LIB
07/01/81 14.45.21 ERCC04 ERCLIB.VIEW
07/01/81 14.48.30 ERCC04 ERCLIB.VIEW
07/01/81 14.52.35 ERCC04 VTEST

==== ecslib/emas-2900/gt_view_users4.txt ====
14/01/81 16.31.21 ERCC04 PD13S
14/01/81 16.32.26 ECYU83 CONS
14/01/81 16.47.32 ECYU83 DIR
14/01/81 16.47.59 ECYU83 ERCLIB.LIBCONTENTS
14/01/81 16.54.29 ECYU20 JUNK
14/01/81 16.54.48 ECYU20 USERS
14/01/81 16.55.11 ECYU20 PROG
14/01/81 17.06.37 ECYU83 WERT
14/01/81 17.06.47 ECYU20 PROG
14/01/81 17.09.56 ECSC29 ERCLIB.LIBCONTENTS
14/01/81 17.17.04 ECYU83 CON
14/01/81 17.19.12 ECXU87 ERCLIB.LIBCONTENTS
14/01/81 17.23.59 ERCLIB ERCLIB.LIBCONTENTS
14/01/81 17.28.09 ECXU54 PAS
14/01/81 17.29.14 ECYU20 PROG
14/01/81 17.30.42 ECXU54 CONLIB
14/01/81 17.31.19 ECXU54 CHAR
14/01/81 17.32.06 ECXU54 COMMANDS
14/01/81 17.33.08 ECXU54 DIR
14/01/81 17.33.36 CONLIB ERCLIB.LIBCONTENTS
14/01/81 17.34.53 ECXU54 DIR

==== ecslib/emas-2900/gt_view_users5.txt ====
08/05/81 17.26.32 ERCC63 SUBSYS.VIEW
08/05/81 17.27.16 EMCT02 ERCC27.MAILHELP
08/05/81 17.29.11 EMCT02 ERCC27.MAILHELP
08/05/81 17.31.59 ECSC20 SUBSYS.VIEW
08/05/81 17.31.59 ECSC20 SCREED
08/05/81 17.33.18 ECSC20 KNTLIB.SCREEDDOC
08/05/81 17.38.13 ECSC04 SUBSYS.VIEW
08/05/81 17.38.13 ECSC04 ERCLIB.LIBCONTENTS
08/05/81 17.41.13 EBFU54 ERCC27.MAILHELP
08/05/81 17.44.03 ECSC20 SUBSYS.VIEW
08/05/81 17.44.03 ECSC20 SCREED
08/05/81 17.44.30 ECSC20 KNTLIB.SCREEDDOC
08/05/81 17.48.55 EMCT02 ERCC27.MAILHELP
08/05/81 17.54.22 ECSC20 SUBSYS.VIEW
08/05/81 17.54.22 ECSC20 SCREED
08/05/81 17.54.34 ECSC20 SUBSYS.VIEW
08/05/81 17.54.34 ECSC20 SCREED
08/05/81 17.55.06 ECSC20 SUBSYS.VIEW
08/05/81 17.55.06 ECSC20 SCREED
08/05/81 17.55.16 ECSC20 KNTLIB.SCREEDDOC
08/05/81 17.55.21 ECYU20 ERCC27.MAILHELP

==== ecslib/emas-2900/gt_view_users6.txt ====
22/05/81 14.12.17 ECUU36 SUBSYS.VIEW
22/05/81 14.12.17 ECUU36 ECSC20
22/05/81 14.12.56 ECUU36 ERCI34.CDOSUSERS
22/05/81 14.13.38 ECUU36 SUBSYS.VIEW
22/05/81 14.19.18 ECYU20 SUBSYS.VIEW
22/05/81 14.19.18 ECYU20 PROG
22/05/81 14.21.21 ECUU36 KNTLIB.SCREEDDOC
22/05/81 14.22.26 ECXU22 SUBSYS.VIEW
22/05/81 14.22.35 ECXU22 P8
22/05/81 14.26.13 ECUU36 SUBSYS.VIEW
22/05/81 14.26.19 ECUU36 ECSC20
22/05/81 14.35.03 ECSC06 SUBSYS.VIEW
22/05/81 14.35.03 ECSC06 ECSC19.STV
22/05/81 14.43.23 ERCC08 SUBSYS.VIEW
22/05/81 14.43.37 ERCC08 ERCC09.REPORTS
22/05/81 14.44.42 ERCC08 SUBSYS.VIEW
22/05/81 14.44.42 ERCC08 SUBSYS.VIEW
22/05/81 14.48.10 ERCI33 SUBSYS.VIEW
22/05/81 14.48.12 ERCI33 SSUREPORT
22/05/81 14.49.21 ERCI23 SUBSYS.VIEW
22/05/81 14.49.21 ERCI23 ERCLIB.LIBCONTENTS

==== ecslib/emas-2900/gt_view_users7.txt ====
03/07/81 23.25.23 ECSLIB ERCC27.MAILHELP
16/06/81 08.56.22 ECYU40 SUBSYS.VIEW
16/06/81 08.56.22 ECYU40 ERCC27.MAILHELP
16/06/81 09.00.16 ECYU40 SUBSYS.VIEW
16/06/81 09.00.16 ECYU40 ERCC63.PDSCREED
16/06/81 09.30.26 ERUA13 SUBSYS.VIEW
16/06/81 09.30.26 ERUA13 ERCI34.INFORMATION
16/06/81 09.31.25 ERUA13 ERUA14.INFORMATION
16/06/81 09.46.52 ERCM03 SUBSYS.VIEW
16/06/81 09.46.52 ERCM03 ERCC19.ADVISOR
16/06/81 09.55.40 ERCC04 SUBSYS.VIEW
16/06/81 09.55.42 ERCC04 DIRECTOR
16/06/81 10.12.44 ERCC04 SUBSYS.VIEW
16/06/81 10.12.44 ERCC04 LIBS
16/06/81 10.18.24 ERCM09 SUBSYS.VIEW
16/06/81 10.18.26 ERCM09 ERCLIB.LIBCONTENTS
16/06/81 10.21.39 ERCC04 SUBSYS.VIEW
16/06/81 10.21.39 ERCC04 LIBS2
16/06/81 10.27.52 ECZU09 SUBSYS.VIEW
16/06/81 10.27.52 ECZU09 T#LIST
16/06/81 10.32.12 ECZU09 SUBSYS.VIEW

==== ecslib/emas-2900/gt_view_users8.txt ====
20/07/81 20.44.17 ECSC03 ERCC27.MAILHELP
16/06/81 08.56.22 ECYU40 SUBSYS.VIEW
16/06/81 08.56.22 ECYU40 ERCC27.MAILHELP
16/06/81 09.00.16 ECYU40 SUBSYS.VIEW
16/06/81 09.00.16 ECYU40 ERCC63.PDSCREED
16/06/81 09.30.26 ERUA13 SUBSYS.VIEW
16/06/81 09.30.26 ERUA13 ERCI34.INFORMATION
16/06/81 09.31.25 ERUA13 ERUA14.INFORMATION
16/06/81 09.46.52 ERCM03 SUBSYS.VIEW
16/06/81 09.46.52 ERCM03 ERCC19.ADVISOR
16/06/81 09.55.40 ERCC04 SUBSYS.VIEW
16/06/81 09.55.42 ERCC04 DIRECTOR
16/06/81 10.12.44 ERCC04 SUBSYS.VIEW
16/06/81 10.12.44 ERCC04 LIBS
16/06/81 10.18.24 ERCM09 SUBSYS.VIEW
16/06/81 10.18.26 ERCM09 ERCLIB.LIBCONTENTS
16/06/81 10.21.39 ERCC04 SUBSYS.VIEW
16/06/81 10.21.39 ERCC04 LIBS2
16/06/81 10.27.52 ECZU09 SUBSYS.VIEW
16/06/81 10.27.52 ECZU09 T#LIST
16/06/81 10.32.12 ECZU09 SUBSYS.VIEW

==== ecslib/emas-2900/coms_edwin.txt ====
newdirectory t#edwindir,500,2000
option activedir=t#edwindir
insert conlib.edwin_imp77liby
insert conlib.edwin_missingy
insert conlib.edwin_c963y
insert conlib.edwin_catsy
insert conlib.edwin_chasy
insert conlib.edwin_down11y
insert conlib.edwin_forrtsy
insert conlib.edwin_hp2648y
insert conlib.edwin_obj
insert conlib.edwin_hqchary
insert conlib.edwin_p300y
insert conlib.edwin_hpploty
insert conlib.edwin_shapesy
insert conlib.edwin_t4000Y
insert conlib.edwin_transfy
insert conlib.edwin_pdfdecy
insert conlib.edwin_viewpdfy
insert conlib.edwin_viewrcoy
insert conlib.edwin_imp77liby

==== ecslib/emas-2900/generals_assigns.txt ====
! Procedures to emulate the VMS Logical name system on the EMAS profile system.
! J. Gordon Hughes,  April 1983

%external %routine %spec READ PROFILE (%string (11) KEY, %name INFO,
                                       %integer %name VERSION, FLAG)
%external %routine %spec WRITE PROFILE (%string (11) KEY, %name INFO,
                                        %integer %name VERSION, FLAG)
%external %routine %spec PROMPT (%string (63) TEXT)

%external %string (255) %fn TRANSLATE %alias "IMP_TRANSLATE" (%string (255) S)
   %integer VSN, FLAG
   %string (255) TX
   LENGTH(S)=11 %if LENGTH(S)>11
   READ PROFILE (S, TX, VSN, FLAG)
   %result = S %if VSN=0
   %result = TX
%end

%external %integer %function SET LOGICAL %alias "IMP_SET_LOGICAL" ( %c
                           %string(63) Lognam, Eqlnam )
   %integer VSN, FLAG

==== ecslib/emas-2900/vlsiuse_gp15.txt ====
device 7220
ident nb 5
ident ni 6

==== ecslib/emas-2900/pics_redbaron.txt ====
                                      00000
                                    00    000000
                                   00       00  0
                                 000  000000  00 0
                                0000 000000000 00 0
                              00000 00000000000 0 00                           000000000
                             00 00 000000000000  0 00                       000         000
                           00  00  0000000000000  000                     00               00
                          00   00 000000000000000 000                   00                   0
                        00     00 000000000000000 000                 00                      0
                       00      0  00000000000000  00000             00                         0
                      00       0  00000000000000  00  000        000                            0
                     00        0   0000000000000  0      000000000                               0
                     0         0   000000000000   0                                               0
                    0          0    0000000000   0                                                 0 00000
                    0          0     00000000   0      00                                          000   00
                   00           0     000000   0       000                                          0     0
                   0            0            000       0000                                         0 000  0
                  00             0         00 0        0000                                         000000 0
                  00              00     00  0          000                                          00000 0
                  0              00000000   0           000                                          0000000

==== ecslib/emas-2900/pics_venus.txt ====
     .............................................................................................................................
     .............................................................................................................................
     ................................******.......................................................................................
     .................       **. ..:....::****....................................................................................
     ...............        .:***.     .********..................................................................................
     .............           .:***:    """""""****................................................................................
     ............               ""::       ..:*****...............................................................................
     ...........                   ::   ::**********..............................................................................
     ..........                 .".:*  .::***********.............................................................................
     .........                  .:****:::::::""******.............................................................................
     .......                   .:***: .*::::::::"""***............................................................................
     ......          .......   ..::    .::::..::.::""***..........................................................................
     ......         .     ... ...      .::::..:::.::::***.........................................................................
     ......       .    ......"          .::::.::::::*::***........................................................................
     ......     .    ...  ."             .::.::****.*:****........................................................................
     ....      .       ..:               .:::::*****.::***........................................................................
     ....       .     ..:                .**.".***:*.:..**........................................................................
     ....         ... :.          ...:.. .**."***:::*::****.......................................................................
     .....     .     ..:       .:"::**:. ..***:::".::.::***.......................................................................
     ......      ....  :     ."".:.*:**:  .***""".:::::***........................................................................
     ......           .:      ::".::"*"   .:**::::*:*::**.........................................................................

==== ecslib/emas-2900/vlsiuse_gp23.txt ====
device 963

==== ecslib/emas-2900/include_maths.txt ====
! Additional Imp Maths Constants
%const %real DtoR = 57.2958
%const %real    e = 2.7182818285

==== ecslib/emas-2900/edwin_consts.txt ====
{ EDWIN constant definitions }                         %end %of %list

! Colours
%constant %byte Video Black = 0, Video White = 1
%constant %byte Blank       = 0
%constant %byte Black       = 1
%constant %byte Blue        = 2
%constant %byte Green       = 3
%constant %byte Red         = 4
%constant %byte Purple      = 5
%constant %byte Yellow      = 6
%constant %byte Lime        = 7
%constant %byte Brown       = 8
%constant %byte Turquoise   = 9

! Colour Modes
%constant %byte Replace Mode = 0
%constant %byte And Mode     = 1
%constant %byte Or Mode      = 2
%constant %byte Xor Mode     = 3
%constant %byte Invert Mode  = 4

==== ecslib/emas-2900/dcappd_dcapas.txt ====

%EXTERNALROUTINE DCAPA(%STRING(63) PAR)
%ROUTINESPEC READ LINE
%INTEGERFNSPEC COMPARE(%INTEGER PSP)
%ROUTINESPEC SS
%ROUTINESPEC FILL(%SHORTINTEGERARRAYNAME D,%INTEGER FROM,TO,VAL)
%SHORTINTEGERARRAYFORMAT SF(0:32759)
%SHORTINTEGERARRAYNAME S,ED,AD,BD,CD
%SHORTINTEGERNAME SP,EDP,ADP,BDP
%SHORTINTEGERARRAY A,NP(1:1004)
%BYTEINTEGERARRAY T(1:1000)
%SHORTINTEGERARRAY IV(0:72)   ;! ALLOWS 8 NESTING LEVELS
%SHORTINTEGER IVP
%INTEGER AP,TP,I,J,DEF,FIRSTINFO,FAULTS,ELNUM,DUMMY,DCAPFAD
%OWNINTEGER LASTLINK=11
%EXTERNALROUTINESPEC DEFINE(%STRING(63) S)
%SYSTEMROUTINESPEC OUTFILE(%STRING(15) S,%INTEGER LENGTH,MAX,PROT, %C
 %INTEGERNAME CONAD,FLAG)
%STRING(63) P,Q,R,TAPE
%OWNSHORTINTEGERARRAY PS(-1000:-518)= %C
-997,-933,-522,-993,-678,-811,-522,-988,   1,  58,-852,-522,

==== ecslib/emas-2900/vlsiuse_state.txt ====
version
device ?
layers ?
level ?
window ?
rotate ?
scale ?
setlam ?

==== ecslib/emas-2900/vlsiuse_cmos.txt ====
IDENT *
CA  3  1  0   2
CP  4  2  0   7
CM  2  4  0   8
CW  4  8  1   1
CS  3  7  1   3
CC  1  0  0   6
CV  1 15  0   3
CG  1 12  0   1
CD  3  1  3   7
CN  3  7  4   1
CT  1 15  0   1
ZZZ

==== ecslib/emas-2900/ispecs.txt ====
%ENDOFLIST
%REALSLONG
!
%EXTERNALROUTINESPEC READ SEQUENCE(%STRINGNAME S,%STRING(1)T)
%EXTERNALSTRINGFNSPEC TIDIED(%STRING(255)S)
%EXTERNALSTRINGFNSPEC ITOS(%INTEGER N,DP)
%EXTERNALINTEGERFNSPEC STOI(%STRING(31)S)
%EXTERNALSTRINGFNSPEC SP (%INTEGER N)
%EXTERNALSTRINGFNSPEC NEXT ITEM
%EXTERNALSTRINGFNSPEC NEXT SIG ITEM
%EXTERNALSTRINGFNSPEC SEM
!
%EXTERNALINTEGERFNSPEC NEXT SYMBOL
%EXTERNALINTEGERFNSPEC NEXT SIG SYMBOL
%EXTERNALINTEGERFNSPEC EM
!
%EXTERNALREALFNSPEC CPU TIME
%EXTERNALSTRINGFNSPEC TIME
%EXTERNALSTRINGFNSPEC DATE
%EXTERNALROUTINESPEC SKIP ITEM
%EXTERNALREALFNSPEC RANDOM REAL

==== ecslib/emas-2900/gamespd_wumpus.txt ====
%EXTERNALROUTINE WUMPUS (%STRING(255) PARMZZZ)
 %EXTERNALROUTINESPEC PROMPT(%STRING(15)S)
 %EXTERNALSTRINGFNSPEC TIME
 %INTEGERFNSPEC FNR(%INTEGER I)
 %INTEGERARRAY R(1:20,1:3),BOG(1:20)
 %ROUTINE DRAIN
  SKIP SYMBOL %WHILE NEXT SYMBOL#NL ; SKIP SYMBOL
  %END
 %INTEGERFN GETANS
  %INTEGER SYM
   SKIP SYMBOL %WHILE 'N'#NEXTSYMBOL&95#'Y'
   SYM=NEXTSYMBOL&95 ; DRAIN ; %RESULT=SYM
  %END
 %ROUTINE GET REQUEST(%INTEGERNAME SYM)
  %CYCLE
   SYM=NEXTCH
   %IF '0'<=SYM<='9' %THENEXIT
   %IF SYM='s' %OR SYM='S' %THENEXIT
  SKIPSYMBOL
  %REPEAT
  %IF SYM='s' %THEN SYM='S'

==== ecslib/emas-2900/pdp16pd_reduces.txt ====
!!!                ******   *******  ******   **   **   *****   *******   *****
!!!                **   **  **       **   **  **   **  **   **  **       **   **
!!!                **   **  **       **   **  **   **  **       **       **
!!!                ******   *****    **   **  **   **  **       *****     *****
!!!                **   **  **       **   **  **   **  **       **            **
!!!                **   **  **       **   **  **   **  **   **  **       **   **
!!!                **   **  *******  ******    *****    *****   *******   *****

!
! NEW PHRASE STRUCTURE REDUCTION PROGRAM
!
%CONTROL 0

%EXTERNALROUTINESPEC SET STREAMS(%STRING (63) S)
%CONSTINTEGER DATA IN = 1
%CONSTINTEGER DATA OUT = 2
%CONSTINTEGER ERROR OUT = 3

%EXTERNALROUTINE REDUCE(%STRING (63) FILES)
%STRING (63) INPUT, OUTPUT, REPORT
%OWNBYTEINTEGERARRAY BIPD(3 : 15)

==== ecslib/emas-2900/lisp_lispruns70.txt ====
%EXTERNALROUTINESPEC CLEAR(%STRING(63) S)
%EXTERNALROUTINESPEC DEFINE(%STRING(63) S)
%EXTERNALROUTINESPEC NEWSMFILE(%STRING(63) S)
%EXTERNALINTEGERFNSPEC SMADDR(%INTEGER CHAN, %INTEGERNAME LENGTH)
%EXTERNALROUTINESPEC CLOSE STREAM(%INTEGER NO)
%EXTERNALROUTINESPEC CLOSE SM(%INTEGER NO)
%EXTERNALROUTINESPEC LISPINTP(%INTEGER FILEADDR, INITMODE)
%EXTERNALROUTINE HELP LISP
       PRINT STRING("
HANDOUT IN PREPERATION - TYPE 'LISP' TO TRY LISP
")
%END
!
%EXTERNALROUTINE LISP(%STRING(63) PARM)
%INTEGER FILEADDR, INITMODE, LENGTH
       DEFINE("STREAM02,.OUT")
       DEFINE("STREAM03,.OUT")
       PRINT STRING("
        E.C.S.D. LISP SYSTEM    RELEASE 2 VERSION 1



==== ecslib/emas-2900/pics_calender_november.txt ====




                        XXXX
                       X    XX
                      X  ***  X                XXXXX
                     X  *****  X            XXX     XX
                  XXXX ******* XXX      XXXX          XX
                XX   X ******  XXXXXXXX                 XX XXX
              XX      X ****  X                           X** X
             X        XX    XX     X                      X***X
            X         //XXXX       X                      XXXX
           X         //   X                             XX
          X         //    X          XXXXXXXXXXXXXXXXXX/
          X     XXX//    X          X
          X    X   X     X         X
          X    X    X    X        X
           X   X    X    X        X                    XX
           X    X   X             X                 XXX  XX
            X    XXX      X        X               X  X X  X

==== ecslib/emas-2900/edwin_doc.txt ====

















                                                THE

                                             E D W I N


==== ecslib/emas-2900/oldgeneraly_assignment.txt ====

   The facilities described below implement the VMS logical name system using
the EMAS profile scheme.  On EMAS the logical names are only significant for
the first 11 characters (cf.127 on VMS).  All the strings are converted to
upper case before they are stored or translated.

!< ASSIGN

   ASSIGN <text>,<log-name>

   This assigns the string <text> to the logical name <log-name>.
   If the parameters are omitted then they are prompted for.
   The message 'Previous logical name assignment replaced' is given if the
   logical name was defined before it was re-set.

   eg.  ASSIGN TTYPE=11,VISUAL200

!>
!< DEASSIGN

   DEASSIGN <log-name>

==== ecslib/emas-2900/pdp16pd_womble.txt ====
!**           **   **   *****   *     *  ******   **       *******
!**           **   **  **   **  **   **  **   **  **       **
!**           **   **  **   **  *** ***  **   **  **       **
!**           **   **  **   **  ** * **  ******   **       *****
!**           ** * **  **   **  **   **  **   **  **       **
!**           *** ***  **   **  **   **  **   **  **       **
!**            *   *    *****   **   **  ******   *******  *******
!**










!*****************************************************************
!*****************************************************************
!**                                                             **

==== ecslib/emas-2900/newsims.txt ====







%CONSTSHORTINTEGERARRAY SMAIN(1: 141) = %C
    1,    0,    4,    8,   12,   15,   19,   25,   30,   35,   39,   43,
   47,   50,   54,   58,   63,   69,   74,   79,   84,   88,   92,   96,
  100,  104,  108,  112,  115,  116,  120,    0,  122,  125,    0,  128,
  131,    0,  135,  137,    0,  139,  141,    0,  143,  147,    0,  149,
  154,    0,  156,    0,  159,  164,    0,  166,  169,    0,  171,  174,
  177,  180,  183,  186,    0,  189,  194,    0,  196,  198,    0,  200,
  202,    0,  204,  207,  210,    0,  213,  215,    0,  217,  221,  222,
  225,  226,  230,    0,  232,  238,  242,    0,  245,  249,  253,  260,
    0,  262,    0,  265,  268,    0,  270,  273,  276,  279,    0,  282,
  286,  289,  292,  295,  298,    0,  300,  305,    0,  307,  310,  313,
    0,  316,  322,    0,  324,    0,  330,  335,    0,  337,  340,  343,
  346,  349,  352,  355,    0,  358,  360,  363,    0
%CONSTSHORTINTEGERARRAY SSUB(2: 365) = %C

==== ecslib/emas-2900/include_util.txt ====
! Useful pre-definitions for portable Imp programs

%external %routine         %spec Prompt (%string (63) STR)
%external %string (15) %fn %spec Date
%external %string (15) %fn %spec Time
%dynamic %string (255) %fn %spec ItoS  %alias "IMP_I_TO_S" (%integer I, P)
%dynamic %string (255) %fn %spec RtoS  %alias "IMP_R_TO_S" (%long %real R,
                                                            %integer A, B)
%dynamic %integer %fn      %spec StoI  %alias "IMP_S_TO_I" (%string (255) S)
%dynamic %integer %fn      %spec REM   %alias "IMP_REM"    (%integer A, B)
%dynamic %routine          %spec DOING %alias "IMP_DOING"  (%string (255) S)

! Lattice Imp stream handling facilities

%dynamic %routine %spec Open Input  %alias "IMP_OPEN_INPUT" (%integer S,
                                                             %string (255) ST)
%dynamic %routine %spec Close Input %alias "IMP_CLOSE_INPUT"
%dynamic %routine %spec Reset Input %alias "IMP_RESET_INPUT"
%dynamic %integer %fn %spec Input Stream %alias "IMP_INPUT_STREAM"
%dynamic %string (255) %fn %spec Input Name %alias "IMP_INPUT_NAME"


==== ecslib/emas-2900/pics_calender_october.txt ====





                   ***
                 ******
               *        *
              *          *
              *          *        *****
             *           *     *         *
             *          *     *           *      ****
             *          **   *             *   **  * *
            * OO      *  ++          *    **        *
           *         *      ++               *    **    *
          *                 ++                ***  ******
          *                 ++  *********               *
          *                 ++           *              *
            **   ***        ++*******     *******       *
   XXXXXXXXXXX**++++********++XXXXXXX*  **XXXXXXX*******XXXXXXXXXXXXXXXX
   X           ++++++                 **                                X

==== ecslib/emas-2900/instrdef.txt ====
! NMEMONIC  CODE  SIZE  GROUP  NO OF OPS  OP GROUP
     STC     063    1      0      0         0
     CMC     073    1      0      0         0
     INR     004    1      1      1         1       ! REG
     DCR     005    1      1      1         1       ! REG
     CMA     057    1      0      0         0
     DAA     047    1      0      0         0
     NOP     000    1      0      0         0
     MOV     100    1      5      2         6       ! DST-SRC
    STAX     002    1      1      1         5       ! SHORT REG PAIR
    LDAX     012    1      1      1         5       ! SHORT REG PAIR
     ADD     200    1      2      1         1       ! REG
     ADC     210    1      2      1         1       ! REG
     SUB     220    1      2      1         1       !REG
     SBB     230    1      2      1         1       ! REG
     ANA     240    1      2      1         1       ! REG
     XRA     250    1      2      1         1       ! REG
     ORA     260    1      2      1         1       ! REG
     CMP     270    1      2      1         1       ! REG
     RLC     007    1      0      0         0
     RRC     017    1      0      0         0

==== ecslib/emas-2900/lisp_release.txt ====
IMP LISPSPDF_LISPRUNS,LISPRUNY
PERMIT LISPRUNY,,RS
IMP LISPSPDF_LISPV09S,LISPV09Y
PERMIT LISPV08Y,,RS
COPY LISPSPDF_INITLSP8,INITLISP
PERMIT INITLISP,,RS

==== ecslib/emas-2900/pics_calender_february.txt ====




                                ##########
                             ####         ####
                          ###                 ##
                       ###                     ##
                     ##      ######               ##
                    #      ##                       #
                   #      #                          #
                  #       #      ##      #            #
                 #         ##  ##  ##  ##             #
                 #          $##       ##              #
                #     #                  ##            #
                #      #      ####         #           #
               #      #    OO #      OO     #          ##
               #      #      #            #           #  #
               #      #       ###                         #
               #                                         #
                #                                     ###

==== ecslib/emas-2900/pics_calender_january.txt ====


                                         ********
                                     ****      ***
                                   **             *
                                 **  ***           *
                   **************  *    *           *
                ***                *    *             *
              **                  **   **             *
             *                    **   **             *
            *                     **   **      ******  *
           *           ******                ********  *
          *           ********              **********  *
          *            ******              ************ *
          *                               ************* *
          *                           *   ************* *
           *       *                 * *  ************* *
            *     * *               *  * ************** *
             **   *  ***          ** * * ************** *
               ******   ***********   ** ************** *
                   ***  *    *  *  ***   ************* *

==== ecslib/emas-2900/include_lognames.txt ====

%external %integer %function %spec SET LOGICAL %alias "IMP_SET_LOGICAL" ( %c
          %string (63) Lognam, Eqlnam )

%external %string (255) %function %spec Translate %alias "IMP_TRANSLATE" ( %c
          %string (255) S )

==== ecslib/emas-2900/generals_whichemas.txt ====
! Program to inform you which EMAS it is running on, (2900 range).

%EXTERNAL %ROUTINE WHICHEMAS (%STRING(255) PARM)
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DDTADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,TOJDAY,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,DQADDR,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0, %C
         %INTEGER ITINT,CONTYPEA,GPCCONFA,FPCCONFA,SFCCONFA, %C
         BLKADDR,RATION,SMACS,TRANS,%LONGINTEGER KMON,  %C
         %INTEGER DITADDR,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,STOREAAD,PROCAAD,SFCCTAD,DRUMTAD,TSLICE,SP0,SP1, %C
         SP2,SP3,SP4,SP5,SP6,SP7,SP8, %C
         LSTL,LSTB,PSTL,PSTB,HKEYS,HOOT,SIM,CLKX,CLKY,CLKZ,  %C
         HBIT,SLAVEOFF,INHSSR,SDR1,SDR2,SDR3,  %C
         SDR4,SESR,HOFFBIT,S2,S3,S4,END)
%CONSTSTRING (4) %ARRAY OCPTYPE(1 : 6) =  "2950","2960","2970",
     "2988","2972","2976"
%RECORD (COMF) %NAME R

==== ecslib/emas-2900/gamespd_briggs.txt ====
%CONTROL 0

%DYNAMICROUTINESPEC CLEAR(%STRING(255)K)
%DYNAMICROUTINESPEC DEFINE(%STRING(255)K)
%EXTERNAL %ROUTINE %SPEC DESTROY (%STRING(255) PARM)
%EXTERNALROUTINESPEC PROMPT(%STRING(15)S)


%ROUTINE  SELECT (%STRING(255)K)
   %STRING(255) S
   %RETURNIF SEL= 1
   SEL = 1
   PRINTSTRING("Parameters ? - LP'S only.
")%ANDSTOPUNLESS K->(".LP").S
   DEFINE("39,".K)
   SELECTOUTPUT(39)
%END

%ROUTINE STARCOMM
   PRINTSTRING('The possible commands are designated by the
following numbers and code words.

==== ecslib/emas-2900/lisp_lispman1.txt ====
$A TAB=4,8,12,16,20,24,28,50,66; INDENT=8
$B3 $L1ICU
DRAFT
$B20 $L1CM
THE E.C.S.D LISP MANUAL
$B29 $L3I
.N. .H. @SHELNESS

@DECEMBER, 1976
$N
$A INDENT=0; JUST=1; PAGENO=1
$L1CU
1.0 INTRODUCTION
$P2 @THIS MANUAL IS A BRIEF INTRODUCTION TO THE @EDINBURGH @COMPUTER @SCIENCE
@DEPARTMENT .(ECSD) .LISP .SYSTEM RUNNING ON .EMAS. @IT IS NOT INTENDED AS AN
INTRODUCTION TO .LISP. @THERE ARE A NUMBER OF REFERENCES LISTED IN THE
BIBLIOGRAPHY THAT WILL FULFILL THAT FUNCTION.
$P1 .ECSD .LISP WAS IMPLEMENTED BY THE AUTHOR FOR UNDERGRADUATE STUDENT
USE, AND ITS STRUCTURE REFLECTS THIS FACT. @IT IS A RELATIVELY 'PURE'
IMPLEMENTATION IN WHICH FUNCTIONS ARE DEFINED OVER MORE LIMITED DOMAINS
THAN IS OFTEN THE CASE, AND IN WHICH EXTENSIVE ERROR CHECKING ENFORCES

==== ecslib/emas-2900/gamespd_mastmind.txt ====
%EXTERNALROUTINE MASTMIND (%STRING (255) PSTZ)
%EXTERNAL %ROUTINE %SPEC PROMPT (%STRING(255) ST)
%EXTERNAL %LONG %REAL %FN %SPEC CPUTIME
%EXTERNAL %LONG %REAL %FN %SPEC RANDOM REAL
%CONST %STRING (1) SNL="
"
%RECORDFORMAT RFM1 (%INTEGERARRAY SET(1:4), %INTEGER PTR)
%RECORDFORMAT RFM2 (%INTEGERARRAY HOLE(1:4) ,%INTEGER BL,WH)
%RECORDARRAY ROW (1:10) (RFM2)
%RECORDARRAY BASE (1:1296) (RFM1)
%OWNINTEGER  PERSONSCORE,COMPSCORE,FIRSTP,LASTP,POSS,FAULTY
%OWNINTEGER SRN,NF1,NF2,MATCH,CRITICAL,GWBW
!
! ********** ___ ROUTINE SECTION ___ **********
! 
! ***** THE ROUTINE MARK IS ONE OF THE MAIN GAME PLAYING
! FEATURES OF MASTERMIND,GIVING THE VITAL INFORMATION TO
! THE CODEBREAKER ABOUT THE COMPARISON BETWEEN THE TRIAL
! CODE AND THE HIDDEN CODE. MARKED AS FOLLOWS---
! 1 BLACK -- 1 NUMBER IN CORRECT HOLE.
! 1 WHITE -- 1 NUMBER IN WRONG HOLE. *****

==== ecslib/emas-2900/pdp16pd_pdpdumps.txt ====
!!!                ******   ******   ******   ******   **   **  *     *  ******    *****
!!!                **   **  **   **  **   **  **   **  **   **  **   **  **   **  **   **
!!!                **   **  **   **  **   **  **   **  **   **  *** ***  **   **  **
!!!                ******   **   **  ******   **   **  **   **  ** * **  ******    *****
!!!                **       **   **  **       **   **  **   **  **   **  **            **
!!!                **       **   **  **       **   **  **   **  **   **  **       **   **
!!!                **       ******   **       ******    *****   **   **  **        *****

%CONTROL 0

%OWNSTRING (15) OUTPUT = '.TT'
%OWNSTRING (15) SOURCE = 'SS#ARTH'
%CONSTSTRING (6) %ARRAY OPCODES(0 : 15) =     %C
'NOP   ', 'EVOKE ', 'BUS   ', 'COND  ',
'MERGE ', 'RTCALL', 'RETURN', 'JUMP  ',
'STOP  ', 'BRANCH', 'T-LINE', 'BREAK', ' CONT',' CMRGE','+FLAG ',
'UNDEF '
%CONSTINTEGER NMAX = 100
%RECORDFORMAT EXTERNFM(%BYTEINTEGER FROM, FBITS, TO, TOBITS)
%CONSTINTEGER EXTLNG = 100
%RECORDFORMAT CODEFM(%BYTEINTEGER CODE, NAME, OPRN, MODULE,  %C

==== ecslib/emas-2900/vlsiuse_x5a.txt ====
device 5555
ident c 0
ident i 6

==== ecslib/emas-2900/edwin_newdir.txt ====
newdirectory t#edwindir,500,2000
option activedir=t#edwindir
insert edwin_missingy
insert edwin_c963y
insert edwin_catsy
insert edwin_chasy
insert edwin_forrtsy
insert edwin_hp2648y
insert edwin_obj
insert edwin_hqchary
insert edwin_p300y
insert edwin_hpploty
insert edwin_shapesy
insert edwin_t4000Y
insert edwin_viewrcoy
insert conlib.edwin_viewpdfy
insert ecslib.generaly_imp77liby
insert erclib.graphicsy_rcoplot12y
insert erclib.graphicsy_matplot11y
insert erclib.graphicsy_extras12y
insert erclib.graphicsy_rcoctal12y

==== ecslib/emas-2900/lisp_lispruns.txt ====
%EXTERNALROUTINESPEC CLEAR(%STRING(63) S)
%EXTERNALROUTINESPEC DEFINE(%STRING(63) S)
%EXTERNALROUTINESPEC NEWSMFILE(%STRING(63) S)
%EXTERNALINTEGERFNSPEC SMADDR(%INTEGER CHAN, %INTEGERNAME LENGTH)
%EXTERNALROUTINESPEC CLOSE STREAM(%INTEGER NO)
%EXTERNALROUTINESPEC CLOSE SM(%INTEGER NO)
%EXTERNALROUTINESPEC LISPINTP(%INTEGER FILEADDR, INITMODE)
%EXTERNALROUTINE HELP LISP
       PRINT STRING('
HANDOUT IN PREPERATION - TYPE ''LISP'' TO TRY LISP
')
%END
!
%EXTERNALROUTINE LISP(%STRING(63) PARM)
%INTEGER FILEADDR, INITMODE, LENGTH
       DEFINE('STREAM02,.TT')
       DEFINE('STREAM03,.TT')
       PRINT STRING('
        E.C.S.D. LISP SYSTEM    RELEASE 2 VERSION 1



==== ecslib/emas-2900/edwin_pconsts.txt ====
{ EDWIN constant definitions }

{ Colours }
VideoBlack = 0;
VideoWhite = 1;
Blank      = 0;
Black      = 1;
Blue       = 2;
Green      = 3;
Red        = 4;
Purple     = 5;
Yellow     = 6;
Lime       = 7;
Brown      = 8;
Turquoise  = 9;

{ Colour Modes }
ReplaceMode = 0;
AndMode     = 1;
OrMode      = 2;
InvertMode  = 3;

==== ecslib/emas-2900/fromjgh.txt ====
copy ecsc17.EDWIN_DDBBCY,ECSLIB.ED_DDBBCY
copy ecsc17.EDWIN_DDCALRCOY,ECSLIB.ED_DDCALRCOY
copy ecsc17.EDWIN_DDCATSY,ECSLIB.ED_DDCATSY
copy ecsc17.EDWIN_DDCHASY,ECSLIB.ED_DDCHASY
copy ecsc17.EDWIN_DDGIGIY,ECSLIB.ED_DDGIGIY
copy ecsc17.EDWIN_DDGP300Y,ECSLIB.ED_DDGP300Y
copy ecsc17.EDWIN_DDHPPLOTY,ECSLIB.ED_DDHPPLOTY
copy ecsc17.EDWIN_DDERCCHPY,ECSLIB.ED_DDERCCHPY
copy ecsc17.EDWIN_DDHPTERMY,ECSLIB.ED_DDHPTERMY
copy ecsc17.EDWIN_DDP300Y,ECSLIB.ED_DDP300Y
copy ecsc17.EDWIN_DDSIGMAY,ECSLIB.ED_DDSIGMAY
copy ecsc17.EDWIN_DDTEKY,ECSLIB.ED_DDTEKY
copy ecsc17.EDWIN_DDWESTWY,ECSLIB.ED_DDWESTWY
copy ecsc17.EDWIN_DDX5AY,ECSLIB.ED_DDX5AY
copy ecsc17.EDWIN_EDCONFIGY,ECSLIB.ED_EDCONFIGY
copy ecsc17.edwin_edwin5y,ecslib.ed_edwin5y
copy ecsc17.edwin_fintery,ecslib.ed_fintery
copy ecsc17.edwin_pintery,ecslib.ed_pintery
copy ecsc17.edwin_pshapesy,ecslib.ed_pshapesy

==== ecslib/emas-2900/pics_calender_horse.txt ====


                                         ********
                                     ****      ***
                                   **             *
                                 **  ***           *
                   **************  *    *           *
                ***                *    *             *
              **                  **   **             *
             *                    **   **             *
            *                     **   **      ******  *
           *           ******                ********  *
          *           ********              **********  *
          *            ******              ************ *
          *                               ************* *
          *                           *   ************* *
           *       *                 * *  ************* *
            *     * *               *  * ************** *
             **   *  ***          ** * * ************** *
               ******   ***********   ** ************** *
                   ***  *    *  *  ***   ************* *

==== ecslib/emas-2900/vlsiuse_tek.txt ====
device 4012


==== ecslib/emas-2900/lisp_initlsp6.txt ====
NIL
QUOTE 2 0
LABEL 0 0
LAMBDA 0 0
APVAL 0 0
SUBR 0 0
FSUBR 0 0
EXPR 0 0
FEXPR 0 0
STOP 0 0
EVAL 0 0

CAR 6 1
CDR 6 2
CAAR 6 3
CADR 6 4
CDAR 6 5
CDDR 6 6

CONS 6 7
LIST 6 8

==== ecslib/emas-2900/lisp_initlsp7.txt ====
NIL
QUOTE 2 0
LABEL 0 0
LAMBDA 0 0
APVAL 0 0
SUBR 0 0
FSUBR 0 0
EXPR 0 0
FEXPR 0 0
STOP 0 0
EVAL 0 0

FUNCTION 2 0
CAR 6 1
CDR 6 2
CAAR 6 3
CADR 6 4
CDAR 6 5
CDDR 6 6

CONS 6 7

==== ecslib/emas-2900/lisp_initlsp8.txt ====
NIL
QUOTE
LABEL
LAMBDA
APVAL
SUBR
FSUBR
EXPR
FEXPR
STOP
EVAL
END/ OF/ PEEK

QUOTE 0 FSUBR
FUNCTION 0 FSUBR
CAR 1 SUBR
CDR 2 SUBR
CAAR 3 SUBR
CADR 4 SUBR
CDAR 5 SUBR
CDDR 6 SUBR

==== ecslib/emas-2900/lisp_initlsp9.txt ====
NIL
QUOTE
LABEL
LAMBDA
APVAL
SUBR
FSUBR
EXPR
FEXPR
STOP
EVAL
END/ OF/ PEEK

QUOTE 0 FSUBR
FUNCTION 0 FSUBR
CAR 1 SUBR
CDR 2 SUBR
CAAR 3 SUBR
CADR 4 SUBR
CDAR 5 SUBR
CDDR 6 SUBR

==== ecslib/emas-2900/oldgeneraly_newusers.txt ====

   NEWUSERS usermask,form,mode

This lists the current EMAS users.   The names that are given are
derived from the Mailer program, and 'guesses' are made for those that
are not known.

USERMASK can be any 6 characters of mask, only users matched with the mask
         are listed.  For example a mask of "E??U??" will only list the
         Edinburgh student users.   Trailing '?'s may be omitted.
         The default mask is all users.

FORM     this can be N (normal, (default)) or B (brief) or V (very brief),
         which selects how much information is given.

MODE     can be any combination of the letters F, B and S for Fore ground,
         Batch and System users, respectivly.   The default is F.

eg.   NEWUSERS   or   NEWUSERS ,,FBS   or   NEWUSERS ,B   or   NEWUSERS ER????

==== ecslib/emas-2900/edwin_ptypes.txt ====
{ TYPE definitions for using EDWIN from Pascal }

     pointfm = record
                x, y : integer
              end;

     transfm = array [0..8] of real;

==== ecslib/emas-2900/generals_userutils.txt ====
!TITLE  Source of S#FOR ALL USERS
!<
%RECORDFORMAT comf(%INTEGER ocptype,ipldev,sblks,sepgs,ndiscs,  %C
                             ddtaddr,gpctabsize,gpca,sfctabsize,sfca,sfck,dirsite,  %C
                             dcodeda,suplvn,wasklokcorrect,date0,date1,date2,  %C
                             time0,time1,time2,epagesize,users,cattad,dqaddr,  %C
                             sacport,ocpport,itint,contypea,gpcconfa,fpcconfa,sfcconfa,%C
                             blkaddr,dptaddr,smacs,trans,  %C
                   %LONGINTEGER kmon,  %C
                   %INTEGER ditaddr,smacpos,supvsn,pstva,secsfrmn,secstocd,%C
                             sync1dest,sync2dest,asyncdest,maxprocs,inspersec,elaphead,%C
                             commsreca,storeaad,procaad,sfcctad,drumtad,sp0,sp1,sp2,sp3,%C
                             sp4,sp5,sp6,sp7,sp8,sp9,%C
                             lstl,lstb,pstl,pstb,hkeys,hoot,sim,clkx,clky,clkz,  %C
                             hbit,slaveoff,inhssr,sdr1,sdr2,sdr3,  %C
                             sdr4,sesr,hoffbit,s2,s3,s4,end)


%RECORDFORMAT procf(%STRING(6) user,  %C
                    %BYTEINTEGER incar,category,wsn,runq,active,%C
                    %INTEGER actwo,lstad,lamtx,stack,status)

==== ecslib/emas-2900/enter.txt ====
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!                                                                      !
!          HOUSEKEEPING ROUTINES FOR CSDEPT                            !
!                                                                      !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                    !
%OWNSTRING (1)  SNL='
'
%EXTERNALROUTINESPEC NEWPDFILE (%STRING (63) S)
%EXTERNALROUTINESPEC CLOSE STREAM (%INTEGER I)
%EXTERNALROUTINESPEC COPYFILE (%STRING (63) S)
%EXTERNALROUTINESPEC DESTROY (%STRING (63) S)
%EXTERNALROUTINESPEC PERMITFILE (%STRING (63) S)
%EXTERNALROUTINESPEC PERMITLIB (%STRING (63) S)
%EXTERNALROUTINESPEC PROMPT (%STRING (15) S)
%EXTERNALROUTINESPEC CHERISH (%STRING (63) S)
%EXTERNALROUTINESPEC USERLIB (%STRING(63) S)
%EXTERNALROUTINESPEC INSERTFILE (%STRING (63) S)
%EXTERNALROUTINESPEC ARCHIVE (%STRING (63) S)
%EXTERNALINTEGERFNSPEC SSFAIL
%EXTERNALROUTINESPEC SSFOFF

==== ecslib/emas-2900/gamespd_poker.txt ====
%EXTERNALROUTINE DICE
  %RECORDFORMAT Q(%INTEGER CARD,TIMES)
  %RECORDARRAY YOURHAND,MYHAND(0:5)(Q)
  %CONSTSTRING(5)%ARRAY HOLD(0:5)="Ace","King","Queen",
                                  "Jack","10","9"
  %CONSTSTRING(2)%ARRAY HOL (0:5)="A","K","Q","J","10","9"
  %OWNINTEGER FSA=3
  %CONSTSTRING(3) ME="I", YOU="you"
  %INTEGER YOURLOT,MYLOT,YOURCARD,MYCARD,PLAY
  %STRING(120) SEQ
  YOURLOT=1
  %ROUTINE CHEAT
    %INTEGER I
    %CYCLE I=1,1,5
      PRINTSTRING(SP(20)."*** CHEAT ***".SNL)
    %REPEAT
  %END
  %ROUTINE WAIT
    PROMPT("Ok?  :")
    READSEQUENCE(SEQ,SNL)
  %END

==== ecslib/emas-2900/lpd_hlaydcls.txt ====
$A MARK=2
$A PAGENO=1; JUST=1
$A TAB=12,20,28
$L1CUM
LAYOUT: DOCUMENT PRODUCTION PROGRAM


$P2 @THE BASIC FUNCTION OF .LAYOUT IS TO PRODUCE AN APPROPRIATELY PAGED AND
FORMATTED DOCUMENT FROM A SOURCE FILE IN WHICH THE REQUIRED LAYOUT IS
INDICATED BY %DIRECTIVES INTERSPERSED WITH THE TEXT; IN GENERAL, THE
SPACING AND LINE-STRUCTURE OF THE SOURCE ARE NOT SIGNIFICANT. @A
SECONDARY FUNCTION IS TO OUTPUT AN UPDATED SOURCE FILE SIMILAR TO THE
ORIGINAL EXCEPT THAT THE LINE-STRUCTURE FOLLOWS THAT OF THE FORMATTED
DOCUMENT (SUBJECT TO LIMITATIONS OF LINE LENGTH).
$P @IN ADDITION THE PROGRAM OPTIONALLY PROVIDES FOR THE APPLICATION OF
SHIFT CONVENTIONS TO THE SOURCE (AND UPDATED SOURCE) TO PERMIT THE
REPRESENTATION OF UPPER AND LOWER CASE LETTERS AND UNDERLINED CHARACTERS
WITHIN A RESTRICTED CHARACTER SET. @CODE CONVERSION IS UNDERSTOOD TO BE
CARRIED OUT OUTSIDE THE LAYOUT PROGRAM PROPER, WHICH USES A CHARACTER
SET IN WHICH BOTH UPPER AND LOWER CASE LETTERS AND UNDERLINED CHARACTERS
ARE REPRESENTED BY SINGLE CODES. @THIS CHARACTER SET IS FULL .ASCII

==== ecslib/emas-2900/pics_abraham.txt ====



           The Story of Abraham (A folk-tale).
           ===================================
                                                (Anonymous)


  "Speaking of prostitutes,"said Abraham,"how is the Queen?"
The King,taking this as an insult,banished Abraham to the desert for
forty years.

  Whilst wandering through one particularly nice part,all the while 
considering his good fortune to be sent somewhere where umbrellas were
unnecessary,he chanced upon a very small girl with very short legs
and very low morals.
  "Canst thou fuck,Abraham?"quoth she.
  "Like a duck can swim!"replied Abraham,and set about it with a will.

  Some (9) months later he again happened to be in that very same part
of the desert where the weather was so kind,and,as fortune would have

==== ecslib/emas-2900/newcont.txt ====
$A MARK=2
$A TAB=20,38,54
.%PROGRAM$ NAME $T1
.%LIBRARY$/PROGRAM $T2
.%ORIGINATOR $C52
.%DOCUMENTATION$ SOURCE $B
.ARTHUR $T1
.CSDEPT.PDP16LIB $T2
@P.@S.@ROBERTSON $T3
@DEPARTMENTAL @REPORT $B
@COMPATIBLE @CONTEXT$T1
.CSDEPT.EDLIB$T2
@H.@DEWAR$T3
@DEPARTMENTAL @REPORT $B
@EDITOR $B
@INTERDATA $T1
.CSDEPT.ISKMPLIB $T2
@D.@J.@REES $T3
@D.@J.@REES $B0
.SKIMP $B
.IMP @INTERPRETER $T1

==== ecslib/emas-2900/gamespd_backgdoc.txt ====






















==== ecslib/emas-2900/pics_brigitte.txt ====




















MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM

==== ecslib/emas-2900/intsyss.txt ====

!
!*******************************************************************
!*                                                                 *
!*       SYSTEM ROUTINES FOR IMP INTERPRETER VERSION 8             *
!*                                                                 *
!*******************************************************************
!
!
%TRUSTEDPROGRAM
%RECORDFORMAT AGFM(%INTEGER EP, %STRING (17) NAME,  %C
          %INTEGER P1, P2, %INTEGERNAME FLAG)
%EXTERNALINTEGER INTSIZE = 16;          ! DEFAULT OF 16 PAGES
%EXTERNALBYTEINTEGER INIMPI = 0
%EXTERNALINTEGER INTGLA = 0
%OWNSTRING (6) INT OWNER = 'CONLIB'
%EXTERNALSTRING (8) OBJECT = 'IMPIOBJ'
%EXTRINSICBYTEINTEGER INSTREAM, COMPMODE, IOFLAG, MDACTIVE
%SYSTEMINTEGERFNSPEC COMREG(%INTEGER N);! TO GIVE ADDRESSES
%EXTERNALINTEGER REG9 = -1
%OWNINTEGER DIAGPT, OUTSTREAM, SYSOUT, INTPERM

==== ecslib/emas-2900/generals_vaxs.txt ====
! FTP Utilities for using VAX/VMS from EMAS.
! Must be compiled PARM FREE with the IMP80 compiler

%const %string (1) SNL = "
"
%systemroutinespec OUTFILE(%string(31) NAME,
   %integer LEN, MAX, PROT, %integername CONAD, FLAG)
%record %format RF (%integer CONAD, FILETYPE, DATA START, DATA END)
%system %routine %spec CONNECT (%string(31) S,
   %integer ACCESS, MAXBYTES, PROT, %record(rf)%name R, %integername FLAG)
%system %string (255) %fn %spec FAILURE MESSAGE (%integer FLAG)
%system %routine %spec PSYSMES (%integer ROOT, FLAG)
%external %routine %spec LIST (%string (255) PARM)
%external %routine %spec TRANSFER (%string (255) PARM)
%external %routine %spec PROMPT (%string(63) PSTR)
%external %routine %spec SETMODE (%string(255) MODES)
%external %routine %spec DEFINE (%string(255) PARM)
%external %routine %spec CLEAR (%string (255) ALL)
%external %routine %spec ASSIGN (%string (255) PARM)
%external %string (255) %fn %spec TRANSLATE (%string (255) STR)
%external %string (255) %fn %spec UINFS (%integer I)

==== ecslib/emas-2900/gamespd_fantasy.txt ====
!program to run FANTASY

%external %routine %spec run (%string (255) file)

%externalroutine fantasy (%string (255) rubarb)

 run ("ECSLIB.GAMEPD_FANTASY")
%end
%endoffile

==== ecslib/emas-2900/generals_pdaddrs.txt ====
!TITLE Source of S#PDADDR
!<
%RECORD %FORMAT connect fm(%INTEGER start address, %C
                                    type, %C
                                    relative start, %C
                                    relative finish)
!)
%SYSTEM %ROUTINE %SPEC CONNECT(%STRING(31) file, %C
                               %INTEGER mode, %C
                                        hole, %C
                                        protection, %C
                               %RECORD (connect fm) %NAME info, %C
                               %INTEGER %NAME flag)

%RECORD %FORMAT header fm(%INTEGER relative finish, %C
                                   relative start, %C
                                   size, %C
                                   type, %C
                                   sum, date time, %C
                                   directory start, %C
                                   count)

==== ecslib/emas-2900/vlsiuse_slides.txt ====
size 19 25 1 1
speed 10


==== ecslib/emas-2900/gamespd_backgs.txt ====
%EXTERNALROUTINE BACKGAMMOM (%STRING(255) ST)
 %OWNINTEGER BBOFF,WBOFF,DICE1,DICE2,BARFL,BRDVAL,BSTVAL,COMPVAL
 %OWNINTEGER M1,M2,M3,M4,V1,V2,V3,V4,V5,V6,V7,V8,V9,V10,I,J,K,RUNNING
 %OWNINTEGER NOMOV,BARPT1,BARPT2,PT1,PT2,L,M,N,TEMP,BSTMOV1,BSTMOV2
 %OWNINTEGER BSTPT1,BSTPT2,W1,W2,W3,W4,W5,W6,W7,W8,W9,W10
 %OWNINTEGER SECOND,BV1,BV2,BV3,BV4,BV5,BV6,BV7,BV8,BV9,BV10
 %CONSTINTEGERARRAY ODDS(1:12)=35,38,44,47,47,53,18,21,15,12,6,9
 %RECORDFORMAT F(%INTEGER WS,BS)
 %OWNRECORDARRAY BOARD(0:25)(F)
 %OWNINTEGER G,H,PT3,PT4,DICE3,DICE4,BSTPT3,BSTPT4,BARPT3,BARPT4
 %INTEGERFN HOMEB
 %INTEGER NO,I
 NO=BBOFF
 %CYCLE I=1,1,6
     NO=NO+BOARD(I)_BS
 %REPEAT
 %IF NO=15 %THENRESULT = 1 %ELSERESULT = 0
 %END

 %ROUTINE DOBLACK
 %INTEGER PT,NO,M,D1,D2,D3,D4,TOT

==== ecslib/emas-2900/edwin_geo.txt ====
{ NB: Specs for Version 4 of EDWIN :  See ECSLIB.EDWIN_SHAPES for latest info }

{ EDWIN Geometric utility routines added }   %end %of %list

%external %routine %spec SHADE SHAPES   %alias "EDWIN_SHADE_SHAPES"    (%integer ON or OFF)
%external %routine %spec SET ARC POINTS %alias "EDWIN_SET_ARC_POINTS"  (%integer I)
%external %routine %spec CIRCLE         %alias "EDWIN_CIRCLE"          (%integer RAD)
%external %routine %spec RECTANGLE      %alias "EDWIN_RECTANGLE"       (%integer XL, YL, XU, YU)
%external %routine %spec BOX            %alias "EDWIN_BOX"             (%integer L, W, %record (POINTFM) %name C, D)
%external %routine %spec WIRE           %alias "EDWIN_WIRE"            (%integer W, N, %record (POINTFM) %array %name P)
%external %routine %spec POLYGON        %alias "EDWIN_POLYGON"         (%integer NUM E, %record (POINTFM) %array %name AP)

%list
%end %of %file

==== ecslib/emas-2900/pdp16pd_simps.txt ====

B[CONSTANT]=3
B[NAME]=4
B[NAMELIST]=5
B[SEPERATOR]=8

L<PADDING> = 0
L<THERE> = 1
L<MISSING> = 0
D[OLD NAME]=[NAME=1]
D[OLD NAME LIST] = [NAMELIST=1]


P(STAT)
      (SS) [SEPERATOR];

P(SS)
      '%CONTINUE' <1> (REPEAT COUNT'):
        ':' <1> (REPEAT COUNT'):
      '%GO' <3>:
      '%TRACE' <4>(ON/OFF):

==== ecslib/emas-2900/gamespd_oxos.txt ====
! OXOS         (Now in IMP80, with graph mode fixed JGH 4.82)

%EXTERNAL %ROUTINE %SPEC TERMINATE
%EXTERNAL %ROUTINE %SPEC PROMPT(%STRING(19) S)
%SYSTEM %ROUTINE %SPEC CONSOLE(%INTEGER EP, %INTEGER %NAME AD, LEN)
%EXTERNAL %STRING(8) %FN %SPEC TIME
!
%ROUTINE OXO GUTS(%ROUTINE CLEAR LINE, %routine  MOVE (%integer X, Y))
!
%INTEGER I, SEED, AD, MODE
%INTEGER %ARRAY SQ(1:9)
%OWN %INTEGER WCT, DCT
%CONST %INTEGER X = 1, O = 4
%CONST %STRING(5) %ARRAY HT(1:2) = "TAILS", "HEADS"
!
%STRING(8) TEMP;   TEMP = TIME
SEED = (CHARNO(TEMP,7)*10+CHARNO(TEMP,8))&1023
!
%INTEGER %FN RANDOM(%INTEGER MAX)
%INTEGER I
SEED = (741*SEED+216)&1023

==== ecslib/emas-2900/lpd_hlaydoc.txt ====


                  ___________________________________

                  LAYOUT: DOCUMENT PRODUCTION PROGRAM


   The basic function of LAYOUT is to produce an appropriately paged and
formatted document from a source file in which the  required  layout  is
indicated  by  __________

               directives  interspersed  with  the text; in general, the
spacing and  line-structure  of  the  source  are  not  significant.   A
secondary  function  is  to output an updated source file similar to the
original except that the line-structure follows that  of  the  formatted
document (subject to limitations of line length).

   In  addition  the  program optionally provides for the application of
shift conventions to the source  (and  updated  source)  to  permit  the
representation of upper and lower case letters and underlined characters
within a restricted character set.   Code conversion is understood to be
carried out outside the layout program proper, which  uses  a  character
set in which both upper and lower case letters and underlined characters
are  represented  by  single  codes.   This  character set is full ASCII
extended to 8 bits, with the eighth bit signifying underlining,  and  it

==== ecslib/emas-2900/lpd_pls.txt ====

!****************** VERSION DATED 27/9/77 ****************************
!*
!*      * $VM$BN NOW WORKS IN ALL CASES - N  BLANK LINES NOW SENT TO
!*        OUTPUT FILE AFTER PAGE TURN CAUSED BY $V.
!*      * 'READ ATOM OR DIRECTIVE' REWRITTEN.  ESC GIVEN PRIORITY.
!*        SYMBOL PARAMETERS CANNOT BE LETTERS.
!*        CAP, CAPSH, UND, UNDSH CAN NOW BE COMBINED IN ANY ORDER, ALTHOUGH
!*        CAPSH IS STILL ONLY RECOGNISED IF THE FIRST SYMBOL READ OF THE
!*        ATOM.
!*      * THE UPDATED SOURCE IS NOT GENERATED IF NO FILE HAS BEEN GIVEN
!*        FOR IT.
%EXTERNAL %INTEGER %FN %SPEC EXIST(%STRING (63) S)
!*
!*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!*
!* ROUTINE REQUIRED TO DECODE AND SET STREAMS FOR EMAS.
!*
%EXTERNAL %ROUTINE %SPEC DEFINE(%STRING (63) S)
%EXTERNAL %ROUTINE %SPEC SETMARGINS(%INTEGER J,K,L)
%ROUTINE %SPEC PROCESSDOCUMENT

==== ecslib/emas-2900/pics_lifeis.txt ====




       WWW        WWW   WWWWWWWW  WWWWWWWW        WWW    WWWWWWW         WWWWWWWW   WWW    WWW    WWW       WWW
       WWW        WWW   WWWWWWWW  WWWWWWWW        WWW   WWWWWWWW         WWWWWWWW   WWW    WWW    WWW       WWW
       WWW        WWW   WWW       WWW             WWW   WWW              WWW        WWW    WWW    WWW       WWW
       WWW        WWW   WWW       WWW             WWW   WWWW             WWW        WWW    WWW    WWW       WWW
       WWW        WWW   WWWWWW    WWWWWW          WWW   WWWWWWWW         WWWWWW     WWW    WWW    WWW       WWW
       WWW        WWW   WWWWWW    WWWWWW          WWW        WWW         WWWWWW     WWW    WWW    WWW       WWW
       WWW        WWW   WWW       WWW             WWW        WWW         WWW        WWW    WWW    WWW       WWW
       WWWWWWWWW  WWW   WWW       WWWWWWWW        WWW   WWWWWWWW         WWW         WWWWWWWW     WWWWWWWW  WWWWWWWW
       WWWWWWWWW  WWW   WWW       WWWWWWWW        WWW   WWWWWWW          WWW          WWWWWW      WWWWWWWW  WWWWWWWW





                     WWWWWW     WWWWWWWW        WWWWWWWW    WWW    WWW   WWWWWW     WWWWWWWW
                    WWWWWWWW    WWWWWWWW        WWWWWWWWW   WWW    WWW   WWWWWWW    WWWWWWWW
                   WWW    WWW   WWW             WWW   WWW   WWW    WWW   WWW  WWW   WWW

==== ecslib/emas-2900/pics_horse.txt ====
                                                    WW*   W*          *WWW*
                                                     WWWA       WW*  WWMMMWW      VWW VWA  W
                                                      WWWA    W   WW* WW  WWW      .WW. W*  .
                                                        WWW*   WW  .W. W  .WWA  .    VWW. WW W
                                               ..     .   WWWW  WW  .W WWA WW....*   WW. WW W
                                                                              /XX
                                                     .AX>  WWWW   WW W.. W WWWVXXXX* WWW  W   W
                                                                              TBBBB
                                                --...*XX>.   WWWWW  W.W .WW WWWVXXXXX.WWW/WW VA
                                                    / BB                       TBBBB*
                                              ...--.*BBBWWW*   WWWW   WW .W WWWVXXXXX*WWWWWWW  WW
                                                   / XXX                       TBBBBBX
                                                ./*XXXXX             X     XXWW XXXXXXXDWWWWW  WVWA
                                                  BBBBBB                   BB   BBBBBBBW
                                               .XXXXXXXX    WWWWWBW* WWBW.WWBBWWBBBBBBBBBAWWWWWW WWWW
                                               /BBBBBBBB         X     X    XX  <XXXXXXXXL
                                               ABBBBBBBB>   . ..WWBW+ WBW.WBBWWW<BBBBBBBBBBAWWWW WWWWW
                                               +XXXXXXXX          X    X   XX    XXXXXXXXXXL
                                              .BBBBBBBBB>///./...WBW.WWBWBBBWWW<BBBBBBBB B.WWWWWWW W W
                                              /XXXXXXXXX          X    X XXX    XXXXXXXX X
                                             .BBBBBBBBBB BBBBB/...BWB.WBWBBWWWW<BBBBBBBB BAWWWWWWWW W
                                              XXXXXXXXXX XXXXX    X X  X XX     XXXXXXXX XL
                                          . /ABBBBBBBBBB BBBBBBAV/.BWL//BWBBBBWVBBBBBBBB BB.WWWWWW W W
                                             +XXXXXXXXXX XXXXXX    X X  X XXXX TXXXXXXXX XX
                                        ./// <XBBBBBBBBB BBBBBBBV/.BWW//BBWBBWVBBBBBBBBA BBWWWWWWWWW W WA
                                               XXXXXXXXX XXXXXXX   X    XX XX  XXXXXXXXL XX
                                      ./ //  <XBBBBBBBB VBBB  BBA//BWBWBBWBB//WWLBBBBBBBB BBWWWWWWWWWW W
                                               XXXXXXXX  XXX  XX   X X .. XX    MXXXXXXXX XX
                                       //    <XBBBBBBB A/L+++BBBX/BBB//BBBB//WBWWLBBBBBBB BBWWWWWWWWWW WA
                                               XXXXXXX P X   XXX  XXX  .XXX   X  VXXXXXXX XX
                                         /-  <BBBBBBV A.BBBBBBBBV/BBB/BBBB/WWBBWWWVBBBBBBBBBWWWWWWWWWWWWWW VW
                                              XXXXXXT P/XXXXXXXX  XXX .XXX   XX   LXXXXXXXXX
                                   .   .-   .<BBBBBV A.BBBBBBBBB//BB//BWBWWWBBBBWWW VBBBBBBBWWWW WW WWWWW WW
                                              XXXXXT P/XXXXXXXXX  XX  X X   XXXX    TXXXXXXX
                                   .     .// VTBBBBTXBBBBBBBBBBBBXBB/XBXBBWWBBBBBWWW XBBBBBB/WWWWWWWWWWWWWWW
                                              XXXXX  XXXXXXXXXXXX X/  / XX  XXXXX     XXXXX/
                                   .    //  +WBBBBVBBBBBBBBBBBBBBBBX/BXWBBBBBBBBBWWWWW XBBBX///WWWWWWWWWWWW ./
                                              XXXX  XXXXXXXXXXXXXXX  /  XXXXXXXXX       XXX

==== ecslib/emas-2900/edwin_chars.txt ====
! Program to plot the EDWIN character sets
%include "conlib.edwin_inc"
%external %routine %spec PROMPT (%string (63) STR)
%external %string (63) %fn %spec ITOS (%integer N, P)
%begin
   %own %integer init = 0
   %const %integer split = 32
   %integer alphabet, char, set, y

   %on 14 %start
       ! Event 14,6 is signaled if you choose an alphabet that doesn't exist.
       alphabet = alphabet + 1
   %finish

   %if init=0 %start
       prompt ("Device: ")
       read (set)
       initialise for (set)
       viewport (0, 85*400, 0, 60*400) %if default device = 7580
       viewport (0, 40*400, 0, 28*400) %if default device = 7221 %or default device = 7220
       window (0, 7200, 0, 4000)

==== ecslib/emas-2900/gamespd_starwars.txt ====


%EXTERNALROUTINE STARWARS
%EXTERNALROUTINESPEC PROMPT(%STRING (15) S)
%EXTERNALREALFNSPEC RANDOMREAL
%EXTERNALREALFNSPEC CPUTIME
%INTEGER CH, F, S, Z, FUEL, GF, GD, SFLAG
%REAL X, Y, H, T, C, G, A, V, SS, PROB, DAMAGE, Q, K, DA, DT, DC

%ROUTINE TEXT
%PRINTTEXT"
 THIS PROGRAM SIMULATES THE FINAL ATTACK ON THE DEATHSTAR BY REBEL
X-WING FIGHTERS.
 YOU ARE THE PILOT OF ONE OF THESE FIGHTERS, AND MUST FLY YOUR CRAFT
DOWN A NARROW CHANNEL IN THE DEATHSTAR, AND ATTEMPT TO HIT A"
%PRINTTEXT"
VULNERABLE POINT WHICH HAS BEEN LOCATED ON THE STOLEN PLANS.
YOUR CRAFT'S TARGETING COMPUTER WILL DO ALL OF THE ACTUAL AIMING -
ALL YOU HAVE TO DO IS TO FLY AS CLOSE TO THE CENTRE OF THE CHANNEL,
AND AS LOW AS POSSIBLE."
%PRINTTEXT"

==== ecslib/emas-2900/coms_fore.txt ====
TTYINIT

==== ecslib/emas-2900/edwin_types.txt ====
{ TYPE definitions for using EDWIN from Imp }

%record %format Point Fm (%integer X, Y)

%end %of %file

==== ecslib/emas-2900/oldgeneraly_whois.txt ====

   WHOIS name

This command searches the MAIL programs list of users, and gives a table
of any which match the name provided.   The following examples give an
idea of how it can be used :

   WHOIS HUGHES

   WHOIS ECSC*@2972

   WHOIS *@VAX


==== ecslib/emas-2900/pics_susie.txt ====









                                     SSSS      U    U      SSSS      II     EEEEEE
                                    S          U    U     S          II     E
                                     SSSS      U    U      SSSS      II     EEEE
                                         S     U    U          S     II     E
                                     SSSS       UUUU       SSSS      II     EEEEEE





                                                   $$$$$$$$$$$$
                                                $$$$$$$$$$$$$$$$$$$

==== ecslib/emas-2900/pascal#zur_file2.txt ====
UTILTY:TOEMAS
LIST.ALL
READTAPE
DECODE
FILE.A
FILE.B
FILE.C
FILE.D
FILE.E
FILE.F
FILE.G
FILE.H
FILE.I
READTAPE
DECODE
.END

==== ecslib/emas-2900/pascal#zur_file3.txt ====
%begin                                   {Input P-Code Pascal from tape. ADC}
   %const %integer max = 2*13 
   %const %integer %array blocks(1:max) =
      -(1<<16+351),     (1<<16+6),
      -(20<<16+3840),   (3<<16+6),
      -(78<<16+3840),   (1<<16+486),
       (1<<16+6),      -(62<<16+3840),
       (1<<16+3794),    (1<<16+6),
      -(74<<16+3840),   (1<<16+2121),
       (1<<16+6),      -(1<<16+351),
       (1<<16+6),      -(20<<16+3840),
       (3<<16+6),      -(78<<16+3840),
       (1<<16+486),     (1<<16+6),
      -(62<<16+3840),   (1<<16+3794),
       (1<<16+6),      -(74<<16+3840),
       (1<<16+2121),    (1<<16+6)

   %external %routine %spec Claim Tape
   %external %routine %spec Release tape
   %external %routine %spec Read tape(%integer Buffer address, size)
   %external %routine %spec Writetape(%integer Buffer address, size)

==== ecslib/emas-2900/pascal#zur_file4.txt ====
%begin
   {Character set conversion for P-Code Pascal tape.   ADC}
   %const %byte %array Map(0:63) = 
      {0}   0 {NULL},
      {1}   'A','B','C','D','E','F','G','H','I','J','K','L',
            'M','N','O','P','Q','R','S','T','U','V','W','X',
            'Y','Z',
      {27}  '0','1','2','3','4','5','6','7','8','9',
      {37}  '+','-','*','/','(',')','$','=',' ',',','.','''',
            '[',']',':',0(4),'^',0,'<','>',0(3),';',
            0(*)
 
   %integer Sym, Stopping
   %const %integer Input ended = 9
   %string(255) Line

   %integer %function Get sym
      %own %short %integer Count = 0, k
      %integer Sym = 0, j
      %for j = 1, 1, 6 %cycle            {Read a six-bit character}
         Read symbol(k) %if Count&7 = 0

==== ecslib/emas-2900/pascal#zur_file5.txt ====

(*ASSEMBLER AND INTERPRETER OF PASCAL CODE*)
(*K. JENSEN, N. WIRTH, CH. JACOBI, ETH MAY 76*)

PROGRAM PCODE(INPUT,OUTPUT,PRD,PRR);

(* NOTE FOR THE IMPLEMENTATION.
   ===========================
THIS INTERPRETER IS WRITTEN FOR THE CASE WHERE ALL THE FUNDAMENTAL
TYPES TAKE ONE STORAGE UNIT.
IN AN IMPLEMENTATION ALL THE HANDLING OF THE SP POINTER HAS TO TAKE
INTO ACCOUNT THE FACT TAHT THE TYPES MAY HAVE A LENGTH DIFFERENT FROM
ONE. SO IN PUSH AND POP OPERATIONS THE IMPLEMENTOR HAS TO INCREASE
AND DECREASE THE SP NOT BY 1 BUT BY A NUMBER DEPENDING ON THE TYPE
CONCERNED.
WHERE THE NUMBER OF UNITS OF STORAGE IS USED EXPLICITELY,
THIS VALUE MUST NOT BE CORRECTED, BECAUSE
THE COMPILER HAS COMPUTED IT TAKING INTO ACCOUNT THE LENGTHS OF THE
TYPES INVOLVED.
THE SAME HOLDS FOR THE HANDLING OF THE NP POINTER (WHICH MUST NOT BE
CORRECTED)                                                       *)

==== ecslib/emas-2900/generals_uinfis.txt ====
!TITLE UINFI interface procedures

!!           The following procedures call
%EXTERNAL %INTEGER %FN %SPEC  UINFI(%INTEGER Function)

!< S# SS own fsys
!   File system number
!%SYSTEM %INTEGER %FN %SPEC  SS own fsys
!>
%SYSTEM %INTEGER %FN  SS own fsys
   %RESULT = UINFI(1)
%END

!< S# SS reason
!   foreground = 1
!   batch      = 2
!   obeyfile   = 3
!%SYSTEM %INTEGER %FN %SPEC  SS reason
!>
%SYSTEM %INTEGER %FN  SS reason
   %RESULT = UINFI(2)

==== ecslib/emas-2900/pascal#zur_file6.txt ====

(*$C+,T-,D-,L-*)
 (**********************************************
  *                                            *
  *                                            *
  *         PORTABLE PASCAL COMPILER           *
  *         ************************           *
  *                                            *
  *                PASCAL P4                   *
  *                                            *
  *                                            *
  *     AUTHORS:                               *
  *              URS AMMANN                    *
  *              KESAV NORI                    *
  *              CHRISTIAN JACOBI              *
  *                                            *
  *     ADDRESS:                               *
  *                                            *
  *          INSTITUT FUER INFORMATIK          *
  *          EIDG. TECHNISCHE HOCHSCHULE       *
  *          CH-8096 ZUERICH                   *

==== ecslib/emas-2900/pascal#zur_file7.txt ====
L   3
 ENT   1
 ENT   2
 LDOI
 LDCI
 GRTI
 FJP
 LCA' ****
I   10
 LDCI
 LDCI
 LDA   1
 CSP
 LDCI
 STRI  0
 LDCI
 STRI  0
 LDCI
 STRI  0
I   20
 LDOI

==== ecslib/emas-2900/pascal#zur_file8.txt ====

(*$C+,T+,L+*)
 (**********************************************
  *                                            *
  *                                            *
  *         PORTABLE PASCAL COMPILER           *
  *         ************************           *
  *                                            *
  *                PASCAL P3                   *
  *                                            *
  *                                            *
  *     AUTHORS:                               *
  *              URS AMMANN                    *
  *              KESAV NORI                    *
  *              CHRISTIAN JACOBI              *
  *                                            *
  *     ADDRESS:                               *
  *                                            *
  *          INSTITUT FUER INFORMATIK          *
  *          EIDG. TECHNISCHE HOCHSCHULE       *
  *          CH-8096 ZUERICH                   *

==== ecslib/emas-2900/pics_calender_may.txt ====

                                                   -XXXXXX-
                                               XXXX        XX
                          XXXXX               X               XX
                        XX     XX            X                  XX
                      XX         XXX        X                     XX
                    XX          *-  XXX    X                        XX
                    XX        /****    XXXX                           X
                   XXX       -**                                       X
                  XXX                                                  X
                  XX                                                   X
                XXX                  /                                 X
                XXX                 (/ X                               X
              XXX X                    -XX                            X
             XXXX X                      XXXXXXXXX                   X
            XXXX  X                            XXXXXXXX           XXX
           X XXX XX                          XX        XXXXXXXXXXXX
           XXXX X                          XX
         XXXXX  XX                       XX
         XXXXX X XX                     XX
        XXXXXX X   XX                  XXX

==== ecslib/emas-2900/pascal#zur_file9.txt ====
****************************************************************
****************************************************************
****************************************************************
****************************************************************
****************************************************************
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+-*/()$= ,
 S2)W=

==== ecslib/emas-2900/pascal#zur_file10.txt ====

(*ASSEMBLER AND INTERPRETER OF PASCAL CODE*)
(*K. JENSEN, N. WIRTH, CH. JACOBI, ETH MAY 76*)

PROGRAM PCODE(INPUT,OUTPUT,PRD,PRR);

(* NOTE FOR THE IMPLEMENTATION.
   ===========================
THIS INTERPRETER IS WRITTEN FOR THE CASE WHERE ALL THE FUNDAMENTAL
TYPES TAKE ONE STORAGE UNIT.
IN AN IMPLEMENTATION ALL THE HANDLING OF THE SP POINTER HAS TO TAKE
INTO ACCOUNT THE FACT TAHT THE TYPES MAY HAVE A LENGTH DIFFERENT FROM
ONE. SO IN PUSH AND POP OPERATIONS THE IMPLEMENTOR HAS TO INCREASE
AND DECREASE THE SP NOT BY 1 BUT BY A NUMBER DEPENDING ON THE TYPE
CONCERNED.
WHERE THE NUMBER OF UNITS OF STORAGE IS USED EXPLICITELY,
THIS VALUE MUST NOT BE CORRECTED, BECAUSE
THE COMPILER HAS COMPUTED IT TAKING INTO ACCOUNT THE LENGTHS OF THE
TYPES INVOLVED.
THE SAME HOLDS FOR THE HANDLING OF THE NP POINTER (WHICH MUST NOT BE
CORRECTED)                                                       *)

==== ecslib/emas-2900/pascal#zur_file11.txt ====

(*$C+,T-,D-,L-*)
 (**********************************************
  *                                            *
  *                                            *
  *         PORTABLE PASCAL COMPILER           *
  *         ************************           *
  *                                            *
  *                PASCAL P4                   *
  *                                            *
  *                                            *
  *     AUTHORS:                               *
  *              URS AMMANN                    *
  *              KESAV NORI                    *
  *              CHRISTIAN JACOBI              *
  *                                            *
  *     ADDRESS:                               *
  *                                            *
  *          INSTITUT FUER INFORMATIK          *
  *          EIDG. TECHNISCHE HOCHSCHULE       *
  *          CH-8096 ZUERICH                   *

==== ecslib/emas-2900/pascal#zur_file12.txt ====
L   3
 ENT   1
 ENT   2
 LDOI
 LDCI
 GRTI
 FJP
 LCA' ****
I   10
 LDCI
 LDCI
 LDA   1
 CSP
 LDCI
 STRI  0
 LDCI
 STRI  0
 LDCI
 STRI  0
I   20
 LDOI

==== ecslib/emas-2900/pascal#zur_file13.txt ====

(*$C+,T+,L+*)
 (**********************************************
  *                                            *
  *                                            *
  *         PORTABLE PASCAL COMPILER           *
  *         ************************           *
  *                                            *
  *                PASCAL P3                   *
  *                                            *
  *                                            *
  *     AUTHORS:                               *
  *              URS AMMANN                    *
  *              KESAV NORI                    *
  *              CHRISTIAN JACOBI              *
  *                                            *
  *     ADDRESS:                               *
  *                                            *
  *          INSTITUT FUER INFORMATIK          *
  *          EIDG. TECHNISCHE HOCHSCHULE       *
  *          CH-8096 ZUERICH                   *

==== ecslib/emas-2900/pascal#zur_file14.txt ====
%begin                                   {Input P-Code Pascal from tape. ADC}
   %const %integer max = 2*13 
   %const %integer %array blocks(1:max) =
      -(1<<16+351),     (1<<16+6),
      -(20<<16+3840),   (3<<16+6),
      -(78<<16+3840),   (1<<16+486),
       (1<<16+6),      -(62<<16+3840),
       (1<<16+3794),    (1<<16+6),
      -(74<<16+3840),   (1<<16+2121),
       (1<<16+6),      -(1<<16+351),
       (1<<16+6),      -(20<<16+3840),
       (3<<16+6),      -(78<<16+3840),
       (1<<16+486),     (1<<16+6),
      -(62<<16+3840),   (1<<16+3794),
       (1<<16+6),      -(74<<16+3840),
       (1<<16+2121),    (1<<16+6)

   %external %routine %spec Claim Tape
   %external %routine %spec Release tape
   %external %routine %spec Read tape(%integer Buffer address, size)
   %external %routine %spec Writetape(%integer Buffer address, size)

==== ecslib/emas-2900/pascal#zur_file15.txt ====
%begin
   {Character set conversion for P-Code Pascal tape.   ADC}
   %const %byte %array Map(0:63) = 
      {0}   0 {NULL},
      {1}   'A','B','C','D','E','F','G','H','I','J','K','L',
            'M','N','O','P','Q','R','S','T','U','V','W','X',
            'Y','Z',
      {27}  '0','1','2','3','4','5','6','7','8','9',
      {37}  '+','-','*','/','(',')','$','=',' ',',','.','''',
            '[',']',':',0(4),'^',0,'<','>',0(3),';',
            0(*)
 
   %integer Sym, Stopping
   %const %integer Input ended = 9
   %string(255) Line

   %integer %function Get sym
      %own %short %integer Count = 0, k
      %integer Sym = 0, j
      %for j = 1, 1, 6 %cycle            {Read a six-bit character}
         Read symbol(k) %if Count&7 = 0

==== ecslib/emas-2900/pascal#zur_file16.txt ====
==== ecslib/emas-2900/lisp_lispv09s70.txt ====
%EXTERNALROUTINESPEC PROMPT(%STRING(15) S)
%EXTERNALROUTINESPEC CLOSE STREAM(%INTEGER N)
%EXTERNALROUTINESPEC DEFINE(%STRING(63) S)
%EXTERNALROUTINE LISP INTP(%INTEGER SPACE, INITMODE)
!
! ***** READ  ROUTINES *****
!
%INTEGERFNSPEC RATOM
%INTEGERFNSPEC READ SEXP(%STRING(15) PMPT)
!
! ***** PRINT ROUTINES *****
!
%ROUTINESPEC PRINT CHARS(%STRING(72) PHRASE)
%STRING(15)%FNSPEC NUMBER(%INTEGER I)
%STRING(72)%FNSPEC PNAME(%INTEGER INDEX)
%ROUTINESPEC PRINT(%INTEGER INDEX)
!
! ***** LISP  ROUTINES *****
!
%INTEGERFNSPEC PUSH(%INTEGER INDEX)
%INTEGERFNSPEC CONS(%INTEGER CAR, CDR)

==== ecslib/emas-2900/pics_calender_march.txt ====

                

                                          LLLLLL
                                      LLLLLLLLLLLLLL
                                    LLLLLLLLLLLLLLLLL
                                    LLLLLLLLLLLLLLLLL
              LLL                     LLLLLLLLLLLLLL
            LLLL LL                           LLLLL
         LLLLLL LLL                         LLLLLL
        LLLLLL LLL                        LLLLLLLL
      LLLLLLL LLL              LLLLLL   LLLLLL
     LLLLLLLLLLL           LLLLLLLLLLLLLLLL        LLLLLLLLLLLLL
    LLLLLLLLLLL           LL             LLLLLLLLLL            LLLL
  LLL LLLLLLLL           LL      LL                               LL
 LLL LLLLLLLL           LL      LL                                LL
LLLL LLLLLL            LL      LL                   LLLLLLLLL      LL
LLL LLLLLL          LLL                            LLLLLLLLLLLL     LL
LLLLLLLLLLLLLLLLLLLLLLLLL            LL           LLLLLLLLLLLLL      LL
LLLLLLLLLLLLLLLLLLLLLLLLL            LL                              LL
LLLLLLLLLLLLLLLLLLLLLLLLL             LL                     LL     LL

==== ecslib/emas-2900/vlsiuse_cmos8.txt ====
IDENT *
CA  3  1  0   2
CP  4  2  0   7
CM  2  4  0   8
CW  6  8  0   1
CS  7  7  0   3
CC  1  0  0   6
CV  5 15  0   3
CG  8 12  0   1
CD  5  1  0   8
CN  7  7  0   1
CT  1 15  0   1
ZZZ

==== ecslib/emas-2900/gt_view_getusers.txt ====
%BEGIN
%INTEGER START,FIN
%INTEGER I
SELECTOUTPUT(1)
READ(START)
I = START+X'28'
FIN=START+X'2000'-2
%CYCLE
   %WHILE I<FIN %CYCLE
      %EXIT %IF BYTEINTEGER(I)='/'
      I=I+1
   %REPEAT
   %EXIT %IF I>=FIN
   I=I-3
   PRINTSTRING(STRING(I));NEWLINE
   I=I+BYTEINTEGER(I)
%REPEAT
%ENDOFPROGRAM

==== ecslib/emas-2900/arthur.txt ====

 PDP16S,NEWSIMS,PDPDUMPS,WOMBLES,SIMPS,REDUCES,GRAPH16S,ARTHPS



%CONSTSHORTINTEGERARRAY MAIN(1: 172) = %C
    1,    0,    4,    9,   15,   19,   23,   28,   33,   37,   43,   48,
   53,   58,   63,   67,   71,   82,   86,   90,   94,   97,  105,  109,
  113,  114,  116,    0,  118,  122,    0,  124,  127,    0,  131,  134,
  135,  138,    0,  141,  144,  147,  150,  153,  156,    0,  162,  162,
  167,  171,    0,  174,  178,  182,  189,    0,  191,  196,    0,  199,
  203,  207,  210,    0,  213,  216,  219,    0,  222,  225,  228,  231,
    0,  235,  238,  241,  244,  247,    0,  250,  253,    0,  256,  259,
  262,    0,  265,    0,  268,  272,    0,  274,  277,  280,  283,  286,
    0,  292,  296,  299,  302,  305,  308,    0,  310,  315,    0,  317,
  320,  323,    0,  326,  330,  334,    0,  338,  341,    0,  343,  346,
    0,  349,  355,    0,  357,    0,  362,  365,  368,    0,  370,  376,
    0,  378,    0,  382,  390,  398,  402,    0,  406,  409,  412,    0,
  417,  420,    0,  422,  427,    0,  429,    0,  432,  437,    0,  439,
  442,    0,  444,  450,    0,  452,  457,    0,  459,  462,  465,  468,
  471,  474,  477,    0

==== ecslib/emas-2900/include_ascii.txt ====
%end %of %list
%const %integer   NUL  =  0,   SOH  =  1,   STX  =  2,   ETX  =  3
%const %integer   EOT  =  4,   ENQ  =  5,   ACK  =  6,   BEL  =  7
%const %integer   BS   =  8,   HT   =  9,   LF   = 10,   VT   = 11
%const %integer   FF   = 12,   CR   = 13,   SO   = 14,   SI   = 15
%const %integer   DLE  = 16,   DC1  = 17,   DC2  = 18,   DC3  = 19
%const %integer   DC4  = 20,   NAK  = 21,   SYN  = 22,   ETB  = 23
%const %integer   CAN  = 24,   EM   = 25,   SUB  = 26,   ESC  = 27
%const %integer   FS   = 28,   GS   = 29,   RS   = 30,   US   = 31
%const %integer   DEL  = 127
%const %integer   TAB  = HT
%list

==== ecslib/emas-2900/pdp16pd_arthps.txt ====

*
* PHRASE STRUCTURE DEFINITOIN OF ARTHUR
*

* DEFINE BUILT-IN PHRASES
*
B[CONSTANT]=3
B[NAME]=4
B[NAMELIST]=5
B[SPDEFN']=6
B[TEXT]=7
B[SEPERATOR]=8
B[CONSTANT LIST]=9

*
* DEFINE NAMED LITERAL VALUES
*
L<PADDING> = 0
L<THERE> = 1
L<MISSING> = 0

==== ecslib/emas-2900/oldgeneraly_ecceview_a.txt ====
!TITLE INTRODUCTION TO TEXT EDITING

   ECCE is a text editor.  Under the control of commands entered from a
terminal keyboard, it carries out modifications to a body of text held
in a computer file.  This text file may be, for example, a source
program in some high-level language, or tables of results generated by a
statistical package, or data intended as input to a user's program; it
may simply be material which is held in the computer filing system
solely for the purposes of editing and listing.  The differences between
these kinds of text files are not in any way significant to the
operation of the Editor.  What ECCE cannot do is edit files which are
not composed of lines of text, such as executable code files.

!<Text files

   A text file consists of a number of lines, each line containing a
number of characters.  The characters making up a line are either
printing characters or space characters.  There is no need when typing
in lines on a computer terminal, any more than on a conventional
typewriter, to 'space' after the last printing character on a line, in
order to pad lines out to a particular fixed length; RETURN suffices to

==== ecslib/emas-2900/oldgeneraly_ecceview_b.txt ====
!TITLE ADVICE FOR BEGINNERS

   To begin with, the Editor will seem a clumsy tool, particularly for
those with limited typing experience.  Changes which could be marked up
on a document in no time take an age to translate into sequences of
editing commands to achieve the desired effect.  Fluency comes with
practice, although editing remains a fiddling business, and mistakes are
inevitable.  Happily most mistakes are easily recovered from, and in the
exceptional case where an edit goes disastrously wrong (for example
unintentionally scrambling half the file), the editing session can
always be abandoned without losing the original file, so that only the
editing time is wasted.

   With experience, it becomes quite straightforward, and habitual, to
edit a file 'sight unseen'.  However, for initial learning, it is
sensible to use as test data a file with known contents.
!PAGE
The following procedure is a possible learning programme:

(a)  Beg or borrow a copy of some text file for experimentation.
     A suitable length is 30 to 100 lines of text.

==== ecslib/emas-2900/oldgeneraly_ecceview_c.txt ====
!TITLE CALLING THE EDITOR
       These examples assume that the EMAS option NOBRACKETS is
       selected.

   (a) To edit an existing file called "CURTEXT" so that the new file
       created will also be called "CURTEXT":
               VECCE CURTEXT
       This is the standard updating procedure.

   (b) To edit an existing file called "OLDTEXT" in such a way as to
       create a new file called "NEWTEXT":
               VECCE OLDTEXT/NEWTEXT

   (c) To create a new file called "PROG34" from scratch:
               VECCE .N/PROG34
       The ".N" stands for a null file, so that technically this is a
       special case of (b) above starting with an empty old file.  The
       first editing command when creating a new file would normally be
       "G*" (see Get below)
!PAGE
   (d) To inspect an existing file called "RESULTS" without altering it:

==== ecslib/emas-2900/oldgeneraly_ecceview_d.txt ====
!TITLE COMMAND FORMATS

   When the Editor is called, it positions its file pointer at the start
of the first line in the file to be edited and presents the initial
display.  At the outset, it is in command mode and expects command input
to be typed on the command line.  The response may take one of three
forms:
        typing a command line followed by RETURN
        typing a Special command followed by RETURN
        pressing a control key (including plain RETURN)

   A command line consists of one or more editing commands, optionally
separated by spaces.  A command line is terminated by RETURN and errors
noticed while typing it may be cancelled by means of the DEL key.

!<Special commands

   Special commands are distinguished by starting with the prefix "%"
(percent-sign) followed by a letter.  They are used to select options
and set modes which modify the effect of subsequent editing commands.
The most essential Special command is the Close command "%C" which is

==== ecslib/emas-2900/oldgeneraly_ecceview_e.txt ====
!TITLE INDIVIDUAL EDITING COMMANDS
!<Move (forward one line)  M

 The Move command causes the file pointer to be moved from its current
 position to the start of the following line.
    Attaching a repetition number to a Move command provides a means
    of moving forward a fixed number of lines.  For example, the
    command "M99" issued at the start of the file, causes the pointer
    to be moved to the start of the hundredth line in the file.

 The command fails if the file pointer is at the very end of the file,
 that is, beyond the last line of text.
    It is legitimate to Move from the last line in the file to the
    end-of-file position, but then further Moves will fail.
!>
!<Move back (one line)     M-

 This command causes the file pointer to be moved from its current
 position to the start of the previous line.

 The command fails if the current line is the first line in the file,

==== ecslib/emas-2900/oldgeneraly_ecceview_f.txt ====
!TITLE OPTIONS
This section describes the various options which may be selected to
control or qualify the operation of the Editor.  The initial parameters
in the list marked with an asterisk can be specified only in the command
line when the Editor is called (see CALLING THE EDITOR); that is, once
established, they cannot be changed.  The others may be freely altered
at any time, by means of the Environment command "%E"(below).

!<Pre-definition file    *PRE

 This Option is provided to make it possible to specify a file of
 editing commands which are to be obeyed at the outset of the editing
 session.  Its main use is to permit frequently used definitions to be
 recovered from a file, but the file may contain any editing commands
 and may in fact comprise a complete edit ending with the Close command
 ("%C").  Values for this parameter must be valid file-names.  Although
 PRE may be specified at the outset only, the %G command (Get editing
 commands from file) is available at any time.

Examples:    -PRE=WPPREDEF    -PRE=ECUU99.PROJ_DEF1
!>

==== ecslib/emas-2900/oldgeneraly_ecceview_g.txt ====
!TITLE SPECIAL COMMANDS

   The most important Special command is the Close command "%C" which is
the normal method of closing off the edit and making permanent the
changes to the file.  If for any reason it is desired to ABANDON the
edit without giving effect to the changes, the Abandon command "%A"
should be used instead.  The variant "%Ci" is used to invoke IMP syntax
checking before finally closing the file.
See also the section on MACROS for the Special commands "%Q" (Query key
definition) and "%K" (define Key).

!<modify Environment                %E

    The Environment command "%E" switches the Editor into a mode in
 which the various options described above may be modified.  It cycles
 through the list of modifiable options displaying the current value and
 permitting an alternative value to be specifed.  The RETURN key is used
 to move on to the next in the list and colon is used to return to
 editing.  For a numeric option, a number must be typed to specify a new
 value; for a yes/no option any response other than RETURN or colon is
 sufficient to alter the setting.

==== ecslib/emas-2900/oldgeneraly_ecceview_h.txt ====
!TITLE MACROS

   The upper-case letters 'A' to 'W' and the punctuation symbols have a
fixed significance to ECCE.  All the lower-case letters, and the
upper-case letters 'X' to 'Z', are available for definition as macros,
that is as abbreviations for sequences of characters.  So also are the
control keys.

!<Command and text macros

    The printing keys mentioned have a significance as macros only
 within commands, since in data-entry mode or within text strings they
 stand for themselves.  Any of them may be used in a position where a
 command letter is expected and may stand for any sequence or partial
 sequence of commands.

    The letters 'X' to 'Z' and 'x' to 'z' have two additional
 properties: first, they may be used in a position where a text
 parameter is required; and, second, they may be defined to stand for a
 text sequence appearing in the file being edited, or the secondary
 input file, using the Define Macro ("^") command.

==== ecslib/emas-2900/oldgeneraly_ecceview_i.txt ====
!TITLE PROGRAMMED COMMANDS

   This section describes facilities for constructing more powerful
commands from simple commands.  So far, the only form of compound
command structure introduced has been the facility to type more than one
command in a single command line, with the consequential capability of
repeating the complete sequence by subsequently typing a repetition
number instead of another command.

!<Caution

    The structuring facilities described in the following paragraphs can
 be used to carry out some quite complicated operations, but commands
 making heavy use of them tend to become rather difficult to understand.
 It is not sensible to try to devise a programmed command of any
 significant complexity while working at the terminal.  Contemplation in
 tranquillity is required.  Some users note in a log-book those which
 they have found useful in the past.
!>
!<Command sequences


==== ecslib/emas-2900/oldgeneraly_ecceview_j.txt ====
!TITLE IMPLEMENTATIONS

   One of the objectives of the design of ECCE is that it should not be
system-dependent, but should be implementable on a range of machines.
This video version as described in earlier sections is implemented
uniformly on EMAS 2900, VAX/VMS and the Computer Science Department's
Advanced Personal Machine.  The syntax checking capability is a
by-product of work on the programming environment for the APM.

   The detail of some features, for example those involving naming of
files, is inevitably bound up with a particular operating system.  The
performance of the editor as seen by the user is also affected by the
system, and, more especially, the mode of connection.

!<Mode of connection

   The most important factor affecting editor performance is the mode of
connection of the user's terminal.  In general, the more direct the
connection, the better the performance will be.  ECCE has a number of
options which make it possible to exercise some control over the
frequency of interaction and the volume of data transferred.

==== ecslib/emas-2900/pics_pooh.txt ====




                                                        XXXX
                                                      XX    XX
                                  XXXX              XX        XX
                                XXX   XX           XX          XX
                              XX        XX  XXXX  XX           XX
                             XX           XX    XXXX           XX
                            XX             XX       XXX        XX
                            XX             XX         XXX     XX
                             XX                         XXX  XX
                              XX                          XXX
                               XX                           XX
                                XX                           XX
                                 XXXX                          XX
                               XX                                XX
                               XX                                  XX
                               XX                              X    XX
                              XX                             XXX    XX

==== ecslib/emas-2900/lpd_jlaydcls.txt ====
$A ESCAPE='@';INVERT=0;PAGE=60
@A TAB=4,8,12,16,20,24,28,32,36,40,44,48,52,56,60,64,68,72
@A CAPO=0;CAPSHO=0;MARK=2
@A CAP=0;CAPSH=0
@A PAGENO=1;BOTTOM=3; LINE=80
@C21 EDINBURGH REGIONAL COMPUTING CENTRE@C67 September 1977
@B3 @L1CMU
layout: a document formatting program
@P2
LAYOUT is a document formatting program, written in IMP. Its
input is a character file consisting for the most part of the
text of the document to be produced. This source file is read once by
LAYOUT and the output document file is produced as it is read. Optionally,
LAYOUT can also produce an updated source file, the purpose of which is
described later.
@P1The source file is treated as a sequence of 'text atoms' separated by
delimiters, a delimiter being any number of spaces or newlines or both.
A text atom thus corresponds to a normal word,
possibly followed by punctuation. The program reads the text atoms and
places them one by one, separated by %single spaces, in a line buffer
until the next text atom would exceed the line length defined by the

==== ecslib/emas-2900/basicpd_bass.txt ====
%EXTERNALSTRING(15) IFILE,OFILE
%EXTERNALROUTINESPEC RUN(%STRING(63) S)
%EXTERNALROUTINESPEC DEFINE(%STRING(63) S)
%EXTERNALROUTINESPEC LIST(%STRING(63) S)
%EXTERNALINTEGER STREAM
%EXTERNALROUTINESPEC SET MARGINS(%INTEGER A,B,C)
%EXTERNALROUTINE BASIC(%STRING(63) IF)
    OFILE='.TT' %UNLESS IF->IF.('/').OFILE
    %IF IF='' %OR IF='.TT' %START
        IF='.TT' ; STREAM=0
    %FINISHELSE STREAM=1
    IFILE = IF %UNLESS OFILE->OFILE.(',').IFILE
    OFILE='.TT' %IF OFILE=''
    %IF IF#'.TT' %AND ( OFILE=IF %OR OFILE=IFILE) %START
        PRINTSTRING('INVALID PARAMETERS')
        NEWLINE ; %STOP
    %FINISH
    DEFINE('ST01,'.IF)
    DEFINE('ST02,'.OFILE)
    DEFINE('ST03,'.IFILE)
    SELECTOUTPUT(2)

==== ecslib/emas-2900/lpd_qls.txt ====

!*
!*      * $VM$BN NOW WORKS IN ALL CASES - N  BLANK LINES NOW SENT TO
!*        OUTPUT FILE AFTER PAGE TURN CAUSED BY $V.
!*      * 'READ ATOM OR DIRECTIVE' REWRITTEN WITH SWITCH.  ESC SYMBOL IS
!*        ALWAYS GIVEN PRIORITY ON INPUT.  E.G. _$% WOULD NOW PRODUCE AN
!*        UNDERLINED PERCENT.
!*        CAP, CAPSH, UND, UNDSH CAN NOW BE COMBINED IN ANY ORDER, ALTHOUGH
!*        CAPSH IS STILL ONLY RECOGNISED IF THE FIRST SYMBOL READ OF THE
!*        ATOM.
!*      * THE UPDATED SOURCE IS NOT GENERATED IF NO FILE HAS BEEN GIVEN
!*        FOR IT.
%EXTERNAL %INTEGER %FN %SPEC EXIST(%STRING (63) S)
!*
!*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!*
!* ROUTINE REQUIRED TO DECODE AND SET STREAMS FOR EMAS.
!*
%EXTERNAL %ROUTINE %SPEC DEFINE(%STRING (63) S)
%EXTERNAL %ROUTINE %SPEC SETMARGINS(%INTEGER J,K,L)
%ROUTINE %SPEC PROCESSDOCUMENT

==== ecslib/emas-2900/gamefpd_fullgame.txt ====
%CONTROL 0
%ROUTINE CHECKSTUDENT
%BYTEINTEGER I
;!%MCODE
I=0
*XC_80(16,11),80(11); ! CLEAR BUFFER
*MVI_81(11),160
*MVI_95(11),7
*LD_0,80(11)
*LD_2,88(11)
*SVC_254
*STD_4,80(11)
*MVC_I(1),81(11)
*NI_I,1

PRINTSTRING("No access to Student users
")%ANDSTOPIF I#0
%END
%DYNAMICROUTINESPEC CLEAR(%STRING(63)K)
%DYNAMICROUTINESPEC DEFINE(%STRING(63)K)
%EXTERNALROUTINESPEC PROMPT(%STRING(15)S)

==== ecslib/emas-2900/generals_whoiss.txt ====
! Source of WHOIS

%external %routine WHOIS (%string (255) S)
   %external %routine %spec MAIL (%string (255) S)
   %external %routine %spec DEFINE (%string (255) S)

   DEFINE ("75,.NULL")
   SELECTINPUT (75)
   MAIL ("DIR,".S)
%end

%end %of %file

==== ecslib/emas-2900/gt_view_preface.txt ====
To analyse Tony Gibbons 'Trojan Horse' file,
type..
#CONNECT ERCC04.VIEWLOG
#DEC <Number given above>
DEFINE 1,USERLIST
RUN ANALYSE

==== ecslib/emas-2900/generals_build_obey1.txt ====
mail
dir */m#userlist
stop
e m#userlist
k3
m0m-k
m-0
f/ EDEE  /k;0
m-0
f/vax  /k;0
m-0
f/  Dlist  /k3;0
m-0
f/  EDXA /k;0
m-0
v/empty/\m,k;0
m-0
f/  BUSH  /l6i/;/m;0
m-0
f/  EMAS  /l6i/;/m;0
m-0

==== ecslib/emas-2900/generals_build_obey2.txt ====
copy m#userlist,t#userlist
copy2 ecslib.generals_build_userbuild,t#builds
imp80 t#builds,t#buildy
run t#buildy
copy2 ecslib.generals_usnames,t#users
v t#users
f/!*start/m
%s=t#usertext
^
m0
$
%c
imp80 t#users,t#usery
delete t#users,t#builds,t#buildy,t#userlist,t#usertext


==== ecslib/emas-2900/vlsiuse_a1.txt ====
SIZE 80 56

==== ecslib/emas-2900/vlsiuse_a2.txt ====
SIZE 56 40

==== ecslib/emas-2900/pdp16pd_mynewsam.txt ====

!**                  *     *  *    *            *    **  *******  **   **            *****      *     *     * 
!**                  **   **  *    *            **   **  **       **   **           **   **    * *    **   **         
!**                  *** ***  **  **            ***  **  **       **   **           **        *   *   *** ***         
!**                  ** * **   ****             ** * **  *****    **   **            *****   **   **  ** * **         
!**                  **   **    **              **  ***  **       ** * **                **  *******  **   **         
!**                  **   **    **              **   **  **       *** ***           **   **  **   **  **   **         
!**                  **   **    **              **   **  *******   *   *             *****   **   **  **   **         
%ENDOFLIST
%CONTROL X'8000'

%CONSTSHORTINTEGERARRAY SMAIN(1: 150) = %C
    1,    0,    4,    8,   12,   15,   19,   25,   30,   35,   39,   43,
   47,   50,   54,   58,   63,   69,   74,   79,   84,   88,   92,   96,
  100,  104,  108,  112,  116,  121,  125,  128,  129,  133,    0,  135,
  138,    0,  141,  144,    0,  148,  150,    0,  152,  154,    0,  156,
  160,    0,  162,  167,    0,  169,    0,  172,  177,    0,  179,  182,
    0,  184,  187,  190,  193,  196,  199,    0,  202,  207,    0,  209,
  211,    0,  213,  215,    0,  217,  220,  223,    0,  226,  228,    0,
  230,  234,  235,  238,  239,  243,    0,  245,  251,  255,    0,  258,
  262,  266,  273,    0,  275,    0,  278,  281,    0,  283,  286,  289,

==== ecslib/emas-2900/include_imppredef.txt ====
! Please change the above line to include "ECSLIB.INCLUDE_UTIL" <<<<<<<<<<<<<<<<
! Useful pre-definitions for portable Imp programs

%external %string (15) %fn %spec Date
%external %string (15) %fn %spec Time
%dynamic %string (255) %fn %spec ItoS %alias "IMP_I_TO_S" (%integer I, P)
%dynamic %string (255) %fn %spec RtoS %alias "IMP_R_TO_S" (%long %real R,
                                                           %integer A, B)
%dynamic %integer %fn      %spec StoI %alias "IMP_S_TO_I" (%string (255) S)
%dynamic %integer %fn      %spec REM  %alias "IMP_REM"    (%integer A, B)

%external %routine %spec Prompt (%string (63) STR)

! Lattice Imp stream handling facilities

%dynamic %routine %spec Open Input  %alias "IMP_OPEN_INPUT" (%integer S,
                                                             %string (255) ST)
%dynamic %routine %spec Close Input %alias "IMP_CLOSE_INPUT"
%dynamic %routine %spec Reset Input %alias "IMP_RESET_INPUT"
%dynamic %integer %fn %spec Input Stream %alias "IMP_INPUT_STREAM"
%dynamic %string (255) %fn %spec Input Name %alias "IMP_INPUT_NAME"

==== ecslib/emas-2900/vlsiuse_a3.txt ====
SIZE 40 28


==== ecslib/emas-2900/vlsiuse_a4.txt ====
SIZE 28 20


==== ecslib/emas-2900/vlsiuse_nmos.txt ====
IDENT *
ND  3  1  0  18
NP  4  2  0  15
NM  2  4  0  18
NI  4  8  1   5
NB  1  7  1   5
NC  1  0  0  10
NG  1 12  0   1
NT  1 15  0   1
NV  1 15  0   3
ZZZ

==== ecslib/emas-2900/generals_cleans.txt ====
! A CLEAN command for EMAS
! Gordon Hughes, September 1982
! The file fitting code from J. Wexler

%const %integer SSPDFILETYPE = 6
%record %format ARF (%string (31) NAME, %integer TYPE %or %string (11) SNAME, %integer SP12, KBYTES,
    %byte %integer ARCH, CODES, CCT, OWNP, EEP, USE, CODES2, SSBYTE, FLAGS, SP29, SP30, SP31)
%record %format PDHF (%integer DATAEND, DATASTART, SIZE, FILETYPE, SUM, DATETIME, ADIR, COUNT)
%record %format RF (%integer CONAD, FILETYPE, DATASTART, DATAEND)
%record %format AFRECF (%string (11) NAME, %integer KBYTES, %string (8) DATE, %string (6) TAPE, %INTEGER CHAPTER, FLAGS)
%system %routine %spec PRINTMESS (%integer M)
%system %integer %fn %spec STOREMATCH (%integer L, A1, A2)
%system %routine %spec MOVE (%integer LENGTH, FROM, TO)
%external %integer %fn %spec DFILENAMES (%string (6) USER,
   %record (AFRECF) %array %name INF, %integer %name FILENUM, MAXREC, NFILES, %integer FSYS, TYPE)
%external %integer %fn %spec DDESTROY (%string (6) USER, %string (11) FILE,
   %string (8) DATE, %integer FSYS, TYPE)
%system %routine %spec SETWORK (%integer %name AD, FLAG)
%system %integer %map %spec COMREG (%integer I)
%system %routine %spec CONNECT (%string (31) FILE, %integer MODE, HOLE, PROT, %record (RF) %name R, %INTEGER %NAME FLAG)
%external %integer %fn %spec UINFI (%integer I)

==== ecslib/emas-2900/include_connect.txt ====
%external %routine %spec Connect File %alias "IMP_CONNECT_FILE" %c
   (%string(255) File, %integer Writeable,
    %integer %name Start Addr, Bytes Mapped)

%external %routine %spec Disconnect File %alias "IMP_DISCONNECT_FILE" %c
                                      ( %integer File Base Addr )

{values for Writeable}
%const %integer Read Only       = 0, {section not writeable}
                Read Write      = 1, {section writeable, file affected}
                Read Write Temp = 2  {changes do not affect file}

%end %of %file

==== ecslib/emas-2900/toals_view_preface.txt ====
To analyse Tony Gibbons 'Trojan Horse' file,
type..
#CONNECT ERCC04.VIEWLOG
#DEC <Number given above>
DEFINE 1,USERLIST
RUN ANALYSE

==== ecslib/emas-2900/generals_usnames.txt ====
!TITLE  Source of S#USERNAME
!<
%systemstring(255)%fn username(%string(255) User,%integer Machine)

!*START*!
!*END*!

%string (255) line
   %integer Lower,Upper,test

   length(line)=6
   Lower = 1; Upper = max Users
   %while Lower<Upper %cycle
      Test = (Upper + Lower)//2
      %if User<Users(Test) %then %start
         Upper=Test
      %finishelsestart
         Lower=Test+1
      %finish
   %repeat


==== ecslib/emas-2900/pics_jerry.txt ====




















                                                           MMMMMMMM

==== ecslib/emas-2900/pdp16pd_arthur.txt ====
!**                   *     ******    ******  **   **  **   **  ******
!**                  * *    **   **     **    **   **  **   **  **   **
!**                 *   *   **   **     **    **   **  **   **  **   **
!**                **   **  ******      **    *******  **   **  ******
!**                *******  **   **     **    **   **  **   **  **   **
!**                **   **  **   **     **    **   **  **   **  **   **
!**                **   **  **   **     **    **   **   *****   **   **
!**

!*****************       FULLY WORKING VERSION    **********************
%ENDOFLIST
%CONTROL 0

%CONTROL 0
%ENDOFLIST

%CONSTSHORTINTEGERARRAY MAIN(1: 174) = %C
    1,    0,    4,    9,   16,   20,   24,   31,   36,   40,   46,   51,
   56,   61,   66,   70,   74,   85,   89,   93,   97,  100,  108,  112,
  116,  117,  119,    0,  121,  125,    0,  127,  130,    0,  134,  137,
  138,  141,    0,  144,  147,  150,  153,  156,  159,    0,  165,  165,

==== ecslib/emas-2900/generals_uinfss.txt ====
!TITLE UINFS interface procedures

!             The following procedures call
%EXTERNAL %STRING(255) %FN %SPEC  UINFS(%INTEGER Function)

!< S# owner
!%SYSTEM %STRING(6) %FN %SPEC owner
!>
%SYSTEM %STRING(6) %FN owner
   %RESULT = UINFS(1)
%END

!< S# delivery
!%SYSTEM %STRING(255) %FN %SPEC delivery
!>
%SYSTEM %STRING(255) %FN delivery
   %RESULT = UINFS(2)
%END

!< S# start time
!%SYSTEM %STRING(8) %FN %SPEC start time

==== ecslib/emas-2900/vlsiuse_felt.txt ====
LAYERS I+B+G

==== ecslib/emas-2900/fundsparam.txt ====
AFTER=19/08/85 08.00.00
.END

==== ecslib/emas-2900/pdp16pd_graph16s.txt ====
!!!                                           *******  **        *****
!!!                                           **       **       **   **
!!!                                           **       **       **   **
!!!                                           *****    **       **   **
!!!                                           **       **       **   **
!!!                                           **       **       **   **
!!!                                           **       *******   *****










%CONTROL 0

%EXTERNALROUTINE FLO(%STRING (63) S)
%STRING (63) INFILE, OUTFILE

==== ecslib/emas-2900/pdp16pd_appendix.txt ====
$A UNDO=0;UND=0;LEFT=10
$A MARK=2;INVERT=0;CAP=0;CAPSH=0;CAPSHO=0;CAPO=0
$A ESCAPE='@';UNDSHO=0;UNDSH=0;PAGENO=82;PAGE=57;TOP=2;BOTTOM=5
@L0
      
*
*       APPENDIX 1
*
*
* PHRASE STRUCTURE DEFINITION OF ARTHUR
*
* BUILT-IN PHRASES ARE ENCLOSED IN SQUARE BRACKETS
*
*
*
* THE FIRST PHRASE IS THE DEFAULT ENTRY POINT
*
      
P(STAT)
      (SS) [SEPERATOR];
      

==== ecslib/emas-2900/pics_calender_august.txt ====




                      X X XXXXXXXXX
                    XXXXX          OO
                   XXXX X            OO
                  XX X     //         OO
                 XXXX     //           OO
                 XX      //            OO 
                LL                      OO
               LLL                       OO
              LLL L         ****   ****  OO
              LLL L         *****  *****  O
              LLL L         *****  *****  OO
             LLLLLL         *****  *****   OOOOO
             LLL LL         ****    ****        OOO
            LLLL LL                                OO
            LLLLLLL                                  OO
            LLLLLL                                    OOO
            LLLLLLL                                    OOO

==== ecslib/emas-2900/pics_calender_july.txt ====



                        XXXXXXXXXX
                       XXXXXXXXXXXXXX
                     XXXX          XXX
                    XXXX            XXX
                   XX                XXX
                  XXX                 XX
                 XXX                    XX
                 XXX                     XX
                 XXX                     XXX
                 XX              XX XXX   XXXXXXXXXXX
                 XX           XXXXX   XXXX  XXXXX   XXXX
                 XX          XX                        XXX
                 X                                       XX
                 X                                        XX
                XX                                        OX7
               X                                            XX
              XX X  XX                                       XX
              X XX XXXX                                       XX

==== ecslib/emas-2900/generals_compares.txt ====
!TITLE Source of COMPARE
!<
%SYSTEMINTEGERFNSPEC pd addr(%STRING(255) FILE)
%SYSTEMINTEGERMAPSPEC COMREG(%INTEGER I)
%EXTERNALINTEGERFN SSFAIL
   %RESULT=COMREG(24)
%END
%EXTERNALROUTINESPEC DEFINE(%STRING(255) STREAMS)
%EXTERNALROUTINESPEC SSFOFF
%SYSTEMSTRINGFNSPEC FAILURE MESSAGE(%INTEGER I)

%EXTERNALROUTINE COMPARE(%STRING(255)STREAMS); !COMPARE FILES A LA hd
%STRING(63)IN1,IN2,OUT
%CONSTINTEGER MAX=16, LINEMAX=128
%CONSTINTEGER NONE=0
%INTEGER ASTREAM,BSTREAM
%OWNINTEGER SKIP=1;  !TO IGNORE BLANK LINES
%OWNINTEGER ABASE=0, BBASE=0, ACOUNT=0, BCOUNT=0
%INTEGER ANUM,BNUM,INSTREAM,END OF FILE,IN1END,IN2END
%INTEGERARRAY AA,BB(1:MAX*LINEMAX)


==== ecslib/emas-2900/lpd_hlayouts.txt ====
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! ROUTINE REQUIRED TO DECODE AND SET STREAMS FOR EMAS.
!
%EXTERNALROUTINESPEC DEFINE (%STRING (63) S)
%EXTERNALROUTINESPEC SET MARGINS (%INTEGER J,K,L)
%ROUTINESPEC PROCESS DOCUMENT
%EXTERNALROUTINE LAYOUT (%STRING (63) S)
%EXTERNALINTEGERFNSPEC SSFAIL
%STRING (63) INFILE,OUTFILE,TIDYFILE
     %UNLESS S->INFILE.('/').OUTFILE %THENSTART
        SELECT OUTPUT (0)
        PRINTSTRING ('FAULTY PARAMETERS')  ;  NEWLINE
        %RETURN
     %FINISH
     %UNLESS OUTFILE->OUTFILE.(',').TIDYFILE %THEN TIDYFILE='.NULL'
!
! IF NO FILE NAME IS GIVEN FOR THE UPDATED SOURCE
! TAKE THE NULL FILE AS THE DEFAULT.
!

==== ecslib/emas-2900/generals_hasps.txt ====
! HASP for EMAS
%external %routine %spec DETACH (%string (255) STR)
%external %routine %spec DOCUMENTS (%string (255) PARAM)
%include "ECSC17.IMP77SPECS"

%external %routine HASP (%string (255) PARM)
   %integer NC
   %routine READ COMMANDS
      %on 9 %start
          %return
      %finish
      %cycle
         READ SYMBOL (NC)
         PRINT SYMBOL (NC)
      %repeat
   %end
   PARM = ",29" %if PARM=""
   PROMPT ("Hasp: ")
   OPEN OUTPUT (13, "T#HASP")
   SELECT INPUT (0)
   SELECT OUTPUT (13)

==== ecslib/emas-2900/pics_calender_june.txt ====


                         $$$$$$$$$$$$$$$$$$$$$
                       $$$                   $$$
                     $$                         $$
                   $$          $$$$$$$$$$         $$
                  $                      $          $
                 $                       $           $
               $$         $   $$       $$             $
              $                                         $
              $                                         $
              $            $$$   $$$$  $$               $
              $           $$$        $ $$$              $
              $                                         $
              $                $$$$$$                   $$
           $$$                                          $ $$
           $                                 $          $ $$
           $                                 $$$        $ $$
           $           $$$                  $          $$$
            $$$           $               $$           $
                $          $$$$$$$$$$$$$$$            $

==== ecslib/emas-2900/oldgeneraly_hasp.txt ====

   HASP options

This command allows a user to type in a batch job at the terminal, and it is
then entered on the batch queue, and will normally execute in parallel with
the users foreground work.  The default CPU limit is 29 seconds, so that the
job will run on the batch queue with the fastest turn a round.  The following
example show how the HASP command can be used.  The output from the batch job
is sent to the default line printer.

!< Basic example
   Command: HASP
   Hasp: IMP80 FILE1,FILE1Y
   Hasp: IMP80 FILE2,FILE2Y
   Hasp: RUN TEST
   Hasp: ^Y                                      { end of input }
   Batch job T#HASP entered on BATCH queue with cpu limit 29 sec.
!>
!< Increased CPU time

   Command: HASP ,1200

==== ecslib/emas-2900/whichemas.txt ====
! Program to inform you which EMAS it is running on, (2900 range).

%EXTERNAL %ROUTINE WHICHEMAS (%STRING(255) PARM)
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DDTADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,TOJDAY,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,DQADDR,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0, %C
         %INTEGER ITINT,CONTYPEA,GPCCONFA,FPCCONFA,SFCCONFA, %C
         BLKADDR,RATION,SMACS,TRANS,%LONGINTEGER KMON,  %C
         %INTEGER DITADDR,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,STOREAAD,PROCAAD,SFCCTAD,DRUMTAD,TSLICE,SP0,SP1, %C
         SP2,SP3,SP4,SP5,SP6,SP7,SP8, %C
         LSTL,LSTB,PSTL,PSTB,HKEYS,HOOT,SIM,CLKX,CLKY,CLKZ,  %C
         HBIT,SLAVEOFF,INHSSR,SDR1,SDR2,SDR3,  %C
         SDR4,SESR,HOFFBIT,S2,S3,S4,END)
%CONSTSTRING (4) %ARRAY OCPTYPE(1 : 6) =  "2950","2960","2970",
     "2980","2972","2976"
%RECORDNAME R(COMF)

==== ecslib/emas-2900/basicpd_bhelpi.txt ====
      E.C.S.D. BASIC Interpreter Version 1D.


     To run the program type BASIC. The highest level in the interpreter
is the edit phase (The prompt is ':'). Any BASIC line can be typed (in
any order) at this point. Also valid are the commands RUN,LIST,SAVE,DUMP
,NODUMP,RESEQUENCE, & STOP
    Should the running BASIC program require data via an INPUT statement
the prompt is '?'.

     It is possible to interrupt the running program by hitting 'ESC'
and typing 'EXIT'.

     By typing 'BASIC(<file>)', BASIC statements will be read from
<file> and control returned to the console when <file> has been
exhausted. Commands, as above, are not accepted.

  Differences from 'standard' BASIC are as follows.

     A) Redimensioning in MAT instructions is not yet implemented


==== ecslib/emas-2900/contents.txt ====



____________       _______________   __________    ____________________

PROGRAM NAME       LIBRARY/PROGRAM   ORIGINATOR    DOCUMENTATION SOURCE

ARTHUR             CSDEPT.PDP16LIB   P.S.Robertson   Departmental Report

Compatible Context CSDEPT.EDLIB      H.Dewar         Departmental Report

Editor

Interdata          CSDEPT.ISKMPLIB   D.J.Rees        D.J.Rees
SKIMP

IMP Interpreter    CSDEPT.IMPILIB    P.S.Robertson   CSDEPT.IMPIDOC

LAYOUT             CSDEPT.LAYOLIB    H.Dewar         Departmental Report

BASIC              CSDEPT.BASICLIB   W.A.Paterson    BHELP [1]

SOAP               CSDEPT.IMPILIB    P.S.Robertson   CSDEPT.SOAPDOC

==== ecslib/emas-2900/edwin_pas.txt ====
{ NB: Specs for Version 4 of EDWIN :  See ECSLIB.EDWIN_PSPECS for latest info }
{ EDWIN procedure specs in PASCAL format.}

{ Routines for initialisation and termination}
procedure initialise_for ( devicetype : integer); extern;
procedure terminate_edwin; extern;

{ Output primitives}
procedure move_abs ( x, y : integer); extern;
procedure move_rel ( dx, dy : integer); extern;
procedure line_abs ( x, y : integer); extern;
procedure line_rel ( dx, dy : integer); extern;
procedure marker_abs ( n, x, y : integer); extern;
procedure marker_rel ( n, dx, dy : integer); extern;
procedure character ( sym : char); extern;

{ Control}
procedure newframe; extern;
procedure update; extern;
procedure store_on ( stream : integer); extern;
procedure store_off; extern;

==== ecslib/emas-2900/vlsiuse_cifview.txt ====
!<ANALYSE
  ANALYSE <cif file>

     These commands are used to read a CIF description into  the  internal
  data structure in preparation for drawing.   A syntax check is performed
  on the CIF as it is read in.  If an error  is  detected  then  the  cell
  containing  the  error is marked and only the Bounding Box for this cell
  will be drawn if an attempt is made to draw the cell.   There are  three
  types of error, namely  WARNINGS (given for the users information):

     ?  Line 234  Cell FRED contains no geometry

  FAULTS (which allow only the bounding box of a cell to be drawn):

     *  Line 545  Point only contains one digit

  and DISASTERS (the ones which never happen?):

     #  Line 999  Internal data structure corrupt - please seek assistance

     The  number  typed  is  the  line number of the source text where the

==== ecslib/emas-a/unixforall.txt ====
			The GNU Manifesto

Copyright (C) 1985 Richard M. Stallman
  (Copying permission notice at the end.)

What's GNU?  Gnu's Not Unix!

GNU, which stands for Gnu's Not Unix, is the name for the complete
Unix-compatible software system which I am writing so that I can give it
away free to everyone who can use it.  Several other volunteers are helping
me.  Contributions of time, money, programs and equipment are greatly
needed.

So far we have a portable C and Pascal compiler which compiles for Vax and
68000 (though needing much rewriting), an Emacs-like text editor with Lisp
for writing editor commands, a yacc-compatible parser generator, a linker,
and around 35 utilities.  A shell (command interpreter) is nearly
completed.  When the kernel and a debugger are written, it will be possible
to distribute a GNU system suitable for program development.  After this we
will add a text formatter, an Empire game, a spreadsheet, and hundreds of
other things, plus on-line documentation.  We hope to supply, eventually,

==== ecslib/emas-a/commands/createcon/helpfile.txt ====
!TITLE CREATECON
!TOPIC CREATECON
!<CREATECON
!ADDKEY CONTROL,UNDERGRADUATE,STUDENT
                    
  Command:CREATECON SpecFile,SourceName[,ObjName,NewSpecFile]

  This command writes an IMP program that can be used to control a student
subsystem.
  The command has been provided to help course supervisors make use of the
mechanisms available to control their student system environment. Using these
mechanisms the supervisor can control the commands and files accessable by the
student, as well as providing an initialisation routine.
  In most cases the supervisor will not have to do any programming at all, he
need simply call this command. However, where more complex control is required
the program written by the command CREATECON can be used as a base for a more
complex system.
       
!<The IMP program
!PAGE
  

==== ecslib/emas-a/commands/createcon/alert.txt ====
RJG 17-FEB-87
NEWCRCON is a version of CREATECON which produces a control file which allows
student processes to connect to other student object files.
NEWCRCON is used in exactly the same way as is CREATECON.  It is useful to
include the EXPORT command in the specfile in ECSC97.

==== ecslib/emas-a/commands/createcon/ncc.txt ====
%externalroutine NEWCRCON %alias "C#NEWCRCON"

!*******************************************************************************
!    
!                       Undergraduate Control Program Writer
!                       ------------------------------------
!   This program is designed to help student course supervisors write the
!  controlling routines for their student subsystem. It can be used to write
!  all the control software that is needed in the simplest case or it can be
!  used as a basis for more complicated routines if necessary.
!   The program is written in the form of a command to make its use as simple
!  and as quick as possible.
!   Since it is written using PAM ,full online help ( should ) be available.
!
!   Note that it will be neccessary to change the 'HelpFile' constant if the
!  program is renamed or moved to another file area.
!
!                                         ( Paul Clenahan    August 1986 )
!
!*******************************************************************************
!AMENDMENTS

==== ecslib/emas-a/commands/createcon/createcon1.txt ====
%externalroutine CREATECON %alias "C#CREATECON"

!*******************************************************************************
!    
!                       Undergraduate Control Program Writer
!                       ------------------------------------
!   This program is designed to help student course supervisors write the
!  controlling routines for their student subsystem. It can be used to write
!  all the control software that is needed in the simplest case or it can be
!  used as a basis for more complicated routines if necessary.
!   The program is written in the form of a command to make its use as simple
!  and as quick as possible.
!   Since it is written using PAM ,full online help ( should ) be available.
!
!   Note that it will be neccessary to change the 'HelpFile' constant if the
!  program is renamed or moved to another file area.
!
!                                         ( Paul Clenahan    August 1986 )
!
!*******************************************************************************


==== ecslib/emas-a/commands/createcon/createcon2.txt ====
%externalroutine CREATECON %alias "C#CREATECON"

!*******************************************************************************
!    
!                       Undergraduate Control Program Writer
!                       ------------------------------------
!   This program is designed to help student course supervisors write the
!  controlling routines for their student subsystem. It can be used to write
!  all the control software that is needed in the simplest case or it can be
!  used as a basis for more complicated routines if necessary.
!   The program is written in the form of a command to make its use as simple
!  and as quick as possible.
!   Since it is written using PAM ,full online help ( should ) be available.
!
!   Note that it will be neccessary to change the 'HelpFile' constant if the
!  program is renamed or moved to another file area.
!
!                                         ( Paul Clenahan    August 1986 )
!
!*******************************************************************************
!AMENDMENTS

==== ecslib/emas-a/commands/createcon/newcrcon.txt ====
%externalroutine NEWCRCON %alias "C#NEWCRCON"

!*******************************************************************************
!    
!                       Undergraduate Control Program Writer
!                       ------------------------------------
!   This program is designed to help student course supervisors write the
!  controlling routines for their student subsystem. It can be used to write
!  all the control software that is needed in the simplest case or it can be
!  used as a basis for more complicated routines if necessary.
!   The program is written in the form of a command to make its use as simple
!  and as quick as possible.
!   Since it is written using PAM ,full online help ( should ) be available.
!
!   Note that it will be neccessary to change the 'HelpFile' constant if the
!  program is renamed or moved to another file area.
!
!                                         ( Paul Clenahan    August 1986 )
!
!*******************************************************************************
!AMENDMENTS

==== ecslib/emas-a/commands/createcon/createcon.txt ====
%externalroutine CREATECON %alias "C#CREATECON"

!*******************************************************************************
!    
!                       Undergraduate Control Program Writer
!                       ------------------------------------
!   This program is designed to help student course supervisors write the
!  controlling routines for their student subsystem. It can be used to write
!  all the control software that is needed in the simplest case or it can be
!  used as a basis for more complicated routines if necessary.
!   The program is written in the form of a command to make its use as simple
!  and as quick as possible.
!   Since it is written using PAM ,full online help ( should ) be available.
!
!   Note that it will be neccessary to change the 'HelpFile' constant if the
!  program is renamed or moved to another file area.
!
!                                         ( Paul Clenahan    August 1986 )
!
!*******************************************************************************
!AMENDMENTS

==== ecslib/emas-a/impis-unpacked/sints.txt ====


%ENDOFLIST
%CONSTSHORTINTEGERARRAY MAIN(1 : 359) =  %C
    1,    7,   13,   18,   22,   25,   29,   33,   37,   40,   47,   51,
   54,   59,   62,   65,   68,   72,   76,   80,   84,   90,   94,   98,
  103,  108,  113,  118,  122,  127,  135,  139,    0,  141,  144,  145,
  152,    0,  157,  159,  161,  163,    0,  165,  167,  168,  169,  174,
    0,  178,  181,  182,  186,  187,  188,  189,    0,  199,  202,    0,
  205,  206,  207,  209,    0,  211,  213,    0,  215,  218,    0,  220,
  226,  230,  233,  235,  238,  241,  243,  245,  247,  249,    0,  251,
  253,  254,  256,  257,  259,  261,  263,    0,  265,  267,  268,  269,
  272,  274,  275,  277,  279,  281,    0,  283,  285,    0,  287,  289,
    0,  291,  294,  298,  301,  303,  304,  305,  306,  308,  309,  311,
  312,    0,  316,  320,  321,  324,  325,  331,    0,  333,  338,  339,
  341,  343,  347,    0,  351,  353,  355,  356,  357,  359,  361,  363,
  365,  367,  369,  371,  373,  375,  377,  379,    0,  381,  382,  383,
    0,  389,  396,  402,  403,  409,  410,  416,  417,  419,  422,    0,
  424,  426,    0,  428,  435,  439,    0,  442,  444,  445,  447,  449,
  451,  453,  455,  457,  459,    0,  461,  464,    0,  466,  469,  472,
  476,  479,  481,  483,  485,  487,  490,  493,  495,  498,  501,  504,

==== ecslib/emas-a/impis-unpacked/newintps.txt ====


* PHRASE STRUCTURE DEFINITION FOR IMP INTERPRETER

B[S] = 15
B[NAME] = 14
B[C LIST] = 12
B[FAIL] = 11
B[C TEXT] = 10
B[STRING] = 9
B[NAMELIST] = 8
B[MARK] = 7
B[HOLE] = 6
B[CONSTANT] = 5
B[NUMBER] = 4
B[MC]      = 2
B[INTEGER] = 3


P(SS)
     [HOLE](UI)[MARK](R SS1)[S]:

==== ecslib/emas-a/impis-unpacked/utilits.txt ====


%EXTERNALROUTINESPEC PROTECT(%STRING (63) S)
%EXTERNALROUTINESPEC CHERISH(%STRING (63) S)
%EXTERNALROUTINESPEC DEFINE(%STRING (63) S)

%EXTERNALROUTINE FAULTS(%STRING (63) FILE)

%ROUTINE READ LINE(%STRINGNAME L)
%INTEGER S
             L = ''
             READCH(S)
             %IF S = 25 %START
                PRINTCH(7);  NEWLINE
                *LM_4,15,16(8)
                *BCR_15,15
             %FINISH

             %CYCLE
                L = L.TOSTRING(S)
                %RETURN %IF S = NL

==== ecslib/emas-a/impis-unpacked/intexts.txt ====


!
!**************************************************
!*                                                *
!*    VARIOUS EXTERNAL ROUTINES FOR IMPI          *
!*                                                *
!***************************************************
!
%TRUSTEDPROGRAM
%EXTERNALINTEGER MON REP = 0;           ! REPETITION COUNTER FOR RESUMES
%EXTERNALBYTEINTEGER MONLOCK
%EXTRINSICINTEGER MONFRAME, MONINFO, BRKR9AD
%OWNSHORTINTEGER TRAP BLOCK, TRAP LINE
!

%EXTERNALROUTINE EXTINIT
          *MVI_4(13),X'55';             ! FLAG FOR MDIAG
%END

%EXTERNALROUTINE HEX(%INTEGER N)

==== ecslib/emas-a/impis-unpacked/soapdoc.txt ====




















                           _________________

                           SOAP USER'S GUIDE

==== ecslib/emas-a/impis-unpacked/soaps.txt ====


%CONSTSHORTINTEGERARRAY MAIN(1 : 217) =    %C
    1,    5,   14,   20,   26,   38,   43,   48,   54,   61,   68,   74,
   79,   82,   84,   89,   96,  102,  108,  115,  122,  126,    0,  129,
  133,  137,  142,  145,  152,  156,  161,  164,  168,    0,  171,    0,
  178,  184,  185,  189,  190,  193,  196,  199,    0,  202,  205,  206,
  208,    0,  211,  213,  215,  216,  219,  222,  225,    0,  228,  231,
  236,  241,  244,  249,    0,  253,  259,  260,  264,  266,  267,  270,
  271,  274,  277,  279,  280,  283,  286,  289,  292,  295,  298,  302,
  305,  308,  311,  314,  317,  320,  324,  328,  332,  336,  340,  344,
  348,  352,  355,  358,    0,  361,  363,  365,  373,    0,  381,    0,
  385,  392,  393,  396,  397,  400,  403,  405,  406,  410,    0,  413,
  418,  425,  432,    0,  435,  437,    0,  440,  445,  446,  450,  453,
  456,    0,  459,  462,  463,    0,  469,  472,  473,  475,    0,  477,
  489,  499,  506,    0,  509,  511,  512,  517,    0,  520,    0,  530,
  534,  535,  538,  539,    0,  543,  546,  547,    0,  558,  565,  566,
  571,  572,  576,  579,    0,  585,  587,  588,  591,    0,  594,  597,
    0,  600,  602,  603,  608,  609,  614,  615,  618,    0,  620,  622,
  623,  627,  628,  631,  634,  637,    0,  640,  646,    0,  651,  656,
  657,  660,  661,  665,    0,  667,    0,  670,  674,  675,  678,  681,

==== ecslib/emas-a/impis-unpacked/intsyss.txt ====


!
!*******************************************************************
!*                                                                 *
!*       SYSTEM ROUTINES FOR IMP INTERPRETER VERSION 8             *
!*                                                                 *
!*******************************************************************
!
!
%TRUSTEDPROGRAM
%RECORDFORMAT AGFM(%INTEGER EP, %STRING (17) NAME,  %C
          %INTEGER P1, P2, %INTEGERNAME FLAG)
%EXTERNALINTEGER INTSIZE = 16;          ! DEFAULT OF 16 PAGES
%EXTERNALBYTEINTEGER INIMPI = 0
%EXTERNALINTEGER INTGLA = 0
%OWNSTRING (6) INT OWNER = 'CONLIB'
%EXTERNALSTRING (8) OBJECT = 'IMPIOBJ'
%EXTRINSICBYTEINTEGER INSTREAM, COMPMODE, IOFLAG, MDACTIVE
%SYSTEMINTEGERFNSPEC COMREG(%INTEGER N);! TO GIVE ADDRESSES
%EXTERNALINTEGER REG9 = -1

==== ecslib/emas-a/impis-unpacked/intperms.txt ====


*
*
**********************************************************************
*                                                                    *
*                                                                    *
*              PERM FOR  IMP INTERPRETER VERSION 8                   *
*                                                                    *
*                                                                    *
**********************************************************************
*
*
*
*  PERM CONVENTIONS
*    GPR 0 : 3 ARE ALWAYS AVAILABLE FOR WORK REGISTERS
*    ALL OTHERS MUST BE SAVED AND RESTORED
*
*  ALL PERM ROUTINES ARE ENTERED BY '*BAL_15,PERM00'
*  EXCEPT WHERE OTHERWISE STATED
*

==== ecslib/emas-a/impis-unpacked/neweds.txt ====
%CONTROL 0
%EXTERNALROUTINESPEC RIM(%INTEGER CNSL, %STRING (15) MES)
%EXTERNALINTEGERFNSPEC TESTINT(%INTEGER C %STRING(15) S)
%EXTERNALROUTINE EDINNER(%INTEGER INTOP,INSIZE,SINTOP,SINSIZE,TOP %C
%INTEGERNAME SIZE)
%SHORTROUTINE
%OWNINTEGER MON;                        !MONITOR INDIC
%OWNINTEGER PRINT1, PRINT2;             !PRINT INDICS
%OWNINTEGER STOP = -5000;               !LOOP STOP (CONST)
%INTEGER I, J, FP0, FP1, SYM
%BYTEINTEGER K
%OWNINTEGER PFLIP;                      !PROMPT FLIP-FLOP
%OWNSTRING (2) PROM = '>';              !COMMAND PROMPT
%OWNINTEGER CMAX;                       !COMMAND CELL MAX
%INTEGER CI;                            !COMMAND INDEX
%INTEGER TI;                            !TEXT INDEX
%INTEGER CODE;                          !COMMAND CODE
%INTEGER LIM;                           !SEARCH LIM
%INTEGER CODELIM;                       !LIM/CODE
%INTEGER TEXT;                          !TEXT STRING POINTER
%INTEGER NUM;                           !REPETITION NUMBER

==== ecslib/emas-a/impis-unpacked/pdiags.txt ====


!
!******************************************
!*                                        *
!*  MODIFIED MDIAG TO CO-OPERATE WITH     *
!*  THE IMP INTERPRETER (FLAG = 5)        *
!*                                        *
!******************************************
!
%DYNAMICROUTINESPEC DEFINE(%STRING(63) S)
%SYSTEMINTEGERFNSPEC I8DIAG(%INTEGER EP, EXTRA)
%OWNINTEGER MON HEX ADDR, BRIEF ADDR
%OWNINTEGER DTLAST = 0
%SYSTEMINTEGERMAPSPEC COMREG(%INTEGER N)

%ROUTINE SIGNAL(%INTEGER J,K,L,%INTEGERNAME FLAG)
%RECORDFORMAT AGFM(%INTEGER EP,%STRING(17) S,%INTEGER P1,P2,%C
%INTEGERNAME FLAG)
%SYSTEMROUTINESPEC AGENCY(%INTEGER P1,%RECORDNAME P)
%RECORD P(AGFM)

==== ecslib/emas-a/impis-unpacked/intdoc.txt ====


=                                                              =









                     _____________________________

                     IMP8 INTERPRETER USER'S GUIDE


    The IMP8 INTERPRETER is an interactive IMP compiler with editing
    facilities,  which  runs under the EDINBURGH MULTI-ACCESS SYSTEM
    on the ICL 4/75.

    IMP statements are read in from the console, compiled,  executed
    immediately,  and  then  discarded.    Compound  statements  and

==== ecslib/emas-a/impis-unpacked/vagrens.txt ====


%CONTROL 0

!
!VAGRANCY AIDS FOR USERS MK.1
!J.C.A.     17:05:74
!
%EXTERNALROUTINE VAGRANCY(%STRING(63) S)
!
!TAKES A FILE OF TRACE INFO FROM BUGGED COMPILER OR INTERPRETER
!GIVES SUMMARY OF RESULTS IN FILE
!GIVES PAGE TURNS & CPU USED IN EACH CALL OF A ROUTINE
!PLUS RATIOS OF PAGEFAULTS  V CPU TIME
!
%EXTERNALROUTINESPEC DEFINE(%STRING(63) S)
%EXTERNALROUTINESPEC SET MARGINS(%INTEGER STREAM,LHM,RHM)
!
%RECORDFORMAT HOLDE(%INTEGER CPU,PTURN,%SHORTINTEGER ENTRY,EXIT)
%INTEGER FILE,DATAPTR,ENDPTR,F
%INTEGER RTWAS,CPUIS,CPUWAS,PTURNIS,PTURNWAS

==== ecslib/emas-a/neweds.txt ====
%CONTROL 0
%EXTERNALROUTINESPEC RIM(%INTEGER CNSL, %STRING (15) MES)
%EXTERNALINTEGERFNSPEC TESTINT(%INTEGER C %STRING(15) S)
%EXTERNALROUTINE EDINNER(%INTEGER INTOP,INSIZE,SINTOP,SINSIZE,TOP %C
%INTEGERNAME SIZE)
%SHORTROUTINE
%OWNINTEGER MON;                        !MONITOR INDIC
%OWNINTEGER PRINT1, PRINT2;             !PRINT INDICS
%OWNINTEGER STOP = -5000;               !LOOP STOP (CONST)
%INTEGER I, J, FP0, FP1, SYM
%BYTEINTEGER K
%OWNINTEGER PFLIP;                      !PROMPT FLIP-FLOP
%OWNSTRING (2) PROM = '>';              !COMMAND PROMPT
%OWNINTEGER CMAX;                       !COMMAND CELL MAX
%INTEGER CI;                            !COMMAND INDEX
%INTEGER TI;                            !TEXT INDEX
%INTEGER CODE;                          !COMMAND CODE
%INTEGER LIM;                           !SEARCH LIM
%INTEGER CODELIM;                       !LIM/CODE
%INTEGER TEXT;                          !TEXT STRING POINTER
%INTEGER NUM;                           !REPETITION NUMBER

==== ecslib/emas-a/impis.txt ====

 NEWEDS,SINTS,INTPERMS,INTSYSS,PDIAGS,SOAPS,UTILITS,INTEXTS,VAGRENS,NEWINTPS,SOA
PDOC,INTDOC


%CONTROL 0
%EXTERNALROUTINESPEC RIM(%INTEGER CNSL, %STRING (15) MES)
%EXTERNALINTEGERFNSPEC TESTINT(%INTEGER C %STRING(15) S)
%EXTERNALROUTINE EDINNER(%INTEGER INTOP,INSIZE,SINTOP,SINSIZE,TOP %C
%INTEGERNAME SIZE)
%SHORTROUTINE
%OWNINTEGER MON;                        !MONITOR INDIC
%OWNINTEGER PRINT1, PRINT2;             !PRINT INDICS
%OWNINTEGER STOP = -5000;               !LOOP STOP (CONST)
%INTEGER I, J, FP0, FP1, SYM
%BYTEINTEGER K
%OWNINTEGER PFLIP;                      !PROMPT FLIP-FLOP
%OWNSTRING (2) PROM = '>';              !COMMAND PROMPT
%OWNINTEGER CMAX;                       !COMMAND CELL MAX
%INTEGER CI;                            !COMMAND INDEX
%INTEGER TI;                            !TEXT INDEX

==== ecslib/emas-a/impidoc.txt ====





                     _____________________________

                     IMP8 INTERPRETER USER'S GUIDE


    The IMP8 INTERPRETER is an interactive IMP compiler with editing
    facilities, which runs under the EDINBURGH  MULTI-ACCESS  SYSTEM
    on the ICL 4/75.

    IMP  statements are read in from the console, compiled, executed
    immediately,  and  then  discarded.    Compound  statements  and
    complete procedures are saved pending later execution.




                        _______________________

                        CALLING THE INTERPRETER


==== ercc07/xgen25s.txt ====
!* modified 16/07/86
!*
%ownstring(31) Versiontext="Fortran77 Compiler Version 0.1"
%owninteger Report=0
%owninteger Decode
%owninteger Language
!*
%constinteger IMP      =  1
%constinteger FORTRAN  =  2
%constinteger CCOMP    = 11
%constinteger PASCAL   = 14
!*
!***********************************************************************
!* Exports                                                             *
!***********************************************************************
!*
%routinespec Einitialise(%integer Lang, Avertext, Astackca,
                                                    Aglaca, Options)
%routinespec Eterminate(%integer adareasizes)
%routinespec Ecommon(%integer area, %stringname Name)
%routinespec Eendcommon(%integer area, Length)

==== ercc07/icom3s.txt ====
%INCLUDE "ercc07:ibmsup_comf370"
!
%INCLUDE "ercc07:ibmsup_page0f"
!
%RECORDFORMAT PARMF(%INTEGER DEST,SRCE,(%INTEGER P1,P2,P3,P4,P5,P6 %ORSTRING (23) TEXT))
!
%CONSTINTEGER SLEN=63;                  ! string length in RT calls
%EXTERNALROUTINESPEC DISPLAY TEXT(%INTEGER V,L,P, %STRING (41) TEXT)
%EXTERNALROUTINESPEC DPON(%RECORD (PARMF) %NAME P, %INTEGER DELAY)
%EXTERNALINTEGERFNSPEC STOI(%STRINGNAME S)
%EXTERNALROUTINESPEC PKMONREC(%STRING (23) S, %RECORD (PARMF) %NAME P)
%EXTERNALROUTINESPEC PON(%RECORD (PARMF) %NAME P)
%EXTERNALROUTINESPEC MONITOR(%STRING (SLEN) S)
%EXTERNALROUTINESPEC OPMESS(%STRING (SLEN) S)
%EXTERNALROUTINESPEC OPMESS3(%STRING (SLEN) S)
%EXTERNALROUTINESPEC INHIBIT(%INTEGER SERVICE)
%EXTERNALROUTINESPEC UNINHIBIT(%INTEGER SERVICE)
%EXTERNALROUTINESPEC DUMPTABLE(%INTEGER T,A,L)
%EXTERNALINTEGERFNSPEC RTV(%INTEGER RAD)
%EXTERNALSTRINGFNSPEC STRHEX(%INTEGER N)
%EXTERNALSTRINGFNSPEC HTOS(%INTEGER N,P)

==== ercc07/ienter3s.txt ====
!
! Chenge for enter3
!    1) Changes to storef for larger AMTs
!
%include "ercc07:ibmsup_comf370"
%include "ercc07:ibmsup_page0f"
!
%recordformat parmf(%integer dest,srce,p1,p2,p3,p4,p5,p6)
!
%routine sos;                           ! flash 'SOS' on system console lights
%longinteger loop ext psw,wait ext psw,sos timer
%constlonginteger sec=x'00000000f4240000'; ! 1 second
%constlonginteger hsec=sec>>1;             ! half second
%constlonginteger qsec=sec>>2
%constlonginteger wpsw=psw0!x'0106000000000000'
%integer i,count
   sos timer=-1
   *sckc_sos timer;                     ! maximum
   *basr_15,0; *using_15
   *la_0,<loopint>; *st_0,i; *la_0,<waitint>; *st_0,count; *drop_15
   loop ext psw=psw0!i

==== ercc07/gldgen02s.txt ====
!
! Recent Changes
! **************
!
!      23 JUne 87 Unecessary top bits maked out in recordelad. These
!            caused no trouble till NP1 which has 32 bit addressing
!              Also check removed on convert longinteger to integer
!     8 May 87 Change so RT Params are double word aligned
!     20Apr 87 Changes so that array heads (Long integers) are double word aligned
!     Feb 87 Substantial changes to support 64 bit integers
!
!
! Warning this module has the revised triples spec.
!
! In first attempt at Triple Imp considerable use was made of constant operands
! to pass information from Pass2 to GEN. Although for specialised operations like
! passing Labels this still applies, this adhocery has caused problems with arrays
! and pointers particularly in mapped records. The operands for four triples
! have thus been redefined in a more standard way.
!
! GETPTR    X1 is now (ptype of passed)<<16! DIMENSION

==== ercc07/idev11s.txt ====
!09-09-85..statistics gathering for auscom
!05-09-85..use tio in case mag tape off-line..sh
%include "ercc07:ibmsup_comf370"
%include "ercc07:ibmsup_page0f"
%include "ercc07:ibmsup_dtform1s"
%include "ercc07:IBMSUP_xaioform"
%record %format PARMF(%integer DEST,SRCE,(%integer P1,P2,P3,P4,P5,
   P6 %or %string (23) TEXT))
%record %format PARMXF(%integer DEST,SRCE,P1,P2,P3,P4,P5,P6,LINK)
%if VA MODE=YES %start
   %const %record (PARMXF) %array %name PARM=PARM0AD
%finish %else %start
!* %externalintegerspec parmad
   %own %record (PARMXF) %array %name PARM
!* %ownrecord(parmxf)%arrayformat parmaf(0:128)
%finish
!
%external %integer %fn %spec REALISE(%integer VAD)
%external %integer %fn %spec HSCH(%integer SLOTADDR)
%external %integer %fn %spec TSCH(%integer SLOTADDR, %record (IRBF) %name IRB)
%external %integer %fn %spec SSCH(%integer SLOTADDR,CCWA,KEY)

==== ercc07/ibmgen02s.txt ====
%INCLUDE "ERCC07:ITRIMP_HOSTCODES"
%CONSTINTEGER HOST=IBMXA
%CONSTINTEGER TARGET=AMDAHL
%CONSTINTEGER FOURKTDISP=0
%INCLUDE "ERCC10:OPOUTS"
!
%CONSTINTEGER LGR=X'58',AND=X'54',ICP=X'59';      ! VARIANT MNEMONICS
%IF TARGET=IBM %THEN %START
      %OWNINTEGER BALCODE=BAL
%FINISH %ELSE %START
      %OWNINTEGER BALCODE=BAS
%FINISH
%CONSTINTEGER MARGIN=512;               ! MARGIN FOR ADRESSABILITY
%CONSTINTEGER MAXREG=19;                ! FOR DECLARING REGISTER ETC
%CONSTINTEGER CODER=12
%CONSTINTEGER  WSPR =11
%CONSTINTEGER  GLAREG =13
%CONSTINTEGER LINKREG=15;               ! REGISTER FOR RETURN ADDRESS
%CONSTINTEGER EPREG=14;                 ! REGISTER HOLDING RT ENTRYPOINT
%CONSTINTEGER CTABLEREG=14;             ! REGISTER HOLDING CONSTANT TABLE
%CONSTINTEGER GR0=X'000F0000';          ! ANY GR FROM 0-15

==== ercc07/xgen26s.txt ====
!* modified 16/07/86
!*
%owninteger Report=0
%owninteger Decode
%owninteger Language
!*
%constinteger IMP      =  1
%constinteger FORTRAN  =  2
%constinteger CCOMP    = 11
%constinteger PASCAL   = 14
!*
!***********************************************************************
!* Exports                                                             *
!***********************************************************************
!*
%routinespec Einitialise(%integer Lang, Avertext, Astackca,
                                                    Aglaca, Options)
%routinespec Eterminate(%integer adareasizes)
%routinespec Ecommon(%integer area, %stringname Name)
%routinespec Eendcommon(%integer area, Length)
%routinespec Elinestart(%integer lineno)

==== ercc07/pdriver01s.txt ====
{****************************************************************************}
{                                                                            }
{                   System dependent routines.                               }
{                                                                            }
{****************************************************************************}

%EXTERNAL %ROUTINE %SPEC Define %ALIAS "S#DEFINE"(%INTEGER channel,
   %STRING (255) File, %INTEGER %NAME Afd,Flag)
%EXTERNAL %INTEGER %MAP %SPEC ComReg %ALIAS "S#COMREGMAP"(%INTEGER N)
%EXTERNAL %ROUTINE %SPEC ICLpascalcompiler
%ROUTINE %SPEC InitialiseCompiler
%EXTERNAL %ROUTINE %SPEC EMAS3(%STRING (255) %NAME Command,Param,
   %INTEGER %NAME Flag)
%EXTERNAL %ROUTINE %SPEC EMAS3ClaimChannel(%INTEGER %NAME Chan)
%EXTERNAL %STRING (15) %FN %SPEC ItoS %ALIAS "S#ITOS"(%INTEGER N)
%EXTERNAL %ROUTINE %SPEC Eproc(%STRING %NAME Name, %INTEGER Prop,Numpars,
   Paramsize,Astacklen, %INTEGER %NAME Id)
%EXTERNAL %ROUTINE %SPEC Eentry(%INTEGER Index,Numpars,ParamSize,LocalSize,
   DiagDisp, %STRING %NAME Name)
%EXTERNAL %INTEGER %FN %SPEC Exname(%INTEGER Type, %STRING %NAME Xref)
%EXTERNAL %ROUTINE %SPEC Edataentry(%INTEGER Area,Offset,Length,

==== ercc07/makep3_gen.txt ====
offer p3gens
parm nocheck
edit perq3gen02s,p3gens
a/%incl/d1i<itrimp_hostcodes>
a'd1i<ercs01:ebits_ecodes5>
a'd1i<tripcnsts>
a'd1i<itrimp_tform2s>
a'd1i<ercs01:ebits_especs2>
e
imp p3gens,.null
offer p3gens,ercs01

==== ercc07/icom4s.txt ====
%INCLUDE "ercc07:ibmsup_comf370"
!
%INCLUDE "ercc07:ibmsup_page0f"
!
%RECORDFORMAT PARMF((%INTEGER DEST,SRCE %ORSHORT DSNO,DACT,SSNO,SACT),(%INTEGER P1,P2,P3,P4,
   P5,P6 %ORSTRING (23) TEXT))
!
%CONSTINTEGER SLEN=63;                  ! string length in RT calls
%EXTERNALROUTINESPEC DISPLAY TEXT(%INTEGER V,L,P, %STRING (41) TEXT)
%EXTERNALROUTINESPEC DPON(%RECORD (PARMF) %NAME P, %INTEGER DELAY)
%EXTERNALINTEGERFNSPEC STOI(%STRINGNAME S)
%EXTERNALROUTINESPEC PKMONREC(%STRING (23) S, %RECORD (PARMF) %NAME P)
%EXTERNALROUTINESPEC PON(%RECORD (PARMF) %NAME P)
%EXTERNALROUTINESPEC MONITOR(%STRING (SLEN) S)
%EXTERNALROUTINESPEC OPMESS(%STRING (SLEN) S)
%EXTERNALROUTINESPEC OPMESS3(%STRING (SLEN) S)
%EXTERNALROUTINESPEC INHIBIT(%INTEGER SERVICE)
%EXTERNALROUTINESPEC UNINHIBIT(%INTEGER SERVICE)
%EXTERNALROUTINESPEC DUMPTABLE(%INTEGER T,A,L)
%EXTERNALINTEGERFNSPEC RTV(%INTEGER RAD)
%EXTERNALSTRINGFNSPEC STRHEX(%INTEGER N)

==== ercc07/pnxgen05s.txt ====
%INCLUDE "ERCC07:iTRIMP_HOSTCODES"
%CONSTINTEGER HOST=AMDAHL
%CONSTINTEGER TARGET=PNX
%INCLUDE "ERCS04:PNX_CCODES"
%INCLUDE "ERCC07:TRIPCNSTS"
%INCLUDE "ERCC07:ITRIMP_TFORM2S"
%CONSTINTEGER ESTK=0,BR0=1,BR1=2,BR2=3,BR3=4,FR0=5,FR1=6,FR2=7,FR3=8,
               BRN=BR0<<16!BR3,FRN=FR0<<16!FR3
%RECORDFORMAT REGF(%INTEGER CL,(%INTEGER USE %ORHALF SECUSE,PRIMUSE), %INTEGER INF1,INF2,AT,
   LINK)
%OWNINTEGER CABUF,GLACABUF,GLABEL,FPPTR,FPHEAD
%OWNINTEGERNAME CA,GLACA,PPCURR
%OWNINTEGERARRAYNAME CTABLE,TAGS
!%OWNBYTEINTEGERARRAYNAME CODE
%OWNRECORD (LISTF) %ARRAYNAME ASLIST
%EXTRINSICINTEGERARRAY CAS(0:12)
%EXTRINSICRECORD (WORKAF) WORKA
%EXTRINSICRECORD (PARMF) PARM
%CONSTINTEGER MAXREG=8
%OWNRECORD (REGF) %ARRAY REGS(0:MAXREG)
%EXTERNALROUTINESPEC FLAGAND FOLD(%RECORD (TRIPF) %ARRAYNAME T)

==== ercc07/pdfiletogps.txt ====
!*
!*          Record and array formats
!*
%RECORDFORMAT HF(%INTEGER DATAEND,DATASTART,FILESIZE,FILETYPE,SUM,DATETIME,FORMAT,RECORDS)
%RECORDFORMAT PDF(%INTEGER START, %STRING (11) NAME, %INTEGER HOLE,S5,S6,S7)
%RECORDFORMAT PDHF(%INTEGER DATAEND,DATASTART,SIZE,FILETYPE,SUM,DATETIME,ADIR,COUNT)
%RECORDFORMAT RF(%INTEGER CONAD,FILETYPE,DATASTART,DATAEND)
%OWNRECORD (PDF) %ARRAYFORMAT DIRAF(0:4095)
%EXTERNALROUTINESPEC EMAS3 INTEGER(%STRINGNAME VECTOR, %INTEGERNAME VALUE)
%EXTERNALROUTINESPEC EMAS3 STRING(%STRINGNAME VECTOR,VALUE)
%EXTERNALROUTINESPEC SET RETURN CODE %ALIAS "S#SETRETURNCODE"(%INTEGER N)
%RECORDFORMAT CHDRFORM(%INTEGER CONAD,FILETYPE,DATASTART,DATAEND)
%EXTERNALROUTINESPEC COPY %ALIAS "s#copy"(%STRING (255) F,T, %INTEGERNAME FLAG)
%EXTERNALROUTINESPEC DISCONNECT %alias "S#DISCONNECT" (%STRING (255) FILE, %INTEGERNAME FLAG)
%RECORDFORMAT OINFF(%STRING (11) NAME, %INTEGER SP12,NKB, %BYTEINTEGER ARCH,CODES,CCT,OWNP,
   EEP,USE,CODES2,SSBYTE,FLAGS,PHEAD,DAYNO,GROUP)
!
      { if PHEAD is non zero, this record has been permitted }
      { to one or more users                                 }
      { if GROUP is non zero, this record refers to a group  }
%EXTERNALINTEGERFNSPEC DFILENAMES(%STRINGNAME GROUP, %INTEGERNAME FILENO,MAXREC,NFILES,FSYS,

==== ercc07/gldgen03s.txt ====
!
! Recent Changes
! **************
!
!      23 JUne 87 Unecessary top bits maked out in recordelad. These
!            caused no trouble till NP1 which has 32 bit addressing
!              Also check removed on convert longinteger to integer
!     8 May 87 Change so RT Params are double word aligned
!     20Apr 87 Changes so that array heads (Long integers) are double word aligned
!     Feb 87 Substantial changes to support 64 bit integers
!
!
! Warning this module has the revised triples spec.
!
! In first attempt at Triple Imp considerable use was made of constant operands
! to pass information from Pass2 to GEN. Although for specialised operations like
! passing Labels this still applies, this adhocery has caused problems with arrays
! and pointers particularly in mapped records. The operands for four triples
! have thus been redefined in a more standard way.
!
! GETPTR    X1 is now (ptype of passed)<<16! DIMENSION

==== ercc07/idev12s.txt ====
!09-09-85..statistics gathering for auscom
!05-09-85..use tio in case mag tape off-line..sh
%include "ercc07:ibmsup_comf370"
%include "ercc07:ibmsup_page0f"
%include "ercc07:ibmsup_dtform1s"
%include "ercc07:IBMSUP_xaioform"
%record %format PARMF(%integer DEST,SRCE,(%integer P1,P2,P3,P4,P5,
   P6 %or %string (23) TEXT))
%record %format PARMXF(%integer DEST,SRCE,P1,P2,P3,P4,P5,P6,LINK)
%if VA MODE=YES %start
   %const %record (PARMXF) %array %name PARM=PARM0AD
%finish %else %start
!* %externalintegerspec parmad
   %own %record (PARMXF) %array %name PARM
!* %ownrecord(parmxf)%arrayformat parmaf(0:128)
%finish
!
%external %integer %fn %spec REALISE(%integer VAD)
%external %integer %fn %spec HSCH(%integer SLOTADDR)
%external %integer %fn %spec TSCH(%integer SLOTADDR, %record (IRBF) %name IRB)
%external %integer %fn %spec SSCH(%integer SLOTADDR,CCWA,KEY)

==== ercc07/algtests_at24a.txt ====
'BEGIN'
    'INTEGER' 'ARRAY'
        A(/1 : 9/);
    'INTEGER'
        I,
        S;
    'PROCEDURE' DUMMY(A);
        'VALUE'
            A;
        'ARRAY'
            A;
        SUM(A);
    'PROCEDURE' SUM(A);
        'ARRAY'
            A;
        'FOR' I := 1 'STEP' 1 'UNTIL' 9 'DO'
            'BEGIN'
            S := S + A(/I/);
            A(/I/):= 0
            'END';
    S := 0;

==== ercc07/ibmgen03s.txt ====

!
! Warning this module has the revised triples spec.
!
! In first attempt at Triple Imp considerable use was made of constant operands
! to pass information from Pass2 to GEN. Although for specialised operations like
! passing Labels this still applies, this adhocery has caused problems with arrays
! and pointers particularly in mapped records. The operands for four triples
! have thus been redefined in a more standard way.
!
! GETPTR    X1 is now (ptype of passed)<<16! DIMENSION
!           Opnd2 is either a 32 bit const with the size (ACC) as value or
!           the ptr or arrayhead as normal operand.
!
! VMY       X1 is now dim<<28!maxdim<<24!array name(where known)
!           Opnd2 is either a 32 bit const with DV offset into const area or
!           the arrayhead as a standard operand
!
! AINDX     X1 is ELSIZE<<20 !spare
!           Opnd2 is arrayhead as standard operand
!           NOTE:- The Operands have been swopped for consistency with norm.

==== ercc07/xgen27s.txt ====
!* modified 16/07/86
!*
%owninteger Report=0
%owninteger Decode
%owninteger Language
!*
%constinteger IMP      =  1
%constinteger FORTRAN  =  2
%constinteger CCOMP    = 11
%constinteger PASCAL   = 14
!*
!***********************************************************************
!* Exports                                                             *
!***********************************************************************
!*
%routinespec Einitialise(%integer Lang, Avertext, Astackca,
                                                    Aglaca, Options)
%routinespec Eterminate(%integer adareasizes)
%routinespec Ecommon(%integer area, %stringname Name)
%routinespec Eendcommon(%integer area, Length)
%routinespec Elinestart(%integer lineno)

==== ercc07/fbench1s.txt ====
      PROGRAM teste
c     floating point, double precision arithmetic test
C     MAIN PROGRAM - EVALUATES INTEGRAL TO AN ACCURACY OF 8D
C                    INCREASING THE NUMBER OF STRIPS UNTIL REQUIRED
C                    ACCURACY IS REACHED
C               (A)  USING TRAPEZOIDAL RULE
C               (B)  USING SIMPSON'S RULE
C
      implicit double precision (a-h,o-z)
      character*18 type
C     (A)
C
      type='Trapezoidal Rule  '
      A=1.0
      B=2.2
C
      N=2
      ICOUNT=0
      WRITE(unit=6,fmt=103)type
   10 W=(B-A)/N
      ICOUNT=ICOUNT+1

==== ercc07/pdriver02s.txt ====
{****************************************************************************}
{                                                                            }
{                   System dependent routines.                               }
{                                                                            }
{****************************************************************************}

!%EXTERNAL %ROUTINE %SPEC Define %ALIAS "S#DEFINE"(%INTEGER channel,
   %STRING (255) File, %INTEGER %NAME Afd,Flag)
%EXTERNAL %INTEGER %MAP %SPEC ComReg %ALIAS "S#COMREGMAP"(%INTEGER N)
%EXTERNAL %ROUTINE %SPEC ICLpascalcompiler
%ROUTINE %SPEC InitialiseCompiler
%EXTERNAL %ROUTINE %SPEC EMAS3(%STRING (255) %NAME Command,Param,
   %INTEGER %NAME Flag)
%EXTERNAL %ROUTINE %SPEC EMAS3ClaimChannel(%INTEGER %NAME Chan)
%EXTERNAL %STRING (15) %FN %SPEC ItoS %ALIAS "S#ITOS"(%INTEGER N)
%EXTERNAL %ROUTINE %SPEC Eproc(%STRING %NAME Name, %INTEGER Prop,Numpars,
   Paramsize,Astacklen, %INTEGER %NAME Id)
%EXTERNAL %ROUTINE %SPEC Eentry(%INTEGER Index,Numpars,ParamSize,LocalSize,
   DiagDisp, %STRING %NAME Name)
%EXTERNAL %INTEGER %FN %SPEC Exname(%INTEGER Type, %STRING %NAME Xref)
%EXTERNAL %ROUTINE %SPEC Edataentry(%INTEGER Area,Offset,Length,

==== ercc07/icom5s.txt ====
%INCLUDE "ercc07:ibmsup_comf370"
!
%INCLUDE "ercc07:ibmsup_page0f"
!
%RECORDFORMAT PARMF((%INTEGER DEST,SRCE %ORSHORT DSNO,DACT,SSNO,SACT),(%INTEGER P1,P2,P3,P4,
   P5,P6 %ORSTRING (23) TEXT))
!
%CONSTINTEGER SLEN=63;                  ! string length in RT calls
%EXTERNALROUTINESPEC DISPLAY TEXT(%INTEGER V,L,P, %STRING (41) TEXT)
%EXTERNALROUTINESPEC DPON(%RECORD (PARMF) %NAME P, %INTEGER DELAY)
%EXTERNALINTEGERFNSPEC STOI(%STRINGNAME S)
%EXTERNALROUTINESPEC PKMONREC(%STRING (23) S, %RECORD (PARMF) %NAME P)
%EXTERNALROUTINESPEC PON(%RECORD (PARMF) %NAME P)
%EXTERNALROUTINESPEC MONITOR(%STRING (SLEN) S)
%EXTERNALROUTINESPEC OPMESS(%STRING (SLEN) S)
%EXTERNALROUTINESPEC OPMESS3(%STRING (SLEN) S)
%EXTERNALROUTINESPEC INHIBIT(%INTEGER SERVICE)
%EXTERNALROUTINESPEC UNINHIBIT(%INTEGER SERVICE)
%EXTERNALROUTINESPEC DUMPTABLE(%INTEGER T,A,L)
%EXTERNALINTEGERFNSPEC REALISE(%INTEGER VIRTAD)
%EXTERNALINTEGERFNSPEC RTV(%INTEGER RAD)

==== ercc07/drslink3.txt ====
LINK
ERCC07:dP1Y
ERCC07:DP22Y
ERCC07:DOPT3Y
ERCC07:DGEN3Y
ERCC07:CSERV01x
ercs01:EBITS_etrput1y
.END
P0Y
MODIFY P0Y
SATISFY REFS
.ALL
SATISFY DATA
.ALL
SUPPRESS
.ALL
RETAIN
eGENERATEOBJECT,ICL9CEZDRSIMP
SUPPRESS DATA
.ALL
CLOSE

==== ercc07/drslink4.txt ====
LINK
ERCC07:dP1Y
ERCC07:DP22Y
ERCC07:DOPT3Y
ERCC07:DGEN4Y
ERCC07:CSERV01x
ercs01:EBITS_etrput1y
.END
P0Y
MODIFY P0Y
SATISFY REFS
.ALL
SATISFY DATA
.ALL
SUPPRESS
.ALL
RETAIN
eGENERATEOBJECT,ICL9CEZDRSIMP
SUPPRESS DATA
.ALL
CLOSE

==== ercc07/pnxgen06s.txt ====
!
! Warning this module has the revised triples spec.
!
! In first attempt at Triple Imp considerable use was made of constant operands
! to pass information from Pass2 to GEN. Although for specialised operations like
! passing Labels this still applies, this adhocery has caused problems with arrays
! and pointers particularly in mapped records. The operands for four triples
! have thus been redefined in a more standard way.
!
! GETPTR    X1 is now (ptype of passed)<<16! DIMENSION
!           Opnd2 is either a 32 bit const with the size (ACC) as value or
!           the ptr or arrayhead as normal operand.
!
! VMY       X1 is now dim<<28!maxdim<<24!array name(where known)
!           Opnd2 is either a 32 bit const with DV offset into const area or
!           the arrayhead as a standard operand
!
! AINDX     X1 is ELSIZE<<20 !spare
!           Opnd2 is arrayhead as standard operand
!           NOTE:- The Operands have been swopped for consistency with norm.
!

==== ercc07/drslink5.txt ====
LINK
ERCC07:dP1Y
ERCC07:DP23Y
ERCC07:DOPT3Y
ERCC07:DGEN5Y
ERCC07:CSERV01x
ercs01:EBITS_etrput2y
.END
P0Y
MODIFY P0Y
SATISFY REFS
.ALL
SATISFY DATA
.ALL
SUPPRESS
.ALL
RETAIN
eGENERATEOBJECT,ICL9CEZDRSIMP
SUPPRESS DATA
.ALL
CLOSE

==== ercc07/docs_lpool.txt ====

           Notes on a Visit to Liverpool University Computing Service

Present: Ian Stimpson   LUCS
         P.Stephens     EUCS
         J.Livingstone  EUCS

     Liverpool Computing Service is small in terms of people (17 Academics) and
has standardised on IBM Hardware and Software.  It also operates 3 VMS machines
as departmental resource. No departments operate their own MUMs as a matter of
computing policy. There is at present no Unix on the campus but LUCS expect to
operate a Unix service for engineers before next academic year.

     The main service is VM/CMS on a 32 Mbyte 6Mip 3081 which supports 200+
users. Interactive response is said to be good but shortage of CPU is noticeable.
Terminals, and also almost all micros on the campus, are IBM PC clones bought by
LUCS. These emulate Ibm 3270 full screen terminals which reduce the mainframe
demand for operations like editing.

     LUCS also operate separate IBM machines for the Library using the
specialist IBM software package xxxxxx-yyyyyy and for the Data processing

==== ercc07/gldgen04s.txt ====
!
! Recent Changes
! **************
!
!      23 JUne 87 Unecessary top bits maked out in recordelad. These
!            caused no trouble till NP1 which has 32 bit addressing
!              Also check removed on convert longinteger to integer
!     8 May 87 Change so RT Params are double word aligned
!     20Apr 87 Changes so that array heads (Long integers) are double word aligned
!     Feb 87 Substantial changes to support 64 bit integers
!
!
! Warning this module has the revised triples spec.
!
! In first attempt at Triple Imp considerable use was made of constant operands
! to pass information from Pass2 to GEN. Although for specialised operations like
! passing Labels this still applies, this adhocery has caused problems with arrays
! and pointers particularly in mapped records. The operands for four triples
! have thus been redefined in a more standard way.
!
! GETPTR    X1 is now (ptype of passed)<<16! DIMENSION

==== ercc07/idev13s.txt ====
!09-09-85..statistics gathering for auscom
!05-09-85..use tio in case mag tape off-line..sh
%include "ercc07:ibmsup_comf370"
%include "ercc07:ibmsup_page0f"
%include "ercc07:ibmsup_dtform1s"
%include "ercc07:IBMSUP_xaioform"
%record %format PARMF(%integer DEST,SRCE,(%integer P1,P2,P3,P4,P5,
   P6 %or %string (23) TEXT))
%record %format PARMXF(%integer DEST,SRCE,P1,P2,P3,P4,P5,P6,LINK)
%if VA MODE=YES %start
   %const %record (PARMXF) %array %name PARM=PARM0AD
%finish %else %start
!* %externalintegerspec parmad
   %own %record (PARMXF) %array %name PARM
!* %ownrecord(parmxf)%arrayformat parmaf(0:128)
%finish
!
%external %integer %fn %spec REALISE(%integer VAD)
%external %integer %fn %spec HSCH(%integer SLOTADDR)
%external %integer %fn %spec TSCH(%integer SLOTADDR, %record (IRBF) %name IRB)
%external %integer %fn %spec SSCH(%integer SLOTADDR,CCWA,KEY)

==== ercc07/ibmgen04s.txt ====

!
! Warning this module has the revised triples spec.
!
! In first attempt at Triple Imp considerable use was made of constant operands
! to pass information from Pass2 to GEN. Although for specialised operations like
! passing Labels this still applies, this adhocery has caused problems with arrays
! and pointers particularly in mapped records. The operands for four triples
! have thus been redefined in a more standard way.
!
! GETPTR    X1 is now (ptype of passed)<<16! DIMENSION
!           Opnd2 is either a 32 bit const with the size (ACC) as value or
!           the ptr or arrayhead as normal operand.
!
! VMY       X1 is now dim<<28!maxdim<<24!array name(where known)
!           Opnd2 is either a 32 bit const with DV offset into const area or
!           the arrayhead as a standard operand
!
! AINDX     X1 is ELSIZE<<20 !spare
!           Opnd2 is arrayhead as standard operand
!           NOTE:- The Operands have been swopped for consistency with norm.

==== ercc07/pdriver03s.txt ====
{****************************************************************************}
{                                                                            }
{                   System dependent routines.                               }
{                                                                            }
{****************************************************************************}

%EXTERNAL %ROUTINE %SPEC Define %ALIAS "S#DEFINE"(%INTEGER channel,
   %STRING (255) File, %INTEGER %NAME Afd,Flag)
%EXTERNAL %INTEGER %MAP %SPEC ComReg %ALIAS "S#COMREGMAP"(%INTEGER N)
%EXTERNAL %ROUTINE %SPEC ICLpascalcompiler
%ROUTINE %SPEC InitialiseCompiler
%EXTERNAL %ROUTINE %SPEC EMAS3ClaimChannel(%INTEGER %NAME Chan)
%EXTERNAL %STRING (15) %FN %SPEC ItoS %ALIAS "S#ITOS"(%INTEGER N)
%EXTERNAL %ROUTINE %SPEC Eproc(%STRING %NAME Name, %INTEGER Prop,Numpars,
   Paramsize,Astacklen, %INTEGER %NAME Id)
%EXTERNAL %ROUTINE %SPEC Eentry(%INTEGER Index,Numpars,ParamSize,LocalSize,
   DiagDisp, %STRING %NAME Name)
%EXTERNAL %INTEGER %FN %SPEC Exname(%INTEGER Type, %STRING %NAME Xref)
%EXTERNAL %ROUTINE %SPEC Edataentry(%INTEGER Area,Offset,Length,
   %STRING %NAME Name)
%EXTERNAL %ROUTINE %SPEC Edataref(%INTEGER Area,Offset,Length,

==== ercc07/timp01s.txt ====
%CONSTSTRING(9) LADATE="31 Jan 85";       ! LAST ALTERED
%CONSTINTEGER NO OF SNS=66
%CONSTINTEGER LRLPT=X'62'
%UNLESS HOST=PERQ %OR HOST=DRS %OR HOST=ACCENT %THEN %START
      %CONSTINTEGER PTSHIFT=16,FLAGSHIFT=0
%FINISH %ELSE %START
      %CONSTINTEGER PTSHIFT=0,FLAGSHIFT=16
%FINISH
!
%CONSTINTEGER MAXLEVELS=31,CONCOP=13
!
%INCLUDE "ERCC07:TRIPCNSTS"
%INCLUDE "ERCC07:TFORM1S"
%CONSTINTEGER SNPT=X'1006';         ! SPECIALNAME PTYPE
%CONSTINTEGER UNASSPAT=X'80808080'
%CONSTINTEGER LABUSEDBIT=X'01000000'
%CONSTINTEGER LABSETBIT=X'02000000'
%CONSTINTEGER MAXDICT=X'100';         ! PARM MAXDICT BIT
!
%INTEGER I, K, DUMMYFORMAT, P1SIZE, STARSIZE, ASL, ARSIZE, OLDLINE,
         NEXTP, SNUM, RLEVEL, NMAX, PLABEL, LEVEL, PROFAAD, LAST INST,

==== ercc07/icom6s.txt ====
%INCLUDE "ercc07:ibmsup_comf370"
!
%INCLUDE "ercc07:ibmsup_page0f"
!
%RECORDFORMAT PARMF((%INTEGER DEST,SRCE %ORSHORT DSNO,DACT,SSNO,SACT),(%INTEGER P1,P2,P3,P4,
   P5,P6 %ORSTRING (23) TEXT))
!
%CONSTINTEGER SLEN=63;                  ! string length in RT calls
%EXTERNALROUTINESPEC DISPLAY TEXT(%INTEGER V,L,P, %STRING (41) TEXT)
%EXTERNALROUTINESPEC DPON(%RECORD (PARMF) %NAME P, %INTEGER DELAY)
%EXTERNALINTEGERFNSPEC STOI(%STRINGNAME S)
%EXTERNALROUTINESPEC PKMONREC(%STRING (23) S, %RECORD (PARMF) %NAME P)
%EXTERNALROUTINESPEC PON(%RECORD (PARMF) %NAME P)
%EXTERNALROUTINESPEC MONITOR(%STRING (SLEN) S)
%EXTERNALROUTINESPEC OPMESS(%STRING (SLEN) S)
%EXTERNALROUTINESPEC OPMESS3(%STRING (SLEN) S)
%EXTERNALROUTINESPEC INHIBIT(%INTEGER SERVICE)
%EXTERNALROUTINESPEC UNINHIBIT(%INTEGER SERVICE)
%EXTERNALROUTINESPEC DUMPTABLE(%INTEGER T,A,L)
%EXTERNALINTEGERFNSPEC REALISE(%INTEGER VIRTAD)
%EXTERNALINTEGERFNSPEC RTV(%INTEGER RAD)

==== ercc07/ibmgen05s.txt ====
!
! Warning this module has the revised triples spec.
!
! In first attempt at Triple Imp considerable use was made of constant operands
! to pass information from Pass2 to GEN. Although for specialised operations like
! passing Labels this still applies, this adhocery has caused problems with arrays
! and pointers particularly in mapped records. The operands for four triples
! have thus been redefined in a more standard way.
!
! GETPTR    X1 is now (ptype of passed)<<16! DIMENSION
!           Opnd2 is either a 32 bit const with the size (ACC) as value or
!           the ptr or arrayhead as normal operand.
!
! VMY       X1 is now dim<<28!maxdim<<24!array name(where known)
!           Opnd2 is either a 32 bit const with DV offset into const area or
!           the arrayhead as a standard operand
!
! AINDX     X1 is ELSIZE<<20 !spare
!           Opnd2 is arrayhead as standard operand
!           NOTE:- The Operands have been swopped for consistency with norm.
!

==== ercc07/pdriver04s.txt ====
{****************************************************************************}
{                                                                            }
{                   System dependent routines.                               }
{                                                                            }
{****************************************************************************}

%externalstring(255)%fnspec uinfs %alias "S#UINFS"(%integer n)
%EXTERNAL %ROUTINE %SPEC Define %ALIAS "S#DEFINE"(%INTEGER channel,
   %STRING (255) File, %INTEGER %NAME Afd,Flag)
%externalintegerfnspec IOCP %alias "S#IOCP"(%integer ep,adr)
%EXTERNAL %INTEGER %MAP %SPEC ComReg %ALIAS "S#COMREGMAP"(%INTEGER N)
%EXTERNAL %ROUTINE %SPEC ICLpascalcompiler
%ROUTINE %SPEC InitialiseCompiler
%EXTERNAL %ROUTINE %SPEC EMAS3ClaimChannel(%INTEGER %NAME Chan)
%EXTERNAL %STRING (15) %FN %SPEC ItoS %ALIAS "S#ITOS"(%INTEGER N)
%EXTERNAL %ROUTINE %SPEC Eproc(%STRING %NAME Name, %INTEGER Prop,Numpars,
   Paramsize,Astacklen, %INTEGER %NAME Id)
%EXTERNAL %ROUTINE %SPEC Eentry(%INTEGER Index,Numpars,ParamSize,LocalSize,
   DiagDisp, %STRING %NAME Name)
%EXTERNAL %INTEGER %FN %SPEC Exname(%INTEGER Type, %STRING %NAME Xref)
%EXTERNAL %ROUTINE %SPEC Edataentry(%INTEGER Area,Offset,Length,

==== ercc07/timp02s.txt ====
!
! Recent Source CHanges
!**********************
!
! 8May87 Chenges in FPlist so that RT Parameters are aligned according
!        the rules of array Rnding
!
!
! Warning this module has the revised triples spec.
!
! In first attempt at Triple Imp considerable use was made of constant operands
! to pass information from Pass2 to GEN. Although for specialised operations%c
like
! passing Labels this still applies, this adhocery has caused problems with%c
arrays
! and pointers particularly in mapped records. The operands for four triples
! have thus been redefined in a more standard way.
!
! GETPTR    X1 is now (ptype of passed)<<16! DIMENSION
!           Opnd2 is either a 32 bit const with the size (ACC) as value or
!           the ptr or arrayhead as normal operand.

==== ercc07/gbits_gcode67s.txt ====
! 20/11/87 - TRVE only if  in Vector loop                       gcode67i3
!          - Replace SUI by ADI
! 10/aug/87 - Plant gla ad for diagnostics if imp               gcode67i2
!
! 06/Aug/87 - Fix Check conflict to watch for byte access        gcode67i
!             Make profiling conditional on IMP. 
!                                                                gcode67
! 25/04/87 - revise Gop Bit
!                                                                gcode66
! 18/04/87 - update Gop Bit for Concept
!                                                                gcode65
! 17/04/87 - reduce PLT min space to 16
!                                                                gcode64
! 16/04/87 - version change to allign with ggen
!                                                                gcode61
! 14/04/87 - upgrade for C
! 01/04/87 - add Gop Bit
! 17/03/87 - Alter V release reg pair  Alan Ft.L.                gcode60
!
!                                                                gcode59
! 28/02/87 - incorporate integer*8 changes (ex gcode36u)

==== ercc07/idev15s.txt ====
!09-09-85..statistics gathering for auscom
!05-09-85..use tio in case mag tape off-line..sh
%include "ercc07:ibmsup_comf370"
%include "ercc07:ibmsup_page0f"
%include "ercc07:ibmsup_dtform1s"
%include "ercc07:IBMSUP_xaioform"
%record %format PARMF(%integer DEST,SRCE,(%integer P1,P2,P3,P4,P5,
   P6 %or %string (23) TEXT))
%record %format PARMXF(%integer DEST,SRCE,P1,P2,P3,P4,P5,P6,LINK)
%if VA MODE=YES %start
   %const %record (PARMXF) %array %name PARM=PARM0AD
%finish %else %start
!* %externalintegerspec parmad
   %own %record (PARMXF) %array %name PARM
!* %ownrecord(parmxf)%arrayformat parmaf(0:128)
%finish
!
%external %integer %fn %spec REALISE(%integer VAD)
%external %integer %fn %spec HSCH(%integer SLOTADDR)
%external %integer %fn %spec TSCH(%integer SLOTADDR, %record (IRBF) %name IRB)
%external %integer %fn %spec SSCH(%integer SLOTADDR,CCWA,KEY)

==== ercc07/ebits_ecodes1.txt ====
!
!************************************************************************
!*                                                                      *
!*                                                    G.E.Millard       *
!*   ECODES1                                          26/09/85          *
!*                                                                      *
!************************************************************************
!
{00} %constinteger      HALT =   0
!
!--------------------------------------- 32-bit (Etos) ----------------
!
{01} %constinteger      IADD =   1     { (Etos-1) + (Etos) => (Etos)   }
{02} %constinteger      ISUB =   2     { (Etos-1) - (Etos) => (Etos)   }
{03} %constinteger     IMULT =   3     { (Etos-1) * (Etos) => (Etos)   }
{04} %constinteger      IDIV =   4     { (Etos-1) / (Etos) => (Etos)   }
{05} %constinteger      INEG =   5     {          - (Etos) => (Etos)   }
{06} %constinteger      IABS =   6     {     abs( (Etos) ) => (Etos)   }
{07} %constinteger      IREM =   7     { remainder from                }
                                       {  (Etos-1) / (Etos)=> (Etos)   }
!

==== ercc07/pdriver05s.txt ====
{****************************************************************************}
{                                                                            }
{                   System dependent routines.                               }
{                                                                            }
{****************************************************************************}

%externalstring(255)%fnspec uinfs %alias "S#UINFS"(%integer n)
%EXTERNAL %ROUTINE %SPEC Define %ALIAS "S#DEFINE"(%INTEGER channel,
   %STRING (255) File, %INTEGER %NAME Afd,Flag)
%externalintegerfnspec IOCP %alias "S#IOCP"(%integer ep,adr)
%EXTERNAL %INTEGER %MAP %SPEC ComReg %ALIAS "S#COMREGMAP"(%INTEGER N)
%EXTERNAL %ROUTINE %SPEC ICLpascalcompiler
%ROUTINE %SPEC InitialiseCompiler
%EXTERNAL %ROUTINE %SPEC EMAS3ClaimChannel(%INTEGER %NAME Chan)
%EXTERNAL %ROUTINE %SPEC Eproc(%STRING %NAME Name, %INTEGER Prop,Numpars,
   Paramsize,Astacklen, %INTEGER %NAME Id)
%EXTERNAL %ROUTINE %SPEC Eentry(%INTEGER Index,Numpars,ParamSize,LocalSize,
   DiagDisp, %STRING %NAME Name)
%EXTERNAL %INTEGER %FN %SPEC Exname(%INTEGER Type, %STRING %NAME Xref)
%EXTERNAL %ROUTINE %SPEC Edataentry(%INTEGER Area,Offset,Length,
   %STRING %NAME Name)

==== ercc07/ebits_ecodes2.txt ====
!
!************************************************************************
!*                                                                      *
!*                                                    G.E.Millard       *
!*   ECODES2                                          06/01/86          *
!*                                                                      *
!************************************************************************
!
{00} %constinteger      HALT =   0
!
!--------------------------------------- generic int operations -------
!
{01} %constinteger      IADD =   1     { (Etos-1) + (Etos) => (Etos)   }
{02} %constinteger      ISUB =   2     { (Etos-1) - (Etos) => (Etos)   }
{03} %constinteger     IMULT =   3     { (Etos-1) * (Etos) => (Etos)   }
{04} %constinteger      IDIV =   4     { (Etos-1) / (Etos) => (Etos)   }
{05} %constinteger      INEG =   5     {          - (Etos) => (Etos)   }
{06} %constinteger      IABS =   6     {     abs( (Etos) ) => (Etos)   }
{07} %constinteger      IREM =   7     { remainder from                }
                                       {  (Etos-1) / (Etos)=> (Etos)   }
!

==== ercc07/timp03s.txt ====
!
! Recent Source Changes
!**********************
!
! DEc88 Version 3 produced
! Changes to note included procedures for Gould and others
! Also change to allow LINT &LINTPT to compile when lonlongs are treated as longs
!
! 8May87 Changes in FPlist so that RT Parameters are aligned according
!        the rules of array Rnding
!
!
! Warning this module has the revised triples spec.
!
! In first attempt at Triple Imp considerable use was made of constant operands
! to pass information from Pass2 to GEN. Although for specialised operations%c
like
! passing Labels this still applies, this adhocery has caused problems with%c
arrays
! and pointers particularly in mapped records. The operands for four triples
! have thus been redefined in a more standard way.

==== ercc07/icom8s.txt ====
%INCLUDE "ercc07:ibmsup_comf370"
!
%INCLUDE "ercc07:ibmsup_page0f"
!
%RECORDFORMAT PARMF((%INTEGER DEST,SRCE %ORSHORT DSNO,DACT,SSNO,SACT),(%INTEGER P1,P2,P3,P4,
   P5,P6 %ORSTRING (23) TEXT))
!
%CONSTINTEGER SLEN=63;                  ! string length in RT calls
%EXTERNALROUTINESPEC DISPLAY TEXT(%INTEGER V,L,P, %STRING (41) TEXT)
%EXTERNALROUTINESPEC DPON(%RECORD (PARMF) %NAME P, %INTEGER DELAY)
%EXTERNALINTEGERFNSPEC STOI(%STRINGNAME S)
%EXTERNALROUTINESPEC PKMONREC(%STRING (23) S, %RECORD (PARMF) %NAME P)
%EXTERNALROUTINESPEC PON(%RECORD (PARMF) %NAME P)
%EXTERNALROUTINESPEC MONITOR(%STRING (SLEN) S)
%EXTERNALROUTINESPEC OPMESS(%STRING (SLEN) S)
%EXTERNALROUTINESPEC OPMESS3(%STRING (SLEN) S)
%EXTERNALROUTINESPEC INHIBIT(%INTEGER SERVICE)
%EXTERNALROUTINESPEC UNINHIBIT(%INTEGER SERVICE)
%EXTERNALROUTINESPEC DUMPTABLE(%INTEGER T,A,L)
%EXTERNALINTEGERFNSPEC REALISE(%INTEGER VIRTAD)
%EXTERNALINTEGERFNSPEC RTV(%INTEGER RAD)

==== ercc07/ebits_ecodes3.txt ====
!
!************************************************************************
!*                                                                      *
!*                                                    G.E.Millard       *
!*   ECODES3                                          31/03/86          *
!*                                                                      *
!************************************************************************
!
{00} %constinteger      HALT =   0
!
!--------------------------------------- generic int operations -------
!
{01} %constinteger      IADD =   1     { (Etos-1) + (Etos) => (Etos)   }
{02} %constinteger      ISUB =   2     { (Etos-1) - (Etos) => (Etos)   }
{03} %constinteger     IMULT =   3     { (Etos-1) * (Etos) => (Etos)   }
{04} %constinteger      IDIV =   4     { (Etos-1) / (Etos) => (Etos)   }
{05} %constinteger      INEG =   5     {          - (Etos) => (Etos)   }
{06} %constinteger      IABS =   6     {     abs( (Etos) ) => (Etos)   }
{07} %constinteger      IREM =   7     { remainder from                }
                                       {  (Etos-1) / (Etos)=> (Etos)   }
!

==== ercc07/usysgen00s.txt ====
!
! Warning this module has the revised triples spec.
!
! In first attempt at Triple Imp considerable use was made of constant operands
! to pass information from Pass2 to GEN. Although for specialised operations like
! passing Labels this still applies, this adhocery has caused problems with arrays
! and pointers particularly in mapped records. The operands for four triples
! have thus been redefined in a more standard way.
!
! GETPTR    X1 is now (ptype of passed)<<16! DIMENSION
!           Opnd2 is either a 32 bit const with the size (ACC) as value or
!           the ptr or arrayhead as normal operand.
!
! VMY       X1 is now dim<<28!maxdim<<24!array name(where known)
!           Opnd2 is either a 32 bit const with DV offset into const area or
!           the arrayhead as a standard operand
!
! AINDX     X1 is ELSIZE<<20 !spare
!           Opnd2 is arrayhead as standard operand
!           NOTE:- The Operands have been swopped for consistency with norm.
!

==== ercc07/ebits_ecodes4.txt ====
!
!************************************************************************
!*                                                                      *
!*                                                    G.E.Millard       *
!*   ECODES4                                          22/04/86          *
!*                                                                      *
!************************************************************************
!
{00} %constinteger      HALT =   0
!
!--------------------------------------- generic int operations -------
!
{01} %constinteger      IADD =   1     { (Etos-1) + (Etos) => (Etos)   }
{02} %constinteger      ISUB =   2     { (Etos-1) - (Etos) => (Etos)   }
{03} %constinteger     IMULT =   3     { (Etos-1) * (Etos) => (Etos)   }
{04} %constinteger      IDIV =   4     { (Etos-1) / (Etos) => (Etos)   }
{05} %constinteger      INEG =   5     {          - (Etos) => (Etos)   }
{06} %constinteger      IABS =   6     {     abs( (Etos) ) => (Etos)   }
{07} %constinteger      IREM =   7     { remainder from                }
                                       {  (Etos-1) / (Etos)=> (Etos)   }
!

==== ercc07/ebits_ecodes5.txt ====
!
!************************************************************************
!*                                                                      *
!*                                                    G.E.Millard       *
!*   ECODES5                                          25/04/86          *
!*                                                                      *
!************************************************************************
!
{00} %constinteger      HALT =   0
!
!--------------------------------------- generic int operations -------
!
{01} %constinteger      IADD =   1     { (Etos-1) + (Etos) => (Etos)   }
{02} %constinteger      ISUB =   2     { (Etos-1) - (Etos) => (Etos)   }
{03} %constinteger     IMULT =   3     { (Etos-1) * (Etos) => (Etos)   }
{04} %constinteger      IDIV =   4     { (Etos-1) / (Etos) => (Etos)   }
{05} %constinteger      INEG =   5     {          - (Etos) => (Etos)   }
{06} %constinteger      IABS =   6     {     abs( (Etos) ) => (Etos)   }
{07} %constinteger      IREM =   7     { remainder from                }
                                       {  (Etos-1) / (Etos)=> (Etos)   }
!

==== ercc07/trimp_accponeas.txt ====
%INCLUDE "ERCC07.TRIMP_HOSTCODES"
%CONSTINTEGER HOST=EMAS
%CONSTINTEGER TARGET=ACCENT
! PRODUCED BY OLDPS FROM TRIMP_PERQPS01 ON 06/09/83
%CONSTBYTEINTEGERARRAY CLETT(0: 436)=   1,
  40,   1,  41,   1,  42,   1,  44,   2, 201, 198,   6, 213, 206, 204,
 197, 211, 211,   5, 215, 200, 201, 204, 197,   5, 213, 206, 212, 201,
 204,   3, 198, 207, 210,   1,  61,   5, 193, 204, 201, 193, 211,   7,
 201, 206, 212, 197, 199, 197, 210,   4, 210, 197, 193, 204,   4, 204,
 207, 206, 199,   4, 194, 217, 212, 197,   6, 211, 212, 210, 201, 206,
 199,   4, 200, 193, 204, 198,   5, 211, 200, 207, 210, 212,   6, 210,
 197, 195, 207, 210, 196,   7, 210, 207, 213, 212, 201, 206, 197,   2,
 198, 206,   3, 205, 193, 208,   8, 198, 213, 206, 195, 212, 201, 207,
 206,   4, 206, 193, 205, 197,   9, 193, 210, 210, 193, 217, 206, 193,
 205, 197,   9, 207, 198, 208, 210, 207, 199, 210, 193, 205,   6, 207,
 198, 198, 201, 204, 197,   6, 207, 198, 204, 201, 211, 212,   6, 198,
 207, 210, 205, 193, 212,   3, 206, 207, 212,   3, 193, 206, 196,   2,
 207, 210,   1,  58,   4, 211, 208, 197, 195,   5, 193, 210, 210, 193,
 217,   3, 207, 215, 206,   8, 197, 216, 212, 197, 210, 206, 193, 204,
   9, 197, 216, 212, 210, 201, 206, 211, 201, 195,   8, 195, 207, 206,
 211, 212, 193, 206, 212,   5, 195, 207, 206, 211, 212,   5, 197, 214,

==== ercc07/ebits_ecodes6.txt ====
!
!************************************************************************
!*                                                                      *
!*                                                    G.E.Millard       *
!*   ECODES6                                          29/05/86          *
!*                                                                      *
!************************************************************************
!
{00} %constinteger      HALT =   0
!
!--------------------------------------- generic int operations -------
!
{01} %constinteger      IADD =   1     { (Etos-1) + (Etos) => (Etos)   }
{02} %constinteger      ISUB =   2     { (Etos-1) - (Etos) => (Etos)   }
{03} %constinteger     IMULT =   3     { (Etos-1) * (Etos) => (Etos)   }
{04} %constinteger      IDIV =   4     { (Etos-1) / (Etos) => (Etos)   }
{05} %constinteger      INEG =   5     {          - (Etos) => (Etos)   }
{06} %constinteger      IABS =   6     {     abs( (Etos) ) => (Etos)   }
{07} %constinteger      IREM =   7     { remainder from                }
                                       {  (Etos-1) / (Etos)=> (Etos)   }
!

==== ercc07/ibmsup_comf370.txt ====
!
%include "Ercc07:ibmsup_comformat"
!
%if VA MODE=YES %start
   %constrecord (COMF) %name COM=COM SEG<<SSHIFT
%finishelsestart
   %ownrecord (COMF) %name COM
%finish
%endoffile

==== ercc07/idev16s.txt ====
!09-09-85..statistics gathering for auscom
!05-09-85..use tio in case mag tape off-line..sh
%include "ercc07:ibmsup_comf370"
%include "ercc07:ibmsup_page0f"
%include "ercc07:ibmsup_dtform1s"
%include "ercc07:IBMSUP_xaioform"
%record %format PARMF(%integer DEST,SRCE,(%integer P1,P2,P3,P4,P5,
   P6 %or %string (23) TEXT))
%record %format PARMXF(%integer DEST,SRCE,P1,P2,P3,P4,P5,P6,LINK)
%if VA MODE=YES %start
   %const %record (PARMXF) %array %name PARM=PARM0AD
%finish %else %start
!* %externalintegerspec parmad
   %own %record (PARMXF) %array %name PARM
!* %ownrecord(parmxf)%arrayformat parmaf(0:128)
%finish
!
%external %integer %fn %spec REALISE(%integer VAD)
%external %integer %fn %spec HSCH(%integer SLOTADDR)
%external %integer %fn %spec TSCH(%integer SLOTADDR, %record (IRBF) %name IRB)
%external %integer %fn %spec SSCH(%integer SLOTADDR,CCWA,KEY)

==== ercc07/ebits_ecodes8.txt ====
!
!************************************************************************
!*                                                                      *
!*                                                    G.E.Millard       *
!*   ECODES8                                          26/06/86          *
!*                                                                      *
!************************************************************************
!
{00} %constinteger      HALT =   0
!
!--------------------------------------- generic int operations -------
!
{01} %constinteger      IADD =   1     { (Etos-1) + (Etos) => (Etos)   }
{02} %constinteger      ISUB =   2     { (Etos-1) - (Etos) => (Etos)   }
{03} %constinteger     IMULT =   3     { (Etos-1) * (Etos) => (Etos)   }
{04} %constinteger      IDIV =   4     { (Etos-1) / (Etos) => (Etos)   }
{05} %constinteger      INEG =   5     {          - (Etos) => (Etos)   }
{06} %constinteger      IABS =   6     {     abs( (Etos) ) => (Etos)   }
{07} %constinteger      IREM =   7     { remainder from                }
                                       {  (Etos-1) / (Etos)=> (Etos)   }
!

==== ercc07/ebits_ecodes9.txt ====
!
!************************************************************************
!*                                                                      *
!*                                                    G.E.Millard       *
!*   ECODES8                                          26/06/86          *
!*                                                                      *
!************************************************************************
!
{00} %constinteger      HALT =   0
!
!--------------------------------------- generic int operations -------
!
{01} %constinteger      IADD =   1     { (Etos-1) + (Etos) => (Etos)   }
{02} %constinteger      ISUB =   2     { (Etos-1) - (Etos) => (Etos)   }
{03} %constinteger     IMULT =   3     { (Etos-1) * (Etos) => (Etos)   }
{04} %constinteger      IDIV =   4     { (Etos-1) / (Etos) => (Etos)   }
{05} %constinteger      INEG =   5     {          - (Etos) => (Etos)   }
{06} %constinteger      IABS =   6     {     abs( (Etos) ) => (Etos)   }
{07} %constinteger      IREM =   7     { remainder from                }
                                       {  (Etos-1) / (Etos)=> (Etos)   }
!

==== ercc07/xgen30s.txt ====
!* modified 16/07/86
!*
%constinteger increports=1
%owninteger Report=0
%owninteger Decode
%owninteger Language
!*
%constinteger IMP      =  1
%constinteger FORTRAN  =  2
%constinteger CCOMP    = 11
%constinteger PASCAL   = 14
!*
!***********************************************************************
!* Exports                                                             *
!***********************************************************************
!*
%routinespec Einitialise(%integer Lang, Avertext, Astackca,
                                                    Aglaca, Options)
%routinespec Eterminate(%integer adareasizes)
%routinespec Ecommon(%integer area, %stringname Name)
%routinespec Eendcommon(%integer area, Length)

==== ercc07/trimp_pnxoptas.txt ====
%INCLUDE "ERCC07.TRIMP_HOSTCODES"
%CONSTINTEGER HOST=EMAS
%CONSTINTEGER TARGET=PNX

==== ercc07/pdriver06s.txt ====
{****************************************************************************}
{                                                                            }
{                   System dependent routines.                               }
{                                                                            }
{****************************************************************************}

%externalstring(255)%fnspec uinfs %alias "S#UINFS"(%integer n)
%EXTERNAL %ROUTINE %SPEC Define %ALIAS "S#DEFINE"(%INTEGER channel,
   %STRING (255) File, %INTEGER %NAME Afd,Flag)
%externalintegerfnspec IOCP %alias "S#IOCP"(%integer ep,adr)
%EXTERNAL %INTEGER %MAP %SPEC ComReg %ALIAS "S#COMREGMAP"(%INTEGER N)
%EXTERNAL %ROUTINE %SPEC ICLpascalcompiler
%ROUTINE %SPEC InitialiseCompiler
%EXTERNAL %ROUTINE %SPEC EMAS3ClaimChannel(%INTEGER %NAME Chan)
%EXTERNAL %ROUTINE %SPEC Eproc(%STRING %NAME Name, %INTEGER Prop,Numpars,
   Paramsize,Astacklen, %INTEGER %NAME Id)
%EXTERNAL %ROUTINE %SPEC Eentry(%INTEGER Index,Numpars,ParamSize,LocalSize,
   DiagDisp, %STRING %NAME Name)
%EXTERNAL %INTEGER %FN %SPEC Exname(%INTEGER Type, %STRING %NAME Xref)
%EXTERNAL %ROUTINE %SPEC Edataentry(%INTEGER Area,Offset,Length,
   %STRING %NAME Name)

==== ercc07/timp04s.txt ====
!
! Recent Source Changes
!**********************
!
! DEc88 Version 3 produced
! Changes to note included procedures for Gould and others
! Also change to allow LINT &LINTPT to compile when lonlongs are treated as longs
!
! 8May87 Changes in FPlist so that RT Parameters are aligned according
!        the rules of array Rnding
!
!
! Warning this module has the revised triples spec.
!
! In first attempt at Triple Imp considerable use was made of constant operands
! to pass information from Pass2 to GEN. Although for specialised operations%c
like
! passing Labels this still applies, this adhocery has caused problems with%c
arrays
! and pointers particularly in mapped records. The operands for four triples
! have thus been redefined in a more standard way.

==== ercc07/icom9s.txt ====
%INCLUDE "ercc07:ibmsup_comf370"
!
%INCLUDE "ercc07:ibmsup_page0f"
!
%RECORDFORMAT PARMF((%INTEGER DEST,SRCE %ORSHORT DSNO,DACT,SSNO,SACT),(%INTEGER P1,P2,P3,P4,
   P5,P6 %ORSTRING (23) TEXT))
!
%CONSTINTEGER SLEN=63;                  ! string length in RT calls
%EXTERNALROUTINESPEC DISPLAY TEXT(%INTEGER V,L,P, %STRING (41) TEXT)
%EXTERNALROUTINESPEC DPON(%RECORD (PARMF) %NAME P, %INTEGER DELAY)
%EXTERNALINTEGERFNSPEC STOI(%STRINGNAME S)
%EXTERNALROUTINESPEC PKMONREC(%STRING (23) S, %RECORD (PARMF) %NAME P)
%EXTERNALROUTINESPEC PON(%RECORD (PARMF) %NAME P)
%EXTERNALROUTINESPEC MONITOR(%STRING (SLEN) S)
%EXTERNALROUTINESPEC OPMESS(%STRING (SLEN) S)
%EXTERNALROUTINESPEC OPMESS3(%STRING (SLEN) S)
%EXTERNALROUTINESPEC INHIBIT(%INTEGER SERVICE)
%EXTERNALROUTINESPEC UNINHIBIT(%INTEGER SERVICE)
%EXTERNALROUTINESPEC DUMPTABLE(%INTEGER T,A,L)
%EXTERNALINTEGERFNSPEC REALISE(%INTEGER VIRTAD)
%EXTERNALINTEGERFNSPEC RTV(%INTEGER RAD)

==== ercc07/linkv7.txt ====
parm map
link ,separeas
ercc07:isupv710y
ercc07:ifastv75y
ercc07:idevv712y
ercc07:ioperv73y
ercc07:icomv76y
ercc08:iprintv72y
ercc15:itape.Y6
ercc27:icomms.y9
ercc08:ienterv72y
ercc07:indiagv72y
.end
isupz
isupfix isupz,isupt,isupl
disconnect isupt
parm nocheck

==== ercc07/idev17s.txt ====
! 17-05-88 Semaphoring added for dual nass PDS
!09-09-85..statistics gathering for auscom
!05-09-85..use tio in case mag tape off-line..sh
%INCLUDE "ercc07:ibmsup_comf370"
%INCLUDE "ercc07:ibmsup_page0f"
%INCLUDE "ercc07:ibmsup_dtform2s"
%INCLUDE "ercc07:IBMSUP_xaioform"
%RECORD %FORMAT PARMF(%INTEGER DEST,SRCE,(%INTEGER P1,P2,P3,P4,P5,P6 %OR %STRING (23) TEXT))
%RECORD %FORMAT PARMXF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6,LINK)
      %IF VA MODE=YES %START
      %CONST %RECORD (PARMXF) %ARRAY %NAME PARM=PARM0AD
      %FINISH %ELSE %START
!* %EXTERNALINTEGERSPEC parmad
      %OWN %RECORD (PARMXF) %ARRAY %NAME PARM
!* %OWNRECORD(parmxf)%ARRAYFORMAT parmaf(0:128)
      %FINISH
!
%EXTERNAL %INTEGER %FN %SPEC REALISE(%INTEGER VAD)
%EXTERNAL %INTEGER %FN %SPEC HSCH(%INTEGER SLOTADDR)
%EXTERNAL %INTEGER %FN %SPEC TSCH(%INTEGER SLOTADDR, %RECORD (IRBF) %NAME IRB)
%EXTERNAL %INTEGER %FN %SPEC SSCH(%INTEGER SLOTADDR,CCWA,KEY)

==== ercc07/xgen31s.txt ====
!* modified 16/07/86
!*
%constinteger increports=1
%owninteger Report=0
%owninteger Decode
%owninteger Language
!*
%constinteger IMP      =  1
%constinteger FORTRAN  =  2
%constinteger CCOMP    = 11
%constinteger PASCAL   = 14
!*
!***********************************************************************
!* Exports                                                             *
!***********************************************************************
!*
%routinespec Einitialise(%integer Lang, Avertext, Astackca,
                                                    Aglaca, Options)
%routinespec Eterminate(%integer adareasizes)
%routinespec Ecommon(%integer area, %stringname Name)
%routinespec Eendcommon(%integer area, Length)

==== ercc07/portenv03_exps.txt ====
%include "itrimp_hostcodes"
!
%CONSTINTEGER TARGET=M88K
!%EXTERNALROUTINESPEC IOCP %ALIAS "s#iocp"(%INTEGER EP,N)
!
! crude versions of the fortran exponentiation functions used by imp
!
%EXTERNALINTEGERFN POWII %ALIAS "F_POWII" %C
         (%%INTEGER ARG, %INTEGER NARG)
!
!     CALCULATES ARG**NARG
!
%integer XX,YY
%INTEGER N

%IF NARG<0 %THEN %signal %event 5,5

%IF NARG=0 %then %result=1

%IF ARG=0 %START
    %RESULT= 0

==== ercc07/pdriver07s.txt ====
{****************************************************************************}
{                                                                            }
{                   System dependent routines.                               }
{                                                                            }
{****************************************************************************}

%externalstring(255)%fnspec uinfs %alias "S#UINFS"(%integer n)
%EXTERNAL %ROUTINE %SPEC Define %ALIAS "S#DEFINE"(%INTEGER channel,
   %STRING (255) File, %INTEGER %NAME Afd,Flag)
%externalintegerfnspec IOCP %alias "S#IOCP"(%integer ep,adr)
%EXTERNAL %INTEGER %MAP %SPEC ComReg %ALIAS "S#COMREGMAP"(%INTEGER N)
%EXTERNAL %ROUTINE %SPEC ICLpascalcompiler
%ROUTINE %SPEC InitialiseCompiler
%EXTERNAL %ROUTINE %SPEC EMAS3ClaimChannel(%INTEGER %NAME Chan)
%EXTERNAL %ROUTINE %SPEC Eproc(%STRING %NAME Name, %INTEGER Prop,Numpars,
   Paramsize,Astacklen, %INTEGER %NAME Id)
%EXTERNAL %ROUTINE %SPEC Eentry(%INTEGER Index,Numpars,ParamSize,LocalSize,
   DiagDisp, %STRING %NAME Name)
%EXTERNAL %INTEGER %FN %SPEC Exname(%INTEGER Type, %STRING %NAME Xref)
%EXTERNAL %ROUTINE %SPEC Edataentry(%INTEGER Area,Offset,Length,
   %STRING %NAME Name)

==== ercc07/timp05s.txt ====
!
! Recent Source Changes
!**********************
!
! Oct 89   Version 5
! Chnages (mostly in CRCALL) to pass record values via work area & pointer
! for risc chips. Controlled by const integer in steering file
!
! DEc88 Version 3 produced
! Changes to note included procedures for Gould and others
! Also change to allow LINT &LINTPT to compile when lonlongs are treated as longs
!
! 8May87 Changes in FPlist so that RT Parameters are aligned according
!        the rules of array Rnding
!
!
! Warning this module has the revised triples spec.
!
! In first attempt at Triple Imp considerable use was made of constant operands
! to pass information from Pass2 to GEN. Although for specialised operations%c
like

==== ercc07/ebits_especs1.txt ====
!* modified 19/08/85
!*
%externalroutinespec Egenerate Object(%stringname Name)
%externalroutinespec Einitialise(%integer Lang, Avertext, Astackca,
                                                    Aglaca, Options)
%externalroutinespec Eterminate(%integer adareasizes)
%externalroutinespec Ecommon(%integer area, %stringname Name)
%externalroutinespec Eendcommon(%integer area, Length)
%externalroutinespec Elinestart(%integer lineno)
%externalroutinespec Elinedecode
%externalroutinespec Emonon
%externalroutinespec Emonoff
%externalroutinespec Efaulty
%externalintegerfnspec Estkmarker
%externalroutinespec Esetmarker(%integer Markerid, New Value)
%externalintegerfnspec Eswapmode
!*
%externalroutinespec Estklit(%integer Val)
%externalroutinespec Estkconst(%integer Len, Ad)
%externalroutinespec Estkdir(%integer Area, Offset, Adid, Bytes)
%externalroutinespec Estkind(%integer Area, Offset, Adid, Bytes)

==== ercc07/ebits_especs2.txt ====
!* modified 19/08/85
!*
%externalroutinespec Egenerate Object(%stringname Name)
%externalroutinespec Einitialise(%integer Lang, Avertext, Astackca,
                                                    Aglaca, Options)
%externalroutinespec Eterminate(%integer adareasizes)
%externalroutinespec Ecommon(%integer area, %stringname Name)
%externalroutinespec Eendcommon(%integer area, Length)
%externalroutinespec Elinestart(%integer lineno)
%externalroutinespec Elinedecode
%externalroutinespec Emonon
%externalroutinespec Emonoff
%externalroutinespec Efaulty
%externalintegerfnspec Estkmarker
%externalroutinespec Esetmarker(%integer Markerid, New Value)
%externalintegerfnspec Eswapmode
!*
%externalroutinespec Estklit(%integer Val)
%externalroutinespec Estkconst(%integer Len, Ad)
%externalroutinespec Estkrconst(%integer Len,Ad)
%externalroutinespec Estkdir(%integer Area, Offset, Adid, Bytes)

==== ercc07/idev18s.txt ====
! 17-05-88 Semaphoring added for dual nass PDS
!09-09-85..statistics gathering for auscom
!05-09-85..use tio in case mag tape off-line..sh
%INCLUDE "ercc07:ibmsup_comf370"
%INCLUDE "ercc07:ibmsup_page0f"
%INCLUDE "ercc07:ibmsup_dtform2s"
%INCLUDE "ercc07:IBMSUP_xaioform"
%RECORD %FORMAT PARMF(%INTEGER DEST,SRCE,(%INTEGER P1,P2,P3,P4,P5,P6 %OR %STRING (23) TEXT))
%RECORD %FORMAT PARMXF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6,LINK)
      %IF VA MODE=YES %START
      %CONST %RECORD (PARMXF) %ARRAY %NAME PARM=PARM0AD
      %FINISH %ELSE %START
!* %EXTERNALINTEGERSPEC parmad
      %OWN %RECORD (PARMXF) %ARRAY %NAME PARM
!* %OWNRECORD(parmxf)%ARRAYFORMAT parmaf(0:128)
      %FINISH
!
%EXTERNAL %INTEGER %FN %SPEC REALISE(%INTEGER VAD)
%EXTERNAL %INTEGER %FN %SPEC HSCH(%INTEGER SLOTADDR)
%EXTERNAL %INTEGER %FN %SPEC TSCH(%INTEGER SLOTADDR, %RECORD (IRBF) %NAME IRB)
%EXTERNAL %INTEGER %FN %SPEC SSCH(%INTEGER SLOTADDR,CCWA,KEY)

==== ercc07/vaxcom_newilink.txt ====
$ link 'p1',imp_sup/lib,sys$input/opt
sys$share:vaxcrtl.exe/share

==== ercc07/ebits_especs5.txt ====
%externalroutinespec Einitialise (%integer Lang,Aver,Astackca,Aglaca,options)
%externalroutinespec Eterminate (%integer adareasizes)
%externalroutinespec Ecommon (%integer area,%stringname Name)
%externalroutinespec Eendcommon (%integer area,Length)
%externalroutinespec Elinestart (%integer lineno)
%externalroutinespec Elinedecode 
%externalintegerfnspec Estkmarker 
%externalroutinespec Esetmarker (%integer Markerid,New Value)
%externalintegerfnspec Eswapmode 
%externalroutinespec Emonon 
%externalroutinespec Emonoff 
%externalroutinespec Efaulty 
%externalroutinespec Estklit (%integer Val)
%externalroutinespec Estkconst (%integer Len,Ad)
%externalroutinespec Estkrconst (%integer Len,Ad)
%externalroutinespec Estkdir (%integer Area,Offset,Adid,Bytes)
%externalroutinespec Estkind (%integer Area,Offset,Adid,Bytes)
%externalroutinespec Estkglobal (%integer Level,Offset,Adid,Bytes)
%externalroutinespec Estkglobalind (%integer Level,Offset,Adid,Bytes)
%externalroutinespec Estkgind (%integer Level,Offset,Adid,Bytes)
%externalroutinespec Estkpar (%integer Level,Offset,Adid,Bytes)

==== ercc07/xgen32s.txt ====
! changes for xgen32s
!    1) Rearrange initialisation so that Exnamesva initialised before
!       Pascal specific initialisation calls Exname
!    2) Insert three missing pusings
!    3) Minor correction to Epromote to keep register uses OK
!*
%constinteger increports=1
%owninteger Report=0
%owninteger Decode
%owninteger Language
!*
%constinteger IMP      =  1
%constinteger FORTRAN  =  2
%constinteger CCOMP    = 11
%constinteger PASCAL   = 14
!*
!***********************************************************************
!* Exports                                                             *
!***********************************************************************
!*
%routinespec Einitialise(%integer Lang, Avertext, Astackca,

==== ercc07/timp06s.txt ====
!
! Recent Source Changes
!**********************
!
! Dec 89 Version 6
! Changes so that functions in parameters are prefetched so there are no
! recursive calls which tend to be inefficient on RISC machines
!
! Also move rounding of own variables back from pass4 to pass2 so
! that the global rules are used.
! Also more careful rounding of tempoaries and ON space
!
! Oct 89   Version 5
! Changes (mostly in CRCALL) to pass record values via work area & pointer
! for risc chips. Controlled by const integer in steering file
!
! DEc88 Version 3 produced
! Changes to note included procedures for Gould and others
! Also change to allow LINT &LINTPT to compile when lonlongs are treated as longs
!
! 8May87 Changes in FPlist so that RT Parameters are aligned according

==== ercc07/idev19s.txt ====
! 17-05-88 Semaphoring added for dual nass PDS
!09-09-85..statistics gathering for auscom
!05-09-85..use tio in case mag tape off-line..sh
%INCLUDE "ercc07:ibmsup_comf370"
%INCLUDE "ercc07:ibmsup_page0f"
%INCLUDE "ercc07:ibmsup_dtform2s"
%INCLUDE "ercc07:IBMSUP_xaioform"
%RECORD %FORMAT PARMF(%INTEGER DEST,SRCE,(%INTEGER P1,P2,P3,P4,P5,P6 %OR %STRING (23) TEXT))
%RECORD %FORMAT PARMXF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6,LINK)
      %IF VA MODE=YES %START
      %CONST %RECORD (PARMXF) %ARRAY %NAME PARM=PARM0AD
      %FINISH %ELSE %START
!* %EXTERNALINTEGERSPEC parmad
      %OWN %RECORD (PARMXF) %ARRAY %NAME PARM
!* %OWNRECORD(parmxf)%ARRAYFORMAT parmaf(0:128)
      %FINISH
!
%EXTERNAL %INTEGER %FN %SPEC REALISE(%INTEGER VAD)
%EXTERNAL %INTEGER %FN %SPEC HSCH(%INTEGER SLOTADDR)
%EXTERNAL %INTEGER %FN %SPEC TSCH(%INTEGER SLOTADDR, %RECORD (IRBF) %NAME IRB)
%EXTERNAL %INTEGER %FN %SPEC SSCH(%INTEGER SLOTADDR,CCWA,KEY)

==== ercc07/trimp_oldps.txt ====

%EXTERNALROUTINE OLDPS(%STRING(63) S)
%EXTERNALSTRINGFNSPEC DATE
%INTEGER I, J, K, SS, NBIP
%STRING(31) ST49,ST50,ST51
%STRING(127)HEADER
%EXTERNALROUTINESPEC DEFINE(%STRING(63)S)
%INTEGERARRAY CLETT(0:1000), SYMBOL(1300:3000), CC(0:300)
%INTEGER CNEXT, DNEXT, CNUM, DNUM, ALT, DEF, ASL, NIDFLAG
%INTEGERARRAY KK, PUSE, DWORD(1001:1200), DLETT(0:1000), CWORD(1:200)
%ROUTINESPEC READ STRING(%INTEGER TERMINATOR)
%ROUTINESPEC RECORD(%INTEGERARRAYNAME WORD, LETT,  %C
            %INTEGERNAME NUM, NEXT)
%ROUTINESPEC LOOK UP(%INTEGERARRAYNAME WORD, LETT,  %C
            %INTEGER FIRST, LAST, INSERT)
%ROUTINESPEC PDDICT
%ROUTINESPEC PRINT STR(%INTEGERARRAYNAME CC, %INTEGER PTR)
%ROUTINESPEC PCDICT
         %UNLESS S->ST49.(",").ST50.(",").ST51 %THEN %C
            PRINTSTRING("PARAMS?????") %AND NEWLINE %AND %RETURN
         DEFINE("ST49,".ST49)

==== ercc07/xgen33s.txt ====
! changes for xgen32s
!    1) Rearrange initialisation so that Exnamesva initialised before
!       Pascal specific initialisation calls Exname
!    2) Insert three missing pusings
!    3) Minor correction to Epromote to keep register uses OK
!*
%constinteger increports=1
%owninteger Report=0
%owninteger Decode
%owninteger Language
!*
%constinteger IMP      =  1
%constinteger FORTRAN  =  2
%constinteger CCOMP    = 11
%constinteger PASCAL   = 14
!*
!***********************************************************************
!* Exports                                                             *
!***********************************************************************
!*
%routinespec Einitialise(%integer Lang, Avertext, Astackca,

==== ercc07/stuenv01s.txt ====
%EXTERNALINTEGERMAPSPEC COMREG %ALIAS "S#COMREGMAP"(%INTEGER N)
%CONSTLONGREAL LOG10A=2.3025850929940456840179914546843642076011
%CONSTLONGREAL PI=3.141592653589793238462643
%CONSTLONGREAL R1= 1.2595802263029547@  1{R'41C98867F42983DF'}
%CONSTLONGREAL R2=-8.6186317517509520@  1{R'C2562FB2813C6014'}
%CONSTLONGREAL R3=-1.2766919133361079@  0{R'C1146D547FED8A3D'}
%CONSTLONGREAL R4=-8.3921038065840512@ -2{R'C0157BD961F06C89'}
%CONSTLONGREAL S1= 2.7096164294378656@  1{R'421B189E39236635'}
%CONSTLONGREAL S2= 6.5581320451487386@  0{R'4168EE1BDE0C3700'}
%CONSTLONGREAL S3= 2.1441643116703661@  0{R'41224E7F3CBDFE41'}
%CONSTLONGREAL S4= 1.2676256708212610@  0{R'41144831DAFBF542'}
%CONSTLONGREAL RT3= 1.7320508075688772@  0{R'411BB67AE8584CAA'}
%CONSTLONGREAL PIBY6= 5.2359877559829887@ -1{R'40860A91C16B9B2C'}
%CONSTLONGREAL PIBY2M1= 5.7079632679489661@ -1{R'40921FB54442D184'}
%CONSTLONGREAL RT3M1=7.3205080756887728@ -1{R'40BB67AE8584CAA7'}
%CONSTLONGREAL TANPIBY12= 2.6794919243112271@ -1{R'404498517A7B3559'}
%CONSTLONGREAL PIBY4= 7.8539816339744816@ -1{R'40C90FDAA22168C2'}
%CONSTLONGREAL A1= 7.5000000000000000@ -1{R'40C0000000000000'}
%CONSTLONGREAL A2= 3.5398163397448309@ -2{R'3F90FDAA22168C23'}
%CONSTLONGREAL SQRTHALF= 7.0710678118654753@ -1{R'40B504F333F9DE65'}
%CONSTLONGREAL DEFALLT=SQRTHALF

==== ercc07/docs_enotes.txt ====

Current ambiguities in the Ecode machine

     While going through the Ecode generator for Amdahl it  has  become  obvious
that  varying  interpretations  are  possible for some Ecode operations and that
these interpretaions conflict.   These notes are intended to  clarify  the  more
important areas.

      1) Locations and addresses.

     Ecode operations are normally between items  in  store  (locations).    The
     locations  are  notified  by stacking them as area and offset or otherwise.
     The address of a location can be obtatined by eop(Eaddress) or by  stacking
     the address of a location(Estkaddr). An address once stacked has the status
     of a litval ie it does not have an address itself nor  is  it  possible  to
     store  into  an  address.    To  convert  an  address  into  a location use
     Erefer(0,size).

      2) Storing results.

     The operations ESTORE and EDUPSTORE are  provided  for  storing  arithmetic

==== ercc07/makeusys_opt.txt ====
edit opt03s,Upos
i<itrimp_Usysoptas>
ta/%inc/
d1i<itrimp_hostcodes>
a'
d1i<itrimp_tform2s>
a'
d1i<tripcnsts>
e
imp Upos,.null
offer Upos,zepz01

==== ercc07/consources.txt ====
%recordformat Emashf(%integer dataend,datastart,filesize,filetype,s1,s2,s3,ofm)
%recordformat fidf(%integer dev,%short ino0,ino1,ino2,mode,%integer nlink,
      uid,%short gid,%integer charad,filesize,atime,mtime,ctime,
      %byte rfm,rat,%integer mrs)
%owninteger srcelink
%externalintegerfnspec Fstat(%integer filedes,bufad)
%externalintegerfnspec Open(%integer adname,mode,prot)
%externalintegerfnspec read(%integer id,bytead,bytesize)
%externalintegerfnspec Malloc(%integer Bytesize)
%externalroutinespec Free(%integer bytead)
%externalroutinespec Cstring(%string(*)%name Impstring,%integer adcstr)
%externalstring(255)%fnspec Impstring(%integer acstring)
%externalroutine filenames(%integer asrce,aobj,alist)
!***********************************************************************
!*    The command source name is a cstring at asrce                    *
!*     Generate in Imp the source,object&listing file names            *
!*    Tell put via pset source and put back in the cstrings            *
!***********************************************************************
%string(255) base,srce,obj,list,gen
%externalroutinespec Psetfiles(%string(*)%name srce,obj)
      srce=Impstring(Asrce)

==== ercc07/idev20s.txt ====
! 17-05-88 Semaphoring added for dual nass PDS
!09-09-85..statistics gathering for auscom
!05-09-85..use tio in case mag tape off-line..sh
%INCLUDE "ercc07:ibmsup_comf370"
%INCLUDE "ercc07:ibmsup_page0f"
%INCLUDE "ercc07:ibmsup_dtform2s"
%INCLUDE "ercc07:IBMSUP_xaioform"
%RECORD %FORMAT PARMF(%INTEGER DEST,SRCE,(%INTEGER P1,P2,P3,P4,P5,P6 %OR %STRING (23) TEXT))
%RECORD %FORMAT PARMXF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6,LINK)
      %IF VA MODE=YES %START
      %CONST %RECORD (PARMXF) %ARRAY %NAME PARM=PARM0AD
      %FINISH %ELSE %START
!* %EXTERNALINTEGERSPEC parmad
      %OWN %RECORD (PARMXF) %ARRAY %NAME PARM
!* %OWNRECORD(parmxf)%ARRAYFORMAT parmaf(0:128)
      %FINISH
!
%EXTERNAL %INTEGER %FN %SPEC REALISE(%INTEGER VAD)
%EXTERNAL %INTEGER %FN %SPEC HSCH(%INTEGER SLOTADDR)
%EXTERNAL %INTEGER %FN %SPEC TSCH(%INTEGER SLOTADDR, %RECORD (IRBF) %NAME IRB)
%EXTERNAL %INTEGER %FN %SPEC SSCH(%INTEGER SLOTADDR,CCWA,KEY)

==== ercc07/xgen27as.txt ====
!* modified 16/07/86
!*
%owninteger Report=0
%owninteger Decode
%owninteger Language
!*
%constinteger IMP      =  1
%constinteger FORTRAN  =  2
%constinteger CCOMP    = 11
%constinteger PASCAL   = 14
!*
!***********************************************************************
!* Exports                                                             *
!***********************************************************************
!*
%routinespec Einitialise(%integer Lang, Avertext, Astackca,
                                                    Aglaca, Options)
%routinespec Eterminate(%integer adareasizes)
%routinespec Ecommon(%integer area, %stringname Name)
%routinespec Eendcommon(%integer area, Length)
%routinespec Elinestart(%integer lineno)

==== ercc07/xgen35s.txt ====
!
! Changes for XGEN34s
!    1) Introduction of UMULT and UMULTST (previously omitted
!    2) Introduction of CONVERT UU and greater care over conversion for C
!
! changes for xgen32s
!    1) Rearrange initialisation so that Exnamesva initialised before
!       Pascal specific initialisation calls Exname
!    2) Insert three missing pusings
!    3) Minor correction to Epromote to keep register uses OK
!*
%constinteger increports=1
%owninteger Report=0
%owninteger Decode
%owninteger Language
!*
%constinteger IMP      =  1
%constinteger FORTRAN  =  2
%constinteger CCOMP    = 11
%constinteger PASCAL   = 14
!*

==== ercc07/ibmconvert_sibmload.txt ====
%RECORDFORMAT NAMEF(%C
 %STRING(8)    NAME,
 %INTEGER      ID,
               ADDR,                    {-1=NOT KNOWN,OTHERWISE ABSOLUTE ADRS}
                                        {OF NAME}
               CHAIN,                   {0 NO OUTSTANDING RELOCATIONS OTHERWISE}
                                        {PTR TO HEAD OF CHAIN OF RELOCATIONS}
               LNTH,                    {OF AREA FOR SD, HOME SD NO FOR AN LD}
               OFFSET,                  { OFFSET OF LD WITHIN HOME SD}
 %BYTE         TYPE,                    {STANDARD TYPES SD,LD ETC}
               COMMON)
!
!
!
%RECORDFORMAT RR(%INTEGER CONAD,FTYPE,DSTART,DEND)
%SYSTEMINTEGERFNSPEC PSTOI(%STRING(63)S)
%EXTERNALSTRING(8)%FNSPEC IBM NAME(%STRING(1) PREFIX,%STRINGNAME NAME)
%EXTERNALROUTINESPEC PROMPT(%STRING(15) S)
%EXTERNALROUTINESPEC DEFINE(%STRING(255)PARM)
%SYSTEMROUTINESPEC OUTFILE(%STRING(31)FILE,%INTEGER SIZE,HOLE,PROT,
         %INTEGERNAME CONAD,FLAG)

==== ercc07/idev21s.txt ====
! Changes for idev21
!    1) attempt to make recoverying FEPs easier
!    2)  Clear subchannel on deallocation
!    3) Revised timeout handling with no sense
!    4) Discard of ints with halt or clear fn bit set (Did not happen nonXA)
!    5) Icorporation of deferred CC into PSEUDOTERM
!
!! 17-05-88 Semaphoring added for dual nass PDS
!09-09-85..statistics gathering for auscom
!05-09-85..use tio in case mag tape off-line..sh
%INCLUDE "ercc07:ibmsup_comf370"
%INCLUDE "ercc07:ibmsup_page0f"
%INCLUDE "ercc07:ibmsup_dtform2s"
%INCLUDE "ercc07:IBMSUP_xaioform"
%RECORD %FORMAT PARMF(%INTEGER DEST,SRCE,(%INTEGER P1,P2,P3,P4,P5,P6 %OR %STRING (23) TEXT))
%RECORD %FORMAT PARMXF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6,LINK)
      %IF VA MODE=YES %START
      %CONST %RECORD (PARMXF) %ARRAY %NAME PARM=PARM0AD
      %FINISH %ELSE %START
!* %EXTERNALINTEGERSPEC parmad
      %OWN %RECORD (PARMXF) %ARRAY %NAME PARM

==== ercc07/xgen27bs.txt ====
!* modified 16/07/86
!*
%owninteger Report=0
%owninteger Decode
%owninteger Language
!*
%constinteger IMP      =  1
%constinteger FORTRAN  =  2
%constinteger CCOMP    = 11
%constinteger PASCAL   = 14
!*
!***********************************************************************
!* Exports                                                             *
!***********************************************************************
!*
%routinespec Einitialise(%integer Lang, Avertext, Astackca,
                                                    Aglaca, Options)
%routinespec Eterminate(%integer adareasizes)
%routinespec Ecommon(%integer area, %stringname Name)
%routinespec Eendcommon(%integer area, Length)
%routinespec Elinestart(%integer lineno)

==== ercc07/opt01s.txt ====
%INCLUDE "ERCC07:TFORM1S"
%INCLUDE "ERCC07:TRIPCNSTS"
%EXTRINSICRECORD (WORKAF) WORKA
%EXTRINSICRECORD (PARMF) PARM
%EXTERNALROUTINESPEC IMPABORT
%IF HOST#TARGET %START
      %EXTERNALROUTINESPEC REFORMATC(%RECORD(RD)%NAME OPND)
%FINISH
%EXTERNALROUTINESPEC MOVE BYTES(%INTEGER L,FB,FO,TB,TO)
%EXTERNALROUTINESPEC FAULT(%INTEGER N,DATA,IDENT)
%EXTERNALROUTINESPEC PRINT TRIPS(%RECORD (TRIPF) %ARRAYNAME TRIPLES)
%CONSTBYTEINTEGERARRAY BYTES(0:7)=0(3),1,2,4,8,16;
%CONSTBYTEINTEGERARRAY WORDS(0:7)=0(3),1,1,1,2,4;
%EXTERNALROUTINE CTOP(%INTEGERNAME FLAG,MASK, %INTEGER XTRA,
    %RECORD (RD) %NAME OPND1,OPND2)
!***********************************************************************
!*    AN OPERATION HAS BEEN FOUND WHERE BOTH OPERANDS ARE              *
!*    CONSTANTS OR KNOWN AT COMPILE TIME. THIS ROUTINE INTERPRETS      *
!*    THE OPERATION                                                    *
!*    ON EXIT FLAG=0 IF INTERPRETED. REFRAINS FROM INTERPRETING        *
!*    X=1/0 FOR EXAMPLE. CODE IS PLANTED FOR THESE FUNNIES             *

==== ercc07/algtests_at10.txt ====
'BEGIN'
    'PROCEDURE' P( ST, A ); 'STRING' ST, A;
        ;
    P( <;'COMMENT'> )VALID:( <;> );
    'COMMENT' COULD FAIL TOO FEW PARAMETERS;
'END'

==== ercc07/algtests_at11.txt ====
'BEGIN'
    'REAL' X )INVALID PARAMETER LIKE COMMENTS:(Y;
        X := Y := 0.0
'END'

==== ercc07/algtests_at12.txt ====
'BEGIN'
    'PROCEDURE' Q( ST ) INVALID PARAMETER LIKE COMMENTS ( A );
        'STRING' ST; 'REAL' A; ;
        Q( <AZ> ) ALSO IN THE CALL( 1.0 )
'END'

==== ercc07/algtests_at13.txt ====
'BEGIN'
    LABELSCANNOTPRECEEDCOMMENTS: 'COMMENT' SHOULD FAIL;
        'GOTO' LABELSCANNOTPRECEEDCOMMENTS
'END'

==== ercc07/trimp_pnxptwoas.txt ====
%EXTERNALROUTINE ICL9CEZPNXIMP
%CONSTINTEGER RELEASE=4
%INCLUDE "ERCC07.TRIMP_HOSTCODES"
%CONSTINTEGER HOST=EMAS
%CONSTINTEGER TARGET=PNX
%CONSTINTEGER STANDARDPT=X'51'
%CONSTINTEGER MINAPT=X'51';             ! MINIMUM PTYPE FOR WHICH ARITHMETIC
                                        ! OPERATORS ARE AVAILABLE
%CONSTINTEGER MINAPREC=MINAPT>>4
%CONSTHALFINTEGERARRAY TYPEFLAG(0:12)=0,
                                        X'51'{%INTEGER},
                                        X'52'{%REAL},
                                        X'8009'{%LONG SOMETHING},
                                        X'4031'{%BYTE},
                                        X'35'{%STRING},
                                        X'4041'{%HALF},
                                        X'6051'{%SHORT->%INTEGER+WARNING},
                                        X'33'{%RECORD},
                                        0,
                                        X'1051'{%LONG INTEGER FAULT},
                                        X'62'{%LONG REAL},

==== ercc07/algtests_at14.txt ====
       'BEGIN'
                'PROCEDURE' Q( ST )INVALID PARAMETER 'COMMENT' :( A );
                        'STRING' ST; 'REAL' A; ;
                Q( <STR> ) AZ09:( 1.0 )
        'END'

==== ercc07/algtests_at15.txt ====
'BEGIN'
    'PROCEDURE' Q( ST1 )P:( ST2 ); 'COMMENT' ;
        'STRING' ST1, ST2; ;
    Q( <;'COMMENT' ) AZ: (>;> )INVALID:( <ST2> )
'END'

==== ercc07/gbits_gcodes5.txt ====
!*************************************************************************
!*                                                                       *
!*    Mnemonics for Gould code generator        Version 5    18/04/87    *
!*                                                                       *
!*************************************************************************
!*
%if Cpu = Concept %thenstart
!*
!*************************************************************************
!*                                                                       *
!*                               Concept                                 *
!*                                                                       *
!*************************************************************************
!*
%constinteger L      =   1 { RX }
%constinteger LM     =   2 { RX }
%constinteger LN     =   3 { RX }
%constinteger ST     =   4 { RX }
%constinteger STM    =   5 { RX }
%constinteger ZM     =   6 { RX }
%constinteger ADM    =   7 { RX }

==== ercc07/algtests_at16.txt ====
'BEGIN'
    'COMMENT'   STRING TESTS;
    'PROCEDURE' P(ST);
        'STRING'
            ST;
        ;
    P( <*STRING 'STRING' <NESTED<<>>> 'BEGIN' 'END';> );
    P( < ,
        > )
'END'

==== ercc07/idev22s.txt ====
! Changes for idev21
!    1) attempt to make recoverying FEPs easier
!    2)  Clear subchannel on deallocation
!    3) Revised timeout handling with no sense
!    4) Discard of ints with halt or clear fn bit set (Did not happen nonXA)
!    5) Icorporation of deferred CC into PSEUDOTERM
!
!! 17-05-88 Semaphoring added for dual nass PDS
!09-09-85..statistics gathering for auscom
!05-09-85..use tio in case mag tape off-line..sh
%INCLUDE "ercc07:ibmsup_comf370"
%INCLUDE "ercc07:ibmsup_page0f"
%INCLUDE "ercc07:ibmsup_dtform2s"
%INCLUDE "ercc07:IBMSUP_xaioform"
%RECORD %FORMAT PARMF(%INTEGER DEST,SRCE,(%INTEGER P1,P2,P3,P4,P5,P6 %OR %STRING (23) TEXT))
%RECORD %FORMAT PARMXF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6,LINK)
      %IF VA MODE=YES %START
      %CONST %RECORD (PARMXF) %ARRAY %NAME PARM=PARM0AD
      %FINISH %ELSE %START
!* %EXTERNALINTEGERSPEC parmad
      %OWN %RECORD (PARMXF) %ARRAY %NAME PARM

==== ercc07/xgen27cs.txt ====
!* modified 16/07/86
!*
%owninteger Report=0
%owninteger Decode
%owninteger Language
!*
%constinteger IMP      =  1
%constinteger FORTRAN  =  2
%constinteger CCOMP    = 11
%constinteger PASCAL   = 14
!*
!***********************************************************************
!* Exports                                                             *
!***********************************************************************
!*
%routinespec Einitialise(%integer Lang, Avertext, Astackca,
                                                    Aglaca, Options)
%routinespec Eterminate(%integer adareasizes)
%routinespec Ecommon(%integer area, %stringname Name)
%routinespec Eendcommon(%integer area, Length)
%routinespec Elinestart(%integer lineno)

==== ercc07/algtests_at17.txt ====
'BEGIN'
    'REAL'
        REAL,
        INTEGER,
        BEGIN,
        END;
    REAL := 0.0
'END'

==== ercc07/opt02s.txt ====
!
! Warning this module has the revised triples spec.
!
! In first attempt at Triple Imp considerable use was made of constant operands
! to pass information from Pass2 to GEN. Although for specialised operations like
! passing Labels this still applies, this adhocery has caused problems with arrays
! and pointers particularly in mapped records. The operands for four triples
! have thus been redefined in a more standard way.
!
! GETPTR    X1 is now (ptype of passed)<<16! DIMENSION
!           Opnd2 is either a 32 bit const with the size (ACC) as value or
!           the ptr or arrayhead as normal operand.
!
! VMY       X1 is now dim<<28!maxdim<<24!array name(where known)
!           Opnd2 is either a 32 bit const with DV offset into const area or
!           the arrayhead as a standard operand
!
! AINDX     X1 is ELSIZE<<20 !spare
!           Opnd2 is arrayhead as standard operand
!           NOTE:- The Operands have been swopped for consistency with norm.
!

==== ercc07/algtests_at18.txt ====
'BEGIN'
    'REAL'
        A,
        AB,
        ABC,
        ABCD,
        ABCDE,
        ABCDEF,
        ABCDEFG,
        ABCDEFGH,
        ABCDEFGHI,
        ABCDEFGHIJ,
        ABCDEFGHIJK,
        ABCDEFGHIJKL,
        ABCDEFGHIJKLM,
        ABCDEFGHIJKLMN,
        ABCDEFGHIJKLNMO,
        ABCDEFGHIJKLNMOP,
        ABCDEFGHIJKLMNOPQ,
        ABCDEFGHIJKLNMOPQR,
        ABCDEFGHIJKLMNOPQRS,

==== ercc07/gbits_gcodes8.txt ====
!*************************************************************************
!*                                                                       *
!*    Mnemonics for Gould code generator        Version 7    06/03/88    *
!*                                                                       *
!*************************************************************************
!*
!*
!*************************************************************************
!*                                                                       *
!*                                    NP1                                *
!*                                                                       *
!*************************************************************************
!*
%constinteger L      =   1 { RX }
%constinteger LBS    =   2 { RX }
%constinteger LN     =   3 { RX }
%constinteger ST     =   4 { RX }
%constinteger ZM     =   6 { RX }
%constinteger ADM    =   7 { RX }
%constinteger ARM    =   8 { RX }
%constinteger SUM    =   9 { RX }

==== ercc07/algtests_at19.txt ====
'BEGIN'
    'ARRAY'
        A(/1 : 3/),
        B(/1 : 3, 1 : 3/);
    'REAL' 'PROCEDURE' SUM(DIM, A);
        'VALUE'
            DIM;
        'INTEGER'
            DIM;
        'ARRAY'
            A;
        SUM :=
            'IF' DIM = 1 'THEN'
                A(/1/)+ A(/2/)+ A(/3/)
            'ELSE'
                SUM2(A);
    'REAL' 'PROCEDURE' SUM2(A);
        'ARRAY'
            A;
        SUM2 := A(/1, 1/)+ A(/1, 2/)+ A(/1, 3/)+ A(/2, 1/)+ A(/2, 2/)+
            A(/2, 3/)+ A(/3, 1/)+ A(/3, 2/)+ A(/3, 3/);

==== ercc07/emaslink2.txt ====
LINK
EP1Y
EP22Y
EOPT2Y
EGEN2Y
CSERV01Y
.END
P0Y
MODIFY P0Y
SATISFY REFS
.ALL
SATISFY DATA
.ALL
SUPPRESS
.ALL
RETAIN
ICL9CEZIOPT
SUPPRESS DATA
.ALL
CLOSE
NEWGEN P0Y,IOPT02Y

==== ercc07/algtests_at20.txt ====
'BEGIN'
    'INTEGER''ARRAY'
        A(/1 : 3/),
        B(/1 : 3, 1 : 3/);
     'PROCEDURE' SUM(DIM, A);
        'VALUE'
            DIM;
        'INTEGER'
            DIM;
        'INTEGER''ARRAY'
            A;
        SUM :=
            'IF' DIM = 1 'THEN'
                A(/1/)+ A(/2/)+ A(/3/)
            'ELSE'
                SUM2(A);
     'PROCEDURE' SUM2(A);
        'INTEGER''ARRAY'
            A;
        SUM2 := A(/1, 1/)+ A(/1, 2/)+ A(/1, 3/)+ A(/2, 1/)+ A(/2, 2/)+
            A(/2, 3/)+ A(/3, 1/)+ A(/3, 2/)+ A(/3, 3/);

==== ercc07/algtests_at21.txt ====
'BEGIN'
    'ARRAY'
        A(/1 : 3/),
        B(/1 : 3, 1 : 3/);
    'REAL' 'PROCEDURE' SUM(DIM, A);
        'VALUE'
            DIM;
        'INTEGER'
            DIM;
        'ARRAY'
            A;
        SUM :=
            'IF' DIM = 1 'THEN'
                (A(/1/)+ A(/2/)+ A(/3/))
            'ELSE'
                (A(/1, 1/)+ A(/1, 2/)+ A(/1, 3/)+ A(/2, 1/)+ A(/2, 2/)
                    + A(/2, 3/)+ A(/3, 1/)+ A(/3, 2/)+ A(/3, 3/));
    'INTEGER'
        I,
        J;
    'FOR' I := 1,

==== ercc07/trimp_ibmoptas.txt ====
%INCLUDE "ERCC07.TRIMP_HOSTCODES"
%CONSTINTEGER HOST=EMAS
%CONSTINTEGER TARGET=IBMXA

==== ercc07/algtests_at22.txt ====
'BEGIN'
    'PROCEDURE' RECURSIVE(LEVEL, L);
        'VALUE'
            LEVEL;
        'INTEGER'
            LEVEL;
        'LABEL'
            L;
        'BEGIN'
        'IF' LEVEL # 0 'THEN'
            RECURSIVE(LEVEL - 1, EXIT)
        'ELSE'
            'GOTO' L;
       EXIT :;
        OUTREAL(99,LEVEL)
        'END';
    RECURSIVE(10, EXIT);
   EXIT :;
'END'

==== ercc07/makedrs_p1.txt ====
offer dp1s
edit poneb02s,dp1s
i<itrimp_drsponeas>
ta/%inc/
d1i<itrimp_hostcodes>
a'
d1i<itrimp_tform2s>
m/%constlonglongreal/
ta/host=/r6i/DRS/
e
imp dp1s,.null
transfer dp1s,castle(ercc07,pete)impdir/sources/d386p1s10.i,file

==== ercc07/algtests_at23.txt ====
'BEGIN'
    'INTEGER'
        I;
    'BOOLEAN'
        B;
    'PROCEDURE' LABELBYVALUE(L);
        'VALUE'
            L;
        'LABEL'
            L;
        ;
    'PROCEDURE' LABELBYNAME(L);
        'LABEL'
            L;
        'BEGIN'
        I := 1;
        'IF' B 'THEN'
            'GOTO' L
        'END';
    'SWITCH' S :=
        L1,

==== ercc07/makedrs_p2.txt ====
edit timp04s,dp2s
i<itrimp_drsptwoas>
ta/%inc/
d1i<itrimp_hostcodes>
a'
d1i<tripcnsts>
a'
d1i<itrimp_tform2s>
ta/host=/r6i/DRS/
e
parm nocheck,nolist
imp dp2s,.null
transfer dp2s,castle(ercc07,pete)impdir/sources/d386p2s11.i,file


==== ercc07/algtests_at24.txt ====
'BEGIN'
    'ARRAY'
        A(/1 : 9/);
    'INTEGER'
        I,
        S;
    'PROCEDURE' DUMMY(A);
        'VALUE'
            A;
        'ARRAY'
            A;
        SUM(A);
    'PROCEDURE' SUM(A);
        'ARRAY'
            A;
        'FOR' I := 1 'STEP' 1 'UNTIL' 9 'DO'
            'BEGIN'
            S := S + A(/I/);
            A(/I/):= 0
            'END';
    S := 0;

==== ercc07/algtests_at25.txt ====
'BEGIN'
    'REAL'
        X,
        Y;
    'INTEGER'
        I;
    'FOR' X := &6,
        &+6,
        &-6,
        .6,
        6,
        6.6,
        .6&6,
        .6&+6,
        .6&-6,
        6&6,
        6&+6,
        6&-6,
        6.6&6,
        6.6&+6,
        6.6&-6 'DO'

==== ercc07/vaxcom_ilinkd.txt ====
$ link/debug 'p1',i,penv,fortout,vndiag,sys$input/opt
sys$share:vaxcrtl.exe/share

==== ercc07/algtests_at26.txt ====
'BEGIN'
    'PROCEDURE' P(L);
        'INTEGER'
            L;
       L : 'BEGIN'
        'REAL'
            A;
        'GOTO' L;
       L :;
        'GOTO' LL
        'END';
    P(1);
   LL :;
'END'

==== ercc07/xgen27ds.txt ====
!* modified 16/07/86
!*
%owninteger Report=0
%owninteger Decode
%owninteger Language
!*
%constinteger IMP      =  1
%constinteger FORTRAN  =  2
%constinteger CCOMP    = 11
%constinteger PASCAL   = 14
!*
!***********************************************************************
!* Exports                                                             *
!***********************************************************************
!*
%routinespec Einitialise(%integer Lang, Avertext, Astackca,
                                                    Aglaca, Options)
%routinespec Eterminate(%integer adareasizes)
%routinespec Ecommon(%integer area, %stringname Name)
%routinespec Eendcommon(%integer area, Length)
%routinespec Elinestart(%integer lineno)

==== ercc07/algtests_at27.txt ====
'BEGIN'
    'INTEGER'
        S;
    'PROCEDURE' P(F, G);
        'PROCEDURE'
            F,
            G;
        'BEGIN'
        'INTEGER'
            X;
        'PROCEDURE' R;
            'BEGIN'
            OUTREAL(99, S);
            OUTREAL(99, X)
            'END';
        S := S + 1;
        X := S;
        'IF' S = 1 'THEN'
            P(F, R)
        'ELSE'
            F(G, R)

==== ercc07/opt03s.txt ====
!
! Warning this module has the revised triples spec.
!
! In first attempt at Triple Imp considerable use was made of constant operands
! to pass information from Pass2 to GEN. Although for specialised operations like
! passing Labels this still applies, this adhocery has caused problems with arrays
! and pointers particularly in mapped records. The operands for four triples
! have thus been redefined in a more standard way.
!
! GETPTR    X1 is now (ptype of passed)<<16! DIMENSION
!           Opnd2 is either a 32 bit const with the size (ACC) as value or
!           the ptr or arrayhead as normal operand.
!
! VMY       X1 is now dim<<28!maxdim<<24!array name(where known)
!           Opnd2 is either a 32 bit const with DV offset into const area or
!           the arrayhead as a standard operand
!
! AINDX     X1 is ELSIZE<<20 !spare
!           Opnd2 is arrayhead as standard operand
!           NOTE:- The Operands have been swopped for consistency with norm.
!

==== ercc07/algtests_at28.txt ====
'BEGIN'
    'INTEGER'
        N1,
        N2;
    'PROCEDURE' DUMMY;
        ;
    'PROCEDURE' P(X, L);
        'VALUE'
            X;
        'INTEGER'
            X;
        'PROCEDURE'
            L;
        'BEGIN'
        'PROCEDURE' GOTOL1;
            'GOTO' L1;
        'IF' X = N1 'THEN'
            P(X - 1, GOTOL1)
        'ELSE'
'IF' X = N2 'THEN'
            L

==== ercc07/trimp_drslink.txt ====
LINK
ERCC07.P1Y
ERCC07.DP2Y
ERCC07.DOPTY
ERCC07.DGENY
ERCC07.CSERV01Y
ERCS02.DRS_EPUTY
.END
P0Y
MODIFY P0Y
SATISFY REFS
.ALL
SATISFY DATA
.ALL
SUPPRESS
.ALL
RETAIN
PGENERATEDRSOBJECT,ICL9CEZDRSIMP
SUPPRESS DATA
.ALL
CLOSE

==== ercc07/algtests_at29.txt ====
'BEGIN'
    'INTEGER'
        S;
    'PROCEDURE' P(F, G);
        'PROCEDURE'
            F,
            G;'COMMENT'(X,Y):'PROCEDURE' X,Y;
        'BEGIN'
        'INTEGER'
            X;
        'PROCEDURE' R(F, G);
        'PROCEDURE' F, G;'COMMENT'(X,Y):'PROCEDURE' X,Y;
            'BEGIN'
            OUTREAL(99, S);
            OUTREAL(99, X)
            'END';
        S := S + 1;
        X := S;
        'IF' S = 1 'THEN'
            P(F, R)
        'ELSE'

==== ercc07/algtests_at30.txt ====
'BEGIN'
    'INTEGER'
        N1,
        N2;
    'PROCEDURE' P(X, L);
        'VALUE'
            X;
        'INTEGER'
            X;
        'LABEL'
            L;
        'BEGIN'
        'IF' X = N1 'THEN'
            P(X - 1, L1)
        'ELSE' 'IF' X = N2 'THEN'
            'GOTO' L
        'ELSE'
            P(X - 1, L);
        L1 :;
                OUTREAL(99, X)
        'END' P;

==== ercc07/algtests_at31.txt ====
'BEGIN'
    'INTEGER'
        I,
        J;
    I := J := 0;
    I :=
        'IF' I = 0 'THEN'
                'IF' J = 0 'THEN'
                    1
                'ELSE'
                    2
        'ELSE'
            3;
    'IF' I = 1 'THEN'
        'IF' J = 0 'THEN'
            J := 2
        'ELSE'
            J := 3
        'ELSE'
            J := 4;
    OUTREAL(99, I);

==== ercc07/algtests_at32.txt ====
'BEGIN'
    'INTEGER'
        I;
    'REAL'
        X;
    'PROCEDURE' ASS(X, I);
        'REAL'
            X;
        'INTEGER'
            I;
        'IF' I < 0 'THEN'
            X := I + 3
        'ELSE'
            I := 2.0 * X;
    ASS(X, - 1);
    I := 2;
    ASS(X, I);
    ASS(I, I);
    ASS(I, X);
    OUTREAL(99, I);
    OUTREAL(99, X)

==== ercc07/algtests_at33.txt ====
'BEGIN'
    'PROCEDURE' A0;
        'BEGIN'
        'PROCEDURE' A1;
            'BEGIN'
            'PROCEDURE' A2;
                'BEGIN'
                'PROCEDURE' A3;
                    'BEGIN'
                    'PROCEDURE' A4;
                        'BEGIN'
                        'PROCEDURE' A5;
                            'BEGIN'
                            'END';
                        ;
                        'END';
                    ;'END';
                ;'END';
            ;'END';
        ;'END';
    ;'END'

==== ercc07/makepas.txt ====
edit ercs12:psource.main5s,totals
m/main program/m0
i<ercs12:psource.options8s>
i<ercs12:psource.source6s>
i<ercs12:psource.diags6s>
i<ercs12:psource.lexical4s>
i<ercs12:psource.syntax1s>
i<ercs12:psource.semantics8s>
i<ercs12:psource.analyser11s>
i<ercs12:psource.generator4s>
i<ercs12:psource.datareps9s>
i<ercs12:psource.storage15s>
i<ercs12:psource.objvalue10s>
i<ercs12:psource.blocks18s>
i<ercs12:psource.varref10s>
i<ercs12:psource.expeval11s>
i<ercs12:psource.codeutil23s>
i<ercs12:psource.assgncode6s>
i<ercs12:psource.withstmts2s>
i<ercs12:psource.stdprocs9s>
i<ercs12:psource.ctlstruc10s>

==== ercc07/powers.txt ====
%constinteger powerll=-78
! from ibm assembler which claims to evaluate exactly and round to 128 bits
%CONSTLONGLONGREALARRAY    POWERS (-78:75)=                  %C
       {Ten to the -78}           R'001DA48CE468E7C772026520247D3556' ,
       {Ten to the -77}           R'011286D80EC190DC73617F3416CE4156' ,
       {Ten to the -76}           R'01B94470938FA89B73CEF808E40E8D5B' ,
       {Ten to the -75}           R'0273CAC65C39C96174615B058E891859' ,
       {Ten to the -74}           R'03485EBBF9A41DDC75DCD8E37915AF38' ,
       {Ten to the -73}           R'042D3B357C0692AA760A078E2BAD8D83' ,
       {Ten to the -72}           R'051C45016D841BAA774644B8DB4C7872' ,
       {Ten to the -71}           R'0611AB20E472914A786BEAF3890FCB47' ,
       {Ten to the -70}           R'06B0AF48EC79ACE878372D835A9DF0C7' ,
       {Ten to the -69}           R'076E6D8D93CC0C1179227C7218A2B67C' ,
       {Ten to the -68}           R'084504787C5F878A7AB58DC74F65B20E' ,
       {Ten to the -67}           R'092B22CB4DBBB4B67BB1789C919F8F49' ,
       {Ten to the -66}           R'0A1AF5BF109550F27C2EEB61DB03B98D' ,
       {Ten to the -65}           R'0B10D9976A5D52977D5D531D28E253F8' ,
       {Ten to the -64}           R'0BA87FEA27A539E97DA53F2398D747B3' ,
       {Ten to the -63}           R'0C694FF258C744327E0747763F868CD0' ,
       {Ten to the -62}           R'0D41D1F7777C8A9F7F448CA9E7B41802' ,
       {Ten to the -61}           R'0E29233AAAADD6A3008AD7EA30D08F01' ,

==== ercc07/algtests_at34.txt ====
'BEGIN' 'REAL' A;
 'BEGIN' 'REAL' A;
  'BEGIN' 'REAL' A;
   'BEGIN' 'REAL' A;
    'BEGIN' 'REAL' A;
     'BEGIN' 'REAL' A;
      'BEGIN' 'REAL' A;
       'BEGIN' 'REAL' A;
        'BEGIN' 'REAL' A;
         'BEGIN' 'REAL' A;
          'BEGIN' 'REAL' A;
           'BEGIN' 'REAL' A;
            'BEGIN' 'REAL' A;
             'BEGIN' 'REAL' A;
              'BEGIN' 'REAL' A;
              'END'
             'END'
            'END'
           'END'
          'END'
         'END'

==== ercc07/vaxput1s.txt ====
!*****************************
!*                           *
!*   Vax VMS PUT INTERFACE   *
!*                           *
!*****************************

!
! Put interface for VAX VMS copyright P.D.Stephens
!
! The problem of a put for VMS is dominated by two problems
!    1) The horrendous object module format which must be tholed
!    2) The jumps which can be short or long PC relative or absolute
!       with the horrid proviso that even the long jump may not reach
!       and absolute jumps are unconditional. Thus put has to
!       be prepared to change jumps to jumps around a long jump.
!
! Outline of a solution
! Code and data is recieved in fragments and built up in areas as images
! The areas are as defined by EMAS and apart from code built up as images
! in space obtained by malloc or eqivalent. The areas start small and are
! expanded if required.

==== ercc07/algtests_at35.txt ====
'BEGIN'
    'REAL'
        A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12,
        A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24,
        A25, A26, A27, A28, A29, A30, A31, A32, A33, A34, A35, A36,
        A37, A38, A39, A40, A41, A42, A43, A44, A45, A46, A47,
        A48, A49, A50, A51, A52, A53, A54, A55, A56, A57, A58,
        A59, A60, A61, A62, A63, A64, A65, A66, A67, A68, A69,
        A70, A71, A72, A73, A74, A75, A76, A77, A78, A79, A80,
        A81, A82, A83, A84, A85, A86, A87, A88, A89, A90, A91,
        A92, A93, A94, A95, A96, A97, A98, A99, A100, A101,
        A102, A103, A104, A105, A106, A107, A108, A109, A110,
        A111, A112, A113, A114, A115, A116, A117, A118, A119,
        A120, A121, A122, A123, A124, A125, A126, A127, A128,
        A129, A130, A131, A132, A133, A134, A135, A136, A137,
        A138, A139, A140, A141, A142, A143, A144, A145, A146,
        A147, A148, A149, A150, A151, A152, A153, A154, A155,
        A156, A157, A158, A159, A160, A161, A162, A163, A164,
        A165, A166, A167, A168, A169, A170, A171, A172, A173,
        A174, A175, A176, A177, A178, A179, A180, A181, A182,
        A183, A184, A185, A186, A187, A188, A189, A190, A191,

==== ercc07/algtests_at36.txt ====
SIN: COS:
'BEGIN'
    'REAL' SIN;
        SIN := 0.0
'END'

==== ercc07/trimp_ibmptwoas.txt ====
%EXTERNALROUTINE ICL9CEZIBMIMP
%CONSTINTEGER RELEASE=4
%INCLUDE "ERCC07.TRIMP_HOSTCODES"
%CONSTINTEGER HOST=EMAS
%CONSTINTEGER TARGET=IBMXA
%CONSTINTEGER STANDARDPT=X'51'
%CONSTINTEGER MINAPT=X'51';             ! MINIMUM PTYPE FOR WHICH ARITHMETIC
                                        ! OPERATORS ARE AVAILABLE
%CONSTINTEGER MINAPREC=MINAPT>>4
%CONSTHALFINTEGERARRAY TYPEFLAG(0:12)=0,
                                        X'51'{%INTEGER},
                                        X'52'{%REAL},
                                        X'8009'{%LONG SOMETHING},
                                        X'4031'{%BYTE},
                                        X'35'{%STRING},
                                        X'6051'{%HALF->%INTEGER+WARNING},
                                        X'4041'{%SHORT->%SHORTINTEGER},
                                        X'33'{%RECORD},
                                        0,
                                        X'61'{%LONG INTEGER},
                                        X'62'{%LONG REAL},

==== ercc07/docs_mar83.txt ====
                              EMAS System
                              ===========

     The main changes to the software have concerned DAP scheduling;  however, a
new  Director  which  supports  multiple file indexes per user has been put into
service.   This is currently inaccessible until a subsystem which accesses these
features is available.   A distressing amount of skilled time has disappeared in
investigating curious faults in the service.  Many symptoms have been tracked to
OCP3 executing conditional branches incorrectly about 1 time in 10**9.  However,
with the reduced level of engineering cover and fewer OCP specialists around too
much effort here has fallen on software people.

     The discussions at Bush83 were encouraging,  particularly the near  support
for  an  advanced  user interface;   a collection of bad features in the present
system has been compiled together with a large  number  of  possible  ideas  and
improvements.    Contacts  with UKC have proved helpful but producing a coherent
design from the very large kit of parts  is  difficult.    Enough  material  for
several  subsystems  is  available  and many good ideas will perforce have to be
rejected.

     Further rounds of discussions have taken place with ICL about their  future

==== ercc07/make386_opt.txt ====
offer d386pos
edit opt03s,d386pos
i<itrimp_drsoptas>
ta/%inc/
d1i<itrimp_hostcodes>
a'
d1i<itrimp_tform2s>
a'
d1i<tripcnsts>
e
imp d386pos,.null
offer d386pos,zepz06

==== ercc07/xgen27es.txt ====
!* modified 16/07/86
!*
%owninteger Report=0
%owninteger Decode
%owninteger Language
!*
%constinteger IMP      =  1
%constinteger FORTRAN  =  2
%constinteger CCOMP    = 11
%constinteger PASCAL   = 14
!*
!***********************************************************************
!* Exports                                                             *
!***********************************************************************
!*
%routinespec Einitialise(%integer Lang, Avertext, Astackca,
                                                    Aglaca, Options)
%routinespec Eterminate(%integer adareasizes)
%routinespec Ecommon(%integer area, %stringname Name)
%routinespec Eendcommon(%integer area, Length)
%routinespec Elinestart(%integer lineno)

==== ercc07/algtests_at37.txt ====
'BEGIN'
 'INTEGER'
  A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11;
 'INTEGER'
  SUM;
 SUM := 0;
 'FOR' A0 := 1,2 'DO' 'BEGIN' SUM := SUM + 1;
  'FOR' A1 := 1,2 'DO' 'BEGIN' SUM := SUM + 1;
   'FOR' A2 := 1,2 'DO' 'BEGIN' SUM := SUM + 1;
    'FOR' A3 := 1,2 'DO' 'BEGIN' SUM := SUM + 1;
     'FOR' A4 := 1,2 'DO' 'BEGIN' SUM := SUM + 1;
      'FOR' A5 := 1,2 'DO' 'BEGIN' SUM := SUM + 1;
       'FOR' A6 := 1,2 'DO' 'BEGIN' SUM := SUM + 1;
        'FOR' A7 := 1,2 'DO' 'BEGIN' SUM := SUM + 1;
         'FOR' A8 := 1,2 'DO' 'BEGIN' SUM := SUM + 1;
          'FOR' A9 := 1,2 'DO' 'BEGIN' SUM := SUM + 1;
           'FOR' A10 := 1,2 'DO' 'BEGIN' SUM := SUM + 1;
            'FOR' A11 := 1,2 'DO' 'BEGIN' SUM := SUM + 1;
             'END'
            'END'
           'END'

==== ercc07/opt04s.txt ====
!
! 25Sep90   Correction to base adjust array in ctop which was wrong
!
!
! Warning this module has the revised triples spec.
!
! In first attempt at Triple Imp considerable use was made of constant operands
! to pass information from Pass2 to GEN. Although for specialised operations like
! passing Labels this still applies, this adhocery has caused problems with arrays
! and pointers particularly in mapped records. The operands for four triples
! have thus been redefined in a more standard way.
!
! GETPTR    X1 is now (ptype of passed)<<16! DIMENSION
!           Opnd2 is either a 32 bit const with the size (ACC) as value or
!           the ptr or arrayhead as normal operand.
!
! VMY       X1 is now dim<<28!maxdim<<24!array name(where known)
!           Opnd2 is either a 32 bit const with DV offset into const area or
!           the arrayhead as a standard operand
!
! AINDX     X1 is ELSIZE<<20 !spare

==== ercc07/algtests_at38.txt ====
'BEGIN'
 'INTEGER'
  I,
  J,
  SUM;
 I := 1;
 J := 2;
 SUM := 0;
 'IF' I > J 'THEN''BEGIN'
  'END' 'ELSE' 'BEGIN' SUM := SUM + 1;
  'IF' I > J 'THEN''BEGIN'
   'END' 'ELSE' 'BEGIN' SUM := SUM + 1;
   'IF' I > J 'THEN''BEGIN'
    'END' 'ELSE' 'BEGIN' SUM := SUM + 1;
    'IF' I > J 'THEN''BEGIN'
     'END' 'ELSE' 'BEGIN' SUM := SUM + 1;
     'IF' I > J 'THEN''BEGIN'
      'END' 'ELSE' 'BEGIN' SUM := SUM + 1;
      'IF' I > J 'THEN''BEGIN'
       'END' 'ELSE' 'BEGIN' SUM := SUM + 1;
       'IF' I > J 'THEN''BEGIN'

==== ercc07/algtests_at39.txt ====
'BEGIN'
    'INTEGER'
        I,
        J,
    SUM;
    I := 1;
    J := 2;
    SUM := 1 + ('IF' I > J 'THEN'0 'ELSE' ('IF' I > J 'THEN'0 'ELSE'
        ('IF' I > J 'THEN'0 'ELSE' ('IF' I > J 'THEN'0 'ELSE' ('IF' I
        > J 'THEN'0 'ELSE' ('IF' I > J 'THEN'0 'ELSE' ('IF' I > J
        'THEN'0 'ELSE' ('IF' I > J 'THEN'0 'ELSE' ('IF' I > J 'THEN'
        0 'ELSE' 1)))))))));
    OUTREAL(99, SUM);
'END'

==== ercc07/algtests_at40.txt ====
'BEGIN'
    'SWITCH' SS :=
        A0, A1, A2, A3, A4, A5, A6, A7, A8, A9,
        A10, A11, A12, A13, A14, A15, A16, A17, A18, A19,
        A20, A21, A22, A23, A24, A25, A26, A27, A28, A29,
        A30, A31, A32, A33, A34, A35, A36, A37, A38, A39,
        A40, A41, A42, A43, A44, A45, A46, A47, A48, A49,
        A50, A51, A52, A53, A54, A55, A56, A57, A58, A59,
        A60, A61, A62, A63, A64, A65, A66, A67, A68, A69,
        A70, A71, A72, A73, A74, A75, A76, A77, A78, A79,
        A80, A81, A82, A83, A84, A85, A86, A87, A88, A89,
        A90, A91, A92, A93, A94, A95, A96, A97, A98, A99,
        A100, A101, A102, A103, A104, A105, A106, A107, A108, A109,
        A110, A111, A112, A113, A114, A115, A116, A117, A118, A119,
        A120, A121, A122, A123, A124, A125, A126, A127, A128, A129,
        A130, A131, A132, A133, A134, A135, A136, A137, A138, A139,
        A140, A141, A142, A143, A144, A145, A146, A147, A148, A149,
        A150, A151, A152, A153, A154, A155, A156, A157, A158, A159,
        A160, A161, A162, A163, A164, A165, A166, A167, A168, A169,
        A170, A171, A172, A173, A174, A175, A176, A177, A178, A179,
        A180, A181, A182, A183, A184, A185, A186, A187, A188, A189,

==== ercc07/pdriver14s.txt ====
{****************************************************************************}
{                                                                            }
{                   System dependent routines.                               }
{                                                                            }
{****************************************************************************}

%externalstring(255)%fnspec uinfs %alias "S#UINFS"(%integer n)
%EXTERNAL %ROUTINE %SPEC Define %ALIAS "S#DEFINE"(%INTEGER channel,
   %STRING (255) File, %INTEGER %NAME Afd,Flag)
%externalintegerfnspec IOCP %alias "S#IOCP"(%integer ep,adr)
%EXTERNAL %INTEGER %MAP %SPEC ComReg %ALIAS "S#COMREGMAP"(%INTEGER N)
%EXTERNAL %ROUTINE %SPEC ICLpascalcompiler
%ROUTINE %SPEC InitialiseCompiler
%EXTERNAL %ROUTINE %SPEC EMAS3ClaimChannel(%INTEGER %NAME Chan)
%EXTERNAL %ROUTINE %SPEC Eproc(%STRING %NAME Name, %INTEGER Prop,Numpars,
   Paramsize,Astacklen, %INTEGER %NAME Id)
%EXTERNAL %ROUTINE %SPEC Eentry(%INTEGER Index,Numpars,ParamSize,LocalSize,
   DiagDisp, %STRING %NAME Name)
%EXTERNAL %INTEGER %FN %SPEC Exname(%INTEGER Type, %STRING %NAME Xref)
%EXTERNAL %ROUTINE %SPEC Edataentry(%INTEGER Area,Offset,Length,
   %STRING %NAME Name)

==== ercc07/algtests_at41.txt ====
'BEGIN'
    'INTEGER' 'PROCEDURE' P(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9,
        A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20,
        A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31,
        A32, A33, A34, A35, A36, A37, A38, A39, A40, A41, A42,
        A43, A44, A45, A46, A47, A48, A49, A50, A51, A52, A53,
        A54, A55, A56, A57, A58, A59);
        'VALUE'
            A0, A1, A2, A3, A4, A5, A6, A7, A8, A9,
            A10, A11, A12, A13, A14, A15, A16, A17, A18, A19,
            A20, A21, A22, A23, A24, A25, A26, A27, A28, A29,
            A30, A31, A32, A33, A34, A35, A36, A37, A38, A39,
            A40, A41, A42, A43, A44, A45, A46, A47, A48, A49,
            A50, A51, A52, A53, A54, A55, A56, A57, A58, A59;
        'INTEGER'
            A0, A1, A2, A3, A4, A5, A6, A7, A8, A9,
            A10, A11, A12, A13, A14, A15, A16, A17, A18, A19,
            A20, A21, A22, A23, A24, A25, A26, A27, A28, A29,
            A30, A31, A32, A33, A34, A35, A36, A37, A38, A39,
            A40, A41, A42, A43, A44, A45, A46, A47, A48, A49,
            A50, A51, A52, A53, A54, A55, A56, A57, A58, A59;

==== ercc07/docs_emasprot.txt ====
@h(Protection in EMAS 2900)


[This document is in the form of an addendum to Reference 1.]

   2900 Architecture provides a variety of methods to enable an operating system
to maintain its own integrity.

   a) @b(Privilege).   A bit in the PSW is required to execute
      privileged instructions.

   b) @b(Activate).    A privileged instruction to start executing
      a less trusted program at a lower ACR level and on a new
      stack.

   c) @b(Out).   An instruction exactly comparable to the IBM @b(SVC).
      Enables an untrusted program to return to Supervisor in a
      controlled and secure way.

   d) @b(ACR levels).   Four bits in the @b(PSW) define the @b("Access)
      @b(Control") status of the running program.   All store accesses

==== ercc07/algtests_at42.txt ====
'BEGIN'
    'ARRAY'
        A(/1 : 2, 1 : 2, 1 : 2, 1 : 2, 1 : 2, 1 : 2, 1 : 2, 1 :
            2, 1 : 2, 1 : 2, 1 : 2, 1 : 2/);
    A(/1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1/):= 1.0;
    OUTREAL(99, A(/1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1/));
'END'

==== ercc07/algtests_at43.txt ====
'BEGIN'
    'REAL'
        A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14;
    'REAL'
        SUM;
    A0 := 1.0;  A1 := 1.0;  A2 := 1.0;
    A3 := 1.0;  A4 := 1.0;  A5 := 1.0;
    A6 := 1.0;  A7 := 1.0;  A8 := 1.0;
    A9 := 1.0;  A10 := 1.0;  A11 := 1.0;
    A12 := 1.0;  A13 := 1.0;  A14 := 1.0;
    SUM := A0 + (A1 + (A2 + (A3 + (A4 + (A5 + (A6 + (A7 + (A8 + (A9
        + (A10 + (A11 + (A12 + (A13 + (A14))))))))))))));
    OUTREAL(99, SUM);
'END'

==== ercc07/algtests_at44.txt ====
'BEGIN'
    'REAL'
        A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14;
    'REAL'
        SUM;
    A0 := 1.0;  A1 := 1.0;  A2 := 1.0;
    A3 := 1.0;  A4 := 1.0;  A5 := 1.0;
    A6 := 1.0;  A7 := 1.0;  A8 := 1.0;
    A9 := 1.0;  A10 := 1.0;  A11 := 1.0;
    A12 := 1.0;  A13 := 1.0;  A14 := 1.0;
    SUM := 2.0 * A0 + .5 * (2.0 * A1 + .5 * (2.0 * A2 + .5 * (2.0
        * A3 + .5 * (2.0 * A4 + .5 * (2.0 * A5 + .5 * (2.0 * A6
        + .5 * (2.0 * A7 + .5 * (2.0 * A8 + .5 * (2.0 * A9 + .5
        * (2.0 * A10 + .5 * (2.0 * A11 + .5 * (2.0 * A12 + .5 *
        (2.0 * A13 + .5 * (A14))))))))))))));
    OUTREAL(99, SUM);
'END'

==== ercc07/vaxput2s.txt ====
!*****************************
!*                           *
!*   Vax VMS PUT INTERFACE   *
!*                           *
!*****************************

!
! Put interface for VAX VMS copyright P.D.Stephens
!
! The problem of a put for VMS is dominated by two problems
!    1) The horrendous object module format which must be tholed
!    2) The jumps which can be short or long PC relative or absolute
!       with the horrid proviso that even the long jump may not reach
!       and absolute jumps are unconditional. Thus put has to
!       be prepared to change jumps to jumps around a long jump.
!
! Outline of a solution
! Code and data is recieved in fragments and built up in areas as images
! The areas are as defined by EMAS and apart from code built up as images
! in space obtained by malloc or eqivalent. The areas start small and are
! expanded if required.

==== ercc07/algtests_at45.txt ====
'BEGIN'
    'REAL'
        X;
    X := 8.4;
    OUTREAL(99,
        SQRT(SQRT(SQRT(SQRT(SQRT(SQRT(SQRT(SQRT(SQRT(X^9)))))))))
        );
'END'

==== ercc07/algtests_at46.txt ====
'BEGIN'
    'INTEGER'
        I,
        J;
    I := 1;
    J := 2;
    L1 :;
    'GOTO'
        'IF' I > J 'THEN'L1
        'ELSE' 'IF' I > J 'THEN'L1
        'ELSE' 'IF' I > J 'THEN'L1
        'ELSE' 'IF' I > J 'THEN'L1
        'ELSE' 'IF' I > J 'THEN'L1
        'ELSE' 'IF' I > J 'THEN'
            L1
        'ELSE'
            L2;
    L2 :;
'END'

==== ercc07/algtests_at47.txt ====
'BEGIN'
    A0 :; A1 :; A2 :; A3 :; A4 :; A5 :;
'END'

==== ercc07/algtests_at48.txt ====
'BEGIN'
  'INTEGER'
    SUM;
  SUM := 0;
  'BEGIN' SUM := SUM + 1;
    'BEGIN' SUM := SUM + 1;
      'BEGIN' SUM := SUM + 1;
        'BEGIN' SUM := SUM + 1;
          'BEGIN' SUM := SUM + 1;
            'BEGIN' SUM := SUM + 1;
              'BEGIN' SUM := SUM + 1;
                'BEGIN' SUM := SUM + 1;
                  'BEGIN' SUM := SUM + 1;
                    'BEGIN' SUM := SUM + 1;
                      'BEGIN' SUM := SUM + 1;
                        'BEGIN' SUM := SUM + 1;
                          'BEGIN' SUM := SUM + 1;
                            'BEGIN' SUM := SUM + 1;
                              'BEGIN' SUM := SUM + 1;
                                'BEGIN' SUM := SUM + 1;
                                  'BEGIN' SUM := SUM + 1;

==== ercc07/algtests_at49.txt ====
'BEGIN'
    'REAL'
        A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14;
    A0 := A1 := A2 := A3 := A4 := A5 := A6 := A7 := A8 :=
        A9 := A10 := A11 := A12 := A13 := A14 := 1.0;
    OUTREAL(99, A0 + A1 + A2 + A3 + A4 + A5 + A6 + A7 + A8 + A9 + A10
        + A11 + A12 + A13 + A14);
'END'

==== ercc07/docs_divfac.txt ====

Divinity Faculty

Current computing in divinity is text orientated and heavily influenced by
the need to have English Hebrew and Greek in the same document or even ion the
same page. This requires highly specialized word processing which is mainly
performed on IBM PCs.

a) Computing in Research

In addition to word processing there is considerable
concordance, searching and statistical analysis performed on ancient texts. Some of
these are held on EMAS others on the IBYCUS micro with local CD rom. There is
also continuing use of electronic mail for co-operation both in the UK
and world wide.

b) Computer in teaching

There is a trial project to assist students learning Greek Grammar by a question
and answer technique that has been devised locally. Students also have access
to a version of the Greek New Testament where every word has been grammatically

==== ercc07/algtests_at50.txt ====
'BEGIN'
    'INTEGER'
        I,
        SUM;
    SUM := 0;
    'FOR' I := 1,  I + 1,  I + 1,  I + 1,  I + 1,  I + 1,
        I + 1,  I + 1,  I + 1,  I + 1,  I + 1,  I + 1,
        I + 1,  I + 1,  I + 1,  I + 1,  I + 1,  I + 1,
        I + 1,  I + 1,  I + 1,  I + 1,  I + 1,  I + 1,
        I + 1,  I + 1,  I + 1,  I + 1,  I + 1,  I + 1,
        I + 1,  I + 1,  I + 1,  I + 1,  I + 1,  I + 1,
        I + 1,  I + 1,  I + 1,  I + 1,  I + 1,  I + 1,
        I + 1,  I + 1,  I + 1,  I + 1,  I + 1,  I + 1,
        I + 1,  I + 1,  I + 1,  I + 1,  I + 1,  I + 1,
        I + 1,  I + 1,  I + 1,  I + 1,  I + 1,  I + 1 'DO'
        SUM := SUM + I;
    OUTREAL(99, SUM);
'END'

==== ercc07/docs_may85.txt ====

                       Central Systems Group

     Although the impression seems to be around that the sole raison  d'etre  of
CSG  is  to  write  ever more sophisticated operating systems,   it is the other
activities that absorbed most effort this term.

     1) The Filestore is receiving substantial software  effort  in  preparation
     for direct attachment to the CPSE.  This involves a change of communication
     protocols from NSI to X25.

     2) The 2976 has had a spate of crashes due primarily to faults in the  DAPs
     when acting as store.   DAP store appears to go incommunicado after certain
     hardware faults unlike normal store.   To  live  through  such  faults  the
     Supervisor  has  been altered to ensure all vital pages are kept out of DAP
     store and EMAS now runs through DAP multibit failures.

     3) The 2988 is about to move to Kings Buildings and share peripherals  with
     the 2976.  The changes needed to device driving and archiving strategies to
     accommodate shared peripherals are being evaluated.


==== ercc07/pdriver15s.txt ====
{****************************************************************************}
{                                                                            }
{                   System dependent routines.                               }
{                                                                            }
{****************************************************************************}

%externalstring(255)%fnspec uinfs %alias "S#UINFS"(%integer n)
%EXTERNAL %ROUTINE %SPEC Define %ALIAS "S#DEFINE"(%INTEGER channel,
   %STRING (255) File, %INTEGER %NAME Afd,Flag)
%externalintegerfnspec IOCP %alias "S#IOCP"(%integer ep,adr)
%EXTERNAL %INTEGER %MAP %SPEC ComReg %ALIAS "S#COMREGMAP"(%INTEGER N)
%EXTERNAL %ROUTINE %SPEC ICLpascalcompiler
%ROUTINE %SPEC InitialiseCompiler
%EXTERNAL %ROUTINE %SPEC EMAS3ClaimChannel(%INTEGER %NAME Chan)
%EXTERNAL %ROUTINE %SPEC Eproc %alias "E#PROC" (%STRING %NAME Name, %INTEGER Prop,Numpars,
   Paramsize,Astacklen, %INTEGER %NAME Id)
%EXTERNAL %ROUTINE %SPEC Eentry%alias "E#ENTRY" (%INTEGER Index,Numpars,ParamSize,LocalSize,
   DiagDisp, %STRING %NAME Name)
%EXTERNAL %INTEGER %FN %SPEC Exname %alias "E#XNAME" (%INTEGER Type, %STRING %NAME Xref)
%EXTERNAL %ROUTINE %SPEC Edataentry %alias "E#DATAENTRY" (%INTEGER Area,Offset,Length,
   %STRING %NAME Name)

==== ercc07/algtests_at51.txt ====
'BEGIN'
    'ARRAY'
        A0(/1 : 10/), A1(/1 : 10/), A2(/1 : 10/), A3(/1 : 10/),
        A4(/1 : 10/), A5(/1 : 10/), A6(/1 : 10/), A7(/1 : 10/),
        A8(/1 : 10/), A9(/1 : 10/), A10(/1 : 10/), A11(/1 : 10/),
        A12(/1 : 10/), A13(/1 : 10/), A14(/1 : 10/), A15(/1 : 10/),
        A16(/1 : 10/), A17(/1 : 10/), A18(/1 : 10/), A19(/1 : 10/),
        A20(/1 : 10/), A21(/1 : 10/), A22(/1 : 10/), A23(/1 : 10/),
        A24(/1 : 10/), A25(/1 : 10/), A26(/1 : 10/), A27(/1 : 10/),
        A28(/1 : 10/), A29(/1 : 10/), A30(/1 : 10/), A31(/1 : 10/),
        A32(/1 : 10/), A33(/1 : 10/), A34(/1 : 10/), A35(/1 : 10/),
        A36(/1 : 10/), A37(/1 : 10/), A38(/1 : 10/), A39(/1 : 10/),
        A40(/1 : 10/), A41(/1 : 10/), A42(/1 : 10/), A43(/1 : 10/),
        A44(/1 : 10/), A45(/1 : 10/), A46(/1 : 10/), A47(/1 : 10/),
        A48(/1 : 10/), A49(/1 : 10/), A50(/1 : 10/), A51(/1 : 10/),
        A52(/1 : 10/), A53(/1 : 10/), A54(/1 : 10/), A55(/1 : 10/),
        A56(/1 : 10/), A57(/1 : 10/), A58(/1 : 10/), A59(/1 : 10/);
    A0(/1/):= 1.0;    A1(/1/):= 1.0;    A2(/1/):= 1.0;    A3(/1/):= 1.0;
    A4(/1/):= 1.0;    A5(/1/):= 1.0;    A6(/1/):= 1.0;    A7(/1/):= 1.0;
    A8(/1/):= 1.0;    A9(/1/):= 1.0;    A10(/1/):= 1.0;    A11(/1/):= 1.0;
    A12(/1/):= 1.0;    A13(/1/):= 1.0;    A14(/1/):= 1.0;    A15(/1/):= 1.0;

==== ercc07/algtests_at52.txt ====
'BEGIN'
    'INTEGER' 'PROCEDURE' IABS(I);
        'VALUE'
            I;
        'INTEGER'
            I;
        IABS :=
            'IF' I < 0 'THEN'
                - I
            'ELSE'
                I;
    'INTEGER'
        I,
        J,
        K;
    I := J := K := 1;
    'BEGIN'
        'ARRAY'
            A(/('IF' IABS(J * K 'DIV' I) > 3 * I - K 'THEN'- 60 'ELSE' 1) :
                ('IF' IABS(J * K 'DIV' I) > 3 * I - K 'THEN'- 60 'ELSE' 1)
                * 3.0 - 1.6 + 10.2/),

==== ercc07/algtests_at53.txt ====
'BEGIN'
    'INTEGER'
        I,
        J;
    'FOR' I := - 2,
         - 1,
        1,
        2 'DO'
        'FOR' J := - 2 'STEP' 1 'UNTIL' 2 'DO'
            'IF' J 'DIV' I # SIGN(J / I) * ENTIER(ABS(J / I))
                'THEN'
                'BEGIN'
                OUTREAL(99, J);
                OUTREAL(99, I);
                OUTREAL(99, J 'DIV' I)
                'END';
'END'

==== ercc07/algtests_at54.txt ====
'BEGIN'
    'INTEGER' 'PROCEDURE' TSIGN(X);
        'VALUE'
            X;
        'REAL'
            X;
        TSIGN :=
            'IF' X > 0 'THEN'
                1
            'ELSE' 'IF' X < 0 'THEN'
                 - 1
            'ELSE'
                0;
    'INTEGER' 'PROCEDURE' TENTIER(X);
        'VALUE'
            X;
        'REAL'
            X;
        TENTIER := X - .5;
    'REAL' 'PROCEDURE' TABS(X);
        'VALUE'

==== ercc07/vaxput3s.txt ====
!*****************************
!*                           *
!*   Vax VMS PUT INTERFACE   *
!*                           *
!*****************************

!
! Put interface for VAX VMS copyright P.D.Stephens
!
! The problem of a put for VMS is dominated by two problems
!    1) The horrendous object module format which must be tholed
!    2) The jumps which can be short or long PC relative or absolute
!       with the horrid proviso that even the long jump may not reach
!       and absolute jumps are unconditional. Thus put has to
!       be prepared to change jumps to jumps around a long jump.
!
! Outline of a solution
! Code and data is recieved in fragments and built up in areas as images
! The areas are as defined by EMAS and apart from code built up as images
! in space obtained by malloc or eqivalent. The areas start small and are
! expanded if required.

==== ercc07/algtests_at55.txt ====
'BEGIN'
    'INTEGER' 'ARRAY'
        EQ(/1 : 9/);
    'INTEGER'
        I;
    'REAL'
        X,
        Y;
    'PROCEDURE' PRINT EQ;
        'FOR' I := 1 'STEP' 1 'UNTIL' 9 'DO'
            OUTREAL(99, EQ(/I/));
    'PROCEDURE' TEST(A, B, C);
        'VALUE'
            A,
            B,
            C;
        'REAL'
            A,
            B,
            C;
        'BEGIN'

==== ercc07/ebits_especs4h.txt ====
%externalroutine Einitialise %alias"E#INITIALISE"(%integer Lang,Aver,Astackca,Aglaca,options)
%externalroutine Eterminate %alias"E#TERMINATE"(%integer adareasizes)
%externalroutine Ecommon %alias"E#COMMON"(%integer area,%stringname Name)
%externalroutine Eendcommon %alias"E#ENDCOMMON"(%integer area,Length)
%externalroutine Elinestart %alias"E#LINESTART"(%integer lineno)
%externalroutine Elinedecode %alias"E#LINEDECODE"
%externalintegerfn Estkmarker %alias"E#STKMARKER"
%externalroutine Esetmarker %alias"E#SETMARKER"(%integer Markerid,New Value)
%externalintegerfn Eswapmode %alias"E#SWAPMODE"
%externalroutine Emonon %alias"E#MOMON"
%externalroutine Emonoff %alias"E#MONOFF"
%externalroutine Efaulty %alias"E#FAULTY"
%externalroutine Estklit %alias"E#STKLIT"(%integer Val)
%externalroutine Estkconst %alias"E#STKCONST"(%integer Len,Ad)
%externalroutine Estkrconst %alias"E#STKRCONST"(%integer Len,Ad)
%externalroutine Estkdir %alias"E#STKDIR"(%integer Area,Offset,Adid,Bytes)
%externalroutine Estkind %alias"E#STKIND"(%integer Area,Offset,Adid,Bytes)
%externalroutine Estkglobal %alias"E#STKGLOBAL"(%integer Level,Offset,Adid,Bytes)
%externalroutine Estkglobalind %alias"E#STKGLOBALIND"(%integer Level,Offset,Adid,Bytes)
%externalroutine Estkgind %alias"E#STKIND"(%integer Level,Offset,Adid,Bytes)
%externalroutine Estkpar %alias"E#STKPAR"(%integer Level,Offset,Adid,Bytes)

==== ercc07/docs_stratbit.txt ====
@make[report]
@majorheading[Developments in Computing Technology]
The following section indicates the assumptions made by the University in
drawing up this document.  It is of course subject to the normal hazards
of forcasting changes in technology.
@subheading[a) Processor & Storage]
It is expected that chip advances will reduce the cost of processing power
and main store over the period.  Work stations are expected to get much
cheaper; entry level micros will stay about current prices but have
improvements in cpu speed and storage.  The distinction between personal
micro and work stations will disappear.

Mainframe machines will also become cheaper under threat from both the
100 Mip personal machine and highly parallel machines like the computing
surface.  Main frames will have vector processors almost as a matter of
course although proper exploration of these will involve the use of very
complex (and expensive) compilers.
@subheading[b) Backing Store]
Rotating Discs and industry standard magnetic tapes seem likely to
dominate backing storage for some years to come.  Packing densities will
increase providing for some reductions in cost per megabyte stored.  As

==== ercc07/algtests_at56.txt ====
'BEGIN'
    'INTEGER'
        I,
        J,
        CASE;
    'REAL'
        X,
        Y;
    'PROCEDURE' REQUAL(A, B);
        'VALUE'
            A,
            B;
        'REAL'
            A,
            B;
        'IF' A # B 'THEN'
            'BEGIN'
            OUTREAL(99, A);
            OUTREAL(99, B);
            OUTREAL(99, CASE)
            'END'

==== ercc07/algtests_at57.txt ====
'BEGIN'
    'INTEGER'
        I;
    'REAL'
        X;
    I := 0;
    X := 0.0;
    OUTREAL(99, X^I)
'END'

==== ercc07/algtests_at58.txt ====
'BEGIN'
    'INTEGER'
        I;
    I := 0;
    OUTREAL(99, I^I)
'END'

==== ercc07/algtests_at59.txt ====
'BEGIN'
    'REAL'
        X;
    X := - 1.0;
    OUTREAL(99, 0.0^X)
'END'

==== ercc07/algtests_at60.txt ====
'BEGIN'
    'REAL'
        X;
    X := - 1.0;
    OUTREAL(99, 0^X)
'END'

==== ercc07/ebits_enames1.txt ====
!* enames1        02/11/85
!*
%conststring(9)%array Eopname(0:255) = %c
{00} "HALT","IADD","ISUB","IMULT",  "IDIV" ,"INEG" ,"IABS" ,"IREM" ,
{08} "IAND","IOR" ,"INOT","IXOR" ,  "ISHLL","ISHRL","ISHLA","ISHRA",
{10} "IGT" ,"ILT" ,"IEQ" ,"INE"  ,  "IGE"  ,"ILE"  ,""     ,""     ,
{18} "JIGT","JILT","JIEQ","JINE" ,  "JIGE" ,"JILE" ,"JINTGZ","JINTLZ",
{20} "JINTZ","JINTNZ","JINTGEZ","JINTLEZ",  "ITWB" ,"","JUMP","",
{28} ""       ,"SFA"  ,"RETURN" ,"ASF" , "IPUSH" ,"IPOP"  ,"EXCH"  ,"DUPL",
{30} "DISCARD",""     ,""     ,"INDEX1", "INDEX2","INDEX4","INDEX8","INDEX",
{38} "MVB"    ,"CHK"  ,"TMASK" ,""     , ""      ,""      ,"CPBGT" ,"CPBLT",
{40} "CPBEQ"  ,"CPBNE","CPBGE","CPBLE" , "","","","", 
{48} "","","","", "","","","",
{50} "","","","", "","","","",
{58} "","","","", "","","","",
{60} "","","","", "","","","",
{68} "","","","", "","","","",
{70} ""     ,"RADD" ,"RSUB" ,"RMULT","RDIV" ,"RNEG" ,"RABS",""   ,
{78} "","","","", "","","","",
{80} "","","","", "","","","",
{88} "CVTII","CVTIR","CVTRR","TNCRI", "RNDRI","","","",

==== ercc07/pdriver16s.txt ====
{****************************************************************************}
{                                                                            }
{                   System dependent routines.                               }
{                                                                            }
{****************************************************************************}

%externalstring(255)%fnspec uinfs %alias "S#UINFS"(%integer n)
%EXTERNAL %ROUTINE %SPEC Define %ALIAS "S#DEFINE"(%INTEGER channel,
   %STRING (255) File, %INTEGER %NAME Afd,Flag)
%externalintegerfnspec IOCP %alias "S#IOCP"(%integer ep,adr)
%EXTERNAL %INTEGER %MAP %SPEC ComReg %ALIAS "S#COMREGMAP"(%INTEGER N)
%EXTERNAL %ROUTINE %SPEC ICLpascalcompiler
%ROUTINE %SPEC InitialiseCompiler
%EXTERNAL %ROUTINE %SPEC EMAS3ClaimChannel(%INTEGER %NAME Chan)
%EXTERNAL %ROUTINE %SPEC Eproc %alias "E#PROC" (%STRING %NAME Name, %INTEGER Prop,Numpars,
   Paramsize,Astacklen, %INTEGER %NAME Id)
%EXTERNAL %ROUTINE %SPEC Eentry%alias "E#ENTRY" (%INTEGER Index,Numpars,ParamSize,LocalSize,
   DiagDisp, %STRING %NAME Name)
%EXTERNAL %INTEGER %FN %SPEC Exname %alias "E#XNAME" (%INTEGER Type, %STRING %NAME Xref)
%EXTERNAL %ROUTINE %SPEC Edataentry %alias "E#DATAENTRY" (%INTEGER Area,Offset,Length,
   %STRING %NAME Name)

==== ercc07/algtests_at61.txt ====

'BEGIN'
    'COMMENT' LIBRARY 1;
    'INTEGER'
        I;
    'REAL'
        X;
    X := 3.2;
    I := - 2;
    OUTREAL(99, I^X)
'END'

==== ercc07/ebits_enames2.txt ====
!***********************************************************************
!*                                                                     *
!* ebits_enames2                                       13/01/86        *
!*                                                                     *
!***********************************************************************
!*
%conststring(9)%array Eopname(0:255) = %c
{00} "HALT","IADD","ISUB","IMULT",  "IDIV" ,"INEG" ,"IABS" ,"IREM" ,
{08} "IAND","IOR" ,"INOT","IXOR" ,  "ISHLL","ISHRL","ISHLA","ISHRA",
{10} "IGT" ,"ILT" ,"IEQ" ,"INE"  ,  "IGE"  ,"ILE"  ,"BNOT" ,""     ,
{18} "JIGT","JILT","JIEQ","JINE" ,  "JIGE" ,"JILE" ,"JINTGZ","JINTLZ",
{20} "JINTZ","JINTNZ","JINTGEZ","JINTLEZ",  "ITWB" ,"","JUMP","",
{28} ""       ,"SFA"  ,"RETURN" ,"ASF" , "IPUSH" ,"IPOP"  ,"EXCH"  ,"DUPL",
{30} "DISCARD",""     ,""     ,"INDEX1", "INDEX2","INDEX4","INDEX8","INDEX",
{38} "MVB"    ,"CHK"  ,"TMASK" ,""     , ""      ,""      ,"CPBGT" ,"CPBLT",
{40} "CPBEQ"  ,"CPBNE","CPBGE","CPBLE" , "","","","", 
{48} "","","","", "","","","",
{50} "UADD","USUB","UGT","ULT", "UEQ","UNE","UGE","ULE",
{58} "JUGT","JULT","JUEQ","JUNE", "JUGE","JULE","JUGTZ","JULTZ",
{60} "JUEQZ","JUNEZ","JUGEZ","JULEZ", "UCVTII","IADDST","ISUBST","IMULTST",
{68} "IDIVST","INEGST","","", "IANDST","IORST","INOTST","IXORST",

==== ercc07/algtests_at62.txt ====

'BEGIN'
    'COMMENT' LIBRARY 99;
    'INTEGER'
        I,
        J;
    I := 0;
    J := - 2;
    OUTREAL(99, I^J)
'END'

==== ercc07/ebits_enames3.txt ====
!***********************************************************************
!*                                                                     *
!* ebits_enames2                                       13/01/86        *
!*                                                                     *
!***********************************************************************
!*
%conststring(9)%array Eopname(0:255) = %c
{00} "HALT","IADD","ISUB","IMULT",  "IDIV" ,"INEG" ,"IABS" ,"IREM" ,
{08} "IAND","IOR" ,"INOT","IXOR" ,  "ISHLL","ISHRL","ISHLA","ISHRA",
{10} "IGT" ,"ILT" ,"IEQ" ,"INE"  ,  "IGE"  ,"ILE"  ,"BNOT" ,""     ,
{18} "JIGT","JILT","JIEQ","JINE" ,  "JIGE" ,"JILE" ,"JINTGZ","JINTLZ",
{20} "JINTZ","JINTNZ","JINTGEZ","JINTLEZ",  "ITWB" ,"","JUMP","",
{28} ""       ,"SFA"  ,"RETURN" ,"ASF" , "IPUSH" ,"IPOP"  ,"EXCH"  ,"DUPL",
{30} "DISCARD",""     ,""     ,"INDEX1", "INDEX2","INDEX4","INDEX8","INDEX",
{38} "MVB"    ,"CHK"  ,"TMASK" ,""     , ""      ,""      ,"CPBGT" ,"CPBLT",
{40} "CPBEQ"  ,"CPBNE","CPBGE","CPBLE" , "","","","", 
{48} "","","","", "","","","",
{50} "UADD","USUB","UGT","ULT", "UEQ","UNE","UGE","ULE",
{58} "JUGT","JULT","JUEQ","JUNE", "JUGE","JULE","JUGTZ","JULTZ",
{60} "JUEQZ","JUNEZ","JUGEZ","JULEZ", "UCVTII","IADDST","ISUBST","IMULTST",
{68} "IDIVST","INEGST","","", "IANDST","IORST","INOTST","IXORST",

==== ercc07/algtests_at63.txt ====

'BEGIN'
    'COMMENT' LIBRARY 1;
    'INTEGER'
        I;
    'REAL'
        X;
    X := 0.0;
    I := - 2;
    OUTREAL(99, X^I)
'END'

==== ercc07/ebits_enames4.txt ====
!***********************************************************************
!*                                                                     *
!* ebits_enames4                                       03/04/86        *
!*                                                                     *
!***********************************************************************
!*
%conststring(9)%array Eopname(0:255) = %c
{00} "HALT","IADD","ISUB","IMULT",  "IDIV" ,"INEG" ,"IABS" ,"IREM" ,
{08} "IAND","IOR" ,"INOT","IXOR" ,  "ISHLL","ISHRL","ISHLA","ISHRA",
{10} "IGT" ,"ILT" ,"IEQ" ,"INE"  ,  "IGE"  ,"ILE"  ,"BNOT" ,""     ,
{18} "JIGT","JILT","JIEQ","JINE" ,  "JIGE" ,"JILE" ,"JINTGZ","JINTLZ",
{20} "JINTZ","JINTNZ","JINTGEZ","JINTLEZ",  "ITWB" ,"","JUMP","",
{28} ""       ,"SFA"  ,"RETURN" ,"ASF" , "IPUSH" ,"IPOP"  ,"EXCH"  ,"DUPL",
{30} "DISCARD",""     ,""     ,"INDEX1", "INDEX2","INDEX4","INDEX8","INDEX",
{38} "MVB"    ,"CHK"  ,"TMASK" ,""     , ""      ,""      ,"CPBGT" ,"CPBLT",
{40} "CPBEQ"  ,"CPBNE","CPBGE","CPBLE" , "","","","", 
{48} "","","","", "","","","",
{50} "UADD","USUB","UGT","ULT", "UEQ","UNE","UGE","ULE",
{58} "JUGT","JULT","JUEQ","JUNE", "JUGE","JULE","JUGTZ","JULTZ",
{60} "JUEQZ","JUNEZ","JUGEZ","JULEZ", "UCVTII","IADDST","ISUBST","IMULTST",
{68} "IDIVST","INEGST","","", "IANDST","IORST","INOTST","IXORST",

==== ercc07/algtests_at64.txt ====

'BEGIN'
    'COMMENT' LIBRARY 1;
    'INTEGER''PROCEDURE' P(B);
        'VALUE'
            B;
        'BOOLEAN'
            B;
        P := ('IF' B 'THEN' 1 'ELSE' 3.3) 'DIV' 6;
    OUTREAL(99, P('TRUE'));
    OUTREAL(99, P('FALSE'))
'END'

==== ercc07/ebits_enames5.txt ====
!***********************************************************************
!*                                                                     *
!* ebits_enames4                                       03/04/86        *
!*                                                                     *
!***********************************************************************
!*
%conststring(9)%array Eopname(0:255) = %c
{00} "HALT","IADD","ISUB","IMULT",  "IDIV" ,"INEG" ,"IABS" ,"IREM" ,
{08} "IAND","IOR" ,"INOT","IXOR" ,  "ISHLL","ISHRL","ISHLA","ISHRA",
{10} "IGT" ,"ILT" ,"IEQ" ,"INE"  ,  "IGE"  ,"ILE"  ,"BNOT" ,""     ,
{18} "JIGT","JILT","JIEQ","JINE" ,  "JIGE" ,"JILE" ,"JINTGZ","JINTLZ",
{20} "JINTZ","JINTNZ","JINTGEZ","JINTLEZ",  "ITWB" ,"","JUMP","",
{28} ""       ,"SFA"  ,"RETURN" ,"ASF" , "IPUSH" ,"IPOP"  ,"EXCH"  ,"DUPL",
{30} "DISCARD",""     ,""     ,"INDEX1", "INDEX2","INDEX4","INDEX8","INDEX",
{38} "MVB"    ,"CHK"  ,"TMASK" ,""     , ""      ,""      ,"CPBGT" ,"CPBLT",
{40} "CPBEQ"  ,"CPBNE","CPBGE","CPBLE" , "","","","", 
{48} "","","","", "","","","",
{50} "UADD","USUB","UGT","ULT", "UEQ","UNE","UGE","ULE",
{58} "JUGT","JULT","JUEQ","JUNE", "JUGE","JULE","JUGTZ","JULTZ",
{60} "JUEQZ","JUNEZ","JUGEZ","JULEZ", "UCVTII","IADDST","ISUBST","IMULTST",
{68} "IDIVST","INEGST","","", "IANDST","IORST","INOTST","IXORST",

==== ercc07/algtests_at65.txt ====

'BEGIN'
    'COMMENT' LIBRARY 1;
    'INTEGER'
        I,
        J;
    I := 2;
    J := 3;
    OUTREAL(99, I^J 'DIV' J)
'END'

==== ercc07/ebits_enames6.txt ====
!***********************************************************************
!*                                                                     *
!* ebits_enames4                                       03/04/86        *
!*                                                                     *
!***********************************************************************
!*
%conststring(9)%array Eopname(0:255) = %c
{00} "HALT","IADD","ISUB","IMULT",  "IDIV" ,"INEG" ,"IABS" ,"IREM" ,
{08} "IAND","IOR" ,"INOT","IXOR" ,  "ISHLL","ISHRL","ISHLA","ISHRA",
{10} "IGT" ,"ILT" ,"IEQ" ,"INE"  ,  "IGE"  ,"ILE"  ,"BNOT" ,""     ,
{18} "JIGT","JILT","JIEQ","JINE" ,  "JIGE" ,"JILE" ,"JINTGZ","JINTLZ",
{20} "JINTZ","JINTNZ","JINTGEZ","JINTLEZ",  "ITWB" ,"","JUMP","",
{28} ""       ,"SFA"  ,"RETURN" ,"ASF" , "IPUSH" ,"IPOP"  ,"EXCH"  ,"DUPL",
{30} "DISCARD",""     ,""     ,"INDEX1", "INDEX2","INDEX4","INDEX8","INDEX",
{38} "MVB"    ,"CHK"  ,"TMASK" ,""     , ""      ,""      ,"CPBGT" ,"CPBLT",
{40} "CPBEQ"  ,"CPBNE","CPBGE","CPBLE" , "","","","", 
{48} "","","","", "","","","",
{50} "UADD","USUB","UGT","ULT", "UEQ","UNE","UGE","ULE",
{58} "JUGT","JULT","JUEQ","JUNE", "JUGE","JULE","JUGTZ","JULTZ",
{60} "JUEQZ","JUNEZ","JUGEZ","JULEZ", "UCVTII","IADDST","ISUBST","IMULTST",
{68} "IDIVST","INEGST","","", "IANDST","IORST","INOTST","IXORST",

==== ercc07/gbits_gldiocp6s.txt ====
!Modified 22/Sept/86 - treat selectoutput(-1) as null device for IMP.
!Modified 25/June/86  use own rather than local arrays
!Modified 28/May/86   for GOULD (AK)

!***********************************************************************
!* IMP written routines supporting COMPILE TIME.                       *
!***********************************************************************

%CONSTINTEGER EMAS=10
%CONSTINTEGER PERQ=11
%CONSTINTEGER PNX=12
%CONSTINTEGER IBM=13
%CONSTINTEGER GOULD=14
%constinteger WhiteChapel = 19
%constinteger Perq3 = 20
%constinteger target = GOULD
%constinteger host = GOULD

%externalSTRING(15) %FN ITOS(%INTEGER K)
  %INTEGER REM,NUM,NF
  %STRING(15) STR

==== ercc07/algtests_at66.txt ====

'BEGIN'
    'COMMENT' LIBRARY 1;
    'INTEGER'
        I,
        J,
        K,
        CASE;
    'PROCEDURE' EQUAL(I, J);
        'VALUE'
            I,
            J;
        'INTEGER'
            I,
            J;
        'IF' I # J 'THEN'
            'BEGIN'
            OUTREAL(99, CASE);
            OUTREAL(99, I);
            OUTREAL(99, J)
            'END'

==== ercc07/ifast3s.txt ====
%INCLUDE "ercc07:ibmsup_comf370"
%INCLUDE "ercc07:ibmsup_page0f"
%RECORDFORMAT PARMF(%INTEGER DEST,SRCE,(%INTEGER P1,P2,P3,P4,P5,P6 %ORSTRING (23) TEXT))
%CONSTINTEGER PCELLSIZE=36,MARGIN=48
%RECORDFORMAT PDOPEF(%INTEGER CURRMAX,MAXMAX,FIRST UNALLOC,LAST UNALLOC,NEXTPAGE,S1,S2,S3,S4)
%RECORDFORMAT PARMXF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6,LINK)
%CONSTRECORD (PARMXF) %ARRAYNAME PARM=PARM0AD
%CONSTRECORD (PDOPEF) %NAME PARMDOPE=PARM0AD
%RECORDFORMAT STOREF(%SHORTINTEGER FLAGS,USERS,LINK,BLINK,FLINK)
%CONSTRECORD (STOREF) %ARRAYNAME STORE=STORE0AD
!
%EXTERNALLONGINTEGER SEMATIME=0
%OWNINTEGER PARMASL=0
%EXTERNALINTEGER MAINQSEMA=-1
%EXTERNALINTEGERSPEC STORESEMA
%OWNINTEGERARRAY GET NEW PAGE(0:14);    ! parms for call of new epage
!
%CONSTINTEGER LOCSN1=LOCSN0+MAXPROCS
%RECORDFORMAT SERVF(%INTEGER P,L)
                                        ! L is link in circular chain of
                                        ! services which constitute a queue

==== ercc07/algtests_at67.txt ====

'BEGIN'
    'COMMENT' LIBRARY 1;
    'INTEGER'
        I,
        J;
    I := 3;
    J := - 2;
    OUTREAL(99, (81 * I^J) 'DIV' 2);
'END'

==== ercc07/algtests_at68.txt ====

'BEGIN'
    'COMMENT' LIBRARY 1;
    'INTEGER'
        I;
    'SWITCH' S :=
        S1,
        S2,
        S3,
        S4;
    'FOR' I := 1 'STEP' 1 'UNTIL' 4 'DO'
        'BEGIN'
        'GOTO' S[I];
        S1 :;
        'IF' I # 1 'THEN'
            OUTREAL(99, I)
        'ELSE'
            'GOTO' EXIT;
        S2 :;
        'IF' I # 2 'THEN'
            OUTREAL(99, I)

==== ercc07/ctoptn2.txt ====
!
!   Compile time options for EMAS/370
!
%constinteger YES=1,NO=0,AMDAHL=2
%constinteger XA=YES;                    ! yes for 370/XA
%constinteger VA MODE=YES;               ! yes for Supervisor, no for Chopsupe
%constinteger MULTI OCP=NO;              ! yes to include semaphoring
%constinteger CRFITTED=NO;               ! card reader
%constinteger CPFITTED=NO;               ! card punch
%constinteger SNOOZING=YES;              ! allow suspend in store
%constinteger PRODUCTION=NO;             ! yes for continuing after S/W errors
%constinteger MONLEVEL=x'3F';                ! 0 = no monitoring
                                         ! 2**0 = video updating
                                         ! 2**1 = KMONning
                                         ! 2**2 = sup timing measurements
                                         ! 2**3 = a-c for cross calls
                                         ! 2**4 = strobing
                                         ! 2**5 = cat table transitions
                                         ! 2**8 = event harvesting
%constinteger P4PERCENT=11;              ! max % of free store for large jobs
%constinteger MAXPROCS=256;              ! max concurrent procs (64,128 or 256)

==== ercc07/algtests_at69.txt ====

'BEGIN'
    'COMMENT' LIBRARY 1;
    'INTEGER'
        I;
    'SWITCH' S :=
        S1,
        S2,
        S3,
        S4;
    'FOR' I := 1,
        2,
        3 'DO'
        'BEGIN'
        'GOTO' S[I];
        S1 :;
        'IF' I # 1 'THEN'
            OUTREAL(99, I)
        'ELSE'
            S2 : 'IF' I # 2 'THEN'
                OUTREAL(99, I)

==== ercc07/ctoptn3.txt ====
!
!   Compile time options for EMAS/370
!
%constinteger YES=1,NO=0,AMDAHL=2
%constinteger XA=YES;                    ! yes for 370/XA
%constinteger VA MODE=YES;               ! yes for Supervisor, no for Chopsupe
%constinteger MULTI OCP=NO;              ! yes to include semaphoring
%constinteger CRFITTED=NO;               ! card reader
%constinteger CPFITTED=NO;               ! card punch
%constinteger SNOOZING=YES;              ! allow suspend in store
%constinteger PRODUCTION=NO;             ! yes for continuing after S/W errors
%constinteger MONLEVEL=x'3F';                ! 0 = no monitoring
                                         ! 2**0 = video updating
                                         ! 2**1 = KMONning
                                         ! 2**2 = sup timing measurements
                                         ! 2**3 = a-c for cross calls
                                         ! 2**4 = strobing
                                         ! 2**5 = cat table transitions
                                         ! 2**8 = event harvesting
%constinteger P4PERCENT=19;              ! max % of free store for large jobs
%constinteger MAXPROCS=256;              ! max concurrent procs (64,128 or 256)

==== ercc07/algtests_at70.txt ====

'BEGIN'
    'COMMENT' LIBRARY 1;
    'INTEGER'
        I;
    'SWITCH' S :=
        S1,
        S2,
        S3;
    I := 1;
    'GOTO' S[I];
    'FOR' I := 1,
        2,
        3 'DO'
        'BEGIN'
        S1 :;
        OUTREAL(99, 10);
        S2 :;
        OUTREAL(99, 20);
        OUTREAL(99, I)
        'END';

==== ercc07/pdriver17s.txt ====
{****************************************************************************}
{                                                                            }
{                   System dependent routines.                               }
{                                                                            }
{****************************************************************************}

%externalstring(255)%fnspec uinfs %alias "S#UINFS"(%integer n)
%EXTERNAL %ROUTINE %SPEC Define %ALIAS "S#DEFINE"(%INTEGER channel,
   %STRING (255) File, %INTEGER %NAME Afd,Flag)
%externalintegerfnspec IOCP %alias "S#IOCP"(%integer ep,adr)
%EXTERNAL %INTEGER %MAP %SPEC ComReg %ALIAS "S#COMREGMAP"(%INTEGER N)
%EXTERNAL %ROUTINE %SPEC ICLpascalcompiler
%ROUTINE %SPEC InitialiseCompiler
%EXTERNAL %ROUTINE %SPEC EMAS3ClaimChannel(%INTEGER %NAME Chan)
%EXTERNAL %ROUTINE %SPEC Eproc %alias "E#PROC" (%STRING %NAME Name, %INTEGER Prop,Numpars,
   Paramsize,Astacklen, %INTEGER %NAME Id)
%EXTERNAL %ROUTINE %SPEC Eentry%alias "E#ENTRY" (%INTEGER Index,Numpars,ParamSize,LocalSize,
   DiagDisp, %STRING %NAME Name)
%EXTERNAL %INTEGER %FN %SPEC Exname %alias "E#XNAME" (%INTEGER Type, %STRING %NAME Xref)
%EXTERNAL %ROUTINE %SPEC Edataentry %alias "E#DATAENTRY" (%INTEGER Area,Offset,Length,
   %STRING %NAME Name)

==== ercc07/algtests_at71.txt ====

'BEGIN'
    'COMMENT' LIBRARY 1;
    'INTEGER'
        I,
        CASE;
    'BOOLEAN'
        B;
    'REAL'
        X;
    'INTEGER''PROCEDURE' P(K, Q);
        'VALUE'
            K;
        'INTEGER'
            K;
        'INTEGER''PROCEDURE'
            Q;
        'COMMENT' (X1) : 'VALUE' X1 : 'REAL' X1 ;
        P :=
            'IF' K = 1 'THEN'
                Q(I)

==== ercc07/algtests_at72.txt ====

'BEGIN'
    'COMMENT' LIBRARY 3;
    'INTEGER'
        I,
        CASE;
    'BOOLEAN'
        B;
    'REAL'
        X;
    'INTEGER''PROCEDURE' P(K, Q);
        'VALUE'
            K;
        'INTEGER'
            K;
        'INTEGER''PROCEDURE'
            Q;
        'COMMENT' (X1) : 'VALUE' X1 : 'INTEGER'X1 ;
        P :=
            'IF' K = 1 'THEN'
                Q(I)

==== ercc07/algtests_at73.txt ====

'BEGIN'
    'COMMENT' LIBRARY 1;
    'INTEGER'
        I,
        J,
        K,
        K1;
    'REAL'
        T1,
        T2;
    'INTEGER''PROCEDURE' ACKERMANN(M, N);
        'VALUE'
            M,
            N;
        'INTEGER'
            M,
            N;
        ACKERMANN :=
            'IF' M = 0 'THEN'
                N + 1

==== ercc07/eccepas.txt ====

{*****************************************************************************}
{**                                                                         **}
{**    Title:   Edinburgh Editor Ecce for Dec Rainbow PC 100                **}
{**    Author:  H.Whitfield                                                 **}
{**    Date:    4 October 1984                                              **}
{**             Copyright (c) H.Whitfield 1984                              **}
{**                                                                         **}
{*****************************************************************************}
 
 
PROGRAM Ecce( input, output, InFile, OutFile );
 
LABEL 
  999;   { stop }
 
CONST 
  cmax = 121;
  stop = -5000;
  inv  = -5001;
 

==== ercc07/algtests_at74.txt ====

'BEGIN'
    'COMMENT' LIBRARY 1;
    'INTEGER'
        N;
    N := 3;
    'BEGIN'
        'ARRAY'
            A[1 : 'IF' N = 3 'THEN' 3 'ELSE' - 100];
        'INTEGER'
            N;
        N := 2;
        OUTREAL(99, N);
    'END';
    OUTREAL(99, N)
'END'

==== ercc07/algtests_at75.txt ====

'BEGIN'
    'COMMENT' LIBRARY 9;
    'INTEGER''ARRAY'
        EQ[1 : 3];
    'INTEGER'
        I;
    'REAL'
        X,
        Y;
    'PROCEDURE' INC(A, B);
        'VALUE'
            A,
            B;
        'REAL'
            A,
            B;
        'IF' A < B 'THEN'
            EQ[1] := EQ[1] + 1
        'ELSE' 'IF' A = B 'THEN'
            EQ[2] := EQ[2] + 1

==== ercc07/algtests_at76.txt ====

'BEGIN'
    'COMMENT' LIBRARY 1;
    'REAL'
        X,
        Y;
    'INTEGER'
        I,
        J;
    'ARRAY'
        A[1 : 10];
    X := Y := 1.0;
    I := J := 0;
    'BEGIN'
        'SWITCH' A := A1,A2,A3;
        'PROCEDURE' P;
            'BEGIN'
            X := 20;
            I := X + Y;
            Q(A[3], I + J)
            'END';

==== ercc07/ifast4s.txt ====
%INCLUDE "ercc07:ibmsup_comf370"
%INCLUDE "ercc07:ibmsup_page0f"
%INCLUDE "ercc07:ibmsup_dtform1s"
%INCLUDE "ercc07:ibmsup_xaioform"
%RECORDFORMAT PARMF(%INTEGER DEST,SRCE,(%INTEGER P1,P2,P3,P4,P5,P6 %ORSTRING (23) TEXT))
%CONSTINTEGER PCELLSIZE=36,MARGIN=48
%RECORDFORMAT PDOPEF(%INTEGER CURRMAX,MAXMAX,FIRST UNALLOC,LAST UNALLOC,NEXTPAGE,S1,S2,S3,S4)
%RECORDFORMAT PARMXF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6,LINK)
%CONSTRECORD (PARMXF) %ARRAYNAME PARM=PARM0AD
%CONSTRECORD (PDOPEF) %NAME PARMDOPE=PARM0AD
%RECORDFORMAT STOREF(%SHORTINTEGER FLAGS,USERS,LINK,BLINK,FLINK)
%CONSTRECORD (STOREF) %ARRAYNAME STORE=STORE0AD
!
%EXTERNALLONGINTEGER SEMATIME=0
%OWNINTEGER PARMASL=0
%EXTERNALINTEGER MAINQSEMA=-1
%EXTERNALINTEGERSPEC STORESEMA
%OWNINTEGERARRAY GET NEW PAGE(0:14);    ! parms for call of new epage
!
%CONSTINTEGER LOCSN1=LOCSN0+MAXPROCS
%RECORDFORMAT SERVF(%INTEGER P,L)

==== ercc07/algtests_at77.txt ====

'BEGIN'
    'COMMENT' LIBRARY 1;
    'INTEGER'
        SUM;
    'PROCEDURE' P1(S, R, I, B, RA, IA);
        'STRING'
            S;
        'REAL'
            R;
        'INTEGER'
            I;
        'BOOLEAN'
            B;
        'REAL' 'ARRAY'
            RA;
        'INTEGER''ARRAY'
            IA;
        SUM := SUM + R + I + ('IF' B 'THEN' 1 'ELSE' 0) + RA[1] +
            IA[1];
    'PROCEDURE' P2(BA, L, SW, PR, RPR, IPR, BPR);

==== ercc07/algtests_at78.txt ====

'BEGIN'
    'COMMENT' LIBRARY 1;
    'INTEGER'
        SUM;
    'PROCEDURE' P1(S, R, I, B, RA, IA);
        'STRING'
            S;
        'REAL'
            R;
        'INTEGER'
            I;
        'BOOLEAN'
            B;
        'REAL' 'ARRAY'
            RA;
        'INTEGER''ARRAY'
            IA;
        SUM := SUM + R + I + ('IF' B 'THEN' 1 'ELSE' 0) + RA[1] +
            IA[1];
    'PROCEDURE' P2(BA, L, SW, PR, RPR, IPR, BPR);

==== ercc07/ibmconvert_sibmdriver.txt ====
%RECORDFORMAT RR(%INTEGER CONAD,FTYPE,DSTART,DEND)
%SYSTEMROUTINESPEC DISCONNECT(%STRING(31)FILE,%INTEGERNAME FLAG)
%SYSTEMROUTINESPEC DESTROY(%STRING(31)FILE,%INTEGERNAME FLAG)
%SYSTEMROUTINESPEC SETWORK(%INTEGERNAME AD,LEN)
%SYSTEMROUTINESPEC CHANGEFILESIZE(%STRING(31)FILE,%INTEGER SIZE,%INTEGERNAME FLAG)
%SYSTEMROUTINESPEC NEWGEN(%STRING(31) FILE1,FILE2,%INTEGERNAME FLAG)
%EXTERNALROUTINESPEC DEFINE(%STRING(255)PARM)
%SYSTEMROUTINESPEC PSYSMES(%INTEGER ROOT,FLAG)
%SYSTEMROUTINESPEC SETPAR(%STRING(255)PARM)
%SYSTEMSTRINGFNSPEC SPAR(%INTEGER N)
%SYSTEMROUTINESPEC CONNECT(%STRING(31)FILE,%INTEGER MODE,HOLE,PROT,
         %RECORD(RR)%NAME FINFO,%INTEGERNAME FLAG)
%SYSTEMROUTINESPEC OUTFILE(%STRING(31)FILE,%INTEGER SIZE,HOLE,PROT,
         %INTEGERNAME CONAD,FLAG)
%SYSTEMROUTINESPEC MOVE(%INTEGER LNTH,FROMAD,TOAD)
%EXTERNALROUTINESPEC CONVTOIBM(%INTEGER ICONAD,OCONAD, %INTEGERNAME FLAG)
!
!
%EXTERNALROUTINE TOIBMOBJ(%STRING(255) PARM)
 %STRING(31) INFILE,OUTF,LIST,WOUTF
 %RECORD(RR) FINFO

==== ercc07/algtests_at79.txt ====

'BEGIN'
    'INTEGER'
        I;
    'REAL'
        R;
    'BOOLEAN'
        B;
    'ARRAY'
        A1[1 : I + B],
        A2[2 : 4, 5 : 7];
    'SWITCH' S :=
        'IF' R * P0 < 0 'THEN' L 'ELSE' L2;
    'PROCEDURE' P0;
        R := I 'DIV' R;
    'PROCEDURE' P1(F);
        'REAL'
            F;
        B := I + R;
    L :;
    B := I > S;

==== ercc07/trimp_perqlink.txt ====
LINK
ERCC07.PP1Y
ERCC07.PP2Y
ERCC07.POPTY
ERCC07.PGENY
ERCC07.CSERV01Y
ERCS04.QFILES_QCODE4Y
ERCS04.QFILES_QPUT15Y
.END
P0Y
MODIFY P0Y
SATISFY REFS
.ALL
SATISFY DATA
.ALL
RENAME
ICL9CEZPERQIMP,S#PERQIMP
.END
SUPPRESS
.ALL
RETAIN

==== ercc07/algtests_at80.txt ====

'BEGIN'
    'COMMENT' LIBRARY 1;
    'INTEGER'
        I;
    'INTEGER''ARRAY'
        A[1 : 10];
    I := 1;
    'FOR' A[I] := 1,
        2,
        3,
        4,
        5,
        6,
        7,
        8,
        9,
        10 'DO'
        I := I + 1;
    'FOR' I := 1 'STEP' 1 'UNTIL' 10 'DO'
        'IF' A[I] # I 'THEN'

==== ercc07/algtests_at81.txt ====

'BEGIN'
    'COMMENT' LIBRARY 1;
    'ARRAY'
        V,
        A,
        C[1 : 1];
    'INTEGER'
        K;
    'INTEGER''PROCEDURE' I;
        'BEGIN'
        I := 1;
        K := K + 1
        'END';
    K := 0;
    A[I] := 1;
    C[I] := 3;
    'FOR' V[I] := A[I] 'STEP' A[I] 'UNTIL' C[I] 'DO'
        ;
    OUTREAL(99, K)
'END'

==== ercc07/algtests_at82.txt ====

'BEGIN'
    'COMMENT' LIBRARY5;
    'INTEGER''PROCEDURE' NONE;
        NONE := 1;
    NONE;
    SIN(1.0);
    ABS(3);
    LN(.2);
    EXP(4);
    ENTIER(NONE);
    SIGN(SQRT(8));
    OUTREAL(99, NONE)
'END'

==== ercc07/algtests_at83.txt ====

'BEGIN'
    'COMMENT' LIBRARY 1;
    'INTEGER'
        NN;
    'SWITCH' A :=
        B[1],
        B[2];
    'SWITCH' B :=
        A[G],
        A[2];
    'INTEGER''PROCEDURE' F(N, S);
        'VALUE'
            N;
        'INTEGER'
            N;
        'SWITCH'
            S;
        'BEGIN'
        NN := N;
        'GOTO' S[1];

==== ercc07/algtests_at84.txt ====

'BEGIN'
'COMMENT' LIBRARY 3;
'INTEGER'I,CL,N,REP;
'ARRAY' R,A,B[1:30],C[1:10];
'REAL' J,ROOT,X;
'INTEGER''PROCEDURE' EVEN(X);
    'VALUE' X;
    'INTEGER'X;
    EVEN:='IF' X'DIV'2*2 = X 'THEN' 1 'ELSE' -1;
'PROCEDURE' GAMM(R,A,B,C);
    'ARRAY' R,A,B,C;
    'BEGIN'    'INTEGER'REP,I,CL;
        'REAL' J,ROOT,X;
        REP:=100*N;
        OUTREAL(99,CPUTIME);
        'FOR' CL:= 1 'STEP' 1 'UNTIL' REP 'DO'
            ;
        OUTREAL(99,CPUTIME);
        REP:=N;
        OUTREAL(99,CPUTIME);

==== ercc07/algtests_at85.txt ====

'BEGIN'
'COMMENT' LIBRARY 1;
    'REAL'
        X,
        Y;
    'PROCEDURE' DUM;
        ;
    'REAL' 'PROCEDURE' A;
        A := X + ('IF' B 'THEN' 1 'ELSE' 0);
    'BOOLEAN'
        B;
    S2 :;
    B := (('TRUE'));
    G :;
    'BEGIN'
        'INTEGER'
            I;
        X := - 3;
        'IF' 'NOT' B 'THEN'
            'GOTO' S2;

==== ercc07/wwclink1.txt ====
LINK
ERCC07:wP1Y
ERCC07:wP22Y
ERCC07:wOPT2Y
ERCC07:wGEN1Y
ERCC07:CSERV01x
ercs01:EBITS_etrput1y
.END
P0Y
MODIFY P0Y
SATISFY REFS
.ALL
SATISFY DATA
.ALL
SUPPRESS
.ALL
RETAIN
eGENERATEOBJECT,ICL9CEZWWCIMP
SUPPRESS DATA
.ALL
CLOSE

==== ercc07/algtests_at86.txt ====
'BEGIN'
PROG :
'BEGIN'
'COMMENT' LIBRARY 1;
    'INTEGER'N,I;
    'PROCEDURE' Q;
        'BEGIN'
        'ARRAY'
            A,
            D[1 : 1, 1 : N],
            E[0 : 0];
        'PROCEDURE' P(X, L);
            'LABEL'
                L;
            'INTEGER''PROCEDURE'
                X;
                'COMMENT' (F1,G1): 'VALUE' F1: 'REAL' F1,G1;
            B : 'FOR' I := 1 'STEP' 1 'UNTIL' N,
                I + 1 'DO'
                C : 'GOTO'
                    'IF' X(A[1, 1] + I, 0) = 0 'THEN'

==== ercc07/wwclink2.txt ====
parm nocheck
imp80 ercc07:Itrimp_wwcponeas+ercc07:poneb01s,wp1y,l1
imp80 ercc07:Itrimp_wwcptwoas+ercc07:timp02s,wp22y,l2
imp80 ercc07:Itrimp_wwcoptas+ercc07:opt02s,wopt2y,lo
imp80 ercc07:wwcgen01s,wgen1y,l3
LINK
ERCC07:wP1Y
ERCC07:wP22Y
ERCC07:wOPT2Y
ERCC07:wGEN2Y
ERCC07:CSERV01x
ercs01:EBITS_etrput1y
.END
P0Y
MODIFY P0Y
SATISFY REFS
.ALL
SATISFY DATA
.ALL
SUPPRESS
.ALL

==== ercc07/ifast5s.txt ====
%INCLUDE "ercc07:ibmsup_comf370"
%INCLUDE "ercc07:ibmsup_page0f"
%INCLUDE "ercc07:ibmsup_dtform1s"
%INCLUDE "ercc07:ibmsup_xaioform"
%RECORDFORMAT PARMF(%INTEGER DEST,SRCE,(%INTEGER P1,P2,P3,P4,P5,P6 %ORSTRING (23) TEXT))
%CONSTINTEGER PCELLSIZE=36,MARGIN=48
%RECORDFORMAT PDOPEF(%INTEGER CURRMAX,MAXMAX,FIRST UNALLOC,LAST UNALLOC,NEXTPAGE,S1,S2,S3,S4)
%RECORDFORMAT PARMXF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6,LINK)
%CONSTRECORD (PARMXF) %ARRAYNAME PARM=PARM0AD
%CONSTRECORD (PDOPEF) %NAME PARMDOPE=PARM0AD
%RECORDFORMAT STOREF(%SHORTINTEGER FLAGS,USERS,LINK,BLINK,FLINK)
%CONSTRECORD (STOREF) %ARRAYNAME STORE=STORE0AD
!
%EXTERNALLONGINTEGER SEMATIME=0
%OWNINTEGER PARMASL=0
%EXTERNALINTEGER MAINQSEMA=-1
%EXTERNALINTEGERSPEC STORESEMA
%OWNINTEGERARRAY GET NEW PAGE(0:14);    ! parms for call of new epage
!
%CONSTINTEGER LOCSN1=LOCSN0+MAXPROCS
%RECORDFORMAT SERVF(%INTEGER P,L)

==== ercc07/algtests_at87.txt ====

'BEGIN'
    'COMMENT' LIBRARY 1;
    'INTEGER'
        I;
    'REAL'
        X;
    I := 1;
    'FOR' X := .1 'STEP' X 'UNTIL' 1.0&6 'DO'
        I := I + 1;
    OUTREAL(99, I)
'END'

==== ercc07/algtests_at88.txt ====

'BEGIN'
    'COMMENT' LIBRARY 1;
    'INTEGER'
        A;
    'INTEGER''PROCEDURE' F(X, Y);
        'VALUE'
            X,
            Y;
        'INTEGER'
            X,
            Y;
        A := F := X + 1;
    'INTEGER''PROCEDURE' G(X);
        'INTEGER'
            X;
        X := G := A + 2;
    A := 0;
    OUTREAL(99, A + F(A, G(A)) / G(A))
'END'

==== ercc07/algtests_at89.txt ====

'BEGIN'
    'COMMENT' LIBRARY 1;
    'REAL'
        I,
        J;
    'ARRAY'
        A[1 : 2, 1 : 3];
    'REAL' 'PROCEDURE' GPS(I, N, Z, V);
        'REAL'
            I,
            N,
            Z,
            V;
        'BEGIN'
        'FOR' I := 1 'STEP' 1 'UNTIL' N 'DO'
            Z := V;
        GPS := 1
        'END';
    OUTREAL(99, GPS(J, 3.0, I, GPS(I, 2.0, A[I, J], I + J)));
    'FOR' I := 1 'STEP' 1 'UNTIL' 2 'DO'

==== ercc07/algtests_at90.txt ====

'BEGIN'
'COMMENT' LIBRARY5;
    'REAL'
        R;
    'BOOLEAN'
        B;
    'INTEGER''PROCEDURE' F(X);
        'REAL'
            X;
        F := 0;
    'INTEGER'
        I,
        N,
        S;
    'INTEGER''PROCEDURE' G(Y);
        'BOOLEAN'
            Y;
        G :=
            'IF' Y 'THEN'
                2

==== ercc07/algtests_at91.txt ====

'BEGIN'
    'COMMENT'   ET COMMENT;
    'COMMENT' LIBRARY 1;
    'REAL'
        C;
    'ARRAY'
        D[ - 0 : + 1, 0&0 : 1.0];
    'INTEGER''PROCEDURE' R(C);
        'REAL'
            C;
        R :=
            'IF' 'TRUE' 'THEN'
                C
            'ELSE'
                R(0);
    D[0, 0] := C := C := 1;
    'COMMENT' PROGRAM MODIFIED TO AVOID USE BEFORE DECLARATION;
    'BEGIN'
        'INTEGER''ARRAY'
            H,

==== ercc07/algtests_at92.txt ====

'BEGIN'
'COMMENT' LIBRARY 1;
    'INTEGER'
        N;
    'INTEGER''PROCEDURE' P(Q, R);
        'INTEGER''PROCEDURE' Q;
        'COMMENT'   (R):'INTEGER''PROCEDURE' R;
        'INTEGER''PROCEDURE' R;
        'BEGIN'
        'INTEGER'
            B;
        B := 3 * Q(R);
        P := B
        'END';
    'INTEGER''PROCEDURE' A(F);
        'INTEGER''PROCEDURE'
            F;
        A := 2 * F;
    'INTEGER''PROCEDURE' B;
        'BEGIN'

==== ercc07/algtests_at93.txt ====

'BEGIN'
    'COMMENT' LIBRARY 3;
    'REAL' 'PROCEDURE' A(K, X1, X2, X3, X4, X5);
        'VALUE'
            K;
        'INTEGER'
            K;
        'REAL'
            X1,
            X2,
            X3,
            X4,
            X5;
        'BEGIN'
        'REAL' 'PROCEDURE' B;
            'BEGIN'
            K := K - 1;
            B := A := A(K, B, X1, X2, X3, X4)
            'END';
        'IF' K <= 0 'THEN'

==== ercc07/asss[1].txt ====
%externalroutine icl9cezassemble
%EXTERNALINTEGERMAPSPEC COMREG %ALIAS "S#COMREGMAP"(%INTEGER N)
%EXTERNALROUTINESPEC IPUT %ALIAS "S#IPUT"(%INTEGER TYPE,LENGTH,LA,IA)
%ROUTINESPEC ASSEMBLE(%BYTEINTEGERARRAYNAME S, %INTEGERNAME L,F)
%INTEGER DUMMY,FLAG,FILE ADDR,FILE PTR,FILE END,L,LL
%BYTEINTEGERARRAY OPCODE(0:32*1024)
%OWNINTEGERARRAY FDI(0:5)=0,24,32,0,0,0
      L=32000
%ownstring(63) hdr=" EMAS ASSEMBLER  RELEASE  2  VERSION  23Sep85"
      NEWLINES(2); SPACES(15)
      PRINTSTRING(hdr)
      NEWLINES(4)
      FILE ADDR=COMREG(46)
      %IF FILE ADDR#0 %THENSTART
         FILE PTR=FILE ADDR+INTEGER(FILE ADDR+4)
         FILE END=FILE ADDR+INTEGER(FILE ADDR)
      %FINISH
      ASSEMBLE(OPCODE,L,FLAG)
      NEWLINES(2)
      PRINTSYMBOL('*')
      %IF FLAG=0 %THEN PRINTSTRING("ASSEMBLY SUCCESSFUL") %ELSESTART

==== ercc07/algtests_at94.txt ====

'BEGIN'
    'COMMENT' LIBRARY 1;
    'INTEGER'
        J,
        K,
        S;
    'INTEGER''PROCEDURE' F(N);
        'VALUE'
            N;
        'INTEGER'
            N;
        'BEGIN'
        'INTEGER'
            I,
            L;
        'FOR' I := N,
            S 'DIV' 2 'WHILE' S < 16 'OR' S = 28 'DO'
            'BEGIN'
            S := S + I + N;
            L := I

==== ercc07/algtests_at95.txt ====

'BEGIN'
    'COMMENT' LIBRARY 1;
    'REAL' 'PROCEDURE' G(X);
        'REAL'
            X;
        G := X + 1;
    'REAL' 'PROCEDURE' A(H);
        'REAL' 'PROCEDURE'
            H;
        'COMMENT'   (H1): 'REAL' H1;
        'BEGIN'
        'REAL' 'PROCEDURE' LOC(X);
            'REAL'
                X;
            LOC := H(G(X));
        A := LOC(0);
        'END' A;
    'REAL' 'PROCEDURE' B(F, H);
        'REAL' 'PROCEDURE'
            F;

==== ercc07/algtests_at96.txt ====

'BEGIN'
    'COMMENT' LIBRARY 1;
    'PROCEDURE' P(F);
        'REAL' 'PROCEDURE'
            F;
        'COMMENT'   (F1):'LABEL' F1;
        F((M));
    B1 :;
    'BEGIN'
        'REAL' 'PROCEDURE' Q(L);
            'LABEL'
                L;
            'BEGIN'
            'GOTO' L;
            Q := 0;
            OUTREAL(99, 1)
            'END';
        B2 :;
        'BEGIN'
            'REAL'

==== ercc07/trimp_pnxlink4.txt ====
LINK
ERCC07.P1Y
ERCC07.XP2Y
ERCC07.XOPTY
ERCC07.XGEN4Y
ERCS04.NEWPNX_PUTY
ERCS04.NEWPNX_HEAPY
ERCS04.NEWPNX_PNXIMPY
.END
P0Y
MODIFY P0Y
SATISFY REFS
.ALL
SATISFY DATA
.ALL
SUPPRESS
.ALL
RETAIN
PNXIMP,ICL9CEZPNXIMP
SUPPRESS DATA
.ALL

==== ercc07/machineoper.txt ====
!
!                       E MACHINE OPERAND FORMS
!                       -----------------------
!
! Simple Forms
! ------------
!
! Litval
! corresponding address none (but see note A)
!
!               The operand is a literal
!
! Regval& Fregval  (also Regaddr & Regvar)
! corresponding address forms:-  none (but see note A)
!
!               The operand is in a Register - the form Regaddr
!               is used when the operand is known to be an
!               address but for code generation there is no
!               difference.  Care must be taken with Regvar
!               not to overwrite it except at assignment
!

==== ercc07/algtests_at97.txt ====

'BEGIN'
    'COMMENT' LIBRARY 1;
    'INTEGER'
        X,
        N,
        K;
    'REAL' 'PROCEDURE' SIGMA(I, K, L, T);
        'VALUE'
            L;
        'INTEGER'
            I,
            K,
            L;
        'REAL'
            T;
        'BEGIN'
        'REAL'
            X;
        X := 0;
        'FOR' I := K 'STEP' 1 'UNTIL' L 'DO'

==== ercc07/portenv03_maths.txt ====
%include "itrimp_hostcodes"
%CONSTINTEGER TARGET=M88K
!%EXTERNALROUTINESPEC IOCP %ALIAS "s_iocp"(%INTEGER EP,N)
%CONSTLONGREAL LOG10A=2.3025850929940456840179914546843642076011
%CONSTLONGREAL PI=3.141592653589793238462643
%CONSTLONGREAL R1= 1.2595802263029547@  1{R'41C98867F42983DF'}
%CONSTLONGREAL R2=-8.6186317517509520@  1{R'C2562FB2813C6014'}
%CONSTLONGREAL R3=-1.2766919133361079@  0{R'C1146D547FED8A3D'}
%CONSTLONGREAL R4=-8.3921038065840512@ -2{R'C0157BD961F06C89'}
%CONSTLONGREAL S1= 2.7096164294378656@  1{R'421B189E39236635'}
%CONSTLONGREAL S2= 6.5581320451487386@  0{R'4168EE1BDE0C3700'}
%CONSTLONGREAL S3= 2.1441643116703661@  0{R'41224E7F3CBDFE41'}
%CONSTLONGREAL S4= 1.2676256708212610@  0{R'41144831DAFBF542'}
%CONSTLONGREAL RT3= 1.7320508075688772@  0{R'411BB67AE8584CAA'}
%CONSTLONGREAL PIBY6= 5.2359877559829887@ -1{R'40860A91C16B9B2C'}
%CONSTLONGREAL PIBY2M1= 5.7079632679489661@ -1{R'40921FB54442D184'}
%CONSTLONGREAL RT3M1=7.3205080756887728@ -1{R'40BB67AE8584CAA7'}
%CONSTLONGREAL TANPIBY12= 2.6794919243112271@ -1{R'404498517A7B3559'}
%CONSTLONGREAL PIBY4= 7.8539816339744816@ -1{R'40C90FDAA22168C2'}
%CONSTLONGREAL A1= 7.5000000000000000@ -1{R'40C0000000000000'}
%CONSTLONGREAL A2= 3.5398163397448309@ -2{R'3F90FDAA22168C23'}

==== ercc07/trimp_pnxlink5.txt ====
LINK
ERCC07.XP1Y
ERCC07.XP2Y
ERCC07.XOPTY
ERCC07.XGEN5Y
ERCC07.CSERV01Y
ERCS04.PNX_PUTY
ERCS04.PNX_HEAPY
ERCS04.PNX_PNXIMPY
.END
P0Y
MODIFY P0Y
SATISFY REFS
.ALL
SATISFY DATA
.ALL
SUPPRESS
.ALL
RETAIN
PNXIMP,ICL9CEZPNXIMP
SUPPRESS DATA

==== ercc07/algtests_at98.txt ====

'BEGIN'
    'COMMENT' LIBRARY 1;
    'REAL' 'PROCEDURE' R(A);
        'REAL'
            A;
        'BEGIN'
        'INTEGER''PROCEDURE' P(B, C);
            'INTEGER'
                B,
                C;
            P := B + C;
        R := P(A + 1, A)
        'END' R;
    'REAL'
        X;
    'BEGIN'
        'REAL'
            Y;
        Y := 4;
        X := R(R(Y + 1))

==== ercc07/algtests_at99.txt ====

'BEGIN'
    'COMMENT' LIBRARY 1;
'COMMENT' THIS PROGRAM HAS BEEN MODIFIED TO AVOID USE BEFORE DECLARATION
         AND ALSO TO REMOVE THE TYPE CHANGES ON ARRAYS TO VALUE;
    'INTEGER''ARRAY'
        A[16384 : 16385, - 16383 : - 16382];
    'INTEGER'
        S;
    'ARRAY'
        B[1 : 2, 0 : 2];
    'PROCEDURE' P(A, B, C, D);
        'VALUE'
            B,
            C;
        'REAL'
            A,
            B;
        'ARRAY'
            C,
            D;

==== ercc07/pnxlink6.txt ====
LINK ,map
ERCC07:XP1Y
ERCC07:XP22Y
ERCC07:XOPTY
ERCC07:XGEN6Y
ERCC07:CSERV01x
ERCS04:PNX_PUTY
ERCS04:PNX_HEAPY
ercs04:pnx_ccodey
.END
P0Y
MODIFY P0Y
SATISFY REFS
.ALL
SATISFY DATA
.ALL
SUPPRESS
.ALL
RETAIN
pnxgenerateobject,ICL9CEZPNXIMP
SUPPRESS DATA

==== ercc07/gbits_gput8s.txt ====
!************************************************************
!*** YOU MUST SET 'SYSTEM' and 'FORMAT' VARIABLE BELOW ******
!************************************************************
! 23/june/87 Fix Relafm initial bound                        gput8
!
! 15/june/87 Tidy up for release. MPX  version no            gput7
!
! 3 /june/87 Corrections mainly for sect numbers in symbols. gput6
!
! 21/may/87 Correction for FAR. Lose extra byte in dict.     gput4u
!
!  6/5/87 Move section symbols to end and get rid of         gput4
!         empty sections.
!  30/4/87  Check out BSD.                                   gput3
!
! 13/4/87 Fix bad order of .text and .nbtext .               gput2
!         And make relocs relative to section.
!
! Amalgamate NP, MPX, C and UTX versions into new root       gput1
! With COFF changes added.
! 2/mar/87

==== ercc07/trimp_emaslink.txt ====
LINK
EP1Y
EP2Y
EOPTY
EGENY
CSERV01Y
.END
P0Y
MODIFY P0Y
SATISFY REFS
.ALL
SATISFY DATA
.ALL
SUPPRESS
.ALL
RETAIN
ICL9CEZIOPT
SUPPRESS DATA
.ALL
CLOSE
NEWGEN P0Y,IOPT01Y

==== ercc07/ifast7s.txt ====
%INCLUDE "ercc07:ibmsup_comf370"
%INCLUDE "ercc07:ibmsup_page0f"
%INCLUDE "ercc07:ibmsup_dtform1s"
%INCLUDE "ercc07:ibmsup_xaioform"
%RECORDFORMAT PARMF(%INTEGER DEST,SRCE,(%INTEGER P1,P2,P3,P4,P5,P6 %ORSTRING (23) TEXT))
%CONSTINTEGER PCELLSIZE=36,MARGIN=48
%RECORDFORMAT PDOPEF(%INTEGER CURRMAX,MAXMAX,FIRST UNALLOC,LAST UNALLOC,NEXTPAGE,S1,S2,S3,S4)
%RECORDFORMAT PARMXF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6,LINK)
%CONSTRECORD (PARMXF) %ARRAYNAME PARM=PARM0AD
%CONSTRECORD (PDOPEF) %NAME PARMDOPE=PARM0AD
%RECORDFORMAT STOREF(%SHORTINTEGER FLAGS,USERS,LINK,BLINK,FLINK)
%CONSTRECORD (STOREF) %ARRAYNAME STORE=STORE0AD
!
%EXTERNALLONGINTEGER SEMATIME=0
%OWNINTEGER PARMASL=0
%EXTERNALINTEGER MAINQSEMA=-1
%EXTERNALINTEGERSPEC STORESEMA
%OWNINTEGERARRAY GET NEW PAGE(0:14);    ! parms for call of new epage
!
%CONSTINTEGER LOCSN1=LOCSN0+MAXPROCS
%RECORDFORMAT SERVF(%INTEGER P,L)

==== ercc07/makedrs_gen4.txt ====
offer dgens
parm nocheck
edit drsgen04s,dgens
a/%incl/d1i<itrimp_hostcodes>
a'd1i<ercs01:ebits_ecodes8>
a'd1i<tripcnsts>
a'd1i<itrimp_tform2s>
a'd1i<ercs01:ebits_especs2>
e
imp dgens,.null
offer dgens,zepz06

==== ercc07/editinc1s.txt ====
/*

                              EDIT


Copyright (C)   A.Gibbons   University of Edinburgh   MCMXC

*/

#define msdos 1
#define castle 2
#define metsun 4
#define hp9000 8
#define cssun 16
#define TARGET castle

#if (TARGET == msdos)

#include <graph.h>
#include <stdlib.h>
#include <process.h>

==== ercc07/makedrs_gen5.txt ====
parm nocheck
edit drsgen05s,dgens
a/%incl/d1i<itrimp_hostcodes>
a'd1i<ercs01:ebits_ecodes28>
a'd1i<tripcnsts>
a'd1i<itrimp_tform2s>
a'd1i<ercs01:ebits_especs5>
ta/host=/r6i/DRS/
e
imp dgens,.null
transfer dgens,castle(ercc07,pete)impdir/sources/d386p4s10.i,file

==== ercc07/perq3link.txt ====
LINK
ERCC07:p3p1Y
ERCC07:p3p22Y
ERCC07:p3oPT3Y
ERCC07:P3GEN2Y
ERCC07:CSERV01x
ercs01:EBITS_etrput1y
.END
P0Y
MODIFY P0Y
SATISFY REFS
.ALL
SATISFY DATA
.ALL
SUPPRESS
.ALL
RETAIN
ICL9CEZperq3IMP
SUPPRESS DATA
.ALL
CLOSE

==== ercc07/makedrs_gen6.txt ====
parm nocheck
edit drsgen06s,dgens
a/%incl/d1i<itrimp_hostcodes>
a'd1i<ercs01:ebits_ecodes28>
a'd1i<tripcnsts>
a'd1i<itrimp_tform2s>
a'd1i<ercs01:ebits_especs5>
ta/host=/r6i/DRS/
e
imp dgens,.null
transfer dgens,epcfta(pds,peathag)d386p4s11.i,file

==== ercc07/pdsputs.txt ====
      {*********************}
      {*     EMAS 370      *}
      {*   PUT INTERFACE   *}
      {*   April 22 1985   *}
      {*********************}

%CONSTSTRING (31) PUTVERSION= "PUT: version 13th November 1985"

      { These are the low level code and object generation routines which are common}
      { to our XA compilers in the EMAS 370 environment. }

      {April 22nd - Began move to new object file format. Incorporated LPUT functions}
      { April 18th - added Fortran features: Switch Val and Entry }



      { Tracing control }

%CONSTINTEGER ON= 1, OFF = 2
%CONSTINTEGERNAME PTURNSA=x'003008d4'
%CONSTSTRING (5) %ARRAY CHEADINGS(0:15)="pinit","pterm","pjump","plabl",

==== ercc07/eamdgen00s.txt ====
!
! Warning this module has the revised triples spec.
!
! In first attempt at Triple Imp considerable use was made of constant operands
! to pass information from Pass2 to GEN. Although for specialised operations like
! passing Labels this still applies, this adhocery has caused problems with arrays
! and pointers particularly in mapped records. The operands for four triples
! have thus been redefined in a more standard way.
!
! GETPTR    X1 is now (ptype of passed)<<16! DIMENSION
!           Opnd2 is either a 32 bit const with the size (ACC) as value or
!           the ptr or arrayhead as normal operand.
!
! VMY       X1 is now dim<<28!maxdim<<24!array name(where known)
!           Opnd2 is either a 32 bit const with DV offset into const area or
!           the arrayhead as a standard operand
!
! AINDX     X1 is ELSIZE<<20 !spare
!           Opnd2 is arrayhead as standard operand
!           NOTE:- The Operands have been swopped for consistency with norm.
!

==== ercc07/ifast8s.txt ====
%INCLUDE "ercc07:ibmsup_comf370"
%INCLUDE "ercc07:ibmsup_page0f"
%INCLUDE "ercc07:ibmsup_dtform1s"
%INCLUDE "ercc07:ibmsup_xaioform"
%RECORDFORMAT PARMF(%INTEGER DEST,SRCE,(%INTEGER P1,P2,P3,P4,P5,P6 %ORSTRING (23) TEXT))
%CONSTINTEGER PCELLSIZE=36,MARGIN=48
%RECORDFORMAT PDOPEF(%INTEGER CURRMAX,MAXMAX,FIRST UNALLOC,LAST UNALLOC,NEXTPAGE,S1,S2,S3,S4)
%RECORDFORMAT PARMXF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6,LINK)
%CONSTRECORD (PARMXF) %ARRAYNAME PARM=PARM0AD
%CONSTRECORD (PDOPEF) %NAME PARMDOPE=PARM0AD
%RECORDFORMAT STOREF(%SHORTINTEGER FLAGS,USERS,LINK,BLINK,FLINK)
%CONSTRECORD (STOREF) %ARRAYNAME STORE=STORE0AD
!
%EXTERNALLONGINTEGER SEMATIME=0
%OWNINTEGER PARMASL=0
%EXTERNALINTEGER MAINQSEMA=-1
%EXTERNALINTEGERSPEC STORESEMA
%OWNINTEGERARRAY GET NEW PAGE(0:14);    ! parms for call of new epage
!
%CONSTINTEGER LOCSN1=LOCSN0+MAXPROCS
%RECORDFORMAT SERVF(%INTEGER P,L)

==== ercc07/trimp_pnxponeas.txt ====
%INCLUDE "ERCC07.TRIMP_HOSTCODES"
%CONSTINTEGER HOST=EMAS
%CONSTINTEGER TARGET=PNX
! PRODUCED BY OLDPS FROM TRIMP_PNXPS01 ON 06/09/83
%CONSTBYTEINTEGERARRAY CLETT(0: 436)=   1,
  40,   1,  41,   1,  42,   1,  44,   2, 201, 198,   6, 213, 206, 204,
 197, 211, 211,   5, 215, 200, 201, 204, 197,   5, 213, 206, 212, 201,
 204,   3, 198, 207, 210,   1,  61,   5, 193, 204, 201, 193, 211,   7,
 201, 206, 212, 197, 199, 197, 210,   4, 210, 197, 193, 204,   4, 204,
 207, 206, 199,   4, 194, 217, 212, 197,   6, 211, 212, 210, 201, 206,
 199,   4, 200, 193, 204, 198,   5, 211, 200, 207, 210, 212,   6, 210,
 197, 195, 207, 210, 196,   7, 210, 207, 213, 212, 201, 206, 197,   2,
 198, 206,   3, 205, 193, 208,   8, 198, 213, 206, 195, 212, 201, 207,
 206,   4, 206, 193, 205, 197,   9, 193, 210, 210, 193, 217, 206, 193,
 205, 197,   9, 207, 198, 208, 210, 207, 199, 210, 193, 205,   6, 207,
 198, 198, 201, 204, 197,   6, 207, 198, 204, 201, 211, 212,   6, 198,
 207, 210, 205, 193, 212,   3, 206, 207, 212,   3, 193, 206, 196,   2,
 207, 210,   1,  58,   4, 211, 208, 197, 195,   5, 193, 210, 210, 193,
 217,   3, 207, 215, 206,   8, 197, 216, 212, 197, 210, 206, 193, 204,
   9, 197, 216, 212, 210, 201, 206, 211, 201, 195,   8, 195, 207, 206,
 211, 212, 193, 206, 212,   5, 195, 207, 206, 211, 212,   5, 197, 214,

==== ercc07/trimp_ibmlink.txt ====
LINK
IP1Y
IP2Y
IOPTY
IGENY
CSERV01Y
ERCC10.IBMRECODEY
ERCS12.IPUT_IPUT01Y
.END
P0Y
MODIFY P0Y
SATISFY REFS
.ALL
SATISFY DATA
.ALL
SUPPRESS
.ALL
RETAIN
ICL9CEZIBMIMP
SUPPRESS DATA
.ALL

==== ercc07/puts.txt ====
{*********************}
{*     XA  EMAS3     *}
{*   PUT INTERFACE   *}
{*   Sept 26  1984   *}
{*********************}

{ These are those low level code and object generation routines which are common}
{ to our XA compilers in the EMAS3 environment. }



{ Tracing control }

%constinteger On= 1, Off = 2

%constinteger Tracing= Off         { Controls conditional compilation }


{ Trace all significant calls on interface if: }
{ comreg(26)&1#0 (Major calls) or }
{ ComReg(26)&2#0 (Code planting calls) }

==== ercc07/ibmsup_xaioform.txt ====
!
! orbf is format for an operation request block
! irbf is format for interrupt response block
! schibf is the format for a subchannel inf block used by MSCH
!
%recordformat orbf(%integer ip,keytags,cpaddr)
%recordformat irbf(%integer keycntr,csw1,csw2,xstatusw,%integerarray ecws(0:11))
%recordformat  schibf(%integer ip,%short flags,devno,%byte lpm,pnom,lpum,pim,
    %short mbi,%byte pom,pam,chipd0,chipd1,chipd2,chipd3,chipd4,chipd5,
    chipd6,chipd7,%integer zword,keycntrl,csw1,csw2,md0,md1,md2)
!
! end of file xaioform
!

==== ercc07/pprof01s.txt ====

%externalROUTINE PPROFILE %alias "S#PPROFILE"(%INTEGER tabad)
%INTEGER LINES,V,I,J,MAX,MAXMAX
      LINES=integer(tabad)
      MAX=0
      %CYCLE I=1,1,LINES
         %IF INTEGER(tabad+4*I)>MAX %THEN MAX=INTEGER(tabad+4*I)
      %REPEAT
      MAXMAX=MAX
      MAX=1+MAX//40;                 ! TWO&AHALF PER CENT
      %CYCLE I=1,1,LINES
         V=INTEGER(tabad+4*I)
         %IF V>=MAX %THEN %START
            WRITE(I,4)
            J=I
            J=J+1 %WHILE INTEGER(tabad+4*J+4)=V
            %IF J#I %THEN PRINTSTRING("->") %AND WRITE(J,4) %C
                  %ELSE SPACES(7)
            I=J
            WRITE(V,6)
            %IF V=MAXMAX %THEN PRINTSTRING("   ***")

==== ercc07/bootgen1s.txt ====
!
! Copyright P.D.Stephens 1988
! This is a modified Ecode generator with chenges so that it is available
! for rapid implementation of a complete compiler system. The aim is to be able
! to bring up EMAS compilers fast on another system if there is a big bang
! change in the near future. Also this version is intended to be "Definitive"
! ie to define what some of the more specialised operations have to do.
! To this aid extended commentary has been added.

!
! The following changes have been made from a standard generator
!
! 1)  All eops go via one routine(EOP). The Ef77op, Epasop etc are dummies
!
! 2)  As many specialized operations as possible are re-implemted in terms
!     of simplier Ecode operations. This makes the generator highly recursive
!
! 3)  Address and refer are implemented as far as possible via state 
!     transitions not by planting code
!
! 4)  A routine Trapjump (QV) has been introduced to tidy up error exits

==== ercc07/trimp_perqps01.txt ====
43
D(NAME)
D(ICONST)
D(CONST)
D(DUMMYSTART)
D(N)
D(S)
D(TEXT)
D(BIGHOLE)
D(N255)
D(HOLE)
D(MARK)
D(READLINE?)
D(TEXTTEXT)
D(DUMMYAPP)
D(DOWN)
D(UP)
D(LISTON)
D(LISTOFF)
D(COLON)
D(NOTECONST)

==== ercc07/gbits_gldauxst2s.txt ====
! 06/01/89 -  Combined aux stack support for IMP and Pascal 
! The old routine iauxst is included for back compatability
! but will eventually be dropped
!
%constinteger trace=0
%constinteger auxsize=x'20000'
!*
!
! dont disturb the order of the next 3 lines assumed by IMp compiler
!
%externalinteger auxcur %alias "p_aux"
%owninteger auxtop
%owninteger auxbase=0
!*
%externalintegerfnspec malloc(%integer size)
!*
%externalroutine Initaux (%integer auxsize { in Kilobytes})
%integer amount
      %if auxbase#0 %then %return;      !  already initialised
      %if Auxsize < 16 %then Auxsize=16
      Amount = auxsize<<10

==== ercc07/vaxsup_setsigsc.txt ====
#include <signal.h>
#define DELLCCOMPILER
 
extern onsignal(); 
 
f_setsigs ()
{
         /* Set traps to take interrupts to IMP diagnostics */
 
    if ((int)signal(SIGFPE,  SIG_IGN) != SIG_IGN) signal(SIGFPE,  onsignal);
    if ((int)signal(SIGILL,  SIG_IGN) != SIG_IGN) signal(SIGILL,  onsignal);
    if ((int)signal(SIGEMT,  SIG_IGN) != SIG_IGN) signal(SIGEMT,  onsignal);
    if ((int)signal(SIGSEGV, SIG_IGN) != SIG_IGN) signal(SIGSEGV, onsignal);
    if ((int)signal(SIGIOT,  SIG_IGN) != SIG_IGN) signal(SIGIOT,  onsignal);
    if ((int)signal(SIGQUIT, SIG_IGN) != SIG_IGN) signal(SIGQUIT, onsignal);
    if ((int)signal(SIGBUS,  SIG_IGN) != SIG_IGN) signal(SIGBUS,  onsignal);
}

==== ercc07/ifast9s.txt ====
%INCLUDE "ercc07:ibmsup_comf370"
%INCLUDE "ercc07:ibmsup_page0f"
%INCLUDE "ercc07:ibmsup_dtform1s"
%INCLUDE "ercc07:ibmsup_xaioform"
%RECORDFORMAT PARMF(%INTEGER DEST,SRCE,(%INTEGER P1,P2,P3,P4,P5,P6 %ORSTRING (23) TEXT))
%CONSTINTEGER PCELLSIZE=36,MARGIN=48
%RECORDFORMAT PDOPEF(%INTEGER CURRMAX,MAXMAX,FIRST UNALLOC,LAST UNALLOC,NEXTPAGE,S1,S2,S3,S4)
%RECORDFORMAT PARMXF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6,LINK)
%CONSTRECORD (PARMXF) %ARRAYNAME PARM=PARM0AD
%CONSTRECORD (PDOPEF) %NAME PARMDOPE=PARM0AD
%RECORDFORMAT STOREF(%SHORTINTEGER FLAGS,USERS,LINK,BLINK,FLINK)
%CONSTRECORD (STOREF) %ARRAYNAME STORE=STORE0AD
!
%EXTERNALLONGINTEGER SEMATIME=0
%OWNINTEGER PARMASL=0
%EXTERNALINTEGER MAINQSEMA=-1
%EXTERNALINTEGERSPEC STORESEMA
%OWNINTEGERARRAY GET NEW PAGE(0:14);    ! parms for call of new epage
!
%CONSTINTEGER LOCSN1=LOCSN0+MAXPROCS
%RECORDFORMAT SERVF(%INTEGER P,L)

==== ercc07/vaxsup_imp81cld.txt ====
MODULE imp80_table

DEFINE VERB IMP80
   QUALIFIER LIST, NEGATABLE
   QUALIFIER DIAG, NEGATABLE
   QUALIFIER CHECK, NEGATABLE
   QUALIFIER ARRAY, NEGATABLE
   QUALIFIER TRACE, NEGATABLE
   QUALIFIER OPT, NONNEGATABLE
   QUALIFIER LINE, NEGATABLE
   QUALIFIER MAP, NONNEGATABLE
   QUALIFIER CODE, NEGATABLE
   QUALIFIER PARMZ, NEGATABLE
   QUALIFIER PARMY, NEGATABLE
   QUALIFIER PARMX, NEGATABLE
   DISALLOW OPT AND (CHECK OR ARRAY OR DIAG)
   IMAGE "U1:[ERCC07]IMP80"
   PARAMETER P1,PROMPT="Source file",LABEL=SOURCEFILE,VALUE(REQUIRED,TYPE=$FILE)

==== ercc07/putspecs.txt ====
{* IBM XA Code Planting routinespecs *}

{******** Monitoring *********}

{ Parm CODE will cause a line by line decode of instructions }
{ Monitoring of all non-code planting is turned on by PMonOn or bit 1 of }
{ COMREG(26). Monitoring of code planting is turned on by bit 2 of COMREG(26) }
{ COMREG(26)=128 causes decoding of each instruction as planted }
{ COMREG(26)=256 causes decoding of the whole code area after fixups }

{* The following routinespecs have been provided initially, corresponding to the *}
{* formats given in the "Principles of Operation".                           *}

   %externalroutinespec PIX RR %alias "S#PIXRR" (%integer Op, R1, R2)
      { Plant RR format instruction }

   %externalroutinespec PIX RRE %alias "S#PIXRRE"(%integer Op, R1, R2)
      { Plant RRE format instruction }

   %externalroutinespec PIX RX %alias "S#PIXRX" (%integer Op, R1, X2, B2, D2)
      { Plant RX format instruction }

==== ercc07/ibmsup_config370.txt ====
!
!     4341 configuration
!
%constinteger cf entry size=32
%constinteger cfentries=8
%constintegerarray config file(0:cfentries*(cf entry size//4)-1)= %c
      cfentries*cf entry size,1,1,6,x'282',1,500,0,
      3,m'FD00',x'193',0,3,0,0,0,
      mt<<16!x'ff',10,512,0,0,x'281',m'M60',x'00ff0000',
      mt<<16!x'ff',10,512,0,0,x'282',m'M60',x'00000100',
      op<<16!x'ff',10,512+oper screen size,0,0,x'9',m'OP0',0,
      lp<<16!x'ff',60,2048,0,0,x'e',m'LP0',0,
      cr<<16!x'ff',300,512,0,0,x'c',m'CR0',0,
      cp<<16!x'ff',300,512,0,0,x'd',m'CP0',0
!

==== ercc07/makeimp.txt ====
parm nocheck,maxdict
imp ercc07:itrimp_ibmponeas+ercc07:poneb02s,ip12y,l0
imp ercc07:itrimp_ibmptwoas+timp03s,ip23y,l1
imp ercc07:itrimp_ibmoptas+opt03s,iopt3y,l2
imp ibmgen05s,igen5y,l5

==== ercc07/drsgen03s.txt ====
!
! Warning this module has the revised triples spec.
!
! In first attempt at Triple Imp considerable use was made of constant operands
! to pass information from Pass2 to GEN. Although for specialised operations like
! passing Labels this still applies, this adhocery has caused problems with arrays
! and pointers particularly in mapped records. The operands for four triples
! have thus been redefined in a more standard way.
!
! GETPTR    X1 is now (ptype of passed)<<16! DIMENSION
!           Opnd2 is either a 32 bit const with the size (ACC) as value or
!           the ptr or arrayhead as normal operand.
!
! VMY       X1 is now dim<<28!maxdim<<24!array name(where known)
!           Opnd2 is either a 32 bit const with DV offset into const area or
!           the arrayhead as a standard operand
!
! AINDX     X1 is ELSIZE<<20 !spare
!           Opnd2 is arrayhead as standard operand
!           NOTE:- The Operands have been swopped for consistency with norm.
!

==== ercc07/makep3_p1.txt ====
edit poneb01s,p3p1s
i<itrimp_perq3poneas>
ta/%inc/
d1i<itrimp_hostcodes>
a'
d1i<itrimp_tform2s>
m/%constlonglongreal/
(a/r'/a16d/'/i/'/)154
e
imp p3p1s,.null
offer p3p1s,ercs01

==== ercc07/makep3_p2.txt ====
edit timp02s,p3p2s
i<itrimp_perq3ptwoas>
ta/%inc/
d1i<itrimp_hostcodes>
a'
d1i<tripcnsts>
a'
d1i<itrimp_tform2s>
e
imp p3p2s,.null
offer p3p2s,ercs01

==== ercc07/perfs.txt ====
%CONSTINTEGER MAXPROCS=256
%CONSTINTEGER YES=1,NO=0
%CONSTINTEGER VAMODE=YES
%CONSTINTEGER COM SEG=31
%CONSTINTEGER LOCSN0=64
%CONSTINTEGER PAGESIZE=4096
%CONSTINTEGER SSHIFT=20
%INCLUDE "ercc07:ibmsup_comf370"
!-----------------------------------------------------------------------
%CONSTINTEGER EPAGESPERSEC=600;         !EPAGES THRU one DISC CONTROLLER PER SECOND
!----------------------------------------------------------------------

%EXtERNALSTRINGFUNCTIONSPEC ITOS %alias "S#ITOS" (%INTEGER N)


%EXTERNALROUTINESPEC MOVE %ALIAS "S#MOVE"(%INTEGER NLENGTH,NFROM,NTO)



%EXTERNALROUTINESPEC PROMPT %alias "S#PROMPT"(%STRING (255) S)


==== ercc07/pdiags1.txt ====
!*
!*
!***********************************************************************
!***********************************************************************
!*                                                                     *
!*      P A S C A L   P O S T M O R T E M   D I A G N O S T I C S      *
!*                                                                     *
!***********************************************************************
!***********************************************************************
!*
!*
!*  History
!*  -------
!*
!*  Version 1 for PERQ2.
!*
%CONST %INTEGER PERQ2= 0;
%CONST %INTEGER PERQ3= 1;
%CONST %INTEGER AMDAHL= 2;
%CONST %INTEGER GOULD= 3;
%CONST %INTEGER HOST= AMDAHL

==== ercc07/trimp_ibmponeas.txt ====
%INCLUDE "ERCC07.TRIMP_HOSTCODES"
%CONSTINTEGER HOST=EMAS
%CONSTINTEGER TARGET=IBMXA
! PRODUCED BY OLDPS FROM TRIMP_IBMPS01 ON 12/04/84
%CONSTBYTEINTEGERARRAY CLETT(0: 440)=   1,
  40,   1,  41,   1,  42,   1,  44,   2, 201, 198,   6, 213, 206, 204,
 197, 211, 211,   5, 215, 200, 201, 204, 197,   5, 213, 206, 212, 201,
 204,   3, 198, 207, 210,   1,  61,   5, 193, 204, 201, 193, 211,   7,
 201, 206, 212, 197, 199, 197, 210,   4, 210, 197, 193, 204,   4, 204,
 207, 206, 199,   4, 194, 217, 212, 197,   6, 211, 212, 210, 201, 206,
 199,   4, 200, 193, 204, 198,   5, 211, 200, 207, 210, 212,   6, 210,
 197, 195, 207, 210, 196,   7, 210, 207, 213, 212, 201, 206, 197,   2,
 198, 206,   3, 205, 193, 208,   8, 198, 213, 206, 195, 212, 201, 207,
 206,   4, 206, 193, 205, 197,   9, 193, 210, 210, 193, 217, 206, 193,
 205, 197,   9, 207, 198, 208, 210, 207, 199, 210, 193, 205,   6, 207,
 198, 198, 201, 204, 197,   6, 207, 198, 204, 201, 211, 212,   6, 198,
 207, 210, 205, 193, 212,   3, 206, 207, 212,   3, 193, 206, 196,   2,
 207, 210,   1,  58,   4, 211, 208, 197, 195,   5, 193, 210, 210, 193,
 217,   3, 207, 215, 206,   8, 197, 216, 212, 197, 210, 206, 193, 204,
   9, 197, 216, 212, 210, 201, 206, 211, 201, 195,   8, 195, 207, 206,
 211, 212, 193, 206, 212,   5, 195, 207, 206, 211, 212,   5, 197, 214,

==== ercc07/makep3_opt.txt ====
edit opt03s,p3pos
i<itrimp_perq3optas>
ta/%inc/
d1i<itrimp_hostcodes>
a'
d1i<itrimp_tform2s>
a'
d1i<tripcnsts>
e
imp p3pos,.null
offer p3pos,ercs01

==== ercc07/sldxas.txt ====
         TITLE 'EMAS 370/XA self loading dump'
*
* R.D. Eager   University of Kent   MCMLXXXVI
* P.D.Stephens University of Edinburgh upgraded to format 1 ccws
* This module is loaded at real x1008 runs in page 1
*
SLD      START
*
         DC    X'0DC0'        * BASR  12,0 set up base register
         USING *,12
*
         L     1,184(0)      * get IPL subsystem ID
*
         LA    2,8           * make upper half of EC mode PSW
         SLL   2,16          * generates X80000
         LA    3,IOINT       * address of I/O interrupt handler
         STM   2,3,120(0)    * set up I/O interrupt vector
         OI    124(0),X'80'  * Set 31 bit mode
         LA    3,PEINT       * address of program interrupt handler
         STM   2,3,104(0)    * set up program interrupt vector
         OI    108(0),X'80'  * Set 31 bit mode

==== ercc07/drsgen04s.txt ====
!
! Warning this module has the revised triples spec.
!
! In first attempt at Triple Imp considerable use was made of constant operands
! to pass information from Pass2 to GEN. Although for specialised operations like
! passing Labels this still applies, this adhocery has caused problems with arrays
! and pointers particularly in mapped records. The operands for four triples
! have thus been redefined in a more standard way.
!
! GETPTR    X1 is now (ptype of passed)<<16! DIMENSION
!           Opnd2 is either a 32 bit const with the size (ACC) as value or
!           the ptr or arrayhead as normal operand.
!
! VMY       X1 is now dim<<28!maxdim<<24!array name(where known)
!           Opnd2 is either a 32 bit const with DV offset into const area or
!           the arrayhead as a standard operand
!
! AINDX     X1 is ELSIZE<<20 !spare
!           Opnd2 is arrayhead as standard operand
!           NOTE:- The Operands have been swopped for consistency with norm.
!

==== ercc07/drsimpcmds.txt ====
%externalintegermapspec Comreg%alias "S#COMREGMAP"(%integer N)
%externalroutinespec compile%alias "S#COMPILE"(%string(255) s, %string(31) entry,
%integername flag)
%externalstringfnspec failuremessage %alias"s#failuremessage" (%integer n)
%externalroutine orionimp %alias "C#ORIONIMP"
%integer flag
%string(255) s
s=""
compile(s,"ICL(CEZORIONIMP",flag)
printstring(failuremessage(flag)) %and %stop %unless flag=0
%end
%externalroutine DRSIMP %alias "C#DRSIMP"
%integer flag
%string(32) File
compile(file,"ICL9CEZDRSIMP",flag)
printstring( failuremessage(flag)) %and %stop %unless flag=0
%return %unless comreg(24)=0 %or comreg(24)=8
%end
%externalroutine UIMP %alias "C#UIMP"
%string(32)file
%integer flag

==== ercc07/trimp_emasps01.txt ====
43
D(NAME)
D(ICONST)
D(CONST)
D(DUMMYSTART)
D(N)
D(S)
D(TEXT)
D(BIGHOLE)
D(N255)
D(HOLE)
D(MARK)
D(READLINE?)
D(TEXTTEXT)
D(DUMMYAPP)
D(DOWN)
D(UP)
D(LISTON)
D(LISTOFF)
D(COLON)
D(NOTECONST)

==== ercc07/drsgen05s.txt ====
!
! Warning this module has the revised triples spec.
!
! In first attempt at Triple Imp considerable use was made of constant operands
! to pass information from Pass2 to GEN. Although for specialised operations like
! passing Labels this still applies, this adhocery has caused problems with arrays
! and pointers particularly in mapped records. The operands for four triples
! have thus been redefined in a more standard way.
!
! GETPTR    X1 is now (ptype of passed)<<16! DIMENSION
!           Opnd2 is either a 32 bit const with the size (ACC) as value or
!           the ptr or arrayhead as normal operand.
!
! VMY       X1 is now dim<<28!maxdim<<24!array name(where known)
!           Opnd2 is either a 32 bit const with DV offset into const area or
!           the arrayhead as a standard operand
!
! AINDX     X1 is ELSIZE<<20 !spare
!           Opnd2 is arrayhead as standard operand
!           NOTE:- The Operands have been swopped for consistency with norm.
!

==== ercc07/docs_edit.txt ====


      New Features in EMAS Editor
      ---------------------------

     A new version of the EMAS Editor (invoked by the Command EDIT) will be
introduced in October or when the 2988 hardware problems currently affecting
editors have been resolved. The most important of the new features is that the
Editor will save any editing when the process is closed down during an edit
session. The output will be written into a file E#EHA where it can be inspected
and copied to the required destination. Editing will no longer be lost for
communications breaks or user inactivity. The feature cannot guarantee to save
editing over system failures. Obviously at least one OCP, one disc controller
and the relevant file system disc must be operational before editing can be
saved. A report is left in the RECALL file whenever editing has been saved.

     Other commands changed are:

A,M (etc)  All text searching commands are now based on case independent text
           matching. Thus "M/Fred/" will move to "FRED" or "fred" as well as
           "Fred". The previous mode of case dependent matching can be restored

==== ercc07/makegld_p1.txt ====
offer gldp1s
parm nocheck,nolist
edit poneb02s,gldp1s
i<itrimp_gldponeas>
ta/%inc/
d1i<itrimp_hostcodes>
a'
d1i<itrimp_tform2s>
e
imp gldp1s,.null
offer gldp1s,ercs01

==== ercc07/docs_vectorp.txt ====
     In spite of the progress made recently with parallel machines and the
variety of applications which have been adapted for parallel techniques, there
remain a variety of numerically intensive applications requiring a fast single
processor. A vector processor is just such a fast single stream machine with
additional hardware to accelerate repeated similar calculations as might be
applied to arrays of data.  The University is fortunate in having a Gould NP1
machine on loan for a joint communications project and this is providing
valuable experience in this area. It is possible that the loan will be come
permanent if the University can raise fund to cover the maintenance.

     The magnitude of acceleration provided by a Vector processor is limited; a
factor of four or five seems to be the limit and the average increase in
performance of a lengthy and varied calculation is typically two to two and half
times. However Vector processors have one priceless advantage in that
reprogramming is not normally needed. The minor rearrangement of the (normally
Fortran) source is within the capabilities of current optimizing compiler
technology and the enhanced performance can usually be gained simply by
recompilation. Further accessible enhancement will come when certain scientific
subroutines like the NAG Library are available in vector form. For this reason
Vector processors are likely to have a permanent place in research orientated
computing

==== ercc07/makegld_p2.txt ====
parm nocheck,nolist
edit timp06s,gldp2s
i<itrimp_gldptwoas>
ta/%inc/
d1i<itrimp_hostcodes>
a'
d1i<tripcnsts>
a'
d1i<itrimp_tform2s>
e
imp gldp2s,.null
transfer gldp2s,epcpnb(pds,peathag)p2v12.i,file

==== ercc07/ibmsup_lcform2s.txt ====
%constinteger LSTLEN=256;               ! LOCAL SEGMENT TABLE LENGTH
%constinteger CBTLEN=299;               ! LENGTH OF CBT TABLE
%constinteger CONTEXTL=192;             ! LENGTH OF AN IBM CONTEXT
%constinteger LCONTN=5;                 ! NO OF LOCAL CONTEXTS
!
                                        ! CONTEXTF A SORT OF SSN+1
%recordformat CONTEXTF((%integer psw0,psw1 %or %longinteger PSW),
      {8}%integerarray GR(0:15),
      {72}FR(0:7),{104}CONTROLR(0:15),{168}%longinteger CPUTIMER,
      %integer ASYNI,SUSP,%short PECODE,ILC,%integer spare)
                                        ! PARMF FOR PARAMETER PASSING(32 BYTES
%recordformat PARMF((%integer DEST,SRCE %OR %short DSNO,DACT,SSNO,SACT),
      (%integer P1,P2,P3,P4,P5,P6 %OR %integerarray P(1:6) %OR %C
      %string(6)USER,%byte INCAR,%string(15)INTMESS))
!
                                        ! SIGOUTPF FOR PASSING SIGNALS(48 BYTES)
%recordformat SIGOUTPF(%integer DEST,SRCE,P1,P2,P3,P4,P5,P6,TYPE,SSN,SSNAD,SUSP)
!
                                        ! CBT THE CLAIMED BLOCK FORMAT
%recordformat CBTF(%integer DA,%short AMTX,%byte LNGTH,TAGS)
                                        ! CBT FLAGS DEFINED AS FOLLOWS

==== ercc07/drsgen06s.txt ====
! 26Sep90 Chnages for Unix shared code for unix 5.4 and later
!
!
! Warning this module has the revised triples spec.
!
! In first attempt at Triple Imp considerable use was made of constant operands
! to pass information from Pass2 to GEN. Although for specialised operations like
! passing Labels this still applies, this adhocery has caused problems with arrays
! and pointers particularly in mapped records. The operands for four triples
! have thus been redefined in a more standard way.
!
! GETPTR    X1 is now (ptype of passed)<<16! DIMENSION
!           Opnd2 is either a 32 bit const with the size (ACC) as value or
!           the ptr or arrayhead as normal operand.
!
! VMY       X1 is now dim<<28!maxdim<<24!array name(where known)
!           Opnd2 is either a 32 bit const with DV offset into const area or
!           the arrayhead as a standard operand
!
! AINDX     X1 is ELSIZE<<20 !spare
!           Opnd2 is arrayhead as standard operand

==== ercc07/makevns_p1.txt ====
edit poneb01s,vp1s
i<itrimp_vnsponeas>
ta/%inc/
d1i<itrimp_hostcodes>
a'
d1i<itrimp_tform2s>
m/%constlonglongreal/
e
imp vp1s,.null
offer vp1s,eepz06

==== ercc07/trimp_ibmps01.txt ====
43
D(NAME)
D(ICONST)
D(CONST)
D(DUMMYSTART)
D(N)
D(S)
D(TEXT)
D(BIGHOLE)
D(N255)
D(HOLE)
D(MARK)
D(READLINE?)
D(TEXTTEXT)
D(DUMMYAPP)
D(DOWN)
D(UP)
D(LISTON)
D(LISTOFF)
D(COLON)
D(NOTECONST)

==== ercc07/makevns_p2.txt ====
edit timp02s,vp2s
i<itrimp_vnsptwoas>
ta/%inc/
d1i<itrimp_hostcodes>
a'
d1i<tripcnsts>
a'
d1i<itrimp_tform2s>
e
imp vp2s,.null
offer vp2s,eepz06

==== ercc07/emas-2900/perqtrimp_blurb.txt ====

      This comprises all the Perq (pos) components of triple imp together
with the latest versions of pass1 &pass2. It will not make a working
compiler since one or two more facilities are needed in Perqgen
to keep up with the latest additions to tripleimp. It does from the basis
of a further implementation should Pos every be reurrected.
                                        PDS 12/09/83

==== ercc07/emas-2900/sup26csrce_makeopt.txt ====
PARM FREE,OPT,STACK,NOLIST
IMP CTOPT+SUP26CSRCE_SUP26CS,SUPZZ,,.OUT
IMP CTOPT+SUP26CSRCE_COM29S,COMZZ,,.OUT
IMP CTOPT+SUP26CSRCE_PRINT04S,PRINTZZ,,.OUT
IMP SUP26CSRCE_OPER31S,OPERZZ,,.OUT
IMP SUP26CSRCE_ENTER04S,ENTERZZ,,.OUT
IMP SUP26CSRCE_GPC28S,GPCZZ,,.OUT
IMP SUP26CSRCE_NDIAG06S,NDIAGZZ,,.OUT
IMP CTOPT+SUP26CSRCE_COMMS42S,COMMSZZ,,.OUT
IMP CTOPT+SUP26CSRCE_FAST27S,FASTZZ,,.OUT
IMP SUP26CSRCE_TAPE65S,TAPEZZ,,.OUT
PARM MAP
LINK
SUPZZ
COMZZ
PRINTZZ
OPERZZ
ENTERZZ
GPCZZ
NDIAGZZ
COMMSZZ

==== ercc07/emas-2900/pnxgen04s.txt ====
%INCLUDE  "ERCS04.PNX_CCODES"
%INCLUDE "ERCC07.TRIPCNSTS"
%INCLUDE "ERCC07.TRIMP_TFORM1S"
%CONSTINTEGER ESTK=0,BR0=1,BR1=2,BR2=3,BR3=4,FR0=5,FR1=6,FR2=7,FR3=8,
               BRN=BR0<<16!BR3,FRN=FR0<<16!FR3
%RECORDFORMAT REGF(%INTEGER CL,(%INTEGER USE %OR %HALF SECUSE,PRIMUSE),
      %INTEGER INF1,INF2,AT,LINK)
%OWNINTEGER CABUF,GLACABUF,GLABEL,FPPTR,FPHEAD
%OWNINTEGERNAME CA,GLACA,PPCURR
%OWNINTEGERARRAYNAME CTABLE,TAGS
!%OWNBYTEINTEGERARRAYNAME CODE
%OWNRECORD(LISTF)%ARRAYNAME ASLIST
%EXTRINSICINTEGERARRAY CAS(0:12)
%EXTRINSICRECORD(WORKAF)WORKA
%EXTRINSICRECORD(PARMF) PARM
%CONSTINTEGER MAXREG=8
%OWNRECORD(REGF)%ARRAY REGS(0:MAXREG)
%EXTERNALROUTINESPEC FLAGAND FOLD(%RECORD(TRIPF)%ARRAYNAME T)
%SYSTEMINTEGERMAPSPEC COMREG(%INTEGER N)
%EXTERNALROUTINESPEC FAULT(%INTEGER I,J,K)
%INCLUDE "ERCS04.PNX_PUTSPECS"

==== ercc07/emas-2900/dectalk.txt ====

Introduction

     Edinburgh University has run its computing service on essentially the  same
software  since  1970.    This  has been achieved by Porting an entire Operating
System twice.   The three machines used as Hosts had little in common except for
byte  addressing  and  virtual address support.   The User community have had an
exceptionally smooth transition between incompatable hardware which arrived with
very different suppliers systems.

     It would be nice to report that these 15 years  of  stabiltity  in  a  fast
changeing  world  was  the  result of immense far sightedness on the part of the
team who constructed the orignal EMAS system during 1967-70.   However it  would
also be quite incorrect to do so.

     This talk, like Gaul, is divided into three parts.   Firstly I will  describe
what actually happened.   Then I will describe some design feature of EMAS which
led to it being transported twice  and  finally  I  will  present  some  of  the
advantages and disadvantages of running on Portable software.

History.

==== ercc07/emas-2900/sup28asrce_samplectopt.txt ====

!
! THIS FILE CONTAINS THE CONST INTEGERS TO CONTROL COMPILE TIME OPTIONS
! IN EMAS2900
! IT IS INTENDED TO BE CONCATENATED ONTO THE FRONT OF SOURCEFILES
! BEFORE COMPILATION
%CONSTINTEGER YES=1
%CONSTINTEGER NO=0
%CONSTINTEGER SSERIES=NO;               ! NO=PSERIES, YES=SSERIES
%CONSTINTEGER RECONFIGURE=YES;          ! NO TO EXCLUDE DYNAMIC CONFIGURATION
%CONSTINTEGER MULTIOCP=YES;             ! YES TO INCLUDE SEMAPHORING
%CONSTINTEGER SFCFITTED=NO;             ! NO FOR DISC ONLY SITES
%CONSTINTEGER CPFITTED=NO;              ! CARD PUNCH FITTED
%CONSTINTEGER CSU FITTED=NO;            ! SWITCH UNIT
%CONSTINTEGER SNOOZING=YES;             ! YES ALLOWS SUSPEND IN STORE
                                        ! ADVANTAGEOUS WITH LARGE STORES
%CONSTINTEGER PRODUCTION=NO;            ! YES FOR CONTINUING AFTER
                                        ! SOFTWARE ERRORS(MOST OF WHICH
                                        ! ARE DUE TO HARDWARE!)
%CONSTINTEGER MONLEVEL=7;               ! 0=NO MONITORING
                                        ! 2**0 SET=VIDEO UPDATING

==== ercc07/emas-2900/ibmgen02s.txt ====
%INCLUDE "ERCC07.TRIMP_HOSTCODES"
%CONSTINTEGER HOST=EMAS
%CONSTINTEGER TARGET=AMDAHL
%CONSTINTEGER FOURKTDISP=0
%INCLUDE "ERCC10.OPOUTS"
!
%CONSTINTEGER LGR=X'58',AND=X'54',ICP=X'59';      ! VARIANT MNEMONICS
%IF TARGET=IBM %THEN %START
      %OWNINTEGER BALCODE=BAL
%FINISH %ELSE %START
      %OWNINTEGER BALCODE=BAS
%FINISH
%CONSTINTEGER MARGIN=512;               ! MARGIN FOR ADRESSABILITY
%CONSTINTEGER MAXREG=19;                ! FOR DECLARING REGISTER ETC
%CONSTINTEGER CODER=12
%CONSTINTEGER  WSPR =11
%CONSTINTEGER  GLAREG =13
%CONSTINTEGER LINKREG=15;               ! REGISTER FOR RETURN ADDRESS
%CONSTINTEGER EPREG=14;                 ! REGISTER HOLDING RT ENTRYPOINT
%CONSTINTEGER CTABLEREG=14;             ! REGISTER HOLDING CONSTANT TABLE
%CONSTINTEGER GR0=X'000F0000';          ! ANY GR FROM 0-15

==== ercc07/emas-2900/sup26esrce_releasen.txt ====





         SUPERVISOR RELEASE NOTICE VSN 26E
         _________________________________
  



      This Supervisor incorporates the following changes:-

         1) Has code to single up duals by abandonding 1 OCP.

         2) Has revised scheduling with 5 priority queues.
            This enables batch throughput to be improved
            by discriminating against cpu-bound terminal jobs.
 
         3) Has improved COMMS(45) which supports the "FEPUP n"
            command for recovering a crashed FEP.

==== ercc07/emas-2900/sup25jsrce_makechkd.txt ====
PARM PARMX,STACK,NOCHECK,NOLIST
IMP SUP25JSRCE_SUP25JS,SUP25ZZ,,.OUT
IMP SUP25JSRCE_COM24S,COM24ZZ,,.OUT
IMP SUP25JSRCE_PRINT01S,PRINT01ZZ,,.OUT
IMP SUP25JSRCE_GPC22S,GPC22ZZ,,.OUT
IMP SUP25JSRCE_COMMS38S,COMMS38ZZ,,.OUT
PARM PARMX,OPT,STACK,NOLIST
IMP SUP25JSRCE_NDIAG06S,NDIAG06ZZ,,.OUT
IMP SUP25JSRCE_FAST24S,FAST24ZZ,,.OUT
IMP SUP25JSRCE_TAPE63S,TAPE63ZZ,,.OUT
PARM MAP
LINK
SUP25ZZ
COM24ZZ
PRINT01ZZ
GPC22ZZ
NDIAG06ZZ
COMMS38ZZ
FAST24ZZ
TAPE63ZZ
.END

==== ercc07/emas-2900/pnxgen05s.txt ====
%INCLUDE "ERCC07.TRIMP_HOSTCODES"
%CONSTINTEGER HOST=EMAS
%CONSTINTEGER TARGET=PNX
%INCLUDE  "ERCS04.PNX_CCODES"
%INCLUDE "ERCC07.TRIPCNSTS"
%INCLUDE "ERCC07.TRIMP_TFORM1S"
%CONSTINTEGER ESTK=0,BR0=1,BR1=2,BR2=3,BR3=4,FR0=5,FR1=6,FR2=7,FR3=8,
               BRN=BR0<<16!BR3,FRN=FR0<<16!FR3
%RECORDFORMAT REGF(%INTEGER CL,(%INTEGER USE %OR %HALF SECUSE,PRIMUSE),
      %INTEGER INF1,INF2,AT,LINK)
%OWNINTEGER CABUF,GLACABUF,GLABEL,FPPTR,FPHEAD
%OWNINTEGERNAME CA,GLACA,PPCURR
%OWNINTEGERARRAYNAME CTABLE,TAGS
!%OWNBYTEINTEGERARRAYNAME CODE
%OWNRECORD(LISTF)%ARRAYNAME ASLIST
%EXTRINSICINTEGERARRAY CAS(0:12)
%EXTRINSICRECORD(WORKAF)WORKA
%EXTRINSICRECORD(PARMF) PARM
%CONSTINTEGER MAXREG=8
%OWNRECORD(REGF)%ARRAY REGS(0:MAXREG)
%EXTERNALROUTINESPEC FLAGAND FOLD(%RECORD(TRIPF)%ARRAYNAME T)

==== ercc07/emas-2900/wichtests_wt1.txt ====
'BEGIN'
    'REAL' X;
    'INTEGER' I;
        I := 10000000000000000000000000;
        X := 1.0&999
'END'

==== ercc07/emas-2900/sup26fsrce_sup26fs.txt ====

!
! TO MAKE S SERIES SUPERVISOR REQUIRES:-
!     1) CHANGE SSERIES=NO TO SSERIES=YES IN CTOPTIONS FILE
!     2) REPLACE COMF BY S SERIES COM IN ERCC08.COMSF
!
!
! THESE CONST INTEGERS DEFINE SIZES AND LAYOUT OF IMPORTANT TABLES
! THEY HAVE TO BE HERE TO BE GLOBAL TO ALL ROUTINES INCLUDING IO ONES
!
%CONSTINTEGER LSTLEN=192;               ! LOCAL SEGMENT TABLE LENGTH
%CONSTLONGINTEGER LCACR=1;              ! ACR OF LOCAL CONTROLLER
%CONSTINTEGER DIRCSEG=10;               ! SEG NO OF DIRECTOR COMMS SEG
%CONSTINTEGER DIRCSEGOFFSET=0;          ! FOR ALIGNMENT IF NEEDED
%CONSTINTEGER DIRCSEGAD=DIRCSEG<<18;    ! VIRTUAL ADDRESS OF DIR COM SEG
%CONSTINTEGER DIRCSEGL=2048+255+LSTLEN; ! SIZE OF SMAE
                                        ! MADE UP OF 2049 FOR CBT
                                        ! LSTLEN FOR SST
                                        ! 48+64 FOR 2 BITS OF SYTEMCALL TABLE
                                        ! 32+48 FOR DIROUTP&SIGOUT
%CONSTINTEGER LSTACKLEN=3;              ! LOCAL CONT. STACK ELEN

==== ercc07/emas-2900/wichtests_wt2.txt ====
'BEGIN'
    'REAL' AUTOCORRELATIONCOEFFICIENTNUMBER1;
        AUTOCORRELATIONCOEFFICIENTNUMBER1 := 0.0;
        'BEGIN'
        'REAL' AUTOCORRELATIONCOEFFICIENTNUMBER2;
            AUTOCORRELATIONCOEFFICIENTNUMBER2 := 1.0;
            OUTREAL(99, AUTOCORRELATIONCOEFFICIENTNUMBER1 +
                AUTOCORRELATIONCOEFFICIENTNUMBER2 )
        'END'
'END'

==== ercc07/emas-2900/wichtests_pete1.txt ====
'BEGIN' 'INTEGER'I,J; 'REAL' X;
J:=15;
'FOR' I:=-10 'STEP' 1 'UNTIL' 10 'DO' 'BEGIN'
      X:=9.987654321*10**I;
      PRINT(X,0,10); PRINT(X*10**15,0,10);
      PRINT(X*10**1,0,10);
      NEWLINE
      'END';
'END';

==== ercc07/emas-2900/wichtests_wt3.txt ====
L1:
'BEGIN'
    'IF' 1 = 2 'THEN'
        'GOTO' L1
'END'

==== ercc07/emas-2900/ibmgen03s.txt ====

!
! Warning this module has the revised triples spec.
!
! In first attempt at Triple Imp considerable use was made of constant operands 
! to pass information from Pass2 to GEN. Although for specialised operations like
! passing Labels this still applies, this adhocery has caused problems with arrays
! and pointers particularly in mapped records. The operands for four triples
! have thus been redefined in a more standard way.
!
! GETPTR    X1 is now (ptype of passed)<<16! DIMENSION
!           Opnd2 is either a 32 bit const with the size (ACC) as value or
!           the ptr or arrayhead as normal operand.
!
! VMY       X1 is now dim<<28!maxdim<<24!array name(where known)
!           Opnd2 is either a 32 bit const with DV offset into const area or
!           the arrayhead as a standard operand
!
! AINDX     X1 is ELSIZE<<20 !spare
!           Opnd2 is arrayhead as standard operand
!           NOTE:- The Operands have been swopped for consistency with norm.

==== ercc07/emas-2900/wichtests_pete2.txt ====
'COMMENT' CHECK THAT FAULTY ASSIGNMENT TO PROCEDURE NAME IS DETECTED;
'BEGIN'
'INTEGER'C;
'INTEGER''PROCEDURE' CHSP(U); 'INTEGER'U;
'BEGIN' 'INTEGER'X;
'IF' U<CODE({A}) 'THEN' X:=0 'ELSE' X:=1;
CHSP(U):=X
'END';
C:=0;
CHSP(C)
'END';

==== ercc07/emas-2900/perq_xspecs.txt ====
%EXTERNALROUTINESPEC RECODE(%INTEGER S,F,AD)
%EXTERNALROUTINESPEC CODEOUT
%EXTERNALROUTINESPEC PTLATE(%INTEGER WORD)
%EXTERNALROUTINESPEC PWORD(%INTEGER WORD)
%EXTERNALROUTINESPEC PB1(%INTEGER OPCODE)
%EXTERNALROUTINESPEC PB2(%INTEGER OPCODE,BYTE)
%EXTERNALROUTINESPEC PB3(%INTEGER OPCODE,BYTE1,BYTE2)
%EXTERNALROUTINESPEC PB4(%INTEGER OPCODE,B1,B3,B3)
%EXTERNALROUTINESPEC PBW(%INTEGER OPCODE,WORD)
%EXTERNALROUTINESPEC PB2W(%INTEGER OPCODE,BYTE1,WORD)
%EXTERNALROUTINESPEC PERM
%EXTERNALROUTINESPEC CAB
%EXTERNALROUTINESPEC CNOP(%INTEGER I, J)
%EXTERNALROUTINESPEC PGLA(%INTEGER BDRY, L, INF ADR)
%EXTERNALROUTINESPEC PLUG(%INTEGER AREA, AT, VALUE, BYTES)
%EXTERNALROUTINESPEC GXREF(%STRING(31) NAME,%INTEGER MODE,XTRA,AT)
%EXTERNALROUTINESPEC CXREF(%STRING(255) NAME,
                  %INTEGER MODE,AT,%INTEGERNAME AT)
%EXTERNALROUTINESPEC PINITCALL(%STRING(31) S)
%EXTERNALROUTINESPEC CSTOP
%EXTERNALROUTINESPEC CIOCP(%INTEGER N)

==== ercc07/emas-2900/wichtests_wt4.txt ====
SIN: COS:
'BEGIN'
    'REAL' SIN;
        SIN := 0.0
'END'

==== ercc07/emas-2900/wichtests_pete3.txt ====
'PROGRAM'PETE;
'BEGIN'
'PROCEDURE'JIM(L,S,ST); 'VALUE'L; 'LABEL'L; 'SWITCH'S;
         'STRING'ST; 'ALGOL';
'PROCEDURE'FRED; 'EXTERNAL';
'PROCEDURE'GILES; 'FORTRAN';
'OWN''REAL'X; 'INTEGER'I,J,K; 'BOOLEAN'B1,B2; 'ARRAY'A[1:10];
'FOR'I:=1 'STEP'1 'UNTIL'10,I+1 'WHILE'B1'AND''TRUE''DO'
     'IF'K 'GT'J 'OR'K 'GE'J 'THEN''GOTO'END 'ELSE''GO''TO'END;
B1:= I 'EQ'J 'IMPL'K 'NE'J 'EQUIV''FALSE';
B2:='NOT'K 'LE'K 'OR'K 'LT'J;
'CODEON';
'CODEOFF';
I:=(J'DIV'K)'POWER'I;
'COMMENT'ALL KEYWORDS USED;
END:'END'TEST PROG
//OPTIONS()

==== ercc07/emas-2900/wichtests_wt5.txt ====
L1:
'IF' 1 = 2 'THEN'

        'GOTO' L1

==== ercc07/emas-2900/wichtests_pete4.txt ====
'COMMENT' CHECK ON NONTERMINATING FOR LOOPS IN OPT MODE;
'BEGIN' 'INTEGER'I
;'FOR' I:= 1 'STEP' 1 'UNTIL' 3 'DO' PRINT(I,3,0);
NEWLINE;
'FOR' I:= 1 'STEP' 2 'UNTIL' 5 'DO' PRINT (I,3,0);
NEWLINE;
PRINT(I,3,0)
'END'

==== ercc07/emas-2900/wichtests_wt6.txt ====
'BEGIN'
    'INTEGER' X, Y, Z;
        X := Y := Z := 1.0;
        'IF' X < Y < Z 'THEN'
'END'

==== ercc07/emas-2900/wichtests_pete5.txt ====
'BEGIN''INTEGER'I;
'INTEGER''PROCEDURE' TCODE(S); 'STRING' S;
      TCODE:=CODE(S);
      PRINT(TCODE({A}),3,3)
'END'

==== ercc07/emas-2900/wichtests_wt7.txt ====
'BEGIN'
    'BOOLEAN'
        ASSIGN;
    'PROCEDURE' P(X);
        'REAL'
            X;
        'BEGIN'
        OUTREAL(99, X);
        'IF' ASSIGN 'THEN'
            X := 3.14;
        'END';
    'REAL'
        X,
        Y;
    ASSIGN := 'FALSE';
    P(1.0);
    X := Y := 2.0;
    P(X + Y);
    ASSIGN := 'TRUE';
    P(X);
    P(1.0);

==== ercc07/emas-2900/wichtests_pete6.txt ====
'COMMENT' CHECK ERROR ON DELN GIVES RIGHT LINE NO;
'BEGIN'
'INTEGER'I;
'INTEGER'J;
'INTEGER'K;
'CODEON';
'BEGIN' 'INTEGER' 'ARRAY' A[I:10]
'END';
'CODEOFF';
'END'

==== ercc07/emas-2900/wichtests_wt8.txt ====
'BEGIN'
    'REAL' X, Y;
        X := Y := 0.0;
    'REAL' Z;
'END'

==== ercc07/emas-2900/wichtests_pete7.txt ====
'BEGIN' 'INTEGER' I;
'INTEGER' 'ARRAY' A,B(/1:10/);
'ARRAY' C,D(/1:10/);
'PROCEDURE' TEST(P,Q,R,S); 'VALUE' P,Q,R,S; 'ARRAY' R,S;
'INTEGER' 'ARRAY' P,Q; 'BEGIN' 'INTEGER' I;
'FOR' I:=1'STEP'1'UNTIL' 10 'DO' 'BEGIN'
   'IF' I#P(/I/)'OR' I#Q(/I/)'OR' I#R(/I/)'OR' I#S(/I/) 'THEN' 'BEGIN'
      PRINT(I,2,0); PRINT(P(/I/),2,0); PRINT(Q(/I/),2,0);
      PRINT(R(/I/),2,1); PRINT(S(/I/),2,1); NEWLINE
      'END';
   P(/I/):=Q(/I/):=0; R(/I/):=S(/I/):=0
'END' FOR;
PRINTSTRING(<ARRAY _ PASSED>)
'END' TEST;
'FOR' I:=1 'STEP' 1 'UNTIL' 10 'DO' 'BEGIN'
   A(/I/):=B(/I/):=I; C(/I/):=D(/I/):=I
'END';
TEST(A,C,D,B);
'FOR' I:=1 'STEP' 1 'UNTIL' 10 'DO' 'BEGIN'
   'IF' A(/I/)#I 'OR' B(/I/)#I 'OR' C(/I/)#I 'OR' D(/I/)#I  'THEN' 'BEGIN'
      PRINTSTRING(<ERROR>); PRINT(I,2,0)

==== ercc07/emas-2900/timp00s.txt ====
%CONSTSTRING(9) LADATE="28 NOV 83";       ! LAST ALTERED
%CONSTINTEGER NO OF SNS=65
%CONSTINTEGER LRLPT=X'62'
%UNLESS HOST=PERQ %OR HOST=ACCENT %THEN %START
      %CONSTINTEGER PTSHIFT=16,FLAGSHIFT=0
%FINISH %ELSE %START
      %CONSTINTEGER PTSHIFT=0,FLAGSHIFT=16
%FINISH
!
%CONSTINTEGER MAXLEVELS=31,CONCOP=13
!
%INCLUDE "ERCC07.TRIPCNSTS"
%INCLUDE "ERCC07.TRIMP_TFORM1S"
%CONSTINTEGER SNPT=X'1006';         ! SPECIALNAME PTYPE
%CONSTINTEGER UNASSPAT=X'80808080'
%CONSTINTEGER LABUSEDBIT=X'01000000'
%CONSTINTEGER LABSETBIT=X'02000000'
%CONSTINTEGER MAXDICT=X'100';         ! PARM MAXDICT BIT
!
%INTEGER I, K, DUMMYFORMAT, P1SIZE, STARSIZE, ASL, ARSIZE, OLDLINE,
         NEXTP, SNUM, RLEVEL, NMAX, PLABEL, LEVEL, PROFAAD, LAST INST,

==== ercc07/emas-2900/drslink2.txt ====
LINK
ERCC07.P1Y
ERCC07.DP22Y
ERCC07.DOPT2Y
ERCC07.DGEN2Y
ERCC07.CSERV01Y
ERCS02.DRS_EPUTY
.END
P0Y
MODIFY P0Y
SATISFY REFS
.ALL
SATISFY DATA
.ALL
SUPPRESS
.ALL
RETAIN
PGENERATEDRSOBJECT,ICL9CEZDRSIMP
SUPPRESS DATA
.ALL
CLOSE

==== ercc07/emas-2900/wichtests_wt9.txt ====
'BEGIN'
    'COMMENT' A SYNTAX PASS IS REQUIRED TO REMOVE COMMENTS;
    'PROCEDURE' P( ST );'COMMENT' ST IS A STRING;'COMMENT';
        'STRING' ST; ;'COMMENT' DUMMY BODY;
    P( <;'COMMENT'<;>> );
    'BEGIN'
        'PROCEDURE' Q( A ) PARAMETER COMMENT :( B );
            'REAL' A, B; ;'COMMENT' DUMMY AGAIN;
        Q( 1.0, 2.5 ); 'COMMENT' IS THE SAME AS;
        Q( 1.0) WITH PARAMETER COMMENT:( 2.5 );
    'END' COMMENT CAN INCLUDE MOST BASIC SYMBOLS 'FOR'
        'WHILE' 'THEN''IF' 'DO' := 'BEGIN'( WHICH ARE NOT MATCHED;
'END'

==== ercc07/emas-2900/wichtests_pete8.txt ====

'BEGIN'
'INTEGER' 'PROCEDURE' F;
      F:=1;
'INTEGER' I,J;
      I:=F;
      F:=27;
'END'

==== ercc07/emas-2900/wichtests_pete9.txt ====
'BEGIN' 'INTEGER' I,J;
      J:=10;
      'IF' J>1 'THEN' 'BEGIN'
LABEL:;
         I:=J; J:=J+1; 'GOTO' OUT;
      'END';
      I:=I+1;
OUT:
      PRINT(I,3,3);
'END';

==== ercc07/emas-2900/timp01s.txt ====
%MAINEP ICL9CEZPERQIMP
%TRUSTEDPROGRAM
%BEGIN
%CONSTINTEGER RELEASE=4
%CONSTINTEGER YES=1,NO=0
%CONSTINTEGER ON PERQ=NO
%CONSTSTRING(9) LADATE="9 Sep 82";       ! LAST ALTERED
%INTEGER I, J, K
%CONSTINTEGER NO OF SNS=63
%CONSTINTEGER LRLPT=X'62'
!
%CONSTBYTEINTEGERARRAY BYTES(0:7)=0(3),1,2,4,8,16;
%CONSTBYTEINTEGERARRAY WORDS(0:7)=0(3),1,1,2,4,8;
%CONSTINTEGER MAXLEVELS=31,CONCOP=13
!
%INCLUDE "ERCC07.PERQ_OPCODES"
%INCLUDE "ERCC07.TRIPCNSTS"
%INCLUDE "ERCC07.PERQ_FORMAT3S"
%CONSTINTEGER SNPT=X'1006';         ! SPECIALNAME PTYPE
%CONSTINTEGER UNASSPAT=X'80808080'
%CONSTINTEGER LABUSEDBIT=X'01000000'

==== ercc07/emas-2900/imptests_testcomp.txt ====

PARM
IMP IMPTESTS_CT0,.NULL,.OUT
IMP IMPTESTS_CT1,.NULL,.OUT
IMP IMPTESTS_CT2,.NULL,.OUT
IMP IMPTESTS_CT3,.NULL,.OUT
IMP IMPTESTS_CT4,.NULL,.OUT
IMP IMPTESTS_CT5,.NULL,.OUT
IMP IMPTESTS_RT0,IY,.OUT
RUN IY
IMP IMPTESTS_RT1,IY,.OUT
RUN IY
IMP IMPTESTS_RT2,IY,.OUT
RUN IY

IMP IMPTESTS_RT3,IY,.OUT
RUN IY
IMP IMPTESTS_RT4,IY,.OUT
RUN IY
IMP IMPTESTS_RT5,IY,.OUT
RUN IY

==== ercc07/emas-2900/sup26isrce_oper33s.txt ====
! %CONSTSTRING(15)VSN = "OPER33 3/4/81"; ! ****************************************
%IF (MONLEVEL >> 1) & 1 = YES %START
      %EXTRINSICLONGINTEGER KMON
      %OWNINTEGER OPMON; ! COPY OF KMON BIT
      %CONSTINTEGER KMONNING = YES
%FINISH %ELSE %START
      %CONSTINTEGER KMONNING = NO
%FINISH
!
%IF MONLEVEL & 1 = YES %START
      %CONSTINTEGER VIDEO UPDATING = YES
      %OWNINTEGER OPER FACILITIES
%FINISH %ELSE %START
      %CONSTINTEGER VIDEO UPDATING = NO
%FINISH
!
!
!
%EXTERNALROUTINESPEC DUMPTABLE(%INTEGER X,A,S)
%EXTERNALROUTINESPEC PON(%RECORDNAME P)
%EXTERNALROUTINESPEC PKMONREC(%STRING(20)TXT,%RECORDNAME P)

==== ercc07/emas-2900/sup26csrce_sup26cs.txt ====

!
! TO MAKE S SERIES SUPERVISOR REQUIRES:-
!     1) CHANGE SSERIES=NO TO SSERIES=YES IN CTOPTIONS FILE
!     2) REPLACE COMF BY S SERIES COM IN ERCC08.COMSF
!
!
! THESE CONST INTEGERS DEFINE SIZES AND LAYOUT OF IMPORTANT TABLES
! THEY HAVE TO BE HERE TO BE GLOBAL TO ALL ROUTINES INCLUDING IO ONES
!
%CONSTINTEGER LSTLEN=192;               ! LOCAL SEGMENT TABLE LENGTH
%CONSTLONGINTEGER LCACR=1;              ! ACR OF LOCAL CONTROLLER
%CONSTINTEGER DIRCSEG=10;               ! SEG NO OF DIRECTOR COMMS SEG
%CONSTINTEGER DIRCSEGOFFSET=0;          ! FOR ALIGNMENT IF NEEDED
%CONSTINTEGER DIRCSEGAD=DIRCSEG<<18;    ! VIRTUAL ADDRESS OF DIR COM SEG
%CONSTINTEGER DIRCSEGL=2048+255+LSTLEN; ! SIZE OF SMAE
                                        ! MADE UP OF 2049 FOR CBT
                                        ! LSTLEN FOR SST
                                        ! 48+64 FOR 2 BITS OF SYTEMCALL TABLE
                                        ! 32+48 FOR DIROUTP&SIGOUT
%CONSTINTEGER LSTACKLEN=3;              ! LOCAL CONT. STACK ELEN

==== ercc07/emas-2900/sup26csrce_com29s.txt ====
!
!
!          VERSION OF 18/01/80
!
!
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20A ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DDTADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,WASKLOKCORRECT,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,DQADDR,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0, %C
         %INTEGER ITINT,CONTYPEA,GPCCONFA,FPCCONFA,SFCCONFA, %C
         BLKADDR,DPTADDR,SMACS,TRANS,%LONGINTEGER KMON,  %C
         %INTEGER DITADDR,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,STOREAAD,PROCAAD,SFCCTAD,DRUMTAD,TSLICE,SP0,SP1, %C
         SP2,SP3,SP4,SP5,SP6,SP7,SP8, %C
         LSTL,LSTB,PSTL,PSTB,HKEYS,HOOT,SIM,CLKX,CLKY,CLKZ,  %C
         HBIT,SLAVEOFF,INHSSR,SDR1,SDR2,SDR3,  %C
         SDR4,SESR,HOFFBIT,S2,S3,S4,END)

==== ercc07/emas-2900/sup26fsrce_print05s.txt ====

%EXTRINSICLONGINTEGER KMON
%ROUTINESPEC PRHEX(%INTEGER H)
%ROUTINESPEC PRINTER(%RECORDNAME P)
%EXTERNALROUTINESPEC PON(%RECORDNAME P)
%EXTERNALROUTINESPEC OPMESS(%STRING (23) MESS)
%SYSTEMROUTINESPEC ITOE(%INTEGER A, L)
%IF MULTIOCP=YES %THEN %START
%EXTERNALROUTINESPEC SEMALOOP(%INTEGERNAME SEMA)
      %ROUTINESPEC RESERVE LOG
      %ROUTINESPEC RELEASE LOG
      %ROUTINESPEC AWAIT LOG ROUTE
%FINISH
%RECORDFORMAT PARMF(%INTEGER DEST, SRCE, P1, P2, P3, P4, P5,  %C
         P6)
!------------------------------------------------------------------------
%RECORDFORMAT ENTFORM(%INTEGER SER, PTSM, PROPADDR,  %C
         TICKS SINCE, CAA, GRCB AD, LBA, ALA, STATE, RESP0,  %C
         RESP1, SENSE1, SENSE2, SENSE3, SENSE4, REPSNO, BASE,  %C
         ID, DLVN, MNEMONIC, ENTSIZE, PAW, USAW0, URCB AD,  %C
         SENSDAT AD, LOGMASK, TRTAB AD, UA SIZE, UA AD,  %C

==== ercc07/emas-2900/timp02s.txt ====

!
! Warning this module has the revised triples spec.
!
! In first attempt at Triple Imp considerable use was made of constant operands 
! to pass information from Pass2 to GEN. Although for specialised operations like
! passing Labels this still applies, this adhocery has caused problems with arrays
! and pointers particularly in mapped records. The operands for four triples
! have thus been redefined in a more standard way.
!
! GETPTR    X1 is now (ptype of passed)<<16! DIMENSION
!           Opnd2 is either a 32 bit const with the size (ACC) as value or
!           the ptr or arrayhead as normal operand.
!
! VMY       X1 is now dim<<28!maxdim<<24!array name(where known)
!           Opnd2 is either a 32 bit const with DV offset into const area or
!           the arrayhead as a standard operand
!
! AINDX     X1 is ELSIZE<<20 !spare
!           Opnd2 is arrayhead as standard operand
!           NOTE:- The Operands have been swopped for consistency with norm.

==== ercc07/emas-2900/ibm_link.txt ====
PARM MAP
LINK
IBMY
CSUPY
.END
IBM01Y
MODIFY IBM01Y,,.LP
SATISFY REFS
.ALL
SATISFY DATA
.ALL
SUPPRESS
.ALL
RETAIN
ICL9CEZIBMIMP
SUPPRESS DATA
.ALL
CLOSE

==== ercc07/emas-2900/perqtrimp_perqlink.txt ====
LINK
P1Y
P2Y
POPTY
PGENY
.END
P0Y
MODIFY P0Y
SATISFY REFS
.ALL
SATISFY DATA
.ALL
RENAME
ICL9CEZPERQIMP,S#PERQIMP
.END
SUPPRESS
.ALL
RETAIN
S#PERQIMP
SUPPRESS DATA
.ALL

==== ercc07/emas-2900/sup26gsrce_documentn.txt ====



This partitioned file contains all the source required to make up a
version 26G Supervisor, plus the version of the IMP compiler and FIX
utility used at Edinburgh to do so.  This compiler is necessary as some
advanced language features are required which are not available in the
service compiler.

Note that the OPTION NOBRACKETS must be in force in the process being
used for the method described to work.

Two "OBEY" subfiles are available: MAKECHKD and MAKEOPT.  They each
construct a test Supervisor which is left in file SUP26xT,  where x is
'C' or 'O' respectively.


Making a Supervisor thus consists of the following:

a) INSERT the IMP compiler and FIX utility into the current directory
   (and then log off and log on again if IMP was previously used in

==== ercc07/emas-2900/sup26esrce_mindiags.txt ====
%EXTERNALSTRINGFNSPEC STRHEX(%INTEGER I)
%SYSTEMROUTINE NDIAG(%INTEGER PCOUNT, LNB, FAULT, INF)
!***********************************************************************
!*_______'MASTER DIAGNOSTIC ROUTINE'. DISCOVERS THE LANGUAGE OF THE    *
!*_______FAILED ROUTINE FROM WORD 4 OF THE GLA AND CALLS APPROPRIATE   *
!*_______DIAGNOSTIC ROUTINE. THIS IS REPEATED TILL ALL DIAGNOSTICS     *
!*_______GIVEN.                                                        *
!*_______PCOUNT = PCOUNTER AT FAILURE                                  *
!*_______LNB    = LOCAL NAME BASE AT FAILURE                           *
!*_______FAULT  = FAILURE  (0=%MONITOR  REQUESTED)                     *
!*_______INF    =ANY FURTHER INFORMATION                               *
!***********************************************************************
PRINTSTRING("
MINIMUM NDIAGS ENTERED
FAULT NO ="); WRITE(FAULT,2)
PRINTSTRING("
PC=X".STRHEX(PCOUNT)."
LNB=X".STRHEX(LNB)."
")
%END
%ENDOFFILE

==== ercc07/emas-2900/sup26fsrce_enter06s.txt ====

%EXTRINSICINTEGER INPTR
%EXTRINSICINTEGER OUTPTR
%CONSTINTEGER MASK=X'80FC3FFF'
%EXTERNALINTEGERFNSPEC HANDKEYS
%EXTERNALROUTINESPEC HOOT(%INTEGER NUM)
%EXTERNALROUTINESPEC GET PSTB(%INTEGERNAME P0, P1)
%EXTERNALROUTINESPEC SUP29
%EXTERNALROUTINESPEC GPC(%RECORDNAME P)
%EXTERNALROUTINESPEC SLAVESONOFF(%INTEGER J)
%EXTERNALROUTINESPEC PKMONREC(%STRING(20)TEXT,%RECORDNAME P)
%SYSTEMROUTINESPEC MOVE(%INTEGER L, FROMAD, TOAD)
%RECORDFORMAT PARMF(%INTEGER DEST, SRCE, P1, P2, P3, P4, P5,  %C
         P6)
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20A ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DDTADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,WASKLOKCORRECT,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,DQADDR,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0, %C

==== ercc07/emas-2900/imptests_rt0.txt ====
%BEGIN
%OWNBYTEINTEGER CHAR=NL
%OWNBYTEINTEGERARRAY XCHAR(1:10)=NL(10)
      WRITE(CHAR,5)
      WRITE(XCHAR(5),5)
      NEWLINE
%ENDOFPROGRAM

==== ercc07/emas-2900/sup26fsrce_gpc33s.txt ====
%CONSTSTRING(25) VSN = "GPC33 3RD NOV 80"; ! ************************************************GPC GPC GPC
!
!   EMAS 2900 SUPERVISOR NOTE
!                                           No: 5
!                                         Date: 21/05/80
!                                       Author: A.Gibbons
!
!
! %EXTERNAL ROUTINE GPC(%RECORDNAME P)
!
! 1. CONVENTIONS
! The record spec for the parameter is
!   %RECORDFORMAT PARMF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6)
! where
!   DEST is considered as two half words DSNO and DACT. DSNO
!        must be GPC's DSNO 
!        DACT is set according to the function required.
!
!   SRCE is considered as two halfwords SSNO and SACT.
!        SSNO is SNO of ORIGINATOR and SACT is DACT for
!        the reply.

==== ercc07/emas-2900/imptests_rt1.txt ====
%BEGIN
%RECORDFORMAT F(%INTEGER I,J,K,%INTEGERARRAY A(1:5))
%RECORD R(F)
%INTEGERARRAYNAME B
%INTEGER I
      %CYCLE I=1,1,5
      R_A(I)=I
      %REPEAT
      R_K=255
      B==R_A
      %CYCLE I=1,1,5
         WRITE(B(I),5)
      %REPEAT
%ENDOFPROGRAM

==== ercc07/emas-2900/imptests_rt2.txt ====
%BEGIN
%INTEGER I
      I=0
      %CYCLE
         WRITE(I,2)
         I=I+1
      %REPEAT %UNTIL  I=4
%ENDOFPROGRAM

==== ercc07/emas-2900/nrsrce_sfast02s.txt ====
%EXTERNALSTRING (15) %FNSPEC STRINT(%INTEGER N)
%EXTERNALSTRING (8) %FNSPEC STRHEX(%INTEGER N)
%EXTERNALSTRING(8) %FNSPEC HTOS(%INTEGER VALUE,PLACES)
%EXTERNALROUTINESPEC PTREC(%RECORDNAME P)
%EXTERNALROUTINESPEC OPMESS(%STRING (63) S)
%EXTERNALROUTINESPEC MONITOR(%STRING (63) S)
%EXTERNALROUTINESPEC DUMP TABLE(%INTEGER T, A, L)
%ROUTINESPEC ELAPSED INT(%RECORDNAME P)
%SYSTEMROUTINESPEC ETOI(%INTEGER A, L)
%ROUTINESPEC PDISC(%RECORDNAME P)
%EXTERNALINTEGERFNSPEC HANDKEYS
%EXTERNALROUTINESPEC DCU(%RECORDNAME P)
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 18D ONWARDS *
! Alterations from above-mentioned record format, for the S-series, are
! as follows:
!     GPCTABSIZE  ->   DCUTABSIZE
!     GPCA        ->   DCUA
!     SMACS       ->   SCUS
!     GPCCONFA    ->   DCUCONFA
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DDTADDR,DCUTABSIZE,DCUA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C

==== ercc07/emas-2900/imptests_rt3.txt ====
%BEGIN
%INTEGER SYM
%STRING(255)S
S="ABCDE"
      %WHILE S#"" %CYCLE
         SYM=CHARNO(S,1)
         S->(TOSTRING(SYM)).S
         PRINTSYMBOL(SYM)
      %REPEAT
      NEWLINE
%ENDOFPROGRAM


==== ercc07/emas-2900/sup27fsrce_samplectopt.txt ====

!
! THIS FILE CONTAINS THE CONST INTEGERS TO CONTROL COMPILE TIME OPTIONS
! IN EMAS2900
! IT IS INTENDED TO BE CONCATENATED ONTO THE FRONT OF SOURCEFILES
! BEFORE COMPILATION
%CONSTINTEGER YES=1
%CONSTINTEGER NO=0
%CONSTINTEGER SSERIES=NO;               ! NO=PSERIES, YES=SSERIES
%CONSTINTEGER MULTIOCP=YES;             ! YES TO INCLUDE SEMAPHORING
%CONSTINTEGER SFCFITTED=NO;             ! NO FOR DISC ONLY SITES
%CONSTINTEGER CPFITTED=NO;              ! CARD PUNCH FITTED
%CONSTINTEGER CSU FITTED=NO;            ! SWITCH UNIT
%CONSTINTEGER SNOOZING=YES;             ! YES ALLOWS SUSPEND IN STORE
                                        ! ADVANTAGEOUS WITH LARGE STORES
%CONSTINTEGER PRODUCTION=NO;            ! YES FOR CONTINUING AFTER
                                        ! SOFTWARE ERRORS(MOST OF WHICH
                                        ! ARE DUE TO HARDWARE!)
%CONSTINTEGER MONLEVEL=7;               ! 0=NO MONITORING
                                        ! 2**0 SET=VIDEO UPDATING
                                        ! 2**1 SET=KMONNING

==== ercc07/emas-2900/sup27bsrce_tape72s.txt ====
! THIS IS IMP80 VERSION OF VERSION 72
!

!**************************************************
!*                                                *
!*  TAPE HANDLER FOR 2900                         *
!*                                                *
!**************************************************
!!
!***********************************************************************
!* VERSION 72
!* 05-MAY-81:
!*    HAIRY PON TO RESET 'RETRY PREAMBLE' WHICH ALLOWS/INHIBITS
!*    READ RETRY WHEN NO PREAMBLE DETECTED.
!*    MAINLY INTENDED FOR READING DUMP TAPES WITH SUCH.
!* 04-MAY-81:
!*    FIX IN LOAD AND LOAD MESSAGE FOR FAULTY DSN.
!*    REWINDS AND COMES UP AS LOADED NO LABEL.
!* 01-MAY-81:
!*    FIX IN TERMINATE TO CONTINUE RETRIES IF NO PREAMBLE ON LABEL READ
!*

==== ercc07/emas-2900/sup26isrce_makechkd.txt ====
PARM FREE,STACK,NOCHECK,NOLIST
IMP CTOPT+SUP26ISRCE_SUP26IS,SUPZZ,,.OUT
IMP CTOPT+SUP26ISRCE_COM32S,COMZZ,,.OUT
IMP CTOPT+SUP26ISRCE_PRINT05S,PRINTZZ,,.OUT
IMP CTOPT+SUP26ISRCE_OPER33S,OPERZZ,,.OUT
IMP CTOPT+SUP26ISRCE_ENTER09S,ENTERZZ,,.OUT
IMP CTOPT+SUP26ISRCE_GPC36S,GPCZZ,,.OUT
PARM FREE,OPT,STACK,NOLIST
IMP SUP26ISRCE_NDIAG07S,NDIAGZZ,,.OUT
IMP CTOPT+SUP26ISRCE_COMMS48S,COMMSZZ,,.OUT
IMP CTOPT+SUP26ISRCE_FAST33S,FASTZZ,,.OUT
IMP CTOPT+SUP26ISRCE_TAPE70S,TAPEZZ,,.OUT
PARM MAP
LINK
SUPZZ
COMZZ
PRINTZZ
OPERZZ
ENTERZZ
GPCZZ
NDIAGZZ

==== ercc07/emas-2900/imptests_rt4.txt ====
%BEGIN
%ROUTINE FRED(%INTEGER FIRST,STEP,LAST)
%INTEGER I
      %CYCLE I=FIRST,STEP,LAST
      %REPEAT
%END
      FRED(X'9000',16,X'A000')
%ENDOFPROGRAM

==== ercc07/emas-2900/sup26esrce_comms46s.txt ====

!                 VERSION OF 13/06/80
!        DEC 79: INCLUDE AN OPER ADAPTOR
!                HAVE ONLY ONE SERVICE NUMBER, X'37'
!        OTHER POSSIBLE CHANGES
!           MAKE INITIALISATION CALL OF CC INITIALISE ADAPTORS AS WELL
!           MAKE IT POSSIBLE TO DEALLOCATE/ALLOCATE ALL DEVICES
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20A ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DDTADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,WASKLOKCORRECT,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,DQADDR,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0, %C
         %INTEGER ITINT,CONTYPEA,GPCCONFA,FPCCONFA,SFCCONFA, %C
         BLKADDR,DPTADDR,SMACS,TRANS,%LONGINTEGER KMON,  %C
         %INTEGER DITADDR,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,STOREAAD,PROCAAD,SFCCTAD,DRUMTAD,TSLICE,SP0,SP1, %C
         SP2,SP3,SP4,SP5,SP6,SP7,SP8, %C
         LSTL,LSTB,PSTL,PSTB,HKEYS,HOOT,SIM,CLKX,CLKY,CLKZ,  %C

==== ercc07/emas-2900/imptests_rt5.txt ====
%BEGIN
%LONGINTEGER L
%SWITCH SW(0:5)
      L=3
      ->SW(L)
SW(0):SW(1):SW(2):SW(4):SW(5):
      PRINTSTRING("WRONG PLACE"); %STOP
SW(3):
      PRINTSTRING("GOT HERE OK
")
%ENDOFPROGRAM

==== ercc07/emas-2900/read1900s.txt ====
%SYSTEMLONGREALFN READ1900
!***********************************************************************
!*       THIS ROUTINE IS THE 1900 IMPLICITLY SPECIFIED ROUTINE         *
!*                                                                     *
!*       THE METHOD USED IS SIMPLE REPEATED MULTIPLICATION USING LONG  *
!*       REAL VARIABLES. SOME ROUNDING ERRORS ARE INTRODUCED WHICH     *
!*       COULD BE AVOIDED BY USING PACKED DECIMAL INSTNS WITH NECESSARY*
!*       SCALING.                                                      *
!***********************************************************************
%INTEGERFNSPEC NEXT
%INTEGERFNSPEC CHECK EXP
%LONGREALFNSPEC GET(%INTEGER LEVEL)
%INTEGER CURSYM
      %RESULT=GET(1)
%LONGREALFN GET(%INTEGER LEVEL)
%INTEGER TYPE, IVALUE, FLAG
                                       ! FLAG= 0FOR'-',1 FOR '+'
%LONGREAL RWORK, SCALE
      FLAG=1;  TYPE=0
START:CURSYM=NEXT;                      ! CARE NOT TO READ TERMINATOR
                                        ! NOW IGNORE LEADING SPACES

==== ercc07/emas-2900/imptests_rt6.txt ====

%BEGIN
%CONST%STRING(15)%ARRAY S(1:3)="ONE ","TWO ","THREE "
%INTEGER I
      PRINTSTRING(S(3))
      %CYCLE I=1,1,3
         PRINTSTRING(S(I))
      %REPEAT
%ENDOFPROGRAM

==== ercc07/emas-2900/imptests_rt7.txt ====

%BEGIN
%RECORDFORMAT F(%INTEGER I,J,K,L)
%OWNRECORDARRAY A(-1:1)(F)
%RECORDARRAY B(-1:1)(F)
%RECORD R(F)
%INTEGER I
      R=0
      %CYCLE I=-1,1,1
         A(I)=R
         B(I)=R
      %REPEAT
      PRINTSTRING("WORKED OK")
%ENDOFPROGRAM

==== ercc07/emas-2900/imptests_rt8.txt ====

%BEGIN 
%CONSTSTRING(3)%ARRAY CHECK(1:3)="ABC","DEF","GHI";
%INTEGER I
%STRING(3)%ARRAYFORMAT SF(1:3)
%STRINGARRAYNAME SAN
%RECORDFORMAT F(%INTEGER I,J,%STRING(3)%ARRAY S(1:3), %C
         %STRINGARRAYNAME SN)
%RECORDNAME R(F)
%OWNINTEGERARRAY A(0:8)=1,2,X'03414243',X'03444546',X'03474849',0(4)
%ROUTINE CHECK VALUE(%INTEGER I,%STRING(31)S)
      %IF S#CHECK(I) %THEN PRINTSTRING("
BUG IN STRING VALUE") %AND %MONITOR
%END
%ROUTINE CHECKNAME(%INTEGER I,%STRINGNAME S)
      %IF S#CHECK(I) %THEN PRINTSTRING("
BUG IN STRING NAMES") %AND %MONITOR
%END
      R==RECORD(ADDR(A(0)))
      SAN==ARRAY(ADDR(A(2)),SF)
      R_SN==R_S

==== ercc07/emas-2900/imptests_rt9.txt ====
%BEGIN
%INTEGER I,J
%CONSTSTRING(15)FAILED="***BUG FOUND"
%ROUTINESPEC INTERCHANGE(%RECORDARRAYNAME A,%INTEGER I,J)
%RECORDFORMAT F(%INTEGER I,J)
%RECORDARRAY A(0:3)(F)
%RECORDARRAY B(1:4)(F)
      %CYCLE I=0,1,3
         A(I)_I=I
         B(I+1)_I=I+1
      %REPEAT
      INTERCHANGE(A,1,3)
      PRINTSTRING(FAILED) %UNLESS A(1)_I=3 %AND A(3)_I=1
      INTERCHANGE(B,1,3)
      PRINTSTRING(FAILED) %UNLESS B(1)_I=3 %AND B(3)_I=1
%ROUTINE INTERCHANGE(%RECORDARRAYNAME R,%INTEGER P,Q)
%RECORDSPEC R(F)
      %RECORD TEMP(F)
      TEMP=R(P)
      R(P)=R(Q)
      R(Q)=TEMP

==== ercc07/emas-2900/pimp01s.txt ====
%MAINEP ICL9CEZPERQIMP
%TRUSTEDPROGRAM
%BEGIN
%CONSTINTEGER RELEASE=1
%CONSTINTEGER YES=1,NO=0
%CONSTINTEGER ON PERQ=NO
%CONSTSTRING(9) LADATE="01 Apr 82";       ! LAST ALTERED
%INTEGER I, J, K
%CONSTINTEGER NO OF SNS=63
%CONSTINTEGER LRLPT=X'52'
!
! FIXED GLA CURRENTLY USED AS FOLLOWS
!     0-7   FREE(WAS 2900 ENTRY DESCRIPTOR)
!     8-11  ADDRESS OF UNSHARED SYMBOL TABLES
!     12-15 ADDRESS OF SHARED SYMBOL TABLES
!     16-19 LANGUAGE & COMPILER DATA
!     20-23 RESERVED (BUT IN MAIN PROGS IS FILLED WITH STACKPTR@ENTRY)
!     24-27 ADDRESS OF CONSTANT TABL
!     28-31 ADDRESS OF A WORD CONTAINING STACKTOP  0FOR NO CHECKS
!     32-39 FREE
!     40-55 DEFINES THE ENTRY POINT OF MDIAGS

==== ercc07/emas-2900/wichtests_pre75.txt ====
    'BEGIN'
    'INTEGER'I;
      'FOR' I:= 2 'STEP' 1 'UNTIL' 100 'DO'
      OUTREAL(15,1/(I*I-1));
    'END';

==== ercc07/emas-2900/alqtests.txt ====

//JOB (ERCC07.ALTESTS,P.STEPHENS_ALGOL,T=240,L=5000)
//ALGOL
'BEGIN'
    'REAL'
        X,
        Y,
        Z;
    X := 6.0;
    5.0;
    Y := - 2.931;
    Z := 4^.2;
'END'
//RUN
//ALGOL
'BEGIN'
    'INTEGER'
        I.J;
    I := 2;
    J := 3;
    'IF' I * J > I + J 'THEN'

==== ercc07/emas-2900/kentclokset_make.txt ====
MAPLELIST CLOK1L
MAPLE CLOK_CLOK1S,OMF=Z.CLOKOMF
COMF CLOKOMF,CLOK1Y
DESTROY CLOKOMF

==== ercc07/emas-2900/itrimp_ibmlink.txt ====
ILINK
IP1X
IP2X
IOPTX
IGEN2X
CSERV01X
PUTX
.END
P0Y
IMODIFY P0Y
SATISFY REFS
.ALL
SATISFY DATA
.ALL
SUPPRESS
.ALL
RETAIN
ICL9CEZIBMIMP,PGENERATEOBJECT
SUPPRESS DATA
.ALL
CLOSE

==== ercc07/emas-2900/sup28asrce_enter14s.txt ====
%RECORDFORMAT PARMF(%INTEGER DEST, SRCE, P1, P2, P3, P4, P5, P6)
%RECORDFORMAT SERVAF(%INTEGER P, C)
%EXTERNALINTEGERSPEC INPTR
%EXTERNALINTEGERSPEC OUTPTR
%CONSTINTEGER MASK=X'80FC3FFF'
%EXTERNALINTEGERFNSPEC HANDKEYS
%EXTERNALROUTINESPEC HOOT(%INTEGER NUM)
%IF SSERIES=YES %START
   %EXTERNALROUTINESPEC DCU(%RECORD(PARMF)%NAME P)
%FINISH %ELSE %START
   %EXTERNALROUTINESPEC GPC(%RECORD(PARMF)%NAME P)
   %EXTERNALINTEGERFNSPEC GPC INIT(%INTEGER CA,PT,MODE)
%FINISH
%EXTERNALINTEGERFNSPEC SAFE IS READ(%INTEGER ISAD,%INTEGERNAME VAL)
%EXTERNALROUTINESPEC GET PSTB(%INTEGERNAME P0, P1)
%EXTERNALROUTINESPEC SUP29
%EXTERNALROUTINESPEC SUPPOFF(%RECORD(SERVAF)%NAME SERV, %C
      %RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC DISC(%RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC PDISC(%RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC SLAVESONOFF(%INTEGER J)

==== ercc07/emas-2900/nproc19s.txt ====
!**FILE LAST CHANGED ON 05/12/77 AT 16.49.27
!**DELSTART
%SYSTEMINTEGERMAPSPEC COMREG(%INTEGER I)
%EXTRINSICINTEGER SSDEBUG
%SYSTEMROUTINESPEC CONSOLE(%INTEGER EP,R1,R2,%INTEGERNAME R3)
%EXTERNALROUTINESPEC PROMPT(%STRING(15)S)
%SYSTEMROUTINESPEC MDIAG(%INTEGER PCOUNT,FAULT,INF)
%SYSTEMROUTINESPEC CONNECT(%STRING (15) S,  %C
   %INTEGER ACCESS, MAXBYTES, PROTECTION, %RECORDNAME R,  %C
   %INTEGERNAME FLAG)
%SYSTEMROUTINESPEC PSYSMES(%INTEGER ROOT, FLAG)
%SYSTEMROUTINESPEC SET OUTPUT(%STRING (15) FILE,  %C
   %INTEGERNAME ADDR, FLAG)
%SYSTEMROUTINESPEC FINDFD(%STRING (8) DD, %INTEGERNAME I)
%SYSTEMROUTINESPEC DIRCALL(%INTEGER EP, %STRING (17) S,  %C
   %INTEGER P1, P2, %INTEGERNAME FLAG)
%SYSTEMROUTINESPEC SETLIB(%INTEGER EP, %STRING (15) S,  %C
   %INTEGER AD, %INTEGERNAME FLAG)
%SYSTEMINTEGERFNSPEC SPAR(%INTEGER N, %STRINGNAME S)
%SYSTEMROUTINESPEC SETPAR(%STRING (63) S)
%SYSTEMROUTINESPEC SVC(%RECORDNAME P)

==== ercc07/emas-2900/sup28dsrce_ndiag07s.txt ====

!*_ DATED 11 NOV 76   1
! ALTERATIONS BY K.YARWOOD ...
!        PRINT FL AND NEXT SYMBOL LINES COMMENTED OUT
!        PRINTTEXT'S TURNED TO PRINTSTRING'S
!        ADDITION FOR LONGINTEGER IN RT PRINT VAR
!         HEX EQUIVALENTS FOR INTS,LONGINTS ETC PRINTED
!        INF PRINTED IN HEX IN RT ERRMESS

%EXTERNALSTRINGFNSPEC STRHEX(%INTEGER I)
%EXTERNALSTRING(8)%FNSPEC STRINT(%INTEGER I)
%CONSTINTEGER STACKBASE=X'80100000';  ! START OF RESIDENT STACK
! %SYSTEMROUTINESPEC SIGNAL(%INTEGER I, J, K, %INTEGERNAME F)
%ROUTINESPEC PRINTMESS(%INTEGER N)
! %SYSTEMROUTINESPEC TIDY EXIT
!*
%ROUTINESPEC INDIAG(%INTEGER OLDLNB, L, PC, %INTEGERNAME NEWLNB)
! %ROUTINESPEC FDIAG(%INTEGER OLDLNB,PC,%INTEGERNAME NEWLNB)
%ROUTINESPEC ERMESS(%INTEGER N, INF)
! %ROUTINESPEC ICL9CELABELS


==== ercc07/emas-2900/sup27bsrce_makeopt.txt ====
PARM FREE,OPT,STACK,NOLIST
IMP80 CTOPT+SUP27BSRCE_SUP27BS,SUPZZ,,.OUT
IMP80 CTOPT+SUP27BSRCE_COM33S,COMZZ,,.OUT
IMP80 CTOPT+SUP27BSRCE_PRINT06S,PRINTZZ,,.OUT
IMP80 CTOPT+SUP27BSRCE_OPER34S,OPERZZ,,.OUT
IMP80 CTOPT+SUP27BSRCE_ENTER10S,ENTERZZ,,.OUT
IMP80 CTOPT+SUP27BSRCE_GPC37S,GPCZZ,,.OUT
IMP80 SUP27BSRCE_MINDIAGS,MINDIAGZZ,,.OUT
IMP80 CTOPT+SUP27BSRCE_COMMS49S,COMMSZZ,,.OUT
IMP80 CTOPT+SUP27BSRCE_FAST35S,FASTZZ,,.OUT
IMP80 CTOPT+SUP27BSRCE_TAPE72S,TAPEZZ,,.OUT
PARM MAP
LINK
SUPZZ
COMZZ
PRINTZZ
OPERZZ
ENTERZZ
GPCZZ
MINDIAGZZ
COMMSZZ

==== ercc07/emas-2900/sup27isrce_releasen.txt ====

         Supervisor 27I Release Notice

      This Supervisor has the following changes

      1) Introduction of in process page monitoring
         via OUT_20 and suitable director features

      2)  Direct calls on COMMS CONTROL for Request output

      3) Minor corrections elsewhere.


                                        P. Stephens    21/12/81

==== ercc07/emas-2900/inctime.txt ====
%CONSTINTEGER SECSIN24HRS=86400;        ! SECS IN DAY
%CONSTINTEGER DAYS70=25567;             ! DAYS FROM JAN1 1900 TO JAN1 1970
%CONSTLONGINTEGER SECS70=X'0000000083AA7E80';! SECS DITTOM
%ROUTINE KDATE(%INTEGERNAME D,M,Y,%INTEGER K)
!***********************************************************************
!*    K IS DAYS SINCE 1ST JAN 1900                                     *
!*    RETURNS D, M, Y   2 DIGIT Y ONLY                                 *
!***********************************************************************
!      %INTEGER W
!      K=K+693902;                       ! DAYS SINCE CEASARS BDAY
!      W=4*K-1
!      Y=W//146097
!      K=W-146097*Y
!      D=K//4
!      K=(4*D+3)//1461;
!      D=4*D+3-1461*K
!      D=(D+4)//4
!      M=(5*D-3)//153
!      D=5*D-3-153*M
!      D=(D+5)//5
!      Y=K

==== ercc07/emas-2900/impalgs_oldps.txt ====

%EXTERNALROUTINE OLDPS(%STRING(63) S)
%EXTERNALSTRINGFNSPEC DATE
%INTEGER I, J, K, SS, NBIP
%STRING(31) ST49,ST50,ST51
%EXTERNALROUTINESPEC DEFINE(%STRING(63)S)
%INTEGERARRAY CLETT(0:1000), SYMBOL(1300:3000), CC(0:300)
%INTEGER CNEXT, DNEXT, CNUM, DNUM, ALT, DEF, ASL, NIDFLAG
%INTEGERARRAY KK, PUSE, DWORD(1001:1200), DLETT(0:1000), CWORD(1:200)
%ROUTINESPEC READ STRING(%INTEGER TERMINATOR)
%ROUTINESPEC RECORD(%INTEGERARRAYNAME WORD, LETT,  %C
            %INTEGERNAME NUM, NEXT)
%ROUTINESPEC LOOK UP(%INTEGERARRAYNAME WORD, LETT,  %C
            %INTEGER FIRST, LAST, INSERT)
%ROUTINESPEC PDDICT
%ROUTINESPEC PRINT STR(%INTEGERARRAYNAME CC, %INTEGER PTR)
%ROUTINESPEC PCDICT
         %UNLESS S->ST49.(",").ST50.(",").ST51 %THEN %C
            PRINTSTRING("PARAMS?????") %AND NEWLINE %AND %RETURN
         DEFINE("ST49,".ST49)
         DEFINE("ST50,".ST50)

==== ercc07/emas-2900/impalgs_psprog2s.txt ====

%EXTERNALROUTINE PSPROG2(%STRING(63) S)
%EXTERNALSTRINGFNSPEC DATE
%INTEGER I, J, K, SS, NBIP
%STRING(15) ST49,ST50,ST51
%EXTERNALROUTINESPEC DEFINE(%STRING(63)S)
%INTEGERARRAY SYMBOL(1300:3000), CC(0:300)
%INTEGER CNEXT, DNEXT, CNUM, DNUM, ALT, DEF, ASL, NIDFLAG
%INTEGERARRAY KK, DWORD(1001:1200), DLETT(0:1000)
%ROUTINESPEC READ STRING(%INTEGER TERMINATOR)
%ROUTINESPEC RECORD(%INTEGERARRAYNAME WORD, LETT,  %C
            %INTEGERNAME NUM, NEXT)
%ROUTINESPEC LOOK UP(%INTEGERARRAYNAME WORD, LETT,  %C
            %INTEGER FIRST, LAST, INSERT)
%ROUTINESPEC PDDICT
%ROUTINESPEC PRINT STR(%INTEGERARRAYNAME CC, %INTEGER PTR)
         %UNLESS S->ST49.(",").ST50.(",").ST51 %THEN %C
            PRINTSTRING("PARAMS?????") %AND NEWLINE %AND %RETURN
         DEFINE('ST49,'.ST49)
         DEFINE('ST50,'.ST50)
         DEFINE('ST51,'.ST51)

==== ercc07/emas-2900/pimp02s.txt ====
%MAINEP ICL9CEZPERQIMP
%TRUSTEDPROGRAM
%BEGIN
%CONSTINTEGER RELEASE=1
%CONSTINTEGER YES=1,NO=0
%CONSTINTEGER ON PERQ=NO
%CONSTSTRING(9) LADATE="8 Mar 82";       ! LAST ALTERED
%INTEGER I, J, K
%CONSTINTEGER NO OF SNS=63
%CONSTINTEGER LRLPT=X'52'
!
! FIXED GLA CURRENTLY USED AS FOLLOWS
!     0-7   FREE(WAS 2900 ENTRY DESCRIPTOR)
!     8-11  ADDRESS OF UNSHARED SYMBOL TABLES
!     12-15 ADDRESS OF SHARED SYMBOL TABLES
!     16-19 LANGUAGE & COMPILER DATA
!     20-23 RESERVED (BUT IN MAIN PROGS IS FILLED WITH STACKPTR@ENTRY)
!     24-27 ADDRESS OF CONSTANT TABL
!     28-31 ADDRESS OF A WORD CONTAINING STACKTOP  0FOR NO CHECKS
!     32-39 FREE
!     40-55 DEFINES THE ENTRY POINT OF MDIAGS

==== ercc07/emas-2900/irout30s.txt ====
!17/11/80 - IROUT29S - CAPACITY EXCEEDED CHECKING ADDED TO READSTRING
!COPIED FROM ERCS08.B44SCE_IROUT27A ON 26.10.78
!LRANDOM ADDED 24.1.80
!UNUSED SPECS AND UNUSED ROUTINE FILL REMOVED 10/8/79
!SOME MATHS ROUTINE FAULT NOS ALTERED 19/12/78
!IEXPTEN RENAMED AS EXPTEN
!ILOGTEN RENAMED AS LOGTEN
!ICOT RENAMED AS COT
!IHYPSIN RENAMED AS HYPSIN
!IHYPCOS RENAMED AS HYPCOS
!IHYPTAN RENAMED AS HYPTAN
!THE FOLLOWING ROUTINES HAVE BEEN REMOVED:
!DA AND SQ ROUTINES,FROMSTRING,CLOSESTREAM,IFDBINARY
!RFDBINARY,CPUTIME,TIME,DATE,SETMARGINS
!SPECS ADDED FOR CPUTIME, TIME , AND DATE
!* MODIFIED 10/08/78 AGK   (ADDED MLIBERR ROUTINE)
!* MODIFIED 20/02/78 ERROR MESSAGE VALUES
!* MODIFIED 29/09/78 LCG TO REMOVE MLIBERR
!* MODIFIED 17/2/77  LAB   (APPENDED SQ & DA FILE ROUTINES AND
!                           DATE AND TIME ROUTINES FOR IMP AND FORTE)
!* MODIFIED  16/12/76  GEM (RANDOM)

==== ercc07/emas-2900/sup27csrce_makechkd.txt ====
PARM FREE,NOCHECK,NOLIST,STACK
IMP80 CTOPT+SUP27CSRCE_SUP27CS,SUPZZ,,.OUT
IMP80 CTOPT+SUP27CSRCE_COM33S,COMZZ,,.OUT
IMP80 CTOPT+SUP27CSRCE_PRINT07S,PRINTZZ,,.OUT
IMP80 CTOPT+SUP27CSRCE_OPER34S,OPERZZ,,.OUT
IMP80 CTOPT+SUP27CSRCE_ENTER11S,ENTERZZ,,.OUT
PARM FREE,OPT,STACK,NOLIST
IMP80 CTOPT+SUP27CSRCE_GPC37S,GPCZZ,,.OUT
IMP80 SUP27CSRCE_NDIAG07S,NDIAGZZ,,.OUT
IMP80 CTOPT+SUP27CSRCE_COMMS49S,COMMSZZ,,.OUT
IMP80 CTOPT+SUP27CSRCE_FAST36S,FASTZZ,,.OUT
IMP80 CTOPT+SUP27CSRCE_TAPE72S,TAPEZZ,,.OUT
PARM MAP
LINK
SUPZZ
COMZZ
PRINTZZ
OPERZZ
ENTERZZ
GPCZZ
NDIAGZZ

==== ercc07/emas-2900/sup27bsrce_fast35s.txt ====
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20J ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DLVNADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,TOJDAY,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,DQADDR,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0, %C
         %INTEGER ITINT,CONTYPEA,GPCCONFA,FPCCONFA,SFCCONFA, %C
         BLKADDR,RATION,SMACS,TRANS,%LONGINTEGER KMON,  %C
         %INTEGER DITADDR,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,STOREAAD,PROCAAD,SFCCTAD,DRUMTAD,TSLICE,SP0,SP1, %C
         SP2,SP3,SP4,SP5,SP6,SP7,SP8, %C
         LSTL,LSTB,PSTL,PSTB,HKEYS,HOOT,SIM,CLKX,CLKY,CLKZ,  %C
         HBIT,SLAVEOFF,INHSSR,SDR1,SDR2,SDR3,  %C
         SDR4,SESR,HOFFBIT,S2,S3,S4,END)
!-----------------------------------------------------------------------
! PON & POFF ETC. DECLARATIONS
%RECORDFORMAT PARMF(%INTEGER DEST, SRCE, P1, P2, P3, P4, P5,  %C
         P6)
%CONSTLONGINTEGER NONSLAVED=X'2000000000000000'

==== ercc07/emas-2900/sup26gsrce_com31s.txt ====
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20J ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DDTADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,TOJDAY,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,DQADDR,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0, %C
         %INTEGER ITINT,CONTYPEA,GPCCONFA,FPCCONFA,SFCCONFA, %C
         BLKADDR,RATION,SMACS,TRANS,%LONGINTEGER KMON,  %C
         %INTEGER DITADDR,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,STOREAAD,PROCAAD,SFCCTAD,DRUMTAD,TSLICE,FEPS,SP1, %C
         SP2,SP3,SP4,SP5,SP6,SP7,SP8, %C
         LSTL,LSTB,PSTL,PSTB,HKEYS,HOOT,SIM,CLKX,CLKY,CLKZ,  %C
         HBIT,SLAVEOFF,INHSSR,SDR1,SDR2,SDR3,  %C
         SDR4,SESR,HOFFBIT,S2,S3,S4,END)
! MISC. ROUTINE SPECS
%EXTERNALROUTINESPEC PKMONREC(%STRING(20)TEXT,%RECORDNAME P)
%EXTERNALSTRING(8)%FNSPEC STRHEX(%INTEGER N)
%RECORDFORMAT PARMF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6)
%EXTERNALROUTINESPEC OPMESS2(%INTEGER OP,%STRING(63)TXT)

==== ercc07/emas-2900/ibm_ps01.txt ====
43
D(NAME)
D(ICONST)
D(CONST)
D(CHXTYPE)
D(N)
D(S)
D(TEXT)
D(BIGHOLE)
D(N255)
D(HOLE)
D(MARK)
D(READLINE?)
D(TEXTTEXT)
D(DUMMYAPP)
D(DOWN)
D(UP)
D(LISTON)
D(LISTOFF)
D(COLON)
D(NOTECONST)

==== ercc07/emas-2900/ibm_ps02.txt ====
43
D(NAME)
D(ICONST)
D(CONST)
D(CHXTYPE)
D(N)
D(S)
D(TEXT)
D(BIGHOLE)
D(N255)
D(HOLE)
D(MARK)
D(READLINE?)
D(TEXTTEXT)
D(DUMMYAPP)
D(DOWN)
D(UP)
D(LISTON)
D(LISTOFF)
D(COLON)
D(NOTECONST)

==== ercc07/emas-2900/dxrtest.txt ====
%BEGIN
%LONGLONGREAL A,B,R1,R2
%INTEGERFNSPEC DXR(%LONGLONGREALNAME TOP,%LONGLONGREAL BTM)
%INTEGER I
      A=7; A=A/3
      B=15
      B=B/7
      R1=A/B
R2=A
      I=DXR(R2,B)
      WRITE(I,1)
      PRINTFL(R1,15)
      PRINTFL(R2,15)
      PRINTFL(R1-R2,5)
%INTEGERFN DXR(%LONGLONGREALNAME TOP,%LONGLONGREAL BOTTOM)
%LONGREAL X
%LONGLONGREAL APPROX,CORRN
      X=BOTTOM
      APPROX=1.0/X
      CORRN=2.0-APPROX*BOTTOM
      PRINTFL(CORRN-1,5)

==== ercc07/emas-2900/perqtrimp_perqps01.txt ====
43
D(NAME)
D(ICONST)
D(CONST)
D(DUMMYSTART)
D(N)
D(S)
D(TEXT)
D(BIGHOLE)
D(N255)
D(HOLE)
D(MARK)
D(READLINE?)
D(TEXTTEXT)
D(DUMMYAPP)
D(DOWN)
D(UP)
D(LISTON)
D(LISTOFF)
D(COLON)
D(NOTECONST)

==== ercc07/emas-2900/irout31s.txt ====
! 03/06/82 IROUT31S HAS ERFN & ERFC REIMPLEMENTED USING ICL METHOD
!02/06/82 CONVERTED TO IMP90 BY PDS
!17/11/80 - IROUT29S - CAPACITY EXCEEDED CHECKING ADDED TO READSTRING
!COPIED FROM ERCS08.B44SCE_IROUT27A ON 26.10.78
!LRANDOM ADDED 24.1.80
!UNUSED SPECS AND UNUSED ROUTINE FILL REMOVED 10/8/79
!SOME MATHS ROUTINE FAULT NOS ALTERED 19/12/78
!IEXPTEN RENAMED AS EXPTEN
!ILOGTEN RENAMED AS LOGTEN
!ICOT RENAMED AS COT
!IHYPSIN RENAMED AS HYPSIN
!IHYPCOS RENAMED AS HYPCOS
!IHYPTAN RENAMED AS HYPTAN
!THE FOLLOWING ROUTINES HAVE BEEN REMOVED:
!DA AND SQ ROUTINES,FROMSTRING,CLOSESTREAM,IFDBINARY
!RFDBINARY,CPUTIME,TIME,DATE,SETMARGINS
!SPECS ADDED FOR CPUTIME, TIME , AND DATE
!* MODIFIED 10/08/78 AGK   (ADDED MLIBERR ROUTINE)
!* MODIFIED 20/02/78 ERROR MESSAGE VALUES
!* MODIFIED 29/09/78 LCG TO REMOVE MLIBERR
!* MODIFIED 17/2/77  LAB   (APPENDED SQ & DA FILE ROUTINES AND

==== ercc07/emas-2900/sup25jsrce_ndiag06s.txt ====

!*_ DATED 11 NOV 76   1
! ALTERATIONS BY K.YARWOOD ...
!        PRINT FL AND NEXT SYMBOL LINES COMMENTED OUT
!        PRINTTEXT'S TURNED TO PRINTSTRING'S
!        ADDITION FOR LONGINTEGER IN RT PRINT VAR
!         HEX EQUIVALENTS FOR INTS,LONGINTS ETC PRINTED
!        INF PRINTED IN HEX IN RT ERRMESS

%EXTERNALSTRINGFNSPEC STRHEX(%INTEGER I)
%EXTERNALSTRING(8)%FNSPEC STRINT(%INTEGER I)
%CONSTINTEGER STACKBASE=X'80100000';  ! START OF RESIDENT STACK
! %SYSTEMROUTINESPEC SIGNAL(%INTEGER I, J, K, %INTEGERNAME F)
%ROUTINESPEC PRINTMESS(%INTEGER N)
! %SYSTEMROUTINESPEC TIDY EXIT
!*
%ROUTINESPEC INDIAG(%INTEGER OLDLNB, L, PC, %INTEGERNAME NEWLNB)
! %ROUTINESPEC FDIAG(%INTEGER OLDLNB,PC,%INTEGERNAME NEWLNB)
%ROUTINESPEC ERMESS(%INTEGER N, INF)
! %ROUTINESPEC ICL9CELABELS


==== ercc07/emas-2900/sup26fsrce_oper33s.txt ====
! %CONSTSTRING(15)VSN = "OPER33 08/09/80"; ! ****************************************
%IF (MONLEVEL >> 1) & 1 = YES %START
      %EXTRINSICLONGINTEGER KMON
      %OWNINTEGER OPMON; ! COPY OF KMON BIT
      %CONSTINTEGER KMONNING = YES
%FINISH %ELSE %START
      %CONSTINTEGER KMONNING = NO
%FINISH
!
%IF MONLEVEL & 1 = YES %START
      %CONSTINTEGER VIDEO UPDATING = YES
      %OWNINTEGER OPER FACILITIES
%FINISH %ELSE %START
      %CONSTINTEGER VIDEO UPDATING = NO
%FINISH
!
!
!
!%EXTERNALROUTINESPEC DUMPTABLE(%INTEGER X,A,S)
%EXTERNALROUTINESPEC PON(%RECORDNAME P)
%EXTERNALROUTINESPEC PKMONREC(%STRING(20)TXT,%RECORDNAME P)

==== ercc07/emas-2900/sup28dsrce_makeopt.txt ====
PARM OPT,STACK,NOLIST
IMP80 CTOPT+SUP28DSRCE_SUP28DS,SUPZZ,,.OUT
IMP80 CTOPT+SUP28DSRCE_COM36S,COMZZ,,.OUT
IMP80 CTOPT+SUP28DSRCE_PRINT09S,PRINTZZ,,.OUT
IMP80 CTOPT+SUP28DSRCE_OPER37S,OPERZZ,,.OUT
IMP80 CTOPT+SUP28DSRCE_ENTER15S,ENTERZZ,,.OUT
IMP80 CTOPT+SUP28DSRCE_GPC40S,GDCZZ,,.OUT
IMP80 SUP28DSRCE_MINDIAGS,MINDIAGZZ,,.OUT
IMP80 CTOPT+SUP28DSRCE_COMMS54S,COMMSZZ,,.OUT
IMP80 CTOPT+SUP28DSRCE_FAST42S,FASTZZ,,.OUT
IMP80 CTOPT+SUP28DSRCE_TAPE75S,TAPEZZ,,.OUT
PARM MAP
LINK
SUPZZ
COMZZ
PRINTZZ
OPERZZ
ENTERZZ
GDCZZ
MINDIAGZZ
COMMSZZ

==== ercc07/emas-2900/sup27bsrce_samplectopt.txt ====

!
! THIS FILE CONTAINS THE CONST INTEGERS TO CONTROL COMPILE TIME OPTIONS
! IN EMAS2900
! IT IS INTENDED TO BE CONCATENATED ONTO THE FRONT OF SOURCEFILES
! BEFORE COMPILATION
%CONSTINTEGER YES=1
%CONSTINTEGER NO=0
%CONSTINTEGER SSERIES=NO;               ! NO=PSERIES, YES=SSERIES
%CONSTINTEGER MULTIOCP=YES;             ! YES TO INCLUDE SEMAPHORING
%CONSTINTEGER SFCFITTED=NO;             ! NO FOR DISC ONLY SITES
%CONSTINTEGER CPFITTED=NO;              ! CARD PUNCH FITTED
%CONSTINTEGER SNOOZING=YES;             ! YES ALLOWS SUSPEND IN STORE
                                        ! ADVANTAGEOUS WITH LARGE STORES
%CONSTINTEGER MONLEVEL=31;              ! 0=NO MONITORING
                                        ! 2**0 SET=VIDEO UPDATING
                                        ! 2**1 SET=KMONNING
                                        ! 2**2 SET=SUP TIMING MEASUREMENTS
                                        ! 2**3 SET=CAT TABLE TRANSITIONS
                                        ! 2**4 SET= STROBING
                                        ! 2**8 SET=EVENT HARVESTING

==== ercc07/emas-2900/sup26esrce_documentn.txt ====



This partitioned file contains all the source required to make up a
version 26E Supervisor, plus the version of the IMP compiler and FIX
utility used at Edinburgh to do so.  This compiler is necessary as some
advanced language features are required which are not available in the
service compiler.

Note that the OPTION NOBRACKETS must be in force in the process being
used for the method described to work.

Two "OBEY" subfiles are available: MAKECHKD and MAKEOPT.  They each
construct a test Supervisor which is left in file SUP26xT,  where x is
'C' or 'O' respectively.


Making a Supervisor thus consists of the following:

a) INSERT the IMP compiler and FIX utility into the current directory
   (and then log off and log on again if IMP was previously used in

==== ercc07/emas-2900/impalgs_algolps6.txt ====
43
D(NAME)
D(ICONST)
D(CONST)
D(ONAME)
D(COMTEXT))
D(S)
D(ENDTEXT)
D(TEXTTEXT)
D(NAMELIST)
D(HOLE)
D(MARK)
D(ONAMELIST)
D(UPSTCNT)
D(LETTERSTRING)
D(DOWN)
D(UP)
D(SCALARTYPE)
D(NOTENAME)
D(TYPE=A)
D(TYPE=B)

==== ercc07/emas-2900/impalgs_algolps7.txt ====
45
D(NAME)
D(ICONST)
D(CONST)
D(ONAME)
D(COMTEXT))
D(S)
D(ENDTEXT)
D(TEXTTEXT)
D(NAMELIST)
D(HOLE)
D(MARK)
D(ONAMELIST)
D(UPSTCNT)
D(LETTERSTRING)
D(DOWN)
D(UP)
D(SCALARTYPE)
D(NOTENAME)
D(TYPE=A)
D(TYPE=B)

==== ercc07/emas-2900/sup27isrce_documentn.txt ====



This partitioned file contains all the source required to make up
an EMAS2900 Supervisor, plus the version of the IMP80 compiler and FIX
utility used at Edinburgh to do so.  This compiler is necessary as some
advanced language features are required which are not available in the
service compiler.

Note that the OPTION NOBRACKETS must be in force in the process being
used for the method described to work.

Two "OBEY" subfiles are available: MAKECHKD and MAKEOPT.  They each
construct a test Supervisor which is left in file SUP27xT,  where x is
'C' or 'O' respectively.


Making a Supervisor thus consists of the following:

a) INSERT the IMP80 compiler and FIX utility into the current directory
   (and then log off and log on again if IMP80 was previously used in

==== ercc07/emas-2900/impalgs_algolps8.txt ====
45
D(NAME)
D(ICONST)
D(CONST)
D(ONAME)
D(COMTEXT))
D(S)
D(ENDTEXT)
D(TEXTTEXT)
D(NAMELIST)
D(HOLE)
D(MARK)
D(ONAMELIST)
D(NOTELINE)
D(LETTERSTRING)
D(DOWN)
D(UP)
D(SCALARTYPE)
D(NOTENAME)
D(TYPE=A)
D(TYPE=B)

==== ercc07/emas-2900/soap80s.txt ====
!***********************************************************************
!*                                                                     *
!*             SOAP80 - IMP indenter.                                  *
!*              Created by E.N.Gregory.                                *
!*                All syntax directed sections rewritten by P.D.S      *
!*               Using IMP80 syntax version 02.                        *
!*                                                                     *
!***********************************************************************

%EXTERNALROUTINESPEC PROMPT(%STRING(31) S)

!***********************************************************************
!*                                                                     *
!*                           Record formats.                           *
!*                                                                     *
!***********************************************************************

%RECORDFORMAT FHDR(%INTEGER DATAEND,DATASTART,FILESIZE,FILETYPE)
%RECORDFORMAT CHDR(%INTEGER CONAD,FILETYPE,DATASTART,DATAEND)
%CONSTINTEGER MAXOPT = 13,NUMOPT = 3
%RECORDFORMAT PFORMAT((%BYTEINTEGER LINE,ICONTIN,POSCOM,MOVECOM,UCKEY,SEPKEY,

==== ercc07/emas-2900/impalgs_algolps9.txt ====
45
D(NAME)
D(ICONST)
D(CONST)
D(ONAME)
D(COMTEXT))
D(S)
D(ENDTEXT)
D(TEXTTEXT)
D(NAMELIST)
D(HOLE)
D(MARK)
D(ONAMELIST)
D(NOTELINE)
D(LETTERSTRING)
D(DOWN)
D(UP)
D(SCALARTYPE)
D(NOTENAME)
D(TYPE=A)
D(TYPE=B)

==== ercc07/emas-2900/pimp04s.txt ====
%TRUSTEDPROGRAM
%EXTERNALROUTINE ICL9CEZPERQIMP
%CONSTINTEGER RELEASE=4
%CONSTINTEGER YES=1,NO=0
%CONSTINTEGER ON PERQ=NO
%CONSTINTEGER BYTEADDRSHFT=1*ON PERQ
%CONSTSTRING(9) LADATE="15 Nov 82";       ! LAST ALTERED
%INTEGER I, J, K
%CONSTINTEGER NO OF SNS=63
%CONSTINTEGER LRLPT=X'62'
!
%CONSTBYTEINTEGERARRAY BYTES(0:7)=0(3),1,2,4,8,16;
%CONSTBYTEINTEGERARRAY WORDS(0:7)=0(3),1,1,2,4,8;
%CONSTINTEGER MAXLEVELS=31,CONCOP=13
!
%INCLUDE "ERCC07.PERQ_OPCODES"
%INCLUDE "ERCC07.PERQ_FORMAT3S"
%CONSTINTEGER SNPT=X'1006';         ! SPECIALNAME PTYPE
%CONSTINTEGER UNASSPAT=X'80808080'
%OWNSTRING(8)MDEP="S#NDIAG"
!

==== ercc07/emas-2900/irout32s.txt ====
! 03/06/82 IROUT31S HAS ERFN & ERFC REIMPLEMENTED USING ICL METHOD
!02/06/82 CONVERTED TO IMP90 BY PDS
!17/11/80 - IROUT29S - CAPACITY EXCEEDED CHECKING ADDED TO READSTRING
!COPIED FROM ERCS08.B44SCE_IROUT27A ON 26.10.78
!LRANDOM ADDED 24.1.80
!UNUSED SPECS AND UNUSED ROUTINE FILL REMOVED 10/8/79
!SOME MATHS ROUTINE FAULT NOS ALTERED 19/12/78
!IEXPTEN RENAMED AS EXPTEN
!ILOGTEN RENAMED AS LOGTEN
!ICOT RENAMED AS COT
!IHYPSIN RENAMED AS HYPSIN
!IHYPCOS RENAMED AS HYPCOS
!IHYPTAN RENAMED AS HYPTAN
!THE FOLLOWING ROUTINES HAVE BEEN REMOVED:
!DA AND SQ ROUTINES,FROMSTRING,CLOSESTREAM,IFDBINARY
!RFDBINARY,CPUTIME,TIME,DATE,SETMARGINS
!SPECS ADDED FOR CPUTIME, TIME , AND DATE
!* MODIFIED 10/08/78 AGK   (ADDED MLIBERR ROUTINE)
!* MODIFIED 20/02/78 ERROR MESSAGE VALUES
!* MODIFIED 29/09/78 LCG TO REMOVE MLIBERR
!* MODIFIED 17/2/77  LAB   (APPENDED SQ & DA FILE ROUTINES AND

==== ercc07/emas-2900/sup28dsrce_tape75s.txt ====
!***********************************************************************
!
!                          2900 TAPE HANDLER
!
!***********************************************************************
!
%IF SSERIES=NO %START
  !..........PSERIES..........PSERIES..........PSERIES..........PSERIES
  !
  %CONSTINTEGER TOP LBE=36
  !                                                                    { CH FN
  %CONSTINTEGERARRAY LBES(0:TOP LBE)= %C
  X'00000200',                                                         {  1 RF
  X'40001200',                                                         {  2 RR
  X'00000200',                                                         {  3 RF
  X'44C01200',X'86800D10',X'00006200',                                 {  4 RR,AS,RFEC
  X'40001200',                                                         {  5 RR
  X'04C00200',X'86800D10',X'40007200',                                 {  6 RF,AS,RREC
  X'04C00200',X'04805200',X'86800D10',X'00006200',                     {  7 RF,SR,AS,RFEC
  X'44C01200',X'04804200',X'86800D10',X'40007200',                     {  8 RR,SF,AS,RREC
  X'00000200',                                                         {  9 RF

==== ercc07/emas-2900/link29h.txt ====
PARM MAP
LINK
ercc07.sup29my
ercc08.COMZZ
ercc08.PRINTZZ
ercc08.OPERZZ
ercc08.ENTERZZ
ercc08.GDCZZ
ercc08.NDIAGZZ
ercc08.COMMSZZ
ercc08.FASTZZ
ercc08.TAPEZZ
.END
SUP29Z
SUPFIX SUP29Z,SUP29CT
PERMIT SUP29CT

==== ercc07/emas-2900/ibmconvert_sibmload.txt ====
%RECORDFORMAT NAMEF(%C
 %STRING(8)    NAME,
 %INTEGER      ID,
               ADDR,                    {-1=NOT KNOWN,OTHERWISE ABSOLUTE ADRS}
                                        {OF NAME}
               CHAIN,                   {0 NO OUTSTANDING RELOCATIONS OTHERWISE}
                                        {PTR TO HEAD OF CHAIN OF RELOCATIONS}
               LNTH,                    {OF AREA FOR SD, HOME SD NO FOR AN LD}
               OFFSET,                  { OFFSET OF LD WITHIN HOME SD}
 %BYTE         TYPE,                    {STANDARD TYPES SD,LD ETC}
               COMMON)
!
!
!
%RECORDFORMAT RR(%INTEGER CONAD,FTYPE,DSTART,DEND)
%SYSTEMINTEGERFNSPEC PSTOI(%STRING(63)S)
%EXTERNALSTRING(8)%FNSPEC IBM NAME(%STRING(1) PREFIX,%STRINGNAME NAME)
%EXTERNALROUTINESPEC PROMPT(%STRING(15) S)
%EXTERNALROUTINESPEC DEFINE(%STRING(255)PARM)
%SYSTEMROUTINESPEC OUTFILE(%STRING(31)FILE,%INTEGER SIZE,HOLE,PROT,
         %INTEGERNAME CONAD,FLAG)

==== ercc07/emas-2900/link29i.txt ====
PARM MAP
LINK
ercc07.sup29my
ercc08.COMZZ
ercc08.PRINTZZ
ercc08.OPERZZ
ercc08.ENTERZZ
ercc08.GDCZZ
ercc08.NDIAGZZ
ercc08.COMMSZZ
ercc08.FASTZZ
ercc08.TAPEZZ
.END
SUP29Z
SUPFIX SUP29Z,SUP29CT
PERMIT SUP29CT

==== ercc07/emas-2900/opt01s.txt ====
%INCLUDE "ERCC07.TRIMP_TFORM1S"
%INCLUDE "ERCC07.TRIPCNSTS"
%EXTRINSICRECORD (WORKAF) WORKA
%EXTRINSICRECORD (PARMF) PARM
%EXTERNALROUTINESPEC IMPABORT
%IF HOST#TARGET %START
      %EXTERNALROUTINESPEC REFORMATC(%RECORD(RD)%NAME OPND)
%FINISH
%EXTERNALROUTINESPEC MOVE BYTES(%INTEGER L,FB,FO,TB,TO)
%EXTERNALROUTINESPEC FAULT(%INTEGER N,DATA,IDENT)
%EXTERNALROUTINESPEC PRINT TRIPS(%RECORD (TRIPF) %ARRAYNAME TRIPLES)
%CONSTBYTEINTEGERARRAY WORDS(0:7)=0(3),1,1,1,2,4;
%EXTERNALROUTINE CTOP(%INTEGERNAME FLAG,MASK, %INTEGER XTRA,
    %RECORD (RD) %NAME OPND1,OPND2)
!***********************************************************************
!*    AN OPERATION HAS BEEN FOUND WHERE BOTH OPERANDS ARE              *
!*    CONSTANTS OR KNOWN AT COMPILE TIME. THIS ROUTINE INTERPRETS      *
!*    THE OPERATION                                                    *
!*    ON EXIT FLAG=0 IF INTERPRETED. REFRAINS FROM INTERPRETING        *
!*    X=1/0 FOR EXAMPLE. CODE IS PLANTED FOR THESE FUNNIES             *
!***********************************************************************

==== ercc07/emas-2900/sup27isrce_mindiags.txt ====
%EXTERNALSTRINGFNSPEC STRHEX(%INTEGER I)
%SYSTEMROUTINE NDIAG(%INTEGER PCOUNT, LNB, FAULT, INF)
!***********************************************************************
!*_______'MASTER DIAGNOSTIC ROUTINE'. DISCOVERS THE LANGUAGE OF THE    *
!*_______FAILED ROUTINE FROM WORD 4 OF THE GLA AND CALLS APPROPRIATE   *
!*_______DIAGNOSTIC ROUTINE. THIS IS REPEATED TILL ALL DIAGNOSTICS     *
!*_______GIVEN.                                                        *
!*_______PCOUNT = PCOUNTER AT FAILURE                                  *
!*_______LNB    = LOCAL NAME BASE AT FAILURE                           *
!*_______FAULT  = FAILURE  (0=%MONITOR  REQUESTED)                     *
!*_______INF    =ANY FURTHER INFORMATION                               *
!***********************************************************************
PRINTSTRING("
MINIMUM NDIAGS ENTERED
FAULT NO ="); WRITE(FAULT,2)
PRINTSTRING("
PC=X".STRHEX(PCOUNT)."
LNB=X".STRHEX(LNB)."
")
%IF FAULT>0 %THEN %STOP
%END

==== ercc07/emas-2900/itrimp_hostcodes.txt ====

%CONSTINTEGER YES=1,NO=0
            
!
! THESE CODE ARE ARBITARY BUT THE TOP DECIMAL DIGIT GIVES THE NO OF BYTES
! IN THE UNIT OF ADDRESSABILITY. BYTE ADDRESSES HOSTS BEING 1N AND
! 16 BIT WORD ADDRESSED HOSTS BEING 2N ETC
%CONSTINTEGER EMAS=10
%CONSTINTEGER IBM=11
%CONSTINTEGER IBMXA=12
%CONSTINTEGER DRS=13
%CONSTINTEGER AMDAHL=14
%CONSTINTEGER PERQ=20
%CONSTINTEGER PNX=21
%CONSTINTEGER ACCENT=22
                                        ! ACCENT DIFFERS FROM PERQ ONLY IN
                                        ! ASSEMBLES SEQUENCES&SYNTAX
                                        ! AND GENERATOR
%CONSTINTEGER LINTAVAIL=1<<IBM!1<<IBMXA!1<<EMAS
%CONSTINTEGER LLREALAVAIL=1<<IBM!1<<IBMXA!1<<EMAS

==== ercc07/emas-2900/tlink1.txt ====
LINK
TIMP01Y
TSUP01Y
P1Y
TOPT01Y
.END
P0Y
MODIFY P0Y
SATISFY REFS
.ALL
SATISFY DATA
.ALL
RENAME
ICL9CEZPERQIMP,S#PERQIMP
.END
SUPPRESS
.ALL
RETAIN
S#PERQIMP
SUPPRESS DATA
.ALL

==== ercc07/emas-2900/sup25jsrce_print01s.txt ====

?%EXTRINSICLONGINTEGER KMON
%EXTERNALINTEGERFNSPEC HANDKEYS
%EXTERNALROUTINESPEC WAIT(%INTEGER MSECS)
%EXTERNALROUTINESPEC SUP29
%ROUTINESPEC PRHEX(%INTEGER H)
%ROUTINESPEC PRINTER(%RECORDNAME P)
%EXTERNALROUTINESPEC GPC(%RECORDNAME P)
%EXTERNALROUTINESPEC PON(%RECORDNAME P)
%EXTERNALROUTINESPEC SLAVESONOFF(%INTEGER J)
%EXTERNALROUTINESPEC OPMESS(%STRING (23) MESS)
%RECORDFORMAT PARMF(%INTEGER DEST, SRCE, P1, P2, P3, P4, P5, P6)
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 18D ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DDTADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,KLOKCORRECT,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,PROCMON,DQADDR,  %C
         SACPORT,OCPPORT,ITINT,CONTYPEA,GPCCONFA,FPCCONFA,SFCCONFA, %C
         BLKADDR,DPTADDR,SMACS,TRANS,%LONGINTEGER KMON,  %C
         %INTEGER SPDRQ,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C

==== ercc07/emas-2900/vzkgrt0s.txt ====
!
! SPECIAL SERVICE ROUTINES FOR ALGOL(J)    PDS 14.07.77
!
%SYSTEMINTEGERFN JREADOINT(%LONGREAL C0)
!***********************************************************************
!*    CHOP C0 DOWN TO 32 BITS (SHORT REAL)  AND RETURN AS INTEGER      *
!***********************************************************************
      *LSS_C0; *EXIT_-64
%END
%SYSTEMLONGREALFN JINTDOREA(%INTEGER C0)
!***********************************************************************
!*    C0 IS REALLY A SHORT REAL: EXPAND TO 64 BITS AND RETURN          *
!***********************************************************************
      *LSS_0; *LUH_C0; *EXIT_-64
%END
%SYSTEMINTEGERFN JSPOJILIP(%INTEGER IL,IP)
!***********************************************************************
!*    PACK IL & IP INTO LEFT & RIGHT 16 BITS OF A 32 BIT INTEGER       *
!***********************************************************************
      *LSS_IP; *AND_X'FFFF'
      *SLSS_IL; *USH_16

==== ercc07/emas-2900/perqcode1s.txt ====

!
! OPCODES AND CONSTINTEGER FOR PERQ IMP
! P REFS ARE TO PERQ Q-CODE MANAUAL
!
%CONSTINTEGER LDC0=0;                   ! P21 LOAD WORD CONSTANTS 0-15
%CONSTINTEGER LDCN=22;                  ! P21 LOAD CONSTANT NIL
%CONSTINTEGER LDCMO=16;                 ! P21 LOAD CONSTANT -1
%CONSTINTEGER LDCB=17;                  ! P21 LOAD CONSTANT (SIGNED)BYTE
%CONSTINTEGER LDCW=18;                  ! P21 LOAD CONSTANT (SIGNED)WORD
%CONSTINTEGER LDLDB=80;                 ! ADDITION LOAD LOCAL DOUBLE -BYTE OFFSET
%CONSTINTEGER LDLDW=81;                 ! ADDITION LOAD LOCAL DOUBLE -WORD OFFSET
%CONSTINTEGER LDODB=82;                 ! ADDITION LOAD LOCAL DOUBLE -BYTE OFFSET
%CONSTINTEGER LDODW=83;                 ! ADDITION LOAD LOCAL DOUBLE -WORD OFFSET
%CONSTINTEGER STLDB=84;                 ! ADDITION STORE LOCAL DOUBLE -BYTE OFFSET
%CONSTINTEGER STLDW=85;                 ! ADDITION STORE LOCAL DOUBLE -WORD OFFSET
%CONSTINTEGER STODB=86;                 ! ADDITION STORE LOCAL DOUBLE -BYTE OFFSET
%CONSTINTEGER STODW=87;                 ! ADDITION STORE LOCAL DOUBLE -WORD OFFSET
%CONSTINTEGER LDL0=109;                 ! P22 LOAD LOCAL WORD(0-15)
%CONSTINTEGER LDLB=107;                 ! P22 LOAD LOCAL UNSIGNED BYTE OFFSET
%CONSTINTEGER LDLW=108;                 ! P22 LOAD LOCAL WORD OFFSET

==== ercc07/emas-2900/sup26gsrce_tape69s.txt ====
!

!**************************************************
!*                                                *
!*  TAPE HANDLER FOR 2900                         *
!*                                                *
!**************************************************
!!
!!           EXTERNAL ROUTINE REFERENCES
!!
%EXTERNALSTRINGFNSPEC HTOS(%INTEGER VALUE, PLACES)
%EXTERNALROUTINESPEC OPMESS(%STRING (23) S)
%EXTERNALROUTINESPEC PON(%RECORDNAME P)
%SYSTEMROUTINESPEC ETOI(%INTEGER A, L)
%SYSTEMROUTINESPEC MOVE(%INTEGER L, FROMAD, TOAD)
%EXTERNALROUTINESPEC PRHEX(%INTEGER N)
%EXTERNALROUTINESPEC DUMP TABLE(%INTEGER TABNO, START, L)
%EXTRINSICLONGINTEGER PARMDES
%EXTERNALINTEGERFNSPEC NEWPPCELL
%EXTERNALROUTINESPEC RETURNPPCELL(%INTEGER CELL)
%IF MULTIOCP=YES %START

==== ercc07/emas-2900/sup26csrce_oper31s.txt ====
%CONSTSTRING(15)VSN = "OPER31 22/04/80"
!
!
%CONSTINTEGER YES = 1
%CONSTINTEGER NO = 0
%CONSTINTEGER MONLEVEL = 1
!
%IF MONLEVEL & 1 > 0 %START
      %EXTRINSICLONGINTEGER KMON
      %OWNINTEGER OPER FACILITIES
      %OWNINTEGER OPMON; ! COPY OF KMON BIT
%FINISH
!
!
!
!
%EXTERNALROUTINESPEC DUMPTABLE(%INTEGER X,A,S)
%EXTERNALROUTINESPEC PON(%RECORDNAME P)
%EXTERNALROUTINESPEC PTREC(%RECORDNAME P)
%EXTERNALROUTINESPEC PARSE COM(%INTEGER SRCE,%STRINGNAME S)
%EXTERNALROUTINESPEC RETURN PP CELL(%INTEGER CELL)

==== ercc07/emas-2900/opt02s.txt ====

!
! Warning this module has the revised triples spec.
!
! In first attempt at Triple Imp considerable use was made of constant operands 
! to pass information from Pass2 to GEN. Although for specialised operations like
! passing Labels this still applies, this adhocery has caused problems with arrays
! and pointers particularly in mapped records. The operands for four triples
! have thus been redefined in a more standard way.
!
! GETPTR    X1 is now (ptype of passed)<<16! DIMENSION
!           Opnd2 is either a 32 bit const with the size (ACC) as value or
!           the ptr or arrayhead as normal operand.
!
! VMY       X1 is now dim<<28!maxdim<<24!array name(where known)
!           Opnd2 is either a 32 bit const with DV offset into const area or
!           the arrayhead as a standard operand
!
! AINDX     X1 is ELSIZE<<20 !spare
!           Opnd2 is arrayhead as standard operand
!           NOTE:- The Operands have been swopped for consistency with norm.

==== ercc07/emas-2900/sup27csrce_gpc37s.txt ====

%CONSTSTRING (25) VSN="GPC37 29TH JUNE 81"
!************************************************GPC GPC GPC
!*
!*   EMAS 2900 SUPERVISOR NOTE
!*                                           No: 5
!*                                         Date: 21/05/80
!*                                       Author: A.Gibbons
!*
!*
!* %EXTERNAL ROUTINE GPC(%RECORD(PARMF)%NAME P)
!*
!* 1. CONVENTIONS
!* The record spec for the parameter is
!*   %RECORDFORMAT PARMF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6)
!* where
!*   DEST is considered as two half words DSNO and DACT. DSNO
!*        must be GPC's DSNO 
!*        DACT is set according to the function required.
!*
!*   SRCE is considered as two halfwords SSNO and SACT.

==== ercc07/emas-2900/sup26isrce_samplectopt.txt ====

!
! THIS FILE CONTAINS THE CONST INTEGERS TO CONTROL COMPILE TIME OPTIONS
! IN EMAS2900
! IT IS INTENDED TO BE CONCATENATED ONTO THE FRONT OF SOURCEFILES
! BEFORE COMPILATION
%CONSTINTEGER YES=1
%CONSTINTEGER NO=0
%CONSTINTEGER SSERIES=NO;               ! NO=PSERIES, YES=SSERIES
%CONSTINTEGER MULTIOCP=YES;             ! YES TO INCLUDE SEMAPHORING
%CONSTINTEGER SFCFITTED=NO;             ! NO FOR DISC ONLY SITES
%CONSTINTEGER CPFITTED=NO;              ! CARD PUNCH FITTED
%CONSTINTEGER SNOOZING=YES;             ! YES ALLOWS SUSPEND IN STORE
                                        ! ADVANTAGEOUS WITH LARGE STORES
%CONSTINTEGER MONLEVEL=31;              ! 0=NO MONITORING
                                        ! 2**0 SET=VIDEO UPDATING
                                        ! 2**1 SET=KMONNING
                                        ! 2**2 SET=SUP TIMING MEASUREMENTS
                                        ! 2**3 SET=CAT TABLE TRANSITIONS
                                        ! 2**4 SET= STROBING
                                        ! 2**8 SET=EVENT HARVESTING

==== ercc07/emas-2900/opt03s.txt ====
!
! Warning this module has the revised triples spec.
!
! In first attempt at Triple Imp considerable use was made of constant operands
! to pass information from Pass2 to GEN. Although for specialised operations like
! passing Labels this still applies, this adhocery has caused problems with arrays
! and pointers particularly in mapped records. The operands for four triples
! have thus been redefined in a more standard way.
!
! GETPTR    X1 is now (ptype of passed)<<16! DIMENSION
!           Opnd2 is either a 32 bit const with the size (ACC) as value or
!           the ptr or arrayhead as normal operand.
!
! VMY       X1 is now dim<<28!maxdim<<24!array name(where known)
!           Opnd2 is either a 32 bit const with DV offset into const area or
!           the arrayhead as a standard operand
!
! AINDX     X1 is ELSIZE<<20 !spare
!           Opnd2 is arrayhead as standard operand
!           NOTE:- The Operands have been swopped for consistency with norm.
!

==== ercc07/emas-2900/impalgs_writes.txt ====
%SYSTEMROUTINE WRITE(%INTEGER VALUE,PLACES)
%SYSTEMROUTINESPEC IOCP(%INTEGER A,B)
%STRING(16)S
%INTEGER D0,D1,D2,D3,L
      PLACES=PLACES&15
      *LSS_VALUE; *CDEC_0
      *LD_S; *INCA_1; *STD_%TOS
      *CPB_%B;                          ! SET CC=0
      *SUPK_%L=15,0,32;                 ! UNPACK & SPACE FILL
      *STD_D2; *JCC_8,<WASZERO>
      *LD_%TOS; *STD_D0;                 ! FOR SIGN INSERTION
      *LD_%TOS
      *MVL_%L=15,63,0;                 ! FORCE ISO ZONE CODES
      %IF VALUE<0 %THEN BYTEINTEGER(D1)='-'
      L=D3-D1
OUT:  %IF PLACES>=L %THEN L=PLACES+1
      D3=D3-L-1
      BYTEINTEGER(D3)=L
      IOCP(15,D3)
      %RETURN
WASZERO:

==== ercc07/emas-2900/impalgs_pprof01s.txt ====

%SYSTEMROUTINE PPROFILE(%INTEGER A,B)
%INTEGER LINES,V,I,J,MAX,MAXMAX
      LINES=A&X'FFFF'-1
      MAX=0
      %CYCLE I=1,1,LINES
         %IF INTEGER(B+4*I)>MAX %THEN MAX=INTEGER(B+4*I)
      %REPEAT
      MAXMAX=MAX
      MAX=1+MAX//40;                 ! TWO&AHALF PER CENT
      %CYCLE I=1,1,LINES
         V=INTEGER(B+4*I)
         %IF V>=MAX %THEN %START
            WRITE(I,4)
            J=I
            %WHILE INTEGER(B+4*J+4)=V %THEN J=J+1
            %IF J#I %THEN PRINTSTRING("->") %AND WRITE(J,4) %C
                  %ELSE SPACES(7)
            I=J
            WRITE(V,6)
            %IF V=MAXMAX %THEN PRINTSTRING("   ***")

==== ercc07/emas-2900/sup28asrce_tape73s.txt ====

!**************************************************
!*                                                *
!*  TAPE HANDLER FOR 2900                         *
!*                                                *
!**************************************************
!!
!***********************************************************************
!* VERSION 73:
!* PRIVATE CHAINS REDONE - P_P3=VADD RCB, P5,P6=STB FOR RCB AREA.
!* ALSO ALL ATTENTIONS FOR PRIVATE CHAINS GO STRAIGHT TO USER
!* WITHOUT ANY ACTION HERE.
!* VERSION 72
!* 05-MAY-81:
!*    HAIRY PON TO RESET 'RETRY PREAMBLE' WHICH ALLOWS/INHIBITS
!*    READ RETRY WHEN NO PREAMBLE DETECTED.
!*    MAINLY INTENDED FOR READING DUMP TAPES WITH SUCH.
!* 04-MAY-81:
!*    FIX IN LOAD AND LOAD MESSAGE FOR FAULTY DSN.
!*    REWINDS AND COMES UP AS LOADED NO LABEL.
!* 01-MAY-81:

==== ercc07/emas-2900/sup26gsrce_fast30s.txt ====

%EXTERNALSTRING (15) %FNSPEC STRINT(%INTEGER N)
%EXTERNALSTRING (8) %FNSPEC STRHEX(%INTEGER N)
%EXTERNALSTRING(8) %FNSPEC HTOS(%INTEGER VALUE,PLACES)
%EXTERNALROUTINESPEC PKMONREC(%STRING(20)TEXT,%RECORDNAME P)
%EXTERNALROUTINESPEC OPMESS(%STRING (63) S)
%ROUTINESPEC MONITOR(%STRING (63) S)
%EXTERNALROUTINESPEC DUMP TABLE(%INTEGER T, A, L)
%ROUTINESPEC ELAPSED INT(%RECORDNAME P)
%SYSTEMROUTINESPEC MOVE(%INTEGER L,F,T)
%SYSTEMROUTINESPEC ETOI(%INTEGER A, L)
%ROUTINESPEC PDISC(%RECORDNAME P)
%EXTERNALROUTINESPEC HOOT(%INTEGER NHOOTS)
%EXTERNALROUTINESPEC WAIT(%INTEGER MSECS)
%EXTERNALINTEGERFNSPEC HANDKEYS
%EXTERNALINTEGERFNSPEC REALISE(%INTEGER PUBVIRTADDR)
%EXTERNALROUTINESPEC SLAVESONOFF(%INTEGER ONOFF)
%IF MULTIOCP=YES %THEN %START
      %EXTERNALROUTINESPEC RESERVE LOG
      %EXTERNALROUTINESPEC RELEASE LOG
%FINISH

==== ercc07/emas-2900/lcs.txt ====
      %list
%routine LOCAL CONTROL
                                        ! CLAIMED BLOCK TABLES
%record (CBTF) %name CBT
                                        ! CONSOLE IO & ACCOUNTS RECORDS
%integername SEMAHELD;                  ! DIRECTOR HOLDING SEMA WORD
                                        ! ACTIVE SEGMENT TABLES
%constinteger MAXAS=31
%integerarray AS(0:7,0:MAXAS)
%byteintegerarray ASEG(0:MAXAS)
%integerarray ASPTVAD(0:MAXAS)
%integerarray OLDASWIPS(0:MAXRESIDENCES)
%constinteger TOPBIT=X'80000000'
!-----------------------------------------------------------------------
                                        ! LOCAL SEGMENT INFORMATION
%byteintegerarray TST(0:LSTLEN-1);      ! TERTIARY SEGMENT TABLE POINT TO AS
%constinteger SMALL SEQUENTIAL=8;       !USED TO DECIDE TO RECAP OR NOT
%integerfnspec DXR(%longlongrealname T, %longlongreal B)
%integerfnspec CHECK RES(%integer WRITE,LEN,AD)
%integerfnspec CHECKDA(%integer DA)
%routinespec PAGEOUT(%integer VSSEG,VSEPAGE, %record (CBTF) %name CBT)

==== ercc07/emas-2900/sup26csrce_documentn.txt ====



This partitioned file contains all the source required to make up a
version 26C Supervisor, plus the version of the IMP compiler and FIX
utility used at Edinburgh to do so.  This compiler is necessary as some
advanced language features are required which are not available in the
service compiler.

Note that the OPTION NOBRACKETS must be in force in the process being
used for the method described to work.

Two "OBEY" subfiles are available: MAKECHKD and MAKEOPT.  They each
construct a test Supervisor which is left in file SUP26xT,  where x is
'C' or 'O' respectively.


Making a Supervisor thus consists of the following:

a) INSERT the IMP compiler and FIX utility into the current directory
   (and then log off and log on again if IMP was previously used in

==== ercc07/emas-2900/docs_mar83.txt ====
                              EMAS System
                              ===========

     The main changes to the software have concerned DAP scheduling;  however, a
new  Director  which  supports  multiple file indexes per user has been put into
service.   This is currently inaccessible until a subsystem which accesses these
features is available.   A distressing amount of skilled time has disappeared in
investigating curious faults in the service.  Many symptoms have been tracked to
OCP3 executing conditional branches incorrectly about 1 time in 10**9.  However,
with the reduced level of engineering cover and fewer OCP specialists around too
much effort here has fallen on software people.

     The discussions at Bush83 were encouraging,  particularly the near  support
for  an  advanced  user interface;   a collection of bad features in the present
system has been compiled together with a large  number  of  possible  ideas  and
improvements.    Contacts  with UKC have proved helpful but producing a coherent
design from the very large kit of parts  is  difficult.    Enough  material  for
several  subsystems  is  available  and many good ideas will perforce have to be
rejected.

     Further rounds of discussions have taken place with ICL about their  future

==== ercc07/emas-2900/sup26isrce_ndiag07s.txt ====

!*_ DATED 11 NOV 76   1
! ALTERATIONS BY K.YARWOOD ...
!        PRINT FL AND NEXT SYMBOL LINES COMMENTED OUT
!        PRINTTEXT'S TURNED TO PRINTSTRING'S
!        ADDITION FOR LONGINTEGER IN RT PRINT VAR
!         HEX EQUIVALENTS FOR INTS,LONGINTS ETC PRINTED
!        INF PRINTED IN HEX IN RT ERRMESS

%EXTERNALSTRINGFNSPEC STRHEX(%INTEGER I)
%EXTERNALSTRING(8)%FNSPEC STRINT(%INTEGER I)
%CONSTINTEGER STACKBASE=X'80100000';  ! START OF RESIDENT STACK
! %SYSTEMROUTINESPEC SIGNAL(%INTEGER I, J, K, %INTEGERNAME F)
%ROUTINESPEC PRINTMESS(%INTEGER N)
! %SYSTEMROUTINESPEC TIDY EXIT
!*
%ROUTINESPEC INDIAG(%INTEGER OLDLNB, L, PC, %INTEGERNAME NEWLNB)
! %ROUTINESPEC FDIAG(%INTEGER OLDLNB,PC,%INTEGERNAME NEWLNB)
%ROUTINESPEC ERMESS(%INTEGER N, INF)
! %ROUTINESPEC ICL9CELABELS


==== ercc07/emas-2900/sup26gsrce_samplectopt.txt ====

!
! THIS FILE CONTAINS THE CONST INTEGERS TO CONTROL COMPILE TIME OPTIONS
! IN EMAS2900
! IT IS INTENDED TO BE CONCATENATED ONTO THE FRONT OF SOURCEFILES
! BEFORE COMPILATION
%CONSTINTEGER YES=1
%CONSTINTEGER NO=0
%CONSTINTEGER SSERIES=NO;               ! NO=PSERIES, YES=SSERIES
%CONSTINTEGER MULTIOCP=YES;             ! YES TO INCLUDE SEMAPHORING
%CONSTINTEGER SFCFITTED=NO;             ! NO FOR DISC ONLY SITES
%CONSTINTEGER CPFITTED=NO;              ! CARD PUNCH FITTED
%CONSTINTEGER SNOOZING=YES;             ! YES ALLOWS SUSPEND IN STORE
                                        ! ADVANTAGEOUS WITH LARGE STORES
%CONSTINTEGER MONLEVEL=31;              ! 0=NO MONITORING
                                        ! 2**0 SET=VIDEO UPDATING
                                        ! 2**1 SET=KMONNING
                                        ! 2**2 SET=SUP TIMING MEASUREMENTS
                                        ! 2**3 SET=CAT TABLE TRANSITIONS
                                        ! 2**4 SET= STROBING
                                        ! 2**8 SET=EVENT HARVESTING

==== ercc07/emas-2900/sup28asrce_makeopt.txt ====
PARM FREE,OPT,STACK,NOLIST
IMP80 CTOPT+SUP28ASRCE_SUP28AS,SUPZZ,,.OUT
IMP80 CTOPT+SUP28ASRCE_COM35S,COMZZ,,.OUT
IMP80 CTOPT+SUP28ASRCE_PRINT08S,PRINTZZ,,.OUT
IMP80 CTOPT+SUP28ASRCE_OPER36S,OPERZZ,,.OUT
IMP80 CTOPT+SUP28ASRCE_ENTER14S,ENTERZZ,,.OUT
IMP80 CTOPT+SUP28ASRCE_GPC39S,GPCZZ,,.OUT
IMP80 SUP28ASRCE_MINDIAGS,MINDIAGZZ,,.OUT
IMP80 CTOPT+SUP28ASRCE_COMMS53S,COMMSZZ,,.OUT
IMP80 CTOPT+SUP28ASRCE_FAST41S,FASTZZ,,.OUT
IMP80 CTOPT+SUP28ASRCE_TAPE73S,TAPEZZ,,.OUT
PARM MAP
LINK
SUPZZ
COMZZ
PRINTZZ
OPERZZ
ENTERZZ
GPCZZ
MINDIAGZZ
COMMSZZ

==== ercc07/emas-2900/sup26csrce_releasen.txt ====





          SUPERVISOR RELEASE NOTICE VSN 26C
          _________________________________


      This Supervisor incorporates the following changes:-

         1) Allows "Snoozing" if incorporated at compile time.
            This feature allows processes to be suspended in store
            for short periods. It is designed for very large stores.

         2) Improved FAST(27) with transfer aborting.   This eases
            pressure on the Disc channels by not starting writeouts
            on pages which have been recaptured by the time the disc
            is on cylinder.

         3) Incorporates the new OPER(31). See separte documentation.

==== ercc07/emas-2900/docs_emasprot.txt ====
@h(Protection in EMAS 2900)


[This document is in the form of an addendum to Reference 1.]

   2900 Architecture provides a variety of methods to enable an operating system
to maintain its own integrity.

   a) @b(Privilege).   A bit in the PSW is required to execute
      privileged instructions.

   b) @b(Activate).    A privileged instruction to start executing
      a less trusted program at a lower ACR level and on a new
      stack.

   c) @b(Out).   An instruction exactly comparable to the IBM @b(SVC).
      Enables an untrusted program to return to Supervisor in a
      controlled and secure way.

   d) @b(ACR levels).   Four bits in the @b(PSW) define the @b("Access)
      @b(Control") status of the running program.   All store accesses

==== ercc07/emas-2900/impalgs_impmess2.txt ====
1 "%REPEAT is not required"
2 "Label & has already been set in this block"
4 "& is not a Switch name at current textual level"
5 "Switch name & in expression or assignment"
6 "Switch label &(#) set a second time"
7 "Name & has already been declared"

8 "Routine or fn & has more parameters than specified"
9 "Parameter # of & differs in type from specification"
10 "Routine or fn & has fewer parameters than specified"
11 "Label & referenced at line # has not been set"
12 "%CYCLE at line # has two control clauses"
13 "%REPEAT for %CYCLE at line # is missing"
14 "%END is not required"
15 "# %ENDs are missing"
16 "Name & has not been declared"
17 "Name & does not require parameters or subscripts"
18 "# too few parameters provided for &"
19 "# too many parameters provided for &"
20 "# too few subscripts provided for array &"
21 "# too many subscripts provided for array &"

==== ercc07/emas-2900/docs_may85.txt ====

                       Central Systems Group

     Although the impression seems to be around that the sole raison  d'etre  of
CSG  is  to  write  ever more sophisticated operating systems,   it is the other
activities that absorbed most effort this term.

     1) The Filestore is receiving substantial software  effort  in  preparation
     for direct attachment to the CPSE.  This involves a change of communication
     protocols from NSI to X25.

     2) The 2976 has had a spate of crashes due primarily to faults in the  DAPs
     when acting as store.   DAP store appears to go incommunicado after certain
     hardware faults unlike normal store.   To  live  through  such  faults  the
     Supervisor  has  been altered to ensure all vital pages are kept out of DAP
     store and EMAS now runs through DAP multibit failures.

     3) The 2988 is about to move to Kings Buildings and share peripherals  with
     the 2976.  The changes needed to device driving and archiving strategies to
     accommodate shared peripherals are being evaluated.


==== ercc07/emas-2900/sup26csrce_comms42s.txt ====

!                 VERSION OF 04/12/79
!        DEC 79: INCLUDE AN OPER ADAPTOR
!                HAVE ONLY ONE SERVICE NUMBER, X'37'
!        OTHER POSSIBLE CHANGES
!           MAKE INITIALISATION CALL OF CC INITIALISE ADAPTORS AS WELL
!           MAKE IT POSSIBLE TO DEALLOCATE/ALLOCATE ALL DEVICES
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20A ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DDTADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,WASKLOKCORRECT,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,DQADDR,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0, %C
         %INTEGER ITINT,CONTYPEA,GPCCONFA,FPCCONFA,SFCCONFA, %C
         BLKADDR,DPTADDR,SMACS,TRANS,%LONGINTEGER KMON,  %C
         %INTEGER DITADDR,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,STOREAAD,PROCAAD,SFCCTAD,DRUMTAD,TSLICE,SP0,SP1, %C
         SP2,SP3,SP4,SP5,SP6,SP7,SP8, %C
         LSTL,LSTB,PSTL,PSTB,HKEYS,HOOT,SIM,CLKX,CLKY,CLKZ,  %C

==== ercc07/emas-2900/sup26esrce_samplectopt.txt ====

!
! THIS FILE CONTAINS THE CONST INTEGERS TO CONTROL COMPILE TIME OPTIONS
! IN EMAS2900
! IT IS INTENDED TO BE CONCATENATED ONTO THE FRONT OF SOURCEFILES
! BEFORE COMPILATION
%CONSTINTEGER YES=1
%CONSTINTEGER NO=0
%CONSTINTEGER SSERIES=NO;               ! NO=PSERIES, YES=SSERIES
%CONSTINTEGER MULTIOCP=NO;              ! YES TO INCLUDE SEMAPHORING
%CONSTINTEGER SFCFITTED=YES;            ! NO FOR DISC ONLY SITES
%CONSTINTEGER CPFITTED=YES;             ! CARD PUNCH FITTED
%CONSTINTEGER SNOOZING=NO;              ! YES ALLOWS SUSPEND IN STORE
                                        ! ADVANTAGEOUS WITH LARGE STORES
%CONSTINTEGER MONLEVEL=7;               ! 0=NO MONITORING
                                        ! 2**0 SET=VIDEO UPDATING
                                        ! 2**1 SET=KMONNING
                                        ! 2**2 SET=SUP TIMING MEASUREMENTS
                                        ! 2**3 SET=CAT TABLE TRANSITIONS
                                        ! 2**4 SET= STROBING
                                        ! 2**8 SET=EVENT HARVESTING

==== ercc07/emas-2900/ifast2s.txt ====
%include "ercc08.comf370"
%include "ercc08.page0f"
%recordformat PARMF(%integer DEST,SRCE,(%integer P1,P2,P3,P4,P5,
   P6 %orstring (23) TEXT))
%constinteger PCELLSIZE=36,MARGIN=48
%recordformat PDOPEF(%integer CURRMAX,MAXMAX,FIRST UNALLOC,LAST UNALLOC,
   NEXTPAGE,S1,S2,S3,S4)
%recordformat PARMXF(%integer DEST,SRCE,P1,P2,P3,P4,P5,P6,LINK)
%constrecord (PARMXF) %arrayname PARM=PARM0AD
%constrecord (PDOPEF) %name PARMDOPE=PARM0AD
%recordformat STOREF(%shortinteger FLAGS,USERS,LINK,BLINK,FLINK)
%constrecord (STOREF) %arrayname STORE=STORE0AD
!
%externallonginteger SEMATIME=0
%owninteger PARMASL=0
%externalinteger MAINQSEMA=-1
%externalintegerspec STORESEMA
%ownintegerarray GET NEW PAGE(0:14);    ! parms for call of new epage
!
%constinteger LOCSN1=LOCSN0+MAXPROCS
%recordformat SERVF(%integer P,L)

==== ercc07/emas-2900/sup27csrce_ndiag07s.txt ====

!*_ DATED 11 NOV 76   1
! ALTERATIONS BY K.YARWOOD ...
!        PRINT FL AND NEXT SYMBOL LINES COMMENTED OUT
!        PRINTTEXT'S TURNED TO PRINTSTRING'S
!        ADDITION FOR LONGINTEGER IN RT PRINT VAR
!         HEX EQUIVALENTS FOR INTS,LONGINTS ETC PRINTED
!        INF PRINTED IN HEX IN RT ERRMESS

%EXTERNALSTRINGFNSPEC STRHEX(%INTEGER I)
%EXTERNALSTRING(8)%FNSPEC STRINT(%INTEGER I)
%CONSTINTEGER STACKBASE=X'80100000';  ! START OF RESIDENT STACK
! %SYSTEMROUTINESPEC SIGNAL(%INTEGER I, J, K, %INTEGERNAME F)
%ROUTINESPEC PRINTMESS(%INTEGER N)
! %SYSTEMROUTINESPEC TIDY EXIT
!*
%ROUTINESPEC INDIAG(%INTEGER OLDLNB, L, PC, %INTEGERNAME NEWLNB)
! %ROUTINESPEC FDIAG(%INTEGER OLDLNB,PC,%INTEGERNAME NEWLNB)
%ROUTINESPEC ERMESS(%INTEGER N, INF)
! %ROUTINESPEC ICL9CELABELS


==== ercc07/emas-2900/cs4_intro.txt ====
@make[report]
@device[x2700]
@majorheading[compiler construction]
@heading[Peter Stephens]
@section[Description]
The aim of this course is to confront the problems encountered in producing a
production quality compiler; it also introduces students to the quite different
problems of programming in a team.  Students, working in groups of 3 or 4, are
expected to produce an ALGOL 60 compiler on the EMAS Amdahl Service.  Groups
will be provided with a syntax, run time support package, an object file 
generation suite and 120 test programs.  They will also receive a brief guided
tour of the compiler debugging aids on EMAS.  They will have to grapple with 
the "excruciating problems" of stack control and parameter passing in ALGOL.
@section[Organisation]
The course will consist of 12 lecturers interspersed with 6 tutorials all given
by Peter Stephens.  There will also be weekly brainstorming sessions at 8.30 a.m.
for the benefit of groups with problems.

Subjects covered will include -
@begin[itemize]
The EMAS compiler environment and standards.

==== ercc07/emas-2900/macros.txt ====
         %LISTCOMMENTS
         %MACROLISTON
%PHRASE(CLAB):'%IF' (SC)(RESTOFCOND)'%THEN' (NAME) '%ELSE' %C
            (CLAB),(NAME);
%PHRASE(LPL): (NAME)(APP) '=' (LPL),%NULL;
%PHRASE(OPTC):(CONST),%NULL;
%PHRASE(TEXTSEP):(OPTC)'C'(OPTC)'S',(OPTC)'C',(OPTC)'S';
%PHRASE(RTEXT): (TEXTSEP)(CONST)(RTEXT),%NULL;
%%FRONTMACRO: 'WRITETEXT('A(CONST) B(RTEXT) ')' S(S)
         %LOCAL X(TEXTSEP)
         %LOCAL Y(OPTC)
         %LOCAL Z(OPTC)
         %LOCAL COUNT(CONST)
L0)      :PRINT STRING($A$)
         ->END %IF B->%NULL
         B->X.A.B
         ->L1 %IF X->Y.'C'
         ->L2 %IF X->Z.'S'
         X->Y.'C'.Z.'S'
         ->Z1 %IF Y->%NULL
         Y->COUNT

==== ercc07/emas-2900/sup28dsrce_print09s.txt ====
%RECORDFORMAT PARMF(%INTEGER DEST, SRCE, P1, P2, P3, P4, P5, P6)
%EXTRINSICLONGINTEGER KMON
%ROUTINESPEC PRHEX(%INTEGER H)
%ROUTINESPEC PRINTER(%RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC PON(%RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC GDC(%RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC OPMESS(%STRING (23) MESS)
%SYSTEMROUTINESPEC ITOE(%INTEGER A, L)
%IF MULTIOCP=YES %THEN %START
   %EXTERNALROUTINESPEC SEMALOOP(%INTEGERNAME SEMA)
   %ROUTINESPEC RESERVE LOG
   %ROUTINESPEC RELEASE LOG
   %ROUTINESPEC AWAIT LOG ROUTE
%FINISH
!------------------------------------------------------------------------
!*
!* Communications record format - extant from CHOPSUPE 22A onwards *
!*
%RECORDFORMAT COMF(%INTEGER OCPTYPE,SLIPL,SBLKS,SEPGS,NDISCS,DLVNADDR, %C
         (%INTEGER GPCTABSIZE,GPCA %OR %INTEGER DCUTABSIZE,DCUA), %C
         %INTEGER SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C

==== ercc07/emas-2900/sup26hsrce_releasen.txt ====
          SUPERVISOR RELEASE NOTICE VSN 26H
          _________________________________


      This Supervisor incorporates the following changes:-

         1) Has a better FAST(32) that permits disc switching
            between controllers and also dumps slaves on sytem
            error for p4 processors.

         2) Has code for advisory sequential connects.
            to share the logfile.

         3) Improved GPC(36) with proper semaphoring for duals.

         4) Incorporates TAPE(69) with minor corrections.

         5) Prevents SPOOLR&VOLUMS from abusing their privileged
            access to time on the fly category changes



==== ercc07/emas-2900/wichtests_wt10.txt ====
'BEGIN'
    'PROCEDURE' P( ST, A ); 'STRING' ST, A;
        ;
    P( <;'COMMENT'> )VALID:( <;> );
    'COMMENT' COULD FAIL TOO FEW PARAMETERS;
'END'

==== ercc07/emas-2900/wichtests_wt11.txt ====
'BEGIN'
    'REAL' X )INVALID PARAMETER LIKE COMMENTS:(Y;
        X := Y := 0.0
'END'

==== ercc07/emas-2900/wichtests_wt12.txt ====
'BEGIN'
    'PROCEDURE' Q( ST ) INVALID PARAMETER LIKE COMMENTS ( A );
        'STRING' ST; 'REAL' A; ;
        Q( <AZ> ) ALSO IN THE CALL( 1.0 )
'END'

==== ercc07/emas-2900/arout33s.txt ====
!***********************************************************************
!*    NOTE WELL                                                        *
!*    AFTER COMPILING THIS FILE THE FOLLOWING ALIASES MUST BE ADDED    *
!*    S#PRINT1900=ICL9CEPRINT1900 & S#READ1900=ICL9CEREAD1900          *
!***********************************************************************
!* MODIFIED 28.4.80 TO ALLOW FOR EBCDIC STRINGS
!* MODIFIED 10.3.80 TO REMOVE SQ AND DA  
!* MODIFIED 6.3.80 BY LCG WITH PDS'S  READ1900 AND WRITETEXT ROUTINES
!* MODIFIED 03/05/79 MLIBERR INSERTED
!* MODIFIED 16/04/79 LENGTH CHANGED
!* MODIFIED 17/01/79 NEW VERSION OF WRITETEXT
!* MODIFIED 20/02/78  ERROR MESSAGE VALUES
!* MODIFIED  8/11/77 READ1900 IGNORES MULTIPLE SP & NL AFTER EXP CHAR
!* MODIFIED 13/01/77 SET MARGINS
!* MODIFIED 03/12/76  NEW VERSIONS OF READ1900,WRITETEXT
!******** MODIFIED 02:07:76 15.15  LCG    (ALGLRTS,MATHFNS CONCATONATED
!                                         ,COMPLEX ROUTINES
!                                         & DUPLICATES FOR FORTRAN)
%SYSTEMROUTINESPEC SSERR(%INTEGER I)
%SYSTEMINTEGERFNSPEC IOCP(%INTEGER A,B)
%SYSTEMINTEGERMAPSPEC COMREG(%INTEGER N)

==== ercc07/emas-2900/wichtests_wt13.txt ====
'BEGIN'
    LABELSCANNOTPRECEEDCOMMENTS: 'COMMENT' SHOULD FAIL;
        'GOTO' LABELSCANNOTPRECEEDCOMMENTS
'END'

==== ercc07/emas-2900/wichtests_wt14.txt ====
       'BEGIN'
                'PROCEDURE' Q( ST )INVALID PARAMETER 'COMMENT' :( A );
                        'STRING' ST; 'REAL' A; ;
                Q( <STR> ) AZ09:( 1.0 )
        'END'

==== ercc07/emas-2900/wichtests_wt15.txt ====
'BEGIN'
    'PROCEDURE' Q( ST1 )P:( ST2 ); 'COMMENT' ;
        'STRING' ST1, ST2; ;
    Q( <;'COMMENT' ) AZ: (>;> )INVALID:( <ST2> )
'END'

==== ercc07/emas-2900/sup26gsrce_makeopt.txt ====
PARM FREE,OPT,STACK,NOLIST
IMP CTOPT+SUP26GSRCE_SUP26GS,SUPZZ,,.OUT
IMP CTOPT+SUP26GSRCE_COM31S,COMZZ,,.OUT
IMP CTOPT+SUP26GSRCE_PRINT05S,PRINTZZ,,.OUT
IMP CTOPT+SUP26GSRCE_OPER33S,OPERZZ,,.OUT
IMP SUP26GSRCE_ENTER07S,ENTERZZ,,.OUT
IMP CTOPT+SUP26GSRCE_GPC34S,GPCZZ,,.OUT
IMP SUP26GSRCE_MINDIAGS,MINDIAGZZ,,.OUT
IMP CTOPT+SUP26GSRCE_COMMS46S,COMMSZZ,,.OUT
IMP CTOPT+SUP26GSRCE_FAST30S,FASTZZ,,.OUT
IMP CTOPT+SUP26GSRCE_TAPE69S,TAPEZZ,,.OUT
PARM MAP
LINK
SUPZZ
COMZZ
PRINTZZ
OPERZZ
ENTERZZ
GPCZZ
MINDIAGZZ
COMMSZZ

==== ercc07/emas-2900/wichtests_wt16.txt ====
'BEGIN'
    'COMMENT'   STRING TESTS;
    'PROCEDURE' P(ST);
        'STRING'
            ST;
        ;
    P( <*STRING 'STRING' <NESTED<<>>> 'BEGIN' 'END';> );
    P( < ,
        > )
'END'

==== ercc07/emas-2900/sup26csrce_samplectopt.txt ====

!
! THIS FILE CONTAINS THE CONST INTEGERS TO CONTROL COMPILE TIME OPTIONS
! IN EMAS2900
! IT IS INTENDED TO BE CONCATENATED ONTO THE FRONT OF SOURCEFILES
! BEFORE COMPILATION
%CONSTINTEGER YES=1
%CONSTINTEGER NO=0
%CONSTINTEGER SSERIES=NO;               ! NO=PSERIES, YES=SSERIES
%CONSTINTEGER MULTIOCP=NO;              ! YES TO INCLUDE SEMAPHORING
%CONSTINTEGER SFCFITTED=YES;            ! NO FOR DISC ONLY SITES
%CONSTINTEGER CPFITTED=YES;             ! CARD PUNCH FITTED
%CONSTINTEGER SNOOZING=NO;              ! YES ALLOWS SUSPEND IN STORE
                                        ! ADVANTAGEOUS WITH LARGE STORES
%CONSTINTEGER MONLEVEL=7;               ! 0=NO MONITORING
                                        ! 2**0 SET=VIDEO UPDATING
                                        ! 2**1 SET=KMONNING
                                        ! 2**2 SET=SUP TIMING MEASUREMENTS
                                        ! 2**3 SET=CAT TABLE TRANSITIONS
                                        ! 2**4 SET= STROBING
                                        ! 2**8 SET=EVENT HARVESTING

==== ercc07/emas-2900/wichtests_wt17.txt ====
'BEGIN'
    'REAL'
        REAL,
        INTEGER,
        BEGIN,
        END;
    REAL := 0.0
'END'

==== ercc07/emas-2900/sup28dsrce_fast42s.txt ====
!*
!* Communications record format - extant from CHOPSUPE 22A onwards *
!*
%RECORDFORMAT COMF(%INTEGER OCPTYPE,SLIPL,SBLKS,SEPGS,NDISCS,DLVNADDR, %C
         (%INTEGER GPCTABSIZE,GPCA %OR %INTEGER DCUTABSIZE,DCUA), %C
         %INTEGER SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,TOJDAY,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,SERVAAD,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0,%INTEGER ITINT,CONTYPEA, %C
         (%INTEGER GPCCONFA %OR %INTEGER DCUCONFA), %C
         %INTEGER FPCCONFA,SFCCONFA,BLKADDR,RATION, %C
         (%INTEGER SMACS %OR %INTEGER SCUS), %C
         %INTEGER TRANS,%LONGINTEGER KMON,  %C
         %INTEGER DITADDR,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,STOREAAD,PROCAAD,SFCCTAD,DRUMTAD,TSLICE,FEPS,  %C
         MAXCBT,PERFORMAD,SP1,SP2,SP3,SP4,SP5,SP6, %C
         LSTL,LSTB,PSTL,PSTB,HKEYS,HOOT,SIM,CLKX,CLKY,CLKZ,  %C
         HBIT,SLAVEOFF,INHSSR,SDR1,SDR2,SDR3,  %C
         SDR4,SESR,HOFFBIT,BLOCKZBIT,BLKSHIFT,BLKSIZE,END)

==== ercc07/emas-2900/wichtests_wt18.txt ====
'BEGIN'
    'REAL'
        A,
        AB,
        ABC,
        ABCD,
        ABCDE,
        ABCDEF,
        ABCDEFG,
        ABCDEFGH,
        ABCDEFGHI,
        ABCDEFGHIJ,
        ABCDEFGHIJK,
        ABCDEFGHIJKL,
        ABCDEFGHIJKLM,
        ABCDEFGHIJKLMN,
        ABCDEFGHIJKLNMO,
        ABCDEFGHIJKLNMOP,
        ABCDEFGHIJKLMNOPQ,
        ABCDEFGHIJKLNMOPQR,
        ABCDEFGHIJKLMNOPQRS,

==== ercc07/emas-2900/wichtests_wt19.txt ====
'BEGIN'
    'ARRAY'
        A(/1 : 3/),
        B(/1 : 3, 1 : 3/);
    'REAL' 'PROCEDURE' SUM(DIM, A);
        'VALUE'
            DIM;
        'INTEGER'
            DIM;
        'ARRAY'
            A;
        SUM :=
            'IF' DIM = 1 'THEN'
                A(/1/)+ A(/2/)+ A(/3/)
            'ELSE'
                SUM2(A);
    'REAL' 'PROCEDURE' SUM2(A);
        'ARRAY'
            A;
        SUM2 := A(/1, 1/)+ A(/1, 2/)+ A(/1, 3/)+ A(/2, 1/)+ A(/2, 2/)+
            A(/2, 3/)+ A(/3, 1/)+ A(/3, 2/)+ A(/3, 3/);

==== ercc07/emas-2900/algolps5.txt ====
43
D(NAME)
D(ICONST)
D(CONST)
D(ONAME)
D(COMTEXT))
D(S)
D(ENDTEXT)
D(TEXTTEXT)
D(NAMELIST)
D(HOLE)
D(MARK)
D(ONAMELIST)
D(UPSTCNT)
D(LETTERSTRING)
D(DOWN)
D(UP)
D(SCALARTYPE)
D(NOTENAME)
D(TYPE=A)
D(TYPE=B)

==== ercc07/emas-2900/wichtests_wt20.txt ====
'BEGIN'
    'ARRAY'
        A(/1 : 3/),
        B(/1 : 3, 1 : 3/);
    'REAL' 'PROCEDURE' SUM(DIM, A);
        'VALUE'
            DIM;
        'INTEGER'
            DIM;
        'ARRAY'
            A;
        SUM :=
            'IF' DIM = 1 'THEN'
                A(/1/)+ A(/2/)+ A(/3/)
            'ELSE'
                SUM2(A);
    'REAL' 'PROCEDURE' SUM2(A);
        'ARRAY'
            A;
        SUM2 := A(/1, 1/)+ A(/1, 2/)+ A(/1, 3/)+ A(/2, 1/)+ A(/2, 2/)+
            A(/2, 3/)+ A(/3, 1/)+ A(/3, 2/)+ A(/3, 3/);

==== ercc07/emas-2900/wichtests_wt21.txt ====
'BEGIN'
    'ARRAY'
        A(/1 : 3/),
        B(/1 : 3, 1 : 3/);
    'REAL' 'PROCEDURE' SUM(DIM, A);
        'VALUE'
            DIM;
        'INTEGER'
            DIM;
        'ARRAY'
            A;
        SUM :=
            'IF' DIM = 1 'THEN'
                (A(/1/)+ A(/2/)+ A(/3/))
            'ELSE'
                (A(/1, 1/)+ A(/1, 2/)+ A(/1, 3/)+ A(/2, 1/)+ A(/2, 2/)
                    + A(/2, 3/)+ A(/3, 1/)+ A(/3, 2/)+ A(/3, 3/));
    'INTEGER'
        I,
        J;
    'FOR' I := 1,

==== ercc07/emas-2900/ibmconvert_sibmdriver.txt ====
%RECORDFORMAT RR(%INTEGER CONAD,FTYPE,DSTART,DEND)
%SYSTEMROUTINESPEC DISCONNECT(%STRING(31)FILE,%INTEGERNAME FLAG)
%SYSTEMROUTINESPEC DESTROY(%STRING(31)FILE,%INTEGERNAME FLAG)
%SYSTEMROUTINESPEC SETWORK(%INTEGERNAME AD,LEN)
%SYSTEMROUTINESPEC CHANGEFILESIZE(%STRING(31)FILE,%INTEGER SIZE,%INTEGERNAME FLAG)
%SYSTEMROUTINESPEC NEWGEN(%STRING(31) FILE1,FILE2,%INTEGERNAME FLAG)
%EXTERNALROUTINESPEC DEFINE(%STRING(255)PARM)
%SYSTEMROUTINESPEC PSYSMES(%INTEGER ROOT,FLAG)
%SYSTEMROUTINESPEC SETPAR(%STRING(255)PARM)
%SYSTEMSTRINGFNSPEC SPAR(%INTEGER N)
%SYSTEMROUTINESPEC CONNECT(%STRING(31)FILE,%INTEGER MODE,HOLE,PROT,
         %RECORD(RR)%NAME FINFO,%INTEGERNAME FLAG)
%SYSTEMROUTINESPEC OUTFILE(%STRING(31)FILE,%INTEGER SIZE,HOLE,PROT,
         %INTEGERNAME CONAD,FLAG)
%SYSTEMROUTINESPEC MOVE(%INTEGER LNTH,FROMAD,TOAD)
%EXTERNALROUTINESPEC CONVTOIBM(%INTEGER ICONAD,OCONAD, %INTEGERNAME FLAG)
!
!
%EXTERNALROUTINE TOIBMOBJ(%STRING(255) PARM)
 %STRING(31) INFILE,OUTF,LIST,WOUTF
 %RECORD(RR) FINFO

==== ercc07/emas-2900/wichtests_wt22.txt ====
'BEGIN'
    'PROCEDURE' RECURSIVE(LEVEL, L);
        'VALUE'
            LEVEL;
        'INTEGER'
            LEVEL;
        'LABEL'
            L;
        'BEGIN'
        'IF' LEVEL # 0 'THEN'
            RECURSIVE(LEVEL - 1, EXIT)
        'ELSE'
            'GOTO' L;
       EXIT :;
        OUTREAL(99,LEVEL)
        'END';
    RECURSIVE(10, EXIT);
   EXIT :;
'END'

==== ercc07/emas-2900/algolps9.txt ====
45
D(NAME)
D(ICONST)
D(CONST)
D(ONAME)
D(COMTEXT))
D(S)
D(ENDTEXT)
D(TEXTTEXT)
D(NAMELIST)
D(HOLE)
D(MARK)
D(ONAMELIST)
D(NOTELINE)
D(LETTERSTRING)
D(DOWN)
D(UP)
D(SCALARTYPE)
D(NOTENAME)
D(TYPE=A)
D(TYPE=B)

==== ercc07/emas-2900/arout34s.txt ====
!***********************************************************************
!*    NOTE WELL                                                        *
!*    AFTER COMPILING THIS FILE THE FOLLOWING ALIASES MUST BE ADDED    *
!*    S#PRINT1900=ICL9CEPRINT1900 & S#READ1900=ICL9CEREAD1900          *
!***********************************************************************
!* MODIFIED 28.4.80 TO ALLOW FOR EBCDIC STRINGS
!* MODIFIED 10.3.80 TO REMOVE SQ AND DA  
!* MODIFIED 6.3.80 BY LCG WITH PDS'S  READ1900 AND WRITETEXT ROUTINES
!* MODIFIED 03/05/79 MLIBERR INSERTED
!* MODIFIED 16/04/79 LENGTH CHANGED
!* MODIFIED 17/01/79 NEW VERSION OF WRITETEXT
!* MODIFIED 20/02/78  ERROR MESSAGE VALUES
!* MODIFIED  8/11/77 READ1900 IGNORES MULTIPLE SP & NL AFTER EXP CHAR
!* MODIFIED 13/01/77 SET MARGINS
!* MODIFIED 03/12/76  NEW VERSIONS OF READ1900,WRITETEXT
!******** MODIFIED 02:07:76 15.15  LCG    (ALGLRTS,MATHFNS CONCATONATED
!                                         ,COMPLEX ROUTINES
!                                         & DUPLICATES FOR FORTRAN)
%SYSTEMROUTINESPEC SSERR(%INTEGER I)
%SYSTEMINTEGERFNSPEC IOCP(%INTEGER A,B)
%SYSTEMINTEGERMAPSPEC COMREG(%INTEGER N)

==== ercc07/emas-2900/wichtests_wt23.txt ====
'BEGIN'
    'INTEGER'
        I;
    'BOOLEAN'
        B;
    'PROCEDURE' LABELBYVALUE(L);
        'VALUE'
            L;
        'LABEL'
            L;
        ;
    'PROCEDURE' LABELBYNAME(L);
        'LABEL'
            L;
        'BEGIN'
        I := 1;
        'IF' B 'THEN'
            'GOTO' L
        'END';
    'SWITCH' S :=
        L1,

==== ercc07/emas-2900/disc17s.txt ====

%OWNLONGINTEGER VSN=X'4449534320563137';     ! M'DISC V17'
! DRIVING FPC2S WRITTEN BY PDS OCT 76
!
%RECORDFORMAT PARMF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6)
%RECORDFORMAT DDTFORM(%INTEGER SER,PTS,PROPADDR,STICK, %C
      CCA,RQA,LBA,ALA,STATE,IW1,IW2,SENSE1,SENSE2,SENSE3,SENSE4,%C
      REPSNO,BASE,ID,DLVN,MNEMONIC,%STRING(6)LAB,%BYTEINTEGER MECH)
!
%RECORDFORMAT PROPFORM(%INTEGER TRACKS,CYLS,PPERTRK,BLKSIZE,TOTPAGES,%C
      RQBLKSIZE,LBLKSIZE,ALISTSIZE,KEYLEN,SECTINDX)
!
%RECORDFORMAT CCAFORM(%INTEGER MARK,PAW,PIW1,PIW2,CSAW1,CSAW2,%C
      CRESP1,CRESP2,%LONGLONGREALARRAY STRMS(0:15))
!
%RECORDFORMAT RQBFORM(%INTEGER LSEGPROP,LSEGADDR,LBPROP,LBADDR,ALPROP,%C
      ALADDR,W6,W7,W8)
!
%RECORDFORMAT LABFORM(%BYTEINTEGERARRAY VOL(0:5),%BYTEINTEGER S1,%C
      S2,S3,S4,ACCESS,%BYTEINTEGERARRAY RES(1:20),%BYTEINTEGER C1,C2,%C
      AC1,AC2,TPC1,TPC2,BF1,BF2,%BYTEINTEGERARRAY POINTER(0:3), %C

==== ercc07/emas-2900/tsup01s.txt ====
%INCLUDE "ERCC07.PERQ_OPCODES"
%INCLUDE "ERCC07.TRIPCNSTS"
%INCLUDE "ERCC07.PERQ_FORMAT3S"
%OWNINTEGER CABUF,GLACABUF
%OWNINTEGERNAME CA,GLACA,PPCURR,GLACURR
%OWNBYTEINTEGERARRAYNAME CODE,GLABUF
%EXTRINSICRECORD(CODEPF) CODEP
%EXTRINSICRECORD(WORKAF)WORKA
%EXTRINSICRECORD(PARMF) PARM
%SYSTEMINTEGERMAPSPEC COMREG(%INTEGER N)
%DYNAMICROUTINESPEC QCODE(%INTEGER A,B,C,MODE)
%DYNAMICROUTINESPEC QPUT(%INTEGER A,B,C,D)
%ROUTINESPEC FAULT(%INTEGER I,J,K)
%ROUTINESPEC CNOP(%INTEGER I,J)
%ROUTINESPEC POP(%INTEGERNAME A,B,C,D)
%ROUTINESPEC PRHEX(%INTEGER VALUE,PLACES)
%CONSTINTEGER CODEBNDRY=X'1FF';         ! INSTRUCTIONS MUST NOT
                                        ! CROSS THIS IN ACCENT MODE
%CONSTINTEGER YES=1,NO=0
%CONSTINTEGER ON PERQ=NO
%CONSTBYTEINTEGERARRAY BYTES(0:7)=0(3),1,2,4,8,16;

==== ercc07/emas-2900/wichtests_wt24.txt ====
'BEGIN'
    'INTEGER' 'ARRAY'
        A(/1 : 9/);
    'INTEGER'
        I,
        S;
    'PROCEDURE' DUMMY(A);
        'VALUE'
            A;
        'ARRAY'
            A;
        SUM(A);
    'PROCEDURE' SUM(A);
        'ARRAY'
            A;
        'FOR' I := 1 'STEP' 1 'UNTIL' 9 'DO'
            'BEGIN'
            S := S + A(/I/);
            A(/I/):= 0
            'END';
    S := 0;

==== ercc07/emas-2900/sup26csrce_mindiags.txt ====
%EXTERNALSTRINGFNSPEC STRHEX(%INTEGER I)
%SYSTEMROUTINE NDIAG(%INTEGER PCOUNT, LNB, FAULT, INF)
!***********************************************************************
!*_______'MASTER DIAGNOSTIC ROUTINE'. DISCOVERS THE LANGUAGE OF THE    *
!*_______FAILED ROUTINE FROM WORD 4 OF THE GLA AND CALLS APPROPRIATE   *
!*_______DIAGNOSTIC ROUTINE. THIS IS REPEATED TILL ALL DIAGNOSTICS     *
!*_______GIVEN.                                                        *
!*_______PCOUNT = PCOUNTER AT FAILURE                                  *
!*_______LNB    = LOCAL NAME BASE AT FAILURE                           *
!*_______FAULT  = FAILURE  (0=%MONITOR  REQUESTED)                     *
!*_______INF    =ANY FURTHER INFORMATION                               *
!***********************************************************************
PRINTSTRING("
MINIMUM NDIAGS ENTERED
FAULT NO ="); WRITE(FAULT,2)
PRINTSTRING("
PC=X".STRHEX(PCOUNT)."
LNB=X".STRHEX(LNB)."
")
%END
%ENDOFFILE

==== ercc07/emas-2900/sup28asrce_com35s.txt ====
!
!* Communications record format - extant from CHOPSUPE 22A onwards *
!*
%RECORDFORMAT COMF(%INTEGER OCPTYPE,SLIPL,SBLKS,SEPGS,NDISCS,DLVNADDR, %C
         (%INTEGER GPCTABSIZE,GPCA %OR %INTEGER DCUTABSIZE,DCUA), %C
         %INTEGER SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,TOJDAY,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,SERVAAD,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0,%INTEGER ITINT,CONTYPEA, %C
         (%INTEGER GPCCONFA %OR %INTEGER DCUCONFA), %C
         %INTEGER FPCCONFA,SFCCONFA,BLKADDR,RATION, %C
         (%INTEGER SMACS %OR %INTEGER SCUS), %C
         %INTEGER TRANS,%LONGINTEGER KMON,  %C
         %INTEGER DITADDR,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,STOREAAD,PROCAAD,SFCCTAD,DRUMTAD,TSLICE,FEPS,  %C
         MAXCBT,PERFORMAD,SP1,SP2,SP3,SP4,SP5,SP6, %C
         LSTL,LSTB,PSTL,PSTB,HKEYS,HOOT,SIM,CLKX,CLKY,CLKZ,  %C
         HBIT,SLAVEOFF,INHSSR,SDR1,SDR2,SDR3,  %C
         SDR4,SESR,HOFFBIT,BLOCKZBIT,BLKSHIFT,BLKSIZE,END)

==== ercc07/emas-2900/wichtests_wt25.txt ====
'BEGIN'
    'REAL'
        X,
        Y;
    'INTEGER'
        I;
    'FOR' X := &6,
        &+6,
        &-6,
        .6,
        6,
        6.6,
        .6&6,
        .6&+6,
        .6&-6,
        6&6,
        6&+6,
        6&-6,
        6.6&6,
        6.6&+6,
        6.6&-6 'DO'

==== ercc07/emas-2900/wichtests_pete10.txt ====

'COMMENT' CHECK LINE NUMBER OF SYNTAX FAULT;
'BEGIN' 'REAL' X,Y;
      X:=0;
      'BEGIN'
      L1:;
      X:=X+1;
      'IF' Y<20.0 'GOTO' L1;
      'END';
'END';

==== ercc07/emas-2900/wichtests_wt26.txt ====
'BEGIN'
    'PROCEDURE' P(L);
        'INTEGER'
            L;
       L : 'BEGIN'
        'REAL'
            A;
        'GOTO' L;
       L :;
        'GOTO' LL
        'END';
    P(1);
   LL :;
'END'

==== ercc07/emas-2900/wichtests_wt27.txt ====
'BEGIN'
    'INTEGER'
        S;
    'PROCEDURE' P(F, G);
        'PROCEDURE'
            F,
            G;
        'BEGIN'
        'INTEGER'
            X;
        'PROCEDURE' R;
            'BEGIN'
            OUTREAL(99, S);
            OUTREAL(99, X)
            'END';
        S := S + 1;
        X := S;
        'IF' S = 1 'THEN'
            P(F, R)
        'ELSE'
            F(G, R)

==== ercc07/emas-2900/wichtests_wt28.txt ====
'BEGIN'
    'INTEGER'
        N1,
        N2;
    'PROCEDURE' DUMMY;
        ;
    'PROCEDURE' P(X, L);
        'VALUE'
            X;
        'INTEGER'
            X;
        'PROCEDURE'
            L;
        'BEGIN'
        'PROCEDURE' GOTOL1;
            'GOTO' L1;
        'IF' X = N1 'THEN'
            P(X - 1, GOTOL1)
        'ELSE'
'IF' X = N2 'THEN'
            L

==== ercc07/emas-2900/nrsrce_sdprint02s.txt ====

%EXTERNALINTEGERFNSPEC HANDKEYS
%EXTERNALROUTINESPEC WAIT(%INTEGER MSECS)
%EXTERNALROUTINESPEC SUP29
%ROUTINESPEC PRHEX(%INTEGER H)
%ROUTINESPEC PRINTER(%RECORDNAME P)
%EXTERNALROUTINESPEC DCU(%RECORDNAME P)
%EXTERNALROUTINESPEC PON(%RECORDNAME P)
%EXTERNALROUTINESPEC SLAVESONOFF(%INTEGER J)
%EXTERNALROUTINESPEC OPMESS(%STRING (23) MESS)
%RECORDFORMAT PARMF(%INTEGER DEST, SRCE, P1, P2, P3, P4, P5,  %C
         P6)
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 18D ONWARDS *
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 18D ONWARDS *
! Alterations from above-mentioned record format, for the S-series, are
! as follows:
!     GPCTABSIZE  ->   DCUTABSIZE
!     GPCA        ->   DCUA
!     SMACS       ->   SCUS
!     GPCCONFA    ->   DCUCONFA
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C

==== ercc07/emas-2900/wichtests_wt29.txt ====
'BEGIN'
    'INTEGER'
        S;
    'PROCEDURE' P(F, G);
        'PROCEDURE'
            F,
            G;'COMMENT'(X,Y):'PROCEDURE' X,Y;
        'BEGIN'
        'INTEGER'
            X;
        'PROCEDURE' R(F, G);
        'PROCEDURE' F, G;'COMMENT'(X,Y):'PROCEDURE' X,Y;
            'BEGIN'
            OUTREAL(99, S);
            OUTREAL(99, X)
            'END';
        S := S + 1;
        X := S;
        'IF' S = 1 'THEN'
            P(F, R)
        'ELSE'

==== ercc07/emas-2900/sup27isrce_tape73s.txt ====

!**************************************************
!*                                                *
!*  TAPE HANDLER FOR 2900                         *
!*                                                *
!**************************************************
!!
!***********************************************************************
!* VERSION 73:
!* PRIVATE CHAINS REDONE - P_P3=VADD RCB, P5,P6=STB FOR RCB AREA.
!* ALSO ALL ATTENTIONS FOR PRIVATE CHAINS GO STRAIGHT TO USER
!* WITHOUT ANY ACTION HERE.
!* VERSION 72
!* 05-MAY-81:
!*    HAIRY PON TO RESET 'RETRY PREAMBLE' WHICH ALLOWS/INHIBITS
!*    READ RETRY WHEN NO PREAMBLE DETECTED.
!*    MAINLY INTENDED FOR READING DUMP TAPES WITH SUCH.
!* 04-MAY-81:
!*    FIX IN LOAD AND LOAD MESSAGE FOR FAULTY DSN.
!*    REWINDS AND COMES UP AS LOADED NO LABEL.
!* 01-MAY-81:

==== ercc07/emas-2900/sup27bsrce_releasen.txt ====

         Supervisor 27B Relase Notice

      This Supervisor has the following changes

         1)  Uses store list constructed by CHOPSUPE(and thus requires a 
               version  of 21 Series CHOPSUPES to load it)

         2)  Changes to SCHEDULE to use individual timeouts
               on snoozing processes. This involves changes to
               process list formay also.

         3)  Additions to allow dynamic reconfiguration
               of dual processor systems. This involves changes
               to Supervisor FAST & GPC. These changes are omitted
               if the Options file has MULTIOCP=NO.


                                        P. Stephens    03/06/81

==== ercc07/emas-2900/wichtests_wt30.txt ====
'BEGIN'
    'INTEGER'
        N1,
        N2;
    'PROCEDURE' P(X, L);
        'VALUE'
            X;
        'INTEGER'
            X;
        'LABEL'
            L;
        'BEGIN'
        'IF' X = N1 'THEN'
            P(X - 1, L1)
        'ELSE' 'IF' X = N2 'THEN'
            'GOTO' L
        'ELSE'
            P(X - 1, L);
        L1 :;
                OUTREAL(99, X)
        'END' P;

==== ercc07/emas-2900/wichtests_wt31.txt ====
'BEGIN'
    'INTEGER'
        I,
        J;
    I := J := 0;
    I :=
        'IF' I = 0 'THEN'
                'IF' J = 0 'THEN'
                    1
                'ELSE'
                    2
        'ELSE'
            3;
    'IF' I = 1 'THEN'
        'IF' J = 0 'THEN'
            J := 2
        'ELSE'
            J := 3
        'ELSE'
            J := 4;
    OUTREAL(99, I);

==== ercc07/emas-2900/wichtests_wt32.txt ====
'BEGIN'
    'INTEGER'
        I;
    'REAL'
        X;
    'PROCEDURE' ASS(X, I);
        'REAL'
            X;
        'INTEGER'
            I;
        'IF' I < 0 'THEN'
            X := I + 3
        'ELSE'
            I := 2.0 * X;
    ASS(X, - 1);
    I := 2;
    ASS(X, I);
    ASS(I, I);
    ASS(I, X);
    OUTREAL(99, I);
    OUTREAL(99, X)

==== ercc07/emas-2900/sup27isrce_comms52s.txt ====

!  R.D.EAGER        CONTAINS CODE FOR OUTPUT ACCOUNTS IN COMM CONTROL,
!                   LP ADAPTOR AND CP ADAPTOR
!                 VERSION OF 13/06/80
!        DEC 79: INCLUDE AN OPER ADAPTOR
!                HAVE ONLY ONE SERVICE NUMBER, X'37'
!        OTHER POSSIBLE CHANGES
!           MAKE INITIALISATION CALL OF CC INITIALISE ADAPTORS AS WELL
!           MAKE IT POSSIBLE TO DEALLOCATE/ALLOCATE ALL DEVICES
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20A ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DDTADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,WASKLOKCORRECT,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,DQADDR,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0, %C
         %INTEGER ITINT,CONTYPEA,GPCCONFA,FPCCONFA,SFCCONFA, %C
         BLKADDR,DPTADDR,SMACS,TRANS,%LONGINTEGER KMON,  %C
         %INTEGER DITADDR,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,STOREAAD,PROCAAD,SFCCTAD,DRUMTAD,TSLICE,SP0,SP1, %C

==== ercc07/emas-2900/wichtests_wt33.txt ====
'BEGIN'
    'PROCEDURE' A0;
        'BEGIN'
        'PROCEDURE' A1;
            'BEGIN'
            'PROCEDURE' A2;
                'BEGIN'
                'PROCEDURE' A3;
                    'BEGIN'
                    'PROCEDURE' A4;
                        'BEGIN'
                        'PROCEDURE' A5;
                            'BEGIN'
                            'END';
                        ;
                        'END';
                    ;'END';
                ;'END';
            ;'END';
        ;'END';
    ;'END'

==== ercc07/emas-2900/wichtests_wt34.txt ====
'BEGIN' 'REAL' A;
 'BEGIN' 'REAL' A;
  'BEGIN' 'REAL' A;
   'BEGIN' 'REAL' A;
    'BEGIN' 'REAL' A;
     'BEGIN' 'REAL' A;
      'BEGIN' 'REAL' A;
       'BEGIN' 'REAL' A;
        'BEGIN' 'REAL' A;
         'BEGIN' 'REAL' A;
          'BEGIN' 'REAL' A;
           'BEGIN' 'REAL' A;
            'BEGIN' 'REAL' A;
             'BEGIN' 'REAL' A;
              'BEGIN' 'REAL' A;
              'END'
             'END'
            'END'
           'END'
          'END'
         'END'

==== ercc07/emas-2900/sup27isrce_makeopt.txt ====
PARM FREE,OPT,STACK,NOLIST
IMP80 CTOPT+SUP27ISRCE_SUP27IS,SUPZZ,,.OUT
IMP80 CTOPT+SUP27ISRCE_COM34S,COMZZ,,.OUT
IMP80 CTOPT+SUP27ISRCE_PRINT07S,PRINTZZ,,.OUT
IMP80 CTOPT+SUP27ISRCE_OPER35S,OPERZZ,,.OUT
IMP80 CTOPT+SUP27ISRCE_ENTER13S,ENTERZZ,,.OUT
IMP80 CTOPT+SUP27ISRCE_GPC39S,GPCZZ,,.OUT
IMP80 SUP27ISRCE_MINDIAGS,MINDIAGZZ,,.OUT
IMP80 CTOPT+SUP27ISRCE_COMMS52S,COMMSZZ,,.OUT
IMP80 CTOPT+SUP27ISRCE_FAST40S,FASTZZ,,.OUT
IMP80 CTOPT+SUP27ISRCE_TAPE73S,TAPEZZ,,.OUT
PARM MAP
LINK
SUPZZ
COMZZ
PRINTZZ
OPERZZ
ENTERZZ
GPCZZ
MINDIAGZZ
COMMSZZ

==== ercc07/emas-2900/sup26gsrce_makechkd.txt ====
PARM FREE,STACK,NOCHECK,NOLIST
IMP CTOPT+SUP26GSRCE_SUP26GS,SUPZZ,,.OUT
IMP CTOPT+SUP26GSRCE_COM31S,COMZZ,,.OUT
IMP CTOPT+SUP26GSRCE_PRINT05S,PRINTZZ,,.OUT
IMP CTOPT+SUP26GSRCE_OPER33S,OPERZZ,,.OUT
IMP SUP26GSRCE_ENTER07S,ENTERZZ,,.OUT
IMP CTOPT+SUP26GSRCE_GPC34S,GPCZZ,,.OUT
PARM FREE,OPT,STACK,NOLIST
IMP SUP26GSRCE_NDIAG07S,NDIAGZZ,,.OUT
IMP CTOPT+SUP26GSRCE_COMMS46S,COMMSZZ,,.OUT
IMP CTOPT+SUP26GSRCE_FAST30S,FASTZZ,,.OUT
IMP CTOPT+SUP26GSRCE_TAPE69S,TAPEZZ,,.OUT
PARM MAP
LINK
SUPZZ
COMZZ
PRINTZZ
OPERZZ
ENTERZZ
GPCZZ
NDIAGZZ

==== ercc07/emas-2900/wichtests_wt35.txt ====
'BEGIN'
    'REAL'
        A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12,
        A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24,
        A25, A26, A27, A28, A29, A30, A31, A32, A33, A34, A35, A36,
        A37, A38, A39, A40, A41, A42, A43, A44, A45, A46, A47,
        A48, A49, A50, A51, A52, A53, A54, A55, A56, A57, A58,
        A59, A60, A61, A62, A63, A64, A65, A66, A67, A68, A69,
        A70, A71, A72, A73, A74, A75, A76, A77, A78, A79, A80,
        A81, A82, A83, A84, A85, A86, A87, A88, A89, A90, A91,
        A92, A93, A94, A95, A96, A97, A98, A99, A100, A101,
        A102, A103, A104, A105, A106, A107, A108, A109, A110,
        A111, A112, A113, A114, A115, A116, A117, A118, A119,
        A120, A121, A122, A123, A124, A125, A126, A127, A128,
        A129, A130, A131, A132, A133, A134, A135, A136, A137,
        A138, A139, A140, A141, A142, A143, A144, A145, A146,
        A147, A148, A149, A150, A151, A152, A153, A154, A155,
        A156, A157, A158, A159, A160, A161, A162, A163, A164,
        A165, A166, A167, A168, A169, A170, A171, A172, A173,
        A174, A175, A176, A177, A178, A179, A180, A181, A182,
        A183, A184, A185, A186, A187, A188, A189, A190, A191,

==== ercc07/emas-2900/wichtests_wt36.txt ====
'BEGIN'
    'ARRAY'
        A0, A1, A2, A3, A4, A5, A6, A7, A8, A9,
        A10, A11, A12, A13, A14, A15, A16, A17, A18, A19,
        A20, A21, A22, A23, A24, A25, A26, A27, A28, A29,
        A30, A31, A32, A33, A34, A35, A36, A37, A38, A39,
        A40, A41, A42, A43, A44, A45, A46, A47, A48, A49,
        A50, A51, A52, A53, A54, A55, A56, A57, A58, A59(/1 : 10/);
    A0(/1/):= 1.0; A1(/1/):= 1.0; A2(/1/):= 1.0; A3(/1/):= 1.0;
    A4(/1/):= 1.0; A5(/1/):= 1.0; A6(/1/):= 1.0; A7(/1/):= 1.0;
    A8(/1/):= 1.0; A9(/1/):= 1.0; A10(/1/):= 1.0; A11(/1/):= 1.0;
    A12(/1/):= 1.0; A13(/1/):= 1.0; A14(/1/):= 1.0; A15(/1/):= 1.0;
    A16(/1/):= 1.0; A17(/1/):= 1.0; A18(/1/):= 1.0; A19(/1/):= 1.0;
    A20(/1/):= 1.0; A21(/1/):= 1.0; A22(/1/):= 1.0; A23(/1/):= 1.0;
    A24(/1/):= 1.0; A25(/1/):= 1.0; A26(/1/):= 1.0; A27(/1/):= 1.0;
    A28(/1/):= 1.0; A29(/1/):= 1.0; A30(/1/):= 1.0; A31(/1/):= 1.0;
    A32(/1/):= 1.0; A33(/1/):= 1.0; A34(/1/):= 1.0; A35(/1/):= 1.0;
    A36(/1/):= 1.0; A37(/1/):= 1.0; A38(/1/):= 1.0; A39(/1/):= 1.0;
    A40(/1/):= 1.0; A41(/1/):= 1.0; A42(/1/):= 1.0; A43(/1/):= 1.0;
    A44(/1/):= 1.0; A45(/1/):= 1.0; A46(/1/):= 1.0; A47(/1/):= 1.0;
    A48(/1/):= 1.0; A49(/1/):= 1.0; A50(/1/):= 1.0; A51(/1/):= 1.0;

==== ercc07/emas-2900/impalgs_rphexs.txt ====
%CONSTBYTEINTEGERARRAY CHEX(0:15)=%C
      '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F';
%EXTERNALROUTINE RPHEX(%LONGREAL X)
%INTEGER I,J
%ROUTINESPEC HEX(%INTEGER VAL)
      I=INTEGER(ADDR(X))
      J=INTEGER(ADDR(X)+4)
      HEX(I); HEX(J)
%ROUTINE HEX(%INTEGER VAL)
%INTEGER I
      SPACE
      %CYCLE I=28,-4,0
         PRINT SYMBOL(CHEX(VAL>>I&15))
      %REPEAT
%END
%END
%ENDOFFILE

==== ercc07/emas-2900/wichtests_wt37.txt ====
'BEGIN'
 'INTEGER'
  A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11;
 'INTEGER'
  SUM;
 SUM := 0;
 'FOR' A0 := 1,2 'DO' 'BEGIN' SUM := SUM + 1;
  'FOR' A1 := 1,2 'DO' 'BEGIN' SUM := SUM + 1;
   'FOR' A2 := 1,2 'DO' 'BEGIN' SUM := SUM + 1;
    'FOR' A3 := 1,2 'DO' 'BEGIN' SUM := SUM + 1;
     'FOR' A4 := 1,2 'DO' 'BEGIN' SUM := SUM + 1;
      'FOR' A5 := 1,2 'DO' 'BEGIN' SUM := SUM + 1;
       'FOR' A6 := 1,2 'DO' 'BEGIN' SUM := SUM + 1;
        'FOR' A7 := 1,2 'DO' 'BEGIN' SUM := SUM + 1;
         'FOR' A8 := 1,2 'DO' 'BEGIN' SUM := SUM + 1;
          'FOR' A9 := 1,2 'DO' 'BEGIN' SUM := SUM + 1;
           'FOR' A10 := 1,2 'DO' 'BEGIN' SUM := SUM + 1;
            'FOR' A11 := 1,2 'DO' 'BEGIN' SUM := SUM + 1;
             'END'
            'END'
           'END'

==== ercc07/emas-2900/wichtests_wt38.txt ====
'BEGIN'
 'INTEGER'
  I,
  J,
  SUM;
 I := 1;
 J := 2;
 SUM := 0;
 'IF' I > J 'THEN''BEGIN'
  'END' 'ELSE' 'BEGIN' SUM := SUM + 1;
  'IF' I > J 'THEN''BEGIN'
   'END' 'ELSE' 'BEGIN' SUM := SUM + 1;
   'IF' I > J 'THEN''BEGIN'
    'END' 'ELSE' 'BEGIN' SUM := SUM + 1;
    'IF' I > J 'THEN''BEGIN'
     'END' 'ELSE' 'BEGIN' SUM := SUM + 1;
     'IF' I > J 'THEN''BEGIN'
      'END' 'ELSE' 'BEGIN' SUM := SUM + 1;
      'IF' I > J 'THEN''BEGIN'
       'END' 'ELSE' 'BEGIN' SUM := SUM + 1;
       'IF' I > J 'THEN''BEGIN'

==== ercc07/emas-2900/wichtests_wt39.txt ====
'BEGIN'
    'INTEGER'
        I,
        J,
    SUM;
    I := 1;
    J := 2;
    SUM := 1 + ('IF' I > J 'THEN'0 'ELSE' ('IF' I > J 'THEN'0 'ELSE'
        ('IF' I > J 'THEN'0 'ELSE' ('IF' I > J 'THEN'0 'ELSE' ('IF' I
        > J 'THEN'0 'ELSE' ('IF' I > J 'THEN'0 'ELSE' ('IF' I > J
        'THEN'0 'ELSE' ('IF' I > J 'THEN'0 'ELSE' ('IF' I > J 'THEN'
        0 'ELSE' 1)))))))));
    OUTREAL(99, SUM);
'END'

==== ercc07/emas-2900/sup26isrce_print05s.txt ====

%EXTRINSICLONGINTEGER KMON
%ROUTINESPEC PRHEX(%INTEGER H)
%ROUTINESPEC PRINTER(%RECORDNAME P)
%EXTERNALROUTINESPEC PON(%RECORDNAME P)
%EXTERNALROUTINESPEC OPMESS(%STRING (23) MESS)
%SYSTEMROUTINESPEC ITOE(%INTEGER A, L)
%IF MULTIOCP=YES %THEN %START
%EXTERNALROUTINESPEC SEMALOOP(%INTEGERNAME SEMA)
      %ROUTINESPEC RESERVE LOG
      %ROUTINESPEC RELEASE LOG
      %ROUTINESPEC AWAIT LOG ROUTE
%FINISH
%RECORDFORMAT PARMF(%INTEGER DEST, SRCE, P1, P2, P3, P4, P5,  %C
         P6)
!------------------------------------------------------------------------
%RECORDFORMAT ENTFORM(%INTEGER SER, PTSM, PROPADDR,  %C
         TICKS SINCE, CAA, GRCB AD, LBA, ALA, STATE, RESP0,  %C
         RESP1, SENSE1, SENSE2, SENSE3, SENSE4, REPSNO, BASE,  %C
         ID, DLVN, MNEMONIC, ENTSIZE, PAW, USAW0, URCB AD,  %C
         SENSDAT AD, LOGMASK, TRTAB AD, UA SIZE, UA AD,  %C

==== ercc07/emas-2900/ibmsup_activems.txt ====
%routine ACTIVE MEM(%record (PARMF) %name P)
!***********************************************************************
!*    CONTROLS THE ALLOCATION OF ACTIVE MEMORY                         *
!*    ACTIVITY 0  INITIALISE                                           *
!*    ACTIVITY 1  GET AMT FOR SPECIFIED DISC ADDRESSS                  *
!*    ACTIVITY 2  RETURN AMT FOR DITTO                                 *
!*    ACTIVITY 3  COMPLETE RETURN OF AMT AFTER TRANSFER COMPLETED      *
!*    ACTIVITY 4  ORGANISE TIMEOUT OF ACTIVE MEM                       *
!*    ACTIVITY 5 CHECK IF DISC ADDRESS IS STILL ACTIVE                 *
!***********************************************************************
%routinespec COLLECT DD GARBAGE
%routinespec APPENDAMTA(%integer NEWSPACE,REALAD)
%routinespec APPENDAMTDD(%integer NEWSPACE,REALAD)
%routinespec DDASLALLOC(%integer FROM,TO)
%routinespec DEALLOCAMT
%routinespec DEALLOCDD(%integer DDX,LEN)
%integer HASH,DDX,GARB,AMTX,SRCE,ID,DA,LEN,MASK,REALAD,FREEMAX,I,J,K,CN
%integer DACT,LIM
      %if MONLEVEL&12=12 %thenstart
      %integer IT,IC
      %finish

==== ercc07/emas-2900/wichtests_wt40.txt ====
'BEGIN'
    'SWITCH' SS :=
        A0, A1, A2, A3, A4, A5, A6, A7, A8, A9,
        A10, A11, A12, A13, A14, A15, A16, A17, A18, A19,
        A20, A21, A22, A23, A24, A25, A26, A27, A28, A29,
        A30, A31, A32, A33, A34, A35, A36, A37, A38, A39,
        A40, A41, A42, A43, A44, A45, A46, A47, A48, A49,
        A50, A51, A52, A53, A54, A55, A56, A57, A58, A59,
        A60, A61, A62, A63, A64, A65, A66, A67, A68, A69,
        A70, A71, A72, A73, A74, A75, A76, A77, A78, A79,
        A80, A81, A82, A83, A84, A85, A86, A87, A88, A89,
        A90, A91, A92, A93, A94, A95, A96, A97, A98, A99,
        A100, A101, A102, A103, A104, A105, A106, A107, A108, A109,
        A110, A111, A112, A113, A114, A115, A116, A117, A118, A119,
        A120, A121, A122, A123, A124, A125, A126, A127, A128, A129,
        A130, A131, A132, A133, A134, A135, A136, A137, A138, A139,
        A140, A141, A142, A143, A144, A145, A146, A147, A148, A149,
        A150, A151, A152, A153, A154, A155, A156, A157, A158, A159,
        A160, A161, A162, A163, A164, A165, A166, A167, A168, A169,
        A170, A171, A172, A173, A174, A175, A176, A177, A178, A179,
        A180, A181, A182, A183, A184, A185, A186, A187, A188, A189,

==== ercc07/emas-2900/wichtests_wt41.txt ====
'BEGIN'
    'INTEGER' 'PROCEDURE' P(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9,
        A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20,
        A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31,
        A32, A33, A34, A35, A36, A37, A38, A39, A40, A41, A42,
        A43, A44, A45, A46, A47, A48, A49, A50, A51, A52, A53,
        A54, A55, A56, A57, A58, A59);
        'VALUE'
            A0, A1, A2, A3, A4, A5, A6, A7, A8, A9,
            A10, A11, A12, A13, A14, A15, A16, A17, A18, A19,
            A20, A21, A22, A23, A24, A25, A26, A27, A28, A29,
            A30, A31, A32, A33, A34, A35, A36, A37, A38, A39,
            A40, A41, A42, A43, A44, A45, A46, A47, A48, A49,
            A50, A51, A52, A53, A54, A55, A56, A57, A58, A59;
        'INTEGER'
            A0, A1, A2, A3, A4, A5, A6, A7, A8, A9,
            A10, A11, A12, A13, A14, A15, A16, A17, A18, A19,
            A20, A21, A22, A23, A24, A25, A26, A27, A28, A29,
            A30, A31, A32, A33, A34, A35, A36, A37, A38, A39,
            A40, A41, A42, A43, A44, A45, A46, A47, A48, A49,
            A50, A51, A52, A53, A54, A55, A56, A57, A58, A59;

==== ercc07/emas-2900/wichtests_wt42.txt ====
'BEGIN'
    'ARRAY'
        A(/1 : 2, 1 : 2, 1 : 2, 1 : 2, 1 : 2, 1 : 2, 1 : 2, 1 :
            2, 1 : 2, 1 : 2, 1 : 2, 1 : 2/);
    A(/1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1/):= 1.0;
    OUTREAL(99, A(/1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1/));
'END'

==== ercc07/emas-2900/wichtests_wt43.txt ====
'BEGIN'
    'REAL'
        A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14;
    'REAL'
        SUM;
    A0 := 1.0;  A1 := 1.0;  A2 := 1.0;
    A3 := 1.0;  A4 := 1.0;  A5 := 1.0;
    A6 := 1.0;  A7 := 1.0;  A8 := 1.0;
    A9 := 1.0;  A10 := 1.0;  A11 := 1.0;
    A12 := 1.0;  A13 := 1.0;  A14 := 1.0;
    SUM := A0 + (A1 + (A2 + (A3 + (A4 + (A5 + (A6 + (A7 + (A8 + (A9
        + (A10 + (A11 + (A12 + (A13 + (A14))))))))))))));
    OUTREAL(99, SUM);
'END'

==== ercc07/emas-2900/wichtests_wt44.txt ====
'BEGIN'
    'REAL'
        A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14;
    'REAL'
        SUM;
    A0 := 1.0;  A1 := 1.0;  A2 := 1.0;
    A3 := 1.0;  A4 := 1.0;  A5 := 1.0;
    A6 := 1.0;  A7 := 1.0;  A8 := 1.0;
    A9 := 1.0;  A10 := 1.0;  A11 := 1.0;
    A12 := 1.0;  A13 := 1.0;  A14 := 1.0;
    SUM := 2.0 * A0 + .5 * (2.0 * A1 + .5 * (2.0 * A2 + .5 * (2.0
        * A3 + .5 * (2.0 * A4 + .5 * (2.0 * A5 + .5 * (2.0 * A6
        + .5 * (2.0 * A7 + .5 * (2.0 * A8 + .5 * (2.0 * A9 + .5
        * (2.0 * A10 + .5 * (2.0 * A11 + .5 * (2.0 * A12 + .5 *
        (2.0 * A13 + .5 * (A14))))))))))))));
    OUTREAL(99, SUM);
'END'

==== ercc07/emas-2900/wichtests_wt45.txt ====
'BEGIN'
    'REAL'
        X;
    X := 8.4;
    OUTREAL(99,
        SQRT(SQRT(SQRT(SQRT(SQRT(SQRT(SQRT(SQRT(SQRT(X^9)))))))))
        );
'END'

==== ercc07/emas-2900/sup27bsrce_sup27bs.txt ====

!
! TO MAKE S SERIES SUPERVISOR REQUIRES:-
!     1) CHANGE SSERIES=NO TO SSERIES=YES IN CTOPTIONS FILE
!     2) REPLACE COMF BY S SERIES COM IN ERCC08.COMSF
!
!
! THESE CONST INTEGERS DEFINE SIZES AND LAYOUT OF IMPORTANT TABLES
! THEY HAVE TO BE HERE TO BE GLOBAL TO ALL ROUTINES INCLUDING IO ONES
!
%CONSTINTEGER LSTLEN=192;               ! LOCAL SEGMENT TABLE LENGTH
%CONSTINTEGER CBTLEN=299;               ! LENGTH OF CBT TABLE
%CONSTLONGINTEGER LCACR=1;              ! ACR OF LOCAL CONTROLLER
%CONSTINTEGER DIRCSEG=10;               ! SEG NO OF DIRECTOR COMMS SEG
%CONSTINTEGER DIRCSEGOFFSET=0;          ! FOR ALIGNMENT IF NEEDED
%CONSTINTEGER DIRCSEGAD=DIRCSEG<<18;    ! VIRTUAL ADDRESS OF DIR COM SEG
%CONSTINTEGER DIRCSEGL=8*CBTLEN+255+2*LSTLEN; ! SIZE OF SAME
                                        ! MADE UP OF 2049 FOR CBT
                                        ! 2*LSTLEN FOR SST
                                        ! 48+64 FOR 2 BITS OF SYTEMCALL TABLE
                                        ! 32+48 FOR DIROUTP&SIGOUT

==== ercc07/emas-2900/wichtests_wt46.txt ====
'BEGIN'
    'INTEGER'
        I,
        J;
    I := 1;
    J := 2;
    L1 :;
    'GOTO'
        'IF' I > J 'THEN'L1
        'ELSE' 'IF' I > J 'THEN'L1
        'ELSE' 'IF' I > J 'THEN'L1
        'ELSE' 'IF' I > J 'THEN'L1
        'ELSE' 'IF' I > J 'THEN'L1
        'ELSE' 'IF' I > J 'THEN'
            L1
        'ELSE'
            L2;
    L2 :;
'END'

==== ercc07/emas-2900/wichtests_wt47.txt ====
'BEGIN'
    A0 :; A1 :; A2 :; A3 :; A4 :; A5 :;
'END'

==== ercc07/emas-2900/sup26hsrce_mindiags.txt ====
%EXTERNALSTRINGFNSPEC STRHEX(%INTEGER I)
%SYSTEMROUTINE NDIAG(%INTEGER PCOUNT, LNB, FAULT, INF)
!***********************************************************************
!*_______'MASTER DIAGNOSTIC ROUTINE'. DISCOVERS THE LANGUAGE OF THE    *
!*_______FAILED ROUTINE FROM WORD 4 OF THE GLA AND CALLS APPROPRIATE   *
!*_______DIAGNOSTIC ROUTINE. THIS IS REPEATED TILL ALL DIAGNOSTICS     *
!*_______GIVEN.                                                        *
!*_______PCOUNT = PCOUNTER AT FAILURE                                  *
!*_______LNB    = LOCAL NAME BASE AT FAILURE                           *
!*_______FAULT  = FAILURE  (0=%MONITOR  REQUESTED)                     *
!*_______INF    =ANY FURTHER INFORMATION                               *
!***********************************************************************
PRINTSTRING("
MINIMUM NDIAGS ENTERED
FAULT NO ="); WRITE(FAULT,2)
PRINTSTRING("
PC=X".STRHEX(PCOUNT)."
LNB=X".STRHEX(LNB)."
")
%END
%ENDOFFILE

==== ercc07/emas-2900/wichtests_wt48.txt ====
'BEGIN'
  'INTEGER'
    SUM;
  SUM := 0;
  'BEGIN' SUM := SUM + 1;
    'BEGIN' SUM := SUM + 1;
      'BEGIN' SUM := SUM + 1;
        'BEGIN' SUM := SUM + 1;
          'BEGIN' SUM := SUM + 1;
            'BEGIN' SUM := SUM + 1;
              'BEGIN' SUM := SUM + 1;
                'BEGIN' SUM := SUM + 1;
                  'BEGIN' SUM := SUM + 1;
                    'BEGIN' SUM := SUM + 1;
                      'BEGIN' SUM := SUM + 1;
                        'BEGIN' SUM := SUM + 1;
                          'BEGIN' SUM := SUM + 1;
                            'BEGIN' SUM := SUM + 1;
                              'BEGIN' SUM := SUM + 1;
                                'BEGIN' SUM := SUM + 1;
                                  'BEGIN' SUM := SUM + 1;

==== ercc07/emas-2900/wichtests_wt49.txt ====
'BEGIN'
    'REAL'
        A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14;
    A0 := A1 := A2 := A3 := A4 := A5 := A6 := A7 := A8 :=
        A9 := A10 := A11 := A12 := A13 := A14 := 1.0;
    OUTREAL(99, A0 + A1 + A2 + A3 + A4 + A5 + A6 + A7 + A8 + A9 + A10
        + A11 + A12 + A13 + A14);
'END'

==== ercc07/emas-2900/ibm_newimpl.txt ====
PARM NOCHECK
IMP80 IBM_IMP01S,IBMY,.LP,.OUT
OBEY IBM_LINK
PARM CODE
IBMIMP IT0,.NULL,.LP

==== ercc07/emas-2900/wichtests_wt50.txt ====
'BEGIN'
    'INTEGER'
        I,
        SUM;
    SUM := 0;
    'FOR' I := 1,  I + 1,  I + 1,  I + 1,  I + 1,  I + 1,
        I + 1,  I + 1,  I + 1,  I + 1,  I + 1,  I + 1,
        I + 1,  I + 1,  I + 1,  I + 1,  I + 1,  I + 1,
        I + 1,  I + 1,  I + 1,  I + 1,  I + 1,  I + 1,
        I + 1,  I + 1,  I + 1,  I + 1,  I + 1,  I + 1,
        I + 1,  I + 1,  I + 1,  I + 1,  I + 1,  I + 1,
        I + 1,  I + 1,  I + 1,  I + 1,  I + 1,  I + 1,
        I + 1,  I + 1,  I + 1,  I + 1,  I + 1,  I + 1,
        I + 1,  I + 1,  I + 1,  I + 1,  I + 1,  I + 1,
        I + 1,  I + 1,  I + 1,  I + 1,  I + 1,  I + 1 'DO'
        SUM := SUM + I;
    OUTREAL(99, SUM);
'END'

==== ercc07/emas-2900/wichtests_wt51.txt ====
'BEGIN'
    'ARRAY'
        A0(/1 : 10/), A1(/1 : 10/), A2(/1 : 10/), A3(/1 : 10/),
        A4(/1 : 10/), A5(/1 : 10/), A6(/1 : 10/), A7(/1 : 10/),
        A8(/1 : 10/), A9(/1 : 10/), A10(/1 : 10/), A11(/1 : 10/),
        A12(/1 : 10/), A13(/1 : 10/), A14(/1 : 10/), A15(/1 : 10/),
        A16(/1 : 10/), A17(/1 : 10/), A18(/1 : 10/), A19(/1 : 10/),
        A20(/1 : 10/), A21(/1 : 10/), A22(/1 : 10/), A23(/1 : 10/),
        A24(/1 : 10/), A25(/1 : 10/), A26(/1 : 10/), A27(/1 : 10/),
        A28(/1 : 10/), A29(/1 : 10/), A30(/1 : 10/), A31(/1 : 10/),
        A32(/1 : 10/), A33(/1 : 10/), A34(/1 : 10/), A35(/1 : 10/),
        A36(/1 : 10/), A37(/1 : 10/), A38(/1 : 10/), A39(/1 : 10/),
        A40(/1 : 10/), A41(/1 : 10/), A42(/1 : 10/), A43(/1 : 10/),
        A44(/1 : 10/), A45(/1 : 10/), A46(/1 : 10/), A47(/1 : 10/),
        A48(/1 : 10/), A49(/1 : 10/), A50(/1 : 10/), A51(/1 : 10/),
        A52(/1 : 10/), A53(/1 : 10/), A54(/1 : 10/), A55(/1 : 10/),
        A56(/1 : 10/), A57(/1 : 10/), A58(/1 : 10/), A59(/1 : 10/);
    A0(/1/):= 1.0;    A1(/1/):= 1.0;    A2(/1/):= 1.0;    A3(/1/):= 1.0;
    A4(/1/):= 1.0;    A5(/1/):= 1.0;    A6(/1/):= 1.0;    A7(/1/):= 1.0;
    A8(/1/):= 1.0;    A9(/1/):= 1.0;    A10(/1/):= 1.0;    A11(/1/):= 1.0;
    A12(/1/):= 1.0;    A13(/1/):= 1.0;    A14(/1/):= 1.0;    A15(/1/):= 1.0;

==== ercc07/emas-2900/sup28dsrce_gpc40s.txt ====

%CONSTSTRING (25) VSN="GPC40 15th Mar 1982"
!************************************************GPC GPC GPC
!*
!*   EMAS 2900 SUPERVISOR NOTE
!*                                           No: 5
!*                                         Date: 21/05/80
!*                                       Author: A.Gibbons
!*
!*
!* %EXTERNAL ROUTINE GPC(%RECORD(PARMF)%NAME P)
!*
!* 1. CONVENTIONS
!* The record spec for the parameter is
!*   %RECORDFORMAT PARMF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6)
!* where
!*   DEST is considered as two half words DSNO and DACT. DSNO
!*        must be GPC's DSNO 
!*        DACT is set according to the function required.
!*
!*   SRCE is considered as two halfwords SSNO and SACT.

==== ercc07/emas-2900/wichtests_wt52.txt ====
'BEGIN'
    'INTEGER' 'PROCEDURE' IABS(I);
        'VALUE'
            I;
        'INTEGER'
            I;
        IABS :=
            'IF' I < 0 'THEN'
                - I
            'ELSE'
                I;
    'INTEGER'
        I,
        J,
        K;
    I := J := K := 1;
    'BEGIN'
        'ARRAY'
            A(/('IF' IABS(J * K 'DIV' I) > 3 * I - K 'THEN'- 60 'ELSE' 1) :
                ('IF' IABS(J * K 'DIV' I) > 3 * I - K 'THEN'- 60 'ELSE' 1)
                * 3.0 - 1.6 + 10.2/),

==== ercc07/emas-2900/wichtests_wt53.txt ====
'BEGIN'
    'INTEGER'
        I,
        J;
    'FOR' I := - 2,
         - 1,
        1,
        2 'DO'
        'FOR' J := - 2 'STEP' 1 'UNTIL' 2 'DO'
            'IF' J 'DIV' I # SIGN(J / I) * ENTIER(ABS(J / I))
                'THEN'
                'BEGIN'
                OUTREAL(99, J);
                OUTREAL(99, I);
                OUTREAL(99, J 'DIV' I)
                'END';
'END'

==== ercc07/emas-2900/ibm_newimp.txt ====
PARM NOCHECK,NOLIST
IMP80 IBM_IMP01S,IBMY,,.OUT
OBEY IBM_LINK
INSERT IBM01Y

==== ercc07/emas-2900/wichtests_wt54.txt ====
'BEGIN'
    'INTEGER' 'PROCEDURE' TSIGN(X);
        'VALUE'
            X;
        'REAL'
            X;
        TSIGN :=
            'IF' X > 0 'THEN'
                1
            'ELSE' 'IF' X < 0 'THEN'
                 - 1
            'ELSE'
                0;
    'INTEGER' 'PROCEDURE' TENTIER(X);
        'VALUE'
            X;
        'REAL'
            X;
        TENTIER := X - .5;
    'REAL' 'PROCEDURE' TABS(X);
        'VALUE'

==== ercc07/emas-2900/wichtests_wt55.txt ====
'BEGIN'
    'INTEGER' 'ARRAY'
        EQ(/1 : 9/);
    'INTEGER'
        I;
    'REAL'
        X,
        Y;
    'PROCEDURE' PRINT EQ;
        'FOR' I := 1 'STEP' 1 'UNTIL' 9 'DO'
            OUTREAL(99, EQ(/I/));
    'PROCEDURE' TEST(A, B, C);
        'VALUE'
            A,
            B,
            C;
        'REAL'
            A,
            B,
            C;
        'BEGIN'

==== ercc07/emas-2900/wichtests_wt56.txt ====
'BEGIN'
    'INTEGER'
        I,
        J,
        CASE;
    'REAL'
        X,
        Y;
    'PROCEDURE' REQUAL(A, B);
        'VALUE'
            A,
            B;
        'REAL'
            A,
            B;
        'IF' A # B 'THEN'
            'BEGIN'
            OUTREAL(99, A);
            OUTREAL(99, B);
            OUTREAL(99, CASE)
            'END'

==== ercc07/emas-2900/perq_newimp.txt ====
PARM NOCHECK,NOLIST
IMP80 PERQ_IMP01S,PERQY,,.OUT
IMP80 PERQ_PASSONE,PASSONEY,,.OUT
OBEY PERQ_LINK

==== ercc07/emas-2900/wichtests_wt57.txt ====
'BEGIN'
    'INTEGER'
        I;
    'REAL'
        X;
    I := 0;
    X := 0.0;
    OUTREAL(99, X^I)
'END'

==== ercc07/emas-2900/drsgen01s.txt ====
%INCLUDE "ERCC07.TRIMP_HOSTCODES"
%CONSTINTEGER HOST=EMAS
%CONSTINTEGER TARGET=PNX
%INCLUDE  "ERCS02.DRS_ECODES"
%INCLUDE "ERCC07.TRIPCNSTS"
%INCLUDE "ERCC07.TRIMP_TFORM1S"
%CONSTINTEGER ESTK=0,FR0=1,FR1=2,FR2=3,FR3=4,FRN=FR0<<16!FR3
%RECORDFORMAT REGF(%INTEGER CL,(%INTEGER USE %OR %HALF SECUSE,PRIMUSE),
      %INTEGER INF1,INF2,AT,LINK)
%OWNINTEGER CABUF,GLACABUF,GLABEL,FPPTR,FPHEAD
%OWNINTEGERNAME CA,GLACA,PPCURR
%OWNINTEGERARRAYNAME CTABLE,TAGS
!%OWNBYTEINTEGERARRAYNAME CODE
%OWNRECORD(LISTF)%ARRAYNAME ASLIST
%EXTRINSICINTEGERARRAY CAS(0:12)
%EXTRINSICRECORD(WORKAF)WORKA
%EXTRINSICRECORD(PARMF) PARM
%CONSTINTEGER MAXREG=4
%OWNRECORD(REGF)%ARRAY REGS(0:MAXREG)
%EXTERNALROUTINESPEC FLAGAND FOLD(%RECORD(TRIPF)%ARRAYNAME T)
%SYSTEMINTEGERMAPSPEC COMREG(%INTEGER N)

==== ercc07/emas-2900/wichtests_wt58.txt ====
'BEGIN'
    'INTEGER'
        I;
    I := 0;
    OUTREAL(99, I^I)
'END'

==== ercc07/emas-2900/wichtests_wt59.txt ====
'BEGIN'
    'REAL'
        X;
    X := - 1.0;
    OUTREAL(99, 0.0^X)
'END'

==== ercc07/emas-2900/imp80tests_testcomp.txt ====
LIST IMP80TESTS_BLURB
PARM
IMP80 IMP80TESTS_CT0,.NULL,.OUT
IMP80 IMP80TESTS_CT1,.NULL,.OUT
IMP80 IMP80TESTS_CT2,.NULL,.OUT
IMP80 IMP80TESTS_CT3,.NULL,.OUT
IMP80 IMP80TESTS_CT4,.NULL,.OUT
IMP80 IMP80TESTS_CT5,.NULL,.OUT
IMP80 IMP80TESTS_CT6,.NULL,.OUT
IMP80 IMP80TESTS_CT7,.NULL,.OUT
IMP80 IMP80TESTS_CT8,.NULL,.OUT
IMP80 IMP80TESTS_CT9,.NULL,.OUT
IMP80 IMP80TESTS_CT10,.NULL,.OUT
IMP80 IMP80TESTS_CT11,.NULL,.OUT
IMP80TESTS_CT12,.NULL,.OUT
IMP80 IMP80TESTS_CT13,.NULL,.OUT
IMP80 IMP80TESTS_RT0,IY,.OUT
RUN IY
IMP80 IMP80TESTS_RT1,IY,.OUT
RUN IY
IMP80 IMP80TESTS_RT2,IY,.OUT

==== ercc07/emas-2900/wichtests_wt60.txt ====
'BEGIN'
    'REAL'
        X;
    X := - 1.0;
    OUTREAL(99, 0^X)
'END'

==== ercc07/emas-2900/sup28asrce_fast41s.txt ====
!*
!* Communications record format - extant from CHOPSUPE 22A onwards *
!*
%RECORDFORMAT COMF(%INTEGER OCPTYPE,SLIPL,SBLKS,SEPGS,NDISCS,DLVNADDR, %C
         (%INTEGER GPCTABSIZE,GPCA %OR %INTEGER DCUTABSIZE,DCUA), %C
         %INTEGER SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,TOJDAY,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,SERVAAD,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0,%INTEGER ITINT,CONTYPEA, %C
         (%INTEGER GPCCONFA %OR %INTEGER DCUCONFA), %C
         %INTEGER FPCCONFA,SFCCONFA,BLKADDR,RATION, %C
         (%INTEGER SMACS %OR %INTEGER SCUS), %C
         %INTEGER TRANS,%LONGINTEGER KMON,  %C
         %INTEGER DITADDR,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,STOREAAD,PROCAAD,SFCCTAD,DRUMTAD,TSLICE,FEPS,  %C
         MAXCBT,PERFORMAD,SP1,SP2,SP3,SP4,SP5,SP6, %C
         LSTL,LSTB,PSTL,PSTB,HKEYS,HOOT,SIM,CLKX,CLKY,CLKZ,  %C
         HBIT,SLAVEOFF,INHSSR,SDR1,SDR2,SDR3,  %C
         SDR4,SESR,HOFFBIT,BLOCKZBIT,BLKSHIFT,BLKSIZE,END)

==== ercc07/emas-2900/wichtests_wt61.txt ====
'BEGIN'
    'COMMENT' LIBRARY 1;
    'INTEGER'
        I;
    'REAL'
        X;
    X := 3.2;
    I := - 2;
    OUTREAL(99, I^X)
'END'

==== ercc07/emas-2900/wichtests_wt62.txt ====
'BEGIN'
    'COMMENT' LIBRARY 99;
    'INTEGER'
        I,
        J;
    I := 0;
    J := - 2;
    OUTREAL(99, I^J)
'END'

==== ercc07/emas-2900/sup27bsrce_oper34s.txt ====
! %CONSTSTRING(15)VSN = "OPER34 29/5/81"; ! ****************************************
%IF (MONLEVEL >> 1) & 1 = YES %START
      %EXTRINSICLONGINTEGER KMON
      %OWNINTEGER OPMON; ! COPY OF KMON BIT
      %CONSTINTEGER KMONNING = YES
%FINISH %ELSE %START
      %CONSTINTEGER KMONNING = NO
%FINISH
!
%IF MONLEVEL & 1 = YES %START
      %CONSTINTEGER VIDEO UPDATING = YES
      %OWNINTEGER OPER FACILITIES
%FINISH %ELSE %START
      %CONSTINTEGER VIDEO UPDATING = NO
%FINISH
!
!
!
%RECORDFORMAT PF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6)
%RECORDFORMAT MP F(%INTEGER DEST,SRCE,%STRING(23)TXT)
!*

==== ercc07/emas-2900/wichtests_wt63.txt ====
'BEGIN'
    'COMMENT' LIBRARY 1;
    'INTEGER'
        I;
    'REAL'
        X;
    X := 0.0;
    I := - 2;
    OUTREAL(99, X^I)
'END'

==== ercc07/emas-2900/isup2s.txt ====
!
%include "ercc07.ibmsup_page0"
!
! These const integers define sizes and layout of important tables
! they have to be here to be global to all routines including I/O ones
!
%constlonginteger DISAWAIT=PSW0!X'2000000000000'
%constlonginteger ALLOW INTS=x'0306000000000000'
%constlonginteger ONE SECOND=x'00000000F4240000'
!
%ownlonginteger PSW,WPSW,L
!
%include "ercc07.ibmsup_lcform1s"
!
%externalintegerfnspec REQUEST INPUT(%integer OUTPUT POSN,TRIGGER POSN)
%externalintegerfnspec REQUEST OUTPUT(%integer OUTPUT POSN,TRIGGER POSN)
%externalintegerfnspec CHANGE CONTEXT
%externalroutine SUP01
!-----------------------------------------------------------------------
%ownstring (3) SUPID="01A"
!---------------------

==== ercc07/emas-2900/wichtests_wt64.txt ====
'BEGIN'
    'COMMENT' LIBRARY 1;
    'INTEGER''PROCEDURE' P(B);
        'VALUE'
            B;
        'BOOLEAN'
            B;
        P := ('IF' B 'THEN' 1 'ELSE' 3.3) 'DIV' 6;
    OUTREAL(99, P('TRUE'));
    OUTREAL(99, P('FALSE'))
'END'

==== ercc07/emas-2900/wichtests_wt65.txt ====
'BEGIN'
    'COMMENT' LIBRARY 1;
    'INTEGER'
        I,
        J;
    I := 2;
    J := 3;
    OUTREAL(99, I^J 'DIV' J)
'END'

==== ercc07/emas-2900/wichtests_wt66.txt ====
'BEGIN'
    'COMMENT' LIBRARY 1;
    'INTEGER'
        I,
        J,
        K,
        CASE;
    'PROCEDURE' EQUAL(I, J);
        'VALUE'
            I,
            J;
        'INTEGER'
            I,
            J;
        'IF' I # J 'THEN'
            'BEGIN'
            OUTREAL(99, CASE);
            OUTREAL(99, I);
            OUTREAL(99, J)
            'END'
        'ELSE'

==== ercc07/emas-2900/wichtests_wt67.txt ====
'BEGIN'
    'COMMENT' LIBRARY 1;
    'INTEGER'
        I,
        J;
    I := 3;
    J := - 2;
    OUTREAL(99, (81 * I^J) 'DIV' 2);
'END'

==== ercc07/emas-2900/drsgen02s.txt ====
!
! Warning this module has the revised triples spec.
!
! In first attempt at Triple Imp considerable use was made of constant operands
! to pass information from Pass2 to GEN. Although for specialised operations like
! passing Labels this still applies, this adhocery has caused problems with arrays
! and pointers particularly in mapped records. The operands for four triples
! have thus been redefined in a more standard way.
!
! GETPTR    X1 is now (ptype of passed)<<16! DIMENSION
!           Opnd2 is either a 32 bit const with the size (ACC) as value or
!           the ptr or arrayhead as normal operand.
!
! VMY       X1 is now dim<<28!maxdim<<24!array name(where known)
!           Opnd2 is either a 32 bit const with DV offset into const area or
!           the arrayhead as a standard operand
!
! AINDX     X1 is ELSIZE<<20 !spare
!           Opnd2 is arrayhead as standard operand
!           NOTE:- The Operands have been swopped for consistency with norm.
!

==== ercc07/emas-2900/wichtests_wt68.txt ====
'BEGIN'
    'COMMENT' LIBRARY 1;
    'INTEGER'
        I;
    'SWITCH' S :=
        S1,
        S2,
        S3,
        S4;
    'FOR' I := 1 'STEP' 1 'UNTIL' 4 'DO'
        'BEGIN'
        'GOTO' S[I];
        S1 :;
        'IF' I # 1 'THEN'
            OUTREAL(99, I)
        'ELSE'
            'GOTO' EXIT;
        S2 :;
        'IF' I # 2 'THEN'
            OUTREAL(99, I)
        'ELSE'

==== ercc07/emas-2900/wichtests_wt69.txt ====
'BEGIN'
    'COMMENT' LIBRARY 1;
    'INTEGER'
        I;
    'SWITCH' S :=
        S1,
        S2,
        S3,
        S4;
    'FOR' I := 1,
        2,
        3 'DO'
        'BEGIN'
        'GOTO' S[I];
        S1 :;
        'IF' I # 1 'THEN'
            OUTREAL(99, I)
        'ELSE'
            S2 : 'IF' I # 2 'THEN'
                OUTREAL(99, I)
        'END';

==== ercc07/emas-2900/wichtests_wt70.txt ====
'BEGIN'
    'COMMENT' LIBRARY 1;
    'INTEGER'
        I;
    'SWITCH' S :=
        S1,
        S2,
        S3;
    I := 1;
    'GOTO' S[I];
    'FOR' I := 1,
        2,
        3 'DO'
        'BEGIN'
        S1 :;
        OUTREAL(99, 10);
        S2 :;
        OUTREAL(99, 20);
        OUTREAL(99, I)
        'END';
    S3 :;

==== ercc07/emas-2900/sup27bsrce_mindiags.txt ====
%EXTERNALSTRINGFNSPEC STRHEX(%INTEGER I)
%SYSTEMROUTINE NDIAG(%INTEGER PCOUNT, LNB, FAULT, INF)
!***********************************************************************
!*_______'MASTER DIAGNOSTIC ROUTINE'. DISCOVERS THE LANGUAGE OF THE    *
!*_______FAILED ROUTINE FROM WORD 4 OF THE GLA AND CALLS APPROPRIATE   *
!*_______DIAGNOSTIC ROUTINE. THIS IS REPEATED TILL ALL DIAGNOSTICS     *
!*_______GIVEN.                                                        *
!*_______PCOUNT = PCOUNTER AT FAILURE                                  *
!*_______LNB    = LOCAL NAME BASE AT FAILURE                           *
!*_______FAULT  = FAILURE  (0=%MONITOR  REQUESTED)                     *
!*_______INF    =ANY FURTHER INFORMATION                               *
!***********************************************************************
PRINTSTRING("
MINIMUM NDIAGS ENTERED
FAULT NO ="); WRITE(FAULT,2)
PRINTSTRING("
PC=X".STRHEX(PCOUNT)."
LNB=X".STRHEX(LNB)."
")
%END
%ENDOFFILE

==== ercc07/emas-2900/wichtests_wt71.txt ====
'BEGIN'
    'COMMENT' LIBRARY 1;
    'INTEGER'
        I,
        CASE;
    'BOOLEAN'
        B;
    'REAL'
        X;
    'INTEGER''PROCEDURE' P(K, Q);
        'VALUE'
            K;
        'INTEGER'
            K;
        'INTEGER''PROCEDURE'
            Q;
        'COMMENT' (X1) : 'VALUE' X1 : 'REAL' X1 ;
        P :=
            'IF' K = 1 'THEN'
                Q(I)
            'ELSE' 'IF' K = 2 'THEN'

==== ercc07/emas-2900/impalgs_cputimes.txt ====
%EXTERNALINTEGERFNSPEC DCPUTIME
%EXTERNALLONGREALFN REALCPUTIME
      %RESULT=DCPUTIME/1000
%END
%ENDOFFILE

==== ercc07/emas-2900/wichtests_wt72.txt ====
'BEGIN'
    'COMMENT' LIBRARY 3;
    'INTEGER'
        I,
        CASE;
    'BOOLEAN'
        B;
    'REAL'
        X;
    'INTEGER''PROCEDURE' P(K, Q);
        'VALUE'
            K;
        'INTEGER'
            K;
        'INTEGER''PROCEDURE'
            Q;
        'COMMENT' (X1) : 'VALUE' X1 : 'INTEGER'X1 ;
        P :=
            'IF' K = 1 'THEN'
                Q(I)
            'ELSE' 'IF' K = 2 'THEN'

==== ercc07/emas-2900/wichtests_wt73.txt ====
'BEGIN'
    'COMMENT' LIBRARY 1;
    'INTEGER'
        I,
        J,
        K,
        K1;
    'REAL'
        T1,
        T2;
    'INTEGER''PROCEDURE' ACKERMANN(M, N);
        'VALUE'
            M,
            N;
        'INTEGER'
            M,
            N;
        ACKERMANN :=
            'IF' M = 0 'THEN'
                N + 1
            'ELSE' 'IF' N = 0 'THEN'

==== ercc07/emas-2900/ibm_imp01s.txt ====
%MAINEP ICL9CEZIBMIMP
%TRUSTEDPROGRAM
%BEGIN
%CONSTINTEGER RELEASE=1
%CONSTINTEGER YES=1,NO=0
%CONSTINTEGER USE IMP=NO
%CONSTINTEGER VMEB=NO
%CONSTSTRING(9) LADATE="30 Nov 81";       ! LAST ALTERED
%INTEGER I, J, K
! PRODUCED BY OLDPS FROM IBM_PS02 ON 06/01/82
%CONSTBYTEINTEGERARRAY CLETT(0: 454)=   1,
  40,   1,  41,   1,  42,   1,  44,   2, 201, 198,   6, 213, 206, 204,
 197, 211, 211,   5, 215, 200, 201, 204, 197,   5, 213, 206, 212, 201,
 204,   3, 198, 207, 210,   1,  61,   5, 193, 204, 201, 193, 211,   7,
 201, 206, 212, 197, 199, 197, 210,   4, 210, 197, 193, 204,   4, 204,
 207, 206, 199,   4, 194, 217, 212, 197,   6, 211, 212, 210, 201, 206,
 199,   5, 211, 200, 207, 210, 212,   6, 210, 197, 195, 207, 210, 196,
   7, 210, 207, 213, 212, 201, 206, 197,   2, 198, 206,   3, 205, 193,
 208,   8, 198, 213, 206, 195, 212, 201, 207, 206,   4, 206, 193, 205,
 197,   9, 193, 210, 210, 193, 217, 206, 193, 205, 197,   9, 207, 198,
 208, 210, 207, 199, 210, 193, 205,   6, 207, 198, 198, 201, 204, 197,

==== ercc07/emas-2900/isup3s.txt ====
!
%include "ercc07:ibmsup_page0"
!
! These const integers define sizes and layout of important tables
! they have to be here to be global to all routines including I/O ones
!
%constlonginteger DISAWAIT=PSW0!X'2000000000000'
%constlonginteger ALLOW INTS=x'0306000000000000'
%constlonginteger ONE SECOND=x'00000000F4240000'
!
%ownlonginteger PSW,WPSW,L
!
%include "ercc07:ibmsup_lcform2s"
!
%externalintegerfnspec REQUEST INPUT(%integer OUTPUT POSN,TRIGGER POSN)
%externalintegerfnspec REQUEST OUTPUT(%integer OUTPUT POSN,TRIGGER POSN)
%externalintegerfnspec CHANGE CONTEXT
%externalroutine SUP01
!-----------------------------------------------------------------------
%ownstring (3) SUPID="01A"
!---------------------

==== ercc07/emas-2900/wichtests_wt74.txt ====
'BEGIN'
    'COMMENT' LIBRARY 1;
    'INTEGER'
        N;
    N := 3;
    'BEGIN'
        'ARRAY'
            A[1 : 'IF' N = 3 'THEN' 3 'ELSE' - 100];
        'INTEGER'
            N;
        N := 2;
        OUTREAL(99, N);
    'END';
    OUTREAL(99, N)
'END'

==== ercc07/emas-2900/newpackdts.txt ====
!***********************************************************************
!*                                                                     *
!* THESE FUNCTIONS ALL USE A PACKED FORMAT OF DATE AND TIME OF ONE OF  *
!* THE FOLLOWING FORMS.BITS ARE NUMBERED FROM 31 (MOST SIGNIFICANT) TO *
!* 0 (LEAST SIGNIFICANT)                                               *
!* OLD FORMAT                                                          *
!* BITS    USE                                                         *
!* 31      ZERO FOR OLD FORMAT                                         *
!* 30-26  YEAR-70  (VALID FOR 1970-2033)                               *
!* 25-22  MONTH                                                        *
!* 21-17  DAY                                                          *
!* 16-12  HOUR                                                         *
!* 11- 6  MINUTE                                                       *
!*  5- 0  SECOND                                                       *
!*                                                                     *
!*  NEW FORMAT                                                         *
!*  BIT31 1 FOR NEW FORMAT                                             *
!*    ALL OTHER BITS HOLD DT AS SECS SINCE 0000HRS ON 1/1/70           *
!*    CALCULATED AS PER CACM COLLECTER ALGORITHMS NO 199Z              *
!*    NB TO KEEP LEAP YEARS CORRECT ONE MUST USE THIS ALGORITH FROM    *
!*    1ST JAN 1900 AND THEN CORRECT. THIS INVOLVES 64BIT ARITHMETIC    *

==== ercc07/emas-2900/wichtests_wt75.txt ====
'BEGIN'
    'COMMENT' LIBRARY 9;
    'INTEGER''ARRAY'
        EQ[1 : 3];
    'INTEGER'
        I;
    'REAL'
        X,
        Y;
    'PROCEDURE' INC(A, B);
        'VALUE'
            A,
            B;
        'REAL'
            A,
            B;
        'IF' A < B 'THEN'
            EQ[1] := EQ[1] + 1
        'ELSE' 'IF' A = B 'THEN'
            EQ[2] := EQ[2] + 1
        'ELSE'

==== ercc07/emas-2900/sup26esrce_gpc33s.txt ====
%CONSTSTRING(25) VSN = "GPC33 10TH SEP 80"; ! ************************************************GPC GPC GPC
!
!   EMAS 2900 SUPERVISOR NOTE
!                                           No: 5
!                                         Date: 21/05/80
!                                       Author: A.Gibbons
!
!
! %EXTERNAL ROUTINE GPC(%RECORDNAME P)
!
! 1. CONVENTIONS
! The record spec for the parameter is
!   %RECORDFORMAT PARMF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6)
! where
!   DEST is considered as two half words DSNO and DACT. DSNO
!        must be GPC's DSNO 
!        DACT is set according to the function required.
!
!   SRCE is considered as two halfwords SSNO and SACT.
!        SSNO is SNO of ORIGINATOR and SACT is DACT for
!        the reply.

==== ercc07/emas-2900/sup28asrce_releasen.txt ====

         Supervisor 28A Release Notice

      This Supervisor has the following changes

==== ercc07/emas-2900/wichtests_wt76.txt ====
'BEGIN'
    'COMMENT' LIBRARY 1;
    'REAL'
        X,
        Y;
    'INTEGER'
        I,
        J;
    'ARRAY'
        A[1 : 10];
    X := Y := 1.0;
    I := J := 0;
    'BEGIN'
        'SWITCH' A := A1,A2,A3;
        'PROCEDURE' P;
            'BEGIN'
            X := 20;
            I := X + Y;
            Q(A[3], I + J)
            'END';
        'PROCEDURE' Q(L, K);

==== ercc07/emas-2900/perq_imp01s.txt ====
%MAINEP ICL9CEZPERQIMP
%TRUSTEDPROGRAM
%BEGIN
%CONSTINTEGER RELEASE=1
%CONSTINTEGER YES=1,NO=0
%CONSTINTEGER ON PERQ=NO
%CONSTSTRING(9) LADATE="3 Dec 81";       ! LAST ALTERED
%INTEGER I, J, K
%CONSTINTEGER NO OF SNS=63
%CONSTINTEGER LRLPT=X'52'
!
! FIXED GLA CURRENTLY USED AS FOLLOWS
!     0-7   FREE(WAS 2900 ENTRY DESCRIPTOR)
!     8-11  ADDRESS OF UNSHARED SYMBOL TABLES
!     12-15 ADDRESS OF SHARED SYMBOL TABLES
!     16-19 LANGUAGE & COMPILER DATA
!     20-23 RESERVED (BUT IN MAIN PROGS IS FILLED WITH STACKPTR@ENTRY)
!     24-27 ADDRESS OF CONSTANT TABL
!     28-31 ADDRESS OF A WORD CONTAINING STACKTOP  0FOR NO CHECKS
!     32-39 FREE
!     40-55 DEFINES THE ENTRY POINT OF MDIAGS

==== ercc07/emas-2900/wichtests_wt77.txt ====
'BEGIN'
    'COMMENT' LIBRARY 1;
    'INTEGER'
        SUM;
    'PROCEDURE' P1(S, R, I, B, RA, IA);
        'STRING'
            S;
        'REAL'
            R;
        'INTEGER'
            I;
        'BOOLEAN'
            B;
        'REAL' 'ARRAY'
            RA;
        'INTEGER''ARRAY'
            IA;
        SUM := SUM + R + I + ('IF' B 'THEN' 1 'ELSE' 0) + RA[1] +
            IA[1];
    'PROCEDURE' P2(BA, L, SW, PR, RPR, IPR, BPR);
        'BOOLEAN' 'ARRAY'

==== ercc07/emas-2900/drsgen03s.txt ====
!
! Warning this module has the revised triples spec.
!
! In first attempt at Triple Imp considerable use was made of constant operands
! to pass information from Pass2 to GEN. Although for specialised operations like
! passing Labels this still applies, this adhocery has caused problems with arrays
! and pointers particularly in mapped records. The operands for four triples
! have thus been redefined in a more standard way.
!
! GETPTR    X1 is now (ptype of passed)<<16! DIMENSION
!           Opnd2 is either a 32 bit const with the size (ACC) as value or
!           the ptr or arrayhead as normal operand.
!
! VMY       X1 is now dim<<28!maxdim<<24!array name(where known)
!           Opnd2 is either a 32 bit const with DV offset into const area or
!           the arrayhead as a standard operand
!
! AINDX     X1 is ELSIZE<<20 !spare
!           Opnd2 is arrayhead as standard operand
!           NOTE:- The Operands have been swopped for consistency with norm.
!

==== ercc07/emas-2900/wichtests_wt78.txt ====
'BEGIN'
    'COMMENT' LIBRARY 1;
    'INTEGER'
        SUM;
    'PROCEDURE' P1(S, R, I, B, RA, IA);
        'STRING'
            S;
        'REAL'
            R;
        'INTEGER'
            I;
        'BOOLEAN'
            B;
        'REAL' 'ARRAY'
            RA;
        'INTEGER''ARRAY'
            IA;
        SUM := SUM + R + I + ('IF' B 'THEN' 1 'ELSE' 0) + RA[1] +
            IA[1];
    'PROCEDURE' P2(BA, L, SW, PR, RPR, IPR, BPR);
        'BOOLEAN' 'ARRAY'

==== ercc07/emas-2900/pnxponeas.txt ====
%CONSTINTEGER YES=1,NO=0
%CONSTINTEGER EMAS=10
%CONSTINTEGER PERQ=11
%CONSTINTEGER PUNIX=12
%CONSTINTEGER HOST=EMAS
%CONSTINTEGER TARGET=PERQ
%CONSTINTEGER LINTAVAIL=1<<EMAS
%CONSTINTEGER LLREALAVAIL=1<<EMAS
! PRODUCED BY OLDPS FROM TRIMP_PNXPS01 ON 06/09/83
%CONSTBYTEINTEGERARRAY CLETT(0: 436)=   1,
  40,   1,  41,   1,  42,   1,  44,   2, 201, 198,   6, 213, 206, 204,
 197, 211, 211,   5, 215, 200, 201, 204, 197,   5, 213, 206, 212, 201,
 204,   3, 198, 207, 210,   1,  61,   5, 193, 204, 201, 193, 211,   7,
 201, 206, 212, 197, 199, 197, 210,   4, 210, 197, 193, 204,   4, 204,
 207, 206, 199,   4, 194, 217, 212, 197,   6, 211, 212, 210, 201, 206,
 199,   4, 200, 193, 204, 198,   5, 211, 200, 207, 210, 212,   6, 210,
 197, 195, 207, 210, 196,   7, 210, 207, 213, 212, 201, 206, 197,   2,
 198, 206,   3, 205, 193, 208,   8, 198, 213, 206, 195, 212, 201, 207,
 206,   4, 206, 193, 205, 197,   9, 193, 210, 210, 193, 217, 206, 193,
 205, 197,   9, 207, 198, 208, 210, 207, 199, 210, 193, 205,   6, 207,
 198, 198, 201, 204, 197,   6, 207, 198, 204, 201, 211, 212,   6, 198,

==== ercc07/emas-2900/wichtests_wt79.txt ====
'BEGIN'
    'INTEGER'
        I;
    'REAL'
        R;
    'BOOLEAN'
        B;
    'ARRAY'
        A1[1 : I + B],
        A2[2 : 4, 5 : 7];
    'SWITCH' S :=
        'IF' R * P0 < 0 'THEN' L 'ELSE' L2;
    'PROCEDURE' P0;
        R := I 'DIV' R;
    'PROCEDURE' P1(F);
        'REAL'
            F;
        B := I + R;
    L :;
    B := I > S;
    B := B 'OR' P0;

==== ercc07/emas-2900/sup26hsrce_comms48s.txt ====

!                 VERSION OF 13/06/80
!        DEC 79: INCLUDE AN OPER ADAPTOR
!                HAVE ONLY ONE SERVICE NUMBER, X'37'
!        OTHER POSSIBLE CHANGES
!           MAKE INITIALISATION CALL OF CC INITIALISE ADAPTORS AS WELL
!           MAKE IT POSSIBLE TO DEALLOCATE/ALLOCATE ALL DEVICES
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20A ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DDTADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,WASKLOKCORRECT,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,DQADDR,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0, %C
         %INTEGER ITINT,CONTYPEA,GPCCONFA,FPCCONFA,SFCCONFA, %C
         BLKADDR,DPTADDR,SMACS,TRANS,%LONGINTEGER KMON,  %C
         %INTEGER DITADDR,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,STOREAAD,PROCAAD,SFCCTAD,DRUMTAD,TSLICE,SP0,SP1, %C
         SP2,SP3,SP4,SP5,SP6,SP7,SP8, %C
         LSTL,LSTB,PSTL,PSTB,HKEYS,HOOT,SIM,CLKX,CLKY,CLKZ,  %C

==== ercc07/emas-2900/perq_newimpl.txt ====
PARM NOCHECK
IMP80 PERQ_PASSONES,PASSONEY,.LP,.OUT
IMP80 PERQ_IMP01S,PERQY,.LP,.OUT
IMP80 PERQ_CSUPS,PERQCSUPY,.LP,.OUT
OBEY PERQ_LINK

==== ercc07/emas-2900/sup25jsrce_documentn.txt ====



This partitioned file contains all the source required to make up a
version 25I Supervisor, plus the version of the IMP compiler used at
Edinburgh to do so.  This compiler is necessary as some advanced
compiler features are required which are not available in the service
compiler.

Note that the OPTION NOBRACKETS must be in force in the process being
used for the method described to work.

Three "OBEY" subfiles are available: MAKECHKD, MAKEOPT and MAKERACER.
They each construct a test Supervisor which is left in file SUP25xT,
where x is 'C', 'O' or 'R' respectively.

The fixing utility is in CONLIB.GENERAL, which must be in the user's
"SEARCHDIR" list. A COPY IS INCLUDED IN THIS FILE IN CASE OF PROBLEMS.


Making a Supervisor thus consists of the following:

==== ercc07/emas-2900/impmess2.txt ====
1 "%REPEAT is not required"
2 "Label & has already been set in this block"
4 "& is not a Switch name at current textual level"
5 "Switch name & in expression or assignment"
6 "Switch label &(#) set a second time"
7 "Name & has already been declared"

8 "Routine or fn & has more parameters than specified"
9 "Parameter # of & differs in type from specification"
10 "Routine or fn & has fewer parameters than specified"
11 "Label & referenced at line # has not been set"
12 "%CYCLE at line # has two control clauses"
13 "%REPEAT for %CYCLE at line # is missing"
14 "%END is not required"
15 "# %ENDs are missing"
16 "Name & has not been declared"
17 "Name & does not require parameters or subscripts"
18 "# too few parameters provided for &"
19 "# too many parameters provided for &"
20 "# too few subscripts provided for array &"
21 "# too many subscripts provided for array &"

==== ercc07/emas-2900/sup28dsrce_enter15s.txt ====
%RECORDFORMAT PARMF(%INTEGER DEST, SRCE, P1, P2, P3, P4, P5, P6)
%RECORDFORMAT SERVAF(%INTEGER P, C)
%EXTERNALINTEGERSPEC INPTR
%EXTERNALINTEGERSPEC OUTPTR
%CONSTINTEGER MASK=X'80FC3FFF'
%EXTERNALINTEGERFNSPEC HANDKEYS
%EXTERNALROUTINESPEC HOOT(%INTEGER NUM)
%EXTERNALROUTINESPEC GDC(%RECORD(PARMF)%NAME P)
%IF SSERIES=NO %START
   %EXTERNALINTEGERFNSPEC GPC INIT(%INTEGER CA,PT,MODE)
%FINISH
%EXTERNALINTEGERFNSPEC SAFE IS READ(%INTEGER ISAD,%INTEGERNAME VAL)
%EXTERNALROUTINESPEC GET PSTB(%INTEGERNAME P0, P1)
%EXTERNALROUTINESPEC SUP29
%EXTERNALROUTINESPEC SUPPOFF(%RECORD(SERVAF)%NAME SERV, %C
      %RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC DISC(%RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC PDISC(%RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC SLAVESONOFF(%INTEGER J)
%EXTERNALROUTINESPEC PKMONREC(%STRING(20)TEXT,%RECORD(PARMF)%NAME P)
!*

==== ercc07/emas-2900/wichtests_wt80.txt ====
'BEGIN'
    'COMMENT' LIBRARY 1;
    'INTEGER'
        I;
    'INTEGER''ARRAY'
        A[1 : 10];
    I := 1;
    'FOR' A[I] := 1,
        2,
        3,
        4,
        5,
        6,
        7,
        8,
        9,
        10 'DO'
        I := I + 1;
    'FOR' I := 1 'STEP' 1 'UNTIL' 10 'DO'
        'IF' A[I] # I 'THEN'
            OUTREAL(99, I);

==== ercc07/emas-2900/sup27fsrce_makechkd.txt ====
PARM FREE,NOCHECK,NOLIST,STACK
IMP80 CTOPT+SUP27FSRCE_SUP27FS,SUPZZ,,.OUT
IMP80 CTOPT+SUP27FSRCE_COM33S,COMZZ,,.OUT
IMP80 CTOPT+SUP27FSRCE_PRINT07S,PRINTZZ,,.OUT
IMP80 CTOPT+SUP27FSRCE_OPER35S,OPERZZ,,.OUT
IMP80 CTOPT+SUP27FSRCE_ENTER12S,ENTERZZ,,.OUT
PARM FREE,OPT,STACK,NOLIST
IMP80 CTOPT+SUP27FSRCE_GPC38S,GPCZZ,,.OUT
IMP80 SUP27FSRCE_NDIAG07S,NDIAGZZ,,.OUT
IMP80 CTOPT+SUP27FSRCE_COMMS49S,COMMSZZ,,.OUT
IMP80 CTOPT+SUP27FSRCE_FAST38S,FASTZZ,,.OUT
IMP80 CTOPT+SUP27FSRCE_TAPE73S,TAPEZZ,,.OUT
PARM MAP
LINK
SUPZZ
COMZZ
PRINTZZ
OPERZZ
ENTERZZ
GPCZZ
NDIAGZZ

==== ercc07/emas-2900/wichtests_wt81.txt ====
'BEGIN'
    'COMMENT' LIBRARY 1;
    'ARRAY'
        V,
        A,
        C[1 : 1];
    'INTEGER'
        K;
    'INTEGER''PROCEDURE' I;
        'BEGIN'
        I := 1;
        K := K + 1
        'END';
    K := 0;
    A[I] := 1;
    C[I] := 3;
    'FOR' V[I] := A[I] 'STEP' A[I] 'UNTIL' C[I] 'DO'
        ;
    OUTREAL(99, K)
'END'

==== ercc07/emas-2900/sup27csrce_documentn.txt ====



This partitioned file contains all the source required to make up
an EMAS2900 Supervisor, plus the version of the IMP80 compiler and FIX
utility used at Edinburgh to do so.  This compiler is necessary as some
advanced language features are required which are not available in the
service compiler.

Note that the OPTION NOBRACKETS must be in force in the process being
used for the method described to work.

Two "OBEY" subfiles are available: MAKECHKD and MAKEOPT.  They each
construct a test Supervisor which is left in file SUP27xT,  where x is
'C' or 'O' respectively.


Making a Supervisor thus consists of the following:

a) INSERT the IMP80 compiler and FIX utility into the current directory
   (and then log off and log on again if IMP80 was previously used in

==== ercc07/emas-2900/sup27csrce_print07s.txt ====

%RECORDFORMAT PARMF(%INTEGER DEST, SRCE, P1, P2, P3, P4, P5, P6)
%EXTRINSICLONGINTEGER KMON
%ROUTINESPEC PRHEX(%INTEGER H)
%ROUTINESPEC PRINTER(%RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC PON(%RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC GPC(%RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC OPMESS(%STRING (23) MESS)
%SYSTEMROUTINESPEC ITOE(%INTEGER A, L)
%IF MULTIOCP=YES %THEN %START
%EXTERNALROUTINESPEC SEMALOOP(%INTEGERNAME SEMA)
      %ROUTINESPEC RESERVE LOG
      %ROUTINESPEC RELEASE LOG
      %ROUTINESPEC AWAIT LOG ROUTE
%FINISH
!------------------------------------------------------------------------
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20L ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DLVNADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,TOJDAY,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,SERVAAD,  %C

==== ercc07/emas-2900/wichtests_wt82.txt ====
'BEGIN'
    'COMMENT' LIBRARY5;
    'INTEGER''PROCEDURE' NONE;
        NONE := 1;
    NONE;
    SIN(1.0);
    ABS(3);
    LN(.2);
    EXP(4);
    ENTIER(NONE);
    SIGN(SQRT(8));
    OUTREAL(99, NONE)
'END'

==== ercc07/emas-2900/sup27fsrce_tape73s.txt ====

!**************************************************
!*                                                *
!*  TAPE HANDLER FOR 2900                         *
!*                                                *
!**************************************************
!!
!***********************************************************************
!* VERSION 73:
!* PRIVATE CHAINS REDONE - P_P3=VADD RCB, P5,P6=STB FOR RCB AREA.
!* ALSO ALL ATTENTIONS FOR PRIVATE CHAINS GO STRAIGHT TO USER
!* WITHOUT ANY ACTION HERE.
!* VERSION 72
!* 05-MAY-81:
!*    HAIRY PON TO RESET 'RETRY PREAMBLE' WHICH ALLOWS/INHIBITS
!*    READ RETRY WHEN NO PREAMBLE DETECTED.
!*    MAINLY INTENDED FOR READING DUMP TAPES WITH SUCH.
!* 04-MAY-81:
!*    FIX IN LOAD AND LOAD MESSAGE FOR FAULTY DSN.
!*    REWINDS AND COMES UP AS LOADED NO LABEL.
!* 01-MAY-81:

==== ercc07/emas-2900/wichtests_wt83.txt ====
'BEGIN'
    'COMMENT' LIBRARY 1;
    'INTEGER'
        NN;
    'SWITCH' A :=
        B[1],
        B[2];
    'SWITCH' B :=
        A[G],
        A[2];
    'INTEGER''PROCEDURE' F(N, S);
        'VALUE'
            N;
        'INTEGER'
            N;
        'SWITCH'
            S;
        'BEGIN'
        NN := N;
        'GOTO' S[1];
        F := NN

==== ercc07/emas-2900/sup26isrce_enter09s.txt ====

%EXTRINSICINTEGER INPTR
%EXTRINSICINTEGER OUTPTR
%CONSTINTEGER MASK=X'80FC3FFF'
%EXTERNALINTEGERFNSPEC HANDKEYS
%EXTERNALROUTINESPEC HOOT(%INTEGER NUM)
%EXTERNALINTEGERFNSPEC GPC INIT(%INTEGER CA,PT,MODE)
%EXTERNALINTEGERFNSPEC SAFE IS READ(%INTEGER ISAD,%INTEGERNAME VAL)
%EXTERNALROUTINESPEC GET PSTB(%INTEGERNAME P0, P1)
%EXTERNALROUTINESPEC SUP29
%EXTERNALROUTINESPEC SUPPOFF(%RECORDNAME SERV,P)
%EXTERNALROUTINESPEC DISC(%RECORDNAME P)
%EXTERNALROUTINESPEC PDISC(%RECORDNAME P)
%EXTERNALROUTINESPEC GPC(%RECORDNAME P)
%EXTERNALROUTINESPEC SLAVESONOFF(%INTEGER J)
%EXTERNALROUTINESPEC PKMONREC(%STRING(20)TEXT,%RECORDNAME P)
%SYSTEMROUTINESPEC MOVE(%INTEGER L, FROMAD, TOAD)
%RECORDFORMAT PARMF(%INTEGER DEST, SRCE, P1, P2, P3, P4, P5,  %C
         P6)
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20L ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C

==== ercc07/emas-2900/ndiag07s.txt ====

!*_ DATED 11 NOV 76   1
! ALTERATIONS BY K.YARWOOD ...
!        PRINT FL AND NEXT SYMBOL LINES COMMENTED OUT
!        PRINTTEXT'S TURNED TO PRINTSTRING'S
!        ADDITION FOR LONGINTEGER IN RT PRINT VAR
!         HEX EQUIVALENTS FOR INTS,LONGINTS ETC PRINTED
!        INF PRINTED IN HEX IN RT ERRMESS

%EXTERNALSTRINGFNSPEC STRHEX(%INTEGER I)
%EXTERNALSTRING(8)%FNSPEC STRINT(%INTEGER I)
%CONSTINTEGER STACKBASE=X'80100000';  ! START OF RESIDENT STACK
! %SYSTEMROUTINESPEC SIGNAL(%INTEGER I, J, K, %INTEGERNAME F)
%ROUTINESPEC PRINTMESS(%INTEGER N)
! %SYSTEMROUTINESPEC TIDY EXIT
!*
%ROUTINESPEC INDIAG(%INTEGER OLDLNB, L, PC, %INTEGERNAME NEWLNB)
! %ROUTINESPEC FDIAG(%INTEGER OLDLNB,PC,%INTEGERNAME NEWLNB)
%ROUTINESPEC ERMESS(%INTEGER N, INF)
! %ROUTINESPEC ICL9CELABELS


==== ercc07/emas-2900/isup4s.txt ====
%include "ercc08:ctoptv7"
!
%include "ercc07:ibmsup_page0"
!
! These const integers define sizes and layout of important tables
! they have to be here to be global to all routines including I/O ones
!
%constlonginteger DISAWAIT=PSW0!X'2000000000000'
%constlonginteger ALLOW INTS=x'0306000000000000'
%constlonginteger ONE SECOND=x'00000000F4240000'
!
%ownlonginteger PSW,WPSW,L
!
%include "ercc07:ibmsup_lcform3s"
!
%externalintegerfnspec REQUEST INPUT(%integer OUTPUT POSN,TRIGGER POSN)
%externalintegerfnspec REQUEST OUTPUT(%integer OUTPUT POSN,TRIGGER POSN)
%externalintegerfnspec CHANGE CONTEXT
%externalroutine SUP01
!-----------------------------------------------------------------------
%ownstring (3) SUPID="01A"

==== ercc07/emas-2900/wichtests_wt84.txt ====
'BEGIN'
'COMMENT' LIBRARY 3;
'INTEGER'I,CL,N,REP;
'ARRAY' R,A,B[1:30],C[1:10];
'REAL' J,ROOT,X;
'INTEGER''PROCEDURE' EVEN(X);
    'VALUE' X;
    'INTEGER'X;
    EVEN:='IF' X'DIV'2*2 = X 'THEN' 1 'ELSE' -1;
'PROCEDURE' GAMM(R,A,B,C);
    'ARRAY' R,A,B,C;
    'BEGIN'    'INTEGER'REP,I,CL;
        'REAL' J,ROOT,X;
        REP:=100*N;
        OUTREAL(99,CPUTIME);
        'FOR' CL:= 1 'STEP' 1 'UNTIL' REP 'DO'
            ;
        OUTREAL(99,CPUTIME);
        REP:=N;
        OUTREAL(99,CPUTIME);
        'FOR' CL:=1 'STEP' 1 'UNTIL' REP 'DO'

==== ercc07/emas-2900/wichtests_wt85.txt ====
'BEGIN'
'COMMENT' LIBRARY 1;
    'REAL'
        X,
        Y;
    'PROCEDURE' DUM;
        ;
    'REAL' 'PROCEDURE' A;
        A := X + ('IF' B 'THEN' 1 'ELSE' 0);
    'BOOLEAN'
        B;
    S2 :;
    B := (('TRUE'));
    G :;
    'BEGIN'
        'INTEGER'
            I;
        X := - 3;
        'IF' 'NOT' B 'THEN'
            'GOTO' S2;
        I := 1;

==== ercc07/emas-2900/wichtests_wt86.txt ====
'BEGIN'
PROG :
'BEGIN'
'COMMENT' LIBRARY 1;
    'INTEGER'N,I;
    'PROCEDURE' Q;
        'BEGIN'
        'ARRAY'
            A,
            D[1 : 1, 1 : N],
            E[0 : 0];
        'PROCEDURE' P(X, L);
            'LABEL'
                L;
            'INTEGER''PROCEDURE'
                X;
                'COMMENT' (F1,G1): 'VALUE' F1: 'REAL' F1,G1;
            B : 'FOR' I := 1 'STEP' 1 'UNTIL' N,
                I + 1 'DO'
                C : 'GOTO'
                    'IF' X(A[1, 1] + I, 0) = 0 'THEN'

==== ercc07/emas-2900/wichtests_wt87.txt ====
'BEGIN'
    'COMMENT' LIBRARY 1;
    'INTEGER'
        I;
    'REAL'
        X;
    I := 1;
    'FOR' X := .1 'STEP' X 'UNTIL' 1.0&6 'DO'
        I := I + 1;
    OUTREAL(99, I)
'END'

==== ercc07/emas-2900/wichtests_wt88.txt ====
'BEGIN'
    'COMMENT' LIBRARY 1;
    'INTEGER'
        A;
    'INTEGER''PROCEDURE' F(X, Y);
        'VALUE'
            X,
            Y;
        'INTEGER'
            X,
            Y;
        A := F := X + 1;
    'INTEGER''PROCEDURE' G(X);
        'INTEGER'
            X;
        X := G := A + 2;
    A := 0;
    OUTREAL(99, A + F(A, G(A)) / G(A))
'END'

==== ercc07/emas-2900/sup27fsrce_makeopt.txt ====
PARM FREE,OPT,STACK,NOLIST
IMP80 CTOPT+SUP27FSRCE_SUP27FS,SUPZZ,,.OUT
IMP80 CTOPT+SUP27FSRCE_COM33S,COMZZ,,.OUT
IMP80 CTOPT+SUP27FSRCE_PRINT07S,PRINTZZ,,.OUT
IMP80 CTOPT+SUP27FSRCE_OPER35S,OPERZZ,,.OUT
IMP80 CTOPT+SUP27FSRCE_ENTER12S,ENTERZZ,,.OUT
IMP80 CTOPT+SUP27FSRCE_GPC38S,GPCZZ,,.OUT
IMP80 SUP27FSRCE_MINDIAGS,MINDIAGZZ,,.OUT
IMP80 CTOPT+SUP27FSRCE_COMMS49S,COMMSZZ,,.OUT
IMP80 CTOPT+SUP27FSRCE_FAST38S,FASTZZ,,.OUT
IMP80 CTOPT+SUP27FSRCE_TAPE73S,TAPEZZ,,.OUT
PARM MAP
LINK
SUPZZ
COMZZ
PRINTZZ
OPERZZ
ENTERZZ
GPCZZ
MINDIAGZZ
COMMSZZ

==== ercc07/emas-2900/wichtests_wt89.txt ====
'BEGIN'
    'COMMENT' LIBRARY 1;
    'REAL'
        I,
        J;
    'ARRAY'
        A[1 : 2, 1 : 3];
    'REAL' 'PROCEDURE' GPS(I, N, Z, V);
        'REAL'
            I,
            N,
            Z,
            V;
        'BEGIN'
        'FOR' I := 1 'STEP' 1 'UNTIL' N 'DO'
            Z := V;
        GPS := 1
        'END';
    OUTREAL(99, GPS(J, 3.0, I, GPS(I, 2.0, A[I, J], I + J)));
    'FOR' I := 1 'STEP' 1 'UNTIL' 2 'DO'
        'FOR' J := 1 'STEP' 1 'UNTIL' 3 'DO'

==== ercc07/emas-2900/wichtests_wt90.txt ====
'BEGIN'
'COMMENT' LIBRARY5;
    'REAL'
        R;
    'BOOLEAN'
        B;
    'INTEGER''PROCEDURE' F(X);
        'REAL'
            X;
        F := 0;
    'INTEGER'
        I,
        N,
        S;
    'INTEGER''PROCEDURE' G(Y);
        'BOOLEAN'
            Y;
        G :=
            'IF' Y 'THEN'
                2
            'ELSE'

==== ercc07/emas-2900/wichtests_wt91.txt ====
'BEGIN'
    'COMMENT'   ET COMMENT;
    'COMMENT' LIBRARY 1;
    'REAL'
        C;
    'ARRAY'
        D[ - 0 : + 1, 0&0 : 1.0];
    'INTEGER''PROCEDURE' R(C);
        'REAL'
            C;
        R :=
            'IF' 'TRUE' 'THEN'
                C
            'ELSE'
                R(0);
    D[0, 0] := C := C := 1;
    'COMMENT' PROGRAM MODIFIED TO AVOID USE BEFORE DECLARATION;
    'BEGIN'
        'INTEGER''ARRAY'
            H,
            A[1 : C+D[0,1-(R(+1))]],

==== ercc07/emas-2900/wichtests_wt92.txt ====
'BEGIN'
'COMMENT' LIBRARY 1;
    'INTEGER'
        N;
    'INTEGER''PROCEDURE' P(Q, R);
        'INTEGER''PROCEDURE' Q;
        'COMMENT'   (R):'INTEGER''PROCEDURE' R;
        'INTEGER''PROCEDURE' R;
        'BEGIN'
        'INTEGER'
            B;
        B := 3 * Q(R);
        P := B
        'END';
    'INTEGER''PROCEDURE' A(F);
        'INTEGER''PROCEDURE'
            F;
        A := 2 * F;
    'INTEGER''PROCEDURE' B;
        'BEGIN'
        N := N - 1;

==== ercc07/emas-2900/nrsrce_sdisc02s.txt ====

%OWNLONGINTEGER VSN=X'5344495343205631';     ! M'SDISC V1'
! DRIVING DISCS VIA DCU WRITTEN BY PDS JAN 79
!
%RECORDFORMAT PARMF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6)
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 18D ONWARDS *
! Alterations from above-mentioned record format, for the S-series, are
! as follows:
!     GPCTABSIZE  ->   DCUTABSIZE
!     GPCA        ->   DCUA
!     SMACS       ->   SCUS
!     GPCCONFA    ->   DCUCONFA
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DDTADDR,DCUTABSIZE,DCUA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,KLOKCORRECT,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,PROCMON,DQADDR,  %C
         SACPORT,OCPPORT,ITINT,CONTYPEA,DCUCONFA,FPCCONFA,SFCCONFA, %C
         BLKADDR,DPTADDR,SCUS,TRANS,%LONGINTEGER KMON,  %C
         %INTEGER SPDRQ,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,STOREAAD,PROCAAD,SFCCTAD,DRUMTAD,SP0,SP1,SP2,SP3, %C

==== ercc07/emas-2900/drsimpcmds.txt ====
%externalintegermapspec Comreg%alias "S#COMREG"(%integer N)
%externalroutinespec compile%alias "S#COMPILE"(%string(255) s, %string(31) entry,
%integername flag)
%externalstringfnspec failuremessage %alias"s#failuremessage" (%integer n)
%externalroutine orionimp %alias "ORIONIMP"
%integer flag
%string(255) s
s=""
compile(s,"ICL(CEZORIONIMP",flag)
printstring(failuremessage(flag)) %and %stop %unless flag=0
%end
%externalroutine DRSIMP %alias "DRSIMP"
%integer flag
%string(32) File
compile(file,"ICL9CEZDRSIMP",flag)
printstring( failuremessage(flag)) %and %stop %unless flag=0
%return %unless comreg(24)=0 %or comreg(24)=8
%end
%externalroutine PERQ3IMP%alias "PERQ3IMP"
%integer flag
%string(32) File

==== ercc07/emas-2900/wichtests_wt93.txt ====
'BEGIN'
    'COMMENT' LIBRARY 3;
    'REAL' 'PROCEDURE' A(K, X1, X2, X3, X4, X5);
        'VALUE'
            K;
        'INTEGER'
            K;
        'REAL'
            X1,
            X2,
            X3,
            X4,
            X5;
        'BEGIN'
        'REAL' 'PROCEDURE' B;
            'BEGIN'
            K := K - 1;
            B := A := A(K, B, X1, X2, X3, X4)
            'END';
        'IF' K <= 0 'THEN'
            A := X4 + X5

==== ercc07/emas-2900/sup26gsrce_sup26gs.txt ====

!
! TO MAKE S SERIES SUPERVISOR REQUIRES:-
!     1) CHANGE SSERIES=NO TO SSERIES=YES IN CTOPTIONS FILE
!     2) REPLACE COMF BY S SERIES COM IN ERCC08.COMSF
!
!
! THESE CONST INTEGERS DEFINE SIZES AND LAYOUT OF IMPORTANT TABLES
! THEY HAVE TO BE HERE TO BE GLOBAL TO ALL ROUTINES INCLUDING IO ONES
!
%CONSTINTEGER LSTLEN=192;               ! LOCAL SEGMENT TABLE LENGTH
%CONSTLONGINTEGER LCACR=1;              ! ACR OF LOCAL CONTROLLER
%CONSTINTEGER DIRCSEG=10;               ! SEG NO OF DIRECTOR COMMS SEG
%CONSTINTEGER DIRCSEGOFFSET=0;          ! FOR ALIGNMENT IF NEEDED
%CONSTINTEGER DIRCSEGAD=DIRCSEG<<18;    ! VIRTUAL ADDRESS OF DIR COM SEG
%CONSTINTEGER DIRCSEGL=2048+255+LSTLEN; ! SIZE OF SMAE
                                        ! MADE UP OF 2049 FOR CBT
                                        ! LSTLEN FOR SST
                                        ! 48+64 FOR 2 BITS OF SYTEMCALL TABLE
                                        ! 32+48 FOR DIROUTP&SIGOUT
%CONSTINTEGER LSTACKLEN=3;              ! LOCAL CONT. STACK ELEN

==== ercc07/emas-2900/fast41t.txt ====
!*
!* Communications record format - extant from CHOPSUPE 22A onwards *
!*
%RECORDFORMAT COMF(%INTEGER OCPTYPE,SLIPL,SBLKS,SEPGS,NDISCS,DLVNADDR, %C
         (%INTEGER GPCTABSIZE,GPCA %OR %INTEGER DCUTABSIZE,DCUA), %C
         %INTEGER SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,TOJDAY,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,SERVAAD,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0,%INTEGER ITINT,CONTYPEA, %C
         (%INTEGER GPCCONFA %OR %INTEGER DCUCONFA), %C
         %INTEGER FPCCONFA,SFCCONFA,BLKADDR,RATION, %C
         (%INTEGER SMACS %OR %INTEGER SCUS), %C
         %INTEGER TRANS,%LONGINTEGER KMON,  %C
         %INTEGER DITADDR,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,STOREAAD,PROCAAD,SFCCTAD,DRUMTAD,TSLICE,FEPS,  %C
         MAXCBT,PERFORMAD,SP1,SP2,SP3,SP4,SP5,SP6, %C
         LSTL,LSTB,PSTL,PSTB,HKEYS,HOOT,SIM,CLKX,CLKY,CLKZ,  %C
         HBIT,SLAVEOFF,INHSSR,SDR1,SDR2,SDR3,  %C
         SDR4,SESR,HOFFBIT,BLOCKZBIT,BLKSHIFT,BLKSIZE,END)

==== ercc07/emas-2900/wichtests_wt94.txt ====
'BEGIN'
    'COMMENT' LIBRARY 1;
    'INTEGER'
        J,
        K,
        S;
    'INTEGER''PROCEDURE' F(N);
        'VALUE'
            N;
        'INTEGER'
            N;
        'BEGIN'
        'INTEGER'
            I,
            L;
        'FOR' I := N,
            S 'DIV' 2 'WHILE' S < 16 'OR' S = 28 'DO'
            'BEGIN'
            S := S + I + N;
            L := I
            'END';

==== ercc07/emas-2900/impalgs_algolps6ma.txt ====
43
D(NAME)
D(ICONST)
D(CONST)
D(ONAME)
D(COMTEXT))
D(S)
D(ENDTEXT)
D(TEXTTEXT)
D(NAMELIST)
D(HOLE)
D(MARK)
D(ONAMELIST)
D(UPSTCNT)
D(LETTERSTRING)
D(DOWN)
D(UP)
D(SCALARTYPE)
D(NOTENAME)
D(TYPE=A)
D(TYPE=B)

==== ercc07/emas-2900/wichtests_wt95.txt ====
'BEGIN'
    'COMMENT' LIBRARY 1;
    'REAL' 'PROCEDURE' G(X);
        'REAL'
            X;
        G := X + 1;
    'REAL' 'PROCEDURE' A(H);
        'REAL' 'PROCEDURE'
            H;
        'COMMENT'   (H1): 'REAL' H1;
        'BEGIN'
        'REAL' 'PROCEDURE' LOC(X);
            'REAL'
                X;
            LOC := H(G(X));
        A := LOC(0);
        'END' A;
    'REAL' 'PROCEDURE' B(F, H);
        'REAL' 'PROCEDURE'
            F;
        'COMMENT'   (F1): 'REAL' F1;

==== ercc07/emas-2900/wichtests_wt96.txt ====
'BEGIN'
    'COMMENT' LIBRARY 1;
    'PROCEDURE' P(F);
        'REAL' 'PROCEDURE'
            F;
        'COMMENT'   (F1):'LABEL' F1;
        F((M));
    B1 :;
    'BEGIN'
        'REAL' 'PROCEDURE' Q(L);
            'LABEL'
                L;
            'BEGIN'
            'GOTO' L;
            Q := 0;
            OUTREAL(99, 1)
            'END';
        B2 :;
        'BEGIN'
            'REAL'
                I;

==== ercc07/emas-2900/ibmsup_lcform1s.txt ====
%constinteger LSTLEN=256;               ! LOCAL SEGMENT TABLE LENGTH
%constinteger CBTLEN=299;               ! LENGTH OF CBT TABLE
%constinteger CONTEXTL=176;             ! LENGTH OF AN IBM CONTEXT
%constinteger LCONTN=5;                 ! NO OF LOCAL CONTEXTS
!
                                        ! CONTEXTF A SORT OF SSN+1
%recordformat CONTEXTF(%longinteger PSW,{8}%integerarray GR(0:15),
      {72}FR(0:7),{104}CONTROLR(0:15),{168}%longinteger CPUTIMER)
                                        ! PARMF FOR PARAMETER PASSING(32 BYTES
%recordformat PARMF((%integer DEST,SRCE %OR %short DSNO,DACT,SSNO,SACT),
      (%integer P1,P2,P3,P4,P5,P6 %OR %integerarray P(1:6) %OR %C
      %string(6)USER,%byte INCAR,%string(15)INTMESS))
!
                                        ! SIGOUTPF FOR PASSING SIGNALS(48 BYTES)
%recordformat SIGOUTPF(%integer DEST,SRCE,P1,P2,P3,P4,P5,P6,TYPE,SSN,SSNAD,SUSP)
!
                                        ! CBT THE CLAIMED BLOCK FORMAT
%recordformat CBTF(%integer DA,%short AMTX,%byte LNGTH,TAGS)
                                        ! CBT FLAGS DEFINED AS FOLLOWS
%constinteger NEW BLK=X'80';            ! BLOCK HAS BEEN JUST CREATED
%constinteger READONLY=X'40';           ! USERS REQUEST PROTECTION AGAINST WRITES

==== ercc07/emas-2900/wichtests_wt97.txt ====
'BEGIN'
    'COMMENT' LIBRARY 1;
    'INTEGER'
        X,
        N,
        K;
    'REAL' 'PROCEDURE' SIGMA(I, K, L, T);
        'VALUE'
            L;
        'INTEGER'
            I,
            K,
            L;
        'REAL'
            T;
        'BEGIN'
        'REAL'
            X;
        X := 0;
        'FOR' I := K 'STEP' 1 'UNTIL' L 'DO'
            X := T + X;

==== ercc07/emas-2900/wichtests_wt98.txt ====
'BEGIN'
    'COMMENT' LIBRARY 1;
    'REAL' 'PROCEDURE' R(A);
        'REAL'
            A;
        'BEGIN'
        'INTEGER''PROCEDURE' P(B, C);
            'INTEGER'
                B,
                C;
            P := B + C;
        R := P(A + 1, A)
        'END' R;
    'REAL'
        X;
    'BEGIN'
        'REAL'
            Y;
        Y := 4;
        X := R(R(Y + 1))
    'END';

==== ercc07/emas-2900/wichtests_wt99.txt ====
'BEGIN'
    'COMMENT' LIBRARY 1;
'COMMENT' THIS PROGRAM HAS BEEN MODIFIED TO AVOID USE BEFORE DECLARATION
         AND ALSO TO REMOVE THE TYPE CHANGES ON ARRAYS TO VALUE;
    'INTEGER''ARRAY'
        A[16384 : 16385, - 16383 : - 16382];
    'INTEGER'
        S;
    'ARRAY'
        B[1 : 2, 0 : 2];
    'PROCEDURE' P(A, B, C, D);
        'VALUE'
            B,
            C;
        'REAL'
            A,
            B;
        'ARRAY'
            C,
            D;
        'BEGIN'

==== ercc07/emas-2900/docs_edit.txt ====


      New Features in EMAS Editor
      ---------------------------

     A new version of the EMAS Editor (invoked by the Command EDIT) will be
introduced in October or when the 2988 hardware problems currently affecting
editors have been resolved. The most important of the new features is that the
Editor will save any editing when the process is closed down during an edit
session. The output will be written into a file E#EHA where it can be inspected
and copied to the required destination. Editing will no longer be lost for
communications breaks or user inactivity. The feature cannot guarantee to save
editing over system failures. Obviously at least one OCP, one disc controller
and the relevant file system disc must be operational before editing can be
saved. A report is left in the RECALL file whenever editing has been saved.

     Other commands changed are:

A,M (etc)  All text searching commands are now based on case independent text
           matching. Thus "M/Fred/" will move to "FRED" or "fred" as well as
           "Fred". The previous mode of case dependent matching can be restored

==== ercc07/emas-2900/fast42t.txt ====
!*
!* Communications record format - extant from CHOPSUPE 22A onwards *
!*
%RECORDFORMAT COMF(%INTEGER OCPTYPE,SLIPL,SBLKS,SEPGS,NDISCS,DLVNADDR, %C
         (%INTEGER GPCTABSIZE,GPCA %OR %INTEGER DCUTABSIZE,DCUA), %C
         %INTEGER SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,TOJDAY,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,SERVAAD,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0,%INTEGER ITINT,CONTYPEA, %C
         (%INTEGER GPCCONFA %OR %INTEGER DCUCONFA), %C
         %INTEGER FPCCONFA,SFCCONFA,BLKADDR,RATION, %C
         (%INTEGER SMACS %OR %INTEGER SCUS), %C
         %INTEGER TRANS,%LONGINTEGER KMON,  %C
         %INTEGER DITADDR,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,STOREAAD,PROCAAD,SFCCTAD,DRUMTAD,TSLICE,FEPS,  %C
         MAXCBT,PERFORMAD,SP1,SP2,SP3,SP4,SP5,SP6, %C
         LSTL,LSTB,PSTL,PSTB,HKEYS,HOOT,SIM,CLKX,CLKY,CLKZ,  %C
         HBIT,SLAVEOFF,INHSSR,SDR1,SDR2,SDR3,  %C
         SDR4,SESR,HOFFBIT,BLOCKZBIT,BLKSHIFT,BLKSIZE,END)

==== ercc07/emas-2900/akqtests.txt ====
//JOB (ERCC07,P.STEPHENS,T=240,L=8000)
//ALGOL
'BEGIN'
    'COMMENT' LIBRARY 1;
    'INTEGER'
        I;
    'REAL'
        X;
    X := 3.2;
    I := - 2;
    OUTREAL(99, I^X)
'END'
//RUN
//ALGOL
'BEGIN'
    'COMMENT' LIBRARY 99;
    'INTEGER'
        I,
        J;
    I := 0;
    J := - 2;

==== ercc07/emas-2900/sup26fsrce_com31s.txt ====
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20J ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DDTADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,TOJDAY,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,DQADDR,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0, %C
         %INTEGER ITINT,CONTYPEA,GPCCONFA,FPCCONFA,SFCCONFA, %C
         BLKADDR,RATION,SMACS,TRANS,%LONGINTEGER KMON,  %C
         %INTEGER DITADDR,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,STOREAAD,PROCAAD,SFCCTAD,DRUMTAD,TSLICE,FEPS,SP1, %C
         SP2,SP3,SP4,SP5,SP6,SP7,SP8, %C
         LSTL,LSTB,PSTL,PSTB,HKEYS,HOOT,SIM,CLKX,CLKY,CLKZ,  %C
         HBIT,SLAVEOFF,INHSSR,SDR1,SDR2,SDR3,  %C
         SDR4,SESR,HOFFBIT,S2,S3,S4,END)
! MISC. ROUTINE SPECS
%EXTERNALROUTINESPEC PKMONREC(%STRING(20)TEXT,%RECORDNAME P)
%EXTERNALSTRING(8)%FNSPEC STRHEX(%INTEGER N)
%RECORDFORMAT PARMF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6)
%EXTERNALROUTINESPEC OPMESS2(%INTEGER OP,%STRING(63)TXT)

==== ercc07/emas-2900/sup27isrce_fast40s.txt ====
!* Communications record format - extant from CHOPSUPE 21D onwards *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,SLIPL,SBLKS,SEPGS,NDISCS,DLVNADDR, %C
         (%INTEGER GPCTABSIZE,GPCA %OR %INTEGER DCUTABSIZE,DCUA), %C
         %INTEGER SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,TOJDAY,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,SERVAAD,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0,%INTEGER ITINT,CONTYPEA, %C
         (%INTEGER GPCCONFA %OR %INTEGER DCUCONFA), %C
         %INTEGER FPCCONFA,SFCCONFA,BLKADDR,RATION, %C
         (%INTEGER SMACS %OR %INTEGER SCUS), %C
         %INTEGER TRANS,%LONGINTEGER KMON,  %C
         %INTEGER DITADDR,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,STOREAAD,PROCAAD,SFCCTAD,DRUMTAD,TSLICE,FEPS,  %C
         MAXCBT,PERFORMAD,SP1,SP2,SP3,SP4,SP5,SP6, %C
         LSTL,LSTB,PSTL,PSTB,HKEYS,HOOT,SIM,CLKX,CLKY,CLKZ,  %C
         HBIT,SLAVEOFF,INHSSR,SDR1,SDR2,SDR3,  %C
         SDR4,SESR,HOFFBIT,BLOCKZBIT,BLKSHIFT,BLKSIZE,END)
!-----------------------------------------------------------------------
! PON & POFF ETC. DECLARATIONS

==== ercc07/emas-2900/ibmsup_lcform2s.txt ====
%constinteger LSTLEN=256;               ! LOCAL SEGMENT TABLE LENGTH
%constinteger CBTLEN=299;               ! LENGTH OF CBT TABLE
%constinteger CONTEXTL=176;             ! LENGTH OF AN IBM CONTEXT
%constinteger LCONTN=5;                 ! NO OF LOCAL CONTEXTS
!
                                        ! CONTEXTF A SORT OF SSN+1
%recordformat CONTEXTF(%longinteger PSW,{8}%integerarray GR(0:15),
      {72}FR(0:7),{104}CONTROLR(0:15),{168}%longinteger CPUTIMER,
      %integer ASYNI,SUSP,%short PECODE,ILC,%integer spare)
                                        ! PARMF FOR PARAMETER PASSING(32 BYTES
%recordformat PARMF((%integer DEST,SRCE %OR %short DSNO,DACT,SSNO,SACT),
      (%integer P1,P2,P3,P4,P5,P6 %OR %integerarray P(1:6) %OR %C
      %string(6)USER,%byte INCAR,%string(15)INTMESS))
!
                                        ! SIGOUTPF FOR PASSING SIGNALS(48 BYTES)
%recordformat SIGOUTPF(%integer DEST,SRCE,P1,P2,P3,P4,P5,P6,TYPE,SSN,SSNAD,SUSP)
!
                                        ! CBT THE CLAIMED BLOCK FORMAT
%recordformat CBTF(%integer DA,%short AMTX,%byte LNGTH,TAGS)
                                        ! CBT FLAGS DEFINED AS FOLLOWS
%constinteger NEW BLK=X'80';            ! BLOCK HAS BEEN JUST CREATED

==== ercc07/emas-2900/sup26is.txt ====

!
! TO MAKE S SERIES SUPERVISOR REQUIRES:-
!     1) CHANGE SSERIES=NO TO SSERIES=YES IN CTOPTIONS FILE
!     2) REPLACE COMF BY S SERIES COM IN ERCC08.COMSF
!
!
! THESE CONST INTEGERS DEFINE SIZES AND LAYOUT OF IMPORTANT TABLES
! THEY HAVE TO BE HERE TO BE GLOBAL TO ALL ROUTINES INCLUDING IO ONES
!
%CONSTINTEGER LSTLEN=192;               ! LOCAL SEGMENT TABLE LENGTH
%CONSTINTEGER CBTLEN=255;               ! LENGTH OF CBT TABLE
%CONSTLONGINTEGER LCACR=1;              ! ACR OF LOCAL CONTROLLER
%CONSTINTEGER DIRCSEG=10;               ! SEG NO OF DIRECTOR COMMS SEG
%CONSTINTEGER DIRCSEGOFFSET=0;          ! FOR ALIGNMENT IF NEEDED
%CONSTINTEGER DIRCSEGAD=DIRCSEG<<18;    ! VIRTUAL ADDRESS OF DIR COM SEG
%CONSTINTEGER DIRCSEGL=8*CBTLEN+255+LSTLEN; ! SIZE OF SAME
                                        ! MADE UP OF 2049 FOR CBT
                                        ! LSTLEN FOR SST
                                        ! 48+64 FOR 2 BITS OF SYTEMCALL TABLE
                                        ! 32+48 FOR DIROUTP&SIGOUT

==== ercc07/emas-2900/ibmlink2.txt ====
LINK
IP1Y
IP2Y
IOPTY
IGEN2Y
CSERV01Y
ERCS12.IPUT_IPUTOPTY
ERCC10.IBMRECODEY
ERCS12.XAOPT_OPTPUTY
.END
P0Y
MODIFY P0Y
SATISFY REFS
.ALL
SATISFY DATA
.ALL
SUPPRESS
.ALL
RETAIN
ICL9CEZIBMIMP,PGENERATEOBJECT
SUPPRESS DATA

==== ercc07/emas-2900/ibmlink3.txt ====
LINK
IP1Y
IP22Y
IOPT2Y
IGEN3Y
CSERV01Y
ERCS12.IPUT_IPUTOPTY
ERCC10.IBMRECODEY
ERCS12.XAOPT2_OPTPUTY
.END
P0Y
MODIFY P0Y
SATISFY REFS
.ALL
SATISFY DATA
.ALL
SUPPRESS
.ALL
RETAIN
ICL9CEZIBMIMP,PGENERATEOBJECT
SUPPRESS DATA

==== ercc07/emas-2900/sup27bsrce_comms49s.txt ====

!                 VERSION OF 13/06/80
!        DEC 79: INCLUDE AN OPER ADAPTOR
!                HAVE ONLY ONE SERVICE NUMBER, X'37'
!        OTHER POSSIBLE CHANGES
!           MAKE INITIALISATION CALL OF CC INITIALISE ADAPTORS AS WELL
!           MAKE IT POSSIBLE TO DEALLOCATE/ALLOCATE ALL DEVICES
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20A ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DDTADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,WASKLOKCORRECT,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,DQADDR,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0, %C
         %INTEGER ITINT,CONTYPEA,GPCCONFA,FPCCONFA,SFCCONFA, %C
         BLKADDR,DPTADDR,SMACS,TRANS,%LONGINTEGER KMON,  %C
         %INTEGER DITADDR,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,STOREAAD,PROCAAD,SFCCTAD,DRUMTAD,TSLICE,SP0,SP1, %C
         SP2,SP3,SP4,SP5,SP6,SP7,SP8, %C
         LSTL,LSTB,PSTL,PSTB,HKEYS,HOOT,SIM,CLKX,CLKY,CLKZ,  %C

==== ercc07/emas-2900/sup28dsrce_oper37s.txt ====
!*
!* OPER37 - 2nd April 1982 *
!*
!* Communications record format - extant from CHOPSUPE 22A onwards *
!*
%RECORDFORMAT COMF(%INTEGER OCPTYPE,SLIPL,SBLKS,SEPGS,NDISCS,DLVNADDR, %C
         (%INTEGER GPCTABSIZE,GPCA %OR %INTEGER DCUTABSIZE,DCUA), %C
         %INTEGER SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,TOJDAY,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,SERVAAD,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0,%INTEGER ITINT,CONTYPEA, %C
         (%INTEGER GPCCONFA %OR %INTEGER DCUCONFA), %C
         %INTEGER FPCCONFA,SFCCONFA,BLKADDR,RATION, %C
         (%INTEGER SMACS %OR %INTEGER SCUS), %C
         %INTEGER TRANS,%LONGINTEGER KMON,  %C
         %INTEGER DITADDR,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,STOREAAD,PROCAAD,SFCCTAD,DRUMTAD,TSLICE,FEPS,  %C
         MAXCBT,PERFORMAD,SP1,SP2,SP3,SP4,SP5,SP6, %C
         LSTL,LSTB,PSTL,PSTB,HKEYS,HOOT,SIM,CLKX,CLKY,CLKZ,  %C

==== ercc07/emas-2900/alib14s.txt ====
!* MODIFIED  07/06/79                                                           
!*                                                                              
!*                                                                              
%EXTERNALINTEGER ICL9CEFAC=4                                                    
!*                                                                              
!*                                                                              
%INTEGERFNSPEC IOCP(%INTEGER I,J)                                               
%ROUTINESPEC SIGNAL(%INTEGER EP,P1,P2,%INTEGERNAME F)                           
!*                                                                              
%EXTERNALROUTINESPEC ICL9CENVINIT(%INTEGER I,J,%ROUTINE TIDY PROC)              
%EXTERNALROUTINESPEC ICL9CEDIAGOUT(%INTEGER AD,LEN)                             
%SYSTEMROUTINESPEC SGNL(%INTEGER EP,P1,P2,%INTEGERNAME F)                       
%SYSTEMINTEGERFNSPEC STRMIO(%INTEGER EP,STREAM,%INTEGERNAME AFD)                
%SYSTEMINTEGERMAPSPEC COMREG(%INTEGER N)                                        
%SYSTEMROUTINESPEC SSERR(%INTEGER I)                                            
!*                                                                              
%OWNINTEGER INFD                                                                
%OWNINTEGER INREQFD                                                             
%OWNINTEGER OUTFD                                                               
%OWNINTEGER OUTREQFD                                                            
!*                                                                              

==== ercc07/emas-2900/impalgs_aprints.txt ====
!NEW ASSEMBLER WRITE ROUTINE ADDED  RRM 29.3.78
!**DELSTART
%SYSTEMINTEGERFNSPEC IOCP(%INTEGER EP,PARM)
!**DELEND
%LONGINTEGERFNSPEC LINT(%LONGLONGREAL X)
!*
!*
          %SYSTEMROUTINE READ(%INTEGER TYPEBND,ADR)
!***********************************************************************
!*       THIS ROUTINE IS THE IMP IMPLICITLY SPECIFIED ROUTINE WITH A   *
!*       %NAME PARAMETER. TYPEBND AND ADR ARE A 64 BIT DESCRIPTOR     *
!*    TO THE ACTUAL PARAMETER. THE BND FIELD HAS THE TYPE CODE INIT    *
!*    (=1 FOR INTEGER =2 FOR REAL).                                    *
!*                                                                     *
!*       THE METHOD USED IS SIMPLE REPEATED MULTIPLICATION USING LONG  *
!*       REAL VARIABLES. SOME ROUNDING ERRORS ARE INTRODUCED WHICH     *
!*       COULD BE AVOIDED BY USING PACKED DECIMAL INSTNS WITH NECESSARY*
!*       SCALING.                                                      *
!***********************************************************************
         %INTEGER TYPE,PREC,FLAG,CURSYM; ! FLAG= 0FOR'-',1 FOR '+'
         %INTEGER IVALUE,TVALUE,PARTYPE

==== ercc07/emas-2900/sup28asrce_mindiags.txt ====
%EXTERNALSTRINGFNSPEC STRHEX(%INTEGER I)
%SYSTEMROUTINE NDIAG(%INTEGER PCOUNT, LNB, FAULT, INF)
!***********************************************************************
!*_______'MASTER DIAGNOSTIC ROUTINE'. DISCOVERS THE LANGUAGE OF THE    *
!*_______FAILED ROUTINE FROM WORD 4 OF THE GLA AND CALLS APPROPRIATE   *
!*_______DIAGNOSTIC ROUTINE. THIS IS REPEATED TILL ALL DIAGNOSTICS     *
!*_______GIVEN.                                                        *
!*_______PCOUNT = PCOUNTER AT FAILURE                                  *
!*_______LNB    = LOCAL NAME BASE AT FAILURE                           *
!*_______FAULT  = FAILURE  (0=%MONITOR  REQUESTED)                     *
!*_______INF    =ANY FURTHER INFORMATION                               *
!***********************************************************************
PRINTSTRING("
MINIMUM NDIAGS ENTERED
FAULT NO ="); WRITE(FAULT,2)
PRINTSTRING("
PC=X".STRHEX(PCOUNT)."
LNB=X".STRHEX(LNB)."
")
%IF FAULT>0 %THEN %STOP
%END

==== ercc07/emas-2900/perqtrimp_poneb01s.txt ====
!
%CONST %BYTE %INTEGER %ARRAY I TO E TAB(0 : 127) =       %C
X'40',X'40',X'40',X'40',X'40',X'40',X'40',X'40',
X'40',X'40',X'15',X'40',X'0C',X'40',X'40',X'40',
X'40',X'40',X'40',X'40',X'40',X'40',X'40',X'40',
X'40',X'40',X'40',X'40',X'40',X'40',X'40',X'40',
X'40',X'4F',X'7F',X'7B',X'5B',X'6C',X'50',X'7D',
X'4D',X'5D',X'5C',X'4E',X'6B',X'60',X'4B',X'61',
X'F0',X'F1',X'F2',X'F3',X'F4',X'F5',X'F6',X'F7',
X'F8',X'F9',X'7A',X'5E',X'4C',X'7E',X'6E',X'6F',
X'7C',X'C1',X'C2',X'C3',X'C4',X'C5',X'C6',X'C7',
X'C8',X'C9',X'D1',X'D2',X'D3',X'D4',X'D5',X'D6',
X'D7',X'D8',X'D9',X'E2',X'E3',X'E4',X'E5',X'E6',
X'E7',X'E8',X'E9',X'4A',X'5F',X'5A',X'6A',X'6D',
X'7C',X'81',X'82',X'83',X'84',X'85',X'86',X'87',
X'88',X'89',X'91',X'92',X'93',X'94',X'95',X'96',
X'97',X'98',X'99',X'A2',X'A3',X'A4',X'A5',X'A6',
X'A7',X'A8',X'A9',X'C0',X'40',X'D0',X'40',X'40'
%CONSTBYTEINTEGERARRAY ONE CASE(0 : 127) =   %C
       0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,
      16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,

==== ercc07/emas-2900/perqtrimp_perqgen01s.txt ====
%INCLUDE "ERCC07.PERQ_OPCODES"
%INCLUDE "ERCC07.TRIPCNSTS"
%INCLUDE "ERCC07.TRIMP_TFORM1S"
%RECORDFORMAT RTDICTF(%HALFINTEGER PS,RPS,LTS,ENTRY,EXIT,
         LL,W7,W8,DIAGS,W10,%INTEGER W1112)
%OWNINTEGER CABUF,GLACABUF
%OWNINTEGERNAME CA,GLACA,PPCURR,GLACURR
%OWNBYTEINTEGERARRAYNAME CODE,GLABUF
%EXTRINSICRECORD(CODEPF) CODEP
%EXTRINSICRECORD(WORKAF)WORKA
%EXTRINSICRECORD(PARMF) PARM
%EXTERNALROUTINESPEC FLAGAND FOLD(%RECORD(TRIPF)%ARRAYNAME T)
%SYSTEMINTEGERMAPSPEC COMREG(%INTEGER N)
%DYNAMICROUTINESPEC QCODE(%INTEGER A,B,C,MODE)
%DYNAMICROUTINESPEC QPUT(%INTEGER A,B,C,D)
%EXTERNALROUTINESPEC FAULT(%INTEGER I,J,K)
%ROUTINESPEC CNOP(%INTEGER I,J)
%ROUTINESPEC POP(%INTEGERNAME A,B,C,D)
%ROUTINESPEC PRHEX(%INTEGER VALUE,PLACES)
%CONSTINTEGER CODEBNDRY=X'1FF';         ! INSTRUCTIONS MUST NOT
                                        ! CROSS THIS IN ACCENT MODE

==== ercc07/emas-2900/sup26isrce_gpc36s.txt ====
%CONSTSTRING(25) VSN = "GPC36 4TH FEB 81"; ! ************************************************GPC GPC GPC
!
!   EMAS 2900 SUPERVISOR NOTE
!                                           No: 5
!                                         Date: 21/05/80
!                                       Author: A.Gibbons
!
!
! %EXTERNAL ROUTINE GPC(%RECORDNAME P)
!
! 1. CONVENTIONS
! The record spec for the parameter is
!   %RECORDFORMAT PARMF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6)
! where
!   DEST is considered as two half words DSNO and DACT. DSNO
!        must be GPC's DSNO 
!        DACT is set according to the function required.
!
!   SRCE is considered as two halfwords SSNO and SACT.
!        SSNO is SNO of ORIGINATOR and SACT is DACT for
!        the reply.

==== ercc07/emas-2900/sup26gsrce_ndiag07s.txt ====

!*_ DATED 11 NOV 76   1
! ALTERATIONS BY K.YARWOOD ...
!        PRINT FL AND NEXT SYMBOL LINES COMMENTED OUT
!        PRINTTEXT'S TURNED TO PRINTSTRING'S
!        ADDITION FOR LONGINTEGER IN RT PRINT VAR
!         HEX EQUIVALENTS FOR INTS,LONGINTS ETC PRINTED
!        INF PRINTED IN HEX IN RT ERRMESS

%EXTERNALSTRINGFNSPEC STRHEX(%INTEGER I)
%EXTERNALSTRING(8)%FNSPEC STRINT(%INTEGER I)
%CONSTINTEGER STACKBASE=X'80100000';  ! START OF RESIDENT STACK
! %SYSTEMROUTINESPEC SIGNAL(%INTEGER I, J, K, %INTEGERNAME F)
%ROUTINESPEC PRINTMESS(%INTEGER N)
! %SYSTEMROUTINESPEC TIDY EXIT
!*
%ROUTINESPEC INDIAG(%INTEGER OLDLNB, L, PC, %INTEGERNAME NEWLNB)
! %ROUTINESPEC FDIAG(%INTEGER OLDLNB,PC,%INTEGERNAME NEWLNB)
%ROUTINESPEC ERMESS(%INTEGER N, INF)
! %ROUTINESPEC ICL9CELABELS


==== ercc07/emas-2900/sup27csrce_tape72s.txt ====
! THIS IS IMP80 VERSION OF VERSION 72
!

!**************************************************
!*                                                *
!*  TAPE HANDLER FOR 2900                         *
!*                                                *
!**************************************************
!!
!***********************************************************************
!* VERSION 72
!* 05-MAY-81:
!*    HAIRY PON TO RESET 'RETRY PREAMBLE' WHICH ALLOWS/INHIBITS
!*    READ RETRY WHEN NO PREAMBLE DETECTED.
!*    MAINLY INTENDED FOR READING DUMP TAPES WITH SUCH.
!* 04-MAY-81:
!*    FIX IN LOAD AND LOAD MESSAGE FOR FAULTY DSN.
!*    REWINDS AND COMES UP AS LOADED NO LABEL.
!* 01-MAY-81:
!*    FIX IN TERMINATE TO CONTINUE RETRIES IF NO PREAMBLE ON LABEL READ
!*

==== ercc07/emas-2900/nrsrce_com29s.txt ====
!
!
!          VERSION OF 18/01/80
!
!
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20A ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DDTADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,WASKLOKCORRECT,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,DQADDR,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0, %C
         %INTEGER ITINT,CONTYPEA,GPCCONFA,FPCCONFA,SFCCONFA, %C
         BLKADDR,DPTADDR,SMACS,TRANS,%LONGINTEGER KMON,  %C
         %INTEGER DITADDR,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,STOREAAD,PROCAAD,SFCCTAD,DRUMTAD,TSLICE,SP0,SP1, %C
         SP2,SP3,SP4,SP5,SP6,SP7,SP8, %C
         LSTL,LSTB,PSTL,PSTB,HKEYS,HOOT,SIM,CLKX,CLKY,CLKZ,  %C
         HBIT,SLAVEOFF,INHSSR,SDR1,SDR2,SDR3,  %C
         SDR4,SESR,HOFFBIT,S2,S3,S4,END)

==== ercc07/emas-2900/perqtrimp_timp01s.txt ====
%CONSTSTRING(9) LADATE="4 JAN 83";       ! LAST ALTERED
%CONSTINTEGER NO OF SNS=65
%CONSTINTEGER LRLPT=X'62'
%IF HOST#PERQ %THEN %START
      %CONSTINTEGER PTSHIFT=16,FLAGSHIFT=0
%FINISH %ELSE %START
      %CONSTINTEGER PTSHIFT=0,FLAGSHIFT=16
%FINISH
!
%CONSTINTEGER MAXLEVELS=31,CONCOP=13
!
%INCLUDE "ERCC07.TRIPCNSTS"
%INCLUDE "ERCC07.TRIMP_TFORM1S"
%CONSTINTEGER SNPT=X'1006';         ! SPECIALNAME PTYPE
%CONSTINTEGER UNASSPAT=X'80808080'
%CONSTINTEGER LABUSEDBIT=X'01000000'
%CONSTINTEGER LABSETBIT=X'02000000'
!
%INTEGER I, K, DUMMYFORMAT, P1SIZE, STARSIZE, ASL, ARSIZE, OLDLINE,
         NEXTP, SNUM, RLEVEL, NMAX, PLABEL, LEVEL, PROFAAD, LAST INST,
         LINE, BFFLAG, RBASE, N, EXITLAB, CONTLAB, Q, R, FNAME, STMTS,

==== ercc07/emas-2900/sup27fsrce_fast38s.txt ====
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20J ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DLVNADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,TOJDAY,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,DQADDR,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0, %C
         %INTEGER ITINT,CONTYPEA,GPCCONFA,FPCCONFA,SFCCONFA, %C
         BLKADDR,RATION,SMACS,TRANS,%LONGINTEGER KMON,  %C
         %INTEGER DITADDR,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,STOREAAD,PROCAAD,SFCCTAD,DRUMTAD,TSLICE,SP0,SP1, %C
         SP2,SP3,SP4,SP5,SP6,SP7,SP8, %C
         LSTL,LSTB,PSTL,PSTB,HKEYS,HOOT,SIM,CLKX,CLKY,CLKZ,  %C
         HBIT,SLAVEOFF,INHSSR,SDR1,SDR2,SDR3,  %C
         SDR4,SESR,HOFFBIT,S2,S3,S4,END)
!-----------------------------------------------------------------------
! PON & POFF ETC. DECLARATIONS
%RECORDFORMAT PARMF(%INTEGER DEST, SRCE, P1, P2, P3, P4, P5,  %C
         P6)
%CONSTLONGINTEGER NONSLAVED=X'2000000000000000'

==== ercc07/emas-2900/perqtrimp_perqopt01s.txt ====

      %INCLUDE "ERCC07.TFORM1S"
      %INCLUDE "ERCC07.TRIPCNSTS"
%EXTRINSICRECORD(WORKAF) WORKA
%EXTRINSICRECORD(PARMF) PARM
%CONSTINTEGER YES=1
%CONSTINTEGER NO=0
%EXTERNALROUTINESPEC ABORT
%EXTERNALROUTINESPEC FAULT(%INTEGER N,DATA,IDENT)
%EXTERNALROUTINESPEC PRINT TRIPS(%RECORD(TRIPF) %ARRAYNAME TRIPLES)
%CONSTBYTEINTEGERARRAY WORDS(0:7)=0(3),1,1,2,4,8; 
%ROUTINE EXTRACT(%RECORD(RD) %NAME OPND, %INTEGERNAME VAL,
    %LONGREALNAME RVAL, %STRINGNAME STRVAL)
!***********************************************************************
!*    EXTRACTS A CONTANT OPERAND RETURNING REAL &INT VALUES           *
!***********************************************************************
%INTEGER TYPE,PREC,I,AD
      TYPE=OPND_PTYPE; PREC=TYPE>>4
      TYPE=TYPE&15
      %IF TYPE=5 %START
         LENGTH(STRVAL)=WORKA_A(OPND_D)

==== ercc07/emas-2900/sup27csrce_enter11s.txt ====
%RECORDFORMAT PARMF(%INTEGER DEST, SRCE, P1, P2, P3, P4, P5, P6)
%RECORDFORMAT SERVAF(%INTEGER P, C)
%EXTRINSICINTEGER INPTR
%EXTRINSICINTEGER OUTPTR
%CONSTINTEGER MASK=X'80FC3FFF'
%EXTERNALINTEGERFNSPEC HANDKEYS
%EXTERNALROUTINESPEC HOOT(%INTEGER NUM)
%EXTERNALINTEGERFNSPEC GPC INIT(%INTEGER CA,PT,MODE)
%EXTERNALINTEGERFNSPEC SAFE IS READ(%INTEGER ISAD,%INTEGERNAME VAL)
%EXTERNALROUTINESPEC GET PSTB(%INTEGERNAME P0, P1)
%EXTERNALROUTINESPEC SUP29
%EXTERNALROUTINESPEC SUPPOFF(%RECORD(SERVAF)%NAME SERV, %C
      %RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC DISC(%RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC PDISC(%RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC GPC(%RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC SLAVESONOFF(%INTEGER J)
%EXTERNALROUTINESPEC PKMONREC(%STRING(20)TEXT,%RECORD(PARMF)%NAME P)
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20L ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DLVNADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C

==== ercc07/emas-2900/docs_pubs.txt ====

            P.D.Stephens    Selected Publications

     "The IMP Language and Compiler", Computer Journal Vol 18,
     pp127-130(1975).

     (with N.Shelness and H.Whitfield) "EMAS Scheduling and Allocation
     Procedures in the resident Supervisor", Presented at I.R.I.A.
     Colloque International sur les Aspects Theoriques et Practiques des
     Systems d'Expoitation April 74. Chosen as one of the six best
     computing papers presented in France during 1974 and reprinted in
     Revue Francais d'Automatique, Informatique et Recherche
     Operationelle Vol B2, pp29-45(1975).

     "ALGOL(E) Language", International Computers Ltd. Technical
     Publication No 6855. (1976).

     (Editor and co-author) "EMAS2900 Concepts", ERCC (1980).

     "The EMAS2900 Operating System", I.U.C.C.  Bulletin Vol 2 No 2,
     pp85-89 (1980).

==== ercc07/emas-2900/sup27csrce_makeopt.txt ====
PARM FREE,OPT,STACK,NOLIST
IMP80 CTOPT+SUP27CSRCE_SUP27CS,SUPZZ,,.OUT
IMP80 CTOPT+SUP27CSRCE_COM33S,COMZZ,,.OUT
IMP80 CTOPT+SUP27CSRCE_PRINT07S,PRINTZZ,,.OUT
IMP80 CTOPT+SUP27CSRCE_OPER34S,OPERZZ,,.OUT
IMP80 CTOPT+SUP27CSRCE_ENTER11S,ENTERZZ,,.OUT
IMP80 CTOPT+SUP27CSRCE_GPC37S,GPCZZ,,.OUT
IMP80 SUP27CSRCE_MINDIAGS,MINDIAGZZ,,.OUT
IMP80 CTOPT+SUP27CSRCE_COMMS49S,COMMSZZ,,.OUT
IMP80 CTOPT+SUP27CSRCE_FAST36S,FASTZZ,,.OUT
IMP80 CTOPT+SUP27CSRCE_TAPE72S,TAPEZZ,,.OUT
PARM MAP
LINK
SUPZZ
COMZZ
PRINTZZ
OPERZZ
ENTERZZ
GPCZZ
MINDIAGZZ
COMMSZZ

==== ercc07/emas-2900/sup27bsrce_gpc37s.txt ====

%CONSTSTRING (25) VSN="GPC37 26TH MAY 81"
!************************************************GPC GPC GPC
!*
!*   EMAS 2900 SUPERVISOR NOTE
!*                                           No: 5
!*                                         Date: 21/05/80
!*                                       Author: A.Gibbons
!*
!*
!* %EXTERNAL ROUTINE GPC(%RECORD(PARMF)%NAME P)
!*
!* 1. CONVENTIONS
!* The record spec for the parameter is
!*   %RECORDFORMAT PARMF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6)
!* where
!*   DEST is considered as two half words DSNO and DACT. DSNO
!*        must be GPC's DSNO 
!*        DACT is set according to the function required.
!*
!*   SRCE is considered as two halfwords SSNO and SACT.

==== ercc07/emas-2900/sup26fsrce_releasen.txt ====





         SUPERVISOR RELEASE NOTICE VSN 26fF
         _________________________________
  



      This Supervisor incorporates the following changes:-

         1) Has minor changes to debug faults in dualling only





         SUPERVISOR RELEASE NOTICE VSN 26E
         _________________________________

==== ercc07/emas-2900/imp80tests_ct0.txt ====
%BEGIN
%CONSTINTEGER MULTIOCP=0
%INTEGER SEMA
%CONTROL X'1FFFFFFF'
      %IF MULTIOCP=0 %THEN SEMA=-1
%CONTROL X'0FFFFFFF'
%ENDOFPROGRAM

==== ercc07/emas-2900/imp80tests_ct1.txt ====
%BEGIN
%INTEGER I,J
%CONSTINTEGER YES=X'80000000'
%CONSTINTEGER SFCFITTED=YES
%CONTROL X'1FFFFFFF'
      %IF SFCFITTED=YES %THEN I=I+1 %ELSE %START
         J=J**4
         I=I+J
      %FINISH
%CONTROL X'0FFFFFFF'
%ENDOFPROGRAM

==== ercc07/emas-2900/imp80tests_ct2.txt ====
%BEGIN
      S=S." " %WHILE LENGTH(S)<20
%ENDOFPROGRAM

==== ercc07/emas-2900/s4algps.txt ====
37
D(NAME)
D(ICONST)
D(CONST)
D(ONAME)
D(COMTEXT))
D(S)
D(ENDTEXT)
D(TEXTTEXT)
D(NAMELIST)
D(HOLE)
D(MARK)
D(ONAMELIST)
D(UPSTCNT)
D(LETTERSTRING)
D(DOWN)
D(UP)
D(SCALARTYPE)
D(NOTENAME)
D(TYPE=A)
D(TYPE=B)

==== ercc07/emas-2900/imp80tests_ct3.txt ====
%BEGIN
%CONSTINTEGER A
%INTEGER B
%BYTEINTEGERARRAYFORMAT AF(0:X'08000000')
B=A_GARBAGE
%ENDOFPROGRAM

==== ercc07/emas-2900/imp80tests_ct4.txt ====
%EXTERNALROUTINE QUEUES(%STRING(255) S)
%SYSTEMSTRINGFNSPEC SPAR(%INTEGER N)
%CONSTINTEGER STRLEN=256
%STRING(STRLEN)COM
%SYSTEMROUTINESPEC SETPAR(%STRING(225)S)
      SETPAR(S)
      COM<-SPAR(1)
      MESS=COM." ".SPAR(2)
      %UNLESS SPAR(2)="" %THEN MESS=MESS.",".SPAR(2)
%END
%ENDOFFILE

==== ercc07/emas-2900/ibmconvert_sibmdump.txt ====
!
!
!
%RECORDFORMAT RR(%INTEGER CONAD,FTYPE,DSTART,DEND)
%EXTERNALROUTINESPEC DEFINE(%STRING(255)PARM)
%SYSTEMROUTINESPEC PSYSMES(%INTEGER ROOT,FLAG)
%SYSTEMROUTINESPEC SETPAR(%STRING(255)PARM)
%SYSTEMSTRINGFNSPEC SPAR(%INTEGER N)
%SYSTEMROUTINESPEC CONNECT(%STRING(31)FILE,%INTEGER MODE,HOLE,PROT,
         %RECORD(RR)%NAME FINFO,%INTEGERNAME FLAG)
%SYSTEMROUTINESPEC ETOI(%INTEGER ADR,LNTH)
%SYSTEMROUTINESPEC MOVE(%INTEGER LNTH,FROMAD,TOAD)
!
!                                       OUT HEX
!
%ROUTINE OUTHEX(%INTEGER VAL,WIDTH)
 %CONSTBYTEARRAY HX(0:15)='0','1','2','3','4','5','6','7',
                          '8','9','A','B','C','D','E','F'
 %INTEGER I
 %FOR I=WIDTH-4,-4,0 %CYCLE
      PRINTSYMBOL(HX((VAL>>I)&15))

==== ercc07/emas-2900/imp80tests_ct5.txt ====
%BEGIN
! CHECKS MISPLACED ON EVENTS ARE FAULTED
%INTEGER I
%ROUTINE A
%IF I=1 %START
      PRINTSTRING("HELLO")
%FINISH %ELSE %START
      %ONEVENT 9 %START
         PRINTSTRING("GOODBYE")
      %FINISH
%FINISH
%END
I=1
A
%ENDOFPROGRAM

==== ercc07/emas-2900/sup28asrce_oper36s.txt ====
!*
!* OPER36 - 26th March 1982 *
!*
!* Communications record format - extant from CHOPSUPE 22A onwards *
!*
%RECORDFORMAT COMF(%INTEGER OCPTYPE,SLIPL,SBLKS,SEPGS,NDISCS,DLVNADDR, %C
         (%INTEGER GPCTABSIZE,GPCA %OR %INTEGER DCUTABSIZE,DCUA), %C
         %INTEGER SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,TOJDAY,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,SERVAAD,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0,%INTEGER ITINT,CONTYPEA, %C
         (%INTEGER GPCCONFA %OR %INTEGER DCUCONFA), %C
         %INTEGER FPCCONFA,SFCCONFA,BLKADDR,RATION, %C
         (%INTEGER SMACS %OR %INTEGER SCUS), %C
         %INTEGER TRANS,%LONGINTEGER KMON,  %C
         %INTEGER DITADDR,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,STOREAAD,PROCAAD,SFCCTAD,DRUMTAD,TSLICE,FEPS,  %C
         MAXCBT,PERFORMAD,SP1,SP2,SP3,SP4,SP5,SP6, %C
         LSTL,LSTB,PSTL,PSTB,HKEYS,HOOT,SIM,CLKX,CLKY,CLKZ,  %C

==== ercc07/emas-2900/imp80tests_ct6.txt ====

%BEGIN
%RECORDFORMAT F(%INTEGER I,J,K)
%OWNRECORD(F) R=277
      WRITE(R_J,10)
%ENDOFPROGRAM

==== ercc07/emas-2900/edit31s.txt ====
! [ START OF EDIT TEXT -
!
!
! **** **** Attend to this: **** ****
! You cannot use any piece of text which starts with X'00' in this
! editor: and if you put it in a file, you get trouble when you try
! M<file>M' or (M<file>)2.
!
!
! **** **** Private copy of IOCP console package: **** ****
! **** **** The same code should appear in ECCE.  **** ****
! **** **** It is important to keep this code up  **** ****
! **** **** to date.                              **** ****
!
!
%SYSTEMROUTINESPEC CHANGEFILESIZE( %STRING(31)FILE, %INTEGER NEWSIZE,
    %INTEGERNAME FLAG)
%SYSTEMROUTINESPEC UCTRANSLATE( %INTEGER ADDR,L)
%CONSTSTRING(1)SNL="
"
%ROUTINE MOVE( %INTEGER LENGTH,FROM,TO)

==== ercc07/emas-2900/impalgs_ermessprgs.txt ====
%EXTERNALROUTINESPEC DEFINE(%STRING(63)S)
%EXTERNALROUTINE COMPRESSEM(%STRING(63)S)
!***********************************************************************
!*    COMPRESSES A FILE OF ERROR MESSAGE INTO TWO CONSTARRAYS AND      *
!*    GENERATES A ROUTINE TO REGURGITATE THEM IN ENGLISH               *
!***********************************************************************
%INTEGER CPSTRM,INSTRM,LPSTRM
%BYTEINTEGERARRAY WORD(0:1000)
%INTEGERARRAY LETT(0:256)
%INTEGER I, J, K, N, NUM, NEXT, NMAX
%STRING(31) FILE1, FILE2, FILE3
%STRING(71)TEMP
%%STRING(71)%FNSPEC MESS(%INTEGER N)
%ROUTINESPEC LIT(%INTEGERNAME P)
%ROUTINESPEC CARDS OUT
      %UNLESS S->FILE1.(",").FILE2.(",").FILE3 %THEN %C
         PRINTSTRING("PARAMS??") %AND %RETURN
      DEFINE("ST49,".FILE1)
      INSTRM=49
      SELECT INPUT(INSTRM)
      DEFINE("ST50,".FILE2)

==== ercc07/emas-2900/sup27csrce_com33s.txt ====
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20J ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DDTADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,TOJDAY,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,DQADDR,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0, %C
         %INTEGER ITINT,CONTYPEA,GPCCONFA,FPCCONFA,SFCCONFA, %C
         BLKADDR,RATION,SMACS,TRANS,%LONGINTEGER KMON,  %C
         %INTEGER DITADDR,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,STOREAAD,PROCAAD,SFCCTAD,DRUMTAD,TSLICE,FEPS,SP1, %C
         SP2,SP3,SP4,SP5,SP6,SP7,SP8, %C
         LSTL,LSTB,PSTL,PSTB,HKEYS,HOOT,SIM,CLKX,CLKY,CLKZ,  %C
         HBIT,SLAVEOFF,INHSSR,SDR1,SDR2,SDR3,  %C
         SDR4,SESR,HOFFBIT,S2,S3,S4,END)
%RECORDFORMAT PARMF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6)
                                        ! MISC. ROUTINE SPECS
%EXTERNALROUTINESPEC PKMONREC(%STRING(20)TEXT,%RECORD(PARMF)%NAME P)
%EXTERNALSTRING(8)%FNSPEC STRHEX(%INTEGER N)
%EXTERNALROUTINESPEC OPMESS3(%STRING(63)TXT)

==== ercc07/emas-2900/imp80tests_ct7.txt ====

%BEGIN
%INTEGER I
%RECORDFORMAT F(%BYTE A,B,C,D)
%RECORD(F) R
      I=RECORD(1)
      RECORD(1)=1
      RECORD(3)
      I=R_C+R
      I=R+R_B
%ENDOFPROGRAM

==== ercc07/emas-2900/imp80tests_ct8.txt ====

%BEGIN
!***********************************************************************
!*    HAS SIX  UNUSUAL TYPE CHECKING FAULTS                            *
!***********************************************************************
%INTEGER I,J,K
%STRING(1)S
%REALMAPSPEC FRED(%INTEGER X)
      READ SYMBOL(FRED(1))
      READSYMBOL(S)
      READITEM(I)
K=FRED(0)
%REALMAP FRED(%INTEGER X)
      %RESULT==J
%END
      %FOR I=FRED(1),1,10 %CYCLE; %REPEAT
%ENDOFPROGRAM

==== ercc07/emas-2900/imp8002s.txt ====
%MAINEP ICL9CEZIMP80
%TRUSTEDPROGRAM
%BEGIN
%CONSTINTEGER RELEASE=1
%CONSTINTEGER YES=1,NO=0
%CONSTINTEGER USE IMP=NO
%CONSTINTEGER VMEB=NO
%CONSTSTRING(9) LADATE="15 Dec 81";       ! LAST ALTERED
%INTEGER I, J, K
! PRODUCED BY OLDPS FROM IMP80PS01 ON 02/07/81
%CONSTBYTEINTEGERARRAY CLETT(0: 481)=   1,
  43,   1,  45,   1,  40,   1,  41,   1,  42,   1,  44,   2, 201, 198,
   6, 213, 206, 204, 197, 211, 211,   5, 215, 200, 201, 204, 197,   5,
 213, 206, 212, 201, 204,   3, 198, 207, 210,   1,  61,   5, 193, 204,
 201, 193, 211,   7, 201, 206, 212, 197, 199, 197, 210,   4, 210, 197,
 193, 204,   8, 204, 207, 206, 199, 210, 197, 193, 204,   4, 204, 207,
 206, 199,   4, 194, 217, 212, 197,   6, 211, 212, 210, 201, 206, 199,
   4, 200, 193, 204, 198,   6, 210, 197, 195, 207, 210, 196,   7, 210,
 207, 213, 212, 201, 206, 197,   2, 198, 206,   3, 205, 193, 208,   8,
 198, 213, 206, 195, 212, 201, 207, 206,   4, 206, 193, 205, 197,   9,
 193, 210, 210, 193, 217, 206, 193, 205, 197,   9, 207, 198, 208, 210,

==== ercc07/emas-2900/imp80tests_ct9.txt ====
%BEGIN
%EXTERNALINTEGER FRED
%EXTERNALINTEGERSPEC JIM
%EXTRINSICINTEGERNAME BLOGGS
%EXTERNALINTEGERARRAYFORMATSPEC WRONG(1:10)
%EXTERNALINTEGERARRAYSPEC RIGHT(1:10)
%CONSTINTEGERSPEC RUBBISH=21
%EXTERNALINTEGERNAME KNOT
%ENDOFPROGRAM

==== ercc07/emas-2900/sup26gsrce_oper33s.txt ====
! %CONSTSTRING(15)VSN = "OPER33 08/09/80"; ! ****************************************
%IF (MONLEVEL >> 1) & 1 = YES %START
      %EXTRINSICLONGINTEGER KMON
      %OWNINTEGER OPMON; ! COPY OF KMON BIT
      %CONSTINTEGER KMONNING = YES
%FINISH %ELSE %START
      %CONSTINTEGER KMONNING = NO
%FINISH
!
%IF MONLEVEL & 1 = YES %START
      %CONSTINTEGER VIDEO UPDATING = YES
      %OWNINTEGER OPER FACILITIES
%FINISH %ELSE %START
      %CONSTINTEGER VIDEO UPDATING = NO
%FINISH
!
!
!
!%EXTERNALROUTINESPEC DUMPTABLE(%INTEGER X,A,S)
%EXTERNALROUTINESPEC PON(%RECORDNAME P)
%EXTERNALROUTINESPEC PKMONREC(%STRING(20)TXT,%RECORDNAME P)

==== ercc07/emas-2900/itrimp_cserv01s.txt ====
%INCLUDE "ERCC07.TRIMP_HOSTCODES"
%CONSTINTEGER HOST=AMDAHL
%INCLUDE "ERCC07.TRIMP_TFORM1S"
%OWNINTEGERNAME ASL
%OWNRECORD(LISTF)%ARRAYNAME ASLIST
%EXTRINSICRECORD(WORKAF)WORKA
%EXTRINSICRECORD(PARMF)PARM
%EXTERNALROUTINE MOVE BYTES(%INTEGER LENGTH,FBASE,FOFF,TOBASE,TOOFF)
!************************************************************************
!*    A MOVE BYTES ROUTINE THAT WILL WORK ON WORD&BYTE ADDRESS M-CS    *
!***********************************************************************
%INTEGER I
AGN:
      %RETURN %IF LENGTH<=0
      %IF HOST=EMAS %START;             ! EMAS BYTE ADDRESSES
         I=X'18000000'+LENGTH
         *LDA_TOBASE; *INCA_TOOFF; *LDTB_I
         *LSS_FBASE; *IAD_FOFF; *LUH_I
         *MV_%L=%DR
      %FINISH
      %IF HOST=PERQ %START;             ! WORD ADDRESS+BYTE OFFSET

==== ercc07/emas-2900/sup27csrce_fast36s.txt ====
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20J ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DLVNADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,TOJDAY,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,DQADDR,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0, %C
         %INTEGER ITINT,CONTYPEA,GPCCONFA,FPCCONFA,SFCCONFA, %C
         BLKADDR,RATION,SMACS,TRANS,%LONGINTEGER KMON,  %C
         %INTEGER DITADDR,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,STOREAAD,PROCAAD,SFCCTAD,DRUMTAD,TSLICE,SP0,SP1, %C
         SP2,SP3,SP4,SP5,SP6,SP7,SP8, %C
         LSTL,LSTB,PSTL,PSTB,HKEYS,HOOT,SIM,CLKX,CLKY,CLKZ,  %C
         HBIT,SLAVEOFF,INHSSR,SDR1,SDR2,SDR3,  %C
         SDR4,SESR,HOFFBIT,S2,S3,S4,END)
!-----------------------------------------------------------------------
! PON & POFF ETC. DECLARATIONS
%RECORDFORMAT PARMF(%INTEGER DEST, SRCE, P1, P2, P3, P4, P5,  %C
         P6)
%CONSTLONGINTEGER NONSLAVED=X'2000000000000000'

==== ercc07/emas-2900/docs_wilkesnote.txt ====
      Protection is related to system  structure  and  can  not  not  be
discussed  sensibly  out of context.   I propose to to use IBM OS360 and
EMAS2900 for examples as I am not sufficiently familiar with VMS.

      Early uni-programming operating systems had  user  and  supervisor
co-resident  in  separate  worlds protected by base and limit registers.
This simple approach worked well although it  was  difficult  to  locate
user  parameters to operating system calls without adddress computation.
IBM elected to put parameters in code after  the  SVC,    an  insanitary
method that has cost them dear.  These techniques were extended to multi
tasking and then further distorted to handle virtual  memory  (with  the
operating  system  remaining  in real addresses).   The price of the IBM
technique of passing parameters to the system increased  sharply.    The
code was impure and could not be shared; also code pages were made dirty
by writing in the parameters and had to  be  paged  out.    Further  the
supervisor   had  to  cope  with  page  boundaries  within  and  between
parameters.

      Now that systems  have  become  larger  and  more  complex  it  is
deirable  to  use virtual addressing within the operating system and the
simple model fails to cope.   The IBM-XA manual has pages of description

==== ercc07/emas-2900/edit32s.txt ====
!
%SYSTEMROUTINESPEC CHANGEFILESIZE(%STRING(31) FILE, %INTEGER NEWSIZE,
    %INTEGERNAME FLAG)
%SYSTEMROUTINESPEC UCTRANSLATE(%INTEGER ADDR,L)
%CONSTSTRING(1) SNL = "
"
%ROUTINE MOVE(%INTEGER LENGTH,FROM,TO)
      *LB_LENGTH
      *JAT_14,<L99>
      *LDTB_X'18000000'
      *LDB_ %B
      *LDA_FROM
      *CYD_0
      *LDA_TO
      *MV_ %L= %DR
L99:%END;                                !OF MOVE
%EXTERNALROUTINESPEC PROMPT(%STRING(15) S)
%EXTERNALSTRINGFNSPEC INTERRUPT
%SYSTEMROUTINESPEC TOJOURNAL(%INTEGER FROM,LEN)
%RECORDFORMAT FRF(%INTEGER CONAD,FILETYPE,DATASTART,DATEND,SIZE,RUP,EEP,MODE,
   USERS,ARCH, %STRING(6) TRAN, %STRING(8) DATE,TIME, %INTEGER COUNT,SPARE1,

==== ercc07/emas-2900/sup27fsrce_ndiag07s.txt ====

!*_ DATED 11 NOV 76   1
! ALTERATIONS BY K.YARWOOD ...
!        PRINT FL AND NEXT SYMBOL LINES COMMENTED OUT
!        PRINTTEXT'S TURNED TO PRINTSTRING'S
!        ADDITION FOR LONGINTEGER IN RT PRINT VAR
!         HEX EQUIVALENTS FOR INTS,LONGINTS ETC PRINTED
!        INF PRINTED IN HEX IN RT ERRMESS

%EXTERNALSTRINGFNSPEC STRHEX(%INTEGER I)
%EXTERNALSTRING(8)%FNSPEC STRINT(%INTEGER I)
%CONSTINTEGER STACKBASE=X'80100000';  ! START OF RESIDENT STACK
! %SYSTEMROUTINESPEC SIGNAL(%INTEGER I, J, K, %INTEGERNAME F)
%ROUTINESPEC PRINTMESS(%INTEGER N)
! %SYSTEMROUTINESPEC TIDY EXIT
!*
%ROUTINESPEC INDIAG(%INTEGER OLDLNB, L, PC, %INTEGERNAME NEWLNB)
! %ROUTINESPEC FDIAG(%INTEGER OLDLNB,PC,%INTEGERNAME NEWLNB)
%ROUTINESPEC ERMESS(%INTEGER N, INF)
! %ROUTINESPEC ICL9CELABELS


==== ercc07/emas-2900/imp8003s.txt ====
%MAINEP ICL9CEZIMP80
%TRUSTEDPROGRAM
%BEGIN
%CONSTINTEGER RELEASE=1
%CONSTINTEGER YES=1,NO=0
%CONSTINTEGER USE IMP=NO
%CONSTINTEGER VMEB=NO
%CONSTSTRING(10) LADATE="28 June 82";       ! LAST ALTERED
%INTEGER I, J, K
! PRODUCED BY OLDPS FROM IMP80PS03 ON 23/06/82
%CONSTBYTEINTEGERARRAY CLETT(0: 442)=   1,
  43,   1,  45,   1,  40,   1,  41,   1,  42,   1,  44,   2, 201, 198,
   6, 213, 206, 204, 197, 211, 211,   5, 215, 200, 201, 204, 197,   5,
 213, 206, 212, 201, 204,   3, 198, 207, 210,   1,  61,   5, 193, 204,
 201, 193, 211,   7, 201, 206, 212, 197, 199, 197, 210,   4, 210, 197,
 193, 204,   4, 204, 207, 206, 199,   4, 194, 217, 212, 197,   6, 211,
 212, 210, 201, 206, 199,   4, 200, 193, 204, 198,   6, 210, 197, 195,
 207, 210, 196,   7, 210, 207, 213, 212, 201, 206, 197,   2, 198, 206,
   3, 205, 193, 208,   8, 198, 213, 206, 195, 212, 201, 207, 206,   4,
 206, 193, 205, 197,   5, 193, 210, 210, 193, 217,   9, 207, 198, 208,
 210, 207, 199, 210, 193, 205,   6, 207, 198, 198, 201, 204, 197,   6,

==== ercc07/emas-2900/perqtrimp_makeperqp1.txt ====

PARM NOCHECK
IMP80 TRIMP_PERQPONEAS+TRIMP_PONEB01S,P1Y,L,.OUT

==== ercc07/emas-2900/nrsrce_ndiag06s.txt ====

!*_ DATED 11 NOV 76   1
! ALTERATIONS BY K.YARWOOD ...
!        PRINT FL AND NEXT SYMBOL LINES COMMENTED OUT
!        PRINTTEXT'S TURNED TO PRINTSTRING'S
!        ADDITION FOR LONGINTEGER IN RT PRINT VAR
!         HEX EQUIVALENTS FOR INTS,LONGINTS ETC PRINTED
!        INF PRINTED IN HEX IN RT ERRMESS

%EXTERNALSTRINGFNSPEC STRHEX(%INTEGER I)
%EXTERNALSTRING(8)%FNSPEC STRINT(%INTEGER I)
%CONSTINTEGER STACKBASE=X'80100000';  ! START OF RESIDENT STACK
! %SYSTEMROUTINESPEC SIGNAL(%INTEGER I, J, K, %INTEGERNAME F)
%ROUTINESPEC PRINTMESS(%INTEGER N)
! %SYSTEMROUTINESPEC TIDY EXIT
!*
%ROUTINESPEC INDIAG(%INTEGER OLDLNB, L, PC, %INTEGERNAME NEWLNB)
! %ROUTINESPEC FDIAG(%INTEGER OLDLNB,PC,%INTEGERNAME NEWLNB)
%ROUTINESPEC ERMESS(%INTEGER N, INF)
! %ROUTINESPEC ICL9CELABELS


==== ercc07/emas-2900/sup27fsrce_gpc38s.txt ====

%CONSTSTRING (25) VSN="GPC38 28th Sept 81"
!************************************************GPC GPC GPC
!*
!*   EMAS 2900 SUPERVISOR NOTE
!*                                           No: 5
!*                                         Date: 21/05/80
!*                                       Author: A.Gibbons
!*
!*
!* %EXTERNAL ROUTINE GPC(%RECORD(PARMF)%NAME P)
!*
!* 1. CONVENTIONS
!* The record spec for the parameter is
!*   %RECORDFORMAT PARMF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6)
!* where
!*   DEST is considered as two half words DSNO and DACT. DSNO
!*        must be GPC's DSNO 
!*        DACT is set according to the function required.
!*
!*   SRCE is considered as two halfwords SSNO and SACT.

==== ercc07/emas-2900/magipls.txt ====

*
* THIS PROGRAM READS DOWN A TAPE SUPERVISOR. IT OPERATES IN P3 IDLING
* IN P2 WHEN IN THE WAIT STATE
*
          START X'40000'
HEADER    DC   A(ENDFIL-HEADER)
          DC   A(PROGRAM-HEADER)
          DC   A(GLAP-HEADER)
          DC   A(LINKDA-HEADER)
PROGRAM  BALR  7,0
         USING *,7
*
* ENTER HERE IN P3 UNINTERUUPTABLE. SET UP SCRATCHPAD AND MASKS
*
         LSP   0(16,0),AREA              CLEAR P4 REGISTERS
         LSP   64(16,0),AREA             CLEAR P2 REGISTERS
         LSP   96(16,0),AREA             CLEAR P1 REGISTERS
         LSP   14(1,0),AIDLE             SET P4 P-COUNTER
         LSP   13(1,0),SUPISR                 P4ISR
         L     1,SUPISR                        P1ISR

==== ercc07/emas-2900/edit33s.txt ====
!
%SYSTEMROUTINESPEC CHANGEFILESIZE(%STRING(31) FILE, %INTEGER NEWSIZE,
    %INTEGERNAME FLAG)
%SYSTEMROUTINESPEC UCTRANSLATE(%INTEGER ADDR,L)
%CONSTSTRING(1) SNL = "
"
%ROUTINE MOVE(%INTEGER LENGTH,FROM,TO)
      *LB_LENGTH
      *JAT_14,<L99>
      *LDTB_X'18000000'
      *LDB_ %B
      *LDA_FROM
      *CYD_0
      *LDA_TO
      *MV_ %L= %DR
L99:%END;                                !OF MOVE
%EXTERNALROUTINESPEC PROMPT(%STRING(15) S)
%EXTERNALSTRINGFNSPEC INTERRUPT
%SYSTEMROUTINESPEC TOJOURNAL(%INTEGER FROM,LEN)
%RECORDFORMAT FRF(%INTEGER CONAD,FILETYPE,DATASTART,DATEND,SIZE,RUP,EEP,MODE,
   USERS,ARCH, %STRING(6) TRAN, %STRING(8) DATE,TIME, %INTEGER COUNT,SPARE1,

==== ercc07/emas-2900/sup26esrce_makechkd.txt ====
PARM FREE,STACK,NOCHECK,NOLIST
IMP CTOPT+SUP26ESRCE_SUP26ES,SUPZZ,,.OUT
IMP CTOPT+SUP26ESRCE_COM30S,COMZZ,,.OUT
IMP CTOPT+SUP26ESRCE_PRINT05S,PRINTZZ,,.OUT
IMP CTOPT+SUP26ESRCE_OPER33S,OPERZZ,,.OUT
IMP SUP26ESRCE_ENTER05S,ENTERZZ,,.OUT
IMP CTOPT+SUP26ESRCE_GPC33S,GPCZZ,,.OUT
IMP SUP26ESRCE_NDIAG07S,NDIAGZZ,,.OUT
IMP CTOPT+SUP26ESRCE_COMMS46S,COMMSZZ,,.OUT
PARM FREE,OPT,STACK,NOLIST
IMP CTOPT+SUP26ESRCE_FAST28S,FASTZZ,,.OUT
IMP SUP26ESRCE_TAPE67S,TAPEZZ,,.OUT
PARM MAP
LINK
SUPZZ
COMZZ
PRINTZZ
OPERZZ
ENTERZZ
GPCZZ
NDIAGZZ

==== ercc07/emas-2900/imp8004s.txt ====
%MAINEP ICL9CEZIMP80
%TRUSTEDPROGRAM
%BEGIN
%CONSTINTEGER RELEASE=1
%CONSTINTEGER YES=1,NO=0
%CONSTINTEGER USE IMP=NO
%CONSTINTEGER VMEB=NO
%CONSTSTRING(10) LADATE="29 Mar 83";       ! LAST ALTERED
%INTEGER I, J, K
! PRODUCED BY OLDPS FROM IMPALGS_IMP80PS04 ON 19/01/83
%CONSTBYTEINTEGERARRAY CLETT(0: 434)=   1,
  43,   1,  45,   1,  40,   1,  41,   1,  42,   1,  44,   2, 201, 198,
   6, 213, 206, 204, 197, 211, 211,   5, 215, 200, 201, 204, 197,   5,
 213, 206, 212, 201, 204,   3, 198, 207, 210,   1,  61,   5, 193, 204,
 201, 193, 211,   7, 201, 206, 212, 197, 199, 197, 210,   4, 210, 197,
 193, 204,   4, 204, 207, 206, 199,   4, 194, 217, 212, 197,   6, 211,
 212, 210, 201, 206, 199,   4, 200, 193, 204, 198,   6, 210, 197, 195,
 207, 210, 196,   7, 210, 207, 213, 212, 201, 206, 197,   2, 198, 206,
   3, 205, 193, 208,   8, 198, 213, 206, 195, 212, 201, 207, 206,   4,
 206, 193, 205, 197,   5, 193, 210, 210, 193, 217,   9, 207, 198, 208,
 210, 207, 199, 210, 193, 205,   6, 207, 198, 198, 201, 204, 197,   6,

==== ercc07/emas-2900/nrsrce_soapopt.txt ====

\SB,EM,\IL,LO,IM=6,\TB,\SE,CL=2,\CR,*

==== ercc07/emas-2900/palgcons.txt ====

%BEGIN                                                                  
   %EXTERNAL %ROUTINE %SPEC ISOCARD(%BYTE %INTEGER %ARRAY %NAME A)      
   %EXTERNAL %ROUTINE %SPEC CLOSESTREAM(%INTEGER CH)                    
   %INTEGER                   BF,BR,BI,E,S,K,ELSE,P,L,SWCT,NP,CH        
   %STRING (70)               BL                                        
   %STRING (255)              R,OUT,FR,TL,EX1,EX2,EX3,EX4,EX5,EX6                   
   %INTEGER %ARRAY            EC(1:50),SWSCOPE(1:2,1:20)                
   %BYTE %INTEGER %ARRAY      IN(0:255)                                 
   %STRING (20) %ARRAY        PARM(1:20,1:3),LIST(1:20),SW(0:30,1:20)   
   %OWN %STRING (10) %ARRAY   OLD(1:16) = '[',']','''POWER''','''/''',
               'LN(','ENTIER(','''NE''','''LE''','''GE''',':=','=',  
               '''LT''','''GT''','''GOTO''','''(''',''')'''        
   %OWN %STRING (10) %ARRAY   NEW(1:16) = '(',')','**','//','LOG(',     
                              'INTPT(',' ~= ',' <= ',' >= ',' = ',' = ',
                              ' < ',' > ','-> ',' '' ',' '' '         
   %OWN %STRING (10) %ARRAY   END(1:3) = '%REPEAT','%FINISH','%END'     
   %STRING %FN %SPEC ALIGN(%INTEGER LEV)                                
   %STRING %FN %SPEC TIDY(%STRING %NAME R, %INTEGER SP)                 
   %STRING %FN %SPEC PROCEDURE(%STRING %NAME F)                         
   %STRING %FN %SPEC ARRAY(%STRING %NAME F)                             

==== ercc07/emas-2900/sup26gsrce_print05s.txt ====

%EXTRINSICLONGINTEGER KMON
%ROUTINESPEC PRHEX(%INTEGER H)
%ROUTINESPEC PRINTER(%RECORDNAME P)
%EXTERNALROUTINESPEC PON(%RECORDNAME P)
%EXTERNALROUTINESPEC OPMESS(%STRING (23) MESS)
%SYSTEMROUTINESPEC ITOE(%INTEGER A, L)
%IF MULTIOCP=YES %THEN %START
%EXTERNALROUTINESPEC SEMALOOP(%INTEGERNAME SEMA)
      %ROUTINESPEC RESERVE LOG
      %ROUTINESPEC RELEASE LOG
      %ROUTINESPEC AWAIT LOG ROUTE
%FINISH
%RECORDFORMAT PARMF(%INTEGER DEST, SRCE, P1, P2, P3, P4, P5,  %C
         P6)
!------------------------------------------------------------------------
%RECORDFORMAT ENTFORM(%INTEGER SER, PTSM, PROPADDR,  %C
         TICKS SINCE, CAA, GRCB AD, LBA, ALA, STATE, RESP0,  %C
         RESP1, SENSE1, SENSE2, SENSE3, SENSE4, REPSNO, BASE,  %C
         ID, DLVN, MNEMONIC, ENTSIZE, PAW, USAW0, URCB AD,  %C
         SENSDAT AD, LOGMASK, TRTAB AD, UA SIZE, UA AD,  %C

==== ercc07/emas-2900/edit34s.txt ====
!
%SYSTEMROUTINESPEC CHANGEFILESIZE(%STRING(31) FILE, %INTEGER NEWSIZE,
    %INTEGERNAME FLAG)
%SYSTEMROUTINESPEC UCTRANSLATE(%INTEGER ADDR,L)
%CONSTSTRING(1) SNL = "
"
%ROUTINE MOVE(%INTEGER LENGTH,FROM,TO)
      *LB_LENGTH
      *JAT_14,<L99>
      *LDTB_X'18000000'
      *LDB_ %B
      *LDA_FROM
      *CYD_0
      *LDA_TO
      *MV_ %L= %DR
L99:%END;                                !OF MOVE
%EXTERNALROUTINESPEC PROMPT(%STRING(15) S)
%EXTERNALSTRINGFNSPEC INTERRUPT
%SYSTEMROUTINESPEC TOJOURNAL(%INTEGER FROM,LEN)
%RECORDFORMAT FRF(%INTEGER CONAD,FILETYPE,DATASTART,DATEND,SIZE,RUP,EEP,MODE,
   USERS,ARCH, %STRING(6) TRAN, %STRING(8) DATE,TIME, %INTEGER COUNT,SPARE1,

==== ercc07/emas-2900/ibmconvert_sibmname.txt ====
%EXTERNALROUTINESPEC UCTRAN(%STRINGNAME STR)
!
!                                       IBM NAME
!
%CONSTSTRING(1) NULL="",HASH="#",AT="@",CODE="^"
%EXTERNALSTRING(8)%FN IBM NAME(%STRING(1) PREFIX,%STRING(31)%NAME NAME)
!           
!              RETURNS IBM VERSION OF NAME TRUNCATED IF NECESSARY WITH SUPPLIED
!              PREFIX.
 %INTEGER LNME,CH
 %STRING(31) NME
 NME = NAME
 UCTRAN(NME);! FORCE TO UPPER CASE
 LNME = LENGTH(NME)
 %IF LNME<8 %THEN NME = NME."        "
 %IF PREFIX=HASH %START
      {FIRST CHAR. ON LOWER CASE}
      CH = CHARNO(NME,1)
      %IF CH=' ' %THEN CH='#' %ELSE CH=CH+'a'-'A'
      NME = TOSTRING(CH).SUBSTRING(NME,2,8)
 %FINISH

==== ercc07/emas-2900/sup26fsrce_mindiags.txt ====
%EXTERNALSTRINGFNSPEC STRHEX(%INTEGER I)
%SYSTEMROUTINE NDIAG(%INTEGER PCOUNT, LNB, FAULT, INF)
!***********************************************************************
!*_______'MASTER DIAGNOSTIC ROUTINE'. DISCOVERS THE LANGUAGE OF THE    *
!*_______FAILED ROUTINE FROM WORD 4 OF THE GLA AND CALLS APPROPRIATE   *
!*_______DIAGNOSTIC ROUTINE. THIS IS REPEATED TILL ALL DIAGNOSTICS     *
!*_______GIVEN.                                                        *
!*_______PCOUNT = PCOUNTER AT FAILURE                                  *
!*_______LNB    = LOCAL NAME BASE AT FAILURE                           *
!*_______FAULT  = FAILURE  (0=%MONITOR  REQUESTED)                     *
!*_______INF    =ANY FURTHER INFORMATION                               *
!***********************************************************************
PRINTSTRING("
MINIMUM NDIAGS ENTERED
FAULT NO ="); WRITE(FAULT,2)
PRINTSTRING("
PC=X".STRHEX(PCOUNT)."
LNB=X".STRHEX(LNB)."
")
%END
%ENDOFFILE

==== ercc07/emas-2900/sup28dsrce_samplectopt.txt ====

!
! THIS FILE CONTAINS THE CONST INTEGERS TO CONTROL COMPILE TIME OPTIONS
! IN EMAS2900
! IT IS INTENDED TO BE CONCATENATED ONTO THE FRONT OF SOURCEFILES
! BEFORE COMPILATION
%CONSTINTEGER YES=1
%CONSTINTEGER NO=0
%CONSTINTEGER SSERIES=NO;               ! NO=PSERIES, YES=SSERIES
%CONSTINTEGER RECONFIGURE=YES;          ! NO TO EXCLUDE DYNAMIC CONFIGURATION
%CONSTINTEGER MULTIOCP=YES;             ! YES TO INCLUDE SEMAPHORING
%CONSTINTEGER SFCFITTED=NO;             ! NO FOR DISC ONLY SITES
%CONSTINTEGER CPFITTED=NO;              ! CARD PUNCH FITTED
%CONSTINTEGER CSU FITTED=NO;            ! SWITCH UNIT
%CONSTINTEGER DAP FITTED=YES;           ! ARRAY PROCESSOR AVAILABLE
%CONSTINTEGER SNOOZING=YES;             ! YES ALLOWS SUSPEND IN STORE
                                        ! ADVANTAGEOUS WITH LARGE STORES
%CONSTINTEGER PRODUCTION=NO;            ! YES FOR CONTINUING AFTER
                                        ! SOFTWARE ERRORS(MOST OF WHICH
                                        ! ARE DUE TO HARDWARE!)
%CONSTINTEGER MONLEVEL=7;               ! 0=NO MONITORING

==== ercc07/emas-2900/sup26isrce_oldcomms.txt ====

!                 VERSION OF 13/06/80
!        DEC 79: INCLUDE AN OPER ADAPTOR
!                HAVE ONLY ONE SERVICE NUMBER, X'37'
!        OTHER POSSIBLE CHANGES
!           MAKE INITIALISATION CALL OF CC INITIALISE ADAPTORS AS WELL
!           MAKE IT POSSIBLE TO DEALLOCATE/ALLOCATE ALL DEVICES
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20A ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DDTADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,WASKLOKCORRECT,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,DQADDR,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0, %C
         %INTEGER ITINT,CONTYPEA,GPCCONFA,FPCCONFA,SFCCONFA, %C
         BLKADDR,DPTADDR,SMACS,TRANS,%LONGINTEGER KMON,  %C
         %INTEGER DITADDR,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,STOREAAD,PROCAAD,SFCCTAD,DRUMTAD,TSLICE,SP0,SP1, %C
         SP2,SP3,SP4,SP5,SP6,SP7,SP8, %C
         LSTL,LSTB,PSTL,PSTB,HKEYS,HOOT,SIM,CLKX,CLKY,CLKZ,  %C

==== ercc07/emas-2900/sup26hsrce_tape69s.txt ====
!

!**************************************************
!*                                                *
!*  TAPE HANDLER FOR 2900                         *
!*                                                *
!**************************************************
!!
!!           EXTERNAL ROUTINE REFERENCES
!!
%EXTERNALSTRINGFNSPEC HTOS(%INTEGER VALUE, PLACES)
%EXTERNALROUTINESPEC OPMESS(%STRING (23) S)
%EXTERNALROUTINESPEC PON(%RECORDNAME P)
%SYSTEMROUTINESPEC ETOI(%INTEGER A, L)
%SYSTEMROUTINESPEC MOVE(%INTEGER L, FROMAD, TOAD)
%EXTERNALROUTINESPEC PRHEX(%INTEGER N)
%EXTERNALROUTINESPEC DUMP TABLE(%INTEGER TABNO, START, L)
%EXTRINSICLONGINTEGER PARMDES
%EXTERNALINTEGERFNSPEC NEWPPCELL
%EXTERNALROUTINESPEC RETURNPPCELL(%INTEGER CELL)
%IF MULTIOCP=YES %START

==== ercc07/emas-2900/sup28dsrce_sup28ds.txt ====

!
! To make S series supervisor requires:-
!     1) Change SSERIES=NO to SSERIES=YES in ctoptions file
!
!
! THESE CONST INTEGERS DEFINE SIZES AND LAYOUT OF IMPORTANT TABLES
! THEY HAVE TO BE HERE TO BE GLOBAL TO ALL ROUTINES INCLUDING IO ONES
!
%CONSTINTEGER LSTLEN=192;               ! LOCAL SEGMENT TABLE LENGTH
%CONSTINTEGER CBTLEN=299;               ! LENGTH OF CBT TABLE
%CONSTLONGINTEGER LCACR=1;              ! ACR OF LOCAL CONTROLLER
%CONSTINTEGER DIRCSEG=10;               ! SEG NO OF DIRECTOR COMMS SEG
%CONSTINTEGER DIRCSEGOFFSET=0;          ! FOR ALIGNMENT IF NEEDED
%CONSTINTEGER DIRCSEGAD=DIRCSEG<<18;    ! VIRTUAL ADDRESS OF DIR COM SEG
%CONSTINTEGER DIRCSEGL=8*CBTLEN+255+2*LSTLEN; ! SIZE OF SAME
                                        ! MADE UP OF 2049 FOR CBT
                                        ! 2*LSTLEN FOR SST
                                        ! 48+64 FOR 2 BITS OF SYTEMCALL TABLE
                                        ! 32+48 FOR DIROUTP&SIGOUT
%CONSTINTEGER LSTACKLEN=3;              ! LOCAL CONT. STACK ELEN

==== ercc07/emas-2900/edit35s.txt ====
%CONSTINTEGER EMAS=10,IBMXA=12
%CONSTINTEGER HOST=IBMXA
%CONSTSTRING(1) SNL = "
"
%RECORDFORMAT FRF(%INTEGER CONAD,FILETYPE,DATASTART,DATEND,SIZE,RUP,EEP,MODE,
   USERS,ARCH, %STRING(6) TRAN, %STRING(8) DATE,TIME, %INTEGER COUNT,SPARE1,
   SPARE2)
%RECORDFORMAT RF(%INTEGER CONAD,FILETYPE,DATASTART,DATAEND)
!
%IF HOST=IBMXA %START
%CONSTSTRING(1)USEP=":"
!
%EXTERNALROUTINESPEC CHANGEFILESIZE%ALIAS"S#CHANGEFILESIZE"( %c
  %STRINGname FILE, %INTEGERname NEWSIZE, FLAG)
%EXTERNALROUTINESPEC UCTRANSLATE %ALIAS "S#UCTRANSold"(%INTEGER ADDR,L)
%EXTERNALSTRING(255)%FNSPEC UCSTRING(%STRING(255)S)
%EXTERNALROUTINESPEC MOVE%ALIAS "S#MOVE"(%INTEGER LENGTH,FROM,TO)
%EXTERNALROUTINESPEC PROMPT(%STRING(15) S)
%EXTERNALSTRINGFNSPEC INTERRUPT
%EXTERNALROUTINESPEC TOJOURNAL %ALIAS "S#TOJOURNAL"(%INTEGER FROM,LEN)
%EXTERNALROUTINESPEC FINFO %ALIAS "S#FINFO"(%STRING(255) FILE, %INTEGER MODE,

==== ercc07/emas-2900/ibm_sys4impps.txt ====
25
D(NAME)
D(ICONST)
D(CONST)
D(CONSTLIST)
D(N)
D(S)
D(TEXT)
D(TEXTTEXT)
D(NAMELIST)
D(HOLE)
D(MARK)
D(UCRR)
D(UCRX)
D(UCRS)
D(UCSI)
D(UCSHIFT)
D(UCSS)
D(UCPD)
D(UCSPEC)
D(UCINM)

==== ercc07/emas-2900/sup27isrce_oper35s.txt ====
!*
!* OPER35 - 7th December 1981 *
!*
%CONSTINTEGER SDIAGS=NO;                ! YES for cyclic CC trace
%IF (MONLEVEL >> 1) & 1 = YES %START
      %EXTRINSICLONGINTEGER KMON
      %OWNINTEGER OPMON; ! COPY OF KMON BIT
      %CONSTINTEGER KMONNING = YES
%FINISH %ELSE %START
      %CONSTINTEGER KMONNING = NO
%FINISH
!
%IF MONLEVEL & 1 = YES %START
      %CONSTINTEGER VIDEO UPDATING = YES
      %OWNINTEGER OPER FACILITIES
%FINISH %ELSE %START
      %CONSTINTEGER VIDEO UPDATING = NO
%FINISH
!
!
!

==== ercc07/emas-2900/sup26fsrce_comms46s.txt ====

!                 VERSION OF 13/06/80
!        DEC 79: INCLUDE AN OPER ADAPTOR
!                HAVE ONLY ONE SERVICE NUMBER, X'37'
!        OTHER POSSIBLE CHANGES
!           MAKE INITIALISATION CALL OF CC INITIALISE ADAPTORS AS WELL
!           MAKE IT POSSIBLE TO DEALLOCATE/ALLOCATE ALL DEVICES
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20A ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DDTADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,WASKLOKCORRECT,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,DQADDR,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0, %C
         %INTEGER ITINT,CONTYPEA,GPCCONFA,FPCCONFA,SFCCONFA, %C
         BLKADDR,DPTADDR,SMACS,TRANS,%LONGINTEGER KMON,  %C
         %INTEGER DITADDR,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,STOREAAD,PROCAAD,SFCCTAD,DRUMTAD,TSLICE,SP0,SP1, %C
         SP2,SP3,SP4,SP5,SP6,SP7,SP8, %C
         LSTL,LSTB,PSTL,PSTB,HKEYS,HOOT,SIM,CLKX,CLKY,CLKZ,  %C

==== ercc07/emas-2900/perq_link.txt ====
LINK
PERQYY
PERQCSUPY
PASSONEY
.END
PY
MODIFY PY
SATISFY REFS
.ALL
SATISFY DATA
.ALL
RENAME
ICL9CEZPERQIMP,S#PERQIMP
.END
SUPPRESS
.ALL
RETAIN
S#PERQIMP
SUPPRESS DATA
.ALL
CLOSE

==== ercc07/emas-2900/sqrt.txt ====
%SYSTEMREALFN SQRT(%REAL ARG)
%INTEGER I,J
%REAL Y,OLD
%REALARRAY A(0:15)
!      %IF ARG<0.0 %THEN MLIBERR(50) %AND ARG=-ARG
      %IF ARG<0.0 %THEN PRINTSTRING("SQRT ARG NEG
") %AND %RESULT=-1
      %IF ARG=0 %THEN %RESULT=0.0
      %CYCLE I=0,1,15
         Y=ARG/2**I
         %IF Y<1 %THEN ->OUT
      %REPEAT
OUT:  %IF Y>1 %THEN I=17 %AND Y=Y/4 %ELSE I=I+1 %AND Y=Y/2
      %IF Y>0.34375 %THEN A(0)=Y/2 +0.4368 %ELSE A(0)=Y/2+0.381
      %CYCLE J=0,1,14
         OLD=A(J)
         A(J+1)=(OLD+Y/OLD)/2
         %IF MOD(A(J+1)-OLD)<0.000000000000005 %THEN %EXIT
      %REPEAT
      %RESULT=A(J+1)*2**(I/2)
%END

==== ercc07/emas-2900/wichtests_otest.txt ====
PARM OPT,FREE,QUOTES
ALGOL WICHTESTS_WT1,Y,.OUT
ALGOL WICHTESTS_WT2,Y,.OUT
RUN Y
ALGOL WICHTESTS_WT3,Y,.OUT
ALGOL WICHTESTS_WT4,Y,.OUT
ALGOL WICHTESTS_WT5,Y,.OUT
ALGOL WICHTESTS_WT6,Y,.OUT
ALGOL WICHTESTS_WT7,Y,.OUT
RUN Y
ALGOL WICHTESTS_WT8,Y,.OUT
ALGOL WICHTESTS_WT9,Y,.OUT
RUN Y
ALGOL WICHTESTS_WT10,Y,.OUT
RUN Y
ALGOL WICHTESTS_WT11,Y,.OUT
ALGOL WICHTESTS_WT12,Y,.OUT
ALGOL WICHTESTS_WT13,Y,.OUT
ALGOL WICHTESTS_WT14,Y,.OUT
ALGOL WICHTESTS_WT15,Y,.OUT
ALGOL WICHTESTS_WT16,Y,.OUT

==== ercc07/emas-2900/sup26gsrce_enter07s.txt ====

%EXTRINSICINTEGER INPTR
%EXTRINSICINTEGER OUTPTR
%CONSTINTEGER MASK=X'80FC3FFF'
%EXTERNALINTEGERFNSPEC HANDKEYS
%EXTERNALROUTINESPEC HOOT(%INTEGER NUM)
%EXTERNALROUTINESPEC GET PSTB(%INTEGERNAME P0, P1)
%EXTERNALROUTINESPEC SUP29
%EXTERNALROUTINESPEC SUPPOFF(%RECORDNAME SERV,P)
%EXTERNALROUTINESPEC DISC(%RECORDNAME P)
%EXTERNALROUTINESPEC PDISC(%RECORDNAME P)
%EXTERNALROUTINESPEC GPC(%RECORDNAME P)
%EXTERNALROUTINESPEC SLAVESONOFF(%INTEGER J)
%EXTERNALROUTINESPEC PKMONREC(%STRING(20)TEXT,%RECORDNAME P)
%SYSTEMROUTINESPEC MOVE(%INTEGER L, FROMAD, TOAD)
%RECORDFORMAT PARMF(%INTEGER DEST, SRCE, P1, P2, P3, P4, P5,  %C
         P6)
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20L ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DLVNADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,TOJDAY,DATE0,DATE1,DATE2,  %C

==== ercc07/emas-2900/perq_csups.txt ====
%INCLUDE "ERCC07.PERQ_OPCODES"
%EXTRINSICBYTEINTEGERARRAY CODE(0:268)
%EXTRINSICBYTEINTEGERARRAY GLABUF(0:268)
%EXTRINSICINTEGER CA,CABUF,GLACA,GLACABUF
%EXTRINSICINTEGER PPCURR
%INCLUDE "ERCC07.PERQ_FORMATS"
%EXTRINSICRECORD(WORKAF)WORKA
%EXTRINSICRECORD(PARMF) PARM
%DYNAMICROUTINESPEC QCODE(%INTEGER A,B,C,MODE)
%DYNAMICROUTINESPEC QPUT(%INTEGER A,B,C,D)
%ROUTINESPEC FAULT(%INTEGER I,J,K)
!
!***********************************************************************
!*       IMP CODE PLANTING ROUTINES                                    *
!*       CODE AND GLAP ARE PUT INTO THE BUFFERS 'CODE,GLABUF(0:268)'   *
!*       BY A NUMBER OF TRIVIAL ROUTINES.QPUT IS CALLED TO ADD THE     *
!*       BUFFER TO THE OUTPUT FILE. THE BUFFERS ARE BASICALLY 0:255    *
!*       WITH A 12-BYTE MARGIN TO MINIMISE THE NUMBER OF TESTS FOR     *
!*       THE BUFFER FULL CONDITION                                     *
!*                                                                     *
!*       PPCURR(GLACURR) IS THE BUFFER POINTER                         *

==== ercc07/emas-2900/perq_jumps.txt ====

%INTEGERFN ENTER LAB(%INTEGER LAB,FLAGS)
!***********************************************************************
!*       ENTER A NEW LABEL ON THE LABEL LIST FOR THE CURRENT LEVEL     *
!*       2**0  OF FLAGS  = 1  CONDITIONAL ENTRY                        *
!*       2**1  OF FLAGS  = 1  UPDATE ENVIRONMENT                       *
!*       2**2  OF FLAGS  = 1  REPLACE ENV     =0  MERGE ENV            *
!*       THE LABEL LIST                                                *
!*       S1 =   USE BITS<<8 ! LABEL ADDR                               *
!*       S2 =   UNFILLED JUMPS LIST                                    *
!*       S3 = LAB NO - RESET TO FFFF WHEN USED FOR INTERNAL LABELS     *
!*       RESULT = 1 LABEL ENTERED                                      *
!*       RESULT = 0 CONDITIONAL LABEL NOT REQUIRED                     *
!***********************************************************************
%INTEGER CELL,AT,JUMPHEAD,DIS,BBASE,OLDCELL,WORK
%RECORD(LISTF)%NAME LCELL
%INTEGERNAME LHEAD
      CELL=LABEL(LEVEL); OLDCELL=0
      %WHILE CELL>0 %CYCLE
         LCELL==ASLIST(CELL)
         %EXIT %IF LCELL_S3=LAB

==== ercc07/emas-2900/sup28asrce_comms53s.txt ====

!  R.D.EAGER        CONTAINS CODE FOR OUTPUT ACCOUNTS IN COMM CONTROL,
!                   LP ADAPTOR AND CP ADAPTOR
!                 VERSION OF 13/06/80
!        DEC 79: INCLUDE AN OPER ADAPTOR
!                HAVE ONLY ONE SERVICE NUMBER, X'37'
!        OTHER POSSIBLE CHANGES
!           MAKE INITIALISATION CALL OF CC INITIALISE ADAPTORS AS WELL
!           MAKE IT POSSIBLE TO DEALLOCATE/ALLOCATE ALL DEVICES
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20A ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DDTADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,WASKLOKCORRECT,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,DQADDR,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0, %C
         %INTEGER ITINT,CONTYPEA,GPCCONFA,FPCCONFA,SFCCONFA, %C
         BLKADDR,DPTADDR,SMACS,TRANS,%LONGINTEGER KMON,  %C
         %INTEGER DITADDR,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,STOREAAD,PROCAAD,SFCCTAD,DRUMTAD,TSLICE,SP0,SP1, %C

==== ercc07/emas-2900/perq_newp2.txt ====
PARM NOCHECK,NOLIST
IMP80 PERQ_IMP01S,PERQY,,.OUT
OBEY PERQ_LINK

==== ercc07/emas-2900/impalgs_alermess.txt ====
2   'LABEL'   'INVALID OR'  'SET'   'TWICE';
4   'SWITCH'   'NAME'   'NOT'   'SET';
5      'LABEL'   'NAME'   'IN'   'EXPRSSN';
7   'NAME'   'SET'   'TWICE';
8   'INVALID'   'NAME' 'IN'   'VALUE LIST';
9   'INVALID'   'PARAMETER' 'SPECIFICATION' ;
10   'PARAMETER' 'INCORRECTLY'   'SPECIFIED';
11  'LABEL'   'NOT'   'SET';
12    'LABEL'    'NOT'   'ACCESSIBLE';
14     'TOO'   'MANY'   'ENDS';
15  'MISSING'   'ENDS';
16   'NAME'   'NOT'   'SET';
17  'NOT'  'PROCEDURE'  'NAME';
18     'WRONG'  'NO'   'OF'   'SUBSCRIPTS';
19  'WRONG'  'NO'  'OF'  'PARAMETERS';
20    'PARAMETRIC'   'ARRAY'   'WRONG'   'DIMENSION';
21    'PARAMETRIC'   'PROCEDURE'  'NOT'   'VALID';
22  'ACTUAL'  'PARAMETER'  'NOT' 'PERMITTED';
23  'PROCEDURE' 'NAME'  'IN'  'EXPRSSN';
24  'VARIABLE'  'IN'  'BOOLEAN'  'EXPRSSN';
25    'FOR'  'VARIABLE'  'INCORRECT'

==== ercc07/emas-2900/ibmsup_page0.txt ====

!
! The first 512 bytes of page 0 are hardware defined. (See Princs of Op)
! EMAS defines some addition locations for convenience
!
!     X200 (512)                        Soft crash psw Set by G-C.
!     X208 (520)                        System Program error psw.
!                                       Set by G-C as the New PE psw and
!                                       copied to here by L-C when its sets
!                                       the User PE psw to 104.
!     X210 (528)                        The local cpu timer PSW. Set
!                                       by L-C and used by G-C when clock interrupt
!                                       is due to cpu timer exceeded.
!     X218 (536)                        Local controller initial activate
!                                       PSW. Set by G-C
!     X220 (544)                        Local Contoller exit PSW. Set by G-C
!                                       for fast return.
!     X228 (552)                        (Copy of) Restart PSW set ny ENTER
!     X230 (560)                        Top of store marker for dump program
!     X238-X27f (568-639)               unused
!     X280-X2bf (640-703)               G-C context(16 regs) actaully only

==== ercc07/emas-2900/ctopt72.txt ====

!
! This file contains the const integers to control compile time options
! in EMAS2900
! it is intended to be concatenated onto the front of sourcefiles
! before compilation
%CONSTINTEGER YES=1
%CONSTINTEGER NO=0
%CONSTINTEGER SSERIES=NO;               ! NO = "P" series, YES = "S" series
%CONSTINTEGER MULTIOCP=YES;             ! YES to include semaphoring
%CONSTINTEGER RECONFIGURE=YES;          ! allow OCP/SAC/SMAC reconfiguration
%CONSTINTEGER SFCFITTED=NO;             ! NO for disc only sites
%CONSTINTEGER CPFITTED=NO;              ! card punch fitted
%CONSTINTEGER CSU FITTED=YES;           ! switch unit
%CONSTINTEGER DAP FITTED=YES;           ! array processor available
%CONSTINTEGER SNOOZING=YES;             ! YES allows suspend in store
                                        ! advantageous with large stores
%CONSTINTEGER PRODUCTION=NO;            ! YES for continuing after
                                        ! software errors(most of which
                                        ! are due to hardware!)
%CONSTINTEGER MONLEVEL=7;               ! 0= no monitoring

==== ercc07/emas-2900/sup28asrce_sup28as.txt ====

!
! To make S series supervisor requires:-
!     1) Change SSERIES=NO to SSERIES=YES in ctoptions file
!
!
! THESE CONST INTEGERS DEFINE SIZES AND LAYOUT OF IMPORTANT TABLES
! THEY HAVE TO BE HERE TO BE GLOBAL TO ALL ROUTINES INCLUDING IO ONES
!
%CONSTINTEGER LSTLEN=192;               ! LOCAL SEGMENT TABLE LENGTH
%CONSTINTEGER CBTLEN=299;               ! LENGTH OF CBT TABLE
%CONSTLONGINTEGER LCACR=1;              ! ACR OF LOCAL CONTROLLER
%CONSTINTEGER DIRCSEG=10;               ! SEG NO OF DIRECTOR COMMS SEG
%CONSTINTEGER DIRCSEGOFFSET=0;          ! FOR ALIGNMENT IF NEEDED
%CONSTINTEGER DIRCSEGAD=DIRCSEG<<18;    ! VIRTUAL ADDRESS OF DIR COM SEG
%CONSTINTEGER DIRCSEGL=8*CBTLEN+255+2*LSTLEN; ! SIZE OF SAME
                                        ! MADE UP OF 2049 FOR CBT
                                        ! 2*LSTLEN FOR SST
                                        ! 48+64 FOR 2 BITS OF SYTEMCALL TABLE
                                        ! 32+48 FOR DIROUTP&SIGOUT
%CONSTINTEGER LSTACKLEN=3;              ! LOCAL CONT. STACK ELEN

==== ercc07/emas-2900/tform1s.txt ====
!
! RECORDFORMAT FOR ALL THE OPTION AND FLAG VARAIBLES
!
%RECORDFORMAT PARMF(%INTEGER BITS1,BITS2,TTOPUT,
      %BYTEINTEGER LET,DYNAMIC,LINE,TRACE,ARR,DBUG,CHK,DIAG,OPT,FREE,
      LIST,CPRMODE,COMPILER,SMAP,Y,PROF,INHCODE,DCOMP,FAULTY,X)
%RECORDFORMAT LISTF((%HALFINTEGER PTYPE,(%HALF UIOJ %OR %BYTE XB,FLAG),
      %HALF SNDISP,ACC,SLINK,KFORM %OR  %INTEGER S1,S2,S3),%INTEGER LINK)
%RECORDFORMAT LEVELF(%INTEGER RBASE, DIAGINF, RAL, FLAG, L, M, NMDECS, ONWORD, ONINF,
         LABEL, JROUND, UNATT FORMATS, PSIZE, ENTRYAD, 
         NAMES,%HALFINTEGER SNMAX,SN,RESSIZE,SPARE,%INTEGERARRAY AVL WSP(0:4))
%RECORDFORMAT WORKAF(%INTEGER NNAMES,CCSIZE,DSIZE,ASL MAX,ASL CUR BTM,
      CONST PTR,CONST BTM,SP0,WKFILEAD,WKFILEK,FILE ADDR,RELEASE,
      AASL0,CONST LIMIT,RTCOUNT,ARTOP,AMAINEP,DICTBASE,SP2,
      %INTEGERNAME LINE,%STRING(9)LADATE,
      %BYTEINTEGERARRAYNAME CC,A,LETT,
      %INTEGERARRAYNAME WORD,TAGS,CTABLE,
      %RECORD(LEVELF)%ARRAYNAME LEVELINF,
      %INTEGERARRAY PLABS,PLINK(0:31))
%RECORDFORMAT RTDICTF(%HALFINTEGER PS,RPS,LTS,ENTRY,EXIT,
         LL,W7,W8,DIAGS,W10,%INTEGER W1112)

==== ercc07/emas-2900/imp80tests_blurb.txt ====

IMP80TESTS is a file of test programs with an obeyfile "TESTCOMP"
to execute them. Subfiles "CT??" are compile time tests whereas
subfile "RT??" should compile and execute with checks and opt.

Exact functions of each test are:-
CT0   : Tests simple conditional compilation
CT1   :Tests more complex conditional compilation
CT2   :Tests faulting of undeclared string
CT3   :Tests faulting of excessive constant bounds in array
CT4   :Tests further faults in string declarations and FNs
CT5   :Tests faulting of misplaced %ON statement
CT6   :Tests faulting of invalid %OWNRECORD initialising
CT7   :Tests error messages after invalid use of map RECORD
CT8   :Has four unusual type inconsistencies
CT9   :Has 4 errors in external&entrinsic declarations
CT10  : Checks that danging %elses are faulted.
CT11: CHECKS ON RECORDFORMATSPECS.
CT12: Checks that foreign assemblers are ignored when conditionally compiled
CT13: Check a great variety of pathological continuations. Should compile.
RT0   :Checks %OWN initialising with const NL. Should print 10 twice.

==== ercc07/emas-2900/ibmsup_pts.txt ====
%routine PAGETURN(%record (PARMF) %name P)
!***********************************************************************
!*    FOR ALL ACTS   : P_P1=AMTX<<16!EPX                               *
!*     ACTIVITY 1 : "PAGE IN" REQUEST FROM LOCAL CONTROLLER            *
!*                :    P_P2=RETURNABLE IDENTIFIER                      *
!*                :    P_P3 THE KEY REQUIRED (NOT SET FOR SHRD PAGES)  *
!*     ACTIVITY 2 : "PAGE OUT" REQUEST FROM LOCAL CONTROLLER           *
!*                :    P_P2=FLAGS (BEING THE BOTTOM 4 BITS OF STOREFLAG*
!*     ACTIVITY 3 : REPLY FROM "EPAGE" WITH EPAGE P_P2=STOREX          *
!*     ACTIVITY 4 : ZERO "NEW" DISC EPAGE                              *
!*     ACTIVITY 5 : REPLY FROM DISC/WRITE                              *
!*     ACTIVITY 6 : (WAS REPLY) FROM DRUM/READ ON FAILURE ONLY         *
!*     ACTIVITY 7 : (WAS REPLY FROM DRUM/WRITE)                        *
!*     ACTIVITY 8 : REPLY FROM ZERO DISC EPAGE                         *
!*                                                                     *
!*     STORE FLAGS SIGNIFY AS FOLLOWS :                                *
!*     BIT 15: PAGE HAS HAD A SINGLE BIT ERROR                         *
!*     BIT 7 : DISC TRANSFER IN PROGRESS(1)/NOT IN PROGRESS(0)         *
!*     BIT 6 : DISC INPUT(0)/OUTPUT(1)                                 *
!*     BIT 5 : NOT USED                                                *
!*     BIT 4 : NOT USED                                                *

==== ercc07/emas-2900/dpinit.txt ====

[6{

==== ercc07/emas-2900/sup26esrce_tape67s.txt ====

!
! THIS FILE CONTAINS THE CONST INTEGERS TO CONTROL COMPILE TIME OPTIONS
! IN EMAS2900
! IT IS INTENDED TO BE CONCATENATED ONTO THE FRONT OF SOURCEFILES
! BEFORE COMPILATION
%CONSTINTEGER YES=1
%CONSTINTEGER NO=0
%CONSTINTEGER SSERIES=NO;               ! NO=PSERIES, YES=SSERIES
%CONSTINTEGER MULTIOCP=NO;             ! YES TO INCLUDE SEMAPHORING
%CONSTINTEGER SFCFITTED=YES;            ! NO FOR DISC ONLY SITES
%CONSTINTEGER CPFITTED=YES;             ! CARD PUNCH FITTED
%CONSTINTEGER SNOOZING=NO;              ! YES ALLOWS SUSPEND IN STORE
                                        ! ADVANTAGEOUS WITH LARGE STORES
%CONSTINTEGER MONLEVEL=7;               ! 0=NO MONITORING
                                        ! 2**0 SET=VIDEO UPDATING
                                        ! 2**1 SET=KMONNING
                                        ! 2**2 SET=SUP TIMING MEASUREMENTS
                                        ! 2**3 SET=CAT TABLE TRANSITIONS
                                        ! 2**4 SET= STROBING
                                        ! 2**8 SET=EVENT HARVESTING

==== ercc07/emas-2900/sup25jsrce_comms38s.txt ====

!*
!*
!*
!*  TO MAKE A P SERIES COMMS CONTROLLER.
!*     1) ENABLE ALL LINES COMMENTED !*P.
!*     2) LEAVE ALL REFERENCES TO GPC.
!*
!*
!*
!*
!*  TO MAKE AN S SERIES COMMS CONTROLLER.
!*     1) ENABLE ALL LINES COMMENTED !*S.
!*     2) CHANGE ALL OCCURENCES OF GPC TO DCU.
!*
!*
!*
!*  TO COMPILE IN THE STATEMENTS STARTING WITH "?" COMPILE THE FILE
!*  PRODUCED WITH THE PARM OPTION "PARMX".
!*
!*

==== ercc07/emas-2900/sup26hsrce_fast32s.txt ====
%EXTERNALSTRING (15) %FNSPEC STRINT(%INTEGER N)
%EXTERNALSTRING (8) %FNSPEC STRHEX(%INTEGER N)
%EXTERNALSTRING(8) %FNSPEC HTOS(%INTEGER VALUE,PLACES)
%EXTERNALROUTINESPEC PKMONREC(%STRING(20)TEXT,%RECORDNAME P)
%EXTERNALROUTINESPEC OPMESS(%STRING (63) S)
%ROUTINESPEC MONITOR(%STRING (63) S)
%EXTERNALROUTINESPEC DUMP TABLE(%INTEGER T, A, L)
%ROUTINESPEC ELAPSED INT(%RECORDNAME P)
%SYSTEMROUTINESPEC MOVE(%INTEGER L,F,T)
%SYSTEMROUTINESPEC ETOI(%INTEGER A, L)
%ROUTINESPEC PDISC(%RECORDNAME P)
%EXTERNALROUTINESPEC HOOT(%INTEGER NHOOTS)
%EXTERNALROUTINESPEC WAIT(%INTEGER MSECS)
%EXTERNALINTEGERFNSPEC HANDKEYS
%EXTERNALINTEGERFNSPEC REALISE(%INTEGER PUBVIRTADDR)
%EXTERNALROUTINESPEC SLAVESONOFF(%INTEGER ONOFF)
%IF MULTIOCP=YES %THEN %START
      %EXTERNALROUTINESPEC RESERVE LOG
      %EXTERNALROUTINESPEC RELEASE LOG
%FINISH
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20J ONWARDS *

==== ercc07/emas-2900/algolbm_alg2.txt ====
//JOB(ERCC07,STEPHENS,T=200,L=10000)
//OPTIONS(QUOTES,OPT)
//ALGOL
'COMMENT'
                         ***************
                         *             *
                         *   ALGG002   *
                         *             *
                         ***************
;
'BEGIN' 'INTEGER' I,J,K,NEQS,NVBS;
      'REAL' SUM;
      'COMMENT' INPUT/OUTPUT PROCEDURES;

      'COMMENT' END OF INPUT/OUTPUT PROCEDURES;

'PROCEDURE' INVERT(N,A,B);
      'VALUE' N;
      'INTEGER' N;
      'ARRAY' A,B;
      'BEGIN' 'COMMENT' INVERTS MATRIX A, N BY N, AND PUTS

==== ercc07/emas-2900/pete2.txt ====
%external %string %fn %spec fromstr(%string (255) s, %integer i, j)
%external %routine loadtest
%integer j
%string (25) test
%string (127) s, a, b, bb
         %if s->a.(fromstr(test, 1, j)).b %and a="" %start
        %finish
%end
%endoffile

==== ercc07/emas-2900/algolbm_alg3.txt ====
//JOB(ERCC07,STEPHENS,T=200,L=10000)
//OPTIONS(QUOTES,OPT)
//ALGOL
'COMMENT'
                         ***************
                         *             *
                         *   ALGG003   *
                         *             *
                         ***************
;
         'BEGIN'
         'INTEGER'  DV1,DIN,DV2,MT1,I,J,NAT;
         'REAL'  PI,ANGLE,A;
      'ARRAY' CELL[1:6],NN,MM[1:3,1:3],TITLE[1:200],
         INDEX[1:20];
         'BOOLEAN'  'ARRAY'  KEY[1:20];

      'COMMENT' INPUT/OUTPUT PROCEDURES;

'REAL''PROCEDURE' READ;
'EXTERNAL'READ1900;

==== ercc07/emas-2900/sup26hsrce_documentn.txt ====



This partitioned file contains all the source required to make up a
version 26H Supervisor, plus the version of the IMP compiler and FIX
utility used at Edinburgh to do so.  This compiler is necessary as some
advanced language features are required which are not available in the
service compiler.

Note that the OPTION NOBRACKETS must be in force in the process being
used for the method described to work.

Two "OBEY" subfiles are available: MAKECHKD and MAKEOPT.  They each
construct a test Supervisor which is left in file SUP26xT,  where x is
'C' or 'O' respectively.


Making a Supervisor thus consists of the following:

a) INSERT the IMP compiler and FIX utility into the current directory
   (and then log off and log on again if IMP was previously used in

==== ercc07/emas-2900/algolbm_alg5.txt ====
//JOB(ERCC07,STEPHENS,T=200,L=10000)
//OPTIONS(QUOTES,OPT)
//ALGOL
'COMMENT'
                         ***************
                         *             *
                         *   ALGG005   *
                         *             *
                         ***************
;
      'BEGIN' 'COMMENT' PROGRAM FOR MASS AND ABUNDANCE
            DATA OF POLYISOTOPIC IONS;

      'COMMENT' INPUT/OUTPUT PROCEDURES;

'PROCEDURE' CRDTXT;
   'BEGIN' 'INTEGER' I,J;
TRY AGAIN:
      INSYMBOL(98,'('*')',I);
      'IF' I=1 'THEN'
      'BEGIN'

==== ercc07/emas-2900/sup28asrce_documentn.txt ====



This partitioned file contains all the source required to make up
an EMAS2900 Supervisor, plus the version of the IMP80 compiler and FIX
utility used at Edinburgh to do so.  This compiler is necessary as some
advanced language features are required which are not available in the
service compiler.

Note that the OPTION NOBRACKETS must be in force in the process being
used for the method described to work.

Two "OBEY" subfiles are available: MAKECHKD and MAKEOPT.  They each
construct a test Supervisor which is left in file SUP28xT,  where x is
'C' or 'O' respectively.


Making a Supervisor thus consists of the following:

a) INSERT the IMP80 compiler and FIX utility into the current directory
   (and then log off and log on again if IMP80 was previously used in

==== ercc07/emas-2900/sup26esrce_fast28s.txt ====

%EXTERNALSTRING (15) %FNSPEC STRINT(%INTEGER N)
%EXTERNALSTRING (8) %FNSPEC STRHEX(%INTEGER N)
%EXTERNALSTRING(8) %FNSPEC HTOS(%INTEGER VALUE,PLACES)
%EXTERNALROUTINESPEC PKMONREC(%STRING(20)TEXT,%RECORDNAME P)
%EXTERNALROUTINESPEC OPMESS(%STRING (63) S)
%EXTERNALROUTINESPEC MONITOR(%STRING (63) S)
%EXTERNALROUTINESPEC DUMP TABLE(%INTEGER T, A, L)
%ROUTINESPEC ELAPSED INT(%RECORDNAME P)
%SYSTEMROUTINESPEC MOVE(%INTEGER L,F,T)
%SYSTEMROUTINESPEC ETOI(%INTEGER A, L)
%ROUTINESPEC PDISC(%RECORDNAME P)
%EXTERNALROUTINESPEC HOOT(%INTEGER NHOOTS)
%EXTERNALROUTINESPEC WAIT(%INTEGER MSECS)
%EXTERNALINTEGERFNSPEC HANDKEYS
%EXTERNALINTEGERFNSPEC REALISE(%INTEGER PUBVIRTADDR)
%EXTERNALROUTINESPEC SLAVESONOFF(%INTEGER ONOFF)
%IF MULTIOCP=YES %THEN %START
      %EXTERNALROUTINESPEC RESERVE LOG
      %EXTERNALROUTINESPEC RELEASE LOG
%FINISH

==== ercc07/emas-2900/cbit.txt ====
%recordformat cattabf(%byteinteger priority,eplim,rtlim,morep,moret, %c
      lessp,sp0,susp,rqts1,rqts2,strobei,sp2)
%constinteger maxcat=27
%ownbyteintegerarray catdata(0:12*maxcat+11)= %c
{     PR,EP,RT,  OP,OT,LK, C,SUSP,  Q1,Q2   STR,#              }
{START}
      1, 0, 0,    0, 0, 0,'F', 0,    1,1,     0,0,   { DUMMY}
      1,90, 8,    8, 7, 0,'E', 6,    1,1,     0,1,   {START EXEC}
      1,90, 8,   18,17, 0,'F',15,    1,1,     0,2,   {START INTERACTIVE}
      1,90, 8,   26,25, 0,'B',24,    1,1,     0,3,   {START BACKGROUND}

{EXECS}
      1,50, 4,    6, 5, 0,'E', 4,    1,1,     0,4,
      2,50,48,    7, 5, 0,'E', 4,    1,2,     8,5,
      1,100, 4,   8, 7, 4,'E', 6,    1,1,     0,6,
      2,100,48,   9, 7, 5,'E', 6,    1,2,     8,7,
      2,150,4,    8, 9, 6,'E', 8,    1,1,     0,8,
      2,150,48,   9, 9, 7,'E', 8,    1,2,     8,9,

{FGRND}
      1,32, 4,   12,11, 0,'F',10,    1,1,     0,10,

==== ercc07/emas-2900/nrsrce_enter04s.txt ====

%EXTRINSICINTEGER INPTR
%EXTRINSICINTEGER OUTPTR
%CONSTINTEGER MASK=X'80FC3FFF'
%EXTERNALINTEGERFNSPEC HANDKEYS
%EXTERNALROUTINESPEC HOOT(%INTEGER NUM)
%EXTERNALROUTINESPEC GET PSTB(%INTEGERNAME P0, P1)
%EXTERNALROUTINESPEC SUP29
%EXTERNALROUTINESPEC GPC(%RECORDNAME P)
%EXTERNALROUTINESPEC SLAVESONOFF(%INTEGER J)
%EXTERNALROUTINESPEC PTREC(%RECORDNAME P)
%SYSTEMROUTINESPEC MOVE(%INTEGER L, FROMAD, TOAD)
%RECORDFORMAT PARMF(%INTEGER DEST, SRCE, P1, P2, P3, P4, P5,  %C
         P6)
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20A ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DDTADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,WASKLOKCORRECT,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,DQADDR,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0, %C

==== ercc07/emas-2900/oldlcs.txt ====
      %list
%routine LOCAL CONTROL
                                        ! CLAIMED BLOCK TABLES
%record (CBTF) %name CBT
                                        ! CONSOLE IO & ACCOUNTS RECORDS
%integername SEMAHELD;                  ! DIRECTOR HOLDING SEMA WORD
                                        ! ACTIVE SEGMENT TABLES
%constinteger MAXAS=31
%integerarray AS(0:7,0:MAXAS)
%byteintegerarray ASEG(0:MAXAS)
%integerarray ASPTVAD(0:MAXAS)
%integerarray OLDASWIPS(0:MAXRESIDENCES)
%constinteger TOPBIT=X'80000000'
!-----------------------------------------------------------------------
                                        ! LOCAL SEGMENT INFORMATION
%byteintegerarray TST(0:LSTLEN-1);      ! TERTIARY SEGMENT TABLE POINT TO AS
%constinteger SMALL SEQUENTIAL=8;       !USED TO DECIDE TO RECAP OR NOT
%integerfnspec DXR(%longlongrealname T, %longlongreal B)
%integerfnspec CHECK RES(%integer WRITE,LEN,AD)
%integerfnspec CHECKDA(%integer DA)
%routinespec PAGEOUT(%integer VSSEG,VSEPAGE, %record (CBTF) %name CBT)

==== ercc07/emas-2900/sup28dsrce_com36s.txt ====
!
!* Communications record format - extant from CHOPSUPE 22A onwards *
!*
%RECORDFORMAT COMF(%INTEGER OCPTYPE,SLIPL,SBLKS,SEPGS,NDISCS,DLVNADDR, %C
         (%INTEGER GPCTABSIZE,GPCA %OR %INTEGER DCUTABSIZE,DCUA), %C
         %INTEGER SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,TOJDAY,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,SERVAAD,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0,%INTEGER ITINT,CONTYPEA, %C
         (%INTEGER GPCCONFA %OR %INTEGER DCUCONFA), %C
         %INTEGER FPCCONFA,SFCCONFA,BLKADDR,RATION, %C
         (%INTEGER SMACS %OR %INTEGER SCUS), %C
         %INTEGER TRANS,%LONGINTEGER KMON,  %C
         %INTEGER DITADDR,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,STOREAAD,PROCAAD,SFCCTAD,DRUMTAD,TSLICE,FEPS,  %C
         MAXCBT,PERFORMAD,SP1,SP2,SP3,SP4,SP5,SP6, %C
         LSTL,LSTB,PSTL,PSTB,HKEYS,HOOT,SIM,CLKX,CLKY,CLKZ,  %C
         HBIT,SLAVEOFF,INHSSR,SDR1,SDR2,SDR3,  %C
         SDR4,SESR,HOFFBIT,BLOCKZBIT,BLKSHIFT,BLKSIZE,END)

==== ercc07/emas-2900/enter13s.txt ====
%RECORDFORMAT PARMF(%INTEGER DEST, SRCE, P1, P2, P3, P4, P5, P6)
%RECORDFORMAT SERVAF(%INTEGER P, C)
%EXTRINSICINTEGER INPTR
%EXTRINSICINTEGER OUTPTR
%CONSTINTEGER MASK=X'80FC3FFF'
%EXTERNALINTEGERFNSPEC HANDKEYS
%EXTERNALROUTINESPEC HOOT(%INTEGER NUM)
%EXTERNALINTEGERFNSPEC GPC INIT(%INTEGER CA,PT,MODE)
%EXTERNALINTEGERFNSPEC SAFE IS READ(%INTEGER ISAD,%INTEGERNAME VAL)
%EXTERNALROUTINESPEC GET PSTB(%INTEGERNAME P0, P1)
%EXTERNALROUTINESPEC SUP29
%EXTERNALROUTINESPEC SUPPOFF(%RECORD(SERVAF)%NAME SERV, %C
      %RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC DISC(%RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC PDISC(%RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC GPC(%RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC SLAVESONOFF(%INTEGER J)
%EXTERNALROUTINESPEC PKMONREC(%STRING(20)TEXT,%RECORD(PARMF)%NAME P)
!* Communications record format - extant from CHOPSUPE 21D onwards *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,SLIPL,SBLKS,SEPGS,NDISCS,DLVNADDR, %C
         (%INTEGER GPCTABSIZE,GPCA %OR %INTEGER DCUTABSIZE,DCUA), %C

==== ercc07/emas-2900/perq_newp2l.txt ====
PARM NOCHECK
IMP80 PERQ_IMP01S,PERQY,.LP,.OUT
OBEY PERQ_LINK
PARM
PERQIMP ERCS06.QINDIAG,.NULL,.LP

==== ercc07/emas-2900/sup28dsrce_releasen.txt ====


         Supervisor 28D Release Notice

      This Supervisor has the following changes
  
     1) Correction to clear code to stop files being reconnected
        before all the clears have been completed and to prevent
        clears overwriting valid data.
  
     2) Incorporation of conditional "DAP" code


==== ercc07/emas-2900/ibmconvert_sgenobj.txt ====
%RECORDFORMAT ESD DICTF( %C
 %RECORD(ESD DICTF)%NAME  NEXT,        {POINTS TO NEXT DICT. ENTRY}
 %STRING(31)%NAME NAME,                 {POINTS TO FULL NAME IN INPUT FILE}
 %STRING(8) IBMNAME,                    {HOLDS IBM NAME}
 %INTEGER   OFFSET,                     {WITHIN COALESCED AREA OR AREA 6}
            ESDOFFSET,                  {WITHIN GENERATED SD}
            LNTH,                       {LENGTH OF ASSOC. OBJECT}
            TXT,                        {ADDRESS OF FIRST TXT RECORD OF SD}
            ESDID,                      {GIVES ID OF CSECT FOR LD}
                                        {OR ESD ID FOR SD OR ER OR CM}
                                        {FOR PROC ER }
                                        {+0 IS ENTRY PT}
                                        {+1 IS HEAD CODE}
                                        {+2 IS HEAD GLA}
 %BYTE      ESDTYPE,                    {ESD ENTRY TYPE}
            OWNTYPE,                    {OWN TYPE PROC/DATA/COMMON}
            MAIN)                       {#0 => MAIN ENTRY PT}
%CONSTBYTEINTEGER SD=0,LD=1,ER=2,CM=5;
%CONSTBYTEINTEGER PROC=0,DATA=1,COMMON=2;
%CONSTSTRING(1) NULL="",HASH="#",AT="@",CODE="^"
!

==== ercc07/emas-2900/sup27isrce_sup27is.txt ====

!
! TO MAKE S SERIES SUPERVISOR REQUIRES:-
!     1) CHANGE SSERIES=NO TO SSERIES=YES IN CTOPTIONS FILE
!     2) REPLACE COMF BY S SERIES COM IN ERCC08.COMSF
!
!
! THESE CONST INTEGERS DEFINE SIZES AND LAYOUT OF IMPORTANT TABLES
! THEY HAVE TO BE HERE TO BE GLOBAL TO ALL ROUTINES INCLUDING IO ONES
!
%CONSTINTEGER LSTLEN=192;               ! LOCAL SEGMENT TABLE LENGTH
%CONSTINTEGER CBTLEN=299;               ! LENGTH OF CBT TABLE
%CONSTLONGINTEGER LCACR=1;              ! ACR OF LOCAL CONTROLLER
%CONSTINTEGER DIRCSEG=10;               ! SEG NO OF DIRECTOR COMMS SEG
%CONSTINTEGER DIRCSEGOFFSET=0;          ! FOR ALIGNMENT IF NEEDED
%CONSTINTEGER DIRCSEGAD=DIRCSEG<<18;    ! VIRTUAL ADDRESS OF DIR COM SEG
%CONSTINTEGER DIRCSEGL=8*CBTLEN+255+2*LSTLEN; ! SIZE OF SAME
                                        ! MADE UP OF 2049 FOR CBT
                                        ! 2*LSTLEN FOR SST
                                        ! 48+64 FOR 2 BITS OF SYTEMCALL TABLE
                                        ! 32+48 FOR DIROUTP&SIGOUT

==== ercc07/emas-2900/sup27isrce_samplectopt.txt ====

!
! THIS FILE CONTAINS THE CONST INTEGERS TO CONTROL COMPILE TIME OPTIONS
! IN EMAS2900
! IT IS INTENDED TO BE CONCATENATED ONTO THE FRONT OF SOURCEFILES
! BEFORE COMPILATION
%CONSTINTEGER YES=1
%CONSTINTEGER NO=0
%CONSTINTEGER SSERIES=NO;               ! NO=PSERIES, YES=SSERIES
%CONSTINTEGER RECONFIGURE=YES;          ! NO TO EXCLUDE DYNAMIC CONFIGURATION
%CONSTINTEGER MULTIOCP=YES;             ! YES TO INCLUDE SEMAPHORING
%CONSTINTEGER SFCFITTED=NO;             ! NO FOR DISC ONLY SITES
%CONSTINTEGER CPFITTED=NO;              ! CARD PUNCH FITTED
%CONSTINTEGER CSU FITTED=NO;            ! SWITCH UNIT
%CONSTINTEGER SNOOZING=YES;             ! YES ALLOWS SUSPEND IN STORE
                                        ! ADVANTAGEOUS WITH LARGE STORES
%CONSTINTEGER PRODUCTION=NO;            ! YES FOR CONTINUING AFTER
                                        ! SOFTWARE ERRORS(MOST OF WHICH
                                        ! ARE DUE TO HARDWARE!)
%CONSTINTEGER MONLEVEL=7;               ! 0=NO MONITORING
                                        ! 2**0 SET=VIDEO UPDATING

==== ercc07/emas-2900/perq_ps01.txt ====
43
D(NAME)
D(ICONST)
D(CONST)
D(CHXTYPE)
D(N)
D(S)
D(TEXT)
D(BIGHOLE)
D(N255)
D(HOLE)
D(MARK)
D(READLINE?)
D(TEXTTEXT)
D(DUMMYAPP)
D(DOWN)
D(UP)
D(LISTON)
D(LISTOFF)
D(COLON)
D(NOTECONST)

==== ercc07/emas-2900/sup27isrce_makechkd.txt ====
PARM FREE,NOCHECK,NOLIST,STACK
IMP80 CTOPT+SUP27ISRCE_SUP27IS,SUPZZ,,.OUT
IMP80 CTOPT+SUP27ISRCE_COM34S,COMZZ,,.OUT
IMP80 CTOPT+SUP27ISRCE_PRINT07S,PRINTZZ,,.OUT
IMP80 CTOPT+SUP27ISRCE_OPER35S,OPERZZ,,.OUT
IMP80 CTOPT+SUP27ISRCE_ENTER13S,ENTERZZ,,.OUT
PARM FREE,OPT,STACK,NOLIST
IMP80 CTOPT+SUP27ISRCE_GPC39S,GPCZZ,,.OUT
IMP80 SUP27ISRCE_NDIAG07S,NDIAGZZ,,.OUT
IMP80 CTOPT+SUP27ISRCE_COMMS52S,COMMSZZ,,.OUT
IMP80 CTOPT+SUP27ISRCE_FAST40S,FASTZZ,,.OUT
IMP80 CTOPT+SUP27ISRCE_TAPE73S,TAPEZZ,,.OUT
PARM MAP
LINK
SUPZZ
COMZZ
PRINTZZ
OPERZZ
ENTERZZ
GPCZZ
NDIAGZZ

==== ercc07/emas-2900/sup27fsrce_print07s.txt ====

%RECORDFORMAT PARMF(%INTEGER DEST, SRCE, P1, P2, P3, P4, P5, P6)
%EXTRINSICLONGINTEGER KMON
%ROUTINESPEC PRHEX(%INTEGER H)
%ROUTINESPEC PRINTER(%RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC PON(%RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC GPC(%RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC OPMESS(%STRING (23) MESS)
%SYSTEMROUTINESPEC ITOE(%INTEGER A, L)
%IF MULTIOCP=YES %THEN %START
%EXTERNALROUTINESPEC SEMALOOP(%INTEGERNAME SEMA)
      %ROUTINESPEC RESERVE LOG
      %ROUTINESPEC RELEASE LOG
      %ROUTINESPEC AWAIT LOG ROUTE
%FINISH
!------------------------------------------------------------------------
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20L ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DLVNADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,TOJDAY,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,SERVAAD,  %C

==== ercc07/emas-2900/sup26hsrce_makeopt.txt ====
PARM FREE,OPT,STACK,NOLIST
IMP CTOPT+SUP26HSRCE_SUP26HS,SUPZZ,,.OUT
IMP CTOPT+SUP26HSRCE_COM32S,COMZZ,,.OUT
IMP CTOPT+SUP26HSRCE_PRINT05S,PRINTZZ,,.OUT
IMP CTOPT+SUP26HSRCE_OPER33S,OPERZZ,,.OUT
IMP CTOPT+SUP26HSRCE_ENTER09S,ENTERZZ,,.OUT
IMP CTOPT+SUP26HSRCE_GPC36S,GPCZZ,,.OUT
IMP SUP26HSRCE_MINDIAGS,MINDIAGZZ,,.OUT
IMP CTOPT+SUP26HSRCE_COMMS48S,COMMSZZ,,.OUT
IMP CTOPT+SUP26HSRCE_FAST32S,FASTZZ,,.OUT
IMP CTOPT+SUP26HSRCE_TAPE69S,TAPEZZ,,.OUT
PARM MAP
LINK
SUPZZ
COMZZ
PRINTZZ
OPERZZ
ENTERZZ
GPCZZ
MINDIAGZZ
COMMSZZ

==== ercc07/emas-2900/perq_oldps.txt ====

%EXTERNALROUTINE OLDPS(%STRING(63) S)
%EXTERNALSTRINGFNSPEC DATE
%INTEGER I, J, K, SS, NBIP
%STRING(31) ST49,ST50,ST51
%STRING(127)HEADER
%EXTERNALROUTINESPEC DEFINE(%STRING(63)S)
%INTEGERARRAY CLETT(0:1000), SYMBOL(1300:3000), CC(0:300)
%INTEGER CNEXT, DNEXT, CNUM, DNUM, ALT, DEF, ASL, NIDFLAG
%INTEGERARRAY KK, PUSE, DWORD(1001:1200), DLETT(0:1000), CWORD(1:200)
%ROUTINESPEC READ STRING(%INTEGER TERMINATOR)
%ROUTINESPEC RECORD(%INTEGERARRAYNAME WORD, LETT,  %C
            %INTEGERNAME NUM, NEXT)
%ROUTINESPEC LOOK UP(%INTEGERARRAYNAME WORD, LETT,  %C
            %INTEGER FIRST, LAST, INSERT)
%ROUTINESPEC PDDICT
%ROUTINESPEC PRINT STR(%INTEGERARRAYNAME CC, %INTEGER PTR)
%ROUTINESPEC PCDICT
         %UNLESS S->ST49.(",").ST50.(",").ST51 %THEN %C
            PRINTSTRING("PARAMS?????") %AND NEWLINE %AND %RETURN
         DEFINE("ST49,".ST49)

==== ercc07/emas-2900/sup27fsrce_oper35s.txt ====
!*
!* OPER35 - 1st October 1981 *
!*
%CONSTINTEGER SDIAGS=NO;                ! YES for cyclic CC trace
%IF (MONLEVEL >> 1) & 1 = YES %START
      %EXTRINSICLONGINTEGER KMON
      %OWNINTEGER OPMON; ! COPY OF KMON BIT
      %CONSTINTEGER KMONNING = YES
%FINISH %ELSE %START
      %CONSTINTEGER KMONNING = NO
%FINISH
!
%IF MONLEVEL & 1 = YES %START
      %CONSTINTEGER VIDEO UPDATING = YES
      %OWNINTEGER OPER FACILITIES
%FINISH %ELSE %START
      %CONSTINTEGER VIDEO UPDATING = NO
%FINISH
!
!
!

==== ercc07/emas-2900/perq_opcodes.txt ====

!
! OPCODES AND CONSTINTEGER FOR PERQ IMP
! P REFS ARE TO PERQ Q-CODE MANAUAL
!
%CONSTINTEGER LDC0=0;                   ! P21 LOAD WORD CONSTANTS 0-15
%CONSTINTEGER LDCN=22;                  ! P21 LOAD CONSTANT NIL
%CONSTINTEGER LDCMO=16;                 ! P21 LOAD CONSTANT -1
%CONSTINTEGER LDCB=17;                  ! P21 LOAD CONSTANT (SIGNED)BYTE
%CONSTINTEGER LDCW=18;                  ! P21 LOAD CONSTANT (SIGNED)WORD
%CONSTINTEGER LDL0=109;                 ! P22 LOAD LOCAL WORD(0-15)
%CONSTINTEGER LDLB=107;                 ! P22 LOAD LOCAL UNSIGNED BYTE OFFSET
%CONSTINTEGER LDLW=108;                 ! P22 LOAD LOCAL WORD OFFSET
%CONSTINTEGER LLAB=125;                 ! P22 LOAD LOCAL ADDRESS UBYTE OFFSET
%CONSTINTEGER LLAW=126;                 ! P22 LOAD LOCAL ADDRESS WORD OFFSET
%CONSTINTEGER STL0=129;                 ! P22 STORE LOCAL WORD (0-7 ONLY!)
%CONSTINTEGER STLB=127;                 ! P22 STORE LOCAL WORD UBYTE OFFSET
%CONSTINTEGER STLW=128;                 ! P22 STORE LOCAL WORD WORD OFFSET
%CONSTINTEGER LDO0=139;                 ! P23 SHORT LOAD OWN WORD
%CONSTINTEGER LDOB=137;                 ! P23 LOAD OWN WORD UBYTE OFFSET
%CONSTINTEGER LDOW=138;                 ! P23 LOAD OWN WORD WORD OFFSET

==== ercc07/emas-2900/perqtrimp_makeperq.txt ====

PARM NOCHECK
IMP80 TRIMP_PERQPONEAS+TRIMP_PONEB01S,P1Y,L1,.OUT
IMP80 TRIMP_PERQPTWOAS+TIMP01S,P2Y,L2,.OUT
IMP80 TRIMP_PERQOPT01S,POPTY,L3,.OUT
IMP80 TRIMP_PERQGEN01S,PGENY,L4,.OUT
LIST L1+L2+L3+L4,.LP
DESTROY L1,L2,L3,L4
LINK
P1Y
P2Y
POPTY
PGENY
.END
P0Y
MODIFY P0Y
SATISFY REFS
.ALL
SATISFY DATA
.ALL
RENAME

==== ercc07/emas-2900/ibm_iperm97s.txt ====
*        TITLE 'IMP PERM FOR SIM2  P.STEPHENS'
*  FOR RELEASE 8 BACK COMPATIBLE TO RELEASE 7
* UPDATED TO SEND DIAGNOSTIC OUTPUT TO STREAM 89
* UPDATED TO CALL S#STOP RATHER THAN RETURNING ON REGISTER 9
IMP      START
CODE     EQU   12
WSP      EQU   11
GLA      EQU   13
RA       EQU   15
         DC    A(PEND-IMP)
         DC    A(BASE-IMP)
         DC    A(PERMGLA-IMP)
         DC    A(PLOADATA-IMP)
         USING BASE,CODE
         USING WKSTART,WSP
         USING USERGLA,GLA
BASE     B     CPLRERR
P1       BC    15,RSS
P2       BC    15,NS0
P3       BC    15,PS0
P4       BC    15,W0

==== ercc07/emas-2900/sup28bs.txt ====

!
! To make S series supervisor requires:-
!     1) Change SSERIES=NO to SSERIES=YES in ctoptions file
!
!
! THESE CONST INTEGERS DEFINE SIZES AND LAYOUT OF IMPORTANT TABLES
! THEY HAVE TO BE HERE TO BE GLOBAL TO ALL ROUTINES INCLUDING IO ONES
!
%CONSTINTEGER LSTLEN=192;               ! LOCAL SEGMENT TABLE LENGTH
%CONSTINTEGER CBTLEN=299;               ! LENGTH OF CBT TABLE
%CONSTLONGINTEGER LCACR=1;              ! ACR OF LOCAL CONTROLLER
%CONSTINTEGER DIRCSEG=10;               ! SEG NO OF DIRECTOR COMMS SEG
%CONSTINTEGER DIRCSEGOFFSET=0;          ! FOR ALIGNMENT IF NEEDED
%CONSTINTEGER DIRCSEGAD=DIRCSEG<<18;    ! VIRTUAL ADDRESS OF DIR COM SEG
%CONSTINTEGER DIRCSEGL=8*CBTLEN+255+2*LSTLEN; ! SIZE OF SAME
                                        ! MADE UP OF 2049 FOR CBT
                                        ! 2*LSTLEN FOR SST
                                        ! 48+64 FOR 2 BITS OF SYTEMCALL TABLE
                                        ! 32+48 FOR DIROUTP&SIGOUT
%CONSTINTEGER LSTACKLEN=3;              ! LOCAL CONT. STACK ELEN

==== ercc07/emas-2900/poneb01s.txt ====
!
%CONST %BYTE %INTEGER %ARRAY I TO E TAB(0 : 127) =       %C
X'40',X'40',X'40',X'40',X'40',X'40',X'40',X'40',
X'40',X'40',X'15',X'40',X'0C',X'40',X'40',X'40',
X'40',X'40',X'40',X'40',X'40',X'40',X'40',X'40',
X'40',X'40',X'40',X'40',X'40',X'40',X'40',X'40',
X'40',X'4F',X'7F',X'7B',X'5B',X'6C',X'50',X'7D',
X'4D',X'5D',X'5C',X'4E',X'6B',X'60',X'4B',X'61',
X'F0',X'F1',X'F2',X'F3',X'F4',X'F5',X'F6',X'F7',
X'F8',X'F9',X'7A',X'5E',X'4C',X'7E',X'6E',X'6F',
X'7C',X'C1',X'C2',X'C3',X'C4',X'C5',X'C6',X'C7',
X'C8',X'C9',X'D1',X'D2',X'D3',X'D4',X'D5',X'D6',
X'D7',X'D8',X'D9',X'E2',X'E3',X'E4',X'E5',X'E6',
X'E7',X'E8',X'E9',X'4A',X'5F',X'5A',X'6A',X'6D',
X'7C',X'81',X'82',X'83',X'84',X'85',X'86',X'87',
X'88',X'89',X'91',X'92',X'93',X'94',X'95',X'96',
X'97',X'98',X'99',X'A2',X'A3',X'A4',X'A5',X'A6',
X'A7',X'A8',X'A9',X'C0',X'40',X'D0',X'40',X'40'
%CONSTBYTEINTEGERARRAY ONE CASE(0 : 255) =   %C
       0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,
      16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,

==== ercc07/emas-2900/sup26esrce_ndiag07s.txt ====

!*_ DATED 11 NOV 76   1
! ALTERATIONS BY K.YARWOOD ...
!        PRINT FL AND NEXT SYMBOL LINES COMMENTED OUT
!        PRINTTEXT'S TURNED TO PRINTSTRING'S
!        ADDITION FOR LONGINTEGER IN RT PRINT VAR
!         HEX EQUIVALENTS FOR INTS,LONGINTS ETC PRINTED
!        INF PRINTED IN HEX IN RT ERRMESS

%EXTERNALSTRINGFNSPEC STRHEX(%INTEGER I)
%EXTERNALSTRING(8)%FNSPEC STRINT(%INTEGER I)
%CONSTINTEGER STACKBASE=X'80100000';  ! START OF RESIDENT STACK
! %SYSTEMROUTINESPEC SIGNAL(%INTEGER I, J, K, %INTEGERNAME F)
%ROUTINESPEC PRINTMESS(%INTEGER N)
! %SYSTEMROUTINESPEC TIDY EXIT
!*
%ROUTINESPEC INDIAG(%INTEGER OLDLNB, L, PC, %INTEGERNAME NEWLNB)
! %ROUTINESPEC FDIAG(%INTEGER OLDLNB,PC,%INTEGERNAME NEWLNB)
%ROUTINESPEC ERMESS(%INTEGER N, INF)
! %ROUTINESPEC ICL9CELABELS


==== ercc07/emas-2900/nrsrce_fast25s.txt ====

%EXTERNALSTRING (15) %FNSPEC STRINT(%INTEGER N)
%EXTERNALSTRING (8) %FNSPEC STRHEX(%INTEGER N)
%EXTERNALSTRING(8) %FNSPEC HTOS(%INTEGER VALUE,PLACES)
%EXTERNALROUTINESPEC PTREC(%RECORDNAME P)
%EXTERNALROUTINESPEC OPMESS(%STRING (63) S)
%EXTERNALROUTINESPEC MONITOR(%STRING (63) S)
%EXTERNALROUTINESPEC DUMP TABLE(%INTEGER T, A, L)
%ROUTINESPEC ELAPSED INT(%RECORDNAME P)
%SYSTEMROUTINESPEC MOVE(%INTEGER L,F,T)
%SYSTEMROUTINESPEC ETOI(%INTEGER A, L)
%ROUTINESPEC PDISC(%RECORDNAME P)
%EXTERNALROUTINESPEC HOOT(%INTEGER NHOOTS)
%EXTERNALROUTINESPEC WAIT(%INTEGER MSECS)
%EXTERNALINTEGERFNSPEC HANDKEYS
%EXTERNALINTEGERFNSPEC REALISE(%INTEGER PUBVIRTADDR)
%EXTERNALROUTINESPEC SLAVESONOFF(%INTEGER ONOFF)
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20A ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DDTADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,WASKLOKCORRECT,DATE0,DATE1,DATE2,  %C

==== ercc07/emas-2900/sup27fsrce_sup27fs.txt ====

!
! TO MAKE S SERIES SUPERVISOR REQUIRES:-
!     1) CHANGE SSERIES=NO TO SSERIES=YES IN CTOPTIONS FILE
!     2) REPLACE COMF BY S SERIES COM IN ERCC08.COMSF
!
!
! THESE CONST INTEGERS DEFINE SIZES AND LAYOUT OF IMPORTANT TABLES
! THEY HAVE TO BE HERE TO BE GLOBAL TO ALL ROUTINES INCLUDING IO ONES
!
%CONSTINTEGER LSTLEN=192;               ! LOCAL SEGMENT TABLE LENGTH
%CONSTINTEGER CBTLEN=299;               ! LENGTH OF CBT TABLE
%CONSTLONGINTEGER LCACR=1;              ! ACR OF LOCAL CONTROLLER
%CONSTINTEGER DIRCSEG=10;               ! SEG NO OF DIRECTOR COMMS SEG
%CONSTINTEGER DIRCSEGOFFSET=0;          ! FOR ALIGNMENT IF NEEDED
%CONSTINTEGER DIRCSEGAD=DIRCSEG<<18;    ! VIRTUAL ADDRESS OF DIR COM SEG
%CONSTINTEGER DIRCSEGL=8*CBTLEN+255+2*LSTLEN; ! SIZE OF SAME
                                        ! MADE UP OF 2049 FOR CBT
                                        ! 2*LSTLEN FOR SST
                                        ! 48+64 FOR 2 BITS OF SYTEMCALL TABLE
                                        ! 32+48 FOR DIROUTP&SIGOUT

==== ercc07/emas-2900/perqtrimp_portenv01s.txt ====
%CONSTINTEGER EMAS=10
%CONSTINTEGER PERQ=11
%CONSTINTEGER PNX=12
%CONSTINTEGER IBM=13
%CONSTINTEGER TARGET=PNX
%EXTERNALROUTINESPEC IOCP %ALIAS "S#IOCP"(%INTEGER EP,N)
%CONSTLONGREAL LOG10A=2.3025850929940456840179914546843642076011
%CONSTLONGREAL PI=3.141592653589793238462643
%CONSTLONGREAL R1= 1.2595802263029547@  1{R'41C98867F42983DF'}
%CONSTLONGREAL R2=-8.6186317517509520@  1{R'C2562FB2813C6014'}
%CONSTLONGREAL R3=-1.2766919133361079@  0{R'C1146D547FED8A3D'}
%CONSTLONGREAL R4=-8.3921038065840512@ -2{R'C0157BD961F06C89'}
%CONSTLONGREAL S1= 2.7096164294378656@  1{R'421B189E39236635'}
%CONSTLONGREAL S2= 6.5581320451487386@  0{R'4168EE1BDE0C3700'}
%CONSTLONGREAL S3= 2.1441643116703661@  0{R'41224E7F3CBDFE41'}
%CONSTLONGREAL S4= 1.2676256708212610@  0{R'41144831DAFBF542'}
%CONSTLONGREAL RT3= 1.7320508075688772@  0{R'411BB67AE8584CAA'}
%CONSTLONGREAL PIBY6= 5.2359877559829887@ -1{R'40860A91C16B9B2C'}
%CONSTLONGREAL PIBY2M1= 5.7079632679489661@ -1{R'40921FB54442D184'}
%CONSTLONGREAL RT3M1=7.3205080756887728@ -1{R'40BB67AE8584CAA7'}
%CONSTLONGREAL TANPIBY12= 2.6794919243112271@ -1{R'404498517A7B3559'}

==== ercc07/emas-2900/sup25jsrce_makeracer.txt ====
PARM NOTRACE,OPT,STACK,NOLIST
IMP SUP25ISRCE_SUP25IS,SUP25ZZ,,.OUT
IMP SUP25ISRCE_COM24S,COM24ZZ,,.OUT
IMP SUP25ISRCE_PRINT01S,PRINT01ZZ,,.OUT
IMP SUP25ISRCE_GPC22S,GPC22ZZ,,.OUT
IMP SUP25ISRCE_MINDIAGS,MINDIAGZZ,,.OUT
IMP SUP25ISRCE_COMMS38S,COMMS38ZZ,,.OUT
IMP SUP25ISRCE_FAST24S,FAST24ZZ,,.OUT
IMP SUP25ISRCE_TAPE61S,TAPE61ZZ,,.OUT
PARM MAP
LINK
SUP25ZZ
COM24ZZ
PRINT01ZZ
GPC22ZZ
MINDIAGZZ
COMMS38ZZ
FAST24ZZ
TAPE61ZZ
.END
SUP25Z

==== ercc07/emas-2900/ieaxpdxr.txt ====
R; T=0.01/0.01 12:21:14
type ieaxpdxr module p(hex

 RECORD           1 LENGTH=          80
 00020000  00020000  00020488  00020488  40190E68  00000000  00000000  00000123  4C000004  00000000
 00000080  00000000  00000000  00000000  00000000  E9000000  00000000  00000000  00000000  00000000

 RECORD           2 LENGTH=        1160
 47F0F00E  08C9C5C1  E7D7C4E7  D90090EC  D00C0580  58710008  50D07004  41207000  502D0008  92007048
 D2077049  70485861  00005856  00084155  00004B50  81A49180  60084780  804291C0  60084740  80464B50
 81A247F0  80464A50  81A29544  50004770  80CE1B22  D200704C  5001940F  704C4320  704C5841  00041222
 47808074  89200002  58224000  41220000  1B334335  00028830  00041233  47808090  89300002  58334000
 41330000  1A32D201  704C5002  940F704C  4A30704C  1B224325  00018820  00048920  00021222  478080CC
 58224000  4220704C  D200704F  300196FF  704ED600  3001704C  1853D501  500081A6  4770817E  95005002
 47708176  1B224325  00038C20  00044590  816C1823  8820001C  4590816C  922D704A  D200704B  50034326
 00088920  00044220  704841D0  70004120  70485020  70504120  70605020  70544120  81485020  70585821
 000C91FF  20004780  813A9201  70494110  705058F0  81AC05EF  47F08182  95FF7063  4780817E  58F07060
 440F8158  47F0817E  920C6007  920D6007  920F6007  920F6007  12220789  492081A4  07894120  00064026
 000641F0  00FF91FF  704E4780  8190D200  5001704F  58D07004  58ED000C  980CD014  92FFD00C  07FE0002
 0004B22D  00000000  000201C8  00000000  47F0F00E  08C9C5C1  E7D2C4E7  D90090EC  D00C58C1  00045821
 00005802  00005000  D0001B88  04804380  D0016000  C0006020  C0086040  C0106060  C0189200  C0564170

==== ercc07/emas-2900/impalgs_indiags.txt ====

! NOTE NEW VERSION OF THIS GLOBAL ARRY
!
%CONSTSTRING(10)%ARRAY LT(0:7)=" !???! "," IMP "," FORTRAN ",
                              " IMPS "," ASMBLR "," ALGOL(E) ",
                              " OPTCODE "," PASCAL "
!*

! LAYOUT OF DIAGNOSIC TABLES
!****** ** ********* ******

! THE BOUND FIELD OF PLT DESCRIPTOR STORED AT (LNB+3 & LNB+4) IF
! USED TO CONTAIN A DISPLACEMENT RELATIVE TO THE START OF SST OF THE
! DIAGNOSTIC TABLES FOR THE BLOCK OR ROUTINE BEING EXECUTED.
! A ZERO BOUND MEANS NO DIAGNOSTIC REQUESTED.(NB THIS MAY MEAN A DUMMY
! FIRST WORD IN THE SST).
! THE ABSOLUTE ADDRESS OF THE SST FOR THE CURRENT CODE SEGMENT WILL
! ALWAYS BE FOUND IN THE STANDARD 10 WORDS OF THE GLA/PLT

! FORM OF THE TABLES:-


==== ercc07/emas-2900/wichtests_wt100.txt ====
'BEGIN'
    'COMMENT' LIBRARY 1;
    'INTEGER'I,
    'ARRAY' A[ 1 : 1 ];
    I := A[1] := 1;
    OUTREAL(99, I + A[1])
'END'

==== ercc07/emas-2900/jiocp01s.txt ====
%CONSTBYTEINTEGERARRAY OTRTAB(0:127)=%C
                  26(9),9,10,26,12,13,26(11),25,26,26(5),
                  32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,
                  48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,
                  64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,
                  80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,
                  96,97,98,99,100,101,102,103,104,105,106,107,108,109,
                  110,111,112,113,114,115,116,117,118,119,
                  120,121,122,123,124,125,126,26;
%CONSTBYTEINTEGERARRAY ITRTAB(0:127)=%C
                  X'80'(10),10,X'80'(14),25,26,X'80'(5),
                  32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,
                  48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,
                  64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,
                  80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,
                  96,97,98,99,100,101,102,103,104,105,106,107,108,109,
                  110,111,112,113,114,115,116,117,118,119,
                  120,121,122,123,124,125,126,X'80';
%CONSTBYTEINTEGERARRAY ITOS4E(0 : 127) =       %C
            X'40',X'40',X'40',X'40',   X'40',X'40',X'40',X'40',
            X'40',X'40',X'15',X'40',   X'0C',X'0D',X'40',X'40',

==== ercc07/emas-2900/wichtests_wt101.txt ====
'BEGIN'
    'INTEGER'
        X,
        Y;
    X := + 2Y := - 3;
    'IF' X < - Y 'THEN'
'END'

==== ercc07/emas-2900/sup26esrce_com30s.txt ====
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20J ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DDTADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,TOJDAY,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,DQADDR,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0, %C
         %INTEGER ITINT,CONTYPEA,GPCCONFA,FPCCONFA,SFCCONFA, %C
         BLKADDR,RATION,SMACS,TRANS,%LONGINTEGER KMON,  %C
         %INTEGER DITADDR,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,STOREAAD,PROCAAD,SFCCTAD,DRUMTAD,TSLICE,FEPS,SP1, %C
         SP2,SP3,SP4,SP5,SP6,SP7,SP8, %C
         LSTL,LSTB,PSTL,PSTB,HKEYS,HOOT,SIM,CLKX,CLKY,CLKZ,  %C
         HBIT,SLAVEOFF,INHSSR,SDR1,SDR2,SDR3,  %C
         SDR4,SESR,HOFFBIT,S2,S3,S4,END)
! MISC. ROUTINE SPECS
%EXTERNALROUTINESPEC PKMONREC(%STRING(20)TEXT,%RECORDNAME P)
%EXTERNALSTRING(8)%FNSPEC STRHEX(%INTEGER N)
%RECORDFORMAT PARMF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6)
%EXTERNALROUTINESPEC OPMESS2(%INTEGER OP,%STRING(63)TXT)

==== ercc07/emas-2900/sup28ds.txt ====

!
! To make S series supervisor requires:-
!     1) Change SSERIES=NO to SSERIES=YES in ctoptions file
!
!
! THESE CONST INTEGERS DEFINE SIZES AND LAYOUT OF IMPORTANT TABLES
! THEY HAVE TO BE HERE TO BE GLOBAL TO ALL ROUTINES INCLUDING IO ONES
!
%CONSTINTEGER LSTLEN=192;               ! LOCAL SEGMENT TABLE LENGTH
%CONSTINTEGER CBTLEN=299;               ! LENGTH OF CBT TABLE
%CONSTLONGINTEGER LCACR=1;              ! ACR OF LOCAL CONTROLLER
%CONSTINTEGER DIRCSEG=10;               ! SEG NO OF DIRECTOR COMMS SEG
%CONSTINTEGER DIRCSEGOFFSET=0;          ! FOR ALIGNMENT IF NEEDED
%CONSTINTEGER DIRCSEGAD=DIRCSEG<<18;    ! VIRTUAL ADDRESS OF DIR COM SEG
%CONSTINTEGER DIRCSEGL=8*CBTLEN+255+2*LSTLEN; ! SIZE OF SAME
                                        ! MADE UP OF 2049 FOR CBT
                                        ! 2*LSTLEN FOR SST
                                        ! 48+64 FOR 2 BITS OF SYTEMCALL TABLE
                                        ! 32+48 FOR DIROUTP&SIGOUT
%CONSTINTEGER LSTACKLEN=3;              ! LOCAL CONT. STACK ELEN

==== ercc07/emas-2900/wichtests_wt102.txt ====
'BEGIN'
    'INTEGER'
        X,
        Y;
    X :=;
'END'

==== ercc07/emas-2900/wichtests_wt103.txt ====
'BEGIN'
    'INTEGER'
        X,
        Y;
    X := + 3 := Y
'END'

==== ercc07/emas-2900/wichtests_wt104.txt ====
'BEGIN'
    'REAL'
        W,
        V;
    'REAL'
        X,
        Y,
        Z;
    X := + 6.0;
    Y := - 2.931;
    Z := 4^.2;
    W := 10, 000;
'END'

==== ercc07/emas-2900/sup28dsrce_mindiags.txt ====
%EXTERNALSTRINGFNSPEC STRHEX(%INTEGER I)
%SYSTEMROUTINE NDIAG(%INTEGER PCOUNT, LNB, FAULT, INF)
!***********************************************************************
!*_______'MASTER DIAGNOSTIC ROUTINE'. DISCOVERS THE LANGUAGE OF THE    *
!*_______FAILED ROUTINE FROM WORD 4 OF THE GLA AND CALLS APPROPRIATE   *
!*_______DIAGNOSTIC ROUTINE. THIS IS REPEATED TILL ALL DIAGNOSTICS     *
!*_______GIVEN.                                                        *
!*_______PCOUNT = PCOUNTER AT FAILURE                                  *
!*_______LNB    = LOCAL NAME BASE AT FAILURE                           *
!*_______FAULT  = FAILURE  (0=%MONITOR  REQUESTED)                     *
!*_______INF    =ANY FURTHER INFORMATION                               *
!***********************************************************************
PRINTSTRING("
MINIMUM NDIAGS ENTERED
FAULT NO ="); WRITE(FAULT,2)
PRINTSTRING("
PC=X".STRHEX(PCOUNT)."
LNB=X".STRHEX(LNB)."
")
%IF FAULT>0 %THEN %STOP
%END

==== ercc07/emas-2900/sup26fsrce_documentn.txt ====



This partitioned file contains all the source required to make up a
version 26F Supervisor, plus the version of the IMP compiler and FIX
utility used at Edinburgh to do so.  This compiler is necessary as some
advanced language features are required which are not available in the
service compiler.

Note that the OPTION NOBRACKETS must be in force in the process being
used for the method described to work.

Two "OBEY" subfiles are available: MAKECHKD and MAKEOPT.  They each
construct a test Supervisor which is left in file SUP26xT,  where x is
'C' or 'O' respectively.


Making a Supervisor thus consists of the following:

a) INSERT the IMP compiler and FIX utility into the current directory
   (and then log off and log on again if IMP was previously used in

==== ercc07/emas-2900/wichtests_wt105.txt ====
'BEGIN'
    'REAL'
        V;
    V := 3.5&( - 3);
'END'

==== ercc07/emas-2900/passopts.txt ====

%INCLUDE "ERCC07.PERQ_FORMATS"
%EXTRINSICRECORD(WORKAF) WORKA
%EXTRINSICRECORD(PARMF) PARM
%CONSTINTEGER YES=1
%CONSTINTEGER NO=0
%EXTERNALROUTINESPEC ABORT
%EXTERNALROUTINESPEC FAULT(%INTEGER N,DATA,IDENT)
%EXTERNALROUTINESPEC PRINT TRIPS(%RECORD(TRIPF)%ARRAYNAME TRIPLES)
%ROUTINE EXTRACT(%RECORD(RD)%NAME OPND,%INTEGERNAME VAL, %C
         %LONGREALNAME RVAL)
!***********************************************************************
!*    EXTRACTS A CONTANT OPERAND RETURNING REAL &INT VALUES           *
!***********************************************************************
%INTEGER TYPE,PREC,I,AD
      TYPE=OPND_PTYPE; PREC=TYPE>>4
      TYPE=TYPE&15
      %IF TYPE=1 %THEN %START
         VAL=OPND_D
         RVAL=VAL
      %FINISH %ELSE %START

==== ercc07/emas-2900/wichtests_wt106.txt ====
'BEGIN'
    'COMMENT' LIBRARY 1;
    'INTEGER'
        N;
    'REAL'
        R;
    N := 2;
    R := 2.5&N;
    OUTREAL(99, R);
'END'

==== ercc07/emas-2900/wichtests_wt107.txt ====
'BEGIN'
    'REAL'
        X,
        Y,
        Z;
    Y := 2.0;
    X := 2.5;
    Z := 5Y * (2 + X);
'END'

==== ercc07/emas-2900/wichtests_wt108.txt ====
'BEGIN'
    'REAL'
        Y1,
        Y2;
    Y1 := Y2 := 1;
    REPEAT :;
    'IF' Y1 > 0 'THEN'
        'GOTO' STOP'GOTO' REPEAT;
    STOP :;
'END'

==== ercc07/emas-2900/nrsrce_fast27s.txt ====

%EXTERNALSTRING (15) %FNSPEC STRINT(%INTEGER N)
%EXTERNALSTRING (8) %FNSPEC STRHEX(%INTEGER N)
%EXTERNALSTRING(8) %FNSPEC HTOS(%INTEGER VALUE,PLACES)
%EXTERNALROUTINESPEC PTREC(%RECORDNAME P)
%EXTERNALROUTINESPEC OPMESS(%STRING (63) S)
%EXTERNALROUTINESPEC MONITOR(%STRING (63) S)
%EXTERNALROUTINESPEC DUMP TABLE(%INTEGER T, A, L)
%ROUTINESPEC ELAPSED INT(%RECORDNAME P)
%SYSTEMROUTINESPEC MOVE(%INTEGER L,F,T)
%SYSTEMROUTINESPEC ETOI(%INTEGER A, L)
%ROUTINESPEC PDISC(%RECORDNAME P)
%EXTERNALROUTINESPEC HOOT(%INTEGER NHOOTS)
%EXTERNALROUTINESPEC WAIT(%INTEGER MSECS)
%EXTERNALINTEGERFNSPEC HANDKEYS
%EXTERNALINTEGERFNSPEC REALISE(%INTEGER PUBVIRTADDR)
%EXTERNALROUTINESPEC SLAVESONOFF(%INTEGER ONOFF)
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20A ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DDTADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,WASKLOKCORRECT,DATE0,DATE1,DATE2,  %C

==== ercc07/emas-2900/impalgs_imperrmess.txt ====
1   'REPEAT'   'TOO'   'MANY';
2   'LABEL'   'INVALID OR'  'SET'   'TWICE';
3    'SPEC'  'OUT'   'OF'   'CONTEXT';
4   'SWITCH'   'NAME'   'NOT'   'SET';
5   'SWITCH'   'LABEL'   'ERROR';
6   'SWITCH'   'LABEL'   'SET'   'TWICE';
7   'NAME'   'SET'   'TWICE';
8   'FORMAL'   'PARAMETERS' 'NOT'   'AS SPEC';
9   'FORMAL'   'PARAMETERS' 'NOT'   'AS SPEC';
10  'FORMAL'   'PARAMETERS' 'NOT'   'AS SPEC';
11  'LABEL'   'NOT'   'SET';
12  'GENERAL'  'NAME'  'IN' 'EXPRSSN'
13  'REPEAT'   'MISSING';
14     'TOO'   'MANY'   'ENDS';
15  'MISSING'   'ENDS';
16   'NAME'   'NOT'   'SET';
17  'NOT'  'ROUTINE'  'NAME';
19  'WRONG'  'NO'  'OF'  'PARAMETERS';
20  'SWITCH'  'NAME'  'IN'  'EXPRSSN';
21   'ROUTINE'    'NOT'    'SPECIFIED';
22  'ACTUAL'  'PARAMETERS'  'NOT' 'AS SPEC';

==== ercc07/emas-2900/wichtests_wt109.txt ====
'BEGIN'
    'REAL'
        X,
        Y,
        Z;
    X := 6.0;
    5.0;
    Y := - 2.931;
    Z := 4^.2;
'END'

==== ercc07/emas-2900/perqtrimp_perqptwoas.txt ====
%EXTERNALROUTINE ICL9CEZPERQIMP
%CONSTINTEGER RELEASE=4
%CONSTINTEGER YES=1,NO=0
%CONSTINTEGER EMAS=10
%CONSTINTEGER PERQ=11
%CONSTINTEGER PNX=12
%CONSTINTEGER HOST=EMAS
%CONSTINTEGER TARGET=PERQ
%CONSTINTEGER STANDARDPT=X'41'
%CONSTINTEGER MINAPT=X'41';             ! MINIMUM PTYPE FOR WHICH ARITHMETIC
                                        ! OPERATORS ARE AVAILABLE
%CONSTINTEGER MINAPREC=MINAPT>>4
%CONSTHALFINTEGERARRAY TYPEFLAG(0:12)=0,
                                        X'51'{%INTEGER},
                                        X'52'{%REAL},
                                        X'8009'{%LONG SOMETHING},
                                        X'4031'{%BYTE},
                                        X'35'{%STRING},
                                        X'6051'{%HALF->%INTEGER+WARNING},
                                        X'4041'{%SHORT},
                                        X'33'{%RECORD},

==== ercc07/emas-2900/wichtests_wt110.txt ====
'BEGIN'
    'INTEGER'
        I.J;
    I := 2;
    J := 3;
    'IF' I * J > I + J 'THEN'
'END'

==== ercc07/emas-2900/lexicon.txt ====
abolishing adverse agonies Al=al al authorship cautionary Centrist
co-temporaneous=contemporaneous committees commitments
committments=commitments comprehended congratulation Cookson DAP DAPs
DEC director doubtless Emas=EMAS enrich ERCC et excepted Fortran grasp
gratefully health ICL IDMS ill-informed immensely IMP IPL manifestly
manning megabytes mends mud Multics non-numerical OCP offsite one-off
organisation outwith Pascal pre-delivery realised realising redeployment
regrettable remorselessly REP Scottish semaphoring shop shouted Sir
staff Stephens sucked tale teams termly timescales tops unbelievable
VAXs verbal VME VMS

==== ercc07/emas-2900/wichtests_wt111.txt ====
'BEGIN'
    'REAL'
        A,
        X;
    X := - 10.0;
    A := ('IF' X < 0 'THEN' X - 1 'ELSE' 'IF' X > 1 'THEN' X + 1 'ELSE'
        X;
'END'

==== ercc07/emas-2900/wichtests_wt112.txt ====
'BEGIN'
    'REAL'
        X;
    Y;
    Z;
    X := + 6.0;
    Y := - 2.931;
    Z := 4^.2;
'END'

==== ercc07/emas-2900/sup27csrce_sup27cs.txt ====

!
! TO MAKE S SERIES SUPERVISOR REQUIRES:-
!     1) CHANGE SSERIES=NO TO SSERIES=YES IN CTOPTIONS FILE
!     2) REPLACE COMF BY S SERIES COM IN ERCC08.COMSF
!
!
! THESE CONST INTEGERS DEFINE SIZES AND LAYOUT OF IMPORTANT TABLES
! THEY HAVE TO BE HERE TO BE GLOBAL TO ALL ROUTINES INCLUDING IO ONES
!
%CONSTINTEGER LSTLEN=192;               ! LOCAL SEGMENT TABLE LENGTH
%CONSTINTEGER CBTLEN=299;               ! LENGTH OF CBT TABLE
%CONSTLONGINTEGER LCACR=1;              ! ACR OF LOCAL CONTROLLER
%CONSTINTEGER DIRCSEG=10;               ! SEG NO OF DIRECTOR COMMS SEG
%CONSTINTEGER DIRCSEGOFFSET=0;          ! FOR ALIGNMENT IF NEEDED
%CONSTINTEGER DIRCSEGAD=DIRCSEG<<18;    ! VIRTUAL ADDRESS OF DIR COM SEG
%CONSTINTEGER DIRCSEGL=8*CBTLEN+255+2*LSTLEN; ! SIZE OF SAME
                                        ! MADE UP OF 2049 FOR CBT
                                        ! 2*LSTLEN FOR SST
                                        ! 48+64 FOR 2 BITS OF SYTEMCALL TABLE
                                        ! 32+48 FOR DIROUTP&SIGOUT

==== ercc07/emas-2900/wichtests_wt113.txt ====
'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'REAL'
        A,
        X;
    X := 0.8;
    A := ('IF' X >= 0 'AND' X <= 1 'THEN' X * X - 3 * X + 4 'ELSE'
        0);
       OUTREAL(A);
'END'

==== ercc07/emas-2900/wichtests_wt114.txt ====
'BEGIN'
'INTEGER' J,K;
'ARRAY' A(/0:3/);
K := 2;
'FOR' J := 1 'STEP' 1 'UNTIL' K
'BEGIN'
I := 0;
'END';
'END'

==== ercc07/emas-2900/wichtests_wt115.txt ====
'BEGIN'
    'INTEGER'
        I,
        J;
    'REAL' 'ARRAY'
        CAT(1 : 15);
'END'

==== ercc07/emas-2900/imp80tests_rt0.txt ====
%BEGIN
%OWNBYTEINTEGER CHAR=NL
%OWNBYTEINTEGERARRAY XCHAR(1:10)=NL(*)
      WRITE(CHAR,5)
      WRITE(XCHAR(5),5)
      NEWLINE
%ENDOFPROGRAM

==== ercc07/emas-2900/wichtests_wt116.txt ====
'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'COMMENT'   USE OF A PROCEDURE;
    'REAL'
        A,
        B,
        ;
    'PROCEDURE' EXAMPLE(X, Y)RESULT : (R);
        'VALUE'
            X,
            Y;
        'REAL'
            X,
            Y,
            R;
        'BEGIN'
        X := X + Y;
        R := X^2 + Y^2
        'END';
    A := 1;
    B := 2;

==== ercc07/emas-2900/imp80tests_rt1.txt ====
%BEGIN
%RECORDFORMAT F(%INTEGER I,J,K,%INTEGERARRAY A(1:5))
%RECORD(F) R
%INTEGERARRAYNAME B
%INTEGER I
      R_I='I'
      R_J='J'
      %CYCLE I=1,1,5
      R_A(I)=I
      %REPEAT
      R_K=255
      B==R_A
      %CYCLE I=1,1,5
         WRITE(B(I),5)
      %REPEAT
%ENDOFPROGRAM

==== ercc07/emas-2900/wichtests_wt117.txt ====
'BEGIN'
    'SWITCH' PATH :=
        P1,
        P2;
    'INTEGER'
        N,
        I;
    I := 0;
    LABEL 1 :;
    I := I + 1;
    'IF' I = 2 'THEN'
        'GOTO' STOP;
    N := 0;
    'GOTO'
        'IF' P > 0 'THEN'
            PATH(N)
        'ELSE'
            LABEL 1;
    P1 := P - 1;
    P2 := P - 1;
    STOP :;

==== ercc07/emas-2900/imp80tests_rt2.txt ====
%BEGIN
%INTEGER I
      I=0
      %CYCLE
         WRITE(I,2)
         I=I+1
      %REPEAT %UNTIL  I=4
%ENDOFPROGRAM

==== ercc07/emas-2900/wichtests_wt118.txt ====
'BEGIN'
    'INTEGER'
        I;
    'REAL'
        X;
    'ARRAY'
        A(/0, 3/);
    I := 1;
    'FOR' X := 1.0,
        2.0,
        3.0 'DO'
        'BEGIN'
        A(/I/):= X;
        I := I + 1
        'END';
'END'

==== ercc07/emas-2900/imp80tests_rt3.txt ====
%BEGIN
%INTEGER SYM
%STRING(255)S
S="ABCDE"
      %WHILE S#"" %CYCLE
         SYM=CHARNO(S,1)
         S->(TOSTRING(SYM)).S
         PRINTSYMBOL(SYM)
      %REPEAT
      NEWLINE
%ENDOFPROGRAM


==== ercc07/emas-2900/sup25jsrce_tape63s.txt ====

!**************************************************
!*                                                *
!*  TAPE HANDLER FOR 2900                         *
!*                                                *
!**************************************************
!!
!!           EXTERNAL ROUTINE REFERENCES
!!
%EXTERNALSTRINGFNSPEC HTOS(%INTEGER VALUE, PLACES)
%EXTERNALROUTINESPEC OPMESS(%STRING (23) S)
%EXTERNALROUTINESPEC PON(%RECORDNAME P)
%SYSTEMROUTINESPEC ETOI(%INTEGER A, L)
%SYSTEMROUTINESPEC MOVE(%INTEGER L, FROMAD, TOAD)
%EXTERNALROUTINESPEC PTREC(%RECORDNAME P)
%EXTERNALROUTINESPEC PRHEX(%INTEGER N)
%EXTERNALROUTINESPEC GPC(%RECORDNAME P)
%EXTERNALROUTINESPEC DUMP TABLE(%INTEGER TABNO, START, L)
%EXTRINSICLONGINTEGER PARMDES
%EXTERNALINTEGERFNSPEC NEWPPCELL
%EXTERNALROUTINESPEC RETURNPPCELL (%INTEGER CELL)

==== ercc07/emas-2900/wichtests_wt119.txt ====
'BEGIN'
    'INTEGER'
        K;
    K := 0;
    'IF' K = 0'GOTO' FINISH 'ELSE'
        K := K + 1;
    FINISH :;
'END'

==== ercc07/emas-2900/imp80tests_rt4.txt ====
%BEGIN
%INTEGER COUNT
%ROUTINE FRED(%INTEGER FIRST,STEP,LAST)
%INTEGER I
      %CYCLE I=FIRST,STEP,LAST
         COUNT=COUNT+1
      %REPEAT
%END
      COUNT=0
      FRED(X'9000',16,X'A000')
      %IF COUNT=257 %THEN PRINTSTRING("TEST OK") %C
         %ELSE PRINTSTRING("WRONG") %AND %MONITOR
%ENDOFPROGRAM

==== ercc07/emas-2900/sup27csrce_samplectopt.txt ====

!
! THIS FILE CONTAINS THE CONST INTEGERS TO CONTROL COMPILE TIME OPTIONS
! IN EMAS2900
! IT IS INTENDED TO BE CONCATENATED ONTO THE FRONT OF SOURCEFILES
! BEFORE COMPILATION
%CONSTINTEGER YES=1
%CONSTINTEGER NO=0
%CONSTINTEGER SSERIES=NO;               ! NO=PSERIES, YES=SSERIES
%CONSTINTEGER MULTIOCP=YES;             ! YES TO INCLUDE SEMAPHORING
%CONSTINTEGER SFCFITTED=NO;             ! NO FOR DISC ONLY SITES
%CONSTINTEGER CPFITTED=NO;              ! CARD PUNCH FITTED
%CONSTINTEGER SNOOZING=YES;             ! YES ALLOWS SUSPEND IN STORE
                                        ! ADVANTAGEOUS WITH LARGE STORES
%CONSTINTEGER PRODUCTION=NO;            ! YES FOR CONTINUING AFTER
                                        ! SOFTWARE ERRORS(MOST OF WHICH
                                        ! ARE DUE TO HARDWARE!)
%CONSTINTEGER MONLEVEL=31;              ! 0=NO MONITORING
                                        ! 2**0 SET=VIDEO UPDATING
                                        ! 2**1 SET=KMONNING
                                        ! 2**2 SET=SUP TIMING MEASUREMENTS

==== ercc07/emas-2900/imp80tests_rt5.txt ====
%BEGIN
%LONGINTEGER L
%SWITCH SW(0:5)
      L=3
      ->SW(L)
SW(*):
      PRINTSTRING("WRONG PLACE"); %STOP
SW(3):
      PRINTSTRING("GOT HERE OK
")
      %STOP
%ENDOFPROGRAM

==== ercc07/emas-2900/sup27csrce_oper34s.txt ====
! %CONSTSTRING(15)VSN = "OPER34 24/7/81"; ! ****************************************
%IF (MONLEVEL >> 1) & 1 = YES %START
      %EXTRINSICLONGINTEGER KMON
      %OWNINTEGER OPMON; ! COPY OF KMON BIT
      %CONSTINTEGER KMONNING = YES
%FINISH %ELSE %START
      %CONSTINTEGER KMONNING = NO
%FINISH
!
%IF MONLEVEL & 1 = YES %START
      %CONSTINTEGER VIDEO UPDATING = YES
      %OWNINTEGER OPER FACILITIES
%FINISH %ELSE %START
      %CONSTINTEGER VIDEO UPDATING = NO
%FINISH
!
!
!
%RECORDFORMAT PF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6)
%RECORDFORMAT MP F(%INTEGER DEST,SRCE,%STRING(23)TXT)
!*

==== ercc07/emas-2900/wichtests_wt120.txt ====
'BEGIN'
    'REAL'
        X'INTEGER' I;
    'ARRAY'
        A(/0 : 3/);
    I := 0;
    'FOR' X := 1.23,
        2.34,
        3.45 'DO'
        'BEGIN'
        A(/I/):= X;
        I := I + 1
        'END';
'END'

==== ercc07/emas-2900/imp80tests_rt6.txt ====

%BEGIN
%CONST%STRING(15)%ARRAY S(1:3)="ONE ","TWO ","THREE "
%INTEGER I
      PRINTSTRING(S(3))
      %CYCLE I=1,1,3
         PRINTSTRING(S(I))
      %REPEAT
%ENDOFPROGRAM

==== ercc07/emas-2900/wichtests_wt121.txt ====
'BEGIN'
'COMMENT' 'LIBRARY' 1;
    'INTEGER'
        I,
        P;
    I := 0;
    'FOR' P := 1 'STEP' 1 'UNTIL' 4 'DO'
        'BEGIN'
        'OWN' 'INTEGER'
            I;
        'IF' P = 1 'THEN'
            I := 3
        'ELSE'
            I := 2 * I;
        'BEGIN'
            'INTEGER'
                J,
                I;
            J := 4;
            I := 0
        'END';

==== ercc07/emas-2900/imp80tests_rt7.txt ====

%BEGIN
%RECORDFORMAT F(%INTEGER I,J,K,L)
%OWNRECORD(F)%ARRAY A(-1:1)
%RECORD(F)%ARRAY B(-1:1)
%RECORD(F) R
%INTEGER I
      R=0
      %CYCLE I=-1,1,1
         A(I)=R
         B(I)=R
      %REPEAT
      PRINTSTRING("WORKED OK")
%ENDOFPROGRAM

==== ercc07/emas-2900/wichtests_wt122.txt ====
'BEGIN'
'COMMENT' 'LIBRARY' 1;
    'INTEGER'
        I,
        P;
    I := 0;
    'FOR' P := 1 'STEP' 1 'UNTIL' 4 'DO'
        'BEGIN'
        'OWN' 'INTEGER'
            I;
        'IF' P = 1 'THEN'
            I := 3
        'ELSE'
            I := 2 * I;
        'BEGIN'
            'OWN' 'INTEGER'
                J,
                I;
            I := 0;
            'IF' I = 0 'THEN'
                J := 4

==== ercc07/emas-2900/imp80tests_rt8.txt ====

%BEGIN 
%CONSTINTEGER STRLEN=3
%CONSTSTRING(STRLEN)%ARRAY CHECK(1:3)="ABC","DEF","GHI";
%INTEGER I
%STRING(STRLEN)%ARRAYFORMAT SF(1:3)
%STRINGARRAYNAME SAN
%RECORDFORMAT F(%INTEGER I,J,%STRING(3)%ARRAY S(1:3), %C
         %STRINGARRAYNAME SN)
%RECORD(F)%NAME R
%OWNBYTEINTEGERARRAY A(0:35)=0,0,0,1,0,0,0,2,
      X'03',X'41',X'42',X'43',X'03',X'44',X'45',X'46',X'03',X'47',
      X'48',X'49',0(16)
%ROUTINE CHECK VALUE(%INTEGER I,%STRING(31)S)
      %IF S#CHECK(I) %THEN PRINTSTRING("
BUG IN STRING VALUE") %AND %MONITOR
%END
%ROUTINE CHECKNAME(%INTEGER I,%STRING(*)%NAME S)
      %IF S#CHECK(I) %THEN PRINTSTRING("
BUG IN STRING NAMES") %AND %MONITOR
%END

==== ercc07/emas-2900/wichtests_wt123.txt ====
'BEGIN'
'COMMENT' 'LIBRARY' 1;
    'INTEGER'
        I,
        P;
    I := 0;
    'FOR' P := 1 'STEP' 1 'UNTIL' 4 'DO'
        'BEGIN'
        'OWN' 'INTEGER'
            I;
        'IF' P = 1 'THEN'
            I := 3
        'ELSE'
            I := 2 * I;
        'BEGIN'
            'OWN' 'INTEGER'
                J,
                I;
            'IF' I = 0 'THEN'
                J := 4
            'ELSE'

==== ercc07/emas-2900/imp80tests_rt9.txt ====
%BEGIN
%INTEGER I,J
%CONSTSTRING(15)FAILED="***BUG FOUND"
%RECORDFORMAT F(%INTEGER I,J)
%ROUTINESPEC INTERCHANGE(%RECORD(F)%ARRAYNAME A,%INTEGER I,J)
%RECORD(F)%ARRAY A(0:3)
%RECORD(F)%ARRAY B(1:4)
      %CYCLE I=0,1,3
         A(I)_I=I
         B(I+1)_I=I+1
      %REPEAT
      INTERCHANGE(A,1,3)
      PRINTSTRING(FAILED) %UNLESS A(1)_I=3 %AND A(3)_I=1
      INTERCHANGE(B,1,3)
      PRINTSTRING(FAILED) %UNLESS B(1)_I=3 %AND B(3)_I=1
%ROUTINE INTERCHANGE(%RECORD(F)%ARRAYNAME R,%INTEGER P,Q)
%RECORD(F) TEMP
      TEMP=R(P)
      R(P)=R(Q)
      R(Q)=TEMP
%END

==== ercc07/emas-2900/wichtests_wt124.txt ====
'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'REAL'
        X;
    X := 1.;
    OUTREAL(99, X);
'END'

==== ercc07/emas-2900/sup25jsrce_fast24s.txt ====

%EXTERNALSTRING (15) %FNSPEC STRINT(%INTEGER N)
%EXTERNALSTRING (8) %FNSPEC STRHEX(%INTEGER N)
%EXTERNALSTRING(8) %FNSPEC HTOS(%INTEGER VALUE,PLACES)
%EXTERNALROUTINESPEC PTREC(%RECORDNAME P)
%EXTERNALROUTINESPEC OPMESS(%STRING (63) S)
%EXTERNALROUTINESPEC MONITOR(%STRING (63) S)
%EXTERNALROUTINESPEC DUMP TABLE(%INTEGER T, A, L)
%ROUTINESPEC ELAPSED INT(%RECORDNAME P)
%SYSTEMROUTINESPEC ETOI(%INTEGER A, L)
%ROUTINESPEC PDISC(%RECORDNAME P)
%EXTERNALROUTINESPEC HOOT(%INTEGER NHOOTS)
%EXTERNALROUTINESPEC WAIT(%INTEGER MSECS)
%EXTERNALINTEGERFNSPEC HANDKEYS
%EXTERNALINTEGERFNSPEC REALISE(%INTEGER PUBVIRTADDR)
%EXTERNALROUTINESPEC SLAVESONOFF(%INTEGER ONOFF)
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20A ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DDTADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,WASKLOKCORRECT,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,DQADDR,  %C

==== ercc07/emas-2900/ajqtests.txt ====
//JOB (:ERCC07.AJTESTS,P.STEPHENS_ALGOL,T=240,L=6000)
//ALGOL
'BEGIN'
    'REAL' X;
    'INTEGER' I;
        I := 10000000000000000000000000;
        X := 1.0&999
'END'
//RUN
//ALGOL
'BEGIN'
    'REAL' AUTOCORRELATIONCOEFFICIENTNUMBER1;
        AUTOCORRELATIONCOEFFICIENTNUMBER1 := 0.0;
        'BEGIN'
        'REAL' AUTOCORRELATIONCOEFFICIENTNUMBER2;
            AUTOCORRELATIONCOEFFICIENTNUMBER2 := 1.0;
            OUTREAL(99, AUTOCORRELATIONCOEFFICIENTNUMBER1 +
                AUTOCORRELATIONCOEFFICIENTNUMBER2 )
        'END'
'END'
//RUN

==== ercc07/emas-2900/wichtests_wt125.txt ====
'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'REAL'
        X;
    X := 1.&;
    OUTREAL(99, X);
'END'

==== ercc07/emas-2900/wichtests_wt126.txt ====
'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'REAL'
        X;
    X := &+;OUTREAL(99, X);
'END'

==== ercc07/emas-2900/sup26esrce_makeopt.txt ====
PARM FREE,OPT,STACK,NOLIST
IMP CTOPT+SUP26ESRCE_SUP26ES,SUPZZ,,.OUT
IMP CTOPT+SUP26ESRCE_COM30S,COMZZ,,.OUT
IMP CTOPT+SUP26ESRCE_PRINT05S,PRINTZZ,,.OUT
IMP CTOPT+SUP26ESRCE_OPER33S,OPERZZ,,.OUT
IMP SUP26ESRCE_ENTER05S,ENTERZZ,,.OUT
IMP CTOPT+SUP26ESRCE_GPC33S,GPCZZ,,.OUT
IMP SUP26ESRCE_NDIAG07S,NDIAGZZ,,.OUT
IMP CTOPT+SUP26ESRCE_COMMS46S,COMMSZZ,,.OUT
IMP CTOPT+SUP26ESRCE_FAST28S,FASTZZ,,.OUT
IMP SUP26ESRCE_TAPE67S,TAPEZZ,,.OUT
PARM MAP
LINK
SUPZZ
COMZZ
PRINTZZ
OPERZZ
ENTERZZ
GPCZZ
NDIAGZZ
COMMSZZ

==== ercc07/emas-2900/wichtests_wt127.txt ====
'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'REAL'
        X;
    X := &;
    OUTREAL(99, X);
'END'

==== ercc07/emas-2900/wichtests_wt128.txt ====
'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'REAL'
        X;
    X := .;
    OUTREAL(99, X);
'END'

==== ercc07/emas-2900/wichtests_wt129.txt ====
'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'REAL'
        X;
    X := &-1000;
    OUTREAL(99, X);
'END'

==== ercc07/emas-2900/sup26hsrce_gpc36s.txt ====
%CONSTSTRING(25) VSN = "GPC36 4TH FEB 81"; ! ************************************************GPC GPC GPC
!
!   EMAS 2900 SUPERVISOR NOTE
!                                           No: 5
!                                         Date: 21/05/80
!                                       Author: A.Gibbons
!
!
! %EXTERNAL ROUTINE GPC(%RECORDNAME P)
!
! 1. CONVENTIONS
! The record spec for the parameter is
!   %RECORDFORMAT PARMF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6)
! where
!   DEST is considered as two half words DSNO and DACT. DSNO
!        must be GPC's DSNO 
!        DACT is set according to the function required.
!
!   SRCE is considered as two halfwords SSNO and SACT.
!        SSNO is SNO of ORIGINATOR and SACT is DACT for
!        the reply.

==== ercc07/emas-2900/wichtests_wt130.txt ====
'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'INTEGER'
        I;
    'PROCEDURE' P;
        'BEGIN'
        'INTEGER'
            J;
        'PROCEDURE' Q;
            'IF' I > 10 'THEN'
                'GOTO' L;
        J := I := I + 1;
        Q;
        OUTREAL(99, J);
        P;
        L :;
        OUTREAL(99, J);
        'END';
    I := 1;
    P;
'END'

==== ercc07/emas-2900/wichtests_wt131.txt ====
'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'REAL' 'ARRAY'
        JJ(/1 : 8/);
    'PROCEDURE' P(X);
        'VALUE'
            X;
        'INTEGER'
            X;
        ;
    'PROCEDURE' DEVIATION;
        'BEGIN'
        'REAL'
            X,
            Y;
        P(JJ)
        'END';
    DEVIATION;
'END'

==== ercc07/emas-2900/sup25jsrce_gpc22s.txt ====
%CONSTSTRING(15) VSN="12 SEP 79   1"
!
! SERVICE NUMBERS FOR SLOW DEVICE ROUTINES
!            DEV-
!  DEC   HEX TYPE
!   48    30        GPC
!   49    31    5   TAPE
!   50    32    8   OPER FOR CTS/CLOCK SCREEN UPDTE, PON X32 1 2/0
!   51    33    6   PRINTER ADAPTOR
!   52    34    4   SPARE (FORMERLY CARDR)
!   53    35   15   SPARE (FORMERLY LINK)
!   54    36    6   PRINTER
!   55    37        (COMMS CONTROLLER)
!   56    38        (COMMS CONTROLEER)
!   57    39   14   MK1 FE ADAPTOR
!
%CONSTBYTEINTEGERARRAY ALLOWCALL(1:15)=  %C
   0, 0, 0, 0, 49, 54, 0, 50, 0, 0, 0, 0, 0, 57, 53
%CONSTINTEGER MT=5, LP=6, OP=8
%CONSTINTEGER REAL0 SEG=X'2040'; ! PUBLIC 64(DEC) MAPPED TO REAL 0
%CONSTINTEGER ENDLIST=255

==== ercc07/emas-2900/sup25jsrce_mindiags.txt ====
%EXTERNALSTRINGFNSPEC STRHEX(%INTEGER I)
%SYSTEMROUTINE NDIAG(%INTEGER PCOUNT, LNB, FAULT, INF)
!***********************************************************************
!*_______'MASTER DIAGNOSTIC ROUTINE'. DISCOVERS THE LANGUAGE OF THE    *
!*_______FAILED ROUTINE FROM WORD 4 OF THE GLA AND CALLS APPROPRIATE   *
!*_______DIAGNOSTIC ROUTINE. THIS IS REPEATED TILL ALL DIAGNOSTICS     *
!*_______GIVEN.                                                        *
!*_______PCOUNT = PCOUNTER AT FAILURE                                  *
!*_______LNB    = LOCAL NAME BASE AT FAILURE                           *
!*_______FAULT  = FAILURE  (0=%MONITOR  REQUESTED)                     *
!*_______INF    =ANY FURTHER INFORMATION                               *
!***********************************************************************
PRINTSTRING("
MINIMUM NDIAGS ENTERED
FAULT NO ="); WRITE(FAULT,2)
PRINTSTRING("
PC=X".STRHEX(PCOUNT)."
LNB=X".STRHEX(LNB)."
")
%END
%ENDOFFILE

==== ercc07/emas-2900/wichtests_wt132.txt ====
'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'INTEGER'
        I,
        J,
        CASE;
    'PROCEDURE' CHECKB(BOOL, ANSWER);
        'VALUE'
            ANSWER;
        'BOOLEAN'
            BOOL;
        'INTEGER'
            ANSWER;
        'BEGIN'
        'BOOLEAN'
            B;
        'PROCEDURE' FAIL;
            'BEGIN'
            OUTREAL(99, I);
            OUTREAL(99, J);
            OUTREAL(99, CASE)

==== ercc07/emas-2900/impalgs_rtermess.txt ====
1        'INTEGER' 'OVERFLOW';
2        'REAL' 'OVERFLOW';
3        'ILLEGAL' 'CYCLE';
4        'NOT'  'ENOUGH'  'STORE'
5        'SQRT'  'NEGATIVE';
6        'LOG'   'NEGATIVE';
7        'SWITCH'  'LABEL'  'NOT'  'SET'
9        'INPUT'  'ENDED';
10       'NON'  'INTEGER'  'QUOTIENT'
11       'NO'  'RESULT'
12       'TIME'  'EXCEEDED'
13       'TERMINATION'     'REQUESTED'
14       'SYMBOL'  'IN'  'DATA';
15        'PARAM'   'NOT'   'DESTINATION'
16       'REAL'  'NO'  'IN'  'DATA'
17       'DIVIDE'  'ERROR'
18       'SUB'  'CHAR'  'IN'  'DATA'
19       'GRAPH'  'FAULT'
20       'STREAM'  'NOT'  'DEFINED'
21       'ILLEGAL'  'EXPONENTIATION';
22       'TRIG'  'FN'  'INACCURATE';

==== ercc07/emas-2900/wichtests_wt133.txt ====
'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'INTEGER'
        I;
    'INTEGER' 'ARRAY'
        C(/1 : 3/);
    'FOR' I := 1,
        2,
        3 'DO'
        C(/I/):= I + 1;
    'FOR' I := 1,
        2,
        3 'DO'
        'IF' C(/C(/C(/C(/C(/C(/I/)- 1/)- 1/)- 1/)- 1/)- 1/)# I + 1
            'THEN'
            OUTREAL(99, I);
    OUTREAL(99, 0)
'END'

==== ercc07/emas-2900/impalgs_imp80ps01.txt ====
38
D(NAME)
D(ICONST)
D(CONST)
D(CHXTYPE)
D(N)
D(S)
D(TEXT)
D(BIGHOLE)
D(N255)
D(HOLE)
D(MARK)
D(READLINE?)
D(TEXTTEXT)
D(DUMMYAPP)
D(DOWN)
D(UP)
D(LISTON)
D(LISTOFF)
D(COLON)
D(NOTECONST)

==== ercc07/emas-2900/wichtests_wt134.txt ====
'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'INTEGER'
        I,
        J,
        K;
    'BOOLEAN'
        P,
        T;
    'PROCEDURE' FAIL;
        'BEGIN'
        OUTREAL(99, I);
        OUTREAL(99, J)
        'END';
    T := 'TRUE';
    'FOR' I := - 1,
        0,
        1 'DO'
        'FOR' J := - 1,
            0,
            1 'DO'

==== ercc07/emas-2900/sup27fsrce_enter12s.txt ====
%RECORDFORMAT PARMF(%INTEGER DEST, SRCE, P1, P2, P3, P4, P5, P6)
%RECORDFORMAT SERVAF(%INTEGER P, C)
%EXTRINSICINTEGER INPTR
%EXTRINSICINTEGER OUTPTR
%CONSTINTEGER MASK=X'80FC3FFF'
%EXTERNALINTEGERFNSPEC HANDKEYS
%EXTERNALROUTINESPEC HOOT(%INTEGER NUM)
%EXTERNALINTEGERFNSPEC GPC INIT(%INTEGER CA,PT,MODE)
%EXTERNALINTEGERFNSPEC SAFE IS READ(%INTEGER ISAD,%INTEGERNAME VAL)
%EXTERNALROUTINESPEC GET PSTB(%INTEGERNAME P0, P1)
%EXTERNALROUTINESPEC SUP29
%EXTERNALROUTINESPEC SUPPOFF(%RECORD(SERVAF)%NAME SERV, %C
      %RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC DISC(%RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC PDISC(%RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC GPC(%RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC SLAVESONOFF(%INTEGER J)
%EXTERNALROUTINESPEC PKMONREC(%STRING(20)TEXT,%RECORD(PARMF)%NAME P)
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20L ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DLVNADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C

==== ercc07/emas-2900/muperms.txt ====
        TITLE 'IMP PERM FOR SIM2  P.STEPHENS'
*  FOR RELEASE 8 BACK COMPATIBLE TO RELEASE 7
IMP      START
CODE     EQU   12
WSP      EQU   11
GLA      EQU   13
RA       EQU   15
         DC    A(PEND-IMP)
         DC    A(BASE-IMP)
         DC    A(PERMGLA-IMP)
         DC    A(PLOADATA-IMP)
         USING BASE,CODE
         USING WKSTART,WSP
         USING USERGLA,GLA
BASE     B     CPLRERR
P1       BC    15,RSS
P2       BC    15,NS0
P3       BC    15,PS0
P4       BC    15,W0
P5       BC    15,PSTRO
P6       BC    15,STOP1

==== ercc07/emas-2900/impalgs_imp80ps02.txt ====
38
D(NAME)
D(ICONST)
D(CONST)
D(CHXTYPE)
D(N)
D(S)
D(TEXT)
D(BIGHOLE)
D(N255)
D(HOLE)
D(MARK)
D(READLINE?)
D(TEXTTEXT)
D(DUMMYAPP)
D(DOWN)
D(UP)
D(LISTON)
D(LISTOFF)
D(COLON)
D(NOTECONST)

==== ercc07/emas-2900/wichtests_wt135.txt ====
'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'REAL'
        X,
        Y,
        Z,
        U;
    'INTEGER'
        I,
        CASE;
    'PROCEDURE' COMPARE(U, V);
        'VALUE'
            U,
            V;
        'REAL'
            U,
            V;
        'BEGIN'
        CASE := CASE + 1;
        'IF' U # V 'THEN'
            'BEGIN'

==== ercc07/emas-2900/wichtests_wt136.txt ====
'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'REAL'
        X;
    X := + + 1.0;
    X := - - X;
    OUTREAL(99, + - X)
'END'

==== ercc07/emas-2900/sup26isrce_releasen.txt ====

         Supervisor 26i Relase Notice

      This Supervisor has the following changes

         1)  Implements "advisory sequential" files

         2)  Changes to SCHEDULE to allow L_C stacks to snooze
               even when store too full for snoozing also to penalise
               P4 processes which are very CPU bound

         3)  Minor corrections to OPER,TAPE&FAST


          SUPERVISOR RELEASE NOTICE VSN 26H
          _________________________________


      This Supervisor incorporates the following changes:-

         1) Has a better FAST(32) that permits disc switching

==== ercc07/emas-2900/wichtests_wt137.txt ====
'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'BOOLEAN'
        B;
    B := 'NOT' 'TRUE';
    B := 'NOT' ( 'NOT' B);
    B := 'NOT' 'NOT' B;
    OUTREAL(99, 'IF' B 'THEN' 0 'ELSE' 1)
'END'

==== ercc07/emas-2900/wichtests_wt138.txt ====
'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'REAL'
        X;
    'INTEGER'
        I;
    'PROCEDURE' NOTFUNCTION(Y);
        'VALUE'
            Y;
        'REAL'
            Y;
        'BEGIN'
        I := I + 1;
        X := Y
        'END';
    X := 1.0;
    I := 0;
    X := 3 * NOTFUNCTION(4.0);
    OUTREAL(99, X + NOTFUNCTION(X) + I)
'END'

==== ercc07/emas-2900/sup26isrce_com32s.txt ====
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20J ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DDTADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,TOJDAY,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,DQADDR,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0, %C
         %INTEGER ITINT,CONTYPEA,GPCCONFA,FPCCONFA,SFCCONFA, %C
         BLKADDR,RATION,SMACS,TRANS,%LONGINTEGER KMON,  %C
         %INTEGER DITADDR,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,STOREAAD,PROCAAD,SFCCTAD,DRUMTAD,TSLICE,FEPS,SP1, %C
         SP2,SP3,SP4,SP5,SP6,SP7,SP8, %C
         LSTL,LSTB,PSTL,PSTB,HKEYS,HOOT,SIM,CLKX,CLKY,CLKZ,  %C
         HBIT,SLAVEOFF,INHSSR,SDR1,SDR2,SDR3,  %C
         SDR4,SESR,HOFFBIT,S2,S3,S4,END)
! MISC. ROUTINE SPECS
%EXTERNALROUTINESPEC PKMONREC(%STRING(20)TEXT,%RECORDNAME P)
%EXTERNALSTRING(8)%FNSPEC STRHEX(%INTEGER N)
%RECORDFORMAT PARMF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6)
%EXTERNALROUTINESPEC OPMESS2(%INTEGER OP,%STRING(63)TXT)

==== ercc07/emas-2900/wichtests_wt139.txt ====
'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'REAL'
        X,
        Y;
    'REAL' 'PROCEDURE' P(Z);
        'VALUE'
            Z;
        'REAL'
            Z;
        'BEGIN'
        X := Z + Y
        'END';
    'REAL' 'PROCEDURE' Q(Z);
        'VALUE'
            Z;
        'REAL'
            Z;
        'IF' 'FALSE' 'THEN'
            Q := Z + X + Y;
    X := Y := 1.0;

==== ercc07/emas-2900/wichtests_wt140.txt ====
'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'REAL'
        X,
        Y;
    'PROCEDURE' P(A, B, C);
        'VALUE'
            A,
            B,
            C;
        'REAL'
            A,
            B,
            C;
        'BEGIN'
        X := A + B * C;
        Y := X + A
        'END';
    P(1.0,, 3);
    OUTREAL(99, X)
'END'

==== ercc07/emas-2900/wichtests_wt141.txt ====
'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'INTEGER' 'PROCEDURE' FACT(N);
        'VALUE'
            N;
        'INTEGER'
            N;
        FACT :=
            'IF' N > 1 'THEN'
                N * FACT(N - 1)
            'ELSE'
                1;
    FACT := 1;
    OUTREAL(99, FACT(5))
'END'

==== ercc07/emas-2900/sup26csrce_makechkd.txt ====
PARM FREE,STACK,NOCHECK,NOLIST
IMP CTOPT+SUP26CSRCE_SUP26CS,SUPZZ,,.OUT
IMP CTOPT+SUP26CSRCE_COM29S,COMZZ,,.OUT
IMP CTOPT+SUP26CSRCE_PRINT04S,PRINTZZ,,.OUT
IMP SUP26CSRCE_OPER31S,OPERZZ,,.OUT
IMP SUP26CSRCE_ENTER04S,ENTERZZ,,.OUT
IMP SUP26CSRCE_GPC28S,GPCZZ,,.OUT
IMP SUP26CSRCE_NDIAG06S,NDIAGZZ,,.OUT
IMP CTOPT+SUP26CSRCE_COMMS42S,COMMSZZ,,.OUT
PARM FREE,OPT,STACK,NOLIST
IMP CTOPT+SUP26CSRCE_FAST27S,FASTZZ,,.OUT
IMP SUP26CSRCE_TAPE65S,TAPEZZ,,.OUT
PARM MAP
LINK
SUPZZ
COMZZ
PRINTZZ
OPERZZ
ENTERZZ
GPCZZ
NDIAGZZ

==== ercc07/emas-2900/wichtests_wt142.txt ====
'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'REAL'
        Y;
    'PROCEDURE' P(X, X);
        'VALUE'
            X;
        'REAL'
            X;
        X := X^2 + 8.6;
    P(Y, 2.0);
    OUTREAL(99, Y)
'END'

==== ercc07/emas-2900/wichtests_wt143.txt ====
'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'REAL'
        X;
    'PROCEDURE' P(Y);
        'VALUE'
            X;
        'REAL'
            Y;
        Y := X;
    X := 3.4;
    P(10.0);
    OUTREAL(99, X)
'END'

==== ercc07/emas-2900/wichtests_wt144.txt ====
'BEGIN'
    'COMMENT' 'LIBRARY'5;
    'REAL' PR;
    'INTEGER' PI;
    'BOOLEAN' PB;
    PI := 1;
    PR := 0.0&0;
    PB :=
        'IF' 'NOT' PI > 0 'AND' PI >= 1 'OR' PI < 0 'IMPL' PR <= 0
            'EQUIV' PI # 0 'THEN'
            'TRUE'
        'ELSE'
            'TRUE';
    'IF' PB 'THEN'
        PR := - 1 * PI^3 'DIV' 2 +
            ENTIER(SIGN(SQRT(ABS(ARCTAN(LN(EXP(COS(SIN(1)))))
            )))) - (PR / ('IF' PR = 0.0 'THEN' 3 'ELSE' 3));
    'BEGIN'
        'SWITCH' PSW := ENTRY, EXIT;
        'OWN' 'REAL' 'ARRAY' PRA(/0 : 1/);
        'INTEGER' 'ARRAY' PIA(/2 : 3/);

==== ercc07/emas-2900/imp80tests_ct10.txt ====
%BEGIN
%INTEGER I,X
      %IF I=1 %THEN X=1 %ELSE %START
         X=2
      %FINISH %ELSE X=3
%ENDOFPROGRAM

==== ercc07/emas-2900/wichtests_wt145.txt ====
'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'REAL'
        X;
    'PROCEDURE' P(A, B);
        'VALUE'
            (A, B);
        'REAL'
            (A, B);
        X := A + B;
    P(3, 4);
    OUTREAL(99, X)
'END'

==== ercc07/emas-2900/imp80tests_ct11.txt ====

%BEGIN
%RECORDFORMATSPEC F2
%RECORDFORMAT F1(%INTEGER I,%RECORD(F2)%NAME R)
%RECORDFORMAT F2(%INTEGER J,%RECORD(F1)%NAME R)
%RECORD(F2) RR
%ENDOFPROGRAM

==== ercc07/emas-2900/wichtests_wt146.txt ====
'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'REAL'
        X;
    'INTEGER'
        I;
    X := 3.84;
    'FOR' I := 1 'STEP' 1 'UNTIL' 200 'DO'
        'BEGIN'
        'IF' - 1 / X # - (1 / X) 'THEN'
            OUTREAL(99, I);
        X := X * 1.01;
        'END';
    OUTREAL(99, 0);
'END'

==== ercc07/emas-2900/sup26esrce_print05s.txt ====

%EXTRINSICLONGINTEGER KMON
%ROUTINESPEC PRHEX(%INTEGER H)
%ROUTINESPEC PRINTER(%RECORDNAME P)
%EXTERNALROUTINESPEC PON(%RECORDNAME P)
%EXTERNALROUTINESPEC OPMESS(%STRING (23) MESS)
%SYSTEMROUTINESPEC ITOE(%INTEGER A, L)
%IF MULTIOCP=YES %THEN %START
%EXTERNALROUTINESPEC SEMALOOP(%INTEGERNAME SEMA)
      %ROUTINESPEC RESERVE LOG
      %ROUTINESPEC RELEASE LOG
      %ROUTINESPEC AWAIT LOG ROUTE
%FINISH
%RECORDFORMAT PARMF(%INTEGER DEST, SRCE, P1, P2, P3, P4, P5,  %C
         P6)
!------------------------------------------------------------------------
%RECORDFORMAT ENTFORM(%INTEGER SER, PTSM, PROPADDR,  %C
         TICKS SINCE, CAA, GRCB AD, LBA, ALA, STATE, RESP0,  %C
         RESP1, SENSE1, SENSE2, SENSE3, SENSE4, REPSNO, BASE,  %C
         ID, DLVN, MNEMONIC, ENTSIZE, PAW, USAW0, URCB AD,  %C
         SENSDAT AD, LOGMASK, TRTAB AD, UA SIZE, UA AD,  %C

==== ercc07/emas-2900/imp80tests_ct12.txt ====
%BEGIN
! CHECKS THAT CONDITIONAL COMPILATION IGNORES OTHER ASSEMBLERS
%INTEGER I
%CONSTINTEGER OCP=2900
      %IF OCP=2900 %THEN %START
         *LSS_(%LNB+5); *ST_I
         %FINISH %ELSE %START
         *LR_1,15; *ST_1,0(4,2)
      %FINISH
%ENDOFPROGRAM

==== ercc07/emas-2900/wichtests_wt147.txt ====
'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'ARRAY'
        A(/1.2/);
    A(/1/):= 1.0;
    OUTREAL(99, A(/1/))
'END'

==== ercc07/emas-2900/imp80tests_ct13.txt ====
%begin
   ! This program tests various combinations of %c, comma and curly bracketed
   ! comments to ensure that the statement continuation rules are followed,
   ! and that the compiler does not differentiate unexpectedly between %c and
   ! comma.

   %integerfn f(%integer x, y)
      %result = 0
   %end
   %integer a, b, c

   ! Test 1
   a = %c
   {......}
   b

   a = f(b,
   {......}
   c)

   ! Test 2

==== ercc07/emas-2900/wichtests_wt148.txt ====
'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'INTEGER'
        I,
        J,
        K;
    I := J := K := 1;
    'IF' I = J 'THEN'
        LA : 'IF' J # K 'THEN'
            OUTREAL(99, 1)
        'ELSE'
            OUTREAL(99, 2);
    OUTREAL(99, 3)
'END'

==== ercc07/emas-2900/wichtests_wt149.txt ====
'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'ARRAY'
        A(/1 : 2.3 : 4/);
    A(/1/):= 1.0;
    OUTREAL(99, A(/1/))
'END'

==== ercc07/emas-2900/cs4_ln1.txt ====


                                                       CS4:COMP_ln1




     Organising a programming project that involves more than one person
proves  to be a unexpectedly tough problem.   There is some agreement on
the reasons for this:-

     1) Programming is almost  entirely  a  matter  of  detail  and  all
        details must be correct. A broad overview, normally an important
        part of management, is rarely much use to anyone.

     2) Programmer  productivity  is  extaordinarily  variable  compared
        (say) to productivity in a chain of Fish and Chip shops.  A high
        flyer with flair can contribute 10 times as much as a plodder.

     3) Interfaces apparently specified to the satisfaction of  everyone
        concerned can prove to have large loopholes.   Consequently when

==== ercc07/emas-2900/wichtests_wt150.txt ====
'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'REAL'
        X,
        Y;
    'INTEGER'
        CASE;
    'PROCEDURE' CHECK(B);
        'VALUE'
            B;
        'BOOLEAN'
            B;
        'IF' B 'THEN'
            CASE := CASE + 1
        'ELSE'
            'BEGIN'
            OUTREAL(99, X);
            OUTREAL(99, Y);
            OUTREAL(99, CASE)
            'END';
    CASE := 0;

==== ercc07/emas-2900/sup26esrce_enter05s.txt ====

%EXTRINSICINTEGER INPTR
%EXTRINSICINTEGER OUTPTR
%CONSTINTEGER MASK=X'80FC3FFF'
%EXTERNALINTEGERFNSPEC HANDKEYS
%EXTERNALROUTINESPEC HOOT(%INTEGER NUM)
%EXTERNALROUTINESPEC GET PSTB(%INTEGERNAME P0, P1)
%EXTERNALROUTINESPEC SUP29
%EXTERNALROUTINESPEC GPC(%RECORDNAME P)
%EXTERNALROUTINESPEC SLAVESONOFF(%INTEGER J)
%EXTERNALROUTINESPEC PKMONREC(%STRING(20)TEXT,%RECORDNAME P)
%SYSTEMROUTINESPEC MOVE(%INTEGER L, FROMAD, TOAD)
%RECORDFORMAT PARMF(%INTEGER DEST, SRCE, P1, P2, P3, P4, P5,  %C
         P6)
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20A ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DDTADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,WASKLOKCORRECT,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,DQADDR,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0, %C

==== ercc07/emas-2900/cs4_ln2.txt ====





                                                     CS4:COMP_LN2

                 Algol for compiler writers
                 ==========================

     Algol is the base from which IMP and Pascal were  derived.    Much  of  the
language should be familiar to you,  especially when written in the IMP notation
with percent sign to  designate  the  keywords.    The  complete  definition  is
contained in the modified report and this must be studied.   A less daunting but
less complete view can be obtained by reading the  ERCC  Algol  Maunual.    This
lecture  will  highlight some of the areas that are different from IMP or Pascal
including the three which cause greatest difficulty to compiler writers.

     The basic elements of  the  language  are  very  similar  to  IMP  and  are
described  in  sections  1  &  2 of the Report.   Note that upper and lower case
letters are distinct in identifiers and that the syntax  of  real  constants  is

==== ercc07/emas-2900/wichtests_wt151.txt ====
'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'BOOLEAN'
        A,
        B,
        C;
    'INTEGER'
        I,
        J;
    A := B := C := 'TRUE';
    I := J := 1;
    A := I = J;
    B := I # J;
    C := A := B;
    C := A = B;
    C = A = B;
    OUTREAL(99, 'IF' A 'THEN' 0 'ELSE' 'IF' B 'THEN' 2 'ELSE' 3);
'END'

==== ercc07/emas-2900/cs4_ln3.txt ====



                                                            CS4:COMP LN3


                 A COMPILER WRITERS VIEW OF THE IBM 370


     The IBM 370 is a byte-addressed general register machine which is  a  minor
improvement of the IBM 360 series designed in the late 1950's. The order code is
mostly orthogonal and consistent but the addressing still  reflects  the  1950's
view that 64Kb was a large main store.

  Operations are provided on:


                bytes or characters  8 bit unsigned
                halfwords           16 bit signed
                words               32 bit signed


==== ercc07/emas-2900/wichtests_wt152.txt ====
'BEGIN'
    'COMMENT' 'LIBRARY'5;
    'REAL' 'PROCEDURE' P(Q);
        'REAL' 'PROCEDURE'
            Q; 'COMMENT'(X): 'VALUE' X: 'REAL' X;
        P := ABS(Q( - 6.4));
    OUTREAL(99, P(ABS))
'END'

==== ercc07/emas-2900/cs4_ln4.txt ====



                                                            CS4:COMP LN4


                     COMPILER WRITING AIDS IN EMAS


  These fall into three categories:-


         1) Low level debugging aids needed when compilers
            are faulty.

         2) The Compile and Put routines.

         3) Simulation of test programs.


Low Level Aids

==== ercc07/emas-2900/wichtests_wt153.txt ====
'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'REAL'
        X;
    X := 0;
    X := (X + 1.1) / 3.3;
    X := (X + 2.2) / 6.6;
    X := (X + 3.3) / 9.9;
    X := (X + 4.4) / 13.2;
    X := (X + 5.5) / 16.5;
    X := (X + 6.6) / 19.8;
    X := (X + 7.7) / 23.1;
    X := (X + 8.8) / 26.4;
    X := (X + 9.9) / 29.7;
    X := (X + 11.0) / 33.0;
    X := (X + 12.1) / 36.3;
    X := (X + 13.2) / 39.6;
    X := (X + 14.3) / 42.9;
    X := (X + 15.4) / 46.2;
    X := (X + 16.5) / 49.5;
    X := (X + 17.6) / 52.8;

==== ercc07/emas-2900/dumpsrce.txt ====
         START
* THIS PROGRAM WRITES ALL CORE TO A DUMP TAPE. THE TAPE CONSISTS
* OF LABEL,TAPEMARK,24 BYTE IPL BLOCK,MORE CWWS,PROGRAM THEN DATA BLOCKS
START    DS    0D
         DC    A(BOTTOM-START)
         DC    A(IPL-START)
         DC    A(PROGRAM-START)
         DC    A(LDATA-START)
BLOCKS   EQU   254                     NO OF COREPAGES-2
* THIS IS THE FIRST 24 BYTE IPL BLOCK
IPL      DS     0D
         DC    F'4096'
         DC    F'0'                    P-COUNTER AND ISR
         CCW   5,24,X'40',44           READ CHAINED COMMANDS
         CCW   5,4096,X'70',0          SKIP PROGRAM BLOCK
* THIS IS THE SECOND BLOCK
         CCW   3,0,X'40',4096          WRITE FIRST BLOSC
         CCW   3,4096,X'40',4096       WRITE SECOND BLOCK
         CCW   2,4096,X'70',0          SKIP BACK 1 BLOCK
         CCW   2,4096,X'70',0          SKIP BACK ANOTHER BLOCK
         CCW   2,LPL+4095,X'20',LPL          BACKWARDS READ PROGRAM BLK

==== ercc07/emas-2900/cs4_ln5.txt ====

      Lecture 5 was based on the EMAS compiler standards document which served
as the lecture notes.


==== ercc07/emas-2900/wichtests_wt154.txt ====
'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'PROCEDURE' P(ST1, ST2);
        'STRING'
            ST1,
            ST2;
        ;
    P( <  1.1>, <  3.3> );
    P( <  2.2>, <  6.6> );
    P( <  3.3>, <  9.9> );
    P( <  4.4>, < 13.2> );
    P( <  5.5>, < 16.5> );
    P( <  6.6>, < 19.8> );
    P( <  7.7>, < 23.1> );
    P( <  8.8>, < 26.4> );
    P( <  9.9>, < 29.7> );
    P( < 11.0>, < 33.0> );
    P( < 12.1>, < 36.3> );
    P( < 13.2>, < 39.6> );
    P( < 14.3>, < 42.9> );
    P( < 15.4>, < 46.2> );

==== ercc07/emas-2900/cs4_ln6.txt ====



                                                            CS4:COMP LN6

                        USEFUL SUPPORT ROUTINES

     You will need a selection of support routines and it is best if  these  are
in  a  set of external routines linked with the rest of your compiler.   It will
help your schedule if you draft these routines over the Xmas vacation.

Message Routines
----------------

     You will need at least two message routines to  output  a  warning  and  an
error  message.    The  text  of error messages is often kept in a sophisticated
packet format although a simple %const %string %array will suffice at a pinch.

     Your warning and error routines will need to  substitute  actual  names  or
other test into the stored messages - probably using marker characters.  ie.  if
there is a "#" in a message the second parameter is a number to be  substituted.

==== ercc07/emas-2900/wichtests_wt155.txt ====
'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'INTEGER'
        I;
    'PROCEDURE' P(A, B);
        'VALUE'
            A;
        'VALUE'
            B;
        'INTEGER'
            A,
            B;
        I := A + B;
    P(3, 4);
    OUTREAL(99, I);
'END'

==== ercc07/emas-2900/cs4_ln7.txt ====



                                                                    CS4:COMP LN7


                              THE LEXICAL ANALYSER


     The lexical analyser is that part  of  the  compiler  which  reads  in  the
original  source  text  and arranges it in a form for the parser.   It can be an
almost nonexistent entity - just handing over the symbols as read;   it  can  be
very  complex  and  do much of the work of the parser - identifying keywords and
building a dictionary of the names.

There are a number of reasons for having a separate lexical analyser:-

   1. Handling  characters  is  expensive  -  very  expensive  on   some
      architectures.    A separate scanner enables one to concentrate on
      doing the text handling efficiently.


==== ercc07/emas-2900/wichtests_wt156.txt ====
'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'INTEGER'
        I;
    'PROCEDURE' P(A, B);
        'INTEGER'
            A;
        'INTEGER'
            B;
        I := A + B;
    P(3, 4);
    OUTREAL(99, I);
'END'

==== ercc07/emas-2900/sup27isrce_ndiag07s.txt ====

!*_ DATED 11 NOV 76   1
! ALTERATIONS BY K.YARWOOD ...
!        PRINT FL AND NEXT SYMBOL LINES COMMENTED OUT
!        PRINTTEXT'S TURNED TO PRINTSTRING'S
!        ADDITION FOR LONGINTEGER IN RT PRINT VAR
!         HEX EQUIVALENTS FOR INTS,LONGINTS ETC PRINTED
!        INF PRINTED IN HEX IN RT ERRMESS

%EXTERNALSTRINGFNSPEC STRHEX(%INTEGER I)
%EXTERNALSTRING(8)%FNSPEC STRINT(%INTEGER I)
%CONSTINTEGER STACKBASE=X'80100000';  ! START OF RESIDENT STACK
! %SYSTEMROUTINESPEC SIGNAL(%INTEGER I, J, K, %INTEGERNAME F)
%ROUTINESPEC PRINTMESS(%INTEGER N)
! %SYSTEMROUTINESPEC TIDY EXIT
!*
%ROUTINESPEC INDIAG(%INTEGER OLDLNB, L, PC, %INTEGERNAME NEWLNB)
! %ROUTINESPEC FDIAG(%INTEGER OLDLNB,PC,%INTEGERNAME NEWLNB)
%ROUTINESPEC ERMESS(%INTEGER N, INF)
! %ROUTINESPEC ICL9CELABELS


==== ercc07/emas-2900/cs4_ln8.txt ====


                                                            CS4:COMP_LN8
                           BUILDING A PARSER


     The aim of a parser is to construct a much  more  flexible  and  accessible
form  of  the  source program that the original text,   or even the token stream
output by the lexical analyser.   It  does  this  with  the  aid  of  a  grammar
describing the language; as a side effect of parsing syntax errors are detected.

     Parsers come in two main types called "top-down" and "bottom-up". Bottom-up
parsers compare the lexical tokens,  often in pairs,  with the grammar detecting
all valid occurrences or juxtapositions of these symbols.   As more symbols  are
drawn in the number of valid alternatives is reduced until only one is left.

     Top-down parsers try all the alternatives  of  the  grammar  in  succession
trying to match them with the statement;  if the end of the statement is reached
then a valid construct has been found. Top-down parsers are claimed to be slower
than  bottom-up  parsers  because  they  may go some way down wrong paths before
discovering an impasse.   On the other hand they are simpler to write  and  work

==== ercc07/emas-2900/wichtests_wt157.txt ====
'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'BOOLEAN' B;
    'REAL' X;
    'INTEGER' 'ARRAY' A(/ + 1 : .6&2/);
    'INTEGER' I, N;
    B := 'FALSE';
    N := &+2 * .6;
    X := 0;
    'COMMENT'   ;
    'BEGIN'
        'COMMENT'   ;
        'OWN' 'REAL' 'ARRAY' C0(/0 : 1/);
        'PROCEDURE' P(A, B, C);
            'VALUE' A;
            'INTEGER' A;
            'STRING' B;
            'BOOLEAN' 'ARRAY' C;
            'BEGIN'
            'BEGIN'
                C(/(1)/):= 'TRUE' 'OR' .8 > C0(/'IF' 'TRUE' 'THEN' 0 'ELSE'

==== ercc07/emas-2900/docs_standards.txt ====
@h[Compiler Standards for EMAS(3)]

@b[1. @u[Introduction]]


   Unlike 2900 series, IBM 370-XA provides no facilities or assistance for
executing stack-based procedures. To provide cross language calling and
advanced facilities like dynamic loading a carefully thought-out set of
conventions must be followed. The conventions proposed here follow those of
EMAS(1) with slight changes to permit array slicing and cross memory (i.e.
inward) calls.


@b[2. @u[Register Conventions]]


   When any EMAS(3) program is executing, GR11 is used as the stack top and it
is kept 8-byte-aligned (for efficient fetching). The stack may be multi-segment
- segment boundaries have no significance (unlike 2900). GR12 points to the head
of the shareable (pure) part of the program and is used to provide
addressibility. Program sharing requires that code executes correctly at

==== ercc07/emas-2900/wichtests_wt158.txt ====
'BEGIN'
    'BEGIN'
    'REAL' A;
    'GOTO' L;
    L: 'WHILE'
    'END'
'END'

==== ercc07/emas-2900/wichtests_wt159.txt ====
'BEGIN'
    'PROCEDURE' P(A);
    'VALUE' A: ;
    P(1)
'END'

==== ercc07/emas-2900/sup27csrce_releasen.txt ====

         Supervisor 27C Release Notice

      This Supervisor has the following changes

      1 Substantial changes to Supervisor & Schedule to allow
         the dynamic removal of SMACS,SACS & OCPS from a working
         System.  Also more support for dynamically closing file
         Systems without a full closdown.

      2) Minor corrections elsewhere.


         Supervisor 27B Relase Notice

      This Supervisor has the following changes

         1)  Uses store list constructed by CHOPSUPE(and thus requires a 
               version  of 21 Series CHOPSUPES to load it)

         2)  Changes to SCHEDULE to use individual timeouts

==== ercc07/emas-2900/ibmconvert_doc.txt ====

               IBM OBJECT MODULE UTILITIES


 1 USING THE UTILITIES
   1.1 CONVERTING A FILE
   1.2 INVOKING THE CONVERTER ROUTINE
   1.3 DUMPING AN OBJECT MODULE
   1.4 LOADING THE MODULES
 2 OVERVIEW OF CONVERTER ACTIONS
   2.1 COALESCING AREAS
   2.2 ESD DICTIONARY
   2.3 GENERATION OF AREAS
   2.4 INITIALISATION DATA
   2.5 RELOCATION PROCESSING
   2.6 END CARD
 3 BUILDING THE UTILITIES





==== ercc07/emas-2900/sup26hsrce_sup26hs.txt ====

!
! TO MAKE S SERIES SUPERVISOR REQUIRES:-
!     1) CHANGE SSERIES=NO TO SSERIES=YES IN CTOPTIONS FILE
!     2) REPLACE COMF BY S SERIES COM IN ERCC08.COMSF
!
!
! THESE CONST INTEGERS DEFINE SIZES AND LAYOUT OF IMPORTANT TABLES
! THEY HAVE TO BE HERE TO BE GLOBAL TO ALL ROUTINES INCLUDING IO ONES
!
%CONSTINTEGER LSTLEN=192;               ! LOCAL SEGMENT TABLE LENGTH
%CONSTLONGINTEGER LCACR=1;              ! ACR OF LOCAL CONTROLLER
%CONSTINTEGER DIRCSEG=10;               ! SEG NO OF DIRECTOR COMMS SEG
%CONSTINTEGER DIRCSEGOFFSET=0;          ! FOR ALIGNMENT IF NEEDED
%CONSTINTEGER DIRCSEGAD=DIRCSEG<<18;    ! VIRTUAL ADDRESS OF DIR COM SEG
%CONSTINTEGER DIRCSEGL=2048+255+LSTLEN; ! SIZE OF SMAE
                                        ! MADE UP OF 2049 FOR CBT
                                        ! LSTLEN FOR SST
                                        ! 48+64 FOR 2 BITS OF SYTEMCALL TABLE
                                        ! 32+48 FOR DIROUTP&SIGOUT
%CONSTINTEGER LSTACKLEN=3;              ! LOCAL CONT. STACK ELEN

==== ercc07/emas-2900/wichtests_wt160.txt ====
'BEGIN'
    'PROCEDURE' P(A);
    'REAL' A: ;
    P(1.0)
'END'

==== ercc07/emas-2900/wichtests_wt161.txt ====
'BEGIN'
    'PROCEDURE' P(A ; ;
    P(1)
'END'

==== ercc07/emas-2900/wichtests_wt162.txt ====
'BEGIN'
    'ARRAY' A(/(0:3/);
'END'

==== ercc07/emas-2900/wichtests_wt163.txt ====
'BEGIN'
    'IF' ('TRUE' 'OR' ('TRUE') 'THEN'
'END'

==== ercc07/emas-2900/wichtests_ebcdicctest.txt ====
PARM EBCDIC,FREE,QUOTES
ALGOL WICHTESTS_WT1,Y,.OUT
ALGOL WICHTESTS_WT2,Y,.OUT
RUN Y
ALGOL WICHTESTS_WT3,Y,.OUT
ALGOL WICHTESTS_WT4,Y,.OUT
ALGOL WICHTESTS_WT5,Y,.OUT
ALGOL WICHTESTS_WT6,Y,.OUT
ALGOL WICHTESTS_WT7,Y,.OUT
RUN Y
ALGOL WICHTESTS_WT8,Y,.OUT
ALGOL WICHTESTS_WT9,Y,.OUT
RUN Y
ALGOL WICHTESTS_WT10,Y,.OUT
RUN Y
ALGOL WICHTESTS_WT11,Y,.OUT
ALGOL WICHTESTS_WT12,Y,.OUT
ALGOL WICHTESTS_WT13,Y,.OUT
ALGOL WICHTESTS_WT14,Y,.OUT
ALGOL WICHTESTS_WT15,Y,.OUT
ALGOL WICHTESTS_WT16,Y,.OUT

==== ercc07/emas-2900/wichtests_wt164.txt ====
'BEGIN'
    L: 'GOTO' (L/)
'END'

==== ercc07/emas-2900/sup27bsrce_com33s.txt ====
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20J ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DDTADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,TOJDAY,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,DQADDR,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0, %C
         %INTEGER ITINT,CONTYPEA,GPCCONFA,FPCCONFA,SFCCONFA, %C
         BLKADDR,RATION,SMACS,TRANS,%LONGINTEGER KMON,  %C
         %INTEGER DITADDR,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,STOREAAD,PROCAAD,SFCCTAD,DRUMTAD,TSLICE,FEPS,SP1, %C
         SP2,SP3,SP4,SP5,SP6,SP7,SP8, %C
         LSTL,LSTB,PSTL,PSTB,HKEYS,HOOT,SIM,CLKX,CLKY,CLKZ,  %C
         HBIT,SLAVEOFF,INHSSR,SDR1,SDR2,SDR3,  %C
         SDR4,SESR,HOFFBIT,S2,S3,S4,END)
%RECORDFORMAT PARMF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6)
                                        ! MISC. ROUTINE SPECS
%EXTERNALROUTINESPEC PKMONREC(%STRING(20)TEXT,%RECORD(PARMF)%NAME P)
%EXTERNALSTRING(8)%FNSPEC STRHEX(%INTEGER N)
%EXTERNALROUTINESPEC OPMESS3(%STRING(63)TXT)

==== ercc07/emas-2900/sup26hsrce_makechkd.txt ====
PARM FREE,STACK,NOCHECK,NOLIST
IMP CTOPT+SUP26HSRCE_SUP26HS,SUPZZ,,.OUT
IMP CTOPT+SUP26HSRCE_COM32S,COMZZ,,.OUT
IMP CTOPT+SUP26HSRCE_PRINT05S,PRINTZZ,,.OUT
IMP CTOPT+SUP26HSRCE_OPER33S,OPERZZ,,.OUT
IMP CTOPT+SUP26HSRCE_ENTER09S,ENTERZZ,,.OUT
IMP CTOPT+SUP26HSRCE_GPC36S,GPCZZ,,.OUT
PARM FREE,OPT,STACK,NOLIST
IMP SUP26HSRCE_NDIAG07S,NDIAGZZ,,.OUT
IMP CTOPT+SUP26HSRCE_COMMS48S,COMMSZZ,,.OUT
IMP CTOPT+SUP26HSRCE_FAST32S,FASTZZ,,.OUT
IMP CTOPT+SUP26HSRCE_TAPE69S,TAPEZZ,,.OUT
PARM MAP
LINK
SUPZZ
COMZZ
PRINTZZ
OPERZZ
ENTERZZ
GPCZZ
NDIAGZZ

==== ercc07/emas-2900/wichtests_wt165.txt ====
'BEGIN'
'INTEGER' I;
    'FOR' 1:=I 'DO';
'END'

==== ercc07/emas-2900/impalgs_timetest.txt ====

%BEGIN
         %REAL X, Y, Z;

         %COMMENT %LIBRARY   A6, A30;

         %COMMENT A6, A30 ARE THE STANDARD
                  FUNCTIONS AND INPUT/OUTPUT ROUTINES;


      %REALPROCEDURE CPUTIME; %EXTERNAL REALCPUTIME;
          %INTEGER I, N, K, L, M, CASE;
         %INTEGERARRAY E1[1 : 1], E2[1 : 1,
       1 : 1], E3[1 : 1, 1 : 1, 1 : 1];
         %PROCEDURE P0;
                  ;

         %PROCEDURE P1(X);
                  %VALUE X;
                  %REAL X;
                  ;

==== ercc07/emas-2900/wichtests_wt166.txt ====
'BEGIN'
    'PROCEDURE' 1;;
    L;
'END'

==== ercc07/emas-2900/wichtests_ctest.txt ====
PARM FREE,QUOTES
ALGOL WICHTESTS_WT1,Y,.OUT
ALGOL WICHTESTS_WT2,Y,.OUT
RUN Y
ALGOL WICHTESTS_WT3,Y,.OUT
ALGOL WICHTESTS_WT4,Y,.OUT
ALGOL WICHTESTS_WT5,Y,.OUT
ALGOL WICHTESTS_WT6,Y,.OUT
ALGOL WICHTESTS_WT7,Y,.OUT
RUN Y
ALGOL WICHTESTS_WT8,Y,.OUT
ALGOL WICHTESTS_WT9,Y,.OUT
RUN Y
ALGOL WICHTESTS_WT10,Y,.OUT
RUN Y
ALGOL WICHTESTS_WT11,Y,.OUT
ALGOL WICHTESTS_WT12,Y,.OUT
ALGOL WICHTESTS_WT13,Y,.OUT
ALGOL WICHTESTS_WT14,Y,.OUT
ALGOL WICHTESTS_WT15,Y,.OUT
ALGOL WICHTESTS_WT16,Y,.OUT

==== ercc07/emas-2900/wichtests_wt167.txt ====
'BEGIN'
    'PROCEDURE' P();;
'END'

==== ercc07/emas-2900/ibm_rcode.txt ====
%ROUTINE NCODE(%INTEGER START, FINISH, CA)
%SWITCH SW(0 : 3)
%INTEGER D1, D2, D3, D4, H1, H2, H3, LENGTH, K, M, X, Y, Z, PTR
%INTEGER B0, B1, OPC
%CONSTINTEGER BLANKS = M'    '
%CONSTBYTEINTEGERARRAY HEX(0:15)=48,49,50,51,52,53,54,55,56,57,
                                        65,66,67,68,69,70;
%CONSTINTEGERARRAY C(0 : 127) =   %C
M'    ',M'    ',M'    ',M'    ',M'SPM ',
 M'BALR',M'BCTR',M'BCR ',M'SSK ',M'ISK ',M'SVC ',M'    ',M'    ',
 M'    ',M'    ',M'    ',M'LPR ',M'LNR ',M'LTR ',M'LCR ',
 M'NR  ',M'CLR ',M'OR  ',M'XR  ',M'LR  ',M'CR  ',M'AR  ',M'SR  ',
 M'MR  ',
 M'DR  ',M'ALR ',M'SLR ',M'LPDR',M'LNDR',M'LTDR',M'LCDR',M'HDR ',
 M'    ',M'    ',M'    ',M'LDR ',M'CDR ',M'ADR ',M'SDR ',M'MDR ',
 M'DDR ',M'AWR ',M'SWR ',M'LPER',M'LNER',M'LTER',
 M'LCER',M'HER ',M'    ',M'    ',M'    ',M'LER ',M'CER ',M'AER ',
 M'SER ',M'MER ',M'DER ',M'AUR ',M'SUR ',
 M'STH ',M'LA  ',M'STC ',M'IC  ',M'EX  ',M'BAL ',M'BCT ',M'B   ',
 M'LH  ',M'CH  ',M'AH  ',M'SH  ',M'MH  ',M'    ',M'CVD ',M'CVB ',
 M'ST  ',M'    ',M'    ',M'    ',M'N   ',M'CL  ',M'O   ',M'X   ',

==== ercc07/emas-2900/wichtests_wt168.txt ====
'BEGIN'
    'SWITCH' 0:=L;
    L: 'GOTO' O(/1/)
'END'

==== ercc07/emas-2900/wichtests_wt169.txt ====
'BEGIN'
    'ARRAY' A(/'IF' 'TRUE' 'THEN' 1 : 10/);
'END'

==== ercc07/emas-2900/wichtests_wt170.txt ====
L,'BEGIN'
    'REAL' A;
    'END'

==== ercc07/emas-2900/algolbm_calg40.txt ====
//JOB(ERCC07,STEPHENS,T=200,L=10000)
//OPTIONS(QUOTES,OPT)
//ALGOL
'COMMENT'
                         ***************
                         *             *
                         *   ALGG040   *
                         *             *
                         ***************
;
 'BEGIN'
 'COMMENT' MEP00;

'BEGIN' 'COMMENT' A0,A6,A12;
'INTEGER' N,M;

REPEAT:N:=READ;
  'IF' N=0 'THEN' 'GOTO' FINISH;
  M:=READ;
  'BEGIN' 'INTEGER' I,J,K,SA,SB,SC,SD;
  'REAL' KA,KB,RMS,MEAN;

==== ercc07/emas-2900/wichtests_wt171.txt ====
'BEGIN'
    'SWITCH' S:=L;
    L: 'GOTO' S(/1)
'END'

==== ercc07/emas-2900/algptoqs.txt ====

EDIT(PERCENT,QUOTES)
(R/%INTEGER/I/'INTEGER'/)*
T(R/%REAL/I/'REAL'/)*
T(R/%BOOLEAN/I/'BOOLEAN'/)*
T(R/%STRING/I/'STRING'/)*
T(R/%LABEL/I/'LABEL'/)*
T(R/%SWITCH/I/'SWITCH'/)*
T(R/%PROCEDURE/I/'PROCEDURE'/)*
T(R/%OWN/I/'OWN'/)*
T(R/%COMMENT/I/'COMMENT'/)*
T(R/%VALUE/I/'VALUE'/)*
T(R/%ARRAY/I/'ARRAY'/)*
T(R/%DIV/I/'DIV'/)*
T(R/%OR/I/'OR'/)*
T(R/%AND/I/'AND'/)*
T(R/%IMPL/I/'IMPL'/)*
T(R/%EQUIV/I/'EQUIV'/)*
T(R/%NOT/I/'NOT'/)*
W
(R/%IF/I/'IF'/)*

==== ercc07/emas-2900/wichtests_wt172.txt ====
'BEGIN'
    'ARRAY' A(/1:10/);
    A(/1) := 1
'END'

==== ercc07/emas-2900/sup26hsrce_samplectopt.txt ====

!
! THIS FILE CONTAINS THE CONST INTEGERS TO CONTROL COMPILE TIME OPTIONS
! IN EMAS2900
! IT IS INTENDED TO BE CONCATENATED ONTO THE FRONT OF SOURCEFILES
! BEFORE COMPILATION
%CONSTINTEGER YES=1
%CONSTINTEGER NO=0
%CONSTINTEGER SSERIES=NO;               ! NO=PSERIES, YES=SSERIES
%CONSTINTEGER MULTIOCP=YES;             ! YES TO INCLUDE SEMAPHORING
%CONSTINTEGER SFCFITTED=NO;             ! NO FOR DISC ONLY SITES
%CONSTINTEGER CPFITTED=NO;              ! CARD PUNCH FITTED
%CONSTINTEGER SNOOZING=YES;             ! YES ALLOWS SUSPEND IN STORE
                                        ! ADVANTAGEOUS WITH LARGE STORES
%CONSTINTEGER MONLEVEL=31;              ! 0=NO MONITORING
                                        ! 2**0 SET=VIDEO UPDATING
                                        ! 2**1 SET=KMONNING
                                        ! 2**2 SET=SUP TIMING MEASUREMENTS
                                        ! 2**3 SET=CAT TABLE TRANSITIONS
                                        ! 2**4 SET= STROBING
                                        ! 2**8 SET=EVENT HARVESTING

==== ercc07/emas-2900/ibmsup_strrts.txt ====
%EXTERNALROUTINESPEC ETOI %ALIAS "S#ETOI"(%INTEGER AD,L)
%EXTERNALROUTINESPEC ITOE %ALIAS "S#ITOE" (%INTEGER AD,L)

%EXTERNALSTRING(255)%FN EXTRACT VALUE(%STRING(*)%NAME REF,%INTEGERNAME FLAG)
!***********************************************************************
!*    RETURNS THE VALUE OF REF ALTERING STRING FORMATS TO IMP          *
!***********************************************************************
%INTEGER I,J,K,SP,AD
%SHORTINTEGER L,F
%SWITCH SW(0:5)
%STRING(255)RES
      *LM_0,1,REF
      *ST_1,AD
      *STH_0,L
      *SRL_0,16
      *STH_0,F
      FLAG=0
      %IF F<5 %THEN ->SW(F)
SW(1):                                  ! IMP LONGSTRING
      FLAG=1
INV:  %RESULT="INVALID M-L STRING FOR EXTRACT VALUE"

==== ercc07/emas-2900/wichtests_wt173.txt ====
'BEGIN'
    'ARRAY' A(/1:10/);
    A(/1/)= 1
'END'

==== ercc07/emas-2900/vaxsim2.txt ====
          !###########################################
          !#    S-assembler for VAX SIMULA system    #
          !#           Peter S. Robertson            #
          !#               Rob Pooley                #
          !#               Mar.  1982                #
          !###########################################





!           ***** G E N E R A L    S T R U C T U R E *****

!            .-------------.              .-------------.
!            |             |              |             |
!            |             |--directives->|             |
!  S-code--->| S-assembler |              | S-generator |----object file---->
!            |             |----object--->|             |
!            |             |              |             |
!            `-------------'              `-------------'
!                  ^

==== ercc07/emas-2900/algolbm_calg43.txt ====
//JOB(ERCC07,STEPHENS,T=200,L=10000)
//OPTIONS(QUOTES,OPT)
//ALGOL
'COMMENT'
                         ***************
                         *             *
                         *   ALGG043   *
                         *             *
                         ***************
;
 'BEGIN''COMMENT' PROGRAM ON H & O GRADE SURVEYS, IN ALGOL 1900,
                  MODIFIED TO I.B.M. CARD PUNCHES;
      'COMMENT' INPUT/OUTPUT PROCEDURES;

      'COMMENT' END OF INPUT/OUTPUT PROCEDURES;

  'PROCEDURE' CRDTXT;
   'BEGIN' 'INTEGER' I,J;
 TRY AGAIN : INSYMBOL(98,'('*')',I);
      'IF' I = 1 'THEN'
      'BEGIN'

==== ercc07/emas-2900/wichtests_wt174.txt ====
'BEGIN'
    'INTEGER' A;
    'FOR' A=1 'DO'
'END'

==== ercc07/emas-2900/algolbm_calg44.txt ====
//JOB(ERCC07,STEPHENS,T=200,L=10000)
//OPTIONS(QUOTES,OPT)
//ALGOL
'COMMENT'
                         ***************
                         *             *
                         *   ALGG044   *
                         *             *
                         ***************
;
         'BEGIN'
         'INTEGER'  DV1,DIN,DV2,MT1,I,J,NAT;
         'REAL'  PI,ANGLE,A;
      'ARRAY' CELL[1:6],NN,MM[1:3,1:3],TITLE[1:200],
         INDEX[1:20];
         'BOOLEAN'  'ARRAY'  KEY[1:20];

      'COMMENT' INPUT/OUTPUT PROCEDURES;

'REAL' 'PROCEDURE' READ;
'EXTERNAL'READ1900;

==== ercc07/emas-2900/wichtests_wt175.txt ====
'BEGIN'
    'SWITCH' S=L1,L2;
    L1:L2:
'END'

==== ercc07/emas-2900/algolbm_calg45.txt ====
//JOB(ERCC07,STEPHENS,T=200,L=10000)
//OPTIONS(QUOTES,OPT)
//ALGOL
'COMMENT'
                         ***************
                         *             *
                         *   ALGG045   *
                         *             *
                         ***************
;

 'BEGIN'
'COMMENT' G4628T;
'INTEGER' COUNT;
'BEGIN' 'INTEGER' I,J,K,M,N,MIN,L,FLOWH,F,X;
COUNT:=0;
      M:=READ;N:=READ;
'BEGIN' 'INTEGER' 'ARRAY' ZERO,BOOL,U[1:N-1,1:M-1],C,WGHT[1:N,1:M],
            COL[1:N,1:2],ROW[1:2,1:M];
      'BOOLEAN' 'ARRAY' NLROW[1:N-1],NLCOL[1:M-1];'BOOLEAN' MLAB;
    WRITETEXT('(''('C')'COST'('S')'MATRIX'('S')'IS')');

==== ercc07/emas-2900/wichtests_wt176.txt ====
'BEGIN'
    'OWN' 'ARRAY'(/1:10/);
'END'

==== ercc07/emas-2900/algolbm_calg46.txt ====
//JOB(ERCC07,STEPHENS,T=200,L=10000)
//OPTIONS(QUOTES,OPT)
//ALGOL
'COMMENT'
                         ***************
                         *             *
                         *   ALGG046   *
                         *             *
                         ***************
;
 'BEGIN'
 'COMMENT'
!***GBI1****BENGBME***************************
      ;
'BEGIN' 'COMMENT' INTERPOLATION OF LOAD CAPACITY USING CARPET;
'COMMENT' A0,A6;  'ARRAY' SHAPE[1:7],TAPER[1:13];
'REAL' HI,BOL,I,J,TOLERANCE; 'ARRAY' PZ[1:7,1:13];
'PROCEDURE' LOCATE(VECTOR,L,U,VALUE,I,TOLERANCE,UP,ESCAPE);
            'VALUE' L,U,VALUE,TOLERANCE,UP;
            'REAL' VECTOR,VALUE,TOLERANCE; 'INTEGER' L,U,I;
            'BOOLEAN' UP; 'LABEL' ESCAPE;

==== ercc07/emas-2900/wichtests_wt177.txt ====
'BEGIN'
    'INTEGER' I;
    'FOR' I:= 1 'STEP' 1 'DO'
'END'

==== ercc07/emas-2900/sup26isrce_mindiags.txt ====
%EXTERNALSTRINGFNSPEC STRHEX(%INTEGER I)
%SYSTEMROUTINE NDIAG(%INTEGER PCOUNT, LNB, FAULT, INF)
!***********************************************************************
!*_______'MASTER DIAGNOSTIC ROUTINE'. DISCOVERS THE LANGUAGE OF THE    *
!*_______FAILED ROUTINE FROM WORD 4 OF THE GLA AND CALLS APPROPRIATE   *
!*_______DIAGNOSTIC ROUTINE. THIS IS REPEATED TILL ALL DIAGNOSTICS     *
!*_______GIVEN.                                                        *
!*_______PCOUNT = PCOUNTER AT FAILURE                                  *
!*_______LNB    = LOCAL NAME BASE AT FAILURE                           *
!*_______FAULT  = FAILURE  (0=%MONITOR  REQUESTED)                     *
!*_______INF    =ANY FURTHER INFORMATION                               *
!***********************************************************************
PRINTSTRING("
MINIMUM NDIAGS ENTERED
FAULT NO ="); WRITE(FAULT,2)
PRINTSTRING("
PC=X".STRHEX(PCOUNT)."
LNB=X".STRHEX(LNB)."
")
%END
%ENDOFFILE

==== ercc07/emas-2900/wichtests_wt178.txt ====
'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'INTEGER'
        I;
    'INTEGER' 'PROCEDURE' C;
        'BEGIN'
        'FOR' C := 1 'STEP' 1 'UNTIL' 3 'DO'
            'BEGIN'
            I := I + 1;
            'IF' I < 10 'THEN'
                C := C + 1
            'END'
        'END';
    I := 0;
    OUTREAL(99, C)
'END'

==== ercc07/emas-2900/wichtests_wt179.txt ====
LABELWITHOUTCOLON
'BEGIN'
'END'

==== ercc07/emas-2900/algolbm_calg49.txt ====
//JOB(ERCC07,STEPHENS,T=200,L=10000)
//OPTIONS(QUOTES,OPT)
//ALGOL
'COMMENT'
                         ***************
                         *             *
                         *   ALGG049   *
                         *             *
                         ***************
;
 'BEGIN'
'BEGIN'
'COMMENT' WJW1;
'COMMENT' A0,A6;
'INTEGER' Y,I,J,E,COUNT;
'REAL' A,B,C,BETAD,G,R,S,M,N,O,P,Q,GA,MA;
'INTEGER' 'ARRAY' H,K,L[1:6];
'REAL' 'ARRAY' D[1:6],SEP[0:10];
GA:=READ;
MA:=READ;
E:=READ;

==== ercc07/emas-2900/kentclokset_clok1s.txt ====
CLOK MODULE 0001
 SUBTITLE 8
      *
      *             Stand-alone program to set the real time clock
      *                            from the handkeys
      *
      *                       Runs in real address mode
      *
      *        Copyright (C) R.D. Eager   University of Kent   MCMLXXXI
      *
 CHAPTER
 SUBTITLE 1
      *          Image store addresses for 2960
&HANDKEYS EQU X'6006'  * Hand keys (switches)
&CLKX EQU X'600C'  * Clock X register
&CLKY EQU X'600D'  * Clock Y register
&CLKZ EQU X'600E'  * Clock Z register
 SUBR CLOCK
 SUBTITLE 7
      *
      *          Bootstrap response area

==== ercc07/emas-2900/wichtests_wt180.txt ====
'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'INTEGER'
        I,
        J,
        K,
        M;
    'INTEGER' 'PROCEDURE' GPPS(I, N, V, Z);
        'INTEGER'
            I,
            N,
            V,
            Z;
        'BEGIN'
        'FOR' I := 1 'STEP' 1 'UNTIL' N 'DO'
            V := Z;
        GPPS := 1
        'END';
    'FOR' M := 1 'STEP' 1 'UNTIL' 25 'DO'
        'BEGIN'
        I := GPPS(I, M + 1, K, 'IF' I = 1 'THEN' 1 'ELSE' K +

==== ercc07/emas-2900/sup27fsrce_com33s.txt ====
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20J ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DDTADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,TOJDAY,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,DQADDR,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0, %C
         %INTEGER ITINT,CONTYPEA,GPCCONFA,FPCCONFA,SFCCONFA, %C
         BLKADDR,RATION,SMACS,TRANS,%LONGINTEGER KMON,  %C
         %INTEGER DITADDR,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,STOREAAD,PROCAAD,SFCCTAD,DRUMTAD,TSLICE,FEPS,SP1, %C
         SP2,SP3,SP4,SP5,SP6,SP7,SP8, %C
         LSTL,LSTB,PSTL,PSTB,HKEYS,HOOT,SIM,CLKX,CLKY,CLKZ,  %C
         HBIT,SLAVEOFF,INHSSR,SDR1,SDR2,SDR3,  %C
         SDR4,SESR,HOFFBIT,S2,S3,S4,END)
%RECORDFORMAT PARMF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6)
                                        ! MISC. ROUTINE SPECS
%EXTERNALROUTINESPEC PKMONREC(%STRING(20)TEXT,%RECORD(PARMF)%NAME P)
%EXTERNALSTRING(8)%FNSPEC STRHEX(%INTEGER N)
%EXTERNALROUTINESPEC OPMESS3(%STRING(63)TXT)

==== ercc07/emas-2900/algolbm_calg50.txt ====
//JOB(ERCC07,STEPHENS,T=200,L=10000)
//OPTIONS(QUOTES,OPT)
//ALGOL
'COMMENT'
                         ***************
                         *             *
                         *   ALGG050   *
                         *             *
                         ***************
;
 'BEGIN'

'BEGIN' 'COMMENT' TEST PROGRAM MK.2;
'COMMENT'   JFMP2  ;
      'COMMENT' A0,A6;
      'REAL' XLIM,YLIM,TLIM,GAPX,GAPY,H;

      XLIM:=READ;  YLIM:=READ;  TLIM:=READ;
      GAPX:=READ;  GAPY:=READ;     H:=READ;
'BEGIN'
      'REAL' X,Y,T,K,W,G,B,C,INTA,INC,DTL;

==== ercc07/emas-2900/algolbm_calg52.txt ====
//JOB(ERCC07,STEPHENS,T=200,L=10000)
//OPTIONS(QUOTES,OPT)
//ALGOL
'COMMENT'
                         ***************
                         *             *
                         *   ALGG052   *
                         *             *
                         ***************
;
 'BEGIN'
'BEGIN' 'COMMENT' A0,A6; 'REAL' CHI,MU,NU,S,DX,ZETAE,ZETA,
A,B,LCHI,SCHI,UCHI,LMU,SMU,UMU,THETAIG,PHI,LAMDA,ETA;
'INTEGER' M,X,I,J,CHOICE;
'REAL' 'PROCEDURE' EM(Y,L); 'VALUE' Y,L; 'REAL' Y; 'INTEGER' L;
'BEGIN' 'REAL' S, Q; 'INTEGER' R;
'IF' L = 0 'THEN' S:=1 'ELSE' 'BEGIN' S:=1; Q:=1;
'FOR' R:=1 'STEP' 1'UNTIL' L 'DO' 'BEGIN' Q:=Q*Y/R; S:=S+Q 'END';
EM:=S 'END'; 'END' OF PROCEDURE EM;
'INTEGER' 'PROCEDURE' FA(X); 'VALUE' X; 'INTEGER' X; 'BEGIN'
'INTEGER' I,P; 'IF' X = 0 'THEN' P:=1'ELSE' 'BEGIN' P:=1;

==== ercc07/emas-2900/sup26esrce_sup26es.txt ====

!
! TO MAKE S SERIES SUPERVISOR REQUIRES:-
!     1) CHANGE SSERIES=NO TO SSERIES=YES IN CTOPTIONS FILE
!     2) REPLACE COMF BY S SERIES COM IN ERCC08.COMSF
!
!
! THESE CONST INTEGERS DEFINE SIZES AND LAYOUT OF IMPORTANT TABLES
! THEY HAVE TO BE HERE TO BE GLOBAL TO ALL ROUTINES INCLUDING IO ONES
!
%CONSTINTEGER LSTLEN=192;               ! LOCAL SEGMENT TABLE LENGTH
%CONSTLONGINTEGER LCACR=1;              ! ACR OF LOCAL CONTROLLER
%CONSTINTEGER DIRCSEG=10;               ! SEG NO OF DIRECTOR COMMS SEG
%CONSTINTEGER DIRCSEGOFFSET=0;          ! FOR ALIGNMENT IF NEEDED
%CONSTINTEGER DIRCSEGAD=DIRCSEG<<18;    ! VIRTUAL ADDRESS OF DIR COM SEG
%CONSTINTEGER DIRCSEGL=2048+255+LSTLEN; ! SIZE OF SMAE
                                        ! MADE UP OF 2049 FOR CBT
                                        ! LSTLEN FOR SST
                                        ! 48+64 FOR 2 BITS OF SYTEMCALL TABLE
                                        ! 32+48 FOR DIROUTP&SIGOUT
%CONSTINTEGER LSTACKLEN=3;              ! LOCAL CONT. STACK ELEN

==== ercc07/emas-2900/imp80tests_rt10.txt ====
%BEGIN
%RECORDFORMAT F1(%INTEGER I,J,K,L)
%RECORDFORMAT F2(%INTEGER P,%RECORD(F1)%ARRAY A(0:8))
%RECORD(F2) R,RP
%RECORD(F2)%NAME RR
%RECORD(F1)%NAME RN
%INTEGER I,J,K,L
RR==RP
I=ADDR(R_A(0))
RN==R_A(0)
J=ADDR(R_A(0)_K)
K=ADDR(RR_A(0))
L=ADDR(RR_A(0)_K)
RN==RR_A(0)
%IF I+8=J %AND ADDR(R)+4=I %AND K+8=L %C
      %AND ADDR(RR)+4=K=ADDR(RN) %THEN PRINTSTRING("
BYTE ADDRESS ANSWERS OK
") %AND %STOP
%IF I+4=J %AND ADDR(R)+2=I %AND K+4=L %C
      %AND ADDR(RR)+2=K=ADDR(RN) %THEN PRINTSTRING("
WORD ADDRESS ANSWERS OK

==== ercc07/emas-2900/sup27bsrce_makechkd.txt ====
PARM FREE,NOCHECK,NOLIST,STACK
IMP80 CTOPT+SUP27BSRCE_SUP27BS,SUPZZ,,.OUT
IMP80 CTOPT+SUP27BSRCE_COM33S,COMZZ,,.OUT
IMP80 CTOPT+SUP27BSRCE_PRINT06S,PRINTZZ,,.OUT
IMP80 CTOPT+SUP27BSRCE_OPER34S,OPERZZ,,.OUT
IMP80 CTOPT+SUP27BSRCE_ENTER10S,ENTERZZ,,.OUT
PARM FREE,OPT,STACK,NOLIST
IMP80 CTOPT+SUP27BSRCE_GPC37S,GPCZZ,,.OUT
IMP80 SUP27BSRCE_NDIAG07S,NDIAGZZ,,.OUT
IMP80 CTOPT+SUP27BSRCE_COMMS49S,COMMSZZ,,.OUT
IMP80 CTOPT+SUP27BSRCE_FAST35S,FASTZZ,,.OUT
IMP80 CTOPT+SUP27BSRCE_TAPE72S,TAPEZZ,,.OUT
PARM MAP
LINK
SUPZZ
COMZZ
PRINTZZ
OPERZZ
ENTERZZ
GPCZZ
NDIAGZZ

==== ercc07/emas-2900/imp80tests_rt11.txt ====
%BEGIN
!***********************************************************************
!*    SHOULD RUN WITHOUT OPUT. LOOPS ON SOME COMPILERS DUE TO          *
!*    MISSING LABELS GIVING JUMPS WITH ZERO OFFSET                     *
!***********************************************************************
%INTEGER I,K,L
%CONSTINTEGER J=0
      I=4000; L=10
      %IF I>4095 %AND J#0 %THEN I=I+1
      %IF I>4095 %AND J#0 %THEN I=I+1 %ELSE I=I-1
      %IF I>4095 %AND J#0 %THEN %START; %FINISH
      %IF I>4095 %AND J#0 %THEN %START
         I=I+1
      %FINISH %ELSE I=I-1
      %IF (I>4095 %AND J#0 ) %AND L=1 %THEN I=I+1
      %IF (I>4095 %AND J#0) %OR L=1 %THEN I=I+1
      %UNLESS I>4095 %AND J#0 %THEN I=I+1
      %UNLESS I>4095 %AND J#0 %THEN I=I+1 %ELSE I=I-1
      %UNLESS I>4095 %AND J#0 %THEN %START; %FINISH
      %UNLESS I>4095 %AND J#0 %THEN %START
         I=I+1

==== ercc07/emas-2900/impalgs_makeal50.txt ====
EDIT NRALG06S,ALGOL50S
(M.!*DELSTART.D.!*DELEND.D1)999
TR.RELEASE .I.VERSION 50.D.PDS.
A.DATED .D1
TM.FROM2.P1D1M.FN FROM2.P1D.%END.D1
T(R.FROM2.I.ASLIST.A.).I._S2.P1)99
TM.FROM3.P1D1M.FN FROM3.P1D.%END.D1
T(R.FROM3.I.ASLIST.A.).I._S3.P1)999
TM.FROM1(.P1D1M.FN FROM1.P1D.%END.D1
T(R.FROM1(.I.ASLIST(.A.).I._S1.P1)999
TM.REPLACE1(.P1D1M.INE REPLACE1(.P1D.%END.D1
T(R.REPLACE1(.I.ASLIST(.R.,.I.)_S1=(.P1)999
TM.REPLACE2(.P1D1M.INE REPLACE2(.P1D.%END.D1
T(R.REPLACE2(.I.ASLIST(.R.,.I.)_S2=(.P1)999
TM.REPLACE3(.P1D1M.INE REPLACE3(.P1D.%END.D1
T(R.REPLACE3(.I.ASLIST(.R.,.I.)_S3=(.P1)999
T(A.!QIN.I.;.)999
T(A.!QOUT.R1)999
E
PARM OPT,NOLIST
IMP ALGOL50S,ALGOL50X,.LP,.OUT

==== ercc07/emas-2900/imp80tests_rt12.txt ====
%BEGIN
!***********************************************************************
!*    TESTS CLEARING RECORDARRAY FOR OVERWRITING OFF END               *
!***********************************************************************
%INTEGER I
%RECORDFORMAT F(%STRING(15)NAME,%INTEGER I,J,K,%LONGREAL X,Y, %C
      %LONGREALARRAY A(0:20))
%RECORD(F)%ARRAY ONE(1:100)
%RECORD(F)%ARRAY TWO(1:2)
      TWO(1)_NAME="PETE"
      %CYCLE I=1,1,100
         ONE(I)=0
      %REPEAT
      %IF TWO(1)_NAME#"PETE" %THEN PRINTSTRING("***ERROR***")
%ENDOFPROGRAM

==== ercc07/emas-2900/rexhexs.txt ====
%EXTERNALROUTINE RXHEX(%STRING(255) S)
%LONGINTEGER L
%INTEGER I,J
%CONSTBYTEINTEGERARRAY CLASS(0:127)=255(48),
                                        0,1,2,3,4,5,6,7,8,9,255(7),
                                        10,11,12,13,14,15,255(*)
      ->ERROR %UNLESS LENGTH(S)=16
      L=0
      %FOR I=1,1,16 %CYCLE
         J=CLASS(CHARNO(S,I))
         ->ERROR %IF J=255
         L=L!(LENGTHENI(J)<<(64-4*I))
      %REPEAT
      PRINTFL(LONGREAL(ADDR(L)),16)
      PRINTSTRING("{R'".S."'}")
      PRINTSYMBOL(NL)
      %RETURN
ERROR:
      PRINTSTRING("???")
      %END
%ENDOFFILE

==== ercc07/emas-2900/impalgs_makeal51.txt ====
EDIT NRALG06S,ALGOL51S
(M.!*DELSTART.D.!*DELEND.D1)999
TR.RELEASE .I.VERSION 51.D.PDS.
A.DATED .D1
TM.FROM2.P1D1M.FN FROM2.P1D.%END.D1
T(R.FROM2.I.ASLIST.A.).I._S2.P1)99
TM.FROM3.P1D1M.FN FROM3.P1D.%END.D1
T(R.FROM3.I.ASLIST.A.).I._S3.P1)999
TM.FROM1(.P1D1M.FN FROM1.P1D.%END.D1
T(R.FROM1(.I.ASLIST(.A.).I._S1.P1)999
TM.REPLACE1(.P1D1M.INE REPLACE1(.P1D.%END.D1
T(R.REPLACE1(.I.ASLIST(.R.,.I.)_S1=(.P1)999
TM.REPLACE2(.P1D1M.INE REPLACE2(.P1D.%END.D1
T(R.REPLACE2(.I.ASLIST(.R.,.I.)_S2=(.P1)999
TM.REPLACE3(.P1D1M.INE REPLACE3(.P1D.%END.D1
T(R.REPLACE3(.I.ASLIST(.R.,.I.)_S3=(.P1)999
T(A.!QIN.I.;.)999
T(A.!QOUT.R1)999
E
PARM OPT,NOLIST
IMP ALGOL51S,ALGOL51X,.LP,.OUT

==== ercc07/emas-2900/imp80tests_rt13.txt ====
%BEGIN
!***********************************************************************
!*    TESTS ASSIGNING TO STRING ARRAYS WHEN PASSED BY NAME             *
!***********************************************************************
%STRING(11)%ARRAY A(0:15,0:15)
%ROUTINE FRED(%STRINGARRAYNAME WA)
%STRING(15)W
%INTEGER WP
      WP=1
      W=WA(WP,WP)
      %IF W="?" %THEN WA(WP,WP)="ABCD"
%END
A(1,1)="?"
FRED(A)
PRINTSTRING(A(1,1))
%ENDOFPROGRAM

==== ercc07/emas-2900/imp80tests_rt14.txt ====

%BEGIN
!***********************************************************************
!*    A TEST TO CHECK THE LINE NUMBER OF A FAILURE AT RUN TIME         *
!***********************************************************************
%INTEGERARRAY A(0:4)
%INTEGER I
I=10
%IF 1<0 %THEN %START
      !
      !
      %STOP
%FINISH %ELSE A(I)=A(I)+1
      !
%ENDOFPROGRAM

==== ercc07/emas-2900/sup26fsrce_samplectopt.txt ====

!
! THIS FILE CONTAINS THE CONST INTEGERS TO CONTROL COMPILE TIME OPTIONS
! IN EMAS2900
! IT IS INTENDED TO BE CONCATENATED ONTO THE FRONT OF SOURCEFILES
! BEFORE COMPILATION
%CONSTINTEGER YES=1
%CONSTINTEGER NO=0
%CONSTINTEGER SSERIES=NO;               ! NO=PSERIES, YES=SSERIES
%CONSTINTEGER MULTIOCP=NO;              ! YES TO INCLUDE SEMAPHORING
%CONSTINTEGER SFCFITTED=YES;            ! NO FOR DISC ONLY SITES
%CONSTINTEGER CPFITTED=YES;             ! CARD PUNCH FITTED
%CONSTINTEGER SNOOZING=NO;              ! YES ALLOWS SUSPEND IN STORE
                                        ! ADVANTAGEOUS WITH LARGE STORES
%CONSTINTEGER MONLEVEL=7;               ! 0=NO MONITORING
                                        ! 2**0 SET=VIDEO UPDATING
                                        ! 2**1 SET=KMONNING
                                        ! 2**2 SET=SUP TIMING MEASUREMENTS
                                        ! 2**3 SET=CAT TABLE TRANSITIONS
                                        ! 2**4 SET= STROBING
                                        ! 2**8 SET=EVENT HARVESTING

==== ercc07/emas-2900/imp80tests_rt15.txt ====

%BEGIN
!***********************************************************************
!*    TESTS SOME VERY NOTTED CONDITIONS FOR CONSISTENCY. NO OPUT IF OK *
!***********************************************************************
%INTEGER I,J,K
%ROUTINESPEC A
%ROUTINESPEC B
%ROUTINESPEC C
      K=0
      %CYCLE I=-1,1,1
         %CYCLE J=0,1,3
            %IFNOTNOTNOTNOT I=1 %THEN A %ELSE B
            %IFNOT (%NOT I=1) %THEN A %ELSE B
            %IF I=1 %THEN A %ELSE B
            C
            %IFNOT I=1 %THEN A %ELSE B
            %UNLESS I=1 %THEN A %ELSE B
            C
            %IF I=1 %AND J#2 %THEN A %ELSE B
            %IF I=1 %ANDNOT J=2 %THEN A %ELSE B

==== ercc07/emas-2900/imp80tests_rt16.txt ====

%BEGIN
%INTEGER I
%RECORDFORMAT F(%BYTEINTEGER B1,(%BYTEINTEGER B2,B3,B4,B5,B6,B7,B8 %C
      %OR %STRING(6)S) %OR %INTEGER I1,I2 %OR %LONGREAL L1)
%RECORD(F) R
      WRITE(ADDR(R_B1),9); NEWLINE
      WRITE(ADDR(R_I1),9); NEWLINE
      WRITE(ADDR(R_L1),9); NEWLINE
      WRITE(ADDR(R_B8),9)
%ENDOFPROGRAM

==== ercc07/emas-2900/imp80tests_rt17.txt ====

%BEGIN
%RECORDFORMAT F(%INTEGER I,J,%RECORD(F)%NAME LINK)
%INTEGER LB,UB
      LB=0; UB=255
%RECORD(F)%ARRAY A(LB:UB)
%RECORD(F)%NAME RN
%INTEGER I,J
      %CYCLE I=0,1,X'FE'
         A(I)_LINK==A(I+1)
      %REPEAT
      A(x'ff')_LINK==RECORD(0)
      J=0; I=0
      RN==A(0)
      %WHILE RN_LINK\==RECORD(0) %CYCLE
         J=J+1
         RN==RN_LINK
      %REPEAT
      %IF J#255 %THEN PRINTSTRING("WRONG TOTAL") %AND WRITE(J,5)
%ENDOFPROGRAM

==== ercc07/emas-2900/kntptanal.txt ====
!***********************************************************************
!*
!*                 PAGETURN monitoring analysis program
!*
!*       Copyright (C) R.D. Eager   University of Kent   MCMLXXXI
!*
!***********************************************************************
!
!
!***********************************************************************
!*
!*          Constants
!*
!***********************************************************************
!
%CONSTINTEGER MAXEPAGE = 120*64-1;   ! Maximum number of epages in VM
%CONSTBYTEINTEGERARRAY HEX(0:15) = %C
'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'
!
!
!***********************************************************************

==== ercc07/emas-2900/com35s.txt ====
!
!* Communications record format - extant from CHOPSUPE 22A onwards *
!*
%RECORDFORMAT COMF(%INTEGER OCPTYPE,SLIPL,SBLKS,SEPGS,NDISCS,DLVNADDR, %C
         (%INTEGER GPCTABSIZE,GPCA %OR %INTEGER DCUTABSIZE,DCUA), %C
         %INTEGER SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,TOJDAY,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,SERVAAD,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0,%INTEGER ITINT,CONTYPEA, %C
         (%INTEGER GPCCONFA %OR %INTEGER DCUCONFA), %C
         %INTEGER FPCCONFA,SFCCONFA,BLKADDR,RATION, %C
         (%INTEGER SMACS %OR %INTEGER SCUS), %C
         %INTEGER TRANS,%LONGINTEGER KMON,  %C
         %INTEGER DITADDR,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,STOREAAD,PROCAAD,SFCCTAD,DRUMTAD,TSLICE,FEPS,  %C
         MAXCBT,PERFORMAD,SP1,SP2,SP3,SP4,SP5,SP6, %C
         LSTL,LSTB,PSTL,PSTB,HKEYS,HOOT,SIM,CLKX,CLKY,CLKZ,  %C
         HBIT,SLAVEOFF,INHSSR,SDR1,SDR2,SDR3,  %C
         SDR4,SESR,HOFFBIT,BLOCKZBIT,BLKSHIFT,BLKSIZE,END)

==== ercc07/emas-2900/imp80tests_rt18.txt ====

%BEGIN
%STRING(30)BATTLE
%STRING(5)T
      BATTLE="HASTINGS1066"
      %UNLESS BATTLE->("10") %THEN PRINTSTRING("NEW RESLN NOT OK")
      %UNLESS BATTLE->("ST").("6").T %AND T="6"  %THEN %C
         PRINTSTRING("DOUBLE RESLN NOT OK")
%ENDOFPROGRAM

==== ercc07/emas-2900/imp80tests_rt19.txt ====

%BEGIN
%STRING(31)%ARRAY NAMES(0:99)
%ROUTINESPEC STRINGSORT(%STRINGARRAYNAME X,%INTEGER F,T)
%INTEGER I,N
      READ(N)
      READSTRING(NAMES(I)) %FOR I=1,1,N
      STRINGSORT(NAMES,1,N)
      PRINTSTRING(NAMES(I).TOSTRING(NL)) %FOR I=1,1,N
%ROUTINE STRINGSORT(%STRINGARRAYNAME X,%INTEGER FROM,TO)
%INTEGER L,U
%STRING(255)D
      %RETURN %IF FROM>=TO;             ! NOTHING (LEFT) TO SORT
      L=FROM; U=TO
      D=X(U);                           ! THE PARTITION BOUND
      %CYCLE
         L=L+1 %WHILE L<U %AND D>X(L)
         %EXIT %IF L>=U
         X(U)=X(L);                                                          
         U=U-1 %WHILE L<U %AND X(U)>D
         X(L)=X(U)

==== ercc07/emas-2900/docs_wplangsup.txt ====

Memo to:Dr. G.E.Thomas


         Report of the Working Party on Languages.

     I draw your attention to my Memo 0f 30.11.81 and I attach a copy. The lack
of expertise I commented on then has resulted in a report based on serious
misunderstandings of some of the technical issues.

Comments on section B
______________________

     There is general lack of distinction between the benefits of language
design, the benefits of International Standards and the benefits of User
expertise. A nebulous cloak of the value of "integration" and "support" is cast
lightly over this whole area. The benefits Imp is alleged to gain from
"integration" with EMAS is almost entirely a myth. Similarly efforts devoted
to providing better "integration" of Pascal and Fortran will be largely wasted
unless the International Standards are abandoned.


==== ercc07/emas-2900/imp80tests_rt20.txt ====
%BEGIN
! TESTS PASSING RECORD BY VALUE. NO OUTPUT IF OK
%RECORDFORMAT F(%INTEGER I,J,K,%RECORD(F)%NAME LINK)
%ROUTINESPEC FRED(%INTEGER I,%RECORD(F)R)
%RECORD(F) P,Q
      P_I=10; P_J=11
      Q=P
      FRED(1,Q)
      P=0; Q=0;
      FRED(2,0)
%ROUTINE FRED(%INTEGER DUMMY,%RECORD(F)R)
      %IF R_I#P_I %AND R_J#P_J %THEN %MONITOR
      R_I=33; R_J=1
      %IF P_I#Q_I %AND P_J#Q_J %THEN %MONITOR
%END
%ENDOFPROGRAM

==== ercc07/emas-2900/imp80tests_rt21.txt ====
%BEGIN
! CHECKS THAT ASSIGNMENT OF STRINGS OF FIXED LENGTH WITH 
! L>128 DO NOT LOES CHARARCTERS
%STRING(255)%ARRAY L(0:1)
      L(1)="
0123456789012345678901234567890123456789012345678901234567890
0123456789012345678901234567890123456789012345678901234567890
0123456789012345678901234567890123456789012345678901234567890
"
PRINTSTRING("L1=".L(1)."
")
%ENDOFPROGRAM

==== ercc07/emas-2900/impalgs_makeal60.txt ====
EDIT NRALG08S,ALGOL60S
(M.!*DELSTART.D.!*DELEND.D1)999
TR.RELEASE .I.VERSION 60.D.PDS.
A.DATED .D1
TR.VMEB=NO.I.VMEB=YES.
TM.FROM2.P1D1M.FN FROM2.P1D.%END.D1
T(R.FROM2.I.ASLIST.A.).I._S2.P1)99
TM.FROM3.P1D1M.FN FROM3.P1D.%END.D1
T(R.FROM3.I.ASLIST.A.).I._S3.P1)999
TM.FROM1(.P1D1M.FN FROM1.P1D.%END.D1
T(R.FROM1(.I.ASLIST(.A.).I._S1.P1)999
TM.REPLACE1(.P1D1M.INE REPLACE1(.P1D.%END.D1
T(R.REPLACE1(.I.ASLIST(.R.,.I.)_S1=(.P1)999
TM.REPLACE2(.P1D1M.INE REPLACE2(.P1D.%END.D1
T(R.REPLACE2(.I.ASLIST(.R.,.I.)_S2=(.P1)999
TM.REPLACE3(.P1D1M.INE REPLACE3(.P1D.%END.D1
T(R.REPLACE3(.I.ASLIST(.R.,.I.)_S3=(.P1)999
E
PARM OPT,NOLIST
IMP ALGOL60S,ALGOL60X,.LP,.OUT
PERMIT ALGOL60S

==== ercc07/emas-2900/imp80tests_rt22.txt ====
%begin
%string(10) s,t
%constintegername fred = x'244444' {This should fail in SM IMP}
                              {Changing = to == would make it fail in EMAS IMP}
%externalinteger jjfred=7
%ownintegerarray opcode(0:20) =  {opcode values; the next line is blank - N.B.}

         16_5800,    16_4800,    16_5000,    16_4000,
{           L           LH          ST          STH}
         16_5A00,    16_5B00,    16_5C00,    16_5D00,
{           A           S           M           D}
         16_1A00,    16_1B00,    16_1C00,    16_1D00,
{           AR          SR          MR          DR}
         -1(*)                                         {all the rest}
%string(9)%name sref
%integer i,j,k
%ownintegerarray twod(1:2,1:3) = 1,2,3,4,5,6
%real d
i=10; j = 3; k=1
! This is a comment; this is part of it
i{this is an embedded comment; I hope it { works} = j\\k

==== ercc07/emas-2900/imp80tests_rt23.txt ====

%BEGIN
%INTEGER I
%INTEGERNAME P,Q
%STRING(10)S
%STRINGNAME X,Y
%ROUTINESPEC TEST(%INTEGERNAME T1,%STRINGNAME T2)
      I=10; S="MESS"
      P==I; Q==P
      X==S
      Y==STRING(0)
      %UNLESS Q=10 %AND Q==I %AND P==Q %THEN %C
         PRINTSTRING("BUG1 FOUND")
      TEST(P,X)
      TEST(Q,X)
%ROUTINE TEST(%INTEGERNAME T1,%STRINGNAME T2)
      %UNLESS T1==I %AND T2==S %THEN %C
         PRINTSTRING("BUG2 FOUND")
      %END
%ENDOFPROGRAM

==== ercc07/emas-2900/imp80tests_rt24.txt ====

%BEGIN
%ROUTINE TEST(%ROUTINE PARAM(%INTEGER I))
      PARAM(10)
%END
%ROUTINE A
%INTEGER P,Q,R
      P='P'; Q='Q'; R='R'
%ROUTINE B(%INTEGER A)
      %UNLESS P='P' %AND Q='Q' %AND R='R' %THEN PRINTSTRING("FAILED")
      WRITE(A,5)
%END
TEST(B)
%END
A
%ENDOFPROGRAM

==== ercc07/emas-2900/sup27csrce_mindiags.txt ====
%EXTERNALSTRINGFNSPEC STRHEX(%INTEGER I)
%SYSTEMROUTINE NDIAG(%INTEGER PCOUNT, LNB, FAULT, INF)
!***********************************************************************
!*_______'MASTER DIAGNOSTIC ROUTINE'. DISCOVERS THE LANGUAGE OF THE    *
!*_______FAILED ROUTINE FROM WORD 4 OF THE GLA AND CALLS APPROPRIATE   *
!*_______DIAGNOSTIC ROUTINE. THIS IS REPEATED TILL ALL DIAGNOSTICS     *
!*_______GIVEN.                                                        *
!*_______PCOUNT = PCOUNTER AT FAILURE                                  *
!*_______LNB    = LOCAL NAME BASE AT FAILURE                           *
!*_______FAULT  = FAILURE  (0=%MONITOR  REQUESTED)                     *
!*_______INF    =ANY FURTHER INFORMATION                               *
!***********************************************************************
PRINTSTRING("
MINIMUM NDIAGS ENTERED
FAULT NO ="); WRITE(FAULT,2)
PRINTSTRING("
PC=X".STRHEX(PCOUNT)."
LNB=X".STRHEX(LNB)."
")
%IF FAULT>0 %THEN %STOP
%END

==== ercc07/emas-2900/imp80tests_rt25.txt ====

%BEGIN
%CONSTINTEGER NMAX=20
%ROUTINESPEC TEST MATRIX(%LONGREALARRAYNAME A, %INTEGER N)
%ROUTINESPEC HOUSEHOLDER(%LONGREALARRAYNAME A,W, %INTEGER N,K)
%INTEGER I
%LONGREALARRAY A(1:NMAX,1:NMAX)
%LONGREALARRAY W(1:NMAX)
      TEST MATRIX(A,NMAX)
      PRINTSTRING("
TEST MATRIX EIGENVALUES
")
      HOUSEHOLDER(A,W,NMAX,1)
      %CYCLE I=1,1,NMAX
         PRINT FL(W(I),8)
         NEWLINE
      %REPEAT
      %STOP
%ROUTINE TEST MATRIX(%LONGREALARRAYNAME A, %INTEGER N)
%INTEGER I,J
%LONGREAL T,C,D,F

==== ercc07/emas-2900/imp80tests_rt26.txt ====

%BEGIN
%EXTERNALROUTINESPEC DEFINE(%STRING(255)S)
%OWNINTEGER INSTREAM=3
%INTEGER SYM
%ROUTINE READSYM
      %ON %EVENT 9 %START
         %IF INSTREAM=1 %START
            SYM='*'
            %RETURN
         %FINISH
      INSTREAM=INSTREAM-1
         SELECT INPUT(INSTREAM)
      %FINISH
      READ SYMBOL(SYM)
%END
      DEFINE("ST1,IMP80TESTS_BLURB")
      DEFINE("ST2,.NULL")
      DEFINE("ST3,.NULL")
      SELECT INPUT (INSTREAM)
      %CYCLE

==== ercc07/emas-2900/imp80tests_rt27.txt ====
%BEGIN
%INTEGER I,L1,L2,L3
%STRING(12)S
%RECORDFORMAT F(%STRING(8) SS1,%STRINGNAME SN)
%RECORD(F)R
%STRING(4) SN,SNN
      I=ADDR(SN)
      S="TESTTESTTEST"
      SN<-S
      L1=LENGTH(STRING(I))
      R_SS1<-S
      R_SN==SNN
      R_SN<-S
      L2=LENGTH(R_SS1)
      L3=LENGTH(SNN)
      %IF L1=4 %AND L2=8 %AND L3=4 %AND SN=SNN="TEST" %AND %C
         R_SS1="TESTTEST" %THEN PRINTSTRING("TEST OK") %C
         %ELSE PRINTSTRING("WRONG ANSWERS") %AND %MONITOR
%ENDOFPROGRAM

==== ercc07/emas-2900/perqgen01s.txt ====
%INCLUDE "ERCC07.TRIMP_HOSTCODES"
%CONSTINTEGER HOST=EMAS
%CONSTINTEGER TARGET=PERQ
%INCLUDE "ERCC07.PERQCODE1S"
%INCLUDE "ERCC07.TRIPCNSTS"
%INCLUDE "ERCC07.TRIMP_TFORM1S"
%IF HOST=PERQ %OR HOST=ACCENT %OR HOST=IBM %OR HOST=IBMXA %START
      %RECORDFORMAT RTDICTF(%SHORTINTEGER PS,RPS,LTS,ENTRY,EXIT,
         LL,W7,W8,DIAGS,W10,%INTEGER W1112)
%FINISH %ELSE %START
      %RECORDFORMAT RTDICTF(%HALFINTEGER PS,RPS,LTS,ENTRY,EXIT,
         LL,W7,W8,DIAGS,W10,%INTEGER W1112)
%FINISH
%OWNINTEGER CABUF,GLACABUF
%OWNINTEGERNAME CA,GLACA
%OWNINTEGER PPCURR,GLACURR
%OWNBYTEINTEGERARRAY CODE(0:268)
%OWNBYTEINTEGERARRAY GLABUF(0:268)
%OWNINTEGERARRAYNAME CTABLE,TAGS
%OWNRECORD(LISTF)%ARRAYNAME ASLIST
%EXTRINSICRECORD(WORKAF)WORKA

==== ercc07/emas-2900/imp80tests_rt28.txt ====

%begin
%routine Tabulate (%longrealfn func(%longreal x),%longreal from,to, 
   %integer steps)
! func(x) is the dummy formal function
%real value,inc
%integer i
!
inc=(to-from)/steps
!
value=from
%for i=1,1,steps %cycle
   print(value,4,2) ; print(func(value),10,4) ; newline
   value=value+inc
%repeat
%end ;!  of routine tabulate
!
! now call with some functions....
printstring("
    x               sine(x)
")

==== ercc07/emas-2900/imp80tests_rt29.txt ====

%BEGIN
%INTEGER I,J,K
      %CYCLE I=1,1,16
         K=2
         K=K****I
         %CYCLE  J=0,1,4
            %IF K<<J#K*2****J %THEN PRINTSTRING("<< ERROR")
            %IF K>>J#K//(2****J) %THEN PRINTSTRING(">> ERROR")
         %REPEAT
      %REPEAT
%ENDOFPROGRAM

==== ercc07/emas-2900/sup28dsrce_comms54s.txt ====

!  R.D.EAGER        CONTAINS CODE FOR OUTPUT ACCOUNTS IN COMM CONTROL,
!                   LP ADAPTOR AND CP ADAPTOR
!                 VERSION OF 13/06/80
!        DEC 79: INCLUDE AN OPER ADAPTOR
!                HAVE ONLY ONE SERVICE NUMBER, X'37'
!        OTHER POSSIBLE CHANGES
!           MAKE INITIALISATION CALL OF CC INITIALISE ADAPTORS AS WELL
!           MAKE IT POSSIBLE TO DEALLOCATE/ALLOCATE ALL DEVICES
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20A ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DDTADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,WASKLOKCORRECT,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,DQADDR,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0, %C
         %INTEGER ITINT,CONTYPEA,GPCCONFA,FPCCONFA,SFCCONFA, %C
         BLKADDR,DPTADDR,SMACS,TRANS,%LONGINTEGER KMON,  %C
         %INTEGER DITADDR,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,STOREAAD,PROCAAD,SFCCTAD,DRUMTAD,TSLICE,SP0,SP1, %C

==== ercc07/emas-2900/topt01s.txt ====

%INCLUDE "ERCC07.PERQ_FORMAT3S"
%EXTRINSICRECORD(WORKAF) WORKA
%EXTRINSICRECORD(PARMF) PARM
%CONSTINTEGER YES=1
%CONSTINTEGER NO=0
%EXTERNALROUTINESPEC ABORT
%EXTERNALROUTINESPEC FAULT(%INTEGER N,DATA,IDENT)
%EXTERNALROUTINESPEC PRINT TRIPS(%RECORD(TRIPF)%ARRAYNAME TRIPLES)
%CONSTBYTEINTEGERARRAY WORDS(0:7)=0(3),1,1,2,4,8;
%ROUTINE EXTRACT(%RECORD(RD)%NAME OPND,%INTEGERNAME VAL, %C
         %LONGREALNAME RVAL,%STRINGNAME STRVAL)
!***********************************************************************
!*    EXTRACTS A CONTANT OPERAND RETURNING REAL &INT VALUES           *
!***********************************************************************
%INTEGER TYPE,PREC,I,AD
      TYPE=OPND_PTYPE; PREC=TYPE>>4
      TYPE=TYPE&15
      %IF TYPE=5 %START
         %FOR I=0,1,OPND_XTRA %CYCLE
            BYTEINTEGER(ADDR(STRVAL)+I)=WORKA_A(OPND_D+I)

==== ercc07/emas-2900/nrsrce_sform03s.txt ====
! DRIVING EDSS VIA A DCU WRITTEN BY PDS DEC 78
!
%RECORDFORMAT PARMF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6)
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 18D ONWARDS *
! Alterations from above-mentioned record format, for the S-series, are
! as follows:
!     GPCTABSIZE  ->   DCUTABSIZE
!     GPCA        ->   DCUA
!     SMACS       ->   SCUS
!     GPCCONFA    ->   DCUCONFA
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DDTADDR,DCUTABSIZE,DCUA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,KLOKCORRECT,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,PROCMON,DQADDR,  %C
         SACPORT,OCPPORT,ITINT,CONTYPEA,DCUCONFA,FPCCONFA,SFCCONFA, %C
         BLKADDR,DPTADDR,SCUS,TRANS,%LONGINTEGER KMON,  %C
         %INTEGER SPDRQ,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,%INTEGERARRAY SP(0:13), %INTEGER  %C
         LSTL,LSTB,PSTL,PSTB,HKEYS,HOOT,SIM,CLKX,CLKY,CLKZ,  %C
         HBIT,SLAVEOFF,INHSSR,SDR1,SDR2,SDR3,  %C

==== ercc07/emas-2900/imp80tests_rt30.txt ====
%BEGIN
%OWNINTEGER LABELNO=0
%CONSTINTEGER MAXLABELS=10
%OWNSTRING(15)%ARRAY LBLNAME(0:MAXLABELS)
%OWNSTRING(255)%ARRAY LBL(0:MAXLABELS)

%STRINGMAP LABEL(%STRING(15) L)
%INTEGER I
 %IF LABELNO>0 %THENSTART
  %FOR I=1,1,LABELNO %CYCLE
   %RESULT==LBL(I) %IF LBLNAME(I)=L
  %REPEAT
 %FINISH
!  INSERT NEW LABEL-NAME.
 LABELNO=LABELNO+1
 %IF LABELNO>MAXLABELS %THENSTART
  PRINT STRING(L." MAKES TOO MANY LABELS."); NEWLINE
  %FOR I=1,1,MAXLABELS %CYCLE
   PRINT STRING(LBLNAME(I))
   NEWLINE
  %REPEAT

==== ercc07/emas-2900/sup27fsrce_documentn.txt ====



This partitioned file contains all the source required to make up
an EMAS2900 Supervisor, plus the version of the IMP80 compiler and FIX
utility used at Edinburgh to do so.  This compiler is necessary as some
advanced language features are required which are not available in the
service compiler.

Note that the OPTION NOBRACKETS must be in force in the process being
used for the method described to work.

Two "OBEY" subfiles are available: MAKECHKD and MAKEOPT.  They each
construct a test Supervisor which is left in file SUP27xT,  where x is
'C' or 'O' respectively.


Making a Supervisor thus consists of the following:

a) INSERT the IMP80 compiler and FIX utility into the current directory
   (and then log off and log on again if IMP80 was previously used in

==== ercc07/emas-2900/imp80tests_rt31.txt ====
%BEGIN
%STRING(30)S,T,U
%ROUTINESPEC CHECK(%STRING(30) P,Q,R)
      S=""; T=S
      PRINTSTRING("BUG0") %UNLESS T=""
      CHECK(S,T,"")
      S="ABCD"; T=S
      CHECK(S,T,"ABCD")
      %UNLESS "MAST"<="MEST"<="MOST" %THEN PRINTSTRING("BUG1")
      S="MAST"; T="MEST"; U="MOST"
      %UNLESS S<=T<=U %THEN PRINTSTRING("BUG2")
      %ROUTINE CHECK(%STRING(30) P,Q,R)
      PRINTSTRING("CHECK FAILS") %UNLESS %C
         P=S %AND Q=R %AND P=Q=R
      %END
%ENDOFPROGRAM

==== ercc07/emas-2900/sup26csrce_gpc28s.txt ====
%CONSTINTEGER NO = 0
%CONSTINTEGER YES = 1
%CONSTINTEGER MULTIOCP = NO
!----------------------------------------------------------------------------------------------------
!
!
%CONSTSTRING(15) VSN = "GPC28 29 APR 80"
!
!
! %EXTERNAL ROUTINE GPC(%RECORDNAME P)
!
! 1. CONVENTIONS
! THE RECORD SPEC FOR THE PARAMETER IS
!   %RECORDFORMAT PARMF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6)
! WHERE
!   DEST IS CONSIDERED AS TWO HALF WORDS DSNO AND DACT. DSNO
!        MUST BE GPC'S DSNO (PICKED UP DURING INITIALISATION)
!        DACT IS SET ACCORDING TO THE FUNCTION REQUIRED.
!
!   SRCE IS CONSIDERED AS TWO HALFWORDS SSNO AND SACT.
!        SSNO IS SNO OF ORIGINATOR AND SACT IS DACT FOR

==== ercc07/emas-2900/sup27isrce_gpc39s.txt ====

%CONSTSTRING (25) VSN="GPC39 18th Nov 1981"
!************************************************GPC GPC GPC
!*
!*   EMAS 2900 SUPERVISOR NOTE
!*                                           No: 5
!*                                         Date: 21/05/80
!*                                       Author: A.Gibbons
!*
!*
!* %EXTERNAL ROUTINE GPC(%RECORD(PARMF)%NAME P)
!*
!* 1. CONVENTIONS
!* The record spec for the parameter is
!*   %RECORDFORMAT PARMF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6)
!* where
!*   DEST is considered as two half words DSNO and DACT. DSNO
!*        must be GPC's DSNO 
!*        DACT is set according to the function required.
!*
!*   SRCE is considered as two halfwords SSNO and SACT.

==== ercc07/emas-2900/sup26isrce_comms48s.txt ====

!                 VERSION OF 13/06/80
!        DEC 79: INCLUDE AN OPER ADAPTOR
!                HAVE ONLY ONE SERVICE NUMBER, X'37'
!        OTHER POSSIBLE CHANGES
!           MAKE INITIALISATION CALL OF CC INITIALISE ADAPTORS AS WELL
!           MAKE IT POSSIBLE TO DEALLOCATE/ALLOCATE ALL DEVICES
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20A ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DDTADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,WASKLOKCORRECT,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,DQADDR,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0, %C
         %INTEGER ITINT,CONTYPEA,GPCCONFA,FPCCONFA,SFCCONFA, %C
         BLKADDR,DPTADDR,SMACS,TRANS,%LONGINTEGER KMON,  %C
         %INTEGER DITADDR,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,STOREAAD,PROCAAD,SFCCTAD,DRUMTAD,TSLICE,SP0,SP1, %C
         SP2,SP3,SP4,SP5,SP6,SP7,SP8, %C
         LSTL,LSTB,PSTL,PSTB,HKEYS,HOOT,SIM,CLKX,CLKY,CLKZ,  %C

==== ercc07/emas-2900/imp80tests_rt32.txt ====
%BEGIN
%RECORDFORMAT LEVELF(%INTEGER I,J,K)
%RECORDFORMAT WORKAF(%INTEGER NNAMES,CCSIZE,DSIZE,ASL MAX,ASL CUR BTM,
      CONST PTR,CONST BTM,DICTBASE,WKFILEAD,WKFILEK,FILE ADDR,RELEASE,
      AASL0,CONST LIMIT,RTCOUNT,ARTOP,SP1,SP2,SP3,
      %INTEGERNAME LINE,%STRING(9)LADATE,
      %BYTEINTEGERARRAYNAME CC,A,
      %INTEGERARRAYNAME WORD,TAGS,CTABLE,
      %RECORD(LEVELF)%ARRAYNAME LEVELINF,
      %INTEGERARRAY PLABS,PLINK(0:31))
%OWNRECORD(WORKAF)%name WORKA
%record(workaf) work
%BYTEINTEGERARRAY A(0:100)
%INTEGER I
%BYTEINTEGERARRAYNAME B,C
      WORK=0
      worka==work
      B==ARRAY(ADDR(A(0)),A)
         WORKA_CC==B
         C==WORKA_CC
         %CYCLE I=0,1,9

==== ercc07/emas-2900/imp80tests_rt33.txt ====
! SIMPLE TEST OF BYTE POINTER VARIABLES AFTER PERQ
%BEGIN
%BYTEINTEGERARRAY a(1:10)
%BYTEINTEGERNAME ap
%INTEGER i
%ROUTINE or(%BYTEINTEGERNAME x)
      x=x!64
%END
      a(i)=i %FOR i=1,1,10
      or(a(i)) %FOR i=1,1,10
      %FOR i=1,1,10 %CYCLE
         ap==a(i)
         ap=ap!128
         write(a(i),4) %UNLESS a(i)=i!x'c0'
      %REPEAT
%ENDOFPROGRAM

==== ercc07/emas-2900/imp80tests_rt34.txt ====
%BEGIN
%STRING(5) %ARRAY a(1:10)
%STRING(5) %NAME ap
%INTEGER i
%ROUTINE conc(%STRING(5) %NAME x)
      x=x."a"
%END
      a(i)=tostring(i+'0') %FOR i=1,1,10
      conc(a(i)) %FOR i=1,1,10
      %FOR i=1,1,10 %CYCLE
         ap==a(i)
         ap=ap."b"
         printstring(a(i)) %UNLESS a(i)=tostring(i+'0')."ab"
      %REPEAT
%ENDOFPROGRAM

==== ercc07/emas-2900/imp80tests_rt35.txt ====
%BEGIN
%OWNINTEGER LABELNO=0
%CONSTINTEGER MAXLABELS=10
%RECORDFORMAT F(%BYTE B,%STRING(255)LAB)
%OWNSTRING(15)%ARRAY LBLNAME(0:MAXLABELS)
%OWNRECORD(F)%ARRAY LBL(0:MAXLABELS)

%RECORD(F)%MAP LABEL(%STRING(15) L)
%INTEGER I
 %IF LABELNO>0 %THENSTART
  %FOR I=1,1,LABELNO %CYCLE
   %RESULT==LBL(I) %IF LBLNAME(I)=L
  %REPEAT
 %FINISH
!  INSERT NEW LABEL-NAME.
 LABELNO=LABELNO+1
 %IF LABELNO>MAXLABELS %THENSTART
  PRINT STRING(L." MAKES TOO MANY LABELS."); NEWLINE
  %FOR I=1,1,MAXLABELS %CYCLE
   PRINT STRING(LBLNAME(I))
   NEWLINE

==== ercc07/emas-2900/imp80tests_rt36.txt ====
%BEGIN
%INTEGER I
%INTEGERFN FACT(%INTEGER N)
      %IF N<=1 %THENRESULT=1
      %RESULT=N*FACT(N-1)
%END
%ROUTINE COMPARE(%INTEGER I,J)
      %UNLESS I=J %START
         PRINTSTRING("ERROR")
         WRITE(I,5); WRITE(J,5)
         NEWLINE
      %FINISH
%END
      COMPARE(FACT(I),I*FACT(I-1)) %FOR I=2,1,10
%ENDOFPROGRAM

==== ercc07/emas-2900/impalgs_nrimpps5.txt ====
33
D(NAME)
D(ICONST)
D(CONST)
D(ONAME)
D(N)
D(S)
D(TEXT)
D(BIGHOLE)
D(N255)
D(HOLE)
D(MARK)
D(READLINE?)
D(CHKIMPS)
D(DUMMYAPP)
D(DOWN)
D(UP)
D(LISTON)
D(LISTOFF)
D(COLON)
D(NOTECONST)

==== ercc07/emas-2900/perqtrimp_perqponeas.txt ====
%CONSTINTEGER YES=1,NO=0
%CONSTINTEGER EMAS=10
%CONSTINTEGER PERQ=11
%CONSTINTEGER PUNIX=12
%CONSTINTEGER HOST=EMAS
%CONSTINTEGER TARGET=PERQ
%CONSTINTEGER LINTAVAIL=1<<EMAS
%CONSTINTEGER LLREALAVAIL=1<<EMAS
! PRODUCED BY OLDPS FROM TRIMP_PERQPS01 ON 06/09/83
%CONSTBYTEINTEGERARRAY CLETT(0: 436)=   1,
  40,   1,  41,   1,  42,   1,  44,   2, 201, 198,   6, 213, 206, 204,
 197, 211, 211,   5, 215, 200, 201, 204, 197,   5, 213, 206, 212, 201,
 204,   3, 198, 207, 210,   1,  61,   5, 193, 204, 201, 193, 211,   7,
 201, 206, 212, 197, 199, 197, 210,   4, 210, 197, 193, 204,   4, 204,
 207, 206, 199,   4, 194, 217, 212, 197,   6, 211, 212, 210, 201, 206,
 199,   4, 200, 193, 204, 198,   5, 211, 200, 207, 210, 212,   6, 210,
 197, 195, 207, 210, 196,   7, 210, 207, 213, 212, 201, 206, 197,   2,
 198, 206,   3, 205, 193, 208,   8, 198, 213, 206, 195, 212, 201, 207,
 206,   4, 206, 193, 205, 197,   9, 193, 210, 210, 193, 217, 206, 193,
 205, 197,   9, 207, 198, 208, 210, 207, 199, 210, 193, 205,   6, 207,
 198, 198, 201, 204, 197,   6, 207, 198, 204, 201, 211, 212,   6, 198,

==== ercc07/emas-2900/imp80tests_rt37.txt ====

%BEGIN
%LONGINTEGER L,M,N
! TEST OF LINT & LINTPT
%LONGLONGREAL X
%INTEGER I,J
      L=X'FEDCBA98FEDCBA98'

      %FOR J=0,1,1 %CYCLE
         %FOR I=0,1,30 %CYCLE
            N=(-1)****J*(L>>I)
            X=N
            M=LINTPT(X)
            %UNLESS N=M %START
               %MONITOR
               WRITE(I,1)
               WRITE(N-M,5)
               NEWLINE
               %STOP
            %FINISH
            M=LINT(X)

==== ercc07/emas-2900/impalgs_nrimpps6.txt ====
33
D(NAME)
D(ICONST)
D(CONST)
D(ONAME)
D(N)
D(S)
D(TEXT)
D(BIGHOLE)
D(N255)
D(HOLE)
D(MARK)
D(READLINE?)
D(CHKIMPS)
D(DUMMYAPP)
D(DOWN)
D(UP)
D(LISTON)
D(LISTOFF)
D(COLON)
D(NOTECONST)

==== ercc07/emas-2900/imp80tests_rt38.txt ====
%BEGIN
%INTEGER I,J,K
      I=3; J=4; K=5
%INTEGERARRAY A(0:3,2:4,1:5)
%INTEGERARRAY B(0:I,2:J,1:K)
      %FOR I=0,1,3 %CYCLE
         %FOR J=2,1,4 %CYCLE
            %FOR K=1,1,5 %CYCLE
               A(I,J,K)=M'A'<<24!I<<16!J<<8!K
               B(I,J,K)=M'B'<<24!I<<16!J<<8!K
            %REPEAT
         %REPEAT
      %REPEAT
      %FOR I=0,1,3 %CYCLE
         %FOR J=2,1,4 %CYCLE
            %FOR K=1,1,5 %CYCLE
               %IF A(I,J,K)&X'FFFFFF'#B(I,J,K)&X'FFFFFF' %START
                  PRINTSTRING("ERROR")
                  %MONITOR
                  %STOP
               %FINISH

==== ercc07/emas-2900/impalgs_nrimpps7.txt ====
35
D(NAME)
D(ICONST)
D(CONST)
D(ONAME)
D(N)
D(S)
D(TEXT)
D(BIGHOLE)
D(N255)
D(HOLE)
D(MARK)
D(READLINE?)
D(CHKIMPS)
D(DUMMYAPP)
D(DOWN)
D(UP)
D(LISTON)
D(LISTOFF)
D(COLON)
D(NOTECONST)

==== ercc07/emas-2900/imp80tests_rt39.txt ====
%BEGIN
%BYTEINTEGER B
%HALFINTEGER H
%INTEGER I
%REAL X
%LONGREAL Y
%STRING(31) STR
%ROUTINE ONE(%BYTEINTEGER B,%HALFINTEGER H,%INTEGER I,
      %REAL X,%LONGREAL Y,%STRING(31)STR)
      %MONITOR %AND %STOP %UNLESS B=1 %AND H=2 %AND I=3 %C
          %AND X=4 %AND Y=5 %AND STR="STR"
%END
%ROUTINE TWO(%BYTEINTEGERNAME B,%HALFINTEGERNAME H,%INTEGERNAME I,
      %REALNAME X,%LONGREALNAME Y,%STRINGNAME STR)
      %MONITOR %AND %STOP %UNLESS B=1 %AND H=2 %AND I=3 %C
          %AND X=4 %AND Y=5 %AND STR="STR"
%END
      B=1; H=2; I=3; X=4; Y=5; STR="STR"
      ONE(1,2,3,4,5,"STR")
      ONE(B,H,I,X,Y,STR)
      TWO(B,H,I,X,Y,STR)

==== ercc07/emas-2900/impalgs_nrimpps8.txt ====
38
D(NAME)
D(ICONST)
D(CONST)
D(ONAME)
D(N)
D(S)
D(TEXT)
D(BIGHOLE)
D(N255)
D(HOLE)
D(MARK)
D(READLINE?)
D(CHKIMPS)
D(DUMMYAPP)
D(DOWN)
D(UP)
D(LISTON)
D(LISTOFF)
D(COLON)
D(NOTECONST)

==== ercc07/emas-2900/nrsrce_trantabs.txt ====
!
! MASTER RESIDENT TRANSLATE TABLES FOR EMAS2900
!
%CONSTBYTEINTEGERARRAY ITOETAB(0 : 255) =       %C
            X'00',X'01',X'02',X'03',   X'37',X'2D',X'2E',X'2F',
            X'16',X'05',X'25',X'0B',   X'0C',X'0D',X'0E',X'0F',
            X'10',X'11',X'12',X'13',   X'3C',X'3D',X'32',X'26',
            X'18',X'19',X'3F',X'27',   X'1C',X'1D',X'1E',X'1F',
            X'40',X'4F',X'7F',X'7B',   X'5B',X'6C',X'50',X'7D',
            X'4D',X'5D',X'5C',X'4E',   X'6B',X'60',X'4B',X'61',
            X'F0',X'F1',X'F2',X'F3',   X'F4',X'F5',X'F6',X'F7',
            X'F8',X'F9',X'7A',X'5E',   X'4C',X'7E',X'6E',X'6F',
            X'7C',X'C1',X'C2',X'C3',   X'C4',X'C5',X'C6',X'C7',
            X'C8',X'C9',X'D1',X'D2',   X'D3',X'D4',X'D5',X'D6',
            X'D7',X'D8',X'D9',X'E2',   X'E3',X'E4',X'E5',X'E6',
            X'E7',X'E8',X'E9',X'4A',   X'E0',X'5A',X'5F',X'6D',
            X'79',X'81',X'82',X'83',   X'84',X'85',X'86',X'87',
            X'88',X'89',X'91',X'92',   X'93',X'94',X'95',X'96',
            X'97',X'98',X'99',X'A2',   X'A3',X'A4',X'A5',X'A6',
            X'A7',X'A8',X'A9',X'C0',   X'6A',X'D0',X'A1',X'07',
            X'20',X'21',X'22',X'23',   X'24',X'15',X'06',X'17',

==== ercc07/emas-2900/impalgs_nrimpps9.txt ====
38
D(NAME)
D(ICONST)
D(CONST)
D(CHXTYPE)
D(N)
D(S)
D(TEXT)
D(BIGHOLE)
D(N255)
D(HOLE)
D(MARK)
D(READLINE?)
D(CHKIMPS)
D(DUMMYAPP)
D(DOWN)
D(UP)
D(LISTON)
D(LISTOFF)
D(COLON)
D(NOTECONST)

==== ercc07/emas-2900/cserv01s.txt ====
%INCLUDE "ERCC07.TRIMP_HOSTCODES"
%CONSTINTEGER HOST=EMAS
%INCLUDE "ERCC07.trimp_TFORM2S"
%OWNINTEGERNAME ASL
%OWNRECORD(LISTF)%ARRAYNAME ASLIST
%EXTRINSICRECORD(WORKAF)WORKA
%EXTRINSICRECORD(PARMF)PARM
%EXTERNALROUTINE MOVE BYTES(%INTEGER LENGTH,FBASE,FOFF,TOBASE,TOOFF)
!************************************************************************
!*    A MOVE BYTES ROUTINE THAT WILL WORK ON WORD&BYTE ADDRESS M-CS    *
!***********************************************************************
%INTEGER I
AGN:
      %RETURN %IF LENGTH<=0
      %IF HOST=EMAS %START;             ! EMAS BYTE ADDRESSES
         I=X'18000000'+LENGTH
         *LDA_TOBASE; *INCA_TOOFF; *LDTB_I
         *LSS_FBASE; *IAD_FOFF; *LUH_I
         *MV_%L=%DR
      %FINISH %else %IF HOST=PERQ %START;             ! WORD ADDRESS+BYTE OFFSET
         FBASE=FBASE+FOFF>>1

==== ercc07/emas-2900/imp80tests_rt40.txt ====
%BEGIN
%STRING(255)%FN PRINTNAME(%INTEGER N)
%INTEGER V, K
%STRING(255)S
      S="???"
      %RESULT=S
%END

%STRINGFN MESSAGE(%INTEGER N)
!***********************************************************************
!*       OUTPUTS AN ERROR MESSAGE STORED IN A COMPRESSED FORMAT        *
!*       1  %REPEAT is not required                                    *
!*       2  Label & has already been set in this block                 *
!*       4  & is not a Switch name at current textual level            *
!*       5  Switch name & in expression or assignment                  *
!*       6  Switch label &(#) set a second time                        *
!*       7  Name & has already been declared                           *
!*       8  Routine or fn & has more parameters than specified         *
!*       9  Parameter # of & differs in type from specification        *
!*      10  Routine or fn & has fewer parameters than specified        *
!*      11  Label & referenced at line # has not been set              *

==== ercc07/emas-2900/sup26hsrce_oper33s.txt ====
! %CONSTSTRING(15)VSN = "OPER33 08/09/80"; ! ****************************************
%IF (MONLEVEL >> 1) & 1 = YES %START
      %EXTRINSICLONGINTEGER KMON
      %OWNINTEGER OPMON; ! COPY OF KMON BIT
      %CONSTINTEGER KMONNING = YES
%FINISH %ELSE %START
      %CONSTINTEGER KMONNING = NO
%FINISH
!
%IF MONLEVEL & 1 = YES %START
      %CONSTINTEGER VIDEO UPDATING = YES
      %OWNINTEGER OPER FACILITIES
%FINISH %ELSE %START
      %CONSTINTEGER VIDEO UPDATING = NO
%FINISH
!
!
!
!%EXTERNALROUTINESPEC DUMPTABLE(%INTEGER X,A,S)
%EXTERNALROUTINESPEC PON(%RECORDNAME P)
%EXTERNALROUTINESPEC PKMONREC(%STRING(20)TXT,%RECORDNAME P)

==== ercc07/emas-2900/wichtests_wt86a.txt ====
'begin'
PROG :
'begin'
'comment' LIBRARY 1;
    'integer'N,I;
    'procedure' Q;
        'begin'
        'array'
            A,
            D[1 : 1, 1 : N],
            E[0 : 0];
        'procedure' P(X, L);
            'label'
                L;
            'integer''procedure'
                X;
                'comment' (F1,G1): 'value' F1: 'real' F1,G1;
            B : 'for' I := 1 'step' 1 'until' N,
                I + 1 'do'
                C : 'goto'
                    'if' X(A[1, 1] + I, 0) = 0 'then'

==== ercc07/emas-2900/sup26csrce_gpc29s.txt ====
%CONSTINTEGER NO = 0
%CONSTINTEGER YES = 1
%CONSTINTEGER MULTIOCP = NO
!----------------------------------------------------------------------------------------------------
!
!
%CONSTSTRING(15) VSN = "GPC29 01 MAY 80"
!
!
! %EXTERNAL ROUTINE GPC(%RECORDNAME P)
!
! 1. CONVENTIONS
! THE RECORD SPEC FOR THE PARAMETER IS
!   %RECORDFORMAT PARMF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6)
! WHERE
!   DEST IS CONSIDERED AS TWO HALF WORDS DSNO AND DACT. DSNO
!        MUST BE GPC'S DSNO (PICKED UP DURING INITIALISATION)
!        DACT IS SET ACCORDING TO THE FUNCTION REQUIRED.
!
!   SRCE IS CONSIDERED AS TWO HALFWORDS SSNO AND SACT.
!        SSNO IS SNO OF ORIGINATOR AND SACT IS DACT FOR

==== ercc07/emas-2900/sup26csrce_ndiag06s.txt ====

!*_ DATED 11 NOV 76   1
! ALTERATIONS BY K.YARWOOD ...
!        PRINT FL AND NEXT SYMBOL LINES COMMENTED OUT
!        PRINTTEXT'S TURNED TO PRINTSTRING'S
!        ADDITION FOR LONGINTEGER IN RT PRINT VAR
!         HEX EQUIVALENTS FOR INTS,LONGINTS ETC PRINTED
!        INF PRINTED IN HEX IN RT ERRMESS

%EXTERNALSTRINGFNSPEC STRHEX(%INTEGER I)
%EXTERNALSTRING(8)%FNSPEC STRINT(%INTEGER I)
%CONSTINTEGER STACKBASE=X'80100000';  ! START OF RESIDENT STACK
! %SYSTEMROUTINESPEC SIGNAL(%INTEGER I, J, K, %INTEGERNAME F)
%ROUTINESPEC PRINTMESS(%INTEGER N)
! %SYSTEMROUTINESPEC TIDY EXIT
!*
%ROUTINESPEC INDIAG(%INTEGER OLDLNB, L, PC, %INTEGERNAME NEWLNB)
! %ROUTINESPEC FDIAG(%INTEGER OLDLNB,PC,%INTEGERNAME NEWLNB)
%ROUTINESPEC ERMESS(%INTEGER N, INF)
! %ROUTINESPEC ICL9CELABELS


==== ercc07/emas-2900/rtermess.txt ====
1        'INTEGER' 'OVERFLOW';
2        'REAL' 'OVERFLOW';
3        'ILLEGAL' 'CYCLE';
4        'NOT'  'ENOUGH'  'STORE'
5        'SQRT'  'NEGATIVE';
6        'LOG'   'NEGATIVE';
7        'SWITCH'  'LABEL'  'NOT'  'SET'
9        'INPUT'  'ENDED';
10       'NON'  'INTEGER'  'QUOTIENT'
11       'NO'  'RESULT'
12       'TIME'  'EXCEEDED'
13       'TERMINATION'     'REQUESTED'
14       'SYMBOL'  'IN'  'DATA';
15        'PARAM'   'NOT'   'DESTINATION'
16       'REAL'  'NO'  'IN'  'DATA'
17       'DIVIDE'  'ERROR'
18       'SUB'  'CHAR'  'IN'  'DATA'
19       'GRAPH'  'FAULT'
20       'STREAM'  'NOT'  'DEFINED'
21       'ILLEGAL'  'EXPONENTIATION';
22       'TRIG'  'FN'  'INACCURATE';

==== ercc07/emas-2900/ibmconvert_sconvibm.txt ====
%CONSTINTEGER DEBUG=0
!
!
!
%RECORDFORMAT OBJFILE( %C
 %INTEGER   LNTH,                       {LENGTH OF FILE}
            CODESTRT,                   {START OF CODE FROM START FILE}
            PHYSSIZE,                   {PHYSICAL START OF FILE}
            FILETYPE,                   {FILE TYPE 1}
            SUMCHK,                     {SUM CHECK (OPTIONAL)}
            DATETIME,                   {OF LAST WRITE TO FILE}
            LOADDATA,                   {OFFSET FROM START OF FILE}
            FILEMAP)                    {OFFSET FROM START OF FILE}
!
!
%RECORDFORMAT AREAF( %C
 %INTEGER   START,                      {OFFSET OF START OF THE AREA}
            LNTH,                       {LENGTH OF THE AREA}
            PROP)                       {PROP. TO BE ASSOCIATED WITH THE AREA}
%RECORDFORMAT MAPF(%C
 %INTEGER   NO AREAS,

==== ercc07/emas-2900/nrsrce_makessup.txt ====

EDIT SUP24CS,SSUP24S
M/COMF(/D/END)/D1I<ERCC08.COMSF>
(A/!SSERIES/I/;/P1)*
T(A/!PSERIES;/R-1P1)*
T(R/GPC(/I/DCU(/P1)*
TA/MAXPROCS=/R3I/32/
E
PARM PARMX,STACK,NOCHECK
IMP SSUP24S,SSUP24,,.OUT

==== ercc07/emas-2900/sup25jsrce_sup25js.txt ====

!
! TO MAKE S SERIES SUPERVISOR REQUIRES:-
!     1) UNCOMMENT S SERIES INTERUPT SEQUENCE AFTER IST4I: AND DISCARD
!        P SERIES INTERUUPT CODE
!     2) REPLACE COMF BY S SERIES COM IN ERCC08.COMSF
!     3) CHANGE ALL CALL OF GPC TO DCU
!     4) UNCOMMENT ALL LINES STARTED BY !PSERIES
!
!
! THESE CONST INTEGERS DEFINE SIZES AND LAYOUT OF IMPORTANT TABLES
! THEY HAVE TO BE HERE TO BE GLOBAL TO ALL ROUTINES INCLUDING IO ONES
!
%CONSTINTEGER LSTLEN=192;               ! LOCAL SEGMENT TABLE LENGTH
%CONSTLONGINTEGER LCACR=1;              ! ACR OF LOCAL CONTROLLER
%CONSTINTEGER DIRCSEG=10;               ! SEG NO OF DIRECTOR COMMS SEG
%CONSTINTEGER DIRCSEGOFFSET=0;          ! FOR ALIGNMENT IF NEEDED
%CONSTINTEGER DIRCSEGAD=DIRCSEG<<18;    ! VIRTUAL ADDRESS OF DIR COM SEG
%CONSTINTEGER DIRCSEGL=2048+255+LSTLEN; ! SIZE OF SMAE
                                        ! MADE UP OF 2049 FOR CBT
                                        ! LSTLEN FOR SST

==== ercc07/emas-2900/nralg06s.txt ====
!
! ALGOL 1.5 DATED NOV 76
!     1) CONTAINS CORRECTION TO GIVE ERROR MESSAGE FOR THE
!        %FOR..%DO %BEGIN...%END %ELSE %BEGIN CONSTRUCT WHICH IS INVALID
!     2) CHOPS RATHER THAN FAULTING LONG STRING CONSTANTS
!     3) CHECKS FOR BEGINS IN SYNTACTICALLY INCORRECT STATEMENTS TO
!        REDUCE THE ERRONEOUS FAULT MESSAGES WHEN LEVELS MISMATCH
!     4) CONTAINS THE BINARY IO ROUTINE NAMES
!     5) STORES PLT DESCRIPTOR CORRECTLY IN EXTERNAL PROCEDURES
!
! ALGOL 1.6 DATED 1ST DEC 76
!     1) CONTAINS CORRECTION TO READ1900 (MISTYPED AS INTEGERPROC)
!     2) CONTAINS CORRECT SPACE ALLOCATION SO THAT STORED VALUE
!        OF STACKFRONT IN PROCEDURES IS NOT CORRUPTED
!     3) USES SYTEMROUTINE STOP TO STOP
!     4) AVOIDS TRYING TO ADD ACC INTO B
!
! ALGOL 1.7 DATED 1ST JAN 77
!     1) HAS INCREASED SPACE IN EXPOP FOR TEMPORARY STACKED OPERANDS
!     2) REMOVES ABORT IN GOTOLAB FOR SWITCHES WITH NO LOCAL LABELS
!     3) AVOIDS STACK TWIST IF B&ACC CLAIMED THEN A MULTI DIMENSION

==== ercc07/emas-2900/sup25jsrce_makeopt.txt ====
PARM PARMX,OPT,STACK,NOLIST
IMP SUP25ISRCE_SUP25IS,SUP25ZZ,,.OUT
IMP SUP25ISRCE_COM24S,COM24ZZ,,.OUT
IMP SUP25ISRCE_PRINT01S,PRINT01ZZ,,.OUT
IMP SUP25ISRCE_GPC22S,GPC22ZZ,,.OUT
IMP SUP25ISRCE_NDIAG06S,NDIAG06ZZ,,.OUT
IMP SUP25ISRCE_COMMS38S,COMMS38ZZ,,.OUT
IMP SUP25ISRCE_FAST24S,FAST24ZZ,,.OUT
IMP SUP25ISRCE_TAPE63S,TAPE63ZZ,,.OUT
PARM MAP
LINK
SUP25ZZ
COM24ZZ
PRINT01ZZ
GPC22ZZ
NDIAG06ZZ
COMMS38ZZ
FAST24ZZ
TAPE63ZZ
.END
SUP25Z

==== ercc07/emas-2900/sup28asrce_makechkd.txt ====
PARM FREE,NOCHECK,NOLIST,STACK
IMP80 CTOPT+SUP28ASRCE_SUP28AS,SUPZZ,,.OUT
IMP80 CTOPT+SUP28ASRCE_COM35S,COMZZ,,.OUT
IMP80 CTOPT+SUP28ASRCE_PRINT08S,PRINTZZ,,.OUT
IMP80 CTOPT+SUP28ASRCE_OPER36S,OPERZZ,,.OUT
IMP80 CTOPT+SUP28ASRCE_ENTER14S,ENTERZZ,,.OUT
PARM FREE,OPT,STACK,NOLIST
IMP80 CTOPT+SUP28ASRCE_GPC39S,GPCZZ,,.OUT
IMP80 SUP28ASRCE_NDIAG07S,NDIAGZZ,,.OUT
IMP80 CTOPT+SUP28ASRCE_COMMS53S,COMMSZZ,,.OUT
IMP80 CTOPT+SUP28ASRCE_FAST41S,FASTZZ,,.OUT
IMP80 CTOPT+SUP28ASRCE_TAPE73S,TAPEZZ,,.OUT
PARM MAP
LINK
SUPZZ
COMZZ
PRINTZZ
OPERZZ
ENTERZZ
GPCZZ
NDIAGZZ

==== ercc07/emas-2900/sup27isrce_print07s.txt ====

%RECORDFORMAT PARMF(%INTEGER DEST, SRCE, P1, P2, P3, P4, P5, P6)
%EXTRINSICLONGINTEGER KMON
%ROUTINESPEC PRHEX(%INTEGER H)
%ROUTINESPEC PRINTER(%RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC PON(%RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC GPC(%RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC OPMESS(%STRING (23) MESS)
%SYSTEMROUTINESPEC ITOE(%INTEGER A, L)
%IF MULTIOCP=YES %THEN %START
%EXTERNALROUTINESPEC SEMALOOP(%INTEGERNAME SEMA)
      %ROUTINESPEC RESERVE LOG
      %ROUTINESPEC RELEASE LOG
      %ROUTINESPEC AWAIT LOG ROUTE
%FINISH
!------------------------------------------------------------------------
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20L ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DLVNADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,TOJDAY,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,SERVAAD,  %C

==== ercc07/emas-2900/ibm_csups.txt ====
!
! IBM VERSION OF THE OPCODES
!
%CONSTINTEGER FOURKTDISP=16
%CONSTINTEGER LGR=X'58',ST=X'50',LM=X'98',STM=X'90',MVC=X'D2',CLC=X'D5',
      LR=X'18',BCR=7,BAL=X'45',BC=X'47',CR=X'19',COMP=X'59',LA=X'41', %C
      IC=X'43',STC=X'42',STH=X'40',STE=X'70',STD=X'60', %C
      BCTR=6,BALR=X'05',MVI=X'92',SPM=4,SRL=X'88',SLL=X'89',LH=X'48',
      SRDA=X'8E',SLDA=X'8F',BCT=X'46',EX=X'44',CLI=X'95'
%CONSTINTEGER LE=X'78',LD=X'68',LDR=X'28',LER=X'38',LCDR=X'23', %C
      LPDR=X'20',ADR=X'2A',SDR=X'2B',MDR=X'2C',DDR=X'2D',CDR=X'29',
      AD=X'6A',SD=X'6B',MD=X'6C',DD=X'6D',LTDR=X'22',AW=X'6E'
! INTEGER ARIRTHEMETIC FOLLOW
!
%CONSTINTEGER  AR=X'1A',SR=X'1B',MR=X'1C',LTR=X'12',LPR=X'10', %C
         LCR=X'13',XR=X'17',NR=X'14',OR=X'16',DR=X'1D',MH=X'4C',
         AH=X'4A',SH=X'4B'
%CONSTINTEGER ADD=X'5A',SUB=X'5B',MULT=X'5C',DIV=X'5D',AND=X'54',
         OI=X'96'
!
%CONSTINTEGER SHUFFLEDECS=B'1011110';   ! WHICH ALTS OF DEC ARE REORDERED

==== ercc07/emas-2900/tripcnsts.txt ====
!
! FIRST THE OPERAND FLAG CONSTANTS
!
%CONSTINTEGER SCONST=0;                 ! CONST UPTO 64 BITS
%CONSTINTEGER LCONST=1;                 ! CONST LONGER THAN SCONST
%CONSTINTEGER DNAME=2;                  ! NAME BY DICTIONARY NO
%CONSTINTEGER ADDRNAME=5;               ! ADDRESS AS NAME
%CONSTINTEGER LOCALIR=7;                ! BASE DISP REF IN CURRENT STACK FRAME
%CONSTINTEGER REFTRIP=8;                ! REFERENCE TO A TRIPLE
!
! NOW THE DEFINITIONS OF ONE OPERAND TRIPLES <128
!
%CONSTINTEGER RTHD=1;                   ! ROUTINE-BLOCK HEADING
%CONSTINTEGER RDSPY=2;                  ! ROUTINE ENTRY SET DISPLAY
%CONSTINTEGER RDAREA=3;                 ! ROUTINE LEAVE DIAGNOSTIC SPACE
%CONSTINTEGER RDPTR=4;                  ! SET DIAGNOSTIC POINTER
%CONSTINTEGER RTBAD=5;                  ! ROUTINE-FN BAD EXIT
%CONSTINTEGER RTXIT=6;                  ! "%RETURN"
%CONSTINTEGER XSTOP=7;                  ! EXECUTE "%STO"
%CONSTINTEGER NOTL=10;                  ! LOGICAL NOT
%CONSTINTEGER LNEG=11;                  ! LOGICAL NEGATE

==== ercc07/emas-2900/nralg07s.txt ====
!
! ALGOL 1.5 DATED NOV 76
!     1) CONTAINS CORRECTION TO GIVE ERROR MESSAGE FOR THE
!        %FOR..%DO %BEGIN...%END %ELSE %BEGIN CONSTRUCT WHICH IS INVALID
!     2) CHOPS RATHER THAN FAULTING LONG STRING CONSTANTS
!     3) CHECKS FOR BEGINS IN SYNTACTICALLY INCORRECT STATEMENTS TO
!        REDUCE THE ERRONEOUS FAULT MESSAGES WHEN LEVELS MISMATCH
!     4) CONTAINS THE BINARY IO ROUTINE NAMES
!     5) STORES PLT DESCRIPTOR CORRECTLY IN EXTERNAL PROCEDURES
!
! ALGOL 1.6 DATED 1ST DEC 76
!     1) CONTAINS CORRECTION TO READ1900 (MISTYPED AS INTEGERPROC)
!     2) CONTAINS CORRECT SPACE ALLOCATION SO THAT STORED VALUE
!        OF STACKFRONT IN PROCEDURES IS NOT CORRUPTED
!     3) USES SYTEMROUTINE STOP TO STOP
!     4) AVOIDS TRYING TO ADD ACC INTO B
!
! ALGOL 1.7 DATED 1ST JAN 77
!     1) HAS INCREASED SPACE IN EXPOP FOR TEMPORARY STACKED OPERANDS
!     2) REMOVES ABORT IN GOTOLAB FOR SWITCHES WITH NO LOCAL LABELS
!     3) AVOIDS STACK TWIST IF B&ACC CLAIMED THEN A MULTI DIMENSION

==== ercc07/emas-2900/sup27csrce_comms49s.txt ====

!                 VERSION OF 13/06/80
!        DEC 79: INCLUDE AN OPER ADAPTOR
!                HAVE ONLY ONE SERVICE NUMBER, X'37'
!        OTHER POSSIBLE CHANGES
!           MAKE INITIALISATION CALL OF CC INITIALISE ADAPTORS AS WELL
!           MAKE IT POSSIBLE TO DEALLOCATE/ALLOCATE ALL DEVICES
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20A ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DDTADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,WASKLOKCORRECT,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,DQADDR,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0, %C
         %INTEGER ITINT,CONTYPEA,GPCCONFA,FPCCONFA,SFCCONFA, %C
         BLKADDR,DPTADDR,SMACS,TRANS,%LONGINTEGER KMON,  %C
         %INTEGER DITADDR,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,STOREAAD,PROCAAD,SFCCTAD,DRUMTAD,TSLICE,SP0,SP1, %C
         SP2,SP3,SP4,SP5,SP6,SP7,SP8, %C
         LSTL,LSTB,PSTL,PSTB,HKEYS,HOOT,SIM,CLKX,CLKY,CLKZ,  %C

==== ercc07/emas-2900/sup29gs.txt ====

!
! To make S series supervisor requires:-
!     1) Change SSERIES=NO to SSERIES=YES in ctoptions file
!
!
! THESE CONST INTEGERS DEFINE SIZES AND LAYOUT OF IMPORTANT TABLES
! THEY HAVE TO BE HERE TO BE GLOBAL TO ALL ROUTINES INCLUDING IO ONES
!
%CONSTINTEGER LSTLEN=192;               ! LOCAL SEGMENT TABLE LENGTH
%CONSTINTEGER CBTLEN=299;               ! LENGTH OF CBT TABLE
%CONSTLONGINTEGER LCACR=1;              ! ACR OF LOCAL CONTROLLER
%CONSTINTEGER DIRCSEG=10;               ! SEG NO OF DIRECTOR COMMS SEG
%CONSTINTEGER DIRCSEGOFFSET=0;          ! FOR ALIGNMENT IF NEEDED
%CONSTINTEGER DIRCSEGAD=DIRCSEG<<18;    ! VIRTUAL ADDRESS OF DIR COM SEG
%CONSTINTEGER DIRCSEGL=8*CBTLEN+255+2*LSTLEN; ! SIZE OF SAME
                                        ! MADE UP OF 2049 FOR CBT
                                        ! 2*LSTLEN FOR SST
                                        ! 48+64 FOR 2 BITS OF SYTEMCALL TABLE
                                        ! 32+48 FOR DIROUTP&SIGOUT
%CONSTINTEGER LSTACKLEN=3;              ! LOCAL CONT. STACK ELEN

==== ercc07/emas-2900/jalg01s.txt ====
!
! JALGOL RELEASE 1 DATED JAN 78
!     1) BOOTSTRAPPED FROM ALGOL(E) RELEASE 3.0 [INCLDG CHANGES 1-6].
! JALGOL RELEASE 1.1 DATED AUG78
!     1) HAS CHANGE TO ALLOW @ AS ALT TO & IN CONSTANTS
!     2) HAS CHANGE TO TRAP OVERFLOW IN CONST
!     3) HAS CHANGE IN CANAME FOR REAL SUBSCRIPTS
!     4) HAS CHANGE TO DECLARE SWITCH FOR 2960 WHICH DOES NOT JUMP
!        TO CODE DESCRIPTORS. MAY BE REPPED BACK IF 2960 MODIFIED
!     5) HAS CHANGE IN GOTOLAB FOR COMPLEX SWITCHES IN PROG SANS ARRAYS
!     6) REMOVES FAULT 202 FROM CUI AS THIS CAN HAPPEN
!     7) HAS CHANGE TO PROTECT AGAINST DUPLICATE PROC BODIES
!
!QIN %MAINEP ICL9CEZALGOL;
%TRUSTEDPROGRAM
%BEGIN
%INTEGER I, J, K
! PRODUCED FROM JALGPS01 BY PSPROG2S ON 30/12/77
%CONSTINTEGERARRAY SYMBOL(1300: 2270)=  1305,
  1305,  1001,  1018,  1305,  1313,  1311,    44,  1001,  1018,   999,
  1313,  1000,  1323,  1317,  1001,  1355,  1319,  1003,  1323,    40,

==== ercc07/emas-2900/algolbm_alg13.txt ====
//JOB(ERCC07,STEPHENS,T=200,L=10000)
//OPTIONS(QUOTES,OPT)
//ALGOL
'COMMENT'
                         ***************
                         *             *
                         *   ALGG013   *
                         *             *
                         ***************
;
 'BEGIN'
 'PROCEDURE'CPUTIM(T);
 'REAL' T;
   T:=CPUTIME;
 'INTEGER' I,J,K,L;
 'REAL'T;
 CPUTIM(T);
   I:=-100; J:=0;  K:=100;
 'FOR'L:=1'STEP'1'UNTIL'1000'DO'
 'BEGIN'
        'GOTO' L200;

==== ercc07/emas-2900/algolbm_alg14.txt ====
//JOB(ERCC07,STEPHENS,T=200,L=10000)
//OPTIONS(QUOTES,OPT)
//ALGOL
'COMMENT'
                         ***************
                         *             *
                         *   ALGG014   *
                         *             *
                         ***************
;
 'BEGIN''COMMENT'AN IBM ALGOL PROGRAM ON PARTITION;
 'PROCEDURE' CPUTIM(T);
 'REAL' T;
   T:=CPUTIME;
 'INTEGER''ARRAY' P[1:100];
 'PROCEDURE' A(M,N,I);
 'VALUE' M,N,I;
 'INTEGER' M,N,I;
 'BEGIN' 'INTEGER' Z,K;
 'FOR'Z:=1'STEP'1'UNTIL'M'DO'
 'BEGIN'

==== ercc07/emas-2900/perq_formats.txt ====
!
! RECORDFORMAT FOR ALL THE OPTION AND FLAG VARAIBLES
!
%RECORDFORMAT PARMF(%INTEGER BITS1,BITS2,TTOPUT,
      %BYTEINTEGER LET,DYNAMIC,LINE,TRACE,ARR,DBUG,CHK,DIAG,OPT,FREE,
      LIST,CPRMODE,COMPILER,SMAP,Y,PROF,INHCODE,DCOMP,FAULTY,X)
%RECORDFORMAT LISTF(%INTEGER S1,S2,S3,LINK)
%RECORDFORMAT WORKAF(%INTEGER NNAMES,CCSIZE,DSIZE,ASL MAX,ASL CUR BTM,
      CONST PTR,CONST BTM,DICTBASE,WKFILEAD,WKFILEK,FILE ADDR,RELEASE,
      AASL0,SP0,SP1,SP2,
      %INTEGERNAME LINE,%STRING(9)LADATE,
      %BYTEINTEGERARRAYNAME CC,A,
      %INTEGERARRAYNAME WORD,TAGS,PLABS,PLINK,CTABLE)
%RECORDFORMAT RTDICTF(%HALFINTEGER PS,RPS,LTS,ENTRY,EXIT,
         LL,W7,W8,DIAGS,W10,%INTEGER W1112)

%RECORDFORMAT RD((%INTEGER S1 %OR %BYTE UPTYPE,PTYPE,XB,FLAG),
      %INTEGER D,XTRA)
%RECORDFORMAT TRIPF(%BYTE OPERN,OPTYPE,CNT,DPTH,
      %HALFINTEGER FLAGS,PUSE,FLINK,BLINK,%INTEGER X1,
      %RECORD(RD) OPND1,OPND2)

==== ercc07/emas-2900/algolbm_alg15.txt ====
//JOB(ERCC07,STEPHENS,T=200,L=10000)
//OPTIONS(QUOTES,OPT)
//ALGOL
'COMMENT'
                         ***************
                         *             *
                         *   ALGG015   *
                         *             *
                         ***************
;
 'BEGIN'
 'PROCEDURE' CPUTIM(T);
 'REAL' T;
   T:=CPUTIME;
 'INTEGER' I,J,K,M,N;
 'REAL' T;
 'INTEGER''ARRAY' A[1:2000];
 CPUTIM(T);
 N:=2000;
 'FOR'I:=1'STEP'1'UNTIL'N'DO'
 A[I]:=I;

==== ercc07/emas-2900/algolbm_alg16.txt ====
//JOB(ERCC07,STEPHENS,T=200,L=10000)
//OPTIONS(QUOTES,OPT)
//ALGOL
'COMMENT'
                         ***************
                         *             *
                         *   ALGG016   *
                         *             *
                         ***************
;
 'BEGIN''COMMENT' FORSYTHE'S LEAST SQUARE FIT;

 'PROCEDURE' FORS(M,SMIN,B,R,Q,C,YY,W,X,Y,N);
 'VALUE' M,N;
 'INTEGER' M,N;
 'REAL' SMIN;
 'ARRAY' B,R,Q,C,YY,W,X,Y;
 'BEGIN'
 'INTEGER' I,J,K;
 'REAL' S,T,E1,E2,F1,E3,F3,E4,G;
    'FOR'I:=1'STEP'1'UNTIL'N'DO'

==== ercc07/emas-2900/algolbm_alg18.txt ====
//JOB(ERCC07,STEPHENS,T=200,L=10000)
//OPTIONS(QUOTES,OPT)
//ALGOL
'COMMENT'
                         ***************
                         *             *
                         *   ALGG018   *
                         *             *
                         ***************
;
 'BEGIN''COMMENT' THE TRANSPORTATION PROBLEM;
 'PROCEDURE' CPUTIM(T);
 'REAL'T; 
 T:=CPUTIME;

 'PROCEDURE' S1(K,N,M2,A,U,DEL);
 'VALUE' K,N,M2;
 'INTEGER' K,N,M2;
 'ARRAY' A,U,DEL;
 'BEGIN'
 'INTEGER' I,J;

==== ercc07/emas-2900/algolbm_alg19.txt ====
//JOB(ERCC07,STEPHENS,T=200,L=10000)
//OPTIONS(QUOTES,OPT)
//ALGOL
'COMMENT'
                         ***************
                         *             *
                         *   ALGG019   *
                         *             *
                         ***************
;
 'BEGIN'
  'REAL''PROCEDURE' READ; 'EXTERNAL'READ1900;
      'BEGIN' 'REAL' A,B,C; 'INTEGER' I,J,K;
       'BOOLEAN' BOOL;
       'FOR' I := 1 'STEP' 1 'UNTIL' 82   'DO' 'BEGIN'
           J := NEXTCH; PRINTCH(J);J := READCH; PRINTCH(J);
                                     'END';
      'FOR' I := 1 'STEP' 1 'UNTIL' 81 'DO' SKIPCH;
      PRINTCH(48); SPACES(10);NEWLINES(1);NEWLINES(10);PRINTCH(49);
          NEWPAGE;
       SELECT OUTPUT(3);

==== ercc07/emas-2900/algolbm_calg2.txt ====
//JOB(ERCC07,STEPHENS,T=200,L=10000)
//OPTIONS(QUOTES,OPT)
//ALGOL
'COMMENT'
                         ***************
                         *             *
                         *   ALGG002   *
                         *             *
                         ***************
;
'BEGIN' 'INTEGER' I,J,K,NEQS,NVBS;
      'REAL' SUM;
      'COMMENT' INPUT/OUTPUT PROCEDURES;

      'COMMENT' END OF INPUT/OUTPUT PROCEDURES;

'PROCEDURE' INVERT(N,A,B);
      'VALUE' N;
      'INTEGER' N;
      'ARRAY' A,B;
      'BEGIN' 'COMMENT' INVERTS MATRIX A, N BY N, AND PUTS

==== ercc07/emas-2900/algolbm_calg3.txt ====
//JOB(ERCC07,STEPHENS,T=200,L=10000)
//OPTIONS(QUOTES,OPT)
//ALGOL
'COMMENT'
                         ***************
                         *             *
                         *   ALGG003   *
                         *             *
                         ***************
;
         'BEGIN'
         'INTEGER'  DV1,DIN,DV2,MT1,I,J,NAT;
         'REAL'  PI,ANGLE,A;
      'ARRAY' CELL[1:6],NN,MM[1:3,1:3],TITLE[1:200],
         INDEX[1:20];
         'BOOLEAN'  'ARRAY'  KEY[1:20];

      'COMMENT' INPUT/OUTPUT PROCEDURES;

'REAL''PROCEDURE' READ;
'EXTERNAL'READ1900;

==== ercc07/emas-2900/nralg08s.txt ====
!
! ALGOL 1.5 DATED NOV 76
!     1) CONTAINS CORRECTION TO GIVE ERROR MESSAGE FOR THE
!        %FOR..%DO %BEGIN...%END %ELSE %BEGIN CONSTRUCT WHICH IS INVALID
!     2) CHOPS RATHER THAN FAULTING LONG STRING CONSTANTS
!     3) CHECKS FOR BEGINS IN SYNTACTICALLY INCORRECT STATEMENTS TO
!        REDUCE THE ERRONEOUS FAULT MESSAGES WHEN LEVELS MISMATCH
!     4) CONTAINS THE BINARY IO ROUTINE NAMES
!     5) STORES PLT DESCRIPTOR CORRECTLY IN EXTERNAL PROCEDURES
!
! ALGOL 1.6 DATED 1ST DEC 76
!     1) CONTAINS CORRECTION TO READ1900 (MISTYPED AS INTEGERPROC)
!     2) CONTAINS CORRECT SPACE ALLOCATION SO THAT STORED VALUE
!        OF STACKFRONT IN PROCEDURES IS NOT CORRUPTED
!     3) USES SYTEMROUTINE STOP TO STOP
!     4) AVOIDS TRYING TO ADD ACC INTO B
!
! ALGOL 1.7 DATED 1ST JAN 77
!     1) HAS INCREASED SPACE IN EXPOP FOR TEMPORARY STACKED OPERANDS
!     2) REMOVES ABORT IN GOTOLAB FOR SWITCHES WITH NO LOCAL LABELS
!     3) AVOIDS STACK TWIST IF B&ACC CLAIMED THEN A MULTI DIMENSION

==== ercc07/emas-2900/sup29hs.txt ====

!
! To make S series supervisor requires:-
!     1) Change SSERIES=NO to SSERIES=YES in ctoptions file
!
!
! THESE CONST INTEGERS DEFINE SIZES AND LAYOUT OF IMPORTANT TABLES
! THEY HAVE TO BE HERE TO BE GLOBAL TO ALL ROUTINES INCLUDING IO ONES
!
%CONSTINTEGER LSTLEN=192;               ! LOCAL SEGMENT TABLE LENGTH
%CONSTINTEGER CBTLEN=299;               ! LENGTH OF CBT TABLE
%CONSTLONGINTEGER LCACR=1;              ! ACR OF LOCAL CONTROLLER
%CONSTINTEGER DIRCSEG=10;               ! SEG NO OF DIRECTOR COMMS SEG
%CONSTINTEGER DIRCSEGOFFSET=0;          ! FOR ALIGNMENT IF NEEDED
%CONSTINTEGER DIRCSEGAD=DIRCSEG<<18;    ! VIRTUAL ADDRESS OF DIR COM SEG
%CONSTINTEGER DIRCSEGL=8*CBTLEN+255+2*LSTLEN; ! SIZE OF SAME
                                        ! MADE UP OF 2049 FOR CBT
                                        ! 2*LSTLEN FOR SST
                                        ! 48+64 FOR 2 BITS OF SYTEMCALL TABLE
                                        ! 32+48 FOR DIROUTP&SIGOUT
%CONSTINTEGER LSTACKLEN=3;              ! LOCAL CONT. STACK ELEN

==== ercc07/emas-2900/ibmsup_storerts.txt ====
%integerfn QUICK EPAGE(%integer ZEROED,KEY)
!***********************************************************************
!*    CAN BE CALLED BY ANYONE HOLDING STORESEMA TO GET THE NEXT FREE   *
!*    NEXT FREE EPAGE. GIVES THE STORE INDEX OR -1                     *
!***********************************************************************
%record (STOREF) %name ST
%integer I,STAD,STOREX,RA
      %if FREE EPAGES=0 %thenresult=-1
      STOREX=FSTASL
      ST==STORE(STOREX)
      FSTASL=STORE(FSTASL)_FLINK
      STORE(FSTASL)_BLINK=0
      ST_USERS=1
      %if ST_FLAGS=1 %thenstart;        ! RECAPTURABLE FLAG
         I=ST_LINK
         AMTDD(I)=AMTDD(I)!STXMASK
         ST_FLAGS=0
      %finish
      RA=STOREX*PAGESIZE
      %if ZEROED=0 %thenstart;          ! CLEAR TO ZERO
         %if XA=YES %thenstart

==== ercc07/emas-2900/sup26hsrce_ndiag07s.txt ====

!*_ DATED 11 NOV 76   1
! ALTERATIONS BY K.YARWOOD ...
!        PRINT FL AND NEXT SYMBOL LINES COMMENTED OUT
!        PRINTTEXT'S TURNED TO PRINTSTRING'S
!        ADDITION FOR LONGINTEGER IN RT PRINT VAR
!         HEX EQUIVALENTS FOR INTS,LONGINTS ETC PRINTED
!        INF PRINTED IN HEX IN RT ERRMESS

%EXTERNALSTRINGFNSPEC STRHEX(%INTEGER I)
%EXTERNALSTRING(8)%FNSPEC STRINT(%INTEGER I)
%CONSTINTEGER STACKBASE=X'80100000';  ! START OF RESIDENT STACK
! %SYSTEMROUTINESPEC SIGNAL(%INTEGER I, J, K, %INTEGERNAME F)
%ROUTINESPEC PRINTMESS(%INTEGER N)
! %SYSTEMROUTINESPEC TIDY EXIT
!*
%ROUTINESPEC INDIAG(%INTEGER OLDLNB, L, PC, %INTEGERNAME NEWLNB)
! %ROUTINESPEC FDIAG(%INTEGER OLDLNB,PC,%INTEGERNAME NEWLNB)
%ROUTINESPEC ERMESS(%INTEGER N, INF)
! %ROUTINESPEC ICL9CELABELS


==== ercc07/emas-2900/algolbm_calg5.txt ====
//JOB(ERCC07,STEPHENS,T=200,L=10000)
//OPTIONS(QUOTES,OPT)
//ALGOL
'COMMENT'
                         ***************
                         *             *
                         *   ALGG005   *
                         *             *
                         ***************
;
      'BEGIN' 'COMMENT' PROGRAM FOR MASS AND ABUNDANCE
            DATA OF POLYISOTOPIC IONS;

      'COMMENT' INPUT/OUTPUT PROCEDURES;

'PROCEDURE' CRDTXT;
   'BEGIN' 'INTEGER' I,J;
TRY AGAIN:
      INSYMBOL(98,'('*')',I);
      'IF' I=1 'THEN'
      'BEGIN'

==== ercc07/emas-2900/houses.txt ====

%BEGIN
%CONSTINTEGER MSIZE=4
%ROUTINESPEC TEST MATRIX(%LONGREALARRAYNAME A, %INTEGER N)
%ROUTINESPEC HOUSEHOLDER(%LONGREALARRAYNAME A, W,  %C
         %INTEGER N, K)
%INTEGER I
%LONGREALARRAY A(1:MSIZE,1:MSIZE)
%LONGREALARRAY W(1:MSIZE)
      TEST MATRIX(A,MSIZE)
      PRINTSTRING("
TEST MATRIX EIGENVALUES
")
      HOUSEHOLDER(A,W,MSIZE,1)
      %CYCLE I=1,1,MSIZE
         PRINT FL(W(I),8)
         NEWLINE
      %REPEAT
      %STOP
%LONGREALFN SQRT(%LONGREAL ARG)
%INTEGER I,J

==== ercc07/emas-2900/docs_sep82.txt ====


      EMAS Team termly Report
      -----------------------

     The summer has been a time of intense activity for the EMAS group as two
major pieces of hardware had to be commissioned.  Both involved substantial
software changes and both projects were completed within the hoped for
timescales  - timescales that had been agreed before it was realised that the
two events would become co-temporaneous! The team deserves the congratulation
of the rest of the ERCC for a notable and successful effort and it is
regrettable that hardware problems, particularly with the 2988, have prevented
the Users from realising the scale and success of these efforts.

     The DAP arrived in April with the usual sub minimum of documentation. An
elegant solution was devised for incorporating it into EMAS fully compatible
with the EMAS philosophy. Each DAP user is allocated the whole of a virtual DAP
which is connected into his address space like a virtual file. A virtual DAP,
which may be less than but not more than the size of the actual DAP, then
behaves exactly like a mapped file with the additional (and alarming!) property
that its contents change unpredictably with time. Multidap-programming is

==== ercc07/emas-2900/impalgs_soapopt.txt ====

\SB,EM,\IL,LO,IM=6,\TB,\SE,CL=2,\CR,*

==== ercc07/emas-2900/nralg09s.txt ====
!
! ALGOL 1.5 DATED NOV 76
!     1) CONTAINS CORRECTION TO GIVE ERROR MESSAGE FOR THE
!        %FOR..%DO %BEGIN...%END %ELSE %BEGIN CONSTRUCT WHICH IS INVALID
!     2) CHOPS RATHER THAN FAULTING LONG STRING CONSTANTS
!     3) CHECKS FOR BEGINS IN SYNTACTICALLY INCORRECT STATEMENTS TO
!        REDUCE THE ERRONEOUS FAULT MESSAGES WHEN LEVELS MISMATCH
!     4) CONTAINS THE BINARY IO ROUTINE NAMES
!     5) STORES PLT DESCRIPTOR CORRECTLY IN EXTERNAL PROCEDURES
!
! ALGOL 1.6 DATED 1ST DEC 76
!     1) CONTAINS CORRECTION TO READ1900 (MISTYPED AS INTEGERPROC)
!     2) CONTAINS CORRECT SPACE ALLOCATION SO THAT STORED VALUE
!        OF STACKFRONT IN PROCEDURES IS NOT CORRUPTED
!     3) USES SYTEMROUTINE STOP TO STOP
!     4) AVOIDS TRYING TO ADD ACC INTO B
!
! ALGOL 1.7 DATED 1ST JAN 77
!     1) HAS INCREASED SPACE IN EXPOP FOR TEMPORARY STACKED OPERANDS
!     2) REMOVES ABORT IN GOTOLAB FOR SWITCHES WITH NO LOCAL LABELS
!     3) AVOIDS STACK TWIST IF B&ACC CLAIMED THEN A MULTI DIMENSION

==== ercc07/emas-2900/sup29is.txt ====

!
! To make S series supervisor requires:-
!     1) Change SSERIES=NO to SSERIES=YES in ctoptions file
!
!
! THESE CONST INTEGERS DEFINE SIZES AND LAYOUT OF IMPORTANT TABLES
! THEY HAVE TO BE HERE TO BE GLOBAL TO ALL ROUTINES INCLUDING IO ONES
!
%CONSTINTEGER LSTLEN=192;               ! LOCAL SEGMENT TABLE LENGTH
%CONSTINTEGER CBTLEN=299;               ! LENGTH OF CBT TABLE
%CONSTLONGINTEGER LCACR=1;              ! ACR OF LOCAL CONTROLLER
%CONSTINTEGER DIRCSEG=10;               ! SEG NO OF DIRECTOR COMMS SEG
%CONSTINTEGER DIRCSEGOFFSET=0;          ! FOR ALIGNMENT IF NEEDED
%CONSTINTEGER DIRCSEGAD=DIRCSEG<<18;    ! VIRTUAL ADDRESS OF DIR COM SEG
%CONSTINTEGER DIRCSEGL=8*CBTLEN+255+2*LSTLEN; ! SIZE OF SAME
                                        ! MADE UP OF 2049 FOR CBT
                                        ! 2*LSTLEN FOR SST
                                        ! 48+64 FOR 2 BITS OF SYTEMCALL TABLE
                                        ! 32+48 FOR DIROUTP&SIGOUT
%CONSTINTEGER LSTACKLEN=3;              ! LOCAL CONT. STACK ELEN

==== ercc07/emas-2900/ibmsup_seguse.txt ====

!
! This is the latest information on the use of Segments for EMAS3.
! Segments 0-63 correspond roughly to Public in EMAS2
! Segments 64-255 are the equivalent to Local in Emas2
! Segments 241-255 vanish from the Segment table when User is running
! but re-appear when Director is entered.
!
!     Seg 0                             address page 0 and used for
!                                       the zero page (page 1) and
!                                       writing to real addresses (page 2)
!     Seg 1                             segment table segment
!     Seg 2                             Supervisor stack
!     Seg 3                             Alternate Local Controller Stack for Amdahl
!                                       which uses 24 bit virtual addresses in Priv instrns
!     Seg 4                             Supervisor code
!     Segs 5-7                          free (for testing on 24 bit machines
!                                       these contain overflow portions of code)
!     Seg 8                             Supervisor Gla
!     Segs  9-11                        Free
!     Segs 12-15                        Reserved for SSP

==== ercc07/emas-2900/perqtrimp_compress.txt ====
%EXTERNALROUTINESPEC DEFINE(%STRING(63)S)
%EXTERNALROUTINE COMPRESS(%STRING(63)S)
!***********************************************************************
!*    COMPRESSES A FILE OF ERROR MESSAGE INTO TWO CONSTARRAYS AND      *
!*    GENERATES A ROUTINE TO REGURGITATE THEM IN ENGLISH               *
!***********************************************************************
%INTEGER CPSTRM,INSTRM,LPSTRM
%INTEGERARRAY WORD(0:2000)
%INTEGERARRAY LETT(0:1000)
%INTEGER I, J, K, N, NUM, NEXT, NMAX, NUMMAX
%STRING(31) FILE1, FILE2, FILE3
%STRING(71)TEMP,INPUT,WK1,WK2
%%STRING(71)%FNSPEC MESS(%INTEGER N)
%ROUTINESPEC LIT(%INTEGERNAME P,%STRINGNAME TXT1)
%ROUTINESPEC CARDS OUT

%CONSTBYTEINTEGERARRAY INTT(0:127)=     63(32),63(3),61,63,60, %C
                                        27,30,31,32,63(3),
                                        28,59,29,63(17),
                                        1,2,3,4,5,6,7,8,9,10,11,12,
                                        13,14,15,16,17,18,19,20,

==== ercc07/emas-2900/nrimp07s.txt ====
!QIN; %MAINEP ICL9CEZIMP
%TRUSTEDPROGRAM
%BEGIN
%INTEGER I, J, K
! PRODUCED BY OLDPS FROM NRIMPPS3 ON 06/04/78
%CONSTBYTEINTEGERARRAY CLETT(0: 478)=   1,
  40,   1,  41,   1,  44,   2, 201, 198,   6, 213, 206, 204, 197, 211,
 211,   5, 215, 200, 201, 204, 197,   5, 213, 206, 212, 201, 204,   4,
 210, 197, 193, 204,   7, 201, 206, 212, 197, 199, 197, 210,   8, 204,
 207, 206, 199, 210, 197, 193, 204,   4, 204, 207, 206, 199,  11, 194,
 217, 212, 197, 201, 206, 212, 197, 199, 197, 210,   6, 211, 212, 210,
 201, 206, 199,  11, 200, 193, 204, 198, 201, 206, 212, 197, 199, 197,
 210,   7, 210, 207, 213, 212, 201, 206, 197,   2, 198, 206,   3, 205,
 193, 208,   6, 210, 197, 195, 207, 210, 196,   4, 206, 193, 205, 197,
   5, 193, 210, 210, 193, 217,   9, 193, 210, 210, 193, 217, 206, 193,
 205, 197,   9, 207, 198, 208, 210, 207, 199, 210, 193, 205,   6, 207,
 198, 198, 201, 204, 197,   6, 207, 198, 204, 201, 211, 212,   6, 198,
 207, 210, 205, 193, 212,   4, 211, 208, 197, 195,   3, 193, 206, 196,
   2, 207, 210,   1,  58,   6, 206, 207, 210, 205, 193, 204,   3, 207,
 215, 206,   8, 197, 216, 212, 197, 210, 206, 193, 204,   9, 197, 216,
 212, 210, 201, 206, 211, 201, 195,   5, 195, 207, 206, 211, 212,   1,

==== ercc07/emas-2900/sup26isrce_tape70s.txt ====
!

!**************************************************
!*                                                *
!*  TAPE HANDLER FOR 2900                         *
!*                                                *
!**************************************************
!!
!!           EXTERNAL ROUTINE REFERENCES
!!
%EXTERNALSTRINGFNSPEC HTOS(%INTEGER VALUE, PLACES)
%EXTERNALROUTINESPEC OPMESS(%STRING (23) S)
%EXTERNALROUTINESPEC PON(%RECORDNAME P)
%SYSTEMROUTINESPEC ETOI(%INTEGER A, L)
%SYSTEMROUTINESPEC MOVE(%INTEGER L, FROMAD, TOAD)
%EXTERNALROUTINESPEC PRHEX(%INTEGER N)
%EXTERNALROUTINESPEC DUMP TABLE(%INTEGER TABNO, START, L)
%EXTRINSICLONGINTEGER PARMDES
%EXTERNALINTEGERFNSPEC NEWPPCELL
%EXTERNALROUTINESPEC RETURNPPCELL(%INTEGER CELL)
%IF MULTIOCP=YES %START

==== ercc07/emas-2900/sup26esrce_oper33s.txt ====
! %CONSTSTRING(15)VSN = "OPER33 08/09/80"; ! ****************************************
%IF (MONLEVEL >> 1) & 1 = YES %START
      %EXTRINSICLONGINTEGER KMON
      %OWNINTEGER OPMON; ! COPY OF KMON BIT
      %CONSTINTEGER KMONNING = YES
%FINISH %ELSE %START
      %CONSTINTEGER KMONNING = NO
%FINISH
!
%IF MONLEVEL & 1 = YES %START
      %CONSTINTEGER VIDEO UPDATING = YES
      %OWNINTEGER OPER FACILITIES
%FINISH %ELSE %START
      %CONSTINTEGER VIDEO UPDATING = NO
%FINISH
!
!
!
!%EXTERNALROUTINESPEC DUMPTABLE(%INTEGER X,A,S)
%EXTERNALROUTINESPEC PON(%RECORDNAME P)
%EXTERNALROUTINESPEC PKMONREC(%STRING(20)TXT,%RECORDNAME P)

==== ercc07/emas-2900/algolbm_alg40.txt ====
//JOB(ERCC07,STEPHENS,T=200,L=10000)
//OPTIONS(QUOTES,OPT)
//ALGOL
'COMMENT'
                         ***************
                         *             *
                         *   ALGG040   *
                         *             *
                         ***************
;
 'BEGIN'
 'COMMENT' MEP00;

'BEGIN' 'COMMENT' A0,A6,A12;
'INTEGER' N,M;

REPEAT:N:=READ;
  'IF' N=0 'THEN' 'GOTO' FINISH;
  M:=READ;
  'BEGIN' 'INTEGER' I,J,K,SA,SB,SC,SD;
  'REAL' KA,KB,RMS,MEAN;

==== ercc07/emas-2900/algolbm_alg42.txt ====
//JOB(ERCC07,STEPHENS,T=200,L=10000)
//OPTIONS(QUOTES,OPT)
//ALGOL
'COMMENT'
                         ***************
                         *             *
                         *   ALGG042   *
                         *             *
                         ***************
;
 'BEGIN'

 'COMMENT'
!***FY31****BENDDME************************
      ;
'BEGIN'
'COMMENT' A6,A30;
'REAL' E1,E2,E3,Q1,Q2,Q3,T1,T2,T3,QQ,TT,D,ANS,R,AT,BT,CT;
'INTEGER' X,U,V,P,S,I,J;
'ARRAY' T[1:10],Q[1:18],E[1:10,1:18],A[1:3],B[1:3],C[1:3],ET
[1:3,1:3];

==== ercc07/emas-2900/algolbm_alg43.txt ====
//JOB(ERCC07,STEPHENS,T=200,L=10000)
//OPTIONS(QUOTES,OPT)
//ALGOL
'COMMENT'
                         ***************
                         *             *
                         *   ALGG043   *
                         *             *
                         ***************
;
 'BEGIN''COMMENT' PROGRAM ON H & O GRADE SURVEYS, IN ALGOL 1900,
                  MODIFIED TO I.B.M. CARD PUNCHES;
      'COMMENT' INPUT/OUTPUT PROCEDURES;

      'COMMENT' END OF INPUT/OUTPUT PROCEDURES;

  'PROCEDURE' CRDTXT;
   'BEGIN' 'INTEGER' I,J;
 TRY AGAIN : INSYMBOL(98,'('*')',I);
      'IF' I = 1 'THEN'
      'BEGIN'

==== ercc07/emas-2900/bit.txt ====
%ROUTINE CSTREXP(%INTEGER MODE)
!***********************************************************************
!*       PLANT IN-LINE CODE FOR CONCATENATION. A WORK AREA IN THE      *
!*       CURRENT STACK FRAME IS USUALLY REQUIRED.                      *
!*       ON ENTRY:-                                                    *
!*       MODE=0    NORMAL. WK AREA NOT USED FOR ONE OPERAND EXPSSNS    *
!*       MODE=1     STRING MUST GO TO WORK AREA                        *
!*       2**5 BIT OF MODE SET IF FULL VIRTUAL ADDRESS REQUIRED         *
!*       2**4 BIT OF MODE IS SET IF WK-AREA NOT TO BE FREED ON EXIT    *
!*       ON EXIT:-                                                     *
!*       VALUE#0 %IF RESULT IN A WORK AREA(CCOND MUST KNOW)            *
!***********************************************************************
%INTEGER PP,WKAREA,DOTS,ERR,KEEPWA,FNAM,I,ENDFLAG
%RECORD(RD) OPND1,OPND2,OPND3
%INTEGERFNSPEC STROP(%RECORD(RD) %NAME OPND)
      KEEPWA=MODE&16; MODE=MODE&15
      PP=P; STRINGL=0; FNAM=0; WKAREA=0
      P=P+3;                            ! LENGTH OF CONSTANT PART
      ERR=72; ->ERROR %UNLESS A(P)=4
      P=P+1
      DOTS=0;                           ! NO OPERATORS YET

==== ercc07/emas-2900/algolbm_alg44.txt ====
//JOB(ERCC07,STEPHENS,T=200,L=10000)
//OPTIONS(QUOTES,OPT)
//ALGOL
'COMMENT'
                         ***************
                         *             *
                         *   ALGG044   *
                         *             *
                         ***************
;
         'BEGIN'
         'INTEGER'  DV1,DIN,DV2,MT1,I,J,NAT;
         'REAL'  PI,ANGLE,A;
      'ARRAY' CELL[1:6],NN,MM[1:3,1:3],TITLE[1:200],
         INDEX[1:20];
         'BOOLEAN'  'ARRAY'  KEY[1:20];

      'COMMENT' INPUT/OUTPUT PROCEDURES;

'REAL' 'PROCEDURE' READ;
'EXTERNAL'READ1900;

==== ercc07/emas-2900/sup27bsrce_ndiag07s.txt ====

!*_ DATED 11 NOV 76   1
! ALTERATIONS BY K.YARWOOD ...
!        PRINT FL AND NEXT SYMBOL LINES COMMENTED OUT
!        PRINTTEXT'S TURNED TO PRINTSTRING'S
!        ADDITION FOR LONGINTEGER IN RT PRINT VAR
!         HEX EQUIVALENTS FOR INTS,LONGINTS ETC PRINTED
!        INF PRINTED IN HEX IN RT ERRMESS

%EXTERNALSTRINGFNSPEC STRHEX(%INTEGER I)
%EXTERNALSTRING(8)%FNSPEC STRINT(%INTEGER I)
%CONSTINTEGER STACKBASE=X'80100000';  ! START OF RESIDENT STACK
! %SYSTEMROUTINESPEC SIGNAL(%INTEGER I, J, K, %INTEGERNAME F)
%ROUTINESPEC PRINTMESS(%INTEGER N)
! %SYSTEMROUTINESPEC TIDY EXIT
!*
%ROUTINESPEC INDIAG(%INTEGER OLDLNB, L, PC, %INTEGERNAME NEWLNB)
! %ROUTINESPEC FDIAG(%INTEGER OLDLNB,PC,%INTEGERNAME NEWLNB)
%ROUTINESPEC ERMESS(%INTEGER N, INF)
! %ROUTINESPEC ICL9CELABELS


==== ercc07/emas-2900/ndiag40s.txt ====
! EXTENDED FOR ALGOLE(60) WITH EBCDIC STRING
!INCORPORATES CODE FOR NEW FORTRAN DIAGNOSTICS
!INCLUDES ICL MATHS ROUTINE ERROR ROUTINE
!INCLUDES CORRECTION FOR FAULT AT THE END OF ONCOND. R.M.1/12/77
!REFS TO WRITE JS VAR COMMENTED OUT
!IMP AND ALGOL SECTION REPLACED 13.4.78
%CONSTSTRING (10) %ARRAY LT(0 : 9) =  %C
" !???! "," IMP "," FORTRAN ",
                              " IMPS "," ASMBLR "," ALGOL(E) ",
                              " OPTCODE "," PASCAL "," SIMULA "," BCPL "
%OWNINTEGER ACTIVE=0;                   !  CHECKS FOR LOOPS
!*
!*
!**DELSTART
%CONSTBYTEINTEGERARRAY HEX(0 : 15) =  %C
'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'
%CONSTINTEGER SEGSHIFT=18
%EXTRINSICINTEGERARRAY SSCOMREG(0:60)
%EXTRINSICINTEGER SSARRAYDIAG;          !DETERMINES NO OF ELEMENTS TO BE PRINTED
%SYSTEMROUTINESPEC FIO1(%INTEGER ADPARM)
%SYSTEMROUTINESPEC ETOI(%INTEGER AD,L)

==== ercc07/emas-2900/drslink.txt ====
LINK
ERCC07.P1Y
ERCC07.DP2Y
ERCC07.DOPTY
ERCC07.DGENY
ERCC07.CSERV01Y
ERCS02.DRS_EPUTY
.END
P0Y
MODIFY P0Y
SATISFY REFS
.ALL
SATISFY DATA
.ALL
SUPPRESS
.ALL
RETAIN
PGENERATEDRSOBJECT,ICL9CEZDRSIMP
SUPPRESS DATA
.ALL
CLOSE

==== ercc07/emas-2900/algolbm_alg45.txt ====
//JOB(ERCC07,STEPHENS,T=200,L=10000)
//OPTIONS(QUOTES,OPT)
//ALGOL
'COMMENT'
                         ***************
                         *             *
                         *   ALGG045   *
                         *             *
                         ***************
;

 'BEGIN'
'COMMENT' G4628T;
'INTEGER' COUNT;
'BEGIN' 'INTEGER' I,J,K,M,N,MIN,L,FLOWH,F,X;
COUNT:=0;
      M:=READ;N:=READ;
'BEGIN' 'INTEGER' 'ARRAY' ZERO,BOOL,U[1:N-1,1:M-1],C,WGHT[1:N,1:M],
            COL[1:N,1:2],ROW[1:2,1:M];
      'BOOLEAN' 'ARRAY' NLROW[1:N-1],NLCOL[1:M-1];'BOOLEAN' MLAB;
    WRITETEXT('(''('C')'COST'('S')'MATRIX'('S')'IS')');

==== ercc07/emas-2900/nrimp08s.txt ====
! BUG CLEARANCE RECORD
! *** ********* ******
!     1) TOSTRING PREVENTED FROM RETURNING SPURIOUS STRING WK AREA
!     2) REMOVE FAULT 29 WHEN ASSIGNING TO CONSTANT NAMES
!     3) RESTRICT EBCDIC STRINGS TO " ONLY AND ALLOW NULL
!     4) CORRECT FAULT IN STRETCHING REALS AT COMPILE TIME
!     5) CORRECTS SUBROUTINE P18 FOR CASE OF MAPPED STRING
!          WHOSE LENGTH IS EXACTLY 255
!     6) DISTINGUISHES DYNAMICROUTINE SPECS FROM EXTERNALS
!     7) ROUNDS STACK FRAMES UP TO 8 BYTE BOUNDARY
!     8) MINOR CHANGES TO DOPEVECTOR FOR UNSET CONSTINTEGER BOUNDS
!     9) CHANGES TO CONST LENGTHEN & SHORTEN FOR REAL ARRAY
!        INITIALISATION WITH WRONG PRECISION CONSTS
!     10)CORRECTION TO IMOD WHEN WORKING IN B REGISTER
!     11)CORRECTIONS(2) TO DECLARE ARRAY ON AUX STACK TO COVER
!        NEGATIVE CONSTANT BOUNDS & 3 DIMENSIONS
!     12)ADDITION OF A SET LINE BEFORE DECLARING RECORDARRAYS
!     13)ADDITION TO S(12) IN CNAME FOR PASSING ARRAYNAMES OUT OF
!           RECORDNAMES
!     14)CORRECTION TO EVENTINF FOR WHEN ACC CLAIMED
!     15)CORRECTION TO BIP(1026) FOR \ & \\

==== ercc07/emas-2900/algolbm_alg46.txt ====
//JOB(ERCC07,STEPHENS,T=200,L=10000)
//OPTIONS(QUOTES,OPT)
//ALGOL
'COMMENT'
                         ***************
                         *             *
                         *   ALGG046   *
                         *             *
                         ***************
;
 'BEGIN'
 'COMMENT'
!***GBI1****BENGBME***************************
      ;
'BEGIN' 'COMMENT' INTERPOLATION OF LOAD CAPACITY USING CARPET;
'COMMENT' A0,A6;  'ARRAY' SHAPE[1:7],TAPER[1:13];
'REAL' HI,BOL,I,J,TOLERANCE; 'ARRAY' PZ[1:7,1:13];
'PROCEDURE' LOCATE(VECTOR,L,U,VALUE,I,TOLERANCE,UP,ESCAPE);
            'VALUE' L,U,VALUE,TOLERANCE,UP;
            'REAL' VECTOR,VALUE,TOLERANCE; 'INTEGER' L,U,I;
            'BOOLEAN' UP; 'LABEL' ESCAPE;

==== ercc07/emas-2900/algolbm_alg47.txt ====
//JOB(ERCC07,STEPHENS,T=200,L=10000)
//OPTIONS(QUOTES,OPT)
//ALGOL
'COMMENT'
                         ***************
                         *             *
                         *   ALGG047   *
                         *             *
                         ***************
;
 'BEGIN'
'BEGIN'
'COMMENT' A PROGRAM TO FIND THE STARTING VALUE OF HMIN;
'COMMENT' A30;
      'REAL' A,B,BE,BO,C,CR,D,DU,EL,EM,EN,EX,ESS,         FN,FN2,FN3,HO,
           H1,H2,OMEGA,P1,P2,RT,RU1,RU2,S,VE,VEL,WY,X,DIF,BIF,INT;
      'INTEGER' I,J,N;
      'ARRAY' HMIN[1:20];
      'REAL' 'PROCEDURE' SIMP(P,Q,PX,N);
           'VALUE' P,Q,N;
           'REAL' P,Q;

==== ercc07/emas-2900/sup26csrce_print04s.txt ====

%EXTRINSICLONGINTEGER KMON
%EXTERNALROUTINESPEC SEMALOOP(%INTEGERNAME SEMA)
%ROUTINESPEC PRHEX(%INTEGER H)
%ROUTINESPEC PRINTER(%RECORDNAME P)
%EXTERNALROUTINESPEC PON(%RECORDNAME P)
%EXTERNALROUTINESPEC OPMESS(%STRING (23) MESS)
%SYSTEMROUTINESPEC ITOE(%INTEGER A, L)
%RECORDFORMAT PARMF(%INTEGER DEST, SRCE, P1, P2, P3, P4, P5,  %C
         P6)
!------------------------------------------------------------------------
%RECORDFORMAT ENTFORM(%INTEGER SER, PTSM, PROPADDR,  %C
         TICKS SINCE, CAA, GRCB AD, LBA, ALA, STATE, RESP0,  %C
         RESP1, SENSE1, SENSE2, SENSE3, SENSE4, REPSNO, BASE,  %C
         ID, DLVN, MNEMONIC, ENTSIZE, PAW, USAW0, URCB AD,  %C
         SENSDAT AD, LOGMASK, TRTAB AD, UA SIZE, UA AD,  %C
         TIMEOUT, PROPS0, PROPS1)
!------------------------------------------------------------------------
! MASTER RESIDENT TRANSLATE TABLES FOR EMAS2900
%SYSTEMROUTINE MOVE(%INTEGER LENGTH, FROM, TO)
      *LB_LENGTH;  *JAT_14,<L99>

==== ercc07/emas-2900/sup26gsrce_releasen.txt ====





         SUPERVISOR RELEASE NOTICE VSN 26fF
         _________________________________
  



      This Supervisor incorporates the following changes:-

         1) Has minor changes to debug faults in dualling only





         SUPERVISOR RELEASE NOTICE VSN 26E
         _________________________________

==== ercc07/emas-2900/algolbm_alg48.txt ====
//JOB(ERCC07,STEPHENS,T=200,L=10000)
//OPTIONS(QUOTES,OPT)
//ALGOL
'COMMENT'
                         ***************
                         *             *
                         *   ALGG048   *
                         *             *
                         ***************
;
'BEGIN'

'BEGIN'
       'COMMENT' THIS PROGRAMME ENABLES ONE TO EXPRESS THE FREQUENCY
                RESPONSE OF A DYNAMIC SYSTEM AS A RATIO OF TWO
                FREQUENCY DEPENDENT POLYNOMIALS;
       'COMMENT' A0,A6,A12,A30,B3037;
       'INTEGER' I,J,X,Y,Z,K,H,F1,F2;
       'REAL' PIC,SUM1,SUM2,SUM3,SUM4;

       X:=READ;Y:=READ;Z:=READ;

==== ercc07/emas-2900/algolbm_alg49.txt ====
//JOB(ERCC07,STEPHENS,T=200,L=10000)
//OPTIONS(QUOTES,OPT)
//ALGOL
'COMMENT'
                         ***************
                         *             *
                         *   ALGG049   *
                         *             *
                         ***************
;
 'BEGIN'
'BEGIN'
'COMMENT' WJW1;
'COMMENT' A0,A6;
'INTEGER' Y,I,J,E,COUNT;
'REAL' A,B,C,BETAD,G,R,S,M,N,O,P,Q,GA,MA;
'INTEGER' 'ARRAY' H,K,L[1:6];
'REAL' 'ARRAY' D[1:6],SEP[0:10];
GA:=READ;
MA:=READ;
E:=READ;

==== ercc07/emas-2900/itrimp_ibmptwoas.txt ====
%EXTERNALROUTINE ICL9CEZIBMIMP
%CONSTINTEGER RELEASE=4
%INCLUDE "ERCC07.TRIMP_HOSTCODES"
%CONSTINTEGER HOST=IBMXA
%CONSTINTEGER TARGET=IBMXA
%CONSTINTEGER STANDARDPT=X'51'
%CONSTINTEGER MINAPT=X'51';             ! MINIMUM PTYPE FOR WHICH ARITHMETIC
                                        ! OPERATORS ARE AVAILABLE
%CONSTINTEGER MINAPREC=MINAPT>>4
%CONSTHALFINTEGERARRAY TYPEFLAG(0:12)=0,
                                        X'51'{%INTEGER},
                                        X'52'{%REAL},
                                        X'8009'{%LONG SOMETHING},
                                        X'4031'{%BYTE},
                                        X'35'{%STRING},
                                        X'6051'{%HALF->%INTEGER+WARNING},
                                        X'4041'{%SHORT->%SHORTINTEGER},
                                        X'33'{%RECORD},
                                        0,
                                        X'61'{%LONG INTEGER},
                                        X'62'{%LONG REAL},

==== ercc07/emas-2900/algolbm_alg50.txt ====
//JOB(ERCC07,STEPHENS,T=200,L=10000)
//OPTIONS(QUOTES,OPT)
//ALGOL
'COMMENT'
                         ***************
                         *             *
                         *   ALGG050   *
                         *             *
                         ***************
;
 'BEGIN'

'BEGIN' 'COMMENT' TEST PROGRAM MK.2;
'COMMENT'   JFMP2  ;
      'COMMENT' A0,A6;
      'REAL' XLIM,YLIM,TLIM,GAPX,GAPY,H;

      XLIM:=READ;  YLIM:=READ;  TLIM:=READ;
      GAPX:=READ;  GAPY:=READ;     H:=READ;
'BEGIN'
      'REAL' X,Y,T,K,W,G,B,C,INTA,INC,DTL;

==== ercc07/emas-2900/sup26csrce_enter04s.txt ====

%EXTRINSICINTEGER INPTR
%EXTRINSICINTEGER OUTPTR
%CONSTINTEGER MASK=X'80FC3FFF'
%EXTERNALINTEGERFNSPEC HANDKEYS
%EXTERNALROUTINESPEC HOOT(%INTEGER NUM)
%EXTERNALROUTINESPEC GET PSTB(%INTEGERNAME P0, P1)
%EXTERNALROUTINESPEC SUP29
%EXTERNALROUTINESPEC GPC(%RECORDNAME P)
%EXTERNALROUTINESPEC SLAVESONOFF(%INTEGER J)
%EXTERNALROUTINESPEC PTREC(%RECORDNAME P)
%SYSTEMROUTINESPEC MOVE(%INTEGER L, FROMAD, TOAD)
%RECORDFORMAT PARMF(%INTEGER DEST, SRCE, P1, P2, P3, P4, P5,  %C
         P6)
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20A ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DDTADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,WASKLOKCORRECT,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,DQADDR,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0, %C

==== ercc07/emas-2900/algolbm_alg52.txt ====
//JOB(ERCC07,STEPHENS,T=200,L=10000)
//OPTIONS(QUOTES,OPT)
//ALGOL
'COMMENT'
                         ***************
                         *             *
                         *   ALGG052   *
                         *             *
                         ***************
;
 'BEGIN'
'BEGIN' 'COMMENT' A0,A6; 'REAL' CHI,MU,NU,S,DX,ZETAE,ZETA,
A,B,LCHI,SCHI,UCHI,LMU,SMU,UMU,THETAIG,PHI,LAMDA,ETA;
'INTEGER' M,X,I,J,CHOICE;
'REAL' 'PROCEDURE' EM(Y,L); 'VALUE' Y,L; 'REAL' Y; 'INTEGER' L;
'BEGIN' 'REAL' S, Q; 'INTEGER' R;
'IF' L = 0 'THEN' S:=1 'ELSE' 'BEGIN' S:=1; Q:=1;
'FOR' R:=1 'STEP' 1'UNTIL' L 'DO' 'BEGIN' Q:=Q*Y/R; S:=S+Q 'END';
EM:=S 'END'; 'END' OF PROCEDURE EM;
'INTEGER' 'PROCEDURE' FA(X); 'VALUE' X; 'INTEGER' X; 'BEGIN'
'INTEGER' I,P; 'IF' X = 0 'THEN' P:=1'ELSE' 'BEGIN' P:=1;

==== ercc07/emas-2900/algolbm_alg54.txt ====
//JOB(ERCC07,STEPHENS,T=200,L=10000)
//OPTIONS(QUOTES,OPT)
//ALGOL
'COMMENT'
                         ***************
                         *             *
                         *   ALGG054   *
                         *             *
                         ***************
;
 'BEGIN'
 'COMMENT'
!***BG4621B***BEN4ASUE****
      ;
'BEGIN' 'INTEGER'   I,J,M,N,I2,J2,I1,J1,P,H,H1,H2,X1,B,C1,R,D,E,ALPHA,BE
TA,
            GAMMA,A,SIGMA,NETA,Q,S,T,TOR,VV,W,PI;

I1:=0;J1:=0;

 H1:=1;    'COMMENT'   FIX UP;

==== ercc07/emas-2900/algolbm_alg55.txt ====
//JOB(ERCC07,STEPHENS,T=200,L=10000)
//OPTIONS(QUOTES,OPT)
//ALGOL
'COMMENT'
                         ***************
                         *             *
                         *   ALGG055   *
                         *             *
                         ***************
;
'BEGIN'
'COMMENT'    YC02   ;
'COMMENT'  ANALYSIS OF VARIANCE TABLE FOR MG,NA,K,P.;
'COMMENT'   A0,A6,A14;
'INTEGER' SETS,N,R,C,X,Y,I,J,Z;
'REAL'  K,GM,TB1,TB2,TB3,TB4,T1,T2,T3;
'REAL'  'ARRAY'  DATA[1:7,1:11],  AV[1:17,1:6],AGN[1:3,1:7],
             ALS[1:3,1:3], NG[1:3,1:4],GLSN[1:3,1:7],SN[1:5,1:7]
;
'COMMENT'   SET TO ZERO;
SETS:=N:=I:=J:=0;

==== ercc07/emas-2900/nrimp09s.txt ====
!QIN; %MAINEP ICL9CEZIMP
%TRUSTEDPROGRAM
%BEGIN
%CONSTINTEGER RELEASE=9
%CONSTSTRING(8) LADATE="05May81";       ! LAST ALTERED
%INTEGER I, J, K
! PRODUCED BY OLDPS FROM NRIMPPS7 ON 06/03/80
%CONSTBYTEINTEGERARRAY CLETT(0: 487)=   1,
  43,   1,  45,   1,  40,   1,  41,   1,  44,   2, 201, 198,   6, 213,
 206, 204, 197, 211, 211,   5, 215, 200, 201, 204, 197,   5, 213, 206,
 212, 201, 204,   4, 210, 197, 193, 204,   7, 201, 206, 212, 197, 199,
 197, 210,   8, 204, 207, 206, 199, 210, 197, 193, 204,   4, 204, 207,
 206, 199,  11, 194, 217, 212, 197, 201, 206, 212, 197, 199, 197, 210,
   6, 211, 212, 210, 201, 206, 199,  11, 200, 193, 204, 198, 201, 206,
 212, 197, 199, 197, 210,   7, 210, 207, 213, 212, 201, 206, 197,   2,
 198, 206,   3, 205, 193, 208,   6, 210, 197, 195, 207, 210, 196,   4,
 206, 193, 205, 197,   5, 193, 210, 210, 193, 217,   9, 193, 210, 210,
 193, 217, 206, 193, 205, 197,   9, 207, 198, 208, 210, 207, 199, 210,
 193, 205,   6, 207, 198, 198, 201, 204, 197,   6, 207, 198, 204, 201,
 211, 212,   6, 198, 207, 210, 205, 193, 212,   4, 211, 208, 197, 195,
   3, 193, 206, 196,   2, 207, 210,   1,  58,   6, 206, 207, 210, 205,

==== ercc07/emas-2900/nrsrce_acrtests.txt ====
%BEGIN
%INTEGER ACR,ADR,I,J
READ(ACR)
ACR=ACR<<20
READ(ADR)
ADR=(ADR!X'2000')<<18
!
*LDTB_X'18000010'
*LDA_ADR
*VAL_ACR
*CPSR_I
PRINTSTRING("VALIDATE CC=")
WRITE(I>>2&3,3)
NEWLINE
%ENDOFPROGRAM

==== ercc07/emas-2900/imptests_rt10.txt ====
%BEGIN
%RECORDFORMAT F1(%INTEGER I,J,K,L)
%RECORDFORMAT F2(%INTEGER P,%RECORDARRAY A(0:8)(F1))
%RECORD R,RP(F2)
%RECORDNAME RR(F2)
%RECORDNAME RN(F1)
%INTEGER I,J,K,L
RR==RP
%CONTROL X'1FFFFFFF'
I=ADDR(R_A(0))
RN==R_A(0)
J=ADDR(R_A(0)_K)
K=ADDR(RR_A(0))
L=ADDR(RR_A(0)_K)
RN==RR_A(0)
%CONTROL X'0FFFFFFF'
%UNLESS I+8=J %AND ADDR(R)+4=I %AND K+8=L %C
      %AND ADDR(RR)+4=K=ADDR(RN) %THEN PRINTSTRING("
WRONG ANSWERS
")
%ENDOFPROGRAM

==== ercc07/emas-2900/imptests_rt11.txt ====
%BEGIN
!***********************************************************************
!*    SHOULD RUN WITHOUT OPUT. LOOPS ON SOME COMPILERS DUE TO          *
!*    MISSING LABELS GIVING JUMPS WITH ZERO OFFSET                     *
!***********************************************************************
%INTEGER I,K,L
%CONSTINTEGER J=0
      I=4000; L=10
      %IF I>4095 %AND J#0 %THEN I=I+1
      %IF I>4095 %AND J#0 %THEN I=I+1 %ELSE I=I-1
      %IF I>4095 %AND J#0 %THEN %START; %FINISH
      %IF I>4095 %AND J#0 %THEN %START
         I=I+1
      %FINISH %ELSE I=I-1
      %IF (I>4095 %AND J#0 ) %AND L=1 %THEN I=I+1
      %IF (I>4095 %AND J#0) %OR L=1 %THEN I=I+1
      %UNLESS I>4095 %AND J#0 %THEN I=I+1
      %UNLESS I>4095 %AND J#0 %THEN I=I+1 %ELSE I=I-1
      %UNLESS I>4095 %AND J#0 %THEN %START; %FINISH
      %UNLESS I>4095 %AND J#0 %THEN %START
         I=I+1

==== ercc07/emas-2900/imptests_rt12.txt ====
%BEGIN
!***********************************************************************
!*    TESTS CLEARING RECORDARRAY FOR OVERWRITING OFF END               *
!***********************************************************************
%INTEGER I
%RECORDFORMAT F(%STRING(15)NAME,%INTEGER I,J,K,%LONGLONGREAL X, %C
      %LONGREALARRAY A(0:200))
%RECORDARRAY ONE(1:100)(F)
%RECORDARRAY TWO(1:2)(F)
      TWO(1)_NAME="PETE"
      %CYCLE I=1,1,100
         ONE(I)=0
      %REPEAT
      %IF TWO(1)_NAME#"PETE" %THEN PRINTSTRING("***ERROR***")
%ENDOFPROGRAM

==== ercc07/emas-2900/imptests_rt13.txt ====
%BEGIN
!***********************************************************************
!*    TESTS ASSIGNING TO STRING ARRAYS WHEN PASSED BY NAME             *
!***********************************************************************
%STRING(11)%ARRAY A(0:15,0:15)
%ROUTINE FRED(%STRINGARRAYNAME WA)
%STRING(15)W
%INTEGER WP
      WP=1
      W=WA(WP,WP)
      %IF W="?" %THEN WA(WP,WP)="ABCD"
%END
A(1,1)="?"
FRED(A)
PRINTSTRING(A(1,1))
%ENDOFPROGRAM

==== ercc07/emas-2900/vtests.txt ====
'BEGIN''COMMENT' MODUL PRO TESTOVANI I/O OPERACI KOMP. ALGOLE 2900
                 MODUL     : HJS U9900A MALA
                 ENTRYNAME : EALG
                 DAT.VYDANI: UNOR 78
                 AUTOR     : MENSIK ;

 'INTEGER'J,I,IN,OUT,MT,D,FI,FR,ZN,FS                                 ;
 'REAL'R                                                              ;
 'BOOLEAN' B                                                          ;
     'PROCEDURE' TISKARR(K,A,B,C);
      'VALUE'K; 'INTEGER'K; 'INTEGER''ARRAY'A; 'ARRAY'B;
                            'BOOLEAN''ARRAY'C;                          00921000
      'BEGIN'  WRITETEXT(OUT,'('%%IWRITEARRAY,WRITEARRAY,BWRITEARRAY_:%
                             ')');
        IWRITEARRAY(OUT,FI,K,A,'('IRA')');   NEWLINE(OUT,2);
        WRITEARRAY (OUT,FI,K,B,'('RRA')');   NEWLINE(OUT,2);
        BWRITEARRAY(OUT,0,K,C,'('BRA')');   NEWLINE(OUT,2)
      'END';
     'PROCEDURE' TISKARR2(K,A,B,C);
      'VALUE'K; 'INTEGER'K; 'INTEGER''ARRAY'A; 'ARRAY'B;
                            'BOOLEAN''ARRAY'C;                          00921000

==== ercc07/emas-2900/imptests_rt14.txt ====

%BEGIN
!***********************************************************************
!*    A TEST TO CHECK THE LINE NUMBER OF A FAILURE AT RUN TIME         *
!***********************************************************************
%INTEGERARRAY A(0:4)
%INTEGER I
I=10
%IF 1<0 %THEN %START
      !
      !
      %STOP
%FINISH %ELSE A(I)=A(I)+1
      !
%ENDOFPROGRAM

==== ercc07/emas-2900/sup26gsrce_gpc34s.txt ====
%CONSTSTRING(25) VSN = "GPC34 17TH NOV 80"; ! ************************************************GPC GPC GPC
!
!   EMAS 2900 SUPERVISOR NOTE
!                                           No: 5
!                                         Date: 21/05/80
!                                       Author: A.Gibbons
!
!
! %EXTERNAL ROUTINE GPC(%RECORDNAME P)
!
! 1. CONVENTIONS
! The record spec for the parameter is
!   %RECORDFORMAT PARMF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6)
! where
!   DEST is considered as two half words DSNO and DACT. DSNO
!        must be GPC's DSNO 
!        DACT is set according to the function required.
!
!   SRCE is considered as two halfwords SSNO and SACT.
!        SSNO is SNO of ORIGINATOR and SACT is DACT for
!        the reply.

==== ercc07/emas-2900/sup26fsrce_tape68s.txt ====

!**************************************************
!*                                                *
!*  TAPE HANDLER FOR 2900                         *
!*                                                *
!**************************************************
!!
!!           EXTERNAL ROUTINE REFERENCES
!!
%EXTERNALSTRINGFNSPEC HTOS(%INTEGER VALUE, PLACES)
%EXTERNALROUTINESPEC OPMESS(%STRING (23) S)
%EXTERNALROUTINESPEC PON(%RECORDNAME P)
%SYSTEMROUTINESPEC ETOI(%INTEGER A, L)
%SYSTEMROUTINESPEC MOVE(%INTEGER L, FROMAD, TOAD)
%EXTERNALROUTINESPEC PRHEX(%INTEGER N)
%EXTERNALROUTINESPEC DUMP TABLE(%INTEGER TABNO, START, L)
%EXTRINSICLONGINTEGER PARMDES
%EXTERNALINTEGERFNSPEC NEWPPCELL
%EXTERNALROUTINESPEC RETURNPPCELL(%INTEGER CELL)
%IF MULTIOCP=YES %START
%EXTERNALROUTINESPEC RESERVELOG

==== ercc07/emas-2900/imptests_rt15.txt ====

%BEGIN
!***********************************************************************
!*    TESTS SOME VERY NOTTED CONDITIONS FOR CONSISTENCY. NO OPUT IF OK *
!***********************************************************************
%INTEGER I,J,K
%ROUTINESPEC A
%ROUTINESPEC B
%ROUTINESPEC C
      K=0
      %CYCLE I=-1,1,1
         %CYCLE J=0,1,3
      %IF %NOT %NOT %NOT %NOT I=1 %THEN A %ELSE B
      %IF %NOT (%NOT I=1) %THEN A %ELSE B
      %IF I=1 %THEN A %ELSE B
      C
      %IF %NOT I=1 %THEN A %ELSE B
      %UNLESS I=1 %THEN A %ELSE B
      C
      %IF I=1 %AND J#2 %THEN A %ELSE B
      %IF I=1 %AND %NOT J=2 %THEN A %ELSE B

==== ercc07/emas-2900/sup26isrce_fast33s.txt ====
%EXTERNALSTRING (15) %FNSPEC STRINT(%INTEGER N)
%EXTERNALSTRING (8) %FNSPEC STRHEX(%INTEGER N)
%EXTERNALSTRING(8) %FNSPEC HTOS(%INTEGER VALUE,PLACES)
%EXTERNALROUTINESPEC PKMONREC(%STRING(20)TEXT,%RECORDNAME P)
%EXTERNALROUTINESPEC OPMESS(%STRING (63) S)
%ROUTINESPEC MONITOR(%STRING (63) S)
%EXTERNALROUTINESPEC DUMP TABLE(%INTEGER T, A, L)
%ROUTINESPEC ELAPSED INT(%RECORDNAME P)
%SYSTEMROUTINESPEC MOVE(%INTEGER L,F,T)
%SYSTEMROUTINESPEC ETOI(%INTEGER A, L)
%ROUTINESPEC PDISC(%RECORDNAME P)
%EXTERNALROUTINESPEC HOOT(%INTEGER NHOOTS)
%EXTERNALROUTINESPEC WAIT(%INTEGER MSECS)
%EXTERNALINTEGERFNSPEC HANDKEYS
%EXTERNALINTEGERFNSPEC REALISE(%INTEGER PUBVIRTADDR)
%EXTERNALROUTINESPEC SLAVESONOFF(%INTEGER ONOFF)
%IF MULTIOCP=YES %THEN %START
      %EXTERNALROUTINESPEC RESERVE LOG
      %EXTERNALROUTINESPEC RELEASE LOG
%FINISH
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20J ONWARDS *

==== ercc07/emas-2900/sup26fsrce_fast29s.txt ====

%EXTERNALSTRING (15) %FNSPEC STRINT(%INTEGER N)
%EXTERNALSTRING (8) %FNSPEC STRHEX(%INTEGER N)
%EXTERNALSTRING(8) %FNSPEC HTOS(%INTEGER VALUE,PLACES)
%EXTERNALROUTINESPEC PKMONREC(%STRING(20)TEXT,%RECORDNAME P)
%EXTERNALROUTINESPEC OPMESS(%STRING (63) S)
%ROUTINESPEC MONITOR(%STRING (63) S)
%EXTERNALROUTINESPEC DUMP TABLE(%INTEGER T, A, L)
%ROUTINESPEC ELAPSED INT(%RECORDNAME P)
%SYSTEMROUTINESPEC MOVE(%INTEGER L,F,T)
%SYSTEMROUTINESPEC ETOI(%INTEGER A, L)
%ROUTINESPEC PDISC(%RECORDNAME P)
%EXTERNALROUTINESPEC HOOT(%INTEGER NHOOTS)
%EXTERNALROUTINESPEC WAIT(%INTEGER MSECS)
%EXTERNALINTEGERFNSPEC HANDKEYS
%EXTERNALINTEGERFNSPEC REALISE(%INTEGER PUBVIRTADDR)
%EXTERNALROUTINESPEC SLAVESONOFF(%INTEGER ONOFF)
%IF MULTIOCP=YES %THEN %START
      %EXTERNALROUTINESPEC RESERVE LOG
      %EXTERNALROUTINESPEC RELEASE LOG
%FINISH

==== ercc07/emas-2900/perqtrimp_tform1s.txt ====
!
! RECORDFORMAT FOR ALL THE OPTION AND FLAG VARAIBLES
!
%RECORDFORMAT PARMF(%INTEGER BITS1,BITS2,TTOPUT,
      %BYTEINTEGER LET,DYNAMIC,LINE,TRACE,ARR,DBUG,CHK,DIAG,OPT,FREE,
      LIST,CPRMODE,COMPILER,SMAP,Y,PROF,INHCODE,DCOMP,FAULTY,X,STACK,S1,S2,S3)
%RECORDFORMAT LISTF((%HALFINTEGER PTYPE,(%HALF UIOJ %OR %BYTE XB,FLAG),
      %HALF SNDISP,ACC,SLINK,KFORM %OR  %INTEGER S1,S2,S3),%INTEGER LINK)
%RECORDFORMAT LEVELF(%INTEGER RBASE, DIAGINF, RAL, FLAG, L, M, NMDECS, ONWORD, ONINF,
         LABEL, JROUND, UNATT FORMATS, PSIZE, ENTRYAD, DISPLAY, AUXSBASE, 
         NAMES,%HALFINTEGER SNMAX,SN,RESSIZE,SET,%INTEGERARRAY AVL WSP(0:4))
%RECORDFORMAT WORKAF(%INTEGER NNAMES,CCSIZE,DSIZE,ASL MAX,ASL CUR BTM,
      CONST PTR,CONST BTM,SP0,WKFILEAD,WKFILEK,FILE ADDR,RELEASE,
      AASL0,CONST LIMIT,RTCOUNT,ARTOP,AMAINEP,DICTBASE,SP2,
      %INTEGERNAME LINE,%STRING(9)LADATE,
      %BYTEINTEGERARRAYNAME CC,A,LETT,
      %INTEGERARRAYNAME WORD,TAGS,CTABLE,
      %RECORD(LEVELF)%ARRAYNAME LEVELINF,
      %INTEGERARRAY PLABS,PLINK(0:31))

%RECORDFORMAT RD((%INTEGER S1 %OR %HALF PTYPE,%BYTE XB,FLAG),

==== ercc07/emas-2900/nrimp10s.txt ====
%MAINEP ICL9CEZIMP
%TRUSTEDPROGRAM
%BEGIN
%CONSTINTEGER RELEASE=10
%CONSTINTEGER YES=1,NO=0
%CONSTINTEGER USE IMP=NO
%CONSTINTEGER VMEB=NO
%CONSTSTRING(9) LADATE="6 May 81";       ! LAST ALTERED
%INTEGER I, J, K
! PRODUCED BY OLDPS FROM NRIMPPS8 ON 16/12/80
%CONSTBYTEINTEGERARRAY CLETT(0: 500)=   1,
  43,   1,  45,   1,  40,   1,  41,   1,  44,   2, 201, 198,   6, 213,
 206, 204, 197, 211, 211,   5, 215, 200, 201, 204, 197,   5, 213, 206,
 212, 201, 204,   3, 198, 207, 210,   1,  61,   4, 210, 197, 193, 204,
   7, 201, 206, 212, 197, 199, 197, 210,   8, 204, 207, 206, 199, 210,
 197, 193, 204,   4, 204, 207, 206, 199,  11, 194, 217, 212, 197, 201,
 206, 212, 197, 199, 197, 210,   6, 211, 212, 210, 201, 206, 199,  11,
 200, 193, 204, 198, 201, 206, 212, 197, 199, 197, 210,   7, 210, 207,
 213, 212, 201, 206, 197,   2, 198, 206,   3, 205, 193, 208,   8, 198,
 213, 206, 195, 212, 201, 207, 206,   6, 210, 197, 195, 207, 210, 196,
   4, 206, 193, 205, 197,   5, 193, 210, 210, 193, 217,   9, 193, 210,

==== ercc07/emas-2900/sup26isrce_makeopt.txt ====
PARM FREE,OPT,STACK,NOLIST
IMP CTOPT+SUP26ISRCE_SUP26IS,SUPZZ,,.OUT
IMP CTOPT+SUP26ISRCE_COM32S,COMZZ,,.OUT
IMP CTOPT+SUP26ISRCE_PRINT05S,PRINTZZ,,.OUT
IMP CTOPT+SUP26ISRCE_OPER33S,OPERZZ,,.OUT
IMP CTOPT+SUP26ISRCE_ENTER09S,ENTERZZ,,.OUT
IMP CTOPT+SUP26ISRCE_GPC36S,GPCZZ,,.OUT
IMP SUP26ISRCE_MINDIAGS,MINDIAGZZ,,.OUT
IMP CTOPT+SUP26ISRCE_COMMS48S,COMMSZZ,,.OUT
IMP CTOPT+SUP26ISRCE_FAST33S,FASTZZ,,.OUT
IMP CTOPT+SUP26ISRCE_TAPE70S,TAPEZZ,,.OUT
PARM MAP
LINK
SUPZZ
COMZZ
PRINTZZ
OPERZZ
ENTERZZ
GPCZZ
MINDIAGZZ
COMMSZZ

==== ercc07/emas-2900/sup26fsrce_makechkd.txt ====
PARM FREE,STACK,NOCHECK,NOLIST
IMP CTOPT+SUP26FSRCE_SUP26FS,SUPZZ,,.OUT
IMP CTOPT+SUP26FSRCE_COM31S,COMZZ,,.OUT
IMP CTOPT+SUP26FSRCE_PRINT05S,PRINTZZ,,.OUT
IMP CTOPT+SUP26FSRCE_OPER33S,OPERZZ,,.OUT
IMP SUP26FSRCE_ENTER06S,ENTERZZ,,.OUT
IMP CTOPT+SUP26FSRCE_GPC33S,GPCZZ,,.OUT
PARM FREE,OPT,STACK,NOLIST
IMP SUP26FSRCE_NDIAG07S,NDIAGZZ,,.OUT
IMP CTOPT+SUP26FSRCE_COMMS46S,COMMSZZ,,.OUT
IMP CTOPT+SUP26FSRCE_FAST29S,FASTZZ,,.OUT
IMP CTOPT+SUP26FSRCE_TAPE68S,TAPEZZ,,.OUT
PARM MAP
LINK
SUPZZ
COMZZ
PRINTZZ
OPERZZ
ENTERZZ
GPCZZ
NDIAGZZ

==== ercc07/emas-2900/nrimpps9.txt ====
38
D(NAME)
D(ICONST)
D(CONST)
D(CHXTYPE)
D(N)
D(S)
D(TEXT)
D(BIGHOLE)
D(N255)
D(HOLE)
D(MARK)
D(READLINE?)
D(TEXTTEXT)
D(DUMMYAPP)
D(DOWN)
D(UP)
D(LISTON)
D(LISTOFF)
D(COLON)
D(NOTECONST)

==== ercc07/emas-2900/sup27bsrce_documentn.txt ====



This partitioned file contains all the source required to make up a
version 27B Supervisor, plus the version of the IMP80 compiler and FIX
utility used at Edinburgh to do so.  This compiler is necessary as some
advanced language features are required which are not available in the
service compiler.

Note that the OPTION NOBRACKETS must be in force in the process being
used for the method described to work.

Two "OBEY" subfiles are available: MAKECHKD and MAKEOPT.  They each
construct a test Supervisor which is left in file SUP26xT,  where x is
'C' or 'O' respectively.


Making a Supervisor thus consists of the following:

a) INSERT the IMP80 compiler and FIX utility into the current directory
   (and then log off and log on again if IMP80 was previously used in

==== ercc07/emas-2900/emasgen01s.txt ====
!
! THE PRINCIPAL OPCODES ARE HERE DEFINED AS THEIR MNEMONICS(AMENDED)
!
%CONSTINTEGER LB=X'7A',SLB=X'52',STB=X'5A',ADB=X'20',CPB=X'26', %C
              MYB=X'2A',SBB=X'22',CPIB=X'2E',OUT=X'3C',CPSR=X'34'
%CONSTINTEGER LD=X'78',LDA=X'72',INCA=X'14',STD=X'58',LDB=X'76', %C
              LDTB=X'74',LDRL=X'70',CYD=X'12',MODD=X'16',SLD=X'50'
%CONSTINTEGER STLN=X'5C',ASF=X'6E',ST=X'48',RALN=X'6C',LXN=X'7E',%C
              LLN=X'7C',LSS=X'62',SLSS=X'42',MPSR=X'32',STSF=X'5E',%C
              LUH=X'6A',STUH=X'4A',LSD=X'64',SLSD=X'44',PRCL=X'18', %C
              LSQ=X'66',SLSQ=X'46',STXN=X'4C',LCT=X'30',STCT=X'36'
%CONSTINTEGER JUNC=X'1A',JLK=X'1C',CALL=X'1E',EXIT=X'38',JCC=2, %C
              JAT=4,JAF=6,DEBJ=X'24'
%CONSTINTEGER IAD=X'E0',ICP=X'E6',USH=X'C8',ISB=X'E2',IRSB=X'E4',%C
              OR=X'8C',UCP=X'C6',IMY=X'EA',IMDV=X'AE',AND=X'8A', %C
              ISH=X'E8',IMYD=X'EC',IDV=X'AA',IRDV=X'AC',NEQ=X'8E'
%CONSTINTEGER RAD=X'F0',RSB=X'F2',RRSB=X'F4',FLT=X'A8',RRDV=X'BC', %C
              RSC=X'F8',FIX=X'B8',RDV=X'BA',RDDV=X'BE',RMYD=X'FC', %C
              RMY=X'FA',RCP=X'F0'
!
%CONSTINTEGER MVL=X'B0',MV=X'B2',SWEQ=X'A0',SWNE=X'A2',CPS=X'A4'

==== ercc07/emas-2900/sup27isrce_enter13s.txt ====
%RECORDFORMAT PARMF(%INTEGER DEST, SRCE, P1, P2, P3, P4, P5, P6)
%RECORDFORMAT SERVAF(%INTEGER P, C)
%EXTRINSICINTEGER INPTR
%EXTRINSICINTEGER OUTPTR
%CONSTINTEGER MASK=X'80FC3FFF'
%EXTERNALINTEGERFNSPEC HANDKEYS
%EXTERNALROUTINESPEC HOOT(%INTEGER NUM)
%EXTERNALINTEGERFNSPEC GPC INIT(%INTEGER CA,PT,MODE)
%EXTERNALINTEGERFNSPEC SAFE IS READ(%INTEGER ISAD,%INTEGERNAME VAL)
%EXTERNALROUTINESPEC GET PSTB(%INTEGERNAME P0, P1)
%EXTERNALROUTINESPEC SUP29
%EXTERNALROUTINESPEC SUPPOFF(%RECORD(SERVAF)%NAME SERV, %C
      %RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC DISC(%RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC PDISC(%RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC GPC(%RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC SLAVESONOFF(%INTEGER J)
%EXTERNALROUTINESPEC PKMONREC(%STRING(20)TEXT,%RECORD(PARMF)%NAME P)
!* Communications record format - extant from CHOPSUPE 21D onwards *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,SLIPL,SBLKS,SEPGS,NDISCS,DLVNADDR, %C
         (%INTEGER GPCTABSIZE,GPCA %OR %INTEGER DCUTABSIZE,DCUA), %C

==== ercc07/emas-2900/docs_e3prot.txt ====

               Protection in EMAS3
               ___________________

     Apart from a single write protect bit in the segment tables all
protection on IBM architecture is provided by keys on the store. Each
store page has associated a 4 bit key (0-15) an each program has a
similar key in its PSW. Writes to store are only permitted if the key in
the PSW matches the key on the store or if the key in the pSW is 0. One
extra bit associated with the page is available to extend key protection
to read accesses.

     EMAS3 has the system in segments 0-63 as there is no public address
space. Careful use of the keys is needed to allow sharing and give
reasonable protection to the system. The scheme may cause some
inconvenience to Director and Comms controller since these may have to
alter their PSW before writing to certain pages. Fortunately there is a
suitable privileged instruction to do this!

      My plan is thus:-


==== ercc07/emas-2900/sup26hsrce_print05s.txt ====

%EXTRINSICLONGINTEGER KMON
%ROUTINESPEC PRHEX(%INTEGER H)
%ROUTINESPEC PRINTER(%RECORDNAME P)
%EXTERNALROUTINESPEC PON(%RECORDNAME P)
%EXTERNALROUTINESPEC OPMESS(%STRING (23) MESS)
%SYSTEMROUTINESPEC ITOE(%INTEGER A, L)
%IF MULTIOCP=YES %THEN %START
%EXTERNALROUTINESPEC SEMALOOP(%INTEGERNAME SEMA)
      %ROUTINESPEC RESERVE LOG
      %ROUTINESPEC RELEASE LOG
      %ROUTINESPEC AWAIT LOG ROUTE
%FINISH
%RECORDFORMAT PARMF(%INTEGER DEST, SRCE, P1, P2, P3, P4, P5,  %C
         P6)
!------------------------------------------------------------------------
%RECORDFORMAT ENTFORM(%INTEGER SER, PTSM, PROPADDR,  %C
         TICKS SINCE, CAA, GRCB AD, LBA, ALA, STATE, RESP0,  %C
         RESP1, SENSE1, SENSE2, SENSE3, SENSE4, REPSNO, BASE,  %C
         ID, DLVN, MNEMONIC, ENTSIZE, PAW, USAW0, URCB AD,  %C
         SENSDAT AD, LOGMASK, TRTAB AD, UA SIZE, UA AD,  %C

==== ercc07/emas-2900/imp918s.txt ====

%BEGIN
         %TRUSTEDPROGRAM
         %INTEGER I,J,K
         !*DELSTART
         %CONSTBYTEINTEGERARRAY OPC(0:120)=0,
             8,9,X'10',X'11',X'12',
               X'13',X'20',X'21',X'22',X'23',
               X'30',X'31',X'32',X'33',X'24',
               X'34',0,X'45',X'46',X'47',
               X'54',X'55',X'56',X'57',X'58',X'59',X'5A',X'5B',X'5C',
               X'5D',X'5E',X'5F',X'68',X'69',X'6A',
               X'6B',X'6C',X'6D',X'6E',X'6F',
               X'78',X'79',X'7A',X'7B',X'7C',
               X'7D',X'7E',X'7F',0,X'70',
               X'60',X'50',X'4E',X'4F',X'4C',
               X'4B',X'4A',X'49',X'48',X'44',
               X'43',X'42',X'41',X'40',0,
               X'90',X'98',X'86',X'87',0,
               X'91',X'92',X'94',X'95',X'96',
               X'97',X'9C',X'9E',X'9D',X'9F',

==== ercc07/emas-2900/itrimp_ibmoptas.txt ====
%INCLUDE "ERCC07.TRIMP_HOSTCODES"
%CONSTINTEGER HOST=IBMXA
%CONSTINTEGER TARGET=IBMXA

==== ercc07/emas-2900/perq_compress.txt ====
%EXTERNALROUTINESPEC DEFINE(%STRING(63)S)
%EXTERNALROUTINE COMPRESS(%STRING(63)S)
!***********************************************************************
!*    COMPRESSES A FILE OF ERROR MESSAGE INTO TWO CONSTARRAYS AND      *
!*    GENERATES A ROUTINE TO REGURGITATE THEM IN ENGLISH               *
!***********************************************************************
%INTEGER CPSTRM,INSTRM,LPSTRM
%INTEGERARRAY WORD(0:2000)
%INTEGERARRAY LETT(0:1000)
%INTEGER I, J, K, N, NUM, NEXT, NMAX, NUMMAX
%STRING(31) FILE1, FILE2, FILE3
%STRING(71)TEMP,INPUT,WK1,WK2
%%STRING(71)%FNSPEC MESS(%INTEGER N)
%ROUTINESPEC LIT(%INTEGERNAME P,%STRINGNAME TXT1)
%ROUTINESPEC CARDS OUT

%CONSTBYTEINTEGERARRAY INTT(0:127)=     63(32),63(3),61,63,60, %C
                                        27,30,31,32,63(3),
                                        28,59,29,63(17),
                                        1,2,3,4,5,6,7,8,9,10,11,12,
                                        13,14,15,16,17,18,19,20,

==== ercc07/emas-2900/docs_vaxaa.txt ====
                              Vax Architectural Assessment
                              ============================

a) Virtual Memory

     The Vax provides a 32 bit virtual memory of which half is reserved for  the
system  -  this  is  very  comparable  to  2900 with two 31 bit virtual memory -
public and local.   Here however the similarity ends;   while 2900 provides 8192
segments  of 256 pages the Vax provides only 2**21 pages.   The segmented scheme
provides  several  advantages  in  that  the  protection   mechanism   is   more
economically  administered  via  segments  than pages and it is less wasteful to
find space for a separate page table for each actual segment in use than to keep
one large contiguous one.  Vax does allow the page tables themselves to be paged
which neatly avoids the store management problem at  the  non  trivial  cost  of
further virtual store interrupts. The Vax scheme does result in some pressure on
the "spare" bits in the page table (ie those not required for the  base  address
of the page).   The protection information is compressed into four bits per page
as against the 2900 which allows 10 bits per segment.  As a result of this there
is not a "used" bit in the Vax page tables which makes it very difficult for the
operating system to discover which pages a program  is  using.    This  must  be
regarded  as  a serious defect which will be particularly noticeable at the very

==== ercc07/emas-2900/impalgs_compress.txt ====
%EXTERNALROUTINESPEC DEFINE(%STRING(63)S)
%EXTERNALROUTINE COMPRESS(%STRING(63)S)
!***********************************************************************
!*    COMPRESSES A FILE OF ERROR MESSAGE INTO TWO CONSTARRAYS AND      *
!*    GENERATES A ROUTINE TO REGURGITATE THEM IN ENGLISH               *
!***********************************************************************
%INTEGER CPSTRM,INSTRM,LPSTRM
%INTEGERARRAY WORD(0:2000)
%INTEGERARRAY LETT(0:1000)
%INTEGER I, J, K, N, NUM, NEXT, NMAX, NUMMAX
%STRING(31) FILE1, FILE2, FILE3
%STRING(71)TEMP,INPUT,WK1,WK2
%%STRING(71)%FNSPEC MESS(%INTEGER N)
%ROUTINESPEC LIT(%INTEGERNAME P,%STRINGNAME TXT1)
%ROUTINESPEC CARDS OUT

%CONSTBYTEINTEGERARRAY INTT(0:127)=     63(32),63(3),61,63,60, %C
                                        27,30,31,32,63(3),
                                        28,59,29,63(17),
                                        1,2,3,4,5,6,7,8,9,10,11,12,
                                        13,14,15,16,17,18,19,20,

==== ercc07/emas-2900/sup26csrce_tape65s.txt ====

!**************************************************
!*                                                *
!*  TAPE HANDLER FOR 2900                         *
!*                                                *
!**************************************************
!!
!!           EXTERNAL ROUTINE REFERENCES
!!
%EXTERNALSTRINGFNSPEC HTOS(%INTEGER VALUE, PLACES)
%EXTERNALROUTINESPEC OPMESS(%STRING (23) S)
%EXTERNALROUTINESPEC PON(%RECORDNAME P)
%SYSTEMROUTINESPEC ETOI(%INTEGER A, L)
%SYSTEMROUTINESPEC MOVE(%INTEGER L, FROMAD, TOAD)
%EXTERNALROUTINESPEC PTREC(%RECORDNAME P)
%EXTERNALROUTINESPEC PRHEX(%INTEGER N)
%EXTERNALROUTINESPEC DUMP TABLE(%INTEGER TABNO, START, L)
%EXTRINSICLONGINTEGER PARMDES
%EXTERNALINTEGERFNSPEC NEWPPCELL
%EXTERNALROUTINESPEC RETURNPPCELL(%INTEGER CELL)
!!

==== ercc07/emas-2900/sup26gsrce_mindiags.txt ====
%EXTERNALSTRINGFNSPEC STRHEX(%INTEGER I)
%SYSTEMROUTINE NDIAG(%INTEGER PCOUNT, LNB, FAULT, INF)
!***********************************************************************
!*_______'MASTER DIAGNOSTIC ROUTINE'. DISCOVERS THE LANGUAGE OF THE    *
!*_______FAILED ROUTINE FROM WORD 4 OF THE GLA AND CALLS APPROPRIATE   *
!*_______DIAGNOSTIC ROUTINE. THIS IS REPEATED TILL ALL DIAGNOSTICS     *
!*_______GIVEN.                                                        *
!*_______PCOUNT = PCOUNTER AT FAILURE                                  *
!*_______LNB    = LOCAL NAME BASE AT FAILURE                           *
!*_______FAULT  = FAILURE  (0=%MONITOR  REQUESTED)                     *
!*_______INF    =ANY FURTHER INFORMATION                               *
!***********************************************************************
PRINTSTRING("
MINIMUM NDIAGS ENTERED
FAULT NO ="); WRITE(FAULT,2)
PRINTSTRING("
PC=X".STRHEX(PCOUNT)."
LNB=X".STRHEX(LNB)."
")
%END
%ENDOFFILE

==== ercc07/emas-2900/sup28asrce_ndiag07s.txt ====

!*_ DATED 11 NOV 76   1
! ALTERATIONS BY K.YARWOOD ...
!        PRINT FL AND NEXT SYMBOL LINES COMMENTED OUT
!        PRINTTEXT'S TURNED TO PRINTSTRING'S
!        ADDITION FOR LONGINTEGER IN RT PRINT VAR
!         HEX EQUIVALENTS FOR INTS,LONGINTS ETC PRINTED
!        INF PRINTED IN HEX IN RT ERRMESS

%EXTERNALSTRINGFNSPEC STRHEX(%INTEGER I)
%EXTERNALSTRING(8)%FNSPEC STRINT(%INTEGER I)
%CONSTINTEGER STACKBASE=X'80100000';  ! START OF RESIDENT STACK
! %SYSTEMROUTINESPEC SIGNAL(%INTEGER I, J, K, %INTEGERNAME F)
%ROUTINESPEC PRINTMESS(%INTEGER N)
! %SYSTEMROUTINESPEC TIDY EXIT
!*
%ROUTINESPEC INDIAG(%INTEGER OLDLNB, L, PC, %INTEGERNAME NEWLNB)
! %ROUTINESPEC FDIAG(%INTEGER OLDLNB,PC,%INTEGERNAME NEWLNB)
%ROUTINESPEC ERMESS(%INTEGER N, INF)
! %ROUTINESPEC ICL9CELABELS


==== ercc07/emas-2900/sup26hsrce_com32s.txt ====
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20J ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DDTADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,TOJDAY,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,DQADDR,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0, %C
         %INTEGER ITINT,CONTYPEA,GPCCONFA,FPCCONFA,SFCCONFA, %C
         BLKADDR,RATION,SMACS,TRANS,%LONGINTEGER KMON,  %C
         %INTEGER DITADDR,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,STOREAAD,PROCAAD,SFCCTAD,DRUMTAD,TSLICE,FEPS,SP1, %C
         SP2,SP3,SP4,SP5,SP6,SP7,SP8, %C
         LSTL,LSTB,PSTL,PSTB,HKEYS,HOOT,SIM,CLKX,CLKY,CLKZ,  %C
         HBIT,SLAVEOFF,INHSSR,SDR1,SDR2,SDR3,  %C
         SDR4,SESR,HOFFBIT,S2,S3,S4,END)
! MISC. ROUTINE SPECS
%EXTERNALROUTINESPEC PKMONREC(%STRING(20)TEXT,%RECORDNAME P)
%EXTERNALSTRING(8)%FNSPEC STRHEX(%INTEGER N)
%RECORDFORMAT PARMF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6)
%EXTERNALROUTINESPEC OPMESS2(%INTEGER OP,%STRING(63)TXT)

==== ercc07/emas-2900/sup27fsrce_releasen.txt ====

         Supervisor 27F Release Notice

      This Supervisor has the following changes

      1) Changes to Schedule to allow a smoother change
         between snoozing and non snoozing as the load increase
         past the point where snoozing helps performance.

      2) Change to layout of timing information to allow inspection
         online from utility ercc20.perfy

      3) Change to local contoller to deduce sequential access to
         segments in some circumstances.

      4) Minor corrections elsewhere.


                                        P. Stephens    21/10/81

==== ercc07/emas-2900/vztests.txt ====
'BEGIN''COMMENT' MODUL PRO TESTOVANI I/O OPERACI KOMP. ALGOLE 2900      00100000
                 MODUL     : HJS U9900A MALA                            00200000
                 ENTRYNAME : EALG                                       00300000
                 DAT.VYDANI: UNOR 78                                    00400000
                 AUTOR     : MENSIK ;                                   00500000
                                                                        00600000
 'INTEGER'J,I,IN,OUT,MT,D,FI,FR,ZN,FS                                 ; 00700000
 'REAL'R                                                              ; 00800000
 'BOOLEAN' B                                                          ; 00900000
     'PROCEDURE' TISKARR(K,A,B,C);                                      00910000
      'VALUE'K; 'INTEGER'K; 'INTEGER''ARRAY'A; 'ARRAY'B;                00920000
                            'BOOLEAN''ARRAY'C;                          00921000
      'BEGIN'  WRITETEXT(OUT,'('%%IWRITEARRAY,WRITEARRAY,BWRITEARRAY_:% 00930000
                             ')');                                      00940000
        IWRITEARRAY(OUT,FI,K,A,'('IRA')');   NEWLINE(OUT,2);            00950000
        WRITEARRAY (OUT,FI,K,B,'('RRA')');   NEWLINE(OUT,2);            00960000
        BWRITEARRAY(OUT,'('0')',K,C,'('BRA')');   NEWLINE(OUT,2)        00970000
      'END';                                                            00980000
                                                                        01000000
   IN:=60; OUT:=30; MT:=100; D:=120;  SET(MT,  6); SET(D,2);            01100000
  FI:=FORMAT('('2S-N2D;')');  FR:=FORMAT('('2S-D.4D@+ND ')');           01200000

==== ercc07/emas-2900/ibm_impmess.txt ====
1 "%REPEAT is not required"
2 "Label & has already been set in this block"
4 "& is not a Switch name at current textual level"
5 "Switch name & in expression or assignment"
6 "Switch label &(#) set a second time"
7 "Name & has already been declared"

8 "Routine or fn & has more parameters than specified"
9 "Parameter # of & differs in type from specification"
10 "Routine or fn & has fewer parameters than specified"
11 "Label & referenced at line # has not been set"
12 "%CYCLE at line # has two control clauses"
13 "%REPEAT for %CYCLE at line # is missing"
14 "%END is not required"
15 "# %ENDs are missing"
16 "Name & has not been declared"
17 "Name & does not require parameters or subscripts"
18 "# too few parameters provided for &"
19 "# too many parameters provided for &"
20 "# too few subscripts provided for array &"
21 "# too many subscripts provided for array &"

==== ercc07/emas-2900/imptests_ct0.txt ====

%BEGIN
%CONSTINTEGER MULTIOCP=0
%INTEGER SEMA
%CONTROL X'1FFFFFFF'
      %IF MULTIOCP=0 %THEN SEMA=-1
%CONTROL X'0FFFFFFF'
%ENDOFPROGRAM

==== ercc07/emas-2900/imptests_ct1.txt ====
%BEGIN
%INTEGER I,J
%CONSTINTEGER YES=1
%CONSTINTEGER SFCFITTED=YES
%CONTROL X'1FFFFFFF'
      %IF SFCFITTED=YES %THEN I=I+1 %ELSE %START
         J=J**4
         I=I+J
      %FINISH
%CONTROL X'0FFFFFFF'
%ENDOFPROGRAM

==== ercc07/emas-2900/imptests_ct2.txt ====
%BEGIN
      S=S." " %WHILE LENGTH(S)<20
%ENDOFPROGRAM

==== ercc07/emas-2900/imptests_ct3.txt ====
%BEGIN
%CONSTINTEGER A
%INTEGER B
B=A_GARBAGE
%ENDOFPROGRAM

==== ercc07/emas-2900/sbmark.txt ====
'BEGIN'
  'REAL' X1, X2, X3, X4, X,Y,Z,T,T1,T2;
  'ARRAY' E1[1:4];
  'INTEGER' I,J,K,L,N1,N2,N3,N4,N5,N6,N7,N8,N9,N10,N11;
  'PROCEDURE' PA(E);
     'ARRAY' E;
     'BEGIN'
     'INTEGER' J;
      J := 0;
   LAB:
     E[1] := (E[1] + E[2] + E[3] - E[4]) * T;
     E[2] := (E[1] + E[2] - E[3] + E[4]) * T;
     E[3] := (E[1] - E[2] + E[3] + E[4]) * T;
     E[4] := (-E[1] + E[2] + E[3] + E[4])/T2;
     J := J + 1;
     'IF' J < 6 'THEN'
          'GOTO' LAB;
     'END' PROCEDURE PA;
   'PROCEDURE' P0;
'BEGIN'
E1[J] := E1[K];

==== ercc07/emas-2900/sup26gsrce_comms46s.txt ====

!                 VERSION OF 13/06/80
!        DEC 79: INCLUDE AN OPER ADAPTOR
!                HAVE ONLY ONE SERVICE NUMBER, X'37'
!        OTHER POSSIBLE CHANGES
!           MAKE INITIALISATION CALL OF CC INITIALISE ADAPTORS AS WELL
!           MAKE IT POSSIBLE TO DEALLOCATE/ALLOCATE ALL DEVICES
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20A ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DDTADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,WASKLOKCORRECT,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,DQADDR,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0, %C
         %INTEGER ITINT,CONTYPEA,GPCCONFA,FPCCONFA,SFCCONFA, %C
         BLKADDR,DPTADDR,SMACS,TRANS,%LONGINTEGER KMON,  %C
         %INTEGER DITADDR,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,STOREAAD,PROCAAD,SFCCTAD,DRUMTAD,TSLICE,SP0,SP1, %C
         SP2,SP3,SP4,SP5,SP6,SP7,SP8, %C
         LSTL,LSTB,PSTL,PSTB,HKEYS,HOOT,SIM,CLKX,CLKY,CLKZ,  %C

==== ercc07/emas-2900/imptests_ct4.txt ====

%EXTERNALROUTINE QUEUES(%STRING(255) S)
%SYSTEMSTRINGFNSPEC SPAR(%INTEGER N)
%STRING(50)COM
%SYSTEMROUTINESPEC SETPAR(%STRING(225)S)
      SETPAR(S)
      COM<-SPAR(1)
      MESS=COM." ".SPAR(2)
      %UNLESS SPAR(2)="" %THEN MESS=MESS.",".SPAR(2)
%END
%ENDOFFILE

==== ercc07/emas-2900/imptests_ct5.txt ====
%BEGIN
! CHECKS MISPLACED ON EVENTS ARE FAULTED
%INTEGER I
%ROUTINE A
%IF I=1 %START
      PRINTSTRING("HELLO")
%FINISH %ELSE %START
      %ONEVENT 9 %START
         PRINTSTRING("GOODBYE")
      %FINISH
%FINISH
%END
I=1
A
%ENDOFPROGRAM

==== ercc07/emas-2900/csup04s.txt ====
%INCLUDE "ERCC07.PERQ_OPCODES"
%INCLUDE "ERCC07.PERQ_FORMAT3S"
%OWNINTEGER CABUF,GLACABUF
%OWNINTEGERNAME CA,GLACA,PPCURR,GLACURR
%OWNBYTEINTEGERARRAYNAME CODE,GLABUF
%EXTRINSICRECORD(CODEPF) CODEP
%EXTRINSICRECORD(WORKAF)WORKA
%EXTRINSICRECORD(PARMF) PARM
%SYSTEMINTEGERMAPSPEC COMREG(%INTEGER N)
%DYNAMICROUTINESPEC QCODE(%INTEGER A,B,C,MODE)
%DYNAMICROUTINESPEC QPUT(%INTEGER A,B,C,D)
%ROUTINESPEC FAULT(%INTEGER I,J,K)
%ROUTINESPEC CNOP(%INTEGER I,J)
%ROUTINESPEC POP(%INTEGERNAME A,B,C,D)
%ROUTINESPEC PRHEX(%INTEGER VALUE,PLACES)
%CONSTINTEGER CODEBNDRY=X'1FF';         ! INSTRUCTIONS MUST NOT
                                        ! CROSS THIS IN ACCENT MODE
%CONSTINTEGER DAREA=6;                  ! AREA FOR DIAG TABLES
!
! FIXED GLA CURRENTLY USED AS FOLLOWS
!     0-7   FREE(WAS 2900 ENTRY DESCRIPTOR)

==== ercc07/emas-2900/sup26csrce_fast27s.txt ====

%EXTERNALSTRING (15) %FNSPEC STRINT(%INTEGER N)
%EXTERNALSTRING (8) %FNSPEC STRHEX(%INTEGER N)
%EXTERNALSTRING(8) %FNSPEC HTOS(%INTEGER VALUE,PLACES)
%EXTERNALROUTINESPEC PTREC(%RECORDNAME P)
%EXTERNALROUTINESPEC OPMESS(%STRING (63) S)
%EXTERNALROUTINESPEC MONITOR(%STRING (63) S)
%EXTERNALROUTINESPEC DUMP TABLE(%INTEGER T, A, L)
%ROUTINESPEC ELAPSED INT(%RECORDNAME P)
%SYSTEMROUTINESPEC MOVE(%INTEGER L,F,T)
%SYSTEMROUTINESPEC ETOI(%INTEGER A, L)
%ROUTINESPEC PDISC(%RECORDNAME P)
%EXTERNALROUTINESPEC HOOT(%INTEGER NHOOTS)
%EXTERNALROUTINESPEC WAIT(%INTEGER MSECS)
%EXTERNALINTEGERFNSPEC HANDKEYS
%EXTERNALINTEGERFNSPEC REALISE(%INTEGER PUBVIRTADDR)
%EXTERNALROUTINESPEC SLAVESONOFF(%INTEGER ONOFF)
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20A ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DDTADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,WASKLOKCORRECT,DATE0,DATE1,DATE2,  %C

==== ercc07/emas-2900/perqtrimp_oldps.txt ====

%EXTERNALROUTINE OLDPS(%STRING(63) S)
%EXTERNALSTRINGFNSPEC DATE
%INTEGER I, J, K, SS, NBIP
%STRING(31) ST49,ST50,ST51
%STRING(127)HEADER
%EXTERNALROUTINESPEC DEFINE(%STRING(63)S)
%INTEGERARRAY CLETT(0:1000), SYMBOL(1300:3000), CC(0:300)
%INTEGER CNEXT, DNEXT, CNUM, DNUM, ALT, DEF, ASL, NIDFLAG
%INTEGERARRAY KK, PUSE, DWORD(1001:1200), DLETT(0:1000), CWORD(1:200)
%ROUTINESPEC READ STRING(%INTEGER TERMINATOR)
%ROUTINESPEC RECORD(%INTEGERARRAYNAME WORD, LETT,  %C
            %INTEGERNAME NUM, NEXT)
%ROUTINESPEC LOOK UP(%INTEGERARRAYNAME WORD, LETT,  %C
            %INTEGER FIRST, LAST, INSERT)
%ROUTINESPEC PDDICT
%ROUTINESPEC PRINT STR(%INTEGERARRAYNAME CC, %INTEGER PTR)
%ROUTINESPEC PCDICT
         %UNLESS S->ST49.(",").ST50.(",").ST51 %THEN %C
            PRINTSTRING("PARAMS?????") %AND NEWLINE %AND %RETURN
         DEFINE("ST49,".ST49)

==== ercc07/emas-2900/minperms.txt ====
        TITLE 'IMP PERM FOR SIM2  P.STEPHENS'
*  FOR RELEASE 8 BACK COMPATIBLE TO RELEASE 7
IMP      START
CODE     EQU   12
WSP      EQU   11
GLA      EQU   13
RA       EQU   15
         DC    A(PEND-IMP)
         DC    A(BASE-IMP)
         DC    A(PERMGLA-IMP)
         DC    A(PLOADATA-IMP)
         USING BASE,CODE
         USING WKSTART,WSP
         USING USERGLA,GLA
BASE     B     CPLRERR
P1       BC    15,RSS
P2       BC    15,NS0
P3       BC    15,PS0
P4       BC    15,W0
P5       BC    15,PSTRO
P6       BC    15,STOP1

==== ercc07/emas-2900/sup27bsrce_print06s.txt ====

%RECORDFORMAT PARMF(%INTEGER DEST, SRCE, P1, P2, P3, P4, P5, P6)
%EXTRINSICLONGINTEGER KMON
%ROUTINESPEC PRHEX(%INTEGER H)
%ROUTINESPEC PRINTER(%RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC PON(%RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC GPC(%RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC OPMESS(%STRING (23) MESS)
%SYSTEMROUTINESPEC ITOE(%INTEGER A, L)
%IF MULTIOCP=YES %THEN %START
%EXTERNALROUTINESPEC SEMALOOP(%INTEGERNAME SEMA)
      %ROUTINESPEC RESERVE LOG
      %ROUTINESPEC RELEASE LOG
      %ROUTINESPEC AWAIT LOG ROUTE
%FINISH
!------------------------------------------------------------------------
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20L ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DLVNADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,TOJDAY,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,SERVAAD,  %C

==== ercc07/emas-2900/perqtrimp_impmess.txt ====
1 "%REPEAT is not required"
2 "Label & has already been set in this block"
4 "& is not a Switch name at current textual level"
5 "Switch name & in expression or assignment"
6 "Switch label &(#) set a second time"
7 "Name & has already been declared"

8 "Routine or fn & has more parameters than specified"
9 "Parameter # of & differs in type from specification"
10 "Routine or fn & has fewer parameters than specified"
11 "Label & referenced at line # has not been set"
12 "%CYCLE at line # has two control clauses"
13 "%REPEAT for %CYCLE at line # is missing"
14 "%END is not required"
15 "# %ENDs are missing"
16 "Name & has not been declared"
17 "Name & does not require parameters or subscripts"
18 "# too few parameters provided for &"
19 "# too many parameters provided for &"
20 "# too few subscripts provided for array &"
21 "# too many subscripts provided for array &"

==== ercc07/emas-2900/portenv01s.txt ====
%CONSTINTEGER EMAS=10
%CONSTINTEGER PERQ=11
%CONSTINTEGER PNX=12
%CONSTINTEGER IBM=13
%CONSTINTEGER TARGET=PNX
%EXTERNALROUTINESPEC IOCP %ALIAS "S#IOCP"(%INTEGER EP,N)
%CONSTLONGREAL LOG10A=2.3025850929940456840179914546843642076011
%CONSTLONGREAL PI=3.141592653589793238462643
%CONSTLONGREAL R1= 1.2595802263029547@  1{R'41C98867F42983DF'}
%CONSTLONGREAL R2=-8.6186317517509520@  1{R'C2562FB2813C6014'}
%CONSTLONGREAL R3=-1.2766919133361079@  0{R'C1146D547FED8A3D'}
%CONSTLONGREAL R4=-8.3921038065840512@ -2{R'C0157BD961F06C89'}
%CONSTLONGREAL S1= 2.7096164294378656@  1{R'421B189E39236635'}
%CONSTLONGREAL S2= 6.5581320451487386@  0{R'4168EE1BDE0C3700'}
%CONSTLONGREAL S3= 2.1441643116703661@  0{R'41224E7F3CBDFE41'}
%CONSTLONGREAL S4= 1.2676256708212610@  0{R'41144831DAFBF542'}
%CONSTLONGREAL RT3= 1.7320508075688772@  0{R'411BB67AE8584CAA'}
%CONSTLONGREAL PIBY6= 5.2359877559829887@ -1{R'40860A91C16B9B2C'}
%CONSTLONGREAL PIBY2M1= 5.7079632679489661@ -1{R'40921FB54442D184'}
%CONSTLONGREAL RT3M1=7.3205080756887728@ -1{R'40BB67AE8584CAA7'}
%CONSTLONGREAL TANPIBY12= 2.6794919243112271@ -1{R'404498517A7B3559'}

==== ercc07/emas-2900/sup26hsrce_enter09s.txt ====

%EXTRINSICINTEGER INPTR
%EXTRINSICINTEGER OUTPTR
%CONSTINTEGER MASK=X'80FC3FFF'
%EXTERNALINTEGERFNSPEC HANDKEYS
%EXTERNALROUTINESPEC HOOT(%INTEGER NUM)
%EXTERNALINTEGERFNSPEC GPC INIT(%INTEGER CA,PT,MODE)
%EXTERNALINTEGERFNSPEC SAFE IS READ(%INTEGER ISAD,%INTEGERNAME VAL)
%EXTERNALROUTINESPEC GET PSTB(%INTEGERNAME P0, P1)
%EXTERNALROUTINESPEC SUP29
%EXTERNALROUTINESPEC SUPPOFF(%RECORDNAME SERV,P)
%EXTERNALROUTINESPEC DISC(%RECORDNAME P)
%EXTERNALROUTINESPEC PDISC(%RECORDNAME P)
%EXTERNALROUTINESPEC GPC(%RECORDNAME P)
%EXTERNALROUTINESPEC SLAVESONOFF(%INTEGER J)
%EXTERNALROUTINESPEC PKMONREC(%STRING(20)TEXT,%RECORDNAME P)
%SYSTEMROUTINESPEC MOVE(%INTEGER L, FROMAD, TOAD)
%RECORDFORMAT PARMF(%INTEGER DEST, SRCE, P1, P2, P3, P4, P5,  %C
         P6)
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20L ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C

==== ercc07/emas-2900/perq_impmess.txt ====
1 "%REPEAT is not required"
2 "Label & has already been set in this block"
4 "& is not a Switch name at current textual level"
5 "Switch name & in expression or assignment"
6 "Switch label &(#) set a second time"
7 "Name & has already been declared"

8 "Routine or fn & has more parameters than specified"
9 "Parameter # of & differs in type from specification"
10 "Routine or fn & has fewer parameters than specified"
11 "Label & referenced at line # has not been set"
12 "%CYCLE at line # has two control clauses"
13 "%REPEAT for %CYCLE at line # is missing"
14 "%END is not required"
15 "# %ENDs are missing"
16 "Name & has not been declared"
17 "Name & does not require parameters or subscripts"
18 "# too few parameters provided for &"
19 "# too many parameters provided for &"
20 "# too few subscripts provided for array &"
21 "# too many subscripts provided for array &"

==== ercc07/emas-2900/imp80tests_testiopt.txt ====
LIST IMP80TESTS_BLURB
PARM
IOPT IMP80TESTS_CT0,.NULL,.OUT
IOPT IMP80TESTS_CT1,.NULL,.OUT
IOPT IMP80TESTS_CT2,.NULL,.OUT
IOPT IMP80TESTS_CT3,.NULL,.OUT
IOPT IMP80TESTS_CT4,.NULL,.OUT
IOPT IMP80TESTS_CT5,.NULL,.OUT
IOPT IMP80TESTS_CT6,.NULL,.OUT
IOPT IMP80TESTS_CT7,.NULL,.OUT
IOPT IMP80TESTS_CT8,.NULL,.OUT
IOPT IMP80TESTS_CT9,.NULL,.OUT
IOPT IMP80TESTS_CT10,.NULL,.OUT
IOPT IMP80TESTS_CT11,.NULL,.OUT
IMP80TESTS_CT12,.NULL,.OUT
IOPT IMP80TESTS_CT13,.NULL,.OUT
IOPT IMP80TESTS_RT0,IY,.OUT
RUN IY
IOPT IMP80TESTS_RT1,IY,.OUT
RUN IY
IOPT IMP80TESTS_RT2,IY,.OUT

==== ercc07/emas-2900/sup28dsrce_documentn.txt ====



This partitioned file contains all the source required to make up
an EMAS2900 Supervisor, plus the version of the IMP80 compiler and FIX
utility used at Edinburgh to do so.  This compiler is necessary as some
advanced language features are required which are not available in the
service compiler.

Note that the OPTION NOBRACKETS must be in force in the process being
used for the method described to work.

Two "OBEY" subfiles are available: MAKECHKD and MAKEOPT.  They each
construct a test Supervisor which is left in file SUP28xT,  where x is
'C' or 'O' respectively.


Making a Supervisor thus consists of the following:

a) INSERT the IMP80 compiler and FIX utility into the current directory
   (and then log off and log on again if IMP80 was previously used in

==== ercc07/emas-2900/sup26fsrce_makeopt.txt ====
PARM FREE,OPT,STACK,NOLIST
IMP CTOPT+SUP26FSRCE_SUP26FS,SUPZZ,,.OUT
IMP CTOPT+SUP26FSRCE_COM31S,COMZZ,,.OUT
IMP CTOPT+SUP26FSRCE_PRINT05S,PRINTZZ,,.OUT
IMP CTOPT+SUP26FSRCE_OPER33S,OPERZZ,,.OUT
IMP SUP26FSRCE_ENTER06S,ENTERZZ,,.OUT
IMP CTOPT+SUP26FSRCE_GPC33S,GPCZZ,,.OUT
IMP SUP26FSRCE_NDIAG07S,NDIAGZZ,,.OUT
IMP CTOPT+SUP26FSRCE_COMMS46S,COMMSZZ,,.OUT
IMP CTOPT+SUP26FSRCE_FAST29S,FASTZZ,,.OUT
IMP CTOPT+SUP26FSRCE_TAPE68S,TAPEZZ,,.OUT
PARM MAP
LINK
SUPZZ
COMZZ
PRINTZZ
OPERZZ
ENTERZZ
GPCZZ
NDIAGZZ
COMMSZZ

==== ercc07/emas-2900/nrsrce_sfcmp941.txt ====
%ENDOFLIST; %CONSTINTEGERARRAY UPA(0:X'200')=%C
X'3006E841',X'0C829041',X'00018782',X'00032C22',
X'00014003',X'00031874',X'22601141',X'0001D041',X'86803951',
X'86858041',X'22601141',X'A0103941',X'00029041',X'0001004C',
X'86803901',X'0881E841',X'A0136841',X'0F00E8C1',X'22605041',
X'0002DF62',X'00051844',X'00000044',X'0000F4A3',X'00028042',
X'8004F462',X'80801157',X'2260417A',X'86803941',X'30003906',
X'00008841',X'0000907E',X'A00B3840',X'0000A879',X'0000115E',
X'0810E87B',X'0000A876',X'00010079',X'0002E876',X'0000A873',
X'0000A872',X'0002780B',X'0001D07D',X'00050873',X'0000F072',
X'0000F871',X'0000A86C',X'0000A86B',X'0000A86A',X'50003941',
X'0002C041',X'00001940',X'00031846',X'A0705815',X'0000EA7D',
X'00028003',X'00031F42',X'000284E7',X'000004E7',X'0DE00034',
X'2260212C',X'0C81C833',X'0001D82F',X'0001B823',X'81040041',
X'0E024041',X'00012041',X'000209C1',X'84040041',X'0001E9E8',
X'00000040',X'0001B045',X'0001E045',X'000251C5',X'0001F9C6',
X'000201C6',X'86803961',X'64103960',X'8406D041',X'6390395E',
X'8400395D',X'84003941',X'00032AC1',X'0002F84A',X'8400393A',
X'000000C1',X'80000041',X'00000402',X'0000F83E',X'2260111A',
X'0DE00041',X'00008042',X'0000E87C',X'0000F056',X'00000482',
X'00000071',X'0002C041',X'00000040',X'0001D045',X'0000116F',

==== ercc07/emas-2900/sup27fsrce_mindiags.txt ====
%EXTERNALSTRINGFNSPEC STRHEX(%INTEGER I)
%SYSTEMROUTINE NDIAG(%INTEGER PCOUNT, LNB, FAULT, INF)
!***********************************************************************
!*_______'MASTER DIAGNOSTIC ROUTINE'. DISCOVERS THE LANGUAGE OF THE    *
!*_______FAILED ROUTINE FROM WORD 4 OF THE GLA AND CALLS APPROPRIATE   *
!*_______DIAGNOSTIC ROUTINE. THIS IS REPEATED TILL ALL DIAGNOSTICS     *
!*_______GIVEN.                                                        *
!*_______PCOUNT = PCOUNTER AT FAILURE                                  *
!*_______LNB    = LOCAL NAME BASE AT FAILURE                           *
!*_______FAULT  = FAILURE  (0=%MONITOR  REQUESTED)                     *
!*_______INF    =ANY FURTHER INFORMATION                               *
!***********************************************************************
PRINTSTRING("
MINIMUM NDIAGS ENTERED
FAULT NO ="); WRITE(FAULT,2)
PRINTSTRING("
PC=X".STRHEX(PCOUNT)."
LNB=X".STRHEX(LNB)."
")
%IF FAULT>0 %THEN %STOP
%END

==== ercc07/emas-2900/impalgs_outreals.txt ====
%SYSTEMROUTINE OUTREAL(%INTEGER STRM,%LONGREAL VAL)
PRINTFL(VAL,10)
NEWLINE
%END
%ENDOFFILE

==== ercc07/emas-2900/asss.txt ====
%TRUSTEDPROGRAM
%BEGIN
%SYSTEMINTEGERMAPSPEC COMREG(%INTEGER N)
%SYSTEMROUTINESPEC LPUT(%INTEGER TYPE,LENGTH,LA,IA)
%ROUTINESPEC ASSEMBLE(%BYTEINTEGERARRAYNAME S,%INTEGERNAME L,F)
%INTEGER DUMMY,FLAG,FILE ADDR,FILE PTR,FILE END,L
%BYTEINTEGERARRAY OPCODE(0:32*1024)
%OWNINTEGERARRAY FDI(0:5)=0,24,32,0,0,0
         L=32000
         NEWLINES(2); SPACES(15)
         PRINTSTRING('   EMAS ASSEMBLER  RELEASE  2  VERSION 1')
         NEWLINES(4)
         FILE ADDR=COMREG(46)
         %IF FILE ADDR#0 %THEN %START
            FILE PTR=FILE ADDR+INTEGER(FILE ADDR+4)
            FILE END=FILE ADDR+INTEGER(FILE ADDR)
         %FINISH
         ASSEMBLE(OPCODE,L,FLAG)
         NEWLINES(2)
         PRINTSYMBOL('*')
         %IF FLAG=0 %THEN PRINTSTRING('ASSEMBLY SUCCESSFUL') %C

==== ercc07/emas-2900/imp80ps01.txt ====
38
D(NAME)
D(ICONST)
D(CONST)
D(CHXTYPE)
D(N)
D(S)
D(TEXT)
D(BIGHOLE)
D(N255)
D(HOLE)
D(MARK)
D(READLINE?)
D(TEXTTEXT)
D(DUMMYAPP)
D(DOWN)
D(UP)
D(LISTON)
D(LISTOFF)
D(COLON)
D(NOTECONST)

==== ercc07/emas-2900/imp80ps02.txt ====
38
D(NAME)
D(ICONST)
D(CONST)
D(CHXTYPE)
D(N)
D(S)
D(TEXT)
D(BIGHOLE)
D(N255)
D(HOLE)
D(MARK)
D(READLINE?)
D(TEXTTEXT)
D(DUMMYAPP)
D(DOWN)
D(UP)
D(LISTON)
D(LISTOFF)
D(COLON)
D(NOTECONST)

==== ercc07/emas-2900/imp80ps03.txt ====
38
D(NAME)
D(ICONST)
D(CONST)
D(CHXTYPE)
D(N)
D(S)
D(TEXT)
D(BIGHOLE)
D(N255)
D(HOLE)
D(MARK)
D(READLINE?)
D(TEXTTEXT)
D(DUMMYAPP)
D(DOWN)
D(UP)
D(LISTON)
D(LISTOFF)
D(COLON)
D(NOTECONST)

==== ercc07/emas-2900/compbmarks.txt ====
'BEGIN'
'INTEGER' L1,L2,JN,NN,I,J,K;
'REAL' RH,PI,ONE3,SUM,W,SUMT,D,EPS,SUM2,D1,D2,D3,AB;
'ARRAY' U1,U2,U3,CCC[1:10,1:10],QQ[1:20];
'INTEGER''ARRAY'JA,JB,JC[1:10],IALP[1:10,1:10];
'BOOLEAN' TEST,YES,NO;
'REAL''PROCEDURE' SCRUFF(A);
'VALUE' A;
'REAL' A;
SCRUFF:=SQRT(ABS(A/PI*RH));
'PROCEDURE' HH(A,B,C);
'ARRAY' A,B,C;
'BEGIN'
      'INTEGER' L,M,N;
      'FOR' L:=1 'STEP' 1 'UNTIL' 10 'DO'
      'FOR' M:=1 'STEP' 1 'UNTIL' 10 'DO'
      'BEGIN'
            SUMT:=0;
            'FOR' N:=1 'STEP' 1 'UNTIL' 10 'DO'
            SUMT:=SUMT + A[L,N]*B[N,M];
            C[L,M]:=SUMT;

==== ercc07/emas-2900/petebits.txt ====
%SYSTEM %INTEGER %FN SIZE OF (%NAME X)
! Needed for 'straight' code:
! %CONST %BYTE %INTEGER %ARRAY BYTES (0:7) = 1(4),2,4,8,16
%INTEGER I
*LSS_(%LNB+5)
*ST_I
%IF I&X'C2000000'#0 %THEN %RESULT = I&X'00FFFFFF'
! 'Straight' code:
! I = (I>>27) & 7
! %RESULT = BYTES (I)
! 'Bit-twiddling' equivalent:
%RESULT = ((X'000000F0'<<((I>>27) & 7))>>11) + 1
%END
%SYSTEM %STRING (255) %FN SUBSTRING (%STRING %NAME S, %INTEGER I, J)
%STRING (255) HOLDS
%IF I<1 %OR I>J+1 %OR J>LENGTH(S) %THEN %SIGNAL %EVENT 5,7
! For strict compatibility with IMP 77, we should also %SIGNAL if
! I = LENGTH(S) + 1.
J = J - I + 1
LENGTH (HOLDS) = J
MOVE (J, ADDR(S)+I, ADDR(HOLDS)+1)

==== ercc07/emas-2900/nrsrce_mindiags.txt ====
%EXTERNALSTRINGFNSPEC STRHEX(%INTEGER I)
%SYSTEMROUTINE NDIAG(%INTEGER PCOUNT, LNB, FAULT, INF)
!***********************************************************************
!*_______'MASTER DIAGNOSTIC ROUTINE'. DISCOVERS THE LANGUAGE OF THE    *
!*_______FAILED ROUTINE FROM WORD 4 OF THE GLA AND CALLS APPROPRIATE   *
!*_______DIAGNOSTIC ROUTINE. THIS IS REPEATED TILL ALL DIAGNOSTICS     *
!*_______GIVEN.                                                        *
!*_______PCOUNT = PCOUNTER AT FAILURE                                  *
!*_______LNB    = LOCAL NAME BASE AT FAILURE                           *
!*_______FAULT  = FAILURE  (0=%MONITOR  REQUESTED)                     *
!*_______INF    =ANY FURTHER INFORMATION                               *
!***********************************************************************
PRINTSTRING("
MINIMUM NDIAGS ENTERED
FAULT NO ="); WRITE(FAULT,2)
PRINTSTRING("
PC=X".STRHEX(PCOUNT)."
LNB=X".STRHEX(LNB)."
")
%END
%ENDOFFILE

==== ercc07/emas-2900/itrimp_ibmponeas.txt ====
%INCLUDE "ERCC07.TRIMP_HOSTCODES"
%CONSTINTEGER HOST=IBMXA
%CONSTINTEGER TARGET=IBMXA
! PRODUCED BY OLDPS FROM TRIMP_IBMPS01 ON 12/04/84
%CONSTBYTEINTEGERARRAY CLETT(0: 440)=   1,
  40,   1,  41,   1,  42,   1,  44,   2, 201, 198,   6, 213, 206, 204,
 197, 211, 211,   5, 215, 200, 201, 204, 197,   5, 213, 206, 212, 201,
 204,   3, 198, 207, 210,   1,  61,   5, 193, 204, 201, 193, 211,   7,
 201, 206, 212, 197, 199, 197, 210,   4, 210, 197, 193, 204,   4, 204,
 207, 206, 199,   4, 194, 217, 212, 197,   6, 211, 212, 210, 201, 206,
 199,   4, 200, 193, 204, 198,   5, 211, 200, 207, 210, 212,   6, 210,
 197, 195, 207, 210, 196,   7, 210, 207, 213, 212, 201, 206, 197,   2,
 198, 206,   3, 205, 193, 208,   8, 198, 213, 206, 195, 212, 201, 207,
 206,   4, 206, 193, 205, 197,   9, 193, 210, 210, 193, 217, 206, 193,
 205, 197,   9, 207, 198, 208, 210, 207, 199, 210, 193, 205,   6, 207,
 198, 198, 201, 204, 197,   6, 207, 198, 204, 201, 211, 212,   6, 198,
 207, 210, 205, 193, 212,   3, 206, 207, 212,   3, 193, 206, 196,   2,
 207, 210,   1,  58,   4, 211, 208, 197, 195,   5, 193, 210, 210, 193,
 217,   3, 207, 215, 206,   8, 197, 216, 212, 197, 210, 206, 193, 204,
   9, 197, 216, 212, 210, 201, 206, 211, 201, 195,   8, 195, 207, 206,
 211, 212, 193, 206, 212,   5, 195, 207, 206, 211, 212,   5, 197, 214,

==== ercc07/emas-2900/sup25jsrce_com24s.txt ====
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 19A ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DDTADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,WASKLOKCORRECT,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,DQADDR,  %C
         SACPORT,OCPPORT,ITINT,CONTYPEA,GPCCONFA,FPCCONFA,SFCCONFA, %C
         BLKADDR,DPTADDR,SMACS,TRANS,%LONGINTEGER KMON,  %C
         %INTEGER DITADDR,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,STOREAAD,PROCAAD,SFCCTAD,DRUMTAD,SP0,SP1,SP2,SP3, %C
         SP4,SP5,SP6,SP7,SP8,SP9, %C
         LSTL,LSTB,PSTL,PSTB,HKEYS,HOOT,SIM,CLKX,CLKY,CLKZ,  %C
         HBIT,SLAVEOFF,INHSSR,SDR1,SDR2,SDR3,  %C
         SDR4,SESR,HOFFBIT,S2,S3,S4,END)
! MISC. ROUTINE SPECS
%EXTERNALROUTINESPEC PTREC(%RECORDNAME P)
%EXTERNALSTRING(8)%FNSPEC STRHEX(%INTEGER N)
%RECORDFORMAT PARMF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6)
%EXTERNALROUTINESPEC PON(%RECORDNAME P)
%EXTERNALROUTINESPEC INHIBIT(%INTEGER N)
%EXTERNALROUTINESPEC UNINHIBIT(%INTEGER N)

==== ercc07/emas-2900/pnxgen01s.txt ====
%INCLUDE  "ERCS04.OLDPNX_CCODES"
%INCLUDE "ERCC07.TRIPCNSTS"
%INCLUDE "ERCC07.TRIMP_TFORM1S"
%CONSTINTEGER ESTK=0,BR0=1,BR1=2,BR2=3,BR3=4,FR0=5,FR1=6,FR2=7,FR3=8,
               BRN=BR0<<16!BR3,FRN=FR0<<16!FR3
%RECORDFORMAT REGF(%INTEGER CL,(%INTEGER USE %OR %HALF SECUSE,PRIMUSE),
      %INTEGER INF1,INF2,AT,LINK)
%OWNINTEGER CABUF,GLACABUF,GLABEL,FPPTR,FPHEAD
%OWNINTEGERNAME CA,GLACA,PPCURR
%OWNINTEGERARRAYNAME CTABLE,TAGS
%OWNBYTEINTEGERARRAYNAME CODE
%OWNINTEGERNAME ASL
%OWNRECORD(LISTF)%ARRAYNAME ASLIST
%EXTRINSICRECORD(CODEPF) CODEP
%EXTRINSICRECORD(WORKAF)WORKA
%EXTRINSICRECORD(PARMF) PARM
%CONSTINTEGER MAXREG=8
%OWNRECORD(REGF)%ARRAY REGS(0:MAXREG)
%EXTERNALROUTINESPEC FLAGAND FOLD(%RECORD(TRIPF)%ARRAYNAME T)
%SYSTEMINTEGERMAPSPEC COMREG(%INTEGER N)
%DYNAMICROUTINESPEC CCODE(%INTEGER A,B,C,MODE)

==== ercc07/emas-2900/perq_passones.txt ====
! PRODUCED BY OLDPS FROM PERQ_PS01 ON 22/02/82
%CONSTBYTEINTEGERARRAY CLETT(0: 444)=   1,
  40,   1,  41,   1,  42,   1,  44,   2, 201, 198,   6, 213, 206, 204,
 197, 211, 211,   5, 215, 200, 201, 204, 197,   5, 213, 206, 212, 201,
 204,   3, 198, 207, 210,   1,  61,   5, 193, 204, 201, 193, 211,   7,
 201, 206, 212, 197, 199, 197, 210,   4, 210, 197, 193, 204,   4, 204,
 207, 206, 199,   4, 194, 217, 212, 197,   6, 211, 212, 210, 201, 206,
 199,   4, 200, 193, 204, 198,   5, 211, 200, 207, 210, 212,   6, 210,
 197, 195, 207, 210, 196,   7, 210, 207, 213, 212, 201, 206, 197,   2,
 198, 206,   3, 205, 193, 208,   8, 198, 213, 206, 195, 212, 201, 207,
 206,   4, 206, 193, 205, 197,   9, 193, 210, 210, 193, 217, 206, 193,
 205, 197,   9, 207, 198, 208, 210, 207, 199, 210, 193, 205,   6, 207,
 198, 198, 201, 204, 197,   6, 207, 198, 204, 201, 211, 212,   6, 198,
 207, 210, 205, 193, 212,   3, 206, 207, 212,   3, 193, 206, 196,   2,
 207, 210,   1,  58,   4, 211, 208, 197, 195,   5, 193, 210, 210, 193,
 217,   3, 207, 215, 206,   8, 197, 216, 212, 197, 210, 206, 193, 204,
   9, 197, 216, 212, 210, 201, 206, 211, 201, 195,   8, 195, 207, 206,
 211, 212, 193, 206, 212,   5, 195, 207, 206, 211, 212,   5, 197, 214,
 197, 206, 212,   5, 211, 212, 193, 210, 212,   9, 212, 200, 197, 206,
 211, 212, 193, 210, 212,   4, 212, 200, 197, 206,   9, 197, 204, 211,
 197, 211, 212, 193, 210, 212,   4, 197, 204, 211, 197,   1,  95,   6,

==== ercc07/emas-2900/sup27isrce_com34s.txt ====
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20J ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DDTADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,TOJDAY,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,DQADDR,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0, %C
         %INTEGER ITINT,CONTYPEA,GPCCONFA,FPCCONFA,SFCCONFA, %C
         BLKADDR,RATION,SMACS,TRANS,%LONGINTEGER KMON,  %C
         %INTEGER DITADDR,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,STOREAAD,PROCAAD,SFCCTAD,DRUMTAD,TSLICE,FEPS,SP1, %C
         SP2,SP3,SP4,SP5,SP6,SP7,SP8, %C
         LSTL,LSTB,PSTL,PSTB,HKEYS,HOOT,SIM,CLKX,CLKY,CLKZ,  %C
         HBIT,SLAVEOFF,INHSSR,SDR1,SDR2,SDR3,  %C
         SDR4,SESR,HOFFBIT,S2,S3,S4,END)
%RECORDFORMAT PARMF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6)
                                        ! MISC. ROUTINE SPECS
%EXTERNALROUTINESPEC PKMONREC(%STRING(20)TEXT,%RECORD(PARMF)%NAME P)
%EXTERNALSTRING(8)%FNSPEC STRHEX(%INTEGER N)
%EXTERNALROUTINESPEC OPMESS3(%STRING(63)TXT)

==== ercc07/emas-2900/algol60s.txt ====
!
! ALGOL 1.5 DATED NOV 76
!     1) CONTAINS CORRECTION TO GIVE ERROR MESSAGE FOR THE
!        %FOR..%DO %BEGIN...%END %ELSE %BEGIN CONSTRUCT WHICH IS INVALID
!     2) CHOPS RATHER THAN FAULTING LONG STRING CONSTANTS
!     3) CHECKS FOR BEGINS IN SYNTACTICALLY INCORRECT STATEMENTS TO
!        REDUCE THE ERRONEOUS FAULT MESSAGES WHEN LEVELS MISMATCH
!     4) CONTAINS THE BINARY IO ROUTINE NAMES
!     5) STORES PLT DESCRIPTOR CORRECTLY IN EXTERNAL PROCEDURES
!
! ALGOL 1.6 DATED 1ST DEC 76
!     1) CONTAINS CORRECTION TO READ1900 (MISTYPED AS INTEGERPROC)
!     2) CONTAINS CORRECT SPACE ALLOCATION SO THAT STORED VALUE
!        OF STACKFRONT IN PROCEDURES IS NOT CORRUPTED
!     3) USES SYTEMROUTINE STOP TO STOP
!     4) AVOIDS TRYING TO ADD ACC INTO B
!
! ALGOL 1.7 DATED 1ST JAN 77
!     1) HAS INCREASED SPACE IN EXPOP FOR TEMPORARY STACKED OPERANDS
!     2) REMOVES ABORT IN GOTOLAB FOR SWITCHES WITH NO LOCAL LABELS
!     3) AVOIDS STACK TWIST IF B&ACC CLAIMED THEN A MULTI DIMENSION

==== ercc07/emas-2900/sup26fsrce_ndiag07s.txt ====

!*_ DATED 11 NOV 76   1
! ALTERATIONS BY K.YARWOOD ...
!        PRINT FL AND NEXT SYMBOL LINES COMMENTED OUT
!        PRINTTEXT'S TURNED TO PRINTSTRING'S
!        ADDITION FOR LONGINTEGER IN RT PRINT VAR
!         HEX EQUIVALENTS FOR INTS,LONGINTS ETC PRINTED
!        INF PRINTED IN HEX IN RT ERRMESS

%EXTERNALSTRINGFNSPEC STRHEX(%INTEGER I)
%EXTERNALSTRING(8)%FNSPEC STRINT(%INTEGER I)
%CONSTINTEGER STACKBASE=X'80100000';  ! START OF RESIDENT STACK
! %SYSTEMROUTINESPEC SIGNAL(%INTEGER I, J, K, %INTEGERNAME F)
%ROUTINESPEC PRINTMESS(%INTEGER N)
! %SYSTEMROUTINESPEC TIDY EXIT
!*
%ROUTINESPEC INDIAG(%INTEGER OLDLNB, L, PC, %INTEGERNAME NEWLNB)
! %ROUTINESPEC FDIAG(%INTEGER OLDLNB,PC,%INTEGERNAME NEWLNB)
%ROUTINESPEC ERMESS(%INTEGER N, INF)
! %ROUTINESPEC ICL9CELABELS


==== ercc07/emas-2900/pnxgen02s.txt ====
%INCLUDE  "ERCS04.PNX_CCODES"
%INCLUDE "ERCC07.TRIPCNSTS"
%INCLUDE "ERCC07.TRIMP_TFORM1S"
%CONSTINTEGER ESTK=0,BR0=1,BR1=2,BR2=3,BR3=4,FR0=5,FR1=6,FR2=7,FR3=8,
               BRN=BR0<<16!BR3,FRN=FR0<<16!FR3
%RECORDFORMAT REGF(%INTEGER CL,(%INTEGER USE %OR %HALF SECUSE,PRIMUSE),
      %INTEGER INF1,INF2,AT,LINK)
%OWNINTEGER CABUF,GLACABUF,GLABEL,FPPTR,FPHEAD
%OWNINTEGERNAME CA,GLACA,PPCURR
%OWNINTEGERARRAYNAME CTABLE,TAGS
%OWNBYTEINTEGERARRAYNAME CODE
%OWNINTEGERNAME ASL
%OWNRECORD(LISTF)%ARRAYNAME ASLIST
%EXTRINSICRECORD(CODEPF) CODEP
%EXTRINSICRECORD(WORKAF)WORKA
%EXTRINSICRECORD(PARMF) PARM
%CONSTINTEGER MAXREG=8
%OWNRECORD(REGF)%ARRAY REGS(0:MAXREG)
%EXTERNALROUTINESPEC FLAGAND FOLD(%RECORD(TRIPF)%ARRAYNAME T)
%SYSTEMINTEGERMAPSPEC COMREG(%INTEGER N)
%DYNAMICROUTINESPEC CCODE(%INTEGER A,B,C,MODE)

==== ercc07/emas-2900/sup27bsrce_enter10s.txt ====
%RECORDFORMAT PARMF(%INTEGER DEST, SRCE, P1, P2, P3, P4, P5, P6)
%RECORDFORMAT SERVAF(%INTEGER P, C)
%EXTRINSICINTEGER INPTR
%EXTRINSICINTEGER OUTPTR
%CONSTINTEGER MASK=X'80FC3FFF'
%EXTERNALINTEGERFNSPEC HANDKEYS
%EXTERNALROUTINESPEC HOOT(%INTEGER NUM)
%EXTERNALINTEGERFNSPEC GPC INIT(%INTEGER CA,PT,MODE)
%EXTERNALINTEGERFNSPEC SAFE IS READ(%INTEGER ISAD,%INTEGERNAME VAL)
%EXTERNALROUTINESPEC GET PSTB(%INTEGERNAME P0, P1)
%EXTERNALROUTINESPEC SUP29
%EXTERNALROUTINESPEC SUPPOFF(%RECORD(SERVAF)%NAME SERV, %C
      %RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC DISC(%RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC PDISC(%RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC GPC(%RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC SLAVESONOFF(%INTEGER J)
%EXTERNALROUTINESPEC PKMONREC(%STRING(20)TEXT,%RECORD(PARMF)%NAME P)
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20L ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DLVNADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C

==== ercc07/emas-2900/sup28dsrce_makechkd.txt ====
PARM NOCHECK,NOLIST,STACK
IMP80 CTOPT+SUP28DSRCE_SUP28DS,SUPZZ,,.OUT
IMP80 CTOPT+SUP28DSRCE_COM36S,COMZZ,,.OUT
IMP80 CTOPT+SUP28DSRCE_PRINT09S,PRINTZZ,,.OUT
IMP80 CTOPT+SUP28DSRCE_OPER37S,OPERZZ,,.OUT
IMP80 CTOPT+SUP28DSRCE_ENTER15S,ENTERZZ,,.OUT
PARM OPT,STACK,NOLIST
IMP80 CTOPT+SUP28DSRCE_GPC40S,GDCZZ,,.OUT
IMP80 SUP28DSRCE_NDIAG07S,NDIAGZZ,,.OUT
IMP80 CTOPT+SUP28DSRCE_COMMS54S,COMMSZZ,,.OUT
IMP80 CTOPT+SUP28DSRCE_FAST42S,FASTZZ,,.OUT
IMP80 CTOPT+SUP28DSRCE_TAPE75S,TAPEZZ,,.OUT
PARM MAP
LINK
SUPZZ
COMZZ
PRINTZZ
OPERZZ
ENTERZZ
GDCZZ
NDIAGZZ

==== ercc07/emas-2900/ibmgen00s.txt ====
%INCLUDE "ERCC07.TRIMP_HOSTCODES"
%CONSTINTEGER HOST=EMAS
%CONSTINTEGER TARGET=EMAS
%CONSTINTEGER FOURKTDISP=0
%INCLUDE "ERCC10.OPOUTS"
!
%CONSTINTEGER LGR=X'58',AND=X'54',ICP=X'59';      ! VARIANT MNEMONICS
%CONSTINTEGER MARGIN=512;               ! MARGIN FOR ADRESSABILITY
%CONSTINTEGER MAXREG=19;                ! FOR DECLARING REGISTER ETC
%CONSTINTEGER CODER=12
%CONSTINTEGER  WSPR =11
%CONSTINTEGER  GLA =13
%CONSTINTEGER LINKREG=15;               ! REGISTER FOR RETURN ADDRESS
%CONSTINTEGER EPREG=14;                 ! REGISTER HOLDING RT ENTRYPOINT
%CONSTINTEGER CTABLEREG=14;             ! REGISTER HOLDING CONSTANT TABLE
%CONSTINTEGER GR0=X'0000000F';          ! ANY GR FROM 0-15
%CONSTINTEGER GR1=X'0001000F';          ! ANY GR BAR GR0
%CONSTINTEGER FR0=X'00100013';          ! ANY FR
%CONSTINTEGER GRSAFE=X'00040009';       ! ANY GR SAFE AGAINT RT CALL
%CONSTINTEGER GRPAIR=X'01000008'
%CONSTINTEGER FRPAIR=X'01100012'

==== ercc07/emas-2900/sup26isrce_sup26is.txt ====

!
! TO MAKE S SERIES SUPERVISOR REQUIRES:-
!     1) CHANGE SSERIES=NO TO SSERIES=YES IN CTOPTIONS FILE
!     2) REPLACE COMF BY S SERIES COM IN ERCC08.COMSF
!
!
! THESE CONST INTEGERS DEFINE SIZES AND LAYOUT OF IMPORTANT TABLES
! THEY HAVE TO BE HERE TO BE GLOBAL TO ALL ROUTINES INCLUDING IO ONES
!
%CONSTINTEGER LSTLEN=192;               ! LOCAL SEGMENT TABLE LENGTH
%CONSTINTEGER CBTLEN=255;               ! LENGTH OF CBT TABLE
%CONSTLONGINTEGER LCACR=1;              ! ACR OF LOCAL CONTROLLER
%CONSTINTEGER DIRCSEG=10;               ! SEG NO OF DIRECTOR COMMS SEG
%CONSTINTEGER DIRCSEGOFFSET=0;          ! FOR ALIGNMENT IF NEEDED
%CONSTINTEGER DIRCSEGAD=DIRCSEG<<18;    ! VIRTUAL ADDRESS OF DIR COM SEG
%CONSTINTEGER DIRCSEGL=8*CBTLEN+255+LSTLEN; ! SIZE OF SAME
                                        ! MADE UP OF 2049 FOR CBT
                                        ! LSTLEN FOR SST
                                        ! 48+64 FOR 2 BITS OF SYTEMCALL TABLE
                                        ! 32+48 FOR DIROUTP&SIGOUT

==== ercc07/emas-2900/sup27fsrce_comms49s.txt ====

!                 VERSION OF 13/06/80
!        DEC 79: INCLUDE AN OPER ADAPTOR
!                HAVE ONLY ONE SERVICE NUMBER, X'37'
!        OTHER POSSIBLE CHANGES
!           MAKE INITIALISATION CALL OF CC INITIALISE ADAPTORS AS WELL
!           MAKE IT POSSIBLE TO DEALLOCATE/ALLOCATE ALL DEVICES
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20A ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DDTADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,WASKLOKCORRECT,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,DQADDR,  %C
         %BYTEINTEGER NSACS,RESV1,SACPORT1,SACPORT0, %C
         NOCPS,RESV2,OCPPORT1,OCPPORT0, %C
         %INTEGER ITINT,CONTYPEA,GPCCONFA,FPCCONFA,SFCCONFA, %C
         BLKADDR,DPTADDR,SMACS,TRANS,%LONGINTEGER KMON,  %C
         %INTEGER DITADDR,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, %C
         SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD, %C
         COMMSRECA,STOREAAD,PROCAAD,SFCCTAD,DRUMTAD,TSLICE,SP0,SP1, %C
         SP2,SP3,SP4,SP5,SP6,SP7,SP8, %C
         LSTL,LSTB,PSTL,PSTB,HKEYS,HOOT,SIM,CLKX,CLKY,CLKZ,  %C

==== ercc07/emas-2900/pnxgen03s.txt ====
%INCLUDE  "ERCS04.NEWPNX_CCODES"
%INCLUDE "ERCC07.TRIPCNSTS"
%INCLUDE "ERCC07.TRIMP_TFORM1S"
%CONSTINTEGER ESTK=0,BR0=1,BR1=2,BR2=3,BR3=4,FR0=5,FR1=6,FR2=7,FR3=8,
               BRN=BR0<<16!BR3,FRN=FR0<<16!FR3
%RECORDFORMAT REGF(%INTEGER CL,(%INTEGER USE %OR %HALF SECUSE,PRIMUSE),
      %INTEGER INF1,INF2,AT,LINK)
%OWNINTEGER CABUF,GLACABUF,GLABEL,FPPTR,FPHEAD
%OWNINTEGERNAME CA,GLACA,PPCURR
%OWNINTEGERARRAYNAME CTABLE,TAGS
%OWNBYTEINTEGERARRAYNAME CODE
%OWNINTEGERNAME ASL
%OWNRECORD(LISTF)%ARRAYNAME ASLIST
%EXTRINSICRECORD(CODEPF) CODEP
%EXTRINSICRECORD(WORKAF)WORKA
%EXTRINSICRECORD(PARMF) PARM
%CONSTINTEGER MAXREG=8
%OWNRECORD(REGF)%ARRAY REGS(0:MAXREG)
%EXTERNALROUTINESPEC FLAGAND FOLD(%RECORD(TRIPF)%ARRAYNAME T)
%SYSTEMINTEGERMAPSPEC COMREG(%INTEGER N)
%DYNAMICROUTINESPEC CCODE(%INTEGER A,B,C,MODE)

==== ercc07/emas-2900/sup26isrce_documentn.txt ====



This partitioned file contains all the source required to make up a
version 26I Supervisor, plus the version of the IMP compiler and FIX
utility used at Edinburgh to do so.  This compiler is necessary as some
advanced language features are required which are not available in the
service compiler.

Note that the OPTION NOBRACKETS must be in force in the process being
used for the method described to work.

Two "OBEY" subfiles are available: MAKECHKD and MAKEOPT.  They each
construct a test Supervisor which is left in file SUP26xT,  where x is
'C' or 'O' respectively.


Making a Supervisor thus consists of the following:

a) INSERT the IMP compiler and FIX utility into the current directory
   (and then log off and log on again if IMP was previously used in

==== ercc07/emas-2900/sup28asrce_gpc39s.txt ====

%CONSTSTRING (25) VSN="GPC39 2nd Feb 1982"
!************************************************GPC GPC GPC
!*
!*   EMAS 2900 SUPERVISOR NOTE
!*                                           No: 5
!*                                         Date: 21/05/80
!*                                       Author: A.Gibbons
!*
!*
!* %EXTERNAL ROUTINE GPC(%RECORD(PARMF)%NAME P)
!*
!* 1. CONVENTIONS
!* The record spec for the parameter is
!*   %RECORDFORMAT PARMF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6)
!* where
!*   DEST is considered as two half words DSNO and DACT. DSNO
!*        must be GPC's DSNO 
!*        DACT is set according to the function required.
!*
!*   SRCE is considered as two halfwords SSNO and SACT.

==== ercc07/emas-2900/ibmgen01s.txt ====
%INCLUDE "ERCC07.TRIMP_HOSTCODES"
%CONSTINTEGER HOST=EMAS
%CONSTINTEGER TARGET=IBM
%CONSTINTEGER FOURKTDISP=0
%INCLUDE "ERCC10.OPOUTS"
!
%CONSTINTEGER LGR=X'58',AND=X'54',ICP=X'59';      ! VARIANT MNEMONICS
%IF TARGET=IBM %THEN %START
      %CONSTINTEGER BALCODE=BAL
%FINISH %ELSE %START
      %CONSTINTEGER BALCODE=BAS
%FINISH
%CONSTINTEGER MARGIN=512;               ! MARGIN FOR ADRESSABILITY
%CONSTINTEGER MAXREG=19;                ! FOR DECLARING REGISTER ETC
%CONSTINTEGER CODER=12
%CONSTINTEGER  WSPR =11
%CONSTINTEGER  GLA =13
%CONSTINTEGER LINKREG=15;               ! REGISTER FOR RETURN ADDRESS
%CONSTINTEGER EPREG=14;                 ! REGISTER HOLDING RT ENTRYPOINT
%CONSTINTEGER CTABLEREG=14;             ! REGISTER HOLDING CONSTANT TABLE
%CONSTINTEGER GR0=X'000F0000';          ! ANY GR FROM 0-15

==== ercc07/emas-2900/sup28asrce_print08s.txt ====
%RECORDFORMAT PARMF(%INTEGER DEST, SRCE, P1, P2, P3, P4, P5, P6)
%EXTRINSICLONGINTEGER KMON
%ROUTINESPEC PRHEX(%INTEGER H)
%ROUTINESPEC PRINTER(%RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC PON(%RECORD(PARMF)%NAME P)
%IF SSERIES=YES %START
   %EXTERNALROUTINESPEC DCU(%RECORD(PARMF)%NAME P)
%FINISH %ELSE %START
   %EXTERNALROUTINESPEC GPC(%RECORD(PARMF)%NAME P)
%FINISH
%EXTERNALROUTINESPEC OPMESS(%STRING (23) MESS)
%SYSTEMROUTINESPEC ITOE(%INTEGER A, L)
%IF MULTIOCP=YES %THEN %START
   %EXTERNALROUTINESPEC SEMALOOP(%INTEGERNAME SEMA)
   %ROUTINESPEC RESERVE LOG
   %ROUTINESPEC RELEASE LOG
   %ROUTINESPEC AWAIT LOG ROUTE
%FINISH
!------------------------------------------------------------------------
!*
!* Communications record format - extant from CHOPSUPE 22A onwards *

==== ercc07/ibmlink3.txt ====
disconnect .all
LINK ,map 
IP1X
IP22X
IOPT3X
IGEN3X
CSERV01X
.END
P0Y
MODIFY P0Y
SATISFY REFS
.ALL
SATISFY DATA
.ALL
SUPPRESS
.ALL
RETAIN
ICL9CEZIBMIMP
SUPPRESS DATA
.ALL
CLOSE

==== ercc07/ibmlink4.txt ====
disconnect .all
LINK  
IP1X
IP22X
IOPT3X
IGEN4X
CSERV01X
.END
P0Y
MODIFY P0Y
SATISFY REFS
.ALL
SATISFY DATA
.ALL
SUPPRESS
.ALL
RETAIN
ICL9CEZIBMIMP
SUPPRESS DATA
.ALL
CLOSE

==== ercc07/ebits_ecodes.txt ====
!
!************************************************************************
!*                                                                      *
!*                                                    G.E.Millard       *
!*   ECODES                                           10/08/85          *
!*                                                                      *
!************************************************************************
!
{00} %constinteger      HALT =   0
!
!--------------------------------------- 32-bit (Etos) ----------------
!
{01} %constinteger      IADD =   1     { (Etos-1) + (Etos) => (Etos)   }
{02} %constinteger      ISUB =   2     { (Etos-1) - (Etos) => (Etos)   }
{03} %constinteger     IMULT =   3     { (Etos-1) * (Etos) => (Etos)   }
{04} %constinteger      IDIV =   4     { (Etos-1) / (Etos) => (Etos)   }
{05} %constinteger      INEG =   5     {          - (Etos) => (Etos)   }
{06} %constinteger      IABS =   6     {     abs( (Etos) ) => (Etos)   }
{07} %constinteger      IREM =   7     { remainder from                }
                                       {  (Etos-1) / (Etos)=> (Etos)   }
!

==== ercc07/ibmlink5.txt ====
disconnect .all
LINK  
----
IP12y
IP26y
IOPT4y
IGEN5y
CSERV01Y
.END
P0Y
++++
MODIFY P0Y
----
SATISFY REFS
.ALL
SATISFY DATA
.ALL
SUPPRESS
.ALL
RETAIN
ICL9CEZIBMIMP

==== ercc07/i29gens.txt ====
! Changes made by PDS Oct 90
!       1) Revisions to deactivated JAT/JAF code
!       2) Reactivation of JAT/JAF code
!       3) Update of Min Elevel
!
!  NB `MOVE WORD` DESCRIPTORS ARE NOT GENERATED
!     ALL VALUES ARE CONVERTED TO BYTES
!     NEED TO ALTER `OP(MVW)` TO HANDLE WORD DESCRIPTORS.
!
!* 23-10-90 :- Source clear to date to provide sound basis for WP2 (AA)
!*             Rename as i29gen30.
!*
!*             V67 ILAN/???? Estkresult to use size given for integer
!*                 types instead of assuming 4. ccomp134
!*
!*             V58 CCOMP130 ILAN0377 reload bform changed by LoadItem 
!*                 in note index.
!*
!*             V57 CCOMP128 ILAN/0376 Force load index for negative
!*                 subscript in note index. Instr generating routines
!*                 assume unsigned.

==== ercc07/makevax_opt.txt ====
edit opt03s,vpos
i<itrimp_vaxoptas>
ta/%inc/
d1i<itrimp_hostcodes>
a'
d1i<itrimp_tform2s>
a'
d1i<tripcnsts>
ta/host=/i/Vax
/d1p-2
e
parm nocheck
vaximp vpos,vpoxx
transfer vpoxx,ercvax(ercc07,peathag)vpo.obj,file,bin

==== ercc07/ebits_especs.txt ====
!* modified 19/08/85
!*
%externalroutinespec Egenerate Object(%stringname Name)
%externalroutinespec Einitialise(%integer Lang, Avertext, Astackca,
                                                    Aglaca, Options)
%externalroutinespec Eterminate(%integer adareasizes)
%externalroutinespec Ecommon(%integer area, %stringname Name)
%externalroutinespec Eendcommon(%integer area, Length)
%externalroutinespec Elinestart(%integer lineno)
%externalroutinespec Elinedecode
%externalroutinespec Emonon
%externalroutinespec Emonoff
%externalroutinespec Efaulty
%externalintegerfnspec Estkmarker
%externalroutinespec Esetmarker(%integer Markerid, New Value)
%externalintegerfnspec Eswapmode
!*
%externalroutinespec Estklit(%integer Val)
%externalroutinespec Estkconst(%integer Len, Ad)
%externalroutinespec Estkdir(%integer Area, Offset, Adid, Bytes)
%externalroutinespec Estkind(%integer Area, Offset, Adid, Bytes)

==== ercc07/vaxcom_ilink.txt ====
$ link 'p1',main,vaxiocp,penv,fortout,vndiag,sys$input/opt
sys$share:vaxcrtl.exe/share

==== ercc07/ibmsup_lcform3s.txt ====
%constinteger LSTLEN=256;               ! LOCAL SEGMENT TABLE LENGTH
%constinteger CBTLEN=299;               ! LENGTH OF CBT TABLE
%constinteger CONTEXTL=192;             ! LENGTH OF AN IBM CONTEXT
%constinteger LCONTN=5;                 ! NO OF LOCAL CONTEXTS
!
                                        ! CONTEXTF A SORT OF SSN+1
%recordformat CONTEXTF((%integer psw0,psw1 %or %longinteger PSW),
      {8}%integerarray GR(0:15),
      {72}FR(0:7),{104}CONTROLR(0:15),{168}%longinteger CPUTIMER,
      %integer ASYNI,SUSP,%short PECODE,ILC,%integer spare)
                                        ! PARMF FOR PARAMETER PASSING(32 BYTES
%recordformat PARMF((%integer DEST,SRCE %OR %short DSNO,DACT,SSNO,SACT),
      (%integer P1,P2,P3,P4,P5,P6 %OR %integerarray P(1:6) %OR %C
      %string(6)USER,%byte INCAR,%string(15)INTMESS))
!
                                        ! SIGOUTPF FOR PASSING SIGNALS(48 BYTES)
%recordformat SIGOUTPF(((%integer DEST,SRCE %or %short DSNO,DACT,SSNO,SACT),
      (%integer P1,P2,P3,P4,P5,P6 %or %INTEGERARRAY p(1:6) %or %c
      %string(6)USER,%byte incar,%string(15) INTMESS)),%integer TYPE,SSN,SSNAD,SUSP)
!
                                        ! CBT THE CLAIMED BLOCK FORMAT

==== ercc07/vaxspecs.txt ====
{* Area initialisation *}

   { All areas are buffered as the ten new areas. }

   { The following consts represent these areas in this interface }

   %constinteger Stack  =  0,
                 Code   =  1,
                 Gla    =  2,
               { Unused =  3 }
                 SST    =  4,
                 UST    =  5,
                 Diags  =  6,
                 Params =  7,
                 IoTab  =  8,
                 ZGST   =  9,
                 Cnst   = 10

   %externalintegerfnspec PMarker(%integer HalfWords)
      { Mark CA for future PSetOpd and reserve HalfWords of code for plugging }
      { Also used to identify points in code to be used in PFix. }

==== ercc07/ibmsup_lcform4s.txt ====
%constinteger LSTLEN=256;               ! LOCAL SEGMENT TABLE LENGTH
%constinteger CBTLEN=499;               ! LENGTH OF CBT TABLE
%constinteger CONTEXTL=192;             ! LENGTH OF AN IBM CONTEXT
%constinteger LCONTN=5;                 ! NO OF LOCAL CONTEXTS
!
                                        ! CONTEXTF A SORT OF SSN+1
%recordformat CONTEXTF((%integer psw0,psw1 %or %longinteger PSW),
      {8}%integerarray GR(0:15),
      {72}FR(0:7),{104}CONTROLR(0:15),{168}%longinteger CPUTIMER,
      %integer ASYNI,SUSP,%short PECODE,ILC,%integer last vsparm)
                                        ! PARMF FOR PARAMETER PASSING(32 BYTES
%recordformat PARMF((%integer DEST,SRCE %OR %short DSNO,DACT,SSNO,SACT),
      (%integer P1,P2,P3,P4,P5,P6 %OR %integerarray P(1:6) %OR %C
      %string(6)USER,%byte INCAR,%string(15)INTMESS))
!
                                        ! SIGOUTPF FOR PASSING SIGNALS(48 BYTES)
%recordformat SIGOUTPF(((%integer DEST,SRCE %or %short DSNO,DACT,SSNO,SACT),
      (%integer P1,P2,P3,P4,P5,P6 %or %INTEGERARRAY p(1:6) %or %c
      %string(6)USER,%byte incar,%string(15) INTMESS)),%integer TYPE,SSN,SSNAD,SUSP)
!
                                        ! CBT THE CLAIMED BLOCK FORMAT

==== ercc07/makedrs_gen.txt ====
offer dgens
parm nocheck
edit drsgen03s,dgens
a/%incl/d1i<itrimp_hostcodes>
a'd1i<ercs01:ebits_ecodes21>
a'd1i<tripcnsts>
a'd1i<itrimp_tform2s>
a'd1i<ercs01:ebits_especs2>
e
imp dgens,.null
offer dgens,eepz06

==== ercc07/ibmsup_confv7.txt ====
==== ercc07/ibmsup_lcform5s.txt ====
%constinteger LSTLEN=512;               ! LOCAL SEGMENT TABLE LENGTH
%constinteger CBTLEN=380;               ! LENGTH OF CBT TABLE
%constinteger CONTEXTL=192;             ! LENGTH OF AN IBM CONTEXT
%constinteger LCONTN=5;                 ! NO OF LOCAL CONTEXTS
!
                                        ! CONTEXTF A SORT OF SSN+1
%recordformat CONTEXTF((%integer psw0,psw1 %or %longinteger PSW),
      {8}%integerarray GR(0:15),
      {72}FR(0:7),{104}CONTROLR(0:15),{168}%longinteger CPUTIMER,
      %integer ASYNI,SUSP,%short PECODE,ILC,%integer last vsparm)
                                        ! PARMF FOR PARAMETER PASSING(32 BYTES
%recordformat PARMF((%integer DEST,SRCE %OR %short DSNO,DACT,SSNO,SACT),
      (%integer P1,P2,P3,P4,P5,P6 %OR %integerarray P(1:6) %OR %C
      %string(6)USER,%byte INCAR,%string(15)INTMESS))
!
                                        ! SIGOUTPF FOR PASSING SIGNALS(48 BYTES)
%recordformat SIGOUTPF(((%integer DEST,SRCE %or %short DSNO,DACT,SSNO,SACT),
      (%integer P1,P2,P3,P4,P5,P6 %or %INTEGERARRAY p(1:6) %or %c
      %string(6)USER,%byte incar,%string(15) INTMESS)),%integer TYPE,SSN,SSNAD,SUSP)
!
                                        ! CBT THE CLAIMED BLOCK FORMAT

==== ercc07/docs_pubs.txt ====

            P.D.Stephens    Selected Publications

     "The IMP Language and Compiler", Computer Journal Vol 18,
     pp127-130(1975).

     (with N.Shelness and H.Whitfield) "EMAS Scheduling and Allocation
     Procedures in the resident Supervisor", Presented at I.R.I.A.
     Colloque International sur les Aspects Theoriques et Practiques des
     Systems d'Expoitation April 74. Chosen as one of the six best
     computing papers presented in France during 1974 and reprinted in
     Revue Francais d'Automatique, Informatique et Recherche
     Operationelle Vol B2, pp29-45(1975).

     "ALGOL(E) Language", International Computers Ltd. Technical
     Publication No 6855. (1976).

     (Editor and co-author) "EMAS2900 Concepts", ERCC (1980).

     "The EMAS2900 Operating System", I.U.C.C.  Bulletin Vol 2 No 2,
     pp85-89 (1980).

==== ercc07/makegld_gen.txt ====
parm nocheck,nolist
edit gldgen04s,gldgens
a/%incl/d1i<itrimp_hostcodes>
a'd1i<ercs01:ebits_ecodes21>
a'd1i<tripcnsts>
a'd1i<itrimp_tform2s>
a'd1i<ercs01:ebits_especs2>
e
imp gldgens,.null
transfer gldgens,epcpnb(pds,peathag)p4v12.i,file

==== ercc07/docs_efunnies.txt ====

While going through xgen22 I have noted the following problems(queries)


  1) The meaning of (say) Indregmodval  is  not  immediately  obvious.    Better
     commenting here would be appreciated.

  2) You accept -1 as invalid astackaddr  meaning  the  local  pointer  invalid.
     Other Ecode machines use 0 here.

  3) You assume that my local pointer from which you  grab  temporaies  contains
     the params but does not allow for the red tape.   This is arbitary ( Imp it
     contians both).   Suggest two further bits allocate in Props to say what is
     included in this.

  4) Your claiming of stackframe space in eprocend does not allow for mode  than
     12 bits of space.   This does occurr from time to time in programs and will
     cause a very hairy bug.   At least abort here.   I deal with this  case  by
     addint the next highest multiple of 4k. Wastes some space but does at least
     work.


==== ercc07/vbootgen1s.txt ====
!
! Copyright P.D.Stephens 1988
! This is a modified Ecode generator with chenges so that it is available
! for rapid implementation of a complete compiler system. The aim is to be able
! to bring up EMAS compilers fast on another system if there is a big bang
! change in the near future. Also this version is intended to be "Definitive"
! ie to define what some of the more specialised operations have to do.
! To aid this extended commentary has been added.

!
! The following changes have been made from a standard generator
!
! 1)  All eops go via one routine(EOP). The Ef77op, Epasop etc are dummies
!
! 2)  As many specialized operations as possible are re-implemted in terms
!     of simplier Ecode operations. This makes the generator highly recursive
!
! 3)  Address and refer are implemented as far as possible via state
!     transitions not by planting code
!
! 4)  A routine Trapjump (QV) has been introduced to tidy up error exits

==== ercc07/ibmsup_lcform6s.txt ====
%constinteger LSTLEN=512;               ! LOCAL SEGMENT TABLE LENGTH
%constinteger CBTLEN=380;               ! LENGTH OF CBT TABLE
%constinteger CONTEXTL=192;             ! LENGTH OF AN IBM CONTEXT
%constinteger LCONTN=5;                 ! NO OF LOCAL CONTEXTS
%constinteger LCSPTSIZE=16;             ! pages in lcptable
!
                                        ! CONTEXTF A SORT OF SSN+1
%recordformat CONTEXTF((%integer psw0,psw1 %or %longinteger PSW),
      {8}%integerarray GR(0:15),
      {72}FR(0:7),{104}CONTROLR(0:15),{168}%longinteger CPUTIMER,
      %integer ASYNI,SUSP,%short PECODE,ILC,%integer last vsparm)
                                        ! PARMF FOR PARAMETER PASSING(32 BYTES
%recordformat PARMF((%integer DEST,SRCE %OR %short DSNO,DACT,SSNO,SACT),
      (%integer P1,P2,P3,P4,P5,P6 %OR %integerarray P(1:6) %OR %C
      %string(6)USER,%byte INCAR,%string(15)INTMESS))
!
                                        ! SIGOUTPF FOR PASSING SIGNALS(48 BYTES)
%recordformat SIGOUTPF(((%integer DEST,SRCE %or %short DSNO,DACT,SSNO,SACT),
      (%integer P1,P2,P3,P4,P5,P6 %or %INTEGERARRAY p(1:6) %or %c
      %string(6)USER,%byte incar,%string(15) INTMESS)),%integer TYPE,SSN,SSNAD,SUSP)
!

==== ercc07/m88kdums.txt ====
%externalroutine eprecall2(%integer id,aparprops)

printstring("Eprecall2
")
%end
%externalroutine Eproc2(%stringname name,%integer props,aparprops,%integername id)
printstring("Eproc2
")
%end
%endoffile

==== ercc07/ctoptnass.txt ====
!
!   Compile time options for EMAS/370
!
%constinteger YES=1,NO=0,AMDAHL=2
%constinteger XA=YES;                    ! yes for 370/XA
%constinteger VA MODE=YES;               ! yes for Supervisor, no for Chopsupe
%constinteger MULTI OCP=NO;              ! yes to include semaphoring
%constinteger CRFITTED=NO;               ! card reader
%constinteger CPFITTED=NO;               ! card punch
%constinteger SNOOZING=YES;              ! allow suspend in store
%constinteger PRODUCTION=NO;             ! yes for continuing after S/W errors
%constinteger MONLEVEL=x'3F';                ! 0 = no monitoring
                                         ! 2**0 = video updating
                                         ! 2**1 = KMONning
                                         ! 2**2 = sup timing measurements
                                         ! 2**3 = a-c for cross calls
                                         ! 2**4 = strobing
                                         ! 2**5 = cat table transitions
                                         ! 2**8 = event harvesting
%constinteger P4PERCENT=11;              ! max % of free store for large jobs
%constinteger MAXPROCS=256;              ! max concurrent procs (64,128 or 256)

==== ercc07/vaxcode1s.txt ====
!    30/12/87 - Set lengths for MOVLF in oplr                    winstr8.i
! Release 1.0 10/11/87 Add bit operations                        winstr7
! Field Trial 6 Correct complex*16                               winstr6.i
!               Correct Compress for neg bytes (ADJSP) 
! Field trial 5 MOVif to reduce RHS if litval                    winstr5.i
!               fix plant 16 bit imm. opd
! Field Trial 3
! R6 not used. Ie left for optimiser Breg                        winstr4.i
!
! Field Trial 2                                                  winstr3.i
! Setuse no longer fails registers owned by temp estack records.
!
! Field Trial 1                                                  winstr2.i




%constinteger imp = 1
%constinteger FORTRAN  =  2
%constinteger CCOMP    = 11
%constinteger PASCAL   = 14

==== ercc07/s4algps.txt ====
39
D(NAME)
D(ICONST)
D(CONST)
D(ONAME)
D(COMTEXT))
D(S)
D(ENDTEXT)
D(TEXTTEXT)
D(NAMELIST)
D(HOLE)
D(MARK)
D(ONAMELIST)
D(UPSTCNT)
D(LETTERSTRING)
D(DOWN)
D(UP)
D(SCALARTYPE)
D(NOTENAME)
D(TYPE=A)
D(TYPE=B)

==== ercc07/alg00s.txt ====
%INCLUDE "ercc10:OPOUTS"
%CONSTINTEGER isub=x'5B',IADD=x'5a',LGR=x'58',AND=x'54',ICP=x'59'; ! variant mnemonics
%INCLUDE "ercs12:ibmsce3_specs"
%EXTERNALROUTINE ICL9CEZALGOL
%INTEGER I,J,K
! PRODUCED BY OLDPS FROM S4ALGPS ON 29/08/85
%CONSTBYTEINTEGERARRAY CLETT(0:252)=   1,
  44,   1,  43,   1,  45,   1,  40,   1,  41,   2, 201, 198,   4, 212,
 200, 197, 206,   4, 197, 204, 211, 197,   1,  94,   2,  42,  42,   1,
  42,   1,  47,   3, 196, 201, 214,   4, 212, 210, 213, 197,   5, 198,
 193, 204, 211, 197,   3, 193, 206, 196,   2, 207, 210,   4, 201, 205,
 208, 204,   5, 197, 209, 213, 201, 214,   3, 206, 207, 212,   7, 201,
 206, 212, 197, 199, 197, 210,   4, 210, 197, 193, 204,   7, 194, 207,
 207, 204, 197, 193, 206,   1,  59,   5, 214, 193, 204, 213, 197,   5,
 204, 193, 194, 197, 204,   6, 211, 215, 201, 212, 195, 200,   6, 211,
 212, 210, 201, 206, 199,   5, 193, 210, 210, 193, 217,   9, 208, 210,
 207, 195, 197, 196, 213, 210, 197,   2,  58,  40,   7, 195, 207, 205,
 205, 197, 206, 212,   1,  58,   2,  58,  61,   4, 211, 212, 197, 208,
   5, 213, 206, 212, 201, 204,   5, 215, 200, 201, 204, 197,   1,  61,
   2,  62,  61,   1,  62,   1,  35,   2,  60,  61,   1,  60,   2,  92,
  61,   3, 198, 207, 210,   2, 196, 207,   5, 194, 197, 199, 201, 206,

==== ercc07/ibmconvert_sibmdump.txt ====
!
!
!
%RECORDFORMAT RR(%INTEGER CONAD,FTYPE,DSTART,DEND)
%EXTERNALROUTINESPEC DEFINE(%STRING(255)PARM)
%SYSTEMROUTINESPEC PSYSMES(%INTEGER ROOT,FLAG)
%SYSTEMROUTINESPEC SETPAR(%STRING(255)PARM)
%SYSTEMSTRINGFNSPEC SPAR(%INTEGER N)
%SYSTEMROUTINESPEC CONNECT(%STRING(31)FILE,%INTEGER MODE,HOLE,PROT,
         %RECORD(RR)%NAME FINFO,%INTEGERNAME FLAG)
%SYSTEMROUTINESPEC ETOI(%INTEGER ADR,LNTH)
%SYSTEMROUTINESPEC MOVE(%INTEGER LNTH,FROMAD,TOAD)
!
!                                       OUT HEX
!
%ROUTINE OUTHEX(%INTEGER VAL,WIDTH)
 %CONSTBYTEARRAY HX(0:15)='0','1','2','3','4','5','6','7',
                          '8','9','A','B','C','D','E','F'
 %INTEGER I
 %FOR I=WIDTH-4,-4,0 %CYCLE
      PRINTSYMBOL(HX((VAL>>I)&15))

==== ercc07/ibmsup_lcform7s.txt ====
%constinteger LSTLEN=512;               ! LOCAL SEGMENT TABLE LENGTH
%constinteger CBTLEN=480;               ! LENGTH OF CBT TABLE
%constinteger CONTEXTL=192;             ! LENGTH OF AN IBM CONTEXT
%constinteger LCONTN=5;                 ! NO OF LOCAL CONTEXTS
%constinteger LCSPTSIZE=16;             ! pages in lcptable
!
                                        ! CONTEXTF A SORT OF SSN+1
%recordformat CONTEXTF((%integer psw0,psw1 %or %longinteger PSW),
      {8}%integerarray GR(0:15),
      {72}FR(0:7),{104}CONTROLR(0:15),{168}%longinteger CPUTIMER,
      %integer ASYNI,SUSP,%short PECODE,ILC,%integer last vsparm)
                                        ! PARMF FOR PARAMETER PASSING(32 BYTES
%recordformat PARMF((%integer DEST,SRCE %OR %short DSNO,DACT,SSNO,SACT),
      (%integer P1,P2,P3,P4,P5,P6 %OR %integerarray P(1:6) %OR %C
      %string(6)USER,%byte INCAR,%string(15)INTMESS))
!
                                        ! SIGOUTPF FOR PASSING SIGNALS(48 BYTES)
%recordformat SIGOUTPF(((%integer DEST,SRCE %or %short DSNO,DACT,SSNO,SACT),
      (%integer P1,P2,P3,P4,P5,P6 %or %INTEGERARRAY p(1:6) %or %c
      %string(6)USER,%byte incar,%string(15) INTMESS)),%integer TYPE,SSN,SSNAD,SUSP)
!

==== ercc07/vaxiocp.txt ====
!Modified 22/Sept/86 - treat selectoutput(-1) as null device for IMP.
!Modified 25/June/86  use own rather than local arrays
!Modified 28/May/86   for GOULD (AK)

!***********************************************************************
!* IMP written routines supporting COMPILE TIME.                       *
!***********************************************************************

%CONSTINTEGER EMAS=10
%CONSTINTEGER PERQ=11
%CONSTINTEGER PNX=12
%CONSTINTEGER IBM=13
%CONSTINTEGER GOULD=14
%constinteger DRS=19
%constinteger WhiteChapel = 19
%constinteger Perq3 = 20
%constinteger target = DRS
%constinteger host = DRS
%constinteger EM=25

%owninteger rc=1

==== ercc07/print07s.txt ====

%RECORDFORMAT PARMF(%INTEGER DEST, SRCE, P1, P2, P3, P4, P5, P6)
%EXTRINSICLONGINTEGER KMON
%ROUTINESPEC PRHEX(%INTEGER H)
%ROUTINESPEC PRINTER(%RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC PON(%RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC GPC(%RECORD(PARMF)%NAME P)
%EXTERNALROUTINESPEC OPMESS(%STRING (23) MESS)
%SYSTEMROUTINESPEC ITOE(%INTEGER A, L)
%IF MULTIOCP=YES %THEN %START
%EXTERNALROUTINESPEC SEMALOOP(%INTEGERNAME SEMA)
      %ROUTINESPEC RESERVE LOG
      %ROUTINESPEC RELEASE LOG
      %ROUTINESPEC AWAIT LOG ROUTE
%FINISH
!------------------------------------------------------------------------
!* COMMUNICATIONS RECORD FORMAT - EXTANT FROM CHOPSUPE 20L ONWARDS *
%RECORDFORMAT COMF(%INTEGER OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  %C
         DLVNADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  %C
         DCODEDA,SUPLVN,TOJDAY,DATE0,DATE1,DATE2,  %C
         TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,SERVAAD,  %C

==== ercc07/docs_wilkesnote.txt ====
      Protection is related to system  structure  and  can  not  not  be
discussed  sensibly  out of context.   I propose to to use IBM OS360 and
EMAS2900 for examples as I am not sufficiently familiar with VMS.

      Early uni-programming operating systems had  user  and  supervisor
co-resident  in  separate  worlds protected by base and limit registers.
This simple approach worked well although it  was  difficult  to  locate
user  parameters to operating system calls without adddress computation.
IBM elected to put parameters in code after  the  SVC,    an  insanitary
method that has cost them dear.  These techniques were extended to multi
tasking and then further distorted to handle virtual  memory  (with  the
operating  system  remaining  in real addresses).   The price of the IBM
technique of passing parameters to the system increased  sharply.    The
code was impure and could not be shared; also code pages were made dirty
by writing in the parameters and had to  be  paged  out.    Further  the
supervisor   had  to  cope  with  page  boundaries  within  and  between
parameters.

      Now that systems  have  become  larger  and  more  complex  it  is
deirable  to  use virtual addressing within the operating system and the
simple model fails to cope.   The IBM-XA manual has pages of description

==== ercc07/alg01s.txt ====
%INCLUDE "ercc10:OPOUTS"
%CONSTINTEGER ISUB=x'5B',IADD=x'5a',LGR=x'58',AND=x'54',ICP=x'59'; ! variant mnemonics
%INCLUDE "ercs20:ib11.specs"
%EXTERNALROUTINE ICL9CEZALGOL
%INTEGER I,J,K
! PRODUCED BY OLDPS FROM S4ALGPS ON 29/08/85
%CONSTBYTEINTEGERARRAY CLETT(0:252)=   1,
  44,   1,  43,   1,  45,   1,  40,   1,  41,   2, 201, 198,   4, 212,
 200, 197, 206,   4, 197, 204, 211, 197,   1,  94,   2,  42,  42,   1,
  42,   1,  47,   3, 196, 201, 214,   4, 212, 210, 213, 197,   5, 198,
 193, 204, 211, 197,   3, 193, 206, 196,   2, 207, 210,   4, 201, 205,
 208, 204,   5, 197, 209, 213, 201, 214,   3, 206, 207, 212,   7, 201,
 206, 212, 197, 199, 197, 210,   4, 210, 197, 193, 204,   7, 194, 207,
 207, 204, 197, 193, 206,   1,  59,   5, 214, 193, 204, 213, 197,   5,
 204, 193, 194, 197, 204,   6, 211, 215, 201, 212, 195, 200,   6, 211,
 212, 210, 201, 206, 199,   5, 193, 210, 210, 193, 217,   9, 208, 210,
 207, 195, 197, 196, 213, 210, 197,   2,  58,  40,   7, 195, 207, 205,
 205, 197, 206, 212,   1,  58,   2,  58,  61,   4, 211, 212, 197, 208,
   5, 213, 206, 212, 201, 204,   5, 215, 200, 201, 204, 197,   1,  61,
   2,  62,  61,   1,  62,   1,  35,   2,  60,  61,   1,  60,   2,  92,
  61,   3, 198, 207, 210,   2, 196, 207,   5, 194, 197, 199, 201, 206,

==== ercc07/lfullfort.txt ====
Source: ERCS08:F77REL.SRCE200_XCONTRL8         Compiled: 25/11/87   17.09.10
Object: .NULL

Parms set: NOCHECK,NOARRAY,XREF



              ERCC. Portable Imp80 Compiler Release 4 Version 14 Sep 87


  2047  4095
     1        !                                                         xcontrl8
     2        ! 28/09/87 - increase ares sizes if PARM MAXDICT set
     3        !            new version no. 2.16
     4        !                                                                xcontrl7b
     5        ! 23/09/87 - intialise inclevel in ICL9CEIBMF77
     6        ! 28/07/87 - new version no. 2.15
     7        !                                                    xcontrl7a
     8        ! 02/07/87 - new version no. 2.12
     9        !                                                             xcontrld7
    10        ! 30/06/87 - in Icl9ceibmf77, set OPT1 bit in OPT1, if Parm opt2; set OPT bit in

==== ercc07/maketrp_p1.txt ====
edit poneb02s,trnp102s
i<itrimp_transponeas>
ta/%inc/
d1i<itrimp_hostcodes>
a'
d1i<itrimp_tform2s>
m/%constlonglongreal/
e
imp trnp102s,trnp1y
permit trnp102s
transfer trnp102s,epcfta(pds,peathag)trnp102.i,file

==== ercc07/maketrp_p2.txt ====
edit timp06s,trnp206s
i<itrimp_transptwoas>
ta/%inc/
d1i<itrimp_hostcodes>
a'
d1i<tripcnsts>
a'
d1i<itrimp_tform2s>
ta/host=/i/m88k
/d1
e
imp trnp206s,y
permit trnp206s

transfer trnp206s,epcfta(pds,peathag)trnp206.i,file

==== ercc07/maketrp_p3.txt ====
edit opt04s,trnp305s
i<itrimp_transoptas>
ta/%inc/
d1i<itrimp_hostcodes>
a'
d1i<itrimp_tform2s>
a'
d1i<tripcnsts>
e
imp trnp305s,.null
permit trnp305s
transfer trnp305s,epcfta(pds,peathag)trnp305.i,file

==== ercc07/m88klink.txt ====
LINK
ERCC07:m88p1Y
ERCC07:m88p25Y
ERCC07:m88kOPT3Y
ERCC07:m88kp404Y
ERCC07:CSERV01x
ercs01:EBITS_etrput3y
.END
P0Y
MODIFY P0Y
SATISFY REFS
.ALL
SATISFY DATA
.ALL
SUPPRESS
.ALL
RETAIN
eGENERATEOBJECT,ICL9CEZm88kIMP
SUPPRESS DATA
.ALL
CLOSE

==== ercc07/vaxgen1s.txt ====
!
! 30/12/87   -  Fix problem with refer in ECMPLX2 case of EF77OP       weop6
!
! First Release 1.0 Fix Ecmplx for movq 8 bytes.                       weop5
!               route eibits,eishiftc to spcall
! Field Trial 5 add refer to EICHAR       17/june/87                   weop4
!               add Freeregs to ARGPRPOCCALL
!               Correct Ecmplx2, eswitch
! Field Trial 3   Drop R6 from list of available regs . set to regvar
!* 25/apr/87 - Add Estkreg. And dedicate R6 to be Breg for optimiser   weop3

!%ownstring(31) Versiontext="Fortran77 Compiler Version 0.1"
%constinteger IMP = 1
%constinteger FORTRAN  =  2
%constinteger CCOMP    = 11
%constinteger PASCAL   = 14
%include "itrimp_hostcodes"
%constinteger host=emas
%constinteger target=vax
%RECORDFORMAT PARMF(%INTEGER BITS1,BITS2,TTOPUT,
      %BYTEINTEGER LET,DYNAMIC,LINE,TRACE,ARR,DBUG,CHK,DIAG,OPT,FREE,

==== ercc07/maketrp_p4.txt ====
parm nocheck
edit transp401s,trnp401s
a/%incl/d1i<itrimp_hostcodes>
a'd1i<ercs01:ebits_ecodes28>
a'd1i<tripcnsts>
a'd1i<itrimp_tform2s>
ta/host=/r6i/M88K/
e
imp trnp401s,.null
permit trnp401s
transfer trnp401s,epcfta(pds,peathag)trnp401.i,file

==== ercc07/makevax_detach.txt ====
detach makevax_p1,30
detach makevax_P2,30
detach makevax_opt,30
detach makevax_p4,30
detach makevax_bgen,30
detach makevax_cserv,30
detach makevax_Put,30

==== ercc07/makevns_gen.txt ====
offer vgens
parm nocheck
edit vnsgen00s,vgens
a/%incl/d1i<itrimp_hostcodes>
a'd1i<ercs01:ebits_ecodes8>
a'd1i<tripcnsts>
a'd1i<itrimp_tform2s>
a'd1i<ercs01:ebits_especs2>
t(r/%short/i/%half/p1)*
t(m/%else
/r5i/%FINISH  %ELSE %START/p1)*
e
imp vgens,.null
offer vgens,eepz06

==== ercc07/vaxp41s.txt ====
!
! Warning this module has the revised triples spec.
!
! In first attempt at Triple Imp considerable use was made of constant operands
! to pass information from Pass2 to GEN. Although for specialised operations like
! passing Labels this still applies, this adhocery has caused problems with arrays
! and pointers particularly in mapped records. The operands for four triples
! have thus been redefined in a more standard way.
!
! GETPTR    X1 is now (ptype of passed)<<16! DIMENSION
!           Opnd2 is either a 32 bit const with the size (ACC) as value or
!           the ptr or arrayhead as normal operand.
!
! VMY       X1 is now dim<<28!maxdim<<24!array name(where known)
!           Opnd2 is either a 32 bit const with DV offset into const area or
!           the arrayhead as a standard operand
!
! AINDX     X1 is ELSIZE<<20 !spare
!           Opnd2 is arrayhead as standard operand
!           NOTE:- The Operands have been swopped for consistency with norm.
!

==== ercc07/ibmconvert_sibmname.txt ====
%EXTERNALROUTINESPEC UCTRAN(%STRINGNAME STR)
!
!                                       IBM NAME
!
%CONSTSTRING(1) NULL="",HASH="#",AT="@",CODE="^"
%EXTERNALSTRING(8)%FN IBM NAME(%STRING(1) PREFIX,%STRING(31)%NAME NAME)
!           
!              RETURNS IBM VERSION OF NAME TRUNCATED IF NECESSARY WITH SUPPLIED
!              PREFIX.
 %INTEGER LNME,CH
 %STRING(31) NME
 NME = NAME
 UCTRAN(NME);! FORCE TO UPPER CASE
 LNME = LENGTH(NME)
 %IF LNME<8 %THEN NME = NME."        "
 %IF PREFIX=HASH %START
      {FIRST CHAR. ON LOWER CASE}
      CH = CHARNO(NME,1)
      %IF CH=' ' %THEN CH='#' %ELSE CH=CH+'a'-'A'
      NME = TOSTRING(CH).SUBSTRING(NME,2,8)
 %FINISH

==== ercc07/orngen00s.txt ====
!
! Warning this module has the revised triples spec.
!
! In first attempt at Triple Imp considerable use was made of constant operands
! to pass information from Pass2 to GEN. Although for specialised operations like
! passing Labels this still applies, this adhocery has caused problems with arrays
! and pointers particularly in mapped records. The operands for four triples
! have thus been redefined in a more standard way.
!
! GETPTR    X1 is now (ptype of passed)<<16! DIMENSION
!           Opnd2 is either a 32 bit const with the size (ACC) as value or
!           the ptr or arrayhead as normal operand.
!
! VMY       X1 is now dim<<28!maxdim<<24!array name(where known)
!           Opnd2 is either a 32 bit const with DV offset into const area or
!           the arrayhead as a standard operand
!
! AINDX     X1 is ELSIZE<<20 !spare
!           Opnd2 is arrayhead as standard operand
!           NOTE:- The Operands have been swopped for consistency with norm.
!

==== ercc07/edit35s.txt ====
%CONSTINTEGER EMAS=10,IBMXA=12
%CONSTINTEGER HOST=IBMXA
%CONSTSTRING(1) SNL = "
"
%RECORDFORMAT FRF(%INTEGER CONAD,FILETYPE,DATASTART,DATEND,SIZE,RUP,EEP,MODE,
   USERS,ARCH, %STRING(6) TRAN, %STRING(8) DATE,TIME, %INTEGER COUNT,SPARE1,
   SPARE2)
%RECORDFORMAT RF(%INTEGER CONAD,FILETYPE,DATASTART,DATAEND)
!
%IF HOST=IBMXA %START
%CONSTSTRING(1)USEP=":"
!
%EXTERNALROUTINESPEC CHANGEFILESIZE%ALIAS"S#CHANGEFILESIZE"( %c
  %STRINGname FILE, %INTEGERname NEWSIZE, FLAG)
%EXTERNALROUTINESPEC UCTRANSLATE %ALIAS "S#UCTRANSold"(%INTEGER ADDR,L)
%EXTERNALSTRING(255)%FNSPEC UCSTRING(%STRING(255)S)
%EXTERNALROUTINESPEC MOVE%ALIAS "S#MOVE"(%INTEGER LENGTH,FROM,TO)
%EXTERNALROUTINESPEC PROMPT(%STRING(15) S)
%EXTERNALSTRINGFNSPEC INTERRUPT
%EXTERNALROUTINESPEC TOJOURNAL %ALIAS "S#TOJOURNAL"(%INTEGER FROM,LEN)
%EXTERNALROUTINESPEC FINFO %ALIAS "S#FINFO"(%STRING(255) FILE, %INTEGER MODE,

==== ercc07/ibmoptlink.txt ====
LINK ,map
IP1oX
IP22oX
IOPT3oX
IGEN3oX
CSERV01oX
.END
P0Y
MODIFY P0Y
SATISFY REFS
.ALL
SATISFY DATA
.ALL
SUPPRESS
.ALL
RETAIN
ICL9CEZIBMIMP
SUPPRESS DATA
.ALL
CLOSE
NEWGEN P0Y,IBMoX

==== ercc07/ifast10s.txt ====
%INCLUDE "ercc07:ibmsup_comf370"
%INCLUDE "ercc07:ibmsup_page0f"
%INCLUDE "ercc07:ibmsup_dtform1s"
%INCLUDE "ercc07:ibmsup_xaioform"
%RECORDFORMAT PARMF(%INTEGER DEST,SRCE,(%INTEGER P1,P2,P3,P4,P5,P6 %ORSTRING (23) TEXT))
%CONSTINTEGER PCELLSIZE=36,MARGIN=48
%RECORDFORMAT PDOPEF(%INTEGER CURRMAX,MAXMAX,FIRST UNALLOC,LAST UNALLOC,NEXTPAGE,S1,S2,S3,S4)
%RECORDFORMAT PARMXF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6,LINK)
%CONSTRECORD (PARMXF) %ARRAYNAME PARM=PARM0AD
%CONSTRECORD (PDOPEF) %NAME PARMDOPE=PARM0AD
%RECORDFORMAT STOREF(%SHORTINTEGER FLAGS,USERS,LINK,BLINK,FLINK)
%CONSTRECORD (STOREF) %ARRAYNAME STORE=STORE0AD
!
%EXTERNALLONGINTEGER SEMATIME=0
%OWNINTEGER PARMASL=0
%EXTERNALINTEGER MAINQSEMA=-1
%EXTERNALINTEGERSPEC STORESEMA
%OWNINTEGERARRAY GET NEW PAGE(0:14);    ! parms for call of new epage
!
%CONSTINTEGER LOCSN1=LOCSN0+MAXPROCS
%OWNINTEGER APONSTAT1=0,APONSTAT2=0; !APON STATISTICS..SH

==== ercc07/vaxlink.txt ====
LINK
----
ERCC07:vP12Y
ERCC07:vP23Y
ERCC07:vOPT3Y
ERCC07:vp41Y
ERCC07:CSERV01y
ercc07:vBootgen1y
ercc07:vaxput3y
.END
P0Y
++++
MODIFY P0Y
----
SATISFY REFS
.ALL
SATISFY DATA
.ALL
SUPPRESS
.ALL
RETAIN

==== ercc07/makeusys_p1.txt ====
edit poneb01s,Up1s
i<itrimp_usysponeas>
ta/%inc/
d1i<itrimp_hostcodes>
a'
d1i<itrimp_tform2s>
m/%constlonglongreal/
(a/r'/a16d/'/i/'/)154
e
imp Up1s,.null
offer Up1s,ZEPZ01

==== ercc07/makeusys_p2.txt ====
edit timp02s,Up2s
i<itrimp_USYSptwoas>
ta/%inc/
d1i<itrimp_hostcodes>
a'
d1i<tripcnsts>
a'
d1i<itrimp_tform2s>
e
imp Up2s,.null
offer Up2s,zepz01

==== ercc07/trimp_drsptwoas.txt ====
%EXTERNALROUTINE ICL9CEZDRSIMP
%CONSTINTEGER RELEASE=4
%INCLUDE "ERCC07.TRIMP_HOSTCODES"
%CONSTINTEGER HOST=EMAS
%CONSTINTEGER TARGET=DRS
%CONSTINTEGER STANDARDPT=X'41'
%CONSTINTEGER MINAPT=X'41';             ! MINIMUM PTYPE FOR WHICH ARITHMETIC
                                        ! OPERATORS ARE AVAILABLE
%CONSTINTEGER MINAPREC=MINAPT>>4
%CONSTHALFINTEGERARRAY TYPEFLAG(0:12)=0,
                                        X'51'{%INTEGER},
                                        X'52'{%REAL},
                                        X'8009'{%LONG SOMETHING},
                                        X'4031'{%BYTE},
                                        X'35'{%STRING},
                                        X'4041'{%HALF},
                                        X'6051'{%SHORT->%INTEGER+WARNING},
                                        X'33'{%RECORD},
                                        0,
                                        X'1051'{%LONG INTEGER FAULT},
                                        X'62'{%LONG REAL},

==== ercc07/ebits_enames13.txt ====
!***********************************************************************
!*                                                                     *
!* ebits_enames13                                      24/12/86        *
!*                                                                     *
!***********************************************************************
!*
%conststring(9)%array Eopname(0:255) = %c
{00} "HALT","IADD","ISUB","IMULT",  "IDIV" ,"INEG" ,"IABS" ,"IREM" ,
{08} "IAND","IOR" ,"INOT","IXOR" ,  "ISHLL","ISHRL","ISHLA","ISHRA",
{10} "IGT" ,"ILT" ,"IEQ" ,"INE"  ,  "IGE"  ,"ILE"  ,"BNOT" ,""     ,
{18} "JIGT","JILT","JIEQ","JINE" ,  "JIGE" ,"JILE" ,"JINTGZ","JINTLZ",
{20} "JINTZ","JINTNZ","JINTGEZ","JINTLEZ",  "ITWB" ,"","JUMP","",
{28} ""       ,"SFA"  ,"RETURN" ,"ASF" , "IPUSH" ,"IPOP"  ,"EXCH"  ,"DUPL",
{30} "DISCARD",""     ,""     ,"INDEX1", "INDEX2","INDEX4","INDEX8","INDEX",
{38} "MVB"    ,"CHK"  ,"TMASK" ,"MVW"  , "EZERO" ,""      ,"CPBGT" ,"CPBLT",
{40} "CPBEQ"  ,"CPBNE","CPBGE","CPBLE" , "","","","", 
{48} "","","","", "","","","",
{50} "UADD","USUB","UGT","ULT", "UEQ","UNE","UGE","ULE",
{58} "JUGT","JULT","JUEQ","JUNE", "JUGE","JULE","JUGTZ","JULTZ",
{60} "JUEQZ","JUNEZ","JUGEZ","JULEZ", "UCVTII","IADDST","ISUBST","IMULTST",
{68} "IDIVST","INEGST","","", "IANDST","IORST","INOTST","IXORST",

==== ercc07/ibmsup_page0.txt ====

!
! The first 512 bytes of page 0 are hardware defined. (See Princs of Op)
! EMAS defines some addition locations for convenience
!
!     X200 (512)                        Soft crash psw Set by G-C.
!     X208 (520)                        System Program error psw.
!                                       Set by G-C as the New PE psw and
!                                       copied to here by L-C when its sets
!                                       the User PE psw to 104.
!     X210 (528)                        The local cpu timer PSW. Set
!                                       by L-C and used by G-C when clock interrupt
!                                       is due to cpu timer exceeded.
!     X218 (536)                        Local controller initial activate
!                                       PSW. Set by G-C
!     X220 (544)                        Local Contoller exit PSW. Set by G-C
!                                       for fast return.
!     X228 (552)                        (Copy of) Restart PSW set ny ENTER
!     X230 (560)                        Top of store marker for dump program
!     X238-X27f (568-639)               unused
!     X280-X2bf (640-703)               G-C context(16 regs) actaully only

==== ercc07/ebits_enames19.txt ====
!***********************************************************************
!*                                                                     *
!* ebits_enames18                                      14/04/87        *
!*                                                                     *
!***********************************************************************
!*
%conststring(9)%array Eopname(0:255) = %c
{00} "HALT","IADD","ISUB","IMULT",  "IDIV" ,"INEG" ,"IABS" ,"IREM" ,
{08} "IAND","IOR" ,"INOT","IXOR" ,  "ISHLL","ISHRL","ISHLA","ISHRA",
{10} "IGT" ,"ILT" ,"IEQ" ,"INE"  ,  "IGE"  ,"ILE"  ,"BNOT" ,""     ,
{18} "JIGT","JILT","JIEQ","JINE" ,  "JIGE" ,"JILE" ,"JINTGZ","JINTLZ",
{20} "JINTZ","JINTNZ","JINTGEZ","JINTLEZ",  "ITWB" ,"","JUMP","",
{28} ""       ,"SFA"  ,"RETURN" ,"ASF" , "IPUSH" ,"IPOP"  ,"EXCH"  ,"DUPL",
{30} "DISCARD",""     ,""     ,"INDEX1", "INDEX2","INDEX4","INDEX8","INDEX",
{38} "MVB"    ,"CHK"  ,"TMASK" ,"MVW"  , "EZERO" ,""      ,"CPBGT" ,"CPBLT",
{40} "CPBEQ"  ,"CPBNE","CPBGE","CPBLE" , "EMAKED","ESPLITD","","", 
{48} "","","","", "","","UREM","UDIV",
{50} "UADD","USUB","UGT","ULT", "UEQ","UNE","UGE","ULE",
{58} "JUGT","JULT","JUEQ","JUNE", "JUGE","JULE","JUGTZ","JULTZ",
{60} "JUEQZ","JUNEZ","JUGEZ","JULEZ", "UCVTII","IADDST","ISUBST","IMULTST",
{68} "IDIVST","INEGST","UREMST","UDIVST","IANDST","IORST","INOTST","IXORST",

==== ercc07/ebits_enames21.txt ====
!***********************************************************************
!*                                                                     *
!* ebits_enames21                                      18/09/87        *
!*                                                                     *
!***********************************************************************
!*
%conststring(9)%array Eopname(0:255) = %c
{00} "HALT","IADD","ISUB","IMULT",  "IDIV" ,"INEG" ,"IABS" ,"IREM" ,
{08} "IAND","IOR" ,"INOT","IXOR" ,  "ISHLL","ISHRL","ISHLA","ISHRA",
{10} "IGT" ,"ILT" ,"IEQ" ,"INE"  ,  "IGE"  ,"ILE"  ,"BNOT" ,""     ,
{18} "JIGT","JILT","JIEQ","JINE" ,  "JIGE" ,"JILE" ,"JINTGZ","JINTLZ",
{20} "JINTZ","JINTNZ","JINTGEZ","JINTLEZ",  "ITWB" ,"","JUMP","",
{28} ""       ,"SFA"  ,"RETURN" ,"ASF" , "IPUSH" ,"IPOP"  ,"EXCH"  ,"DUPL",
{30} "DISCARD",""     ,""     ,"INDEX1", "INDEX2","INDEX4","INDEX8","INDEX",
{38} "MVB"    ,"CHK"  ,"TMASK" ,"MVW"  , "EZERO" ,""      ,"CPBGT" ,"CPBLT",
{40} "CPBEQ"  ,"CPBNE","CPBGE","CPBLE" , "EMAKED","ESPLITD","","", 
{48} "","","","", "","","UREM","UDIV",
{50} "UADD","USUB","UGT","ULT", "UEQ","UNE","UGE","ULE",
{58} "JUGT","JULT","JUEQ","JUNE", "JUGE","JULE","JUGTZ","JULTZ",
{60} "JUEQZ","JUNEZ","JUGEZ","JULEZ", "UCVTII","IADDST","ISUBST","IMULTST",
{68} "IDIVST","INEGST","UREMST","UDIVST","IANDST","IORST","INOTST","IXORST",

==== ercc07/trimp_accoptas.txt ====
%INCLUDE "ERCC07.TRIMP_HOSTCODES"
%CONSTINTEGER HOST=EMAS
%CONSTINTEGER TARGET=ACCENT

==== ercc07/vaxcom_login.txt ====
$ define/job  sys_defaultlp  "LP23"
$ define/job  sys_delivery  "EUCS, KB"
$ define/job sys_username   "Peter Stephens"
$ time :== show time
$ files :== dir/size
$ objanal :== analyse/obj
$ clink :== @clink
$ irun :== @irun
$ clinkd :== @clinkd
$ implink :== @NEW_ilink
$ implinkd :== @ilinkd
$ set term/vt100/insert
$ imp80 :== "$U1:[ERCC07]IMP80.EXE IMP80"
$ purge *.*

==== ercc07/ebits_enames28.txt ====
! Copyright (c) 1987 Edinburgh Portable Compilers Ltd. All Rights Reserved.
!***********************************************************************
!*                                                                     *
!* ebits_enames28                                      09/2/88         *
!*                                                                     *
!***********************************************************************
!*
%conststring(9)%array Eopname(0:255) = %c
{00} "HALT","IADD","ISUB","IMULT",  "IDIV" ,"INEG" ,"IABS" ,"IREM" ,
{08} "IAND","IOR" ,"INOT","IXOR" ,  "ISHLL","ISHRL","ISHLA","ISHRA",
{10} "IGT" ,"ILT" ,"IEQ" ,"INE"  ,  "IGE"  ,"ILE"  ,"BNOT" ,""     ,
{18} "JIGT","JILT","JIEQ","JINE" ,  "JIGE" ,"JILE" ,"JINTGZ","JINTLZ",
{20} "JINTZ","JINTNZ","JINTGEZ","JINTLEZ",  "ITWB" ,"","JUMP","",
{28} ""       ,"SFA"  ,"RETURN" ,"ASF" , "IPUSH" ,"IPOP"  ,"EXCH"  ,"DUPL",
{30} "DISCARD",""     ,""     ,"INDEX1", "INDEX2","INDEX4","INDEX8","INDEX",
{38} "MVB"    ,"CHK"  ,"TMASK" ,"MVW"  , "EZERO" ,""      ,"CPBGT" ,"CPBLT",
{40} "CPBEQ"  ,"CPBNE","CPBGE","CPBLE" , "EMAKED","ESPLITD","","", 
{48} "","","","", "","UMULT","UREM","UDIV",
{50} "UADD","USUB","UGT","ULT", "UEQ","UNE","UGE","ULE",
{58} "JUGT","JULT","JUEQ","JUNE", "JUGE","JULE","JUGTZ","JULTZ",
{60} "JUEQZ","JUNEZ","JUGEZ","JULEZ", "UCVTII","IADDST","ISUBST","IMULTST",

==== ercc07/arout1s.txt ====
!***********************************************************************
!*    NOTE WELL                                                        *
!*    AFTER COMPILING THIS FILE THE FOLLOWING ALIASES MUST BE ADDED    *
!*    S#PRINT1900=ICL9CEPRINT1900 & S#READ1900=ICL9CEREAD1900          *
!***********************************************************************
!* MODIFIED 28.4.80 TO ALLOW FOR EBCDIC STRINGS
!* MODIFIED 10.3.80 TO REMOVE SQ AND DA
!* MODIFIED 6.3.80 BY LCG WITH PDS'S  READ1900 AND WRITETEXT ROUTINES
!* MODIFIED 16/04/79 LENGTH CHANGED
!* MODIFIED 17/01/79 NEW VERSION OF WRITETEXT
!* MODIFIED 20/02/78  ERROR MESSAGE VALUES
!* MODIFIED  8/11/77 READ1900 IGNORES MULTIPLE SP & NL AFTER EXP CHAR
!* MODIFIED 13/01/77 SET MARGINS
!* MODIFIED 03/12/76  NEW VERSIONS OF READ1900,WRITETEXT
!******** MODIFIED 02:07:76 15.15  LCG    (ALGLRTS,MATHFNS CONCATONATED
!                                         ,COMPLEX ROUTINES
!                                         & DUPLICATES FOR FORTRAN)
%EXTERNALINTEGERFUNCTIONSPEC IOCP %ALIAS "S#IOCP"(%INTEGER EP,PARM)
%EXTERNALINTEGERMAPSPEC COMREG %ALIAS "S#COMREGMAP"(%INTEGER N)
%CONSTBYTEINTEGERARRAY ITOETAB(0:255)= %C
            X'00',X'01',X'02',X'03',   X'37',X'2D',X'2E',X'2F',

==== ercc07/tlinkv7opt.txt ====
parm map
link ,separeas
ercc07:isupv710yo
ercc07:ifastv75yo
ercc07:idevv711yo
ercc07:ioperv73y
ercc07:icomv75y
ercc08:iprintv72y
ercc15:itape.Y5
ercc27:icomms.y8opt
ercc08:ienterv72y
ercc07:indiagv72y
.end
isupz
isupfix isupz,isupt,isupl
disconnect isupt
parm nocheck

==== ercc07/edit38s.txt ====
%constinteger diagprint=0
%CONSTSTRING (1) SNL= "
"
%RECORDFORMAT FRF(%INTEGER CONAD,FILETYPE,DATASTART,DATEND,SIZE,RUP,EEP,MODE,USERS,ARCH,
   %STRING (6) TRAN, %STRING (8) DATE,TIME, %INTEGER COUNT,SPARE1,SPARE2)
%RECORDFORMAT RF(%INTEGER CONAD,FILETYPE,DATASTART,DATAEND)
!
%CONSTSTRING (1) USEP=":"
!
%EXTERNALROUTINESPEC EMAS3(%STRINGNAME COM,PARM, %INTEGERNAME FLAG)
%EXTERNALROUTINESPEC EMAS3 STRING(%STRINGNAME QUALIFIER,VALUE)
%EXTERNALROUTINESPEC EMAS3 CHANGEFILESIZE(%STRINGNAME FILE, %INTEGERNAME NEWSIZE,FLAG)
%EXTERNALROUTINESPEC UCTRANSLATE %ALIAS "s#uctranslate"(%INTEGER ADDR,L)
%EXTERNALROUTINESPEC MOVE %ALIAS "s#move"(%INTEGER LENGTH,FROM,TO)
%EXTERNALROUTINESPEC PROMPT %ALIAS "s#prompt"(%STRING (255) S)
%EXTERNALSTRINGFNSPEC INTERRUPT %ALIAS "s#interrupt"
%EXTERNALROUTINESPEC TOJOURNAL %ALIAS "S#TOJOURNAL"(%INTEGER FROM,LEN)
%EXTERNALROUTINESPEC FINFO %ALIAS "S#FINFO"(%STRING (255) FILE, %INTEGER MODE,
   %RECORD (FRF) %NAME R, %INTEGERNAME FLAG)
%EXTERNALROUTINESPEC EMAS3TRAP(%INTEGERNAME ID,PROT,FLAG)
%EXTERNALROUTINESPEC EMAS3 GIVE EVENT(%INTEGERNAME CLASS,SUBCLASS)

==== ercc07/catinits.txt ====
C%%%CATINIT.FOR
C-- CATINIT  -- EDINBURGH VERSION --   17FEB87
C--
C-- VAX  files are set up by this program with names coded here
C--   data file     CATDATA
C--   author indx   CATINDA
C--   title  indx   CATINDT
C--   subject indx  CATINDS
C--   recordno indx CATINDN
C--   control file  CATCONT
C--
C--
C--
C-- The on-line catalogue requires a data-record file, and 4 index
C-- files. These are contiguous files, with record length 256 bytes
C-- ( 1 sector on Perkin-Elmer systems).
C--
C--  Logical units:
C--  2    Data record file
C--  5    terminal input
C--  6    terminal output

==== ercc07/obeypv.txt ====
parm strict
pascal ercs20:pvaltests1_pv 1 ,py,l0
run py
pascal ercs20:pvaltests1_pv 2 ,py,l0
run py
pascal ercs20:pvaltests1_pv 3 ,py,l0
run py
pascal ercs20:pvaltests1_pv 4 ,py,l0
run py
pascal ercs20:pvaltests1_pv 5 ,py,l0
run py
pascal ercs20:pvaltests1_pv 6 ,py,l0
run py
pascal ercs20:pvaltests1_pv 7 ,py,l0
run py
pascal ercs20:pvaltests1_pv 8 ,py,l0
run py
pascal ercs20:pvaltests1_pv 9 ,py,l0
run py
pascal ercs20:pvaltests1_pv 10 ,py,l0
run py

==== ercc07/trimp_hostcodes.txt ====

%CONSTINTEGER YES=1,NO=0
            
!
! THESE CODE ARE ARBITARY BUT THE TOP DECIMAL DIGIT GIVES THE NO OF BYTES
! IN THE UNIT OF ADDRESSABILITY. BYTE ADDRESSED HOSTS BEING 1N AND
! 16 BIT WORD ADDRESSED HOSTS BEING 2N ETC
%CONSTINTEGER EMAS=10;                  ! emas on 2900 (unsigned shorts)
%CONSTINTEGER IBM=11;                   ! emas on 24 bit ibm hardware
%CONSTINTEGER IBMXA=12;                 ! emas of XA 31 bit hardware
%CONSTINTEGER WWC=13;                   ! WWc (Natsemi chip) completely swopped
%CONSTINTEGER DRS=13;                   ! former name for WWC till ICL switched chips
%CONSTINTEGER AMDAHL=14;                ! Emas on Amdahls guess at Xa Minor differences fron IBM)
%CONSTINTEGER PERQ3=15;                 ! ICL packaged 68k chip Unix stack but not swopped
%CONSTINTEGER GOULD=16;                 ! Gould unswopped forward stack. Needs 4&8 byte alined
%CONSTINTEGER PERQ=20;                  ! Pos perq now obselete. Fully swopped forward stack
%CONSTINTEGER PNX=21;                   ! ICL's perq2 Unix stack byte swopped (unsigned shorts)
%CONSTINTEGER ACCENT=22;                ! Perq 1 under accent. obsolete now
                                        ! ACCENT DIFFERS FROM PERQ ONLY IN
                                        ! ASSEMBLES SEQUENCES&SYNTAX
                                        ! AND GENERATOR

==== ercc07/edit39s.txt ====
%CONSTINTEGER DIAGPRINT=0
%CONSTSTRING (1) SNL= "
"
%RECORDFORMAT FRF(%INTEGER CONAD,FILETYPE,DATASTART,DATEND,SIZE,RUP,EEP,MODE,USERS,ARCH,
   %STRING (6) TRAN, %STRING (8) DATE,TIME, %INTEGER COUNT,SPARE1,SPARE2)
%RECORDFORMAT RF(%INTEGER CONAD,FILETYPE,DATASTART,DATAEND)
!
%CONSTSTRING (1) USEP=":"
!
%EXTERNALROUTINESPEC EMAS3(%STRINGNAME COM,PARM, %INTEGERNAME FLAG)
%EXTERNALROUTINESPEC EMAS3 STRING(%STRINGNAME QUALIFIER,VALUE)
%EXTERNALROUTINESPEC EMAS3 CHANGEFILESIZE(%STRINGNAME FILE, %INTEGERNAME NEWSIZE,FLAG)
%EXTERNALROUTINESPEC UCTRANSLATE %ALIAS "s#uctranslate"(%INTEGER ADDR,L)
%EXTERNALROUTINESPEC MOVE %ALIAS "s#move"(%INTEGER LENGTH,FROM,TO)
%EXTERNALROUTINESPEC PROMPT %ALIAS "s#prompt"(%STRING (255) S)
%EXTERNALSTRINGFNSPEC INTERRUPT %ALIAS "s#interrupt"
%EXTERNALROUTINESPEC TOJOURNAL %ALIAS "S#TOJOURNAL"(%INTEGER FROM,LEN)
%EXTERNALROUTINESPEC FINFO %ALIAS "S#FINFO"(%STRING (255) FILE, %INTEGER MODE,
   %RECORD (FRF) %NAME R, %INTEGERNAME FLAG)
%EXTERNALROUTINESPEC EMAS3TRAP(%INTEGERNAME ID,PROT,FLAG)
%EXTERNALROUTINESPEC EMAS3 GIVE EVENT(%INTEGERNAME CLASS,SUBCLASS)

==== ercc07/pbug.txt ====
program bug(output,f);
var f:text;
    i :integer;
begin
   rewrite(f,'XX');
   writeln(output, 'XX opened');
   for i := 1 to 5 do writeln(f, i);
   close(f);
   writeln(output, 'XX closed');
   append(f,'XX');
   writeln(output, 'XX opened (append)');
   for i := 6 to 10 do writeln(f, i);
   close(f);
   writeln(output, 'XX closed');
   reset(f, 'XX');
   writeln(output, 'XX opened (read) - contents are');
   while not eof(f) do begin
      readln(f,i);
      writeln(output, i)
   end
end.

==== ercc07/ibmconvert_sgenobj.txt ====
%RECORDFORMAT ESD DICTF( %C
 %RECORD(ESD DICTF)%NAME  NEXT,        {POINTS TO NEXT DICT. ENTRY}
 %STRING(31)%NAME NAME,                 {POINTS TO FULL NAME IN INPUT FILE}
 %STRING(8) IBMNAME,                    {HOLDS IBM NAME}
 %INTEGER   OFFSET,                     {WITHIN COALESCED AREA OR AREA 6}
            ESDOFFSET,                  {WITHIN GENERATED SD}
            LNTH,                       {LENGTH OF ASSOC. OBJECT}
            TXT,                        {ADDRESS OF FIRST TXT RECORD OF SD}
            ESDID,                      {GIVES ID OF CSECT FOR LD}
                                        {OR ESD ID FOR SD OR ER OR CM}
                                        {FOR PROC ER }
                                        {+0 IS ENTRY PT}
                                        {+1 IS HEAD CODE}
                                        {+2 IS HEAD GLA}
 %BYTE      ESDTYPE,                    {ESD ENTRY TYPE}
            OWNTYPE,                    {OWN TYPE PROC/DATA/COMMON}
            MAIN)                       {#0 => MAIN ENTRY PT}
%CONSTBYTEINTEGER SD=0,LD=1,ER=2,CM=5;
%CONSTBYTEINTEGER PROC=0,DATA=1,COMMON=2;
%CONSTSTRING(1) NULL="",HASH="#",AT="@",CODE="^"
!

==== ercc07/ltotals.txt ====
#scom 26,0
link ,map
ercc07:totaly
ERCC07:PDRIVER17Y
.end
ercc07:p0y
MODIFY P0Y,p00y
SATISFY REFS
.ALL
SATISFY DATA
.ALL
SUPPRESS
.ALL
RETAIN
emaszpascal
SUPPRESS DATA
.ALL
redirect
ptraceon, S#PTRACEON
ptraceoff,S#PTRACEOFF
.end

==== ercc07/ibmsup_configv7.txt ====
!
!     Amdahl 470/V7 configuration
!
%constinteger cf entry size=32
%constinteger cfentries=47
%constintegerarray config file(0:cfentries*(cf entry size//4)-1)= %c
      cfentries*cf entry size,1,32,14,x'863',1,5000,1,
      4,m'FD80',x'280',x'380',3,0,0,0,
      4,m'FD81',x'381',x'281',3,0,0,0,
      4,m'FD82',x'282',x'382',3,0,0,0,
      4,m'FD83',x'383',x'283',3,0,0,0,
      4,m'FD84',x'284',x'384',3,0,0,0,
      4,m'FD85',x'385',x'285',3,0,0,0,
      4,m'FD86',x'286',x'386',3,0,0,0,
      4,m'FD87',x'387',x'287',3,0,0,0,
      4,m'FD88',x'288',x'388',3,0,0,0,
      4,m'FD89',x'389',x'289',3,0,0,0,
      4,m'FD8A',x'28A',x'38A',3,0,0,0,
      4,m'FD8B',x'38B',x'28B',3,0,0,0,
      4,m'FD8C',x'28C',x'38C',3,0,0,0,
      4,m'FD8D',x'38D',x'28D',3,0,0,0,

==== ercc07/edit40s.txt ====
%CONST %INTEGER DIAGPRINT=0
%CONST %STRING (1) SNL= "
"
%RECORD %FORMAT FRF(%INTEGER CONAD,FILETYPE,DATASTART,DATEND,SIZE,RUP,EEP,MODE,USERS,ARCH, %STRING (6) TRAN,
   %STRING (8) DATE,TIME, %INTEGER COUNT,SPARE1,SPARE2)
%RECORD %FORMAT RF(%INTEGER CONAD,FILETYPE,DATASTART,DATAEND)
!
%CONST %STRING (1) USEP=":"
!
%EXTERNAL %INTEGER %FN %SPEC EXIST %ALIAS "S#EXIST"(%STRING (255) PARAM)
%EXTERNAL %ROUTINE %SPEC EMAS3(%STRING %NAME COM,PARM, %INTEGER %NAME FLAG)
%EXTERNAL %ROUTINE %SPEC GET STRING %ALIAS "S#GETSTRING"(%STRING (255) QUALIFIER, %STRING %NAME VALUE)
%EXTERNAL %ROUTINE %SPEC CHANGEFILESIZE %ALIAS "S#CHANGEFILESIZE"(%STRING (255) FILE, %INTEGER NEWSIZE,
   %INTEGER %NAME FLAG)
%EXTERNAL %INTEGER %FN %SPEC CHECKNAME %ALIAS "S#CHECKNAME"(%STRING %NAME FILE, %INTEGER %NAME TYPE,QUAL)
%EXTERNAL %ROUTINE %SPEC UCTRANSLATE %ALIAS "s#uctranslate"(%INTEGER ADDR,L)
%EXTERNAL %ROUTINE %SPEC MOVE %ALIAS "s#move"(%INTEGER LENGTH,FROM,TO)
%EXTERNAL %ROUTINE %SPEC PROMPT %ALIAS "s#prompt"(%STRING (255) S)
%EXTERNAL %STRING %FN %SPEC INTERRUPT %ALIAS "s#interrupt"
%EXTERNAL %ROUTINE %SPEC TOJOURNAL %ALIAS "S#TOJOURNAL"(%INTEGER FROM,LEN)
%EXTERNAL %ROUTINE %SPEC FINFO %ALIAS "S#FINFO"(%STRING (255) FILE, %INTEGER MODE, %RECORD (FRF) %NAME R,

==== ercc07/xgen23as.txt ====
!* modified 16/07/86
!*
%ownstring(31) Versiontext="Fortran77 Compiler Version 0.1"
%owninteger Report=0
%owninteger Decode
%owninteger Language
!*
%constinteger IMP      =  1
%constinteger FORTRAN  =  2
%constinteger CCOMP    = 11
%constinteger PASCAL   = 14
%constinteger bootlang=16
!*
!***********************************************************************
!* Exports                                                             *
!***********************************************************************
!*
%routinespec Einitialise(%integer Lang, Avertext, Astackca,
                                                    Aglaca, Options)
%routinespec Eterminate(%integer adareasizes)
%routinespec Ecommon(%integer area, %stringname Name)

==== ercc07/gbits_gldndiag11s.txt ====
! Copyright (c) 1987 Edinburgh Portable Compilers Ltd. All Rights Reserved.
%OWN %STRING (90) copyright= " Copyright (c) 1987 Edinburgh Portable Compilers Ltd. All Rights Reserved."
!
!*****************************************************************
!*                                                                     *
!*  Joint Imp and Fortran Diagnostics module for Gould PN6000.         *
!*                                                                     *
!***********************************************************************
!
! Version 11
! Uses assembler not frigs to find value of BR2 on entry
! Version 10
! This version created by PDS by merging AK's npndiag9 and AAs utxcndiag16
! THe code for Fortran and conditional compilation for UTX and MPX
! has been left alone but never tested. THe IMP diags work with PDS revisions
! to IMP of Dec88. Earlier versions of IMP store the GLa address in the exception
! handler word and these will not work with this NDIAG
!
!---Conditional Compilation Constants:
                                         !
                                         !

==== ercc07/makeorn_gen.txt ====
offer ogens
parm nocheck
edit orngen00s,ogens
a/%incl/d1i<itrimp_hostcodes>
a'd1i<ercs01:ebits_ecodes8>
a'd1i<tripcnsts>
a'd1i<itrimp_tform2s>
a'd1i<ercs01:ebits_especs2>
e
imp ogens,.null
offer ogens,ecsc64

==== ercc07/ibmsup_page0f.txt ====
!
%recordformat PAGE0F((%longinteger IPL PSW,IPL CCW1 %or  %c
                                 %longinteger RESTART NEW PSW,RESTART OLD PSW),
   %longinteger IPL CCW2,EXT OLD PSW,SVC OLD PSW,PE OLD PSW,MC OLD PSW,IO OLD PSW,
   (%longinteger CSW %or %integer CSW1,CSW2), %integer CAW,SP1,SP2,TTABLE DES,
   %longinteger EXT NEW PSW,SVC NEW PSW,PE NEW PSW,MC NEW PSW,IO NEW PSW,
   %integer EXT PARM, %shortinteger EXT CPU,EXT CODE,SVC ILC,SVC CODE,
   PE ILC,PE CODE, %integer TRANS EXC ADDR, %shortinteger MCLASS NO,PER CODE,
   %integer PER ADDR,MON CODE,SP3,MAPL ADDR,CHAN ID,IOEL ADDR,LCL,SP4,
   (%byteinteger BSP1,MBYTE, %shortinteger IO ADDR, %integer SP5 %or %integer XASIW,XAIOIP),
     %integerarray ISP1(1:6),
   %longinteger CPU TIMER,CLOCK COMP,MC CODE, %integer SP6,EXT DCODE,
   FSTORE ADDR,REG CODE, %longinteger PSW SAVE, %integer PREFIX SAVE,
   MODEL SAVE,LOGOUT { etc.....})
!
%constrecord (PAGE0F) %name PAGE0=PAGE0 VA
!
%endoffile

==== ercc07/ebits_enames.txt ====
!*
%conststring(9)%array Eopname(0:255) = %c
{00} "HALT","IADD","ISUB","IMULT",  "IDIV" ,"INEG" ,"IABS" ,"IREM" ,
{08} "IAND","IOR" ,"INOT","IXOR" ,  "ISHLL","ISHRL","ISHLA","ISHRA",
{10} "IGT" ,"ILT" ,"IEQ" ,"INE"  ,  "IGE"  ,"ILE"  ,""     ,""     ,
{18} "JIGT","JILT","JIEQ","JINE" ,  "JIGE" ,"JILE" ,"JINTGZ","JINTLZ",
{20} "JINTZ","JINTNZ","JINTGEZ","JINTLEZ",  "ITWB" ,"","JUMP","",
{28} ""       ,"SFA"  ,"RETURN" ,"ASF" , "IPUSH" ,"IPOP"  ,"EXCH"  ,"DUPL",
{30} "DISCARD",""     ,""     ,"INDEX1", "INDEX2","INDEX4","INDEX8","INDEX",
{38} "MVB"    ,"CHK"  ,"TMASK" ,""     , ""      ,""      ,"CPBGT" ,"CPBLT",
{40} "CPBEQ"  ,"CPBNE","CPBGE","CPBLE" , "","","","", 
{48} "","","","", "","","","",
{50} "","","","", "","","","",
{58} "","","","", "","","","",
{60} "","","","", "","","","",
{68} "","","","", "","","","",
{70} ""     ,"RADD" ,"RSUB" ,"RMULT","RDIV" ,"RNEG" ,"RABS",""   ,
{78} "","","","", "","","","",
{80} "","","","", "","","","",
{88} "CVTII","CVTIR","CVTRR","TNCRI", "RNDRI","","","",
{90} "RGT"  ,"RLT"  ,"REQ" ,"RNE"  ,"RGE"   ,"RLE" ,"JRGT","JRLT",

==== ercc07/trimp_poneb01s.txt ====
!
%CONST %BYTE %INTEGER %ARRAY I TO E TAB(0 : 127) =       %C
X'40',X'40',X'40',X'40',X'40',X'40',X'40',X'40',
X'40',X'40',X'15',X'40',X'0C',X'40',X'40',X'40',
X'40',X'40',X'40',X'40',X'40',X'40',X'40',X'40',
X'40',X'40',X'40',X'40',X'40',X'40',X'40',X'40',
X'40',X'4F',X'7F',X'7B',X'5B',X'6C',X'50',X'7D',
X'4D',X'5D',X'5C',X'4E',X'6B',X'60',X'4B',X'61',
X'F0',X'F1',X'F2',X'F3',X'F4',X'F5',X'F6',X'F7',
X'F8',X'F9',X'7A',X'5E',X'4C',X'7E',X'6E',X'6F',
X'7C',X'C1',X'C2',X'C3',X'C4',X'C5',X'C6',X'C7',
X'C8',X'C9',X'D1',X'D2',X'D3',X'D4',X'D5',X'D6',
X'D7',X'D8',X'D9',X'E2',X'E3',X'E4',X'E5',X'E6',
X'E7',X'E8',X'E9',X'4A',X'5F',X'5A',X'6A',X'6D',
X'7C',X'81',X'82',X'83',X'84',X'85',X'86',X'87',
X'88',X'89',X'91',X'92',X'93',X'94',X'95',X'96',
X'97',X'98',X'99',X'A2',X'A3',X'A4',X'A5',X'A6',
X'A7',X'A8',X'A9',X'C0',X'40',X'D0',X'40',X'40'
%CONSTBYTEINTEGERARRAY ONE CASE(0 : 127) =   %C
       0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,
      16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,

==== ercc07/poneb01s.txt ====
!
%CONST %BYTE %INTEGER %ARRAY I TO E TAB(0 : 127) =       %C
X'40',X'40',X'40',X'40',X'40',X'40',X'40',X'40',
X'40',X'40',X'15',X'40',X'0C',X'40',X'40',X'40',
X'40',X'40',X'40',X'40',X'40',X'40',X'40',X'40',
X'40',X'40',X'40',X'40',X'40',X'40',X'40',X'40',
X'40',X'4F',X'7F',X'7B',X'5B',X'6C',X'50',X'7D',
X'4D',X'5D',X'5C',X'4E',X'6B',X'60',X'4B',X'61',
X'F0',X'F1',X'F2',X'F3',X'F4',X'F5',X'F6',X'F7',
X'F8',X'F9',X'7A',X'5E',X'4C',X'7E',X'6E',X'6F',
X'7C',X'C1',X'C2',X'C3',X'C4',X'C5',X'C6',X'C7',
X'C8',X'C9',X'D1',X'D2',X'D3',X'D4',X'D5',X'D6',
X'D7',X'D8',X'D9',X'E2',X'E3',X'E4',X'E5',X'E6',
X'E7',X'E8',X'E9',X'4A',X'5F',X'5A',X'6A',X'6D',
X'7C',X'81',X'82',X'83',X'84',X'85',X'86',X'87',
X'88',X'89',X'91',X'92',X'93',X'94',X'95',X'96',
X'97',X'98',X'99',X'A2',X'A3',X'A4',X'A5',X'A6',
X'A7',X'A8',X'A9',X'C0',X'40',X'D0',X'40',X'40'
%CONSTBYTEINTEGERARRAY ONE CASE(0 : 255) =   %C
       0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,
      16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,

==== ercc07/vaxopcodes.txt ====

!
! This is a full list of vax opcodes but the some non relevant instructions
! are commented out. Primarily these are Priviledged D & H forms.
!
!p %constinteger HALT  =X'00'
%constinteger NOP   =X'01'
!p %constinteger REI   =X'02'
%constinteger BPT   =X'03'
%constinteger RET   =X'04'
%constinteger RSB   =X'05'
!p %constinteger LDPCTX=X'06'
!p %constinteger SVPCTX=X'07'
%constinteger CVTPS =X'08'
%constinteger CVTSP =X'09'
%constinteger VAXINDEX =X'0A';          ! INDEX is propername but clashes with Ecodes
%constinteger CRC   =X'0B'
!p %constinteger PROBER=X'0C'
%constinteger PROBEW=X'0D'
%constinteger INSQUE=X'0E'
%constinteger REMQUE=X'0F'

==== ercc07/edit41s.txt ====
%CONST %INTEGER DIAGPRINT=0
%CONST %STRING (1) SNL= "
"
%RECORD %FORMAT FRF(%INTEGER CONAD,FILETYPE,DATASTART,DATEND,SIZE,RUP,EEP,MODE,USERS,ARCH, %STRING (6) TRAN,
   %STRING (8) DATE,TIME, %INTEGER COUNT,SPARE1,SPARE2)
%RECORD %FORMAT RF(%INTEGER CONAD,FILETYPE,DATASTART,DATAEND)
!
%CONST %STRING (1) USEP=":"
!
   %externalroutinespec %c
setfname %alias "s#setfname" (%string(255)s)
   %externalroutinespec %c
connect %alias "s#connect" (%string(255)file, %integer mode, hole, prot,
   %integername conad, type, start, end, flag)
   %externalroutinespec %c
disconnect %alias "s#disconnect" (%string(255)file, %integername flag)
   %externalroutinespec %c
outfile %alias "s#outfile" (%string(255)file, %integer size, hole, prot,
   %integername  conad, flag)
   %externalroutinespec %c
destroy %alias "s#destroy" (%string(255)file, %integername flag)

==== ercc07/vaxcom_testimp.txt ====

$ run imp80
  imp80 rt30
$ implink rt30
$ run rt30
$ run imp80
  imp80 rt31
$ implink rt31
$ run rt31
$ run imp80
  imp80 rt32
$ implink rt32
$ run rt32
$ run imp80
  imp80 rt33
$ implink rt33
$ run rt33
$ run imp80
  imp80 rt34
$ implink rt34
$ run rt34

==== ercc07/eccemtspas.txt ====

(Message 209)
Subject:  Ecce.pas MTS version
From:     Harry_Whitfield  <CL11 @ UK.AC.NEWCASTLE.MTS>
Date:     Thu, 25 Jun 87 15:50:49 GMT
To:       P.D.Stephens @ UK.AC.EDINBURGH
Via:      UK.AC.EDINBURGH.EMAS-A  ; (to uk.ac.edinburgh.emas-b) 25 Jun 87  15:51:36 bst
Via:      UK.AC.NEWCASTLE.MTS  ; (to uk.ac.edinburgh.emas-a) 25 Jun 87  15:51:16 bst
Msg ID:   <sent 25 Jun 87 15:50:49 GMT via NCL.MTS>

{*****************************************************************************}
{**                                                                         **}
{**    Title:   Edinburgh Editor Ecce for MTS                               **}
{**    Author:  H.Whitfield                                                 **}
{**    Date:    17 November 1985                                            **}
{**             Copyright (c) H.Whitfield 1985                              **}
{**                                                                         **}
{*****************************************************************************}
 
 
PROGRAM Ecce( input, output, InFile, OutFile );

==== ercc07/poneb02s.txt ====
!
! Changes for poneb02s
!   1) Improvements to UP and DOWN to flag internal blks or procs
!
!
%CONST %BYTE %INTEGER %ARRAY I TO E TAB(0 : 127) =       %C
X'40',X'40',X'40',X'40',X'40',X'40',X'40',X'40',
X'40',X'40',X'15',X'40',X'0C',X'40',X'40',X'40',
X'40',X'40',X'40',X'40',X'40',X'40',X'40',X'40',
X'40',X'40',X'40',X'40',X'40',X'40',X'40',X'40',
X'40',X'4F',X'7F',X'7B',X'5B',X'6C',X'50',X'7D',
X'4D',X'5D',X'5C',X'4E',X'6B',X'60',X'4B',X'61',
X'F0',X'F1',X'F2',X'F3',X'F4',X'F5',X'F6',X'F7',
X'F8',X'F9',X'7A',X'5E',X'4C',X'7E',X'6E',X'6F',
X'7C',X'C1',X'C2',X'C3',X'C4',X'C5',X'C6',X'C7',
X'C8',X'C9',X'D1',X'D2',X'D3',X'D4',X'D5',X'D6',
X'D7',X'D8',X'D9',X'E2',X'E3',X'E4',X'E5',X'E6',
X'E7',X'E8',X'E9',X'4A',X'5F',X'5A',X'6A',X'6D',
X'7C',X'81',X'82',X'83',X'84',X'85',X'86',X'87',
X'88',X'89',X'91',X'92',X'93',X'94',X'95',X'96',
X'97',X'98',X'99',X'A2',X'A3',X'A4',X'A5',X'A6',

==== ercc07/trimp_perqoptas.txt ====
%INCLUDE "ERCC07.TRIMP_HOSTCODES"
%CONSTINTEGER HOST=EMAS
%CONSTINTEGER TARGET=PERQ

==== ercc07/make386_p1.txt ====
offer d386p1s
edit poneb01s,d386p1s
i<itrimp_drsponeas>
ta/%inc/
d1i<itrimp_hostcodes>
a'
d1i<itrimp_tform2s>
m/%constlonglongreal/
e
imp d386p1s,.null
offer d386p1s,zepz06

==== ercc07/make386_p2.txt ====
offer d386p2s
edit timp02s,d386p2s
i<itrimp_drsptwoas>
ta/%inc/
d1i<itrimp_hostcodes>
a'
d1i<tripcnsts>
a'
d1i<itrimp_tform2s>
ta.alpha=.r1i.8.
e
imp d386p2s,.null
offer d386p2s,zepz06

==== ercc07/makevax_put.txt ====
edit vaxput3s,vputs
a/%inc/p1d1i<ercc07:itrimp_hostcodes>
a'p1d1i<ercs04:stabh>
a'p1d1i<ercc07:vaxopcodes>
ta/host=/i/Vax
/d1e
parm noarray,nocheck
vaximp vputs,vputxx
transfer vputxx,ercvax(ercc07,peathag)vput3.obj,file,bin

==== ercc07/tlinkmp.txt ====
parm map
link ,separeas
----
ercc07:isupMP12y
ercc07:ifastMP24y
ercc07:idevMP22y
ercc08:iop3270mpy
ercc07:icomMP9y
ercc07:iprintMP4y
ercc15:itape.y9MP
ercc27:icomms.MP16
ercc07:ienterN3y
ercc07:indiagn3y
.end
isupz
++++
isupfix isupz,isupt,isupl
disconnect isupt
parm nocheck

==== ercc07/vaxcom_irun.txt ====
$run imp80
 imp80 'p1'
$ ilink 'p1'
$run 'p1'

==== ercc07/reboot7.txt ====
parm nocheck,noarray,nolist,noline,nodiag,R8,nowarnings
#scom 25,5
pascal ercs12:psource.options7s,options7y
pascal ercs12:psource.analyser11s,analyser11y
pascal ercs12:psource.codeinit9s,codeinit9y
pascal ercs12:psource.ctlstruct9s,ctlstruct9y
pascal ercs12:psource.datareps9s,datareps9y
pascal ercs12:psource.diags5s,diags5y
pascal ercs12:psource.dump5s,dump5y
pascal ercs12:psource.expeval11s,expeval10y
pascal ercs12:psource.generator4s,generator4y
pascal ercs12:psource.lexical4s,lexical4y
pascal ercs12:psource.main5s,main5y
pascal ercs12:psource.progparam2s,progparam2y
pascal ercs12:psource.prologue2s,prologue2y
pascal ercs12:psource.semantics8s,semantics8y
pascal ercs12:psource.source6s,source6y
pascal ercs12:psource.stdprocs9s,stdprocs9y
pascal ercs12:psource.syntax1s,syntax1y
pascal ercs12:psource.varref10s,varref10y
pascal ercs12:psource.withstmts2s,withstmts2y

==== ercc07/trimp_emasopt01s.txt ====

      %INCLUDE "ERCC07.TRIMP_TFORM1S"
      %INCLUDE "ERCC07.TRIPCNSTS"
%EXTRINSICRECORD(WORKAF) WORKA
%EXTRINSICRECORD(PARMF) PARM
%CONSTINTEGER YES=1
%CONSTINTEGER NO=0
%EXTERNALROUTINESPEC IMPABORT
%EXTERNALROUTINESPEC FAULT(%INTEGER N,DATA,IDENT)
%EXTERNALROUTINESPEC PRINT TRIPS(%RECORD(TRIPF) %ARRAYNAME TRIPLES)
%CONSTBYTEINTEGERARRAY WORDS(0:7)=0(3),1,1,2,4,8; 
%ROUTINE EXTRACT(%RECORD(RD) %NAME OPND, %LONGINTEGERNAME VAL,
    %LONGLONGREALNAME RVAL, %STRINGNAME STRVAL)
!***********************************************************************
!*    EXTRACTS A CONTANT OPERAND RETURNING REAL &INT VALUES           *
!***********************************************************************
%INTEGER TYPE,PREC,I,AD
      TYPE=OPND_PTYPE; PREC=TYPE>>4
      TYPE=TYPE&15
      %IF TYPE=5 %START
         LENGTH(STRVAL)=WORKA_A(OPND_D)

==== ercc07/reboot8.txt ====
parm nocheck,noarray,nolist,noline,nodiag,R8,nowarnings
#scom 25,5
pascal ercs12:psource.options7s,options7y
pascal ercs12:psource.analyser11s,analyser11y
pascal ercs12:psource.codeinit9s,codeinit9y
pascal ercs12:psource.ctlstruct9s,ctlstruct9y
pascal ercs12:psource.datareps9s,datareps9y
pascal ercs12:psource.diags5s,diags5y
pascal ercs12:psource.dump5s,dump5y
pascal ercs12:psource.expeval11s,expeval10y
pascal ercs12:psource.generator4s,generator4y
pascal ercs12:psource.lexical4s,lexical4y
pascal ercs12:psource.main5s,main5y
pascal ercs12:psource.progparam2s,progparam2y
pascal ercs12:psource.prologue2s,prologue2y
pascal ercs12:psource.semantics8s,semantics8y
pascal ercs12:psource.source6s,source6y
pascal ercs12:psource.stdprocs9s,stdprocs9y
pascal ercs12:psource.syntax1s,syntax1y
pascal ercs12:psource.varref10s,varref10y
pascal ercs12:psource.withstmts2s,withstmts2y

==== ercc07/algtests_ablurb.txt ====


AT1:- This program tests if the compiler survives oversized constant.Should  not
       run.

AT2:- This program tests if long similar names are distinguished.  Should output
       1.0.

AT3:- This program tests if a program can be labelled. Some compilers allow this.

AT4:- This program tests if the preassigned names can be used as program labels.
       This can cause problems hence many compilers disallow labels here.

AT5:- This program tests if a program can be a statement.   THis was allowed  in
       the 63 Report but is now explicitly disallowed. Should not compile.

AT6:- This program tests if double  sided  conditions  are  allowed.    Strictly
       invalid Algol so should not compile.

AT7:- This program tests assignment to name parameters.  The first four calls of
       p are valid but the last attempts to assign to a constant.   The compiler

==== ercc07/ibmsup_configxa.txt ====
!
!     XA configuration (dummy)
!
!   NB in an XA configiration HI CUU must be set to zero

==== ercc07/trimp_drsponeas.txt ====
%INCLUDE "ERCC07.TRIMP_HOSTCODES"
%CONSTINTEGER HOST=EMAS
%CONSTINTEGER TARGET=PERQ
! PRODUCED BY OLDPS FROM TRIMP_PERQPS01 ON 06/09/83
%CONSTBYTEINTEGERARRAY CLETT(0: 436)=   1,
  40,   1,  41,   1,  42,   1,  44,   2, 201, 198,   6, 213, 206, 204,
 197, 211, 211,   5, 215, 200, 201, 204, 197,   5, 213, 206, 212, 201,
 204,   3, 198, 207, 210,   1,  61,   5, 193, 204, 201, 193, 211,   7,
 201, 206, 212, 197, 199, 197, 210,   4, 210, 197, 193, 204,   4, 204,
 207, 206, 199,   4, 194, 217, 212, 197,   6, 211, 212, 210, 201, 206,
 199,   4, 200, 193, 204, 198,   5, 211, 200, 207, 210, 212,   6, 210,
 197, 195, 207, 210, 196,   7, 210, 207, 213, 212, 201, 206, 197,   2,
 198, 206,   3, 205, 193, 208,   8, 198, 213, 206, 195, 212, 201, 207,
 206,   4, 206, 193, 205, 197,   9, 193, 210, 210, 193, 217, 206, 193,
 205, 197,   9, 207, 198, 208, 210, 207, 199, 210, 193, 205,   6, 207,
 198, 198, 201, 204, 197,   6, 207, 198, 204, 201, 211, 212,   6, 198,
 207, 210, 205, 193, 212,   3, 206, 207, 212,   3, 193, 206, 196,   2,
 207, 210,   1,  58,   4, 211, 208, 197, 195,   5, 193, 210, 210, 193,
 217,   3, 207, 215, 206,   8, 197, 216, 212, 197, 210, 206, 193, 204,
   9, 197, 216, 212, 210, 201, 206, 211, 201, 195,   8, 195, 207, 206,
 211, 212, 193, 206, 212,   5, 195, 207, 206, 211, 212,   5, 197, 214,

==== ercc07/ifast20s.txt ====
%INCLUDE "ercc07:ibmsup_comf370"
%INCLUDE "ercc07:ibmsup_page0f"
%INCLUDE "ercc07:ibmsup_dtform2s"
%INCLUDE "ercc07:ibmsup_xaioform"
%RECORD %FORMAT PARMF(%INTEGER DEST,SRCE,(%INTEGER P1,P2,P3,P4,P5,
   P6 %OR %STRING (23) TEXT))
%CONST %INTEGER PCELLSIZE=36,MARGIN=48
%RECORD %FORMAT PDOPEF(%INTEGER CURRMAX,MAXMAX,FIRST UNALLOC,LAST UNALLOC,NEXTPAGE,S1,
   S2,S3,S4)
%RECORD %FORMAT PARMXF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6,LINK)
%CONST %RECORD (PARMXF) %ARRAY %NAME PARM=PARM0AD
%CONST %RECORD (PDOPEF) %NAME PARMDOPE=PARM0AD
%RECORD %FORMAT STOREF(%SHORT %INTEGER FLAGS,USERS,LINK,BLINK,FLINK)
%CONST %RECORD (STOREF) %ARRAY %NAME STORE=STORE0AD
!
%EXTERNAL %LONG %INTEGER SEMATIME=0
%OWN %INTEGER PARMASL=0
%EXTERNAL %INTEGER MAINQSEMA=-1
%EXTERNAL %INTEGER %SPEC STORESEMA
      %OWN %INTEGER %ARRAY GET NEW PAGE(0:14); ! parms for call of new epage
!

==== ercc07/m88kp401s.txt ====
!
! Warning this module has the revised triples spec.
!
! In first attempt at Triple Imp considerable use was made of constant operands
! to pass information from Pass2 to GEN. Although for specialised operations like
! passing Labels this still applies, this adhocery has caused problems with arrays
! and pointers particularly in mapped records. The operands for four triples
! have thus been redefined in a more standard way.
!
! GETPTR    X1 is now (ptype of passed)<<16! DIMENSION
!           Opnd2 is either a 32 bit const with the size (ACC) as value or
!           the ptr or arrayhead as normal operand.
!
! VMY       X1 is now dim<<28!maxdim<<24!array name(where known)
!           Opnd2 is either a 32 bit const with DV offset into const area or
!           the arrayhead as a standard operand
!
! AINDX     X1 is ELSIZE<<20 !spare
!           Opnd2 is arrayhead as standard operand
!           NOTE:- The Operands have been swopped for consistency with norm.
!

==== ercc07/ctoptnassmp.txt ====
!
!   Compile time options for EMAS/370
!
%constinteger YES=1,NO=0,AMDAHL=2
%constinteger XA=YES;                    ! yes for 370/XA
%constinteger VA MODE=YES;               ! yes for Supervisor, no for Chopsupe
%constinteger MULTI OCP=YES;             ! yes to include semaphoring
%constinteger CRFITTED=NO;               ! card reader
%constinteger CPFITTED=NO;               ! card punch
%constinteger SNOOZING=YES;              ! allow suspend in store
%constinteger PRODUCTION=NO;             ! yes for continuing after S/W errors
%constinteger MONLEVEL=x'3F';                ! 0 = no monitoring
                                         ! 2**0 = video updating
                                         ! 2**1 = KMONning
                                         ! 2**2 = sup timing measurements
                                         ! 2**3 = a-c for cross calls
                                         ! 2**4 = strobing
                                         ! 2**5 = cat table transitions
                                         ! 2**8 = event harvesting
%constinteger P4PERCENT=19;              ! max % of free store for large jobs
%constinteger MAXPROCS=256;              ! max concurrent procs (64,128 or 256)

==== ercc07/ifast21s.txt ====
!
! Changes for vsn 21
!    1) New format for store array to allow for bigger AMT
!    2) Conditional compilation of Q REQUEST and other non xa rts
!
%INCLUDE "ercc07:ibmsup_comf370"
%INCLUDE "ercc07:ibmsup_page0f"
%INCLUDE "ercc07:ibmsup_dtform2s"
%INCLUDE "ercc07:ibmsup_xaioform"
%RECORD %FORMAT PARMF(%INTEGER DEST,SRCE,(%INTEGER P1,P2,P3,P4,P5,
   P6 %OR %STRING (23) TEXT))
%CONST %INTEGER PCELLSIZE=36,MARGIN=48
%RECORD %FORMAT PDOPEF(%INTEGER CURRMAX,MAXMAX,FIRST UNALLOC,LAST UNALLOC,NEXTPAGE,S1,
   S2,S3,S4)
%RECORD %FORMAT PARMXF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6,LINK)
%CONST %RECORD (PARMXF) %ARRAY %NAME PARM=PARM0AD
%CONST %RECORD (PDOPEF) %NAME PARMDOPE=PARM0AD
%RECORD %FORMAT STOREF(%SHORT %INTEGER FLAGS,USERS, %INTEGER LINK,
      %SHORT %INTEGER BLINK,FLINK)
%CONST %RECORD (STOREF) %ARRAY %NAME STORE=STORE0AD
!

==== ercc07/npndiags9s.txt ====
   !Modified   19/April/88      14:00                                 NDIAG9.2







!---History:
    !
    !                                                                 %c
    NDIAG9.2 incorporates changes to enable diagnostics on NP1. Note  %c
             that the new changes have been implemented primarily for %c
             soft failures from Fortran and are dependent upon the    %c
             storage allocation of the IMP compiler.
                                                                     !%c
             also effectively disables "bottomad" check for NP1 and UTX.
                                                                     !%c
    NDIAG9.1 corrects occasional report of GLA CORRUPT when a FORTRAN %c
             main program has been compiled without diagnostics.
                                                                     !%c

==== ercc07/m88kp402s.txt ====
! changes applied for risc development retrofitted (GEM 5/10/89)  
!
! Warning this module has the revised triples spec.
!
! In first attempt at Triple Imp considerable use was made of constant operands
! to pass information from Pass2 to GEN. Although for specialised operations like
! passing Labels this still applies, this adhocery has caused problems with arrays
! and pointers particularly in mapped records. The operands for four triples
! have thus been redefined in a more standard way.
!
! GETPTR    X1 is now (ptype of passed)<<16! DIMENSION
!           Opnd2 is either a 32 bit const with the size (ACC) as value or
!           the ptr or arrayhead as normal operand.
!
! VMY       X1 is now dim<<28!maxdim<<24!array name(where known)
!           Opnd2 is either a 32 bit const with DV offset into const area or
!           the arrayhead as a standard operand
!
! AINDX     X1 is ELSIZE<<20 !spare
!           Opnd2 is arrayhead as standard operand
!           NOTE:- The Operands have been swopped for consistency with norm.

==== ercc07/especs4h.txt ====
%externalroutine Einitialise %alias"E#INITIALISE"(%integer Lang,Aver,Astackca,Aglaca,options)
%externalroutine Eterminate %alias"E#TERMINATE"(%integer adareasizes)
%externalroutine Ecommon %alias"E#COMMON"(%integer area,%stringname Name)
%externalroutine Eendcommon %alias"E#ENDCOMMON"(%integer area,Length)
%externalroutine Elinestart %alias"E#LINESTART"(%integer lineno)
%externalroutine Elinedecode %alias"E#LINEDECODE"
%externalintegerfn Estkmarker %alias"E#STKMARKER"
%externalroutine Esetmarker %alias"E#SETMARKER"(%integer Markerid,New Value)
%externalintegerfn Eswapmode %alias"E#SWAPMODE"
%externalroutine Emonon %alias"E#MOMON"
%externalroutine Emonoff %alias"E#MONOFF"
%externalroutine Efaulty %alias"E#FAULTY"
%externalroutine Estklit %alias"E#STKLIT"(%integer Val)
%externalroutine Estkconst %alias"E#STKCONST"(%integer Len,Ad)
%externalroutine Estkrconst %alias"E#STKRCONST"(%integer Len,Ad)
%externalroutine Estkdir %alias"E#STKDIR"(%integer Area,Offset,Adid,Bytes)
%externalroutine Estkind %alias"E#STKIND"(%integer Area,Offset,Adid,Bytes)
%externalroutine Estkglobal %alias"E#STKGLOBAL"(%integer Level,Offset,Adid,Bytes)
%externalroutine Estkglobalind %alias"E#STKGLOBALIND"(%integer Level,Offset,Adid,Bytes)
%externalroutine Estkgind %alias"E#STKIND"(%integer Level,Offset,Adid,Bytes)
%externalroutine Estkpar %alias"E#STKPAR"(%integer Level,Offset,Adid,Bytes)

==== ercc07/compallf.txt ====
cd ercs08:f77rel
parm noarray,nocheck,xref
imp ercs08:f77rel.Srce200_XCONTRl8,.null,:l1
imp ercs08:f77rel.Srce200_FALLOC3a,.null,:l2
imp ercs08:f77rel.Srce200_FANAL4a,.null,:l3
imp ercs08:f77rel.Srce200_FARITH1,.null,:l4
imp ercs08:f77rel.Srce200_FCINNUM2a,.null,:l5
imp ercs08:f77rel.Srce200_fcode3,.null,:l6
imp ercs08:f77rel.Srce200_FDATA3,.null,:l7
imp ercs08:f77rel.Srce200_FEND4,.null,:l8
imp ercs08:f77rel.Srce200_FGEN3,.null,:l9
imp ercs08:f77rel.Srce200_FINPUT3a,.null,:l10
imp ercs08:f77rel.Srce200_FMAP1,.null,:l11
imp ercs08:f77rel.Srce200_FMESS2,.null,:l12
imp ercs08:f77rel.Srce200_F1OPT1,.null,:l13
imp ercs08:f77rel.srce200_f2opt1,.null,:l14
imp ercs08:f77rel.srce200_f3opt2,.null,:l15
imp ercs08:f77rel.srce200_f4opt1a,.null,:l16
imp ercs08:f77rel.srce200_f5opt1,.null,:l17
imp ercs08:f77rel.srce200_fcelim1,.null,:l18
imp ercs08:f77rel.srce200_feelim1,.null,:l19

==== ercc07/trimp_portenv01s.txt ====

%CONSTINTEGER YES=1,NO=0

!
! THESE CODE ARE ARBITARY BUT THE TOP DECIMAL DIGIT GIVES THE NO OF BYTES
! IN THE UNIT OF ADDRESSABILITY. BYTE ADDRESSES HOSTS BEING 1N AND
! 16 BIT WORD ADDRESSED HOSTS BEING 2N ETC
%CONSTINTEGER EMAS=10
%CONSTINTEGER IBM=11
%CONSTINTEGER IBMXA=12
%CONSTINTEGER DRS=13
%CONSTINTEGER AMDAHL=14
%CONSTINTEGER PERQ=20
%CONSTINTEGER PNX=21
%CONSTINTEGER ACCENT=22
                                        ! ACCENT DIFFERS FROM PERQ ONLY IN
                                        ! ASSEMBLES SEQUENCES&SYNTAX
                                        ! AND GENERATOR
%CONSTINTEGER LINTAVAIL=1<<AMDAHL!1<<IBM!1<<IBMXA!1<<EMAS
%CONSTINTEGER LLREALAVAIL=1<<AMDAHL!1<<IBM!1<<IBMXA!1<<EMAS
%CONSTINTEGER TARGET=IBMXA

==== ercc07/ifast22s.txt ====
!
! Chnages for IFAST22
!
!    1) uses more chain space
!    2) Better queueing within cylinders for transfers
!    3) more selective use of seek ans set sector
!
!
! Changes for vsn 21
!    1) New format for store array to allow for bigger AMT
!    2) Conditional compilation of Q REQUEST and other non xa rts
!
%INCLUDE "ercc07:ibmsup_comf370"
%INCLUDE "ercc07:ibmsup_page0f"
%INCLUDE "ercc07:ibmsup_dtform2s"
%INCLUDE "ercc07:ibmsup_xaioform"
%RECORD %FORMAT PARMF(%INTEGER DEST,SRCE,(%INTEGER P1,P2,P3,P4,P5,
   P6 %OR %STRING (23) TEXT))
%CONST %INTEGER PCELLSIZE=36,MARGIN=48
%RECORD %FORMAT PDOPEF(%INTEGER CURRMAX,MAXMAX,FIRST UNALLOC,LAST UNALLOC,NEXTPAGE,S1,
   S2,S3,S4)

==== ercc07/tlinkv7.txt ====
parm map
link ,separeas
ercc07:isupv710y
ercc07:ifastv79y
ercc07:idevv716y
ercc08:ioperv74y
ercc07:icomv78y
ercc07:iprintv73y
ercc15:itape.Y7
ercc27:icomms.y12
ercc08:ienterv72y
ercc07:indiagv72y
.end
isupz
isupfix isupz,isupt,isupl
disconnect isupt
parm nocheck

==== ercc07/m88kp403s.txt ====
! changes applied for risc development retrofitted (GEM 5/10/89)  
!
! Warning this module has the revised triples spec.
!
! In first attempt at Triple Imp considerable use was made of constant operands
! to pass information from Pass2 to GEN. Although for specialised operations like
! passing Labels this still applies, this adhocery has caused problems with arrays
! and pointers particularly in mapped records. The operands for four triples
! have thus been redefined in a more standard way.
!
! GETPTR    X1 is now (ptype of passed)<<16! DIMENSION
!           Opnd2 is either a 32 bit const with the size (ACC) as value or
!           the ptr or arrayhead as normal operand.
!
! VMY       X1 is now dim<<28!maxdim<<24!array name(where known)
!           Opnd2 is either a 32 bit const with DV offset into const area or
!           the arrayhead as a standard operand
!
! AINDX     X1 is ELSIZE<<20 !spare
!           Opnd2 is arrayhead as standard operand
!           NOTE:- The Operands have been swopped for consistency with norm.

==== ercc07/put8s.txt ====
      {*********************}
      {*     EMAS 370      *}
      {*   PUT INTERFACE   *}
      {*   April 22 1985   *}
      {*********************}

      {*Date of Change:13 Feb 86*}
      {*Description of Change:Correction to fixups to code area*}
      {*Name of Person Responsible:Rob Pooley*}
      {*User Number:ercs20*}


%CONST %STRING (31) PutVersion= "PUT: version 13th February 1986"

      { These are the low level code and object generation routines which are common}
      { to our XA compilers in the EMAS 370 environment. }

      {April 22nd - Began move to new object file format. Incorporated LPUT functions}
      { April 18th - added Fortran features: Switch Val and Entry }



==== ercc07/docs_standards.txt ====
@h[Compiler Standards for EMAS(3)]

@b[1. @u[Introduction]]


   Unlike 2900 series, IBM 370-XA provides no facilities or assistance for
executing stack-based procedures. To provide cross language calling and
advanced facilities like dynamic loading a carefully thought-out set of
conventions must be followed. The conventions proposed here follow those of
EMAS(1) with slight changes to permit array slicing and cross memory (i.e.
inward) calls.


@b[2. @u[Register Conventions]]


   When any EMAS(3) program is executing, GR11 is used as the stack top and it
is kept 8-byte-aligned (for efficient fetching). The stack may be multi-segment
- segment boundaries have no significance (unlike 2900). GR12 points to the head
of the shareable (pure) part of the program and is used to provide
addressibility. Program sharing requires that code executes correctly at

==== ercc07/ibmconvert_doc.txt ====

               IBM OBJECT MODULE UTILITIES


 1 USING THE UTILITIES
   1.1 CONVERTING A FILE
   1.2 INVOKING THE CONVERTER ROUTINE
   1.3 DUMPING AN OBJECT MODULE
   1.4 LOADING THE MODULES
 2 OVERVIEW OF CONVERTER ACTIONS
   2.1 COALESCING AREAS
   2.2 ESD DICTIONARY
   2.3 GENERATION OF AREAS
   2.4 INITIALISATION DATA
   2.5 RELOCATION PROCESSING
   2.6 END CARD
 3 BUILDING THE UTILITIES





==== ercc07/ifast23s.txt ====
!
! Changes for IFAST23
!    1) Incorporation of C SCH to help clear down FEPs
!
! Changes for IFAST22
!
!    1) uses more chain space
!    2) Better queueing within cylinders for transfers
!    3) more selective use of seek ans set sector
!
!
! Changes for vsn 21
!    1) New format for store array to allow for bigger AMT
!    2) Conditional compilation of Q REQUEST and other non xa rts
!
%INCLUDE "ercc07:ibmsup_comf370"
%INCLUDE "ercc07:ibmsup_page0f"
%INCLUDE "ercc07:ibmsup_dtform2s"
%INCLUDE "ercc07:ibmsup_xaioform"
%RECORD %FORMAT PARMF(%INTEGER DEST,SRCE,(%INTEGER P1,P2,P3,P4,P5,
   P6 %OR %STRING (23) TEXT))

==== ercc07/m88kp404s.txt ====
!
! Changes to reduce confusion over dummy parameter pushed for
! alignment purposes (Mostly but not entirely in PARDESLIST
!    PDS nov 89
!
! changes applied for risc development retrofitted (GEM 5/10/89)  
!
! Warning this module has the revised triples spec.
!
! In first attempt at Triple Imp considerable use was made of constant operands
! to pass information from Pass2 to GEN. Although for specialised operations like
! passing Labels this still applies, this adhocery has caused problems with arrays
! and pointers particularly in mapped records. The operands for four triples
! have thus been redefined in a more standard way.
!
! GETPTR    X1 is now (ptype of passed)<<16! DIMENSION
!           Opnd2 is either a 32 bit const with the size (ACC) as value or
!           the ptr or arrayhead as normal operand.
!
! VMY       X1 is now dim<<28!maxdim<<24!array name(where known)
!           Opnd2 is either a 32 bit const with DV offset into const area or

==== ercc07/make88k_gen5.txt ====
parm nocheck
edit drsgen05s,dgens
a/%incl/d1i<itrimp_hostcodes>
a'd1i<ercs01:ebits_ecodes28>
a'd1i<tripcnsts>
a'd1i<itrimp_tform2s>
a'd1i<ercs01:ebits_especs5>
ta/host=/r6i/DRS/
e
imp dgens,.null
transfer dgens,castle(ercc07,pete)impdir/sources/d386p4s10.i,file

==== ercc07/trimp_perqptwoas.txt ====
%TRUSTEDPROGRAM
%EXTERNALROUTINE ICL9CEZPERQIMP
%CONSTINTEGER RELEASE=4
%INCLUDE "ERCC07.TRIMP_HOSTCODES"
%CONSTINTEGER HOST=EMAS
%CONSTINTEGER TARGET=PERQ
%CONSTINTEGER STANDARDPT=X'41'
%CONSTINTEGER MINAPT=X'41';             ! MINIMUM PTYPE FOR WHICH ARITHMETIC
                                        ! OPERATORS ARE AVAILABLE
%CONSTINTEGER MINAPREC=MINAPT>>4
%CONSTHALFINTEGERARRAY TYPEFLAG(0:12)=0,
                                        X'51'{%INTEGER},
                                        X'52'{%REAL},
                                        X'8009'{%LONG SOMETHING},
                                        X'4031'{%BYTE},
                                        X'35'{%STRING},
                                        X'6051'{%HALF->%INTEGER+WARNING},
                                        X'4041'{%SHORT},
                                        X'33'{%RECORD},
                                        0,
                                        X'1051'{%LONG INTEGER FAULT},

==== ercc07/ibmsup_strrts.txt ====
%EXTERNALROUTINESPEC ETOI %ALIAS "S#ETOI"(%INTEGER AD,L)
%EXTERNALROUTINESPEC ITOE %ALIAS "S#ITOE" (%INTEGER AD,L)

%EXTERNALSTRING(255)%FN EXTRACT VALUE(%STRING(*)%NAME REF,%INTEGERNAME FLAG)
!***********************************************************************
!*    RETURNS THE VALUE OF REF ALTERING STRING FORMATS TO IMP          *
!***********************************************************************
%INTEGER I,J,K,SP,AD
%SHORTINTEGER L,F
%SWITCH SW(0:5)
%STRING(255)RES
      *LM_0,1,REF
      *ST_1,AD
      *STH_0,L
      *SRL_0,16
      *STH_0,F
      FLAG=0
      %IF F<5 %THEN ->SW(F)
SW(1):                                  ! IMP LONGSTRING
      FLAG=1
INV:  %RESULT="INVALID M-L STRING FOR EXTRACT VALUE"

==== ercc07/ifast24s.txt ====
!
! Changes for IFAST23
!    1) Incorporation of C SCH to help clear down FEPs
!
! Changes for IFAST22
!
!    1) uses more chain space
!    2) Better queueing within cylinders for transfers
!    3) more selective use of seek ans set sector
!
!
! Changes for vsn 21
!    1) New format for store array to allow for bigger AMT
!    2) Conditional compilation of Q REQUEST and other non xa rts
!
%INCLUDE "ercc07:ibmsup_comf370"
%INCLUDE "ercc07:ibmsup_page0f"
%INCLUDE "ercc07:ibmsup_dtform2s"
%INCLUDE "ercc07:ibmsup_xaioform"
%RECORD %FORMAT PARMF(%INTEGER DEST,SRCE,(%INTEGER P1,P2,P3,P4,P5,
   P6 %OR %STRING (23) TEXT))

==== ercc07/vaxcom_clinkd.txt ====
$ link/debug/map imp80,pim,vp1,vp2,vpo,vp4,cserv,vbgen,vput,compio,vaxiocp,csrce,penv,vndiag,sys$input/opt
sys$share:vaxcrtl.exe/share

==== ercc07/m88kp405s.txt ====
!
! Changes 22Feb90 to pass types to the ecode generator Vsn 5
!
! Changes to reduce confusion over dummy parameter pushed for
! alignment purposes (Mostly but not entirely in PARDESLIST
!    PDS nov 89
!
! changes applied for risc development retrofitted (GEM 5/10/89)
!
! Warning this module has the revised triples spec.
!
! In first attempt at Triple Imp considerable use was made of constant operands
! to pass information from Pass2 to GEN. Although for specialised operations like
! passing Labels this still applies, this adhocery has caused problems with arrays
! and pointers particularly in mapped records. The operands for four triples
! have thus been redefined in a more standard way.
!
! GETPTR    X1 is now (ptype of passed)<<16! DIMENSION
!           Opnd2 is either a 32 bit const with the size (ACC) as value or
!           the ptr or arrayhead as normal operand.
!

==== ercc07/pdiags2s.txt ====
!*
!*
!***********************************************************************
!***********************************************************************
!*                                                                     *
!*      P A S C A L   P O S T M O R T E M   D I A G N O S T I C S      *
!*                                                                     *
!***********************************************************************
!***********************************************************************
!*
!*
!*  History
!*  -------
!*
!*  Version 1 for PERQ2.
!*
%CONST %INTEGER PERQ2= 0;
%CONST %INTEGER PERQ3= 1;
%CONST %INTEGER AMDAHL= 2;
%CONST %INTEGER GOULD= 3;
%CONST %INTEGER HOST= AMDAHL

==== ercc07/makedrs_opt.txt ====
edit opt03s,dpos
i<itrimp_drsoptas>
ta/%inc/
d1i<itrimp_hostcodes>
a'
d1i<itrimp_tform2s>
a'
d1i<tripcnsts>
ta/host=/r6i/DRS/
e
imp dpos,.null
transfer dpos,castle(ercc07,pete)impdir/sources/d386popts10.i,file

==== ercc07/makevax_cserv.txt ====
edit cserv01s,cs1s
a/%inc/d1i<ercc07:itrimp_hostcodes>
a'd1i<ercc07:itrimp_tform2s>
ta/host=/i/vax
/d1p1
e
vaximp cs1s,cs1xx
transfer cs1xx,ercvax(ercc07,peathag)cserv.obj,file,bin
destroy cs1s

==== ercc07/pdiags3s.txt ====
!*
!*
!***********************************************************************
!***********************************************************************
!*                                                                     *
!*      P A S C A L   P O S T M O R T E M   D I A G N O S T I C S      *
!*                                                                     *
!***********************************************************************
!***********************************************************************
!*
!*
!*  History
!*  -------
!*
!*  Version 1 for PERQ2.
!*
%CONST %INTEGER PERQ2= 0;
%CONST %INTEGER PERQ3= 1;
%CONST %INTEGER AMDAHL= 2;
%CONST %INTEGER GOULD= 3;
%CONST %INTEGER HOST= AMDAHL

==== ercc07/docs_wplangsup.txt ====

Memo to:Dr. G.E.Thomas


         Report of the Working Party on Languages.

     I draw your attention to my Memo 0f 30.11.81 and I attach a copy. The lack
of expertise I commented on then has resulted in a report based on serious
misunderstandings of some of the technical issues.

Comments on section B
______________________

     There is general lack of distinction between the benefits of language
design, the benefits of International Standards and the benefits of User
expertise. A nebulous cloak of the value of "integration" and "support" is cast
lightly over this whole area. The benefits Imp is alleged to gain from
"integration" with EMAS is almost entirely a myth. Similarly efforts devoted
to providing better "integration" of Pascal and Fortran will be largely wasted
unless the International Standards are abandoned.


==== ercc07/trimp_pnxps01.txt ====
43
D(NAME)
D(ICONST)
D(CONST)
D(DUMMYSTART)
D(N)
D(S)
D(TEXT)
D(BIGHOLE)
D(N255)
D(HOLE)
D(MARK)
D(READLINE?)
D(TEXTTEXT)
D(DUMMYAPP)
D(DOWN)
D(UP)
D(LISTON)
D(LISTOFF)
D(COLON)
D(NOTECONST)

==== ercc07/vaxsup_imp80cld.txt ====
MODULE imp80_table
IDENT "IMP80 - Modified/Created July 1989"

DEFINE VERB IMP80
   QUALIFIER LIST, NEGATABLE
   QUALIFIER DIAG, NEGATABLE
   QUALIFIER CHECK, NEGATABLE
   QUALIFIER ARRAY, NEGATABLE
   QUALIFIER TRACE, NEGATABLE
   QUALIFIER OPT, NONNEGATABLE
   QUALIFIER LINE, NEGATABLE
   QUALIFIER MAP, NONNEGATABLE
   QUALIFIER CODE, NEGATABLE
   QUALIFIER PARZ, NEGATABLE
   QUALIFIER PARY, NEGATABLE
   QUALIFIER PARX, NEGATABLE
   QUALIFIER MAXDICT, NEGATABLE                     
   DISALLOW OPT AND (CHECK OR ARRAY OR DIAG)
   ROUTINE imp_command
   PARAMETER P1,PROMPT="Source file",LABEL=SOURCEFILE,VALUE(REQUIRED,TYPE=$FILE)

==== ercc07/docs_libaut.txt ====

Library Automation
___________________

a) Overview

     Library computing was initially conceived as primarily an internal
automation project with little wider relevance. The aims were the automation of
circulation, acquisition and serial control together with the transfer of the
catalogue from a manual to an electronic format. The latter is a prodigious
project taking seven years and requiring the aid of staff supplied by the
Manpower service Agency.

     A specialized supplier of library equipment, GEAC, was chosen for the first
contract and their offering, a GEAC 8000, was installed. By the later half of
the 1980s the machine was overloaded and a new machine was required. A difficult
choice presented itself; the claims of compatibility pointed to a further GEAC
machine whilst the wider aspects of the Library's role in information technology
suggested a machine with secure and powerful communications. In fact a further
GEAC, the 9000, has been installed and the transfer of work has begun.


==== ercc07/vaxndiag.txt ====
!
!********************************************
!*
!* VAX/VMS NDIAG - IMP monitors and trapped errors
!*                 come here. This routine cycles
!*                 down the stack, calling a lang.
!*                 dept. routine to analyse each frame
!*
!*************************************************

%CONST %INTEGER extramon=1

%ROUTINE %SPEC Indiag(%INTEGER LNB,GP,ADIAGS,ADIDIA,mode,diag,asize,first,
   %INTEGER %NAME flag)
%EXTERNAL %ROUTINE %SPEC Fdiag(%INTEGER LNB,gla,PC,ADIAGS,first, %INTEGER %NAME next)
!%EXTERNAL %INTEGER %MAP %SPEC COMREG %ALIAS "S#COMREGMAP"(%INTEGER n)

%EXTERNAL %ROUTINE %SPEC phex(%INTEGER n)
%INTEGER %FN %SPEC validate(%INTEGER ad)

%OWN %INTEGER ignore

==== ercc07/makegld_opt.txt ====
offer gldpos
parm nocheck,nolist
edit opt03s,gldpos
i<itrimp_gldoptas>
ta/%inc/
d1i<itrimp_hostcodes>
a'
d1i<itrimp_tform2s>
a'
d1i<tripcnsts>
e
imp gldpos,.null
offer gldpos,ercs01

==== ercc07/scaler.txt ====
%ROUTINE scalereg(%INTEGER reg,scale)
!***********************************************************************
!*    Performs a simple shift optimising shifts by 0 & 1               *
!*    While were are working to the LARGE Unix model arrays            *
!*    are restricted to 64K bytes hence any index can not be larger    *
!*    than 16 bits after scaling and can use 16 bit instructions       *
!*    If we move to the HUGE model then this routine will have to      *
!*    do 32 shifts with only 16 bit instructions -- Repulsive          *
!***********************************************************************
      %IF scale<=0 %THEN %RETURN
      %IF scale=1 %THEN OpRRS(ADD,reg+1,reg+1) %ELSE OpLit(SHL,scale,reg+1)
%END
%END %OF %FILE

==== ercc07/pdiags4s.txt ====
!*
!*
!***********************************************************************
!***********************************************************************
!*                                                                     *
!*      P A S C A L   P O S T M O R T E M   D I A G N O S T I C S      *
!*                                                                     *
!***********************************************************************
!***********************************************************************
!*
!*
!*  History
!*  -------
!*
!*  Version 1 for PERQ2.
!*
%CONST %INTEGER PERQ2= 0;
%CONST %INTEGER PERQ3= 1;
%CONST %INTEGER AMDAHL= 2;
%CONST %INTEGER GOULD= 3;
%CONST %INTEGER HOST= AMDAHL

==== ercc07/trimp_cserv01s.txt ====
%INCLUDE "ERCC07.TRIMP_HOSTCODES"
%CONSTINTEGER HOST=EMAS
%INCLUDE "ERCC07.TRIMP_TFORM1S"
%OWNINTEGERNAME ASL
%OWNRECORD(LISTF)%ARRAYNAME ASLIST
%EXTRINSICRECORD(WORKAF)WORKA
%EXTRINSICRECORD(PARMF)PARM
%EXTERNALROUTINE MOVE BYTES(%INTEGER LENGTH,FBASE,FOFF,TOBASE,TOOFF)
!************************************************************************
!*    A MOVE BYTES ROUTINE THAT WILL WORK ON WORD&BYTE ADDRESS M-CS    *
!***********************************************************************
%INTEGER I
AGN:
      %RETURN %IF LENGTH<=0
      %IF HOST=EMAS %START;             ! EMAS BYTE ADDRESSES
         I=X'18000000'+LENGTH
         *LDA_TOBASE; *INCA_TOOFF; *LDTB_I
         *LSS_FBASE; *IAD_FOFF; *LUH_I
         *MV_%L=%DR
      %FINISH
      %IF HOST=PERQ %START;             ! WORD ADDRESS+BYTE OFFSET

==== ercc07/cserv01s.txt ====
%INCLUDE "ERCC07:ITRIMP_HOSTCODES"
%CONSTINTEGER HOST=AMDAHL
%INCLUDE "ERCC07:itrimp_TFORM2S"
%OWNINTEGERNAME ASL
%OWNRECORD(LISTF)%ARRAYNAME ASLIST
%EXTRINSICRECORD(WORKAF)WORKA
%EXTRINSICRECORD(PARMF)PARM
%EXTERNALROUTINE MOVE BYTES(%INTEGER LENGTH,FBASE,FOFF,TOBASE,TOOFF)
!************************************************************************
!*    A MOVE BYTES ROUTINE THAT WILL WORK ON WORD&BYTE ADDRESS M-CS    *
!***********************************************************************
%INTEGER I
AGN:
      %RETURN %IF LENGTH<=0
      %IF HOST=EMAS %START;             ! EMAS BYTE ADDRESSES
         I=X'18000000'+LENGTH
         *LDA_TOBASE; *INCA_TOOFF; *LDTB_I
         *LSS_FBASE; *IAD_FOFF; *LUH_I
         *MV_%L=%DR
      %FINISH %else %IF HOST=PERQ %START;             ! WORD ADDRESS+BYTE OFFSET
         FBASE=FBASE+FOFF>>1

==== ercc07/ibmsup_comformat.txt ====
!
%recordformat COMF(%integer OCPTYPE,SLIPL,TOPS,SEPGS,NDISCS,NSLDEVS,DLVNADDR,
{1C} DITADDR,SLDEVTABAD,STEER INT,DIRSITE,DCODEDA,SUPLVN,TOJDAY,DATE0,DATE1,
{40} DATE2,TIME0,TIME1,TIME2,PAGESIZE,USERS,CATTAD,SERVAAD,NOCPS,ITINT,RATION,
{6C} TRANS, %longinteger KMON, %integer SUPVSN,SECSFRMN,SECSTOCD,SYNC1DEST,
{88} SYNC2DEST,ASYNCDEST,MAXPROCS,INSPERSEC,ELAPHEAD,COMMSRECA,STOREAAD,
{A4} PROCAAD,TSLICE,FEPS,MAXCBT,PERFORMAD,CURPROC,INPTR,OUTPTR,
{C4} PARM ASLA,KERNELQA,RUNQ1A,RUNQ2A,CHANNELT,PROC PICTAD,SCHANNELQ,CPUID,IPLTIME,Failingport,S2,
%INTEGER %ARRAY OCP Port,OCP Prefix,OCP Proc(1:4),%integer END)
!
%endoffile

==== ercc07/pasc01s.txt ====
!*
!*
!***********************************************************************
!***********************************************************************
!*                                                                     *
!*    P A S C A L   R U N T I M E   S U P P O R T   L I B R A R Y      *
!*                                                                     *
!***********************************************************************
!***********************************************************************
!*
!*
!*  History
!*  -------
!*
!*  Version 1.0 for Perq2 and Perq3. (agh)
!*
%CONSTINTEGER PERQ2= 0;
%CONSTINTEGER PERQ3= 1;
%CONSTINTEGER AMDAHL= 2;
%CONSTINTEGER GOULD= 3;
%CONSTINTEGER HOST= AMDAHL

==== ercc07/ibmconvert_sconvibm.txt ====
%CONSTINTEGER DEBUG=0
!
!
!
%RECORDFORMAT OBJFILE( %C
 %INTEGER   LNTH,                       {LENGTH OF FILE}
            CODESTRT,                   {START OF CODE FROM START FILE}
            PHYSSIZE,                   {PHYSICAL START OF FILE}
            FILETYPE,                   {FILE TYPE 1}
            SUMCHK,                     {SUM CHECK (OPTIONAL)}
            DATETIME,                   {OF LAST WRITE TO FILE}
            LOADDATA,                   {OFFSET FROM START OF FILE}
            FILEMAP)                    {OFFSET FROM START OF FILE}
!
!
%RECORDFORMAT AREAF( %C
 %INTEGER   START,                      {OFFSET OF START OF THE AREA}
            LNTH,                       {LENGTH OF THE AREA}
            PROP)                       {PROP. TO BE ASSOCIATED WITH THE AREA}
%RECORDFORMAT MAPF(%C
 %INTEGER   NO AREAS,

==== ercc07/docs_scifac.txt ====

                              Science Faculty
                              ===============


     The Science Faculty have been heavy computer users for many years and  most
have  used  EMAS  at  some  stage  in the last decade.   These departments group
themselves naturally into three section - allowing for some  large  and  diverse
departments like Physics to appear in more than one section.

     Group A: Researchers into aspects of Computing.

        These include Artificial  Intelligence,    Artificial  Intelligence
        Application Institute,  Computer Science, Mechanical and Electrical
        Engineering,   Centre for Speech Technology and Cognitive  Science.
        This group is primarily based on Workstations linked by LAN and has
        the most advanced equipment in the University

      Group B: The Collaborators

        These include School of Agriculture,Genetics,   Molecular  Biology,

==== ercc07/ebits_ecodes13.txt ====
!
!************************************************************************
!*                                                                      *
!*                                                    G.E.Millard       *
!*   ECODES13                                         24/12/86          *
!*                                                                      *
!************************************************************************
!
{00} %constinteger      HALT =   0
!
!--------------------------------------- generic int operations -------
!
{01} %constinteger      IADD =   1     { (Etos-1) + (Etos) => (Etos)   }
{02} %constinteger      ISUB =   2     { (Etos-1) - (Etos) => (Etos)   }
{03} %constinteger     IMULT =   3     { (Etos-1) * (Etos) => (Etos)   }
{04} %constinteger      IDIV =   4     { (Etos-1) / (Etos) => (Etos)   }
{05} %constinteger      INEG =   5     {          - (Etos) => (Etos)   }
{06} %constinteger      IABS =   6     {     abs( (Etos) ) => (Etos)   }
{07} %constinteger      IREM =   7     { remainder from                }
                                       {  (Etos-1) / (Etos)=> (Etos)   }
!

==== ercc07/pasc02s.txt ====
!*
!*
!***********************************************************************
!***********************************************************************
!*                                                                     *
!*    P A S C A L   R U N T I M E   S U P P O R T   L I B R A R Y      *
!*                                                                     *
!***********************************************************************
!***********************************************************************
!*
!*
!*  History
!*  -------
!*
!*  Version 1.0 for Perq2 and Perq3. (agh)
!*
%CONSTINTEGER PERQ2= 0;
%CONSTINTEGER PERQ3= 1;
%CONSTINTEGER AMDAHL= 2;
%CONSTINTEGER GOULD= 3;
%CONSTINTEGER HOST= AMDAHL

==== ercc07/vnsgen00s.txt ====
!
! Warning this module has the revised triples spec.
!
! In first attempt at Triple Imp considerable use was made of constant operands
! to pass information from Pass2 to GEN. Although for specialised operations like
! passing Labels this still applies, this adhocery has caused problems with arrays
! and pointers particularly in mapped records. The operands for four triples
! have thus been redefined in a more standard way.
!
! GETPTR    X1 is now (ptype of passed)<<16! DIMENSION
!           Opnd2 is either a 32 bit const with the size (ACC) as value or
!           the ptr or arrayhead as normal operand.
!
! VMY       X1 is now dim<<28!maxdim<<24!array name(where known)
!           Opnd2 is either a 32 bit const with DV offset into const area or
!           the arrayhead as a standard operand
!
! AINDX     X1 is ELSIZE<<20 !spare
!           Opnd2 is arrayhead as standard operand
!           NOTE:- The Operands have been swopped for consistency with norm.
!

==== ercc07/ebits_ecodes19.txt ====
!
!************************************************************************
!*                                                                      *
!*                                                    G.E.Millard       *
!*   ECODES19                                         23/04/87          *
!*                                                                      *
!************************************************************************
!
{00} %constinteger      HALT =   0
!
!--------------------------------------- generic int operations -------
!
{01} %constinteger      IADD =   1     { (Etos-1) + (Etos) => (Etos)   }
{02} %constinteger      ISUB =   2     { (Etos-1) - (Etos) => (Etos)   }
{03} %constinteger     IMULT =   3     { (Etos-1) * (Etos) => (Etos)   }
{04} %constinteger      IDIV =   4     { (Etos-1) / (Etos) => (Etos)   }
{05} %constinteger      INEG =   5     {          - (Etos) => (Etos)   }
{06} %constinteger      IABS =   6     {     abs( (Etos) ) => (Etos)   }
{07} %constinteger      IREM =   7     { remainder from                }
                                       {  (Etos-1) / (Etos)=> (Etos)   }
!

==== ercc07/makeobfiles.txt ====
%begin
%externalroutinespec emas3(%stringname com,params,%integername flag)
%externalstring(8)%fnspec itos %alias "S#ITOS"(%integer n)
%routinespec out(%integer n)
%integer i,j,k
emas3("define","st50,out",k)
select output(50)
newline
read(j); read(k)
%for i=j,1,k %cycle
!printstring("vaximp imp80tests_rt")
!out(i)
!printstring(",rt")
!out(i)
!printstring("y,rt"); out(i)
!printstring("l")
!newline
!printstring("transfer imp80tests_rt"); out(i)
!printstring(",ercvax(ercc07,peathag)rt"); out(i)
!printstring(".imp,file,nomail")
printstring("$ run imp80

==== ercc07/makevns_opt.txt ====
edit opt03s,vpos
i<itrimp_vnsoptas>
ta/%inc/
d1i<itrimp_hostcodes>
a'
d1i<itrimp_tform2s>
a'
d1i<tripcnsts>
e
imp vpos,.null
offer vpos,eepz06

==== ercc07/ebits_ecodes21.txt ====
!
!************************************************************************
!*                                                                      *
!*                                                    G.E.Millard       *
!*   ECODES21                                         18/09/87          *
!*                                                                      *
!************************************************************************
!
{00} %constinteger      HALT =   0
!
!--------------------------------------- generic int operations -------
!
{01} %constinteger      IADD =   1     { (Etos-1) + (Etos) => (Etos)   }
{02} %constinteger      ISUB =   2     { (Etos-1) - (Etos) => (Etos)   }
{03} %constinteger     IMULT =   3     { (Etos-1) * (Etos) => (Etos)   }
{04} %constinteger      IDIV =   4     { (Etos-1) / (Etos) => (Etos)   }
{05} %constinteger      INEG =   5     {          - (Etos) => (Etos)   }
{06} %constinteger      IABS =   6     {     abs( (Etos) ) => (Etos)   }
{07} %constinteger      IREM =   7     { remainder from                }
                                       {  (Etos-1) / (Etos)=> (Etos)   }
!

==== ercc07/algtests_at100.txt ====

'BEGIN'
    'COMMENT' LIBRARY 1;
    'INTEGER'I,
    'ARRAY' A[ 1 : 1 ];
    I := A[1] := 1;
    OUTREAL(99, I + A[1])
'END'

==== ercc07/algtests_at101.txt ====

'BEGIN'
    'INTEGER'
        X,
        Y;
    X := + 2Y := - 3;
    'IF' X < - Y 'THEN'
'END'

==== ercc07/algtests_at102.txt ====

'BEGIN'
    'INTEGER'
        X,
        Y;
    X :=;
'END'

==== ercc07/algtests_at103.txt ====

'BEGIN'
    'INTEGER'
        X,
        Y;
    X := + 3 := Y
'END'

==== ercc07/algtests_at104.txt ====

'BEGIN'
    'REAL'
        W,
        V;
    'REAL'
        X,
        Y,
        Z;
    X := + 6.0;
    Y := - 2.931;
    Z := 4^.2;
    W := 10, 000;
'END'

==== ercc07/algtests_at105.txt ====

'BEGIN'
    'REAL'
        V;
    V := 3.5&( - 3);
'END'

==== ercc07/pasc03s.txt ====
!*
!*
!***********************************************************************
!***********************************************************************
!*                                                                     *
!*    P A S C A L   R U N T I M E   S U P P O R T   L I B R A R Y      *
!*                                                                     *
!***********************************************************************
!***********************************************************************
!*
!*
!*  History
!*  -------
!*
!*  Version 1.0 for Perq2 and Perq3. (agh)
!*  29/04/86 - Fix field-width bug in WriteWord.
!*  03/05/86 - Introduce CheckName to validate file names.
!*  05/05/86 - Revised treatment of file names. Remove close error
!*             check from reset, rewrite and append. Add New3 and
!*             Dispose3.
!*  06/05/86 - In ExtendHeap chain blocks correctly.

==== ercc07/algtests_at106.txt ====

'BEGIN'
    'COMMENT' LIBRARY 1;
    'INTEGER'
        N;
    'REAL'
        R;
    N := 2;
    R := 2.5&N;
    OUTREAL(99, R);
'END'

==== ercc07/plink01.txt ====
#mon
link ,map
ERCS12:pobject.OPTIONS5Y
ERCS12:pobject.ANALYSER7Y
ERCS12:pobject.ASSGNCODE5Y
ERCS12:pobject.CODEINIT7Y
ERCS12:pobject.CTLSTRUCT9Y
ERCS12:pobject.DATAREPS7Y
ERCS12:pobject.DIAGS3Y
ERCS12:pobject.DUMP5Y
ERCS12:pobject.EXPEVAL19Y
ERCS12:pobject.GENERATOR4Y
ERCS12:pobject.LEXICAL3Y
ERCS12:pobject.MAIN5Y
ERCS12:pobject.PROGPARAM1Y
ERCS12:pobject.PROLOGUE2Y
ERCS12:pobject.SEMANTICS8Y
ERCS12:pobject.SOURCE5Y
ERCS12:pobject.STDPROCS8Y
ERCS12:pobject.SYNTAX1Y
ERCS12:pobject.VARREF9Y

==== ercc07/make88k_p1.txt ====
edit poneb02s,m88p102s
i<itrimp_m88kponeas>
ta/%inc/
d1i<itrimp_hostcodes>
a'
d1i<itrimp_tform2s>
m/%constlonglongreal/
ta/host=/i/PERQ3
/d
1e
imp m88p102s,m88p1y
permit m88p102s

==== ercc07/tripcnsts.txt ====
!
! FIRST THE OPERAND FLAG CONSTANTS
!
%CONSTINTEGER SCONST=0;                 ! CONST UPTO 64 BITS value is carried
                                        ! in opnd_d and opnd_xtra
%CONSTINTEGER LCONST=1;                 ! CONST LONGER THAN SCONST const can be
                                        ! found elsewhere(at top of ar) by
                                        ! meanse of base&offset inf in_d and _xtra
%CONSTINTEGER DNAME=2;                  ! NAME BY DICTIONARY NO the base and disp in
                                        ! the dictionary after adjusting by
                                        ! possible offset for item in
                                        ! in records lead to the variable
%CONSTINTEGER ARNAME=3;                 ! NAME BY AR POINTER opnd_d the ar pointer
                                        ! this form local to pass2
                                        ! and used to identify functions
                                        ! with params before the call
                                        ! is planted
%CONSTINTEGER VIAPTR=4;                 ! VIA TRIPLE WITHOFFSET TO POINTER
                                        ! At an offset(_xtra) from address in
                                        ! referenced triple can be found a
                                        ! pointer to the required operand

==== ercc07/ebits_ecodes28.txt ====
! Copyright (c) 1987 Edinburgh Portable Compilers Ltd. All Rights Reserved.
!
!************************************************************************
!*                                                                      *
!*                                                    G.E.Millard       *
!*   ECODES28                                         09/2/88          *
!*                                                                      *
!************************************************************************
!
{00} %constinteger      HALT =   0
!
!--------------------------------------- generic int operations -------
!
{01} %constinteger      IADD =   1     { (Etos-1) + (Etos) => (Etos)   }
{02} %constinteger      ISUB =   2     { (Etos-1) - (Etos) => (Etos)   }
{03} %constinteger     IMULT =   3     { (Etos-1) * (Etos) => (Etos)   }
{04} %constinteger      IDIV =   4     { (Etos-1) / (Etos) => (Etos)   }
{05} %constinteger      INEG =   5     {          - (Etos) => (Etos)   }
{06} %constinteger      IABS =   6     {     abs( (Etos) ) => (Etos)   }
{07} %constinteger      IREM =   7     { remainder from                }
                                       {  (Etos-1) / (Etos)=> (Etos)   }

==== ercc07/algtests_at107.txt ====

'BEGIN'
    'REAL'
        X,
        Y,
        Z;
    Y := 2.0;
    X := 2.5;
    Z := 5Y * (2 + X);
'END'

==== ercc07/plink02.txt ====
link ,map
ERCS12:pobject.OPTIONS5Y
ERCS12:pobject.ANALYSER7Y
ERCS12:pobject.ASSGNCODE5Y
ERCS12:pobject.CODEINIT7Y
ERCS12:pobject.CTLSTRUCT9Y
ERCS12:pobject.DATAREPS7Y
ERCS12:pobject.DIAGS3Y
ERCS12:pobject.DUMP5Y
ERCS12:pobject.EXPEVAL19Y
ERCS12:pobject.GENERATOR4Y
ERCS12:pobject.LEXICAL3Y
ERCS12:pobject.MAIN5Y
ERCS12:pobject.PROGPARAM1Y
ERCS12:pobject.PROLOGUE2Y
ERCS12:pobject.SEMANTICS8Y
ERCS12:pobject.SOURCE5Y
ERCS12:pobject.STDPROCS8Y
ERCS12:pobject.SYNTAX1Y
ERCS12:pobject.VARREF9Y
ERCS12:pobject.WITHSTMTS2Y

==== ercc07/algtests_talgcomp.txt ====
algol ercc07:algtests_at1,ay,.out
run ay
algol ercc07:algtests_at2,ay,.out
run ay
algol ercc07:algtests_at3,ay,.out
run ay
algol ercc07:algtests_at4,ay,.out
run ay
algol ercc07:algtests_at5,ay,.out
run ay
algol ercc07:algtests_at6,ay,.out
run ay
algol ercc07:algtests_at7,ay,.out
run ay
algol ercc07:algtests_at8,ay,.out
run ay
algol ercc07:algtests_at9,ay,.out
run ay
algol ercc07:algtests_at10,ay,.out
run ay
algol ercc07:algtests_at11,ay,.out

==== ercc07/make88k_p2.txt ====
edit timp06s,m88p206s
i<itrimp_m88kptwoas>
ta/%inc/
d1i<itrimp_hostcodes>
a'
d1i<tripcnsts>
a'
d1i<itrimp_tform2s>
ta/host=/i/PERQ3
/d1
e
imp m88p206s,y
permit m88p206s


==== ercc07/ebits_ecodes29.txt ====
! Copyright (c) 1987 Edinburgh Portable Compilers Ltd. All Rights Reserved.
!
!************************************************************************
!*                                                                      *
!*                                                    G.E.Millard       *
!*   ECODES28                                         09/2/88          *
!*                                                                      *
!************************************************************************
!
{00} %constinteger      HALT =   0
!
!--------------------------------------- generic int operations -------
!
{01} %constinteger      IADD =   1     { (Etos-1) + (Etos) => (Etos)   }
{02} %constinteger      ISUB =   2     { (Etos-1) - (Etos) => (Etos)   }
{03} %constinteger     IMULT =   3     { (Etos-1) * (Etos) => (Etos)   }
{04} %constinteger      IDIV =   4     { (Etos-1) / (Etos) => (Etos)   }
{05} %constinteger      INEG =   5     {          - (Etos) => (Etos)   }
{06} %constinteger      IABS =   6     {     abs( (Etos) ) => (Etos)   }
{07} %constinteger      IREM =   7     { remainder from                }
                                       {  (Etos-1) / (Etos)=> (Etos)   }

==== ercc07/algtests_at108.txt ====

'BEGIN'
    'REAL'
        Y1,
        Y2;
    Y1 := Y2 := 1;
    REPEAT :;
    'IF' Y1 > 0 'THEN'
        'GOTO' STOP'GOTO' REPEAT;
    STOP :;
'END'

==== ercc07/plink03.txt ====
link ,map
ercc07:OPTIONS5Y
ERCC07:ANALYSER7Y
ercc07:ASSGNCODE5Y
ercc07:CODEINIT7Y
ercc07:CTLSTRUCT9Y
ercc07:DATAREPS7Y
ercc07:DIAGS3Y
ercc07:DUMP5Y
ercc07:EXPEVAL9Y
ercc07:GENERATOR4Y
ercc07:LEXICAL3Y
ercc07:MAIN5Y
ercc07:PROGPARAM1Y
ercc07:PROLOGUE2Y
ercc07:SEMANTICS8Y
ercc07:SOURCE5Y
ercc07:STDPROCS8Y
ercc07:SYNTAX1Y
ercc07:VARREF9Y
ercc07:WITHSTMTS2Y

==== ercc07/make88k_p3.txt ====
edit opt04s,m88p305s
i<itrimp_M88Koptas>
ta/%inc/
d1i<itrimp_hostcodes>
a'
d1i<itrimp_tform2s>
a'
d1i<tripcnsts>
e
imp m88p305s,.null
permit m88p305s

==== ercc07/algtests_at109.txt ====

'BEGIN'
    'REAL'
        X,
        Y,
        Z;
    X := 6.0;
    5.0;
    Y := - 2.931;
    Z := 4^.2;
'END'

==== ercc07/plink04.txt ====
link ,map
ercs12:pobject.OPTIONS6y
ercs12:pobject.ANALYSER7x
ercs12:pobject.ASSGNCODE5x
ercs12:pobject.CODEINIT7x
ercs12:pobject.CTLSTRUCT9x
ercs12:pobject.DATAREPS7x
ercs12:pobject.DIAGS3x
ercs12:pobject.DUMP5x
ercs12:pobject.EXPEVAL9x
ercs12:pobject.GENERATOR4x
ercs12:pobject.LEXICAL3x
ercs12:pobject.MAIN5x
ercs12:pobject.PROGPARAM1x
ercs12:pobject.PROLOGUE2x
ercs12:pobject.SEMANTICS8x
ercs12:pobject.SOURCE5x
ercs12:pobject.STDPROCS8x
ercs12:pobject.SYNTAX1x
ercs12:pobject.VARREF9x
ercs12:pobject.WITHSTMTS2x

==== ercc07/make88k_p4.txt ====
parm nocheck
edit m88kp405s,m88p419s
a/%incl/d1i<itrimp_hostcodes>
a'd1i<ercs01:ebits_ecodes28>
a'd1i<tripcnsts>
a'd1i<itrimp_tform2s>
ta/host=/r6i/Perq3/
e
imp m88p419s,.null
permit m88p419s

==== ercc07/ebits_defs.txt ====
!*
%constinteger LitVal         =  0        {  lit        }
%constinteger ConstVal       =  1        {  const      }
%constinteger RegVal         =  2        {  (reg)      }
%constinteger FregVal        =  3        {  (freg)     }
%constinteger TempVal        =  4        {  (temp)     }
%constinteger DirVal         =  5        {  (dir)      }
%constinteger IndRegVal      =  6        { ((reg))     }
%constinteger IndTempVal     =  7        { ((temp))    }
%constinteger IndDirVal      =  8        { ((dir))     }
%constinteger AddrConst      =  9        {  @const     }
%constinteger AddrDir        = 10        {  @dir       }
%constinteger RegAddr        = 11        {  (reg) is @ }
%constinteger TempAddr       = 12        {  (temp) is @}
%constinteger DirAddr        = 13        {  (dir) is @ }
%constinteger AddrDirMod     = 14        {  @dir+M     }
%constinteger RegModAddr     = 15        {  (reg)+M    }
%constinteger TempModAddr    = 16        {  (temp)+M   }
%constinteger DirModAddr     = 17        {  (dir)+M    }
%constinteger IndRegModVal   = 18        { ((reg)+M)   }
%constinteger IndTempModVal  = 19        { ((temp)+M)  }

==== ercc07/algtests_at110.txt ====

'BEGIN'
    'INTEGER'
        I.J;
    I := 2;
    J := 3;
    'IF' I * J > I + J 'THEN'
'END'

==== ercc07/algtests_at111.txt ====

'BEGIN'
    'REAL'
        A,
        X;
    X := - 10.0;
    A := ('IF' X < 0 'THEN' X - 1 'ELSE' 'IF' X > 1 'THEN' X + 1 'ELSE'
        X;
'END'

==== ercc07/algtests_at112.txt ====

'BEGIN'
    'REAL'
        X;
    Y;
    Z;
    X := + 6.0;
    Y := - 2.931;
    Z := 4^.2;
'END'

==== ercc07/algtests_at113.txt ====

'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'REAL'
        A,
        X;
    X := 0.8;
    A := ('IF' X >= 0 'AND' X <= 1 'THEN' X * X - 3 * X + 4 'ELSE'
        0);
       OUTREAL(A);
'END'

==== ercc07/algtests_at114.txt ====

'BEGIN'
'INTEGER' J,K;
'ARRAY' A(/0:3/);
K := 2;
'FOR' J := 1 'STEP' 1 'UNTIL' K
'BEGIN'
I := 0;
'END';
'END'

==== ercc07/ifix7s.txt ====

%CONSTSTRING (20) VERSION= "IFIX 7  19/8/86"
%CONSTINTEGER SEGSIZE= X'00040000'
%CONSTINTEGER IPUT=0,LPUT=1
!**** RECORD FORMATS ****
%RECORDFORMAT DIRINFF(%STRING (6) USER, %STRING (31) BATCHFILE, %INTEGER MARK,FSYS,PROCNO,
   ISUFF,REASON,BATCHID,SESSICLIM,SCIDENSAD,SCIDENS,OPERNO,MSGFAD,SCDATE,SYNC1DEST,SYNC2DEST,
   ASYNCDEST)
%RECORDFORMAT TABF(%STRING (31) NAME, %INTEGER I,J)
%RECORDFORMAT RF(%INTEGER AREALOC,BASELOC)
%RECORDFORMAT RELF(%INTEGER LINK,N, %RECORD (RF) %ARRAY R(1:4000))
%RECORDFORMAT OFMF(%INTEGER START,L,PROP)
%RECORDFORMAT RRF(%INTEGER CONAD,FILETYPE,DATASTART,DATAEND)
%RECORDFORMAT CENTF(%INTEGER LINK,(%INTEGER LOC, %STRING (31) IDEN %ORINTEGER CODE OFFSET,
   GLA OFFSET,EP OFFSET,PWORD, %STRING (31) IDEN2))
%RECORDFORMAT DENTF(%INTEGER LINK,DISP,L,A, %STRING (31) IDEN)
%RECORDFORMAT CREFF(%INTEGER LINK,REFLOC, %STRING (31) IDEN)
%RECORDFORMAT DREFF(%INTEGER LINK,REFARRAY,L, %STRING (31) IDEN)
!**** SYSTEM AND EXTERNAL SPECS******
!%DYNAMICINTEGERFNSPEC BUILDSCT(%INTEGER OUTBASE, INBASE)
%EXTERNALINTEGERFNSPEC OUTSTREAM %ALIAS "S#OUTSTREAM"

==== ercc07/algtests_at115.txt ====

'BEGIN'
    'INTEGER'
        I,
        J;
    'REAL' 'ARRAY'
        CAT(1 : 15);
'END'

==== ercc07/pasc04s.txt ====
!*
!*
!***********************************************************************
!***********************************************************************
!*                                                                     *
!*    P A S C A L   R U N T I M E   S U P P O R T   L I B R A R Y      *
!*                                                                     *
!***********************************************************************
!***********************************************************************
!*
!*
!*  History
!*  -------
!*
!*  Version 1.0 for Perq2 and Perq3. (agh)
!*  29/04/86 - Fix field-width bug in WriteWord.
!*  03/05/86 - Introduce CheckName to validate file names.
!*  05/05/86 - Revised treatment of file names. Remove close error
!*             check from reset, rewrite and append. Add New3 and
!*             Dispose3.
!*  06/05/86 - In ExtendHeap chain blocks correctly.

==== ercc07/algtests_at116.txt ====

'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'COMMENT'   USE OF A PROCEDURE;
    'REAL'
        A,
        B,
        ;
    'PROCEDURE' EXAMPLE(X, Y)RESULT : (R);
        'VALUE'
            X,
            Y;
        'REAL'
            X,
            Y,
            R;
        'BEGIN'
        X := X + Y;
        R := X^2 + Y^2
        'END';
    A := 1;

==== ercc07/algtests_at117.txt ====

'BEGIN'
    'SWITCH' PATH :=
        P1,
        P2;
    'INTEGER'
        N,
        I;
    I := 0;
    LABEL 1 :;
    I := I + 1;
    'IF' I = 2 'THEN'
        'GOTO' STOP;
    N := 0;
    'GOTO'
        'IF' P > 0 'THEN'
            PATH(N)
        'ELSE'
            LABEL 1;
    P1 := P - 1;
    P2 := P - 1;

==== ercc07/algtests_at118.txt ====

'BEGIN'
    'INTEGER'
        I;
    'REAL'
        X;
    'ARRAY'
        A(/0, 3/);
    I := 1;
    'FOR' X := 1.0,
        2.0,
        3.0 'DO'
        'BEGIN'
        A(/I/):= X;
        I := I + 1
        'END';
'END'

==== ercc07/ebits_etrput1.txt ====
!* modified 21/08/85
!*
%ownstring(31) Versiontext="Fortran77 Compiler Version 0.1"
%owninteger Report=1
%owninteger Decode
%owninteger Language
%owninteger Nextprocid
!*
%constinteger IMP      =  1
%constinteger FORTRAN  =  2
%constinteger CCOMP    = 11
%constinteger PASCAL   = 14
!*
!***********************************************************************
!* Exports                                                             *
!***********************************************************************
!*
%routinespec Einitialise(%integer Lang, Avertext, Astackca,
                                                    Aglaca, Options)
%routinespec Eterminate(%integer adareasizes)
%routinespec Ecommon(%integer area, %stringname Name)

==== ercc07/algtests_at119.txt ====

'BEGIN'
    'INTEGER'
        K;
    K := 0;
    'IF' K = 0'GOTO' FINISH 'ELSE'
        K := K + 1;
    FINISH :;
'END'

==== ercc07/ebits_etrput2.txt ====
!* modified 21/08/85
!*
%ownstring(31) Versiontext="Fortran77 Compiler Version 0.1"
%owninteger Report=1
%owninteger Decode
%owninteger Language
%owninteger Nextprocid
!*
%constinteger IMP      =  1
%constinteger FORTRAN  =  2
%constinteger CCOMP    = 11
%constinteger PASCAL   = 14
!*
!***********************************************************************
!* Exports                                                             *
!***********************************************************************
!*
%routinespec Einitialise(%integer Lang, Avertext, Astackca,
                                                    Aglaca, Options)
%routinespec Eterminate(%integer adareasizes)
%routinespec Ecommon(%integer area, %stringname Name)

==== ercc07/plink14.txt ====
#scom 26,0
link ,map
ercc07:totaly
ERCC07:PDRIVER14Y
ERCC07:XGEN29YO
.end
ercc07:p0y
MODIFY P0Y,p00y
SATISFY REFS
.ALL
SATISFY DATA
.ALL
SUPPRESS
.ALL
RETAIN
emaszpascal
SUPPRESS DATA
.ALL
redirect
ptraceon, S#PTRACEON
ptraceoff,S#PTRACEOFF

==== ercc07/plink15.txt ====
#scom 26,0
link ,map
ercc07:totaly
ERCC07:PDRIVER15Y
ercc07:xgen30y
.end
ercc07:p0y
MODIFY P0Y,p00y
SATISFY DATA
.ALL
redirect
Einitialise,E#INITIALISE
Eterminate,E#TERMINATE
Elinestart,E#LINESTART
Eswapmode,E#SWAPMODE
Emonon,E#MOMON
Emonoff,E#MONOFF
Efaulty,E#FAULTY
Estklit,E#STKLIT
Estkconst,E#STKCONST
Estkdir,E#STKDIR

==== ercc07/algtests_at120.txt ====

'BEGIN'
    'REAL'
        X'INTEGER' I;
    'ARRAY'
        A(/0 : 3/);
    I := 0;
    'FOR' X := 1.23,
        2.34,
        3.45 'DO'
        'BEGIN'
        A(/I/):= X;
        I := I + 1
        'END';
'END'

==== ercc07/plink16.txt ====
#scom 26,0
link ,map
ercc07:totaly
ERCC07:PDRIVER16Y
ercc07:xgen31y
.end
ercc07:p0y
MODIFY P0Y,p00y
SATISFY DATA
.ALL
redirect
Einitialise,E#INITIALISE
Eterminate,E#TERMINATE
Elinestart,E#LINESTART
Eswapmode,E#SWAPMODE
Emonon,E#MOMON
Emonoff,E#MONOFF
Efaulty,E#FAULTY
Estklit,E#STKLIT
Estkconst,E#STKCONST
Estkdir,E#STKDIR

==== ercc07/algtests_at121.txt ====

'BEGIN'
'COMMENT' 'LIBRARY' 1;
    'INTEGER'
        I,
        P;
    I := 0;
    'FOR' P := 1 'STEP' 1 'UNTIL' 4 'DO'
        'BEGIN'
        'OWN' 'INTEGER'
            I;
        'IF' P = 1 'THEN'
            I := 3
        'ELSE'
            I := 2 * I;
        'BEGIN'
            'INTEGER'
                J,
                I;
            J := 4;
            I := 0

==== ercc07/plink17.txt ====
#scom 26,0
link ,map
ercc07:totaly
ERCC07:PDRIVER17Y
.end
ercc07:p0y
MODIFY P0Y,p00y
SATISFY DATA
.ALL
redirect
Einitialise,E#INITIALISE
Eterminate,E#TERMINATE
Elinestart,E#LINESTART
Eswapmode,E#SWAPMODE
Emonon,E#MOMON
Emonoff,E#MONOFF
Efaulty,E#FAULTY
Estklit,E#STKLIT
Estkconst,E#STKCONST
Estkdir,E#STKDIR
Estkglobal,E#STKGLOBAL

==== ercc07/algtests_at122.txt ====

'BEGIN'
'COMMENT' 'LIBRARY' 1;
    'INTEGER'
        I,
        P;
    I := 0;
    'FOR' P := 1 'STEP' 1 'UNTIL' 4 'DO'
        'BEGIN'
        'OWN' 'INTEGER'
            I;
        'IF' P = 1 'THEN'
            I := 3
        'ELSE'
            I := 2 * I;
        'BEGIN'
            'OWN' 'INTEGER'
                J,
                I;
            I := 0;
            'IF' I = 0 'THEN'

==== ercc07/plink18.txt ====
#scom 26,0
link ,map
ercc07:totaly
ERCC07:PDRIVER18Y
.end
ercc07:p0y
MODIFY P0Y,p00y
SATISFY DATA
.ALL
redirect
Einitialise,E#INITIALISE
Eterminate,E#TERMINATE
Elinestart,E#LINESTART
Eswapmode,E#SWAPMODE
Emonon,E#MOMON
Emonoff,E#MONOFF
Efaulty,E#FAULTY
Estklit,E#STKLIT
Estkconst,E#STKCONST
Estkdir,E#STKDIR
Estkglobal,E#STKGLOBAL

==== ercc07/algtests_at123.txt ====

'BEGIN'
'COMMENT' 'LIBRARY' 1;
    'INTEGER'
        I,
        P;
    I := 0;
    'FOR' P := 1 'STEP' 1 'UNTIL' 4 'DO'
        'BEGIN'
        'OWN' 'INTEGER'
            I;
        'IF' P = 1 'THEN'
            I := 3
        'ELSE'
            I := 2 * I;
        'BEGIN'
            'OWN' 'INTEGER'
                J,
                I;
            'IF' I = 0 'THEN'
                J := 4

==== ercc07/docs_sep82.txt ====


      EMAS Team termly Report
      -----------------------

     The summer has been a time of intense activity for the EMAS group as two
major pieces of hardware had to be commissioned.  Both involved substantial
software changes and both projects were completed within the hoped for
timescales  - timescales that had been agreed before it was realised that the
two events would become co-temporaneous! The team deserves the congratulation
of the rest of the ERCC for a notable and successful effort and it is
regrettable that hardware problems, particularly with the 2988, have prevented
the Users from realising the scale and success of these efforts.

     The DAP arrived in April with the usual sub minimum of documentation. An
elegant solution was devised for incorporating it into EMAS fully compatible
with the EMAS philosophy. Each DAP user is allocated the whole of a virtual DAP
which is connected into his address space like a virtual file. A virtual DAP,
which may be less than but not more than the size of the actual DAP, then
behaves exactly like a mapped file with the additional (and alarming!) property
that its contents change unpredictably with time. Multidap-programming is

==== ercc07/algtests_at124.txt ====

'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'REAL'
        X;
    X := 1.;
    OUTREAL(99, X);
'END'

==== ercc07/ifix8s.txt ====

%const %string (20) version= "IFIX 8  11/1/88"
%const %integer segsize= X'00040000'
%const %integer iput=0,lput=1
!**** RECORD FORMATS ****
%record %format dirinff(%string (6) user, %string (31) batchfile, %integer mark, fsys, procno, isuff, reason,
   batchid, sessiclim, scidensad, scidens, operno, msgfad, scdate, sync1dest, sync2dest, asyncdest)
%record %format tabf(%string (31) name, %integer i, j)
%record %format rf(%integer arealoc, baseloc)
%record %format relf(%integer link, n, %record (rf) %array r(1:4000))
%record %format ofmf(%integer start, l, prop)
%record %format rrf(%integer conad, filetype, datastart, dataend)
%record %format centf(%integer link, (%integer loc, %string (31) iden %or %integer code offset, gla offset,
   ep offset, pword, %string (31) iden2))
%record %format dentf(%integer link, disp, l, a, %string (31) iden)
%record %format creff(%integer link, refloc, %string (31) iden)
%record %format dreff(%integer link, refarray, l, %string (31) iden)
!**** SYSTEM AND EXTERNAL SPECS******
!%dynamicintegerfnspec BUILDSCT(%integer OUTBASE, INBASE)
%external %integer %fn %spec outstream %alias "S#OUTSTREAM"
%external %string (8) %fn %spec time %alias "S#TIME"

==== ercc07/algtests_at125.txt ====

'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'REAL'
        X;
    X := 1.&;
    OUTREAL(99, X);
'END'

==== ercc07/pasc05s.txt ====
!*
!*
!***********************************************************************
!***********************************************************************
!*                                                                     *
!*    P A S C A L   R U N T I M E   S U P P O R T   L I B R A R Y      *
!*                                                                     *
!***********************************************************************
!***********************************************************************
!*
!*
!*  History
!*  -------
!*
!*  Version 1.0 for Perq2 and Perq3. (agh)
!*  29/04/86 - Fix field-width bug in WriteWord.
!*  03/05/86 - Introduce CheckName to validate file names.
!*  05/05/86 - Revised treatment of file names. Remove close error
!*             check from reset, rewrite and append. Add New3 and
!*             Dispose3.
!*  06/05/86 - In ExtendHeap chain blocks correctly.

==== ercc07/algtests_at126.txt ====

'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'REAL'
        X;
    X := &+;OUTREAL(99, X);
'END'

==== ercc07/perq3gen00s.txt ====
!
! Warning this module has the revised triples spec.
!
! In first attempt at Triple Imp considerable use was made of constant operands
! to pass information from Pass2 to GEN. Although for specialised operations like
! passing Labels this still applies, this adhocery has caused problems with arrays
! and pointers particularly in mapped records. The operands for four triples
! have thus been redefined in a more standard way.
!
! GETPTR    X1 is now (ptype of passed)<<16! DIMENSION
!           Opnd2 is either a 32 bit const with the size (ACC) as value or
!           the ptr or arrayhead as normal operand.
!
! VMY       X1 is now dim<<28!maxdim<<24!array name(where known)
!           Opnd2 is either a 32 bit const with DV offset into const area or
!           the arrayhead as a standard operand
!
! AINDX     X1 is ELSIZE<<20 !spare
!           Opnd2 is arrayhead as standard operand
!           NOTE:- The Operands have been swopped for consistency with norm.
!

==== ercc07/docs_sep85.txt ====

                       Central Systems Group Report

a)EMAS

     It became apparent during this period that certain features of  the  EMAS-3
subsystem,  particularly around the Parameter Acquistion Mechanism (PAM), caused
a disproportionate amount of work when programs or packages are moved from 2900.
This  area has been simplified and re-implemented so that program importation is
now much easier. The main benefits of the previous design have been retained, in
particular  the  consistent  prompting and defaulting arrangements of PAM.   One
consequence change at this late stage is that much of the HELP  information  and
documentation,  which had been prepared well in advance, has had to be withdrawn
for revision.

     The permanent front end hardware and software entered service in  the  last
weeek  of  September  and some teething problems persisted into the User service
which started in October.   The interim front end ancient hardware has given  an
unexpectedly reliable service througout the development period.

     The Service system as at 1st October has all the main  components  -  viz:-

==== ercc07/algtests_at127.txt ====

'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'REAL'
        X;
    X := &;
    OUTREAL(99, X);
'END'

==== ercc07/algtests_at128.txt ====

'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'REAL'
        X;
    X := .;
    OUTREAL(99, X);
'END'

==== ercc07/ibmsup_seguse.txt ====

!
! This is the latest information on the use of Segments for EMAS3.
! Segments 0-63 correspond roughly to Public in EMAS2
! Segments 64-255 are the equivalent to Local in Emas2
! Segments 241-255 vanish from the Segment table when User is running
! but re-appear when Director is entered.
!
!     Seg 0                             address page 0 and used for
!                                       the zero page (page 1) and
!                                       writing to real addresses (page 2)
!     Seg 1                             segment table segment
!     Seg 2                             Supervisor stack
!     Seg 3                             Alternate Local Controller Stack for Amdahl
!                                       which uses 24 bit virtual addresses in Priv instrns
!     Seg 4                             Supervisor code
!     Segs 5-7                          free (for testing on 24 bit machines
!                                       these contain overflow portions of code)
!     Seg 8                             Supervisor Gla
!     Segs 9-15                        Reserved for VSS
!     Segs 16-19                        Fress

==== ercc07/algtests_at129.txt ====

'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'REAL'
        X;
    X := &-1000;
    OUTREAL(99, X);
'END'

==== ercc07/eamdlink.txt ====
LINK 
ERCC07:ep1Y
ERCC07:ep22Y
ERCC07:eoPT3Y
ERCC07:eGEN0Y
ERCC07:CSERV01x
ercc07:xgen28y
.END
P0Y
MODIFY P0Y
SATISFY REFS
.ALL
SATISFY DATA
.ALL
SUPPRESS
.ALL
RETAIN
ICL9CEZEAMDIMP
SUPPRESS DATA
.ALL
CLOSE

==== ercc07/algtests_at130.txt ====

'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'INTEGER'
        I;
    'PROCEDURE' P;
        'BEGIN'
        'INTEGER'
            J;
        'PROCEDURE' Q;
            'IF' I > 10 'THEN'
                'GOTO' L;
        J := I := I + 1;
        Q;
        OUTREAL(99, J);
        P;
        L :;
        OUTREAL(99, J);
        'END';
    I := 1;
    P;

==== ercc07/algtests_at131.txt ====

'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'REAL' 'ARRAY'
        JJ(/1 : 8/);
    'PROCEDURE' P(X);
        'VALUE'
            X;
        'INTEGER'
            X;
        ;
    'PROCEDURE' DEVIATION;
        'BEGIN'
        'REAL'
            X,
            Y;
        P(JJ)
        'END';
    DEVIATION;
'END'

==== ercc07/algtests_at132.txt ====

'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'INTEGER'
        I,
        J,
        CASE;
    'PROCEDURE' CHECKB(BOOL, ANSWER);
        'VALUE'
            ANSWER;
        'BOOLEAN'
            BOOL;
        'INTEGER'
            ANSWER;
        'BEGIN'
        'BOOLEAN'
            B;
        'PROCEDURE' FAIL;
            'BEGIN'
            OUTREAL(99, I);
            OUTREAL(99, J);

==== ercc07/docs_mis.txt ====

Administrative Computing

a) Overview

     Administrative computing started in the Secretary's office with the
establishment of a Data Processing Unit (DPU) to serve the central area
administration, primarily the Finance and Secretary's departments. IBM hardware
and software was chosen using IBM terminals running IBM's private protocols.
There was little contact with the computing service.

     The second area of administrative computing originated in the Faculty
offices often starting with word processing and evolving into the manipulation
of class lists, marks, etc. This was often performed on micros or stand alone
machines. The offices were subsequently provided with a terminal into the DPU
machine on which data could be displayed but not easily transferred into the
Faculty machine except by re-keying.

     The third birthplace of administrative computing was individual departments
starting naturally with the highly numerate departments. These expected to use
the same terminal or workstation for their admin as for their research and

==== ercc07/algtests_at133.txt ====

'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'INTEGER'
        I;
    'INTEGER' 'ARRAY'
        C(/1 : 3/);
    'FOR' I := 1,
        2,
        3 'DO'
        C(/I/):= I + 1;
    'FOR' I := 1,
        2,
        3 'DO'
        'IF' C(/C(/C(/C(/C(/C(/I/)- 1/)- 1/)- 1/)- 1/)- 1/)# I + 1
            'THEN'
            OUTREAL(99, I);
    OUTREAL(99, 0)
'END'

==== ercc07/algtests_at134.txt ====

'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'INTEGER'
        I,
        J,
        K;
    'BOOLEAN'
        P,
        T;
    'PROCEDURE' FAIL;
        'BEGIN'
        OUTREAL(99, I);
        OUTREAL(99, J)
        'END';
    T := 'TRUE';
    'FOR' I := - 1,
        0,
        1 'DO'
        'FOR' J := - 1,
            0,

==== ercc07/algtests_at135.txt ====

'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'REAL'
        X,
        Y,
        Z,
        U;
    'INTEGER'
        I,
        CASE;
    'PROCEDURE' COMPARE(U, V);
        'VALUE'
            U,
            V;
        'REAL'
            U,
            V;
        'BEGIN'
        CASE := CASE + 1;
        'IF' U # V 'THEN'

==== ercc07/pasc06s.txt ====
!*
!*
!***********************************************************************
!***********************************************************************
!*                                                                     *
!*    P A S C A L   R U N T I M E   S U P P O R T   L I B R A R Y      *
!*                                                                     *
!***********************************************************************
!***********************************************************************
!*
!*
!*  History
!*  -------
!*
!*  Version 1.0 for Perq2 and Perq3. (agh)
!*  29/04/86 - Fix field-width bug in WriteWord.
!*  03/05/86 - Introduce CheckName to validate file names.
!*  05/05/86 - Revised treatment of file names. Remove close error
!*             check from reset, rewrite and append. Add New3 and
!*             Dispose3.
!*  06/05/86 - In ExtendHeap chain blocks correctly.

==== ercc07/portenv03_langs.txt ====
%include "itrimp_hostcodes"
%CONSTINTEGER TARGET=M88K
%EXTERNALROUTINESPEC IOCP %ALIAS "s_iocp"(%INTEGER EP,N)
%CONSTLONGREAL GREATEST= 7.2370055773322608@ 75{R'7FFFFFFFFFFFFFFF'}
%EXTERNALROUTINE MOVE %ALIAS "s_move"(%INTEGER LENGTH,FROM,TO)
%INTEGER I
      %RETURNIF LENGTH<=0
      %IF target=emas %THENSTART
         I=X'18000000'!LENGTH
         *LSS_FROM
         *LUH_I
         *LDTB_I
         *LDA_TO
         *MV_ %L = %DR
      %FINISHELSEIF target=perq %OR TARGET=ACCENT %OR target=pnx %START
         %CYCLE i=0,1,length>>2-1
            halfinteger(to+i)=halfinteger(from+i)
         %REPEAT
      %FINISHELSESTART;                 ! ibm etc
         %if FROM<=TO<=FROM+LENGTH %START
            %CYCLE I=length-1,-1,0

==== ercc07/algtests_at136.txt ====

'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'REAL'
        X;
    X := + + 1.0;
    X := - - X;
    OUTREAL(99, + - X)
'END'

==== ercc07/perq3gen01s.txt ====
!
! Warning this module has the revised triples spec.
!
! In first attempt at Triple Imp considerable use was made of constant operands
! to pass information from Pass2 to GEN. Although for specialised operations like
! passing Labels this still applies, this adhocery has caused problems with arrays
! and pointers particularly in mapped records. The operands for four triples
! have thus been redefined in a more standard way.
!
! GETPTR    X1 is now (ptype of passed)<<16! DIMENSION
!           Opnd2 is either a 32 bit const with the size (ACC) as value or
!           the ptr or arrayhead as normal operand.
!
! VMY       X1 is now dim<<28!maxdim<<24!array name(where known)
!           Opnd2 is either a 32 bit const with DV offset into const area or
!           the arrayhead as a standard operand
!
! AINDX     X1 is ELSIZE<<20 !spare
!           Opnd2 is arrayhead as standard operand
!           NOTE:- The Operands have been swopped for consistency with norm.
!

==== ercc07/algtests_at137.txt ====

'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'BOOLEAN'
        B;
    B := 'NOT' 'TRUE';
    B := 'NOT' ( 'NOT' B);
    B := 'NOT' 'NOT' B;
    OUTREAL(99, 'IF' B 'THEN' 0 'ELSE' 1)
'END'

==== ercc07/algtests_at138.txt ====

'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'REAL'
        X;
    'INTEGER'
        I;
    'PROCEDURE' NOTFUNCTION(Y);
        'VALUE'
            Y;
        'REAL'
            Y;
        'BEGIN'
        I := I + 1;
        X := Y
        'END';
    X := 1.0;
    I := 0;
    X := 3 * NOTFUNCTION(4.0);
    OUTREAL(99, X + NOTFUNCTION(X) + I)
'END'

==== ercc07/trimp_perqponeas.txt ====
%INCLUDE "ERCC07.TRIMP_HOSTCODES"
%CONSTINTEGER HOST=EMAS
%CONSTINTEGER TARGET=PERQ
! PRODUCED BY OLDPS FROM TRIMP_PERQPS01 ON 06/09/83
%CONSTBYTEINTEGERARRAY CLETT(0: 436)=   1,
  40,   1,  41,   1,  42,   1,  44,   2, 201, 198,   6, 213, 206, 204,
 197, 211, 211,   5, 215, 200, 201, 204, 197,   5, 213, 206, 212, 201,
 204,   3, 198, 207, 210,   1,  61,   5, 193, 204, 201, 193, 211,   7,
 201, 206, 212, 197, 199, 197, 210,   4, 210, 197, 193, 204,   4, 204,
 207, 206, 199,   4, 194, 217, 212, 197,   6, 211, 212, 210, 201, 206,
 199,   4, 200, 193, 204, 198,   5, 211, 200, 207, 210, 212,   6, 210,
 197, 195, 207, 210, 196,   7, 210, 207, 213, 212, 201, 206, 197,   2,
 198, 206,   3, 205, 193, 208,   8, 198, 213, 206, 195, 212, 201, 207,
 206,   4, 206, 193, 205, 197,   9, 193, 210, 210, 193, 217, 206, 193,
 205, 197,   9, 207, 198, 208, 210, 207, 199, 210, 193, 205,   6, 207,
 198, 198, 201, 204, 197,   6, 207, 198, 204, 201, 211, 212,   6, 198,
 207, 210, 205, 193, 212,   3, 206, 207, 212,   3, 193, 206, 196,   2,
 207, 210,   1,  58,   4, 211, 208, 197, 195,   5, 193, 210, 210, 193,
 217,   3, 207, 215, 206,   8, 197, 216, 212, 197, 210, 206, 193, 204,
   9, 197, 216, 212, 210, 201, 206, 211, 201, 195,   8, 195, 207, 206,
 211, 212, 193, 206, 212,   5, 195, 207, 206, 211, 212,   5, 197, 214,

==== ercc07/algtests_at139.txt ====

'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'REAL'
        X,
        Y;
    'REAL' 'PROCEDURE' P(Z);
        'VALUE'
            Z;
        'REAL'
            Z;
        'BEGIN'
        X := Z + Y
        'END';
    'REAL' 'PROCEDURE' Q(Z);
        'VALUE'
            Z;
        'REAL'
            Z;
        'IF' 'FALSE' 'THEN'
            Q := Z + X + Y;

==== ercc07/trimp_emasptwoas.txt ====
%EXTERNALROUTINE ICL9CEZIOPT
%CONSTINTEGER RELEASE=4
%INCLUDE "ERCC07.TRIMP_HOSTCODES"
%CONSTINTEGER HOST=EMAS
%CONSTINTEGER TARGET=EMAS
%CONSTINTEGER STANDARDPT=X'51'
%CONSTINTEGER MINAPT=X'51';             ! MINIMUM PTYPE FOR WHICH ARITHMETIC
                                        ! OPERATORS ARE AVAILABLE
%CONSTINTEGER MINAPREC=MINAPT>>4
%CONSTHALFINTEGERARRAY TYPEFLAG(0:12)=0,
                                        X'51'{%INTEGER},
                                        X'52'{%REAL},
                                        X'8009'{%LONG SOMETHING},
                                        X'4031'{%BYTE},
                                        X'35'{%STRING},
                                        X'4041'{%HALF->%INTEGER},
                                        X'6051'{%SHORT->%INTEGER+WARNING},
                                        X'33'{%RECORD},
                                        0,
                                        X'61'{%LONG INTEGER},
                                        X'62'{%LONG REAL},

==== ercc07/algtests_at140.txt ====

'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'REAL'
        X,
        Y;
    'PROCEDURE' P(A, B, C);
        'VALUE'
            A,
            B,
            C;
        'REAL'
            A,
            B,
            C;
        'BEGIN'
        X := A + B * C;
        Y := X + A
        'END';
    P(1.0,, 3);
    OUTREAL(99, X)

==== ercc07/algtests_at141.txt ====

'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'INTEGER' 'PROCEDURE' FACT(N);
        'VALUE'
            N;
        'INTEGER'
            N;
        FACT :=
            'IF' N > 1 'THEN'
                N * FACT(N - 1)
            'ELSE'
                1;
    FACT := 1;
    OUTREAL(99, FACT(5))
'END'

==== ercc07/algtests_at142.txt ====

'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'REAL'
        Y;
    'PROCEDURE' P(X, X);
        'VALUE'
            X;
        'REAL'
            X;
        X := X^2 + 8.6;
    P(Y, 2.0);
    OUTREAL(99, Y)
'END'

==== ercc07/perf2s.txt ====
%CONSTINTEGER MAXPROCS=256
%CONSTINTEGER YES=1,NO=0
%CONSTINTEGER VAMODE=YES
%CONSTINTEGER COM SEG=31
%CONSTINTEGER LOCSN0=64
%CONSTINTEGER PAGESIZE=4096
%CONSTINTEGER SSHIFT=20
%INCLUDE "ercc07:ibmsup_comf370"
!-----------------------------------------------------------------------
%CONSTINTEGER EPAGESPERSEC=600;         !EPAGES THRU one DISC CONTROLLER PER SECOND
!----------------------------------------------------------------------

%EXtERNALSTRINGFUNCTIONSPEC ITOS %alias "S#ITOS" (%INTEGER N)


%EXTERNALROUTINESPEC MOVE %ALIAS "S#MOVE"(%INTEGER NLENGTH,NFROM,NTO)



%EXTERNALROUTINESPEC PROMPT %alias "S#PROMPT"(%STRING (255) S)


==== ercc07/makeusys_gen.txt ====
offer Ugens
parm nocheck
edit Usysgen00s,Ugens
a/%incl/d1i<itrimp_hostcodes>
a'd1i<ercs01:ebits_ecodes5>
a'd1i<tripcnsts>
a'd1i<itrimp_tform2s>
a'd1i<ercs01:ebits_especs2>
e
imp Ugens,.null
offer Ugens,ercs01

==== ercc07/pascio11s.txt ====
!*
!*
!***********************************************************************
!***********************************************************************
!*                                                                     *
!*    P A S C A L   R U N T I M E   S U P P O R T   L I B R A R Y      *
!*                                                                     *
!***********************************************************************
!***********************************************************************
!*
!*
!*  History
!*  -------
!*
!*  Version 1.0 for Perq2 and Perq3. (agh)
!*  29/04/86 - Fix field-width bug in WriteWord.
!*  03/05/86 - Introduce CheckName to validate file names.
!*  05/05/86 - Revised treatment of file names. Remove close error
!*             check from reset, rewrite and append. Add New3 and
!*             Dispose3.
!*  06/05/86 - In ExtendHeap chain blocks correctly.

==== ercc07/stualgps.txt ====
31
D(NAME)                                {This BIP accpets any name}
D(ICONST)                              {This BIP accepts any integer constant}
D(CONST)                               {This BIP accepts any constant}
D(ONAME)                               {This BIP accepts any previously declared name}
D(COMTEXT))                            {This BIP accepts normal comment text}
D(S)                                   {This BIP accepts any Separator}
D(ENDTEXT)                             {This BIP accepts end comment text}
D(TEXTTEXT)                            {This BIP an Algol string}
D(HOLE)                                {This BIP leaves a hole in the tree for mark}
D(MARK)                                {This BIP Puts a pointer into the last "hole"}
D(UPSTCNT)                             {This BIP Increments the statement count}
D(LETTERSTRING)                        {This BIP accpets a parameter comment}
D(DOWN)                                {This BIP increments the textual level}
D(UP)                                  {This BIP decrements the textual level and massages the dictionary}
D(SCALARTYPE)                          {This BIP notes the current setting of type}
D(NOTENAME)                            {This BIP records the current name in the dictionary}
D(TYPE=A)                              {This BIP checks the current name is integer or real}
D(TYPE=B)                              {This BIP checks the current name is Boolean}
D(ARRAYTYPE)                           {This BIP notes the current type and adds the array bit}
D(PROCTYPE)                            {This BIP sets the current type to procedure}

==== ercc07/algtests_at143.txt ====

'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'REAL'
        X;
    'PROCEDURE' P(Y);
        'VALUE'
            X;
        'REAL'
            Y;
        Y := X;
    X := 3.4;
    P(10.0);
    OUTREAL(99, X)
'END'

==== ercc07/algtests_at144.txt ====

'BEGIN'
    'COMMENT' 'LIBRARY'5;
    'REAL' PR;
    'INTEGER' PI;
    'BOOLEAN' PB;
    PI := 1;
    PR := 0.0&0;
    PB :=
        'IF' 'NOT' PI > 0 'AND' PI >= 1 'OR' PI < 0 'IMPL' PR <= 0
            'EQUIV' PI # 0 'THEN'
            'TRUE'
        'ELSE'
            'TRUE';
    'IF' PB 'THEN'
        PR := - 1 * PI^3 'DIV' 2 +
            ENTIER(SIGN(SQRT(ABS(ARCTAN(LN(EXP(COS(SIN(1)))))
            )))) - (PR / ('IF' PR = 0.0 'THEN' 3 'ELSE' 3));
    'BEGIN'
        'SWITCH' PSW := ENTRY, EXIT;
        'OWN' 'REAL' 'ARRAY' PRA(/0 : 1/);

==== ercc07/algtests_at145.txt ====

'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'REAL'
        X;
    'PROCEDURE' P(A, B);
        'VALUE'
            (A, B);
        'REAL'
            (A, B);
        X := A + B;
    P(3, 4);
    OUTREAL(99, X)
'END'

==== ercc07/pasc07s.txt ====
!*
!*
!***********************************************************************
!***********************************************************************
!*                                                                     *
!*    P A S C A L   R U N T I M E   S U P P O R T   L I B R A R Y      *
!*                                                                     *
!***********************************************************************
!***********************************************************************
!*
!*
!*  History
!*  -------
!*
!*  Version 1.0 for Perq2 and Perq3. (agh)
!*  29/04/86 - Fix field-width bug in WriteWord.
!*  03/05/86 - Introduce CheckName to validate file names.
!*  05/05/86 - Revised treatment of file names. Remove close error
!*             check from reset, rewrite and append. Add New3 and
!*             Dispose3.
!*  06/05/86 - In ExtendHeap chain blocks correctly.

==== ercc07/algtests_at146.txt ====

'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'REAL'
        X;
    'INTEGER'
        I;
    X := 3.84;
    'FOR' I := 1 'STEP' 1 'UNTIL' 200 'DO'
        'BEGIN'
        'IF' - 1 / X # - (1 / X) 'THEN'
            OUTREAL(99, I);
        X := X * 1.01;
        'END';
    OUTREAL(99, 0);
'END'

==== ercc07/docs_lett.txt ====

The Editor of Centrist

     Dear Sir,

     The cautionary tale of IDMS makes sad reading; so much effort by a
large proportion of the database group for so long has yielded so little.
The conclusion - namely throw out EMAS and its 5000 mostly satisfied users
so that the handful of IDMS users can have a better service - does not
follow from the narrative.

     The IDMS project was a political project to extricate management from
commitments it had given based on (unbelievable) promises from ICL which
had not and could not be honoured. To move a large piece of software, very
operating system intimate, between two very different systems is immensely
difficult even at the source code level. When part of the package is only
available as object code the task is manifestly impossible. There were,
are and always have been more cost effective ways of providing such
facilities to the small number of users who require them.

     The decision on 2972 replacement with another EMAS machine (using the

==== ercc07/vaxsup_pimc.txt ====
/* INCLUDES */
#define PROMPT_LENGTH 9 
#define MAX_LINE_LENGTH 79
#define QUAL_LENGTH 7
#define TRUE 1
#define FALSE 0
#define NEGATED -1

/************* Only the following PARMS are looked for************/
#define NOLISTSHIFT   1
#define NODIAGSHIFT   2
#define NOCHECKSHIFT  4
#define NOARRAYSHIFT  5
#define NOTRACESHIFT  6
#define OPTSHIFT     16
#define MAPSHIFT     17
#define CODESHIFT    14
#define NOLINESHIFT  23
#define PARMZSHIFT   26
#define PARMYSHIFT   27
#define PARMXSHIFT   28

==== ercc07/perq3gen02s.txt ====
!
! Warning this module has the revised triples spec.
!
! In first attempt at Triple Imp considerable use was made of constant operands
! to pass information from Pass2 to GEN. Although for specialised operations like
! passing Labels this still applies, this adhocery has caused problems with arrays
! and pointers particularly in mapped records. The operands for four triples
! have thus been redefined in a more standard way.
!
! GETPTR    X1 is now (ptype of passed)<<16! DIMENSION
!           Opnd2 is either a 32 bit const with the size (ACC) as value or
!           the ptr or arrayhead as normal operand.
!
! VMY       X1 is now dim<<28!maxdim<<24!array name(where known)
!           Opnd2 is either a 32 bit const with DV offset into const area or
!           the arrayhead as a standard operand
!
! AINDX     X1 is ELSIZE<<20 !spare
!           Opnd2 is arrayhead as standard operand
!           NOTE:- The Operands have been swopped for consistency with norm.
!

==== ercc07/algtests_at147.txt ====

'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'ARRAY'
        A(/1.2/);
    A(/1/):= 1.0;
    OUTREAL(99, A(/1/))
'END'

==== ercc07/makeorn_p1.txt ====
offer op1s
edit poneb01s,op1s
i<itrimp_ornponeas>
ta/%inc/
d1i<itrimp_hostcodes>
a'
d1i<itrimp_tform2s>
m/%constlonglongreal/
e
imp op1s,.null
offer op1s,ecsc64

==== ercc07/algtests_at148.txt ====

'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'INTEGER'
        I,
        J,
        K;
    I := J := K := 1;
    'IF' I = J 'THEN'
        LA : 'IF' J # K 'THEN'
            OUTREAL(99, 1)
        'ELSE'
            OUTREAL(99, 2);
    OUTREAL(99, 3)
'END'

==== ercc07/makeorn_p2.txt ====
offer op2s
edit timp02s,op2s
i<itrimp_ornptwoas>
ta/%inc/
d1i<itrimp_hostcodes>
a'
d1i<tripcnsts>
a'
d1i<itrimp_tform2s>
e
imp op2s,.null
offer op2s,ecsc64

==== ercc07/algtests_at149.txt ====

'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'ARRAY'
        A(/1 : 2.3 : 4/);
    A(/1/):= 1.0;
    OUTREAL(99, A(/1/))
'END'

==== ercc07/wwcgen01s.txt ====
!
! Warning this module has the revised triples spec.
!
! In first attempt at Triple Imp considerable use was made of constant operands
! to pass information from Pass2 to GEN. Although for specialised operations like
! passing Labels this still applies, this adhocery has caused problems with arrays
! and pointers particularly in mapped records. The operands for four triples
! have thus been redefined in a more standard way.
!
! GETPTR    X1 is now (ptype of passed)<<16! DIMENSION
!           Opnd2 is either a 32 bit const with the size (ACC) as value or
!           the ptr or arrayhead as normal operand.
!
! VMY       X1 is now dim<<28!maxdim<<24!array name(where known)
!           Opnd2 is either a 32 bit const with DV offset into const area or
!           the arrayhead as a standard operand
!
! AINDX     X1 is ELSIZE<<20 !spare
!           Opnd2 is arrayhead as standard operand
!           NOTE:- The Operands have been swopped for consistency with norm.
!

==== ercc07/algtests_at150.txt ====

'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'REAL'
        X,
        Y;
    'INTEGER'
        CASE;
    'PROCEDURE' CHECK(B);
        'VALUE'
            B;
        'BOOLEAN'
            B;
        'IF' B 'THEN'
            CASE := CASE + 1
        'ELSE'
            'BEGIN'
            OUTREAL(99, X);
            OUTREAL(99, Y);
            OUTREAL(99, CASE)
            'END';

==== ercc07/oldimprts.txt ====
%EXTERNALROUTINE ISOCARD(%BYTEINTEGERARRAYNAME CARD)
%INTEGER I,J
      I=1
      %CYCLE
         READ SYMBOL(J)
         %EXITIF J=NL
         CARD(I)=J
         %EXITIF I=80
         I=I+1
      %REPEAT
      %FOR I=I+1,1,80 %CYCLE
         CARD(I)=' '
      %REPEAT
%END
%EXTERNALLONGREALFN RFDISO(%BYTEINTEGERARRAYNAME CARD, %INTEGER COL1,COL2, %INTEGERNAME ERROR)
%INTEGER I,J,K,L,M,SCALE
%INTEGER SIGN
%REAL RES
      SIGN=0
      ->L1 %IF COL1>COL2
      M=1; ERROR=0; RES=0; SCALE=0; J=1

==== ercc07/algtests_at151.txt ====

'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'BOOLEAN'
        A,
        B,
        C;
    'INTEGER'
        I,
        J;
    A := B := C := 'TRUE';
    I := J := 1;
    A := I = J;
    B := I # J;
    C := A := B;
    C := A = B;
    C = A = B;
    OUTREAL(99, 'IF' A 'THEN' 0 'ELSE' 'IF' B 'THEN' 2 'ELSE' 3);
'END'

==== ercc07/ibmsup_seguse2.txt ====

!
! This is the latest information on the use of Segments for EMAS3.
! Segments 0-63 correspond roughly to Public in EMAS2
! Segments 64-511 are the equivalent to Local in Emas2
! Segments 497-511 vanish from the Segment table when User is running
! but re-appear when Director is entered.
!
!     Seg 0                             address page 0 and used for
!                                       the zero page (page 1) and
!                                       writing to real addresses (page 2)
!     Seg 1                             segment table segment
!     Seg 2                             Supervisor stack
!     Seg 3                             Alternate Local Controller Stack for Amdahl
!                                       which uses 24 bit virtual addresses in Priv instrns
!     Seg 4                             Supervisor code
!     Segs 5-7                          free (for testing on 24 bit machines
!                                       these contain overflow portions of code)
!     Seg 8                             Supervisor Gla
!     Segs 9-15                        Reserved for VSS
!     Segs 16-19                        Fress

==== ercc07/algtests_at152.txt ====

'BEGIN'
    'COMMENT' 'LIBRARY'5;
    'REAL' 'PROCEDURE' P(Q);
        'REAL' 'PROCEDURE'
            Q; 'COMMENT'(X): 'VALUE' X: 'REAL' X;
        P := ABS(Q( - 6.4));
    OUTREAL(99, P(ABS))
'END'

==== ercc07/pascio12s.txt ====
!*
!*
!***********************************************************************
!***********************************************************************
!*                                                                     *
!*    P A S C A L   R U N T I M E   S U P P O R T   L I B R A R Y      *
!*                                                                     *
!***********************************************************************
!***********************************************************************
!*
!*
!*  History
!*  -------
!*
!*  Version 1.0 for Perq2 and Perq3. (agh)
!*  29/04/86 - Fix field-width bug in WriteWord.
!*  03/05/86 - Introduce CheckName to validate file names.
!*  05/05/86 - Revised treatment of file names. Remove close error
!*             check from reset, rewrite and append. Add New3 and
!*             Dispose3.
!*  06/05/86 - In ExtendHeap chain blocks correctly.

==== ercc07/algtests_at153.txt ====

'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'REAL'
        X;
    X := 0;
    X := (X + 1.1) / 3.3;
    X := (X + 2.2) / 6.6;
    X := (X + 3.3) / 9.9;
    X := (X + 4.4) / 13.2;
    X := (X + 5.5) / 16.5;
    X := (X + 6.6) / 19.8;
    X := (X + 7.7) / 23.1;
    X := (X + 8.8) / 26.4;
    X := (X + 9.9) / 29.7;
    X := (X + 11.0) / 33.0;
    X := (X + 12.1) / 36.3;
    X := (X + 13.2) / 39.6;
    X := (X + 14.3) / 42.9;
    X := (X + 15.4) / 46.2;
    X := (X + 16.5) / 49.5;

==== ercc07/algtests_at154.txt ====

'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'PROCEDURE' P(ST1, ST2);
        'STRING'
            ST1,
            ST2;
        ;
    P( <  1.1>, <  3.3> );
    P( <  2.2>, <  6.6> );
    P( <  3.3>, <  9.9> );
    P( <  4.4>, < 13.2> );
    P( <  5.5>, < 16.5> );
    P( <  6.6>, < 19.8> );
    P( <  7.7>, < 23.1> );
    P( <  8.8>, < 26.4> );
    P( <  9.9>, < 29.7> );
    P( < 11.0>, < 33.0> );
    P( < 12.1>, < 36.3> );
    P( < 13.2>, < 39.6> );
    P( < 14.3>, < 42.9> );

==== ercc07/ibmsup_dtform1s.txt ====
!
!     EMAS 370 - Device table entry format
!
%recordformat dtform(%integer iserv,mnemonic,cuu,alt cuu,ccwa,csw1,csw2,
      stick,id,timeout,ua size,ua ad,
      sense1,sense2,sense3,sense4,sense5,sense6,
      stats1,stats2,stats3,stats4,
      { end of common data }
{ DEVIO : } (%integer trtabad,sensedatad %or %c
{ DISC  : } %integer propaddr,state,concount,repsno,base,dlvn,
            %string(6)label,%byteinteger mech,qstate,prio,slot,bsp2,
            %integer lqlink,uqlink,curcyl,sema,trlink))
!
%endoffile

==== ercc07/algtests_at155.txt ====

'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'INTEGER'
        I;
    'PROCEDURE' P(A, B);
        'VALUE'
            A;
        'VALUE'
            B;
        'INTEGER'
            A,
            B;
        I := A + B;
    P(3, 4);
    OUTREAL(99, I);
'END'

==== ercc07/trimp_drsoptas.txt ====
%INCLUDE "ERCC07.TRIMP_HOSTCODES"
%CONSTINTEGER HOST=EMAS
%CONSTINTEGER TARGET=DRS

==== ercc07/pasc08s.txt ====
!*
!*
!***********************************************************************
!***********************************************************************
!*                                                                     *
!*    P A S C A L   R U N T I M E   S U P P O R T   L I B R A R Y      *
!*                                                                     *
!***********************************************************************
!***********************************************************************
!*
!*
!*  History
!*  -------
!*
!*  Version 1.0 for Perq2 and Perq3. (agh)
!*  29/04/86 - Fix field-width bug in WriteWord.
!*  03/05/86 - Introduce CheckName to validate file names.
!*  05/05/86 - Revised treatment of file names. Remove close error
!*             check from reset, rewrite and append. Add New3 and
!*             Dispose3.
!*  06/05/86 - In ExtendHeap chain blocks correctly.

==== ercc07/algtests_at156.txt ====

'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'INTEGER'
        I;
    'PROCEDURE' P(A, B);
        'INTEGER'
            A;
        'INTEGER'
            B;
        I := A + B;
    P(3, 4);
    OUTREAL(99, I);
'END'

==== ercc07/perq3gen03s.txt ====
!
! Warning this module has the revised triples spec.
!
! In first attempt at Triple Imp considerable use was made of constant operands
! to pass information from Pass2 to GEN. Although for specialised operations like
! passing Labels this still applies, this adhocery has caused problems with arrays
! and pointers particularly in mapped records. The operands for four triples
! have thus been redefined in a more standard way.
!
! GETPTR    X1 is now (ptype of passed)<<16! DIMENSION
!           Opnd2 is either a 32 bit const with the size (ACC) as value or
!           the ptr or arrayhead as normal operand.
!
! VMY       X1 is now dim<<28!maxdim<<24!array name(where known)
!           Opnd2 is either a 32 bit const with DV offset into const area or
!           the arrayhead as a standard operand
!
! AINDX     X1 is ELSIZE<<20 !spare
!           Opnd2 is arrayhead as standard operand
!           NOTE:- The Operands have been swopped for consistency with norm.
!

==== ercc07/algtests_at157.txt ====

'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'BOOLEAN' B;
    'REAL' X;
    'INTEGER' 'ARRAY' A(/ + 1 : .6&2/);
    'INTEGER' I, N;
    B := 'FALSE';
    N := &+2 * .6;
    X := 0;
    'COMMENT'   ;
    'BEGIN'
        'COMMENT'   ;
        'OWN' 'REAL' 'ARRAY' C0(/0 : 1/);
        'PROCEDURE' P(A, B, C);
            'VALUE' A;
            'INTEGER' A;
            'STRING' B;
            'BOOLEAN' 'ARRAY' C;
            'BEGIN'
            'BEGIN'

==== ercc07/algtests_at158.txt ====

'BEGIN'
    'BEGIN'
    'REAL' A;
    'GOTO' L;
    L: 'WHILE'
    'END'
'END'

==== ercc07/gldlink.txt ====
LINK ,map
ERCC07:gp12Y
ERCC07:gp26Y
ERCC07:gp33Y
ERCC07:gGEN4Y
ERCC07:CSERV01x
ercs01:EBITS_etrput1y
.END
P0Y
MODIFY P0Y
SATISFY REFS
.ALL
SATISFY DATA
.ALL
SUPPRESS
.ALL
RETAIN
ICL9CEZgouldIMP
SUPPRESS DATA
.ALL
CLOSE

==== ercc07/algtests_at159.txt ====

'BEGIN'
    'PROCEDURE' P(A);
    'VALUE' A: ;
    P(1)
'END'

==== ercc07/wwcgen02s.txt ====
!
! Warning this module has the revised triples spec.
!
! In first attempt at Triple Imp considerable use was made of constant operands
! to pass information from Pass2 to GEN. Although for specialised operations like
! passing Labels this still applies, this adhocery has caused problems with arrays
! and pointers particularly in mapped records. The operands for four triples
! have thus been redefined in a more standard way.
!
! GETPTR    X1 is now (ptype of passed)<<16! DIMENSION
!           Opnd2 is either a 32 bit const with the size (ACC) as value or
!           the ptr or arrayhead as normal operand.
!
! VMY       X1 is now dim<<28!maxdim<<24!array name(where known)
!           Opnd2 is either a 32 bit const with DV offset into const area or
!           the arrayhead as a standard operand
!
! AINDX     X1 is ELSIZE<<20 !spare
!           Opnd2 is arrayhead as standard operand
!           NOTE:- The Operands have been swopped for consistency with norm.
!

==== ercc07/algtests_at160.txt ====

'BEGIN'
    'PROCEDURE' P(A);
    'REAL' A: ;
    P(1.0)
'END'

==== ercc07/algtests_at161.txt ====

'BEGIN'
    'PROCEDURE' P(A ; ;
    P(1)
'END'

==== ercc07/algtests_at162.txt ====

'BEGIN'
    'ARRAY' A(/(0:3/);
'END'

==== ercc07/pascio13s.txt ====
!*
!*
!***********************************************************************
!***********************************************************************
!*                                                                     *
!*    P A S C A L   R U N T I M E   S U P P O R T   L I B R A R Y      *
!*                                                                     *
!***********************************************************************
!***********************************************************************
!*
!*
!*  History
!*  -------
!*
!*  Version 1.0 for Perq2 and Perq3. (agh)
!*  29/04/86 - Fix field-width bug in WriteWord.
!*  03/05/86 - Introduce CheckName to validate file names.
!*  05/05/86 - Revised treatment of file names. Remove close error
!*             check from reset, rewrite and append. Add New3 and
!*             Dispose3.
!*  06/05/86 - In ExtendHeap chain blocks correctly.

==== ercc07/algtests_at163.txt ====

'BEGIN'
    'IF' ('TRUE' 'OR' ('TRUE') 'THEN'
'END'

==== ercc07/algtests_at164.txt ====

'BEGIN'
    L: 'GOTO' (L/)
'END'

==== ercc07/ibmsup_dtform2s.txt ====
!
!     EMAS 370 - Device table entry format
!
%recordformat dtform(%integer iserv,mnemonic,cuu,alt cuu,ccwa,csw1,csw2,
      stick,id,timeout,ua size,ua ad,
      sense1,sense2,sense3,sense4,sense5,sense6,
      stats1,stats2,stats3,stats4,
      { end of common data }
{ DEVIO : } (%integer trtabad,sensedatad,sdsema,repsn,CCWVA,KEY %or %c
{ DISC  : } %integer propaddr,state,concount,repsno,base,dlvn,
            %string(6)label,%byteinteger mech,qstate,prio,slot,bsp2,
            %integer lqlink,uqlink,curcyl,sema,trlink))
!
%endoffile

==== ercc07/portenv03_blurb.txt ====

This PD file contains the Imp portable environment split inot bits for
linking in a non sharing Unix environment. With shared environments the
single glob portenv02s is preferable. The modules are roughly
     1) Trig and maths fns
     2) The matrix functions and other historic material
     3) Language support   Read write substring etc
     4) Crude exponentiation support. The Fortarn versions are used
        after they have been booted
The include files are not inserted as yet

==== ercc07/algtests_at165.txt ====

'BEGIN'
'INTEGER' I;
    'FOR' 1:=I 'DO';
'END'

==== ercc07/pasc09s.txt ====
!*
!*
!***********************************************************************
!***********************************************************************
!*                                                                     *
!*    P A S C A L   R U N T I M E   S U P P O R T   L I B R A R Y      *
!*                                                                     *
!***********************************************************************
!***********************************************************************
!*
!*
!*  History
!*  -------
!*
!*  Version 1.0 for Perq2 and Perq3. (agh)
!*  29/04/86 - Fix field-width bug in WriteWord.
!*  03/05/86 - Introduce CheckName to validate file names.
!*  05/05/86 - Revised treatment of file names. Remove close error
!*             check from reset, rewrite and append. Add New3 and
!*             Dispose3.
!*  06/05/86 - In ExtendHeap chain blocks correctly.

==== ercc07/algtests_at166.txt ====

'BEGIN'
    'PROCEDURE' 1;;
    L;
'END'

==== ercc07/algtests_at167.txt ====

'BEGIN'
    'PROCEDURE' P();;
'END'

==== ercc07/algtests_at168.txt ====

'BEGIN'
    'SWITCH' 0:=L;
    L: 'GOTO' O(/1/)
'END'

==== ercc07/wslds.txt ====

%EXTERNALROUTINE WSLD %alias "C#WSLD"
%EXTERNALROUTINESPEC OPENMAG %alias "S#OPENMAG"(%INTEGER CHAN, %STRING (7) VOL)
%EXTERNALROUTINESPEC SKIPMAG %alias "S#SKIPMAG"(%INTEGER CHAN,BLOCKS)
%EXTERNALROUTINESPEC WRITEMAG %alias "S#WRITEMAG"(%INTEGER CHAN,AD,LEN, %INTEGERNAME FLAG)
%EXTERNALROUTINESPEC WRITETMMAG %alias "S#WRITETMMAG"(%INTEGER CHAN, %INTEGERNAME FLAG)
%EXTERNALROUTINESPEC UNLOADMAG %alias "S#UNLOADMAG"(%INTEGER CHAN)
%EXTERNALINTEGERFNSPEC RDFILEAD(%STRING (255) FILE)
%EXTERNALROUTINESPEC MOVE %ALIAS "S#MOVE"(%INTEGER LENGTH,FROM,TO)
%externalroutinespec emas3string(%stringname vector,param)
%externalroutinespec set return code %alias"emas3setreturncode"(%integername value)
%OWNINTEGERARRAY IPL REC(0:5)= %C
      x'00080000',x'00001008',          { PSW }
      x'02001000',x'60001000',          { CCW block to x1000 }
      x'08001000',x'00000000'           { TIC to x1000 }
%CONSTINTEGER SLDLEN=1024
%OWNINTEGERARRAY SLD(1:SLDLEN)= %C
      x'3f000000',x'20000001',          { skip over TM }
      0(*)                              { sld code }
%string(63) tape,file
%INTEGER I,FLAG,CONAD

==== ercc07/algtests_at169.txt ====

'BEGIN'
    'ARRAY' A(/'IF' 'TRUE' 'THEN' 1 : 10/);
'END'

==== ercc07/algtests_at170.txt ====

L,'BEGIN'
    'REAL' A;
    'END'

==== ercc07/algtests_at171.txt ====

'BEGIN'
    'SWITCH' S:=L;
    L: 'GOTO' S(/1)
'END'

==== ercc07/trimp_tform0s.txt ====
!
! RECORDFORMAT FOR ALL THE OPTION AND FLAG VARAIBLES
!
%RECORDFORMAT PARMF(%INTEGER BITS1,BITS2,TTOPUT,
      %BYTEINTEGER LET,DYNAMIC,LINE,TRACE,ARR,DBUG,CHK,DIAG,OPT,FREE,
      LIST,CPRMODE,COMPILER,Z,Y,PROF,INHCODE,DCOMP,FAULTY,X,STACK,MAP,S1,S2)
%IF HOST=PERQ %OR HOST=ACCENT %OR HOST=IBM %OR HOST=IBMXA %START
%RECORDFORMAT LEVELF(%INTEGER RBASE, DIAGINF, RAL, FLAG, L, M, NMDECS, ONWORD, ONINF,
         LABEL, JROUND, UNATT FORMATS, PSIZE, ENTRYAD, DISPLAY, AUXSBASE, 
         NAMES,%SHORTINTEGER SNMAX,SN,RESSIZE,CLEVEL,%INTEGERARRAY AVL WSP(0:4),
         %INTEGER SET)
%FINISH %ELSE %START
%RECORDFORMAT LEVELF(%INTEGER RBASE, DIAGINF, RAL, FLAG, L, M, NMDECS, ONWORD, ONINF,
         LABEL, JROUND, UNATT FORMATS, PSIZE, ENTRYAD, DISPLAY, AUXSBASE, 
         NAMES,%HALFINTEGER SNMAX,SN,RESSIZE,CLEVEL,%INTEGERARRAY AVL WSP(0:4),
         %INTEGER SET)
%FINISH

%IF HOST=PERQ %OR HOST=ACCENT %OR HOST=IBM %OR HOST=IBMXA %START
%RECORDFORMAT RD((%INTEGER S1 %OR %SHORT PTYPE,%BYTE XB,FLAG),
      (%LONGREAL LR %OR (%INTEGER D %OR %REAL R),

==== ercc07/algtests_at172.txt ====

'BEGIN'
    'ARRAY' A(/1:10/);
    A(/1) := 1
'END'

==== ercc07/pascio14s.txt ====
!*
!*
!***********************************************************************
!***********************************************************************
!*                                                                     *
!*    P A S C A L   R U N T I M E   S U P P O R T   L I B R A R Y      *
!*                                                                     *
!***********************************************************************
!***********************************************************************
!*
!*
!*  History
!*  -------
!*
!*  Version 1.0 for Perq2 and Perq3. (agh)
!*  29/04/86 - Fix field-width bug in WriteWord.
!*  03/05/86 - Introduce CheckName to validate file names.
!*  05/05/86 - Revised treatment of file names. Remove close error
!*             check from reset, rewrite and append. Add New3 and
!*             Dispose3.
!*  06/05/86 - In ExtendHeap chain blocks correctly.

==== ercc07/algtests_at173.txt ====

'BEGIN'
    'ARRAY' A(/1:10/);
    A(/1/)= 1
'END'

==== ercc07/algtests_at174.txt ====

'BEGIN'
    'INTEGER' A;
    'FOR' A=1 'DO'
'END'

==== ercc07/algtests_at175.txt ====

'BEGIN'
    'SWITCH' S=L1,L2;
    L1:L2:
'END'

==== ercc07/docs_e3prot.txt ====

               Protection in EMAS3
               ___________________

     Apart from a single write protect bit in the segment tables all
protection on IBM architecture is provided by keys on the store. Each
store page has associated a 4 bit key (0-15) an each program has a
similar key in its PSW. Writes to store are only permitted if the key in
the PSW matches the key on the store or if the key in the pSW is 0. One
extra bit associated with the page is available to extend key protection
to read accesses.

     EMAS3 has the system in segments 0-63 as there is no public address
space. Careful use of the keys is needed to allow sharing and give
reasonable protection to the system. The scheme may cause some
inconvenience to Director and Comms controller since these may have to
alter their PSW before writing to certain pages. Fortunately there is a
suitable privileged instruction to do this!

      My plan is thus:-


==== ercc07/algtests_at176.txt ====

'BEGIN'
    'OWN' 'ARRAY'(/1:10/);
'END'

==== ercc07/algtests_at177.txt ====

'BEGIN'
    'INTEGER' I;
    'FOR' I:= 1 'STEP' 1 'DO'
'END'

==== ercc07/algtests_at178.txt ====

'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'INTEGER'
        I;
    'INTEGER' 'PROCEDURE' C;
        'BEGIN'
        'FOR' C := 1 'STEP' 1 'UNTIL' 3 'DO'
            'BEGIN'
            I := I + 1;
            'IF' I < 10 'THEN'
                C := C + 1
            'END'
        'END';
    I := 0;
    OUTREAL(99, C)
'END'

==== ercc07/algtests_at179.txt ====

LABELWITHOUTCOLON
'BEGIN'
'END'

==== ercc07/makeoptimp.txt ====
parm opt,maxdict,nolist
imp ercc07:itrimp_ibmponeas+ercc07:poneb02s,ip1ox,l0
imp ercc07:itrimp_ibmptwoas+timp03s,ip23ox,l1
imp ercc07:itrimp_ibmoptas+opt03s,iopt3ox,l2
imp cserv01s,cserv01ox,l4
imp ibmgen05s,igen5ox,l5
parm map
LINK
IP1oX
IP23oX
IOPT3oX
IGEN5oX
CSERV01oX
.END
P0Y
MODIFY P0Y
SATISFY REFS
.ALL
SATISFY DATA
.ALL
SUPPRESS

==== ercc07/algtests_at180.txt ====

'BEGIN'
    'COMMENT' 'LIBRARY' 1;
    'INTEGER'
        I,
        J,
        K,
        M;
    'INTEGER' 'PROCEDURE' GPPS(I, N, V, Z);
        'INTEGER'
            I,
            N,
            V,
            Z;
        'BEGIN'
        'FOR' I := 1 'STEP' 1 'UNTIL' N 'DO'
            V := Z;
        GPPS := 1
        'END';
    'FOR' M := 1 'STEP' 1 'UNTIL' 25 'DO'
        'BEGIN'

==== ercc07/algtests_at181.txt ====

'BEGIN' 'INTEGER' I;
'INTEGER' 'ARRAY' A,B(/1:10/);
'ARRAY' C,D(/1:10/);
'PROCEDURE' TEST(P,Q,R,S); 'VALUE' P,Q,R,S; 'ARRAY' R,S;
'INTEGER' 'ARRAY' P,Q; 'BEGIN' 'INTEGER' I;
'FOR' I:=1'STEP'1'UNTIL' 10 'DO' 'BEGIN'
   'IF' I#P(/I/)'OR' I#Q(/I/)'OR' I#R(/I/)'OR' I#S(/I/) 'THEN' 'BEGIN'
      PRINT(I,2,0); PRINT(P(/I/),2,0); PRINT(Q(/I/),2,0);
      PRINT(R(/I/),2,1); PRINT(S(/I/),2,1); NEWLINE
      'END';
   P(/I/):=Q(/I/):=0; R(/I/):=S(/I/):=0
'END' FOR;
PRINTSTRING(<ARRAY _ PASSED>)
'END' TEST;
'FOR' I:=1 'STEP' 1 'UNTIL' 10 'DO' 'BEGIN'
   A(/I/):=B(/I/):=I; C(/I/):=D(/I/):=I
'END';
TEST(A,C,D,B);
'FOR' I:=1 'STEP' 1 'UNTIL' 10 'DO' 'BEGIN'
   'IF' A(/I/)#I 'OR' B(/I/)#I 'OR' C(/I/)#I 'OR' D(/I/)#I  'THEN' 'BEGIN'

==== ercc07/trimp_tform1s.txt ====
!
! RECORDFORMAT FOR ALL THE OPTION AND FLAG VARAIBLES
!
%RECORDFORMAT PARMF(%INTEGER BITS1,BITS2,TTOPUT,
      %BYTEINTEGER LET,DYNAMIC,LINE,TRACE,ARR,DBUG,CHK,DIAG,OPT,FREE,
      LIST,CPRMODE,COMPILER,Z,Y,PROF,INHCODE,DCOMP,FAULTY,X,STACK,MAP,QUOTES,S2,
      %INTEGER LPOPUT,SP0)
%RECORDFORMAT LEVELF(%INTEGER RBASE, DIAGINF, RAL, FLAG, L, M, NMDECS, ONWORD, ONINF,
         LABEL, JROUND, UNATT FORMATS, PSIZE, ENTRYAD, DISPLAY, AUXSBASE, 
         NAMES, SNMAX,SN,RESSIZE,CLEVEL,SET, S1, S2, S3, S4,
       %INTEGERARRAY AVL WSP(0:4))

%IF 1<<host&unsignedshorts=0 %START
%RECORDFORMAT RD((%INTEGER S1 %OR %SHORT PTYPE,%BYTE XB,FLAG),
      (%LONGREAL LR %OR (%INTEGER D %OR %REAL R),
      %INTEGER XTRA %OR %SHORT H0,H1,H2,H3 %OR %BYTE B0,B1,B2,B3,B4,B5,B6,B7))
%RECORDFORMAT TAGF((%SHORTINTEGER PTYPE,UIOJ,SNDISP,ACC,SLINK,KFORM %OR %C
      %INTEGER S1,S2,S3),%INTEGER LINK)
%RECORDFORMAT TRIPF(%BYTE OPERN,OPTYPE,CNT,DPTH,
      %SHORTINTEGER FLAGS,PUSE,FLINK,BLINK,%INTEGER X1,
      %RECORD(RD) OPND1,OPND2)

==== ercc07/pascio15s.txt ====
!*
!*
!***********************************************************************
!***********************************************************************
!*                                                                     *
!*    P A S C A L   R U N T I M E   S U P P O R T   L I B R A R Y      *
!*                                                                     *
!***********************************************************************
!***********************************************************************
!*
!*
!*  History
!*  -------
!*
!*  Version 1.0 for Perq2 and Perq3. (agh)
!*  29/04/86 - Fix field-width bug in WriteWord.
!*  03/05/86 - Introduce CheckName to validate file names.
!*  05/05/86 - Revised treatment of file names. Remove close error
!*             check from reset, rewrite and append. Add New3 and
!*             Dispose3.
!*  06/05/86 - In ExtendHeap chain blocks correctly.

==== ercc07/docs_vaxaa.txt ====
                              Vax Architectural Assessment
                              ============================

a) Virtual Memory

     The Vax provides a 32 bit virtual memory of which half is reserved for  the
system  -  this  is  very  comparable  to  2900 with two 31 bit virtual memory -
public and local.   Here however the similarity ends;   while 2900 provides 8192
segments  of 256 pages the Vax provides only 2**21 pages.   The segmented scheme
provides  several  advantages  in  that  the  protection   mechanism   is   more
economically  administered  via  segments  than pages and it is less wasteful to
find space for a separate page table for each actual segment in use than to keep
one large contiguous one.  Vax does allow the page tables themselves to be paged
which neatly avoids the store management problem at  the  non  trivial  cost  of
further virtual store interrupts. The Vax scheme does result in some pressure on
the "spare" bits in the page table (ie those not required for the  base  address
of the page).   The protection information is compressed into four bits per page
as against the 2900 which allows 10 bits per segment.  As a result of this there
is not a "used" bit in the Vax page tables which makes it very difficult for the
operating system to discover which pages a program  is  using.    This  must  be
regarded  as  a serious defect which will be particularly noticeable at the very

==== ercc07/emasgen02s.txt ====
!
! Warning this module has the revised triples spec.
!
! In first attempt at Triple Imp considerable use was made of constant operands
! to pass information from Pass2 to GEN. Although for specialised operations like
! passing Labels this still applies, this adhocery has caused problems with arrays
! and pointers particularly in mapped records. The operands for four triples
! have thus been redefined in a more standard way.
!
! GETPTR    X1 is now (ptype of passed)<<16! DIMENSION
!           Opnd2 is either a 32 bit const with the size (ACC) as value or
!           the ptr or arrayhead as normal operand.
!
! VMY       X1 is now dim<<28!maxdim<<24!array name(where known)
!           Opnd2 is either a 32 bit const with DV offset into const area or
!           the arrayhead as a standard operand
!
! AINDX     X1 is ELSIZE<<20 !spare
!           Opnd2 is arrayhead as standard operand
!           NOTE:- The Operands have been swopped for consistency with norm.
!

==== ercc07/pasc10s.txt ====
!*
!*
!***********************************************************************
!***********************************************************************
!*                                                                     *
!*    P A S C A L   R U N T I M E   S U P P O R T   L I B R A R Y      *
!*                                                                     *
!***********************************************************************
!***********************************************************************
!*
!*
!*  History
!*  -------
!*
!*  Version 1.0 for Perq2 and Perq3. (agh)
!*  29/04/86 - Fix field-width bug in WriteWord.
!*  03/05/86 - Introduce CheckName to validate file names.
!*  05/05/86 - Revised treatment of file names. Remove close error
!*             check from reset, rewrite and append. Add New3 and
!*             Dispose3.
!*  06/05/86 - In ExtendHeap chain blocks correctly.

==== ercc07/makeorn_opt.txt ====
offer oopts
edit opt03s,oopts
i<itrimp_ornoptas>
ta/%inc/
d1i<itrimp_hostcodes>
a'
d1i<itrimp_tform2s>
a'
d1i<tripcnsts>
e
imp oopts,.null
offer oopts,ecsc64

==== ercc07/make386_gen.txt ====
offer d386gens
parm nolist,nocheck
edit drsgen04s,d386gens
a/%incl/d1i<itrimp_hostcodes>
a'd1i<ercs01:ebits_ecodes8>
a'd1i<tripcnsts>
a'd1i<itrimp_tform2s>
a'd1i<ercs01:ebits_especs2>
r/p0=2/i/P0=4/
e
imp d386gens,.null
offer d386gens,zepz06

==== ercc07/gbits_ggen67s.txt ====
!                                                                      ggen67i4
! Changes to support new Imp front end including maked,splitd
! and proper handline of procedures called formally
!                                                                  ggen67i3
! 31/12/87 - Estkparind to use local base if imp
!                                                                  ggen67i2
! 23/11/87 - Take out SUI, and SRC
!                                                                  ggen67
! 25/04/87 - update ERBIT, EWBIT to UTX definitions
!                                                                  ggen65
! 17/04/87 - use correct np names div_jj, mpy_jj
!                                                                  ggen64
! 16/04/87 - support unsigned int comparison
!                                                                  ggen61
! 01/04/87 - support ERBIT, EWBIT
!                                                                  ggen60
! 18/03/87 - correct pow_cc and pow_zz entries
!                                                                  ggen59
! 28/02/87 - incorporate integer*8 support (ex ggen36u)
!          - incorporate C support (ex ggen54c)
!                                                                  ggen58

==== ercc07/vnslink.txt ====
LINK
ERCC07:vp1Y
ERCC07:vp22Y
ERCC07:voPT3Y
ERCC07:vGEN0Y
ERCC07:CSERV01x
ercs01:EBITS_etrput1y
.END
P0Y
MODIFY P0Y
SATISFY REFS
.ALL
SATISFY DATA
.ALL
SUPPRESS
.ALL
RETAIN
ICL9CEZVNSIMP
SUPPRESS DATA
.ALL
CLOSE

==== ercc07/usyslink.txt ====
LINK
ERCC07:Up1Y
ERCC07:Up22Y
ERCC07:UoPT3Y
ERCC07:UGEN0Y
ERCC07:CSERV01x
ercs01:EBITS_etrput1y
.END
P0Y
MODIFY P0Y
SATISFY REFS
.ALL
SATISFY DATA
.ALL
SUPPRESS
.ALL
RETAIN
ICL9CEZUNISYSIMP
SUPPRESS DATA
.ALL
CLOSE

==== ercc07/makevax_bgen.txt ====
edit vbootgen1s,vb1s
a/%inc/d1i<ercc07:itrimp_hostcodes>
a'd1i<ercc07:vaxspecs>
a'd1i<ercc07:vaxopcodes>
a'd1i<ercs01:ebits_ecodes28>
a'd1i<ercs01:ebits_enames21>
ta/host=/r5i/Vax/
e
parm nocheck,noarray
vaximp vb1s,vb1xx
transfer vb1xx,ercvax(ercc07,peathag)vbgen.obj,file,bin

==== ercc07/pascio16s.txt ====
!*
!*
!***********************************************************************
!***********************************************************************
!*                                                                     *
!*    P A S C A L   R U N T I M E   S U P P O R T   L I B R A R Y      *
!*                                                                     *
!***********************************************************************
!***********************************************************************
!*
!*
!*  History
!*  -------
!*
!*  Version 1.0 for Perq2 and Perq3. (agh)
!*  29/04/86 - Fix field-width bug in WriteWord.
!*  03/05/86 - Introduce CheckName to validate file names.
!*  05/05/86 - Revised treatment of file names. Remove close error
!*             check from reset, rewrite and append. Add New3 and
!*             Dispose3.
!*  06/05/86 - In ExtendHeap chain blocks correctly.

==== ercc07/cliba01s.txt ====
!***********************************************************************
!*                                                                     *
!*   RUN-TIME CODE FOR THE C COMPILER                                  *
!*          FOR BOTH VME AND EMAS                                      *
!*                                                                     *
!***********************************************************************

%CONST %INTEGER ISO=0
%CONST %INTEGER EBCDIC=1
%CONST %INTEGER VME= 0
%CONST %INTEGER EMAS= 1
%CONST %INTEGER emasa=2
!***********************************************************************
!*                                                                     *
!*    SET CHCODE = ISO FOR EMAS                                        *
!*               = EBCDIC FOR VME                                      *
!*                                                                     *
!*    SET TARGET = EMAS FOR EMAS                                       *
!*               = VME FOR VME                                         *
!*                                                                     *
!*         For VME external function names must start with ICL9CA      *

==== ercc07/portenv03_matrixs.txt ====
%include "itrimp_hostcodes"
%CONSTINTEGER TARGET=M88K
!%EXTERNALROUTINESPEC IOCP %ALIAS "s_iocp"(%INTEGER EP,N)
%EXTERNALINTEGERFN BITS(%INTEGER X)
%INTEGER I,J
      J=0
      J=J+X&1 %AND X=X>>1 %WHILE X#0
      %RESULT=J
%END
%EXTERNALINTEGERFN PARITY(%INTEGER I)
      %RESULT=1-(I&1)*2
%END
%EXTERNALROUTINE SOLVE LN EQ(%LONGREALARRAYNAME A,B, %INTEGER N,
    %LONGREALNAME DET)
%LONGREAL AMAX,CH
%INTEGER I,J,J MAX,S
      ->L3 %IF N>0
      PRINTSTRING("
      SOLVE LN EQ DATA FAULT: N=")
      WRITE(N,2); NEWLINE; %STOP
L3:   ->L1 %IF N>1

==== ercc07/ctoptv7l.txt ====
!
!   Compile time options for EMAS/370
!
%constinteger YES=1,NO=0,AMDAHL=2
%constinteger XA=AMDAHL;                 ! yes for 370/XA
%constinteger VA MODE=YES;               ! yes for Supervisor, no for Chopsupe
%constinteger MULTI OCP=NO;              ! yes to include semaphoring
%constinteger CRFITTED=YES;              ! card reader
%constinteger CPFITTED=YES;              ! card punch
%constinteger SNOOZING=YES;              ! allow suspend in store
%constinteger PRODUCTION=NO;             ! yes for continuing after S/W errors
%constinteger MONLEVEL=x'3F';                ! 0 = no monitoring
                                         ! 2**0 = video updating
                                         ! 2**1 = KMONning
                                         ! 2**2 = sup timing measurements
                                         ! 2**3 = a-c for cross calls
                                         ! 2**4 = strobing
                                         ! 2**5 = cat table transitions
                                         ! 2**8 = event harvesting
%constinteger P4PERCENT=11;              ! max % of free store for large jobs
%constinteger MAXPROCS=256;              ! max concurrent procs (64,128 or 256)

==== ercc07/ctotals.txt ====
parm r8,nowarnings,nolist,nodiag,nocheck,noarray,noline
pascal totals,totaly,.out

==== ercc07/algtests_data55.txt ====
run ay
    0.01;    0.02;    0.03;    0.04;    0.05;
    0.06;    0.07;    0.08;    0.09;    0.10;
    0.11;    0.12;    0.13;    0.14;    0.15;
    0.16;    0.17;    0.18;    0.19;    0.20;
    0.21;    0.22;    0.23;    0.24;    0.25;
    0.26;    0.27;    0.28;    0.29;    0.30;
    0.31;    0.32;    0.33;    0.34;    0.35;
    0.36;    0.37;    0.38;    0.39;    0.40;
    0.41;    0.42;    0.43;    0.44;    0.45;
    0.46;    0.47;    0.48;    0.49;    0.50;
    0.51;    0.52;    0.53;    0.54;    0.55;
    0.56;    0.57;    0.58;    0.59;    0.60;
    0.61;    0.62;    0.63;    0.64;    0.65;
    0.66;    0.67;    0.68;    0.69;    0.70;
    0.71;    0.72;    0.73;    0.74;    0.75;
    0.76;    0.77;    0.78;    0.79;    0.80;
    0.81;    0.82;    0.83;    0.84;    0.85;
    0.86;    0.87;    0.88;    0.89;    0.90;
    0.91;    0.92;    0.93;    0.94;    0.95;
    0.96;    0.97;    0.98;    0.99;    1.00;

==== ercc07/algtests_at200.txt ====

'PROGRAM'PETE;
'BEGIN'
'PROCEDURE'JIM(L,S,ST); 'VALUE'L; 'LABEL'L; 'SWITCH'S;
         'STRING'ST; 'ALGOL';
'PROCEDURE'FRED; 'EXTERNAL';
'PROCEDURE'GILES; 'FORTRAN';
'OWN''REAL'X; 'INTEGER'I,J,K; 'BOOLEAN'B1,B2; 'ARRAY'A[1:10];
'FOR'I:=1 'STEP'1 'UNTIL'10,I+1 'WHILE'B1'AND''TRUE''DO'
     'IF'K 'GT'J 'OR'K 'GE'J 'THEN''GOTO'END 'ELSE''GO''TO'END;
B1:= I 'EQ'J 'IMPL'K 'NE'J 'EQUIV''FALSE';
B2:='NOT'K 'LE'K 'OR'K 'LT'J;
'CODEON';
'CODEOFF';
I:=(J'DIV'K)'POWER'I;
'COMMENT'ALL KEYWORDS USED;
END:'END'TEST PROG

==== ercc07/algtests_at201.txt ====
'COMMENT' CHECK THAT FAULTY ASSIGNMENT TO PROCEDURE NAME IS DETECTED;
'BEGIN'
'INTEGER'C;
'INTEGER''PROCEDURE' CHSP(U); 'INTEGER'U;
'BEGIN' 'INTEGER'X;
'IF' U<CODE({A}) 'THEN' X:=0 'ELSE' X:=1;
CHSP(U):=X
'END';
C:=0;
CHSP(C)
'END';

==== ercc07/algtests_at202.txt ====
'BEGIN' 'INTEGER'I,J; 'REAL' X;
J:=15;
'FOR' I:=-10 'STEP' 1 'UNTIL' 10 'DO' 'BEGIN'
      X:=9.987654321*10**I;
      PRINT(X,0,10); PRINT(X*10**15,0,10);
      PRINT(X*10**1,0,10);
      NEWLINE
      'END';
'END';

==== ercc07/algtests_at203.txt ====

'COMMENT' CHECK THAT FAULTY ASSIGNMENT TO PROCEDURE NAME IS DETECTED;
'BEGIN'
'INTEGER'C;
'INTEGER''PROCEDURE' CHSP(U); 'INTEGER'U;
'BEGIN' 'INTEGER'X;
'IF' U<CODE({A}) 'THEN' X:=0 'ELSE' X:=1;
CHSP(U):=X
'END';
C:=0;
CHSP(C)
'END';

==== ercc07/algtests_at204.txt ====
'BEGIN' 'INTEGER'I,J; 'REAL' X;
J:=15;
'FOR' I:=-10 'STEP' 1 'UNTIL' 10 'DO' 'BEGIN'
      X:=9.987654321*10**I;
      PRINT(X,0,10); PRINT(X*10**15,0,10);
      PRINT(X*10**1,0,10);
      NEWLINE
      'END';
'END';

==== ercc07/algtests_at205.txt ====

'COMMENT' CHECK THAT FAULTY ASSIGNMENT TO PROCEDURE NAME IS DETECTED;
'BEGIN'
'INTEGER'C;
'INTEGER''PROCEDURE' CHSP(U); 'INTEGER'U;
'BEGIN' 'INTEGER'X;
'IF' U<CODE({A}) 'THEN' X:=0 'ELSE' X:=1;
CHSP(U):=X
'END';
C:=0;
CHSP(C)
'END';
//ALGOL
'BEGIN' 'INTEGER'I,J; 'REAL' X;
J:=15;
'FOR' I:=-10 'STEP' 1 'UNTIL' 10 'DO' 'BEGIN'
      X:=9.987654321*10**I;
      PRINT(X,0,10); PRINT(X*10**15,0,10);
      PRINT(X*10**1,0,10);
      NEWLINE
      'END';

==== ercc07/algtests_at206.txt ====

'COMMENT' CHECK ON NONTERMINATING FOR LOOPS IN OPT MODE;
'BEGIN' 'INTEGER'I
;'FOR' I:= 1 'STEP' 1 'UNTIL' 3 'DO' PRINT(I,3,0);
NEWLINE;
'FOR' I:= 1 'STEP' 2 'UNTIL' 5 'DO' PRINT (I,3,0);
NEWLINE;
PRINT(I,3,0)
'END'

==== ercc07/algtests_at207.txt ====

'BEGIN''INTEGER'I;
'INTEGER''PROCEDURE' TCODE(S); 'STRING' S;
      TCODE:=CODE(S);
      PRINT(TCODE({A}),3,3)
'END'

==== ercc07/portenv01s.txt ====

%CONSTINTEGER YES=1,NO=0
            
!
! THESE CODE ARE ARBITARY BUT THE TOP DECIMAL DIGIT GIVES THE NO OF BYTES
! IN THE UNIT OF ADDRESSABILITY. BYTE ADDRESSES HOSTS BEING 1N AND
! 16 BIT WORD ADDRESSED HOSTS BEING 2N ETC
%CONSTINTEGER EMAS=10
%CONSTINTEGER IBM=11
%CONSTINTEGER IBMXA=12
%CONSTINTEGER DRS=13
%CONSTINTEGER AMDAHL=14
%CONSTINTEGER PERQ=20
%CONSTINTEGER PNX=21
%CONSTINTEGER ACCENT=22
                                        ! ACCENT DIFFERS FROM PERQ ONLY IN
                                        ! ASSEMBLES SEQUENCES&SYNTAX
                                        ! AND GENERATOR
%CONSTINTEGER LINTAVAIL=1<<AMDAHL!1<<IBM!1<<IBMXA!1<<EMAS
%CONSTINTEGER LLREALAVAIL=1<<AMDAHL!1<<IBM!1<<IBMXA!1<<EMAS
%CONSTINTEGER TARGET=IBMXA

==== ercc07/algtests_at1.txt ====
'BEGIN'
    'REAL' X;
    'INTEGER' I;
        I := 10000000000000000000000000;
        X := 1.0&999
'END'

==== ercc07/algtests_at2.txt ====
'BEGIN'
    'REAL' AUTOCORRELATIONCOEFFICIENTNUMBER1;
        AUTOCORRELATIONCOEFFICIENTNUMBER1 := 0.0;
        'BEGIN'
        'REAL' AUTOCORRELATIONCOEFFICIENTNUMBER2;
            AUTOCORRELATIONCOEFFICIENTNUMBER2 := 1.0;
            OUTREAL(99, AUTOCORRELATIONCOEFFICIENTNUMBER1 +
                AUTOCORRELATIONCOEFFICIENTNUMBER2 )
        'END'
'END'

==== ercc07/algtests_at3.txt ====
L1:
'BEGIN'
    'IF' 1 = 2 'THEN'
        'GOTO' L1
'END'

==== ercc07/algtests_at4.txt ====
SIN: COS:
'BEGIN'
    'REAL' SIN;
        SIN := 0.0
'END'

==== ercc07/algtests_at5.txt ====
L1:
'IF' 1 = 2 'THEN'

        'GOTO' L1

==== ercc07/algtests_at6.txt ====
'BEGIN'
    'INTEGER' X, Y, Z;
        X := Y := Z := 1.0;
        'IF' X < Y < Z 'THEN'
'END'

==== ercc07/algtests_at7.txt ====
'BEGIN'
    'BOOLEAN'
        ASSIGN;
    'PROCEDURE' P(X);
        'REAL'
            X;
        'BEGIN'
        OUTREAL(99, X);
        'IF' ASSIGN 'THEN'
            X := 3.14;
        'END';
    'REAL'
        X,
        Y;
    ASSIGN := 'FALSE';
    P(1.0);
    X := Y := 2.0;
    P(X + Y);
    ASSIGN := 'TRUE';
    P(X);
    P(1.0);

==== ercc07/algtests_at8.txt ====
'BEGIN'
    'REAL' X, Y;
        X := Y := 0.0;
    'REAL' Z;
'END'

==== ercc07/oldps.txt ====

%EXTERNALROUTINE OLDPS(%STRING (63) S)
%EXTERNALROUTINESPEC DATE %alias "EMAS3DATE"(%STRING (*) %NAME S)
%INTEGER I,J,K,SS,NBIP,SSYM
%STRING (31) ST49,ST50,ST51
%STRING (127) HEADER
%EXTERNALROUTINESPEC EMAS3(%STRINGNAME CMD,PARAMS, %INTEGERNAME FLAG)
%INTEGERARRAY CLETT(0:1000),SYMBOL(1300:3000),CC(0:300)
%INTEGER CNEXT,DNEXT,CNUM,DNUM,ALT,DEF,ASL,NIDFLAG,EFLAG
%INTEGERARRAY KK,PUSE,DWORD(1001:1200),DLETT(0:1000),CWORD(1:200)
%ROUTINESPEC READ STRING(%INTEGER TERMINATOR)
%ROUTINESPEC RECORD(%INTEGERARRAYNAME WORD,LETT, %INTEGERNAME NUM,NEXT)
%ROUTINESPEC LOOK UP(%INTEGERARRAYNAME WORD,LETT, %INTEGER FIRST,LAST,INSERT)
%ROUTINESPEC PDDICT
%ROUTINESPEC PRINT STR(%INTEGERARRAYNAME CC, %INTEGER PTR)
%ROUTINESPEC PCDICT
      %UNLESS S->ST49.(",").ST50.(",").ST51 %THEN %C
         PRINTSTRING("PARAMS?????") %AND NEWLINE %ANDRETURN
      EMAS3("DEFINE","ST49,".ST49,EFLAG)
      EMAS3("define","ST50,".ST50,EFLAG)
      EMAS3("define","ST51,".ST51,EFLAG)

==== ercc07/algtests_at9.txt ====
'BEGIN'
    'COMMENT' A SYNTAX PASS IS REQUIRED TO REMOVE COMMENTS;
    'PROCEDURE' P( ST );'COMMENT' ST IS A STRING;'COMMENT';
        'STRING' ST; ;'COMMENT' DUMMY BODY;
    P( <;'COMMENT'<;>> );
    'BEGIN'
        'PROCEDURE' Q( A ) PARAMETER COMMENT :( B );
            'REAL' A, B; ;'COMMENT' DUMMY AGAIN;
        Q( 1.0, 2.5 ); 'COMMENT' IS THE SAME AS;
        Q( 1.0) WITH PARAMETER COMMENT:( 2.5 );
    'END' COMMENT CAN INCLUDE MOST BASIC SYMBOLS 'FOR'
        'WHILE' 'THEN''IF' 'DO' := 'BEGIN'( WHICH ARE NOT MATCHED;
'END'

==== ercc07/portenv02s.txt ====

%CONSTINTEGER YES=1,NO=0
            
!
! THESE CODE ARE ARBITARY BUT THE TOP DECIMAL DIGIT GIVES THE NO OF BYTES
! IN THE UNIT OF ADDRESSABILITY. BYTE ADDRESSED HOSTS BEING 1N ( also 0N) AND
! 16 BIT WORD ADDRESSED HOSTS BEING 2N ETC
%CONSTINTEGER VAX=08;                    ! Imp on Vax using F & G formats
%CONSTINTEGER UNISYS=09;                ! Imp on UnisSys. Unix stack unswopped Vax reals
%CONSTINTEGER EMAS=10;                  ! emas on 2900 (unsigned shorts)
%CONSTINTEGER IBM=11;                   ! emas on 24 bit ibm hardware
%CONSTINTEGER IBMXA=12;                 ! emas of XA 31 bit hardware
%CONSTINTEGER WWC=13;                   ! WWc (Natsemi chip) completely swopped
%CONSTINTEGER AMDAHL=14;                ! Emas on Amdahls guess at Xa Minor differences fron IBM)
%CONSTINTEGER PERQ3=15;                 ! ICL packaged 68k chip Unix stack but not swopped
%CONSTINTEGER GOULD=16;                 ! Gould unswopped forward stack. Needs 4&8 byte alined
%CONSTINTEGER VNS=17;                   ! Unix on 2900 unsigned shorts params as
                                        ! 2900. Long int available but not in Ecode
%CONSTINTEGER EAMD=18;                  ! Amdahl via the Emachine
%CONSTINTEGER DRS=19;                   ! Intel chip Unix stack and mostly swopped
%CONSTINTEGER PERQ=20;                  ! Pos perq now obselete. Fully swopped forward stack

==== ercc07/algtests_data75.txt ====

RUN AY
 3.33333333333333326@ -1;
 1.25000000000000000@ -1;
 6.66666666666666652@ -2;
 4.16666666666666652@ -2;
 2.85714285714285721@ -2;
 2.08333333333333326@ -2;
 1.58730158730158721@ -2;
 1.25000000000000000@ -2;
 1.01010101010101017@ -2;
 8.33333333333333326@ -3;
 6.99300699300699291@ -3;
 5.95238095238095211@ -3;
 5.12820512820512819@ -3;
 4.46428571428571397@ -3;
 3.92156862745098045@ -3;
 3.47222222222222210@ -3;
 3.09597523219814241@ -3;
 2.77777777777777768@ -3;
 2.50626566416040086@ -3;

==== ercc07/trimp_accptwoas.txt ====
%TRUSTEDPROGRAM
%EXTERNALROUTINE ICL9CEZACCIMP
%CONSTINTEGER RELEASE=4
%INCLUDE "ERCC07.TRIMP_HOSTCODES"
%CONSTINTEGER HOST=EMAS
%CONSTINTEGER TARGET=ACCENT
%CONSTINTEGER STANDARDPT=X'41'
%CONSTINTEGER MINAPT=X'41';             ! MINIMUM PTYPE FOR WHICH ARITHMETIC
                                        ! OPERATORS ARE AVAILABLE
%CONSTINTEGER MINAPREC=MINAPT>>4
%CONSTHALFINTEGERARRAY TYPEFLAG(0:12)=0,
                                        X'51'{%INTEGER},
                                        X'52'{%REAL},
                                        X'8009'{%LONG SOMETHING},
                                        X'4031'{%BYTE},
                                        X'35'{%STRING},
                                        X'6051'{%HALF->%INTEGER+WARNING},
                                        X'4041'{%SHORT},
                                        X'33'{%RECORD},
                                        0,
                                        X'1051'{%LONG INTEGER FAULT},

==== ercc07/trimp_impmess.txt ====
1 "%REPEAT is not required"
2 "Label & has already been set in this block"
3 "Jump into %CYCLE at Label & from line #"
4 "& is not a Switch name at current textual level"
5 "Switch name & in expression or assignment"
6 "Switch label &(#) set a second time"
7 "Name & has already been declared"

8 "Routine or fn & has more parameters than specified"
9 "Parameter # of & differs in type from specification"
10 "Routine or fn & has fewer parameters than specified"
11 "Label & referenced at line # has not been set"
12 "%CYCLE at line # has two control clauses"
13 "%REPEAT for %CYCLE at line # is missing"
14 "%END is not required"
15 "# %ENDs are missing"
16 "Name & has not been declared"
17 "Name & does not require parameters or subscripts"
18 "# too few parameters provided for &"
19 "# too many parameters provided for &"
20 "# too few subscripts provided for array &"

==== ercc07/ibmlink.txt ====
LINK
IP1X
IP2X
IOPTX
IGEN2X
CSERV01oX
ercs12:ibmsce2_trputy
.END
P0Y
MODIFY P0Y
SATISFY REFS
.ALL
SATISFY DATA
.ALL
SUPPRESS
.ALL
RETAIN
ICL9CEZIBMIMP,PGENERATEOBJECT
SUPPRESS DATA
.ALL
CLOSE

==== ercc07/gbits_gldmf17s.txt ====
    %conststring(50) reldate = " Imp version 8/aug/87 
"
    { Compilation Control routine for PNX }

    { Begun 14/oct/83 - Alan              }
    { Revised 30/dec/83   }
    { rel 1.2 12/dec/84 accept -N(dltb)  compile2}
    { rel 1.3 17/dec/84 accept -N(dltba)  compile3}
    { rel 1.6 20/feb/84 fix include non-existant file compile4 }
    {                   -i => -A; -r => -v }
    { rel1.1(G)  delete objectfile if compilation fails }
    { rel1.1(K) -A => -q }
    { rel1.2(A) forbid diagnostic options with optimising ones - compile7 }
    { rel1.2(B) Add routine DeleteObjectFile - compile8  15/Oct/85}
    { rel1.2(C) Check local filename length < 14 chars. compile9.i 9/dec/85}
    { alter for 680020 Fortran by using fort77 and P -> M }
    { rel0.1    Check -P text for UNSET before calling SetSigs. This is a }
    {           consequence of ditching FORTENTRY in favour of /lib/crt0.o}
    {           Control is received by routine COMPILE aliased to "main"  }
    {                                                            (Driver7)}
    { rel0.2    -L becomes -G (use Driver8 for compatibility)           }

==== ercc07/asss.txt ====
%externalroutine icl9cezassemble
   %external %integer %map %spec COMREG %alias "S#COMREGMAP"(%integer N)
{* IBM XA Code Planting routinespecs *}

{******** Monitoring *********}

{ Parm CODE will cause a line by line decode of instructions }
{ Monitoring of all non-code planting is turned on by PMonOn or bit 1 of }
{ COMREG(26). Monitoring of code planting is turned on by bit 2 of COMREG(26) }
{ COMREG(26)=128 causes decoding of each instruction as planted }
{ COMREG(26)=256 causes decoding of the whole code area after fixups }

{* The following routinespecs have been provided initially, corresponding to the *}
{* formats given in the "Principles of Operation".                           *}

   %externalroutinespec PIX RR %alias "S#PIXRR" (%integer Op, R1, R2)
      { Plant RR format instruction }

   %externalroutinespec PIX RRE %alias "S#PIXRRE"(%integer Op, R1, R2)
      { Plant RRE format instruction }


==== ercc07/trimp_oaccponeas.txt ====
%INCLUDE "ERCC07.TRIMP_HOSTCODES"
%CONSTINTEGER HOST=EMAS
%CONSTINTEGER TARGET=ACCENT
! PRODUCED BY OLDPS FROM TRIMP_PERQPS01 ON 06/09/83
%CONSTBYTEINTEGERARRAY CLETT(0: 436)=   1,
  40,   1,  41,   1,  42,   1,  44,   2, 201, 198,   6, 213, 206, 204,
 197, 211, 211,   5, 215, 200, 201, 204, 197,   5, 213, 206, 212, 201,
 204,   3, 198, 207, 210,   1,  61,   5, 193, 204, 201, 193, 211,   7,
 201, 206, 212, 197, 199, 197, 210,   4, 210, 197, 193, 204,   4, 204,
 207, 206, 199,   4, 194, 217, 212, 197,   6, 211, 212, 210, 201, 206,
 199,   4, 200, 193, 204, 198,   5, 211, 200, 207, 210, 212,   6, 210,
 197, 195, 207, 210, 196,   7, 210, 207, 213, 212, 201, 206, 197,   2,
 198, 206,   3, 205, 193, 208,   8, 198, 213, 206, 195, 212, 201, 207,
 206,   4, 206, 193, 205, 197,   9, 193, 210, 210, 193, 217, 206, 193,
 205, 197,   9, 207, 198, 208, 210, 207, 199, 210, 193, 205,   6, 207,
 198, 198, 201, 204, 197,   6, 207, 198, 204, 201, 211, 212,   6, 198,
 207, 210, 205, 193, 212,   3, 206, 207, 212,   3, 193, 206, 196,   2,
 207, 210,   1,  58,   4, 211, 208, 197, 195,   5, 193, 210, 210, 193,
 217,   3, 207, 215, 206,   8, 197, 216, 212, 197, 210, 206, 193, 204,
   9, 197, 216, 212, 210, 201, 206, 211, 201, 195,   8, 195, 207, 206,
 211, 212, 193, 206, 212,   5, 195, 207, 206, 211, 212,   5, 197, 214,

==== ercc07/portenv03s.txt ====

%CONSTINTEGER YES=1,NO=0
            
!
! THESE CODE ARE ARBITARY BUT THE TOP DECIMAL DIGIT GIVES THE NO OF BYTES
! IN THE UNIT OF ADDRESSABILITY. BYTE ADDRESSED HOSTS BEING 1N ( also 0N) AND
! 16 BIT WORD ADDRESSED HOSTS BEING 2N ETC
%CONSTINTEGER VAX=08;                    ! Imp on Vax using F & G formats
%CONSTINTEGER UNISYS=09;                ! Imp on UnisSys. Unix stack unswopped Vax reals
%CONSTINTEGER EMAS=10;                  ! emas on 2900 (unsigned shorts)
%CONSTINTEGER IBM=11;                   ! emas on 24 bit ibm hardware
%CONSTINTEGER IBMXA=12;                 ! emas of XA 31 bit hardware
%CONSTINTEGER WWC=13;                   ! WWc (Natsemi chip) completely swopped
%CONSTINTEGER AMDAHL=14;                ! Emas on Amdahls guess at Xa Minor differences fron IBM)
%CONSTINTEGER PERQ3=15;                 ! ICL packaged 68k chip Unix stack but not swopped
%CONSTINTEGER GOULD=16;                 ! Gould unswopped forward stack. Needs 4&8 byte alined
%CONSTINTEGER VNS=17;                   ! Unix on 2900 unsigned shorts params as
                                        ! 2900. Long int available but not in Ecode
%CONSTINTEGER EAMD=18;                  ! Amdahl via the Emachine
%CONSTINTEGER DRS=19;                   ! Intel chip Unix stack and mostly swopped
%CONSTINTEGER PERQ=20;                  ! Pos perq now obselete. Fully swopped forward stack

==== ercc07/heap1s.txt ====
%include "itrimp_hostcodes"
%constinteger host=IBMXA
%constinteger target=vax
%constinteger wordad=0
%externalintegermapspec comreg %ALIAS "S#COMREGMAP"(%integer n)
%routinespec phex%alias "S#PHEX"(%integer n)
%externalintegerfnspec getspace(%integer sizeinbytes)

%recordformat heapfm(%integer link,id,item1,item2)
%constinteger endoflist=0
%owninteger mon=0,free,heapinc,heapad,numels,tot=0

%routine format heap(%integer ad)
%record(heapfm) %arrayformat heapafm(1:100000)
%record(heapfm) %arrayname heap

%integer i

  heap == array(ad,heapafm)
  free = ad
  heap(i)_link=addr(heap(i+1)) %for i=1,1,numels-1

==== ercc07/trimp_emasponeas.txt ====
%INCLUDE "ERCC07.TRIMP_HOSTCODES"
%CONSTINTEGER HOST=EMAS
%CONSTINTEGER TARGET=EMAS
! PRODUCED BY OLDPS FROM EMASPS01 ON 06/12/83
%CONSTBYTEINTEGERARRAY CLETT(0: 472)=   1,
  40,   1,  41,   1,  42,   1,  44,   2, 201, 198,   6, 213, 206, 204,
 197, 211, 211,   5, 215, 200, 201, 204, 197,   5, 213, 206, 212, 201,
 204,   3, 198, 207, 210,   1,  61,   5, 193, 204, 201, 193, 211,   7,
 201, 206, 212, 197, 199, 197, 210,   4, 210, 197, 193, 204,   4, 204,
 207, 206, 199,   4, 194, 217, 212, 197,   6, 211, 212, 210, 201, 206,
 199,   4, 200, 193, 204, 198,   5, 211, 200, 207, 210, 212,   6, 210,
 197, 195, 207, 210, 196,   7, 210, 207, 213, 212, 201, 206, 197,   2,
 198, 206,   3, 205, 193, 208,   8, 198, 213, 206, 195, 212, 201, 207,
 206,   4, 206, 193, 205, 197,   9, 193, 210, 210, 193, 217, 206, 193,
 205, 197,   9, 207, 198, 208, 210, 207, 199, 210, 193, 205,   6, 207,
 198, 198, 201, 204, 197,   6, 207, 198, 204, 201, 211, 212,   6, 198,
 207, 210, 205, 193, 212,   3, 206, 207, 212,   3, 193, 206, 196,   2,
 207, 210,   1,  58,   4, 211, 208, 197, 195,   5, 193, 210, 210, 193,
 217,   3, 207, 215, 206,   8, 197, 216, 212, 197, 210, 206, 193, 204,
   9, 197, 216, 212, 210, 201, 206, 211, 201, 195,   8, 195, 207, 206,
 211, 212, 193, 206, 212,   5, 195, 207, 206, 211, 212,   5, 197, 214,

==== ercc07/trimp_emasoptas.txt ====
%INCLUDE "ERCC07.TRIMP_HOSTCODES"
%CONSTINTEGER HOST=EMAS
%CONSTINTEGER TARGET=EMAS

==== ercc07/trimp_pnxopt01s.txt ====

      %INCLUDE "ERCC07.TRIMP_TFORM1S"
      %INCLUDE "ERCC07.TRIPCNSTS"
%EXTRINSICRECORD(WORKAF) WORKA
%EXTRINSICRECORD(PARMF) PARM
%CONSTINTEGER YES=1
%CONSTINTEGER NO=0
%EXTERNALROUTINESPEC IMPABORT
%EXTERNALROUTINESPEC FAULT(%INTEGER N,DATA,IDENT)
%EXTERNALROUTINESPEC PRINT TRIPS(%RECORD(TRIPF) %ARRAYNAME TRIPLES)
%CONSTBYTEINTEGERARRAY WORDS(0:7)=0(3),1,1,1,2,4; 
%ROUTINE EXTRACT(%RECORD(RD) %NAME OPND, %INTEGERNAME VAL,
    %LONGREALNAME RVAL, %STRINGNAME STRVAL)
!***********************************************************************
!*    EXTRACTS A CONTANT OPERAND RETURNING REAL &INT VALUES           *
!***********************************************************************
%INTEGER TYPE,PREC,I,AD
      TYPE=OPND_PTYPE; PREC=TYPE>>4
      TYPE=TYPE&15
      VAL=0; RVAL=0; STRVAL=""
      %IF TYPE=5 %START

==== ercc07/makevax_p1.txt ====
edit poneb02s,VP1S
i<itrimp_VAXponeas>
ta/%inc/
d1i<itrimp_hostcodes>
a'
d1i<itrimp_tform2s>
m/%constlonglongreal/
TA/HOST=/I/VAX
/D1P-2
e
PARM NOCHECK
VAXIMP VP1S,VP1XX
TRANSFER VP1XX,ERCVAX(ERCC07,PEATHAG)VP1.OBJ,FILE,BIN

==== ercc07/makevax_p2.txt ====
edit timp03s,vp2s
i<itrimp_vaxptwoas>
ta/%inc/
d1i<itrimp_hostcodes>
a'
d1i<tripcnsts>
a'
d1i<itrimp_tform2s>
ta/host=/i/Vax
/d1
e
parm nocheck,noarray,nolist
vaximp vp2s,vp2xx,vp2l
transfer vp2xx,ercvax(ercc07,peathag)vp2.obj,file,bin

==== ercc07/vaxcom_clink.txt ====
$ link/map imp80,pim,vp1,vp2,vpo,vp4,cserv,vbgen,vput3,compio,vaxiocp,csrce,penv,vndiag,sys$input/opt
sys$share:vaxcrtl.exe/share

==== ercc07/stuconsts.txt ====
%OWNBYTEINTEGERARRAYNAME TOKENS
%OWNINTEGER TOKENPTR,IVALUE,CTYPE
%OWNLONGREAL CVALUE
%INTEGERFN CONST(%INTEGER MODE)
!***********************************************************************
!*       MODE=0 FOR NORMAL  MODE=2 INTEGER CONSTANTS                   *
!*       %RESULT=0 for failure, %RESULT=1 if vali constant found       *
!*       If ok then ctype=1 for integer const,=2 for real const        *
!*       real value put into global CVALUE, if integer then it         *
!*       the integer part is put into global ivalue                    *
!***********************************************************************
%INTEGER I,Z
%LONGLONGREAL CV,X
      CV=0; I=TOKENS(TOKENPTR); CTYPE=1
      IVALUE=0; ->N %IF M'0'<=I<=M'9'
      ->DOT %IF I='.' %AND MODE=0
                                        ! 1 digit is the MINIMUM constant
      %IF I='@' %AND MODE=0 %THEN CV=1 %AND ->ALPHA
      %RESULT=0
N:    I=I&15; CV=10*CV+I
      TOKENPTR=TOKENPTR+1; I=TOKENS(TOKENPTR)

==== ercc07/makevax_p4.txt ====
edit vaxp41s,vp4s
a/%incl/d1i<itrimp_hostcodes>
a'd1i<ercs01:ebits_ecodes28>
a'd1i<tripcnsts>
a'd1i<itrimp_tform2s>
a'd1i<ercs01:ebits_especs5>
ta/host=/i/vax
/d1p-1
e
parm nocheck,nolist
vaximp vp4s,vp4xx
transfer vp4xx,ercvax(ercc07,peathag)vp4.obj,file,bin

==== ercc07/sdbblurb.txt ====
     In ELF (Etymology ELF=Extended  load  Format)  SDB  information  is
highly  structured  and  placed  in a separate area (.debug) from symbol
table information.   The debug area has many cross links with itself and
other  areas  so  that  variables are owned by subroutines,   members by
structures etc.  It is not possible for the compiler to construct .debug
without  help from the Ecode modules so it seems best for PUT to provide
an interface for the front ends

     On the plus side ELF SDB information is very general and  can  cope
with  records,structures  and  enumeration  types  etc  via  user define
typing.   There are also a selection of  fundamental  types.    Location
information  is  also  extremely  general  via  a do-it-yourself reverse
polish calculation kit that is  able  to  cope  with  exceeding  complex
calculations.

     The following routine is suggest as the  interface  for  variables.
Further  routines  to  add  arrays,structures  etc as user types will be
added later.   In general PUT will assume all SDB  information  provided
between  calls  of  EPROC  and  EPROCEND  are for variables owned by the
current procedure.   Globals are assumed for SDB information  preceeding
the  first call of EPROC or after the last EPROCEND .   However on Sparc

==== ercc07/xgen23s.txt ====
!* modified 16/07/86
!*
%ownstring(31) Versiontext="Fortran77 Compiler Version 0.1"
%owninteger Report=0
%owninteger Decode
%owninteger Language
!*
%constinteger IMP      =  1
%constinteger FORTRAN  =  2
%constinteger CCOMP    = 11
%constinteger PASCAL   = 14
%constinteger bootlang=16
!*
!***********************************************************************
!* Exports                                                             *
!***********************************************************************
!*
%routinespec Einitialise(%integer Lang, Avertext, Astackca,
                                                    Aglaca, Options)
%routinespec Eterminate(%integer adareasizes)
%routinespec Ecommon(%integer area, %stringname Name)

==== ercc07/vaxsup_compioc.txt ====

#include ssdef

#define  byteinteger * (char *)
long fileptr;
extern long comreg[64];
extern char objectfile[39];

opensq(chan)
   {
   char file[80];
   fileptr=fopen(&objectfile,"w","ctx=rec","rfm=var","mrs=512");
/*     printf("Opened ptr = %x, \n", fileptr);*/
   }

writesq(chan, startdr0, startdr1, enddr0, enddr1)
   int chan, startdr0, startdr1, enddr0, enddr1;
   {
   int n,nw,topad;
   int buffer[128];
   char * ptr1, * ptr2;

==== ercc07/vaxcom_multicomp.txt ====
$ set noverify
$LOOP:
$ next_file = f$search("RT*.IMP",1)
$ if next_file .eqs. "" then goto finish
$ if next_file .eqs. "RT26.IMP" then goto loop
$ if next_file .eqs. "NOR_THIS_ONE.IMP" then goto loop
$ next = f$parse(next_file,,,"NAME")
$ if next .eqs. "RT37" then goto loop
$ imp80 'next'
$ implink 'next'
$ run 'next'
$ delete 'next'.obj;*,'next'.exe;*,'next'.lis;*,'next'.map;*
$ write sys$output "Completed ",next_file
$ goto loop
$FINISH:
$ exit

==== ercc07/gldgen00s.txt ====
!
! Warning this module has the revised triples spec.
!
! In first attempt at Triple Imp considerable use was made of constant operands
! to pass information from Pass2 to GEN. Although for specialised operations like
! passing Labels this still applies, this adhocery has caused problems with arrays
! and pointers particularly in mapped records. The operands for four triples
! have thus been redefined in a more standard way.
!
! GETPTR    X1 is now (ptype of passed)<<16! DIMENSION
!           Opnd2 is either a 32 bit const with the size (ACC) as value or
!           the ptr or arrayhead as normal operand.
!
! VMY       X1 is now dim<<28!maxdim<<24!array name(where known)
!           Opnd2 is either a 32 bit const with DV offset into const area or
!           the arrayhead as a standard operand
!
! AINDX     X1 is ELSIZE<<20 !spare
!           Opnd2 is arrayhead as standard operand
!           NOTE:- The Operands have been swopped for consistency with norm.
!

==== ercc07/docs_timet.txt ====


Planning Timetable for Central Service Replacement Planning Exercise
____________________________________________________________________



1.INTRODUCTION

   In 1990, money (approx. #2milllion ) will be made available by the Computer
Board  for  the replacement of the University of Edinburgh's central computing
service systems,   currently based on three Amdahl 470 mainframes.  This money
may ONLY be used for the provision of central facilities i.e. those managed by
the Computing Service and available for  use  by  the  entire  Edinburgh  user
community.

   The choice made in 1990 will dictate the shape  of  central  computing  for
seven years which is the new Computer Board replacement timescale. The Service
organisation,   the communications network and Departmental computing will  to
varying  degrees  be  influenced  by  the  choice  made  for  the  new central
facilities.

==== ercc07/xgen24s.txt ====
!* modified 16/07/86
!*
%ownstring(31) Versiontext="Fortran77 Compiler Version 0.1"
%owninteger Report=0
%owninteger Decode
%owninteger Language
!*
%constinteger IMP      =  1
%constinteger FORTRAN  =  2
%constinteger CCOMP    = 11
%constinteger PASCAL   = 14
!*
!***********************************************************************
!* Exports                                                             *
!***********************************************************************
!*
%routinespec Einitialise(%integer Lang, Avertext, Astackca,
                                                    Aglaca, Options)
%routinespec Eterminate(%integer adareasizes)
%routinespec Ecommon(%integer area, %stringname Name)
%routinespec Eendcommon(%integer area, Length)

==== ercc07/trimp_compress.txt ====
%EXTERNALROUTINESPEC DEFINE(%STRING(63)S)
%EXTERNALROUTINE COMPRESS(%STRING(63)S)
!***********************************************************************
!*    COMPRESSES A FILE OF ERROR MESSAGE INTO TWO CONSTARRAYS AND      *
!*    GENERATES A ROUTINE TO REGURGITATE THEM IN ENGLISH               *
!***********************************************************************
%INTEGER CPSTRM,INSTRM,LPSTRM
%INTEGERARRAY WORD(0:2000)
%INTEGERARRAY LETT(0:1000)
%INTEGER I, J, K, N, NUM, NEXT, NMAX, NUMMAX
%STRING(31) FILE1, FILE2, FILE3
%STRING(71)TEMP,INPUT,WK1,WK2
%%STRING(71)%FNSPEC MESS(%INTEGER N)
%ROUTINESPEC LIT(%INTEGERNAME P,%STRINGNAME TXT1)
%ROUTINESPEC CARDS OUT

%CONSTBYTEINTEGERARRAY INTT(0:127)=     63(32),63(3),61,63,60, %C
                                        27,30,31,32,63(3),
                                        28,59,29,63(17),
                                        1,2,3,4,5,6,7,8,9,10,11,12,
                                        13,14,15,16,17,18,19,20,

==== ercc07/gldgen01s.txt ====
!
! Recent Changes
! **************
!
!      23 JUne 87 Unecessary top bits maked out in recordelad. These
!            caused no trouble till NP1 which has 32 bit addressing
!              Also check removed on convert longinteger to integer
!     8 May 87 Change so RT Params are double word aligned
!     20Apr 87 Changes so that array heads (Long integers) are double word aligned
!     Feb 87 Substantial changes to support 64 bit integers
!
!
! Warning this module has the revised triples spec.
!
! In first attempt at Triple Imp considerable use was made of constant operands
! to pass information from Pass2 to GEN. Although for specialised operations like
! passing Labels this still applies, this adhocery has caused problems with arrays
! and pointers particularly in mapped records. The operands for four triples
! have thus been redefined in a more standard way.
!
! GETPTR    X1 is now (ptype of passed)<<16! DIMENSION

==== ercc07/idev9s.txt ====
!09-09-85..statistics gathering for auscom
!05-09-85..use tio in case mag tape off-line..sh
%INCLUDE "ercc07:ibmsup_comf370"
%INCLUDE "ercc07:ibmsup_page0f"
%INCLUDE "ercc07:ibmsup_dtform1s"
%INCLUDE "ERCC07:IBMSUP_xaioform"
%RECORDFORMAT PARMF(%INTEGER DEST,SRCE,(%INTEGER P1,P2,P3,P4,P5,P6 %ORSTRING (23) TEXT))
%RECORDFORMAT PARMXF(%INTEGER DEST,SRCE,P1,P2,P3,P4,P5,P6,LINK)
      %IF VA MODE=YES %START
      %CONSTRECORD (PARMXF) %ARRAYNAME PARM=PARM0AD
      %FINISHELSESTART
!* %EXTERNALINTEGERSPEC parmad
      %OWNRECORD (PARMXF) %ARRAYNAME PARM
!* %OWNRECORD(parmxf)%ARRAYFORMAT parmaf(0:128)
      %FINISH
!
%EXTERNALINTEGERFNSPEC REALISE(%INTEGER VAD)
%EXTERNALINTEGERFNSPEC HSCH(%INTEGER SLOTADDR)
%EXTERNALINTEGERFNSPEC TSCH(%INTEGER SLOTADDR, %RECORD (IRBF) %NAME IRB)
%EXTERNALINTEGERFNSPEC SSCH(%INTEGER SLOTADDR,CCWA,KEY)
%EXTERNALROUTINESPEC STSCH(%INTEGER SLOTADDR, %RECORD (SCHIBF) %NAME SCHIB)

==== ercc07/idev10s.txt ====
!09-09-85..statistics gathering for auscom
!05-09-85..use tio in case mag tape off-line..sh
%include "ercc07:ibmsup_comf370"
%include "ercc07:ibmsup_page0f"
%include "ercc07:ibmsup_dtform1s"
%include "ercc07:IBMSUP_xaioform"
%record %format PARMF(%integer DEST,SRCE,(%integer P1,P2,P3,P4,P5,
   P6 %or %string (23) TEXT))
%record %format PARMXF(%integer DEST,SRCE,P1,P2,P3,P4,P5,P6,LINK)
%if VA MODE=YES %start
   %const %record (PARMXF) %array %name PARM=PARM0AD
%finish %else %start
!* %externalintegerspec parmad
   %own %record (PARMXF) %array %name PARM
!* %ownrecord(parmxf)%arrayformat parmaf(0:128)
%finish
!
%external %integer %fn %spec REALISE(%integer VAD)
%external %integer %fn %spec HSCH(%integer SLOTADDR)
%external %integer %fn %spec TSCH(%integer SLOTADDR, %record (IRBF) %name IRB)
%external %integer %fn %spec SSCH(%integer SLOTADDR,CCWA,KEY)

==== ercm09/emas-2900/gateway.txt ====

@section[PABX/LAN Gateways]
@subsection[The current position]

    When a large number of ports in one location are connected to a
PABX, for example, to serve a host computer, it is necessary to
connect an Individual Data Interface Unit to the end of each port (see
Fig n).  Even when these units can be racked together, as is the case
with the Plessey exchange, the solution is hardly elegant.
   These problems can be considerably increased when a number of
different hosts are connected; the maximum numbe of simultaneous
connections to each host must be estimated and that number of lines
dedicated to each host. Users are very unforgiving when access to
their host is denied because all the ports on the exchange are in use
even though the maximum potential of the particular host has not yet
been reached because only a few 'other' lines are in use.  Our
experience has shown that the peak number of users is not usually
reached on all hosts simultaneously, the effects of special courses,
lectures, deadlines and the like causes fairly wide fluctuations in
the demand for any particular machine.  In solving this problem, in
common with any PACX use, many more access ports have to be provided

==== ercm09/emas-2900/node_dup11e.txt ====
!**************
!*  DUP11E    *
!*DA:16.JAN.80*
!**************

%CONTROL K'100001';                    ! 'SYSTEM' PROGRAM AND
                                       ! TRUSTED PROG


%RECORDFORMAT PARF(%INTEGER TYPE, ADDRESS, LEN)

%EXTERNALROUTINE DUP11E(%RECORD (PARF) %NAME P)

%END;         ! TEMP TO SAVE CODE SPACE ON NODE 9
%ENDOFFILE
     %SYSTEMROUTINESPEC MAPHWR(%INTEGER SEG)
     %SYSTEMINTEGERFNSPEC GETID
     %SYSTEMROUTINESPEC LINKIN(%INTEGER SER)
     %SYSTEMINTEGERFNSPEC MAP ABS(%INTEGER ADR, LEN, REQ ID)
     %PERMINTEGERFNSPEC SVC(%INTEGER EP, P0, P1)


==== ercm09/emas-2900/b_ftpxa.txt ====
new
prep x25gen_ftpd5s,ftpd5s#imp,x,g,clean,a
dimp11 ftpd5s#imp
link11 /ftpd5s
ftpd5s#rel
.stack 2400
.streams 3
.stackseg 6
.end
ftpg5s
c ftpg5s#abs,ftpxay
destroy ftpg5s#abs
alist11 ftpd5s#imp
list ftpd5s#lst,.lp23

==== ercm09/emas-2900/kmc11_kmcs.txt ====
C!
!   KMC11 ASSEMBLER V2
!   STARTED GJB 28/03/78
!   UPDATED GJB 29/09/78
!
%CONTROL K'101011'
%BEGIN
%OWNINTEGER FAULTS,LPTR,CLOC,DLOC,TYPE,VALUE,PRINT,LMAX,INST,PPTR,I,COUNT
%OWNINTEGER CORD,SPTR,J,MACLEV,MTPTR,IN1,IN2,IN3,K,TOELSE,POSN
%OWNINTEGER ASL=-1,LS=3
%RECORDFORMAT TF(%BYTEINTEGERARRAY NAME(0:5),%INTEGER TYPE,VALUE)
%RECORD(TF)%ARRAYNAME TAG
%RECORDFORMAT T1F(%BYTEINTEGERARRAYNAME NAME)
%RECORDFORMAT T2F(%RECORD(TF)%ARRAYNAME NAME)
%RECORD(T1F) T1
%RECORD(T2F)%NAME T2
%OWNBYTEINTEGERARRAY TTAG(0:2559) = %C
  66,   0,   0,   0,   0,   0,   7,   0, 255, 255,
  67,   0,   0,   0,   0,   0,   5,   0,   0,   0,
  90,   0,   0,   0,   0,   0,   5,   0,   1,   0,
  66,  82,  71,   0,   0,   0,   1,   0,   0,  97,

==== ercm09/emas-2900/kents_ring4s.txt ====


!********************************
!*    EMAS-2900   RING INTERFACE *
!*                    HANDLER     *
!*      FILE: RING4S              *
!*        27:3:80                *
!*********************************
!!  STK = 300,  STRM = 1

! COMPILE OPTIONS
! ---------------
! TRACE OPTION #T            ON
! ERROR OPTION #E            ON
! STATS OPTION #S            OFF
!
!NB LOCATION K'140016 IS USED TO HOLD THE CHECKSUM SO THAT IT MAY
!BE ACCESSED FROM CODE

%SYSTEMROUTINESPEC LINKIN(%INTEGER SER)
%SYSTEMROUTINESPEC MAP HWR(%INTEGER SEG)

==== ercm09/emas-2900/streets.txt ====

Group 1                         Total 225

=======

Eva Pl. Odd 3-9, Even 12/14             10
Ladysmith Rd. Odd 1-69, Even 22-52      51
Maurice Pl. Odd 3-13, Even 2            14

==== ercm09/emas-2900/b_lmpsse.txt ====
imp11 lmpsse
link11
lmpsse#rel
i77perm
.stack 2000
.streams 1
.end
lmpssey
list lmpssey,.fep72

==== ercm09/emas-2900/erteicl_xbm01.txt ====
;**************************************
;*         XBM01                      *
;*  INTERFACE BETWEEN HARDWARE AND IMP*
;* AND LOW LEVEL DUP11 HANDLER        *
;*  DATE:  23.FEB.80                  *
;**************************************
 
PS=177776; PROCESSOR STATUS WORD
 
IDLEST=-1; SUPERVISOR IDLE FLAG
 
INTVAL=40; DEDICATED LOCATION FOR INTERRUPT NUMBER
ALARMF=44; DITTO - FOR CLOCK
PSECT=46; DITTO - CURRENT PSECT
LASTPS = 54
INTINF=56
 
UPAR=177640
UPDR=177600
 
UPAR0=40; INDEC INTO PSECT

==== ercm09/emas-2900/iprogsou_code11.txt ====
! RECODE FOR IMP PROGRAMS
! THIS PROGRAM TAKES THE THIRD PASS
! OUTPUT OF THE IMP COMPILER
! AND MAKES A RECODE IN ASSEMBLY
! OF EVERY IMP SOURCE LINE
! AUTHOR K. STRAATMAN
! MATHEMATISCH INSTITUUT
! RIJKSUNIVERSITEIT TE GRONINGEN
! POSTBUS 800, GRONINGEN, THE NETHERLANDS
! 24 JAN 1978
! COMMAND: RECODE SOURCE OY / OUTPUT

%EXTERNALROUTINE CODE11(%STRING(63) FILE)
   %CONSTINTEGER MAX SPECS = 100
   %OWNINTEGER MAIN PROG = 0
   %STRING(63) SOURCE FILE, OBJECT FILE,OUTPUT,SDISP
%INTEGER DISP,I

   %EXTERNALINTEGERFNSPEC EXIST(%STRING(63) FILE)
   %EXTERNALROUTINESPEC DEFINE(%STRING(63) S)
   %EXTERNALINTEGERFNSPEC TIME40(%INTEGER INST)

==== ercm09/emas-2900/btt6xs.txt ====
!**************
!*  BTT6S     *
!*DA:24.MAR.80*
!**************

%CONTROL K'100001';  ! 'SYSTEM' PROGRAM (FAST ROUTINE ENTRY/EXIT)
%PERMROUTINESPEC SVC(%INTEGER EP, P1, P2)
%BEGIN

     %SYSTEMROUTINESPEF MAPHWR(%INTEGER SEGS)
     %SYSTEMROUTINESPEC LINKIN(%INTEGER SER)

     %RECORDFORMAT PF(%BYTEINTEGER SERVICE, REPLY, %C
        %INTEGER A1, A2, A3)
     %RECORDFORMAT TTF(%INTEGER KBS, KBD, TTS, TTD)
     %RECORDFORMAT BUFF(%INTEGER PT, LAST, %BYTEINTEGERARRAYNAME B)
     %RECORDFORMAT BUFFX(%INTEGER PT, LAST, ARRAYPT)

     %CONSTRECORD (BUFFX) %NAME NULL = 0



==== ercm09/emas-2900/la0216.txt ====

Dump GEC logfile  Version  1.3c

Log:ACCNTS.GAP850216
 To:LA0216




First record at 23:57:23


Date Covered was:  7/  2/ 1985     22:14:50 Exchange 2

        Frames       Control         1 seg          Calls   RESETS  Bytes/Sec  ERRORS  Total Frames     Total Data F  Av Bytes
 Line    In/sec    %Out   %In     %Out   %In     Out     In  Total  Out     In   Total    Out      In        Out     In  Out  In
Em g-2      6.0     17%     59%     78%     99%      0    530   0   223    66      1   472902   662707   393698   268280  44  11
Em g-1      1.3     13%     69%      4%     10%   1691      1   1   129    44      1   100188   100862    78966    25801 128 118
Bu g-2      1.9     14%     60%     72%     98%      0   1229   2    84    24      2   152940   212298   129018    82616  51  13
KBcpse      5.2     23%     62%     60%     79%   5234   1519   6   252    93     43   408105   434642   284817   142624  68  40
Mcsu        0.1     70%      7%     95%     45%     23     11   1     1     5    111     3961     5185     1086     4618  24  83

==== ercm09/emas-2900/tsbsp_tst_rawst.txt ====
5
WT_ACCEPT RUNNING WT_FIN WT_DISC WT_CLOCK
7
ERROR_EVENT * * * * *

ACC PROCESS_ACC,RUNNING * * * -

DISC OPEN_FAILED,WT_CLOCK REPLY_DISC_AB,WT_CLOCK REPLY_DISC_OK,WT_CLOCK
  -,WT_CLOCK -

RST SEND_DISC,WT_DISC SEND_DISC,WT_DISC SEND_DISC,WT_DISC - -

EN_OUT * SEND_DATA - - -

INT_A SEND_DISC,WT_DISC SEND_DISC,WT_DISC SEND_DISC,WT_DISC - STOP

TICK - - - - STOP

==== ercm09/emas-2900/alist11s.txt ====
%BEGIN
   %INTEGER LINE, ADDR
   %ROUTINE POCT(%INTEGER N)
      %INTEGER J
      SPACE
      PRINTSYMBOL(N>>J&7+'0') %FOR J = 15,-3,0
      SPACE
   %END
   %ROUTINE GET(%INTEGERNAME N)
      %INTEGER S
      READSYMBOL(N);  READSYMBOL(S)
      N = N+S<<8
   %END
   %ROUTINE NEXT LINE
      %INTEGER S, N
      SELECTINPUT(2)
      %CYCLE
         READSYMBOL(S) %UNTIL S = 1;  SKIPSYMBOL
         GET(N);  GET(ADDR)
         N = (N-6)//2
         %STOP %IF N <= 0

==== ercm09/emas-2900/advent_mess.txt ====
#1
You can't move that way.
#2
Nothing happens.
#2.1
Nothing seems to happen.
#2.2
I don't think that had any affect on anything.
#2.3
I don't know how to apply that word in this situation.
#2.4
That had little effect, if anything at all.
#3
The fissure is too wide to jump.
#4
You are at the bottom of a pit with a broken neck.
#5
The bottle is already filled!
#6
The bear eagerly wolfs down the food and becomes calm and friendly.
#7

==== ercm09/emas-2900/nodes.txt ====
{{circle(14,15,3);inlabel(.35,"KB CPSE@b")}}
{{inlabel(.2,"@b@b000015000000")}}
{{circle(14,4,3);inlabel(.35,"AT 1 CPSE@b")}}
{{inlabel(.2,"@b@b000016000000")}}
{{circle(2,15,2);inlabel(.2,"TelePAC 1@b")}}
{{inlabel(.14,"@b@b000015001000")}}
{{circle(7.8,12.5,2);inlabel(.2,"TelePAC 2")}}
{{inlabel(.14,"@b@b000015005000")}}
{{circle(2,4,2);inlabel(.2,"AT 2 CPSE@b")}}
{{inlabel(.14,"@b@b000016001000")}}
{{join(c1,c2);join(c1,c3);join(c1,c5)}}
{{join(c2,c3)}}
{{join(c3,c4)}}
{{box(1.5,24.5)(4.5,26.5);inlabel(.2,"EMAS")}}
{{box(8.5,24.5)(11.5,26.5);inlabel(.2,"BUSH")}}
{{box(15.5,24.5)(18.5,26.5);inlabel(.2,"EMAS-A")}}
{{circle(.9,23,.6)inlabel(.14,"Fe3")}}
{{circle(2.3,23,.6)inlabel(.14,"Fe1")}}
{{circle(3.7,23,.6)inlabel(.14,"Fe2")}}
{{circle(7.9,23,.6)inlabel(.14,"Fe4")}}
{{circle(9.3,23,.6)inlabel(.14,"Fe1")}}

==== ercm09/emas-2900/b_rjes.txt ====
imp11 fep_rjes9s/rjes9s#rel,ll
link11
rjes9s#rel
i77perm
.stack 1000
.streams 0
.name rjes
.end
rjes9y
list rjes9y,.fep72
alist11 fep_rjes9s,rjes9s#rel/.lp23

==== ercm09/emas-2900/ertedgn_dz11s.txt ====
!*****************************
!*                           *
!*   DZ11 HANDLER            *
!* DATE: 10.FEB.82           *
!* FOR ERTE: DATA GENERAL    *
!*****************************

! STK = 300, STREAMS = 0

%CONTROL K'100001'

%CONSTSTRING (13) VSN = "Dz11:vsn001a
"

%RECORDFORMAT DUMF(%INTEGER D)
%CONSTRECORD (DUMF) %NAME NULL = 0
%SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)
%SYSTEMROUTINESPEC LINKIN(%INTEGER SER)
%SYSTEMROUTINESPEC MAPHWR(%INTEGER SEGS)

%BEGIN

==== ercm09/emas-2900/b_ygatecalls.txt ====
      !************************************************************
      !* Function Values between Upper level and Gate
      !************************************************************
      %constinteger connect         =  1 ;! start a call up
      %constinteger accept call     =  2; ! accept a call
      %constinteger Disconnect      =  3; ! Stop a call, or reject a connect
      %constinteger Enable Input    =  4; ! Allow data, Gate -> Task
      %constinteger Put Output      =   5; ! Output Block, Gate -> Task
      %constinteger Enable Output   =   4; ! Allow Output, Task -> Gate
      %constinteger Input Here      =   5; ! Input Block,  Task -> Gate
      %constinteger Expedited       =   6; ! Pass 'Interrupts'
      %constinteger Reset           =   7; ! Reset the Virtual Circuit (!)
      %constinteger Datagram        =   8; ! Send a 'datagram'
      %constinteger Datagram Reply  =   9; ! Reply to a datagram

      %constinteger Enable Facility =  10; ! Claim incoming calls Task -> Gate
      %constinteger Disable Facility= 11; ! Stop them
      %constinteger Control data = 12;   ! control data in&out (xxx only)
%endoffile

==== ercm09/emas-2900/ftppd_tableold.txt ====
/
[LITERALS]
[ATTRIBUTES]
1 PROTID/0
ACCESSMODE/1
TRANSCODE/2
TEXTFORM/3
MAXREC/5
TRANSLIM/6
INITM/11
TIMEOUT/13
FACILITIES/14
TRANSSTATE/15
DATATYPE/32
FILENAME/64
USERNAME/66
USERPASS/68
FILEPASS/69
ACCOUNT/74
ACCPASS/75
FILESIZE/96

==== ercm09/emas-2900/biog.txt ====
Brian Gilmore has worked for the Edinburgh Regional Computing Centre for the
past 11 years, the last 3 of which as Communications Manager. He graduated 
from Edinburgh University in 1971 with a BSc (Hons) in Physics and added a
MPhil in Computer Science in 1976.
Brian Gilmore's principal duties as Communications Manager include the
strategic planning for and the management of the team which develops and
maintains the software for the Edinburgh University X.25 data network EDNET
which interconnects over 40 hosts and 1700 terminals in addition to links to
the Academic Network JANET and the Public Data Network.
He served on the Temporary Network Executive which ran JANET in its 
initial phase and has served on the Academic Communities' ISO Transition
Committee, planning the transition from Coloured Books to ISO, for the past
20 months. His latest paper was 'Using PABX for voice and data in large
networks', published in Data Processing Vol 27 No 8, October 1985

==== ercm09/emas-2900/ring_bsp78s.txt ====
! file 'ring_bsp78S'
! nb: should be prepped !


!********************************
!*    emas-2900   bsp interface *
!*                    handler     *
!*      file: bsp78S             *
!*  date:27.apr.82               *
!* modified for ercc use         *
!*********************************
!!  stk = 300,  strm = 1

! prep options:-  o - old compiler
!                 n - new compiler
!                 g - Xgate Vsn, open reply A to sendmessage


%constrecord (*) %name nil == 0



==== ercm09/emas-2900/b_lmxs.txt ====
prep x25gen_lmxots,lmxots#imp,x,clean
imp11 lmxots#imp/,l
link11 /MAP
lmxots#rel
i77perm
.stack 1400
.streams 1
.end
lmxoty
list lmxoty,.fep72

==== ercm09/emas-2900/la0227.txt ====
Command:an(accnts.gap850227)
File: ACCNTS.GAP850227   Type: CHARACTER   Length: 1296896 Bytes
Last altered: 28/02/85 at 00.29.29


Command:dumpgec(accnts.gap850227/la0227,,aa0227:e2)
option =:E2
Input connected at 01840020,  Length 0013CA00 Hex,    1296896 Dec.
00:32:24   11457     4.8  @ 01841B70
01:05:02   14060     5.9  @ 018431C8
01:37:49    7050     2.9  @ 01844EF8
02:09:37    6841     2.9  @ 01849030
02:41:57    5208     2.2  @ 0184CF5C
03:14:26    4855     2.0  @ 0185005C
03:46:43    5346     2.2  @ 01854D80
04:19:08    5773     2.4  @ 01859A78
04:51:36   11413     4.8  @ 0185DFC0
05:23:56    5318     2.2  @ 01861E98
05:56:16    5232     2.2  @ 01865D70
06:28:39    5272     2.2  @ 01869C9C
07:01:02    5208     2.2  @ 0186DCC0

==== ercm09/emas-2900/x25addrold.txt ====
@device[x2700]
@style[topmargin=0.5in,leftmargin=0.5in,bottommargin=0.5in]
@majorheading(EDNet addresses      7 August 1985)
@b[ Configuration of GEC 4190 KB#1 switch    System No. 669]
@verbatim[
Line No     Address     Name         Use                 Comments

lau 01   M  15000001    EA72     2972 fep (fe1)     (Secondary Line)
lau 02   M  15000002    EA71     2972 fep (fe2)     (Primary Line)
lau 03   M  15000003    E881     2988 fep (fe2)
lau 04   M  15000004    E882     Xcall - XXX <-> ITP Converter
lau 05   M  15000099    GW01     Gateway to National Switch (Extern:7001004)
lau 06   M  15000006    CSVX     ECSVax - Comp. Sc. Vax     No XXX, ITP only
lau 07   M  15000007    XGTE     Xgate
lau 08   M  --------    GSCP     Trunk Link to George Sq. Switch
lau 09   M  15000009    LA09     Link to 4160 CPSE       (19.2kb)
lau 10      15000010    ERCV     ERCVax - ERCC Vax/VMS 11/750 
lau 11      15000011    JPAD     KBPad1
         D  15000111             KBPad2 
lau 12   T  --------    STSW     Trunk Link to Strathclyde (nb: DTE end)
lau 13      15000013    TCP1     TCP M

==== ercm09/emas-2900/b_nodesimold.txt ====
E NODESIM/TEMP
F/B_DEIMOSSPECS/S/DEIMOSPERM/
%C
IMP11 TEMP
LINK11
TEMP#REL
I77PERM
.STACK 5000
.STREAMS 0
.END
NODESIMY
LIST NODESIMY,.FEP72
ALIST TEMP/.LP23

==== ercm09/emas-2900/tsbsp_tsdrivers.txt ====
%CONTROL 1
%BEGIN


%RECORDFORMAT NSF(%INTEGERARRAY DUM(1:3), %STRING (241) NAME)

%RECORDFORMAT NSRF(%INTEGER D1,D2,CODE,     %C
   ((%STRING (241) NAME) %ORC
    (%BYTEINTEGER FLAGS, ADDRESS, %INTEGER PORT, FUNCTION, %C
       %STRING (55) RESTOFNAME )))

%RECORDFORMAT MEF(%RECORD (MEF) %NAME LINK, %BYTEINTEGER LEN, TYPE, %C
   ( (%BYTEINTEGERARRAY PARAMS(0:251))  %ORC
     (%INTEGER ADDRESS, PORT,          %C
        ( (%INTEGER RCOMM,TCOMM,%BYTEINTEGERARRAY DATA(0:243)) %ORC
          (%INTEGER COMMAND, REPLY PORT, FUNCTION, BSP PARAM LEN,  %C
               %INTEGERARRAY BSP PARAM(1:2),                       %C
               %BYTEINTEGERARRAY TSPARAMS(0:235) )              %ORC
          (%RECORD (NSRF) NS REPLY )                            %ORC
          (%RECORD (NSF) NS) ))))


==== ercm09/emas-2900/erte_blog7s.txt ====
!
!
! BLOGY BLOGY BLOGY BLOGY BLOGY BLOGY BLOGY BLOGY BLOGY BLOGY BLOGY BLOGY
! BLOGY BLOGY BLOGY BLOGY BLOGY BLOGY BLOGY BLOGY BLOGY BLOGY BLOGY BLOGY
!
!
!
%CONTROL K'001001'
!
!
%BEGIN
!
!
!
!G.J.B.  //  J.C.A.     STARTED 10:11:76
! ???       LAST UPDATE   14:3:79     10:30     - FILE BLOG6S

!   FOR ERTE MK. 3.2    UPTO 128 USERS
!   FOR CS1BM STANDARD COMMANDS
!   LINES COMMENTED OUT WITH !@@  ARE CANDIDATES FOR CHANGE FOR F1 AND MK 3


==== ercm09/emas-2900/nhs1.txt ====
@device(x2700)
@make(report)
@majorheading(Proposed Communications Course by ERCC)
@heading[Time and Place]
@verbatim[
1st and 2nd of September
ERCC, George Sq., Edinburgh

Session times will be:     09.30 - 12.30
                           14.00 - 17.00

Lunch, coffee and tea will be provided
]
@heading(Day 1)
@verbatim[
Introduction:                  - Packet networks vs direct connections
                               - OSI Reference model - Layers 1-3
                               - X.25 (Level 2) - brief summary
                               - X.25 (Level 3) - Major principles
                               - Addressing
                               - Gateways

==== ercm09/emas-2900/nhs2.txt ====
Scottish Health Service Communications Course

Amended Timetable

Note: All sessions are 1 hour 15 mins, 1 hour for the talk, 15 mins for 
      questions.

1st September

09.30 - 10.45     Intro (L2 & L3)  Noel

11.15 - 12.30     Addressing/GWs/Net Management  Noel/BG

14.00 - 15.15     Lans & PABX    Scott

15.45 - 17.00         ditto      Scott

2nd September

09.30 - 10.45     X25 Suppliers Survey  BG


==== ercm09/emas-2900/kent#jun81_rjes8.txt ====


%CONSTSTRING (7) VSN = "VSNKG8S"

!MODIFIED:-
!14/5/81   DETECT HIGH LEV CON MESSAGES ON STREAMS OTHER THAN 5
!           VALIDATE MESSAGE MORE CAREFULLY IN READ MESSAGE FROM AM1
!1/5/81    VALIDATE BUFFER POINTERS

!07:04:81  ADD 'BELL' TO ABORTED MESSAGES
!          ADD BITS DERIVED FROM ERCC VERSION REVD TODAY
!22:04:81  ADD CODE TO COUNT LINES/PAGES ON OUTPUT
!          MAP HARDWARE TO SEG 0 TO FREE CODE SPACE IN SEG 3
!********************************
!*  EMAS-2900  FEP  RJE SERVER  *
!*   FILE: RJES8/RJES8Y         *
!*   DATE: 18.SEP.80            *
!* MODIFIED FOR RING 27.OCT.80  *
!********************************
!! STACK SIZE = 300


==== ercm09/emas-2900/node_go.txt ====
NODE CONFIG  08.AUG.80
COMMY
BUFF4Y
KERNY
PRT9Y; 1 0 -7 -6 767700
PRT9Y; 2 0 -21 -20 767720
PRT9Y; 3 0 -23 -22 767600
PRT9Y; 4 0 -25 -24 767620
PRT9Y; 5 0 -29 -28 760200
PRT9Y; 6 0 -19 -18 760220
PRT9Y; 7 0 -31 -30 760240
PRT9Y; 8 0 -33 -32 760260
PRT9Y; 9 0 -43 -42 760140
PRT9Y; 10 0 -45 -44 760160
PARR1Y; 15 3 -26 -27 760030
PARR1Y; 16 3 -34 -35 775140
PARR1Y; 17 3 -36 -37 765240
PARR1Y; 18 3 -38 -39 775160
PARR1Y; 19 3 -40 -41 775200
NGATEY /.TT
KDISPY

==== ercm09/emas-2900/inc2_xgtfns.txt ====
! New X-25 Gate to task Interface - extended set to include Accounting
! Functions:

! Accounting Functions:
%constinteger accredit user pass       = 40
%constinteger process command          = 41
%constinteger accredit reply           = 42
%constinteger command reply            = 43
%constinteger log call start           = 44
%constinteger checkpoint               = 45
%constinteger log call end             = 46
%constinteger end call reply           = 46
%constinteger hello                    = 47
%constinteger abort session            = 48
%constinteger broadcast                = 49
%constinteger goodbye                  = 50
%constinteger log session end          = 51
%constinteger noticeboard              = 52

! Transport Functions:
%constinteger connect                  =  1

==== ercm09/emas-2900/docum_dmanual2.txt ====
$A JUST=1; LINE=76; PAGE=58; TOP=3; BOTTOM=4; MARK=2
$A PAGENO=1
$A TAB=5,15,25
$B20
$L2CM
USER MANUAL FOR DEIMOS
AN OPERATING SYSTEM FOR THE PDP 11
$B2
$L1CM
B. GILMORE 
$L2CM
AUGUST 1976
REVISED MAY 1978
$N
$L1CUM
CONTENTS
$B6
$A INDENT=1
.%TITLE $T6 .%PAGE
$B1 @GENERAL FEATURES $T6 3
$B1 @SYSTEM COMMANDS. $T6 7

==== ercm09/emas-2900/response_n9t180jan11.txt ====
Node =  80, Term = 80 - 11 Jan 82 - route n9->fe0  11.45 - 12.00
 0
 0
 0
 0
 3
 7
 10
 7
 14
 12
 13
 18
 22
 16
 23
 17
 17
 16
 18
 9

==== ercm09/emas-2900/sys_moth6s.txt ====
!************
!*  MOTH6S  *
!* 27.NOV.79*
!************

%CONTROL K'101011'
%PERMINTEGERFNSPEC SVC(%INTEGER EP, R0, R1)


%BEGIN

     %SYSTEMROUTINESPEC LINKIN(%INTEGER SER)
     %SYSTEMROUTINESPEC MAP HWR(%INTEGER TOSEG)

     %RECORDFORMAT PF(%BYTEINTEGER SERVICE, REPLY, %INTEGER A1, A2, A3)
     %RECORD (PF)P

     %CONSTINTEGER MAP PSECT = 16;     ! SUPERVISOR CALL

     %CONSTINTEGERNAME SR0 = K'117572'
                                       ! INDEXED INTO SEG 4

==== ercm09/emas-2900/docum_dmanual3.txt ====
$A JUST=1; LINE=76; PAGE=58; TOP=3; BOTTOM=4; MARK=2
$A PAGENO=1
$A TAB=5,15,25
$B20
$L2CM
USER MANUAL FOR DEIMOS
AN OPERATING SYSTEM FOR THE PDP 11
$B2
$L1CM
B. GILMORE 
$L2CM
AUGUST 1976
REVISED MAY 1978
$N
$L1CUM
CONTENTS
$B6
$A INDENT=1
.%TITLE $T6 .%PAGE
$B1 @GENERAL FEATURES $T6 3
$B1 @SYSTEM COMMANDS. $T6 7

==== ercm09/emas-2900/b_fgatex.txt ====
EDIT x25_gatexs,t#b
A/198/A1STM/Versi/F<X>K(M/GATX Running/M0R/Running/I<X>i/ (Min,Large,old comp)/p1)2
E
prep t#b,gatex#imp,f,m,h,a,clean,o
IMP11 gatex#imp/gatex#rel,gatex#lst

LINK11
ERCM09.I77PERM
gatex#rel
.name gatx
.STACK 5000
.STREAMS 0
.END
gatex#obj
destroy bacg
COPY gatex#obj,gatex_hobj
rename gatex#obj,bacg
DESTROY t#b

==== ercm09/emas-2900/response_n9t75dec22.txt ====
Node =   9, Term = 75  - time: 10.28 - 11.43  22.dec.81
 0
 0
 401
 6620
 5339
 1984
 685
 265
 127
 78
 33
 26
 13
 11
 10
 7
 3
 3
 5
 2

==== ercm09/emas-2900/timan2s.txt ====
%externalroutine timan2s(%string (255) s)
%externalroutinespec define(%string (255) s)
%string (255) t,u,v
%integer a,b,c,d,f,e, i

%ownintegerarray tim(0:99)
%ownintegerarray cou(0:99)
%on 9 %start; -> eof; %finish
%unless s -> t.("/").u %start
Printstring("Params as input/output
")
%stop
%finish
define("1,".t); define("2,".u)
select input(1); select output(2)
%cycle
 readsymbol(i); printsymbol(i)
 %exit %if i = nl
%repeat
d=0
%cycle

==== ercm09/emas-2900/dbug5s.txt ====
!*****************************
!*       DBUG4S              *
!*DATE:  04.DEC.79           *
!*****************************
!! STK = 300, STR = 1
%CONTROL K'100001'

%PERMROUTINESPEC SVC(%INTEGER EP, R0, R1)
%PERMINTEGERMAPSPEC INTEGER
%PERMBYTEINTEGERMAPSPEC BYTEINTEGER
%PERMINTEGERFNSPEC ADDR
%PERMINTEGERFNSPEC ACC
%SYSTEMROUTINESPEC MAPHWR(%INTEGER SEG)


%BEGIN
     %CONSTINTEGER MAP PSECT = 16;     ! SUPERVISOR CALL TO MAP TO PSECT

     %CONSTBYTEINTEGERNAME ID = K'160030'
     %CONSTINTEGER VIR DISP=K'22';    ! DISP TO 1ST VERSION NO


==== ercm09/emas-2900/kents_bsp4s.txt ====


!********************************
!*    EMAS-2900   BSP INTERFACE *
!*                    HANDLER     *
!*      FILE: BSP4S              *
!*        18:3:80                *
!*********************************
!!  STK = 300,  STRM = 1


%SYSTEMROUTINESPEC LINKIN(%INTEGER SER)
%SYSTEMROUTINESPEC MAP HWR(%INTEGER SEG)
%SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)

%RECORDFORMAT DMF(%INTEGER I)

%CONSTRECORD (DMF) %NAME NIL = 0


%CONTROL K'100001'

==== ercm09/emas-2900/response_fe0jan12.txt ====
Node =  80, Term = 80 - 12 Jan 82  1600-1700 ring->n9->fe0
 0
 0
 0
 0
 42
 85
 70
 53
 40
 36
 36
 18
 25
 11
 19
 13
 12
 12
 9
 10

==== ercm09/emas-2900/b_bgatex.txt ====
EDIT x25_gatexs,t#b
A/198/A1STM/Versi/F<X>K(M/GATX Running/M0R/Running/I<X>i/ (Min,Large,2 lines)/p1)2
E
prep t#b,gatex#imp,m,h,clean,b
IMP11 gatex#imp/gatex#rel,gatex#lst

LINK11
ERCM09.I77PERM
gatex#rel
.name gatx
.STACK 5000
.STREAMS 1
.END
gatex#obj
destroy bacg
COPY gatex#obj,gatex_hobj
rename gatex#obj,bacg
transfer bacg,erte(,)BACG(41),ma,no
DESTROY t#b

==== ercm09/emas-2900/response_fe0jan13.txt ====
Node =  80, Term = 80 - 13 Jan 82  1418-1523 ring->n9->fe0  (new 2980 soft.)
 0
 0
 0
 0
 172
 257
 192
 112
 83
 57
 47
 27
 14
 17
 9
 7
 2
 1
 1
 0

==== ercm09/emas-2900/cent.txt ====
Our network is at the start of a major change.  In the next 2 years we 
are committed to changing to the international standard X25.  As you probably
realise, the protocols that we use to communicate over the network date back
8 years.  At that stage there were no international standards and we were
forced to create our own protocols: The carrier protocol NSI (Network
Standard Interface), RJE (Remote Job Entry) and ITP (Interactive Terminal
Protocol).  Since then International standards have developed: X25 as a
carrier protocol, FTP (File Transfer Protocol) and XXX (Interactive protocol-
the symbols XXX stand for X3, X28 & X29 - the 3 relevent standards). 
Increasingly manufacturers are offering these standard protocols,
and the network is now being expected to handle a variety of differing
machines, as these new hosts connect we can no longer be expected
to reprogram each of them to fit into our network.
      The first change that is being made is to bring our carrier protocol
into line.  We already have installed and working a small GEC X25 switch
which we are using to test our own software.  In the next month we expect
to have working a PDP 11/60 as a Gateway between the X25 switch and our
Cambridge Ring (and hence to the rest of the network).  This gateway will
look like the PSS Gateway but will not have the name/password accrediting
of the PSS Gateway and so will be much more transparent to the user.  During the
next year we will be progressively shifting parts of the network, ie TCPs,

==== ercm09/emas-2900/zzombie.txt ====


%EXTERNALROUTINE ZOMBIE(%STRING (255)S)
%INTEGER Z1, Z2
      %EXTERNALROUTINESPEC PEHOME
      %EXTERNALROUTINESPEC PECLEAR
      %EXTERNALROUTINESPEC PECLINE(%INTEGER A)
      %EXTERNALROUTINESPEC PEUP
      %EXTERNALROUTINESPEC PEDOWN
      %EXTERNALROUTINESPEC PERIGHT
      %EXTERNALROUTINESPEC PELEFT
      %EXTERNALROUTINESPEC PEPOS(%INTEGER X,Y)
      %EXTERNALROUTINESPEC PEPROMPT(%INTEGER X,YM %STRINGNAME S)
      %EXTERNALREALFNSPEC RANDOM(%INTEGERNAME I, %INTEGER J)
      %EXTERNALROUTINESPEC SETMODE(%STRING (255)S)
      %EXTERNALSTRING (8) %FNSPEC TIME
      %ROUTINESPEC WIN
      %ROUTINESPEC START
      %ROUTINESPEC PLAY
      %ROUTINESPEC GRABBED
      %ROUTINESPEC ZFALL

==== ercm09/emas-2900/b_fbgatex.txt ====
EDIT x25_gatexs,t#b
A/198/A1STM/Versi/F<X>K(M/GATX Running/M0R/Running/I<X>i/ (Min,Large,Old Comp)/p1)2
E
prep t#b,gatex#imp,f,m,h,a,clean,b,o
IMP11 gatex#imp/gatex#rel,gatex#lst

LINK11
ERCM09.I77PERM
gatex#rel
.name gatx
.STACK 5000
.STREAMS 0
.END
gatex#obj
destroy bacbg
rename gatex#obj,bacbg
DESTROY t#b

==== ercm09/emas-2900/erteicl_dlog8s.txt ====
!
!
! DLOGY DLOGY DLOGY DLOGY DLOGY DLOGY DLOGY DLOGY DLOGY DLOGY DLOGY DLOGY
! DLOGY DLOGY DLOGY DLOGY DLOGY DLOGY DLOGY DLOGY DLOGY DLOGY DLOGY DLOGY
!
!
!
%CONTROL K'001001'
!
!
%BEGIN
!
!
!
!R.MCL.  //G.J.B.  //  J.C.A.     STARTED 20:03:78
! ???       LAST UPDATE 15:11:78          - FILE DLOG8S
!
!
!
!   ---   STACK NORMAL   ---
!

==== ercm09/emas-2900/route.txt ====
$a device=x2700
$d1 :cosmos12b:
$d2 :cosmos14:
$a tab=1",3",4",5",6"
$a left=5
$5
$l0
Edinburgh$t2 A68$t3  0$t4   0$t5 407
$t1 Dalkeith$t2 A68$t3  7$t4   7$t5 400
$t1 Carfraemill$t2 A68$t3 20$t4  27$t5 380
$t1 Greenlaw$t2 A697$t3 13$t4  40$t5 367
$t1 Coldstream$t2 A697$t3 10$t4  50$t5 357
$t1 wooler$t2 A697$t3 14$t4  64$t5 343
$t1 Weldon Bridge$t2 A697$t3 22$t4  86$t5 321
A1$t2 A697$t3 15$t4 101$t5 306
Newcastle(Tunnel)$t2 A108$t3 20$t4 121$t5 286
A1(m)$t2 A108$t3 4$t4 125$t5 282
Durham$t2 A1(m)$t3 13$t4 138$t5 269
Darlington(N)$t2 A1(m)$t3 18$t4 156$t5 251
End A1(m)$t2 A1(m)$t3 7$t4 163$t5 244
Scotch Corner$t2 A1$t3 2$t4 165$t5 242

==== ercm09/emas-2900/coral2orig.txt ====
'CORAL' TEST RESPONDER

'COMMENT' VERSION 1.1

The official definition of Coral 66 does not provide for the output of
data at run time. However the facilities provided by the following
routines are useful within the Test Responder for logging/debugging
purposes. They can be supplied by the implementor either by adapting
existing routines or by writing new ones.

The use of these routines is optional. If the implementor does not wish
to generate such output, he can define these procedures to be null,
comment them out, or delete each occurrence of them from the code. The
occurrences within read.command.octet (chart 3) have been commented out,
because for normal use they produce too much output:- one line per octet
received. The function of each of the routines is as follows:


trwritestring - writes the string supplied as the parameter to the
                output buffer.
trwriteint    - converts the integer supplied as the first parameter to

==== ercm09/emas-2900/crackerhelp.txt ====


	         ***************************
	         *                         *
	         *       THE CRACKER       *
	         *   Copyright (C) 1984-6  *
	         *        I.W.SEARLE       *
	         *   All Rights Reserved   *
	         *      Version 2.31       *
	         *                         *
	         ***************************


	        WELCOME to the THE CRACKER
	     All versions with Z80 processors
	     ================================
	      
INTRODUCTION

       	This file contains information about improvements and
   updates to THE CRACKER made since the manual was printed. Many

==== ercm09/emas-2900/fepb_bsp4s.txt ====


!********************************
!*    EMAS-2900   BSP INTERFACE *
!*                    HANDLER     *
!*      FILE: BSP4S              *
!*        18:3:80                *
!*********************************
!!  STK = 300,  STRM = 1


%SYSTEMROUTINESPEC LINKIN(%INTEGER SER)
%SYSTEMROUTINESPEC MAP HWR(%INTEGER SEG)
%SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)

%RECORDFORMAT DMF(%INTEGER I)

%CONSTRECORD (DMF) %NAME NIL = 0


%CONTROL K'100001'

==== ercm09/emas-2900/ring_itpe9s.txt ====
! file 'fep_itpe9s'
!********************************
!*  emas-2900  fep  itp server  *
!*   file: itpe9s/itpey         *
!*   date: 25.mar.82             *
!********************************
!! stack size = 1000


%include "deimosperm"
%control 1

%begin

      %conststring (13)vsn = "itps:vsnea9j
"
      %recordformat am1f(%integer rxs, rxd, txs, txd)

      %ownrecord (am1f) %name l == 1;         ! addr passed by eam1

      !!   no of data bytes in a short block  

==== ercm09/emas-2900/files.txt ====

!F---FILE SYSTEM INTERROGATOR

!W.S.CURRIE 4TH DEC 1976
!AMENDED TO HANDLE # FILES - GJB

!    V006

!LAST UPDATED 15TH MAY 1977 18:50

!     THIS IS TO REPLACE THE EXISTING F.IT HAS THE
!FOLLOWING FACILITIES:-

!     A  : LISTS ALL FILES IN THE CURRENT DIRECTORY ALONG
!          WITH THE START BLOCK,PROTECT CODE AND NUMBER
!          OF BLOCKS IN THE FILE.

!     B FILENAME  : GIVES DATA FOR SPECIFIC FILE AS IN A.

!     C  : GET CURRENT L VALUES


==== ercm09/emas-2900/ncont3s.txt ====
! FILE 'NCONT3S'

!**********************
!* NCON3S/NCON3Y       *
!* DATE: 13.MAR.80   *
!*********************
%CONSTSTRING (7) VSN = "VSN002A"
!! STACK = 400, STREAMS = 3

!!       MESSAGES FROM THE NETWORK SHOULD BE ENABLED - SEE
!!        THE COMMENT AT 'MESSAGES ENABLED'

%CONTROL K'100001'
!STACK=400, STREAMS=3


%RECORDFORMAT XF(%BYTEINTEGER UNIT,FSYS,%BYTEINTEGERARRAY FNAME(0:5))
%EXTERNALPREDICATESPEC READ FNAME(%RECORD(XF)%NAME FILE)
%SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)
%SYSTEMROUTINESPEC LINKIN(%INTEGER SER)


==== ercm09/emas-2900/mangame.txt ====



%EXTERNALROUTINE MANGAME(%STRING (63)S)
      !!
      %DYNAMICROUTINESPEC PROMPT(%STRING (18)S)
      %DYNAMICROUTINESPEC DEFINE(%STRING (63)S)
      %DYNAMICINTEGERFNSPEC RAND INT;  ! RETURNS 0<=R<=20
      !!
      %ROUTINESPEC ECONOMY ON SALES(%INTEGER C)
      %ROUTINESPEC ECONOMY STATE(%INTEGER EC)
      %INTEGERFNSPEC SALESF(%INTEGER PRICE, AREA, DELTAC)
      %ROUTINESPEC ORDERS INTERDEPENDANCE(%INTEGER AREA)
      %INTEGERFNSPEC MARKETING EFFECT(%INTEGER EC)
      %ROUTINESPEC CHANGE NPROD
      %INTEGERFNSPEC GET LOAN LIMIT(%RECORDNAME F)
      %ROUTINESPEC BANCRUPT(%RECORDNAME F)
      %INTEGERFNSPEC ASK FOR LOAN(%RECORDNAME F)
      %ROUTINESPEC GET CASH FIGURES(%RECORDNAME F)
      %INTEGERFNSPEC ASSETS(%RECORDNAME F)
      %ROUTINESPEC SET SALES(%INTEGER FIRM)

==== ercm09/emas-2900/stat7s.txt ====
%REALSLONG
!
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
!              2900 FEP STATISTICS PACKAGE
!
!
!
!        GRAPH1  - USERS V KILO BYTES/SECOND AND CPU
!
!        GRAPH2  - 2900 USERS V BLOCKS RXD & TXD
!
!        GRAPH3  - 2970 USERS V BLOCKS RXD & TXD
!
!        GRAPH4  - FREQUENCY V PKTS/MIN/USER
!
!
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!

==== ercm09/emas-2900/etherpict.txt ====
{{horizontal}}
{{colour=thickblack}}
{{label(15,26.7,.35,0,"Possible ERCCNET in Oct. 1985")}}
{{colour=black}}
{{label(17,25.1,.14,0,"Appleton Tower")}}
{{circle(7.5,10,2)}}
{{inserc(1,.2,"KB CPSE")}}
{{circle(7.5,21,2)}}
{{inserc(2,.2,"G.Sq. CPSE")}}
{{circle(12,2,1)}}
{{inserc(3,.14,"JANET")}}
{{box(10,25.5)(10.8,26.3)}}
{{box(11.2,25.5)(12,26.3)}}
{{box(12.4,25.5)(13.2,26.3)}}
{{box(13.6,25.5)(14.4,26.3)}}
{{box(14.8,25.5)(15.6,26.3)}}
{{label(10.1,25.6,.14,0,"TCP")}}
{{label(11.3,25.6,.14,0,"TCP")}}
{{label(12.5,25.6,.14,0,"TCP")}}
{{label(13.7,25.6,.14,0,"TCP")}}
{{label(14.9,25.6,.14,0,"TCP")}}

==== ercm09/emas-2900/response_n6t181jan11.txt ====
Node =   6, Term = 181 - 11 Jan 82 - route n9->n6->fe1 11.45 - 12.00
 0
 0
 0
 0
 0
 93
 104
 33
 13
 11
 3
 0
 2
 1
 0
 0
 0
 0
 0
 0

==== ercm09/emas-2900/netsig.txt ====

@make[Report]
@flushleft[EDINBURGH REGIONAL COMPUTING CENTRE]
@flushleft[EDINBURGH UNIVERSITY]
@Majorheading{GEC-CUA Network Special Interest Group}
The next meeting of NETSIG will be held on the 12th November 1986 at

@makespace{1}
The meeting will start at 11am.

@subheading[Agenda]
@enumerate[
Minutes of the 13th Meeting, held on the 12th March at UCL.

Matters Arising

Report from the NETSIG Sub Group and matters arising
@enumerate{
Terms of reference

Request from GEC for copies of reports on PSE performance, such as MTBF.

==== ercm09/emas-2900/houcs.txt ====
%begin
%integer i,j,k, ward, nfile, nward
%ownintegerarray c(0:64) = %c
100, 101, 102, 103, 41, 105, 35, 38, 47, 109, 48, 111, 112, 51,
52, 59, 60, 57, 58, 119, 53, 56, 54, 33, 36, 34, 31, 7, 8,
129, 21, 13, 14, 23, 134, 5, 6, 15, 138, 24, 140, 17, 27, 17,
18, 9, 10, 10, 11, 20, 150, 29, 19, 28, 30, 30, 45, 44, 46, 61, 160, 1,
2, 4, 3
%routine get next
      select input(3)
      read(nfile)
      %if nfile<0 %start
         select output(0)
         printstring("ok
")
         select output(2)
         nfile = -1; nward = 0; select input(1); %return
      %finish
      read(nward)
      select input(1)
%end

==== ercm09/emas-2900/gouldpap.txt ====
@style[spacing=1]
@make[article]
@device[x2700]
@majorheading[ERCC X.25 (1984) Packet Level Protocol Software]

@paragraph(Introductory Remarks)
In the paper entitled "Implementation Details for Protocols on CSMA/CD
LANs" [1], the JNT Ethernet Advisory Group describes guidelines for the
UK Academic Community's transition to ISO OSI standards on a LAN (as well
as for interworking with Wide Area Networks).
To summarise, the OSI Connection-Oriented Network Service (CONS) is to be
provided directly by the 1984 version of the X.25 packet level protocol
in DTE-to-DTE mode of operation [2] supported by LLC2 [3].
The configurations within which this protocol set can
be employed is described in reference [4] as
@begin[verbatim]
              A single LAN
              A sequenced Bridged Area Network
              A LAN as an OSI subnetwork
              A single LAN or a sequenced Bridged Area Network
                connected to an X.25 Wide Area Network

==== ercm09/emas-2900/inc2_exts.txt ====
!Commonly Used Externals

%externalroutinespec alarm(%integer ticks)
%externalroutinespec linkin(%integer ser)
%externalintegerfnspec dup addr(%integer seg)
%externalintegerfnspec map abs(%integer adr, len, req id)
%externalroutinespec map hwr(%integer seg)
%externalintegerfnspec get id
%externalroutinespec map virt(%integer ser,seg1,seg2)
%externalroutinespec set prio(%integer n)
%externalroutinespec pon(%record (*) %name p)
%externalroutinespec ponoff(%record (*) %name p)
%externalroutinespec poff(%record (*) %name p)

%endoffile

==== ercm09/emas-2900/stat8s.txt ====
%REALSLONG
!
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
!              2900 FEP STATISTICS PACKAGE
!
!
!
!        GRAPH1  - USERS V KILO BYTES/SECOND AND CPU
!
!        GRAPH2  - 2900 USERS V BLOCKS RXD & TXD
!
!        GRAPH3  - 2970 USERS V BLOCKS RXD & TXD
!
!        GRAPH4  - FREQUENCY V PKTS/MIN/USER
!
!
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!

==== ercm09/emas-2900/ftppd_build.txt ====
new
PREP ftppd_source,FTP#IMP,x,CLEAN
DIMP11 ftp#imp
LINK11 /FTP
FTP
.STACK 3000
.STREAMS 2
.NAME FTPQ
.END
FTP
destroy ftpqy
rename ftp#abs,ftpqy
old

==== ercm09/emas-2900/ring_lmcors.txt ====
!**********************
!* LMCORS/LMCORY   *
!* DATE: 27.NOV.80   *
!* RING VERSION     *
!*********************
%CONSTSTRING (7) VSN = "VSN001B"
!! STACK = 300, STREAMS = 1

%CONTROL K'100001'


%RECORDFORMAT XF(%BYTEINTEGER UNIT,FSYS,%BYTEINTEGERARRAY FNAME(0:5))
%CONSTRECORD (XF) %NAME NULL = 0
%SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)
%BEGIN

%RECORDFORMAT BSPF(%INTEGER ST, DS, RC, TC, %C
    %BYTEINTEGERARRAY A(0:239))

%RECORDFORMAT MEF(%RECORD(MEF)%NAME LINK,%BYTEINTEGER LEN,TYPE,  %C
   %RECORD(BSPF) BSP)

==== ercm09/emas-2900/readtest.txt ====
%CONTROL K'100001'
%BEGIN
%INTEGER I,J,K,X,Y,Z
%RECORDFORMAT PF(%BYTEINTEGER SER, REPLY, %INTEGER A, %C
  %BYTEINTEGERARRAYNAME B, %INTEGER C)
%RECORD (PF) P
%OWNBYTEINTEGERARRAY ARR(0:512)
%CONSTBYTEINTEGERNAME ID = K'160030'
%CONSTBYTEINTEGERNAME INT = K'160060'
PROMPT("GO?"); READ(X)
%CYCLE I = 1, 1, 30000
  P_SER=3; P_REPLY = ID
  P_A = 0; P_B == ARR; P_C=1000+I*X
   %WHILE P_C>4900 %THEN P_C = P_C-4800
  PON(P); P_SER=0
  POFF(P)
  %EXIT %IF INT#0
%REPEAT
PRINTSTRING("COUNT ="); WRITE(I, 1); NEWLINE
%ENDOFPROGRAM

==== ercm09/emas-2900/kprims.txt ====
NODEST 1 0
BRG 1 6100
BRGSHR 1 300
MEMORY 1 4500
B 7 FFFF
SP0 3 600
SP1 3 601
SP2 3 602
SP3 3 603
SP4 3 604
SP5 3 605
SP6 3 606
SP7 3 607
SP8 3 608
SP9 3 609
SP10 3 60A
SP11 3 60B
SP12 3 60C
SP13 3 60D
SP14 3 60E
SP15 3 60F

==== ercm09/emas-2900/electdiss.txt ====
%externalroutine elect(%string (255) str)
! this version for district, elect3s for region

%externalroutinespec define(%string (255) s)
%integerarray lab,con,lib(0:63)
%integerarray snp,ind,tota, hold(0:63)
%integerarray maj,indx(0:63)
%ownintegerarray look up(1:62) = %c
57, 4, 3, 16, 55, 17, 27, 53, 30, 62, 29, 5, 37, 24, 56, 54,
12,60, 9, 20, 39, 42, 59, 18, 58, 2, 28, 34, 19, 50, 52, 47, 46, 35, 48,
44, 8, 23, 11, 25, 61, 14, 31, 13, 6, 7, 45, 51, 1, 41, 49, 38, 33, 32,
22, 21, 36, 26, 15, 40, 10, 43
%string (25) %array names(0:63)
%ownintegerarray res(1:62, 1:10)
%ownbyteintegerarray labl(1:10) = 14, 13, 12, 11, 10, 9, 8, 7, 6, 5
%ownbyteintegerarray conl(1:10) = 16, 14, 12, 10, 8, 6, 5, 4, 3, 2

%ownstring (3) %array ps(1:5) = %c
      "Lab", "Con", "Lib", "Snp", "Ind"
%realarray pc(0:63)
%ownreal p1,p2

==== ercm09/emas-2900/b_lmtsxbs.txt ====
new
prep x25gen_lmtots,lmtots#imp,x,b,clean
dimp11 lmtots#imp
link11 /map
lmtots#rel
.stack 1000
.streams 1
.stackseg 6
.name lmts
.end
lmtsxby
destroy lmtsxby
rename lmtsxby#abs,lmtsxby
old

==== ercm09/emas-2900/ll4_homes.txt ====
$A LINE=42; LEFT=2; SGAP=2; PGAP=0; JUST=1
$A TAB=4; INDENT=0
$A CAP=0; UNDSH=0; UND=0; CAPO=0; UNDSHO=0; UNDO=0
$A INVERT=0; INVO=0
$l1cm
homes for everyone
$p2
Britain faces a major housing crisis. The Tories have slashed public
spending on housing by half and house building is at its lowest since the
1920's.  Houses are falling
into disrepair faster than they can be repaired, while homelessness
and waiting lists continue to grow.
$p2 Labour will reverse this decline. Our aim is a decent home for all
with real freedom of choice between renting and owning, on terms people can
afford.
$p2 Council Housing
$p2 Council housing in Edinburgh is on the point of collapse. The Tory
Government has cut the subsidy for housing and the Tory controlled
District Council have sent rents sky-high.  Because of the low level
of money spent on maintainance (a quarter less than the average spent by the
56 Scottish District Councils) has resulted in major defects like dampness

==== ercm09/emas-2900/newsys_doitall.txt ====
imp11 newsys_supnew,supnew#rel
imp11 newsys_sinnew,sinnew#rel
newass newsys_dvn87,dvn87y
c dnv87y,newsys_dvn87y
obey b_sup
obey b_cli
obey b_load
obey b_bdk
obey b_moth
obey b_fsys
obey newsys_build
list x,.bpp155

==== ercm09/emas-2900/ftpsoak.txt ====
transfer nrsl,bush(ercm09,xxxx)q,FI,NO
transfer nrsl,bush(ercm09,xxxx)q,FI,NO
transfer nrsl,bush(ercm09,xxxx)q,FI,NO
transfer nrsl,bush(ercm09,xxxx)q,FI,NO
transfer nrsl,emas-a(ercm09,xxxx)z,FI,NO
transfer nrsl,emas-a(ercm09,xxxx)zz,FI,NO
transfer nrsl,emas-a(ercm09,xxxx)zzz,FI,NO
transfer nrsl,emas-a(ercm09,xxxx)zzzz,FI,NO
transfer nrsl,ercvax(ercm09,ednet1)nrsl,FI,NO
transfer
[15003003.ftp]
out
fi
ercm09
xxxx
q
nrsl
NO
.e
no
transfer

==== ercm09/emas-2900/nrsdo.txt ====
%externalroutine nrs(%string (255) s)
%externalroutinespec define(%string (255) s)
%string (255) t,u,v
%integer i,j,k
%owninteger state = 0, lines = 0
%ownintegerarray field(0:4) = 34, 18, 20, 5, 5
%ownintegerarray spc(0:2) = 34, 52, 72

%ownbyteintegerarray first(0:4) = 'L', 'S', 'D', 'Y', 'A'
%ownstring (25) %array names(0:4) = %c
"Long name",
"Short name",
"DTE string",
"YBTS string",
"Application relay"
%on 9 %start
   %stop
%finish


%routine strip(%string (*) %name s)

==== ercm09/emas-2900/response2_fe0jan12.txt ====
Node =  80, Term = 80 - 12 Jan 82  1600-1700 ring->n9->fe0
 0
 0
 0
 0
 42
 85
 70
 53
 40
 36
 36
 18
 25
 11
 19
 13
 12
 12
 9
 10

==== ercm09/emas-2900/intro.txt ====
@make[article]
@device[x2700]
@style[spacing 1]
@modify[hd2,facecode=k]
@begin[text,topmargin=+1.3inches,leftmargin=+0.45inches,rightmargin=+0.6inches]
blank
@newpage
@section[Introduction]

   Edinburgh University is spread across 
many parts of Edinburgh with two main "campus" areas and a number of 
other scattered departments.  This situation has led to a very high 
dependence on data networking which has been built up over fifteen years in order 
to ensure that students and staff can communicate with either the 
main University Services or local department machines. 
The current network (see fig 1)
 is based on three GEC packet switches supporting 
33 hosts and 100 synchronous links [1]. 

   The dispersed nature of the University 
has resulted in the development of a separate complex

==== ercm09/emas-2900/workshop.txt ====
                              Workshop Talks

                         ISO and Wide Area Networks

The talk deals with the current situation in WAN Networking in the UK and the
plans for the transition from the current Coloured Book (CB) protocols to the
emerging ISO protocols.

The history of JANET (The Joint Academic Network) is described together with a
description of the current position and a short resume of the coverage of the
CB protocols on the machines in use in the Academic Community.  This is
followed by a comparision between the CB protocols and those emerging from
ISO/CCITT.  A description is then given of the plans now being made by the
Academic Community to achieve a transition to the ISO protocols without the
loss of major services or the creation of multiple non-communicating
networks.


                    Local Area Network Protocol Options

This talk outlines the major options for open system working on Local Area

==== ercm09/emas-2900/stat9s.txt ====
!
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
!              2900 FEP STATISTICS PACKAGE
!
!
!
!        GRAPH1  - USERS V KILO BYTES/SECOND AND CPU
!
!        GRAPH2  - 2900 USERS V BLOCKS RXD & TXD
!
!        GRAPH3  - 2970 USERS V BLOCKS RXD & TXD
!
!        GRAPH4  - FREQUENCY V PKTS/MIN/USER
!
!
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
%EXTERNALROUTINESPEC OPENPLOTTER(%INTEGER N)

==== ercm09/emas-2900/newsys_build.txt ====
supbuild .in/x,l2
title
newsys_supnewy
newsys_shared
newsys_perm2y
newsys_BTT7Y
newsys_bdk7Y
newsys_FSYS79Y
newsys_LOAD8Y
newsys_cli1y
newsys_moth77y
END
-11 340  KB#2  ADDR=776500, SER=19
-12 344  TT#2
-6 330  RING RX
-7 334   RING TX
-6 770   KMC11  
-7 774  DITTO
-13 270  AM1 INTERFACE
-14 274
-13 160

==== ercm09/emas-2900/timans.txt ====
%externalroutine timans(%string (255) s)
%externalroutinespec define(%string (255) s)
%string (255) t,u,v
%integer a,b,c,d,f,e, i

%ownintegerarray tim(0:99)
%ownintegerarray cou(0:99)
%on 9 %start; -> eof; %finish
%unless s -> t.("/").u %start
Printstring("Params as input/output
")
%stop
%finish
define("1,".t); define("2,".u)
select input(1); select output(2)
%cycle
 readsymbol(i); printsymbol(i)
 %exit %if i = nl
%repeat
%cycle
	read(a); read(b); read(c)

==== ercm09/emas-2900/ednet0285.txt ====
{{circle(10,26,0.6)}}
{{INLABEL(.18,"N1")}}
{{circle(10,24.5,0.6)}}
{{INLABEL(.18,"N6")}}
{{circle(10,22.5,.75)}}
{{inlabel(.18,"RING@b")}}
{{inlabel(.12,"@b@bN72")}}
{{circle(10,15.7,3)}}
{{circle(10,4,3)}}
{{circle(24,11.5,0.5)}}
{{inlabel(.14,"Fe4@bT3")}}
{{circle(24,10.5,0.5)}}
{{inlabel(.14,"Fe1")}}
{{circle(24,9.5,0.5)}}
{{inlabel(.14,"Fe2")}}
{{circle(24,4,0.5)}}
{{inlabel(.14,"Fe2")}}
{{circle(30.5,15.7,1.5)}}
{{INLABEL(.14,"JANET@bPSE")}}
{{circle(24,7,.5)}}
{{inlabel(.14,"Fe1")}}

==== ercm09/emas-2900/b_infoxcall.txt ====
prep x25_infos,infos#imp,x,e,m,clean,c
imp11 infos#imp/,l
link11
infos#rel
i77perm
.stack 2000
.streams 1
.name info
.end
infoxcy
disconnect infoxcy
alist11 infos#imp/.lp23

==== ercm09/emas-2900/sys_dvam1s.txt ====
;**************************************
;*         DVAM1S                     *
;*  INTERFACE BETWEEN HARDWARE AND IMP*
;*  DATE:  28 MAY 85                  *
;**************************************
; FOR SUP40 AND BEYOND - 100 INTERRUPTS - AND EXPANDED DUMP
; AUTOMATIC POWER UP ADDED
 
PS=177776; PROCESSOR STATUS WORD
 
IDLEST=-1; SUPERVISOR IDLE FLAG
 
INTVAL=40; DEDICATED LOCATION FOR INTERRUPT NUMBER
ALARMF=44; DITTO - FOR CLOCK
PSECT=46; DITTO - CURRENT PSECT
LASTPS = 54
PXPT=56; POINTS TO RECORD P2 & PXP IN KERNAL
 
UPAR=177640
UPDR=177600
 

==== ercm09/emas-2900/response_info12jan.txt ====
Node =  156, Term = 156 - INFO 12 Jan 82 - 14.30-15.30 (approx)
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0

==== ercm09/emas-2900/ednet0286.txt ====
{{circle(23,11.5,.5)}}
{{INLABEL(.14,"Fe4")}}
{{circle(12,16,1.5);inlabel(.14,"Telepac@b15003000")}}
{{circle(31.5,4.5,0)}}
{{circle(10,21.7,2.5);inlabel(.35,"KB-CPSE@bGEC 4190@b")}}
{{inlabel(.14,"@B@B@b@b000015000000")}}
{{circle(10,4,2.5);inlabel(.35,"AT-CPSE@bGEC 4190@b")}}
{{inlabel(.14,"@B@B@b@b000016000000")}}
{{CIRCLE(23,2.5,0.5);inlabel(.14,"Fe3")}}
{{CIRCLE(23,10.5,0.5)}}
{{inlabel(.14,"Fe1")}}
{{CIRCLE(23,9.5,0.5)}}
{{inlabel(.14,"Fe2")}}
{{CIRCLE(23,3.5,0.5)}}
{{inlabel(.14,"Fe2")}}
{{CIRCLE(30.5,21.7,1.5)}}
{{INLABEL(.14,"JANET@bPSE")}}
{{CIRCLE(23,7,.5)}}
{{inlabel(.14,"Fe2")}}
{{circle(15.4,24.8,.1);fill(c12)}}
{{circle(17.8,24.8,.1);fill(c13)}}

==== ercm09/emas-2900/impsrc.txt ====

%CONTROL 1; ! 'SYSTEM' PROGRAM (FAST ROUTINE ENTRY/EXIT)
%RECORDFORMAT DUMMY(%INTEGER X)
%CONSTRECORD (DUMMY) %NAME NULL=0


%BEGIN
     %RECORDFORMAT STRDF(%INTEGER RDS, NXY, GETB, %BYTEINTEGER %C
       SER, REPLY, UNIT, FSYS, %BYTEINTEGERARRAY NAME(0:5), %C
       %INTEGER BL, N, PT, MAX, %BYTEINTEGERARRAY BUFF(0:255))

     %RECORDFORMAT STRPF(%RECORD (STRDF) %NAME STRD)

     %RECORDFORMAT PE(%BYTEINTEGER SERVICE, REPLY, %C
      A1, A2, %BYTEINTEGERARRAYNAME B, %INTEGER C)

     %CONSTRECORD (STRPF) %NAME STRP1=K'160034'
     %CONSTRECORD (STRPF) %NAME STRP2=K'160036'
     %CONSTRECORD (STRPF) %NAME STRP5=K'160044'
     %CONSTRECORD (STRPF) %NAME STRP6=K'160046'
     %CONSTBYTEINTEGERNAME ID=K'160030'

==== ercm09/emas-2900/b_peek.txt ====
imp11 peeks
link11
peeks#rel
i77perm
.stack 500
.streams 1
.end
peeky

==== ercm09/emas-2900/response_kentdec22.txt ====
P
Node =   0, Term =  5
 0
 0
 0
 0
 6
 87
 81
 20
 10
 5
 3
 0
 0
 1
 1
 0
 0
 0
 0

==== ercm09/emas-2900/networks85_slide1.txt ====
@majorheading[Advantages of Using a PABX for Data Traffic]
@heading[Common Wiring]
@heading[Direct Connection of Terminals]
@heading[Handling Multiple Terminal Protocols]
@heading[Infrequently Used Terminals]
@heading[Single Exchange Management]
@heading[Carrying Synchronous Traffic]
@newpage
@majorheading[Disadvantages]
@heading[Blocking Problems]
@heading[Cost]
@heading[Limitations of 64kbs]
@heading[Speech/Data Priorities]
@heading[Lack of Network Management]
@heading[Lack of a Name Directory]
@newpage
@majorheading[Future Improvements]
@heading[Data Port Cost]
@heading[Data Interface Unit Changes]
@heading[ ]
@heading[Alternatives to the DIU]

==== ercm09/emas-2900/btt7ss.txt ====
! FILE 'BTT7S'
!**************
!*  BTT7S     *
!*DA:24.FEB.81*
!**************

%CONTROL K'100001';  ! 'SYSTEM' PROGRAM (FAST ROUTINE ENTRY/EXIT)
%PERMROUTINESPEC SVC(%INTEGER EP, P1, P2)
%BEGIN

      %SYSTEMINTEGERFNSPEC MAP VIRT(%INTEGER ID, FROM SEG, TO SEG)
     %SYSTEMROUTINESPEC MAPHWR(%INTEGER SEGS)
     %SYSTEMROUTINESPEC LINKIN(%INTEGER SER)

     %RECORDFORMAT PF(%BYTEINTEGER SERVICE, REPLY, %C
        %INTEGER A1, A2, A3)
     %RECORDFORMAT TTF(%INTEGER KBS, KBD, TTS, TTD)
     %RECORDFORMAT BUFF(%INTEGER PT, LAST, %BYTEINTEGERARRAYNAME B)
     %RECORDFORMAT BUFFX(%INTEGER PT, LAST, ARRAYPT)

     %CONSTRECORD (BUFFX) %NAME NULL = 0

==== ercm09/emas-2900/x25conv.txt ====


Conversion from NSI to X25   -                                            DRAFT 4

==========================

==== ercm09/emas-2900/cpmhelp.txt ====
  SID          


Syntax:

     SID {pgm-filespec} {,sym-filespec}

Explanation:

The SID symbolic debugger  allows  you  to   monitor   and   test
programs  developed  for  the  8080 microprocessor.  SID supports
real-time  breakpoints,  fully  monitored   execution,   symbolic
disassembly,  assembly,  and  memory  display and fill functions.
SID  can  dynamically  load  SID  utility  programs  to   provide
traceback and histogram facilities.



ENTER .subtopic FOR INFORMATION ON THE FOLLOWING SUBTOPICS:


COMMANDS     EXAMPLES     UTILITIES    


==== ercm09/emas-2900/erteicl_avars.txt ====

%CONTROL K'001001'
%EXTERNALROUTINE AVAR(%INTEGERARRAYNAME NUM,%C
   %INTEGER N,START,OP,VAL,GAP)

!W.S.C. 1ST MARCH 1977

!LAST UPDATED 15/03/77   11:40

!     TO COMPUTE THE AVERAGE OF THE NUMBERS IN THE ARRAY
!NUM AND THEIR STANDARD DEVIATION. THE COEFFICIENT OF VARIATION
!IS ALSO COMPUTED.
!     THERE ARE N NUMBERS IN NUM,STARTING FROM START.VAL
!IS THE AVERAGE VALUE OF THE FIRST HISTOGRAM BIN(OP=4 ONLY)
!AND GAP IS THE DIFFERENCE BETWEEN ADJACENT BINS.

!     OP=0 INTEGER AVERAGE ONLY
!     OP=1 INTEGER AVERAGE AND S.D. ONLY
!     OP=2 DECIMAL AVERAGE ONLY
!     OP=3 DECIMAL AVERAGE AND S.D. ONLY
!     OP=4 INTEGER AVERAGE & S.D. OF FREQUENCY GROUPED DATA.

==== ercm09/emas-2900/ednet0986.txt ====
{{circle(23,11.5,.5)}}
{{INLABEL(.14,"Fe3")}}
{{circle(10.5,16,1.5);inlabel(.2,"TelePAC@b15003000")}}
{{join(c1,c2)}}
{{circle(0,0,0)}}
{{circle(13,21.7,2.5);inlabel(.35,"KB-CPSE@bGEC 4190@b")}}
{{inlabel(.14,"@B@B@b@b000015000000")}}
{{circle(13,4,2.5);inlabel(.35,"AT-CPSE@bGEC 4190@b")}}
{{inlabel(.14,"@B@B@b@b000016000000")}}
{{CIRCLE(23,2.8,0.5);inlabel(.14,"Fe4")}}
{{CIRCLE(23,10.5,0.5);inlabel(.14,"Fe1")}}
{{CIRCLE(23,9.5,0.5);inlabel(.14,"Fe2")}}
{{CIRCLE(23,3.8,0.5);inlabel(.14,"Fe2")}}
{{CIRCLE(32.5,21.7,1.5);INLABEL(.14,"JANET@bPSE")}}
{{CIRCLE(23,7.3,.5);inlabel(.14,"Fe2")}}
{{circle(12.75,24.8,.1);fill(c12)}}
{{circle(14.75,24.8,.1);fill(c13)}}
{{circle(16.75,24.8,.1);fill(c14)}}
{{circle(20.75,25.2,0)}}
{{circle(6.75,25.2,0)}}
{{CIRCLE(6.75,1.4,0)}}

==== ercm09/emas-2900/kents1280_buff3.txt ====
!*******************************
!* EMAS-2900   BUFFER MANAGER *
!*     FILE: BUFF3 (FEP)      *
!*     DATE: 06.MAR.80        *
!******************************

!! STK = SIZE+200
%CONSTINTEGER SIZE = K'33000';   ! WAS 35000, BUT NEEDS LINK6S
%CONTROL K'100001'
%SYSTEMROUTINESPEC LINKIN(%INTEGER SER)
%SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)
%RECORDFORMAT D(%INTEGER I)
%CONSTRECORD (D) %NAME NULL = 0


%BEGIN

     %RECORDFORMAT BF(%RECORD (BF) %NAME L, %BYTEINTEGER LEN, MODE, %C
       %BYTEINTEGERARRAY A(0:99))

     %RECORDFORMAT QF(%RECORD (BF) %NAME L)

==== ercm09/emas-2900/ftppd_tablist.txt ====


! ?
" ?
# ?
$ ?
% ?
& ?
' ?
( ?
) ?
* ?
+ ?
, ?
- ?
. ?
/ ?
0 ?
1 ?
2 ?
3 ?

==== ercm09/emas-2900/spider2.txt ====
@make[report]
@majorheading[ERCC Porting]
ERCC to port the code onto the Spiderport,
work to take 9 man weeks,
 with the following activities:-
@itemise[
Understanding of Spider I/Fs in Tasking Monitor, Ethernet driver and 
upper level interfaces.

Complete specification of I/Fs at Ethernet/Upper level with Spider

Port of code, H/W and compiler specific changes, I/F change in main code

Glue code to match Spiders I/F to the current ERCC code.

Test new code using a Spider box and a test harness supplied by Spider.

Test the complete Spider box, ie ERCC code and new Spider Code.

Test against our other versions, ie GEC,Whitchapel and IBM
]

==== ercm09/emas-2900/colorinfos.txt ====
! FILE 'ERCM08.INC_COLOURDEFS'
%CONTROL K'100001'

%BEGIN

!
!     ***   COLOUR DEFINITIONS
!
%CONSTINTEGER BLACK=16
%CONSTINTEGER RED=17
%CONSTINTEGER GREEN=18
%CONSTINTEGER YELLOW=19
%CONSTINTEGER BLUE=20
%CONSTINTEGER MAGENTA=21
%CONSTINTEGER CYAN=22
%CONSTINTEGER WHITE=23
%CONSTINTEGER CURBACK=BLACK;            !BACKGROUND FOR EVERYONE
!        ***   OWN ROUTINES FOR DRIVING INTECOLOUR DISPLAY
!FILE 'ERCM08.COLOURS'
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

==== ercm09/emas-2900/node_umctest.txt ====
! file 'node_umctest'
!*********************
!*    umctests/umctesty    *
!* date: 29.apr.82  *
!*version for node  *
!!!!!!!!!!!!!!!!!!!!!!
!stack = 400

%control 1
%include "deimosperm"
%constinteger kernel ser = 29
! %owninteger secondary = 0;      !prim = 0, sec = 1
%constintegername secad == k'060016';  ! in buffer seg, set by node

%constinteger wmax = 56;       ! max no of writes
%constinteger sfmask = 63;      ! circ buffer size for writes


%conststring (13) vsn = "prtn:vsn012m
"


==== ercm09/emas-2900/myusers.txt ====
%EXTERNALROUTINE MYUSERS(%STRING(255)S)
%externalintegerfnspec fecount(%integername a, b)
%EXTERNALINTEGERFNSPEC DPROCEDURE(%INTEGER ACT, ADR)
%RECORDFORMAT RF1(%INTEGER N, A)
%RECORD(RF1) R1
%RECORDFORMAT PF(%STRING(6)USER, %STRING(23)TCP, %BYTEINTEGER A, INVOC, B, N, F,
      %INTEGER LOGS, %BYTEINTEGER site, reason, cons1, cons2, %c
       %INTEGER ID, PROC, G, H, Z)
%RECORD(PF)%ARRAY P(1:256)
%record (pf) %name pp
%INTEGER J, feusers,tcpusers, i, k, f, l, max
%integerarray fe(0:5)
%ownintegerarray index(0:255)

%string (24) t,u,v,q
%string(20)%array nam(1:50)
%ownintegerarray nuf(1:50)
%ownintegerarray nus(1:50)
%ownintegerarray itp(1:50)
%ownintegerarray xxx(1:50)


==== ercm09/emas-2900/buff3.txt ====
! FILE 'FEP_BUFF3'
!*******************************
!* EMAS-2900   BUFFER MANAGER *
!*     FILE: BUFF3 (FEP)      *
!*     DATE: 04.NOV.80        *
!******************************

!! STK = SIZE+200
%CONSTINTEGER SIZE = K'33000';   ! WAS 35000, BUT NEEDS LINK6S
%CONTROL K'100001'
%SYSTEMROUTINESPEC LINKIN(%INTEGER SER)
%SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)
%RECORDFORMAT D(%INTEGER I)
%CONSTRECORD (D) %NAME NULL = 0


%BEGIN

     %RECORDFORMAT BF(%RECORD (BF) %NAME L, %BYTEINTEGER LEN, MODE, %C
       %BYTEINTEGERARRAY A(0:99))


==== ercm09/emas-2900/b_umc.txt ====
imp11 umcs
link11
umcs#rel
i77perm
.stack 400
.streams 0
.end
umcy

==== ercm09/emas-2900/tu58_bintus.txt ====
!
!BINARY FILE IPL LOADER
! RL01 VERSION 29.AUG.79
!
!W.S.CURRIE 1ST DEC. 1976
!
!     THIS PROGRAM TAKES AN ABSOLUTE BINARY FILE AS READ
!FROM PAPER TAPE AND PUTS IT ONTO A CONTIGUOUS AREA OF
!THE DISC READY FOR LOADING.
!
!     IT CURRENTLY OVERWRITES SYSTEM1 IN BLOCKS 4600-4700

!     STREAM 1 IS THE INPUT FILE
!     STREAM 2 IS OPTIONAL REPORT FILE

!     OUTPUT IS TO DISC 0.60(OCT) BLOCKS ARE WRITTEN.

!     BLOCK=START BLOCK TO WRITE(9201)

!     STACK=65000        STREAMS=1


==== ercm09/emas-2900/sys_link5s.txt ====

%CONTROL K'101011';    ! 11/45 & TRUSTED
%RECORDFORMAT DFGH(%INTEGER G)
%CONSTRECORD (DFGH) %NAME NULL = 0


%BEGIN

     !! STK = 27200

     %CONSTBYTEINTEGERNAME ID = K'160030'
     %CONSTBYTEINTEGERNAME FSYS = K'160055'

     %CONSTINTEGER EXAMINE = 0

     %CONSTINTEGER OUT = 2;            ! 'MAP' OUTPUT STREAM

     %INTEGER CKSM, BC, LOADPT, STK, STR, I, J
     %INTEGER LOAD, N, STK STRT, CODEL, GLAL, LDL
     %INTEGER STK GAP, TSTK, CODE STRT


==== ercm09/emas-2900/response_n80t80jan6.txt ====
Node =  80, Term = 80  -  6 Jan 82  14.30 - 16.05
 0
 0
 0
 0
 114
 139
 100
 90
 88
 69
 62
 53
 34
 27
 7
 4
 6
 1
 2
 0

==== ercm09/emas-2900/kents1280_itps8.txt ====
! FILE 'FEP_ITPS8'



!********************************
!*  EMAS-2900  FEP  ITP SERVER  *
!*   FILE: ITPS8/ITPS8Y         *
!*   DATE: 24.SEP.80 16.10       *
!********************************
!! STACK SIZE = 500

%SYSTEMROUTINESPEC MAP HWR(%INTEGER SEG)
%PERMROUTINESPEC SVC(%INTEGER EP, R0, R1)

%RECORDFORMAT DMF(%INTEGER I)

%CONSTRECORD (DMF) %NAME NULL = 0


%CONTROL K'100001'


==== ercm09/emas-2900/cpsequest.txt ====
CPSE Facilities List

Smallest unit fully config.
Largest  unit fully config.
Smallest unit, packet rate
Largest  unit, packet rate
Line speeds & interface type

Ability to group PSE units at high speed

Pull boards on running system
Re-start attempt on failed boards

No of virtual calls: total
                     per link

Memory sizes

Max window size
Max packet size


==== ercm09/emas-2900/discovs.txt ====
%externalroutine disc(%string (255) s)
%externalroutinespec define(%string (255) s)
%integer i,j,k
define ("1,".s)
select input(1)
%cycle
      readsymbol(i)
      printsymbol(i) %if i>=32 %or i = nl
%repeat
%end
%endoffile

==== ercm09/emas-2900/newperm.txt ====
%recordformat eventfm(%integer a, b, c, %string (31) message)

! I/O package constants added

! Operating constants
%const %integer  max streams = 5;      ! ie can select input/output 0-5
%const %integer  max units   = 10;     ! # of logical disk units allowed
%const %integer  max devs    = 10;     ! # of different device names
%const %integer  max fsys    = 8_77;   ! # of directories/logical disk

! Values for TYPE field in SDFM
%const %integer  null type = -1,
                 char type = 0,
                 file type = 1

! Values for STATE field (i.e. state of SYM)
%const %integer  valid   = 0,
                 invalid = 1,
                 EOF     = 2

! Error exit codes (event info in %signal)

==== ercm09/emas-2900/b_nbsmon.txt ====
imp11 nbsmon/,ll
link11
nbsmon#rel
i77perm
.stack 1000
.streams 0
.end
nbsmony
list nbsmony,.bpp6

==== ercm09/emas-2900/itps8.txt ====
! FILE 'FEP_ITPS8'



!********************************
!*  EMAS-2900  FEP  ITP SERVER  *
!*   FILE: ITPS8/ITPS8Y         *
!*   DATE: 26.MAY.81 16.10       *
!********************************
!! STACK SIZE = 500

%SYSTEMROUTINESPEC MAP HWR(%INTEGER SEG)
%PERMROUTINESPEC SVC(%INTEGER EP, R0, R1)

%RECORDFORMAT DMF(%INTEGER I)

%CONSTRECORD (DMF) %NAME NULL = 0


%CONTROL K'100001'


==== ercm09/emas-2900/b_bspnew.txt ====
prep bsp78s,bsp78s#imp,n
dimp11 bsp78s#imp
link11 /bsp78s
bsp78s#rel
.stack 1000
.streams 0
.name bsps
.codeseg 1
.stackseg 6
.end
bsp78s
destroy bsp78y
rename bsp78s#abs,bsp78y

==== ercm09/emas-2900/sys_link6s.txt ====
!**************************
!*    LINK6S/LINK         *
!* DATE: 10.APR.80        *
!* 4TH PASS FOR IMP COMP. *
!**************************


%CONTROL K'101011';    ! 11/45 & TRUSTED
%RECORDFORMAT DFGH(%INTEGER G)
%CONSTRECORD (DFGH) %NAME NULL = 0


%BEGIN

     !! STK = 27200

     %CONSTBYTEINTEGERNAME ID = K'160030'
     %CONSTBYTEINTEGERNAME FSYS = K'160055'

     %CONSTINTEGER EXAMINE = 0


==== ercm09/emas-2900/fepb_ring4s.txt ====


!********************************
!*    EMAS-2900   RING INTERFACE *
!*                    HANDLER     *
!*      FILE: RING4S              *
!*        27:3:80                *
!*********************************
!!  STK = 300,  STRM = 1

! COMPILE OPTIONS
! ---------------
! TRACE OPTION #T            ON
! ERROR OPTION #E            ON
! STATS OPTION #S            OFF
!
!NB LOCATION K'140016 IS USED TO HOLD THE CHECKSUM SO THAT IT MAY
!BE ACCESSED FROM CODE

%SYSTEMROUTINESPEC LINKIN(%INTEGER SER)
%SYSTEMROUTINESPEC MAP HWR(%INTEGER SEG)

==== ercm09/emas-2900/ring_lmacrs.txt ====
!**********************
!* LMACRS/LMACRY   *
!* DATE: 28.NOV.80   *
!* RING VERSION      *
!*********************
%CONSTSTRING (7) VSN = "VSN001B"
!! STACK = 300, STREAMS = 1

%CONTROL K'100001'


%RECORDFORMAT XF(%BYTEINTEGER UNIT,FSYS,%BYTEINTEGERARRAY FNAME(0:5))
%CONSTRECORD (XF) %NAME NULL = 0
%SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)
%BEGIN


%RECORDFORMAT BSPF(%INTEGER ST, DS, RC, TC, %C
   %BYTEINTEGERARRAY A(0:240))

%RECORDFORMAT MEF(%RECORD(MEF)%NAME LINK,%BYTEINTEGER LEN,TYPE,  %C

==== ercm09/emas-2900/b_game.txt ====
e gen_source2/temp
f/deimosperm/s/b_deimosspecs/
%c
imp11 temp
link11 /temp
temp
ercm11.newimp
.stack 6000
.streams 0
.end
game

==== ercm09/emas-2900/b_info.txt ====
prep x25_infos,infos#imp,f,clean
imp11 infos#imp/,l
link11
infos#rel
i77perm
.stack 2000
.streams 1
.name info
.end
infoxy
disconnect infoxy
alist11 infos#imp/.lp23

==== ercm09/emas-2900/reqs.txt ====
@heading[X.25 Packet switch survey]

The requirements for PSEs for the Academic Community are the original JNT
requirements plus the following extensions:-
@enumerate[
A Higher Connectivity PSE (> 100 connections)

A Higher throughput PSE (> 1000 packets/sec)

A small connectivity PSE (about 10 links)

The ability to fully manage a multi-nodal network

Requirement to support X.25 (1984), and investigation of the possibility
of producing conversion aids such as a Yellow Book to X.25(1984) Gateway.

]

==== ercm09/emas-2900/b_lmcon.txt ====
imp11 lmcons/,l
link11
lmcons#rel
i77perm
.stack 1000
.streams 0
.end
lmcony
alist11 lmcons/.lp23
list lmcony,.bpp6

==== ercm09/emas-2900/gatex1.txt ====
! file 'fep_gatex1'

%conststring (7) vsn = "vsn001a"

!****************************
!*  emas-2900  fep  gate    *
!*  file:  gatex1           *
!*  date:  22.jul.81        *
!****************************
!! stack size = 300
%owninteger own term = 72;            ! network address
%owninteger subattach flag = 74



%control 1

%include "deimosperm"

%begin


==== ercm09/emas-2900/b_xprot.txt ====
EDIT x25_XPROTs,T#B
TA/198/A1STM/Versi/f<X>KZ(r/Running/i<X>i/ (Fast)/p1)2
E
prep t#b,xprot#imp,F,Q
IMP11 XPROT#IMP/XPROT#REL,xprot#lst

LINK11
ERCM09.I77PERM
XPROT#REL
.STACK 2000
.STREAMS 0
.NAME XPR1
.END
XPR1#OBJ
destroy xpr1y
rename xpr1#obj,xpr1y

alist11 xprot#imp/.lp23

==== ercm09/emas-2900/erte_erteman8s.txt ====
$A PAGE=60;UND='#'
$A JUST=1;PGAP=5;TAB=5,10,20,30
$A NLS=2;INDENT=1;LINE=70
$A PAGENO=1;START=1
$L1CUM
E.R.T.E.  USER MANUAL
$B8 $L1CUM
CONTENTS
$A INDENT=3
$B2 $L9CI
1) INTRODUCTION
2) SCRIPT FORMATS AND PREPROCESSING
3) PARAMETER FILES
4) RUNNING E.R.T.E.
5) ERROR MESSAGES
6) CONFIGURING E.R.T.E.
7) DATA ANALYSIS
8) OTHER RELEVANT DOCUMENTATION

$B8 $I1 $L1CUI
ISSUE NO. 8.0 (FOR ERTE MK. 6)   15TH OCTOBER 1980

==== ercm09/emas-2900/b_am1.txt ====
prep fep_eam77,eam77#imp,n,clean
dimp11 eam77#imp
link11 /map
eam77#rel
.stack 1000
.streams 1
.name am1h
.stackseg 6
.end
eam77
destroy eam77y
rename eam77#abs,eam77y
alist11 eam77#imp/.lp23

==== ercm09/emas-2900/node_umc1e.txt ====
! FILE 'UMC1E'
! FILE 'FEP_UMC1E'
!**************
!*  UMC1E     *
!*DA:09.JUL.81*
!**************

%CONTROL K'100001';                    ! 'SYSTEM' PROGRAM AND
                                       ! TRUSTED PROG


%PERMROUTINESPEC SVC(%INTEGER EP, R0, R1)
%RECORDFORMAT PARF(%INTEGER TYPE, ADDRESS, LEN)

%EXTERNALROUTINE DQS11E(%RECORD (PARF) %NAME P)

     %SYSTEMROUTINESPEC MAPHWR(%INTEGER SEG)
     %SYSTEMINTEGERFNSPEC GETID
     %SYSTEMROUTINESPEC LINKIN(%INTEGER SER)
     %SYSTEMINTEGERFNSPEC MAP ABS(%INTEGER ADR, LEN, REQ ID)


==== ercm09/emas-2900/dumpgec.txt ====
%externalroutine dumpgec(%string(63) s)

%conststring (25) vsn = "  Version  1.3"

%owninteger print all = 0;        ! prints lau data if <>0
%owninteger mon line = -1;       ! line to monitor
%owninteger mon con = 0
%owninteger print this = 0

%constinteger our exchange = 1
%owninteger this exchange = 0, fix exch
%constinteger scd = 0
%constinteger ecd = 1
%constinteger dcd = 2
%constinteger laustats = 3
%constinteger unitstats = 4
%routinespec dumpaddr(%bytearrayname a, %byte l)
%routinespec writehex(%integer n,d)
!Routine for dumping GEC Network Management logs
%routinespec dat(%integer dat)
%routinespec tod(%integer d)

==== ercm09/emas-2900/erteburr_dvburr01.txt ====
;**************************************
;*         burr01                      *
;*  INTERFACE BETWEEN HARDWARE AND IMP*
;* AND LOW LEVEL DUP11 HANDLER        *
;*  DATE:  07.FEB.80                  *
;**************************************
 
PS=177776; PROCESSOR STATUS WORD
 
IDLEST=-1; SUPERVISOR IDLE FLAG
 
INTVAL=40; DEDICATED LOCATION FOR INTERRUPT NUMBER
ALARMF=44; DITTO - FOR CLOCK
PSECT=46; DITTO - CURRENT PSECT
LASTPS = 54
INTINF=56
 
UPAR=177640
UPDR=177600
 
UPAR0=40; INDEC INTO PSECT

==== ercm09/emas-2900/docum_dsysman.txt ====
$A PAGENO=1; JUST=1; TOP=3; BOTTOM=4; MARK=2
$A NLS=2
$A TAB=5,10,15,20,25,30
$B1
$N
$L1CM
PDP 11/40 SYSTEM
$P1 @THE NEW SYSTEM IS BASED ON A MESSAGE PASING SCHEME. @A
MESSAGE CONSISTS OF FOUR WORDS, THE FIRST OF WHICH HOLDS THE
ROUTING INFORMATION, BOTH FOR THE MESSAGE AND ANY REPLY. @THE
REMAINING THREE WORDS ARE USED FOR PASSING PARAMETERS.  @IN .IMP IT IS
EXPRESSED AS FOLLOWS:-
$A INDENT=1
.$%RECORD .$%FORMAT .PF($%BYTEINTEGER .SERVICE, .REPLY, .$%C
$I0
$I+1 .$%INTEGER .A1, .A2, .A3)
$A INDENT=0
$P1 
@THREE ROUTINES ARE PROVIDED IN .'PERM' TO SEND AND RECEIVE MESSAGES,
THEY ARE ACCESSED AS FOLLOWS:-
$A INDENT=1

==== ercm09/emas-2900/b_nbsmox.txt ====
e nbsmon/nbsmox
f/ponoff/pk
g
p_b = k'140172'
%c
imp11 nbsmox/,ll
link11
nbsmox#rel
i77perm
.stack 1000
.streams 0
.end
nbsmoxy
list nbsmoxy,.bpp6

==== ercm09/emas-2900/erteburr_dup11eicl.txt ====
!**************
!*  DUP11E    *
!*DA:23.FEB.80*
!**************

%CONTROL K'100001';                    ! 'SYSTEM' PROGRAM AND
                                       ! TRUSTED PROG


%RECORDFORMAT PARF(%INTEGER TYPE, ADDRESS, LEN)

%EXTERNALROUTINE DUP11E(%RECORD (PARF) %NAME P)

     %SYSTEMROUTINESPEC MAPHWR(%INTEGER SEG)
     %SYSTEMINTEGERFNSPEC GETID
     %SYSTEMROUTINESPEC LINKIN(%INTEGER SER)
     %SYSTEMINTEGERFNSPEC MAP ABS(%INTEGER ADR, LEN, REQ ID)
     %PERMINTEGERFNSPEC SVC(%INTEGER EP, P0, P1)

     %RECORDFORMAT PF(%BYTEINTEGER SER, REPLY, %INTEGER A1, A2, A3)


==== ercm09/emas-2900/erte_init70.txt ====

!THE INITIALISE TASK "INIT"   - FOR EMAS 2980.
!E.R.T.E. MK.6 VERSION  -  VIA DUP11S

!   W.S.C.   27TH JULY 1976
!   J.C.A.   31ST JAN 1978
!   G.J.B.   19TH SEPT 1978
!   J.C.A.   27TH SEPT 1978
!   B.G.   25.JAN.80


!   ???   LAST UPDATE 21:12:78   - FILE INIT70

! THIS VERSION IS FOR USE WITH ICL VME/B


!THE TASK RUNS IN SYSTEM SLOT 29

!SET STACK TO 140   STREAMS=0   PRIORITY=1

%CONTROL K'101011'

==== ercm09/emas-2900/bdiagram.txt ====
%const %real halfsize=.1
%const %real x0=0+halfsize, x0a=1, x1=3, x2=6, x2a=7, x3=8, x4=9, x5=10, x6=11,
   x7=12
%const %real y0=1, y1=3, y1a=3.4 {y1+2*halfsize}, y2=4.5, y3=6, y4=7,
   y4a=8, y5=10, y6=12, y6a=12.5, y7=13.5

%const %integer black=21, red=22, brown=23, blue=24, green=25, purple=26,
   orange=27, thick black=28

%const %string (15) %array colours(black:thick black)="black", "red", "brown", "blue",
 "green", "purple", "orange", "thick black"

!-------------------------------------------------------------------------------
! The following  statement needs to be changed on a price change.

%const %string (2) %array price(1:13)= "15", "20", "20", "25", "30", "30", "30",
   "35", "35", "35", "40", "40", "40"

!-------------------------------------------------------------------------------

%const %integer %array stage colours sequence(1:7)=black, red, orange,

==== ercm09/emas-2900/b_bspxg.txt ====
prep ring_bsp78s,bsp78s#imp,o,g
imp11 bsp78s#imp
link11
bsp78s#rel
i77perm
.stack 1000
.streams 0
.name bsps
.end
bsp78gy

==== ercm09/emas-2900/ibmdoc_ftpmemo.txt ====
 
 
 
 
                                                       FTP SCRIPT
 
                   IBM (CMS) as an FTP 'P' end
 
 
  This file  is available as  a HELP file  (named FTP)  and  as a
  script file.   FTP is used to  transfer files to and from other
  computers accessible via the SERC network;  it should work with
  sites that  support either the FTP77  or FTP80 versions  of the
  protocol.  The latter is now the default.
 
  This  HELP  file relates  to  the  P-end user  interface,   and
  concentrates on defining and explaining the terminology.   This
  is presented as a glossary in alphabetical order.
 
  For  further information  about specific  prompts  in the  user
  dialogue,  there is a separate  small HELP file associated with

==== ercm09/emas-2900/docum_dsydesc.txt ====
$A MARK=2
$A TAB=5, 10, 15
$A JUST=1; LINE=69; PAGE=54; TOP=5; BOTTOM=7
$A NLS=2
DESCRIPTION OF DEIMOS
$B1 $L1C
GOALS
$P0 @THE SECOND SYSTEM WAS DESIGNED FOR OPERATION IN A MEDIUM
SIZED .PDP 11. @AT LEAST 16K WORDS OF CORE, A MEMORY MANAGEMENT UNIT,
A DISC OR SIMILAR FAST MASS STORAGE DEVICE, A TERMINAL AND A CLOCK ARE
REQUIRED.  @A FULLY SELF SUPPORTING SYSTEM REQUIRES 28K WORDS OF CORE
IN ORDER TO SUPPORT THE COMPILER.
$P1 @THE SYSTEM WAS DESIGNED WITH FIVE MAIN AIMS:
$A INDENT=1
$B1
%@RUNNING %USER %PROGRAMS
$P0 @THE SYSTEM IS DESIGNED TO RUN GENERAL USER
PROGRAMS. @NORMALLY,
 ABOUT TWENTY SIMULTANEOUS PROGRAMS SHOULD BE SUPPORTED,
BUT THIS FIGURE SHOULD BE A PARAMETER AT SYSTEM
GENERATION. @EACH PROGRAM

==== ercm09/emas-2900/b_infops.txt ====
prep x25_infop2s,infops#imp,x,e,m,clean
imp11 infops#imp/,l
link11
infops#rel
i77perm
.stack 2000
.streams 1
.name infp
.end
infopxy
disconnect infopxy
alist11 infops#imp/.lp15

==== ercm09/emas-2900/itpinfs.txt ====
%CONTROL 1
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
!           INFO MARK 2--ITP CONSOLE HANDLER
!
!           FILE=ITPS
!
!           27TH AUG 1980
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
!        THIS MODULE TAKES CONNECTIONS TO FACILITY 18 FROM GATE AND HANDLES
!     CONSEQUENT ITP LOGONS FROM CONSOLES. IT ASSOCIATES THE CONSOLE WITH THE USER TASK
!      AND WILL LOAD OTHER TASKS TO GIVE THE REQUIRED SERVICE.
!        IT THEN HANDLES THE FLOW OF DATA FROM THE TASK TO THE CONSOLE AND VICE-VERSA.
!     LOGGING OFF THE CONSOLE IS ALSO CONTROLLED FROM HERE.
!
!        SEE INFO NOTES 2 AND 3 FOR INTERFACE DETAILS.
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

==== ercm09/emas-2900/thesis3.txt ====
@device(x2700)

@make[Report]
@Majorheading{Chapter 3}

In the debate which took place in the last quarter of the nineteenth century and 
the first decade of the twentieth century on the provision of a state pension, the 
poverty of elderly women was frequently specifically noted.  One of the objections 
raised to introducing a contributory pension scheme was that it would fail to 
meet the needs of women.

The previous chapter demonstrated that in the 1960s and 1970s elderly women were 
still the poorest of the elderly. However the contributory national insurance 
retirement pension scheme was not the primary cause of this.  The gloomy 
forecasts about contributory schemes do not appear to have been borne out.  This 
chapter explores why this happened.

We shall find that the answer is to be found in the provision made for married, 
and previously married, women through their husbands. In addition special rules 
were added to assist women when their marriages ended before retirement age. It 
will be argued here that this solution was not the only one possible, that it was 

==== ercm09/emas-2900/erteburr_xbur1s.txt ====
! FILE 'XBUR1S'
!*********************
!*    xbur1S/xbur1Y    *
!* DATE: 20.AUG.81  *
!!!!!!!!!!!!!!!!!!!!!!
!STACK = 140


%RECORDFORMAT XXF(%INTEGER DUMMY)
%CONSTRECORD (XXF) %NAME NULL = 0

%CONTROL X'100001';                    ! TRUSTED PROGRAM AND QUICK
                                       ! ROUTINE ENTRY AND EIS


%CONSTSTRING (7) VSN = 'VSN001B'
%BEGIN
     %SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)
     %SYSTEMROUTINESPEC LINKIN(%INTEGER SER)

      %RECORDFORMAT PARF(%INTEGER TYPE, %RECORD (XXF) %NAME B, %C

==== ercm09/emas-2900/enhance.txt ====
@make{report}
@device(x2700)
@flushleft[Edinburgh  Regional  Computing  Centre]
@Majorheading[Proposal to Enhance the Edinburgh University Network]
@subheading{Introduction}
In 1983 the Board funded the purchase of two large GEC Campus Packet
Switches (CPSEs) to form the nucleus of the Edinburgh University X.25 network thus
replacing the older RCO network.  This equipment enabled the University 
to connect up a total of 62 hosts, terminal concentrators and gateways,
including a link to JANET.

The Board will recall that one of the problems that Edinburgh University
faces is a split between two sites some two kilometres apart.  It was therefore
necessary to install two switches, one on the King's Buildings science campus 
site and the other located in the main University area in George Square.
@subheading{Current Network}
Since 1983, the University has funded the gradual enhancement of the two
main switches up to close to their potential maximum size.  In addition to
this, the University has also upgraded and extended the smaller GEC switch
which formed the pilot X.25 network.  All three switches are now close
to their permitted maximum number of connections.  A diagram showing the 

==== ercm09/emas-2900/b_itps.txt ====
prep fep_itp9s,itp9s#p,e,n,clean
imp11 itp9s#p
link11
itp9s#rel
.stack 1400
.streams 0
i77perm
.name itps
.end
itp9sy
alist11 itp9s#p/.lp23
list itp9sy,.fep72

==== ercm09/emas-2900/reportsep.txt ====

Communications Group - Termly Report

====================================

Personnel

==== ercm09/emas-2900/b_itpx.txt ====
prep fep_itp9s,itp9s#imp,x,e,a,clean
imp11 itp9s#imp/,l
link11
itp9s#rel
i77perm
.stack 1200
.name itps
.streams 1
.end
itp9xy
alist11 itp9s#imp/.lp23

==== ercm09/emas-2900/alert.txt ====


As part of the replacement program for TCPs,  all users on TCPA
and users on the first 16 lines of TCPC (00 to 0F inclusive) will
be transferred to a PAD on the weekend of 18/19th October.

 Users on TCPC who wish to know if their terminals are going to be switched
 can find out their line number by logging into INFO and typing WHO.

 If you require more information or PAD documentation please contact
Peter Macvean, ERCC, King's Buildings. (031-667 1081 ext. 2641 or
MAIL P.Macvean).


==== ercm09/emas-2900/z.txt ====
%begin
%externalroutinespec prompt(%string(63) s)
%externalroutinespec xmode(%string(255) s)
%externalroutinespec terminate
%integer i,j
%integerarray line(1:80)

prompt(tostring(0))
xmode("NATIVE,-E")
j=0
%cycle
readch(i); 
%unless 'a'<=i<='z' %then printch(i) %else printch(i-'a'+'A')
printch('*');terminate
%if i=26 {^Z} %then xmode("MESSAGE,E") %AND %STOP
%if i=10 %start
    printch(13)
!    newline
    %cycle i=1,1,j
       printch(line(i))
    %repeat

==== ercm09/emas-2900/ratgames.txt ====
%externalroutine rat(%string (255) s)
%externallongrealfnspec cputime
%externalrealfnspec random(%integername i, %integer n)
%externalstring (255) %fnspec time
%externalroutinespec terminate
      %routinespec clear screen
      %routinespec pepos(%integer x, y)
      %%integer %fn %spec test door


      %externalroutinespec prompt(%string (17) s)

%ownbyteintegerarray door(10:66) =
 0, 2, 3, 4, 1, 1, 1, 0, 0, 0, 
 0, 2, 3, 4, 5, 1, 1, 0, 0, 0,
 0, 6, 3, 7, 1, 1, 1, 0, 0, 0,
 0, 6, 3, 8, 1, 1, 1, 0, 0, 0,
 0, 6, 3, 1, 1, 1, 1, 0, 0, 0,
 0, 7, 3, 1, 1, 1, 1
      ! 0 - error, 1 - door is open
      ! 2 - electrified, 

==== ercm09/emas-2900/coral2.txt ====
'CORAL' TEST RESPONDER

'COMMENT' VERSION 1.1

The official definition of Coral 66 does not provide for the output of
data at run time. However the facilities provided by the following
routines are useful within the Test Responder for logging/debugging
purposes. They can be supplied by the implementor either by adapting
existing routines or by writing new ones.

The use of these routines is optional. If the implementor does not wish
to generate such output, he can define these procedures to be null,
comment them out, or delete each occurrence of them from the code. The
occurrences within read.command.octet (chart 3) have been commented out,
because for normal use they produce too much output:- one line per octet
received. The function of each of the routines is as follows:


trwritestring - writes the string supplied as the parameter to the
                output buffer.
trwriteint    - converts the integer supplied as the first parameter to

==== ercm09/emas-2900/sys_dvno3s.txt ====
;**************************************
;*         DVNO3S                     *
;*  INTERFACE BETWEEN HARDWARE AND IMP*
;*  DATE:  20 SEP 84                  *
;**************************************
; FOR SUP40 AND BEYOND - 100 INTERRUPTS - AND EXPANDED DUMP
; AUTOMATIC POWER UP ADDED
 
PS=177776; PROCESSOR STATUS WORD
 
IDLEST=-1; SUPERVISOR IDLE FLAG
 
INTVAL=40; DEDICATED LOCATION FOR INTERRUPT NUMBER
ALARMF=44; DITTO - FOR CLOCK
PSECT=46; DITTO - CURRENT PSECT
LASTPS = 54
PXPT=56; POINTS TO RECORD P2 & PXP IN KERNAL
 
UPAR=177640
UPDR=177600
 

==== ercm09/emas-2900/node_itpinfs.txt ====
%CONTROL 1
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
!           INFO MARK 2--ITP CONSOLE HANDLER
!
!           FILE=ITPS
!
!           27TH AUG 1980
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
!        THIS MODULE TAKES CONNECTIONS TO FACILITY 18 FROM GATE AND HANDLES
!     CONSEQUENT ITP LOGONS FROM CONSOLES. IT ASSOCIATES THE CONSOLE WITH THE USER TASK
!      AND WILL LOAD OTHER TASKS TO GIVE THE REQUIRED SERVICE.
!        IT THEN HANDLES THE FLOW OF DATA FROM THE TASK TO THE CONSOLE AND VICE-VERSA.
!     LOGGING OFF THE CONSOLE IS ALSO CONTROLLED FROM HERE.
!
!        SEE INFO NOTES 2 AND 3 FOR INTERFACE DETAILS.
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

==== ercm09/emas-2900/padans.txt ====
%externalroutine padan(%string (255) s)
%externalroutinespec define(%string (255) s)
%externalintegerfnspec stoi(%string (255) s)
%string (255) t,u,v,s2,t2
%integer i,j,k,x,crash
%owninteger this day, hours, thours
%owninteger max = 0, fhours, hours up
%real mtbf

%recordformat padf(%string (15) name, %integer last crash,crash,lastt,maxu, %c
first,last)
%ownrecord (padf) %array pada(1:100)
%ownrecord (padf) %name pad

%string (255)%array res(1:12)
%owninteger no of res

%conststring (3) %array day(1:7) = "Mon", "Tue", "Wed", "Thu", "Fri",
                                   "Sat", "Sun"
%conststring (12) %array month(1:12) = "Jan", "Feb", "Mar", "Apr", "May", 
                  "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"

==== ercm09/emas-2900/x25addr.txt ====
@device[x2700]
@style[topmargin=0.5in,leftmargin=0.5in,bottommargin=0.5in]
@majorheading(EDNET addresses   20 December 1985)
@b[ Configuration of GEC 4190 KB#1 switch    System No. 669]
@verbatim[
Line No     Address     Name         Use                 Comments

lau 01   V  --------    TRGS   * V35 Trunk to George Sq.
lau 02   H  15000002    EA71     2972 fep (fe2)     (Primary Line)
lau 03   H  --------    TRK2     Link to KB2 CPSE
lau 04   M  15000004    E882     Xcall - XXX <-> ITP Converter
lau 05  TM  15000099    GW01     Gateway to National Switch (Extern:7001004)
lau 06   M  15000006    CSVX     ECSVax - Comp. Sc. Vax    No XXX, ITP only
lau 07   M  15000007    XGTE     Xgate
lau 08   M  --------    GSCP     Trunk Link to George Sq. Switch
lau 09   M  15000001    EA72     2972 Fep (fe1)    (Secondary Line)
lau 10   M  15000010    ERCV     ERCVax - ERCC Vax/VMS 11/750
lau 11   M  15000003    E881     2988 fep (fe2)
lau 12   T  --------    STSW     Trunk Link to Strathclyde (nb: DTE end)
lau 13      15000013    TCP1     TCP M
lau 14      15000014    LA14     FCRNS - Forrestry Commision TCP   (EFC)

==== ercm09/emas-2900/inc_deimosperm.txt ====
!
!      SPECS FOR DEIMOS PERM ROUTINES
!
%EXTERNALROUTINESPEC PON(%RECORD(PEF) %NAME P)
%EXTERNALROUTINESPEC POFF(%RECORD(PEF) %NAME P)
%EXTERNALROUTINESPEC PONOFF(%RECORD(PEF) %NAME P)
%EXTERNALINTEGERFNSPEC MAPVIRT(%INTEGER SER,SEG1,SEG2)
%EXTERNALINTEGERFNSPEC GETABS(%INTEGER VADD,LEN,ID)
%EXTERNALINTEGERFNSPEC GETID
%EXTERNALROUTINESPEC ALARM(%INTEGER TICKS)
%EXTERNALROUTINESPEC LINKIN(%INTEGER SER)
%EXTERNALROUTINESPEC MAPHWR(%INTEGER SEGS)
%EXTERNALROUTINESPEC MAPPSECT(%INTEGER TASK,SEG)
!%EXTERNALROUTINESPEC PUSH(%RECORD(QF)%NAME Q,%RECORD(MEF)%NAME M)
!%EXTERNALRECORD(PEF)%MAPSPEC POP(%RECORD(QF)%NAME Q)
%ENDOFFILE

==== ercm09/emas-2900/eam77.txt ====
! file 'fep_eam77'

!********************************
!*  emas-2900  fep am1 handler  *
!*       file: eam7             *
!*       date: 19.jul.82        *
!* modified for pcb interface   *
!********************************
!! stack size = 300

%owninteger fep no = 9;               ! number supplied on load

%control 1
%include "deimosperm"

%begin

      %conststring (13)vsn = "am1h:vsn07w
"

      %recordformat am1 linkf(%integer rxs, rxd, txs, txd)

==== ercm09/emas-2900/mainmon.txt ====
%EXTERNALROUTINE MAINMON(%STRING (255) S)
%EXTERNALROUTINESPEC PROMPT(%STRING (15) S)
%DYNAMICROUTINESPEC FEPGRAPHS(%STRING (255) S)
%EXTERNALROUTINESPEC DEFINE(%STRING (255) S)
      %STRING (255) T, U, UU, TITLE, UUU
      %RECORDFORMAT FF( %C
       %INTEGER TIM, USERS,STA,CPU,PKTS,SBR,BYT,RJEO,RJEI)
      %INTEGER I, DIFF, K, L, US, CP, KB, PK, RJ, WHO, WHO1, WHO2, JUNK
      %OWNINTEGER USERS, STA, CPU, PKTS, SBR, BYT, RJEO, TIM, RJEI
      %OWNINTEGER POINTS, FEP NO = -1
      %CONSTINTEGERARRAY CPU F(0:3) = %C
         354, 0, 0, 236;  ! NB ASSUMES 2 FEPS ON 2972
      %RECORD  F(FF)
      !!
      !!
      !!
      %ROUTINE RD(%INTEGERNAME N)
         READ(N)
         %IF N< 0 %THEN N = N+32768*2
      %END
      !!

==== ercm09/emas-2900/b_lmiots.txt ====
new
prep x25gen_lmxots,lmxots#imp,t,clean
dimp11 lmxots#imp
link11
lmxots#rel
.stack 1000
.streams 1
.stackseg 6
.name lmio
.end
lmioty
destroy lmioty
rename lmioty#abs,lmioty
old

==== ercm09/emas-2900/log_t44simtest2.txt ====
*T44 SINK TEST, 4 DRIVERS*2 CONNS,  18.MAR.81
RING:     0    0    0    0    0    0    0    0    0    0    0     0 0 0
RING:     0    0    0    0    0    0    0    0    0    0    0     0 0 0
RING:     0    0    0    0    0    0    0    0    0    0    0     0 0 0
RING:     0    0    0    0    0    0    0    0    0    0    0     0 0 0
RING:     0    0    0    0    0    0    0    0    0    0    0     0 0 0
RING:  1414  154  214    0    0    1    0   69 8032  372  348    67 66 0
RING:  3143  350  473   90    3    7    1  174 24443  900 1167   198 198 0
RING:  3023  301  368  185    3    7    2  144 25457  808 1314   202 202 0
RING:  3273  292  370  184    3    1    0  160 25443  808 1298   202 202 0
RING:  3420  288  370  191    3    4    2  162 25901  816 1284   205 204 0
RING:  3106  295  346  189    1    4    0  160 25078  796 1231   200 199 0
RING:  2918  307  396  161    3    1    2  145 25460  812 1289   204 203 0
RING:  3603  296  351  180    4    6    1  172 25264  808 1267   201 202 0
RING:  2795  316  357  193    3    7    0  139 25640  812 1324   203 203 0
RING:  2459 1101  315   97   87   13    8  117-32535 1454 1282   291 284 0
RING:  2620  995  294   76   50   24    7  147-31085 1296 1360   353 297 0
RING:  2398  891  283   81   32   22   18  143-30825 1176 1381   367 294 0
RING:  2282  870  263   85   34   19   27  127-31670 1140 1370   366 285 0
RING:  2429  847  287   93   30   20   16  127-31700 1136 1398   348 284 0
RING:  2219  826  302   82   50   22   32  116-31910 1144 1357   325 286 0

==== ercm09/emas-2900/kent#jun81_bsp5s.txt ====


!********************************
!*    EMAS-2900   BSP INTERFACE *
!*                    HANDLER     *
!*      FILE: BSP5S              *
!*        24:11:80               *
!*********************************
!!  STK = 300,  STRM = 1


%SYSTEMROUTINESPEC LINKIN(%INTEGER SER)
%SYSTEMROUTINESPEC MAP HWR(%INTEGER SEG)
%SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)

%RECORDFORMAT DMF(%INTEGER I)

%CONSTRECORD (DMF) %NAME NIL = 0


%CONTROL K'100001'

==== ercm09/emas-2900/link11.txt ====
%EXTERNALROUTINE LINK11(%STRING(63) PARAM)
   %STRING(63) MAP
   %OWNINTEGER BRIANS FIDDLE = 255
   %CONSTINTEGER LIMIT = 128
   %OWNINTEGER CODE BASE = 2<<13, GLA BASE = 7<<13
   %OWNINTEGER ALONE = 0, MAIN EP = -1, ENTRY = 0
   %OWNSTRING(31) TASK ID = ""
   %OWNSTRING(31) FIX FILE = ""
   %OWNINTEGER STREAMS = 2
   %OWNSTRING(31) PERM FILE = "ERCS13.PERM11#REL", %C
                  LIB  FILE = "ERCS13.LIB11#REL",  %C
                  OBJECT    = ""
   %OWNINTEGER STACK = 8*1024
   %CONSTINTEGER PLUG BIT = 64
   %EXTERNALINTEGERFNSPEC EXIST(%STRING(255) S)
   %EXTERNALROUTINESPEC DEFINE(%STRING(63) S)
   %EXTERNALROUTINESPEC PROMPT(%STRING(15) S)
   %RECORDFORMAT TABFM(%INTEGER ADDR, INDEX, %C
                       %BYTEINTEGER TYPE, %STRING(63) TEXT)
   %CONSTINTEGER MAX TABLE = 400
   %CONSTINTEGER MAX FILES = 50

==== ercm09/emas-2900/invaders.txt ====
!
!
!
!     IIIIIIIIIIII    NNNNNNN       NNNNN   VVVVV             VVVVV
!     IIIIIIIIIIII    NNNNNNNN      NNNNN    VVVVV           VVVVV
!        IIIIII       NNNNNNNNN     NNNNN     VVVVV         VVVVV
!        IIIIII       NNNNNNNNNN    NNNNN      VVVVV       VVVVV
!        IIIIII       NNNNNNNNNNN   NNNNN       VVVVV     VVVVV
!        IIIIII       NNNNN NNNNNN  NNNNN        VVVVV   VVVVV
!        IIIIII       NNNNN  NNNNNN NNNNN         VVVVV VVVVV
!        IIIIII       NNNNN   NNNNNNNNNNN          VVVVVVVVV
!        IIIIII       NNNNN    NNNNNNNNNN           VVVVVVV
!        IIIIII       NNNNN     NNNNNNNNN            VVVVV
!     IIIIIIIIIIII    NNNNN      NNNNNNNN             VVV
!     IIIIIIIIIIII    NNNNN       NNNNNNN              V
!                                                  
!
! SPACE INVADERS
! Program written by Stephen H. Muggleton for the VAX.
! Curtated by John W. Machar to run on the FRED machine.
! (also commented by JWM so he could find things easier)

==== ercm09/emas-2900/b_ringnew.txt ====
prep ring8s,ring8s#imp,n
dimp11 ring8s#imp
link11 /map
ring8s
.stack 1000
.streams 1
.stackseg 6
.end
ring8s
destroy ring8y
rename ring8s#abs,ring8y

==== ercm09/emas-2900/b_gecgrabn.txt ====
prep gen_gecgrab,gecgrab#imp,f,m,i
dimp11 gecgrab#imp
link11
gecgrab#rel
.stack 2000
.streams 2
.stackseg 6
.end
gecgrab
newgen gecgrab#abs,gecgraby

==== ercm09/emas-2900/lynp1s.txt ====
%CONTROL K'100001'

%BEGIN

!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
!        ***   OWN ROUTINES FOR DRIVING INTECOLOUR DISPLAY
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
%OWNINTEGER CBACK
%OWNINTEGER CFORE
!
!
%ROUTINE SET CURSOR(%INTEGER X,Y)
      PRINTSYMBOL(3)
      PRINTSYMBOL(X); PRINTSYMBOL(Y)
      PRINTSYMBOL(K'100000')
%END
!

==== ercm09/emas-2900/b_prt12.txt ====
prep node_prt12us,prt12us
destroy prt12us#rel,prt12uy
imp11 prt12us/,ll
link11
prt12us#rel
i77perm
.stack 400
.streams 1
.name prt0
.end
prt12uy
list prt12uy,.bpp155
alist11 prt12us/.lp23

==== ercm09/emas-2900/erteburr_init70.txt ====

!THE INITIALISE TASK "INIT"   - FOR EMAS 2980.
!E.R.T.E. MK.3 VERSION  -  VIA THE DQS 11/E

!   W.S.C.   27TH JULY 1976
!   J.C.A.   31ST JAN 1978
!   G.J.B.   19TH SEPT 1978
!   J.C.A.   27TH SEPT 1978
!   B.G.   25.JAN.80


!   ???   LAST UPDATE 21:12:78   - FILE INIT70

! THIS VERSION IS FOR USE WITH ICL VME/B


!THE TASK RUNS IN SYSTEM SLOT 29

!SET STACK TO 140   STREAMS=0   PRIORITY=1

%CONTROL K'101011'

==== ercm09/emas-2900/b_ftprnew.txt ====
e gen_ftpd1s/temps
f/vsn/f/nsi/s/ring/p
m-0(f/{n}/s/!n!/)*
m-0(f/!r!/s/{r}/)*
m-0
f/deimosperm/s/b_deimosspecs/
m-0(f/own id/s/id/)*
m-0f/cli string/s/cli param/p
1
m-0f/ine connect/f/("N/i/ts./
m-0f/,4,3/l0i/!/p
m-0f/node = 74/e0i/node = 0; term = 3;  ! fe4
m-0f/printsymbol(k'100000')/s/flushout/
%c
dimp11 temps
link11 /temps
temps#rel
ercm11.imp
.fixup ercm11.imp#fix
.stack 2000
.streams 3

==== ercm09/emas-2900/anlog2s.txt ====
%externalroutine anlog(%string (255) s)

%externalroutinespec define(%string(255)s)
%externalintegerfnspec smaddr(%integer chan, %integername len)
%externalstring (*) %fnspec itos(%integer i,j)
%integer i,j,k,hmax,l,m,o,p,q,type,ent,tci,tco,tbi,tbo,tpp,node, tcf, tsm
%owninteger conns,info, rec, start, max, gsum, maxt
%owninteger free ind = 1
%integerarray n,t,co,ci,bo,bi,pp,cf,sm, icf, ism,ssm,scf(0:127)
%integer line,oline
%ownintegerarray cou(0:11)


%recordformat tabf(%integer con, pkt, byt)
%record (tabf) %array tab(1:70,1:70)

%byteintegerarray nn,tt(1:70)
%byteintegerarray nod(1:15, 0:200)

%string (6) %array nm(1:70)
%switch sw(0:11)

==== ercm09/emas-2900/i77p.txt ====
;**************************************
; SYSTEM ROUTINES FOR IMP77           *
; DATE: 16.jun.81                     *
;**************************************
;  NB:
;     TO TURN INTO THE FILE IMP77PY#REL, DO THE FOLLOWING
;     1) ASS11 SYS_IMP77P,Y,L
;     2) #CONNECT Y
;     3) #SWORD X?????C,3       - TURN IT INTO A 'TEXT' FILE
;     4) CON11 Y/Z
;     5) NEWGEN Z#REL,IMP77PY#REL
;

DS = R5
LNB = R4

PONPOF = 17.
GETID = 12.

.WORD SPONZ-.
.BYTE 3

==== ercm09/emas-2900/erteinit6.txt ====
! FILE 'ERTE_INIT70'

!THE INITIALISE TASK "INIT"   - FOR EMAS 2980.
!E.R.T.E. MK.6 VERSION  -  VIA DUP11S

!   W.S.C.   27TH JULY 1976
!   J.C.A.   31ST JAN 1978
!   G.J.B.   19TH SEPT 1978
!   J.C.A.   27TH SEPT 1978
!   B.G.   25.JAN.80


!   ???   LAST UPDATE 21:12:78   - FILE INIT70

! THIS VERSION IS FOR USE WITH ICL VME/B


!THE TASK RUNS IN SYSTEM SLOT 29

!SET STACK TO 140   STREAMS=0   PRIORITY=1


==== ercm09/emas-2900/eam88.txt ====
! file 'fep_eam77'

!********************************
!*  emas-2900  fep am1 handler  *
!*       file: eam7             *
!*       date: 19.jul.82        *
!* modified for pcb interface   *
!********************************
!! stack size = 300

%owninteger fep no = 9;               ! number supplied on load

%control 1
%include "deimosperm"

%begin

      %conststring (13)vsn = "am1h:vsn07w
"

      %recordformat am1 linkf(%integer rxs, rxd, txs, txd)

==== ercm09/emas-2900/pass1.txt ====
!   IMP77 compiler  first pass

!to create an EMAS version:
!
!         d*//*
!         m-0 (f/!imp77:/ l* i/!imp77:/ m)*
!            On EMAS all shorts should be changed to integers.
!
!            Also, the INCLUDE facility will need to be modified.
!         ARRAYS CHAR,MAPPED,ANYFORM,CNEST BECOME INTEGER
!
!
         !###################################################
         !            Copyright: 1 January 1980             #
        !    INTERACTIVE DATASYSTEMS (EDINBURGH) LTD.      #
         !                Peter S. Robertson                #
         !              32 Upper Gilmore Place              #
         !                Edinburgh EH3 9NJ                 #
         !               all rights reserved                #
         !###################################################


==== ercm09/emas-2900/syslex.txt ====
10th 1st 2nd 3rd 4th 5th 6th 7th 8th 9th Aaron ABA Ababa abalone 3se 4h 3te 2bas 3e 3ot Abbott abbreviate 2c
2dicate 3omen 5inal 3uct Abe abed Abel 4ian 4son 3rdeen 4nathy aberrant 6te 3t 4ted 5ing 3yance 6t 2horred 7nt
Abidjan 3gail abject 2late 4ze 3ution Abner 2o aboard 3de 3lition 3minable 7te 3riginal 8e 4ning 3und 3veboard
5ground 5mentioned 2rade Abraham 4m 5son abrasion 6ve 3eact 5st 3idge 6ment 3oad 4gate 3upt 2scess 4issae
3entee 8ism 6ia 6minded 3inthe 3olution 4rb 6ent 5ption 8ve 3tain 4ention 4inent 4ractor 5use 3urd 2uilding
3ndant 3sable 4ive 3t 4ted 5ing 2ysmal 4s Abyssinia AC academia 7cian 6y Acadia acanthus Acapulco accede
4lerate 7ometer 4ntual 4ptant 6or 3ipiter 3laim 5mation 4imate 8ize 3olade 4mpaniment 9st 8y 6lice 8sh 4rdant
6ion 4st 4untant 5ter Accra accredit 8ate 5tion 4ual 3ulturate 4sation 8ve 5tom 2e 3tic 4one 4ylene 2he
Achilles aching 3romatic 2id 4ic 4ulous Ackerman 3ley acknowledgeable ACM acme 2olyte 3rn 3ustic 2quaint 8ance
4iescent 5sition 9ve 5t 6tal 7ing 2re 4age 3id 3obacy 6t 7ic 4polis 3ylate 5ic Actaeon actinic 6de 6um 5olite
6meter 4vism Acton actor 3ress Acts actuarial 2uity 3men ad Ada adage 4io Adair 3m adamant Adams 5on
adaptation 2dend 6a 6um 3ict Addis 5on addle 3ressee Addressograph adduce Adelaide 4e 4ia 3n adenoma 3quacy
2herent 4sion 6ve 2iabatic 3eu 3pic Adirondack adject 6ival 3oin 6t 4urn 3udge 5icate 4tant Adkins 2ler
administer 8rable 10te 11rix 4ral 7ty 6tion 5e 4ttance 4x 5ture 3onish 6tion 2o 3be 3lescent Adolph 6us 3nis
adoption 6ve 3rn 2renal 7ine Adrian 5tic 4enne adrift 3oit 2sorb 6ate 5ption 8ve 2ulate 4t 5erate 7ous 7y
5hood 2ventitious 6ure 8ous 4rb 6ial 5sary 6e 5t 6ise 3isee 5ory Aegean aegis Aeneas 4id aeolian Aeolus aerate
3ial Aerobacter aerobic 4dynamic 4gene 4nautic 4sol 5pace Aeschylus aesthete afar 2fable 3ectate 6ionate 4rent
3iance 4davit 4liate 4ne 5ity 4rmation 4x 3lict 4uence 7t 3orest 8ation 3ront Afghan 6istan aficionado 3eld
3re 2lame 3oat 2oot 3rementioned 5said 5thought 2resh Africa afro 2t 3ereffect 5glow 5image 5life 5math 5noon
5ward Agamemnon agate Agatha agave Agee agenda 2glomerate 4utinate 8in 3regate 5ssion 7or 4ieve 2hast 2ile 3ng
3tate 2leam Agnes 4w agnomen 4stic 2one 4y 3uti 2rarian 3eeable Agricola agricultural 10e 4mony 2ue Agway ah

==== ercm09/emas-2900/sys_fsys1s.txt ====

!******************************
!*  FILE SYSTEM HANDLER       *
!*   FSYS1S/FSYS1Y            *
!*  DATE: 24.FEB.81           *
!******************************

!*W.S.C. 25TH AUGUST 1976
!*B.G.  27.MAR.78

!*THIS HANDLER IS THE FILE SYSTEM UTILITY TO REPLACE THE
!*EXISTING ONE IN DEIMOS TO PERMIT A FILE SYSTEM TO BE
!*CREATED ON THE AMPEX 9500 DISC AS WELL AS THE RK05'S.

!*IT IS A CONCEPTUAL COPY OF THE RK05 FILE SYSTEM HANDLER
!*EXCEPT THAT A BUFFER POOL IS USED FOR BLOCK DESCRIPTORS
!*AND DIRECTORY BLOCKS.

!*THE CODE IS SHARED BY 3 SYSTEM SLOTS,4 FOR THE RK05'S,
!*AND 9,15 FOR THE AMPEX DISC.THE AMPEX DISC IS LOGICALLY
!*DIVIDED INTO TWO,UNITS 2&3.

==== ercm09/emas-2900/ertedgn_init90.txt ====
! FILE 'ERTE_INIT90'

!THE INITIALISE TASK "INIT"   - FOR data general nova.

!   W.S.C.   27TH JULY 1976
!   J.C.A.   31ST JAN 1978
!   G.J.B.   19TH SEPT 1978
!   J.C.A.   27TH SEPT 1978
!   B.G.   25.JAN.80


!   ???   LAST UPDATE 21:12:78   - FILE INIT70

! THIS VERSION IS FOR USE WITH ICL VME/B


!THE TASK RUNS IN SYSTEM SLOT 29

!SET STACK TO 140   STREAMS=0   PRIORITY=1

%CONTROL K'101011'

==== ercm09/emas-2900/ftppd_oldobj.txt ====
.FTPQF¾
¢`-‘† &DÕÀF
÷	º
À×FÀxº,À<ã
Á÷	Ì	Â$Á÷	¾	À<ãð0
0
÷	T„‡À<ãðÁF÷	D	„‡ÃÐ,÷	˜†€ úÁ÷	x	À<ã0
„‡À<ã,Ãæ,÷	Ð,Á÷	D	Ãù,÷	¶À<ã0
„‡À<ã,÷	ÆÀ<ã0
Ã-÷	†„‡
Á×{!F÷	¼Bÿ	ßÁ-´ÂBaÿ	ßÿ	üÞƒ÷	P„‡Á
À<ã,‡ÁìÂ
B`l³
0Âe³ßFÁwS|!÷	‚À<ãð‡ß•Fÿ	´ÞŸ’Fß•FÁFÿ	ìއߕFÿ	–ÞŸ’FŠFŠFÁFÿ	ÌÞ‡å†Ê!
&DUÅeÀF„‡
ÿ	‚ÞÀ
Fÿ	Þ

F×pÃe,ÿ	Þ
‚

Á×Fÿ	öÝæ,ÿ	êÝ

==== ercm09/emas-2900/lynp2s.txt ====
%CONTROL K'100001'

%BEGIN

!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
!        ***   OWN ROUTINES FOR DRIVING INTECOLOUR DISPLAY
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
%OWNINTEGER CBACK
%OWNINTEGER CFORE
%OWNINTEGER LYN
!
!
%ROUTINE SET CURSOR(%INTEGER X,Y)
   PRINTSYMBOL(K'100000')
   %IF LYN = 0 %START
      PRINTSYMBOL(24)
      %IF Y = 10 %START

==== ercm09/emas-2900/sys_fsys77.txt ====

!******************************
!*  file system handler       *
!*   fsys1s/fsys1y            *
!*  date: 30.Jun.81           *
!******************************

!*w.s.c. 25th august 1976
!*b.g.  27.mar.78

!*this handler is the file system utility to replace the
!*existing one in deimos to permit a file system to be
!*created on the ampex 9500 disc as well as the rk05's.

!*it is a conceptual copy of the rk05 file system handler
!*except that a buffer pool is used for block descriptors
!*and directory blocks.

!*the code is shared by 3 system slots,4 for the rk05's,
!*and 9,15 for the ampex disc.the ampex disc is logically
!*divided into two,units 2&3.

==== ercm09/emas-2900/b_lmcox2s.txt ====
prep x25gen_lmcoxs,lmcoxs#imp,b,clean
dimp11 lmcoxs
link11 /map
lmcoxs
.streams 1
.stack 1000
.end
lmcoxs
destroy lmcoxy
rename lmcoxs#abs,lmcoxy

==== ercm09/emas-2900/sys_fsys78.txt ====

!******************************
!*  file system handler       *
!*   fsys1s/fsys1y            *
!*  date: 30.Jun.81           *
!******************************

! STACK = 240, STREAMS = 0
!*w.s.c. 25th august 1976
!*b.g.  27.mar.78

!*this handler is the file system utility to replace the
!*existing one in deimos to permit a file system to be
!*created on the ampex 9500 disc as well as the rk05's.

!*it is a conceptual copy of the rk05 file system handler
!*except that a buffer pool is used for block descriptors
!*and directory blocks.

!*the code is shared by 3 system slots,4 for the rk05's,
!*and 9,15 for the ampex disc.the ampex disc is logically

==== ercm09/emas-2900/dx11leeds.txt ====
        .TITLE  DX11
        .SBTTL DX11 INTERRUPT ROUTINE - DATA AREAS AND DEFINTIONS
        ;DX11 INTERRUPT ROUTINE
        ;DATE: 03-FEBRUARY-84
;NOW READ SYSTEM CONFIGURATION FILE CONFIG PAL11
./ COPY=CONFIG
        DX11BITS=1
        DX11PAR=1
        .PARAM=1
        DEVPAR=1
        EMTNAM=1
;
./ COPY=SYSMAC
        .GLOBL $DX11I,DXTT,DXTTP,DXSPWT,DX11PCB,DXPROC,DXINIT,DXOPEN
        .GLOBL DXTRAN,DXSTPR,DXBAST,DXBSTB,DXBSTA,$V,$SAVE,$RESTORE
;
        DXMAX1=132. ;BURST LENGTH FOR LONG BURST DEVICES
;       DXMAX2=4  ;BURST LENGTH FOR TERMINALS
;       DXLONG=X'60  ;FENCE FOR LONG BURST
;       DXDEV1   -  LOWEST ADDRESS SUPPORTED
;       DXDEV2  - ONE MORE THAN HIGHEST ADDRESS SUPPORTED

==== ercm09/emas-2900/kents1280_ring4s.txt ====

!********************************
!*    EMAS-2900   RING INTERFACE *
!*                    HANDLER     *
!*      FILE: RING4S              *
!*        27:3:80                *
!*********************************
!!  STK = 300,  STRM = 1

!NB LOCATION K'140016 IS USED TO HOLD THE CHECKSUM SO THAT IT MAY
!BE ACCESSED FROM CODE

%SYSTEMROUTINESPEC LINKIN(%INTEGER SER)
%SYSTEMROUTINESPEC MAP HWR(%INTEGER SEG)
%SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)

%RECORDFORMAT DMF(%INTEGER I)

%CONSTRECORD (DMF) %NAME NIL = 0



==== ercm09/emas-2900/node_buff4.txt ====
! FILE 'FEP_BUFF4'
!******************************
!* EMAS-2900   BUFFER MANAGER *
!*     FILE: BUFF4 (NODE)     *
!*     DATE: 17.FEB.81        *
!******************************

!! STK = SIZE+200
%CONSTINTEGER SIZE = K'55000'
%CONTROL K'100001'
%SYSTEMROUTINESPEC LINKIN(%INTEGER SER)
%SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)
%PERMROUTINESPEC SVC(%INTEGER EP, R0, R1)
%RECORDFORMAT D(%INTEGER I)
%CONSTRECORD (D) %NAME NULL = 0


%BEGIN

     %RECORDFORMAT BF(%RECORD (BF) %NAME L, %BYTEINTEGER LEN, MODE, %C
       %BYTEINTEGERARRAY A(0:99))

==== ercm09/emas-2900/ls0124.txt ====
Dump GEC logfile  Version  1.3c

Log:ACCNTS.GSS850124
 To:LS0124




First record at 01:06:01

   Max Bf:  472   Cur Bf:  345   Vcs   10   Min Bf:  340   Req Dl:    0

Date Covered was: 23/  1/ 1985     23:59:30 Exchange 3

        Frames       Control         1 seg          Calls   RESETS  Bytes/Sec  ERRORS  Total Frames     Total Data F  Av Bytes
 Line    In/sec    %Out   %In     %Out   %In     Out     In  Total  Out     In   Total    Out      In        Out     In  Out  In
Erte        1.2     43%     25%     42%     48%     90     15   2    60    83    103   103953   115566    59411    85996  82  81
Dev mc      0.0     54%     13%    100%     47%     13      0   0     0     0     84      830      601      344      449  19  74
TCP C       1.1     55%     28%     97%     81%    269    287   0    11    28   9408    97890    76934    42815    53892  14  43
Oslan       0.0     75%      5%     99%     77%     18      2   3     0     0     57      537      485       69      404  64  61
G/W  3      0.1     83%      7%    100%     69%     27    136   0     0     2     19     5477     5236      600     4534  21  46

==== ercm09/emas-2900/b_fsave.txt ====
imp11 fsaves/,ll
link11
fsaves#rel
i77perm
.stack 1000
.streams 1
.end
fsavey
alist11 fsaves/.lp23

==== ercm09/emas-2900/buff3s.txt ====
! FILE 'FEP_BUFF3'
!*******************************
!* EMAS-2900   BUFFER MANAGER *
!*     FILE: BUFF3 (FEP)      *
!*     DATE: 29.JAN.81        *
!******************************

!! STK = SIZE+200
%CONSTINTEGER SIZE = K'33000';   ! WAS 35000, BUT NEEDS LINK6S
%CONTROL K'100001'
%SYSTEMROUTINESPEC LINKIN(%INTEGER SER)
%SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)
%RECORDFORMAT D(%INTEGER I)
%CONSTRECORD (D) %NAME NULL = 0


%BEGIN

     %RECORDFORMAT BF(%RECORD (BF) %NAME L, %BYTEINTEGER LEN, MODE, %C
       %BYTEINTEGERARRAY A(0:99))


==== ercm09/emas-2900/xtalktest.txt ====
LL80
@H(List of CPSE Problems)

 Ref    Date    Gec Ref   Site Status   Description
 =============================================================================
  1 27 Jun 83   F189  KB Closed   Poll/Final Funny
  2 27 Jun 83   F188  KB          Add/Del addr funny
  3 12 Aug 83   F200  AT Design   Listaddr doesn't work
  4 12 Aug 83   F201  -- FT 2.1   Incorrect handling of RNR
  5 12 Aug 83   F202  KB Withdr   Call redirection fails (Addr table problem)
  6 22 Aug 83   F217  AT          Process AC3 Call Instr. error (3 crashes)
  7 12 Dec 83   F267  KB          Link enable causes a CPSE crash
 ===========================================================================
  8  1 Feb 84   F284  KB FT 2.1   CPSE crash caused by console out of paper
  9  1 Feb 84   F285  KB FT 2.4   Proc AC14 Call Instruction error at @@C654
 10 27 Feb 84   F311  KB FT 2.4   Proc AC14 Call Instruction Error at @@C654
 11  8 Mar 84         KB          Proc AC15 Call Instruction Error at @@C654
    24 Mar 84   ****  AT          Power Supply Fault
     3 Apr 84   ****  KB          Crash with no message (See F336)
     3 Apr 84   ****  KB          Actually a Process AC20 call inst. error 
                                  (logged as F336)

==== ercm09/emas-2900/sys_sin009.txt ====
!***************************
!*   SIN009                *
!* DATE: 03.NOV.80         *
!* SUPERVISOR INITIALISER  *
!*  SUPERVISOR RELEASE 9   *
!***************************
%CONTROL K'100001';       ! MUL+TRUSTED
%PERMROUTINESPEC SVC
%PERMINTEGERMAPSPEC INTEGER(%INTEGER X); ! USED IN INIT
%RECORDFORMAT DUMMY(%INTEGER X)
%CONSTRECORD (DUMMY) %NAME NULL=0


     %CONSTINTEGER TASK LOW LIMIT=30
     %CONSTINTEGER TASK USER LIMIT = 35
     %CONSTINTEGER TASK LIMIT=70
     %CONSTINTEGER FREE CELLS=80
     %CONSTINTEGER NO OF SERVICES=50
     %CONSTINTEGER FRAG NO=15
     %CONSTINTEGER PSECT LENGTH=48
     %CONSTINTEGER SVC LIMIT=23

==== ercm09/emas-2900/inc2_discquals.txt ====
!*Disconnect qualifiers
!*From PSS:
%constinteger pss prot not supported   = x'43'

!*Transport Service
!
%constinteger ts ok                    =  0
%constinteger ts response              =  1
%constinteger ts no connection         = 16
%constinteger ts numberbusy            = 17
%constinteger ts out of order          = 18
%constinteger ts invalid address       = 19
%constinteger ts access barred         = 20
%constinteger ts incompatible facilities=21
%constinteger ts no reverse charging   = 22
%constinteger ts network congestion    = 23
%constinteger ts message too long      = 24
%constinteger ts protocol apology      = 32
%constinteger ts protocol accusation   = 33
%constinteger ts timeout               = 34
%constinteger ts connection lost       = 35

==== ercm09/emas-2900/b_rjesx.txt ====
prep x25_rjesx2,rjesx2#imp,m,clean
imp11 rjesx2#imp/,l
link11
rjesx2#rel
i77perm
.stack 1400
.name rjes
.streams 1
.end
rjesx2y
alist11 rjesx2#imp/.lp23

==== ercm09/emas-2900/sys_sin010.txt ====
!***************************
!*   SIN010                *
!* DATE: 14.JUN.82         *
!* SUPERVISOR INITIALISER  *
!*  SUPERVISOR RELEASE 10  *
!***************************
%CONTROL K'100001';       ! MUL+TRUSTED
%PERMROUTINESPEC SVC
%PERMINTEGERMAPSPEC INTEGER(%INTEGER X); ! USED IN INIT
%RECORDFORMAT DUMMY(%INTEGER X)
%CONSTRECORD (DUMMY) %NAME NULL=0


     %CONSTINTEGER TASK LOW LIMIT=30
     %CONSTINTEGER TASK USER LIMIT = 35
     %CONSTINTEGER TASK LIMIT=75
     %CONSTINTEGER FREE CELLS=80
     %CONSTINTEGER NO OF SERVICES=50
     %CONSTINTEGER FRAG NO=15
     %CONSTINTEGER PSECT LENGTH=52
     %CONSTINTEGER SVC LIMIT=23

==== ercm09/emas-2900/anlog4s.txt ====
%externalroutine anlog(%string (255) s)

%externalroutinespec define(%string(255)s)
%externalintegerfnspec smaddr(%integer chan, %integername len)
%externalstring (*) %fnspec itos(%integer i,j)
!nsm
%integer next tot, sum, ch, nodeb
%integer qtr6, qtr9, hr6, hr9 ,tot6, tot9, hr, min, qtr
%integer last6, last9, time6, time9, time
%string(3) hrs, mins, secs
%integerarray entb(0:1,1:25)
%recordformat totf(%integer sum, %byteinteger node, hr, min)
%record(totf) %array tot pkts(1:576)
!end
%integer i,j,k,hmax,m,o,p,q,type,ent,tci,tco,tbi,tbo,tpp,node, tcf, tsm
%integer diff, ntime, thr, tmpr
%owninteger conns,info, rec, start, max, gsum, maxt
%owninteger free ind = 1
%integerarray n,t,co,ci,bo,bi,pp,cf,sm, icf, ism,ssm,scf, mpr, lastt(0:127)
%integerarray ompr, mpx, mpp(0:127)
%integer line,oline

==== ercm09/emas-2900/config509.txt ====









                                                       16th Sep. 1986


Dear Ian,

                       System 509


Could you please build me a T2R7 system for machine #509 with the following
changes:-

1.  Line 9 to be a DCE.

==== ercm09/emas-2900/sys_sin011.txt ====
!***************************
!*   SIN011                *
!* DATE: 20 SEP 84         *
!* SUPERVISOR INITIALISER  *
!*  SUPERVISOR RELEASE 11  *
!***************************
%CONTROL K'100001';       ! MUL+TRUSTED
%PERMROUTINESPEC SVC
%PERMINTEGERMAPSPEC INTEGER(%INTEGER X); ! USED IN INIT
%RECORDFORMAT DUMMY(%INTEGER X)
%CONSTRECORD (DUMMY) %NAME NULL=0


     %CONSTINTEGER TASK LOW LIMIT=30
     %CONSTINTEGER TASK USER LIMIT = 35
     %CONSTINTEGER TASK LIMIT=75
     %CONSTINTEGER FREE CELLS=80
     %CONSTINTEGER NO OF SERVICES=50
     %CONSTINTEGER FRAG NO=15
     %CONSTINTEGER PSECT LENGTH=52
     %CONSTINTEGER SVC LIMIT=23

==== ercm09/emas-2900/inc_records.txt ====
!
!     STANDARD RECORD FORMATS......QF,MEF,PEF
!
!     ASSUMES NSIF DEFINED.
!
%RECORDFORMAT QF(%RECORD(QF)%NAME LINK)
%RECORDFORMAT MEF(%RECORD(MEF)%NAME LINK,%BYTEINTEGER LEN,TYPE, %C
      %RECORD(NSIF) NSL)
%RECORDFORMAT PEF(%BYTEINTEGER SER,REPLY,(%BYTEINTEGER FN,PORT, %C
      %RECORD(MEF)%NAME MES,%BYTEINTEGER S0,S1 %OR %INTEGER A,B,C %OR %C
      %BYTEINTEGER A1,A2,B1,B2,C1,C2))
%ENDOFFILE

==== ercm09/emas-2900/cslinktest.txt ====
;      PDP-11 LINK TEST PROGRAM      PAL-11 VERSION(LKP11)

        .ABSOLUTE

;REG DEFINITION
R1=%1
R2=%2
R3=%3
TEMP=%4
R5=%5
SP=%6        ;STACK PTR
PC=%7        ;PROG. CTR.

PS=777776    ;PSW

;********************
;CONDITIONALS HERE
BIT9=1    ;BIT9=1 FOR 9-BIT OPTION
          ;OMIT 'BIT9=1' FOR 8-BIT OPTION
PRAV=1    ;PRAV=1 IF STD KEYBOARD/PRINTER AVAILABLE
          ;OMIT 'PRAV=1' IF NOT AVAILABLE

==== ercm09/emas-2900/titlesh.txt ====
@make[article]
@device[x2700]
@style[spacing 1]
@begin[text,topmargin=+1.1inches,leftmargin=+0.25inches,rightmargin=+0.5inches]
blank
@newpage
@majorheading[AN APPRAISAL OF THE ADVANTAGES & DISADVANTAGES
OF USING A PABX FOR DATA TRAFFIC]
@BLANKSPACE[0.5in]
@centre[@b[Brian Gilmore
Communications Manager
Edinburgh Regional Computing Centre
University of Edinburgh]]
@blankspace[1.8in]
     The paper discusses the main advantages and disadvantages of using a
 modern PABX for mixed speech and data traffic.  It comes to the conclusion
 that with the currently available technology it is not economic to use
 such an exchange for extensive data traffic and the paper goes on to look at
 future trends in this area in
 particular the use of PABX/LAN Gateways to ease connection problems.


==== ercm09/emas-2900/inc2_various.txt ====
! Various useful consts etc

%CONSTINTEGER TRUE                     =  1
%CONSTINTEGER FALSE                    =  0
%CONSTINTEGER CR                       = 13
%CONSTINTEGER LF                       = 10

! Buffer Manager Consts

%CONSTINTEGER LONG                     =  0
%CONSTINTEGER SHORT                    =  1
%CONSTINTEGER REQUEST BUFFER           =  0
%CONSTINTEGER RELEASE BUFFER           =  1

%CONSTINTEGERNAME NO OF BUFF           == K'100112'
%CONSTINTEGERARRAYNAME BMS             == K'100112'            ;! Buffer Manager Statistics

%ENDOFFILE

==== ercm09/emas-2900/testout3.txt ====
%EXTERNALSTRINGFNSPEC INTERRUPT
%EXTERNALSTRINGFNSPEC TIME
%EXTERNALLONGREALFNSPEC CPUTIME
%EXTERNALROUTINESPEC USERS(%STRING (255) S)
%EXTERNALROUTINESPEC METER(%STRING (255) S)
%SYSTEMROUTINESPEC CONSOLE(%INTEGER EP, %INTEGERNAME AD, LEN)

%OWNINTEGER LYNBAN=0
%EXTERNALROUTINE CLEAR LYN(%STRING (255) S)
PRINTCH(19)
PRINTCH(1)
PRINTCH(18)
PRINTCH(26)
PRINTCH(4)
%END
%ROUTINE BAN CLEAR
PRINTCH(27); PRINTCH('K')
%END
%ROUTINE BAN PLOT(%INTEGER X,Y)
%RETURNUNLESS 0<=X<=79 %AND 0<=Y<=29
PRINTCH(27); PRINTCH('Y'); PRINTCH(X+31)

==== ercm09/emas-2900/b_gate.txt ====
imp11 gate77
link11
gate77#rel
i77perm
.stack 1000
.streams 1
.end
gate77y
alist11 gate77/.lp23

==== ercm09/emas-2900/reportmar.txt ====
Communications Group - Termly Report

====================================

Personel

==== ercm09/emas-2900/ednet0385.txt ====
{{circle(23,11.5,.5)}}
{{INLABEL(.18,"EML")}}
{{circle(31.5,3,0.6)}}
{{INLABEL(.18,"N6")}}
{{circle(31.5,4.5,.75)}}
{{inlabel(.18,"RING@b")}}
{{inlabel(.12,"@b@bN72")}}
{{circle(10,21.7,3)}}
{{circle(10,4,3)}}
{{CIRCLE(28,9.5,0.5)}}
{{inlabel(.14,"Fe4@bT3")}}
{{CIRCLE(23,10.5,0.5)}}
{{inlabel(.14,"Fe1")}}
{{CIRCLE(23,9.5,0.5)}}
{{inlabel(.14,"Fe2")}}
{{CIRCLE(23,3,0.5)}}
{{inlabel(.14,"Fe2")}}
{{CIRCLE(30.5,21.7,1.5)}}
{{INLABEL(.14,"JANET@bPSE")}}
{{CIRCLE(23,7,.5)}}
{{inlabel(.14,"Fe1")}}

==== ercm09/emas-2900/ringold_nsiwes.txt ====
!**********************
!* NSIES/NSIWY       *
!* DATE: 17.JUN.81   *
!*********************
%CONSTSTRING (7) VSN = "VSNE01E"
!! STACK = 400, STREAMS = 3

!! NOTE: FOR VERSIONS THAT ARE RUN OUT OF A 2900 FEP SYSTEM,
!!       MESSAGES FROM THE NETWORK SHOULD BE ENABLED - SEE
!!        THE COMMENT AT 'MESSAGES ENABLED'

%CONTROL 1
%include "DEIMOSPERM"


%RECORDFORMAT XF(%BYTEINTEGER UNIT,FSYS,%BYTEINTEGERARRAY FNAME(0:5))
%BEGIN
%PREDICATESPEC READ FNAME(%RECORD(XF)%NAME FILE)

%%RECORDFORMAT ITPF(%BYTEINTEGER CNSL,HB1,HB2,LEN,  %C
   %BYTEINTEGERARRAY DATA(0:127))

==== ercm09/emas-2900/response_n7t9dec22a.txt ====

Node =   7, Term =  9
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0

==== ercm09/emas-2900/response_n7t9dec22b.txt ====
 
Node =   7, Term =  9
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0

==== ercm09/emas-2900/b_bdk.txt ====
dimp11 bdk7s
link11 /map
bdk7s
.codeseg 2
.stackseg 6
.stack 200
.streams 0
.end
bdk7s
c bdk7s#abs,newsys_bdk7y

==== ercm09/emas-2900/kmc11_kmc2s.txt ====
!
!   KMC11 ASSEMBLER V2
!   STARTED GJB 28/03/78
!   UPDATED GJB 29/09/78
!
!%CONTROL K'101011'
%BEGIN
%OWNINTEGER FAULTS,LPTR,CLOC,DLOC,TYPE,VALUE,PRINT,LMAX,INST,PPTR,I,COUNT
%OWNINTEGER CORD,SPTR,J,MACLEV,MTPTR,IN1,IN2,IN3,K,TOELSE,POSN
%OWNINTEGER ASL=-1,LS=3
%RECORDFORMAT TF(%BYTEINTEGERARRAY NAME(0:5),%INTEGER TYPE,VALUE)
%RECORD(TF)%ARRAY TAG(0:259)
%RECORDFORMAT T1F(%BYTEINTEGERARRAYNAME NAME)
%RECORDFORMAT T2F(%RECORD(TF)%ARRAYNAME NAME)
%RECORD(T1F) T1
%RECORD(T2F)%NAME T2
%OWNBYTEINTEGERARRAY TTAG(0:2559) = %C
  66,   0,   0,   0,   0,   0,   7,   0, 255, 255,
  67,   0,   0,   0,   0,   0,   5,   0,   0,   0,
  90,   0,   0,   0,   0,   0,   5,   0,   1,   0,
  66,  82,  71,   0,   0,   0,   1,   0,   0,  97,

==== ercm09/emas-2900/b_xgate.txt ====
DESTROY XGAT#OBJ,XGAT#IMP,XGAT#REL,XGAT#LIS
EDIT XGATE,XGAT#IMP
A/198/A1STM/Versi/F<X>KM/XGAT Running/M0R/Running/I<X>I/ (BACG)/P1
TR/_CONFIG/I/_BACGCONF2/
E
IMP11 XGAT#IMP/XGAT#REL,XGAT#LIS

LINK11
ERCM09.I77PERM
XGAT#REL
.STACK 5000
.STREAMS 1
.END
XGAT#OBJ
PSSE XGAT#OBJ
COPY XGAT#OBJ,XGATEy
DESTROY XGAT#LIS,XGAT#OBJ,XGAT#IMP,XGAT#REL

==== ercm09/emas-2900/eamdum.txt ====
m 243
c  12
x   4
m 242
d -16
d  16
m 243
c   5
i 255
i 254
i   0
i 168
c  12
s  -2
d -16
d  16
m 243
c   2
d   0
d   4
d   0

==== ercm09/emas-2900/kmc11_kmc3s.txt ====
!
!   KMC11 ASSEMBLER V2
!   STARTED GJB 28/03/78
!   UPDATED GJB 29/09/78
!
!%CONTROL K'101011'
%BEGIN
%OWNINTEGER FAULTS,LPTR,CLOC,DLOC,TYPE,VALUE,PRINT,LMAX,INST,PPTR,I,COUNT
%OWNINTEGER CORD,SPTR,J,MACLEV,MTPTR,IN1,IN2,IN3,K,TOELSE,POSN
%OWNINTEGER ASL=-1,LS=3
%RECORDFORMAT TF(%BYTEINTEGERARRAY NAME(0:5),%INTEGER TYPE,VALUE)
%RECORD(TF)%ARRAY TAG(0:259)
%RECORDFORMAT T1F(%BYTEINTEGERARRAYNAME NAME)
%RECORDFORMAT T2F(%RECORD(TF)%ARRAYNAME NAME)
%RECORD(T1F) T1
%RECORD(T2F)%NAME T2
%OWNBYTEINTEGERARRAY TTAG(0:2559) = %C
  66,   0,   0,   0,   0,   0,   7,   0, 255, 255,
  67,   0,   0,   0,   0,   0,   5,   0,   0,   0,
  90,   0,   0,   0,   0,   0,   5,   0,   1,   0,
  66,  82,  71,   0,   0,   0,   1,   0,   0,  97,

==== ercm09/emas-2900/b_veris.txt ====
IMP11 gen_VERIS77/veris77#rel,L
LINK11
VERIS77#REL
GEN_EXTERNSREL
I77PERM
.STACK 6000
.STREAMS 1
.END
VERIS77Y

==== ercm09/emas-2900/newsys_supde0.txt ====
DEIMOS VSN 10.1 14.JUN.82  (SHARED PERM IN SEG 0 + NEW SEG 8)
RL01
3500
DVRUBY N 0
SUP50 60002 0
PERM2Y 60006 0
BTT7Y 60012 0
RL06Y 60016 0
FSYS78 60022 0
LOAD8Y 60026 0
CLI2Y 60032 0
MOTH6Y 60036 0
END
-11 330 KB #2,  VEC=776170, SER = 19
-12 334 TT#3
-7 320 RING RECEIVE 764040
-6 324
-16 400   UMC 1ST LINE, ADDR = 766760
-17 404
-18 410
-19 414

==== ercm09/emas-2900/house.txt ====
-1
 745 35 3 13250 6625 L
3976 59 4 17250 8797 M
3984 59 4 10000 5500 B
3379 60 3 13000 8190 F
5230 29 3 12600 6552 B
5473 58 4 17000 8500 D
6083 2 3 13250 6890 M
5126 58 3 13750 6875 F
5553 43 3 13000 6500 S
5516 36 4 14500 9135 D
5515 6 3 16000 8000 M
5303 36 3 13250 7685 U
3683 56 4 18000 11340 M
3886 2 5 17500 10500 D
3714 10 3 14250 7125 F
5167 6 3 15750 8820 M
5446 30 3 12300 7380 F
6070 14 3 15000 7800 S
5385 43 3 18000 9000 D
5547 6 3 16250 10400 D

==== ercm09/emas-2900/erteicl_scpt2s.txt ====
!
!THE SCRIPT TASK FOR SIMPLE INTERACTIVE VIDEO CLUSTER
!
!   W.S.C. MODIFIED FROM Z16301 22ND JAN 1980
!
!V001
!
!   ???   LAST UPDATE   14:3:80
!
!   THIS VERSION FOR USE WITH SIVC
!THIS TASK READS UP TO NUMSCR SCRIPT FILES FROM THE DISC
!AND SENDS SCRIPT LINES AT A GIVEN RATE TO THE TCP
!PROTOCOL HANDLER.THE TASK ASSUMES THAT TKPARN
!IS A PARAMETER FILE FROM WHICH IT READS:-
!  1)THE NUMBER OF SCRIPTS
!  2)THE % OF LINE SPEED TO BE TAKEN AS TYPING SPEED
!  3)THE TIME DELAY BETWEEN STARTING EACH SCRIPT
!  FOR EACH SCRIPT:-
!  4)SCRIPT FILE NAME,SYSTEM AND UNIT NUMBER
!  5)LINE SPEED(CHARS/SEC)
!   6)GROUP ADDRESS

==== ercm09/emas-2900/node_ncon10s.txt ====
! file 'node_ncon10s'
!**********************
!* ncon10s/node        *
!* date: 02.sep.82   *
!*********************
%conststring (13) vsn = "node:vsn010h
"
!! stack = 400, streams = 1

%control 1
%include "deimosperm"


%recordformat xf(%byte unit,fsys,%bytearray fname(0:5))
%begin

      %constinteger control ser = 11
      %constinteger kernel ser = 29
      %constintegername node number == k'060016'; ! in buffer seg

%recordformat rjef(%byteintegerarray data(0:239))

==== ercm09/emas-2900/ring_lmeors.txt ====
! file 'lmeors'
!**********************
!* lmeors/lmeory   *
!* date: 16.dec.81   *
!*********************
%conststring (13) vsn = "lmeo:vsn001b
"
!! stack = 300, streams = 1

%control 1


%recordformat xf(%byteinteger unit,fsys,%byteintegerarray fname(0:5))
%include "deimosperm"
%begin

   %owninteger mon = 1

%%recordformat itpf(%byteinteger cnsl,hb1,hb2,len,  %c
   %byteintegerarray data(0:127))
%recordformat itp2f(%byteinteger cnsl, hb1, hb2, %string(127) s)

==== ercm09/emas-2900/b_pcl.txt ====
imp11 pclo4s
link11
pclo4s#rel
i77perm
.stack 1400
.streams 0
.name clok
.end
pclo4y

==== ercm09/emas-2900/erte_clog6s.txt ====
FILE 'CLOG6S'
!
!
! CLOG  CLOG  CLOG  CLOG  CLOG  CLOG  CLOG  CLOG  CLOG  CLOG  CLOG  CLOG 
! CLOG  CLOG  CLOG  CLOG  CLOG  CLOG  CLOG  CLOG  CLOG  CLOG  CLOG  CLOG 
!
!
!
%CONTROL K'001001'
!
!
%BEGIN
!
!
!
!G.J.B.  //  J.C.A.     STARTED 10:11:76
! ???       LAST UPDATE 15:3:79     14:10     - FILE CLOG5S
!
!   FOR ERTE MK.6    MK. 3 MODS MARKED !&&
!   FOR ERTE MK.3   MK. 4 MODS MARKED !@@
!   SET UP FOR F1 STANDARD COMMANDS

==== ercm09/emas-2900/b_pollpad.txt ====
new
prep x25gen_pollpads,poll#imp,x
dimp11 poll#imp
link11
poll#rel
.stack 4000
.streams 3
.stackseg 6
.name poll
.end
pollxy
destroy pollxy
rename pollxy#abs,pollxy
old

==== ercm09/emas-2900/dirs.txt ====
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
!         DIR   LISTS CURRENT DIRECTORY
!
!   W.S.C.    8TH APRIL 1980
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
!   STACK=2000          STREAMS=1
%CONTROL K'101011'
%BEGIN


!   DATA AREAS

%CONSTINTEGER SERV=3
%CONSTINTEGER FSERV=4
%CONSTINTEGER DIRBLK=97

%CONSTINTEGER EXAMINE=0
%CONSTINTEGER GET NEXT=1

==== ercm09/emas-2900/temp.txt ====
notice nodes
gp15
n
h
n
y
n

==== ercm09/emas-2900/erteicl_alog6s.txt ====
!
!
! ALOG  ALOG  ALOG  ALOG  ALOG  ALOG  ALOG  ALOG  ALOG  ALOG  ALOG  ALOG 
! ALOG  ALOG  ALOG  ALOG  ALOG  ALOG  ALOG  ALOG  ALOG  ALOG  ALOG  ALOG 
!
!
!
%CONTROL K'001001'
!
!
%BEGIN
!
!
!
!J.C.A.     STARTED 10:11:76
! ???       LAST UPDATE   14:3:79     11:30     - FILE ALOG6S

!   FOR ERTE MK 4.0 AND MK 3.2  UPTO 128 SCRIPTS

!   ---   STACK 15000, STREAMS 4   ---


==== ercm09/emas-2900/sys_fsytxs.txt ====
! FILE 'SYS_FSYSTU581S'  - MODIFIED TO RUN TU58 ONLY !!!!!!!

!******************************
!*  FILE SYSTEM HANDLER       *
!*   FSYS1S/FSYS1Y            *
!*  DATE: 28.JUN.79           *
!******************************

!*W.S.C. 25TH AUGUST 1976
!*B.G.  27.MAR.78

!*THIS HANDLER IS THE FILE SYSTEM UTILITY TO REPLACE THE
!*EXISTING ONE IN DEIMOS TO PERMIT A FILE SYSTEM TO BE
!*CREATED ON THE AMPEX 9500 DISC AS WELL AS THE RK05'S.

!*IT IS A CONCEPTUAL COPY OF THE RK05 FILE SYSTEM HANDLER
!*EXCEPT THAT A BUFFER POOL IS USED FOR BLOCK DESCRIPTORS
!*AND DIRECTORY BLOCKS.

!*THE CODE IS SHARED BY 3 SYSTEM SLOTS,4 FOR THE RK05'S,
!*AND 9,15 FOR THE AMPEX DISC.THE AMPEX DISC IS LOGICALLY

==== ercm09/emas-2900/tcpcrash.txt ====
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAHDIAOLIPACIOKOFBCNFBAAAAAAAAPPAABAAAOBJOIODAHDIAIKIPIAAO
MLGBMKGBAAAAAAAABAAADAAAAAAAAAAAAAAABABADAPPAAAAAAAAAAAABACADAPP
AAAAAAAAAAAABADADAPPAAAAAAAAAAAABAEADAEAAAAAAAAAAAAABAFADAFAAAAA
AAAAAAAABAGADAPPAAAAAAAAAAAABAHADAPPAAAAAAAAAAAABAIADAPPAAAAAAAA
AAAABAJADAJAAAAAAAAAAAAABAKADAKAAAAAAAAAAAAABALADALAAAAAAAAAAAAA
BAMADAMAAAAAAAAAAAAABANADAPPAAAAAAAAAAAABAOADAOAAAAAAAAAAAAABAPA
DAPPAAAAAAAAHDIAMPHPIAAOEGHBIDHBAAAAAAAAAAAADAAAAAAAMFKAAAAAAABA
DAPPAAAAAAAAAAAAAACADAPPAAAAAAAAAAAAAADADAPPAAAAAAAAAAAAAAEADAEA
AAAAMFKAKIBHBAFADAFAAAAAMFKAAAAAAAGADAPPAAAAAAAAAAAAAAHADAPPAAAA
AAAAAAAAAAIADAPPAAAAAAAAAAAAAAJADAJAAAAAMFKAAAAAAAKADAKAAAAAMFKA
AAAAAALADALAAAAAMFKAAAAAAAMADAMAAAAAMFKAAAAAAANADAPPAAAAAAAAAAAA
AAOADAOAAAAAMFKAAAAAAAPADAPPAAAAAAAAHDIAAFHPIBAOMLGBMKGBAAAAAAAA
BAAADAPPAAAAAAAAAAAABABADAPPAAAAAAAAAAAABACADAPPAAAAAAAAAAAABADA
DAPPAAAAAAAAAAAABAEADAPPAAAAAAAAAAAABAFADAFBAAAAAAAAAAAABAGADAPP
AAAAAAAAAAAABAHADAPPAAAAAAAAAAAABAIADAIBAAAAAAAAAAAABAJADAPPAAAA
AAAAAAAABAKADAPPAAAAAAAAAAAABALADAPPAAAAAAAAAAAABAMADAPPAAAAAAAA
AAAABANADANBAAAAAAAAAAAABAOADAOBAAAAAAAAAAAABAPADAPPAAAAAAAAHDIA
EKGPIBAOEGHBIDHBAAAAAAAAAAAADAPPAAAAAAAAAAAAAABADAPPAAAAAAAAAAAA

==== ercm09/emas-2900/b_lm2972.txt ====
e gen_lmtims/temp
f/prompt("n/k2g
node = 9; term = 75
m-0f/lmti:/s/lmf2:/p
m-0f/ercm09/s/ercv12/p
f/LIAM/s/BRIN/p
%c
imp11 temp
link11
temp#rel
i77perm
.stack 2000
.streams 1
.name lmf2
.end
lm2972y

==== ercm09/emas-2900/verifgbs.txt ====
!
! ACCELERATED VERIFY WITH IN-LINE CODING
! GJB 15/01/78
!
! STACK=70000   STREAMS=1
!
%CONTROL K'101011'
%BEGIN
%CONSTBYTEINTEGERNAME ID=K'160030'
%RECORDFORMAT DLF(%INTEGER PR,NEXT)
%RECORD(DLF)%ARRAY DIRL(0:K'7777')
%RECORD(DLF)%NAME BLKINFO
%RECORDFORMAT DF(%BYTEINTEGERARRAY NAME(0:5),%INTEGER FIRST,PR)
%RECORD(DF)%ARRAY DIRT(0:51)
%RECORD(DF)%NAME FILE
%RECORDFORMAT LF(%BYTEINTEGERARRAY NAME(0:15),%INTEGER FIRST,LAST,  %C
   DIRB,DIRLIST)
%RECORD(LF)%NAME LABEL
LABEL==DIRT(0)
%RECORDFORMAT PF(%BYTEINTEGER SERVICE,REPLY,%INTEGER A1,  %C
   %RECORD(DLF)%NAME A2,%INTEGER A3)

==== ercm09/emas-2900/node_parr1e.txt ====
! FILE 'FEP_PARR1E'
!**************
!*  PAR11E    *
!*DA:12.FEB.80*
!**************

%CONTROL K'100001';                    ! 'SYSTEM' PROGRAM AND
                                       ! TRUSTED PROG


%RECORDFORMAT PARF(%INTEGER TYPE, ADDRESS, LEN)

%EXTERNALROUTINE PAR11E(%RECORD (PARF) %NAME P)

     %SYSTEMROUTINESPEC MAPHWR(%INTEGER SEG)
     %SYSTEMINTEGERFNSPEC GETID
     %SYSTEMROUTINESPEC LINKIN(%INTEGER SER)
     %SYSTEMINTEGERFNSPEC MAP ABS(%INTEGER ADR, LEN, REQ ID)

     %RECORDFORMAT PF(%BYTEINTEGER SER, REPLY, %INTEGER A1, A2, A3)


==== ercm09/emas-2900/b_lm2976.txt ====
imp11 lm2976
link11
lm2976#rel
i77perm
.stack 2000
.streams 1
.end
lm2976y
list lm2976y,.fep72

==== ercm09/emas-2900/tes5.txt ====
 $DEF RTIN = 16_0D, RTOUT = 16_11, NPRREQ = NPR.0
$DEF RINTST = 16_2E, TOPSEG = 16_E8, RDATA = 16_20, SSEL = 16_24
BRG=0
CSR2=BRG; CSR3=BRG; CSR4=BRG; CSR5=BRG
SP10=BRG; SP11=BRG; SP12=BRG; SP13=BRG
SP6=BRG;    ! LOW ORDER ADDRESS
SP5 = 16_C0;  ! TRANSFER TO ADDRESS 140000
ADR2=16_FF; ADR3=16_FF;  ! _SOURCE SELECT = -1
ADR6=SSEL; ADR7=TOPSEG
MISC=16_1C;  ! SET CLOCK & O ADR 17&18
NPR = RTOUT
CYCLE; REPEAT IF NPRREQ
SETREC:
ADR2=1; ADR3=0; ! SET RECEIVE=1
ADR6=RINTST
MISC = 16_0C
NPR=RTOUT
CYCLE; REPEAT IF NPRREQ
CYCLE
   MISC=16_10; ! CLOCK ON
   CYCLE; REPEAT IF MISC.4 = 0

==== ercm09/emas-2900/colorls.txt ====
! FILE 'ERCM08.INC_COLOURDEFS'
%CONTROL K'100001'

%BEGIN

!
!     ***   COLOUR DEFINITIONS
!
%CONSTINTEGER BLACK=16
%CONSTINTEGER RED=17
%CONSTINTEGER GREEN=18
%CONSTINTEGER YELLOW=19
%CONSTINTEGER BLUE=20
%CONSTINTEGER MAGENTA=21
%CONSTINTEGER CYAN=22
%CONSTINTEGER WHITE=23
%CONSTINTEGER CURBACK=BLACK;            !BACKGROUND FOR EVERYONE
!        ***   OWN ROUTINES FOR DRIVING INTECOLOUR DISPLAY
!FILE 'ERCM08.COLOURS'
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

==== ercm09/emas-2900/sourceis.txt ====
! use .stack 5100
%externalroutine gollum(%string (255) s)
%externalroutinespec time(%stringname s)
%externalstringfnspec interrupt
%externalroutinespec prompt(%string(15) s)
!%externalstring(255) %fnspec uinfs(%integer i)
!%externalintegerfnspec dpermission(%string(11) o,u,d,f, %c
!                                   %integer fs,t,p)
!%systemroutinespec connect(%string(31) f,%integer m,h,p,%record(*)%name r, %c
!                               %integername flag)
!%externalroutinespec disconnect(%string(255) s)
!%externalintegerfnspec exist(%string(31) f)
!%externalroutinespec list(%string(255) s)
!%externalroutinespec run(%string(255) s)
!%externalstring(255) %fnspec interrupt
!%externalstring(255) %fnspec ucstring(%string(255) s)
%externallongrealfnspec cputime
!%externalroutinespec call(%string(31)command,%string(255)param)
!%systemroutinespec load(%string (31) name, %integer type, %integername flag)
!%externalintegerfnspec uinfi(%integer i)
!

==== ercm09/emas-2900/dvn.txt ====
;**************************************
;*         DVNO2S                     *
;*  INTERFACE BETWEEN HARDWARE AND IMP*
;*  DATE:  06.MAR.82                  *
;**************************************
; FOR SUP40 AND BEYOND - 100 INTERRUPTS - AND EXPANDED DUMP
; AUTOMATIC POWER UP ADDED
 
PS=177776; PROCESSOR STATUS WORD
 
IDLEST=-1; SUPERVISOR IDLE FLAG
 
INTVAL=40; DEDICATED LOCATION FOR INTERRUPT NUMBER
ALARMF=44; DITTO - FOR CLOCK
PSECT=46; DITTO - CURRENT PSECT
LASTPS = 54
PXPT=56; POINTS TO RECORD P2 & PXP IN KERNAL
 
UPAR=177640
UPDR=177600
 

==== ercm09/emas-2900/response_fe1jan11.txt ====
Node =   6, Term = 181 - 11 Jan 82  1435-1520 - 11 Jan 82   14.30 - 15.30 (approx)
 0
 0
 0
 0
 0
 63
 181
 130
 76
 39
 13
 10
 6
 7
 3
 3
 0
 1
 1
 1

==== ercm09/emas-2900/b_lm2980.txt ====
e gen_lmtims/temp
f/prompt("n/k2g
node = 80; term = 80
m-0f/ercm09/s/EYRE63/p
f/LIAM/s/..../p
%c
imp11 temp
link11
temp#rel
i77perm
.stack 2000
.streams 1
.name lm29
.end
lm2980y

==== ercm09/emas-2900/response_fe1jan12.txt ====
Node =   6, Term = 181 - 12 Jan 82  1600-1700 ring->n9->n6->fe1
 0
 0
 0
 0
 0
 101
 202
 125
 55
 18
 14
 13
 5
 1
 1
 3
 1
 1
 3
 1

==== ercm09/emas-2900/response_fe1jan13.txt ====
Node =   6, Term = 181 - 13 Jan 82  1418-1523  ring->n9->n6->fe1  (new 2980 soft.)
 0
 0
 0
 0
 0
 38
 120
 97
 89
 84
 64
 45
 23
 25
 24
 26
 17
 13
 13
 6

==== ercm09/emas-2900/tsbsp_rawst.txt ====
16
FREE WT_BUF WT_NS WT_BUF_NS WT_ACCN WT_ACCND DATA WT_DISCN WT_DIN WT_RESETN
WT_RESETI WT_ACCI WT_ACCID WT_DISCI WT_DG_REPLYI WT_DG_REPLYN
12
GOT_BUFFER * SEND_LOOKUP,WT_NS * -,FREE * * * * * * * * * * * *

NS_REPLY * * NS_MESS,WT_ACCN -,FREE * * * * * * * * * * * *

DISCI * DISCI_RESPONSE,WT_BUF_NS DISCI_RESPONSE,WT_BUF_NS * DISCI_WT_ACCN,WT_ACCND
* DISCI_TO_N,WT_DISCN * -,WT_DISCN DISCI_TO_N,WT_DISCN DISCI_TO_N,WT_DISCN
CONN_N_FAILED,FREE -,FREE -,FREE * *

OPENACKN - - - - PROCESS_OPENACK,DATA D_PROCESS_OPENACK,WT_DISCN INT_DISC,WT_DIN
- - INT_DISC,WT_DIN INT_DISC,WT_DIN INT_OPEN_NACK,WT_ACCID - - - DG_REPLY_NTOI,FREE

RESETI * * * * * * RESETI_TO_N,WT_RESETN * - RESETI_RESPONSE
CLEAR_TIMEOUTS,DATA * *
- * *

RESETN - - - - - - RESETN_TO_I,WT_RESETI - - CLEAR_TIMEOUTS,DATA RESETN_RESPONSE
INT_OPEN_NACK,WT_ACCID - - - -

==== ercm09/emas-2900/kmc11_klink.txt ====
 !
! c.s. link handler for kmc11  -  gjb 28/06/78
!
!
! kmc11 program to perform block transfers between pdp-11 and
! c.s. department nine bit link.  buffers are passed, using the
! csrS as follows :-
!    (1) pdp-11 -> kmc11
!        (a) pdp-11 sets csr0.4 (csr request)
!        (b) kmc11 sets csr2.1 (csr grant) after arbitrary delay
!        (c) pdp-11 loads buffer info :
!            csr2.0 = 0 (rx buff), 1 (tx buff)
!            csr2.2/3 = bit 16/17 of address
!            csr3 = length (in words)
!            csr2.7 = extra byte marker
!            csr4/5 = bit 0-15 of address
!        (d) pdp-11 resets csr0.4
!    (2) kmc11 -> pdp-11
!        (a) kmc11 loads buffer info, as above
!        (b) kmc11 sets csr2.4 (data ready)
!

==== ercm09/emas-2900/usercmoct83.txt ====
$A INVERT=0
$A CAP=0; CAPSHO=0; CAPO=0; CAPSH=0
$A LINE=76; PGAP=5; PAGE=60; MARK=2; TOP=1
$A TAB=4,8,12,16,20,24,28,32,36,40,44,48
$B3 $L1UC
EDINBURGH REGIONAL COMPUTING CENTRE
$B4 $L1U
For the attention of the Edinburgh Computer Users' Committee
$B5 $L1UM
Report on Communications
$B2 %CONVERSION$ TO$ X25
$P1 The conversion to X25 has gone very smoothly with only a few
minor problems.  The real test, however, will only come after the student
load increases later in the term.
$B2 %TCPs
$P1 The current release of X25 TCP software has now been running for over a 
month, a new release is ready to be released in the next
few days so that the X25 INFO is picked up by default instead of being manually
changed when a TCP is loaded.
$B2 %FEPs
$P1 The curent 2976 FEP software running on two of the FEPs has also

==== ercm09/emas-2900/node_prt10ns.txt ====
!*********************
!*    PRT9S/PRT9Y    *
!* DATE: 29.MAY.80  *
!*VERSION FOR NODE  *
!*HISTORY UNCERTAIN  *
!!!!!!!!!!!!!!!!!!!!!!
!STACK = 140

%CONTROL X'100001';                    ! TRUSTED PROGRAM AND QUICK
                                       ! ROUTINE ENTRY AND EIS
%CONSTINTEGER KERNEL SER = 29
%OWNINTEGER SECONDARY = 0;      !PRIM = 0, SEC = 1
%OWNINTEGER SECAD = 9;            !SECONDARY ADDRESS

%CONSTINTEGER WMAX = 56;       ! MAX NO OF WRITES
%CONSTINTEGER NO OF SEC BUFFERS = 16;  ! PRIVATE BUFFER STORE
%CONSTINTEGER SFMASK = 63;      ! CIRC BUFFER SIZE FOR WRITES


%CONSTSTRING (7) VSN = 'VSN009H'


==== ercm09/emas-2900/networks85_introll.txt ====
0m690,0,0,0,495

a0,3150
rr511A2blank
a0,350

a0,3350
rr300Arr925A2
a0,2760
rr300Ab41.rr22AIntroduction
a0,2640
rr511Ap2Edinburghrr21AUniversityrr20Aisrr21Aspreadrr20Aacrossrr21Amanyrr20Apartsrr21Aofrr20AEdinburghrr20Awith
a0,2590
rr435Atworr18Amainrr19A"campus"rr18Aareasrr19Aandrr18Aarr19Anumberrr18Aofrr19Aotherrr19Ascatteredrr18Adepartments.
a0,2540
rr435AThisrr25Asituationrr25Ahasrr25Aledrr25Atorr25Aarr25Averyrr25Ahighrr25Adependencerr25Aonrr25Adatarr25Anetworking
a0,2490
rr435Awhichrr30Ahasrr29Abeenrr30Abuiltrr30Auprr30Aoverrr30Afifteenrr30Ayearsrr30Ainrr30Aorderrr30Atorr30Aensurerr30Athat
a0,2440
rr435Astudentsrr29Aandrr29Astaffrr29Acanrr29Acommunicaterr28Awithrr29Aeitherrr29Atherr29Amainrr29AUniversity
a0,2390

==== ercm09/emas-2900/b_link.txt ====
imp11 link77s/,l
link11
link77s#rel
.streams 4
i77perm
.stack 27200
.end
link77y
alist11 link77s/.lp23

==== ercm09/emas-2900/x25extras.txt ====

@make[report]
@device[x2700]
@flushright[Report Annex 1]
@majorheading[X25 Campus Packet Switching Exchange (CPSE)
Additional Specification]
@paragraph[Control]
The following should be possible without a reload of the entire switch.
@begin[itemize]

Change Link addresses and routing tables

change line speeds.

change Logical group assignments

change between DTE and DCE
@end[itemize]
@subheading[Configuration A]
@begin[verbatim]
PSE with 10 X25 connections  - 1 x 48 kbps, 9 x 9.6 kbps,

==== ercm09/emas-2900/log080483.txt ====
08/04/83  01:16:40 N009T000  6 20 156 156 21 90 90 246 32 5 7 9 5
08/04/83  01:16:40 N006T000  6 13 156 156 34 90 90 250 32 5 7 9 5
08/04/83  01:16:45 N006T000  6 13 156 156 34 72 3 59 32 4 7 9 8
08/04/83  01:16:45 N009T000  6 20 156 156 61 72 3 47 32 4 7 9 8
08/04/83  01:16:45 N009T000  6 20 80 80 21 90 90 42 32 23 0 4 1
08/04/83  01:16:45 N006T000  6 33 80 80 34 90 90 54 32 23 0 4 1
08/04/83  01:16:50 N009T000  6 2 80 80 15 0 15 162 32 2306 0 146 146
08/04/83  01:16:50 N009T000  6 17 72 72 15 0 15 79 32 1 0 1 1
08/04/83  01:16:55 N009T000  6 20 156 156 3 0 180 71 32 4 7 9 5
08/04/83  01:16:55 N006T000  6 13 156 156 34 9 180 80 32 4 7 9 5
08/04/83  01:16:55 N009T000  6 20 80 80 21 90 90 65 32 23 0 4 1
08/04/83  01:16:55 N006T000  6 33 80 80 34 90 90 78 32 23 0 4 1
08/04/83  01:16:55 N006T000  6 13 156 156 35 0 171 94 32 4 7 9 5
08/04/83  01:16:55 N009T000  6 20 156 156 17 0 75 96 32 4 7 9 5
08/04/83  01:17:10 N006T000  6 13 156 156 34 9 75 101 32 4 7 9 5
08/04/83  01:17:10 N006T000  6 13 156 156 33 0 181 110 32 4 7 9 5
08/04/83  01:17:15 N009T000  6 20 156 156 2 0 182 115 32 4 7 9 5
08/04/83  01:17:15 N006T000  6 13 156 156 34 9 182 122 32 4 7 9 5
08/04/83  01:17:15 N006T000  6 7 0 27 25 84 84 238 32 98 125 176 111
08/04/83  01:17:20 N009T000  6 20 156 156 61 72 5 162 32 7 14 12 11
08/04/83  01:17:20 N006T000  6 13 156 156 34 72 5 161 32 7 14 12 11

==== ercm09/emas-2900/recode2s.txt ====
%EXTERNALROUTINESPEC DEFINE(%STRING (63)S)
%SYSTEMROUTINESPEC OPENIN(%INTEGER CHANNEL, %STRING (8)S)
%SYSTEMROUTINESPEC SELIN(%INTEGER CHANNEL)
%SYSTEMROUTINESPEC READ BYTE(%INTEGERNAME N)
%SYSTEMROUTINESPEC TERMIN(%INTEGER CHANNEL)
!!
%DYNAMICINTEGERFNSPEC TIME40(%INTEGER IN)
%DYNAMICINTEGERFNSPEC TIME03(%INTEGER IN)
%EXTERNALINTEGERFNSPEC TIME45(%INTEGER IN)
!!


%EXTERNALROUTINE RECODE(%STRING (63)S)
      %INTEGER LNUM, CURRENT LINE, ADDR, CA, SI, TIMER, T, TOTT
      %STRING (45)SOURCE, OBJECT, OUTPUT, TYPES
      %STRING (100) INLINE


      !!
      !!
      %INTEGERFN ITEM

==== ercm09/emas-2900/kentkv11.txt ====

(Message 662)
Subject:  Re: Newcastle Interface
From:     I.N.Dallas @ uk.ac.ukc  29 Aug 85  16:13:38 bst
To:       B.Gilmore @ uk.ac.edinburgh
In reply to: Your message <29 Aug 85  16:05:09 bst  140005@EMAS>
Via:      uk.ac.ukc  ; (to uk.ac.edinburgh.emas) 30 Aug 85  08:12:22 bst
Msg ID:   <29 Aug 85  16:13:38 bst  010857@EMAS>


Attached is the un-prepped source of xprot. There will be a mail message
following which has the GO file, which generates the object.

Thanks for your assistance, I will look closely at the sources too.

Source follows: ***********

#if k
%list
#fi
!

==== ercm09/emas-2900/response_fe1jan25.txt ====
Node =  80, Term = 80 - 25 Jan 82  10.23 - 13.00
 0
 0
 0
 0
 119
 426
 303
 175
 174
 166
 113
 68
 58
 44
 31
 20
 16
 10
 9
 2

==== ercm09/emas-2900/telepacpas.txt ====
program telepac (input,output,log1,log2,out);

{Analyse the POLL ALL output from a TelePAC}

{Two files are read, and the time difference between the 'readings'}

TYPE
   stata = ARRAY [1..2, 1..14] of integer;
   polla = ARRAY [1..2, 1..30, 1..21] of integer;
   ptpolla = ^polla;
   string = PACKED ARRAY [1..80] of CHAR;
VAR
{   log1, log2, out: text;}
   hours, mins, secs, index, i, j,q1, q2: integer;
   k: real;
   str: string;
   stat: stata;
   poll: ptpolla;
   fn1, fn2, out1: string;



==== ercm09/emas-2900/daveletter.txt ====
Dave,
      Thanks for the memo, it is useful to get feedback on how users see the
network.  It is, however, difficult to answer all the points as all the
documentation is no longer available after this period of time.  It is
important that users tell operations about problems while they are 
happening, not long after the event.

   I have done as much checking as is possible and have come to the
following conclusions:
   
   1) The Central Area CPSE had a harware fault that caused the problems
      on the 4th and 6th of February.  This machine has in fact been 
      reasonable reliable and that period can be seen as very exceptional.

   2) At least two of the faults described as 'XCALL Down' were in fact
      caused by the Vax being down, or not responding.  

   3) February was a very bad month from the Vax User's point of view and there
      were repeated problems until faulty h/w, both in the Vax & its network
      connection was isolated and removed.


==== ercm09/emas-2900/b_rles.txt ====
imp11 rles77
link11
rles77#rel
i77perm
.stack 400
.streams 1
.end
rlesy

==== ercm09/emas-2900/gecresults.txt ====
%externalroutine printres(%string (255) s)
%externalroutinespec define(%string (255) s)
%integer i,j,k,q,p,hit
%ownintegerarray num(1:5) = 12, 34, 6, 16, 7
%integerarray cind(1:6)
%ownbyteintegerarray char(1:5) = 'P', 'N', 'A', 'E', 'O'

%integerarray ind(1:75)
%string (5) %array name(1:75)
%ownintegerarray res(1:75) = 87, 62, 75, 54, 53, 73, 57, 31, 55, 46,
44, 63,
74, 38, 40, 71, 55, 50, 26, 55, 42, 33, 38, 78, 26, 78, 54,
47, 72, 67, 69, 62, 47, 23, 79, 15, 63, 44, 24, 23, 22, 23,
45, 47, 45, 27,
42, 44, 29, 40, 32, 24,
55, 53, 34, 48, 57, 34, 39, 37, 29, 29, 65, 53, 56, 44, 75, 54,
30, 59, 26, 29, 51, 25, 18


%routine print res
   %integer i,j,k,q

==== ercm09/emas-2900/ring6s.txt ====
! FILE 'RING6S'

!********************************
!*    EMAS-2900   RING INTERFACE *
!*                    HANDLER     *
!*      FILE: RING6S              *
!*   DATE:15.JAN.81               *
!*********************************
!!  STK = 300,  STRM = 1

!NB LOCATION K'140016 IS USED TO HOLD THE CHECKSUM SO THAT IT MAY
!BE ACCESSED FROM CODE

%SYSTEMROUTINESPEC LINKIN(%INTEGER SER)
%SYSTEMROUTINESPEC MAP HWR(%INTEGER SEG)
%SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)

%RECORDFORMAT DMF(%INTEGER I)

%CONSTRECORD (DMF) %NAME NIL = 0


==== ercm09/emas-2900/docum_ddbug.txt ====
$A TAB=5, 10; CAPO=0; CAPSHO=0; INVERT=1; PAGENO=1
$A JUST=1; LINE=72; PAGE=59; TOP=3; BOTTOM=4; MARK=2
$L1CM
DEBUGGING PROGRAM
$B2
$L1C
OBJECT: DBUG
$A INDENT=1
$P2
@THIS PROGRAM IS USED AS AN AID TO DEBUGGING PROGRAMS,
IT WILL MORMALLY BE 'LINKED' TO A RUNNING PROGRAM ON THE
SYSTEM USING THE COMMAND .'T' (FOR DETAILS SEE LATER), ALL
ACCESSES TO LOCATIONS WILL THEN BE MADE IN THAT PROGRAMS
VIRTUAL MEMORY.
$B0 @IT MAY BE USED TO:-
$A INDENT=2
$B0 1) .SET AND .CLEAR BREAKPOINTS
$B0 2) @DUMP OUT THE .PSECT, .REGISTERS AND/OR THE .IMP .STACK.
$B0 3) .EXAMINE AND .CHANGE LOCATIONS IN CORE.
$B0 4) .DUMP GENERAL AREAS OF CORE.
$A INDENT=1

==== ercm09/emas-2900/iprogsou_ass11.txt ====
%EXTERNALROUTINE ASS11(%STRING (63)FILES)
      %EXTERNALINTEGERFNSPEC SMADDR(%INTEGER CHAN, %INTEGERNAME LENGTH)
      %EXTERNALROUTINESPEC DEFINE(%STRING (63)S)
      %DYNAMICSTRING (8) %FN %SPEC DATE
      %DYNAMICINTEGERFNSPEC TIME40(%INTEGER IN)
      %DYNAMICINTEGERFNSPEC TIME03(%INTEGER IN)
      %DYNAMICINTEGERFNSPEC TIME45(%INTEGER IN)
      %ROUTINE DUMP BIN(%HALFINTEGERARRAYNAME CODE, %C
        %INTEGER START, FINISH, %STRINGNAME T, %INTEGERNAME FLAG)
         %INTEGER CHECK, J
         %ROUTINE PUT(%INTEGER N)
            %INTEGER M
            M = N>>8&255
            N = N&255
            PRINTCH(N);  PRINTCH(M)
            CHECK = CHECK+(N+M)
         %END
         %RETURN %IF START < 0;                     !?????
         SELECT OUTPUT(3)
         CHECK = 0
         PUT(1)

==== ercm09/emas-2900/pclo2s.txt ====
! FILE 'PCLOCKS'
! PROGRAMMABLE CLOCK PROGRAM
! DATE: 5.MAR.81

%CONTROL K'100001'
%PERMROUTINESPEC SVC(%INTEGER EP, R0, R1)
%PERMINTEGERMAPSPEC INTEGER
%PERMBYTEINTEGERMAPSPEC BYTEINTEGER
%PERMINTEGERFNSPEC ADDR
%PERMINTEGERFNSPEC ACC
%BEGIN

%SYSTEMROUTINESPEC MAPHWR(%INTEGER SEG)
%SYSTEMROUTINESPEC LINKIN(%INTEGER NO)
      %CONSTBYTEINTEGERNAME INT = K'160060'

%RECORDFORMAT CLOCKF(%INTEGER STATUS, DATA)
%CONSTRECORD (CLOCKF) %NAME CLOCK = K'112540';   ! IN SEG 4

%RECORDFORMAT PF(%BYTEINTEGER SER, REPLY, %INTEGER A, B, C)
%RECORD (PF) P

==== ercm09/emas-2900/figs.txt ====

@b[@I[Fig. 1  Edinburgh University Data Network]]
@blankspace[0.9 in]
@b[@I[Fig. 2  Edinburgh University Speech Network]]
@blankspace[0.9in]
@b[@I[Fig. 3  PABX/LAN Project network]]
@blankspace[0.9in]
@b[@I[Fig. 4  Data Connection to a PABX]]
@blankspace[0.9 in]
@b[@I[Fig. 5  X25 Network Connection]]
@blankspace[0.9 in]
@b[@I[Fig. 6  Host Connection to a PABX]]
@blankspace[0.9in]
@b[@I[Fig. 7  PABX/LAN Connection]]
@blankspace[0.9 in]
@b[@I[Fig. 8  Trunk Connection]]

==== ercm09/emas-2900/lmtsxs.txt ====
!**********************
!* lmtots/lmtsxy   *
!* date: 20.may.81   *
!*********************
%conststring (13) vsn = "lmts...1d "

! Prep options:-    t   -  itp over transport service
!                   x   -  xxx over transport service

#datestring

!! stack = 300, streams = 1

%control x'4001'


%recordformat xf(%byteinteger unit,fsys,%byteintegerarray fname(0:5))
%include "b_deimosspecs"
%begin

   %owninteger mon = 0

==== ercm09/emas-2900/dgn1s.txt ====
! FILE 'dgn1s'
!*********************
!*    dgn1s/dgn1y    *
!* DATE: 10.FEB.82  *
!*********************
!STACK = 140


%RECORDFORMAT XXF(%INTEGER DUMMY)
%CONSTRECORD (XXF) %NAME NULL = 0

%CONTROL K'100001';                    ! TRUSTED PROGRAM AND QUICK
                                       ! ROUTINE ENTRY AND EIS


%CONSTSTRING (13) VSN = "DGN1:VSN001A
"
%BEGIN
      %PERMROUTINESPEC SVC(%INTEGER EP, R0, R1)
     %SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)
     %SYSTEMROUTINESPEC LINKIN(%INTEGER SER)

==== ercm09/emas-2900/inc_colourdefs.txt ====
!
!     ***   COLOUR DEFINITIONS
!
%CONSTINTEGER BLACK=16
%CONSTINTEGER RED=17
%CONSTINTEGER GREEN=18
%CONSTINTEGER YELLOW=19
%CONSTINTEGER BLUE=20
%CONSTINTEGER MAGENTA=21
%CONSTINTEGER CYAN=22
%CONSTINTEGER WHITE=23
%CONSTINTEGER CURBACK=BLACK;            !BACKGROUND FOR EVERYONE
%ENDOFFILE

==== ercm09/emas-2900/node_parr3s.txt ====
! FILE 'PARR3S'
!*********************
!*    PARR3S/PARR1Y  *
!* DATE: 17.SEP.80  *
!*********************
!STACK = 140


%RECORDFORMAT XXF(%INTEGER DUMMY)
%CONSTRECORD (XXF) %NAME NULL = 0

%CONTROL X'100001';                    ! TRUSTED PROGRAM AND QUICK
                                       ! ROUTINE ENTRY AND EIS


%CONSTSTRING (7) VSN = 'VSN003E'
%BEGIN
     %SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)
     %SYSTEMROUTINESPEC LINKIN(%INTEGER SER)
      %SYSTEMINTEGERFNSPEC MAP ABS(%INTEGER ADR, LEN, REQ ID)
      %SYSTEMROUTINESPEC MAPHWR(%INTEGER SEG)

==== ercm09/emas-2900/ftppd_obj.txt ====
   %constbyteintegerarray token(0: 125)=0,
      35,     203,      76,      77,      78,      79,      80,      63,
      81,      82,     166,     211,      84,     165,     166,      84,
      85,      80,      64,      38,      24,      39,      47,     168,
       0,     129,     130,     131,     132,     133,     134,     135,
     136,     137,     139,     140,     141,     142,     143,     144,
     145,     146,     147,      43,     161,      34,      31,      33,
      33,      33,      33,      33,      32,      32,      86,      88,
      86,      86,      86,      86,      86,      86,      87,      88,
      56,      55,      59,      58,      60,      57,      61,      62,
      54,     172,       0,      43,      43,      41,     170,       0,
      43,      41,     170,       0,      44,      38,      21,      30,
      45,      30,      26,      30,      45,      30,      27,      45,
      30,      28,      65,      66,      65,      73,      38,      20,
     158,      39,     168,       0,     138,      19,      31,      32,
      86,      88,      55,      54,      71,      67,     198,      72,
      71,      68,      65,      71,      69
   %constbyteintegerarray next(0: 125)=0,
       2,       4,       5,       6,       7,       8,       9,      10,
       0,      11,      14,      15,      17,      14,      14,      17,
      18,      19,       9,      21,      22,      23,      24,      26,

==== ercm09/emas-2900/erteicl_initdu.txt ====

!THE INITIALISE TASK "INIT"   - FOR EMAS 2980.
!E.R.T.E. MK.3 VERSION  -  VIA THE DQS 11/E

!   W.S.C.   27TH JULY 1976
!   J.C.A.   31ST JAN 1978
!   G.J.B.   19TH SEPT 1978
!   J.C.A.   27TH SEPT 1978
!   B.G.   25.JAN.80


!   ???   LAST UPDATE 21:12:78   - FILE INIT70

! THIS VERSION IS FOR USE WITH ICL VME/B


!THE TASK RUNS IN SYSTEM SLOT 29

!SET STACK TO 140   STREAMS=0   PRIORITY=1

%CONTROL K'101011'

==== ercm09/emas-2900/sys_rx501s.txt ====
! FILE RX50 1S 
!
!     RX50 FLOPPY DISC HANDLER
!
!     THIS IS THE UNIT 0&1 VERSION
!
!     %% LAST UPDATED 21ST MARCH 1985  FILE=RX5021S
!
!     USES SYSTEM SLOTS 8 AND 14. INT SLOT -8.
!
!     CALLING PARAMETERS ARE AS FOLLOWS
!        P_A1=MODE    (0=READ,1=WRITE)
!        P_A2=ADDRESS OF BUFFER IN MEMORY
!        P_A3=BLOCK NUMBER ON DISC
!
!     SINCE DEIMOS DEALS IN 512 BYTE BLOCKS ALL TRANSFERS ARE 2*256
!BYTE SECTORS. THE FIRST 77 BLOCKS ARE RESERVED FOR THE SYSTEM.
!WITHIN EACH TRACK OF 26 SECTORS THE SECTORS ARE INTERLEAVED.
!
!     ON EXIT P_A1=FAULT NO. (0=OK)
!

==== ercm09/emas-2900/node_dvno1s.txt ====
;**************************************
;*         DVRUB                      *
;*  INTERFACE BETWEEN HARDWARE AND IMP*
;*  DATE:  10.OCT.80                  *
;**************************************
 
PS=177776; PROCESSOR STATUS WORD
 
IDLEST=-1; SUPERVISOR IDLE FLAG
 
INTVAL=40; DEDICATED LOCATION FOR INTERRUPT NUMBER
ALARMF=44; DITTO - FOR CLOCK
PSECT=46; DITTO - CURRENT PSECT
LASTPS = 54
INTINF=56
 
UPAR=177640
UPDR=177600
 
UPAR0=40; INDEC INTO PSECT
UPDR0=UPAR0+2; DITTO

==== ercm09/emas-2900/response2_fe1jan12.txt ====
Node =   6, Term = 181 - 12 Jan 82  1600-1700 ring->n9->n6->fe1
 0
 0
 0
 0
 0
 101
 202
 125
 55
 18
 14
 13
 5
 1
 1
 3
 1
 1
 3
 1

==== ercm09/emas-2900/node2s.txt ====
! FILE 'FEP_NODES'
!*************************
!*     NODES/LOAD        *
!* DATE: 23.APR.80       *
!* LOADS A SERIES OF     *
!* TASKS, FROM INPUT(1)  *
!*************************

%CONTROL K'100001'
%RECORDFORMAT DUMMY(%INTEGER X)
%CONSTRECORD (DUMMY) %NAME NULL = 0


%BEGIN
     %CONSTBYTEINTEGERNAME OWN ID = K'160030'
     %CONSTBYTEINTEGERNAME FSYS = K'160055'
     %CONSTBYTEINTEGERNAME TTNO = K'160061'
     %CONSTINTEGER LOAD SER = 5

     %RECORDFORMAT PE(%BYTEINTEGER SERVICE, REPLY, A1, A2, %C
       %BYTEINTEGERNAME B, %BYTEINTEGER C1, C2)

==== ercm09/emas-2900/ll4_dis.txt ====
$A LINE=42; LEFT=2; SGAP=2; PGAP=0; JUST=1
$A TAB=4; INDENT=0
$A CAP=0; UNDSH=0; UND=0; CAPO=0; UNDSHO=0; UNDO=0
$A INVERT=0; INVO=0
$l1cm
jobs not bombs
$p2 The world must draw back from the nuclear abyss before its too late.
Make no mistake - there won't be many survivors if nuclear bombs are dropped
on Britain.
$p2 Labour believes Britain should take a lead in ending this madness.  The
Tories pay lip service to "disarmament" but their actions have escalated
the arms race. The time has come to call a halt.
$p2 Tory policy has made Britain a front-line target in a nuclear war.
Do YOU want to make our island a floating bomb carrier?
$p2 Other countries have already taken the step of refusing to stockpile
nuclear weapons on their soil - Norway, Denmark & Canada for instance.
$p2 In Britain we spend MORE of our resources on defences than do our
European allies.  The money which the Tories choose to spend on nuclear 
weapons, we want to see spent on creating jobs, on health, education
and welfare.
$p2

==== ercm09/emas-2900/lmon9.txt ====
27.OCT.81  13.15 - 17.32
  0 1 5 1 18784-2622 29366 27463 15321 16299
  1 2 2 1 22087-429 28141-434 8427 16695
  2 3 9 1-4705-25557 26333-18111-15367 12973
  3 4 0 1 1829 0 0 0 0 0
  4 5 2 1 5829 25104 0-30897-11122-12153
  5 6 1 1 3364 161 21 540 0 0
  6 7 2999 24 17 5634 2 586
  7 8 17536 12 1 341 28474 72
  0 10 5 1 19013-2590 29368 27651 15321 16299
  1 11 2 1 22281-213 28155 5192 8570 16695
  2 12 10 1-4555-25103 26363-7541-15116 12973
  3 13 0 1 2024 0 0 0 0 0
  4 14 1 1 6294 25138 0-30594-11122-12153
  5 15 1 1 3896 195 25 646 0 0
  6 16 3193 24 17 7534 2 58
  7 17 17820 12 1 341 1025 2
  0 19 6 1 19239-2534 29378 27858 15321 16299
  1 20 1 1 22486-75 28161 8999 8673 16695
  2 21 10 1-4436-24496 26393 5984-14787 12973
  3 22 0 1 2218 0 0 0 0 0

==== ercm09/emas-2900/erteicl_du11e.txt ====
!**************
!*  DU11E    *
!*DA:23.FEB.80*
!**************

%CONTROL K'100001';                    ! 'SYSTEM' PROGRAM AND
                                       ! TRUSTED PROG


%RECORDFORMAT PARF(%INTEGER TYPE, ADDRESS, LEN)

%EXTERNALROUTINE DU11E(%RECORD (PARF) %NAME P)

     %SYSTEMROUTINESPEC MAPHWR(%INTEGER SEG)
     %SYSTEMINTEGERFNSPEC GETID
     %SYSTEMROUTINESPEC LINKIN(%INTEGER SER)
     %SYSTEMINTEGERFNSPEC MAP ABS(%INTEGER ADR, LEN, REQ ID)
     %PERMINTEGERFNSPEC SVC(%INTEGER EP, P0, P1)

     %RECORDFORMAT PF(%BYTEINTEGER SER, REPLY, %INTEGER A1, A2, A3)


==== ercm09/emas-2900/kents1280_namedoclp.txt ====



Oct 1980                             - 1 -


_  ____________
1  Introduction

     A  task has been implemented on the EMAS FEP system to facilitate access to
the ring name server. This task  handles  the  red  tape  of  the  ring  message
formats,  the  allocation  of  reply  ports and retrying the transmissions up to
three times if a reply is not received within 1 or 2 seconds.

     The name server task has name NAME and links in as task 15. The name server
task assumes that the FEP buffer manager task is  handling  the  allocation  and
deallocation  of  buffers. Messages to NAME should include a buffer which in the
most common case of a name lookup request will contain the name whose address is
required. The reply from  NAME  may  or  may  not  include  a  buffer  reference
depending  on  whether  a  reply was received or not from the name server on the
ring.


==== ercm09/emas-2900/b_fsys.txt ====
dimp11 fsys79
link11 /fsys79
fsys79
.stack 300
.streams 0
.stackseg 6
.codeseg 2
.end
fsys79
c fsys79#abs,newsys_fsys79y

==== ercm09/emas-2900/node_rles77.txt ====
! FILE 'RLES'
! RLS/RL A.L. IBBETSON UNIKENT 1979
! for ERCC NODE use - B. Gilmore  25.Feb.81
! DOWN-LINE LOADING VIA RING
! 
! Reads from stream 1.  File in abs loader format
! compatible with card reader - i.e. fixed length 80
! byte records.  Data is scanned for  load block to
! flag termination of file.
!
! I RLS,.TT/RLESY. STREAMS 1. STACK 400
! Copy RLESY into RLESY(0)
!
%CONTROL 1
%include "deimosperm"
%BEGIN
%RECORDFORMAT MEF(%RECORD (MEF) %NAME LINK,%BYTEINTEGER LEN,TYPE,%C
   %INTEGER ADR,%INTEGERARRAY DATA(0:124))
%RECORDFORMAT PE(%BYTEINTEGER SER,REPLY,FN,PORT,%RECORD (MEF) %NAME MES,%C
   %BYTEINTEGER L,S)
%RECORD (PE) P

==== ercm09/emas-2900/ftppd_table.txt ====
/
[LITERALS]
[ATTRIBUTES]
1 PROTID/0
ACCESSMODE/1
TRANSCODE/2
TEXTFORM/3
MAXREC/5
TRANSLIM/6
INITM/11
TIMEOUT/13
FACILITIES/14
TRANSSTATE/15
DATATYPE/32
FILENAME/64
USERNAME/66
USERPASS/68
FILEPASS/69
ACCOUNT/74
ACCPASS/75
FILESIZE/96

==== ercm09/emas-2900/sxmode.txt ====
%externalintegerfn x29call


!
      %recordformat %c
TMODEF(%halfinteger FLAGS1, FLAGS2,
{.04}  %byteinteger PROMPTCHAR, ENDCHAR,
{.06}  %bytearray BREAKBIT1(0:3) {%or %halfintegerarray BREAKBIT2(0:1))} ,
{.0A}  %byteinteger PADS, RPTBUF, LINELIMIT, PAGELENG,
{.0E}  %byteintegerARRAY TABVEC(0:7),
{.16}  %byteinteger CR, ESC, DEL, CAN,
{.1A}  %byteinteger FLAGS, INTERNAL STATE, LEADIN1, LEADIN2, XLO, XHI)
{.20}

!>
!<NNF
      %recordformat %c
NNF(%string(6)NAME, %byteinteger KB, TAG, MARKER, %halfinteger INDNO)
!>
!<DIROWNF
!

==== ercm09/emas-2900/node_parr4s.txt ====
! FILE 'PARR4S'
!*********************
!*    PARR3S/PARR1Y  *
!* DATE: 17.SEP.81  *
!*********************
! NODE 6 VERSION
!STACK = 140

%CONSTINTEGER SECAD = 9

%RECORDFORMAT XXF(%INTEGER DUMMY)
%CONSTRECORD (XXF) %NAME NULL = 0

%CONTROL X'100001';                    ! TRUSTED PROGRAM AND QUICK
                                       ! ROUTINE ENTRY AND EIS


%CONSTSTRING (7) VSN = 'VSN003K'
%BEGIN
     %SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)
     %SYSTEMROUTINESPEC LINKIN(%INTEGER SER)

==== ercm09/emas-2900/b_ftpb.txt ====
prep x25_ftp4s,ftp4s#imp,x,e,m,clean,b
imp11 ftp4s#imp/,l
link11
ftp4s#rel
i77perm
.stack 2000
.streams 1
.name ftps
.end
ftp4xy
disconnect ftp4xy
alist11 ftp4s#imp/.lp23

==== ercm09/emas-2900/kents1280_notes.txt ====
FEP software as of 25:11:80 - using new versions of ITPS,RJES,EAMH and
the 2 segment version of the buffer manager, BUFF3. Points to note are:-


EAM7  Has 'built in' fep number and AM1 address because KENT use early
      version of load program.

RJES8 Modified to 'down' devices that are not available because the 
      remote is u/s. NB does not effect handling of busy devices except
      the open is only repeated every 10 seconds instead of 2.

ITPS8 The queueing of buffers is done in BSPS to gain throughput, however
      ITPS is told when each buffer is acknowledged so that BGs buffer
      control code should still work - not easy to test at KENT.
      Note for SEB's benefit - a frigged version of ITPS to stop students
      logging on in room S.01 is in file ITPS8XXS01.

RING4S Does not take special action when the 'ring down' bit in the interface
      comes up, except to throw away output transfers. THe idea is for BSPS
      to survive a ring reset.


==== ercm09/emas-2900/b_ftpd.txt ====
prep gen_ftpd1s,ftpd1s#imp,n,e,clean
dimp11 ftpd1s#imp
link11 /ftpd1s
ftpd1s
ercm11.imp
.fixup ercm11.imp#fix
.stack 2000
.streams 1
.STACKSEG 6
.end
ftpd1y
destroy ftpd1y
rename ftpd1y#abs,ftpd1y

==== ercm09/emas-2900/erteburr_dvrub2icl.txt ====
;**************************************
;*         BRUN10                     *
;*  INTERFACE BETWEEN HARDWARE AND IMP*
;*  DATE:  23.NOV.79                  *
;**************************************
 
PS=177776; PROCESSOR STATUS WORD
 
IDLEST=-1; SUPERVISOR IDLE FLAG
 
INTVAL=40; DEDICATED LOCATION FOR INTERRUPT NUMBER
ALARMF=44; DITTO - FOR CLOCK
PSECT=46; DITTO - CURRENT PSECT
LASTPS = 54
INTINF=56
 
UPAR=177640
UPDR=177600
 
UPAR0=40; INDEC INTO PSECT
UPDR0=UPAR0+2; DITTO

==== ercm09/emas-2900/ftppd_cons.txt ====



%EXTERNALROUTINE FTPCONS(%STRING(255) FILES)
       %EXTERNALROUTINESPEC CONS(%INTEGER FIGUREBASE, AMBIBASE, %C
         SSBASE, PHRASEBASE, PHRASELIMIT, IDENT, %INTEGERNAME GMAX, %C
         KMAX, %INTEGERARRAYNAME PHRASE, ITEM, NEXT, ATOMIC, MASK, %C
         KEYDICT, INDEX, CHAR)
       %EXTERNALROUTINESPEC DEFINE(%STRING(63) S)
       %STRING(63) GRAFILE, NEWFILE, LISTFILE
       %OWNINTEGER GRA=1;              !IN STREAMS
       %OWNINTEGER ERR=0, NEW=2, GLIST=3, DLIST=3
                                       !OUTSTREAMS
       %OWNINTEGER SSBASE=0, PHRASEBASE=1, FIGUREBASE=1, %C
       IDENT=255, PHRASELIMIT=255, AMBIBASE=255
       %INTEGER GMAX, KMAX
       %INTEGERARRAY CHAR(1:2000), INDEX(0:511)
       %INTEGERARRAY ITEM, NEXT(0:1023), PHRASE(SSBASE:PHRASELIMIT), %C
         ATOMIC, MASK(FIGUREBASE:PHRASELIMIT)
       %INTEGERARRAY KEYDICT(32:511)
       %INTEGER I, J, K, MAX

==== ercm09/emas-2900/b_prt9f.txt ====
imp11 prt9fs/,ll
link11
prt9fs#rel
i77perm
.stack 1000
.streams 0
.name PRT0
.end
prt9fy
list prt9fy,.fep72
alist11 prt9fs/.lp23

==== ercm09/emas-2900/bush83.txt ====

Networks 1983-1993

==================

==== ercm09/emas-2900/erte_ibm1s.txt ====
! FILE 'IBM2S'
!*********************
!*    IBM1S/IBM1Y    *
!* DATE: 10.OCT.80  *
!!!!!!!!!!!!!!!!!!!!!!
!STACK = 140


%RECORDFORMAT XXF(%INTEGER DUMMY)
%CONSTRECORD (XXF) %NAME NULL = 0

%CONTROL X'100001';                    ! TRUSTED PROGRAM AND QUICK
                                       ! ROUTINE ENTRY AND EIS


%CONSTSTRING (7) VSN = 'VSN001K'
%BEGIN
      %PERMROUTINESPEC SVC(%INTEGER EP, R0, R1)
     %SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)
     %SYSTEMROUTINESPEC LINKIN(%INTEGER SER)


==== ercm09/emas-2900/response_fe121jan.txt ====
Node =  80, Term = 80 - 21 Jan 82 fe1
 0
 0
 0
 0
 21
 85
 104
 92
 75
 64
 43
 42
 23
 10
 21
 10
 9
 10
 2
 1

==== ercm09/emas-2900/title.txt ====
@make[article]
@device[x2700]
@style[spacing 1]
@begin[text,topmargin=+1.1inches,leftmargin=+0.25inches,rightmargin=+0.5inches]
blank
@newpage
@majorheading[AN APPRAISAL OF THE ADVANTAGES & DISADVANTAGES
OF USING A PABX FOR DATA TRAFFIC]
@BLANKSPACE[0.5in]
@centre[@b[Brian Gilmore
Communications Manager
Edinburgh Regional Computing Centre
University of Edinburgh]]
@blankspace[1.8in]
     The paper discusses the main advantages and disadvantages of using a
 modern PABX for mixed speech and data traffic.  It comes to the conclusion
 that with the currently available technology it is not economic to use
 such an exchange for extensive data traffic and the paper goes on to look at
 future trends in this area in
 particular the use of PABX/LAN Gateways to ease connection problems.


==== ercm09/emas-2900/b_infoamd.txt ====
! nb: Master on amdahl
prep x25_infos,infos#imp,x,e,m,a,b,i,clean
dimp11 infos#imp
dlink11
infos#rel
.stack 2000
.stackseg 6
.name info
.end
infoxcy
destroy infoamdy
rename infoxcy#abs,infoamdy
alist11 infos#imp,infos#rel/.lp23

==== ercm09/emas-2900/node_parr5s.txt ====
! FILE 'PARR5S'
!*********************
!*    PARR5S/PARR5Y  *
!* DATE: 27.JAN.82  *
!*********************
! NODE 6 VERSION
!STACK = 140

%CONSTINTEGER SECAD = 9

%RECORDFORMAT XXF(%INTEGER DUMMY)
%CONSTRECORD (XXF) %NAME NULL = 0

%CONTROL X'100001';                    ! TRUSTED PROGRAM AND QUICK
                                       ! ROUTINE ENTRY AND EIS


%CONSTSTRING (7) VSN = 'VSN003K'
%BEGIN
     %SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)
     %SYSTEMROUTINESPEC LINKIN(%INTEGER SER)

==== ercm09/emas-2900/chats.txt ====
!TITLE Technical manual
!*******************************************************************************
!*                                                                             *
!*  chat - an EMAS utility to allow users to chat to each other using the 2900.*
!*                                                                             *
!*              Copyright (c) 1982 by James Darby at UKC.                      *
!*              Assembler routines by R.D.Eager   at UKC.                      *
!*                                                                             *
!*                          Version 2.35                                       *
!*                                                                             *
!*                                                                             *
!*******************************************************************************

!< Introduction

!This  is  the source code of the EMAS chat utility. It allows users to hold an
!interactive conference on several terminals on an EMAS 2900  system. Its  main
!features are :-

!      1) Low OCP overhead.
!            The utility uses any a small amount of OCP time.

==== ercm09/emas-2900/log_f1.txt ====
FE1 17.FEB.81 FROM 13.00
RING:     0    0    0    0    0    0    0    0    0    0    0     0 0 0
RING:     0    0    0    0    0    0    0    0    0    0    0     0 0 0
RING:     0    0    0    0    0    0    0    0    0    0    0     0 0 0
RING:     0    0    0    0    0    0    0    0    0    0    0     0 0 0
RING:     0    0    0    0    0    0    0    0    0    0    0     0 0 0
RING:     0    0    0    0    0    0    0    0    0    0    0     0 0 0
RING:     0    0    0    0    0    0    0    0    0    0    0     0 0 0
RING:     5   28    0    0    0    0    1    0   17   28    1     1 1 0
RING:     5   28    0    0    0    0    1    0   17   28    2     1 1 0
RING:   176  221    4    2    0    0    0    4  183  197   31    32 34 0
RING:     8   81    0    0    1    0    1    0   68   73    9    10 10 0
RING:    29  272    8    4    1    0    2    0  214  249   36    39 38 0
RING:     5   38    0    0    0    0    1    0   25   36    3     3 3 0
RING:    13   55    0    0    1    0    2    0   34   56    3     2 2 0
RING:     5   28    0    0    0    0    1    0   17   28    1     1 1 0
RING:    32  306   16    4    1    0    1    0  248  283   43    45 45 0
RING:     0   10    0    0    0    0    0    0    8    8    2     2 2 0
RING:    24   54    0    0    1    0    2    1   34   56    4     2 2 0
RING:     0    0    0    0    0    0    0    0    0    0    0     0 0 0
RING:     5   28    0    0    0    0    1    0   17   28    1     1 1 0

==== ercm09/emas-2900/b_ftpn.txt ====
prep fep_ftp1s,ftp1s#imp,n,e,clean
imp11 ftp1s#imp/,l
link11
ftp1s#rel
i77perm
.stack 1000
.streams 1
.name ftps
.end
ftp1ny

==== ercm09/emas-2900/newsys_load8s.txt ====
!**************
!* load18s  *
!* 14.jun.82  *
!**************


%control x'4001'

%constrecord (*) %name null == 0


!***********************************
!*                                  *
!*       loader  faults             *
!*                                  *
!*   1 -  no core                   *
!*   2 -  init block too long       *
!*   3 -  init block short          *
!*   4 -  checksum wrong            *
!*   5 -  out of range              *
!*   6 -  end of file/ no file      *

==== ercm09/emas-2900/b_ftpp.txt ====
prep ftp1s,,e,n
imp11 ftp1s#p
link11
ftp1s#rel
i77perm
.stack 1000
.streams 1
.name ftps
.end
ftp1y
list ftp1y,.fep72
alist11 ftp1s#p/.lp23

==== ercm09/emas-2900/fecount.txt ====
%const %string (13) vsn="26 JUL 83   1"

%external %integer %fn %spec dprocedure(%integer act, adr)

!     %include "ercc04.pd21s_c03formats"
%constinteger MAXTCPNAME = 15    {TCP-name length}
      %recordformat %C
PROCDATF(%string(6)USER, %string(MAXTCPNAME)TCPNAME, %byteinteger LOGKEY,
      %byteinteger INVOC, PROTOCOL, NODENO, FSYS,
      %integer LOGSNO,
      %byteinteger SITE, REASON, CONSOLE1, CONSOLE2,
      %integer ID, PROCESS, PREV WARN, SESSEND,
      %byteinteger GETMODE, PREEMPT, BLNK, LINK)
!
      %recordformat %c
TMODEF(%halfinteger FLAGS1, FLAGS2,
{.04}  %byteinteger PROMPTCHAR, ENDCHAR,
{.06}  %bytearray BREAKBIT1(0:3) {%or %halfintegerarray BREAKBIT2(0:1))} ,
{.0A}  %byteinteger PADS, RPTBUF, LINELIMIT, PAGELENG,
{.0E}  %byteintegerARRAY TABVEC(0:7),
{.16}  %byteinteger CR,ESC,DEL,CAN, SP1,SP2,SP3,SP4,SP5,SP6)

==== ercm09/emas-2900/test.txt ====
@device(x2700)
@make(report)
@section(one)
vbn
@subsection(one.one)
asd
@subsection(one.two)
dfgh
@subsection(one.three)
jklh
@section(two and last)
fghj

==== ercm09/emas-2900/ss2.txt ====
-5000 -900 -500 -350 -300 -100 0 100 300 350 500 900 5000
2 1 0
0 0 -6 -4 0 0 0 -4
-1 -1 -5 -3 0 0 0 0
0 0 0 -3 -1 0 0 0
0 0 0 0 0 -1 0 0
0 0 3 5 -2 0 0 -1
0 0 0 0 1 0 0 1
1 1 1 2 0 1 0 0
0 4 3 0 0 4 6 0
0
 1  1  1  1  1  1  1  1

==== ercm09/emas-2900/log_f5.txt ====
FEP1 19.FEB.81  13.00
RING:    10  163    6    2    0    0    0    0  133  145   25    26 26 0
RING:     0    0    0    0    0    0    0    0    0    0    0     0 0 0
RING:    13  330   11    1    0    0    0    0  276  290   51    52 52 0
RING:     0    0    0    0    0    0    0    0    0    0    0     0 0 0
RING:     0    0    0    0    0    0    0    0    0    0    0     0 0 0
RING:     0    0    0    0    0    0    0    0    0    0    1     0 0 0
RING:     0    0    0    0    0    0    0    0    0    0    0     0 0 0
RING:     0    0    0    0    0    0    0    0    0    0    0     0 0 0
RING:     0    0    0    0    0    0    0    0    0    0    0     0 0 0
RING:     0    0    0    0    0    0    0    0    0    0    0     0 0 0
RING:     0    0    0    0    0    0    0    0    0    0    0     0 0 0
RING:     0    0    0    0    0    0    0    0    0    0    0     0 0 0
RING:    14   55    0    0    0    1    2    0   34   56    2     2 2 0
RING:    10   56    0    0    0    0    2    0   36   56    2     2 2 0
RING:    80  749   24    6    0    0    1    3  574  680   93   103 103 0
RING:    19  206    4    1    1    0    2    0  158  189   26    26 25 0
RING:    79   83    0    0    0    0    0    4   53   84    3     3 3 0
RING:    18   56    0    0    0    0    1    1   36   56    2     2 2 0
RING:    24   83    0    0    0    1    2    1   53   84    3     3 3 0
RING:   115  127    6    2    0    0    1    5  100  129   13    11 12 0

==== ercm09/emas-2900/b_ftpr.txt ====
new
prep x25gen_ftpd3s,ftpd3s#imp,r,g,clean
dimp11 ftpd3s#imp
link11 /ftpd3s
ftpd3s#rel
.stack 2000
.streams 3
.stackseg 6
.end
ftpg3s
c ftpg3s#abs,ftpr1y
c ftpr1y,ftpg1y
destroy ftpg3s#abs
list ftpg1y,.fep72
alist11 ftpd3s#imp
list ftpd3s#lst,.lp23

==== ercm09/emas-2900/teledata.txt ====
 BASE:LIST ALL

 BASE: 

 0368  EI00  EI01 50 
 PS01  X25   B    16  EXT   SABM 30 30 7 2 4 4 0  NORM 120 20 
 PS02  X25   B    20  EXT   SABM 30 30 7 2 0 4 0  NORM 120 20 
 PS03  X25   B    100  EXT   SABM 30 30 7 2 0 4 0  NORM 120 20 
 PS04  X25   B    20  EXT   SABM 30 30 7 2 0 4 0  NORM 120 20 
 PS05  X25   B    200  EXT   SABM 30 30 7 2 0 4 0  NORM 120 20 
 PS06  X25   B    100  EXT   SABM 30 30 7 2 0 4 0  NORM 120 20 
 PS07  X25   B    100  EXT   SABM 30 30 7 2 0 4 0  NORM 120 20 
 PS08  X25   B    16  EXT   SABM 30 30 7 2 0 4 0  NORM 120 20 
 XXXX  NULL  B    1  NONE  SABM 30 10 7 2 0 0 0  NORM 5 20 
 XXXX  NULL  B    1  NONE  SABM 30 10 7 2 0 0 0  NORM 5 20 
 XXXX  NULL  B    1  NONE  SABM 30 10 7 2 0 0 0  NORM 5 20 
 XXXX  NULL  B    1  NONE  SABM 30 10 7 2 0 0 0  NORM 5 20 
 XXXX  NULL  B    1  NONE  SABM 30 10 7 2 0 0 0  NORM 5 20 
 XXXX  NULL  B    1  NONE  SABM 30 10 7 2 0 0 0  NORM 5 20 
 XXXX  NULL  B    1  NONE  SABM 30 10 7 2 0 0 0  NORM 5 20 
 XXXX  NULL  B    1  NONE  SABM 30 10 7 2 0 0 0  NORM 5 20 

==== ercm09/emas-2900/log_f6.txt ====
FEP 1  23.FEB.81  13.00 ONWARDS
RING:    18   55    0    0    0    0    1    2   37   56    3     2 2 0
RING:    10   56    0    0    0    0    2    0   36   56    2     2 2 0
RING:    13   56    0    0    0    0    1    1   36   56    2     2 2 0
RING:    25   82    0    0    1    0    3    1   53   84    3     3 3 0
RING:    16   83    0    0    2    0    2    0   53   84    3     3 3 0
RING:    10   56    0    0    0    0    2    0   36   56    2     2 2 0
RING:    60   80    0    1    0    0    1    5   53   84    3     3 3 0
RING:     5   28    0    0    0    0    1    0   18   28    2     1 1 0
RING:     0    0    0    0    0    0    0    0    0    0    0     0 0 0
RING:     0    0    0    0    0    0    0    0    0    0    0     0 0 0
RING:     0    0    0    0    0    0    0    0    0    0    0     0 0 0
RING:     0    0    0    0    0    0    0    0    0    0    0     0 0 0
RING:     0    0    0    0    0    0    0    0    0    0    0     0 0 0
RING:     3   28    0    0    1    0    0    0   17   28    1     1 1 0
RING:     5   28    0    0    0    0    1    0   17   28    1     1 1 0
RING:     5   28    0    0    0    0    1    0   17   28    1     1 1 0
RING:     0    0    0    0    0    0    0    0    0    0    0     0 0 0
RING:     7   27    0    1    0    0    1    0   17   28    1     1 1 0
RING:    14   26    0    1    0    0    1    1   17   28    1     1 1 0
RING:     8   27    0    0    1    0    1    0   17   28    1     1 1 0

==== ercm09/emas-2900/log26nov82.txt ====
26/11/82  00:00:05 N006T000  6 19 156 156 35 0 171 125 32 4 7 9 5
26/11/82  00:00:10 N006T000  6 19 156 156 33 0 181 132 32 4 7 9 5
26/11/82  00:00:10 N009T000 NIF LN 20 2 20 131 135 156 50 156 9 78 18
26/11/82  00:00:10 N009T000  10 5 78 78 18 665 10 455 74 566 5
26/11/82  00:00:10 N009T000  6 20 156 156 2 0 182 4 32 4 7 9 5
26/11/82  00:00:10 N006T000  6 19 156 156 34 9 182 134 32 4 7 9 5
26/11/82  00:00:25 N009T000  6 3 80 80 17 72 72 15 32 216 0 25 13
26/11/82  00:00:25 N009T000  6 17 72 72 15 0 15 255 32 436 0 49 46
26/11/82  00:00:30 N009T000  6 17 72 72 15 0 15 27 32 1 0 1 1
26/11/82  00:00:30 N006T000  6 19 156 156 61 72 3 146 32 4 7 9 8
26/11/82  00:00:35 N006T000  3 33 6 1 5047 355 66 257 45 106 8 5896 603 512 10 57 752 2536 491 153 443 10 966
26/11/82  00:00:40 N009T000  6 20 156 156 17 0 75 34 32 4 7 9 5
26/11/82  00:00:40 N006T000  6 19 156 156 34 9 75 153 32 4 7 9 5
26/11/82  00:00:40 N009T000  6 3 80 80 15 0 15 47 32 1 0 1 1
26/11/82  00:00:45 N009T000  6 20 156 156 21 90 90 39 32 5 7 9 5
26/11/82  00:00:45 N006T000  6 19 156 156 34 90 90 158 32 5 7 9 5
26/11/82  00:00:45 N009T000  6 20 156 156 3 0 180 44 32 4 7 9 5
26/11/82  00:00:45 N006T000  6 19 156 156 34 9 180 162 32 4 7 9 5
26/11/82  00:00:55 N009T000  6 3 80 80 15 0 15 60 32 1 0 1 1
26/11/82  00:00:55 N006T000  6 33 80 80 32 0 23 175 32 1 0 1 1
26/11/82  00:01:25 N009T000  3 25 9 22 394 12586 695 6041 348 1276 44 19414 2236 4597 651 318 2808 0 0 0 0 0 0

==== ercm09/emas-2900/node_parr6s.txt ====
! FILE 'PARR6S'
!*********************
!*    PARR6S/PARR6Y  *
!* DATE: 07.FEB.83  *
!*********************
! NODE 6 VERSION
!STACK = 140

%CONSTINTEGER SECAD = 9

%RECORDFORMAT XXF(%INTEGER DUMMY)
%CONSTRECORD (XXF) %NAME NULL = 0

%CONTROL X'100001';                    ! TRUSTED PROGRAM AND QUICK
                                       ! ROUTINE ENTRY AND EIS


%CONSTSTRING (13) VSN = "VSN006A
"

%BEGIN

==== ercm09/emas-2900/b_ftpx.txt ====
prep x25_ftp4s,ftp4s#imp,x,e,m,clean
imp11 ftp4s#imp/,l
link11
ftp4s#rel
i77perm
.stack 2000
.streams 1
.name ftps
.end
ftp4xy
disconnect ftp4xy
alist11 ftp4s#imp/.lp23

==== ercm09/emas-2900/inc_itpint.txt ====
!           ITP /TASK INTERFACE MESSAGES
!
%CONSTINTEGER LOGON=1
%CONSTINTEGER DATA IN=2
%CONSTINTEGER INT IN=3
%CONSTINTEGER ILLEGAL MESSAGE=4
%CONSTINTEGER SEND DATA=5
%CONSTINTEGER DATA OUT=6
%CONSTINTEGER SEND PROMPT=7
%CONSTINTEGER TIMEOUT=8
%CONSTINTEGER LOGOFF=9
%CONSTINTEGER SETMODE=10
%CONSTINTEGER CHANGE TASK=11
%ENDOFFILE

==== ercm09/emas-2900/rl04s.txt ====
!************
!*  RL04S   *
!*06.FEB.80*
!************
!* UNIT 4 ADDED

%CONTROL K'100001';                    ! 'SYSTEM' PROGRAM+MUL+TRUSTED

%BEGIN
     %SYSTEMINTEGERFNSPEC GETID
     %SYSTEMROUTINESPEC LINKIN(%INTEGER SER)
     %SYSTEMROUTINESPEC MAPHWR(%INTEGER SEGS)

     %RECORDFORMAT PF(%BYTEINTEGER SERVICE, REPLY, %INTEGER A1, A2, A3)
     %RECORDFORMAT P2F(%INTEGER D)

     %RECORDFORMAT RLF(%INTEGER CS, BA, DA, MP)
     %CONSTRECORD (RLF) %NAME RL = K'114400'
     %CONSTINTEGERNAME PS = K'117776'

     %CONSTINTEGER RLTOP = 10239

==== ercm09/emas-2900/netsig485.txt ====
Edinburgh Regional Computing Centre

Edinburgh University


                      Networks Special Interest Group

                      Calling Notice and Agenda


                                                            issued by
                                                            Brian Gilmore
                                                            20th April 1985


   You are invited to attend a meeting of NETSIG to be held on Wednesday
15th May in the Halls of Residence, University College, London.

The meeting will start at 10.30am

AGENDA

==== ercm09/emas-2900/cursorlyns.txt ====


!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!        PERKIN ELMER CURSOR ADDRESSING ROUTINES

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

%EXTERNALROUTINESPEC PROMPT(%STRING (15) S)
%CONSTINTEGER ESC = 27


%EXTERNALROUTINE PEHOME
PRINTCH(12)
%END


%EXTERNALROUTINE PECLEAR
   PRINTCH(1)
%END


==== ercm09/emas-2900/b_tolp23.txt ====
e fsaves/temp
f/doch/t/"/u/"/i.//DOC DEST=LP23,USER=ERCM09
F/SW(1):/t/=/e0i/doch.tostring(10)
f/prompt("rem/p
k6
%c
imp11 temp/,ll
link11
temp#rel
i77perm
.stack 1000
.streams 1
.name tolp
.end
tolp23y
alist11 temp/.lp23

==== ercm09/emas-2900/logfile.txt ====
06/09/82  08:17:40 N006T000  6 7 156 156 27 72 9 5 32 4 7 9 8
06/09/82  08:17:40 N009T000  6 20 156 156 29 72 9 63 32 4 7 9 8
06/09/82  08:17:40 N009T000  6 20 156 156 17 0 75 70 32 4 7 9 5
06/09/82  08:17:40 N006T000  6 7 156 156 27 9 75 10 32 4 7 9 5
06/09/82  08:17:45 N009T000  6 20 156 156 5 78 78 78 32 5 14 11 10
06/09/82  08:17:45 N006T000  6 26 80 80 20 0 33 247 32 280 0 31 30
06/09/82  08:17:45 N006T000  6 7 156 156 27 78 78 18 32 5 14 11 10
06/09/82  08:18:00 N006T000  6 26 80 80 27 90 90 23 32 25 0 4 1
06/09/82  08:18:00 N009T000  6 20 80 80 21 90 90 81 32 25 0 4 1
06/09/82  08:18:05 N006T000  6 26 80 80 20 0 33 22 32 287 0 33 33
06/09/82  08:18:10 N009T000  6 29 72 72 21 90 90 94 32 146 0 11 6
06/09/82  08:18:50 N006T000  6 7 156 156 27 72 5 52 32 7 13 12 11
06/09/82  08:18:55 N009T000  6 20 156 156 29 72 5 111 32 7 13 12 11
06/09/82  08:19:05 N006T000  6 26 80 80 20 0 33 44 32 282 0 31 30
06/09/82  08:19:15 N006T000  6 7 156 156 26 0 181 72 32 4 7 9 5
06/09/82  08:19:15 N009T000  6 20 156 156 21 90 90 128 32 5 7 9 5
06/09/82  08:19:15 N006T000  6 26 80 80 20 0 33 66 32 278 0 31 30
06/09/82  08:19:15 N009T000  6 20 156 156 2 0 182 136 32 4 7 9 5
06/09/82  08:19:15 N009T000  6 20 156 156 3 0 180 143 32 4 7 9 5
06/09/82  08:19:15 N006T000  6 7 156 156 27 90 90 81 32 5 7 9 5
06/09/82  08:19:15 N006T000  6 26 80 80 20 0 33 86 32 278 0 31 30

==== ercm09/emas-2900/ednet0485.txt ====
{{circle(23,11.5,.5)}}
{{INLABEL(.18,"EML")}}
{{circle(31.5,3,0.6)}}
{{INLABEL(.18,"N6")}}
{{circle(31.5,4.5,.75)}}
{{inlabel(.18,"RING@b")}}
{{inlabel(.12,"@b@bN72")}}
{{circle(10,21.7,3)}}
{{circle(10,4,3)}}
{{CIRCLE(28,9.5,0.5)}}
{{inlabel(.14,"Fe4@bT3")}}
{{CIRCLE(23,10.5,0.5)}}
{{inlabel(.14,"Fe1")}}
{{CIRCLE(23,9.5,0.5)}}
{{inlabel(.14,"Fe2")}}
{{CIRCLE(23,3,0.5)}}
{{inlabel(.14,"Fe2")}}
{{CIRCLE(30.5,21.7,1.5)}}
{{INLABEL(.14,"JANET@bPSE")}}
{{CIRCLE(23,7,.5)}}
{{inlabel(.14,"Fe1")}}

==== ercm09/emas-2900/kents_itps7.txt ====



!********************************
!*  EMAS-2900  FEP  ITP SERVER  *
!*   FILE: ITPS7/ITPS7Y         *
!*   DATE: 30.APR.80 16.10       *
!********************************
!MODIFIED FOR RING USING BYTE STREAM PROTOCOL INSTEAD OF NSI
!
!! STACK SIZE = 500

%SYSTEMROUTINESPEC MAP HWR(%INTEGER SEG)

%RECORDFORMAT DMF(%INTEGER I)

%CONSTRECORD (DMF) %NAME NULL = 0


%CONTROL K'100001'


==== ercm09/emas-2900/ednet0486.txt ====
{{circle(23,11.5,.5)}}
{{INLABEL(.14,"Fe4")}}
{{circle(11,16,1.5);inlabel(.2,"TelePAC@b15003000")}}
{{circle(31.5,4.5,0)}}
{{circle(13,21.7,2.5);inlabel(.35,"KB-CPSE@bGEC 4190@b")}}
{{inlabel(.14,"@B@B@b@b000015000000")}}
{{circle(13,4,2.5);inlabel(.35,"AT-CPSE@bGEC 4190@b")}}
{{inlabel(.14,"@B@B@b@b000016000000")}}
{{CIRCLE(23,2.8,0.5);inlabel(.14,"Fe3")}}
{{CIRCLE(23,10.5,0.5);inlabel(.14,"Fe1")}}
{{CIRCLE(23,9.5,0.5);inlabel(.14,"Fe2")}}
{{CIRCLE(23,3.8,0.5);inlabel(.14,"Fe2")}}
{{CIRCLE(32.5,21.7,1.5);INLABEL(.14,"JANET@bPSE")}}
{{CIRCLE(23,7.3,.5);inlabel(.14,"Fe2")}}
{{circle(12.75,24.8,.1);fill(c12)}}
{{circle(14.75,24.8,.1);fill(c13)}}
{{circle(16.75,24.8,.1);fill(c14)}}
{{circle(20.75,25.2,0)}}
{{circle(6.75,25.2,0)}}
{{CIRCLE(6.75,1.4,0)}}
{{circle(8.75,1.4,0)}}

==== ercm09/emas-2900/ll4_servic.txt ====
$A LINE=42; LEFT=2; SGAP=2; PGAP=0; JUST=1
$A TAB=4; INDENT=0
$A CAP=0; UNDSH=0; UND=0; CAPO=0; UNDSHO=0; UNDO=0
$A INVERT=0; INVO=0
$l1cm
save our services
$p2 Only a few days before the announcement of the General Election the
Tory Secretary of State for Scotland announced that it was his intention to 
take out an order in Parliament to force Lothian Region to cut its spending
by #15 million. If the Tories win the election LOCAL services will suffer.
$p2 A #15 Million cut in Lothians spending will mean:
$a tab=22; indent=1
$b1$c-21For the Elderly: $t1$c-2 An end to free travel
$b0$c-2 Fewer Home Helps
$b0$c-2 Charges for Home Helps, Lunch clubs up again
$b2$c-21For Education: $t1$c-2 Fewer teachers meaning larger classes
$b0$c-2 Nursery places becoming more difficult to get
$b0$c-2 Badly kept schools as cleaning and maintainence staff are reduced
$b2$c-21 To Voluntary $b0 $c-15 Agencies: $t1 $c-2 Grants to organisations
such as youth clubs and those providing services for the elderly and housebound
will face drastic cuts.

==== ercm09/emas-2900/sys_tu58s.txt ====
!* VERSION FOR UNIT 2 & 3 DEV MACHINE ONLY  (SEE ADDRESS)
!************
!*  TU58S   *
!*31.OCT.80*
!* UNIT 2   *
!* VERSION  *
!************
!* UNIT 4 ADDED

%CONTROL K'100001';                    ! 'SYSTEM' PROGRAM+MUL+TRUSTED

%BEGIN
     %SYSTEMINTEGERFNSPEC GETID
     %SYSTEMROUTINESPEC LINKIN(%INTEGER SER)
      %SYSTEMINTEGERFNSPEC MAP ABS(%INTEGER ADR, LEN, REQ ID)
     %PERMINTEGERFNSPEC SVC(%INTEGER EP, R0, R1)
     %SYSTEMINTEGERFNSPEC MAP VIRT(%INTEGER WHO, HSEG, MYSEG)
     %SYSTEMROUTINESPEC MAPHWR(%INTEGER SEGS)

     %RECORDFORMAT PF(%BYTEINTEGER SERVICE, REPLY, %INTEGER A1, A2, A3)
     %RECORDFORMAT P2F(%INTEGER D)

==== ercm09/emas-2900/b_dpal.txt ====
imp11 gen_dpal8s/dpal8s#rel,ll
link11
dpal8s#rel
i77perm
.stack 2400
.streams 1
.end
dpal8y
alist11 dpal8s/.lp23

==== ercm09/emas-2900/fepb_itps7.txt ====



!********************************
!*  EMAS-2900  FEP  ITP SERVER  *
!*   FILE: ITPS7/ITPS7Y         *
!*   DATE: 30.APR.80 16.10       *
!********************************
!MODIFIED FOR RING USING BYTE STREAM PROTOCOL INSTEAD OF NSI
!
!! STACK SIZE = 500

%SYSTEMROUTINESPEC MAP HWR(%INTEGER SEG)

%RECORDFORMAT DMF(%INTEGER I)

%CONSTRECORD (DMF) %NAME NULL = 0


%CONTROL K'100001'


==== ercm09/emas-2900/sys_lkdl2s.txt ====

!****************
!* LKDL2S/LKDL2Y *
!* DATE: 18.FEB.80  *
!* HANDLES DIRT&DISC *
!* REQUESTS BY SENDING *
!* THEM DOWN A DL11    *
!***********************
%CONTROL K'101011';                    ! 'SYSTEM' PROGRAM (FAST
                                       ! ROUTINE ENTRY/EXIT)
%PERMINTEGERFNSPEC SVC(%INTEGER EP, P1, P2)
%SYSTEMROUTINESPEC LINKIN(%INTEGER SEG)
%SYSTEMROUTINESPEC MAPHWR(%INTEGER SEG)
%SYSTEMINTEGERFNSPEC GETID


%BEGIN

     %SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)
     %RECORDFORMAT PF(%BYTEINTEGER SER, REPLY, %INTEGER A, B, C)
     %RECORDFORMAT P2F(%INTEGER D)

==== ercm09/emas-2900/b_gecstr.txt ====
prep gen_gecgrab,gecgrab#imp,f,m,s
imp11 gecgrab#imp/,l
link11
gecgrab#rel
i77perm
.stack 2000
.streams 2
.end
gecstry

==== ercm09/emas-2900/slide3.txt ====
{{box(0,0)(8,8);inlabel(.4,"Physical")}}
{{box(0,8)(8,16);inlabel(.4,"Data Link")}}
{{box(0,16)(8,24);inlabel(.4,"Network")}}
{{box(9,0)(17,8)}}
{{box(9,8)(17,16);inlabel(.4,"Lap-B")}}
{{box(9,16)(17,20);inlabel(.4,"X25(1980)")}}
{{box(9,20)(17,24);inlabel(.4,"Yellow Book")}}
{{box(18,0)(26,8)}}
{{box(18,8)(26,16);inlabel(.4,"X25(1984)-L2")}}
{{box(18,16)(26,24);inlabel(.4,"x25(1984)-L3")}}
{{label(2,25,.4,0,"Transition to ISO Network Layer")}}

==== ercm09/emas-2900/inc2_formats.txt ====
%constinteger hdrl = 8                                         ;! Length of dummy area before data field
%recordformat qf(%record (qf) %name link, %integer count)
%recordformat x25f(%byte octet1, lcn, fn, %bytearray a(0:255))
%recordformat mef(%record (mef) %name link, %byte l,type, %c
   (%bytearray a(0:251) %or (%string(4) padding, %byte octet1, lcn, fn, %c
   (%bytearray data(0:243) %or %string(250) s ))))

%recordformat pf(%byte ser, reply, %c
   ((%byte fn, %byte s1 , %c
   ((%record (mef) %name m, %byte gate port , task port) %c
     %or %string(3) facility)) %c
     %or (%byte a1, a2, b1, b2, c1, c2) %or (%integer a, b, c) %c
     %or (%byte j1, process, j2, j3, len, j4)))

%recordformat cvf((%byte l, (%byte reason, cause, diags, %bytearray our ct(0:3), our segs(0:7),pss ct(0:3), pss segs(0:7)) %c
                         %or %bytearray a(0:26)) %c
               %or %string(27) s)

%endoffile

==== ercm09/emas-2900/jtmp.txt ====


JTMP

====

(Background only)

There are currently four known sites working on JTMP, they are:-

          Salford      Fortran/Mainframe
          ULCC         BCPL/Stand alone
          Bristol      C/Unix (with York FEP)
          UWIST        ?/VMS  (just starting)

The Salford implementation is the only 'host' one, the others are workstations
or workstation converter in the case of ULCC.
Currently, only the Salford implementation on the Amdahl and the ULCC version
can communicate to each other, the reason being that they have implemented
on top of a 'special' protocol to traverse the network.  Bristol has 
implemented on top of FTP (as it should be done) although they have had to
mod the York FTP to do so.  Bristol cannot finish the software as Salford

==== ercm09/emas-2900/slide4.txt ====
$a device=x2700
$d1 :cosmos12b:
$d2 :cosmos14:
$a tab=1",3",4",5",6"
$a left=5
$5
$l0
ISO Standards

Files:        IS in late 1986
Jobs:         IS in late 1987
Terminals:    IS in 1987
Case:         IS in 1987
Presentation: IS in 1986
Session:      IS now
Transport:    IS now
Network:      IS now


==== ercm09/emas-2900/response_infodec22.txt ====


Node =  156, Term = 156
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0

==== ercm09/emas-2900/b_deimosspecs.txt ====
!  Deimos specs for Imp11 v8.7

%externalroutinespec set prio %alias "$SETPRIORITY"(%integer prio)
%externalbytemapspec id
%externalbytemapspec own id %alias "ID"
%externalbytemapspec int %alias "INTCHAR"
%externalintegerfnspec map virt %alias "$FMAPVIRT"(%integer id, fromseg, toseg)
%externalintegerfnspec map psect %alias "$MAPPSECT"(%integer task, toseg)
%externalintegerfnspec time %alias "$TIME"
%externalroutinespec terminate
%externalroutinespec use tt(%integer ser)
%constinteger t3 ser = 21;               ! common output handler service number
%constrecord (*) %name null == 0
%endoffile

==== ercm09/emas-2900/kmc11_kexts.txt ====
%EXTERNALSTRING(4)%ARRAY BUS0(0:15)="ADR0","ADR1","ADR2","ADR3",
   "ADR4","ADR5","ADR6","ADR7","USR0","USR1","USR2","USR3",
   "USR4","USR5","USR6","USR7"
%EXTERNALSTRING(4)%ARRAY BUS1(0:15)="CSR0","CSR1","CSR2","CSR3",
   "CSR4","CSR5","CSR6","CSR7","NPR","MISC","?"(*)
%EXTERNALSTRING(5)%ARRAY IF(2:7)="C","Z","BRG.0","BRG.1","BRG.4","BRG.7"
%EXTERNALSTRING(3)%ARRAY ISO(0:31)="NUL","SOH","STX","ETX","EOT","ENQ",
   "ACK","BEL"," BS"," HT"," NL"," VT"," FF"," CR"," SO"," SI",
   "DLE","DC1","DC2","DC3","DC4","NAK","SYN","ETB","CAN"," EM","SUB",
   "ESC"," FS"," GS"," RS"," US"

%EXTERNALROUTINE HEX(%INTEGER DATA)
%INTEGER I,J
%CYCLE I=12,-4,0
   J=DATA>>I&15
   %IF J<10 %THEN PRINT SYMBOL(J+'0') %ELSE PRINT SYMBOL(J-10+'A')
%REPEAT
%END

%EXTERNALROUTINE OCTAL(%INTEGER DATA)
%INTEGER I

==== ercm09/emas-2900/b_bou.txt ====
imp11 bounce/,ll
link11
bounce#rel
i77perm
.stack 1000
.streams 1
.end
bouncey

==== ercm09/emas-2900/ednet1086.txt ====
{{circle(26,11.5,.5)}}
{{INLABEL(.14,"Fe3")}}
{{circle(9.5,17,1.5);inlabel(.2,"TelePAC@b15003000")}}
{{join(c1,c2)}}
{{circle(8.2,13.3,1.3);inlabel(.175,"TelePAC 2@b15005000")}}
{{circle(13,21.7,2);inlabel(.3,"KB-CPSE@bGEC 4190@b")}}
{{inlabel(.14,"@B@B@b@b000015000000")}}
{{circle(13,4,2);inlabel(.3,"AT-CPSE@bGEC 4190@b")}}
{{inlabel(.14,"@B@B@b@b000016000000")}}
{{CIRCLE(26,2.8,0.5);inlabel(.14,"Fe4")}}
{{CIRCLE(26,10.5,0.5);inlabel(.14,"Fe1")}}
{{CIRCLE(26,9.5,0.5);inlabel(.14,"Fe2")}}
{{CIRCLE(26,3.8,0.5);inlabel(.14,"Fe2")}}
{{CIRCLE(32.5,21.7,1.5);INLABEL(.14,"JANET@bPSE")}}
{{CIRCLE(26,7.3,.5);inlabel(.14,"Fe2")}}
{{circle(12.75,24.8,.1);fill(c12)}}
{{circle(14.75,24.8,.1);fill(c13)}}
{{circle(16.75,24.8,.1);fill(c14)}}
{{circle(20.75,25.2,0)}}
{{circle(6.75,25.2,0)}}
{{CIRCLE(6.75,1.4,0)}}

==== ercm09/emas-2900/elect2s.txt ====
%BEGIN
%INTEGERARRAY LAB,CON,LIB(1:63)
%INTEGERARRAY SNP,IND,TOTA(1:63)
%INTEGERARRAY MAJ,INDX(1:63)
%REALARRAY PC(1:63)
%OWNREAL P1,P2
%OWNINTEGER I,J,K,L,C,B,S,NUM,TOT,INDEX

%ROUTINE READ LINE
  %INTEGER I
   %CYCLE
      READSYMBOL(I); PRINTSYMBOL(I)
      %EXIT %IF I=NL
   %REPEAT
%END

%INTEGERFN READ CAND
      %INTEGER I,J,K
   READSYMBOL(I)
   %IF I='*' %THEN SKIPSYMBOL %AND %RESULT = 0
   READ(J) %UNLESS I = 'P'

==== ercm09/emas-2900/statsreh.txt ====

Dump GEC logfile  Version  1.2

Log:ACCNTS.GKB840829
 To:L3




    No.       Time

 82745   23:44:17  Link   LAU26      Frms (RX/TX):   2642   2552, Calls:   71    3, Bytes:  25501  99503 da 1-3 545 11 0
 Max Bf: 3375 Cur Bf: 2848 Vcs   76 Min Bf: 2845 Req Dl:    0


         24:00:00  Date:    27/  8/ 1984   0000

         24:00:00  Date:     0/  1/ 1972   0137  1797   00:32:41  Link   LAU26      Frms (RX/TX):      0      0, Calls:    0    0, Bytes:     56     56 da 1-3 0 0 0
 Max Bf: 3375 Cur Bf: 2847 Vcs   74 Min Bf: 2841 Req Dl:    0
  3644   01:05:49  Link   LAU26      Frms (RX/TX):      0      0, Calls:    0    0, Bytes:    112    112 da 1-3 0 0 0
 Max Bf: 3375 Cur Bf: 2844 Vcs   85 Min Bf: 2837 Req Dl:    0

==== ercm09/emas-2900/b_inv.txt ====
prep invaders,inv#imp,d
imp11 inv#imp
link11 /map
inv#rel
i77perm
.stack 4000
.end
invy

==== ercm09/emas-2900/b_xprotbm.txt ====
EDIT x25_XPROT3s,T#B
TA/198/A1STM/Versi/f<X>KZ(r/Running/i<X>i/ (Mon)/p1)2
E
prep t#b,xprotb#imp,Q
IMP11 xprotb#IMP/xprotb#REL,xprotb#lst

LINK11
ERCM09.I77PERM
xprotb#REL
.STACK 2000
.STREAMS 1
.NAME xpr1b
.END
xpr1b#OBJ
destroy xpr1by
rename xpr1b#obj,xpr1by
alist11 xprotb#imp/l2
list l2,.lp23

==== ercm09/emas-2900/bridges.txt ====
%CONTROL K'100001'
%BEGIN
%RECORDFORMAT PF(%BYTEINTEGER SER, REPLY, %INTEGER A, B, C)

%ROUTINE BSP(%RECORD (PF) %NAME PQ)



!********************************
!*    EMAS-2900   BSP INTERFACE *
!*                    HANDLER     *
!*      FILE: BSP4S              *
!*        18:3:80                *
!*********************************
!!  STK = 300,  STRM = 1


%SYSTEMROUTINESPEC LINKIN(%INTEGER SER)
%SYSTEMROUTINESPEC MAP HWR(%INTEGER SEG)
%SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)


==== ercm09/emas-2900/docum_dfaults.txt ====
$A INVERT=0; INVO=0
$A LINE=76; PAGE=0; MARK=2
$A CAP=0; CAPO=0; CAPSH=0; CAPSHO=0
$A TAB=4,8,12,16,20,24,28,32,36,40,44,48,52,56,60,64,68
$L1M
DEIMOS
$B2$T0%Fault$ Messages
$P1There are three main classes of fault messages output by 
DEIMOS, they are
$A INDENT=3
$B1$T3$C-3 1)$T3Compiler run time messages
$B0$T3$C-3 2)$T3Loader error messages
$B0$T3$C-3 3)$T3System detected error messages.
$A INDENT=1
$B2$T0 1)$T1Compiler run time messages.
$P1These messages are produced when the compiler run time support
 code detects an error.  The program is stopped and the error number 
is returned to the %task$ which$ started$ the$ program$ up.  This task will 
normally be the loader and the error message is produced in the form:
$B1$T2F A U L T n
$B1$T1where 'n' has the following values.

==== ercm09/emas-2900/elect3s.txt ====
%externalroutine elect(%string (255) str)
%externalroutinespec define(%string (255) s)
%integerarray lab,con,lib(0:63)
%integerarray snp,ind,tota, hold(0:63)
%integerarray maj,indx(0:63)
%ownintegerarray look up(1:62) = %c
57, 4, 3, 16, 55, 17, 27, 53, 30, 62, 29, 5, 37, 24, 56, 54,
12,60, 9, 20, 39, 42, 59, 18, 58, 2, 28, 34, 19, 50, 52, 47, 46, 35, 48,
44, 8, 23, 11, 25, 61, 14, 31, 13, 6, 7, 45, 51, 1, 41, 49, 38, 33, 32,
22, 21, 36, 26, 15, 40, 10, 43
%string (25) %array names(0:63)
%ownintegerarray res(1:62, 1:10)
%ownbyteintegerarray labl(1:10) = 12, 10, 9, 8, 6, 5, 4, 3, 2, 1
%ownbyteintegerarray conl(1:10) = 16, 14, 12, 10, 8, 6, 5, 4, 3, 2

%ownstring (3) %array ps(1:5) = %c
      "Lab", "Con", "Lib", "Snp", "Ind"
%realarray pc(0:63)
%ownreal p1,p2
%owninteger this one
%string (255) ss

==== ercm09/emas-2900/node_nlp3s.txt ====
!**********************
!* nlps/nlpy       *
!* nb: Uses New Compiler
!* date: 26.jul.80   *
!*********************
%conststring (15) vsn = "nlps...vsn3a
"
!! stack = 400, streams = 3


%recordformat xf(%byteinteger unit,fsys,%byteintegerarray fname(0:5))

%include "b_deimosspecs"

%begin

      %externalroutinespec open output(%integer str, %string (255) s)

      %constinteger control ser = 11

%recordformat rjef(%byteintegerarray data(0:239))

==== ercm09/emas-2900/newsys_btt7s.txt ====
! file 'btt7s'
!**************
!*  btt7s     *
!*da:24.feb.81*
!**************

%control X'4001'
%externalintegerfnspec map virt %alias "$FMAPVIRT"(%integer id, fromseg,toseg)

%begin

     %recordformat pf(%byteinteger service, reply, %c
        %integer a1, a2, a3)
     %recordformat ttf(%integer kbs, kbd, tts, ttd)
     %recordformat buff(%integer pt, last, (%bytearrayname b %or %c
         %integer arraypt))

     %constrecord (*) %name null == 0


     %constinteger rubout=k'177'

==== ercm09/emas-2900/b_dpalnew.txt ====
e gen_dpal8s/temp
f/deimosperm/s/b_deimosspecs/
%c
imp11 temp/,ll
link11
temp#rel
ercm11.newimp
.stack 2400
.streams 1
.end
dpal8y
alist11 temp/.lp23

==== ercm09/emas-2900/supnew.txt ====
!***********
!* sup010  *
!*05.mar.82*
!***********

%control x'4001'
%externalroutinespec push(%record(*)%name q,%record(*)%name m)
%externalrecord(*)%mapspec pop(%record(*)%name q)
%constrecord (*) %name null == 0

%recordformat dummy(%integer x)


%begin
     %constinteger task low limit=30
     %constinteger task limit=75
     %constinteger free cells=80
     %constinteger no of services=task limit
     %constinteger frag no=15
     %constinteger psect length=48
     %constinteger svc limit=23

==== ercm09/emas-2900/newsys_cli1s.txt ====
! file 'cli1s'
!**************
!* cli1s      *
!* 26.feb.81  *
!**************


%control 1

%recordformat dumrec(%integer x)
%constrecord (*) %name null == 0

%externalintegerfnspec map virt %alias "$FMAPVIRT"(%integer id, fromseg,toseg)


%begin
     %constinteger delete = 5
     %constinteger schedule t = 9
     %constinteger map psect = 16
      %constinteger r0=0,r1=1,r2=2,r3=3


==== ercm09/emas-2900/inc_vt100.txt ====
      %CONSTINTEGER ATTOFF=1;           !ATTRIBUTES OFF
      %CONSTINTEGER BOLD=2
      %CONSTINTEGER UNDER=4
      %CONSTINTEGER BLINK=8
      %CONSTINTEGER NEGAT=16
!
      %CONSTSTRING(2) TOPH="#3"
      %CONSTSTRING(2) BOTH="#4"
      %CONSTSTRING(2) DOBW="#6"
%ENDOFFILE

==== ercm09/emas-2900/b_det23.txt ====
out=lp23
name=what a drag
.end

==== ercm09/emas-2900/sys_sup009.txt ====
!***********
!* SUP009  *
!*03.NOV.80*
!***********

%CONTROL K'111011';       ! MUL+TRUSTED

%PERMROUTINESPEC SVC
%PERMINTEGERMAPSPEC INTEGER(%INTEGER X); ! USED IN INIT
%RECORDFORMAT DUMMY(%INTEGER X)
%CONSTRECORD (DUMMY) %NAME NULL=0


%BEGIN
     %CONSTINTEGER TASK LOW LIMIT=30
     %CONSTINTEGER TASK LIMIT=70
     %CONSTINTEGER FREE CELLS=80
     %CONSTINTEGER NO OF SERVICES=TASK LIMIT
     %CONSTINTEGER FRAG NO=15
     %CONSTINTEGER PSECT LENGTH=48
     %CONSTINTEGER SVC LIMIT=23

==== ercm09/emas-2900/tsbsp_tst_stab.txt ====
!values for the states variable

%CONSTINTEGER WT ACCEPT= 1
%CONSTINTEGER RUNNING= 2
%CONSTINTEGER WT FIN= 3
%CONSTINTEGER WT DISC= 4
%CONSTINTEGER WT CLOCK= 5

!values for the events variable

%CONSTINTEGER ERROR EVENT= 1
%CONSTINTEGER ACC= 2
%CONSTINTEGER DISC= 3
%CONSTINTEGER RST= 4
%CONSTINTEGER EN OUT= 5
%CONSTINTEGER INT A= 6
%CONSTINTEGER TICK= 7

!values for the actions variable

%CONSTINTEGER PROCESS ACC= 1

==== ercm09/emas-2900/sys_sup010.txt ====
!***********
!* SUP010  *
!*14.JUN.82*
!***********

%CONTROL K'111011';       ! MUL+TRUSTED

%PERMROUTINESPEC SVC
%PERMINTEGERMAPSPEC INTEGER(%INTEGER X); ! USED IN INIT
%RECORDFORMAT DUMMY(%INTEGER X)
%CONSTRECORD (DUMMY) %NAME NULL=0


%BEGIN
     %CONSTINTEGER TASK LOW LIMIT=30
     %CONSTINTEGER TASK LIMIT=75
     %CONSTINTEGER FREE CELLS=80
     %CONSTINTEGER NO OF SERVICES=TASK LIMIT
     %CONSTINTEGER FRAG NO=15
     %CONSTINTEGER PSECT LENGTH=52
     %CONSTINTEGER SVC LIMIT=23

==== ercm09/emas-2900/isotran.txt ====

@make[report]
@heading[ISO Transition Plans (some brief comments)]
The ISO Transition Plans still correspond well with the outline given by
Peter Linington at Networkshop 1984.  However, since then the ISO Transition
Committee has been meeting and a major report will be available in 
@b[the autumn] of this year. 

 An important feature in the transition is keeping in step
with the ISO transition in the rest of Europe
to ensure that we can apply the maximum pressure on @b[manufacturers] to produce
the necessary protocols.
@section[Current Position]
The transition will be handled in two distinct parts.
@begin[enumerate]
At the network Level (and below)

Upper levels
@end[enumerate]
@section[Network Level]
The intention is to switch from the current position of Yellow Book running over

==== ercm09/emas-2900/sys_sup011.txt ====

!***********
!* SUP011  *
!*14 OCT 85*
!***********

%CONTROL K'111011';       ! MUL+TRUSTED

%PERMROUTINESPEC SVC
%PERMINTEGERMAPSPEC INTEGER(%INTEGER X); ! USED IN INIT
%RECORDFORMAT DUMMY(%INTEGER X)
%CONSTRECORD (DUMMY) %NAME NULL=0


%BEGIN
     %CONSTINTEGER TASK LOW LIMIT=30
     %CONSTINTEGER TASK LIMIT=75
     %CONSTINTEGER FREE CELLS=80
     %CONSTINTEGER NO OF SERVICES=TASK LIMIT
     %CONSTINTEGER FRAG NO=15
     %CONSTINTEGER PSECT LENGTH=52

==== ercm09/emas-2900/sys_brun10.txt ====
.TIME40
;**************************************
;*         BRUN10                     *
;*  INTERFACE BETWEEN HARDWARE AND IMP*
;*  DATE:  23.NOV.79                  *
;**************************************
 
PS=177776; PROCESSOR STATUS WORD
 
IDLEST=-1; SUPERVISOR IDLE FLAG
 
INTVAL=40; DEDICATED LOCATION FOR INTERRUPT NUMBER
SUPER=42; DITTO - FOR SUPERVISOR STATE
ALARMF=44; DITTO - FOR CLOCK
PSECT=46; DITTO - CURRENT PSECT
LASTPS = 54
INTINF=56
 
UPAR=177640
UPDR=177600
 

==== ercm09/emas-2900/newsys_suprin.txt ====
 DEIMOS VSN 10.1  14.JUN.82 (SHARED PERM IN SEG 0 + NEW SEG 8)
RK05
3500
DVNO2Y N 0
SUP50 60002 0
PERM2Y 60006 0
BTT7Y 60012 0
BDK6Y 60016 0
FSYS78 60022 0
LOAD8Y 60026 0
CLI1Y 60032 0
MOTH6Y 60036 0
END
-11 340  KB#2  ADDR=776500, SER=19
-12 344  TT#2
-6 330  RING RX
-7 334   RING TX
-6 770   KMC11  
-7 774  DITTO
-13 270  AM1 INTERFACE
-14 274

==== ercm09/emas-2900/config.txt ====
1   72   4   42   32 "TCP A "
1   72   2   42   32 "TCP C "
1   9   47   42   48 "TCP D "
1   72   8   42   48 "TCP M "
1   72  13   42   32 "TCP S "
1   9   15   42   32   " JCMB "
1   6   60   42   8   "ENGIN "
1   6   20   42   8 "CHEM  "
1   9   154   42   8 "FOREST"
1   6   66   42   16   " IGS  "
1   9   40   42   24   "G. SQ."
1   6   26   42   16 " GEOG "
1   6   43   42   16 " A.I. "
1   9   41   42   16 "CS-AT1"
1   6   89   42   24 "CS-AT2"
1   6   27   42   40   "ATB-1 "
1   6   70   42   32   "ATB-2 "
1   6   42   42   16   " SOCS "
1   6   63   42   24   "EULIB "
1   6   67   42   8   "POLLCK"
1   6   83   42   24   " BUSH "

==== ercm09/emas-2900/newsys_bdk6s.txt ====
!**********
!*  bdk6s *
!*18.feb.82*
!************

%control 1

%begin

     %recordformat pf((%byteinteger service, reply %or %integer d), %c
        %integer a1, a2, a3)

     %recordformat dkf(%integer dst, err, comm, wc, add, dar)
     %constrecord (dkf) %name dk == k'117400'

     %constinteger dktop = 4871
     %owninteger dk bot = k'77'

     %constinteger unit1 = k'020000'
     %constinteger unit2 = k'040000'


==== ercm09/emas-2900/docum_mdbug.txt ====
$A TAB=5, 10; CAPO=0; CAPSHO=0; INVERT=1; PAGENO=1
$A JUST=1; LINE=72; PAGE=59; TOP=3; BOTTOM=4; MARK=2
$L1CM
DEBUGGING PROGRAM
$B2
$L1C
OBJECT: DBUG
$A INDENT=1
$P2
@THIS PROGRAM IS USED AS AN AID TO DEBUGGING PROGRAMS,
IT MAY BE USED TO:-
$A INDENT=2
$B0 1) .SET AND .CLEAR BREAKPOINTS
$B0 2) @DUMP OUT THE .PSECT, .REGISTERS AND/OR THE .IMP .STACK.
$B0 3) .EXAMINE AND .CHANGE LOCATIONS IN CORE.
$B0 4) .DUMP GENERAL AREAS OF CORE.
$A INDENT=1
$P2
.DEBUG INDICATES ITS READINESS TO ACCEPT COMMANDS
BY TYPING .'DEBUG:'. @THE FOLLOWING COMMANDS MAY BE USED.
$A INDENT=2

==== ercm09/emas-2900/xrco.txt ====
{{Horizontal}}
{{circle(10,26,0.75)}}
{{circle(10,23,0.75)}}
{{circle(10,20,1)}}
{{circle(10,14,3)}}
{{circle(10,5,3)}}
{{circle(24,10.5,0.5)}}
{{circle(24,9.5,0.5)}}
{{circle(24,8.5,0.5)}}
{{circle(24,2.5,0.5)}}
{{circle(29,14,1.5)}}
{{circle(7,17.6,0)}}
{{circle(15.4,17.6,0)}}
{{circle(17.8,17.6,0)}}
{{circle(20.2,17.6,0)}}
{{circle(22.6,17.6,0)}}
{{circle(25,17.6,0)}}
{{circle(24,16.5,0)}}
{{circle(13,1.4,0)}}
{{circle(15.4,1.4,0)}}
{{circle(17.8,1.4,0)}}

==== ercm09/emas-2900/ddload.txt ====

!***************
!*  DDLOS      *
!*  DL HANDLER *
!***************

%CONTROL K'101011';                    ! 'SYSTEM' PROGRAM (FAST
                                       ! ROUTINE ENTRY/EXIT)
%SYSTEMROUTINESPEC LINKIN(%INTEGER SER)
%SYSTEMROUTINESPEC MAPHWR(%INTEGER SEG)
%PERMINTEGERFNSPEC SVC(%INTEGER EP, R0, R1)


%BEGIN

     %RECORDFORMAT PF(%BYTEINTEGER SER, REPLY, %INTEGER A1, A2, A3)
     %RECORDFORMAT P2F(%INTEGER D)
     %RECORDFORMAT LPF(%INTEGER STATUS, DATA)

     %CONSTRECORD (LPF) %NAME LP = K'116504'
                                       ! IN SEG 4 (REALLY A PUNCH!!)

==== ercm09/emas-2900/coraltrans.txt ====
e coral2/coral2x
f/'cora/i/{/r0i/}/
(f/'comment'/i/{/(r0lv.;.\ri/}/mi.{.)*i/}/)*
m-0(f/"?"/s/"255"/)*
m-0(f/'integer' 'procedure'/s/%INTEGERFN/)*
m-0(f/'procedure'/s/%ROUTINE/)*
m-0(f/'value' 'integer'/s/%INTEGER/v. ,.ri.A.,v.).i. b.,)*
m-0(f/'integer' 'array'/s/%INTEGERARRAYname /v. ,.ri.c.,v.).i. d.,)*
m-0(f/'location' 'integer'/s/%integername /v. ,.ri.c.,v.).i. d.,)*
m-0(f/'define'/s/%owninteger /f/"/s/= /f/"/e)*
m-0(f/'then'/s/%THEN /m1f1/'begin'/s//m-r0i/%START; /,m)*
m-0(f/'answer'/s/%RESULT =/)*
m-0(f/'if'/s/%IF /)*
m-0(f/'else'/s/%else /r\m(v. .r)*v.'begin'.km-r0i/%start;/,)*
m-0(f/'and'/s/%AND /)*
m-0(f/%start/f/'end'/s/; %FINISH /)*
m-0(f/[/s/(/)*
m-0(f/]/s/)/)*
m-0(f/'or'/s/%or /)*
m-0(f/'bits'/s/BITS/)*
m-0(f/'then'/s/%then /)*

==== ercm09/emas-2900/cals.txt ====


%INTEGERFN INITIALDAY(%INTEGER YEAR)
      %OWNINTEGER INITIAL = 0;          ! BASE IN 1973
      %INTEGER X
      X = (INITIAL+YEAR-1973+(YEAR-1973)//4)
      %WHILE X > 7 %CYCLE
         X = X-7
      %REPEAT
      %RESULT = X
%END

%EXTERNALROUTINE CALENDAR(%STRING (63)S)
       %INTEGER I, YEAR, DAY
       %OWNINTEGER INITIAL = 0;        !BASE IN 1973
       %OWNSTRING (9) %ARRAY MONTH(1:12) = %C
       'JANUARY  ', 'FEBRUARY ', 'MARCH    ', 'APRIL    ',
       'MAY      ', 'JUNE     ', 'JULY     ', 'AUGUST   ',
       'SEPTEMBER', 'OCTOBER  ', 'NOVEMBER ', 'DECEMBER '
       %OWNBYTEINTEGERARRAY DAYS(1:12) = %C
       31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31

==== ercm09/emas-2900/b_lmeor.txt ====
imp11 lmeors
link11
lmeors#rel
i77perm
.stack 1000
.streams 1
.end
lmeory
alist11 lmeors/.lp23

==== ercm09/emas-2900/newsys_bdk7s.txt ====
!**********
!*  bdk7s *
!*22.jun.82*
!************

%control 1

%begin

     %recordformat pf((%byteinteger service, reply %or %integer d), %c
        %integer a1, a2, a3)

     %recordformat dkf(%integer dst, err, comm, wc, add, dar)
     %constrecord (dkf) %name dk == k'117400'

     %constinteger dktop = 4871
     %owninteger dk bot = k'77'

     %constinteger unit1 = k'020000'
     %constinteger unit2 = k'040000'


==== ercm09/emas-2900/b_bsp.txt ====
prep bsp78s,bsp78s#imp,o
imp11 bsp78s#imp
link11
bsp78s#rel
i77perm
.stack 1000
.streams 0
.name bsps
.end
bsp78y

==== ercm09/emas-2900/sys_dvdup.txt ====
;! FILE 'DVDUP'
;.TIME40
;**************************************
;*         DVDUP                      *
;*  INTERFACE BETWEEN HARDWARE AND IMP*
;*  DATE:  27.MAR.81                  *
;**************************************
 
PS=177776; PROCESSOR STATUS WORD
 
IDLEST=-1; SUPERVISOR IDLE FLAG
 
INTVAL=40; DEDICATED LOCATION FOR INTERRUPT NUMBER
ALARMF=44; DITTO - FOR CLOCK
PSECT=46; DITTO - CURRENT PSECT
LASTPS = 54
INTINF=56
 
UPAR=177640
UPDR=177600
 

==== ercm09/emas-2900/dumpgec2.txt ====
%externalroutine dumpgec(%string(63) s)

%conststring (25) vsn = "  Version  1.3"

%owninteger print all = 0;        ! prints lau data if <>0
%owninteger mon line = -1;       ! line to monitor
%owninteger mon con = 0
%owninteger print this = 0

%constinteger our exchange = 1
%owninteger this exchange = 0, fix exch
%constinteger scd = 0
%constinteger ecd = 1
%constinteger dcd = 2
%constinteger laustats = 3
%constinteger unitstats = 4
%routinespec dumpaddr(%bytearrayname a, %byte l)
%routinespec writehex(%integer n,d)
!Routine for dumping GEC Network Management logs
%routinespec dat(%integer dat)
%routinespec tod(%integer d)

==== ercm09/emas-2900/node_prt11ns.txt ====
! FILE 'NODE_PRT11NS'
!*********************
!*    PRT1S/PRT1Y    *
!* DATE: 26.MAR.81  *
!*VERSION FOR NODE  *
!*HISTORY UNCERTAIN  *
!!!!!!!!!!!!!!!!!!!!!!
!STACK = 140

%CONTROL X'100001';                    ! TRUSTED PROGRAM AND QUICK
                                       ! ROUTINE ENTRY AND EIS
%CONSTINTEGER KERNEL SER = 29
%OWNINTEGER SECONDARY = 0;      !PRIM = 0, SEC = 1
%OWNINTEGER SECAD = 9;            !SECONDARY ADDRESS

%CONSTINTEGER WMAX = 56;       ! MAX NO OF WRITES
%CONSTINTEGER SFMASK = 63;      ! CIRC BUFFER SIZE FOR WRITES


%CONSTSTRING (7) VSN = 'VSN011C'


==== ercm09/emas-2900/ticket.txt ====

**************************************************
*   South Edinburgh Constituency Labour Party    *
*                                                *
*         UNEMPLOYMENT DEMONSTRATION             *
*                                                *
*        GLASGOW          Feb 21st               *
*                                                *
*   Bus leaving PRESTON ST. SCHOOL  9.30am       *
*    Rerturn from Glasgow at 4.30pm              *
*                                         $2.50  *
**************************************************




==== ercm09/emas-2900/vaxperf.txt ====
easygraph
title "Transfer rate (bytes/sec) vs Packet Size"
xaxis 20,"Packet Size in bytes"
xformat 3,0
xscale 0,25
yaxis 16,"Bytes/sec"
yformat 3,0
yscale 0,7000
flatnumber
linetype line+points
symbol square
data
50 10410
150 27270
250 40300
350 52220
450 67860
annotate "Vax 11/750"
plot
overlay
symbol diamond

==== ercm09/emas-2900/ertedgn_dgn1s.txt ====
! FILE 'dgn1s'
!*********************
!*    dgn1s/dgn1y    *
!* DATE: 10.FEB.82  *
!*********************
!STACK = 140


%RECORDFORMAT XXF(%INTEGER DUMMY)
%CONSTRECORD (XXF) %NAME NULL = 0

%CONTROL K'100001';                    ! TRUSTED PROGRAM AND QUICK
                                       ! ROUTINE ENTRY AND EIS


%CONSTSTRING (13) VSN = "DGN1:VSN001A
"
%BEGIN
      %PERMROUTINESPEC SVC(%INTEGER EP, R0, R1)
     %SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)
     %SYSTEMROUTINESPEC LINKIN(%INTEGER SER)

==== ercm09/emas-2900/anlogs.txt ====
%externalroutine anlog(%string (255) s)

%externalroutinespec define(%string(255)s)
%externalintegerfnspec smaddr(%integer chan, %integername len)
%externalstring (*) %fnspec itos(%integer i,j)
%integer i,j,k,l,m,o,p,q,type,ent, tci, tco, tbi, tbo, tpp, node
%owninteger conns,info, rec, start, max, gsum, maxt
%owninteger free ind = 1
%integerarray n,t,co,ci,bo,bi,pp,cf,sm, icf, ism,ssm,scf(0:127)
%integer line,oline
%ownintegerarray cou(0:11)


%integerarray tab(1:60,1:60)
%byteintegerarray nn,tt(1:60)
%byteintegerarray nod(1:15, 0:200)

%string (6) %array nm(1:60)
%switch sw(0:11)

%ownintegerarray enta(1:25)

==== ercm09/emas-2900/log_n1.txt ====
 1
 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0


 8 1 9 0 1


 8 29 70 0 11

 8 30 0 0 12
 4 30 0 0 29 70 9 15 0
 6 30 0 0 29 70 9 15 32 57 0 726 0 54 0
 4 30 0 0 29 70 9 18 0
 6 30 0 0 29 70 9 18 32 251 0 3193 0 248 0
RING:  9585 23516 4922    4  223    4  357  329 1173 29067  286   287 288 0
 4 30 0 0 29 70 9 21 0
RING:    61   19    3    0    0    1    0    3   41   22    4     4 4 0
 6 30 0 0 29 70 9 21 32 181 0 2293 0 178 0
 4 30 0 0 29 70 9 23 0
RING:  7203 17688 3705    2  157    9  238  266  883 21850  215   214 215 0
 6 30 0 0 29 70 9 23 32 40 0 508 0 37 0

==== ercm09/emas-2900/ll4_assem.txt ====
$A LINE=42; LEFT=2; SGAP=2; PGAP=0; JUST=1
$A TAB=3; INDENT=0
$A CAP=0; UNDSH=0; UND=0; CAPO=0; UNDSHO=0; UNDO=0
$A INVERT=0; INVO=0
$l1cm
An assembly for scotland
$p2
In 1979 the Scottish people voted for an Assembly.  The Tories came to
power and shelved the issue.  An Assembly could stand up to Tory policies
which have been so disastrous for the Scottish economy and our health,
education and social services.
$p1
Labour has pledged itself to establish a directly elected Scottish Assembly,
with powers over a wide range of issues including health, education and
social welfare, able to raise its own revenue.
$p1
The Assembly will have a major role in helping to rebuild Scottish
industry. Labour's "Plan for Scotland" proposes a major public works 
programme - including upgrading the roads and railways, improvements
in health care, more aid for cities, and a new coal-fired power station in 
the Forth area.

==== ercm09/emas-2900/log_n2.txt ====
 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 9 30 0 0 13 13 0 0 0 0 0 0 0
 9 0 1 0 2 0 0 0 0 0 0 0 0
 9 0 2 0 3 0 0 0 0 0 0 0 0
 9 0 3 0 4 0 0 0 0 0 0 0 0
 9 0 5 0 5 0 0 0 0 0 0 0 0
 9 0 6 0 15 0 0 0 0 0 0 0 0
 9 1 9 0 1 0 0 2 780 13 0 2 777
 5 1 78 78 29 70 11 26 0 126 142 141 487 126 142
 9 29 70 0 12 0 0 2 777 0 0 2 780
 5 29 70 11 1 78 78 27 0 126 142 141 487 126 142
 9 0 72 0 7 0 0 0 0 0 0 0 0
 9 0 78 0 8 0 0 0 0 0 0 0 0
 9 0 80 0 9 0 0 0 0 0 0 0 0
 9 0 90 0 30 0 0 0 0 0 0 0 0
 9 0 156 0 11 0 0 0 0 0 0 0 0
 11 1 2 1 1752 1157 0 25 0 0 0 0 1751 1164 0 17 26
 11 29 0 0 0 0 0 0 438 438 182 522 7 1 0 432 455
 4 30 0 0 29 70 9 36 0
 6 29 70 11 1 78 78 27 32 127 143 141 487 126 142
 6 1 78 78 29 70 11 26 32 126 143 141 487 126 143

==== ercm09/emas-2900/kents1280_nsiws.txt ====
!**********************
!* NSIWS/NSIWY       *
!* DATE: 25.SEP.79   *
!*********************
%CONSTSTRING (7) VSN = "VSNK01B"
!! STACK = 400, STREAMS = 3

!! NOTE: FOR VERSIONS THAT ARE RUN OUT OF A 2900 FEP SYSTEM,
!!       MESSAGES FROM THE NETWORK SHOULD BE ENABLED - SEE
!!        THE COMMENT AT 'MESSAGES ENABLED'

%CONTROL K'100001'
!STACK=400, STREAMS=3


%RECORDFORMAT XF(%BYTEINTEGER UNIT,FSYS,%BYTEINTEGERARRAY FNAME(0:5))
%EXTERNALPREDICATESPEC READ FNAME(%RECORD(XF)%NAME FILE)
%SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)
%BEGIN

%%RECORDFORMAT ITPF(%BYTEINTEGER CNSL,HB1,HB2,LEN,  %C

==== ercm09/emas-2900/inc_fsys.txt ====
!
!     FILE SYSTEM HANDLER INTERFACE
!
%CONSTINTEGER EXAMINE=0
%CONSTINTEGER GET NEXT=1
%CONSTINTEGER DESTROY=2
%CONSTINTEGER CREATE=3
%CONSTINTEGER APPEND=4
%CONSTINTEGER RENAME=5
%CONSTINTEGER RENAME TEMP=6
%CONSTINTEGER RENAME FSYS=7
%CONSTINTEGER GET DIR=8
%ENDOFFILE

==== ercm09/emas-2900/log_n4.txt ====
NODE 4 LOG FROM 18.FEB.81  13.00 ONWARDS
 1
 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0


 8 1 9 0 1


 8 29 70 0 2

 8 30 0 0 17
RING:     9    9    3    0    0    0    0    1    7   12    2     1 1 0
 4 30 0 0 29 70 9 21 0
RING:   721 1076  442    0   15    3   18   19   67 1556   15    16 17 0
RING: 23265-30388 14253   33  362   24  566  648 1868-14972  469   467 470 0
 6 30 0 0 29 70 9 21 32 538 0 7047 0 535 0
RING:  2702 4092 1669    1   41    1   74   79  273 5896   62    62 61 0
 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
RING:     0    0    0    0    0    0    0    0    0    0    0     0 0 0
RING:     0    0    0    0    0    0    0    0    0    0    0     0 0 0
RING:     0    0    0    0    0    0    0    0    0    0    0     0 0 0

==== ercm09/emas-2900/log_n5.txt ====
NODE 4  19.FEB.81  13.00
 1
 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0



 8 1 9 0 1

 8 2 98 98 2

 8 29 70 0 3

 8 30 0 0 4
 4 29 70 7 30 0 0 16 0
RING:     0   92    0    0    0    0    0    0   69   79   13    12 13 0
RING:    28  586   28    0    0    0    0    0  549  538   81    75 76 0
RING:     9  843    9    0    0    0    0    0  464  767   84    85 85 0
RING:   313 8465  274   11    0    0    0    1 2825 8251  482   496 500 0
 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
RING:    29  660   29    0    0    0    0    0  510  625   62    63 64 0
 6 29 70 7 30 0 0 16 32 244 243 247 920 244 243

==== ercm09/emas-2900/log_n6.txt ====
NODE 4  23.FEB.81  13.00 ONWARDS
RING:    12   11    6    0    0    0    0    1   28   17    1     1 1 61
RING:    12   13    4    0    0    0    0    1   28   17    1     1 1 61
RING:     0    0    0    0    0    0    0    0    0    0    0     0 0 61
 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 9 30 0 0 12 1029 0 2 4289 0 0 0 101
 9 0 1 0 3887 0 0 0 0 0 0 0 0
 9 0 2 0 4192 0 0 0 0 0 0 0 0
 9 0 3 0 4075 0 0 0 0 0 0 0 0
 9 0 5 0 3889 0 0 0 0 0 0 0 0
 9 1 9 0 3886 3 0 2 47 612 0 2 159
 9 2 21 21 4460 23 0 1 32 0 0 1 28
 5 2 21 21 1 80 80 4461 0 19 23 19 43 4 4
 9 29 70 0 11 2023 1297 3 28894 9 1 44 27854
 9 0 72 0 3891 0 0 0 0 0 0 0 0
 9 0 78 0 3890 0 0 0 0 0 0 0 0
 9 0 80 0 3892 0 0 0 0 0 0 0 0
 9 0 90 0 4525 0 0 0 0 0 0 0 0
 9 0 156 0 3963 0 0 0 0 0 0 0 0
 11 1 2 1 3333 16158 0 3868 0 1 0 1 13716 10781 0 4229 3891
 11 2 3 0 480 5127 0 296 0 26 0 7 620 3070 0 39 891

==== ercm09/emas-2900/sys_sbldrx3s.txt ====
!**********
!* SBLD13S *
!* NB: NOT SAME AS BPL SBLD1S !!!!
!* DATE:  17.MAR.80               *
!* SUPERVISOR BUILD PROGRAM         *
!*************************************

%PERMROUTINESPEC SVC(%INTEGER EP, %INTEGERNAME P1, %INTEGER P2)
%PERMINTEGERMAPSPEC INTEGER(%INTEGER X)
%PERMBYTEINTEGERMAPSPEC BYTEINTEGER(%INTEGER X)
%PERMINTEGERFNSPEC ADDR(%INTEGERNAME X)
%PERMINTEGERFNSPEC ACC
%CONSTINTEGERNAME DUMMY = 0


%CONSTINTEGERNAME NULLI = 0


%BEGIN

     !* STK = 76000, STRM = 3

==== ercm09/emas-2900/lex2.txt ====
backups Camtec Dexpand eg etc FTP G/W G/Ws GEC Gilmore H/W II lookups
Micro NOC NRS PSE SEEL/Telefile Sep setups stand-alone timescale Unix
Vax XXX

==== ercm09/emas-2900/b_infop.txt ====
prep x25gen_infop2s,infops#imp,x,e,m,clean
imp11 infops#imp/,l
link11
infops#rel
i77perm
.stack 2000
.streams 1
.name infp
.end
infopxy
disconnect infopxy
alist11 infops#imp/.lp15

==== ercm09/emas-2900/comm.txt ====









                     Networking in Edinburgh University

Introduction

For more than 15 years Edinburgh University has depended on a large data 
network. This has grown up under the pressure from Departments, scattered 
widely across Edinburgh, to communicate first with the central mainframes and 
latterly also with other departments and services both within the University 
and other Universities connected to JANET (The Joint Academic Network). A 
diagram of the Edinburgh University network is shown in Fig. 1.

   The dispersed nature of the University has also resulted in the development 

==== ercm09/emas-2900/ftptest.txt ====
transfer l,DESY.VB(a,b)g,FILE,NO
transfer l,EMBL(a,b)g,FILE,NO
transfer l,GEC.B5(a,b)g,FILE,NO
transfer l,GEC.D13(a,b)g,FILE,NO
transfer l,GEC.D2(a,b)g,FILE,NO
transfer l,GEC.D7(a,b)g,FILE,NO
transfer l,GXVS(a,b)g,FILE,NO
transfer l,ICLBRR88(a,b)g,FILE,NO
transfer l,ICLWGW(a,b)g,FILE,NO
transfer l,RSRE(a,b)g,FILE,NO
transfer l,SYPE(a,b)g,FILE,NO
transfer l,ABER.CS.A(a,b)g,FILE,NO
transfer l,AFRC.AFRUS(a,b)g,FILE,NO
transfer l,AFRC.ARCC(a,b)g,FILE,NO
transfer l,AFRC.CAMB(a,b)g,FILE,NO
transfer l,AFRC.FRIB(a,b)g,FILE,NO
transfer l,AFRC.FRIR(a,b)g,FILE,NO
transfer l,AFRC.IRAD(a,b)g,FILE,NO
transfer l,AFRC.LARS(a,b)g,FILE,NO
transfer l,AFRC.NIAEA(a,b)g,FILE,NO
transfer l,AFRC.NVRS(a,b)g,FILE,NO

==== ercm09/emas-2900/b_gecgrab.txt ====
prep X25gen_gecgrab2,gecgrab#imp,f,b,m
imp11 gecgrab#imp/,l
link11
gecgrab#rel
i77perm
.stack 4000
.streams 3
.end
gecgrab2y

==== ercm09/emas-2900/erte_dup11e.txt ====
!**************
!*  DUP11E    *
!*DA:09.FEB.80*
!**************

%CONTROL K'100001';                    ! 'SYSTEM' PROGRAM AND
                                       ! TRUSTED PROG


%RECORDFORMAT PARF(%INTEGER TYPE, ADDRESS, LEN)

%EXTERNALROUTINE DUP11E(%RECORD (PARF) %NAME P)

     %SYSTEMROUTINESPEC MAPHWR(%INTEGER SEG)
     %SYSTEMINTEGERFNSPEC GETID
     %SYSTEMROUTINESPEC LINKIN(%INTEGER SER)
     %SYSTEMINTEGERFNSPEC MAP ABS(%INTEGER ADR, LEN, REQ ID)
     %PERMINTEGERFNSPEC SVC(%INTEGER EP, P0, P1)

     %RECORDFORMAT PF(%BYTEINTEGER SER, REPLY, %INTEGER A1, A2, A3)


==== ercm09/emas-2900/node_itpin2s.txt ====
%CONTROL 1
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
!           INFO MARK 2--ITP CONSOLE HANDLER
!
!           FILE=ITPS
!
!           27TH AUG 1980
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
!        THIS MODULE TAKES CONNECTIONS TO FACILITY 18 FROM GATE AND HANDLES
!     CONSEQUENT ITP LOGONS FROM CONSOLES. IT ASSOCIATES THE CONSOLE WITH THE USER TASK
!      AND WILL LOAD OTHER TASKS TO GIVE THE REQUIRED SERVICE.
!        IT THEN HANDLES THE FLOW OF DATA FROM THE TASK TO THE CONSOLE AND VICE-VERSA.
!     LOGGING OFF THE CONSOLE IS ALSO CONTROLLED FROM HERE.
!
!        SEE INFO NOTES 2 AND 3 FOR INTERFACE DETAILS.
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

==== ercm09/emas-2900/gatex_nsource.txt ====

!**********************************************************
!*                                                        *
!*           PSS X-25 Level 3 Protocol Handler            *
!*                                                        *
!*                      GATEX                             *
!*                                                        *
!*                Version     9.31 15 Sep  1983           *
!*                                                        *
!**********************************************************
!*
%control 1
%begin
!************************************
!*                                  *
!*          Declarations            *  
!*                                  *
!************************************
!*
!****** Constintegers ******
!*

==== ercm09/emas-2900/ringold_bsp6s.txt ====
! FILE 'BSP78s'


!********************************
!*    EMAS-2900   BSP INTERFACE *
!*                    HANDLER     *
!*      FILE: BSP78s             *
!*  DATE:02.sep.81               *
!* MODIFIED FOR ERCC USE         *
!*********************************
!!  STK = 300,  STRM = 1



%CONSTRECORD (*) %NAME NIL == 0


%CONTROL 1
%include "deimosperm"



==== ercm09/emas-2900/infcolours.txt ====
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
!        ***   EXTERNAL ROUTINES FOR DRIVING INTECOLOUR DISPLAY
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
%INCLUDE "INC_COLOURDEFS"
%INCLUDE "INC_SERVICES"
%EXTERNALINTEGERSPEC CBACK
%EXTERNALINTEGERSPEC CFORE
!
!
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
!        THESE ROUTINES ARE SPECIAL OUTPUT ROUTINES
!        FOR THE INTECOLOUR ON SERVICE 13.
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!

==== ercm09/emas-2900/advertinfo.txt ====
$A INVERT=0; INVO=0; PAGE=60; LINE=75; PAGENO=1; JUST=1
$A CAP=0; CAPSH=0; CAPO=0; CAPSHO=0; MARK=2
$A TAB=5,10,15,20,25,30,35,40,45,50,60
 $B12$l1mu
Communications Group Vacancy
$B3 The Communications Group has responsibility for the development and
maintenance of software for the Universities Data Network.   For the past 12 years this network, linking the University of
Edinburgh, Glasgow and Strathclyde has been based on a proprietary virtual
call protocol on a mixture of PDP11 and Modular One  packet switches
, but has recently been converted to use X25,  currently based on three GEC X25 packet switches integrated with a
high speed Cambridge Ring.   The Edinburgh University part of the Network
currently supports a number of hosts, including:-
$A INDENT=1
$B2 One ICL  2988 and a dual ICL 2972 with a DAP, both running the EMAS
operating system.
$B1 4 systems running UNIX
$B1 2 VAXs running VMS
$B1 A File Store
$B1 A Network Information machine
$B1 Gateways to both BTs PSS and the Joint Academic Network (JANET)
$A INDENT=0

==== ercm09/emas-2900/erte_duxxe.txt ====
!**************
!*  DUPXXE    *
!*DA:10.JUN.80*
!**************

%CONTROL K'100001';                    ! 'SYSTEM' PROGRAM AND
                                       ! TRUSTED PROG


%RECORDFORMAT PARF(%INTEGER TYPE, ADDRESS, LEN, FLAG)

%EXTERNALROUTINE DU11E(%RECORD (PARF) %NAME P)

     %SYSTEMROUTINESPEC MAPHWR(%INTEGER SEG)
     %SYSTEMINTEGERFNSPEC GETID
     %SYSTEMROUTINESPEC LINKIN(%INTEGER SER)
     %SYSTEMINTEGERFNSPEC MAP ABS(%INTEGER ADR, LEN, REQ ID)
     %PERMINTEGERFNSPEC SVC(%INTEGER EP, P0, P1)

     %RECORDFORMAT PF(%BYTEINTEGER SER, REPLY, %INTEGER A1, A2, A3)


==== ercm09/emas-2900/b_lmtsxs.txt ====
new
prep x25gen_lmtots,lmtots#imp,x,clean
dimp11 lmtots#imp
link11 /map
lmtots#rel
.stack 1000
.streams 1
.stackseg 6
.name lmts
.end
lmtsxy
destroy lmtsxy
rename lmtsxy#abs,lmtsxy
old

==== ercm09/emas-2900/b_cli.txt ====
dimp11 cli1s
link11 /map
cli1s
.codeseg 2
.stackseg 6
.stack 300
.streams 0
.end
cli1s
c cli1s#abs,newsys_cli1y

==== ercm09/emas-2900/inc_colourspecs.txt ====
!
!     ***   SPECS FOR EXTERNAL ROUTINES FOR IC DISPLAY
!
%EXTERNALROUTINESPEC OUTSYMBOL(%INTEGER CHAR)
%EXTERNALROUTINESPEC OUTSTRING(%STRING(255) S)
!
%EXTERNALROUTINESPEC ENTER PLOT MODE
%EXTERNALROUTINESPEC EXIT PLOT MODE
%EXTERNALROUTINESPEC SET BACKGROUND(%INTEGER COLOUR)
%EXTERNALROUTINESPEC SET FOREGROUND(%INTEGER COLOUR)
%EXTERNALROUTINESPEC SET CURSOR(%INTEGER X,Y)
%EXTERNALROUTINESPEC SET BLIND CURSOR(%INTEGER X,Y)
%EXTERNALROUTINESPEC BARX(%INTEGER X0,Y,X1)
%EXTERNALROUTINESPEC BARY(%INTEGER X,Y0,Y1)
%EXTERNALROUTINESPEC BIGBARX(%INTEGER X0,Y,X1)
%EXTERNALROUTINESPEC BIGBARY(%INTEGER X,Y0,Y1)
!
%EXTERNALINTEGER CFORE;              !CURRENT FOREGROUND COLOUR
%EXTERNALINTEGER CBACK;              !CURRENT BACKGROUND COLOUR
%ENDOFFILE

==== ercm09/emas-2900/cursors.txt ====


!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!        PERKIN ELMER CURSOR ADDRESSING ROUTINES

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

%EXTERNALROUTINESPEC PROMPT(%STRING (15) S)
%CONSTINTEGER ESC = 27


%EXTERNALROUTINE PEHOME
   PRINTCH(ESC);  PRINTSYMBOL('H')
%END


%EXTERNALROUTINE PECLEAR
   PRINTCH(ESC);  PRINTSYMBOL('K')
%END


==== ercm09/emas-2900/tu58test.txt ====
%BEGIN
%RECORDFORMAT PF(%BYTEINTEGER SER, REP, %INTEGER A, %INTEGERNAME B, %C
%INTEGER C)
%INTEGER I, J
%CONSTBYTEINTEGERNAME ID = K'160030'
%INTEGERARRAY BUFF(0:256)
%RECORD (PF) P

%ROUTINE READ BL(%INTEGER BLOCK)
   P_SER = 8; P_REP = ID
   P_A = 0; P_B == BUFF(0); P_C = BLOCK
   PONOFF(P)
   %IF P_A # 0 %START
      PRINTSTRING("READ FAILS "); WRITE(P_A, 1); NEWLINE
   %FINISH
%END

PROMPT("WRITE BLOCK?")
READ(I)
%CYCLE J = 0, 1, 255; BUFF(J) = I+100; %REPEAT
P_SER = 8; P_REP = ID

==== ercm09/emas-2900/ringold_rjee8s.txt ====
! FILE 'FEPD_RJEE8S'


%CONSTSTRING (7) VSN = "VSNEB8Y"

!********************************
!*  EMAS-2900  FEP  RJE SERVER  *
!*   FILE: RJEE8/RJEE8Y         *
!*   DATE: 13.MAY.81             *
!* MODIFIED FOR RING 27.OCT.80
!********************************
!! STACK SIZE = 300

%SYSTEMROUTINESPEC MAP HWR(%INTEGER SEG)
%SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)

%RECORDFORMAT DMF(%INTEGER I)

%CONSTRECORD (DMF) %NAME NULL = 0



==== ercm09/emas-2900/dmareq.txt ====


Use of DMA Ring Boards

Ring DMA boards will be put in the following machines:-

      Nodes         2
      Fep's         2
      Pss Gateway   1
      X25 Gateway   1
      ERTE          1
      Dev. Machine  1
      Filestore     2

Four of these connections are new, ie the filestore machines, the second
FEP, and the 11/60 (or more correctly giving ERTE back its ring interface).

In addition, when the single word boards are released, TCP D will be
moved onto the ring as part of the switch to X25.



==== ercm09/emas-2900/kents_eam7p.txt ====

!********************************
!*  EMAS-2900  FEP AM1 HANDLER  *
!*       FILE: EAM7             *
!*       DATE: 22.FEB.80 10.00  *
!* MODIFIED FOR PCB INTERFACE   *
!********************************
!! STACK SIZE = 300

%OWNINTEGER FEP NO = 0

%RECORDFORMAT DMF(%INTEGER I)
%CONSTRECORD (DMF) %NAME NULL = 0

%SYSTEMROUTINESPEC LINKIN(%INTEGER SER)
%SYSTEMROUTINESPEC MAP HWR(%INTEGER SEG)
%SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)


%CONTROL K'100001'


==== ercm09/emas-2900/erte_erteman.txt ====
$A PAGE=60;UND='#'
$A JUST=1;PGAP=5;TAB=5,10,20,30
$A NLS=2;INDENT=1;LINE=70
$A PAGENO=1;START=1
$L1CUM
E.R.T.E.  USER MANUAL
$B8 $L1CUM
CONTENTS
$A INDENT=3
$B2 $L9CI
1) INTRODUCTION
2) SCRIPT FORMATS
3) PARAMETER FILES
4) RUNNING E.R.T.E.
5) ERROR MESSAGES
6) CONFIGURING E.R.T.E.
7) DATA ANALYSIS
8) SCRIPT FILE UTILITIES
9) OTHER RELEVANT DOCUMENTATION
$B8 $I1 $L1CUI
ISSUE NO. 6.0 (FOR ERTE MK.3 & ERTE MK.4)  16TH MARCH 1979

==== ercm09/emas-2900/equipprop.txt ====




                  Equipment  Proposal

a)  Equipment Needed
         An Intel 88/45 single board computer with an ICL box and
         power supply.

b) Purpose
         A Name/Route Server for the Network.

            On the X25 switch and the Cambridge Ring, the address of a
         Server is determined by the line number, or ring station, to
         which it is currently connected.  On the NSI network the address
         is independant of where it is attached so we have been able to
         give our Servers fixed addresses.  This is not possible with the
         X25 switch and hence if a server is replugged we will 'lose' it.
         A name/route server would enable us to keep track of the addresses
         and enable load balancing of the larger mainframes.

==== ercm09/emas-2900/b_xprotb.txt ====
EDIT x25_XPROT3s,T#B
TA/198/A1STM/Versi/f<X>KZ(r/Running/i<X>i/ (Fast)/p1)2
E
prep t#b,xprotb#imp,Q,f
IMP11 xprotb#IMP/xprotb#REL,xprotb#lst

LINK11
ERCM09.I77PERM
xprotb#REL
.STACK 2000
.STREAMS 1
.NAME xpr1b
.END
xpr1b#OBJ
destroy xpr1by
rename xpr1b#obj,xpr1by
alist11 xprotb#imp/l2
list l2,.lp23

==== ercm09/emas-2900/cons.txt ====
%EXTERNALROUTINE CON(%STRING (255) S)
%EXTERNALROUTINESPEC DEFINE(%STRING (255) S)
%STRING (255) T,U,V
%integer a,b,c,i,j,n,rx,tx,seq,tim,x,y, q
%string(15) from,to
%integerarray val(1:40)
%string (14) %array froma,toa(1:40)
%integerarray dur(1:40)
%bytearray tos(0:255)

%owninteger mtarg = 1
%constinteger nhosts=40
%ownintegerarray tno(0:nhosts)
%ownintegerarray trx(0:nhosts)
%ownintegerarray ttx(0:nhosts)
%ownintegerarray tdur(0:nhosts)
%ownstring (14) %array targa(0:nhosts)
%owninteger print all = 0;    ! 0=dont print  -  see ":p"

%string (255) %fn getstring(%integer n)
%integer i

==== ercm09/emas-2900/jntnews.txt ====
@device[x2700]
@make[report]
@heading[X.25 Switch Survey]

The Academic Community has now been using GEC packet switches for a number of
years and it was felt appropriate to conduct a fresh survey into current
X.25 switching products.  The main intention of the survey was to identify
potential suppliers of both large switches (around 100 lines) and of
small switches (around 10 lines) neither of which is satisfactorily
covered by the GEC products.  An initial survey was made of 17 systems
which are currently marketed and a summary of the report, entitled
'X.25 Packet Switch Survey, 1st Stage Report' is available from the JNT.

From the initial survey six manufacturers were picked for a more detailed
examination. They were the existing suppliers GEC and Camtec joined by
Amdahl, Dynatech, Telefile and Telematics. The requirement for large switches
was addressed by GEC, Amdahl and Telematics whilst Camtec, Dynatech and
Telefile were contenders for the small switch requirement.

The final survey report recommended that, subject to a number of conditions,
restricted procurement should be permitted between GEC and Telematics at the

==== ercm09/emas-2900/advent_move.txt ====
  3  0  6  0  4  0  2  0  0  0
  1  0  8  0  2  0  4  0  0  0
  2  0  1  0  4  0  7  0  0  0
  1  0  3  0  5  0  2  0  0  0
  2  0  6  0  4  0  1  0  0  0
  2  0  7  0  8  0  5  0  0  0
  0  0  0  0  0  0  6  0  0  0
  6  0  3  0  9  0  4  0  0  0
  8  0  3  0 10  0  4  0  0  0
  9  0  0  0 11  0  0  0  0 11
  0  0 10  0  0  0 12  0 10  0
  0  0 11  0  0  0 13  0  0  0
  0  0 12  0  0  0 14  0 14  0
  0  0 13  0  0  0 15  0 15 13
  0  0 14  0  0  0 16  0  0  0
  0  0 15  0  0  0  0  0  0 17
 22  0  0  0 18  0 19  0 16 22
 17  0  0  0  0  0  0  0  0  0
  0  0 17  0  0  0 20  0  0  0
  0  0 19  0  0  0 21  0  0  0
 20  0 20  0 88  0 29  0  0  0

==== ercm09/emas-2900/sys_rxboot.txt ====
;  BOOTSTRAP FOR RX50 DISCS
;                           BASICALLY SAME AS DEC ONE

.=0
240
BR P1
.WORD 6,0,12,0,0,0,172150
P1: 240
BR P2
.WORD 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
.WORD 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
.WORD 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
.WORD 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
P2: ; AT 254 ?
CLR R1
MOV #100000,R2
MOVEL: MOV (R1)+,(R2)+
CMP R1,#600
BLT MOVEL;    MOVE UP TO 100000 (NOT SAME AS DEC)
JMP MOVEP+100000; AND GO TO IT
MOVEP: MOV #172150,R1; ADDR OF RX50

==== ercm09/emas-2900/ring_rolb77s.txt ====
! FILE 'ROLBS'
!**********************
!* ROLBES/ROLBEY   *
!* DATE: 26.jan.82   *
!* RING VSN          *
!*********************
%CONSTSTRING (7) VSN = "VSN001B"
!! STACK = 300, STREAMS = 1

%CONTROL K'100001'
%include "deimosperm"


%RECORDFORMAT XF(%BYTEINTEGER UNIT,FSYS,%BYTEINTEGERARRAY FNAME(0:5))
%begin

   %OWNINTEGER MON = 0

%RECORDFORMAT RJEF(%BYTEINTEGERARRAY DATA(0:239))
%RECORDFORMAT NSI1F(%INTEGER ST, DS, RC, TC, UFLAG, %C
   %RECORD(RJEF) RJE)

==== ercm09/emas-2900/b_am1b.txt ====
prep fep_eam9s,eam9s#imp,n,clean,b,m
dimp11 eam9s#imp
link11 /map
eam9s#rel
.stack 2000
.streams 1
.name am1h
.stackseg 6
.end
eam9s
destroy eam9sy
rename eam9s#abs,eam9sy
alist11 eam9s#imp/.lp23

==== ercm09/emas-2900/sys_dvtu58s.txt ====
; FILE 'DVTU58'
;**************************************
;*         DVTU58                      *
;*  INTERFACE BETWEEN HARDWARE AND IMP*
;*  DATE:  28.OCT.80                  *
;**************************************
 
PS=177776; PROCESSOR STATUS WORD
 
IDLEST=-1; SUPERVISOR IDLE FLAG
 
INTVAL=40; DEDICATED LOCATION FOR INTERRUPT NUMBER
ALARMF=44; DITTO - FOR CLOCK
PSECT=46; DITTO - CURRENT PSECT
LASTPS = 54
INTINF=56
 
UPAR=177640
UPDR=177600
 
UPAR0=40; INDEC INTO PSECT

==== ercm09/emas-2900/mon.txt ====
 
Node =  80, Term = 80
 0
 0
 0
 0
 15
 21
 10
 0
 1
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0

==== ercm09/emas-2900/rand.txt ====
%externallongrealfnspec cputime
%integerfn randomize(%integer range)
%longreal res,last
   res = cputime
   last = fracpt(res*100000)
   last = fracpt(last*100000)
   %result = intpt(last * range + 1)
%end
%externalintegerfn rand int
%result = randomize(20)
%end
%endoffile

==== ercm09/emas-2900/fsystu581s.txt ====
! FILE 'SYS_FSYSTU581S'

!******************************
!*  FILE SYSTEM HANDLER       *
!*   FSYS1S/FSYS1Y            *
!*  DATE: 28.JUN.79           *
!******************************

!*W.S.C. 25TH AUGUST 1976
!*B.G.  27.MAR.78

!*THIS HANDLER IS THE FILE SYSTEM UTILITY TO REPLACE THE
!*EXISTING ONE IN DEIMOS TO PERMIT A FILE SYSTEM TO BE
!*CREATED ON THE AMPEX 9500 DISC AS WELL AS THE RK05'S.

!*IT IS A CONCEPTUAL COPY OF THE RK05 FILE SYSTEM HANDLER
!*EXCEPT THAT A BUFFER POOL IS USED FOR BLOCK DESCRIPTORS
!*AND DIRECTORY BLOCKS.

!*THE CODE IS SHARED BY 3 SYSTEM SLOTS,4 FOR THE RK05'S,
!*AND 9,15 FOR THE AMPEX DISC.THE AMPEX DISC IS LOGICALLY

==== ercm09/emas-2900/fepb_eam7p.txt ====

!********************************
!*  EMAS-2900  FEP AM1 HANDLER  *
!*       FILE: EAM7             *
!*       DATE: 22.FEB.80 10.00  *
!* MODIFIED FOR PCB INTERFACE   *
!********************************
!! STACK SIZE = 300

%OWNINTEGER FEP NO = 0

%RECORDFORMAT DMF(%INTEGER I)
%CONSTRECORD (DMF) %NAME NULL = 0

%SYSTEMROUTINESPEC LINKIN(%INTEGER SER)
%SYSTEMROUTINESPEC MAP HWR(%INTEGER SEG)
%SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)


%CONTROL K'100001'


==== ercm09/emas-2900/ibmdoc_ibmcons.txt ====
%externalroutine ibmcon(%string (255) s)
%externalroutinespec define (%string (255) s)
%integer i,j,k,l
%string (255) t,u
%unless s -> t.("/").u %then printstring("Param a/b !!
") %and %stop
define("1,".t); define("2,".u)
select input(1); select output(2)
%on 9 %start
      %stop
%finish
printstring("File:"); printstring(t); newlines(2)

k=' '
%cycle
      readsymbol(K)
      %if k = '+' %then printch(13) %and -> fg
      %if k = '0' %then newlines(2) %and -> fg
      %if k = '-' %then newlines(3) %and -> fg
      %if k = '1' %then newpage %and ->fg
      newline

==== ercm09/emas-2900/kent#jun81_itps8.txt ====
! FILE 'FEP_ITPS8'



!********************************
!*  EMAS-2900  FEP  ITP SERVER  *
!*   FILE: ITPS8/ITPS8Y         *
!*   DATE: 24.SEP.80 16.10       *
!********************************
!! STACK SIZE = 500

%SYSTEMROUTINESPEC MAP HWR(%INTEGER SEG)
%PERMROUTINESPEC SVC(%INTEGER EP, R0, R1)
%SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)

%RECORDFORMAT DMF(%INTEGER I)

%CONSTRECORD (DMF) %NAME NULL = 0


%CONTROL K'100001'

==== ercm09/emas-2900/gecgrab2.txt ====

!**********************************************************
!*                                                        *
!*       RCO ITP to GEC Network Management Module         *
!*                                                        *
!*                       Gecgrab                             *
!*                                                        *
!*                                                        *
!**********************************************************

#options
!* Prep options
!*  b   -   output binary file, else packed hex+compression
!*
!*
%control 1 ;!No record checking.
!*
#if ~i
%include "deimosperm"
#else
%include "b_deimosspecs"

==== ercm09/emas-2900/kmc11_kmcdrvs.txt ====
%externalroutinespec define(%string (255) s)
%externalroutinespec run(%string (255) s)

%externalroutine kmc (%string (255) s)
%string (255) s1, s2, s3, s4
define("2,kprims")
s3="y"; s4=".out"
%if s->s.("/").s2 %start
      %if s2->s3.(",").s4 %then s3=s3
%finish
define("1,".s)
%if s3="" %then s3="Y"
%if s4="" %then s4="ss#list"
define("3,".s3)
define("4,".s4)
run("kmc2y")
%end
%externalroutine krecode(%string (255) s)
%string (255) t, u
%unless s -> s.("/"). t %then t = ".out"
define("1,".s)

==== ercm09/emas-2900/b_dx11bb.txt ====
prep x25_dx11bbs,dx11bbs#imp,n,m,b
dimp11 dx11bbs
link11
dx11bbs
.stack 16000
.streams 1
.name DX1B
.stackseg 6
.end
dx11bbs
c dx11bbs#abs,dx11bby
alist11 dx11bbs
list dx11bbs#lst,.lp23

==== ercm09/emas-2900/tsbsp_deimos.txt ====
%EXTERNALROUTINESPEC ALARM(%INTEGER T)
%EXTERNALROUTINESPEC LINKIN(%INTEGER SEG)
%EXTERNALROUTINESPEC MAP VIRT(%INTEGER SER,S1,S2)
%EXTERNALROUTINESPEC PON(%RECORD (PEF) %NAME P)
%EXTERNALROUTINESPEC PONOFF(%RECORD (PEF) %NAME P)
%EXTERNALROUTINESPEC POFF(%RECORD (PEF) %NAME P)

%ENDOFFILE

==== ercm09/emas-2900/b_xprotm.txt ====
EDIT x25_XPROTs,T#B
TA/198/A1STM/Versi/f<X>KZ(r/Running/i<X>i/ (Mon)/p1)2
E
prep t#b,xprot#imp,Q
IMP11 XPROT#IMP/XPROT#REL,xprot#lst

LINK11
ERCM09.I77PERM
XPROT#REL
.STACK 2000
.STREAMS 0
.NAME XPR1
.END
XPR1#OBJ
destroy xpr1y
rename xpr1#obj,xpr1y

alist11 xprot#imp/.lp23

==== ercm09/emas-2900/b_am1m.txt ====
prep fep_eam77,eam77#imp,n,m,c,clean
dimp11 eam77#imp
link11 /map
eam77#rel
.stack 1000
.streams 1
.name am1h
.stackseg 6
.end
eam77
destroy eam77y
rename eam77#abs,eam77y
alist11 eam77#imp/.lp23

==== ercm09/emas-2900/networks85_intro.txt ====
@make[article]
@device[x2700]
@style[spacing 1]
@modify[hd2,facecode=k]
@begin[text,topmargin=+1.3inches,leftmargin=+0.45inches,rightmargin=+0.6inches]
blank
@newpage
@section[Introduction]

   Edinburgh University is spread across 
many parts of Edinburgh with two main "campus" areas and a number of 
other scattered departments.  This situation has led to a very high 
dependence on data networking which has been built up over fifteen years in order 
to ensure that students and staff can communicate with either the 
main University Services or local department machines. 
The current network (see fig 1)
 is based on three GEC packet switches supporting 
33 hosts and 100 synchronous links [1]. 

   The dispersed nature of the University 
has resulted in the development of a separate complex

==== ercm09/emas-2900/b_xprotp.txt ====
EDIT x25_XPROTs,T#B
TA/198/A1STM/Versi/f<X>KZ(r/Running/i<X>i/ (Fast)/p1)2
E
prep t#b,xprot#imp,F,p
IMP11 XPROT#IMP/XPROT#REL,xprot#lst

LINK11
ERCM09.I77PERM
XPROT#REL
.STACK 2000
.STREAMS 0
.NAME XPR1
.END
XPR1#OBJ
destroy xpr1y
rename xpr1#obj,xpr1y

alist11 xprot#imp/.lp23

==== ercm09/emas-2900/b_am1o.txt ====
prep fep_eam77,eam77#imp,clean
imp11 eam77#imp
link11 /map
i77perm
eam77#rel
.stack 1000
.streams 1
.name am1h
.end
eam77y
alist11 eam77#imp/.lp23

==== ercm09/emas-2900/inc2_config.txt ====
! Configuration file for PSSE

! Options used:INC_CONFIGGEN,TEMP,P,CLEAN

!Versions required:


! System            Name  Accred Nets  Procs*    Disc Drv Prep

! P PSSE            PSSE  Yes    2+1   16  6 10  RL01 0     P
! M XGATE           XGATE  No    1+1   37 20 40  RL01 0     M
! K Kent            GATE  Yes    1+1   16  6 10  RL02 0     K
! U Kent #2         SGATE Yes    1+2   ?? ?? ??  RK05 0     U
! G Glasgow         GGATE  No    1+2   16  6 31  RX02 1     G
! F FEP (GATEX)     -      No     +2   60 20 40  -    -     H
! T XGATE # 2       XGATE2 No          37 20 40  RL01 0     T
! D DGATE           DGATE No           30 20 40  -    -     D

!Disc Configuration Information
!Define first and last user blocks to prevent us overwriting directory
!etc. Ranges for various discs are:

==== ercm09/emas-2900/ringboot.txt ====
AAAABAABAAAAAACAAAAACAAAAAAAAAADAAAAAAAACMNCLHBIAAAAAAAAAAAAAAAADLCAEDEPENENEFEO
FECAEDEPENENEFEOFECAEDEPENENEFEOFECAEDEPENENEFEOFEAKDLAKDLCAEHEFEPFCEHEFCACNCAFD
EPFCFCFJCAEBECEPFFFECAEDEPEDELFFFACAEMEBFDFECAFHEFEFELCOCAEGEJEOEHEFFCCAFEFCEPFF
ECEMEFCAFHEIEFEOCAFAFFEOEDEIEJEOEHAKDLCAFJEPFFFCCAFAFEEBFAEFCOCAFEEIEJFDCAEJFDCA
EEEFEGEJEOEJFEEFEMFJCAFEEIEFCAEDFFFCFCEFEOFECAFHEPFCELEJEOEHCAFGEFFCFDEJEPEOCOAK
DLCAFEEIEJFDCAEGEJEMEFCAEEEJFDFAEBFEEDEIEFEECAEJEOFEEPCAFEEIEFCAEOEFFEFHEPFCELCA
EBFECADBDBDKDDDAEBENCADJCPDDCPDIDBCOAKDLCAEJEOEGEPCAEPEOCAEBFDFDEFENECEMEFFCCPEM
EJEOELEFFCCAEJEOFEEFFCEGEBEDEFCAFDFEEJEMEMCAEBFHEBEJFEEFEECACIFDEFEFCAEMEBFDFECA
EMEFFEFEEFFCCJCOAKDLCACACACACACACNCAEBEMEBEOAKDLAKDLCAEDEPENENEFEOFECAEDEPENENEF
EOFECAEDEPENENEFEOFECAEDEPENENEFEOFEAKDLAKAJCOFEEJFEEMEFCAFCEJEOEHCAEBECFDEPEMFF
FEEFCAEMEPEBEEEFFCAKDLENEPEEEJEGEJEFEECAEGFCEPENCAEBEOEEFJCAECEFEMEMFDCAFCFECNDB
DBCAEMEPEBEEEFFCCOCAEBEMEJCADDDACPDICPDHDHCOAKDLFEEIEJFDCAFAFCEPEHFCEBENCAFAFFEO
EDEIEFFDCAEBEOCAEBECFDEPEMFFFEEFCAEMEPEBEEEFFCCAFAEBFAEFFCCAFEEBFAEFAKDLEJEOCAEE
EFEDCAECEPEPFEFDFEFCEBFACAEMEPEBEEEFFCCAEGEPFCENEBFEAKAKAJCOFDECFEFEEMAJFAFFEOED
EICAEBECFDEPEMFFFEEFCAEMEPEBEEEFFCCAFEEBFAEFAKDLAKDLAKDLFDEFFECAFAFEFCCAFEEPCAFA
FADKCAFDFEEBFEFFFDCAEGEPFCCAEPECFJFEEFAKDLAKECEFEHEJEODKAJENEPFGAJCDDBDHDHDFDFDE
CMFCDFAKDLAKDLCAFAFFEOEDEICADBDADACAECEMEBEOELCAEMEFEBEEEFFCCAEGFCEBENEFFDAKDLAK
AJEDEMFCAJFCDAAKAJENEPFGAJCDDBDADACMFCDBAKDDCEDKAJEKFDFCAJFAEDCMEPECFJFEEFAJDLFA
FFEOEDEICAEBCAECFJFEEFAKAJEEEFEDAJFCDBAKAJECEOEFAJDDCEAKDLAKDLCAFAFFEOEDEICADDDA
DACAFDFAEFEDEJEBEMCAEMEFEBEEEFFCCAEGFCEBENEFFDAKDLAKAJENEPFGECAJECCOEMEPEPFACLDC
CMFCDAAKAJEEEFEDECAJFCDAAJAJDLEHEFFEFDCAEJEOEDFCEFENEFEOFEEFEECAECEFEGEPFCEFCAFF

==== ercm09/emas-2900/flink.txt ====
 !
! C.S. LINK HANDLER FOR KMC11  -  GJB 28/06/78
!
!
! KMC11 PROGRAM TO PERFORM BLOCK TRANSFERS BETWEEN PDP-11 AND
! C.S. DEPARTMENT NINE BIT LINK.  BUFFERS ARE PASSED, USING THE
! CSRs AS FOLLOWS :-
!    (1) PDP-11 -> KMC11
!        (A) PDP-11 SETS CSR0.4 (CSR REQUEST)
!        (B) KMC11 SETS CSR2.1 (CSR GRANT) AFTER ARBITRARY DELAY
!        (C) PDP-11 LOADS BUFFER INFO :
!            CSR2.0 = 0 (RX BUFF), 1 (TX BUFF)
!            CSR2.2/3 = BIT 16/17 OF ADDRESS
!            CSR3 = LENGTH (IN WORDS)
!            CSR2.7 = EXTRA BYTE MARKER
!            CSR4/5 = BIT 0-15 OF ADDRESS
!        (D) PDP-11 RESETS CSR0.4
!    (2) KMC11 -> PDP-11
!        (A) KMC11 LOADS BUFFER INFO, AS ABOVE
!        (B) KMC11 SETS CSR2.4 (DATA READY)
!

==== ercm09/emas-2900/tsbsp_tst_sttext.txt ====



!                WT ACCEPT      RUNNING        WT FIN       WT DISC       WT CLOCK   
!
! ERROR EVENT        *             *             *             *             *       
!                                                                                    
!
!     ACC       PROCESS ACC        *             *             *             -       
!                 RUNNING                                                            
!
!     DISC      OPEN FAILED  REPLY DISC AB REPLY DISC OK       -             -       
!                 WT CLOCK      WT CLOCK      WT CLOCK      WT CLOCK                 
!
!     RST        SEND DISC     SEND DISC     SEND DISC         -             -       
!                 WT DISC       WT DISC       WT DISC                                
!
!    EN OUT          *         SEND DATA         -             -             -       
!                                                                                    
!
!    INT A       SEND DISC     SEND DISC     SEND DISC         -            STOP     

==== ercm09/emas-2900/b_down.txt ====
imp11 down4m
link11
down4m#rel
.stack 2000
i77perm
.streams 1
.end
down4y

==== ercm09/emas-2900/b_xproty.txt ====
EDIT x25_XPROTs,T#B
TA/198/A1STM/Versi/f<X>KZ(r/Running/i<X>i/ (Fast)/p1)2
E
prep t#b,xprot#imp,F,p,Y
IMP11 XPROT#IMP/XPROT#REL,xprot#lst

LINK11
ERCM09.I77PERM
XPROT#REL
.STACK 2000
.STREAMS 0
.NAME XPRY
.END
XPR1#OBJ
destroy xpry1y
rename xpr1#obj,xpry1y

alist11 xprot#imp/.lp23

==== ercm09/emas-2900/ednet0586.txt ====
{{circle(23,11.5,.5)}}
{{INLABEL(.14,"Fe4")}}
{{circle(11,16,1.5);inlabel(.2,"TelePAC@b15003000")}}
{{circle(0,0,0)}}
{{circle(13,21.7,2.5);inlabel(.35,"KB-CPSE@bGEC 4190@b")}}
{{inlabel(.14,"@B@B@b@b000015000000")}}
{{circle(13,4,2.5);inlabel(.35,"AT-CPSE@bGEC 4190@b")}}
{{inlabel(.14,"@B@B@b@b000016000000")}}
{{CIRCLE(23,2.8,0.5);inlabel(.14,"Fe3")}}
{{CIRCLE(23,10.5,0.5);inlabel(.14,"Fe1")}}
{{CIRCLE(23,9.5,0.5);inlabel(.14,"Fe2")}}
{{CIRCLE(23,3.8,0.5);inlabel(.14,"Fe2")}}
{{CIRCLE(32.5,21.7,1.5);INLABEL(.14,"JANET@bPSE")}}
{{CIRCLE(23,7.3,.5);inlabel(.14,"Fe2")}}
{{circle(12.75,24.8,.1);fill(c12)}}
{{circle(14.75,24.8,.1);fill(c13)}}
{{circle(16.75,24.8,.1);fill(c14)}}
{{circle(20.75,25.2,0)}}
{{circle(6.75,25.2,0)}}
{{CIRCLE(6.75,1.4,0)}}
{{circle(8.75,1.4,0)}}

==== ercm09/emas-2900/b_lmlsse.txt ====
e gen_lmpsse/temp
f/call kent/s/call loop/p
f/call emas/s/call 2972/p
f/ercc14/s/ercv06/p
f/bgxx/s/BRIN/p
%c
imp11 temp
link11
temp#rel
i77perm
.stack 2000
.streams 1
.name lmls
.end
lmlssey
list lmlssey,.fep72

==== ercm09/emas-2900/b_xprotks.txt ====
! nb: source now on amdahl *************************************
EDIT x25_xprot3s,T#B
TA/198/A1STM/Versi/f<X>KZ(r/Running/i<X>i/ (Fast)/p1)2
E
prep t#b,xprot2#imp,f,k,clean
IMP11 xprot2#IMP/xprot2#REL,xprot2#lst

LINK11
ERCM09.I77PERM
xprot2#REL
.STACK 2000
.STREAMS 1
.NAME xpr1
.END
xpr2#OBJ
destroy xprky
rename xpr2#obj,xprky

alist11 xprot2#imp/l2
list l2,.lp23

==== ercm09/emas-2900/b_bspdnew.txt ====
prep ring_bsp78s,bsp78s#imp,n,d
dimp11 bsp78s#imp
link11 /bsp78s
bsp78s#rel
.stack 1000
.streams 0
.name bsps
.codeseg 1
.stackseg 6
.end
bsp78s
destroy bsp78dy
rename bsp78s#abs,bsp78dy

==== ercm09/emas-2900/parr4fs.txt ====
!*********************
!*    parr4fs/parr4y *
!* date: 20.jan.82   *
!* modified for fep  *
!*********************
!stack = 140



%control 1


%conststring (13) vsn = "parr:vsn004a
"
%begin

      %recordformat parrf(%integer rcsr, rbc, rba, rvec, %c
        tcsr, tbc, tba, tvec)

      %ownrecord (parrf) %name pa == 1


==== ercm09/emas-2900/response2_info12jan.txt ====
Node =  156, Term = 156 - INFO 12 Jan 82 - 14.30-15.30 (approx)
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0
 0

==== ercm09/emas-2900/b_rl01.txt ====
dimp11 rl06s
link11 /map
rl06s
.codeseg 2
.stackseg 6
.stack 300
.streams 0
.end
rl06s
c rl06s#abs,newsys_rl06y

==== ercm09/emas-2900/color3s.txt ====
!
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
!           INFO MARK 2                 COLOUR DISPLAY PROGRAM #2
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
!
!        THIS PROGRAM DISPLAYS THE STATUS AND USERS ON EACH TCP
!     BY MEANS OF BAR GRAPHS OF DIFFERING COLOURS
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
!           FORMATS AND VARIABLES
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
%BEGIN
%INCLUDE "INC_TERMS"
%INCLUDE INC_GATEINT

==== ercm09/emas-2900/b_sbld.txt ====
imp11 gen_sbld6s/sbld6s#rel,l
link11
sbld6s#rel
i77perm
.stack 72000
.streams 4
.end
sbld6y
alist11 gen_sbld6s,sbld6s#rel/.lp23

==== ercm09/emas-2900/whos.txt ====
%EXTERNALROUTINE WHO(%STRING (255) S)
%integer l
%externalstring (255) %fnspec fromstring(%string (255) s, %integer i,j)
%EXTERNALINTEGER UINFSEG = 9; %INTEGER UINFAD
      UINFAD=UINFSEG<<18
      %RECORDFORMAT %C
UINFF (%STRING(6) USER, %STRING(31) JOBDOCFILE, %C
      %INTEGER MARK, FSYS, PROCNO, ISUFF, REASON, BATCHID, SESSICLIM, %C
      SCIDENSAD, SCIDENS, STARTCNSL, AIOSTAT, SCT DATE, %C
      SYNC1 DEST, SYNC2 DEST, ASYNC DEST, AACCT REC, AIC REVS, %C
      %STRING(15)JOBNAME, %STRING(31)BASEFILE, %INTEGER PREVIC, %C
      %INTEGER ITADDR0, ITADDR1, ITADDR2, ITADDR3, ITADDR4, %C
      STREAM ID, DIDENT, SCARCITY, PREEMPTAT, %STRING(11)SPOOLRFILE, %C
      %INTEGER FUNDS, SESSLEN, PRIORITY, DECKS, DRIVES, UEND)
%RECORD (uinff) %name UINF
      UINF==RECORD(UINFAD)
      %INTEGER NODE, TERM, BUFF
      NODE = (UINF_ITADDR0>>16)&X'FF'
      TERM = (UINF_ITADDR0>>8)&X'FF'
      BUFF = UINF_ITADDR0&X'FF'
      PRINTSTRING("you are on Node"); WRITE(NODE, 1)

==== ercm09/emas-2900/erteburr_icl1s.txt ====
!*********************
!*    ICL1S/ICL1Y    *
!* DATE: 24.FEB.80  *
!!!!!!!!!!!!!!!!!!!!!!
!STACK = 140


%RECORDFORMAT XXF(%INTEGER DUMMY)
%CONSTRECORD (XXF) %NAME NULL = 0

%CONTROL X'100001';                    ! TRUSTED PROGRAM AND QUICK
                                       ! ROUTINE ENTRY AND EIS


%CONSTSTRING (7) VSN = 'VSN001B'
%BEGIN
     %SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)
     %SYSTEMROUTINESPEC LINKIN(%INTEGER SER)

      %RECORDFORMAT PARF(%INTEGER TYPE, %RECORD (XXF) %NAME B, %C
        %INTEGER LEN)

==== ercm09/emas-2900/switchtox25.txt ====


Implications of the Switch to X25

=================================

a) Hardware

   1. TCPs and Workstations

      The following TCPs will need a store upgrade (amount in brackets)

            Bush 11/10 (32kb)
            Cs-at1 11/10  (16kb)
            Eng1   11/10  ( 8kb)
            G. Sq. 11/10  (16kb)
            Pollock11/04  (32kb)
            Scri-P 11/10  (32kb)

      The following TCPs will need an HDLC line Interface card

            Art In. 11/02  (dpv11)

==== ercm09/emas-2900/b_lmtim.txt ====
c gen_lmtims,temp
imp11 temp
link11
temp#rel
i77perm
.name lmti
.stack 2000
.streams 1
.end
lmtimy
list lmtimy,.fep72
alist11 temp/.lp23

==== ercm09/emas-2900/ednet1184.txt ====
{{circle(10,26,0.75)}}
{{INLABEL(.2,"N1")}}
{{circle(10,24,0.75)}}
{{INLABEL(.2,"N6")}}
{{circle(10,21,1)}}
{{circle(10,14,3)}}
{{circle(10,4,3)}}
{{circle(24,10.5,0.5)}}
{{circle(24,9.5,0.5)}}
{{circle(24,8.5,0.5)}}
{{circle(24,2.5,0.5)}}
{{circle(29,14,1.5)}}
{{circle(7,17.6,0)}}
{{circle(15.4,17.6,0)}}
{{circle(17.8,17.6,0)}}
{{circle(20.2,17.6,0)}}
{{circle(22.6,17.6,0)}}
{{circle(25,17.6,0)}}
{{circle(24,16.5,0)}}
{{circle(13,1.4,0)}}
{{circle(15.4,1.4,0)}}

==== ercm09/emas-2900/erteicl_blog7s.txt ====
!
!
! BLOGY BLOGY BLOGY BLOGY BLOGY BLOGY BLOGY BLOGY BLOGY BLOGY BLOGY BLOGY
! BLOGY BLOGY BLOGY BLOGY BLOGY BLOGY BLOGY BLOGY BLOGY BLOGY BLOGY BLOGY
!
!
!
%CONTROL K'001001'
!
!
%BEGIN
!
!
!
!G.J.B.  //  J.C.A.     STARTED 10:11:76
! ???       LAST UPDATE   14:3:79     10:30     - FILE BLOG6S

!   FOR ERTE MK. 3.2    UPTO 128 USERS
!   FOR CS1BM STANDARD COMMANDS
!   LINES COMMENTED OUT WITH !@@  ARE CANDIDATES FOR CHANGE FOR F1 AND MK 3


==== ercm09/emas-2900/ednet1186.txt ====
{{circle(26,11.5,.5)}}
{{INLABEL(.14,"Fe3")}}
{{circle(9.5,15,1.5);inlabel(.2,"TelePAC@b15003000")}}
{{join(c1,c2)}}
{{circle(8.2,11.3,1.3);inlabel(.175,"TelePAC 3@b15004000")}}
{{circle(13,21.7,2);inlabel(.3,"KB-CPSE@bGEC 4190@b")}}
{{inlabel(.14,"@B@B@b@b000015000000")}}
{{circle(13,4,2);inlabel(.3,"AT-CPSE@bGEC 4190@b")}}
{{inlabel(.14,"@B@B@b@b000016000000")}}
{{CIRCLE(8.5,18,1.25);inlabel(.175,"TelePAC 2@b15005000")}}
{{CIRCLE(26,10.5,0.5);inlabel(.14,"Fe1")}}
{{CIRCLE(26,9.5,0.5);inlabel(.14,"Fe2")}}
{{CIRCLE(26,3.8,0.5);inlabel(.14,"Fe2")}}
{{CIRCLE(32.5,21.7,1.5);INLABEL(.14,"JANET@bPSE")}}
{{CIRCLE(26,7.3,.5);inlabel(.14,"Fe2")}}
{{circle(12.75,24.8,.1);fill(c12)}}
{{circle(14.75,24.8,.1);fill(c13)}}
{{circle(16.75,24.8,.1);fill(c14)}}
{{circle(20.75,25.2,0)}}
{{circle(6.75,25.2,0)}}
{{CIRCLE(6.75,1.4,0)}}

==== ercm09/emas-2900/docum_dsydesc2.txt ====
$A MARK=2
$A TAB=5, 10, 15
$A JUST=1; LINE=69; PAGE=54; TOP=5; BOTTOM=7
$A NLS=1
$L2CM
DESCRIPTION OF DEIMOS
AN OPERATING SYSTEM FOR PDP 11S
$B3
%@DESIGN AIMS
$P1 .DEIMOS WAS DESIGNED FOR OPERATION IN A MEDIUM
SIZED .PDP 11. @AT LEAST 16K WORDS OF CORE, A MEMORY MANAGEMENT UNIT,
A DISC OR SIMILAR FAST MASS STORAGE DEVICE, A TERMINAL AND A CLOCK ARE
REQUIRED.
$P1 @THE SYSTEM WAS DESIGNED WITH SIX MAIN AIMS:
$A INDENT=1
$B1
%@RUNNING %USER %PROGRAMS
$P0 @THE SYSTEM IS DESIGNED TO RUN GENERAL USER
PROGRAMS. @NORMALLY,
 ABOUT TWENTY SIMULTANEOUS PROGRAMS ARE SUPPORTED,
BUT THIS FIGURE IS A PARAMETER AT SYSTEM

==== ercm09/emas-2900/dqs12e.txt ====
! FILE 'FEP_DQS12E'
!**************
!*  DQS12E    *
!*DA:14.APR.80*
!**************

%CONTROL K'100001';                    ! 'SYSTEM' PROGRAM AND
                                       ! TRUSTED PROG


%RECORDFORMAT PARF(%INTEGER TYPE, ADDRESS, LEN)

%EXTERNALROUTINE DQS11E(%RECORD (PARF) %NAME P)

     %SYSTEMROUTINESPEC MAPHWR(%INTEGER SEG)
     %SYSTEMINTEGERFNSPEC GETID
     %SYSTEMROUTINESPEC LINKIN(%INTEGER SER)
     %SYSTEMINTEGERFNSPEC MAP ABS(%INTEGER ADR, LEN, REQ ID)

     %RECORDFORMAT PF(%BYTEINTEGER SER, REPLY, %INTEGER A1, A2, A3)


==== ercm09/emas-2900/node_dqs12e.txt ====
! FILE 'FEP_DQS12E'
!**************
!*  DQS12E    *
!*DA:04.JUN.80*
!**************

%CONTROL K'100001';                    ! 'SYSTEM' PROGRAM AND
                                       ! TRUSTED PROG


%RECORDFORMAT PARF(%INTEGER TYPE, ADDRESS, LEN)

%EXTERNALROUTINE DQS11E(%RECORD (PARF) %NAME P)

     %SYSTEMROUTINESPEC MAPHWR(%INTEGER SEG)
     %SYSTEMINTEGERFNSPEC GETID
     %SYSTEMROUTINESPEC LINKIN(%INTEGER SER)
     %SYSTEMINTEGERFNSPEC MAP ABS(%INTEGER ADR, LEN, REQ ID)

     %RECORDFORMAT PF(%BYTEINTEGER SER, REPLY, %INTEGER A1, A2, A3)


==== ercm09/emas-2900/junk.txt ====
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

 17 20 21 0 24 6 0 18 30 0 2 0 0 0 0 0 0 0 0 406 1124 755
 17 20 21 0 28 2 0 18 30 0 2 0 0 0 0 0 0 0 0 434 1268 755
 16 20 23 0 30 6 0 18 30 0 2 4 0 0 0 0 0 0 0 316 1252 755
 19 20 21 0 24 2 0 20 30 0 0 0 0 0 0 0 0 0 0 276 1652 755
 20 20 20 0 24 4 0 16 30 0 0 0 0 0 0 0 0 0 0 302 1884 755
 21 20 19 0 30 2 0 18 30 0 0 0 0 0 0 0 4 0 0 220 1844 755
 22 20 19 0 26 2 0 18 30 0 0 0 0 0 0 0 0 0 0 256 1968 755
 21 20 19 0 26 2 0 22 30 0 2 0 0 0 0 0 0 0 0 286 1910 755
 19 20 18 0 26 2 0 18 30 0 0 0 0 0 0 0 0 0 0 242 1804 755
 15 20 17 0 26 2 0 18 30 0 0 0 0 0 0 0 0 0 0 0 1414 755
 15 20 19 0 38 2 0 20 30 0 4 2 0 0 0 0 0 0 0 96 1358 755
 18 20 21 0 30 4 0 18 30 0 2 2 0 0 0 0 0 0 0 218 1610 755
 17 20 21 0 36 2 0 18 30 0 2 0 0 0 0 0 0 0 0 228 1512 755
 19 20 20 0 32 4 0 18 32 0 4 2 0 0 0 0 0 0 0 424 1482 755
 19 21 21 0 26 6 0 18 30 0 0 4 0 0 0 0 0 0 0 292 1608 755
 14 21 21 0 26 6 0 18 32 0 0 2 0 0 0 0 0 0 0 242 1162 755
 15 21 19 0 28 6 0 20 30 0 0 0 0 0 0 0 0 0 0 236 1352 755
 21 21 20 0 26 4 0 18 38 0 0 2 0 0 0 0 0 0 0 214 1844 755
 17 21 20 0 30 4 0 18 60 0 2 0 0 0 0 0 0 0 0 300 1374 755

==== ercm09/emas-2900/ring_rolles.txt ====
! file 'rolls'
!**********************
!* rolles/rolley   *
!* date: 29.may.81   *
!* ring vsn          *
!*********************
%conststring (7) vsn = "vsn001b"
!! stack = 300, streams = 1

%control 1
%include "deimosperm"


%recordformat xf(%byteinteger unit,fsys,%byteintegerarray fname(0:5))
%begin

   %owninteger mon = 0

%recordformat rjef(%byteintegerarray data(0:239))
%recordformat nsi1f(%integer st, ds, rc, tc, uflag, %c
   %record(rjef) rje)

==== ercm09/emas-2900/pclocks.txt ====
! PROGRAMMABLE CLOCK PROGRAM
! DATE: 5.MAR.81

%CONTROL K'100001'
%PERMROUTINESPEC SVC(%INTEGER EP, R0, R1)
%PERMINTEGERMAPSPEC INTEGER
%PERMBYTEINTEGERMAPSPEC BYTEINTEGER
%PERMINTEGERFNSPEC ADDR
%PERMINTEGERFNSPEC ACC
%BEGIN

%SYSTEMROUTINESPEC MAPHWR(%INTEGER SEG)
%SYSTEMROUTINESPEC LINKIN(%INTEGER NO)
      %CONSTBYTEINTEGERNAME INT = K'160060'

%RECORDFORMAT CLOCKF(%INTEGER STATUS, DATA)
%CONSTRECORD (CLOCKF) %NAME CLOCK = K'112540';   ! IN SEG 4

%RECORDFORMAT PF(%BYTEINTEGER SER, REPLY, %INTEGER A, B, C)
%RECORD (PF) P


==== ercm09/emas-2900/newsys_moth77.txt ====
!************
!*  moth6s  *
!* 14.jul.81*
!************

%control x'4001'
%include "b_deimosspecs"


%begin

     %recordformat pf(%byteinteger service, reply, %integer a1, a2, a3)
     %record (pf)p


     %constintegername sr0 == k'117572'
                                       ! indexed into seg 4
     %constintegername sr2 == k'117576'

     %routinespec octal(%integer n)


==== ercm09/emas-2900/fspec2.txt ====
$a device = x2700
$d3 "COMPMODROMAN11"
$d4 "COMPMODITALIC11"
$3
$a bold='~'
$a tab = 1,3,10,10,55,77
$a just=1
$a wunder='%'
$a indent = 0
$4
Checklist for Shortlisted Suppliers $3
$b0$t4 H/W & S/W outline of switch systems, with details as necessary
$b0$t4 Conformance to current PSE specifications
$b0$t4 Conformance to X.25(1984), particuarily OSI CONS (ISO DP8878)
$b0$t4 packet switch rates & meaning
$b0$t4 Cost variation vs throughput
$b0$t4 Cost per conection
$b0$t4 Limits on no of connections
$b0$t4 Speed range & type of interface + details of high speed i/fs
$b0$t4 Management options for multiple switch networks
$b0$t4  - remote operation, autonnomous control etc

==== ercm09/emas-2900/fullscreen.txt ====
@heading[Full Screen Services]

The work of the 'Full Screen Services' group is still at a very early stage,
consisting of exchanges by letter.
 A meeting of the group will be 
held during the Networkshop in Copenhagen.

There were responses from six countries (including the UK) to the original 
request for information and a number of points have arisen from the responses.

Currently there is very little full screen activity in use
 across national networks. There is some use across local networks 
although this
tends to be very specific, ie just for Dec VT100 type terminals or IBM 3270
terminals. Both the DFN and the UK Academic Community use Triple X 
(X.28, X.29 and X.3) to provide such services although it is recognised that 
Triple X is not ideally suited to provide such services both from the lack
of facilities in the protocol to provide support and from the significant 
cost and performance penalties from running in modes which require single
character packets to be transmitted through the network with character
echo being provided from the host end.

==== ercm09/emas-2900/b_fsys78.txt ====
imp11 sys_fsys78/fsys78#rel,l
link11
fsys78#rel
i77perm
.stack 300
.streams 0
.end
fsys78y
alist11 sys_fsys78,fsys78#rel/l2
list l2,.lp23

==== ercm09/emas-2900/b_det.txt ====
out=file
outname=detout
name=what a drag
.end

==== ercm09/emas-2900/b_nbsp.txt ====
DIMP11 NBSP9S
link11 /nbsp
nbsp9s
.stack 1000
.streams 1
.codeseg 1
.stackseg 6
.end
nbsp9s
destroy nbsp9y
rename nbsp9s#abs,nbsp9y
LIST NBSP9Y,.BPP155

==== ercm09/emas-2900/readme.txt ====
Using the PAD

% PAD <address>

then ctrl+p A to wake it up again
PAD> s <filname>     to start logging
PAD> dfwt 126        to set forwarding condition
PAD> p               back to <address>
PAD> CLR             to get out & stop logging

hhcp <filename> emas:<emas-filename>     to send to eams
autgorisation:ERCM09
PASS:         etc


==== ercm09/emas-2900/b_snoop.txt ====
imp11 snoops/,l
link11
snoops#rel
i77perm
.stack 1000
.streams 0
.end
snoopy

==== ercm09/emas-2900/b_nbss.txt ====
DIMP11 nbss9S
link11 /nbss
nbss9s
.stack 1000
.streams 1
.codeseg 1
.stackseg 6
.end
nbss9s
destroy nbss9y
rename nbss9s#abs,nbss9y

==== ercm09/emas-2900/msrdoc.txt ====
Operation of the Mark Sense Reader.
----------------------------------

There have been some minor problems with this device and this note
is intended to clarify the operating procedures. It supercedes the note
dated 13 July 1981.


1. Power on the reader and set the appropriate switches before loading
the software.

2. The basic device driver is included in the IPL load, so only the
spooler reader should be loaded -
    LOAD MSRD
Then spool or connect the reader to the required host -
    SPO(CON) MSR/host
Note that only EMAS 2900 JCL is catered for, so host should be either
VWT or XWT. When the first card is detected, the user supplied
USERNAME, PASSWORD and FILENAME are requested on the video. The remainder
of the deck is then read in. To close the file - 
    EOF MSR

==== ercm09/emas-2900/grakb.txt ====
easygraph
title "MTBF - KB 4190 - 3 month rolling average"
xaxis 12,"Month - Jan 84 to Nov 85"
xformat 3,0
xscale 0,1
yaxis 12,"Hours MTBF"
yformat 3,0
yscale 0,100
flatnumber
linetype line+points
symbol square
data
1 366
2 439
3 274
4 313
5 183 6 183
7 219
8 274
9 274
10 244

==== ercm09/emas-2900/ftu.txt ====
THIS IS a file


==== ercm09/emas-2900/b_ftpring.txt ====
PREP fep_FTP1S,FTP1S#IMP,R,E,CLEAN
IMP11 FTP1S#IMP/,L
LINK11
FTP1S#REL
I77PERM
.STACK 1400
.STREAMS 1
.NAME FTPS
.END
FTP1EY

==== ercm09/emas-2900/tu58_suptu3.txt ====
DEIMOS VSN 9.6T  23.DEC.80 (TU58 VERSION)
3500
DVTUY N 0
SUP33 60002 0
PERM2Y 60006 0
BTT6Y 60012 150
TU582Y 60016 300
FSYTUY 60022 300
LOAD7Y 60026 220
CLI1Y 60032 100
MOTH6Y 60036 50
END
-7 330 RING RECEIVE 764040
-6 334
-13 270 AM1 INTERFACE 775170
-14 274
-13 160 AM1 #2        775160
-14 164
-13 170
-14 174
-20 364  PARR INTERFACE

==== ercm09/emas-2900/docum_mmanual.txt ====
$A TAB=5, 10; CAPO=0; CAPSHO=0; INVERT=0; PAGENO=1
$A JUST=1; LINE=76; PAGE=57; TOP=3; BOTTOM=4; MARK=2
$B20
$L1CM
USER MANUAL FOR MUSS11
$B2
$L1CM
B. GILMORE 
$L1CM
JUNE 1975
$A INDENT=1
$A INVERT=1
$N
$L1CUM
CONTENTS
$B6
$A INDENT=1
.TITLE $T6 .PAGE
$B0 @GENERAL FEATURES $T6 3
$B0 @COMPILING A PROGRAM. $T6 4
$B0 @RUNNING A PROGRAM. $T6 5

==== ercm09/emas-2900/tu58_fsytus.txt ====
! FILE 'SYS_FSYSTU582S'

!******************************
!*  FILE SYSTEM HANDLER       *
!*   FSYS1S/FSYS1Y            *
!*  DATE: 22.DEC.80           *
!* TU58 AS MAIN DISC          *
!******************************

!*W.S.C. 25TH AUGUST 1976
!*B.G.  27.MAR.78

!*THIS HANDLER IS THE FILE SYSTEM UTILITY TO REPLACE THE
!*EXISTING ONE IN DEIMOS TO PERMIT A FILE SYSTEM TO BE
!*CREATED ON THE AMPEX 9500 DISC AS WELL AS THE RK05'S.

!*IT IS A CONCEPTUAL COPY OF THE RK05 FILE SYSTEM HANDLER
!*EXCEPT THAT A BUFFER POOL IS USED FOR BLOCK DESCRIPTORS
!*AND DIRECTORY BLOCKS.

!*THE CODE IS SHARED BY 3 SYSTEM SLOTS,4 FOR THE RK05'S,

==== ercm09/emas-2900/b_parrf.txt ====
imp11 parr4fs
link11
parr4fs#rel
i77perm
.stack 400
.streams 0
.end
parr4fy
list parr4fy,.bpp155

==== ercm09/emas-2900/tsbsp_sttext.txt ====



                         FREE             WT BUF            WT NS           WT BUF NS          WT ACCN           WT ACCND     

    GOT BUFFER            *            SEND LOOKUP            *                 -                 *                 *         
                                          WT NS                                FREE                                           

     NS REPLY             *                 *              NS MESS              -                 *                 *         
                                                           WT ACCN             FREE                                           

      DISCI               *           DISCI RESPONSE    DISCI RESPONSE          *           DISCI WT ACCN           *         
                                        WT BUF NS         WT BUF NS                            WT ACCND                       

     OPENACKN             -                 -                 -                 -          PROCESS OPENACK  D PROCESS OPENACK 
                                                                                                 DATA            WT DISCN     

      RESETI              *                 *                 *                 *                 *                 *         
                                                                                                                              

      RESETN              -                 -                 -                 -                 -                 -         

==== ercm09/emas-2900/prob2988.txt ====

  Problem in the Interface between the 2988 and the FEPs

EMAS sends messages to the FEPs in the form:-
   <write control> <stream id> <max transfer length> <limit>
followed by:-
   <write> <max bytes of data> <limit>
where <write control> <write> and <limit> are all 'control' characters,
ie the ninth bit is set to distinguish them from data.

The case of <stream id> = -2 is special in that bytes of data are
sent from the 2988 in multiples of 24 bytes up to a maximum of 192 bytes.
In the case that causes the current problems either the 4 byte header
packet (<stream id> <transfer size>) is not followed by a <limit> or
the <stream id> = -2 data bytes are not terminated by a <limit>, the FEP
will then read up to 200 bytes of data before detecting an error.

In all other cases a missing <limit> will not be noticed by the FEP as
the FEP itself decides how many data bytes to accept.

                                                    Brian Gilmore

==== ercm09/emas-2900/nrsl.txt ====

.nf

.H1 Forward Lookup 16 OCT 85

.H1 Context X29 Subnetwork JANET
CERN.GEC-A                        CERN.GEC-A         000009001002       
CERN.IBM                          CERN.IBM           0000090030020      
CERN.INDEX                        CERN.INDEX         0000090030010      
CERN.NDDEV                        CERN.NDDEV         0000090030051      
CERN.VXALBM                       CERN.VXALBM        0000090030042      
CERN.VXALFB                       CERN.VXALFB        0000090030031      
CERN.VXCRNA                       CERN.VXCRNA        0000090030053      
CERN.VXDEV                        CERN.VXDEV         0000090030043      
CERN.VXGIFT                       CERN.VXGIFT        0000090030035      
CERN.VXL3                         CERN.VXL3          0000090030033      
CERN.VXMERL                       CERN.VXMERL        0000090030044      
CERN.VXOMEG                       CERN.VXOMEG        0000090030041      
DESY.GEC-A                        DESY.GEC-A         000009501000       
DESY.TASSO                        DESY.VB            000009501001       
UK.AC.ABERDEEN                    UK.AC.ABDN         00000700900104     Relay:CALL PARAMETER IS  7

==== ercm09/emas-2900/erteicl_sivcs9.txt ====
%CONTROL K'100001'
!
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
!        SIMPLE  INTERACTIVE  VIDEO  CLUSTER
!
!        DATE OF FIRST CODING   10TH JAN 1980
!
!        LAST UPDATED  12TH MAR 1980  FILE SIVCS9
!
!        STACK=3000, STREAMS=1
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
%BEGIN
!
%SYSTEMROUTINESPEC LINKIN(%INTEGER SERVICE)
%SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)
!%SYSTEMROUTINESPEC SVC(%INTEGER A,B,C)
!

==== ercm09/emas-2900/response_n80t80dec21.txt ====
Node =  80, Term = 80 - Time:  12.00 - 17.00  21.dec.81
 0
 0
 0
 0
 75
 756
 1572
 1243
 949
 811
 614
 480
 412
 293
 182
 159
 117
 83
 44
 55

==== ercm09/emas-2900/kents1280_eam7.txt ====
! FILE 'FEP_EAM7'

!********************************
!*  EMAS-2900  FEP AM1 HANDLER  *
!*       FILE: EAM7             *
!*       DATE: 18.SEP.80 10.00  *
!* MODIFIED FOR PCB INTERFACE   *
!********************************
!! STACK SIZE = 300

%OWNINTEGER FEP NO = 0

%RECORDFORMAT DMF(%INTEGER I)
%CONSTRECORD (DMF) %NAME NULL = 0

%SYSTEMROUTINESPEC LINKIN(%INTEGER SER)
%SYSTEMROUTINESPEC MAP HWR(%INTEGER SEG)
%SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)


%CONTROL K'100001'

==== ercm09/emas-2900/ibmdoc_ftpqmemo.txt ====
 
 
 
 
                                                      FTPQ SCRIPT
 
                   IBM (CMS) as an FTP 'Q' end
 
 
     This file describes  the FTP parameters that  must be passed
     to the IBM  (CMS)  FTP when using  it as a 'Q'  end.   It is
     available as a HELP file (named FTPQ) and as a SCRIPT file.
 
     Included is  a description  of how  to retrieve  output from
     jobs  run  in  any  of the  IBM  batch  systems.    Strictly
     speaking, output retrieval is an automated 'P' end function,
     but the full details are given here as these facilities will
     typically be needed in conjunction with jobs which have been
     input via the Q-end FTP.
 
     There is  a separate  HELP file  for normal  'P' end  usage.

==== ercm09/emas-2900/sys_sbldrk3s.txt ====
!**********
!* SBLD13S *
!* NB: NOT SAME AS BPL SBLD1S !!!!
!* DATE:  17.MAR.80               *
!* SUPERVISOR BUILD PROGRAM         *
!*************************************

%PERMROUTINESPEC SVC(%INTEGER EP, %INTEGERNAME P1, %INTEGER P2)
%PERMINTEGERMAPSPEC INTEGER(%INTEGER X)
%PERMBYTEINTEGERMAPSPEC BYTEINTEGER(%INTEGER X)
%PERMINTEGERFNSPEC ADDR(%INTEGERNAME X)
%PERMINTEGERFNSPEC ACC
%CONSTINTEGERNAME DUMMY = 0


%CONSTINTEGERNAME NULLI = 0


%BEGIN

     !* STK = 76000, STRM = 3

==== ercm09/emas-2900/jntprop.txt ====
@b[Edinburgh Regional Computing Centre]


@heading[Proposal to the JNT for a
X.25 Packet Switch Survey]


@centre[Brian Gilmore
June 1985]

 The ERCC proposes to do a survey of X.25 packet switch suppliers. The survey
will be in two stages.

@b[Stage 1]

 In Stage 1, a general survey will be done of at least 15 X.25 packet switch
suppliers with the aim of establishing the cost, throughput, connectivity and
management facilites of the various products.  The aim of the survey will
be to produce a short list of a few suppliers for Stage 2.  At the end of
this stage an interim report will be provided to the JNT for their approval
of the short list.

==== ercm09/emas-2900/networks87.txt ====
@make[article]
@device[x2700]
@style[spacing 1]
@modify[hd2,facecode=k]
@begin[text,topmargin=+1.3inches,leftmargin=+0.45inches,rightmargin=+0.6inches]
blank
@newpage
@section[The Need for a Virtual Terminal Specification]

Terminals are normally connected to the system  they are used on via a
direct connection, a connection  through  a  device  such as a circuit
switch which behaves as  if  the  terminal  was directly connected, or
through a network, local or wide area. The characteristic behaviour of
a  terminal  will  differ  depending  on  the  access  route  and  the
requirements for driving it will also differ.

The model matched by most computer  manufacturers in the past was that
of a simple, hard copy terminal that printed out a line at a time then
moved one line down the paper.  Although  most terminals are now based
on VDUs, the basic method of handling  them has remained the same, the
output is scrolled up the screen  one  line at a time. The consequence

==== ercm09/emas-2900/netnotes.txt ====
$a device=x2700
$d1 :cosmos12b:
$d2 :cosmos14:
$a tab=1",3.5",4.5",4.8",5.7"
$a left=5
$5
$l0
Intro
     Nature of Edinburgh University
        Data Network                - slide 1
          Based on 3 x gec packet switches (CPSEs) - central circles
        Voice Network               - slide 2

     Early exposure to PABX & LANs
        ICL/DTI - Investigate Interconnection
        Project Diagram             - slide 3

     + University in progress of procuring new PABXs


Potential Advantages                  - slide 4

==== ercm09/emas-2900/surveys.txt ====
%EXTERNALROUTINE SURVEY(%STRING (255) S)
!!
%CONSTINTEGER NDATE = 7, JUNCTS = 17
%CONSTINTEGER SP1 = 7, SP2 = 12, SP3 = 13, SP4=16
!!
%INTEGERARRAY X,Y,Z,P(1:NDATE,1:JUNCTS)
%STRING (50) %ARRAY NAMES(1:JUNCTS)
!!
%INTEGER I, J
!!
%CONSTSTRING (10) %ARRAY DATES(1:NDATE) = %C
      "10 MAY 78", "12 MAY 78", "20 JUN 78", "28 SEP 78",
      "05 OCT 78", "14 FEB 79", "27 JUN 79"
!!
%EXTERNALROUTINESPEC PROMPT(%STRING(18) S)
%EXTERNALROUTINESPEC DEFINE(%STRING (255) S)
!!
      %STRING (255) T,U
!!
      %ROUTINE READ LINE(%STRINGNAME S)
         %INTEGER I

==== ercm09/emas-2900/docum_speeds.txt ====
$L1CM
COMPARISON OF SOME PDP11 PROCESSORS USING A PDP11/34 AS A BASE
$A TAB = 20,50,60
$B3 @TESTS WERE RUN ON @RELEASE 7 OF @DEIMOS USING THE STANDARD
EXTENDED INSTRUCTION SET EXCEPT WHERE NOTED.
$B3
11/34 $T+1 @NO MUL/DIV $T+1 $C+1 84.4$%
$B0 11/34 $T+1 @REL 6 @SUPR. $T+1 $C+1 89.2$%
$B0 11/34 $T+1 @STANDARD $T+1 100$%
$B1 11/40 $T+1 @NO MUL/DIV $T+1 105.4$%
$B0 11/40 $T+2 109.1$%
$B1 11/45 $T+1 @NO MUL/DIV $T+1 128.8$%
$B0 11/45 $T+2 148.1$%
$B6
$L1CM
DISC SPEEDS   1) RK05
$B2 @NO OF @SECTOR @INCREMENTS $T+1 @TRANSFERS/SEC
$B0 $C+8 0 $T+1 $C+6 25
$B0 $C+8 1 $T+1 $C+6 23
$B0 $C+8 2 $T+1 $C+5 103
$B0 $C+8 3 $T+1 $C+6 68

==== ercm09/emas-2900/log11jan83.txt ====
11/01/83  01:01:00 N009T000  6 20 156 156 17 0 75 215 32 4 7 9 5
11/01/83  01:01:00 N006T000  6 13 156 156 34 9 75 75 32 4 7 9 5
11/01/83  01:01:00 N006T000  6 13 156 156 34 90 90 52 32 5 7 9 5
11/01/83  01:01:00 N006T000  6 13 156 156 34 78 78 80 32 5 15 11 10
11/01/83  01:01:00 N009T000  6 20 156 156 21 90 90 175 32 5 7 9 5
11/01/83  01:01:00 N009T000  6 20 156 156 5 78 78 222 32 5 15 11 10
11/01/83  01:01:20 N006T000  3 38 3 189 6585 11665 6797 18566 2 2043 7334 4057 17627 28587 834 1584 28735 6792 288 19611 274 140 34
11/01/83  01:01:20 N009T000  6 2 80 80 20 6 23 9 32 266 0 30 28
11/01/83  01:01:20 N006T000  6 34 80 80 32 0 23 104 32 266 0 30 28
11/01/83  01:01:25 N009T000  6 20 80 80 21 90 90 254 32 23 0 4 2
11/01/83  01:01:25 N006T000  6 18 80 80 34 90 90 98 32 23 0 4 2
11/01/83  01:01:30 N009T000  6 20 80 80 21 90 90 48 32 23 0 4 2
11/01/83  01:01:30 N006T000  6 18 80 80 34 90 90 132 32 23 0 4 2
11/01/83  01:01:55 N009T000  6 20 156 156 61 72 5 118 32 7 14 12 11
11/01/83  01:01:55 N006T000  6 13 156 156 34 72 5 192 32 7 14 12 11
11/01/83  01:02:25 N009T000  6 20 156 156 61 72 3 188 32 4 7 9 8
11/01/83  01:02:25 N006T000  6 13 156 156 34 72 3 238 32 4 7 9 8
11/01/83  01:02:30 N009T000  6 20 156 156 2 0 182 191 32 4 7 9 5
11/01/83  01:02:30 N006T000  6 13 156 156 34 9 182 240 32 4 7 9 5
11/01/83  01:02:30 N006T000  6 13 156 156 35 0 171 248 32 4 7 9 5
11/01/83  01:02:30 N009T000  6 20 156 156 3 0 180 212 32 4 7 9 5

==== ercm09/emas-2900/sys_dvrubshs.txt ====
;FILE 'SYS_DVRUB'
;**************************************
;*         DVRUB                      *
;*  INTERFACE BETWEEN HARDWARE AND IMP*
;*  DATE:  22.dec.82                  *
;**************************************
 
PS=177776; PROCESSOR STATUS WORD
 
IDLEST=-1; SUPERVISOR IDLE FLAG
 
INTVAL=40; DEDICATED LOCATION FOR INTERRUPT NUMBER
ALARMF=44; DITTO - FOR CLOCK
PSECT=46; DITTO - CURRENT PSECT
LASTPS = 54
PXPT = 56
 
UPAR=177640
UPDR=177600
 
UPAR0=40; INDEC INTO PSECT

==== ercm09/emas-2900/newsys_sinnew.txt ====
!***************************
!*   sin010                *
!* date: 22.jun.82         *
!* supervisor initialiser  *
!*  supervisor release 10  *
!***************************
%control X'4001'
%recordformat dummy(%integer x)
%constrecord (*) %name null == 0

     %constinteger initial sp disp = k'1530';  ! position in i/o seg of initial
                                        ! sp - new compiler - may change !!!!!!!!!!!!!!!!!

     %constinteger task low limit = 30
     %constinteger task user limit  =  35
     %constinteger task limit = 70
     %constinteger free cells = 80
     %constinteger no of services = 50
     %constinteger frag no = 15
     %constinteger psect length = 52
     %constinteger svc limit = 23

==== ercm09/emas-2900/inc_terms.txt ====
!
!        DEFINES TERMINAL TYPES AND MAX NO OF TERMINALS
!
%CONSTINTEGER TCPTYPE=1
%CONSTINTEGER NODTYPE=2
%CONSTINTEGER FEPTYPE=3
%CONSTINTEGER MAXTERMS=47
%CONSTINTEGER HLIM=7;                   !HOST RECORDS FOR MULTIPLE CONNS
%CONSTINTEGER NHOSTS=7;                 !ACTUAL DISTINCT HOSTS
%CONSTBYTEINTEGERARRAY NH(1:NHOSTS)=72,80,21,90,78,7,155
%CONSTBYTEINTEGERARRAY NT(1:NHOSTS)=72,80,21,90,78,9,155
%CONSTSTRING(6)%ARRAY HN(1:NHOSTS)= %C
      " 2972 "," 2980 "," PSSE ","FSTORE","CS-VAX"," 2976 "," INFO "
%ENDOFFILE

==== ercm09/emas-2900/hostessipss.txt ====
Welcome to HOSTESS, British Telecom's information service.

Enter carriage return for assistance on how to proceed
or  BYE  to clear the call.


Document ? ipssSection ? all


                                                     COUNTRIES CONNECTED TO IPSS



1.AUSTRALIA  AUSTPAC


UK TO AUSTRALIA

  DATA NETWORK IDENTIFICATION CODE 5052

  CALL CHARGES:                         POUNDS STERLING

==== ercm09/emas-2900/b_temp.txt ====
imp11 temp
link11
temp#rel
i77perm
.stack 62000
.streams 0
.name stte
.end
tempy
list tempy,.bpp6

==== ercm09/emas-2900/fred.txt ====
%BEGIN
%EXTERNALROUTINESPEC TERMINATE
%EXTERNALROUTINESPEC PROMPT(%STRING (17) S)
%OWNSTRING(1) N="A"
%INTEGER I,J,K
CHARNO(N,1)=0
PROMPT(N)
%CYCLE
READCH(I)
PRINTCH(I)
TERMINATE
%REPEAT
%ENDOFPROGRAM

==== ercm09/emas-2900/b_xxxbig.txt ====
prep x25_xxx3s,xxx3s#imp,s,clean,b
imp11 xxx3s#imp/xxx3s#rel,l
link11
xxx3s#rel
i77perm
.stack 1400
.streams 1
.name xxx
.end
xxx3y
alist11 xxx3s#imp,xxx3s#rel/.lp23

==== ercm09/emas-2900/erteicl_cputs.txt ====
! FILE 'SYS_CPUTS'

! CPUT  CPU UTILISATION MODULE

! W.S.C. 21ST MARCH

! LAST UPDATED 30TH MARCH 1977  10:40

!   THIS MODULE RUNS AT THE LOWEST PRIORITY,MAINTAINING A
!COUNT.ON A TIME INTERRUPT IT COMPARES THE COUNT WITH A
!PREDETERMINED TOTALY IDLE VALUE TO CALCULATE THE APPROX.
! % CPU IDLE TIME.

!     INT T  FOR 10SEC INTERVAL
!     INT H  FOR 30SEC INTERVAL
!     INT M  FOR 60SEC INTERVAL

%BEGIN
%SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)
%PERMINTEGERFNSPEC SVC(%INTEGER EP,P1,P2)
%RECORDFORMAT PF(%BYTEINTEGER SER,REPLY,%INTEGER A1,A2,A3)

==== ercm09/emas-2900/rats.txt ====
{e} %externalroutine rats(%string (255) s)
!d! %begin
%externallongrealfnspec cputime
%externalrealfnspec random(%integername i, %integer n)
%externalstring (255) %fnspec time
%externalroutinespec terminate
      %routinespec engage random(%integer n)
      %routinespec pepos(%integer x, y)
      %%integer %fn %spec test door


      %externalroutinespec prompt(%string (17) s)

%ownbyteintegerarray door(10:66) =
 0, 2, 3, 4, 1, 1, 1, 0, 0, 0, 
 0, 2, 3, 4, 5, 1, 1, 0, 0, 0,
 0, 6, 3, 7, 1, 1, 1, 0, 0, 0,
 0, 6, 3, 8, 1, 1, 1, 0, 0, 0,
 0, 6, 3, 1, 1, 1, 1, 0, 0, 0,
 0, 7, 3, 1, 1, 1, 1
      ! 0 - error, 1 - door is open

==== ercm09/emas-2900/b_dbug.txt ====
dimp11 gen_dbug7/dbug7#rel
link11 /dbug7
dbug7
.stack 2000
.streams 1
.stackseg 6
.name dbug
.end
dbug7
c dbug7#abs,dbug7y

==== ercm09/emas-2900/b_lmxxxs.txt ====
new
prep x25_lmxots,lmxots#imp,x,clean
dimp11 lmxots#imp
link11
lmxots#rel
.stack 1000
.streams 1
.stackseg 6
.name lmxx
.end
lmxxxy
destroy lmxxxy
rename lmxxxy#abs,lmxxxy
old

==== ercm09/emas-2900/paddoc.txt ====
$a invert=0; line=65; left=6
$l1um
PAD Summary
$p1The following contains a 'potted' summary of the JNT PAD facilities
most often used. This collection is by no means complete
and there is no substitute for examination of the JNT PAD Terminal Users' Guide.
  Nor are the more 'exotic' features and values of the various
parameters which can be set,  described.
However, the following should be enough to get you started.
$b1%Introduce yourself to the PAD by typing CR (perhaps repeatedly so that
the PAD can ascertain your terminal line speed.
$b1%Call the host of your choice by typing 'call <hostname>' to the
PAD> prompt e$.g$.
$l3m

PAD>call 2972

$b1%Help is available by typing 'help' to the PAD> prompt to obtain information
as to what the PAD knows about (address, profile, escape, command)
e$.g$. 'help address' gives all the names of the hosts known to the PAD.
$b1%PAD> prompt can be obtained during an interactive call by pressing

==== ercm09/emas-2900/kents_notes.txt ====
20:6:80
This is the first NSI-less FEP
ITPS7 and RJES8 have been edited to change the record formats from
NSI compatability to BSP form, the record formats have been renamed
to reflect this. GATE has disappeared to be replaced by BSPS and the
new RING has a simpler function. NSIW has been likewise altered to
interface to BSPS. EAM, COMM and BUFF are unchanged.

==== ercm09/emas-2900/inc2_configf.txt ====
! Configuration file for Front ends

! Options used:INC_CONFIGGEN,TEMP,H,CLEAN

!Versions required:


! System            Name  Accred Nets  Procs*    Disc Drv Prep

! P PSSE            PSSE  Yes    2+1   16  6 10  RL01 0     P
! M XGATE           XGATE  No    1+1   37 20 40  RL01 0     M
! K Kent            GATE  Yes    1+1   16  6 10  RL02 0     K
! U Kent #2         SGATE Yes    1+2   ?? ?? ??  RK05 0     U
! G Glasgow         GGATE  No    1+2   16  6 31  RX02 1     G
! F FEP (GATEX)     -      No     +2   60 20 40  -    -     H
! T XGATE # 2       XGATE2 No          37 20 40  RL01 0     T
! D DGATE           DGATE No           30 20 40  -    -     D

!Disc Configuration Information
!Define first and last user blocks to prevent us overwriting directory
!etc. Ranges for various discs are:

==== ercm09/emas-2900/mx.txt ====

  0 10 32 1 16315 17922 2488 3644 502 81
  1 11 31 1 13529-27333 2149-19314 18855 147
  2 12 16 1-7508-2468-230-20404-6785 332
  3 13 21 1 5642-24107 11628-27151 1816 0
  4 14 33 1 9025-61-2258-25838 23114 45
  5 15 23 1 18666 13541 15442-2154-23567 11843
  6 16 28 54 60 3717 72 0 0 0
  7 17 46 55 63 3983 62 0 0 0
  0 19 31 1 16442 18464 2568 9122 502 81
  1 20 31 1 13598-26458 2209-288 19252 147
  2 21 16 1-7353-2024-198-11789-6605 332
  3 22 22 1 5807-23820 11838-24997 1816 0
  4 23 31 1 9345 588-2155-19673 23114 4653
  5 24 24 1 19054 14293 15524 7313-23438 29251
  6 25 28 52 56 3544 76 0 0 0
  7 26 46 50 55 3766 70 0 0 0
  0 28 30 1 16568 19003 2642 15069 502 81
  1 29 29 1 13635-25407 2296 20021 19651 147
  2 30 14 1-7235-1507-46-3509-6447 582
  3 31 21 1 5996-23638 11959-23802 1816 0

==== ercm09/emas-2900/b_batch.txt ====
imp11 gen_batchs/batchs#rel
link11
batchs#rel
i77perm
.stack 1000
.streams 2
.end
batchy

==== ercm09/emas-2900/log30nov82.txt ====
30/11/82  00:00:05 N006T000  6 19 156 156 61 72 3 125 32 4 7 9 8
30/11/82  00:00:15 N006T000  6 19 156 156 33 0 181 152 32 4 7 9 5
30/11/82  00:00:20 N009T000  6 16 0 47 5 78 78 190 32 61 167 116 116
30/11/82  00:00:20 N006T000  3 33 6 6 4479 4201 771 7366 398 813 20 24470 2376 10767 627 486 2308 7100 1502 460 716 40 2820
30/11/82  00:00:25 N009T000  6 20 156 156 3 0 180 39 32 4 7 9 5
30/11/82  00:00:25 N006T000  6 19 156 156 34 9 180 180 32 4 7 9 5
30/11/82  00:00:25 N009T000  6 20 156 156 2 0 182 44 32 4 7 9 5
30/11/82  00:00:25 N006T000  6 19 156 156 34 9 182 183 32 4 7 9 5
30/11/82  00:00:35 N006T000  6 19 156 156 61 72 5 209 32 7 14 12 11
30/11/82  00:00:55 N009T000  6 20 156 156 17 0 75 135 32 4 7 9 5
30/11/82  00:00:55 N006T000  6 19 156 156 34 9 75 12 32 4 7 9 5
30/11/82  00:01:15 N009T000  6 20 156 156 5 78 78 185 32 5 14 11 10
30/11/82  00:01:15 N006T000  6 19 156 156 34 78 78 55 32 5 14 11 10
30/11/82  00:01:15 N006T000  6 19 156 156 35 0 171 62 32 4 7 9 5
30/11/82  00:01:30 N009T000  3 25 13 2 866 14189 1211 25820 229 1363 76 21877 2523 10637 949 460 2868 0 0 0 0 0 0
30/11/82  00:01:30 N009T000  9 62 0 0 1 10241 0 0 0 0 0
30/11/82  00:01:30 N009T000  9 15 0 15 83 1579 22415 476 47 14 0
30/11/82  00:01:30 N009T000  5 15 0 15 5 78 78 111 0 68 211 125 125
30/11/82  00:01:30 N009T000  5 15 0 15 17 72 72 127 0 2427 7792 4889 3364
30/11/82  00:01:30 N009T000  5 15 0 15 17 72 72 247 0 17091-4941-30316 24508
30/11/82  00:01:30 N009T000  9 4 0 40 2 448-32555 0 52 2 0

==== ercm09/emas-2900/erteburr_xbm01.txt ====
;**************************************
;*         XBM01                      *
;*  INTERFACE BETWEEN HARDWARE AND IMP*
;* AND LOW LEVEL DUP11 HANDLER        *
;*  DATE:  07.FEB.80                  *
;**************************************
 
PS=177776; PROCESSOR STATUS WORD
 
IDLEST=-1; SUPERVISOR IDLE FLAG
 
INTVAL=40; DEDICATED LOCATION FOR INTERRUPT NUMBER
ALARMF=44; DITTO - FOR CLOCK
PSECT=46; DITTO - CURRENT PSECT
LASTPS = 54
INTINF=56
 
UPAR=177640
UPDR=177600
 
UPAR0=40; INDEC INTO PSECT

==== ercm09/emas-2900/sys_dxxxxx.txt ====
;**************************************
;*         SYS_DXXXXX                 *
;*  INTERFACE BETWEEN HARDWARE AND IMP*
;*  DATE:  06.MAR.82                  *
;**************************************
;
; * PREP OPTIONS
; R - RK05 DUMPER
; F - FILESTORE SYSTEM
; N - NODES - EXTENDED INTERRUPTS
; X - RX02 DUMPER
; B - BISYNCH PSEUDO DMA
; H - DUP11 HDLC PSEUDO DMA
; V - LSI HDLC PSEUDO DMA (NB:DPV11 HARDWARE)
;
; NOTE: In order to assemble, the CLEAN option in prep MUST be used
;
#IF N
; FOR SUP40 AND BEYOND - 100 INTERRUPTS - AND EXPANDED DUMP
; AUTOMATIC POWER UP ADDED
#FI

==== ercm09/emas-2900/ring_ringx8s.txt ====
! file 'ringX77s'    -   for new style ring hardware

!********************************
!*    emas-2900   ring interface *
!*                    handler     *
!*      file: ring7s              *
!*   date:13.mar.81               *
!*********************************
!!  stk = 300,  strm = 1

!nb location k'140016 is used to hold the checksum so that it may
!be accessed from code


%include "deimosperm"
%constrecord (*) %name nil == 0




%begin

==== ercm09/emas-2900/fepb_notes.txt ====
20:6:80
This is the first NSI-less FEP
ITPS7 and RJES8 have been edited to change the record formats from
NSI compatability to BSP form, the record formats have been renamed
to reflect this. GATE has disappeared to be replaced by BSPS and the
new RING has a simpler function. NSIW has been likewise altered to
interface to BSPS. EAM, COMM and BUFF are unchanged.

==== ercm09/emas-2900/dumpgecjb.txt ====
%externalroutine dumpgec(%string(63) s)
%constinteger our exchange = 2
%constinteger scd = 0
%constinteger ecd = 1
%constinteger dcd = 2
%constinteger laustats = 3
%constinteger unitstats = 4
%routinespec dumpaddr(%bytearrayname a, %byte l)
%routinespec writehex(%integer n,d)
!Routine for dumping GEC Network Management logs
!J. butler 20.10.82
%routinespec dat(%integer dat)
%routinespec tod(%integer d)
%externalroutinespec define(%string(63) s)
%externalintegerfnspec smaddr(%integer chan,%integername l)
%externalintegerfnspec exist(%string(63) s)
%integer ina,inl,idunit, idexch,idtype
%string(63) t,u
u = ".out" %and t = s %unless s -> t.(",").u
 
define("1,".t)

==== ercm09/emas-2900/inc_services.txt ====
!
!           SERVICE NUMBERS
!
%CONSTINTEGER GATE SER=16
%CONSTINTEGER ITP SER=28
%CONSTINTEGER BUFFER MANAGER=17
%CONSTINTEGER TIME SER=23
%CONSTINTEGER DISPLAY SER=24
%CONSTINTEGER LOG CONTROL=25
%CONSTINTEGER LOAD SER=5;       !????????
%CONSTINTEGER POLL SER=27
%CONSTINTEGER USER SER=26
%CONSTINTEGER LOG SER=12
%CONSTINTEGER TT SER=1
%CONSTINTEGER T2 SER=19
!
%CONSTINTEGER REQUEST BUFFER=0
%CONSTINTEGER RELEASE BUFFER=1
!
!           GENERAL VARIABLES
!

==== ercm09/emas-2900/lexicon.txt ====
A/B add-on Amdahl Appleton b.gilmore BG Brian Camtec catch-all CJC CO
Conf cons Copenhagen CPSE CRC CRCs DCE DCEs Dec DEL DFN DIS down-line
DTE DTE/DCE Dynatech E.C.U.C E.R.C.C editing-type EDNET eg ERCC Feb FEPs
GEC Gilmore hoc IBM ie ISO JANET JNT KB kb/s Kilostream LCGN LCGs LCN
LCNs look-up lunchtime micro micros MTBF multi-purpose multi-switch
Multi-user Networkshop NLP Non-immediate non-ISO non-manufacturer
non-volatile non-zero NRS occurence Oct OSI outages oversize PSE PSEs
PSS PSSE re-boot re-booting re-used recognised REJ Req ROM Salford SEEL
SSMP stand-alone SVC SVCs Telefile Telematics TelePAC timescale UK
utilising VT VTP WG XCALL XXX zero-filled

==== ercm09/emas-2900/ringold_itpe8s.txt ====
! FILE 'FEPD_ITPE8S'
!********************************
!*  EMAS-2900  FEP  ITP SERVER  *
!*   FILE: ITPE8S/ITPEY         *
!*   DATE: 13.MAY.81 16.10       *
!********************************
!! STACK SIZE = 500

%SYSTEMROUTINESPEC MAP HWR(%INTEGER SEG)
%PERMROUTINESPEC SVC(%INTEGER EP, R0, R1)

%RECORDFORMAT DMF(%INTEGER I)

%CONSTRECORD (DMF) %NAME NULL = 0


%CONTROL K'100001'

%BEGIN

      %CONSTSTRING (7)VSN = 'VSNEA8F'

==== ercm09/emas-2900/node_down4m.txt ====
! file 'down4m'
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!
! this program is supposed to call do load with
!  argument the physical device handler routine.
!  until imp77 allows routines to have routine arguments
!  it has been kludged.  to change it delete the
! sequence !**** and delete lines containing ;!$$$.
!  nb this has not been tested

!**********************************************
!*                                            *
!*   down line loader v1.3                    *
!* date: 04.feb.82                            *
!*                                            *
!*   b gilmore march 1980                     *
!*   w d hay  november 1979                   *
!*                                            *
!**********************************************
!
! stack = 1000, streams = 1

==== ercm09/emas-2900/mort6.txt ====

%DYNAMICROUTINESPEC DEFINE(%STRING (63)S)
%DYNAMICROUTINESPEC PROMPT(%STRING (15)S)


%EXTERNALROUTINE MORT(%STRING (63)S)
      %INTEGER I, J, K, YEAR
      %REAL DEPR PA
      %REAL HOUSE APPR
      %REAL BSOC INT, MONTHLY, CAP REP
      %OWNINTEGER TITLE=0
      %IF S#'' %START
         DEFINE('ST1,'.S)
         SELECT OUTPUT(1)
      %FINISH
                                       !
                                       !
      HOUSE APPR=1.02;                 ! REAL INCREASE (AFTER
                                       ! DEPRECIATION)
      !!


==== ercm09/emas-2900/mort7.txt ====

%DYNAMICROUTINESPEC DEFINE(%STRING (63)S)
%DYNAMICROUTINESPEC PROMPT(%STRING (15)S)


%EXTERNALROUTINE MORT(%STRING (63)S)
      %INTEGER I, J, K, YEAR
      %REAL DEPR PA
      %REAL HOUSE APPR
      %REAL BSOC INT, MONTHLY, CAP REP
      %OWNINTEGER TITLE=0
      %IF S#'' %START
         DEFINE('ST1,'.S)
         SELECT OUTPUT(1)
      %FINISH
                                       !
                                       !
      HOUSE APPR=1.02;                 ! REAL INCREASE (AFTER
                                       ! DEPRECIATION)
      !!


==== ercm09/emas-2900/sys_bdk4s.txt ====
!**********
!*  BDK4S *
!**********

%CONTROL K'100001';                    ! 'SYSTEM' PROGRAM+MUL+TRUSTED

%PERMINTEGERFNSPEC SVC(%INTEGER EP, P1, P2)
%PERMINTEGERMAPSPEC INTEGER
%PERMBYTEINTEGERMAPSPEC BYTEINTEGER
%PERMINTEGERFNSPEC ADDR
%PERMINTEGERFNSPEC ACC


%BEGIN
     %SYSTEMINTEGERFNSPEC GETID

     %RECORDFORMAT PF(%BYTEINTEGER SERVICE, REPLY, %INTEGER A1, A2, A3)
     %RECORDFORMAT P2F(%INTEGER D)

     %RECORDFORMAT DKF(%INTEGER DST, ERR, COMM, WC, ADD, DAR)
     %CONSTRECORD (DKF) %NAME DK = K'177400'

==== ercm09/emas-2900/tu58_tu582s.txt ====
!************
!*  TU582S   *
!*22.DEC.80*
!*DISC 0 VSN*
!************

%CONTROL K'100001';                    ! 'SYSTEM' PROGRAM+MUL+TRUSTED

%BEGIN
     %SYSTEMINTEGERFNSPEC GETID
     %SYSTEMROUTINESPEC LINKIN(%INTEGER SER)
      %SYSTEMINTEGERFNSPEC MAP ABS(%INTEGER ADR, LEN, REQ ID)
     %PERMINTEGERFNSPEC SVC(%INTEGER EP, R0, R1)
     %SYSTEMINTEGERFNSPEC MAP VIRT(%INTEGER WHO, HSEG, MYSEG)
     %SYSTEMROUTINESPEC MAPHWR(%INTEGER SEGS)

     %RECORDFORMAT PF(%BYTEINTEGER SERVICE, REPLY, %INTEGER A1, A2, A3)
     %RECORDFORMAT P2F(%INTEGER D)

     %RECORDFORMAT TU58F(%INTEGER RSR, RDB, TSR, TDB)
     %CONSTRECORD (TU58F) %NAME TU58 = K'116500'; ! 176500 ON 11/44, 176160

==== ercm09/emas-2900/ringans.txt ====
%EXTERNALROUTINE RINGANS(%STRING (255) S)

%EXTERNALROUTINESPEC DEFINE(%STRING (255) S)
%INTEGER I,J,K,PEAK,PN,NZ,N,X,MAX,SUM,TIME,PEAKI,PNI
%OWNINTEGER TYPE = 0
%REAL Q

%STRING (255) T
%INTEGERARRAY NUM(0:13, 1:1000)
%OWNINTEGERARRAY A(0:13) = 0(14)

!!
      %ON %EVENT 9 %START
         -> FINISH
      %FINISH
!!
      %ROUTINE SKIP TO END OF LINE
         %INTEGER I
         %CYCLE
            I = 0
            READSYMBOL(I)

==== ercm09/emas-2900/lmeots.txt ====
!**********************
!* LMEOTS/LMEOTY   *
!* DATE: 17.SEP.80   *
!*********************
%CONSTSTRING (7) VSN = "VSN001B"
!! STACK = 300, STREAMS = 1

%CONTROL K'100001'


%RECORDFORMAT XF(%BYTEINTEGER UNIT,FSYS,%BYTEINTEGERARRAY FNAME(0:5))
%CONSTRECORD (XF) %NAME NULL = 0
%SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)
%BEGIN

%%RECORDFORMAT ITPF(%BYTEINTEGER CNSL,HB1,HB2,LEN,  %C
   %BYTEINTEGERARRAY DATA(0:127))
%RECORDFORMAT RJEF(%BYTEINTEGERARRAY DATA(0:239))
%RECORDFORMAT NSI1F(%BYTEINTEGER FN,SUFL,ST,SS,FLAG,UFLAG,  %C
   %RECORD(ITPF) ITP)
%RECORDFORMAT NSI2F(%BYTEINTEGER FN,SUFL,ST,SS,%C

==== ercm09/emas-2900/log031182.txt ====
03/11/82  00:00:05 N006T000  6 33 80 80 32 0 23 239 32 2814 0 283 283
03/11/82  00:00:25 N009T000  6 20 80 80 4 0 40 158 32 1 0 1 1
03/11/82  00:00:25 N006T000  6 33 80 80 34 9 40 124 32 1 0 1 1
03/11/82  00:00:25 N006T000  6 33 80 80 21 0 34 128 32 1 0 1 1
03/11/82  00:00:50 N006T000  6 7 156 156 61 72 9 163 32 4 7 9 8
03/11/82  00:00:50 N009T000  6 20 156 156 3 0 180 174 32 4 7 9 5
03/11/82  00:00:50 N006T000  6 7 156 156 34 9 180 165 32 4 7 9 5
03/11/82  00:01:05 N009T000  6 20 156 156 17 0 75 185 32 4 7 9 5
03/11/82  00:01:05 N006T000  6 7 156 156 34 9 75 195 32 4 7 9 5
03/11/82  00:01:10 N006T000  6 7 156 156 61 72 5 201 32 7 16 12 11
03/11/82  00:01:20 N006T000  3 31 7 61 20158 21866 3853 31430 133 2239 4073 31249 8184 19201 271 1293 11726 9443 183 3351 742 70 10
03/11/82  00:01:20 N009T000  6 20 156 156 2 0 182 203 32 4 7 9 5
03/11/82  00:01:20 N006T000  6 7 156 156 34 9 182 230 32 4 7 9 5
03/11/82  00:01:25 N009T000  6 17 72 72 15 0 15 199 32 184 0 21 18
03/11/82  00:01:40 N006T000  6 34 72 72 32 0 23 103 32 480 0 44 44
03/11/82  00:01:40 N009T000  6 17 72 72 20 6 23 151 32 480 0 44 44
03/11/82  00:01:40 N006T000  6 7 156 156 33 0 181 4 32 4 7 9 5
03/11/82  00:01:55 N009T000  6 20 156 156 5 78 78 233 32 5 14 11 10
03/11/82  00:02:00 N006T000  6 7 156 156 34 78 78 29 32 5 14 11 10
03/11/82  00:02:00 N006T000  6 7 156 156 34 90 90 33 32 5 7 9 5
03/11/82  00:02:00 N009T000  6 20 156 156 21 90 90 236 32 5 7 9 5

==== ercm09/emas-2900/reportmay84.txt ====

@heading(Termly Report)
@heading(May 1984)
@heading(Communications Group)

@Section(Ednet)

@subsection(CPSEs)

All three CPSEs have been in service use.   The reliability has been
reasonable although we have been pressing GEC over software problems
on the KB 4190.   We have now received and installed the software to
run all 39 links on the KB 4190.

@subsection(TCPs)

There have been a few hardware funnies with TCPs this term but no
software problems.

@subsection(FEPs)


==== ercm09/emas-2900/ls0412.txt ====
Dump GEC logfile  Version  1.3d

Log:ACCNTS.GSS850412
 To:LS0412




First record at 23:49:57


Date Covered was:  3/  4/ 1985     23:59:47 Exchange 3

        Frames       Control         1 seg          Calls   RESETS  Bytes/Sec  ERRORS  Total Frames     Total Data F  Av Bytes
 Line    In/sec    %Out   %In     %Out   %In     Out     In  Total  Out     In   Total    Out      In        Out     In  Out  In
Erte        0.9      0%     98%     53%     31%     19     11   5    64     2    501    78975    29977    78634      435  69  76
Dev mc      0.0     35%     42%    100%    100%     10     10   0     0     0    569      307      296      144      116  27 202
TCP C       1.2     58%     16%     93%     82%    117    261   0    14    30  26472   102769    73205    42655    59356  19  42
Oslan       0.3     94%      0%     97%     61%    145      9   2     3    51   1009    27291    72808     1291    72128 110  59
GenPad      0.1     72%      4%    100%     59%     31    260   0     1     5     50     7532     6316     1493     5424  22  75
Ed Gr       0.0     41%     43%     87%     66%     10      5   7     0     1   5468     1000     1275      548      609  35  70

==== ercm09/emas-2900/advent_item.txt ====
There is a large sparkling nugget of gold here!
There are bars of silver here!
There is precious jewelry here!
There are many coins here!
There are several diamonds here!
There is a delicate, precious ming vase here!
To one side lies a glistening pearl!
There is a nest here, full of golden eggs!
There is a jewel-encrusted trident here!
There is an emerald the size of a plover's egg here!
There is a platinum pyramid here, eight inches on a side!
There is a golden chain here!
There are rare spices here!
There is a valuable persian rug here!
There is a chest here, full of various treasures!
There is a bottle of water here.
There is a small pool of oil here.
There is a brass lantern here.
There is a set of keys here.
There is food here.
There is a glass bottle here.

==== ercm09/emas-2900/advent_desc.txt ====
You're in a forest.
You're in a forest.
You're in a forest.
You're in a forest.
You're at a hill at end of road.
You're at road near house.
You're inside house.
You're beside a stream in a valley.
You're near a slit in the streambed.
You're directly above a grate in a dry streambed.
You are below the grate.
You're in cobble crawl.
You're in the debris room.
You are in an awkward sloping E/W canyon.
You're in the bird chamber.
You're at top of small pit.
You're in hall of mists.
You're in nugget of gold room.
You're on east side of fissure.
You're on the west side of fissure.
You are at the west end of the hall of mists.

==== ercm09/emas-2900/supb1145.txt ====
DEIMOS VSN 9.9  16.JUNE.80 (CLI&LOAD)
3500
DVRUBY N 0
SUP35 60002 0
PERM2Y 60006 0
BTT6Y 60012 150
BDK5Y 60016 70
FSYS1Y 60022 300
LOAD7Y 60026 300
CLI1Y 60032 200
MOTH6Y 60036 50
END
-6 304
-7 310 DQS11 # 1
-20 324 DQS11 #2
-21 330
-22 404 DQS11 #3
-23 410
-24 424 DQS11 #4
-25 430
-26 454 PARR INT #1

==== ercm09/emas-2900/sys_btt7s.txt ====
! FILE 'BTT7S'
!**************
!*  BTT7S     *
!*DA:24.FEB.81*
!**************

%CONTROL K'100001';  ! 'SYSTEM' PROGRAM (FAST ROUTINE ENTRY/EXIT)
%PERMROUTINESPEC SVC(%INTEGER EP, P1, P2)
%BEGIN

      %SYSTEMINTEGERFNSPEC MAP VIRT(%INTEGER ID, FROM SEG, TO SEG)
     %SYSTEMROUTINESPEC MAPHWR(%INTEGER SEGS)
     %SYSTEMROUTINESPEC LINKIN(%INTEGER SER)

     %RECORDFORMAT PF(%BYTEINTEGER SERVICE, REPLY, %C
        %INTEGER A1, A2, A3)
     %RECORDFORMAT TTF(%INTEGER KBS, KBD, TTS, TTD)
     %RECORDFORMAT BUFF(%INTEGER PT, LAST, %BYTEINTEGERARRAYNAME B)
     %RECORDFORMAT BUFFX(%INTEGER PT, LAST, ARRAYPT)

     %CONSTRECORD (BUFFX) %NAME NULL = 0

==== ercm09/emas-2900/kern31l.txt ====
    1        
    2 040000 %BEGIN 
    3              %CONTROL K'101011'
    4              %CONSTINTEGER CSIZE = 2231
    5              %CONSTINTEGER BLIMIT = 14
    6              %CONSTINTEGER INIT DISPLAY = 255
    7              %CONSTINTEGER READ DISPLAY = 254
    8              %OWNINTEGER MYNODE = 4;          !OUR NODE NUMBER
    9              %OWNINTEGER THRESHOLD = 150;     !ROUTING THRESHOLD
   10              %OWNINTEGER LFACTOR = 8;        !BUFFERS PER SCORE INCREMENT
   11              %OWNINTEGER BC = 0;              !NO. OF BUFFERS ALLOCATED
   12              %OWNINTEGER BL = 9999;           !CONNECT BUFFERS FOR NODE
   13              %OWNINTEGER AL = 255;            !CONNECT BUFFERS PER ATTACHMENT
   14              %RECORDFORMAT CADDRF(%INTEGER LINK)
   15              %OWNRECORD (CADDRF) %ARRAYNAME CADDR
   16              %OWNINTEGER CLIMIT = CSIZE
   17              %OWNINTEGER DISPLAY SERVICE = 0
   18              %OWNINTEGER BUFFINDEX = 0
   19              %OWNINTEGER BUFFLIMIT = BLIMIT
   20              %OWNINTEGER BUFFLOST = 0
   21              %RECORDFORMAT BUFFF(%BYTEINTEGER USE, LINE, %BYTEINTEGERARRAY %C

==== ercm09/emas-2900/sys_rx021s.txt ====
!
!     RX02 FLOPPY DISC HANDLER
!
!     THIS IS THE UNIT 2&3 VERSION
!
!     %% LAST UPDATED 14TH MARCH 1980   FILE=RX021S
!
!     USES SYSTEM SLOTS 8 AND 14. INT SLOT -8.
!
!     CALLING PARAMETERS ARE AS FOLLOWS
!        P_A1=MODE    (0=READ,1=WRITE)
!        P_A2=ADDRESS OF BUFFER IN MEMORY
!        P_A3=BLOCK NUMBER ON DISC
!
!     SINCE DEIMOS DEALS IN 512 BYTE BLOCKS ALL TRANSFERS ARE 2*256
!BYTE SECTORS. THE FIRST 77 BLOCKS ARE RESERVED FOR THE SYSTEM.
!WITHIN EACH TRACK OF 26 SECTORS THE SECTORS ARE INTERLEAVED.
!
!     ON EXIT P_A1=FAULT NO. (0=OK)
!
!     ANY ERROR WILL RESULT IN UP TO 10 RETRIES.

==== ercm09/emas-2900/log_t44sat1.txt ====
*T44 RING AT P=2, SATURATION, 12SEC INTS LENGTHS 240->0
RING:  5160 3729 4248    1   20   62    6   80    1000 8079  136    66 67 0
RING: 12499 9097 10441    2   62  133   22  182    1000 19782  318   157 157 0
RING: 21316 15881 17718    3  110  221   24  333    1000-31516  557   270 270 0
RING: 21310 15711 17767    1  113  223   31  317    1000-31642  560   269 269 0
RING: 21227 15667 17683    1  117  218   28  322    1000-31768  558   268 268 0
RING: 18383 13599 15197    1   85  198   25  292    1000 29154  502   243 243 0
RING: 20349 14779 16625    3   88  199   42  364    1000 31800  600   299 300 0
RING: 11967 8950 9801    0   50  120   27  205    1000 18974  363   180 179 0
RING: 20189 14926 16729    0  100  192   31  336    1000 32012  608   302 302 0
RING: 19743 14939 16429    0   86  186   35  318    1000 31694  599   299 299 0
RING: 17624 12892 14413    0   78  181   24  312    1000 27634  531   265 266 0
RING: 17999 13252 14544    3   94  193   17  351    1000 28126  688   328 328 0
RING: 17990 13225 14577    2   71  207   22  345    1000 28122  686   327 327 0
RING: 18015 13071 14540    3   95  196   19  351    1000 27950  688   326 325 0
RING: 18021 13109 14501    1   88  200   19  357    1000 27950  676   324 325 0
RING: 17329 12593 14010    4   71  194   26  338    1000 26922  662   314 314 0
RING: 14676 10619 11583    4   72  148   19  340    1000 22444  707   340 341 0
RING: 16087 11391 12559    4   66  164   20  385    1000 24222  774   367 367 0
RING: 16098 11285 12516    2   73  161   18  400    1000 24090  777   365 365 0
RING: 16276 11502 12850    3   71  166   20  379    1000 24618  781   373 373 0

==== ercm09/emas-2900/sys_cli1s.txt ====
! FILE 'CLI1S'
! FILE 'CLI1S'
!**************
!* CLI1S      *
!* 16.JUN.80  *
!**************

%PERMINTEGERFNSPEC SVC(%INTEGER EP, %INTEGER P1, %INTEGER P2)
%PERMINTEGERMAPSPEC INTEGER(%INTEGER X)
%PERMBYTEINTEGERMAPSPEC BYTEINTEGER(%INTEGER X)
%PERMINTEGERFNSPEC ADDR(%INTEGERNAME X)
%SYSTEMINTEGERFNSPEC GETID


%CONTROL K'101011';                    ! TRUSTED

%RECORDFORMAT DUMREC(%INTEGER X)
%CONSTRECORD (DUMREC) %NAME NULL = 0


%BEGIN

==== ercm09/emas-2900/log_t44sat2.txt ====
*T44 RING AT P=1, SATURATION, 12 SEC INTS, LENGTHS 240->0
RING: 18018 11361 13568    4  100  205   21  522    1000 25578  408   202 203 0
RING: 13747 8592 10311    2   78  154   22  399    1000 19404  313   155 154 0
RING: 20897 13140 15720    0  115  234   27  609    1000 29610  481   235 235 0
RING: 20733 13157 15588    0   98  245   23  607    1000 29484  480   234 234 0
RING: 19412 12446 14578    0  112  218   23  568    1000 27724  451   221 221 0
RING: 18582 11485 13712    1   95  214   26  580    1000 25868  492   244 245 0
RING: 19332 12145 14291    1  108  213   24  610    1000 27136  511   256 256 0
RING: 12921 8002 9436    0   55  157   21  412    1000 17914  339   170 169 0
RING: 19266 11917 14203    0   95  224   23  609    1000 26818  507   253 253 0
RING: 19409 11996 14337    0  103  225   24  605    1000 27034  514   256 256 0
RING: 16133 9915 11718    0   92  168   18  540    1000 22192  525   258 259 0
RING: 18136 11545 13200    0  101  193   20  606    1000 25370  603   295 295 0
RING: 18287 11501 13329    0  100  200   21  601    1000 25456  606   296 296 0
RING: 18425 11290 13447    1  103  191   20  613    1000 25370  605   295 295 0
RING: 12175 7269 8820    0   55  136   23  401    1000 16512  390   193 192 0
RING: 13367 8193 9131    1   69  170    8  535    1000 17840  533   267 267 0
RING: 15108 8984 10236    0   76  176   29  604    1000 19804  601   300 301 0
RING: 15056 9021 10268    0   82  178   15  603    1000 19866  602   301 301 0
RING: 15039 9014 10204    1   71  175   30  605    1000 19800  600   300 300 0
RING: 15079 9012 10272    0   88  173   21  601    1000 19866  604   301 301 0

==== ercm09/emas-2900/log_t44sat3.txt ====
*T44, SATURATION TEST, PRIO=1, 240->0, RING8S AT BOTH ENDS
RING:  3670 23744   95    2  213    4   27  436  787 24326  392   196 195 0
RING:  4856 32101  141    0  286    4   35  580 1040-32650  520   260 261 0
RING:  4942 32475  136    0  289    2   39  587 1056-32272  533   264 264 0
RING:  4902 32483  136    0  284    6   38  581 1056-32272  530   264 264 0
RING:  4945 32735  130    0  281    5   44  587 1064-32020  532   266 266 0
RING:  4305 27470  155    2  253    6   17  527 1044 28168  522   261 262 0
RING:  4866 31016  175    0  286    6   20  597 1200 31800  600   300 300 0
RING:  2869 17566  102    0  151   10   13  348  680 18020  341   171 170 0
RING:  4823 31018  179    1  286    7   19  590 1200 31800  600   300 300 0
RING:  4811 31033  164    0  283    6   18  596 1200 31800  600   300 300 0
RING:  4172 23064  181    1  226    5   28  513 1060 23752  530   265 266 0
RING:  4746 25024  187    0  281    4    8  596 1200 25800  600   300 300 0
RING:  4770 24997  217    1  275    2    8  600 1204 25800  602   301 300 0
RING:  4756 25009  207    0  256    7   33  588 1196 25800  598   299 300 0
RING:  3043 15680  119    0  168    6    4  379  756 16168  378   190 188 0
RING:  4072 20657  174    1  197    6   32  503 1176 21274  591   294 296 0
RING:  4562 22646  202    0  205    6   29  568 1416 23302  712   354 354 0
RING:  4624 22821  205    0  207   11   24  584 1424 23496  714   356 356 0
RING:  4637 22704  192    0  200   11   32  579 1416 23364  712   354 354 0
RING:  4634 22671  221    0  204   14   33  575 1416 23364  713   354 354 0

==== ercm09/emas-2900/pssbuild_dvdup.txt ====
;! FILE 'DVDUP'
;.TIME40
;**************************************
;*         DVDUP                      *
;*  INTERFACE BETWEEN HARDWARE AND IMP*
;*  DATE:  27.MAR.81                  *
;**************************************
 
PS=177776; PROCESSOR STATUS WORD
 
IDLEST=-1; SUPERVISOR IDLE FLAG
 
INTVAL=40; DEDICATED LOCATION FOR INTERRUPT NUMBER
ALARMF=44; DITTO - FOR CLOCK
PSECT=46; DITTO - CURRENT PSECT
LASTPS = 54
INTINF=56
 
UPAR=177640
UPDR=177600
 

==== ercm09/emas-2900/b_ftpgbx.txt ====
new
prep x25gen_ftpd5s,ftpd5s#imp,x,g,clean,b
dimp11 ftpd5s#imp
link11 /ftpd5s
ftpd5s#rel
.stack 2400
.streams 1
.stackseg 6
.name ftpx
.end
ftpg5s
c ftpg5s#abs,ftpgxby
destroy ftpg5s#abs
alist11 ftpd5s#imp
list ftpd5s#lst,.lp23

==== ercm09/emas-2900/b_ncon.txt ====
imp11 ncon10s/,l
link11
ncon10s#rel
i77perm
.stack 1400
.streams 1
.name node
.end
ncon10y
list ncon10y,.bpp6

==== ercm09/emas-2900/election80.txt ====

                     Lab Seats

       SEAT         Maj   2nd           Lab Candidate
61    Niddrie         -                 D.Brown
30    Craigentinny   487  (snp)         L.Imrie     (byelection)
62    Craigmillar   1537                Kerr/Black  (Was W. Black)
60    Gilmerton     1432  (snp)         B. Lonie
35    Moat           651  (snp)         B. Wilson
59    Inch           552  (snp)         I. Campbell
20    Harbour        474  (snp)         J. Hastie
42    Holyrood       434  (snp)         R. Kerley
36    Stenhouse      419  (snp)         J. Henderson
 9    Granton        331  (snp)         G. Monies
46    Milton         289  (con)         V. Oliver    (no snp)
19    Lorne          263  (con)         M. Saren
33    Sighthill      227  (snp)         J.McKay      (now safer)
 8    Muirhouse      193  (snp)         McLaughlin
58    Kaimes         160  (con)         Bjorg McKenzie
54    Firhill        159  (con)         G. Barton
27    Calton          86  (con)         C. McKinnon

==== ercm09/emas-2900/node_subpb1145.txt ====
DEIMOS VSN 9.9  16.JUNE.80 (CLI&LOAD)
3500
DVRUBY N 0
SUP35 60002 0
PERM2Y 60006 0
BTT6Y 60012 150
BDK5Y 60016 70
FSYS1Y 60022 300
LOAD7Y 60026 300
CLI1Y 60032 200
MOTH6Y 60036 50
END
-6 304
-7 310 DQS11 # 1
-20 324 DQS11 #2
-21 330
-22 404 DQS11 #3
-23 410
-24 424 DQS11 #4
-25 430
-26 454 PARR INT #1

==== ercm09/emas-2900/b_lmcoxs.txt ====
prep x25gen_lmcoxs,lmcoxs#imp,clean
dimp11 lmcoxs
link11 /map
lmcoxs
.streams 1
.stack 1000
.end
lmcoxs
destroy lmcoxy
rename lmcoxs#abs,lmcoxy

==== ercm09/emas-2900/rolls.txt ====
! FILE 'ROLLS'
!**********************
!* ROLLS/ROLLY   *
!* DATE: 29.MAY.81   *
!*********************
%CONSTSTRING (7) VSN = "VSN001B"
!! STACK = 300, STREAMS = 1

%CONTROL K'100001'


%RECORDFORMAT XF(%BYTEINTEGER UNIT,FSYS,%BYTEINTEGERARRAY FNAME(0:5))
%CONSTRECORD (XF) %NAME NULL = 0
%SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)
%BEGIN

   %OWNINTEGER MON = 0

%RECORDFORMAT RJEF(%BYTEINTEGERARRAY DATA(0:239))
%RECORDFORMAT NSI1F(%BYTEINTEGER FN,SUFL,ST,SS,FLAG,UFLAG,  %C
   %RECORD(RJEF) RJE)

==== ercm09/emas-2900/telepacrep.txt ====
@make[report]
@device[x2700]
@flushleft[Edinburgh Regional Computing Centre]
@majorheading[Report on Pilot TelePAC PSE]

SEEL made a final delivery of hardware on the 29th April that completed the
30 port, 2Mbyte TelePAC switch. 
The software that was delivered with the switch was
version 0468 and the testing has been done using that version.

The switch has been in user service since the 8th April and the load has
been built up steadily. There are currently 19 active connections with a
typical loading of nearly 100 calls.

@heading[Hardware Report]

The first part of the switch was delivered on the 28th March,
during the initial testing it became clear that
 this unit had
a faulty backplane. SEEL turned out very promptly to fix it but the
obscure nature of the fault meant that the unit was down for about 16 hours.

==== ercm09/emas-2900/erteicl_init70.txt ====

!THE INITIALISE TASK "INIT"   - FOR EMAS 2980.
!E.R.T.E. MK.3 VERSION  -  VIA THE DQS 11/E

!   W.S.C.   27TH JULY 1976
!   J.C.A.   31ST JAN 1978
!   G.J.B.   19TH SEPT 1978
!   J.C.A.   27TH SEPT 1978
!   B.G.   25.JAN.80


!   ???   LAST UPDATE 21:12:78   - FILE INIT70

! THIS VERSION IS FOR USE WITH ICL VME/B


!THE TASK RUNS IN SYSTEM SLOT 29

!SET STACK TO 140   STREAMS=0   PRIORITY=1

%CONTROL K'101011'

==== ercm09/emas-2900/b_comms.txt ====
imp11 gen_comm77/comm77#rel
link11
i77perm
comm77#rel
.stack 1000
.streams 1
.name comm
.end
alist11 gen_comm77/.lp23

==== ercm09/emas-2900/graham.txt ====
GEC.D31 = 15000040.(FTP001,RATS).GECDFTP.00000000203150.FTP.MAIL
GEC.D2  = 15000040.(FTP001,RATS).GECDFTP.00000000200250.FTP.MAIL]

==== ercm09/emas-2900/kents1280_rjes8.txt ====


%CONSTSTRING (7) VSN = "VSNKB8S"

!********************************
!*  EMAS-2900  FEP  RJE SERVER  *
!*   FILE: RJES8/RJES8Y         *
!*   DATE: 18.SEP.80             *
!* MODIFIED FOR RING 27.OCT.80
!********************************
!! STACK SIZE = 300

%SYSTEMROUTINESPEC MAP HWR(%INTEGER SEG)
%SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)

%RECORDFORMAT DMF(%INTEGER I)

%CONSTRECORD (DMF) %NAME NULL = 0


%CONTROL K'100001'

==== ercm09/emas-2900/sys_perm2s.txt ====

;  SHARED PART OF PERM FOR PSR COMPILER
;*******************
;* PERM0S VSN 12   *
;* 23.APR.80       *
;*******************

PON=2
POFF=3
DELETE=5;  EMT DELETE TASK
GETID=14; EMT 12. - GET ID
PONPOF=21;  EMT 17. - PON POFF

TTID=1
DKID=3
DIRID=4
LPID=14

LOADID=41; ACTUAL ID OF LOADER TASK  ***** MAY CHANGE **************

LNB=R5

==== ercm09/emas-2900/commsrpt.txt ====



Edinburgh Regional Computing Centre

For the attention of the E. C. U. C.

                            Report on Communications

SWITCHES

The major changes in the network, to achieve a greater level of  reliability  as 
described in the last report, have been carried out over  the  summer  vacation.  
The four main switches are now fully interlinked with 48kb/s links.

The major changes involved in this  reconfiguration have caused a fair amount of 
disruption to the service but this was restricted to the vacation period.

The detailed performance figures are as follows:-

a) GEC Switches

==== ercm09/emas-2900/isotrsl_slide1.txt ====
{{scaling factor(0.67)}}
{{box(0,6)(26,8);inlabel(0.5,"HDLC")}}
{{box(0,8)(26,11);inlabel(0.5,"X25 L3")}}
{{box(0,11)(21,13);inlabel(0.5,"Yellow Book")}}
{{box(0,13)(17,25);inlabel(0.5,"@b@b@b@b@bBlue Book@b(File Transfer Protocol")}}
{{box(5,19)(11,25);inlabel(0.5,"Grey@bBook@b(Mail)")}}
{{box(11,19)(17,25);inlabel(0.4,"Red@bBook@b(JTMP)")}}
{{box(17,13)(21,25);inlabel(0.4,"Green@bBook@b@b(TS29)")}}
{{box(21,11)(26,25);inlabel(0.4,"Green@bBook@b@b(XXX)")}}
{{label(0,3,0.5,0,"UK Academic 'Coloured Book' structure")}}

==== ercm09/emas-2900/sys_rx023s.txt ====
! FILE 'RX022S'
!
!     RX02 FLOPPY DISC HANDLER
!
!     THIS IS THE UNIT 0&1 VERSION
!
!     %% LAST UPDATED 2ND APRIL 1980   FILE=RX022S
!
!     USES SYSTEM SLOTS 8 AND 14. INT SLOT -8.
!
!     CALLING PARAMETERS ARE AS FOLLOWS
!        P_A1=MODE    (0=READ,1=WRITE)
!        P_A2=ADDRESS OF BUFFER IN MEMORY
!        P_A3=BLOCK NUMBER ON DISC
!
!     SINCE DEIMOS DEALS IN 512 BYTE BLOCKS ALL TRANSFERS ARE 2*256
!BYTE SECTORS. THE FIRST 77 BLOCKS ARE RESERVED FOR THE SYSTEM.
!WITHIN EACH TRACK OF 26 SECTORS THE SECTORS ARE INTERLEAVED.
!
!     ON EXIT P_A1=FAULT NO. (0=OK)
!

==== ercm09/emas-2900/node_nlps.txt ====
!**********************
!* NLPS/NLPY       *
!* DATE: 11.MAR.80   *
!*********************
%CONSTSTRING (7) VSN = "VSN001C"
!! STACK = 400, STREAMS = 3

%CONTROL K'100001'
!STACK=400, STREAMS=1


%RECORDFORMAT XF(%BYTEINTEGER UNIT,FSYS,%BYTEINTEGERARRAY FNAME(0:5))
%SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)
%SYSTEMROUTINESPEC LINKIN(%INTEGER SER)

%BEGIN

      %CONSTINTEGER CONTROL SER = 11

%RECORDFORMAT RJEF(%BYTEINTEGERARRAY DATA(0:239))
%RECORDFORMAT NSI1F(%BYTEINTEGER FN,SUFL,ST,SS,FLAG,UFLAG,  %C

==== ercm09/emas-2900/isotrsl_slide2.txt ====
{{scaling factor(0.67)}}
{{label(0,25,.4,0,"")}}
UK Coloured Books

Green Book    -   Terminal Protocols
                  (Use of X29)
Yellow Book   -   'Transport Protocol'
                  (Now seen as Network Service)
Blue Book     -   NIFTP - File Transfer Protocol

Grey Book     -   MAIL - Mail Protocol

Red Book      -   JTMP - Job Transfer and
                         Manipulation
------------------------------------------------

Orange Book  -    Cambridge Ring Protocols

Pink Book    -    Ethernet - How to use ISO

Faun Book    -    SSMP - Simple Screen 

==== ercm09/emas-2900/isotrsl_slide3.txt ====
{{box(0,0)(8,8);inlabel(.4,"Physical")}}
{{box(0,8)(8,16);inlabel(.4,"Data Link")}}
{{box(0,16)(8,24);inlabel(.4,"Network")}}
{{box(9,0)(17,8)}}
{{box(9,8)(17,16);inlabel(.4,"Lap-B")}}
{{box(9,16)(17,20);inlabel(.4,"X25(1980)")}}
{{box(9,20)(17,24);inlabel(.4,"Yellow Book")}}
{{box(18,0)(26,8)}}
{{box(18,8)(26,16);inlabel(.4,"X25(1984)-L2")}}
{{box(18,16)(26,24);inlabel(.4,"x25(1984)-L3")}}
{{label(2,25,.4,0,"Transition to ISO Network Layer")}}

==== ercm09/emas-2900/isotrsl_slide4.txt ====
{{box(0,2)(22,4);inlabel(.4,"L2")}}
{{box(0,4)(22,8);inlabel(.4,"X.25(1984)")}}
{{box(0,8)(11,24);inlabel(.4,"@b@b@b@b@bFTP")}}
{{box(4,15)(8,24);inlabel(.3,"Mail")}}
{{box(8,15)(11,24);inlabel(.3,"Job")}}
{{box(11,8)(16.5,12);inlabel(.3,"Tran")}}
{{box(16.5,8)(22,12);inlabel(.3,"Tran")}}
{{box(11,12)(16.5,16);inlabel(.3,"Sess")}}
{{box(16.5,12)(22,16);inlabel(.3,"Sess")}}
{{box(11,16)(16.5,20);inlabel(.3,"Pres")}}
{{box(16.5,16)(22,20);inlabel(.3,"Pres")}}
{{box(11,20)(16.5,24);inlabel(.3,"FTAM")}}
{{box(16.5,20)(22,24);inlabel(.3,"X400")}}
{{label(2,0,.4,0,"ISO Transition Stages")}}

==== ercm09/emas-2900/x1.txt ====
Here is my list, I can't find the proper list of contacts etc, but
if you wants names/addresses for any of them please let me know
         Amdahl:       BBN:         BT:       Camtec:      DCA:
         Dynatech:     GEC:         IPAC:     Memotec:     Motorola:
         Northern Telecom:          Plessey:  SESA:        STC:
         Telefile:    Telematics:   Thorn-Ericsson.

The following companies were approached but do not offer a distinct switch
at this time:

         CASE:         Logica:                Timeplex (PADs only):
         Jaguar:       Gandalf (PADs only):   Norsk Data.

Brian Gilmore

==== ercm09/emas-2900/ednet0686.txt ====
{{circle(23,11.5,.5)}}
{{INLABEL(.14,"Fe4")}}
{{circle(11,16,1.5);inlabel(.2,"TelePAC@b15003000")}}
{{circle(0,0,0)}}
{{circle(13,21.7,2.5);inlabel(.35,"KB-CPSE@bGEC 4190@b")}}
{{inlabel(.14,"@B@B@b@b000015000000")}}
{{circle(13,4,2.5);inlabel(.35,"AT-CPSE@bGEC 4190@b")}}
{{inlabel(.14,"@B@B@b@b000016000000")}}
{{CIRCLE(23,2.8,0.5);inlabel(.14,"Fe3")}}
{{CIRCLE(23,10.5,0.5);inlabel(.14,"Fe1")}}
{{CIRCLE(23,9.5,0.5);inlabel(.14,"Fe2")}}
{{CIRCLE(23,3.8,0.5);inlabel(.14,"Fe2")}}
{{CIRCLE(32.5,21.7,1.5);INLABEL(.14,"JANET@bPSE")}}
{{CIRCLE(23,7.3,.5);inlabel(.14,"Fe2")}}
{{circle(12.75,24.8,.1);fill(c12)}}
{{circle(14.75,24.8,.1);fill(c13)}}
{{circle(16.75,24.8,.1);fill(c14)}}
{{circle(20.75,25.2,0)}}
{{circle(6.75,25.2,0)}}
{{CIRCLE(6.75,1.4,0)}}
{{circle(8.75,1.4,0)}}

==== ercm09/emas-2900/cpsesumm.txt ====
@heading[CPSE Survey Summary]
@varbatim[
Name       Range (maxs)  Cost(k):10     18     48    100     Notes

===================================================================
==== ercm09/emas-2900/ftppd_source.txt ====
%control 1
#if ~x
#if n
#report NSI version
#else
#report ring version
#fi
#else
#report ts version
#fi
%include "ercm09.b_deimosspecs"

#if ~b
%conststring (9) vsn = "FTPQ..1o "
#else
%conststring (19) vsn = "FTPQ..1o (on FTQ) "
#fi

%begin
%externalstring (255) %fnspec cli param


==== ercm09/emas-2900/colors.txt ====
! FILE 'ERCM08.INC_COLOURDEFS'
%CONTROL K'100001'

%BEGIN

!
!     ***   COLOUR DEFINITIONS
!
%CONSTINTEGER BLACK=16
%CONSTINTEGER RED=17
%CONSTINTEGER GREEN=18
%CONSTINTEGER YELLOW=19
%CONSTINTEGER BLUE=20
%CONSTINTEGER MAGENTA=21
%CONSTINTEGER CYAN=22
%CONSTINTEGER WHITE=23
%CONSTINTEGER CURBACK=BLACK;            !BACKGROUND FOR EVERYONE
!        ***   OWN ROUTINES FOR DRIVING INTECOLOUR DISPLAY
!FILE 'ERCM08.COLOURS'
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

==== ercm09/emas-2900/b_mail.txt ====
new
prep gen_mailte,mailte#imp,x,g,clean
dimp11 mailte#imp
link11 /mailte
mailte#rel
.stack 2400
.streams 1
.stackseg 6
.name mail
.end
mailte
c mailte#abs,mailtey
destroy mailte#abs

==== ercm09/emas-2900/deimosperm.txt ====
!
!      specs for deimos perm routines
!
%externalroutinespec pon(%record(*) %name p)
%externalroutinespec poff(%record(*) %name p)
%externalroutinespec ponoff(%record(*) %name p)
%externalintegerfnspec mapvirt(%integer ser,seg1,seg2)
%externalintegerfnspec map abs(%integer vadd,len,id)
%externalintegerfnspec getid
%externalroutinespec alarm(%integer ticks)
%externalroutinespec linkin(%integer ser)
%externalroutinespec maphwr(%integer segs)
%externalintegerfnspec mappsect(%integer seg,task)
%externalroutinespec push(%record(*)%name q,%record(*)%name m)
%externalrecord(*)%mapspec pop(%record(*)%name q)
%externalintegerfnspec time
%externalroutinespec set prio(%integer prio)
%constbyteintegername own id==(8_160030);   !8.1 compiler bug
%constbyteintegername fsys == k'160055'
%constbyteintegername id == k'160030'
%constbyteintegername int==(8_160060)

==== ercm09/emas-2900/b_lmacc.txt ====
imp11 lmaccs/,l
link11
lmaccs#rel
i77perm
.stack 1000
.streams 0
.end
lmaccy
alist11 lmaccs/.lp23
list lmaccy,.bpp6

==== ercm09/emas-2900/init70.txt ====

!THE INITIALISE TASK "INIT"   - FOR EMAS 2980.
!E.R.T.E. MK.6 VERSION  -  VIA DUP11S

!   W.S.C.   27TH JULY 1976
!   J.C.A.   31ST JAN 1978
!   G.J.B.   19TH SEPT 1978
!   J.C.A.   27TH SEPT 1978
!   B.G.   25.JAN.80


!   ???   LAST UPDATE 21:12:78   - FILE INIT70

! THIS VERSION IS FOR USE WITH ICL VME/B


!THE TASK RUNS IN SYSTEM SLOT 29

!SET STACK TO 140   STREAMS=0   PRIORITY=1

%CONTROL K'101011'

==== ercm09/emas-2900/erteicl_arith2.txt ====

! ARITHMETIC ROUTINE (SORT OF DOUBLE WORD)

!W.S.C. 24TH FEB 1977

!LAST UPDATED 25/03/77   09:45

%CONTROL K'001000'
%EXTERNALROUTINE ARITH(%INTEGERNAME N1,N2,%INTEGER BY1,BY2,OP)

   !N1 & N2 ARE DOUBLE WORD INTEGERS WITH UP TO 100 IN N2,
   !THE 1000'S IN N1.DITTO BY1 AND BY2.THE RESULT IS PUT
   !INTO N1 &N2. FOR MPY AND DIV BY1 IS ASSUMED TO BE ZERO.
   !   OP MAY BE ONE OF THE FOLLOWING VALUES:-

%CONSTINTEGER ADD=0
%CONSTINTEGER SUB=1
%CONSTINTEGER MPY=2
%CONSTINTEGER DIV=3

%SWITCH SW(0:3)

==== ercm09/emas-2900/grate.txt ====
easygraph title "MTBF - KB 4190 - 3 month rolling average" xaxis 20,"Month - Jan
84 to Nov 85"
xformat 3,0
xscale 0,1.5
yaxis 16,"Hours MTBF"
yformat 3,0
yscale 0,150
flatnumber
linetype line+points
pen 3
symbol square
data
1 366
2 439
3 274
4 313
5 183 6 183
7 219
8 274
9 274
10 244

==== ercm09/emas-2900/statnode7s.txt ====
%REALSLONG
!
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
!              NODE STATISTICS PACKAGE
!
!
!
!        GRAPH1  - CONNECTS V BLKS AND CPU
!
!        GRAPH2  - 2900 USERS V BLOCKS RXD & TXD
!
!        GRAPH3  - 2970 USERS V BLOCKS RXD & TXD
!
!        GRAPH4  - FREQUENCY V CON/MIN/USER
!
!
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!

==== ercm09/emas-2900/ednet1284.txt ====
{{circle(10,26,0.6)}}
{{INLABEL(.18,"N1")}}
{{circle(10,24.5,0.6)}}
{{INLABEL(.18,"N6")}}
{{circle(10,22.5,.75)}}
{{inlabel(.18,"RING@b")}}
{{inlabel(.12,"@b@bN72")}}
{{circle(10,15.7,3)}}
{{circle(10,4,3)}}
{{circle(24,11.5,0.5)}}
{{inlabel(.14,"Fe4@bT3")}}
{{circle(24,10.5,0.5)}}
{{inlabel(.14,"Fe1")}}
{{circle(24,9.5,0.5)}}
{{inlabel(.14,"Fe2")}}
{{circle(24,3,0.5)}}
{{inlabel(.14,"Fe2")}}
{{circle(30.5,15.7,1.5)}}
{{INLABEL(.14,"JANET@bPSE")}}
{{circle(24,7,.5)}}
{{inlabel(.14,"Fe1")}}

==== ercm09/emas-2900/statskbpad.txt ====

Dump GEC logfile  Version  1.2

Log:ACCNTS.GKB840829
 To:L3




    No.       Time

 82610   23:42:20  Link   LAU0B      Frms (RX/TX):  38120  37933, Calls:  152    5, Bytes: 286317 2146692 da 1-3 6557 65 0
 Max Bf: 3375 Cur Bf: 2848 Vcs   76 Min Bf: 2845 Req Dl:    0


         24:00:00  Date:    27/  8/ 1984   0000

         24:00:00  Date:     0/  1/ 1972   0137  1667   00:30:44  Link   LAU0B      Frms (RX/TX):      0      0, Calls:    0    0, Bytes:     54     54 da 1-3 0 0 0
 Max Bf: 3375 Cur Bf: 2847 Vcs   74 Min Bf: 2841 Req Dl:    0
  3510   01:03:52  Link   LAU0B      Frms (RX/TX):      0      0, Calls:    0    0, Bytes:    110    110 da 1-3 0 0 0
 Max Bf: 3375 Cur Bf: 2844 Vcs   85 Min Bf: 2837 Req Dl:    0

==== ercm09/emas-2900/ednet1285.txt ====
{{circle(23,11.5,.5)}}
{{INLABEL(.18,"EML")}}
{{circle(31.5,3,0.6)}}
{{INLABEL(.18,"N6")}}
{{circle(31.5,4.5,.75)}}
{{inlabel(.18,"RING@b")}}
{{inlabel(.12,"@b@bN72")}}
{{circle(10,21.7,3);inlabel(.4,"KB-CPSE@bGEC 4190@b")}}
{{inlabel(.14,"@B@B@b@b000015000000")}}
{{circle(10,4,3);inlabel(.4,"AT-CPSE@bGEC 4190@b")}}
{{inlabel(.14,"@B@B@b@b000016000000")}}
{{CIRCLE(28,9.5,0.5)}}
{{inlabel(.14,"Fe4@bT3")}}
{{CIRCLE(23,10.5,0.5)}}
{{inlabel(.14,"Fe1")}}
{{CIRCLE(23,9.5,0.5)}}
{{inlabel(.14,"Fe2")}}
{{CIRCLE(23,3,0.5)}}
{{inlabel(.14,"Fe2")}}
{{CIRCLE(30.5,21.7,1.5)}}
{{INLABEL(.14,"JANET@bPSE")}}

==== ercm09/emas-2900/ringtester_ringrs.txt ====
! COMPILE THIS MODULE WITH 15000 STACK & 0 STREAMS
! RINGRS/RXR ALI AUG 1979
! CAMBRIDGE RING RECEIVE HANDLER
! USES BSP PROTOCOL. PASSES TX TASKS TO RINGTS/TXR
! SEE RPTS/RPT FOR OPERATOR INTERFACE
!
%CONTROL K'100001'
%BEGIN
%INTEGERARRAY TXBUFFER(0:153)
!
%CONSTBYTEINTEGERNAME MY ID = K'160030', INT = K'160060'
%CONSTINTEGER ATBLIM=31, PTBLIM=127; ! TRACE BUFFER LIMITS
%CONSTINTEGER RINGSER=29,TXRSER=28,TXRDUMPSER=27,TRACESER=26; ! SERVICE NRS
%CONSTINTEGER LASTTIMERMAX=7, HLRILIM=2099
!
! SETTINGS FOR SET TIMER REQUESTS
!
%CONSTINTEGER TSTATE E ALARM = 0, RSTATE E ALARM = 1, RBALARM = 2
%CONSTINTEGER ONE SECOND = 50, TENTH SEC = 5, TOLIM=5
!
! SETTINGS FOR TSTATE & RSTATE

==== ercm09/emas-2900/sbldrl3s.txt ====
! FILE 'SBLD3KS'
!**********
!* SBLD13S *
!* NB: NOT SAME AS BPL SBLD1S !!!!
!* DATE:  17.MAR.80               *
!* SUPERVISOR BUILD PROGRAM         *
!*************************************

%PERMROUTINESPEC SVC(%INTEGER EP, %INTEGERNAME P1, %INTEGER P2)
%PERMINTEGERMAPSPEC INTEGER(%INTEGER X)
%PERMBYTEINTEGERMAPSPEC BYTEINTEGER(%INTEGER X)
%PERMINTEGERFNSPEC ADDR(%INTEGERNAME X)
%PERMINTEGERFNSPEC ACC
%CONSTINTEGERNAME DUMMY = 0


%CONSTINTEGERNAME NULLI = 0


%BEGIN


==== ercm09/emas-2900/node_prt12us.txt ====
! file 'node_prt12us'
!*********************
!*    prt12s/prt12y    *
!*version for node  *
!!!!!!!!!!!!!!!!!!!!!!
!stack = 400

%control 1
%include "deimosperm"
%constinteger kernel ser = 29
! %owninteger secondary = 0;      !prim = 0, sec = 1
%constintegername secad == k'060016';  ! in buffer seg, set by node

%constinteger wmax = 56;       ! max no of writes
%constinteger sfmask = 63;      ! circ buffer size for writes


%conststring (13) vsn = "prtn:vsn012r "
#datestring;                            ! use prep on this



==== ercm09/emas-2900/log230982.txt ====
23/09/82  01:45:25 N009T000  6 20 156 156 2 0 182 207 32 4 7 9 5
23/09/82  01:45:25 N006T000  6 7 156 156 34 9 182 194 32 4 7 9 5
23/09/82  01:45:25 N006T000  6 7 156 156 33 0 181 198 32 4 7 9 5
23/09/82  01:45:30 N009T000  6 20 156 156 21 90 90 223 32 5 7 9 5
23/09/82  01:45:30 N006T000  6 7 156 156 34 90 90 216 32 5 7 9 5
23/09/82  01:45:35 N009T000  6 17 72 72 21 90 90 226 32 65 0 9 4
23/09/82  01:45:40 N009T000  6 17 72 72 21 90 90 234 32 64 0 9 4
23/09/82  01:45:45 N006T000  6 7 156 156 34 72 9 233 32 4 7 9 8
23/09/82  01:45:45 N009T000  6 20 156 156 29 72 9 244 32 4 7 9 8
23/09/82  01:46:10 N009T000  6 20 156 156 5 78 78 253 32 5 14 11 10
23/09/82  01:46:10 N006T000  6 7 156 156 34 78 78 241 32 5 14 11 10
23/09/82  01:46:10 N009T000  6 17 72 72 21 90 90 243 32 28 0 4 1
23/09/82  01:46:20 N009T000  6 17 72 72 21 90 90 9 32 34 0 5 2
23/09/82  01:46:35 N009T000  6 17 72 72 15 0 15 6 32 1951 0 206 203
23/09/82  01:46:55 N009T000  6 17 72 72 21 90 90 20 32 65 0 9 4
23/09/82  01:47:25 N009T000  6 20 156 156 3 0 180 36 32 4 7 9 5
23/09/82  01:47:25 N006T000  6 7 156 156 34 9 180 50 32 4 7 9 5
23/09/82  01:47:25 N009T000  6 20 156 156 29 72 5 39 32 7 15 12 11
23/09/82  01:47:25 N006T000  6 7 156 156 34 72 5 52 32 7 15 12 11
23/09/82  01:47:30 N006T000  6 7 156 156 34 9 75 60 32 4 7 9 5
23/09/82  01:47:30 N009T000  3 23 15 0 4138 461 109 1598 826 28 8 1409 354 940 643 18 598 0 0 0 0 0 0

==== ercm09/emas-2900/iprogsou_link11.txt ====
%EXTERNALROUTINE LINK11(%STRING(63) PARAM)
   %STRING(63) MAP
   %OWNINTEGER BRIANS FIDDLE = 255
   %CONSTINTEGER LIMIT = 128
   %OWNINTEGER CODE BASE = 2<<13, GLA BASE = 0, SPBASE = 7<<13
   %OWNINTEGER ALONE = 0, MAIN EP = -1, ENTRY = 0
   %OWNSTRING(31) TASK ID = ""
   %OWNSTRING(31) FIX FILE = ""
   %OWNINTEGER STREAMS = 2
   %OWNSTRING(31) PERM FILE = ".PERM11#REL", %C
                  LIB  FILE = ".LIB11#REL",  %C
                  OBJECT    = ""
   %OWNINTEGER STACK = 8*1024
   %CONSTINTEGER PLUG BIT = 64
   %EXTERNALINTEGERFNSPEC EXIST(%STRING(255) S)
   %EXTERNALROUTINESPEC DEFINE(%STRING(63) S)
   %EXTERNALSTRING(6) %FNSPEC IMP11HOST
   %EXTERNALROUTINESPEC PROMPT(%STRING(15) S)
   %RECORDFORMAT TABFM(%INTEGER ADDR, INDEX, %C
                       %BYTEINTEGER TYPE, %STRING(63) TEXT)
   %CONSTINTEGER MAX TABLE = 400

==== ercm09/emas-2900/reportfeb84.txt ====


Communications Group - Termly Report
------------------------------------


Personnel
---------

     Since Bill Byers and Peter Kirkby joined us in December the communications
group is now complete again.


Service Software Support
------------------------
   TCPs
   ----
      The software is stable and only a small amount of effort is being
   put into its support.

   FEPs

==== ercm09/emas-2900/kmc11_krings.txt ====
!
! Ring handler for KMC11
! DATE 11.nov.81
!
!
$list 1

$def flag=sp0, rstatl=sp1, rstath=sp2, rxstate=sp3, txstate=sp4
$def itim = sp5, rxhigh=sp6, rxmid=sp7, rxlow=sp8
$def otim = sp9, txhigh=sp10, txmid=sp11, txlow=sp12
$def temp=sp13, temp1=sp14, time = sp15
                     ! sp5, sp9 & sp15 are spare
!
$def idatal = adr0, idatah = adr1, odatal = adr2, odatah = adr3
$def ibusl = adr4, ibush = adr5, obusl = adr6, obush = adr7
!
$def nprreq=npr.0, nonexmem=misc.0, timeout=misc.4, settime = 16_10
$def bits1617 = 16_0c
$def txints=csr0.0, rxints=csr0.1, reqi11 = csr0.4, oack = csr0.7
$def rfn = csr2.0, kmcreq = csr3.4
$def rxreply = 16_10;                   ! kmcreq+fn=0

==== ercm09/emas-2900/tr.txt ====
LINK11
ERCM09.I77PERM
xprotb#REL
.STACK 2000
.STREAMS 1
.NAME xpr1b
.END
xpr1b#OBJ
destroy xpr1by
rename xpr1b#obj,xpr1by
alist11 xprotb#imp/l2
list l2,.lp23

==== ercm09/emas-2900/nrs.txt ====
.nf
.H1 Forward Lookup

.H1 Context X29 Subnetwork JANET

Long name         CERN.GEC-A
Short name        CERN.GEC-A
DTE string         000009001002

Long name         CERN.IBM
Short name        CERN.IBM
DTE string         0000090030020

Long name         CERN.INDEX
Short name        CERN.INDEX
DTE string         0000090030010

Long name         CERN.NDDEV
Short name        CERN.NDDEV
DTE string         0000090030051


==== ercm09/emas-2900/b_parr.txt ====
imp11 parr4s
link11
parr4s#rel
i77perm
.stack 400
.streams 0
.name para
.end
parr4y

==== ercm09/emas-2900/node_nbsp8s.txt ====
! FILE 'NBSP8S'


!********************************
!*    BSP TO NSI INTERFACE       *
!*      FILE: NBSP8S             *
!* DATE: 08.MAR.82               *
!* BASED ON KENTS_BSP4S & GATE5  *
!*********************************
!!  STK = 1000,  STRM = 1

%CONSTINTEGER OWN NODE = 72
%CONSTINTEGER FEP ADDRESS = 9
%OWNINTEGER SBRF = 0

%SYSTEMROUTINESPEC LINKIN(%INTEGER SER)
%SYSTEMROUTINESPEC MAP HWR(%INTEGER SEG)
%SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)
%PERMROUTINESPEC SVC(%INTEGER EP, R0, R1)

%RECORDFORMAT DMF(%INTEGER I)

==== ercm09/emas-2900/usercmdec.txt ====
Edinburgh Regional Computing Centre
-----------------------------------

      For the attention of the Edinburgh Computer Users Committee
      -----------------------------------------------------------


                  Report on Communications
                  ------------------------



TCPs     The number of terminals on the Library TCP has been increased from
----     32 to 48.  A fault which has been causing spurious 'Terminal
         Violations' while using the screen editors has been found and fixed.

FEPs     The FEPs on the 2988 have been crashing recently due to a problem
----     with the new 2900 hardware.  The FEPs should no longer actually
         crash but there is still an unresolved problem with the hardware.

PSS      The service has been very stable.

==== ercm09/emas-2900/ring_nsiw77s.txt ====
!**********************
!* nsiw77s/nsiw77y   *
!* date: 27.jan.82   *
!*********************
%conststring (13) vsn = "nsiw:vsne01f
"
!! stack = 400, streams = 3

!! note: for versions that are run out of a 2900 fep system,
!!       messages from the network should be enabled - see
!!        the comment at 'messages enabled'

%control 1
%include "deimosperm"

%constinteger nsiw ser = 6;      ! private service no



%recordformat xf(%byteinteger unit,fsys,%byteintegerarray fname(0:5))
%begin

==== ercm09/emas-2900/init82.txt ====
! FILE 'ERTE_INIT70'

!THE INITIALISE TASK "INIT"   - FOR EMAS 2980.
!E.R.T.E. MK.6 VERSION  -  VIA DUP11S

!   W.S.C.   27TH JULY 1976
!   J.C.A.   31ST JAN 1978
!   G.J.B.   19TH SEPT 1978
!   J.C.A.   27TH SEPT 1978
!   B.G.   25.JAN.80


!   ???   LAST UPDATE 21:12:78   - FILE INIT70

! THIS VERSION IS FOR USE WITH ICL VME/B


!THE TASK RUNS IN SYSTEM SLOT 29

!SET STACK TO 140   STREAMS=0   PRIORITY=1


==== ercm09/emas-2900/statnode8s.txt ====
%REALSLONG
!
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
!              NODE STATISTICS PACKAGE
!
!
!
!        GRAPH1  - CONNECTS V BLKS AND CPU
!
!        GRAPH2  - 2900 USERS V BLOCKS RXD & TXD
!
!        GRAPH3  - 2970 USERS V BLOCKS RXD & TXD
!
!        GRAPH4  - FREQUENCY V CON/MIN/USER
!
!
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!

==== ercm09/emas-2900/fspec.txt ====
$a device = x2700
$d3 "COMPMODROMAN11"
$d4 "COMPMODITALIC11"
$3
$a bold='~'
$a tab = 1,3,10,10,55,77
$a just=1
$a wunder='%'
$a indent = 0
$4
X25 Facilities - $3
$b0$t4 Fast Select;
$b0$t4 Packet and Window size negotiations;
$b0$t4 Call Statistics;
$b0$t4 Permanent Virtual Circuits;
$b0$t4 Call Redirection;
$b0$t4 Reverse Charging.$b1
$4
Access Units - $3$b0
$t4 Bit Rates of 2.4k,4.8k,9.6k,19.2k,48k.$b0
$t4 Physical Level Interfaces - V24/V28, V35, X21.$b0

==== ercm09/emas-2900/response_mfe1jan22.txt ====
Node =  80, Term = 80 - 22 Jan 82  09.50 - 11.50  (ring->n6->fe1)
 0
 0
 0
 0
 5
 37
 91
 112
 106
 102
 112
 66
 84
 71
 60
 47
 45
 34
 31
 31

==== ercm09/emas-2900/statszoo.txt ====

Dump GEC logfile  Version  1.2

Log:GC30AUG84
 To:L3




    No.       Time

   102   14:51:09  Link   LAU09      Frms (RX/TX):    215    214, Calls:    2    0, Bytes:   1933  15176 da 1-3 29 0 0
 Max Bf:  500 Cur Bf:  370 Vcs    2 Min Bf:  367 Req Dl:    0
    93   14:59:43  CON    LAU09        3   000017000012 ->       15000001 62 04 00 00
   108   15:00:02  END    LAU09        3 Segs,Ints,resets (RX/TX):    17     3  0  0  0  0, Retran:  0 00/00
   109   15:00:19  CON    LAU09        4   000017000012 ->       15000001 62 04 00 00
   110   15:00:42  END    LAU09        4 Segs,Ints,resets (RX/TX):     8     3  0  0  0  0, Retran:  0 00/00
   111   15:01:31  CON    LAU09        5   000017000012 ->       15000001 62 04 00 00
   113   15:05:37  CHK    LAU09        5 Segs,Ints,resets (RX/TX):    65    21  0  0  0  0, Retran:  0
   116   15:20:36  CHK    LAU09        5 Segs,Ints,resets (RX/TX):   292   108  0  0  0  0, Retran:  0
   125   15:22:02  Link   LAU09      Frms (RX/TX):    615    614, Calls:    5    0, Bytes:   5263  25719 da 1-3 141 1 0

==== ercm09/emas-2900/cpse.txt ====



Initial Configuration for Kings Buildings Switch

================================================

Machine       Speed of Line
2972-fe1          19.2
2972-fe2          19.2
2988-fe0          19.2
2988-fe1          19.2
Xgate(i/f to ring)19.2
GS Switch         19.2

C.S. Dept Vax     19.2
El. Eng.  Vax      9.6
ERCC   Vax        19.2
INFO               9.6
Arcus Prime        9.6
Abro  Prime        9.6
Physics 11/45      9.6

==== ercm09/emas-2900/kmc11_kring2s.txt ====
!
! Ring handler for KMC11
! DATE 23.nov.81
!
!
$list 1

$def flag=sp0, rstatl=sp1, rstath=sp2, rxstate=sp3, txstate=sp4
$def itim = sp5, rxhigh=sp6, rxmid=sp7, rxlow=sp8
$def otim = sp9, txhigh=sp10, txmid=sp11, txlow=sp12
$def temp=sp13, temp1=sp14, time = sp15
                     ! sp5, sp9 & sp15 are spare
!
$def idatal = adr0, idatah = adr1, odatal = adr2, odatah = adr3
$def ibusl = adr4, ibush = adr5, obusl = adr6, obush = adr7
!
$def nprreq=npr.0, nonexmem=misc.0, timeout=misc.4, settime = 16_10
$def bits1617 = 16_0c
$def intson=csr0.0, rxints=csr0.1, reqi11 = csr0.4, oack = csr0.7
$def rfn = csr2.0, kmcreq = csr3.4, gobit = csr2.7
$def rxreply = 16_10;                   ! kmcreq+fn=0

==== ercm09/emas-2900/ring_ringk7s.txt ====
! file ring_ringk7s

!********************************
!*    emas-2900   ring interface *
!*                    handler     *
!*      file: ringk7s              *
!*   date:20.nov.81               *
!*  For use with KMC11 only      *
!*********************************
!!  stk = 300,  strm = 1



%control 1
%include "deimosperm"
%constrecord (*) %name nil == 0

%begin

     %conststring (7)vsn = "vsn007e"


==== ercm09/emas-2900/infoinput.txt ====
The New Info

1) The Display
    It must be possible to 'poke' all the X25 links in the network.  Ie, when
    we put in Pad switches we must be able to test the lines.  (the standard
    of the current Pad poke would be sufficient).

    It would be nice to be able to find out what Pads are up to - but this could
    be done on a much reduced time, say 10mins. So a 'poke' would still be
    done on the 3 min timer, and a fuller one every now and again.

    The 'Host' poll will have to be changed to go XXX, it would be nice to get
    VMS & Unix hosts as well as EMAS.

    The concept of a fep poll will need to change, it is open to question as to
    whether it is different from the 'line status' prod of above.

2) Logging
    The current method is hopeless.  It produces far too much paper.  What would
    be useful would be a monthly summary of how often things have gone down. An
    enhancement would be a breakdown into broad categories, ie,

==== ercm09/emas-2900/erteicl_times.txt ====
!
!THE TIME TASK
!
!W.S.C. 27TH JULY 1976
!
!V006
!
!LAST UPDATED 12TH MAY 1977 09:40
!
!THIS TASK IS THE TIMING MECHANISM FOR THE STIMULATOR.IT GETS
!A CLOCK MESSAGE EVERY CTICS CLOCK TICKS AND MAINTAINS A LIST OF
!TASK REQUESTS FOR STIMULI.THESE ARE PASSED TO IT BY A PON
!WITH P_A1 THE NUMBER OF TICKS AND P_A3 A PARAMETER TO BE
!PASSED BACK TO THE CALLING TASK.
!IF P_A1<0 THIS IS TAKEN AS A REQUEST FOR A TIME STAMP
!IT SENDS BACK MINS IN P_A1,10TH SECS IN P_A2 AND LEAVES P_A3
!AS IT WAS.
!
!THIS TASK RUNS IN SLOT 28
!
!SET STACK TO 140,STREAMS=0

==== ercm09/emas-2900/cp4syswor.txt ====
; CP4SYS.ASM		Keep filename the same, so that we do not have to
;			change CP4DEF and CP4LNK
;	KERMIT - (Celtic for "FREE")
;
;	This is the CP/M-80 implementation of the Columbia University
;	KERMIT file transfer protocol.
;
;	Version 4.0
;
;	Copyright June 1981,1982,1983,1984,1985
;	Columbia University
;
; Originally written by Bill Catchings of the Columbia University Center for
; Computing Activities, 612 W. 115th St., New York, NY 10025.
;
;	This file contains the system-dependent code and data for KERMIT
;	the Amstrad range of personal computers.
;
;	Martin D. Beer
;	Department of Computer Science,
;	University of Liverpool.

==== ercm09/emas-2900/cleans.txt ====
%EXTERNALROUTINE CLEANUP(%STRING (255) S)
%EXTERNALROUTINESPEC DEFINE(%STRING(255) S)
%STRING (255) T, U, V
%INTEGER I, J, K

%ON %EVENT 9 %START
      SELECT OUTPUT(0)
      WRITE(J, 1)
      PRINTSTRING(" CHARS PRINTED
")
      WRITE(K, 1)
      PRINTSTRING(" CHARS THROWN AWAY
")
      %RETURN
%FINISH

K=0; J=0
S -> T.("/").U
DEFINE("ST1,".T); DEFINE("ST2,".U.",1023")
SELECT INPUT(1); SELECT OUTPUT(2)
%CYCLE

==== ercm09/emas-2900/sys_sbldrl2s.txt ====
!**********
!* SBLD12S *
!* NB: NOT SAME AS BPL SBLD1S !!!!
!* DATE:  16.NOV.79               *
!* SUPERVISOR BUILD PROGRAM         *
!*************************************

%PERMROUTINESPEC SVC(%INTEGER EP, %INTEGERNAME P1, %INTEGER P2)
%PERMINTEGERMAPSPEC INTEGER(%INTEGER X)
%PERMBYTEINTEGERMAPSPEC BYTEINTEGER(%INTEGER X)
%PERMINTEGERFNSPEC ADDR(%INTEGERNAME X)
%PERMINTEGERFNSPEC ACC
%CONSTINTEGERNAME DUMMY = 0


%CONSTINTEGERNAME NULLI = 0


%BEGIN

     !* STK = 76000, STRM = 3

==== ercm09/emas-2900/lexiconfull.txt ====
10th 1st 2nd 3rd 4th 5th 6th 7th 8th 9th Aaron ABA Ababa abalone abase
abash abate abbas abbe abbot Abbott abbreviate abc abdicate abdomen
abdominal abduct Abe abed Abel Abelian Abelson Aberdeen Abernathy
aberrant aberrate abet abetted abetting abeyance abeyant abhorred
abhorrent Abidjan Abigail abject ablate ablaze ablution Abner Abo aboard
abode abolition abominable abominate aboriginal aborigine aborning
abound aboveboard aboveground abovementioned abrade Abraham Abram
Abramson abrasion abrasive abreact abreast abridge abridgment abroad
abrogate abrupt abscess abscissae absentee absenteeism absentia
absentminded absinthe absolution absorb absorbent absorption absorptive
abstain abstention abstinent abstractor abstruse absurd abuilding
abundant abusable abusive abut abutted abutting abysmal abyss Abyssinia
AC academia academician academy Acadia acanthus Acapulco accede
accelerate accelerometer accentual acceptant acceptor accipiter acclaim
acclamation acclimate acclimatize accolade accompaniment accompanist
accompany accomplice accomplish accordant accordion accost accountant
accouter Accra accredit accreditate accretion accrual acculturate
accusation accusative accustom ace acetic acetone acetylene ache
Achilles aching achromatic acid acidic acidulous Ackerman Ackley
acknowledgeable ACM acme acolyte acorn acoustic acquaint acquaintance
acquiescent acquisition acquisitive acquit acquittal acquitting acre

==== ercm09/emas-2900/node_nbsp9s.txt ====
! file 'nbsp9s'


!********************************
!*    bsp to nsi interface       *
!*      file: nbsp9s             *
!* date: 17.aug.82               *
!* based on kents_bsp4s & gate5  *
!*********************************
!!  stk = 1000,  strm = 1

%constinteger own node = 72
%constinteger fep address = 3
%owninteger sbrf = 0


%recordformat dmf(%integer i)

%constrecord (*) %name nil == 0

%control X'4001'

==== ercm09/emas-2900/capsub83.txt ====



To:  Clive Nicholas         From: B. Gilmore
Date: 09.Sep.83


   Capital  Submission
   =======  ==========

1)  Additional Terminal  (on top of the currently requested one) For my
    new CO/1 starting in October.

2)  Approx. #2000 for software for the Intel Development sys.

3) Approx. #10,000 for H/W upgrades to the Intel System (new emulation types)

4) Allowance for about 5 or 6 new Intel TCPs to replace current PDP11 ones
    in the next year.



==== ercm09/emas-2900/b_lmacxs.txt ====
prep x25gen_lmacxs,lmacxs#imp
dimp11 lmacxs
link11 /map
lmacxs
.streams 1
.stack 1000
.end
lmacxs
destroy lmacxy
rename lmacxs#abs,lmacxy

==== ercm09/emas-2900/b_xprotyp.txt ====
EDIT x25_XPROTs,T#B
TA/198/A1STM/Versi/f<X>KZ(r/Running/i<X>i/ (Fast)/p1)2
E
prep t#b,xprot#imp,F,p,Y
IMP11 XPROT#IMP/XPROT#REL,xprot#lst

LINK11
ERCM09.I77PERM
XPROT#REL
.STACK 2000
.STREAMS 0
.NAME XPRY
.END
XPR1#OBJ
destroy xpry1y
rename xpr1#obj,xpry1y

alist11 xprot#imp/.lp23

==== ercm09/emas-2900/capsub85.txt ====


                         Capital Expenditure 1985/86
                         ---------------------------

1. Replacement for Info Machine

   This will replace the existing 11/34 with an 11/73 with hard
   disk + floppy for backup.  If this is not purchases, an 11/34
   will be needed for the extra Bush Fep.  Including BBC + Colour
   Monitor.
                                        11/73 etc + X25 I/F + BBC   #13,811 (incl. VAT)

2. Extra 256Kb store board for the 11/44 that will be used for the
   replacement Fstore machine.
                                                      256Kb Board

3. Three synchronous line drivers from Newcastle for the new Bush
   Feps and for the EMAS Ring Fep.
                                               3 Newcastle Boards


==== ercm09/emas-2900/ringtester_ringts.txt ====
! RINGTS/TXR. ALI AUG 1979
! DEVICE ROUTINE FOR RING OUTPUT. SEE RPTS & RINGRS
!
%CONTROL K'100001'
%BEGIN
%CONSTBYTEINTEGERNAME MY ID = K'160030'
%CONSTINTEGER TOLIM=5,TXQLIM=7,PKTLIM=1499,PTBLIM=127,%C
   TXRSER=28,TXRDUMPSER=27,TRACESER=26 ;! PON/POFF SERVICE NRS
%RECORDFORMAT TXQF(%INTEGER PKTPOS,COUNT,SEQ,TIMEOUT)
%RECORD (TXQF) %ARRAY TXQ(0:TXQLIM) ;! TX MESSAGES WAITING TXFR OUT
%RECORD (TXQF) %NAME TXQ0
%INTEGERARRAY PKTBUF(0:PKTLIM) ;! HOLD PACKETS 4 ALL TXQ ENTRIES
%INTEGERARRAY PKT TRACE BUF(0:PTBLIM) ;! HISTORY LAST PKTS OUTPUT
!
%RECORDFORMAT PF(%BYTEINTEGER S,R,%INTEGER A1,A2,A3)
%RECORD (PF) P
%RECORDFORMAT PTF(%BYTEINTEGER S,R,%INTEGERARRAYNAME B,%INTEGER C,A)
%RECORD (PTF) %NAME PT
%RECORDFORMAT PRF(%BYTEINTEGER S,R,%INTEGER ERROR,TIMEOUT,SEQ)
%RECORD (PRF) %NAME PR
!

==== ercm09/emas-2900/telem.txt ====
Points that conflicy with the JNT spec.

1 Guarentee compatibility with PSS
2 Call stats in the clear packet
3 Call redirection (desirable feature)
4 Proper load sharing
5 Address matching, ie 000015000001 vs 15000001
6 Monitor performance of whole PSE
7 Warning of fault conditions
8 Availability of Net. Man. software
9 Count of various packets:- Call req, Inc call, Clear, Int, Reset
  - Count of Level 2 packets ?
10 Zero the counts
11 DTE addresses displayed
12 Password on 'BASE:'
13 MTBF H/W & S/W ?
14 Buffer exhaustion -> crash
15 Hold a Link down


My Outstanding Queries

==== ercm09/emas-2900/lk0226.txt ====
Dump GEC logfile  Version  1.3c

Log:ACCNTS.GKB850226
 To:LK0226




First record at 21:47:57

   Max Bf: 3400   Cur Bf: 2943   Vcs   86   Min Bf: 2870   Req Dl:    0

Date Covered was: 25/  2/ 1985     23:59:58 Exchange 1

        Frames       Control         1 seg          Calls   RESETS  Bytes/Sec  ERRORS  Total Frames     Total Data F  Av Bytes
 Line    In/sec    %Out   %In     %Out   %In     Out     In  Total  Out     In   Total    Out      In        Out     In  Out  In
2972-2      1.0     28%     62%     47%     55%      0   2144  52   220   119   1393    87582    84495    58441    92547 318 106
2972-1      0.3     81%     62%     18%     89%   2452    731   2   182    38     40    29092    68671    45678    75380 336  39
2988-2      0.8     91%     61%     56%     44%   2832   1143  19   528   113     57    70803    46417   116277    68893 388 138
Xcall       0.7     39%     43%     62%     66%    577    669  28    83    86      4    62772    65606   100855   100335  69  72
Janet       1.1     49%     78%     70%     40%    483   1087 623    32    68    223    97622    50468    40251    61777  60  90

==== ercm09/emas-2900/capsub86.txt ====
@device[x2700]
@make[report]
@majorheading[Capital Expenditure 1986/1987]
@section[CPSE Enhancements]
Continuation of last year's allocation. Though it may also be necessary
to purshase another switch (a second TelePAC) in this year if the demand for
lines continue. Cost between 15 and 25000.

@section[Console enhancements]
Continuation of last year's allocation.

@flushright[Brian Gilmore
February 1986]

==== ercm09/emas-2900/tudumps.txt ====
;
;
;     !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
;
;           CORE DUMP TO TU-58 CASSETTE TAPE
;
;     DUMPS FROM LOCATION 0 TO 157000-2 TO BLOCK 20
;
;     !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
;
      .ABSOLUTE
      .=157000
START:   MOV   #176160,R0               ;DEVICE ADDR-DL11
         MOV   #STACK,SP
;
;     POWER UP SEQUENCE
;
         BIS   #1,4(R0)                 ;SET BREAK ON TX TO POWER UP
         CLR   R1                       ;CHARACTER TO SEND
         JSR   PC,TX                    ;SEND IT
         JSR   PC,TX                    ;TWO NULLS REQUIRED

==== ercm09/emas-2900/kmc11_kring3s.txt ====
! Ring handler for KMC11
! DATE 03.dec.81
! FILE kmc11_kring3s
!
!
$list 1

$def flag=sp0, rstatl=sp1, rstath=sp2, rxstate=sp3, txstate=sp4
$def itim = sp5, rxhigh=sp6, rxmid=sp7, rxlow=sp8
$def otim = sp9, txhigh=sp10, txmid=sp11, txlow=sp12
$def temp=sp13, temp1=sp14, time = sp15
!
$def idatal = adr0, idatah = adr1, odatal = adr2, odatah = adr3
$def ibusl = adr4, ibush = adr5, obusl = adr6, obush = adr7
!
$def nprreq=npr.0, nonexmem=misc.0, timeout=misc.4, settime = 16_10
$def bits1617 = 16_0c
$def intson=csr0.0, rxints=csr0.1, reqi11 = csr0.4, oack = csr0.7
$def rfn = csr2.0, kmcreq = csr3.4, gobit = csr2.7
$def rxreply = 16_10;                   ! kmcreq+fn=0
$def txreply = 16_11;                   ! kmcreq+fn=1

==== ercm09/emas-2900/inc2_bformats.txt ====
%constinteger hdrl = 8                                         ;! Length of dummy area before data field
%recordformat qf(%record (qf) %name link, %integer count)
%recordformat x25f(%byte octet1, lcn, fn, %bytearray a(0:255))
%recordformat mef(%integer buff no, l, %byte owner, type, %c
   (%bytearray a(0:249) %or (%string(2) padding, %byte octet1, lcn, fn, %c
   (%bytearray data(0:243) %or %string(250) s ))))

%recordformat pf(%byte ser, reply, %c
   ((%byte fn, %byte s1 , %c
   ((%integer buff no, %byte gate port , task port) %c
     %or %string(3) facility)) %c
     %or (%byte a1, a2, b1, b2, c1, c2) %or (%integer a, b, c) %c
     %or (%byte j1, process, j2, j3, len, j4)))

%recordformat cvf((%byte l, (%byte reason, cause, diags, %bytearray our ct(0:3), our segs(0:7),pss ct(0:3), pss segs(0:7)) %c
                         %or %bytearray a(0:26)) %c
               %or %string(27) s)

%endoffile

==== ercm09/emas-2900/vp.txt ====
.PAGE
;****************** DPV 11 HANDLER *********************
;  ELEMENT DVRVP IN NSILIB
;
; DPV11 Handler derived from the correspondng DUP11 handler.
;
; THIS VERSION PUTS THE FIRST 2 BYTES OF THE FRAME IN THE BUFFER'S
;PARAMETER BLOCK.  THESE ARE NOT INCLUDED IN THE MESSAGE LENGTH.
;THE LENGTH COUNT MAY BE ZERO IF EITHER THE LENGTH REALY IS ZERO OR
;IF IT IS 256 BYTES.  IN THE LATTER CASE THE POINTERS WILL BE NON-ZERO.
;
;** REGISTER DEFINITIONS **
      DPVRCS=0
      DPVRDB=2
      DPVPSR=2
      DPVTCS=4
      DPVTDB=6
;** BIT DEFINITIONS **
         TSOM=400
         TEOM=1000
         TEOMUP=2  ; TEOM in the upper byte.

==== ercm09/emas-2900/erte_dvibms.txt ====
;**************************************
;*         DVIBMS                     *
;*  INTERFACE BETWEEN HARDWARE AND IMP*
;*  DATE:  27.AUG.80                  *
;**************************************
 
PS=177776; PROCESSOR STATUS WORD
 
IDLEST=-1; SUPERVISOR IDLE FLAG
 
INTVAL=40; DEDICATED LOCATION FOR INTERRUPT NUMBER
ALARMF=44; DITTO - FOR CLOCK
PSECT=46; DITTO - CURRENT PSECT
LASTPS = 54
INTINF=56
 
UPAR=177640
UPDR=177600
 
UPAR0=40; INDEC INTO PSECT
UPDR0=UPAR0+2; DITTO

==== ercm09/emas-2900/sys_sbldrl3s.txt ====
! FILE 'SBLD3KS'
!**********
!* SBLD13S *
!* NB: NOT SAME AS BPL SBLD1S !!!!
!* DATE:  17.MAR.80               *
!* SUPERVISOR BUILD PROGRAM         *
!*************************************

%PERMROUTINESPEC SVC(%INTEGER EP, %INTEGERNAME P1, %INTEGER P2)
%PERMINTEGERMAPSPEC INTEGER(%INTEGER X)
%PERMBYTEINTEGERMAPSPEC BYTEINTEGER(%INTEGER X)
%PERMINTEGERFNSPEC ADDR(%INTEGERNAME X)
%PERMINTEGERFNSPEC ACC
%CONSTINTEGERNAME DUMMY = 0


%CONSTINTEGERNAME NULLI = 0


%BEGIN


==== ercm09/emas-2900/tsbsp_stab.txt ====
!values for the states variable

%CONSTINTEGER FREE= 1
%CONSTINTEGER WT BUF= 2
%CONSTINTEGER WT NS= 3
%CONSTINTEGER WT BUF NS= 4
%CONSTINTEGER WT ACCN= 5
%CONSTINTEGER WT ACCND= 6
%CONSTINTEGER DATA= 7
%CONSTINTEGER WT DISCN= 8
%CONSTINTEGER WT DIN= 9
%CONSTINTEGER WT RESETN= 10
%CONSTINTEGER WT RESETI= 11
%CONSTINTEGER WT ACCI= 12
%CONSTINTEGER WT ACCID= 13
%CONSTINTEGER WT DISCI= 14
%CONSTINTEGER WT DG REPLYI= 15
%CONSTINTEGER WT DG REPLYN= 16

!values for the events variable


==== ercm09/emas-2900/telepacrp2.txt ====
@make[report]
@device[x2700]
@flushleft[Edinburgh Regional Computing Centre]
@majorheading[TelePAC - List of outstanding bugs]

@heading[Hardware]

One problem has emerged when using lines timed by the TelePAC. CRC errors
are observed on the line and in the worst cases some faulty blocks are
passed as correct by the CRC check. On investigation this would appear to
be caused by using cables that are too long although the situation was
confused by widely differing margins in particular V24 interface boards.
The better boards will run cables of up to 40 metres in length with no
problems at 9.6kb/s. The worst boards start to have problems at around
25 metres. This means that the boards are strictly within spec (50 feet)
but SEEL and Telefile are looking at the problem and expect to find a
solution.

@heading[Software]

The meeting between the JNT, Telefile, SEEL, Cambridge and ERCC on the 

==== ercm09/emas-2900/kents_nsiws.txt ====
!**********************
!* NSIWS/NSIWY       *
!* DATE: 25.SEP.79   *
!*********************
%CONSTSTRING (7) VSN = "VSNK01B"
!! STACK = 400, STREAMS = 3

!! NOTE: FOR VERSIONS THAT ARE RUN OUT OF A 2900 FEP SYSTEM,
!!       MESSAGES FROM THE NETWORK SHOULD BE ENABLED - SEE
!!        THE COMMENT AT 'MESSAGES ENABLED'

%CONTROL K'100001'
!STACK=400, STREAMS=3


%RECORDFORMAT XF(%BYTEINTEGER UNIT,FSYS,%BYTEINTEGERARRAY FNAME(0:5))
%EXTERNALPREDICATESPEC READ FNAME(%RECORD(XF)%NAME FILE)
%SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)
%BEGIN

%%RECORDFORMAT ITPF(%BYTEINTEGER CNSL,HB1,HB2,LEN,  %C

==== ercm09/emas-2900/libtalk3.txt ====
{{colour(thickblack)}}
{{label(4,25,.6,0,"File Transfer Rates")}}
{{label(5,17,.3,0,"")}}
                     9.6 Kb             4.8 Kb          1.2Kb

 1 M Byte            14 Mins            24 Mins         1 Hour 50 Mins

10 M Byte            2h 18              4h 36           18 hours

30 M Byte            7 hours            14 hours        56 hours

50 M Byte            11h 30             23 hours        4 Days


==== ercm09/emas-2900/kent#jun81_notes.txt ====
FEPF created 12/6/81 after furore about EMAS cntrl D has died
down. Changes to ITPS, RJES, BSPS


ITPS
      Buffer address validation code added.
      Delay int Y if input not enabled till console nexts attempts
         to log on
      Add special INT 0 to send terminal address into EMAS N.B. in
        UKC version the node number is always zero.
      The hardware seg is now seg 0 as the code is > 1 segment


RJES
      Includes RDE code for page counting for remote printers.
      Seg 0 used as hardware seg as code >1 seg.
      Buffer address validation code added.
      Check that high level control messages are for stream 5,
         (hopefully this is not now useful).



==== ercm09/emas-2900/nsource.txt ====

!**********************************************************
!*                                                        *
!*           PSS X-25 Level 3 Protocol Handler            *
!*                                                        *
!*                      GATEX                             *
!*                                                        *
!*                Version    9.62  14 Mar 1986           *
!*                                                        *
!**********************************************************
!*
%control 1
%begin
#options
!************************************
!*                                  *
!*          Declarations            *  
!*                                  *
!************************************
!*
!****** Constintegers ******

==== ercm09/emas-2900/rxdump.txt ====
;
;   RXO2 DEIMOS SYSTEM DUMPER
;
;   DUMPS ALL OF STORE (64K WORDS) TO UNIT 1
;   STARTING AT SECTOR 1 OF TRACK 0. SECTORS INTERLEAVED.
;
   .ABSOLUTE
   .=1000
SECMAP:   .BYTE 1,3,5,7,9.,11.,13.,15.,17.,19.,21.,23.,25.
         .BYTE   2,4,6,8.,10.,12.,14.,16.,18.,20.,22.,24.,26.
CONTW:   .WORD   421
;
;   R0   POINTS AT DEVICE
;   R1   TRACK
;   R2   SECTOR
;   R3   STORE ADDR
;   R4   ALSO USED.
;
START:   MOV   #177170,R0   ;DEV ADDR
         CLR   R1
         CLR   R2

==== ercm09/emas-2900/news.txt ====
$a line=29;just=1;invert=0
$l1
WHAT A WASTE
$p1 Clickety-clack, clickety-clack. Just another goods train trudging
through Morningside on our Victorian surburban line? Probably. But
it might just be carrying nuclear waste!  Environmentalists suspect that waste
from Hunterston may have already been sent through Edinburgh en route to
Windscale, when the west coast line has been blocked.  The risk of waste being
routed along the back of Cluny Gardens, under Morningside Road, and along
by Balcarres Street will certainly be much greater if Torness comes into
operation.
$p1 Experts generally concede that transport is the most vulnerable part
of the entire nuclear operation from the point of view of accident or sabotage.
What would happen if a train were derailed, or a terrorist group bought a
flat overlooking the railway and used it to launch an attack?
$p1 Remember that in 1979 members of the Freedom of Information Campaign
walked into Stratford Station in London with a full-sized replica bazooka,
approached a nuclear waste flask at a flatform, pointed the bazooka at it,
and took photos of the event.  British Rail memorably observed that the
group 'had a perfect right to be on the platform as long as they had
bought a ticket.  It was not the job of British Rail staff to apprehend

==== ercm09/emas-2900/house2.txt ====
-1
 745 35 3 13250 6625 L
 468 52 3 13750 6875 G
 441 45 4 16000 8000 M
 1 14 3 15750 8820 D
 169 36 4 13250 6890 D
 440 45 4 15250 6625 F
 660 42 3 16750 10217 S
 23 33 3 13500 6750 F
 135 46 3 15250 7625 M
 832 22 3 11500 5750 F
 412 10 3 14750 7375 M
 131 43 3 13500 6750 G
 168 36 3 12500 7125 L
 536 46 3 15000 7500 M
 109 22 3 11000 5500 F
 117 6 3 15750 7875 D
 31 35 3 13500 7425 L
 385 6 3 15250 7777 M
 337 22 3 15750 7875 M
 301 36 3 12500 7000 F

==== ercm09/emas-2900/sys_moth77s.txt ====
!************
!*  moth6s  *
!* 14.jul.81*
!************

%control 1
%include "deimosperm"


%begin

     %recordformat pf(%byteinteger service, reply, %integer a1, a2, a3)
     %record (pf)p


     %constintegername sr0 == k'117572'
                                       ! indexed into seg 4
     %constintegername sr2 == k'117576'

     %routinespec octal(%integer n)


==== ercm09/emas-2900/fepb_nsiws.txt ====
!**********************
!* NSIWS/NSIWY       *
!* DATE: 25.SEP.79   *
!*********************
%CONSTSTRING (7) VSN = "VSNK01B"
!! STACK = 400, STREAMS = 3

!! NOTE: FOR VERSIONS THAT ARE RUN OUT OF A 2900 FEP SYSTEM,
!!       MESSAGES FROM THE NETWORK SHOULD BE ENABLED - SEE
!!        THE COMMENT AT 'MESSAGES ENABLED'

%CONTROL K'100001'
!STACK=400, STREAMS=3


%RECORDFORMAT XF(%BYTEINTEGER UNIT,FSYS,%BYTEINTEGERARRAY FNAME(0:5))
%EXTERNALPREDICATESPEC READ FNAME(%RECORD(XF)%NAME FILE)
%SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)
%BEGIN

%%RECORDFORMAT ITPF(%BYTEINTEGER CNSL,HB1,HB2,LEN,  %C

==== ercm09/emas-2900/inc2_sers.txt ====
!PSS Gateway Service Numbers

!DEIMOS hardware driver sers etc
! 1 tty #1
! 2 CLI
! 3 DK
! 4 DIRT
! 5 LOAD
! 6 TU16 (-5) & MOTH
! 8 Big disc #1 - ERTE Big disc handler BDKH
! 9 Big Disc #1 DIR
!11 DQS11S (KMC/DU11)
!12 LP
!13 LP #2 ?
!17 Spool
!18 SPCI
!19 tty #2
!20 CLI #2
!21 tty #3
!22 CLI #3
!23 CR

==== ercm09/emas-2900/ftppd_buildb.txt ====
new
PREP ftppd_source,FTP#IMP,x,CLEAN,b
DIMP11 ftp#imp
LINK11 /FTP
FTP
.STACK 3000
.STREAMS 2
.NAME FTPQ
.stackseg 6
.END
FTP
destroy ftpqy
rename ftp#abs,ftpqy
old

==== ercm09/emas-2900/house6.txt ====
-1
 745 35 3 13250 6625 L
 468 52 3 13750 6875 G
 441 45 4 16000 8000 M
 1 14 3 15750 8820 D
 169 36 4 13250 6890 D
 440 45 4 15250 6625 F
 660 42 3 16750 10217 S
 23 33 3 13500 6750 F
 135 46 3 15250 7625 M
 832 22 3 11500 5750 F
 412 10 3 14750 7375 M
 131 43 3 13500 6750 G
 168 36 3 12500 7125 L
 536 46 3 15000 7500 M
 109 22 3 11000 5500 F
 117 6 3 15750 7875 D
 31 35 3 13500 7425 L
 385 6 3 15250 7777 M
 337 22 3 15750 7875 M
 301 36 3 12500 7000 F

==== ercm09/emas-2900/telematics.txt ====

@make[report]
@device[x2700]
@majorheading[Telematics]
@section[General]
Telematics offer a range of X.25 networking products called the Net 25 Product
Family including concentrator switches, primary switches, backbone switches,
PADs and supervisory nodes.  The equipment is sold in the UK by Telematics and
also by ICL and other companies including IAL who sell it under their own label.
Telematics is certified for use on most public data networks.  The maximum
packet size supported is 1024 bytes.
@section[Hardware Description]
The Net 25 switches are based on a proprietary 32 bit bus that is stated to
run at 32 Megabytes/sec.  
There are three models available, the P500, P1000 and P2000.  The main
difference being the number of slots available.  The particular switch
confgurations, described as Net 25/XXX are constructed from the appropriate
model.
The Net 25/100 switch consists of the bus and a
general purpose M68000 processor card, a memory controller and memory, either
a floppy or a hard disk, and an Network Communications Processor NCP.

==== ercm09/emas-2900/b_sbld5.txt ====
imp11 gen_sbld5s/sbld5s#rel,l
link11
sbld5s#rel
i77perm
.stack 72000
.streams 4
.end
sbld5y
alist11 gen_sbld5s,sbld5s#rel/.lp23

==== ercm09/emas-2900/kbstats.txt ====
==== ercm09/emas-2900/advent_prog.txt ====
10    REM ADVENTURE/2960  Version 1.1
11    REM This program is relatively bug-free, but one must realize
12    REM that Murphy's Law still prevails!
13    REM
14    REM ADVENTURE: Programmed in VME/K BASIC by Kev Ashley &
15    REM Robert Dunlop. Based on a version by Benjamin Moser.
16    REM The basic layout of the game was conceived by
17    REM Don Woods & Willie Crowther, both of M.I.T.
18    REM
20    PRINT "Adventure 1.1 on ";SEG$(DAT$,1,2);"-";SEG$(DAT$,3,4);
21    PRINT "-";SEG$(DAT$,6,7)
30    FILE *1: "ERCM09.ADVENT_ITEM"
31    FILE *2: "ERCM09.ADVENT_DESC"
32    FILE *3: "ERCM09.ADVENT_MESS"
33    FILE *4: "ERCM09.ADVENT_MOVE"
36    FILE *5: "GAMESAVE-MOD"
37    PRINT *5:" "
38    RESET *5
40    DIM H$(4),K(149),J(5),N$(46),O(15),S(35),T$(5),V(100),W(149),W$(149)
45    DIM Q(35)
50    REM  ASK IF HE WANTS DIRECTIONS

==== ercm09/emas-2900/prt9ns.txt ====
! FILE 'NODE_PRT11NS'
!*********************
!*    PRT1S/PRT9Y    *
!* DATE: 14.JAN.81  *
!*VERSION FOR NODE  *
!*HISTORY UNCERTAIN  *
!!!!!!!!!!!!!!!!!!!!!!
!STACK = 140

%CONTROL X'100001';                    ! TRUSTED PROGRAM AND QUICK
                                       ! ROUTINE ENTRY AND EIS
%CONSTINTEGER KERNEL SER = 29
%OWNINTEGER SECONDARY = 0;      !PRIM = 0, SEC = 1
%OWNINTEGER SECAD = 9;            !SECONDARY ADDRESS

%CONSTINTEGER WMAX = 56;       ! MAX NO OF WRITES
%CONSTINTEGER SFMASK = 63;      ! CIRC BUFFER SIZE FOR WRITES


%CONSTSTRING (7) VSN = 'VSN009L'


==== ercm09/emas-2900/sys_bvt1s.txt ====
!**************
!*  BVT1S     *
!*DA:09.APR.80*
!**************

%CONTROL K'100001';  ! 'SYSTEM' PROGRAM (FAST ROUTINE ENTRY/EXIT)
%PERMROUTINESPEC SVC(%INTEGER EP, P1, P2)
%BEGIN

     %SYSTEMROUTINESPEC MAPHWR(%INTEGER SEGS)
     %SYSTEMROUTINESPEC LINKIN(%INTEGER SER)

     %RECORDFORMAT PF(%BYTEINTEGER SERVICE, REPLY, %C
        %INTEGER A1, A2, A3)
     %RECORDFORMAT TTF(%INTEGER KBS, KBD, TTS, TTD)
     %RECORDFORMAT BUFF(%INTEGER PT, LAST, %BYTEINTEGERARRAYNAME B)
     %RECORDFORMAT BUFFX(%INTEGER PT, LAST, ARRAYPT)

     %CONSTRECORD (BUFFX) %NAME NULL = 0



==== ercm09/emas-2900/b_ringk.txt ====
imp11 ringk7s/,ll
link11
ringk7s#rel
i77perm
.stack 1000
.streams 1
.end
ringk7y

==== ercm09/emas-2900/coral.txt ====






















==== ercm09/emas-2900/edintcps.txt ====



                            EDINBURGH TCP INFO.
                        -------------------------

   Site  ! STORE ! SYNC.  ! ASYNC.  ! HOW     !CONNECTED! NO.OF    !           ! DEVICES       !         
         ! SIZE  ! I/F    ! I/F     ! LOADED  ! WHERE   ! LINES    !           !               !
         !       !        !         !         !         !          !           !               !
------------------------------------------------------------------------------------------------------------------------------------
___ATB1__!_32K___!_DPV-11_!_DZ-11___!_TU58_DL_!_NODE 6__!___32_____!___________!_______________!
___ATB2__!_32K___!_DPV-11_!_DZ-11___!_TU58_DL_!_NODE 6__!___24_____!___________!_______________!
___ATB3__!_32K___!_DUP-11_!_DZ-11___!_NODE_6__!_NODE 6__!___16_____!___________!__LP___________!
___BUSH__!_16K___!_DUP-11_!_DZ-11___!_Node_6__!_NODE 6__!___16_____!___________!_______________!
___CHEM__!_32K___!_DPV-11_!_DZ-11___!_TU58_DL_!_NODE 6__!___24_____!___________!__LP___________!
___CSA1__!_20K___!_DUP-11_!_DJ-11___!_Node_9__!_NODE 9__!___16_____!___________!__LP___________!
___CSA2__!_32K___!_DUV-11_!_TTY HAND!_TU58_DL_!_NODE 6__!___26_____!___________!_______________!
___EFCR__!_32K___!_DPV-11_!_DZ-11___!_TU58_DL_!_NODE 6__!___16_____!___________!__LP___________!
___ELIB__!_28K___!_DUP-11_!_DH-11___!_NODE_6__!_NODE 6__!___48_____!___________!_______________!
___ENG1__!_24K___!_DP-11__!_DH-11___!_Ptape___!_NODE 6__!___16_____!___________!_______________!
___ERSK__!_32K___!_DUV-11_!_TTY HAND!_TU58_DL_!_NODE 6__!___26_____!___________!_______________!

==== ercm09/emas-2900/feploads.txt ====
!*************************
!* loadups/loadupy     *
!* DATE: 05.jan.82       *
!* This is a special version of loadup *
!* to load the command :-              *
!*     batch go/.tt                    *
!***************************************

%include "deimosperm"


%begin
     %constinteger load ser = 5

     %recordformat pe(%byteinteger service, reply, (%integer a1, %c
       %byteintegername b, %integer c) %or  %c
      (%byteinteger line, line type, %integer ad, %byteinteger rxint, txint))

     %record (pe)p
     %integer i, j, k, time


==== ercm09/emas-2900/ringtester_rpts.txt ====
! RING PROTOCOL TEST PROGRAM. RPTS/RPT.
! A.L. IBBETSON JULY 1979. UNIKENT.
!
! PROVIDES FACILITIES FOR CHECKING BYTE STREAM PROTOCOL
! HANDLING ON ANOTHER DEVICE ON THE CAMBRIDGE RING
!
%CONTROL K'100001'
%BEGIN
%RECORDFORMAT PF(%BYTEINTEGER SERVICE,REPLY, %INTEGER A1,A2,A3)
%RECORDFORMAT PRF(%BYTEINTEGER SERVICE,REPLY,%C
                   ERROR,STATUS, %INTEGER LEN,A3)
%RECORDFORMAT PTF(%BYTEINTEGER SERVICE,REPLY, %INTEGER ACTION,%C
                   LEN, %BYTEINTEGERARRAYNAME BUF)
!
%CONSTBYTEINTEGERNAME MYID = K'160030'  ;! MY TASK NUMBER
%CONSTBYTEINTEGERNAME INT = K'160060'   ;! FIXED LOC FOR INT FACILITY
%CONSTINTEGER FIVE SECS = 250, TWO SECS = 100
!
! MANIFESTS FOR COMMUNICATION WITH RING DRIVER TASK (SEE RINGRS)
!
%CONSTBYTEINTEGER RING SER     = 29 ;! SERVICE NUMBER

==== ercm09/emas-2900/tsbsp_tscodes.txt ====

%CONSTINTEGER CONNECT=1
%CONSTINTEGER ACCEPT CALL=2
%CONSTINTEGER DISCONNECT=3
%CONSTINTEGER ENABLE INPUT=4
%CONSTINTEGER PUT OUTPUT=5
%CONSTINTEGER EXPEDITED DATA=6
%CONSTINTEGER RESET=7
%CONSTINTEGER DATAGRAM=8
%CONSTINTEGER DATAGRAM REPLY=9
%CONSTINTEGER ENABLE FACILITY=10
%CONSTINTEGER DISABLE FACILITY=11
%CONSTINTEGER ENABLE OUTPUT=4
%CONSTINTEGER INPUT HERE=5

%ENDOFFILE

==== ercm09/emas-2900/erte_dupxxe.txt ====
!**************
!*  DUPXXE    *
!*DA:10.JUN.80*
!**************

%CONTROL K'100001';                    ! 'SYSTEM' PROGRAM AND
                                       ! TRUSTED PROG


%RECORDFORMAT PARF(%INTEGER TYPE, ADDRESS, LEN, FLAG)

%EXTERNALROUTINE DUP11E(%RECORD (PARF) %NAME P)

     %SYSTEMROUTINESPEC MAPHWR(%INTEGER SEG)
     %SYSTEMINTEGERFNSPEC GETID
     %SYSTEMROUTINESPEC LINKIN(%INTEGER SER)
     %SYSTEMINTEGERFNSPEC MAP ABS(%INTEGER ADR, LEN, REQ ID)
     %PERMINTEGERFNSPEC SVC(%INTEGER EP, P0, P1)

     %RECORDFORMAT PF(%BYTEINTEGER SER, REPLY, %INTEGER A1, A2, A3)


==== ercm09/emas-2900/b_fepload.txt ====
e gen_loadups/temp
f+batch go/.tt+s+LOAD FEP+
1
%c
imp11 temp
link11
temp#rel
i77perm
.stack 1000
.streams 0
.name ldup
.end
fepldupy

==== ercm09/emas-2900/eresu80.txt ====
alnwickhill
c 1435
l 1156
b 694
m 297
p 53.30
*
baberton
c 1573
b 716
s 582
l 475
m 857
p 51.65
*
balerno
c 1513
s 723
l 687
m 790
p 49.94

==== ercm09/emas-2900/b_nodesim.txt ====
dimp11 nodesim
link11 /nodesim
nodesim
ercm11.newimp
.stack 5000
.streams 0
.end
nodesim
list nodesim#abs,.fep72

==== ercm09/emas-2900/eresu82.txt ====
Alnwickhill/Kaimes
c 2081
l 1937
b 1764
s 516
m 144
p 50.9
*
Balerno/Baberton
c 3802
b 2317
s 1059
l 781
m 1485
p 61.1
*
Braidburn/Fairmilehead
c 3811
b 3120
l 451
s 373

==== ercm09/emas-2900/gecpaper.txt ====


              Questionaire for Desired PSE Enhancements
              -----------------------------------------

Please examine the detailed description of each enhancement on the seperate
sheets and then categorise the priority you attach to each enhancement on
the form below in the following way.

                         H  -  High Priority
                         M  -  Medium Priority
                         L  -  Low Priority
                         N  -  Not Interested

Attempt to distribute your priorities evenly, an answer of high priority for
everything will not tell us anything.

Please return the form to Mike Capp at GEC.

            PSE      Network      Network      
          Control    Control       Admin.      External     Other

==== ercm09/emas-2900/fepmons.txt ====
%externalroutine fepmon(%string (255) s)
%dynamicroutinespec fepgraphs(%string (255) s)
%externalroutinespec define(%string (255) s)
      %string (255) t, u, uu, title, uuu
      %recordformat ff( %c
       %integer tim, users,sta,cpu,pkts,sbr,byt,rjeo,rjei)
      %integer i, diff, k, l, us, cp, kb, pk, rj, who, who1, who2
      %owninteger users, sta, cpu, pkts, sbr, byt, rjeo, tim, rjei
      %owninteger points, fep no = -1
      %constintegerarray cpu f(0:6) = %c
         235(3), 197, 550(3)
      %conststring (9) %array fep name(0:5) = %c
      "2980(0) ", "2980(1) ", "2980(2) ",
      "2972(4) ", "2972(1) ", "2972(2) "
      %record  (ff) f
      !!
      !!
      !!
      %routine rd(%integername n)
         read(n)
         %if n< 0 %then n = n+32768*2

==== ercm09/emas-2900/newsys_fsys79.txt ====

!******************************
!*  file system handler       *
!*   fsys1s/fsys1y            *
!*  date: 30.Jun.81           *
!******************************

!*w.s.c. 25th august 1976
!*b.g.  27.mar.78

!*this handler is the file system utility to replace the
!*existing one in deimos to permit a file system to be
!*created on the ampex 9500 disc as well as the rk05's.

!*it is a conceptual copy of the rk05 file system handler
!*except that a buffer pool is used for block descriptors
!*and directory blocks.

!*the code is shared by 3 system slots,4 for the rk05's,
!*and 9,15 for the ampex disc.the ampex disc is logically
!*divided into two,units 2&3.

==== ercm09/emas-2900/kxprot.txt ====
IMP11 kntkv11/XPROT#REL,xprot#lst

LINK11
ERCM09.I77PERM
XPROT#REL
.STACK 2000
.STREAMS 0
.NAME XPR1
.END
XPR1#OBJ
destroy xpr1y
rename xpr1#obj,xpr1y

alist11 kntkv11,xprot#rel/.lp23

==== ercm09/emas-2900/coral2i.txt ====
%begin
{'CORAL' TEST RESPONDER}

{'COMMENT' VERSION 1.1}
{}
{The official definition of Coral 66 does not provide for the output of}
{data at run time. However the facilities provided by the following}
{routines are useful within the Test Responder for logging/debugging}
{purposes. They can be supplied by the implementor either by adapting}
{existing routines or by writing new ones.}
{}
{The use of these routines is optional. If the implementor does not wish}
{to generate such output, he can define these procedures to be null,}
{comment them out, or delete each occurrence of them from the code. The}
{occurrences within read.command.octet (chart 3) have been commented out,}
{because for normal use they produce too much output:- one line per octet}
{received. The function of each of the routines is as follows:}
{}
{}
{trwritestring - writes the string supplied as the parameter to the}
{                output buffer.}

==== ercm09/emas-2900/erte_dvxbms.txt ====
FILE 'ERTE_DVXBMS'
;**************************************
;*         DVIBMS                     *
;*  INTERFACE BETWEEN HARDWARE AND IMP*
;*  DATE:  11.JUN.80                  *
;**************************************
 
PS=177776; PROCESSOR STATUS WORD
 
IDLEST=-1; SUPERVISOR IDLE FLAG
 
INTVAL=40; DEDICATED LOCATION FOR INTERRUPT NUMBER
ALARMF=44; DITTO - FOR CLOCK
PSECT=46; DITTO - CURRENT PSECT
LASTPS = 54
INTINF=56
 
UPAR=177640
UPDR=177600
 
UPAR0=40; INDEC INTO PSECT

==== ercm09/emas-2900/ibmdoc_a1.txt ====
1 
0                                                          Ref. A1
- 
- 
- 
- 
- 
- 
- 
- 
            PROTOCOLS IN THE SERC/NERC NETWORK  (Ref.A1)
+           _________ __ ___ ____ ____ _______   ___ __
- 
- 
- 
- 
- 
- 
- 
   Version 6
+  _______ _

==== ercm09/emas-2900/erteicl_clog6s.txt ====
! FILE 'CLOG6S'
!
!
! CLOG  CLOG  CLOG  CLOG  CLOG  CLOG  CLOG  CLOG  CLOG  CLOG  CLOG  CLOG 
! CLOG  CLOG  CLOG  CLOG  CLOG  CLOG  CLOG  CLOG  CLOG  CLOG  CLOG  CLOG 
!
!
!
%CONTROL K'001001'
!
!
%BEGIN
!
!
!
!G.J.B.  //  J.C.A.     STARTED 10:11:76
! ???       LAST UPDATE 15:3:79     14:10     - FILE CLOG5S
!
!   FOR ERTE MK.6    MK. 3 MODS MARKED !&&
!   FOR ERTE MK.3   MK. 4 MODS MARKED !@@
!   SET UP FOR F1 STANDARD COMMANDS

==== ercm09/emas-2900/ibmdoc_a2.txt ====
1 
0                                                          Ref. A2
-               A PROTOCOL FOR USING VMCF  (Ref. A2)
+               _ ________ ___ _____ ____   ___  __
0                                               Version 8
+                                               _______ _
0                                               8 March 1982
+                                               _ _____ ____
0                                               P M Girard
+                                               _ _ ______
   1.  Introduction
+      ____________
0       This  paper defines  a  protocol  for conducting  multiple
        conversations  between any  two  virtual machines,   built
        around  the  IBM Virtual  Machine  Communication  Facility
        (Ref. M3).
- 
0  2.  Basic Requirements
+      _____ ____________
0       (a)  Ability  to set  up and  close down  multiple logical
        "connections", each with individual flow control.

==== ercm09/emas-2900/prt11s.txt ====
! FILE 'NODE_PRT11NS'
!*********************
!*    PRT1S/PRT1Y    *
!* DATE: 03.MAR.81  *
!*VERSION FOR NODE  *
!*HISTORY UNCERTAIN  *
!!!!!!!!!!!!!!!!!!!!!!
!STACK = 140

%CONTROL X'100001';                    ! TRUSTED PROGRAM AND QUICK
                                       ! ROUTINE ENTRY AND EIS
%CONSTINTEGER KERNEL SER = 29
%OWNINTEGER SECONDARY = 0;      !PRIM = 0, SEC = 1
%OWNINTEGER SECAD = 9;            !SECONDARY ADDRESS

%CONSTINTEGER WMAX = 56;       ! MAX NO OF WRITES
%CONSTINTEGER SFMASK = 63;      ! CIRC BUFFER SIZE FOR WRITES


%CONSTSTRING (7) VSN = 'VSN011B'


==== ercm09/emas-2900/ibmdoc_a3.txt ====
1 
0                                                          Ref. A3
-        THE APPLICATION/NCP PROTOCOL USING VMCF  (Ref. A3)
+        ___ ___________ ___ ________ _____ ____   ___  __
0                                               Version 5
+                                               _______ _
0                                               8 March 1982
+                                               _ _____ ____
0                                               P M Girard
+                                               _ _ ______
   1.  Introduction
+      ____________
0       This  supersedes  the paper  called  "The  Application/NCP
        Interface via VMCF", whose name was a source of confusion.
0       Ref.  A2  describes a  general protocol  for communicating
        between two  virtual machines using  VMCF.   Communication
        between  an  Application  virtual machine  and  NCP  is  a
        particular case of this,  and uses a subset of the general
        protocol.   The  purpose of this  paper is to  specify the
        subset.
0       It  is   important  in   practice  that   implementors  of

==== ercm09/emas-2900/sys_load7s.txt ====
! FILE 'LOAD7S'
!**************
!* LOAD17S  *
!* 25.MAR.81  *
!**************

%PERMINTEGERFNSPEC SVC(%INTEGER EP, %INTEGER P1, %INTEGER P2)
%PERMINTEGERMAPSPEC INTEGER(%INTEGER X)
%PERMBYTEINTEGERMAPSPEC BYTEINTEGER(%INTEGER X)
%PERMINTEGERFNSPEC ADDR(%INTEGERNAME X)
%SYSTEMINTEGERFNSPEC GETID


%CONTROL K'100001';                    ! TRUSTED

%RECORDFORMAT DUMREC(%INTEGER X)
%CONSTRECORD (DUMREC) %NAME NULL = 0


!***********************************
!*                                  *

==== ercm09/emas-2900/response_n0t9dec22.txt ====
Node =   0, Term =  9  -   time:  9.45 - 10.27  22.dec.81
 0
 0
 1935
 3279
 1158
 556
 218
 126
 64
 28
 12
 6
 4
 1
 2
 0
 0
 2
 0
 0

==== ercm09/emas-2900/ibmdoc_a4.txt ====
1 
0                                                          Ref. A4
-              SECNET  -  ADDRESSING SCHEME  (Ref. A4)
+              ______     __________ ______   ___  __
0                                               Version 2
+                                               _______ _
0                                               8 March 1982
+                                               _ _____ ____
0                                               P M Girard
+                                               _ _ ______
   1.  The Basic Mechanism
+      ___ _____ _________
0       The scheme  is designed  to be  compatible with  the Study
        Group 3 Transport Service specification (Ref. A6).
0       Process A  wishes to communicate  with Process B  across a
        number  of networks  joined by  "gateways".    There is  a
        "transport station" at each end, and these,  together with
        the intervening gateways,  are  responsible for setting up
        the necessary "connection".
0       Logically,  a  "transport station"  is very  similar to  a
        "gateway",   and  to  simplify the  description  the  term

==== ercm09/emas-2900/asst11j.txt ====



%EXTERNALROUTINE ASS11(%STRING (63)FILES)
      %EXTERNALINTEGERFNSPEC SMADDR(%INTEGER CHAN, %INTEGERNAME LENGTH)
      %EXTERNALROUTINESPEC DEFINE(%STRING (63)S)
      %DYNAMICSTRING (8) %FN %SPEC DATE
      %DYNAMICINTEGERFNSPEC TIME40(%INTEGER IN)
      %DYNAMICINTEGERFNSPEC TIME03(%INTEGER IN)
      %DYNAMICINTEGERFNSPEC TIME45(%INTEGER IN)
      %ROUTINE DUMP BIN(%HALFINTEGERARRAYNAME CODE, %C
        %INTEGER START, FINISH, %STRINGNAME T, %INTEGERNAME FLAG)
         %INTEGER CHECK, J
         %ROUTINE PUT(%INTEGER N)
            %INTEGER M
            M = N>>8&255
            N = N&255
            PRINTCH(N);  PRINTCH(M)
            CHECK = CHECK+(N+M)
         %END
         %RETURN %IF START < 0;                     !?????

==== ercm09/emas-2900/ibmdoc_a5.txt ====
1 
0                                                          Ref. A5
-             SERCNET  -  ADDRESSING SUMMARY  (Ref. A5)
+             _______     __________ _______   ___  __
0                                               Version 2
+                                               _______ _
0                                               8 March 1982
+                                               _ _____ ____
0                                               P M Girard
+                                               _ _ ______
0  1. This  paper  summarises  the  essential  points  needed  for
        implementation.   For  a more detailed discussion  see the
        paper "SERCnet  -  Addressing Scheme" (Ref. A4).
0  2.  A name may be either an "address" or a "title".
+        ____
0  3.  An address is  a decimal number up to 15  digits long.   If
+         _______
        the number is 12 digits long or less, it represents a pure
        DTE number.  If it is more than 12 digits long, any digits
        beyond the 12th represent a Level 3 sub-address.   Leading
        zeroes may  be optionally omitted  in all contexts  if the

==== ercm09/emas-2900/nodemon2s.txt ====
%EXTERNALROUTINE NODEMON(%STRING (255) S)
%EXTERNALROUTINESPEC NODEGRAPHS(%STRING (255) S)
%EXTERNALROUTINESPEC DEFINE(%STRING (255) S)
      %STRING (255) T, U, UU, TITLE, UUU
      %RECORDFORMAT FF( %C
       %INTEGER TIM, CPU, ATT,CON,NIF,ERR, %INTEGERARRAY A(4:21))
      %OWNINTEGERARRAY AA(0:21)=0(22)
      %OWNINTEGERARRAY R(0:21) = 0(22)
      %INTEGER I, DIFF, K, L, US, CP, KB, PK, RJ
      %OWNINTEGER USERS, STA, CPU, PKTS, SBR, BYT, RJEO, TIM, RJEI
      %OWNINTEGER POINTS,ATT,CON,MES,COK,CFAIL,BL,ST,NIF,ERR
      %RECORD  F(FF)
      !!
      %OWNINTEGER CPU IDLE = 141;       ! 160=FAST STORE, 141=SLOW STORE
      !!
      !!
      %ROUTINE RD(%INTEGERNAME N)
         READ(N)
         %IF N< 0 %THEN N = N+32768*2
      %END
      !!

==== ercm09/emas-2900/tsbsp_tst_source.txt ====
!
!   transport service interface transmitter
!    copies file 1 to the TS interface
!
!prompts the user for the destination names
!
!The program uses a state table to control the actions, the state
!table is included in symbolic and data form below

! copyright University of Kent at Canterbury 1982

! stack=300, streams=1

!
%CONTROL 1
%BEGIN



%RECORDFORMAT MEF(%RECORD (MEF) %NAME LINK, %BYTEINTEGER LEN, TYPE, %C
   ( (%BYTEINTEGERARRAY PARAMS(0:251))  %ORC

==== ercm09/emas-2900/networks85_title.txt ====
@make[article]
@device[x2700]
@style[spacing 1]
@begin[text,topmargin=+1.1inches,leftmargin=+0.25inches,rightmargin=+0.5inches]
blank
@newpage
@majorheading[AN APPRAISAL OF THE ADVANTAGES & DISADVANTAGES
OF USING A PABX FOR DATA TRAFFIC]
@BLANKSPACE[0.5in]
@centre[@b[Brian Gilmore
Communications Manager
Edinburgh Regional Computing Centre
University of Edinburgh]]
@blankspace[1.8in]
     The paper discusses the main advantages and disadvantages of using a
 modern PABX for mixed speech and data traffic.  It comes to the conclusion
 that with the currently available technology it is not economic to use
 such an exchange for extensive data traffic and the paper goes on to look at
 future trends in this area in
 particular the use of PABX/LAN Gateways to ease connection problems.


==== ercm09/emas-2900/b_changes.txt ====
%externalroutinespec insert(%string (255) s)
%externalroutinespec remove(%string (255) s)

%externalroutine new(%string(255) s)
remove("iprogs_alist11y")
remove("iprogs_code11y")
remove("iprogs_link11y")
insert("ercs09.imp11y")
insert("ercs09.recodey")
insert("ercs09.link11y")
printstring("Gone to new compiler
")
%end
%externalroutine old(%string (255) s)
remove("ercs09.imp11y")
remove("ercs09.link11y")
remove("ercs09.recodey")
insert("iprogs_alist11y")
insert("iprogs_code11y")
insert("iprogs_link11y")
%end

==== ercm09/emas-2900/stars.txt ====
%EXTERNALINTEGERFNSPEC RANDOM(%INTEGERNAME I, %INTEGER J)
%OWNINTEGER FOR RANDOM=0
%REALFN RANDOMREAL
      !! RETURNS A RESULT .01<=X<=1
      %INTEGER P, X, Y
      %CYCLE
         X = RANDOM(FOR RANDOM, 1)
         X = X//10
         Y = X//100
         P = (X -100*Y)

         P=100 %IF P = 0
         %RESULT = P/100
      %REPEAT
%END


%EXTERNALROUTINE STARS(%STRING (255) JUNK)
%EXTERNALROUTINESPEC PROMPT(%STRING (15) S)
! %EXTERNALREALFNSPEC RANDOMREAL
%EXTERNALLONGREALFNSPEC CPUTIME

==== ercm09/emas-2900/start.txt ====
xmode trans

==== ercm09/emas-2900/b_ftpsnew.txt ====
prep fep_ftp1s,ftp1s#imp,r,e,i,clean
dimp11 ftp1s#imp
link11 /ftp1s
ftp1s
.stack 1400
.streams 1
.name ftps
.stackseg 6
.end
ftp1s
destroy ftp1ey
rename ftp1s#abs,ftp1ey

==== ercm09/emas-2900/am1test.txt ====
;TEST PROGRAM FOR 2900 GPC INTERFACE
;THERE ARE TWO VERSIONS OF THIS PROGRAM
;DEFINE 'PCVSN' TO TEST PC CARD
;UPDATED 03/08/79..MANY CHANGES ON OPERABLE, OP CHANGE,
;   PARITY ERROR, RESET ETC.
;UPDATED 13/02/78 TO DO 10 BIT TRANSFERS USING PARITY LOGIC
;UPDATED 27/01/78 FOR 'FETCH NEXT' MODIFICATIONS
;
;OPERATING INSTRUCTIONS
;ATTACH LOOP BACK PLUG TO GPC INTERFACE
;SET CORRECT BUS ADDRESS AND VECTOR ADDRES IN LOCATIONS 1004 AND 1006
;ENSURE MACHINE HAS A LINE TIME CLOCK AT LOCATION 777546,
;   VECTOR ADDRESS 100
;ENSURE MACHINE HAS A TELETYPE AT LOCATION 177560
;PROGRAM START ADDRESS IS 1000
;SET BITS IN SWITCH REGISTER AS FOLLOWS:
; 0..DISABLE TEST 1 (REGISTER TEST)
; 1..DISABLE TEST 2 ( 9 BIT DATA EXERCISOR)
; 2..DISABLE TEST 3 (10 BIT DATA EXERCISOR)
; 3..DISABLE TEST 4 ( 9 BIT DATA TEST WITH INTERRUPTS)
; 4..DISABLE TEST 5 (10 BIT DATA TEST WITH INTERRUPTS)

==== ercm09/emas-2900/node_ngate3.txt ====
! FILE 'NGATE3'
%CONSTSTRING (7) VSN = "VSN003J"

!****************************
!*  GATE FOR USE WITH NODE   *
!*  FILE:  NGATE3           *
!*  DATE:  18.NOV.80        *
!****************************
!! STACK SIZE = 300
%RECORDFORMAT DMF(%INTEGER I)
%SYSTEMROUTINESPEC LINKIN(%INTEGER SERVICE)
%SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)

%CONSTRECORD (DMF) %NAME NULL = 0

%CONSTINTEGER OWN TERM = 0;            ! NETWORK ADDRESS
%CONSTINTEGER MAX WRITES = 1;           ! WRITE-AHEADS TO PROTOCOL HAND.
%CONSTINTEGER LINE NO = 30
%CONSTINTEGER KENT = 0;                 ! KENT=1 - NO NODE IN NET



==== ercm09/emas-2900/kents1280_bsp4s.txt ====


!********************************
!*    EMAS-2900   BSP INTERFACE *
!*                    HANDLER     *
!*      FILE: BSP4S              *
!*        18:3:80                *
!*********************************
!!  STK = 300,  STRM = 1


%SYSTEMROUTINESPEC LINKIN(%INTEGER SER)
%SYSTEMROUTINESPEC MAP HWR(%INTEGER SEG)
%SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)

%RECORDFORMAT DMF(%INTEGER I)

%CONSTRECORD (DMF) %NAME NIL = 0


%CONTROL K'100001'

==== ercm09/emas-2900/ibmdoc_b1.txt ====
1 
0                                                          Ref. B1
-             NCP : FUNCTIONAL SPECIFICATION  (Ref. B1)
+             ___   __________ _____________   ___  __
0                                               Version 2
+                                               _______ _
0                                               8 March 1982
+                                               _ _____ ____
0                                               P M Girard
+                                               _ _ ______
0  1.  Introduction
+      ____________
0       The Network Control Program's function could be summarised
        roughly as  follows:  To provide  a network  interface for
        applications software,   allowing it  to communicate  with
        applications  elsewhere  on  a  network  or  multi-network
        system.
0       The purpose of this paper is to spell out the implications
        of the above statement,  and to  outline how,  and to what
        extent, it has been realised in practice.
-  2.  Versions

==== ercm09/emas-2900/b_nlp3s.txt ====
dimp11 node_nlp3s
link11 /nlp3s
nlp3s
.stack 1000
.streams 1
.name nlps
.end
nlp3s
destroy nlp3y
rename nlp3s#abs,nlp3y

==== ercm09/emas-2900/ibmdoc_b2.txt ====
1 
0                                                          Ref. B2
-              NCP : INTERNAL ORGANISATION  (Ref. B2)
+              ___   ________ ____________   ___  __
0                                               Version 2
+                                               _______ _
0                                               8 March 1982
+                                               _ _____ ____
0                                               P M Girard
+                                               _ _ ______
0  1.  Introduction
+      ____________
0       This paper gives technical  information about the internal
        organisation of  NCP at  a level  appropriate for  someone
        installing, developing or maintaining the software.
0       It is not the intention  to produce a blow-by-blow account
        of the flow  of control.   Nor would  this be particularly
        useful,   as the  listings  are  fairly heavily  commented
        throughout and should be easier  to follow than a separate
        verbal account.   However,  it can be very helpful to know
        what a  particular routine is  trying to achieve,   why it

==== ercm09/emas-2900/fepb_docs.txt ====



April 1980                           - 1 -


_  ____________
1  Introduction

     There  are  two  programs,  which  run  as  separate tasks under the DEIMOS
operating system [1], to control the transmission of information  on  the  ring.
The programs are written in IMP77 [2].

     The  first is a device driver for the ring interface, it provides for _____
                                                                           basic
_____  [3]  transfers  on  the  ring,  initialisation  of  the   interface   and
block
notification  of  power  failure  on the ring. The ring driver is designed to be
used by several tasks each of which specifies to the  ring  driver  a  range  of
input  ports  for  which  it  will  accept input. The second program provides an
implementation of the byte stream protocol BSP [4], using  the  ring  driver  to
perform the data transfers.
 The BSP handler, on initialisation, notifies the ring handler that all input to
ports  in  the  range  1  up  to the maximum number of byte stream ports allowed

==== ercm09/emas-2900/ibmdoc_b3.txt ====
1 
0                                                          Ref. B3
0        NCP : INTERFACE TO CP/CMS FOR TERMINALS  (Ref. B3)
+        ___   _________ __ __ ___ ___ _________   ___  __
0                                               Version 3
+                                               _______ _
0                                               8 March 1982
+                                               _ _____ ____
0                                               P M Girard
+                                               _ _ ______
   1.  Introduction
+      ____________
0       This paper relates to the VM  version of NCP only,  as the
        MVT version no longer supports access to CP/CMS.
0       The interface uses the IBM-supplied Logical Device Support
        Facility, LDSF, (see Ref.  M3),  and network terminals are
        made to look like ASCII devices  to the VM control program
        CP.    It was  necessary  to  modify CP's  ASCII  terminal
        support  to  some  extent.    The  code  for  issuing  the
        necessary   LDSF  DIAGNOSES   and   processing  the   LDSF
        interrupts is contained in the VMCF Package (Ref. C2), but

==== ercm09/emas-2900/sys_load8s.txt ====
! FILE 'LOAD7S'
!**************
!* LOAD17S  *
!* 14.JUN.82  *
!**************

%PERMINTEGERFNSPEC SVC(%INTEGER EP, %INTEGER P1, %INTEGER P2)
%PERMINTEGERMAPSPEC INTEGER(%INTEGER X)
%PERMBYTEINTEGERMAPSPEC BYTEINTEGER(%INTEGER X)
%PERMINTEGERFNSPEC ADDR(%INTEGERNAME X)
%SYSTEMINTEGERFNSPEC GETID


%CONTROL K'100001';                    ! TRUSTED

%RECORDFORMAT DUMREC(%INTEGER X)
%CONSTRECORD (DUMREC) %NAME NULL = 0


!***********************************
!*                                  *

==== ercm09/emas-2900/coral2x.txt ====
%begin
{'CORAL' TEST RESPONDER}
 %c
{'COMMENT' VERSION 1.1}
{}
{The official definition of Coral 66 does not provide for the output of}
{data at run time. However the facilities provided by the following}
{routines are useful within the Test Responder for logging/debugging}
{purposes. They can be supplied by the implementor either by adapting}
{existing routines or by writing new ones.}
{}
{The use of these routines is optional. If the implementor does not wish}
{to generate such output, he can define these procedures to be null,}
{comment them out, or delete each occurrence of them from the code. The}
{occurrences within read.command.octet (chart 3) have been commented out,}
{because for normal use they produce too much output:- one line per octet}
{received. The function of each of the routines is as follows:}
{}
{}
{trwritestring - writes the string supplied as the parameter to the}
{                output buffer.}

==== ercm09/emas-2900/fepconn.txt ====
@majorheading[FEP Connections]

@heading[EMAS]
@verbatim[
                        NOW                       FUTURE (where different)

FE1     Line 1      000016000002                 0000150010??
        Line 2      000015000001

Fe2     Line 1      000015000002
        Line 2      000016000001                 Not in use

Fe3     Line 1      000015001028

]
@heading[Bush]
@verbatim[

FE1     Line 1      000016000003                 000015000008
        Line 2      000071000004 (Strathclyde)


==== ercm09/emas-2900/ibmdoc_b4.txt ====
1 
0                                                          Ref. B4
-         NCP : INTERFACE TO RSCS (VNET) FOR RJE  (Ref. B4)
+         ___   _________ __ ____  ____  ___ ___   ___  __
0                                               Version 3
+                                               _______ _
0                                               8 March 1982
+                                               _ _____ ____
0                                               P M Girard
+                                               _ _ ______
0  1.  Introduction
+      ____________
0       This paper  covers both  the MVT and  VM versions  of NCP.
        The original version  of the paper contains  slightly more
        detail specific to the MVT environment.  In practice, RSCS
        calls  will not  be routed  via  MVT in  future,  and  the
        relevant code may be removed from  the MVT version at some
        stage.  The purpose of this interface is to provide access
        to  RSCS  (also  called VNET)   from  remote  workstations
        connected via the X25 network.   Card reader, line printer
        and  card punch  streams are  supported.    A main  remote

==== ercm09/emas-2900/ftppd_readme.txt ====
The contents of ftppd are as follows:-
build - example build file for the ftp handler
cons - source of the ftp table constructor
consy - object of the above
cons1y - object of the grammar contructor
doc - some documentation (covering theory only as of 4.4.83)
obj - object of the ftp program
source - source of above
table - source of the table specifying ftp

To build a new ftp handler:-
1.insert ftppd_consy and ftppd_cons1y
2.ftpcons ftppd_table/tableobject,tablelist
3.edit tableobject into ftppd_source replacing arrays token, next,
   action and value
4.follow scheme of commands in ftppd_build

Best of luck - Noel

==== ercm09/emas-2900/setmode9x.txt ====
! UINF record for Director 17
!
!
!<FEP stuff
%CONSTINTEGER TOPLOG=5
%CONSTINTEGER TOP FE NO = 7
%CONSTINTEGER FEP IO BUFF SIZE = 4096;  !NUMBER OF BYTES IN THE CONTROL BUFFERS FOR EACH FEP
      %RECORDFORMAT %C
FEPF(%INTEGER AVAILABLE, INPUT STREAM,  %C
      OUTPUT STREAM, IN BUFF DISC ADDR, OUT BUFF DISC ADDR,  %C
      IN BUFF DISC BLK LIM, OUT BUFF DISC BLK LIM,  %C
      IN BUFF CON ADDR, OUT BUFF CON ADDR, IN BUFF OFFSET,  %C
      OUT BUFF OFFSET, IN BUFF LENGTH, OUT BUFF LENGTH,  %C
      INPUT CURSOR, OUTPUT CURSOR)
      %RECORDFORMAT %C
LF(%STRING(11) NAME,%INTEGER FSYS,DISC ADDR,STATE)
      %RECORDFORMAT %C
PROCDATF(%STRING(6)USER, %BYTEINTEGER INVOC,  %C
      %BYTEINTEGER SP1, SP2, NODENO, FSYS,    %C
      %INTEGER REASON,ID,PROCESS,PREV WARN,SESSEND,  %C
      %BYTEINTEGER GETMODE,PREEMPT,BLNK,LINK)

==== ercm09/emas-2900/ibmdoc_b5.txt ====
1 
0                                                          Ref. B5
0              NCP : STATISTICS AND LOGGING  (Ref. B5)
+              ___   __________ ___ _______   ___  __
0                                               Version 2
+                                               _______ _
0                                               8 March 1982
+                                               _ _____ ____
0                                               P M Girard
+                                               _ _ ______
0  1.  Introduction
+      ____________
0       This paper relates specifically to  the VM version of NCP.
        The MVT version  uses SMF for statistics  collection,  and
        handles the logging disc in a somewhat different way.
0       A CMS-compatible minidisk is  used,  formatted entirely in
        4096-byte blocks.   Blocks 1 to 15 are used for statistics
        and the rest for logging.   The total size of the minidisk
        is currently 360 blocks.
-  2.  Statistics
+      __________

==== ercm09/emas-2900/nodemon3s.txt ====
%REALSLONG
!
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
!              NODE STATISTICS PACKAGE
!
!
!
!        GRAPH1  - CONNECTS V BLKS AND CPU
!
!        GRAPH2  - 2900 USERS V BLOCKS RXD & TXD
!
!        GRAPH3  - 2970 USERS V BLOCKS RXD & TXD
!
!        GRAPH4  - FREQUENCY V CON/MIN/USER
!
!
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!

==== ercm09/emas-2900/ednet.txt ====
{{circle(34,3,0.6)}}
{{INLABEL(.18,"N1")}}
{{circle(31.5,3,0.6)}}
{{INLABEL(.18,"N6")}}
{{circle(31.5,4.5,.75)}}
{{inlabel(.18,"RING@b")}}
{{inlabel(.12,"@b@bN72")}}
{{circle(10,21.7,3)}}
{{circle(10,4,3)}}
{{CIRCLE(24.5,11.5,0.5)}}
{{inlabel(.14,"Fe4@bT3")}}
{{CIRCLE(24.5,10.5,0.5)}}
{{inlabel(.14,"Fe1")}}
{{CIRCLE(24.5,9.5,0.5)}}
{{inlabel(.14,"Fe2")}}
{{CIRCLE(24.5,3,0.5)}}
{{inlabel(.14,"Fe2")}}
{{CIRCLE(29.5.5,21.7,1.5)}}
{{INLABEL(.14,"JANET@bPSE")}}
{{CIRCLE(24.5,7,.5)}}
{{inlabel(.14,"Fe1")}}

==== ercm09/emas-2900/ibmdoc_b6.txt ====
1 
0                                                          Ref. B6
-         NCP : SUPPORT OF INCOMING X29 AND TS29 (Ref. B6)
+         ___   _______ __ ________ ___ ___ ____  ___  __
0                                               Version 2
+                                               _______ _
0                                               8 March 1982
+                                               _ _____ ____
0                                               P M Girard
+                                               _ _ ______
0  1. For an X29 call,  the first  byte of the CUDF should contain
        X'01'.   (Values of X'7F' or  X'CC' are also acceptable at
        present if the  characters 'XXX' appear in the  6th to 8th
        bytes of the CUDF).   For a  TS29 call,  the first byte of
        the CUDF must be X'7F' and the CUDF must contain Transport
        Service addressing with a "called address" of TS29.
0  2. On DTE no. 1, the service accessed is MAST/ELECTRIC.  On DTE
        no.  2,   the service  accessed is  CP/CMS,  emulating  an
        'ASCII' terminal.
0  3. The following PAD  parameters are assumed to  be of interest
        only to the PAD or user,  and NCP does not alter them:  1,

==== ercm09/emas-2900/newsys_supnew.txt ====
!***********
!* sup010  *
!*05.mar.82*
!***********

%control x'4001'
%externalroutinespec push(%record(*)%name q,%record(*)%name m)
%externalrecord(*)%mapspec pop(%record(*)%name q)
%constrecord (*) %name null == 0

%recordformat dummy(%integer x)


%begin
     %constinteger task low limit=30
     %constinteger task limit=75
     %constinteger free cells=80
     %constinteger no of services=task limit
     %constinteger frag no=15
     %constinteger psect length=52
     %constinteger svc limit=23

==== ercm09/emas-2900/ibmdoc_b7.txt ====
1 
0                                                          Ref. B7
-     NCP : EXPERIMENTAL FULL SCREEN TERMINAL SUPPORT (Ref. B7)
+     ___   ____________ ____ ______ ________ _______  ___  __
0                                               Version 3
+                                               _______ _
0                                               8 March 1982
+                                               _ _____ ____
0                                               P M Girard
+                                               _ _ ______
0  1. VMNCP experimentally supports 3270 protocol (as used for the
        3277 model 2) via X29.   Only minor further changes should
        be needed  to make it work  over TS29 also.   Only  two or
        three calls are provided for.   If more are attempted, the
        calls are  likely to  delay one  another as  only four  4K
        buffers are incorporated in the program at present.
0  2. The characters 'XXXF' (in IA5)   must appear starting at the
        6th byte of the CUDF.   The setting of the Identifier byte
        in the CUDF should be X'01'.
0  3. The  software deals  with PAD  parameters as  for the  ASCII
        terminal interface.   In practice,  neither end at present

==== ercm09/emas-2900/cpsesetth.txt ====
@device[x2700]
@majorheading[CPSE]

@heading[Please do the following everytime the KB0 CPSE crashes or is reloaded:-]

@verbatim[SETTH LA14 TTD 300 10
SETTH LA14 RTF 200 10
SETTH LA14 PCC 200 10
SETTH LA41 RTF 100 10
SETTH LA42 RTF 100 10
SETTH LA42 PCC 100 10
SETTH IGST RTF 200 10
SETTH IGST TTD 100 10
SETTH ERCV RTF 50 10
]

@heading[Please do the following (at KB) everytime the AT CPSE crashes/is reloaded:-]
@verbatim[
SETTH LB07 L3T 100 10
SETTH MCSU RTF 100 10
]

==== ercm09/emas-2900/electregs.txt ====
%externalroutine electreg(%string (255) str)
%externalroutinespec define(%string (255) s)
%integerarray lab,con,lib(0:63)
%integerarray snp,ind,tota, hold(0:63)
%integerarray maj,indx(0:63)
%ownintegerarray look up(1:62) = %c
57, 4, 3, 16, 55, 17, 27, 53, 30, 62, 29, 5, 37, 24, 56, 54,
12,60, 9, 20, 39, 42, 59, 18, 58, 2, 28, 34, 19, 50, 52, 47, 46, 35, 48,
44, 8, 23, 11, 25, 61, 14, 31, 13, 6, 7, 45, 51, 1, 41, 49, 38, 33, 32,
22, 21, 36, 26, 15, 40, 10, 43
%string (25) %array names(0:63)
%ownintegerarray res(1:62, 1:10)
%ownbyteintegerarray labl(1:10) = 12, 10, 9, 8, 6, 5, 4, 3, 2, 1
%ownbyteintegerarray conl(1:10) = 16, 14, 12, 10, 8, 6, 5, 4, 3, 2

%ownstring (3) %array ps(1:5) = %c
      "Lab", "Con", "Lib", "Snp", "Ind"
%realarray pc(0:63)
%ownreal p1,p2
%owninteger this one
%string (255) ss

==== ercm09/emas-2900/newsys_rl06s.txt ====
!************
!*  rl06s   *
!*24.jun.82*
!************
!* reporting to dir task added
!* unit 4 added

%control 1

%begin

     %recordformat pf((%byteinteger service, reply %or %c
        %integer d),  %integer a1, a2, a3)

     %recordformat rlf(%integer cs, ba, da, mp)
     %constrecord (rlf) %name rl == k'114400'
     %constintegername ps == k'117776'

     %constinteger rltop = 10239
     %owninteger rl bot = k'77'


==== ercm09/emas-2900/dxxxxx.txt ====
;**************************************
;*         SYS_DXXXXX                 *
;*  INTERFACE BETWEEN HARDWARE AND IMP*
;*  DATE:  06.MAR.82                  *
;**************************************
;
; * PREP OPTIONS
; R - RK05 DUMPER
; F - FILESTORE SYSTEM
; N - NODES - EXTENDED INTERRUPTS
; X - RX02 DUMPER
; B - BISYNCH PSEUDO DMA
; H - DUP11 HDLC PSEUDO DMA
; V - LSI HDLC PSEUDO DMA (NB:DPV11 HARDWARE)
;
; NOTE: In order to assemble, the CLEAN option in prep MUST be used
;
; ******************** Options Included *********************
;
#IF R
; RK05 Dumper Included

==== ercm09/emas-2900/kents1280_bsp5s.txt ====
! FILE 'BSP5S'


!********************************
!*    EMAS-2900   BSP INTERFACE *
!*                    HANDLER     *
!*      FILE: BSP5S              *
!*  DATE:10.DEC.80               *
!* MODIFIED FOR ERCC USE         *
!*********************************
!!  STK = 300,  STRM = 1


%SYSTEMROUTINESPEC LINKIN(%INTEGER SER)
%SYSTEMROUTINESPEC MAP HWR(%INTEGER SEG)
%SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)

%RECORDFORMAT DMF(%INTEGER I)

%CONSTRECORD (DMF) %NAME NIL = 0


==== ercm09/emas-2900/intro1.txt ====
==== ercm09/emas-2900/ibmdoc_c1.txt ====
1 
0                                                          Ref. C1
-       INTER-PROCESS COMMUNICATIONS PACKAGE (IPC)  (Ref. C1)
+       _____ _______ ______________ _______  ___    ___  __
0                                               Version 8.7
+                                               _______ _ _
0                                               8 March 1982
+                                               _ _____ ____
0                                               P M Girard
+                                               _ _ ______
- 
                1.  Introduction
0               2.  Software Structure
0               3.  The User's Main Program
0               4.  The Dispatcher
0               5.  The Distributor Routine
0               6.  Inter-Process Message (IPM) Facilities
0               7.  Standard Inter-Process "Connections"
0               8.  Non-Standard Inter-Process "Connections"
0               9.  Asynchronous I/O Facilities
0               10. Timer Services

==== ercm09/emas-2900/newsys_dvn87.txt ====
;FILE 'SYS_DVRUB'
;**************************************
;*         DVRUB                      *
;*  INTERFACE BETWEEN HARDWARE AND IMP*
;*  DATE:  11.JUN.81                  *
;**************************************
 
.EXTERNAL ASSM
.INTERNAL $RUN
.INTERNAL DISPL="@DISPLAY"
.GLOBL G="%GO"
.INTERNAL EP

PS=177776; PROCESSOR STATUS WORD
 
IDLEST=-1; SUPERVISOR IDLE FLAG
 
INTVAL=40; DEDICATED LOCATION FOR INTERRUPT NUMBER
ALARMF=44; DITTO - FOR CLOCK
PSECT=46; DITTO - CURRENT PSECT
LASTPS = 54

==== ercm09/emas-2900/ibmdoc_c2.txt ====
1 
0                                                          Ref. C2
0                    THE VMCF PACKAGE  (Ref. C2)
+                    ___ ____ _______   ___  __
0                                               Version 8
+                                               _______ _
0                                               8 March 1982
+                                               _ _____ ____
0                                               P M Girard
+                                               _ _ ______
0  1.  Introduction
+      ____________
0       This  paper  supersedes  the paper  called  "The  MVT/VMCF
        Package  and  User  Interface",  and  should  be  read  in
        conjunction with  the same Version  number of  "A Protocol
        for Using VMCF" (Ref. A2).
0       If the  package is used via  IPC (Ref.  C1),   no detailed
        knowledge of the contents of this paper is required.
0       The package  aims to  support those  features of   the IBM
        VMCF (Ref.  M3) used or allowed by the protocol,  with the
        further  restriction  that  SEND/RECV and  REPLY  are  not

==== ercm09/emas-2900/b_ftpgn.txt ====
new
prep gen_ftpd3s,ftpd3s#imp,n,g,clean
dimp11 ftpd3s#imp
link11 /ftpd3s
ftpd3s#rel
.stack 2000
.streams 3
.stackseg 6
.end
ftpg3s
c ftpg3s#abs,ftpgn1y
destroy ftpg3s#abs

==== ercm09/emas-2900/intro3.txt ====
epJO
Introduction
------------

   Edinburgh University is spread accross many parts of Edinburgh with two main campus areas and a number of other scattered departments.  This situation has lead to a very high dependance on Networking being built up over fifteen years in order to ensure that students and staff can communicate with either the main University Services or local department machines (see fig 1). The current network is based on three GEC packet switches supporting 33 hosts and 100 synchronous links. 

   The nature of the University has also lead to a seperate complex speach network (see fig 2).  The University telehone exchanges now need to be replaced and the opportunity granted by the current range of PBXs lead to an extensive examination of the possibilities of using the speach network for carrying some, or all, of the University data traffic.

   The University was also able to take the opportunity of early exposure to one of the latest technology telehone exchanges in the form of a joint project with ICL, partly funded by grants from the DTI under a 'Focus' and Preproduction Order scheme.  This project is to connect a Mitel PBX to an ICL OSLAN (Open Systems Local Area Network) and to examine the consequences of carrying data traffic accross the PBX onto the LAN. A project diagram is shown in Fig 3.  The project is now one quarter through the evaluation year but a number of lessons have already become clear and are discussed below.

Advantages
----------

   There are a number of advantages gained by using a PABX for data traffic, they are:-
in3
Common Wiring
-------------
   The biggest attraction of using a PABX for data traffic is that the wiring is already in place.  The penetration of telephones is greater than that of terminals.  In Edinburgh University we have ???? telephone extensions and 1520 asynchronous connections.  The number of telephone extensions is static but the number of asynchronous connections has risen by about 20% per year for the last few years.  So an alternative to laying yet more copper is very attractive.  Unfortuantly, this situation is far more complex than that and because the existing telephone wiring is owned by BT we will actually be rewiring the entire university when the new exchanges are installed. This new wiring will be capable of fully supporting both the speach and data requirements for most users.

Direct connection of terminals
------------------------------

==== ercm09/emas-2900/ibmdoc_c3.txt ====
1 
0                                                          Ref. C3
-                    THE DEFI PACKAGE  (Ref. C3)
+                    ___ ____ _______   ___  __
0                                               Version 2
+                                               _______ _
0                                               8 March 1982
+                                               _ _____ ____
0                                               P M Girard
+                                               _ _ ______
0       This small  package provides  access under  VM  to a  CMS-
        compatible minidisk on a 3350 using 4096-byte blocks.  The
        virtual device address is 201.
0       The module,   written in Assembler,  contains  three entry
        points as follows:
0            CALL DEFI (DUMMYARG)
0       The  argument  is  not  used,  and  is  present  only  for
        historical reasons.    The routine sets  up an  RPS sector
        table for  the minidisk,  and  must be called  (once only)
        before reading or writing can begin.
0            CALL DRIN (DUMMYARG,BLOCNO,DATA)

==== ercm09/emas-2900/erte_icl1s.txt ====
!*********************
!*    ICL1S/ICL1Y    *
!* DATE: 24.FEB.80  *
!!!!!!!!!!!!!!!!!!!!!!
!STACK = 140


%RECORDFORMAT XXF(%INTEGER DUMMY)
%CONSTRECORD (XXF) %NAME NULL = 0

%CONTROL X'100001';                    ! TRUSTED PROGRAM AND QUICK
                                       ! ROUTINE ENTRY AND EIS


%CONSTSTRING (7) VSN = 'VSN001B'
%BEGIN
     %SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)
     %SYSTEMROUTINESPEC LINKIN(%INTEGER SER)

      %RECORDFORMAT PARF(%INTEGER TYPE, %RECORD (XXF) %NAME B, %C
        %INTEGER LEN)

==== ercm09/emas-2900/dpal7s.txt ====
! FILE 'DPAL7S'
!*****************
!*  DPAL7S       *
!* DA: 05.MAR.81 *
!* RL01          *
!*****************
! STK = 1400, STRMS = 1

%PERMROUTINESPEC SVC(%INTEGER EP, %INTEGERNAME P1, %INTEGER P2)
%PERMINTEGERMAPSPEC INTEGER(%INTEGER X)
%PERMBYTEINTEGERMAPSPEC BYTEINTEGER(%INTEGER X)
%PERMINTEGERFNSPEC ADDR(%INTEGERNAME X)
%PERMINTEGERFNSPEC ACC
%CONSTINTEGERNAME DUMMY = 0


%BEGIN
     %RECORDFORMAT SEGF(%INTEGER PAR, PDR, PT, X)
     %RECORDFORMAT PSECTF(%INTEGER Q, %BYTEINTEGER ID, STATE, %C
        %BYTEINTEGERARRAY NAME(0:3), %C
        %BYTEINTEGER PRIO, %INTEGER POFFQ, R0, R1, R2, R3, %C

==== ercm09/emas-2900/clog6s.txt ====
!
!
! CLOG  CLOG  CLOG  CLOG  CLOG  CLOG  CLOG  CLOG  CLOG  CLOG  CLOG  CLOG 
! CLOG  CLOG  CLOG  CLOG  CLOG  CLOG  CLOG  CLOG  CLOG  CLOG  CLOG  CLOG 
!
!
!
%CONTROL K'001001'
!
!
%BEGIN
!
!
!
!G.J.B.  //  J.C.A.     STARTED 10:11:76
! ???       LAST UPDATE 15:3:79     14:10     - FILE CLOG5S
!
!   FOR ERTE MK.6    MK. 3 MODS MARKED !&&
!   FOR ERTE MK.3   MK. 4 MODS MARKED !@@
!   SET UP FOR F1 STANDARD COMMANDS
!

==== ercm09/emas-2900/b_lotups.txt ====
e gen_loadups,lotups
f+batch go/.tt+s+LOAD FEP+p
1
%c
imp11 lotups
link11
lotups#rel
i77perm
.stack 1000
.streams 0
.name ldup
.end
lotupy
alist11 lotups/.lp23
list lotupy,.bpp155
destroy lotups,lotups#rel

==== ercm09/emas-2900/b_ringdma.txt ====
prep ring35,ring35#imp,o,q
imp11 ring35#imp
link11
ring35#rel
i77perm
.stack 1000
.streams 1
.name ring
.end
ring35y

==== ercm09/emas-2900/b_verisnew.txt ====
e gen_veris77/temp
f/deimosperm/s/b_deimosspecs/
m-0f/cli string/s/cli param/
0
m-0f/%integername a/s/%integer a/
1
1
f/==address/e
m-0f/f2==fa(0)/k
f/f2_x/s/addr(fa(0))/
m-0
f/, ba(0)_pr/s/, addr(ba(0)_pr)/p
1
%c
dimp11 temp
link11 /temp
temp
ercm11.newimp
.stack 6000
.streams 1
.name veri

==== ercm09/emas-2900/kmc11_krecos.txt ====
!
! KMC11 RECODE  -  GJB 19/06/78
!
%CONTROL K'101011'
%BEGIN
%EXTERNALROUTINESPEC HEX(%INTEGER DATA)
%EXTERNALROUTINESPEC OCTAL(%INTEGER DATA)
%EXTERNALROUTINESPEC SYMBOL(%INTEGER DATA)
%EXTERNALROUTINESPEC INST(%INTEGER DATA)
%INTEGER DATA,ADDRESS

%ROUTINE READ DATA
%INTEGER I
read ch(I);   read ch(DATA);   DATA=DATA!I<<8
%END

%ROUTINE MOVE
%INTEGER I
NEWLINE;   PRINT SYMBOL('*') %FOR I=1,1,77;   NEWLINES(2)
%END


==== ercm09/emas-2900/b_bspd.txt ====
prep ring_bsp78s,bsp78s#imp,o,d
imp11 bsp78s#imp
link11
bsp78s#rel
i77perm
.stack 1000
.streams 0
.name bsps
.end
bsp78dy

==== ercm09/emas-2900/sys_sbld12s.txt ====
!**********
!* SBLD12S *
!* NB: NOT SAME AS BPL SBLD1S !!!!
!* DATE:  16.NOV.79               *
!* SUPERVISOR BUILD PROGRAM         *
!*************************************

%PERMROUTINESPEC SVC(%INTEGER EP, %INTEGERNAME P1, %INTEGER P2)
%PERMINTEGERMAPSPEC INTEGER(%INTEGER X)
%PERMBYTEINTEGERMAPSPEC BYTEINTEGER(%INTEGER X)
%PERMINTEGERFNSPEC ADDR(%INTEGERNAME X)
%PERMINTEGERFNSPEC ACC
%CONSTINTEGERNAME DUMMY = 0


%CONSTINTEGERNAME NULLI = 0


%BEGIN

     !* STK = 76000, STRM = 3

==== ercm09/emas-2900/ednet0785.txt ====
{{circle(23,11.5,.5)}}
{{INLABEL(.18,"EML")}}
{{circle(31.5,3,0.6)}}
{{INLABEL(.18,"N6")}}
{{circle(31.5,4.5,.75)}}
{{inlabel(.18,"RING@b")}}
{{inlabel(.12,"@b@bN72")}}
{{circle(10,21.7,3);inlabel(.4,"KB-CPSE@bGEC 4190@b")}}
{{inlabel(.14,"@B@B@b@b000015000000")}}
{{circle(10,4,3);inlabel(.4,"AT-CPSE@bGEC 4190@b")}}
{{inlabel(.14,"@B@B@b@b000016000000")}}
{{CIRCLE(28,9.5,0.5)}}
{{inlabel(.14,"Fe4@bT3")}}
{{CIRCLE(23,10.5,0.5)}}
{{inlabel(.14,"Fe1")}}
{{CIRCLE(23,9.5,0.5)}}
{{inlabel(.14,"Fe2")}}
{{CIRCLE(23,3,0.5)}}
{{inlabel(.14,"Fe2")}}
{{CIRCLE(30.5,21.7,1.5)}}
{{INLABEL(.14,"JANET@bPSE")}}

==== ercm09/emas-2900/ibmdoc_d1.txt ====
1 
0                                                          Ref. D1
-         A TRANSPORT SERVICE INTERFACE VIA IPC  (Ref. D1)
+         _ _________ _______ _________ ___ ___   ___  __
0                                               Version 4
+                                               _______ _
0                                               8 March 1982
+                                               _ _____ ____
0                                               P M Girard
+                                               _ _ ______
0  1.  Introduction
+      ____________
0       To  facilitate  eventual  transition to  an  ISO  Standard
        Transport Service, hopefully manufacturer-supported, it is
        important  that  Applications  should  all  use  the  same
        Transport  Service  interface.   This  paper  defines  the
        interface and describes the software that implements it.
0       The  Transport Service  interface  is  built upon  various
        lower level facilities.    The basic component is  the IPC
        Package (Ref.  C1),  which  provides the necessary network
        "Access Method"  facilities to OPEN and  CLOSE connections

==== ercm09/emas-2900/ednet0786.txt ====
{{circle(23,11.5,.5)}}
{{INLABEL(.14,"Fe4")}}
{{circle(11,16,1.5);inlabel(.2,"TelePAC@b15003000")}}
{{join(c1,c2)}}
{{circle(0,0,0)}}
{{circle(13,21.7,2.5);inlabel(.35,"KB-CPSE@bGEC 4190@b")}}
{{inlabel(.14,"@B@B@b@b000015000000")}}
{{circle(13,4,2.5);inlabel(.35,"AT-CPSE@bGEC 4190@b")}}
{{inlabel(.14,"@B@B@b@b000016000000")}}
{{CIRCLE(23,2.8,0.5);inlabel(.14,"Fe4")}}
{{CIRCLE(23,10.5,0.5);inlabel(.14,"Fe1")}}
{{CIRCLE(23,9.5,0.5);inlabel(.14,"Fe2")}}
{{CIRCLE(23,3.8,0.5);inlabel(.14,"Fe2")}}
{{CIRCLE(32.5,21.7,1.5);INLABEL(.14,"JANET@bPSE")}}
{{CIRCLE(23,7.3,.5);inlabel(.14,"Fe2")}}
{{circle(12.75,24.8,.1);fill(c12)}}
{{circle(14.75,24.8,.1);fill(c13)}}
{{circle(16.75,24.8,.1);fill(c14)}}
{{circle(20.75,25.2,0)}}
{{circle(6.75,25.2,0)}}
{{CIRCLE(6.75,1.4,0)}}

==== ercm09/emas-2900/b_supbl.txt ====
parm free
parm opt,noarray,notrace
prep supbuilds,supbuilde,e
i supbuilde,supbuildy,l,.out

==== ercm09/emas-2900/b_ftpgx.txt ====
new
prep x25gen_ftpd4s,ftpd4s#imp,x,g,clean
dimp11 ftpd4s#imp
link11 /ftpd4s
ftpd4s#rel
.stack 2400
.streams 1
.stackseg 6
.name ftpx
.end
ftpg4s
c ftpg4s#abs,ftpgx1y
destroy ftpg4s#abs
alist11 ftpd4s#imp
list ftpd4s#lst,.lp23

==== ercm09/emas-2900/gecenhres.txt ====
GEC PSE Enhancements results

Pos Votes      Question

 1   87  P1   Easy method of changing configuration details (eg. DTE/DCE,
              redistribution of LCN's between logical groups) without having
              to ask GEC where to patch the system.
     
 2   79  N23  Monitor comand, switchable per link, to list calls as set up and
              cleared (called, calling addresses, direction).
     
 3   78  N12  STATUS - 'LINK DOWN' type messages to appear on same line as
              status report and replaced by a more specific cause of link
              failure (eg. timeout, carrier lost).
     
 3   78  N14  Monitor calls through switch - two types:
                                  
                static   -  a snapshot
               
                dynamic  -  listing calls as set up and cleared until
                            monitor is turned off

==== ercm09/emas-2900/pssbuild_suppss.txt ====
DEIMOS VSN 10.1  31 AUG 82 SERVICE PSS GATEWAY 3 * DUP11, 1 * RING, 1 * RL02
RL01
3500
DVDUPY N 0
SUP50 60002 0
PERM2Y 60006 0
BTT7Y 60012 0
RL06Y 60016 0
FSYS78 60022 0
LOAD8Y 60026 0
CLI2Y 60032 0
MOTH6Y 60036 0
END
-7 330 RING RECEIVE  764040
-6 334
-31 300    DUP11 #1 RX, ADDR = 760050
-32 304             TX
-33 310           #2 RX, ADDR = 760060
-34 314              TX
-35 320           #3 RX, ADDR = 760070
-36 324              TX

==== ercm09/emas-2900/b_rolb.txt ====
prep rolb77s,rolb77s#imp,n,clean
imp11 rolb77s#imp/,l
link11
rolb77s#rel
i77perm
.stack 2000
.streams 1
.end
rolb77y
alist11 rolb77s#imp/.lp23

==== ercm09/emas-2900/b_lmn6.txt ====
e gen_lmtims/temp
f/prompt("n/k2g
node = 6; term = 181
m-0
f/ercm09/s/ERCM05/p
f/liam/s/LIZ!/p
%c
imp11 temp
link11
temp#rel
i77perm
.stack 2000
.streams 1
.name lmn6
.end
lmn6y

==== ercm09/emas-2900/hextobin.txt ====
%EXTERNALROUTINE HFTB(%STRING(63) S)
!ROUTINE FOR CONVERTING HEX-PAIR FILES TO BINARY  
!J. BUTLER 1.9.78
%EXTERNALROUTINESPEC CHANGESM(%INTEGER CHAN,L)
%EXTERNALROUTINESPEC NEWSMFILE(%STRING(63) S)
%EXTERNALROUTINESPEC CLOSESM(%INTEGER CHANNEL)
%EXTERNALROUTINESPEC DEFINE(%STRING(63) S)
%EXTERNALINTEGERFNSPEC SMADDR(%INTEGER CHAN,%INTEGERNAME L)
%EXTERNALROUTINESPEC DESTROY(%STRING(63) S)
%EXTERNALINTEGERFNSPEC EXIST(%STRING(63) S)
%INTEGER INA,INL,OUTA,OUTL
%STRING(63) T,U
%UNLESS S->T.(",").U %THEN PRINTSTRING("Parameters?") %ANDRETURN
 

%IF EXIST(U)#0 %THEN DESTROY(U)
DEFINE("1,".T)
select input(1)
NEWSMFILE(U.",1")
DEFINE("2,".U)
CHANGESM(2,x'100000')

==== ercm09/emas-2900/tsbsp_source.txt ====
!
!     TSBSP DRIVER
! copyright University of Kent at Canterbury 1982

! stack=2000, streams=0

!version 2:  23:1:82
!
%CONTROL 1
%BEGIN


%RECORDFORMAT NSF(%INTEGERARRAY DUM(1:3), %STRING (241) NAME)

%RECORDFORMAT NSRF(%INTEGER D1,D2,CODE,     %C
   ((%STRING (241) NAME) %ORC
    (%BYTEINTEGER FLAGS, ADDRESS, %INTEGER PORT, FUNCTION, %C
       %STRING (55) RESTOFNAME )))

%RECORDFORMAT MEF(%RECORD (MEF) %NAME LINK, %BYTEINTEGER LEN, TYPE, %C
   ( (%BYTEINTEGERARRAY PARAMS(0:251))  %ORC

==== ercm09/emas-2900/docum_dmphilp1.txt ====
$A MARK=2
$A TAB=5, 10, 15
$A JUST=1; LINE=69; PAGE=54; TOP=5; BOTTOM=7
$A NLS=2
$B10 $L1M
imp AS A tOOL FOR sMALL oPERATING sYSTEMS iMPLEMENTATION
$b2
$l1m
bRIAN a. c. gILMORE
$B10
$l1m
tHESIS pRESENTED FOR THE dEGREE OF mASTER OF pHILOSOPHY
$l1m
fACULTY OF sCIENCE, uNIVERSITY OF eDINBURGH
$l1m
oCTOBER 1976
$N
$L1CM
ABSTRACT
$P2 @THIS THESIS DISCUSSES THE DESIRABILITY
OF USING A HIGH LEVEL LANGUAGE FOR SMALL SYSTEMS

==== ercm09/emas-2900/docum_dmphilp2.txt ====
$A PAGENO=71
$A MARK=2
$A TAB=5, 10, 15
$A JUST=1; LINE=69; PAGE=54; TOP=5; BOTTOM=7
$A NLS=1
$A MARK=2
$A TAB=5, 10
$A JUST=1; LINE=69; PAGE=54; TOP=5; BOTTOM=7
$L3CM
APPENDIX 1

USER MANUAL FOR THE FIRST SYSTEM
$N
$A TAB=5, 10; CAPO=0; CAPSHO=0; INVERT=0
$B20
$L1CM
USER MANUAL FOR MUSS11
$B2
$L1CM
B. GILMORE 
$L1CM

==== ercm09/emas-2900/b_deimosperm.txt ====
!
!      specs for deimos perm routines
!
%externalroutinespec pon(%record(*) %name p)
%externalroutinespec poff(%record(*) %name p)
%externalroutinespec ponoff(%record(*) %name p)
%externalintegerfnspec mapvirt(%integer ser,seg1,seg2)
%externalintegerfnspec map abs(%integer vadd,len,id)
%externalintegerfnspec getid
%externalroutinespec alarm(%integer ticks)
%externalroutinespec linkin(%integer ser)
%externalroutinespec maphwr(%integer segs)
%externalintegerfnspec mappsect(%integer seg,task)
%externalroutinespec push(%record(*)%name q,%record(*)%name m)
%externalrecord(*)%mapspec pop(%record(*)%name q)
%externalintegerfnspec time
%externalroutinespec set prio(%integer prio)
%constbyteintegername own id==(8_160030);   !8.1 compiler bug
%constbyteintegername fsys == k'160055'
%constbyteintegername id == k'160030'
%constbyteintegername int==(8_160060)

==== ercm09/emas-2900/dvdup.txt ====
;! FILE 'DVDUP'
;.TIME40
;**************************************
;*         DVDUP                      *
;*  INTERFACE BETWEEN HARDWARE AND IMP*
;*  DATE:  27.MAR.81                  *
;**************************************
 
PS=177776; PROCESSOR STATUS WORD
 
IDLEST=-1; SUPERVISOR IDLE FLAG
 
INTVAL=40; DEDICATED LOCATION FOR INTERRUPT NUMBER
ALARMF=44; DITTO - FOR CLOCK
PSECT=46; DITTO - CURRENT PSECT
LASTPS = 54
INTINF=56
 
UPAR=177640
UPDR=177600
 

==== ercm09/emas-2900/ibmdoc_e2.txt ====
1 
0                                                          Ref. E2
0                   VMNCP INSTALLATION  (Ref. E2)
+                   _____ ____________   ___  __
0                                               Version 1
+                                               _______ _
0                                               8 April 1982
+                                               _ _____ ____
0                                               P M Girard
+                                               _ _ ______
0  1.  Introduction
+      ____________
0       The software can be shipped on mag tape in a form ready to
        be  loaded  back into  a  CMS  system.   It  includes  all
        relevant source  code together  with some  EXEC procedures
        and MODULE files.
0       It is assumed that the recipient is running VM/SP and that
        the FORTRAN H Extended Plus compiler will be available.
0       The tape  is written  without labels  using the  CMS 'TAPE
        DUMP' command,  and  the normal VM/SP options  are assumed
        (e.g:  BLKSIZE 4096).   For convenience, the tape is split

==== ercm09/emas-2900/erteicl_printd.txt ====

! PRINTD PRINT DOUBLE WORD INTEGERS

!W.S.C. 28TH FEB 1977

!LAST UPDATED 02/03/77 12:50

%EXTERNALROUTINE PRINTD(%INTEGER N1,N2,SP,DEC)
   !
   !TO PRINT OUT DOUBLE WORDS,1000 S IN N1
   !UP TO 1000 IN N2.SP IS TOTAL SPACE
   !AS IN A WRITE COMMAND.IF DEC#0 THE LAST
   !TWO DIGITS ARE PRINTED AFTER A DECIMAL POINT.
   !
   %BYTEINTEGERARRAY N(0:7)
   %INTEGER I,P,S,M1,M2
   I=10000
   P=0
   M1=N1
   S=-1
   %WHILE I>0 %CYCLE

==== ercm09/emas-2900/inc_csidefs.txt ====
%CONSTINTEGER LIT=1,DELIM=2,DIGIT=3,TERM=4,TEXT=5,NUMB=6,CHAR=7
%CONSTINTEGER LITALT=129,DELIMALT=130,DIGALT=131,TERMALT=132
%CONSTINTEGER TEXTALT=133,NUMBALT=134,CHARALT=135
%ENDOFFILE

==== ercm09/emas-2900/ybgate.txt ====

                          DEIMOS

                                                      Vsn 5, 11 April '85
                                                          B. Gilmore
            Yellow Book  GATE - to - TASK Interface
            =======================================


      This note describes the interface between a Task and a 'Yellow
book' GATE.  The intention with a 'yellow book' GATE is that the interface
is common accross NSI, (TS)BSP and X25, though each protocol will require a
different GATE.

      The interface operates by the sending of messages as records, 'P', in
the format:
            %BYTEINTEGER SER, REPLY, FN, S1, %C

            (%RECORD (MEF) %NAME MES, %C
            %BYTEINTEGER GATE PORT, TASK PORT)  %OR


==== ercm09/emas-2900/b_load8.txt ====
dimp11 load8s
link11 /map
load8s
.codeseg 2
.stackseg 6
.stack 600
.streams 1
.end
load8s
c load8s#abs,newsys_load8y

==== ercm09/emas-2900/sys_dvrxrub.txt ====
.TIME40
;**************************************
;*         DVRXRUB                    *
;*  INTERFACE BETWEEN HARDWARE AND IMP*
;*  DATE:  03.AUG.81                  *
;**************************************
 
PS=177776; PROCESSOR STATUS WORD
 
IDLEST=-1; SUPERVISOR IDLE FLAG
 
INTVAL=40; DEDICATED LOCATION FOR INTERRUPT NUMBER
ALARMF=44; DITTO - FOR CLOCK
PSECT=46; DITTO - CURRENT PSECT
LASTPS = 54
INTINF=56
 
UPAR=177640
UPDR=177600
 
UPAR0=40; INDEC INTO PSECT

==== ercm09/emas-2900/b_dx11.txt ====
prep x25_dx11b1s,dx11b1s,b,n,m
dimp11 dx11b1s
link11 /map
dx11b1s
.stack 2000
.streams 1
.name dx11
.stackseg 6
.end
dx11b1s
c dx11b1s#abs,dx11b1y

==== ercm09/emas-2900/spider.txt ====
@make[report]
@majorheading[Spider]
The current agreement with Spider is as follows:-
@section[ Supply of X.25 (1984) and LLC2 code]
 license fees as follows:-
@itemise[
1-50    100 pounds per license

51-250  50 pounds

251-500 25 pounds

500-    10 pounds
]
@section[Use of license]
@itemise[
Exclusive for Ethernet Pads  (time limit?)

One year exclusive for WAN Pads

One year exclusive for discrete Gateways ethernet/WAN

==== ercm09/emas-2900/sxprot.txt ====
EDIT x25_XPROTs,T#B
TA/198/A1STM/Versi/f<X>KZ(r/Running/i<X>i/ (Slow)/p1)2
E
prep t#b,xprot#imp,Q
IMP11 XPROT#IMP/XPROT#REL,xprot#lst

LINK11
ERCM09.I77PERM
XPROT#REL
.STACK 2000
.STREAMS 0
.NAME XPR1
.END
XPR1#OBJ
destroy xpr1sy
rename xpr1#obj,xpr1sy

alist11 xprot#imp/.lp23

==== ercm09/emas-2900/erteicl_xssllps.txt ====
%BEGIN
*K'104001'
%ENDOFPROGRAM

==== ercm09/emas-2900/b_lminfo.txt ====
imp11 lminfo
link11
lminfo#rel
i77perm
.stack 2000
.streams 1
.end
lminfoy
list lminfoy,.fep72

==== ercm09/emas-2900/kmc11_kloads.txt ====
 !
! KMC11 LOADER  -  GJB 14/04/78
!
%CONTROL K'101011'
%BEGIN
%RECORDFORMAT KF(%BYTEINTEGER CSR0,CSR1,%INTEGER CSR2,CSR4,CSR6)
%SYSTEMROUTINESPEC MAP HWR(%INTEGER SEG)
%CONSTRECORD(KF)%NAME KMC=K'060160';   
%INTEGER ADDRESS,DATA

%ROUTINE READ DATA
%INTEGER I
READ SYMBOL(I);   READ SYMBOL(DATA)
DATA=DATA!I<<8
%END

%ROUTINE INST(%INTEGER INSTRUCTION)
KMC_CSR1=0;   KMC_CSR6=INSTRUCTION
KMC_CSR1=KMC_CSR1!2
KMC_CSR1=KMC_CSR1!1
%END

==== ercm09/emas-2900/ftppd_oldsource.txt ====
%control 1
#if ~x
#if n
#report NSI version
#else
#report ring version
#fi
#else
#report ts version
#fi
%include "ercm09.b_deimosspecs"

%conststring (9) vsn = "FTPQ..1n "

%begin
%externalstring (255) %fnspec cli param

#datestring
#timestring
#if ~x
#if n

==== ercm09/emas-2900/ibmdoc_f1.txt ====
1 
0                                                          Ref. F1
-            VMNCP : OPERATORS' DOCUMENTATION  (Ref. F1)
+            _____   _________  _____________   ___  __
0                                               Version 2
+                                               _______ _
0                                               8 March 1982
+                                               _ _____ ____
0                                               P M Girard
+                                               _ _ ______
0  PART A : GENERAL DESCRIPTION
+  ____ _   _______ ___________
0  1.  Introduction
+      ____________
0       VMNCP is  a version of  the Network Control  Program (NCP)
        that runs under  CMS in its own virtual  machine.   It can
        run at the same time as  the MVT version,  DKNCP,  and the
        two have no internal contacts with each other: effectively
        they are two separate host  machines on the network,  each
        having its  own network address.    In due  course,  VMNCP
        should supersede DKNCP completely,  but the latter remains

==== ercm09/emas-2900/ibmdoc_f2.txt ====
1 
0                                                          Ref. F2
-                VMNCP : DIAGNOSTIC CODES  (Ref. F2)
+                _____   __________ _____   ___  __
0                                               Version 3
+                                               _______ _
0                                               8 March 1982
+                                               _ _____ ____
0                                               P M Girard
+                                               _ _ ______
0  The diagnostic codes issued by VMNCP  (and also by DKNCP in the
   MVT system)   are based on  those recommended in  the Transport
   Service specification (Ref. A6).
0  The list  below covers  those actually  used,  and  explanatory
   comments are added where appropriate.
0            X'01'  : DISCONNECT received from other end
             X'11'  : Number busy (no ports into application)
             X'12'  : Out of order (no response from application)
             X'13'  : Invalid address
             X'17'  : Network congestion (at call set-up)
             X'21'  : Protocol error (accusation)

==== ercm09/emas-2900/ftppd_newlist.txt ====


! ?
" ?
# ?
$ ?
% ?
& ?
' ?
( ?
) ?
* ?
+ ?
, ?
- ?
. ?
/ ?
0 ?
1 ?
2 ?
3 ?

==== ercm09/emas-2900/log_t44simtest.txt ====
*T44 RING SINK FROM 3 MACHINES, LOOKING FOR LOCKOUT, 18.MAR.81

******** I 9001
******** O 9004
END OF TRACE
************
************
************
************
************
************
************
************
************
************
************
************
************
************
************
************

==== ercm09/emas-2900/b_moth.txt ====
dimp11 newsys_moth77,moth77#rel
link11 /moth77
moth77
.stack 300
.streams 0
.codeseg 2
.stackseg 6
.end
moth77
c moth77#abs,newsys_moth77y

==== ercm09/emas-2900/imp77specs.txt ====
! Specs to aid IMP77 programs running on IMP80
%record %format EVENTFM (%integer EVENT, SUB, EXTRA, %string(255) MESSAGE)
%external %record (EVENTFM) %spec EVENT
%external %routine %spec SIGNAL (%integer EVENT, SUB, EXTRA)
%external %routine %spec SET EVENT
%external %routine %spec PROMPT (%string(15) STR)
%external %string (15) %fn %spec DATE
%external %string (15) %fn %spec TIME
%external %routine %spec OPEN INPUT (%integer ch, %string(255) file)
%external %routine %spec OPEN OUTPUT (%integer ch, %string(255) file)
%external %routine %spec CLOSE INPUT
%external %routine %spec CLOSE OUTPUT
%external %string (63) %fn %spec ITOS (%integer N, P)
%external %routine %spec WRITE %alias "I77#WRITE" (%integer N, P)
%external %routine %spec PRINT %alias "I77#PRINT" (%long %real R, %integer I, P)
%external %routine %spec READ SYMBOL %alias "I77#RSYM" (%integer %name SYM)
%external %routine %spec SKIP SYMBOL %alias "I77#SSYM"
%external %integer %fn %spec NEXT SYMBOL %alias "I77#NSYM"
%external %routine %spec PRINT SYMBOL %alias "I77#PSYM" (%integer sym)
%external %integer %fn %spec REM (%integer A, B)
%end %of %file

==== ercm09/emas-2900/dvrub.txt ====
; FILE 'DVRUB'
;**************************************
;*         DVRUB                      *
;*  INTERFACE BETWEEN HARDWARE AND IMP*
;*  DATE:  06.MAR.81                  *
;**************************************
 
PS=177776; PROCESSOR STATUS WORD
 
IDLEST=-1; SUPERVISOR IDLE FLAG
 
INTVAL=40; DEDICATED LOCATION FOR INTERRUPT NUMBER
ALARMF=44; DITTO - FOR CLOCK
PSECT=46; DITTO - CURRENT PSECT
LASTPS = 54
INTINF=56
 
UPAR=177640
UPDR=177600
 
UPAR0=40; INDEC INTO PSECT

==== ercm09/emas-2900/x25addrn.txt ====
@device[x2700]
@style[topmargin=0.5in,leftmargin=0.5in,bottommargin=0.5in]
@majorheading(EDNET addresses    Post introduction of TelePAC)
@b[ Configuration of GEC 4190 KB#1 switch    System No. 669]
@verbatim[
Line No     Address     Name         Use                 Comments

lau 01   V  160000xx    TRGS     V35 Trunk to George Sq. #1
lau 02  IH  15000002    EA71     2976 fep (fe2)     (Primary Line)
lau 03   H  150010xx    TRK2     Link to KB2 TelePAC CPSE
lau 04   M  15000004    E882     Xcall - XXX <-> ITP Converter
lau 05  TM  15000099    GW01     Gateway to JANET (Extern:000007001004)
lau 06   M  15000006    CSVX     ECSVax - Comp. Sc. Vax    No XXX, ITP only
lau 07   M  15000007    XGTE     (Second Xcall)
lau 08   M  --------    GSCP     Multiplexor Trunk Link to George Sq. Switch
lau 09  IM  15000001    EA72     2976 Fep (fe1)    (Secondary Line)
lau 10   M  15000010    ERCV     ERCVax - ERCC Vax/VMS 11/750
lau 11   M  15000003    E881     Bush fep (fe2)
lau 12   T  --------    STSW     Trunk Link to Strathclyde (nb: DTE end)
lau 13      15000013    TCP1     TCP M
lau 14      15000114    LA14     FCRNPD - FCRNS Pad

==== ercm09/emas-2900/inc_gateint.txt ====
!
!           GATE TO TASK FUNCTIONS
!
%CONSTINTEGER INCOMMING CALL=2
%CONSTINTEGER INPUT RECD=3
%CONSTINTEGER OUTPUT TXD=4
%CONSTINTEGER CALL CLOSED=5
%CONSTINTEGER CALL ABORTED=6
%CONSTINTEGER OPEN MESSAGE=9
!
!           TASK TO GATE FUNCTIONS
!
%CONSTINTEGER ENABLE FACILITY=1
%CONSTINTEGER DISABLE FACILITY=2
%CONSTINTEGER CALL REPLY=3
%CONSTINTEGER ENABLE INPUT=4
%CONSTINTEGER PUT OUTPUT=5
%CONSTINTEGER CLOSE CALL=6
%CONSTINTEGER ABORT CALL=7
%CONSTINTEGER MESSAGE REPLY=10
%ENDOFFILE

==== ercm09/emas-2900/pcme_source.txt ====

!**********************************************************
!*                                                        *
!*       RCO ITP to GEC Network Management Module         *
!*                                                        *
!*                       PCME                             *
!*                                                        *
!*           Version    9.3  11 Apr  1983                *
!*                                                        *
!**********************************************************

!*
%control 1 ;!No record checking.
!*
%begin
!*
!**************************
!*                        *
!*    Declarations        *
!*                        *
!**************************

==== ercm09/emas-2900/amstradfs.txt ====
%externalroutine famstrad(%string (255) s)
%externalroutinespec xmode(%string (255) s)
%externalroutinespec define(%string (255) s)
%externalroutinespec prompt(%string (15) s)
%integer i,j,k
define("1,".s)
xmode("native")
k=0
printstring("Go - end with ctrl+y
")
select output(1)
prompt("")
%cycle
 readch(i)
 %if i = 25 %then xmode("Trans") %and %stop
 %if i = 13 %then %continue; ! return - use lf only
%if i = 10 %and k = 10 %then k=0 %and %continue
k = i
 printch(i)
%repeat
%end

==== ercm09/emas-2900/test2.txt ====
THIS IS A TEST

END
==== ercm09/emas-2900/doc2.txt ====
@make[report]
@flushleft[Edinburgh Regional Computing Centre

Communications Group]
@majorheading[X.25 Packet Switch Survey]
@heading[2nd Stage Report]
@Subheading[General]
After the conclusion of the first stage survey, it was agreed that 6 
companies be examined in more detail, they are Amdahl, Camtec, Dynatech, GEC,
Telefile and Telematics.

In view of the position of GEC and Camtec as existing suppliers in the Academic
Community, it was not considered necessary to examine their equipment to the
same depth as the rest.

Amdahl, GEC and Telematics are considered as suppliers for the high
connectivity and high throughput switch requirement while Camtec, Dynatech
and Telefile were considered for the small switch needs.

It should be noted that all costs are ex VAT
@subheading[Basis of Comparison]

==== ercm09/emas-2900/streetak.txt ====

                                                                                                                        Vsn 2
                          *******************************
                          *                             *
                          *   Grand Total  6274         *
                          *                             *
                          *******************************


Burdiehouse/Southhouse (SR-Kaimes)  total 1263

==================================


==== ercm09/emas-2900/parits.txt ====
! PARITY REGISTER CHECKER & SWITCH REG COUNTER
!
! DATE: 24.MAY.82

%CONTROL K'100001'

%SYSTEMROUTINESPEC MAPHWR(%INTEGER SEG)
%SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)

%BEGIN
   %CONSTINTEGERNAME PAR = K'012100'; ! IN SEG 0
   %CONSTINTEGERNAME SWR = K'017570'

   %RECORDFORMAT PF(%BYTEINTEGER SER, REPLY, A1, A2, B1, B2, C1, C2)
   %RECORD (PF) P

   %INTEGER I,J,K,T

   %ROUTINE OCTAL(%INTEGER N)
      %INTEGER I
      PRINTSYMBOL((N>>I)&7+'0') %FOR I = 15, -3, 0

==== ercm09/emas-2900/ecucrpt.txt ====

@make[report]
@device[x2700]
@flushleft[Edinburgh Regional Computing Centre]
@flushleft[For the attention of the E.C.U.C.]
@majorheading[Report on Communications]
The general level of the network service to users has been significantly 
better this term.
@paragraph[CPSEs]
For the first time ever, the main KB CPSE has run for a period of three
months with no unscheduled hardware or software breaks.  There were two
failures in the period caused by mains power outages.  Over the three
months the CPSE was taken out 4 times at lunchtime, twice to fix simple
line faults and twice to upgrade the software.

The second KB CPSE had two software crashes on the 14th march, otherwise no
faults in the 3 month period.  It has been taken briefly out of service in
the last few days to change network routing otherwise it has not been booked
out.

The Appleton Tower CPSE has not performed as well as the other two.  There

==== ercm09/emas-2900/b_xxxa.txt ====
prep x25_xxx3as,xxx3s#imp,s,clean,b,a
imp11 xxx3s#imp/xxx3s#rel,l
link11
xxx3s#rel
i77perm
.stack 1400
.streams 1
.name xxx
.end
xxx3ay
alist11 xxx3s#imp,xxx3s#rel/.lp23

==== ercm09/emas-2900/b_umctest.txt ====
imp11 umctest/,l
link11
umctest#rel
i77perm
.stack 1000
.streams 1
.name umct
.end
umctesty

==== ercm09/emas-2900/usergroup.txt ====

Edinburgh Regional Computing Centre
-----------------------------------

         For the attention of the Edinburgh Computer Users Committee
         -----------------------------------------------------------



                            Report on Communications
                            ------------------------

TCPs      A new TCP has been installed in the JCMB to provide extra lines.
----      Network charging was included in the last release and charges 
          are now made for terminal, line printer, graph plotter and
          matrix plotter use.


FEPs     The Service is stable
----


==== ercm09/emas-2900/erte_xbm01.txt ====
;**************************************
;*         XBM01                      *
;*  INTERFACE BETWEEN HARDWARE AND IMP*
;* AND LOW LEVEL DUP11 HANDLER        *
;*  DATE:  23.FEB.80                  *
;**************************************
 
PS=177776; PROCESSOR STATUS WORD
 
IDLEST=-1; SUPERVISOR IDLE FLAG
 
INTVAL=40; DEDICATED LOCATION FOR INTERRUPT NUMBER
ALARMF=44; DITTO - FOR CLOCK
PSECT=46; DITTO - CURRENT PSECT
LASTPS = 54
INTINF=56
 
UPAR=177640
UPDR=177600
 
UPAR0=40; INDEC INTO PSECT

==== ercm09/emas-2900/b_zom.txt ====
imp11 zomb82/,ll
link11
zomb82#rel
i77perm
.stack 5000
.streams 0
.end
zomb82y
list zomb82y,.BPP155

==== ercm09/emas-2900/ibmdoc_i1.txt ====
1 
0                                                          Ref. I1
-               RAL IBM NETWORKING : INDEX  (Ref. I1)
+               ___ ___ __________   _____   ___  __
0                                               Version 3
+                                               _______ _
0                                               8 April 1982
+                                               _ _____ ____
0                                               P M Girard
+                                               _ _ ______
0  Papers are by P M Girard unless otherwise stated.
0  PART A : PROTOCOLS
+  ____ _   _________
         A1) Protocols in the SERC/NERC Network
         A2) A Protocol for using VMCF
         A3) The Application/NCP Protocol using VMCF
         A4) SERCnet  -  Addressing Scheme
         A5) SERCnet  -  Addressing Summary
         A6) A Network Independent Transport Service
                         (PSS User Forum Study Group 3)
         A7) Character Terminal Protocols on PSS

==== ercm09/emas-2900/node_supde0.txt ====
DEIMOS VSN 9.14  23.OCT.80 (CLI&LOAD)
3500
DVNO1Y N 0
SUP36 60002 0
PERM2Y 60006 0
BTT6Y 60012 150
BDK5Y 60016 70
FSYS1Y 60022 300
LOAD7Y 60026 300
CLI1Y 60032 200
MOTH6Y 60036 50
END
-6 304
-7 310 DQS11 # 1
-20 324 DQS11 #2
-21 330
-22 404 DQS11 #3
-23 410
-24 424 DQS11 #4
-25 430
-26 454 PARR INT #1

==== ercm09/emas-2900/dum2.txt ====
c   5
i 255
i 255
i   0
i  24
c  12
s  -1
d -16
d  16
m 242
m 243
c   3
m 243
i   0
i 247
i   0
i   0
i   0
i   0
i   0
i  45

==== ercm09/emas-2900/b_xxxe.txt ====
prep x25_xxx2s,xxx2s#imp,s,clean
imp11 xxx2s#imp/xxx2s#rel,l
link11
xxx2s#rel
i77perm
.stack 1400
.streams 1
.name xxx
.end
xxx2y
alist11 xxx2s#imp,xxx2s#rel/.lp23

==== ercm09/emas-2900/dum3.txt ====
m 243
c   2
d   0
d   7
d   0
d  10
d   0
d   1
d   1
d 234
d   2
d  13
d  54
d  56
d  56
d  32
d  67
d 104
d  61
d  32
d  49

==== ercm09/emas-2900/dvrvp.txt ====
.PAGE
;****************** DPV 11 HANDLER *********************
;  ELEMENT DVRVP IN NSILIB
;
; DPV11 Handler derived from the correspondng DUP11 handler.
;
; THIS VERSION PUTS THE FIRST 2 BYTES OF THE FRAME IN THE BUFFER'S
;PARAMETER BLOCK.  THESE ARE NOT INCLUDED IN THE MESSAGE LENGTH.
;THE LENGTH COUNT MAY BE ZERO IF EITHER THE LENGTH REALY IS ZERO OR
;IF IT IS 256 BYTES.  IN THE LATTER CASE THE POINTERS WILL BE NON-ZERO.
;
;** REGISTER DEFINITIONS **
      DPVRCS=0
      DPVRDB=2
      DPVPSR=2
      DPVTCS=4
      DPVTDB=6
;** BIT DEFINITIONS **
         TSOM=400
         TEOM=1000
         TEOMUP=2  ; TEOM in the upper byte.

==== ercm09/emas-2900/dum4.txt ====
c  12
l   5
d -16
d  16
m 243
c   5
i 255
i 255
i   0
i  24
c  12
s  -1
d -16
d  16
m   1
m 243
c   3
m 243
i   0
i   5
i   0

==== ercm09/emas-2900/vaxperf2.txt ====
easygraph
title "Transfer rate - Using Protocols"
xaxis 20,"Packet Size in bytes"
xformat 3,0
xscale 0,25
yaxis 16,"Bytes/sec"
yformat 3,0
yscale 0,7000
flatnumber
linetype line+points
symbol square
data
50 2335
150 5415
250 8525
350 10290
450 13635
annotate "To Gec 63/40"
plot
overlay
symbol diamond

==== ercm09/emas-2900/dpal6dks.txt ====
GDGD

==== ercm09/emas-2900/dz11s.txt ====
!*****************************
!*                           *
!*   DZ11 HANDLER            *
!* DATE: 10.FEB.82           *
!* FOR ERTE: DATA GENERAL    *
!*****************************

! STK = 300, STREAMS = 0

%CONTROL K'100001'

%CONSTSTRING (13) VSN = "Dz11:vsn001a
"

%RECORDFORMAT DUMF(%INTEGER D)
%CONSTRECORD (DUMF) %NAME NULL = 0
%SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)
%SYSTEMROUTINESPEC LINKIN(%INTEGER SER)
%SYSTEMROUTINESPEC MAPHWR(%INTEGER SEGS)

%BEGIN

==== ercm09/emas-2900/rjeprops.txt ====

         Proposed Changes to RCO-RJE Protocol for use on X25
         ======== ======= == ======= ======== === === == ===


1. In the 'Yellow book' specification of the Transport layer there is no
   provision for a non-destructive disconnect.  Currently RJE protocol
   operates by transmitting the last packet of a file followed immediately
   by Send Block+disconnect (a non-destructive disconnect).

      Proposal a)  A marker, ie a record length of 16_FFFF will be send on
                   the end of every RJE connection.  When the receiver has
                   dealt with the file it will then clear down the connection
                   with a Transport Service (TS) Disconnect.

               b)  It will be necessary to distinguish between a 
                   TS Disconnect that means 'file lost' (current meaning)
                   and a 'normal' Disconnect.  The proposal is that the
                   qualifier on the TS Disconnect should be zero if the
                   file is received correctly, non-zero otherwise.


==== ercm09/emas-2900/ftppd_doc.txt ====
2. SOME THEORY

   It is well known that the syntax of a context-free language may be
described by a set of phrases expressed as BNF productions. Alternatively,
the phrases may be described by regular expressions. This is equivalent but more
powerful. For example the language:-

      <L> -> <exp> <rest>
      <rest> -> <null> | + <exp> <rest> | - <exp> <rest>
      <exp> -> <var> | <const>

May be written:-

      L -> exp (( + , - ) exp)*
      exp -> var , const

The constructs used to form the regular expression are:-

      L -> A B

which describes A and B following sequentially.

==== ercm09/emas-2900/node_userts.txt ====
!************************
!*      USERTS/USERTY   *
!* DATE: 17.DEC.80      *
!************************

! FILE 'USERTS'
! STK = 500, STREAMS = 0
%CONSTSTRING (7) VSN = "VSN002A"
%RECORDFORMAT DMF(%INTEGER I)

%CONSTRECORD (DMF) %NAME NULL = 0


%CONTROL K'100001'

%BEGIN

      %SYSTEMROUTINESPEC LINKIN(%INTEGER SER)
      %RECORDFORMAT ITPF(%BYTEINTEGER CNSL, HDB1, HDB2, %STRING (241) S)
      %RECORDFORMAT ITP2F(%BYTEINTEGERARRAY A(0:241))
      %RECORDFORMAT ITP3F(%BYTEINTEGER CNSL, HDB1, HDB2, %C

==== ercm09/emas-2900/iprogsou_alist11.txt ====
! RECODE FOR IMP PROGRAMS
! THIS PROGRAM TAKES THE THIRD PASS
! OUTPUT OF THE IMP COMPILER
! AND MAKES A RECODE IN ASSEMBLY
! OF EVERY IMP SOURCE LINE
! AUTHOR K. STRAATMAN
! MATHEMATISCH INSTITUUT
! RIJKSUNIVERSITEIT TE GRONINGEN
! POSTBUS 800, GRONINGEN, THE NETHERLANDS
! 24 JAN 1978
! COMMAND: RECODE SOURCE OY / OUTPUT

%EXTERNALROUTINE ALIST11(%STRING(63) FILE)
   %CONSTINTEGER MAX SPECS = 100
   %OWNINTEGER MAIN PROG= 0
   %STRING(63) SOURCE FILE, OBJECT FILE,OUTPUT,SDISP

         %INTEGER DISP,I
   %EXTERNALINTEGERFNSPEC EXIST(%STRING(63) FILE)
   %EXTERNALROUTINESPEC DEFINE(%STRING(63) S)
!   %EXTERNALINTEGERFNSPEC TIME40(%INTEGER INST)

==== ercm09/emas-2900/b_lmacx2s.txt ====
prep x25gen_lmacxs,lmacxs#imp,b,clean
dimp11 lmacxs
link11 /map
lmacxs
.streams 1
.stack 1000
.end
lmacx2s
destroy lmacx2y
rename lmacx2s#abs,lmacx2y

==== ercm09/emas-2900/b_fix.txt ====
==== ercm09/emas-2900/ring_basblktes.txt ====

! program to transmit basic blocks at full speed round the ring

! b.g. 03.sep.81


%control 1
%include "deimosperm"
%begin

%recordformat mef(%record(mef) %name link, %byteinteger len, type, %c
%integer address, %integerarray a(0:100))

%recordformat pf(%byteinteger ser, reply, %integer a, (%integer b, c %or %c
%record (mef) %name mes, %byteinteger len, s1))

%record (pf) p

%integer i,j,k

      %constinteger ring ser = 13, buffer man = 17

==== ercm09/emas-2900/electiob80.txt ====

                     Lab Seats

       SEAT         Maj   2nd           Lab Candidate
61    Niddrie         -                 D.Brown
62    Craigmillar   1537                Kerr/Black  (Was W. Black)
60    Gilmerton     1432  (snp)         B. Lonie
35    Moat           651  (snp)         B. Wilson
59    Inch           552  (snp)         I. Campbell
20    Harbour        474  (snp)         J. Hastie
42    Holyrood       434  (snp)         R. Kerley
36    Stenhouse      419  (snp)         J. Henderson
 9    Granton        331  (snp)         G. Monies
46    Milton         289  (con)         V. Oliver    (no snp)
19    Lorne          263  (con)         M. Saren
33    Sighthill      227  (snp)         J.McKay      (now safer)
 8    Muirhouse      193  (snp)         McLaughlin
58    Kaimes         160  (con)         Bjorg McKenzie
54    Firhill        159  (con)         G. Barton
 7    Pilton          5  (SNP HELD)    A. Wood
37    Dalry          81  (SNP HELD)    E. McKenzie

==== ercm09/emas-2900/zeps.txt ====
%EXTERNALROUTINE ZEPPELIN(%STRING(1) S)
%INTEGERARRAY SPACE(1:10,0:79)
%INTEGERARRAY BOMB,HANGAR,ZEPP,X,Y,NME,NMEX,NMEY,NMEB,NMEH,NMET(1:6)
%INTEGERARRAY GUN(24:55), TARGET(67:72), NMEHAN(73:78), BASE(7:12)
%INTEGER A,B,XX,YY,C,WHICH,UNKNOWN,R,TOTAL,ZS,AS
%STRING (20) ANS,NAME
%ROUTINESPEC CONVERT(%STRING(20) A,%INTEGERNAME B)
%ROUTINESPEC SCORE
%ROUTINESPEC DROP
%ROUTINESPEC NMEDROP
%ROUTINESPEC SELECT
%ROUTINESPEC FIRE
%ROUTINESPEC LAUNCH
%ROUTINESPEC NMELAUNCH
%ROUTINESPEC MOVE
%ROUTINESPEC NMEMOVE
%ROUTINESPEC NMEOPT(%INTEGER C)
%ROUTINESPEC RETARGET
%ROUTINESPEC BELLS(%INTEGER N)
%ROUTINESPEC DRAW
%ROUTINESPEC RST(%STRINGNAME S)

==== ercm09/emas-2900/b_loads.txt ====
imp11 loads
link11
loads#rel
i77perm
.stack 1000
.streams 1
.name lodf
.end
loady
list loady,.bpp155

==== ercm09/emas-2900/b_nsiw.txt ====
imp11 nsiw77s/,l
link11
nsiw77s#rel
i77perm
.stack 1000
.streams 2
.end
nsiw77y
alist11 nsiw77s/.lp23

==== ercm09/emas-2900/isotgreport.txt ====
Here it is!
 
DRAFT                                                           December 85
 
                        ___________________________ 
                        Transition to OSI Standards 
 
           _____________________________________________________ 
           Report of the Academic Community OSI Transition Group 
 
       __________________ 
0.     Management Summary 
 
                   ____                                                    
This is always the last bit  that  gets  written.  It  will  emphasise  the
transition  as  a dynamic process, needing careful management. It will flag
addressing as a major problem area. When it exists, it will be followed  by
a page break. 
 
 
                       _____________________________ 

==== ercm09/emas-2900/newsys_supbuilde.txt ====
! file 'sys_sbld5s'
!*************************************
!* sbld15s                           *
!* date:  25.feb.82                  *
!* supervisor build program          *
!************************************
! prep options are:-
!                    e - emas imp
!                    d - deimos imp
!#if  ~(e!d)(=false)
{   #report Must specify e OR d}
{   #abort}
!#fi
!#if  e(=true)
!#else(=false)
{   #report Preparing Deimos version}
!#fi

%conststring (13) vsn = "Sup Bld...1a
"


==== ercm09/emas-2900/b_ftpold.txt ====
imp11 ftp1es
link11
ftp1es#rel
i77perm
.stack 1000
.streams 1
.name ftps
.end
ftp1ey
list ftp1ey,.fep72
alist11 ftp1es/.lp23

==== ercm09/emas-2900/kntkv11.txt ====

%list
!
!*************************************************
!*                                               *
!*       PSS X-25 Level 2 Protocol Handler       *
!*                                               *
!*                   XPROT                       *
!*                                               *
%conststring (8) datestring="28/08/85"
%conststring (8) timestring="11.49.32"
!*        Version  30.1   22 July 1985           *
!*                                               *
!*************************************************

! Prep options
!
!  q  - dqs11 code
!  p  - dup11 code
!  n  - kv11  code (n = Newcastle)
!  b  - Big Buffer version

==== ercm09/emas-2900/kents_rjes8.txt ====


%CONSTSTRING (7) VSN = "VSNK08P"

!********************************
!*  EMAS-2900  FEP  RJE SERVER  *
!*   FILE: RJES8/RJES8Y         *
!*   DATE: 06.MAR.80             *
!********************************
!MODIFIED FOR RING TO USE BYTE STEAM PROTOCOL INSTEAD OF NSI
!! STACK SIZE = 300

%SYSTEMROUTINESPEC MAP HWR(%INTEGER SEG)
%SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)

%RECORDFORMAT DMF(%INTEGER I)

%CONSTRECORD (DMF) %NAME NULL = 0


%CONTROL K'100001'

==== ercm09/emas-2900/node_umcs.txt ====
! file node_umcs
!*********************
!*  umcs/umcy        *
!* date: 05.apr.82  *
!!!!!!!!!!!!!!!!!!!!!!
! umc control program
!stack = 140

%control 1
%include "deimosperm"
%conststring (7) vsn = "vsn001b"



%begin

      %constinteger umc control = 18

      %recordformat xxf(%integer dummy)
      %recordformat parf(%integer type, %c
       (%record (xxf) %name b %or %integer address), %c

==== ercm09/emas-2900/tsbsp_tst_readthis.txt ====
The files are:

SOURCE main source code

RAWST  state table in 'raw' form. To get a new state table INSERT CUR051.STY
       then MAKESTAB TST. This will create the following 2 files.

STTEXT state table in readable form. The symbols * and - are used for 'error'
       (should never happen) and no-action.

STAB   state table in coded form including declarations for the state,event
       and action values.

COMPILE OBEY file to compile and link TSTY, leaves a listing file TST#LIS
        and an intermediate code file TST#REL.

==== ercm09/emas-2900/inv.txt ====
%begin

!  %include "project:consts.imp"
  %const %integer restart=14
  %byte spacing=true,ship direction=1,ship type=1
  %integer ship col=-1,timer
  %integer no of men=3
  %integer score=0
  %integer max bomb factor=8
  %integer no of invs=24,leftmost=1,rightmost=8,lowest=3
  %integer no of bombs=0,sheet no=0
  %integer shell row=-1,shell col=-1
  %integer row,col,i,j
  %integer row offset=0,col offset=0
  %integer init,step,final
  %integer legs in=false
  %integer tank pos
  %integer chs since esc=0
  %integer buffer size=100
  %integer bufflim,ibp,obp=0,iblim,char,ch
  %own %byte %array score board (1:4)='0' (*)

==== ercm09/emas-2900/sys_superte.txt ====
DEIMOS VSN 11.1  20 SEP 84 (SBLD6Y) (NEW BUFF MAN) (CHANGED DEDLOCS)
RK05
3500
DVNO3Y N 0
SUP60 65002 0
PERM2Y 65006 0
BTT7Y 65012 0
BDK6Y 65016 0
FSYS78 65022 0
LOAD8Y 65026 0
CLI1Y 65032 0
MOTH6Y 65036 0
END
-11 340  KB#2  ADDR=776500, SER=19
-12 344  TT#2
-6 330  RING RX
-7 334   RING TX
-6 770   KMC11  
-7 774  DITTO
-13 160 am1 interface
-14 164

==== ercm09/emas-2900/mean2s.txt ====
!
!
! ALOG  ALOG  ALOG  ALOG  ALOG  ALOG  ALOG  ALOG  ALOG  ALOG  ALOG  ALOG 
! ALOG  ALOG  ALOG  ALOG  ALOG  ALOG  ALOG  ALOG  ALOG  ALOG  ALOG  ALOG 
!
!
!
%CONTROL K'001001'
!
!
%BEGIN
!
!
!
!J.C.A.     STARTED 10:11:76
!T.P.L      LAST UPDATE   25:08:81     11:30     - FILE MEANS

!   FOR ARTE MK 7.0  UPTO 128 SCRIPTS

!   ---   STACK 15000, STREAMS 4   ---


==== ercm09/emas-2900/atstats.txt ====
MTBF - KB 4190 - 3 Month Rolling Average
Month - Jan 84 - Feb 86
27
 1,0,4,0,3,3,5,3,1,3,3,2,1,3,5,5,2,1,0,0,1,1,0,1,0,1,0
 0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,2,1,0

==== ercm09/emas-2900/b_zomnew.txt ====
dimp11 zomb82
link11 /zomb82
zomb82
ercm11.emts
ercm11.newimp
.stack 5000
.streams 0
.end
zomb82

==== ercm09/emas-2900/docum_dmanual.txt ====
$A JUST=1; LINE=76; PAGE=59; TOP=3; BOTTOM=4; MARK=2
$A PAGENO=1
$A TAB=5,15,25
$B20
$L1CM
USER MANUAL FOR DEIMOS
$B2
$L1CM
B. GILMORE 
$L1CM
AUGUST 1976
$N
$L1CUM
CONTENTS
$B6
$A INDENT=1
.TITLE $T6 .PAGE
$B0 @GENERAL FEATURES $T6 3
$B0 @SYSTEM COMMANDS. $T6 4
$B0 @THE .EDITOR. $T6 7
$B0 @THE .IMP COMPILER. $T6 8

==== ercm09/emas-2900/fepb_rjes8.txt ====


%CONSTSTRING (7) VSN = "VSNK08P"

!********************************
!*  EMAS-2900  FEP  RJE SERVER  *
!*   FILE: RJES8/RJES8Y         *
!*   DATE: 06.MAR.80             *
!********************************
!MODIFIED FOR RING TO USE BYTE STEAM PROTOCOL INSTEAD OF NSI
!! STACK SIZE = 300

%SYSTEMROUTINESPEC MAP HWR(%INTEGER SEG)
%SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)

%RECORDFORMAT DMF(%INTEGER I)

%CONSTRECORD (DMF) %NAME NULL = 0


%CONTROL K'100001'

==== ercm09/emas-2900/net87tit.txt ====
@make[article]
@device[x2700]
@style[spacing 1]
@begin[text,topmargin=+1.1inches,leftmargin=+0.25inches,rightmargin=+0.5inches]
blank
@newpage
@majorheading[ISO DIRECTIONS IN VTP]
@BLANKSPACE[0.5in]
@centre[@b[Brian Gilmore
Communications Manager
Edinburgh Regional Computing Centre
University of Edinburgh]]
@blankspace[1.8in]
     The paper discusses
the need for a Virtual Terminal Protocol examining the shortcomings
of the current solutions. A VTP produced by the UK Academic Community
is discussed in order to compare it to the current state of ISO
standards work.

@blankspace[1.8in]
@begin[text,leftmargin 2in]

==== ercm09/emas-2900/news2.txt ====
$a line=29;just=1;invert=0
$l1
WHY JOIN A SINKING SHIP?
$p1 For months now the press and TV have been telling us that the
Labour Party is on the way out.  Torn apart by splits, bancrupt, declining
membership ...... no future in the Labour Party!  That's what the opponents
of the Labour Party want you to believe.  For those of us who are active
members this picture is hard to square with our experience.
$p1 Take our branch, Sciennes Marchmont, for instance.  Membership has
doubled over the last 5 years.  Average turnout at branch meetings is four
times what it was 5 years ago.  Regular leaflets and newsletters are being
produced.  Public meetings are being held.  Wherever the decline is, it
isn't here.
$p1 Debate there certainly is but wew aren't being torn apart.  People
in the Labour Party do discuss politics and argue about issues.
The arguements can get quite heated at times but most of us see this as
a healthy sign.
$p1 And on the positive side there are new policies which give the
promise of a Labour Government which can make things change - a commitment
to unilateral nuclear disarmament; an alternative economic strategy;
a social policy which will redistribute wealth in this country.  Not all

==== ercm09/emas-2900/news3.txt ====
$a line=29;just=1;invert=0
$l1
MEAN MINDED CUTS
$p1 As well as increasing the charges for school meals the new Tory council
has also changed the rules for school meals.
$p1 Now only parents receiving either supplementary benefit or family
income supplement can get free school meals for their children. Under
the Labour Council people on low incomes who, for some reason, did not
qualify for either of these benefits also obtain free school meals for
their children.
$p1 About 3000 people are affected and it hits those people very hard. It means
an extra #2.25 per week for each child.
$p1 For these people - already poor - the promise dangled by the Tories of rate
rebates and more money in your pocket, tastes very sour.
$b
$e

==== ercm09/emas-2900/edinburgh.txt ====
E0E6
Registering Institution:
    Name prefix:             UK.AC.
    Standard name:           EDINBURGH
    Abbreviated name:        ED
Entity Information:
    Standard entity name:    EDINBURGH
    Abbreviated entity name: ED
    Description:             E.R.C.C. Distributed mail directory
Use:
    Protocol Context:        MAIL-NIFTP
    Direction:               FORWARD
    Sub-network:             JANET
    DTE number:              000015000002
    YBTS address:            FTP.MAIL
Use:
    Protocol Context:        MAIL-NIFTP
    Direction:               FORWARD
    Sub-network:             PSS
    DTE number:              234231354354
    YBTS address:            (DEMO,DEMO).EMAS.FTP.MAIL

==== ercm09/emas-2900/newsys_supbuilds.txt ====
! file 'sys_sbld5s'
!*************************************
!* sbld15s                           *
!* date:  25.feb.82                  *
!* supervisor build program          *
!************************************
! prep options are:-
!                    e - emas imp
!                    d - deimos imp
#if ~(e!d)
   #report Must specify e OR d
   #abort
#fi
#if e
   #report Preparing Emas version
#else
   #report Preparing Deimos version
#fi

%conststring (13) vsn = "Sup Bld...1a
"

==== ercm09/emas-2900/gatex_pre.txt ====

!**********************************************************
!*                                                        *
!*           PSS X-25 Level 3 Protocol Handler            *
!*                                                        *
!*                      GATEX                             *
!*                                                        *
!*                Version     9.30  7 Sep  1983           *
!*                                                        *
!**********************************************************
!*
%control 1
%begin
!************************************
!*                                  *
!*          Declarations            *  
!*                                  *
!************************************
!*
!****** Constintegers ******
!*

==== ercm09/emas-2900/snoops.txt ====
! programmable clock program
! prog to snoop on a task
! date: 5.mar.81

%control 1
%include "deimosperm"
%begin

%recordformat clockf(%integer status, data)
%constrecord (clockf) %name clock == k'112540';   ! in seg 4

%recordformat pf(%byteinteger ser, reply, %integer a, b, c)
%record (pf) p

%integer i,j,k,n, sum, maxi, sumn
%owninteger speed = 23210;  ! every 2.321 secs
%owninteger target task = 0
%string (5) targ, s
%owninteger repf
%ownintegerarray pc(0:385)


==== ercm09/emas-2900/devlog1.txt ====
DEV 11/34  20.FEB.81  11.30
RING:     0-20978    0    0    0    0    0    0-22130-22130    1  1152 1152 0
RING:     0-28750    0    0    0    0    0    0-31398-31398    0  2648 2648 0
RING:    15 32259    3    0    0    0    0    2 29756 29735    1  2529 2529 0
RING:     0 31788    0    0    0    0    0    0 29271 29271    0  2517 2517 0
RING:     0-31428    0    0    0    0    0    0 31531 31531    0  2577 2577 0
RING:     0 32484    0    0    0    0    0    0 29949 29949    0  2535 2535 0
RING:     0 6268    0    0    0    0    0    0 4411 4411    0  1857 1857 0
RING:     0 28656    0    0    0    0    0    0 26220 26220    0  2436 2436 0

==== ercm09/emas-2900/b_ftpra.txt ====
new
prep x25gen_ftpd5s,ftpd5s#imp,r,g,clean,a
dimp11 ftpd5s#imp
link11 /ftpd5s
ftpd5s#rel
.stack 2400
.streams 3
.stackseg 6
.end
ftpg5s
c ftpg5s#abs,ftpray
destroy ftpg5s#abs
alist11 ftpd5s#imp
list ftpd5s#lst,.lp23

==== ercm09/emas-2900/devlog2.txt ====
DEV 11/34 23.FEB.81 12.00 SATURATION TEST
RING:     0    0    0    0    0    0    0    0    0    0    1     0 0 0
RING: 26173-12027   21   17  359   85  509  815 2300-11237  551   516 1016 0
RING:-19973-32756  148   45  660  184 1079 1598 5953-31028 1068  1072 1986 0
RING:-26870-29405  150   46  742  202 1057 1472 11266-27745 1123  1155 2009 0
RING: 27775 14728  495   68  641  240 1395 1286-24599 16852 1321  1748 2001 0
RING: 27994 16315  439   58  647  242 1422 1258-27120 18378 1225  1699 2003 0

==== ercm09/emas-2900/ass11s.txt ====
%EXTERNALROUTINE ASS11(%STRING (63)FILES)
      %EXTERNALINTEGERFNSPEC SMADDR(%INTEGER CHAN, %INTEGERNAME LENGTH)
      %EXTERNALROUTINESPEC DEFINE(%STRING (63)S)
      %DYNAMICSTRING (8) %FN %SPEC DATE
      %DYNAMICINTEGERFNSPEC TIME40(%INTEGER IN)
      %DYNAMICINTEGERFNSPEC TIME03(%INTEGER IN)
      %DYNAMICINTEGERFNSPEC TIME45(%INTEGER IN)
      %ROUTINE DUMP BIN(%HALFINTEGERARRAYNAME CODE, %C
        %INTEGER START, FINISH, %STRINGNAME T, %INTEGERNAME FLAG)
         %INTEGER CHECK, J
         %ROUTINE PUT(%INTEGER N)
            %INTEGER M
            M = N>>8&255
            N = N&255
            PRINTCH(N);  PRINTCH(M)
            CHECK = CHECK+(N+M)
         %END
         %RETURN %IF START < 0;                     !?????
         SELECT OUTPUT(3)
         CHECK = 0
         PUT(1)

==== ercm09/emas-2900/iunc.txt ====


@h{INTER-UNIVERSITY NETWORK COMMITTEE}

            @b[@u[Conference on Campus and Local Area Networking Choice]]
    @b[@u[University of Reading, Monday 23 September - Tuesday 24th September 1985]]

                        @u[Programme]

 @b[@u[MONDAY, 23 SEPTEMBER]]

   11.30 onwards  Registration - St. Andrew's Hall

   12.30 - 13.45  Buffet Lunch

 @b[@u[First Session]] - Lecture Theatre LT4, London Road Site
                Chairman: Dr. P. Kemp, Secretary, IUCC

   14.15  Welcome                                      John Lindley,
                                                       Chairman, IUNC


==== ercm09/emas-2900/kmc11_kmcman.txt ====
,$A JUST=1; LEFT=2
$A INVERT=0; INVO=0
$A PAGENO=1; BOTTOM=4; TOP=3; PAGE=58
$A LINE=72; MARK=2
$A CAP=0; CAPO=0; CAPSH=0; CAPSHO=0
$A TAB=4,8,12,18,20,24,28,32,36,40,44,48,52,56,60,64,68
$N
$B20
$L1M
H A L K
$B2$L2M
A HIGH-LEVEL ASSEMBLY LANGUAGE
FOR THE KMC11
$B6
$L1M
AN INFORMAL INTRODUCTION
$N
$B2$T0%Introduction
$B2HALK is based upon the language HAL, designed and
implemented by Hamish Dewar on the Interdata 70 series and the
ICL 7502.  Various modifications have been made to

==== ercm09/emas-2900/gecenhrest.txt ====
@majorheading[GEC PSE Enhancement Questionaire Results]
@blankspace[1in]
  The following results are based on 45 returned forms.  Of these,
6 were rejected because they were simply duplicates of other forms from
the same site.

The 'points' have been allocated by the following
@verbatim[
          High   Priority    -  3 Votes
          Medium Priority    -  2 Votes
          Low    Priority    -  1 Votes
          Not Interested     -  0 Votes
]

   The full results have been given, as well as an ordered list of the
results and the original questions have been included for the top 15.

I am sorry about the mixup over the Questions A7-A26, the results for
these questions will follow.

@format[Brian Gilmore

==== ercm09/emas-2900/spokesinstr.txt ====




SPOKES  Bike  Survey                 Thursday  21 May 1981

====================

Name:

Junction:

Times:


========================================================================

==== ercm09/emas-2900/networks85_netnotes.txt ====
$a device=x2700
$d1 :cosmos12b:
$d2 :cosmos14:
$a tab=1",3.5",4.5",4.8",5.7"
$a left=5
$5
$l0
Intro
     Nature of Edinburgh University
        Data Network                - slide 1
          Based on 3 x gec packet switches (CPSEs) - central circles
        Voice Network               - slide 2

     Early exposure to PABX & LANs
        ICL/DTI - Investigate Interconnection
        Project Diagram             - slide 3

     + University in progress of procuring new PABXs


Potential Advantages                  - slide 4

==== ercm09/emas-2900/erteicl_icl1s.txt ====
!*********************
!*    ICL1S/ICL1Y    *
!* DATE: 24.FEB.80  *
!!!!!!!!!!!!!!!!!!!!!!
!STACK = 140


%RECORDFORMAT XXF(%INTEGER DUMMY)
%CONSTRECORD (XXF) %NAME NULL = 0

%CONTROL X'100001';                    ! TRUSTED PROGRAM AND QUICK
                                       ! ROUTINE ENTRY AND EIS


%CONSTSTRING (7) VSN = 'VSN001B'
%BEGIN
     %SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)
     %SYSTEMROUTINESPEC LINKIN(%INTEGER SER)

      %RECORDFORMAT PARF(%INTEGER TYPE, %RECORD (XXF) %NAME B, %C
        %INTEGER LEN)

==== ercm09/emas-2900/tests.txt ====
%begin
%integer i,j,k
%cycle
readch(i); write(i, 4); newline
%exitif i=4
%repeat
%endofprogram

==== ercm09/emas-2900/gate5.txt ====
! FILE 'FEP_GATE5'

%CONSTSTRING (7) VSN = "VSN005F"

!****************************
!*  EMAS-2900  FEP  GATE    *
!*  FILE:  GATE5            *
!*  DATE:  27.OCT.80        *
!****************************
!! STACK SIZE = 300
%RECORDFORMAT DMF(%INTEGER I)
%SYSTEMROUTINESPEC LINKIN(%INTEGER SERVICE)
%SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)

%CONSTRECORD (DMF) %NAME NULL = 0

%OWNINTEGER OWN TERM = 72;            ! NETWORK ADDRESS
%OWNINTEGER SUBATTACH FLAG = 74
%CONSTINTEGER KENT = 0;                 ! KENT=1 - NO NODE IN NET



==== ercm09/emas-2900/ednet0187.txt ====
{{circle(26,11.5,.5)}}
{{INLABEL(.14,"Fe3")}}
{{circle(9.5,15,1.5);inlabel(.2,"TelePAC@b15003000")}}
{{join(c1,c2)}}
{{circle(8,11,1.3);inlabel(.175,"TelePAC 3@b15004000")}}
{{circle(13,21.7,2);inlabel(.3,"KB-CPSE@bGEC 4190@b")}}
{{inlabel(.14,"@B@B@b@b000015000000")}}
{{circle(13,4,2);inlabel(.3,"AT-CPSE@bGEC 4190@b")}}
{{inlabel(.14,"@B@B@b@b000016000000")}}
{{CIRCLE(8.5,18,1.25);inlabel(.175,"TelePAC 2@b15005000")}}
{{CIRCLE(26,10.5,0.5);inlabel(.14,"Fe1")}}
{{CIRCLE(26,9.5,0.5);inlabel(.14,"Fe2")}}
{{CIRCLE(26,3.8,0.5);inlabel(.14,"Fe2")}}
{{CIRCLE(32.5,21.7,1.5);INLABEL(.14,"JANET@bPSE")}}
{{CIRCLE(26,7.3,.5);inlabel(.14,"Fe2")}}
{{circle(12.75,24.8,.1);fill(c12)}}
{{circle(14.75,24.8,.1);fill(c13)}}
{{circle(16.75,24.8,.1);fill(c14)}}
{{circle(20.75,25.2,0)}}
{{circle(6.75,25.2,0)}}
{{CIRCLE(6.75,1.4,0)}}

==== ercm09/emas-2900/erteicl_sqrts.txt ====

!SQUARE ROOT ROUTINE

!KEN LOOSEMORE 17TH MARCH 1977

%CONTROL K'001001'
%EXTERNALROUTINE SQRT(%INTEGERNAME N1,N2)
   %INTEGER R2,INC,S1,S2

   %ROUTINE SQUARE(%INTEGERNAME S1,S2,%INTEGER R2)
      %INTEGER A,B,X,Y,Z,D
      A=R2//100
      B=R2-100*A
      X=A*A
      Y=A*B*2
      Z=B*B
      D=Y//100
      X=X+D
      Z=Z+(Y-100*D)*100
      D=Z//1000
      %IF X> 3276 %OR(X=3276 %AND D>7) %START

==== ercm09/emas-2900/b_sup.txt ====
link11 /sup
newsys_dvn87y
supnew#rel
sinnew#rel
gen_pushopsrel
.fixup b_fix
.stack 0
.alone 0 77777
.squeeze
.entry ep
.end
supnew
c supnew#abs,newsys_supnewy

==== ercm09/emas-2900/node_usert2s.txt ====
!************************
!*      USERTS/USERTY   *
!* DATE: 25.NOV.80      *
!************************

! FILE 'USERTS'
! STK = 500, STREAMS = 0
%RECORDFORMAT DMF(%INTEGER I)

%CONSTRECORD (DMF) %NAME NULL = 0


%CONTROL K'100001'

%BEGIN

      %SYSTEMROUTINESPEC LINKIN(%INTEGER SER)
      %RECORDFORMAT ITPF(%BYTEINTEGER CNSL, HDB1, HDB2, %STRING (241) S)
      %RECORDFORMAT ITP2F(%BYTEINTEGERARRAY A(0:241))
      %RECORDFORMAT ITP3F(%BYTEINTEGER CNSL, HDB1, HDB2, %C
         %BYTEINTEGERARRAY A(0:32))

==== ercm09/emas-2900/b_loadup.txt ====
imp11 loadups
link11
loadups#rel
i77perm
.stack 10000
.streams 0
.name ldup
.end
loadupy

==== ercm09/emas-2900/btt6ss.txt ====
!**************
!*  BTT6S     *
!*DA:24.MAR.80*
!**************

%CONTROL K'100001';  ! 'SYSTEM' PROGRAM (FAST ROUTINE ENTRY/EXIT)
%PERMROUTINESPEC SVC(%INTEGER EP, P1, P2)
%BEGIN

     %SYSTEMROUTINESPEC MAPHWR(%INTEGER SEGS)
     %SYSTEMROUTINESPEC LINKIN(%INTEGER SER)

     %RECORDFORMAT PF(%BYTEINTEGER SERVICE, REPLY, %C
        %INTEGER A1, A2, A3)
     %RECORDFORMAT TTF(%INTEGER KBS, KBD, TTS, TTD)
     %RECORDFORMAT BUFF(%INTEGER PT, LAST, %BYTEINTEGERARRAYNAME B)
     %RECORDFORMAT BUFFX(%INTEGER PT, LAST, ARRAYPT)

     %CONSTRECORD (BUFFX) %NAME NULL = 0



==== ercm09/emas-2900/ertedgn_rk07s.txt ====
!************
!*  RK07S   *
!*07.OCT.80*
!************
!* UNIT 4 ADDED

%CONTROL K'100001';                    ! 'SYSTEM' PROGRAM+MUL+TRUSTED

%BEGIN
     %SYSTEMINTEGERFNSPEC GETID
     %SYSTEMROUTINESPEC LINKIN(%INTEGER SER)
     %SYSTEMROUTINESPEC MAPHWR(%INTEGER SEGS)

     %RECORDFORMAT PF(%BYTEINTEGER SERVICE, REPLY, %INTEGER A1, A2, A3)
     %RECORDFORMAT P2F(%INTEGER D)

     %RECORDFORMAT RKF(%INTEGER RKCS1, RKWC, RKBA, RKDA, RKCS2, RKDS, RKER, %C
        RKAS, RKDC, RKDB, MR1, EP1, EP2, MR2, MR3)

     %CONSTRECORD (RKF) %NAME RK = K'117440'


==== ercm09/emas-2900/gecsys669.txt ====
Changes for System 669 System configuration

1. Delete Call Redirection from Lau 09 to Lau 46
                     and   from Lau 46 to Lau 09 (EA72)

2. Change Lau 03 (TRK2) to a DTE with 100 lcns
          Lau 08 (GSCP) to a DCE with 100 lcns

3. Please incluse the patch to allow addaddr etc on enabled links

4. Rename GSCP (lau 08) to LA08
          XGTE (lau 07) to LA07
          TCPM (lau 13) to LA13
          MEME (lau 15) to LA15

5. Add Call redirection from :
        Lau 01 to Lau 51
        Lau 51 to Lau 01
        Lau 03 to Lau 51



==== ercm09/emas-2900/gecenhan.txt ====


              Questionaire for Desired PSE Enhancements
              -----------------------------------------

Please examine the detailed description of each enhancement on the seperate
sheets and then categorise the priority you attach to each enhancement on
the form below in the following way.

                         H  -  High Priority
                         M  -  Medium Priority
                         L  -  Low Priority
                         N  -  Not Interested

Attempt to distribute your priorities evenly, an answer of high priority for
everything will not tell us anything.

Please return the form to Mike Capp at GEC.

            PSE      Network      Network      
          Control    Control       Admin.      External     Other

==== ercm09/emas-2900/time40s.txt ====
      %EXTERNALINTEGERFN TIME40(%INTEGER IN)
         %INTEGER S, D, SR, DR, BF, LEN, J, T, IND, EF
         %SWITCH PSW(0:7)
         %SWITCH EIS(0:3)

         !!
         %CONSTINTEGERARRAY MOVEA(0:10) = %C
           90, 284, 368, 146, 242, 242, 318, 242, 318, 318, 402
         %CONSTINTEGERARRAY MOVEB(0:10) = %C
           180, 298, 382, 180, 256(2), 332, 256, 332, 332, 416

         %CONSTINTEGERARRAY SOU(0:7) = 0, 78, 84, 174, 84, 174, 146, 236
         %CONSTINTEGERARRAY SOUB(0:7) = %C
            0, 95, 101, 191, 101, 191, 163, 253

         %CONSTINTEGERARRAY CMPA(0:2) = 99, 160, 176

         !!
         %CONSTINTEGERARRAY DST(0:7) = %C
           0, 78, 84, 174, 84, 174, 146, 236
         

==== ercm09/emas-2900/reportdec.txt ====


Communications Group - Termly Report

====================   =============

Personnel

N. Millar has converted his half time for Computer Science to one day a 
week for this term and next.

Events of the last term

=======================

==== ercm09/emas-2900/eresu82all.txt ====
Alnwickhill/Kaimes
c 2081
l 1937
b 1764
s 516
m 144
p 50.9
*
Balerno/Baberton
c 3802
b 2317
s 1059
l 781
m 1485
p 61.1
*
Braidburn/Fairmilehead
c 3811
b 3120
l 451
s 373

==== ercm09/emas-2900/kents1280_names.txt ====

%SYSTEMROUTINESPEC LINKIN(%INTEGER SER)
%SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)

%RECORDFORMAT DMF(%INTEGER I)

%CONSTRECORD (DMF) %NAME NIL = 0


%CONTROL K'100001'


%BEGIN

     %CONSTSTRING (7)VSN = 'VSN004A'



     %RECORDFORMAT MEF(%RECORD (MEF) %NAME LINK, %BYTEINTEGER LEN, %C
       TYPE, %INTEGER ADDRESS,PORT,COMMAND,RPORT,FN,      %C
          %INTEGERARRAY A(0:60) )

==== ercm09/emas-2900/b_lmss.txt ====
e gen_lmtims/temp
f/prompt("n/k2g
node = 80; term = 80
m-0
f/if tim>600/g5
%if tim>600 %start
      printstring("Greater than 12 secs
")
      int = 'A'
%finish
%c
imp11 temp
link11
temp#rel
i77perm
.stack 2000
.streams 1
.name lmss
.end
lmssy

==== ercm09/emas-2900/gateold.txt ====
! FILE 'FEP_GATE5'

%CONSTSTRING (7) VSN = "VSN005F"

!****************************
!*  EMAS-2900  FEP  GATE    *
!*  FILE:  GATE5            *
!*  DATE:  27.OCT.80        *
!****************************
!! STACK SIZE = 300
%RECORDFORMAT DMF(%INTEGER I)
%SYSTEMROUTINESPEC LINKIN(%INTEGER SERVICE)
%SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)

%CONSTRECORD (DMF) %NAME NULL = 0

%OWNINTEGER OWN TERM = 72;            ! NETWORK ADDRESS
%OWNINTEGER SUBATTACH FLAG = 74
%CONSTINTEGER KENT = 0;                 ! KENT=1 - NO NODE IN NET



==== ercm09/emas-2900/log31aug82.txt ====
30/08/82  14:00:00 N006T000  6 18 7 56 26 80 80 210 32 7 0 6 3
30/08/82  14:00:00 N009T000  6 20 156 156 17 0 75 232 32 4 7 9 5
30/08/82  14:00:00 N006T000  6 7 156 156 27 9 75 241 32 4 7 9 5
30/08/82  14:00:00 N009T000  6 20 6 83 21 90 90 107 32 48 220 79 48
30/08/82  14:00:00 N006T000  6 1 0 83 27 90 90 166 32 48 220 79 48
30/08/82  14:00:05 N006T000  6 27 9 40 7 156 156 168 32 72 204 137 137
30/08/82  14:00:05 N009T000  6 4 0 40 20 156 156 110 32 72 204 137 137
30/08/82  14:00:10 N009T000  6 4 0 40 3 80 80 247 32 6 3 7 4
30/08/82  14:00:10 N006T000  6 7 156 156 27 9 180 0 32 1 2 2 0
30/08/82  14:00:10 N009T000  6 20 156 156 3 0 180 7 32 1 2 2 0
30/08/82  14:00:15 N006T000  6 10 0 65 29 72 72 26 32 41 105 66 66
30/08/82  14:00:20 N009T000  6 20 156 156 2 0 182 26 32 1 2 2 0
30/08/82  14:00:20 N006T000  6 7 156 156 27 9 182 9 32 1 2 2 0
30/08/82  14:00:25 N009T000  6 20 156 156 21 90 90 37 32 5 7 9 5
30/08/82  14:00:25 N006T000  6 7 156 156 27 90 90 15 32 5 7 9 5
30/08/82  14:00:40 N006T000  6 7 156 156 26 0 181 137 32 1 0 1 0
30/08/82  14:00:40 N006T000  6 1 0 83 23 80 80 27 32 6 3 7 4
30/08/82  14:01:05 N006T000  6 7 156 156 29 72 5 50 32 7 17 12 11
30/08/82  14:01:15 N009T000  6 20 156 156 5 78 78 105 32 5 14 11 10
30/08/82  14:01:15 N006T000  6 7 156 156 27 78 78 60 32 5 14 11 10
30/08/82  14:01:20 N006T000  6 7 156 156 29 72 9 69 32 4 7 9 8

==== ercm09/emas-2900/b_exters.txt ====
%externalstring (255) %map cli param
      %constintegername cli addr = k'160000'

      %result == string(cli addr)
%end
%endoffile

==== ercm09/emas-2900/kents_docs.txt ====



April 1980                           - 1 -


_  ____________
1  Introduction

     There  are  two  programs,  which  run  as  separate tasks under the DEIMOS
operating system [1], to control the transmission of information  on  the  ring.
The programs are written in IMP77 [2].

     The  first is a device driver for the ring interface, it provides for _____
                                                                           basic
_____  [3]  transfers  on  the  ring,  initialisation  of  the   interface   and
block
notification  of  power  failure  on the ring. The ring driver is designed to be
used by several tasks each of which specifies to the  ring  driver  a  range  of
input  ports  for  which  it  will  accept input. The second program provides an
implementation of the byte stream protocol BSP [4], using  the  ring  driver  to
perform the data transfers.
 The BSP handler, on initialisation, notifies the ring handler that all input to
ports  in  the  range  1  up  to the maximum number of byte stream ports allowed

==== ercm09/emas-2900/node_nbsmon.txt ====
! file 'nbsmon'


!********************************
!*    bsp to nsi interface       *
!*      file: nbsmon             *
!* date: 09.mar.82               *
!* monitoring program            *
!*********************************
!!  stk = 1000,  strm = 1

%control 1

%include "deimosperm"

%begin

     %conststring (13)vsn = "NBSM...1b
"

     %recordformat mef(%record (mef) %name link, %byteinteger len, %c

==== ercm09/emas-2900/nodemons.txt ====
%EXTERNALROUTINE NODEMON(%STRING (255) S)
%EXTERNALROUTINESPEC NODEGRAPHS(%STRING (255) S)
%EXTERNALROUTINESPEC DEFINE(%STRING (255) S)
      %STRING (255) T, U, UU, TITLE, UUU
      %RECORDFORMAT FF( %C
       %INTEGER TIM, CPU, ATT,CON,NIF,ERR, %INTEGERARRAY A(4:21))
      %OWNINTEGERARRAY AA(0:21)=0(22)
      %OWNINTEGERARRAY R(0:21) = 0(22)
      %INTEGER I, DIFF, K, L, US, CP, KB, PK, RJ
      %OWNINTEGER USERS, STA, CPU, PKTS, SBR, BYT, RJEO, TIM, RJEI
      %OWNINTEGER POINTS,ATT,CON,MES,COK,CFAIL,BL,ST,NIF,ERR
      %RECORD  F(FF)
      !!
      %OWNINTEGER CPU IDLE = 141;       ! 160=FAST STORE, 141=SLOW STORE
      !!
      !!
      %ROUTINE RD(%INTEGERNAME N)
         READ(N)
         %IF N< 0 %THEN N = N+32768*2
      %END
      !!

==== ercm09/emas-2900/b_lyn.txt ====
imp11 lynp3s/,ll
link11
lynp3s#rel
i77perm
.stack 1000
.streams 1
.end
lynp3y
alist11 lynp3s/.lp23

==== ercm09/emas-2900/b_buff.txt ====
imp11 x25_buff5s/buff5s#rel
link11
buff5s
i77perm
.stack 1000
.streams 0
.name buff
.end
buff5y
transfer buff5y,emas-a(,)BUFF5q(25),ma,no
alist11 x25_buff5s,buff5s#rel/.lp23

==== ercm09/emas-2900/housingcs2.txt ====
%EXTERNALROUTINE HOUSING(%STRING (255) S)
%EXTERNALROUTINESPEC DEFINE(%STRING (255) S)
%EXTERNALROUTINESPEC PROMPT(%STRING (18) S)
%STRING (255) T,U
%RECORDFORMAT INFOF(%INTEGER FORM, WARD, APTS, MARKET, ACTUAL, TYPE)
%RECORD(infof) %ARRAY INFOA(1:4000)
%OWNINTEGERARRAY QUARTER(1:10) = 1(10)

%OWNBYTEINTEGERARRAY COMM(1:7) = 'W', 'H','A','*','S','R', 'F'
%SWITCH SW(1:7)
!!
%OWNINTEGER NO OF TYPES = 9
%CONSTINTEGERARRAY TYPEX(1:9) = 'B', 'U', 'L', 'M', %C
                                     'D', 'G', 'F', 'S', 'T'
%CONSTINTEGERARRAY TINDEX(1:9) = 1(5), 2, 3, 4, 5

%OWNINTEGERARRAY COUNTWARD(0:62) = 0(63)
%INTEGERARRAY TYPE(0:6, 1:8);     ! no of types and no of quarters
%RECORD (infof) %NAME INFO
!!
%INTEGER I,J,K,X,Z, LIMIT, MAX,TOP QU, QURT, THIS COMM

==== ercm09/emas-2900/fepfig2s.txt ====
      %OWNINTEGER END = -1
      %OWNINTEGERARRAY TIME(0:1100) = 0(1101)
      %OWNINTEGERARRAY KBS(0:1100) = 0(1101)
      %OWNINTEGERARRAY CPU(0:1100) = 0(1101)
      %OWNINTEGERARRAY USERS(0:1100) = 0(1101)
      %OWNINTEGERARRAY RJE(0:1100) = 0(1101)
      %OWNINTEGERARRAY PKTS(0:1100) = 0(1101)
      %OWNINTEGERARRAY SBR(0:1100) = 0(1101)
      %OWNINTEGERARRAY ITP(0:1100) = 0(1101)
      %OWNINTEGERARRAY RJEI(0:1100) = 0(1101)
%OWNREAL TIMEI = 1, MAX1, MAX2, SLOPE1, SLOPE2
%ROUTINESPEC SPECGRAPHS(%STRING (255) S)
%EXTERNALROUTINESPEC DEFINE(%STRING (255) S)
%EXTERNALROUTINESPEC CLOSE STREAM(%INTEGER CHAM)
%EXTERNALROUTINE FEPDO(%STRING (255) S)
      %STRING (255) T, U, UU, TITLE, UUU
      %RECORDFORMAT FF( %C
       %INTEGER TIM, USERS,STA,CPU,PKTS,SBR,BYT,RJEO,RJEI)
      %INTEGER I, DIFF, K, L, US, CP, KB, PK, RJ, WHO, WHO1, WHO2
      %OWNINTEGER USERSX, STA, CPUX, PKTSX, SBRX, BYT, RJEO, TIM, RJEIX
      %OWNINTEGER POINTS, FEP NO = -1, FLAG = -1

==== ercm09/emas-2900/response_pssloopjan7.txt ====
Node =   0, Term =  5 - 07 Jan 82 11.00-12.00  ->psse->loop->2972
 0
 0
 0
 0
 0
 18
 578
 262
 181
 98
 60
 37
 28
 16
 16
 5
 8
 3
 2
 0

==== ercm09/emas-2900/b_nlpx.txt ====
imp11 x25_nlpx1/nlpx1#rel,l
link11
nlpx1#rel
i77perm
.stack 1000
.streams 1
.name nlpx
.end
nlpx1y

==== ercm09/emas-2900/networks85_newpaper.txt ====
@make[article]
@device[x2700]
@style[spacing 2]
@modify[hd2,facecode=k]
blank
@newpage
@section[Introduction]

   Edinburgh University is spread across 
many parts of Edinburgh with two main "campus" areas and a number of 
other scattered departments.  This situation has led to a very high 
dependence on data networking which has been built up over fifteen years in order 
to ensure that students and staff can communicate with either the 
main University Services or local department machines. 
The current network (see fig 1)
 is based on three GEC packet switches supporting 
35 hosts and 100 synchronous links [1]. 

   The dispersed nature of the University 
has resulted in the development of a separate complex
 speech network (see fig 2)[2].  The 

==== ercm09/emas-2900/b_infopsse.txt ====
prep x25_infos,infos#imp,x,e,m,clean,g
imp11 infos#imp/,l
link11
infos#rel
i77perm
.stack 2000
.streams 1
.name info
.end
infoxgy
disconnect infoxgy
alist11 infos#imp/.lp23

==== ercm09/emas-2900/erteicl_dup11e.txt ====
!**************
!*  DUP11E    *
!*DA:23.FEB.80*
!**************

%CONTROL K'100001';                    ! 'SYSTEM' PROGRAM AND
                                       ! TRUSTED PROG


%RECORDFORMAT PARF(%INTEGER TYPE, ADDRESS, LEN)

%EXTERNALROUTINE DUP11E(%RECORD (PARF) %NAME P)

     %SYSTEMROUTINESPEC MAPHWR(%INTEGER SEG)
     %SYSTEMINTEGERFNSPEC GETID
     %SYSTEMROUTINESPEC LINKIN(%INTEGER SER)
     %SYSTEMINTEGERFNSPEC MAP ABS(%INTEGER ADR, LEN, REQ ID)
     %PERMINTEGERFNSPEC SVC(%INTEGER EP, P0, P1)

     %RECORDFORMAT PF(%BYTEINTEGER SER, REPLY, %INTEGER A1, A2, A3)


==== ercm09/emas-2900/b_ring.txt ====
imp11 ring8s/,ll
link11
ring8s#rel
i77perm
.stack 1000
.streams 1
.end
ring8y
list ring8y,.fep72

==== ercm09/emas-2900/kent#jun81_zboots.txt ====

!z80 TCP BOOT PROGRAM
!VERSION 1 JUST LOADS FROM STREAM 1 TO TEST THE BSP INTERFACE
!2:6:81
!VERSION 2 ALLOWS THE USER TO SPECIFY A MACHINE NAME AND CORRESPONDING
!LOAD FILE - INT S ZBT PUTS IT INTO THE 'SET' MODE WHERE IT PROMPTS
!FOR THE MACHINE NAME AND FILE NAME
!8:6:81
!!  STK = 300,  STRM = 1


%SYSTEMROUTINESPEC LINKIN(%INTEGER SER)
%SYSTEMROUTINESPEC MAP HWR(%INTEGER SEG)
%SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)

%RECORDFORMAT DMF(%INTEGER I)

%CONSTRECORD (DMF) %NAME NIL = 0


%RECORDFORMAT XF(%BYTEINTEGER UNIT,FSYS, %BYTEINTEGERARRAY FNAME(0:5))

==== ercm09/emas-2900/usercmfeb.txt ====




Edinburgh Regional Computing Centre
-----------------------------------

            For the attention of the Edinburgh Computer Users Committee
            -----------------------------------------------------------


                              Report on Communications
                              ------------------------


TCPs     An extra TCP has been installed in the Appleton Tower to spread
----     the load around.   An experiment with better support for screen
         packages is being tried on a TCP.

FEPs     The FEPs on the 2988 have been more stable although there is still
----     an unresolved hardware difference between the 2988 and the 2972

==== ercm09/emas-2900/testats.txt ====
MTBF - TelePAC #1 - 3 Month Rolling Average
Month - Jan 86 to May 86
5 
0 1
0 0 1 0 0 0 0 0

==== ercm09/emas-2900/networks85_titlesh.txt ====
@make[article]
@device[x2700]
@style[spacing 1]
@begin[text,topmargin=+1.1inches,leftmargin=+0.25inches,rightmargin=+0.5inches]
blank
@newpage
@majorheading[AN APPRAISAL OF THE ADVANTAGES & DISADVANTAGES
OF USING A PABX FOR DATA TRAFFIC]
@BLANKSPACE[0.5in]
@centre[@b[Brian Gilmore
Communications Manager
Edinburgh Regional Computing Centre
University of Edinburgh]]
@blankspace[1.8in]
     The paper discusses the main advantages and disadvantages of using a
 modern PABX for mixed speech and data traffic.  It comes to the conclusion
 that with the currently available technology it is not economic to use
 such an exchange for extensive data traffic and the paper goes on to look at
 future trends in this area in
 particular the use of PABX/LAN Gateways to ease connection problems.


==== ercm09/emas-2900/fepfig3s.txt ====
      %owninteger end = -1
      %ownintegerarray time(0:1100) = 0(1101)
      %ownintegerarray kbs(0:1100) = 0(1101)
      %ownintegerarray cpu(0:1100) = 0(1101)
      %ownintegerarray users(0:1100) = 0(1101)
      %ownintegerarray rjeo(0:1100) = 0(1101)
      %ownintegerarray pkts(0:1100) = 0(1101)
      %ownintegerarray sbr(0:1100) = 0(1101)
      %ownintegerarray itp(0:1100) = 0(1101)
      %ownintegerarray rjei(0:1100) = 0(1101)
      %owninteger length, arraddr
%ownreal timei = 1, max1, max2, slope1, slope2
%externalintegerfnspec smaddr(%integer chan, %integername len)
%externalroutinespec destroy(%string (255) s)
%externalroutinespec newsmfile(%string (255) s)
%routinespec graph1(%realarrayname results)
%routinespec graph4(%realarrayname results)
%routinespec graph5(%realarrayname results)
%routinespec graph6(%realarrayname results)

%externalroutinespec define(%string (255) s)

==== ercm09/emas-2900/sys_rl04s.txt ====
!************
!*  RL04S   *
!*07.OCT.80*
!************
!* UNIT 4 ADDED

%CONTROL K'100001';                    ! 'SYSTEM' PROGRAM+MUL+TRUSTED

%BEGIN
     %SYSTEMINTEGERFNSPEC GETID
     %SYSTEMROUTINESPEC LINKIN(%INTEGER SER)
     %SYSTEMROUTINESPEC MAPHWR(%INTEGER SEGS)

     %RECORDFORMAT PF(%BYTEINTEGER SERVICE, REPLY, %INTEGER A1, A2, A3)
     %RECORDFORMAT P2F(%INTEGER D)

     %RECORDFORMAT RLF(%INTEGER CS, BA, DA, MP)
     %CONSTRECORD (RLF) %NAME RL = K'114400'
     %CONSTINTEGERNAME PS = K'117776'

     %CONSTINTEGER RLTOP = 10239

==== ercm09/emas-2900/tsbsp_tst_compile.txt ====
RM TSTY,TST#REL,TST#LIS
IMP11 TST_SOURCE,TST#REL,TST#LIS
LINK11
CONLIB.IMP77PY#REL
TST#REL
.STACK 1000
.STREAMS 1
.END
TSTY

==== ercm09/emas-2900/dbug77.txt ====

!FILE 'SYS_DBUG6S77'
!*****************************
!*       DBUG6S              *
!*DATE:  17.APR.80           *
!* MODIFIED FOR IMP77        *
!*****************************
!! STK = 300, STR = 1

%SYSTEMROUTINESPEC MAPHWR(%INTEGER SEG)
%SYSTEMROUTINESPEC MAP VIRT(%INTEGER A, B, C)
!%SYSTEMINTEGERFNSPEC MAP PSECT(%INTEGER TASK, SEG)


%BEGIN
%INTEGERFNSPEC MAP PSECT(%INTEGER SEG, TASK)

     %CONSTBYTEINTEGERNAME ID == K'160030'
     %CONSTINTEGER VIR DISP=K'22';    ! DISP TO 1ST VERSION NO

      %CONSTBYTEINTEGERNAME INT == K'160060'

==== ercm09/emas-2900/docum_kmc1.txt ====
$A INVERT=0; INVO=0
$A PAGENO=1; BOTTOM=4; TOP=3; PAGE=58
$A LINE=72; MARK=2
$A CAP=0; CAPO=0; CAPSH=0; CAPSHO=0
$A TAB=4,8,12,18,20,24,28,32,36,40,44,48,52,56,60,64,68
$N
$B15
$L1M
H A L K
$B2$L2M
A HIGH-LEVEL ASSEMBLY LANGUAGE 
FOR THE KMC11
$B6
$L1M
AN INFORMAL INTRODUCTION
$N
$B2$T0%Introduction
$B2HALK is based upon the language HAL, designed and 
implemented by HD on the Interdata 70 series and the
ICL 7502.  Various modifications have been made to 
accommodate the idiosyncracies of the KMC11.

==== ercm09/emas-2900/savings.txt ====
%EXTERNALROUTINE SAVINGS(%STRING (255) S)
%REAL X,Y,Z
%INTEGER I,J,K
%OWNREAL P1=10.5
%OWNREAL P2=11.50
%OWNREAL P3=10.5
%REAL INT1, INT2, INT3, Q1, Q2, Q3

P1 = (P1/100); P2 = (P2/100); P3 = (P3/100)
INT1=0;INT2=0; INT3=0;Q1=100; Q2=100; Q3=100
%CYCLE J = 1, 1, 10
PRINTSTRING("YEAR"); WRITE(J, 1); NEWLINE
%CYCLE I = 1, 1, 365
      INT1 = INT1+(P1*Q1)/365
      INT2 = INT2+(P2*Q2)/365
      INT3 = INT3+(P3*Q3)/365
      Q3 = Q3+INT3; INT3=0
      %IF I = 182 %START
         Q1 = Q1+INT1; INT1 = 0
      %FINISH
      %IF I = 365 %START

==== ercm09/emas-2900/docum_mflop.txt ====
$A TAB=5, 10; CAPO=0; CAPSHO=0; INVERT=1; PAGENO=1
$A JUST=1; LINE=76; PAGE=57; TOP=3; BOTTOM=4; MARK=2
$L1CM
PROGRAM TO COPY A FLOPPY DISC
$B3
$P1 @A %STAND %ALONE PROGRAM ON A PAPER TAPE IS PROVIDED
TO ENABLE A FLOPPY DISC TO BE COPIED. @THE PAPER TAPE IS
CALLED .'COPY .FLOPPY' AND THE PROCEDURE IS AS FOLLOWS:-
$A INDENT=1
$B1 1) @LOAD THE .MUSS11 SYSTEM IN THE NORMAL MANNER AND
THEN HALT THE PROCESSOR.
@THIS ACTION WILL LOAD THE 'PAPER TAPE BOOTSTRAP' INTO CORE,
ALTERNATLY THE .DEC BOOTSTRAP MAY BE USED - SEE THEIR MANUAL.
$B1 2) @REMOVE THE SYSTEM DISC FROM THE MACHINE AND PLACE THE
DISC %TO %BE %COPIED %FROM INTO DRIVE ZERO. @THE BLANK
DISC, OR DISC TO BE OVERWRITTEN IS LOADED ON DRIVE ONE.
$B1 3) @LOAD THE PAPER TAPE INTO THE READER.
$B1 4) @SET THE ADDRESS '077500' ON THE SWITCH REGISTERS
AND %PRESS .LOAD .ADDRESS.
$B1 5) @RAISE THE .HALT .SWITCH AND 
%PRESS .START.

==== ercm09/emas-2900/b_rjee.txt ====
e fep_rjes9s/temps
f/vsn/f/0n/s/0e/p
m-0
(f/{n}/s/!n!/)*
m-0(f/!r!/s/{r}/)*
%c
imp11 temps
link11
temps#rel
i77perm
.stack 1000
.streams 1
.name rjes
.end
rje9ey
list rje9ey,.fep72
alist11 temps/.lp23

==== ercm09/emas-2900/housingcs.txt ====
%EXTERNALROUTINE HOUSING(%STRING (255) S)
%EXTERNALROUTINESPEC DEFINE(%STRING (255) S)
%EXTERNALROUTINESPEC PROMPT(%STRING (18) S)
%STRING (255) T,U
%RECORDFORMAT INFOF(%INTEGER FORM, WARD, APTS, MARKET, ACTUAL, TYPE)
%RECORDARRAY INFOA(1:2000)(INFOF)
%OWNINTEGERARRAY QUARTER(1:10) = 1(10)

%OWNBYTEINTEGERARRAY COMM(1:7) = 'W', 'H','A','*','S','R', 'F'
%SWITCH SW(1:7)
!!
%OWNINTEGER NO OF TYPES = 9
%CONSTINTEGERARRAY TYPEX(1:9) = 'B', 'U', 'L', 'M', %C
                                     'D', 'G', 'F', 'S', 'T'
%CONSTINTEGERARRAY TINDEX(1:9) = 1(5), 2, 3, 4, 5

%OWNINTEGERARRAY COUNTWARD(0:64) = 0(65)
%INTEGERARRAY TYPE(0:6, 1:5)
%RECORD %NAME INFO(INFOF)
!!
%INTEGER I,J,K,X,Z, LIMIT, MAX,TOP QU, QURT, THIS COMM

==== ercm09/emas-2900/blackboxmss.txt ====
@device(gp300)
@make(manual)
@modify(description,leftmargin +2,indent -2)
@modify(enumerate,leftmargin +2,indent -2)
@modify(itemize,leftmargin +2,indent -2)
@style(spread  1)
@style(spacing 1)
@style(widowaction=force)
@tabdivide(12)
@majorheading{ERCC BSC/X55 Protocol Convertor}
@section{@ux{Introduction}}
@label{Intro}

This document describes a @b("black-box") convertor that enables the connection
of IBM mainframes running the SERC X55 software on VM to connect to standard 
X55 hardware.   The requirement arises because a number of such systems in the
SERC and University communities are unable to support HDLC framed synchronous
communications lines.

@subsection{The Protocols}


==== ercm09/emas-2900/ring_ring8s.txt ====
! file 'ring8s'  - with monitoring back in

!********************************
!*    emas-2900   ring interface *
!*                    handler     *
!*      file: ring8s              *
!*   date:27.jul.82               *
!*********************************
!!  stk = 300,  strm = 1

!nb location k'140016 is used to hold the checksum so that it may
!be accessed from code


#if o
%include "deimosperm"
#else
%include "b_deimosspecs"
#fi
%constrecord (*) %name nil == 0


==== ercm09/emas-a/dry/dhry#h.txt ====
/* jm */
#define TIME
#define HZ 50
/* jm */

/*
 ****************************************************************************
 *
 *                   "DHRYSTONE" Benchmark Program
 *                   -----------------------------
 *                                                                            
 *  Version:    C, Version 2.1
 *                                                                            
 *  File:       dhry.h (part 1 of 3)
 *
 *  Date:       May 25, 1988
 *
 *  Author:     Reinhold P. Weicker
 *                      Siemens AG, E STE 35
 *                      Postfach 3240
 *                      8520 Erlangen

==== ercm09/emas-a/dry/dhry1#orig.txt ====
/*
 ****************************************************************************
 *
 *                   "DHRYSTONE" Benchmark Program
 *                   -----------------------------
 *                                                                            
 *  Version:    C, Version 2.1
 *                                                                            
 *  File:       dhry_1.c (part 2 of 3)
 *
 *  Date:       May 25, 1988
 *
 *  Author:     Reinhold P. Weicker
 *
 ****************************************************************************
 */

#include "dhry#h"

/* Global Variables: */


==== ercm09/emas-a/dry/makefile.txt ====
#
#	Adjust for your system!
#
#	Common options for generic UNIX and Microsoft C (under DOS)
#	are listed here.  You can change them by switching the order,
#	placing the ones you want last.  Pay particular attention to
#	the HZ parameter, which may or may not be listed in some
#	header file on your system, such as <sys/param.h> or <limits.h>
#	(as CLK_TCK).  Even if it is listed, it may be incorrect.
#	Also, some operating systems (notably some (all?) versions
#	of Microport UNIX) lie about the time.  Sanity check with a
#	stopwatch.
#
#	For Microsoft C under DOS, you need a real make, not MSC make,
#	to run this Makefile.  The public domain "ndmake" will suffice.
#
CC=		cc			# C compiler name goes here (UNIX)

PROGS=		unix			# Programs to build (UNIX)

TIME_FUNC=	-DTIMES			# Use time(2) for measurement

==== ercm09/emas-a/dry/dhry1#c.txt ====
/*
 ****************************************************************************
 *
 *                   "DHRYSTONE" Benchmark Program
 *                   -----------------------------
 *                                                                            
 *  Version:    C, Version 2.1
 *                                                                            
 *  File:       dhry_1.c (part 2 of 3)
 *
 *  Date:       May 25, 1988
 *
 *  Author:     Reinhold P. Weicker
 *
 ****************************************************************************
 */

#include "dhry#h"

/* Global Variables: */


==== ercm09/emas-a/dry/dhry1#l.txt ====
Source: ERCC08:DRY.DHRY1#C         Compiled: 25/04/89   16.53.22
Object: ERCC08:DRY.DHRY1#O

Parms set: OPT
     0     /*
     1      ****************************************************************************
     2      *
     3      *                   "DHRYSTONE" Benchmark Program
     4      *                   -----------------------------
     5      *                                                                            
     6      *  Version:    C, Version 2.1
     7      *                                                                            
     8      *  File:       dhry_1.c (part 2 of 3)
     9      *
    10      *  Date:       May 25, 1988
    11      *
    12      *  Author:     Reinhold P. Weicker
    13      *
    14      ****************************************************************************
    15      */
    16     

==== ercm09/emas-a/dry/do.txt ====
cc dhry1#c,dhry1#o
cc dhry2#c,dhry2#o
link
dhry1#o
dhry2#o
.end
dry

==== ercm09/emas-a/dry/dhry2#c.txt ====
/*
 ****************************************************************************
 *
 *                   "DHRYSTONE" Benchmark Program
 *                   -----------------------------
 *                                                                            
 *  Version:    C, Version 2.1
 *                                                                            
 *  File:       dhry_2.c (part 3 of 3)
 *
 *  Date:       May 25, 1988
 *
 *  Author:     Reinhold P. Weicker
 *
 ****************************************************************************
 */

#include "dhry#h"

#ifndef REG
#define REG

==== ercm09/emas-a/dry/dhry2#l.txt ====
Source: ERCC08:DRY.DHRY2#C         Compiled: 25/04/89   16.53.50
Object: ERCC08:DRY.DHRY2#O

Parms set: OPT
     0     /*
     1      ****************************************************************************
     2      *
     3      *                   "DHRYSTONE" Benchmark Program
     4      *                   -----------------------------
     5      *                                                                            
     6      *  Version:    C, Version 2.1
     7      *                                                                            
     8      *  File:       dhry_2.c (part 3 of 3)
     9      *
    10      *  Date:       May 25, 1988
    11      *
    12      *  Author:     Reinhold P. Weicker
    13      *
    14      ****************************************************************************
    15      */
    16     

==== ercm09/emas-a/gen/batchs.txt ====
!*************************
!*    Batchs/Batch       *
!* DATE: 05.jan.82       *
!* loads a series of     *
!* tasks, from input(1)  *
!*************************

%include "b_deimosspecs"


%begin
     %constinteger load ser = 5

     %recordformat pe(%byteinteger service, reply, (%integer a1, %c
       %byteintegername b, %integer c %or  %c
      %byteinteger line, line type, %integer ad, %byteinteger rxint, txint))

     %record (pe)p

      %owninteger task id = 26;     ! private ser to distinguish calls


==== ercm09/emas-a/gen/binlds.txt ====
!
!BINARY FILE IPL LOADER
! RL01 VERSION 29.AUG.79
!
!W.S.CURRIE 1ST DEC. 1976
!
!     THIS PROGRAM TAKES AN ABSOLUTE BINARY FILE AS READ
!FROM PAPER TAPE AND PUTS IT ONTO A CONTIGUOUS AREA OF
!THE DISC READY FOR LOADING.
!
!     IT CURRENTLY OVERWRITES SYSTEM1 IN BLOCKS 4600-4700

!     STREAM 1 IS THE INPUT FILE
!     STREAM 2 IS OPTIONAL REPORT FILE

!     OUTPUT IS TO DISC 0.60(OCT) BLOCKS ARE WRITTEN.

!     BLOCK=START BLOCK TO WRITE(9201)

!     STACK=65000        STREAMS=1


==== ercm09/emas-a/gen/dbug7.txt ====
!*****************************
!*       gen_dbug7          *
!*date:  15.nov.84           *
!* modified for imp77        *
!*****************************
!! stk = 300, str = 1

%INCLUDE "B_DEIMOSSPECS"


%begin

     %constbyteintegername id == k'160030'
     %constinteger vir disp=k'22';    ! disp to 1st version no

      %constbyteintegername int == k'160060'

     %routinespec psect
     %routinespec dreg
     %routinespec dstack
     %routinespec octal(%integer n)

==== ercm09/emas-a/b_ftpxa.txt ====
new
prep x25gen_ftpd5s,ftpd5s#imp,x,g,clean,a
dimp11 ftpd5s#imp
link11 /ftpd5s
ftpd5s#rel
.stack 2400
.streams 3
.stackseg 6
.end
ftpg5s
c ftpg5s#abs,ftpxay
destroy ftpg5s#abs
alist11 ftpd5s#imp
list ftpd5s#lst,.lp23

==== ercm09/emas-a/pss/hostess.txt ====

                    *******  HOSTESS  *******


Welcome to HOSTESS, the information service for British Telecom's
Public Data Network.

*************************  NEWSFLASHES  *************************


For details of network status enter NETSTATUS at the "Document"
prompt.
                        ------------------
Hostess  catalogues  revised for further details enter TOPCAT  at
the "Document?" prompt.
                       -------------------
New release of VPAD software to be tested at Swindon (0793 614914).
For details type INFORMATION.VPAD at the "Document?" prompt.
                       ---------------------



==== ercm09/emas-a/pss/hostessinf.txt ====
call hostess

Connected


                    *******  HOSTESS  *******


Welcome to HOSTESS, the information service for British Telecom's
Public Data Network.

*************************  NEWSFLASHES  *************************

For details of network status enter NETSTATUS at the "Document"
prompt.
                        ------------------
Hostess  catalogues  revised for further details enter TOPCAT  at
the "Document?" prompt.
                       -------------------
New release of VPAD software to be tested at Swindon (0793 614914).
For details type INFORMATION.VPAD at the "Document?" prompt.

==== ercm09/emas-a/pss/tariff.txt ====





 THE COMPUTER BOARD AND THE RESEARCH COUNCILS


 NETWORK EXECUTIVE


 JANET USER NOTE 4


 The Packet Switchstream Tariff


                                                            Issued by
                                             W. Jenkins and S.A. Wood
 Issue 2                                             8 September 1987


==== ercm09/emas-a/x25/ftp4as.txt ====
%conststring (13) vsn = "ftps....4a "
#datestring
#timestring

!********************************
!*  emas-2900  fep  ftp server  *
!*   file: ftp4as/ftp4ay     *
!*                              *
!********************************


#options
! prep versions are:-
!
!   m = Full Monitoring
!   c = Clock monitoring (needs a real time clock)
!  i = new imp compiler
!

%control 1
%include "deimosperm"

==== ercm09/emas-a/x25/rjesx2.txt ====
!********************************
!*  emas-2900  fep  rje server  *
!*   file: rjesx2/rjesx2y       *
!* x25 only version
!********************************
!! stack size = 300

%control 1
%include "deimosperm"

%conststring(13) vsn = "Rjes...v2t "
#datestring
#timestring
%begin

      %recordformat am1f(%integer rxs, rxd, txs, txd)

      %ownrecord (am1f) %name l == 1;    ! supplied by am1 handler


      %recordformat ssmessagef(%bytearray a(0:240) %or %c

==== ercm09/emas-a/x25/gecsir.txt ====
@device(x2700)
@majorheading(List of CPSE Problems)
@verbatim[

Ref   Date   G-Ref Site            Description

=============================================================================
 8  1 Feb 84  F284 KB    CPSE crash caused by console out of paper
 9  1 Feb 84  F285 KB    Proc AC14 Call Instruction error at @@C654
10 27 Feb 84  F311 KB    Proc AC14 Call Instruction Error at @@C654
11  8 Mar 84       KB    Proc AC15 Call Instruction Error at @@C654
   24 Mar 84  **** AT    Power Supply Fault
    3 Apr 84  **** KB    Crash with no message (See F336)
    3 Apr 84  **** KB    Actually a Process AC20 call inst. error

==== ercm09/emas-a/x25/xpr1by.txt ====
,XPR1ÈÇÐÈÀÿ@©¨\ÀÁÂȇ M¸\&ˆ€PPȇ0H”\BA@
ˆ‡¾:P\@BAAAAAÁEøÿˆŠÁe@BcÂEà ‡
‡huŒ\ˆ‡Í@\ˆ‡.H\
ˆ‡!„\ˆ‡ã \ˆ‡Ä4\ÀÁàI_ÀPSSE TOLKIEN????SERCPSS RCO ?SPRúÿùÿùÁ'èT&MDÅeÕÕÕß	”\÷úÀ"m÷Ám÷•´‹7Š¦kÀ¾Àß	¸\÷œk~kÁŽÂß	ì[
ÁÝpkWpÁe#Àß	ì[Á•Âß	ì[ÃukÃEøÿ÷Qk
ÂÝgk—tùÿÂEþ·Ôj÷Xkjk
ÁÝRkÁUÿw2k
ÀÝEkÀUÿ7"k÷‹k‡×­kƒÀ@ß	dP÷‹k‡×­ýjƒÀAß	dPÂjÃ`÷ºÀÆjß	ÌNÀß	¨TÀß	@\ß	ŒB7ŠâjÀ¾Àß	¸\×½ÖjÄèU€ÃºjÃEÿ
ÂÝÄj ÷ÂjÀÆÀß	|R7
Œj7
Xjß	ŒBßß	0Q7
Hjß	ÜEØ÷‹“jXß	ôJ÷‹ú‰Ð×­ô‰SÀß	(@F×­â‰AÀß	(@=׭Љ?ß	MÀ
ß	M1÷¥0¶‰‚×­°‰9‚
Ãݦ‰ÃeÐÿ÷&j!×­˜‰NÀß	(\ß	4\×­‚‰QÃÃíöi÷òi×­l‰WˆÃÃíâi÷Þi 7ŠV‰wúþ×­ÞiM·
™èVÄiÀÔiß	hAwÚiÉ%W"ÿÀß	dPÃÂió‰Âni,Á|iA`A`ÁeÁwìiÉ”i3ŠÀÀe1ÂXi‚
ÂEÀÿ·jiÂ-Bi	À1
ß	MÀß	(@÷Ni0iß	ŒBwfþÀß	B7
FiwXþ×­<i-Ãúh÷•0i÷i+i÷ ii7Ši÷ii÷øhiÃi÷iÕ0Õ<ÀÍÕ`ß	øPÃió0À¾Àß	¨\wöýÀ;Á£èW¾Àß	Mwæý‹(@&f
DÅeÃL€~Àß	 \þÿ÷@€Ã:€!
ÁÝJ€WpÁe#Àß	ì[Á¼Âß	ì[À×tÁÁe.Âß	ì[ß	TYÀ
ß	MÀß	¨T×-€÷èT7
â4
÷-àæ"ÃØÃ`Ã`ÃeÁ÷P€Àß	BÃF€

==== ercm09/emas-a/x25/dx11b1s.txt ====
 
!********************************
!*  emas-2900  fep dx11 handler  *
!*       file: x25_dx11b1s        *
!********************************
!! stack size = 300
!         n  =  new compiler
!         c  =  Clock monitoring (needs a real time clock!)
!         m  =  All monitoring
!

%owninteger fep no = 9;               ! number supplied on load

#if ~n
%control 1
%include "deimosperm"
#else
%control x'4001'
%include "b_deimosspecs"
#fi


==== ercm09/emas-a/x25/infoxy.txt ====
,INFO0Åð0Àÿ@©ÐA&MDÅe÷•èžÕÕÕß	ÈHt
ÕÕÕß	ÈHt
4ŠÀeß	H7~7Š~7~7Š~7~7Š~×-~ÁÀÀÂ@Àß	ÜHÁÇÀÂ@Àß	ÜHÃâ}Ãe0÷ä}ÁÀß	8HÁ@Àß	8Hß	`EÁÀß	8Hß	”EÁÎÀß	\@Àôß	ÔH4ŠÀeß	Hô‹Àôß	ÔH÷¥M|î‚×­vPê‚
ÃÝlÃe±ÿ÷h}7Š`ÏÐBà7X}7X}7ŠU}7P}7ŠM}ÃD},ÁÓÀß	8HÀÁ4}ß	@EÁâÀß	8HÀ
Ýß	@EÁíÀß	8HÀ
Ý	ß	@EÁøÀß	8HÀÁö|ß	@Eß	”Eô•	­KÕ

ß	Aô•	ÃÂ|Ãe÷¼|¶|2Š4

´


3Š€ÀÃ%
÷Á@ÀÂÀß	ÜH÷•	Ú|÷b<Ý|Ä|ÀÁR<ß	@Eß	”EÃl|Á€ÀÂÂeõrÐCß	ÜHÃX|ó•
ÕÕ
ß	Aw¤þ­×->|wþÕÕ&|
ß	Aw~þÀß	(@×-|wfþÕ

ß	AwVþ]:(@&fDÅeô•ôÚŸô•4Àeß	€H…„‡nd¶\@&
DÅeÂeß	ÜH­‚ó•ó”Ÿó•
3ŠÁeÂÂeß	ÜHÀÀeß	€H*ó•ó^Ÿ3ŠÀÀeß	¨Hó•óBŸó•
ó•ÂÁeÂeß	ÜHÀÀeß	€H„‡bBÀinfos....1a 15/08/8411.42.402972-02988-0INFOFrom Gate, fn=

==== ercm09/emas-a/x25/sercaddr.txt ====
(Message 280)
Subject:  Network addresses
From:     NPIN07@RLGB (on GEC 4090 - RLGB at Rutherford)
Date:     Thu, 31 May 84 13:22 GMT
To:       netimp
Via:      EDXA  ; (to RCO) 31 May 84  13:34:28 bst
Via:      RLGB; by EDXA on  Thursday, 31-May-84  13:27:04-GMT
Msg ID:   <31 MAY 1984 13:22:56 NPIN07@RLGB>


Network Address list.                       31 May 1984

The following is a list of network connections, addresses and titles. It
is by no means a full or complete list. That I believe is the responsibility
 of the NRS

I am prepared to maintain this list and add to it (Providing Im given the information)
on a 'Best Endeavours Basis'. If you wish to have systems added to the list
please provide me with the information in the following format.
Site, Gateway Address, System Address, Title (mnemonic), Facility.


==== ercm09/emas-a/x25/gatexby.txt ====
,GATX˜Ú  ˜Àÿ@©Ô~ÀÁÂȇ ÿ&ˆ€PPȇ0Ù&ä~&ˆÄåT”Ì„‡@$È~BA@
±É	CÈ	‡HªJL@&fDÅe4
Ã"ô
ô‹ÂÂ
°…„‡Ž£:@&fU
DÅeô–³–2€ß	(@…„‡nŒ:Ä@&f
DÅeß	L@ttÉ–s–…„‡n»ø@À
‡Á
Á ‡07yÀß	À~÷•¨gÕÕ
ß	È~ÁÏß	|~ß	ä{÷•;G÷ýÀÆG÷ÁÂG7
G·
GÁGWp`ñGÒÀ@ÀeÐÀÁ$Áß	(@×-òFì7
êF·
æFÁâFWp(ñÚFlÂ@ÀejÂÁ(Áß	(@×-ÆFPì÷e¼F÷
¸FôFÃ`Ã`aÂÂe³þÿ×- FðÃeô–ÀÁß	÷6G€FÀß	À~÷*GtF÷•G÷fG7ŠG÷•GÀÁß	ä~·
`FuvzÀGÁ,Áß	@Àdß	¸~7ŠêFÀÁß	À€ß	ø@wàF×­ÒFß	„[í÷‹ÅFß	ŒHç×­¹Fß	äEß	(BÞ×­¨Fß	äEß	@JÕß	|YÒêªA&f
DÅeÃð
ÂÜ€àÀEøÿ4Á
@Ü
ÂÜ€àÀEøÿ
Ý Á…„‡1þÿô‹!ƒC
݃ 
4@
݃àñô1

==== ercm09/emas-a/x25/ftp3xy.txt ====
Wp01>ÀñÿÿLÀÁe<Àt
Éþ_wú_-è÷[÷ÚZ÷[ÁÀß	LlÁàÍß	LlÁæÍß	LlÁÀß	Llß	´i
ß	ðlÕÕÕß	ÜltÕÕÕß	Ült÷<ÀrZ÷nZnZ÷lÀjZô
Áß	(Bô
Áß	(BÁêÍß	\@ÁîÍß	\@ÁóÍß	\@Àôß	èl4Š!Ínot allwaitingreadyaskingtimingabortngWait Tschckingconninggoingclserdyclose ERCC tsFTPMAILXok
W=2/2Buff =, Pool =ËfÀeß	¤l÷‹zw¤÷¥Mz‚×­üyP
‚
ÃÝòyÃe±ÿ÷4f7ŠæyÁõÍß	Ll÷¥1Øy‚×­Òy7‚ÁùÍÂJÍß	0m÷¾yÙf÷¸yÕf7Š²y×­®y?w"ÁÿÍß	LlÀÁÞeß	`iÁÎß	LlÀÁÈeß	`iß	´iô´
Wp0Áe<ÀwfYW,ÿÿbÁÎß	Llß	àC×-˜eß	´iÁÎß	LlÀÃ6YÁß	`iÁÎß	LlÀqgÃYÁ(ß	`iÁÎß	LlÀÃYÁß	`iÁ*Îß	LlÀÃîXÁß	`iÁ3Îß	LlÀÃÖXÁß	`iÁ<Îß	LlÀþXÁß	`iÁFÎß	LlÀæXÁß	`iß	´i-Œ7Šˆxß	´i×­€xCÀß	ˆlß	$mÁOÎß	Ll7Šdx­ß	ìJw4þ­ß	PEw$þ­Àeß	¬Qwþô‹wþôô
VDhWp0Áe<ÀwXW,	CÂ&Â
±&ß	ŒOæÀdß	èlw¾ýÐ:(@&
DÅeß	àCß	´i4
´
ÁUÎß	Ll-
öˆ„‡ja¶\@&
DÅeÂeß	0m­‚ó•ó”Ÿó•
3ŠÁeÂÂeß	0mÀÀeß	”l*ó•ó^Ÿ3ŠÀÀeß	¼ló•óBŸó•
ó•ÂÁeÂeß	0mÀÀeß	”l„‡b/A&fÎå
DÅeÃZ‹5Àß	ˆlÁvÎß	LlÀúÿß	`iÁÎß	LlÀÃè~Áß	`iÁŽÎß	LlÀÃÐ~Áß	`iÁšÎß	LlÀþÿß	`iß	´i
ß	ˆl-úÿ$×-âŠÿÿÃÞŠ7
ØŠÀß	ˆlÁ¡Îß	Llüÿß	€d·
ŠüÿÃEÿ?Ã%À=üÿ?ß	(@ó•ó0ž3úÿÂB~³œ³œ	3üÿ3þÿ‹"BÁ÷
bŠÀÀeß	”l…„‡>áJ(B&fU
DÅeó•óÔs3ÀÀeß	”lþÿ÷
Š…„‡Ž€†lB&f
DÅeÀ%À%!4Š

==== ercm09/emas-a/x25/buff3s.txt ====
! FILE 'FEP_BUFF3'
!*******************************
!* EMAS-2900   BUFFER MANAGER *
!*     FILE: BUFF3 (FEP)      *
!*     DATE: 13 FEB 86        *
!******************************

!! STK = SIZE+200
%CONSTINTEGER SIZE = K'34000';   ! USE LINK6Y !!!!!!
%CONTROL K'100001'
%SYSTEMROUTINESPEC LINKIN(%INTEGER SER)
%SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)
%RECORDFORMAT D(%INTEGER I)
%CONSTRECORD (D) %NAME NULL = 0


%BEGIN

     %RECORDFORMAT BF(%RECORD (BF) %NAME L, %BYTEINTEGER LEN, MODE, %C
       %BYTEINTEGERARRAY A(0:99))


==== ercm09/emas-a/x25/gatexs.txt ====

!**********************************************************
!*                                                        *
!*           PSS X-25 Level 3 Protocol Handler            *
!*                                                        *
!*                      GATEX                             *
!*                                                        *
!*                Version    10.10   9 Mar 1987           *
!*                                                        *
!**********************************************************
!*
#if o
%control 1
%include "b_deimosperm"
#else
%control x'4001'
%include "ercm09:b_deimosspecs"
#fi
%begin
#options
!************************************

==== ercm09/emas-a/x25/gatexy.txt ====
,GATX˜Ú 0˜@ÿ@©ô}ÀÁÂȇ à$~&ˆ€PPȇ0º&~&ˆÄåT”Ì„‡@è}BA@
±É	CÈ	‡HªJL@&fDÅe4
Ã"ô
ô‹ÂÂ
°…„‡Ž£ZxÀß	à}÷•`hÕÕÕß	è}ÕÕÕß	è}ÁÏß	œ}ß	{÷•áG÷ýÀlH÷ÁhH7
¼G·
¸GÁ´GWp`ñ¬GÒÀ@ÀeÐÀÁ$Áß	(@×-˜Gì7
G·
ŒGÁˆGWp(ñ€GlÂ@ÀejÂÁ(Áß	(@×-lGPìÀÁß	$~÷HVGÀß	à}÷HJG÷•ôG÷ôfïG7ŠìG÷•êGÀÁß	~·
6GÀØGÁ,Áß	(@Àdß	Ø}7ŠÀGÀÁß	[LZy$~×­´Gß	¸Zó÷‹§Gß	ÀGí×­›Gß	<Eß	¨Aä×­ŠGß	<Eß	tIÛß	´Xرª@&f
DÅeÃp€
ÂÜ€àÀEøÿ4Á
@Ü
ÂÜ€àÀEøÿ
Ý Á…„‡1þÿô‹!ƒC
݃ 
4@
݃àñô1
7ùÀ
ß	hr
…„‡N€z4A&fU
DÅeÃÊ÷œÉwÉÂØÁÀ÷•®÷®ž©7Š¦7¦ÀÁß	ô}À,Áß	L@wŽß	¨A×-œÀ
ß	4A…„‡î‘¨A&
DÅeôb3Š

==== ercm09/emas-a/x25/buff5s.txt ====
! file 'fep_buff3'
!*******************************
!* emas-2900   buffer manager *
!*     file: buff5 (fep)      *
!*     date: 19 sep 84        *
!******************************

!! stk = size+200
%control 1
%include "deimosperm"


%begin
%conststring (9) vsn = "Buff..5a"

     %recordformat bf(%integer buff no, len,  %byte owner, mode, %c
       %byteintegerarray a(0:240))

     %recordformat qf(%record (bf) %name l)
     %recordformat pe(%byteinteger ser, reply, fn, port, %c
       %integer buff no, %byteinteger len, s1)

==== ercm09/emas-a/x25/bformats.txt ====
%constinteger hdrl = 8 ;!Length of dummy area before data field
%recordformat qf(%record (qf) %name link, %integer count)
%recordformat ts29f(%string (255) s %or %byte octet1 %or %bytearray a(0:255))
%recordformat itpf(%byte cnsl, hb2, hb3, (%string(255) s %or %bytearray a(0:255)))
%recordformat x25f(%byte octet1, lcn, fn, %bytearray a(0:255))
%recordformat mef(%integer buff no, l, %byte owner,type, %c
       (%bytearray a(0:249) %c
   %or (%string(2) padding, %byte octet1,lcn,fn,(%bytearray data(0:243) %or %record(itpf) itp %or %record(ts29f) ts29)) %c
   %or %string(250) s))
%recordformat pf(%byte ser, reply, %c
   ((%byte fn, (%byte s1 %or %byte process), ((%integer buff no, (%byte gate port %or %byte len), %byte task port) %or %string(3) facility)) %c
%or (%byte a1, a2, b1, b2, c1, c2) %or (%integer a, b, c)))

%recordformat cvf((%byte l, (%byte reason, cause, diags, %bytearray our ct(0:3), our segs(0:7),pss ct(0:3), pss segs(0:7)) %c
                         %or %bytearray a(0:26)) %c
               %or %string(27) s)

%endoffile

==== ercm09/emas-a/x25/telefaults.txt ====
List of TelePAC faults   (Position as of 23 Sep 86)
 
1.2 Points addressed with Mr Gilmour regarding JNT Spec    (Telefile)
     Guaranteed PSS compatibility (BG 1)        Ok
     Call statistics in Clear packet (BG 2)     Ok, but see N7
     Call redirection (BG 3)                    Ok
     Load Sharing (BG 4)                        Ok, but see N6
     Performance monitor (BG 6)                 Ok
     Fault warning (BG 7)                       Ok (but could be more)
     Network management (BG 8)                  Ok, but multiple PSE not tried
     Various packet counts (BG 9)               Clear,Int,Rst SENT not counted
     Displayable DTE addresses (BG 11)          Ok
     Password on BASE: (BG 12)                  Ok
     MTBF (BG 13)                               Ok
     Crash on buffer exhaustion (BG 14)         Ok
     Hold link down (BG 15)                     Ok
     Change of line speeds (BG 16)              Ok

1.3 Gilmore/Cheney-reported bugs not dealt with above   (Telefile)
     Reset code of 0/0 on errors (BG 3)         Ok
     Clear code of 0/0 on link down (BG 4)      Ok (get 09/00)

==== ercm09/emas-a/x25/eam9s.txt ====
! file 'fep_eam9s'

!********************************
!*  emas-2900  fep am1 handler  *
!*       file: eam9             *
!* modified for pcb interface   *
!********************************
!! stack size = 300
! Options
!         n  =  new compiler
!         c  =  Clock monitoring (needs a real time clock!)
!         m  =  All monitoring
!         b  =  New Big Buffer manager
!

%owninteger fep no = 9;               ! number supplied on load

#if ~n
%control 1
%include "deimosperm"
#else

==== ercm09/emas-a/x25/xprots.txt ====
! file: x25_XPROTs
!
!*************************************************
!*                                               *
!*       PSS X-25 Level 2 Protocol Handler       *
!*                                               *
!*                   XPROT                       *
!*                                               *
!*        Version  9.30   11 Oct  1985           *
!*                                               *
!*************************************************
#options

#if p&q
   #report must have either p (dup11) or q (dqs11e) or neither (both)
#fi
#if ~p
   #report dqs11e code included
#fi
#if ~q
   #report dup11 code included

==== ercm09/emas-a/x25/baccts.txt ====
! dummy account prog to fit with jb xgate
!
! date: 07.may.82

%control k'100001'

%include "deimosperm"
%begin

%recordformat mef(%record (mef) %name l, %integerarray a(0:125))
%recordformat pf(%byte ser, reply, a1, a2, %record (mef) %name mes, %c
  %byte c1, c2)
%record (pf) p

%constinteger buffer manager = 17
%constinteger release buffer = 1

      %routine free buffer(%record(mef)%name mes)
         p_ser=buffer manager;   p_reply=id
         p_a1=release buffer;   p_mes==mes
         pon(p)

==== ercm09/emas-a/x25/baccty.txt ====
,BACCÐÀÀÐ@ÿ@©`@&MDÅe
1>(@&f
DÅeó•óÖŸó•3ÀÀeß	@…„‡vu,j@Àß	¸@4ŠÀeß	 @öÀß	(@òb@ÀÁÂȇ  @&ˆ€PPȇ0|¸@
ˆ‡Í@ÅÀÆÐÀ&
ß	`@
Ç
à0Â@©==== ercm09/emas-a/x25/ftpd4s.txt ====
! prep options
!  n - nsi
!  r - ring
!  k - kent
!  x - transport service interface
!  g - more general ftp
! if k is not set, ercc format is assumed
#options
#if ~(n!r!x) ! ~(e!g) ! (n&r) ! (n&x) ! (r&x) ! (e&g)
  #report must specify one of (n,r,x) and one of (e,g)
  #abort
#fi

#if r
  #report Preparing ring version
#fi
#if n
  #report Preparing NSI version
#fi
#if x
  #report Preparing transport service interface version

==== ercm09/emas-a/x25/xxx3as.txt ====
!********************************
!*  emas-2900  fep  itp server  *
!*   file: x25_xxx3as/xxx3y         *
!* NB: NOT same source as 2900       *
!********************************
!! stack size = 500
!*
#options

%control 1
%include "deimosperm"

%begin

      %conststring (13)vsn = "xxx...3g "
#datestring

      !!   no of data bytes in a short block  

      %constinteger small block max = 115;        ! 128-4-6-4
      %constinteger big block max = 127;          ! for P=128/128 calls

==== ercm09/emas-a/x25/xxx2s.txt ====
!********************************
!*  emas-2900  fep  xxx server  *
!*   file: x25_xxx2s/xxx2y         *
!********************************
!! stack size = 500
!*
#options

#if i
%control x'4001'
%include "b_deimosspecs"
#else
%control 1
%include "b_deimosperm"
#fi

%begin

      %conststring (13)vsn = "xxx...2k "
      #datestring
      %recordformat am1f(%integer rxs, rxd, txs, txd)

==== ercm09/emas-a/x25/xxx2y.txt ====
ô


Wp&@ÀeœÄÁ4Àß	\l
Wp&1
 Ä-
è4
4

´


WpÁe@ÀwvY1
-
ï÷PÄlYÃhYóþÿ÷vÄ^YÂZYòÿÿÁÀß	°kÁÀß	°kß	i
ß	TlÕÕÕß	@lt
ÕÕÕß	@lt
7
àô
Áß	|Aô	

==== ercm09/emas-a/x25/xxx3s.txt ====
!********************************
!*  emas-2900  fep  itp server  *
!*   file: x25_xxx3s/xxx3y         *
!********************************
!! stack size = 500
!*
#options
!   b     =    Big Buffer Manager
!   a     =    Amdahl FEP

#if i
%control x'4001'
%include "b_deimosspecs"
#else
%control 1
%include "deimosperm"
#fi

%begin

      %conststring (13)vsn = "xxx...3a "

==== ercm09/emas-a/x25/rolbx1y.txt ====
-þÿüÿÂ`
Üm
tô
þÿìüÿÂ`Áe…„‡ÁÀ…„‡ÞjJ”@&fUDÅeC
ÂÜB`Âeß	PQüÿ
ÂÜ
ßþÿB`‚
³…„‡ŽVFØ@&fU
DÅeó•ó$Ÿ3Š3Šs	3ÀÀeß	ôP…„‡†>A&f
DÅeó•óæžó•3ÀÀeß	ôP…„‡vVPA&fÎå
DÅeó•ó¬ž3úÿ3üÿ3þÿó*ó•	ÀÀeß	ôP…„‡¦9¢ A&f
DÅeó•ó^ž3Š3ŠÀÀeß	QÂ2ŠÀZÂß	”@ÀÔÄÁß	”@ÀtÂÁß	”@ÀÔÄÁß	”@ó•óžó•3Šó•	ÀÀeß	ôP…„‡>ÄFailed to turn Disc check offWhole disc written
Failed üò<B&DÅeÃp‚$ôr‚
ôÄ4
4
Àe
ß	Q-	ÁÖÄß	œPÀß	Nß	pN
@ß	ÀL÷-"‚"‚
ÁôÄß	œP÷‚„‡ô‚
ô`ôô¶ÂÃîÃ]øôÀe
ß	QÁÅß	œPÀÁÆß	NÁÅß	œPÀß	Nß	pN-·
ž÷¢„‡Úü˜C&fu
DÅe
v(C&fU5DÅet’4Š…„‡ôÂe´


==== ercm09/emas-a/x25/rolbx1.txt ====
! FILE 'rolbx1'
!**********************
!* rolbx1/rolbx1y
!* date: 01.jun.81   *
!* ring vsn          *
!*********************
%conststring (7) vsn = "vsn001b"
!! stack = 300, streams = 1

%control k'100001'
%INCLUDE "DEIMOSPERM"


%recordformat xf(%byteinteger unit,fsys,%byteintegerarray fname(0:5))
%BEGIN

   %owninteger mon = -1

%recordformat mef(%record(mef)%name link,%byteinteger len,type,  %c
      (%bytearray reserved(0:7), %bytearray data(0:239) %or %c
      %bytearray params(0:239)))

==== ercm09/emas-a/x25/paddoc.txt ====
[6{ HThe JNT PAD - Getting Started
	The JNT PAD - Getting Started

ThefollowingcontainsasummaryoftheJNTPADfacilities
mostlikelytobeofinteresttotheuserapproachingthePAD
;forthefirsttime.Themore'exotic'featuresandvaluesof
thevariousparametersarenotdescribed. HItisemphasised
	Itisemphasised
; HthatthereisnosubstituteforexaminationoftheJNTPAD
	thatthereisnosubstituteforexaminationoftheJNTPAD
; HTerminalUsers'Guide.Inthefollowing sections,CRis'carriage
	TerminalUsers'Guide
;return'andDLEisobtainedbyholdingdownthe'ctrl'keyand
pressing P.

 HINTRODUCEyourselftothePADbytypingCR(perhaps
	INTRODUCE
;repeatedly)sothatthePADcanascertainyourterminalline
speed, 110-9600 baud.

 HHELP is available by typing 'HELP' to the PAD> prompt to obtain
	HELP 
;informationastowhatthePADknows aboute.g.'HELPADDRESS'
gives host names known to the PAD.

 HCALLthehostbytyping'CALL<hostname>'tothePAD>prompt
	CALL
;e.g.

==== ercm09/emas-a/x25/xprotbs.txt ====
! file: x25_XPROTbs
!
!*************************************************
!*                                               *
!*       PSS X-25 Level 2 Protocol Handler       *
!*                                               *
!*                   XPROT                       *
!*                                               *
!*        Version  9.29   10 Oct  1985           *
!*                                               *
!*************************************************

! Prep options
!
!  q  - dqs11 code
!  p  - dup11 code
!  k  - kv11  code
!  y  - Use a second xgate (for psse & small buffer version only)
!
#report Producing Big Buffer Manager Version


==== ercm09/emas-a/x25/ftp3s.txt ====
%conststring (13) vsn = "ftps....3m "
#datestring
#timestring

!********************************
!*  emas-2900  fep  ftp server  *
!*   file: fpt3s/fpt3y       *
!*                              *
!********************************


#options
! prep versions are:-
!
!  k = kent (no uflag)
!  e = ERCC
!  r = ring
!  n = nsi
!   x = Transport Service
!   m = Full Monitoring
!   c = Clock monitoring (needs a real time clock)

==== ercm09/emas-a/x25/ftp4s.txt ====
%conststring (13) vsn = "ftps....4c "
#datestring
#timestring

!********************************
!*  emas-2900  fep  ftp server  *
!*   file: ftp4s/ftp4y       *
!*                              *
!********************************


#options
! prep versions are:-
!
!  k = kent (no uflag)
!  e = ERCC
!  r = ring
!  n = nsi
!   x = Transport Service
!   m = Full Monitoring
!   c = Clock monitoring (needs a real time clock)

==== ercm09/emas-a/x25/dx11bbs.txt ====
%begin
  ! nb: This program only exists to give its stack segment to the dx11
  !     program proper, it should NEVER run again
loop:
   *EMT_1
   -> loop
%endofprogram

==== ercm09/emas-a/x25/pssehosts.txt ====
   1: ADADG   : 000016000008     EDNET  XXX   PCMT   2   0  Data General ADA machine
   2: XCALL   : 000015000004     EDNET  XXX   PCMT   2   0  
   3: SUNNETT : 2405015428       PSS    XXX   PCMC  14  10  Uppsala, Sweden
   4: EMAS    : 000015000001     EDNET  TS29  GATX   2   0  ERCC ICL-2972 EMAS SYSTEM
   5: EDAI    : 000016000024     EDNET  XXX   PCMT   2   0  Artificial Intelligence VAX
   6: SCRP    : 000015000035     EDNET  XXX   PCMT   2   0  Poultry Res. Prime
   7: DIALNEE : 23421230012011   PSS    XXX   PCMC   5   5  Dialog Information Services
   8: KENT    : 234222715151     PSS    TS29  GATB  15   5  Kent University Pss Gateway
   9: EUSIP   : 000016000029     EDNET  XXX   PCMT   2   0  Speech Technology Unix Vax
  10: DIALOG  : 31104150002000   PSS    XXX   PCMC  14  10  Lockheed Information Systems
  11: ECSVAX  : 000015000006     EDNET  XXX   PCMT  15   0  Computer Science Vax/Vms
  12: DIALOG4 : 3106             PSS    XXX   PCMC  14  10  Lockheed Information Systems
  13: ADAFTP  : 000016000008     EDNET  TS29  GATX   2   0  FTP for ADADG
  14: ABRO    : 000015000017     EDNET  XXX   PCMT   2   0  Abro Prime
  15: AIVA    : 000016000027     EDNET  XXX   PCMT   2   0  Artificial Intelligence VAX
  16: GEACL   : 234219200169     PSS    XXX   PCMC   5   5  
  17: ICITRAN : 234261643313     PSS    XXX   PCMC  10   5  
  18: ARCUS   : 000015000018     EDNET  XXX   PCMT   2   0  Arcus Prime
  19: ICLBFTP : 234234417117     PSS    TS29  GATB   5   5  FTP for ICL Bracknell
  20: CSTVAX  : 000015000036     EDNET  TS29  GATX   2   0  Comp. Sci. UNIX VAX
  21: BEL     : 2062221012       PSS    XXX   PCMC  14   8  BELINDIS

==== ercm09/emas-a/x25/telepac.txt ====
@device(x2700)
@majorheading[TelePAC Fault and Crash History]
@verbatim[
?? Aug 85            TelePAC delivered on loan
?? Oct 85            Version: 1256
?? Oct 85            Crash while configuring it

=================================================================
==== ercm09/emas-a/x25/xgate.txt ====

!**********************************************************
!*                                                        *
!*           PSS X-25 Level 3 Protocol Handler            *
!*                                                        *
!*                      XGATE                             *
!*                                                        *
!*                Version    8.15  29 Mar  1982           *
!*                                                        *
!**********************************************************
!*
%CONTROL 1
%BEGIN
!************************************
!*                                  *
!*          Declarations            *  
!*                                  *
!************************************
!*
!****** Constintegers ******
!*

==== ercm09/emas-a/x25/itp9xy.txt ====
,ITPS@Ü D@Àÿ@©À29/08/8411.15.13
ô


Wp$@ÀeÎÈÁ:Àß	ün
ð4
4

´


WpÁeFÀw$W1
1ôe1-
é÷†ÈWÃ
Wóþÿ÷ªÈWÂüVòÿÿÁ"ÀÂ&Öß	0oÁhÖß	nÂ&ÖÁnÖß	nÁ&Öß	pnÁÀß	pnß	Øk
ß	ônÕÕÕß	ànt
ÕÕÕß	ànt
7
\ôÿÿ
´

==== ercm09/emas-a/x25/hostpeople.txt ====
j.leitch,d.walker,jhenshall,sshaw,bmurdoch,kfarvis,pmoran,scurrie,
Eddie Corns,glc@ecsvax,TCW@geovax,Mark McIntosh,ghowat,dave@edgr,
SYSMAN@phyvax,sysman@ercvax,scott@cstvax,smharrower

==== ercm09/emas-a/x25/xpr1y.txt ====
,XPR1ÀÇ<À@ÿ@©]ÀÁÂȇ à$]&ˆ€PPȇ0Û]BA@
ˆ‡Q:¼\@BAAAAAÁEøÿˆŠÁe@BcÂEà ‡
‡h	ø\ˆ‡a¬\ˆ‡Â´\
ˆ‡µð\ˆ‡w]ˆ‡W \ÀÁàIóÀPSSE TOOFLES?????EDNETPSS  ?EPúÿùÿ·Á'PU&MDÅeÕÕÕß	]ÕÕÕß	]÷òÀžl÷Á”l÷•<‹7Š*kÀºÀß	$]÷ kkÁ‚Âß	X\
ÁÝôjWpÁe$Àß	X\Á‰Âß	X\ÃùjÃEøÿ÷Õj
ÂÝëj—tùÿÂEþ·Xj÷Üjêj
ÁÝÖjÁUÿw¶j
ÀÝÉjÀUÿ7¦j÷‹œj‡×­–jƒÀ@ß	PO÷‹‡j‡×­jƒÀAß	POÃjÃ`÷¶ÀJjß	DNÀß	UÀß	¬\ß	BPV7ŠfjÀºÀß	$]×½Zj€Ã>jÃEÿ
ÂÝHj ÷FjÀÂÀß	ÜT7
j7
Üiß	Bßß	P7
Ìiß	PEØ÷‹jXß	lJ÷‹‚‰Ð×­|‰SÀß	(@F×­j‰AÀß	(@=×­X‰?ß	”LÀ
ß	L1÷¥0>‰‚×­8‰9‚
ÃÝ.‰ÃeÐÿ÷ªi!×­ ‰NÀß	”\ß	 \×­
‰QÃÃízi÷vi×­ôˆWˆÃÃífi÷bi 7Š¿PWÞˆwúþ×­biH·
HiÃXió‹׬@Àß	POÃi.Âi‚`‚`ÂeÁ·|iÊ(i1Š
ÀÝiÀe2Ãèhƒ
ÃEÀÿ÷úhÃ-Òh	À1
ß	LÀß	(@÷ÞhÀhß	BwrþÀÜhß	¼A7
Ôhwbþ×­Êh+Èh÷•¾h÷¤h¹h÷®h”h7Š‘h÷¥h¢h÷†hhÃœhÕ0Õ8ÀÍÕ`ß	äOÄhó•0ÀºÀß	]wþÀ;
PXÁºÀß	LwôýÉ(@&f
DÅeÃH€~Àß	]þÿ÷<€Ã6€!
ÁÝF€WpÁe$Àß	X\Á°Âß	X\À×tÁÁe"Âß	X\ß	ÀYÀ
ß	LÀß	U×-þ÷äT7

==== ercm09/emas-a/x25/infopxy.txt ====
,INFPÐÊÐ	Ð
ÃÝÖœÃe±ÿ÷Ö|7ŠÊœà7È|7Æ|7ŠÃ|ü|-ÁiÆß	IÀÁ¬|ß	 FÁxÆß	IÀ
ñ CÝß	 FÁƒÆß	IÀ
Ý	ß	 FÁŽÆß	IÀ
Ýß	 Fß	tF×-^|FÀÁN|ß	ø@Â~Àß	¼IÃÆ|×tÁÁe°Àß	IÀß	LFÀ
Ýß	 FÃ|ôœ
4Šôœ4Š
À
ß	 FÀß	 F×-ê{ß	tFBÀØ{ß	(@÷Ô{w¼þ×-Ê{=þ{ÁÁeÂ~Àß	¼I×­ô{ƒ÷­í{ê{†Àß	LFÁ@„ DÀß	IÀ
ÁÝ×{ß	 Fß	tFÕ

ß	ÔA×-r{	Àf{ß	(@÷b{wJþÀT{ß	\@7
R{w:þ×-H{ÃB{ñwàþî×-4{×Ã({wþÀß	(@w
þ–:(@&fDÅeô•ôÚŸô•4Àeß	`I…„‡nƒ¢\@&f
DÅe0Š·
L€óF€	×-@€Zß	(@3ŠÀÀeß	pI
@ß	°HÀ×tÂeÁÁe°Àß	¼IÁ˜Æß	8Iß	dAþÿÁÀß	dAþÿÁÀß	dAÕþÿ
ß	ÔA…„‡>¤rø@&fUDÅeÁ&ñ‹#ƒÀ!4
-þÿüÿÂ`
Üm
tô
þÿìüÿÂ`Áe…„‡ÁÀ…„‡ÞšfdA&fÎåDÅeFÂeß	¼IþÿÂ

==== ercm09/emas-a/x25/infons.txt ====
%conststring (13) vsn = "infons....1a "
#datestring
#timestring

!********************************
!*  emas-2900  fep  info server *
!*   file: infos/infosy         *
!*  New Style                   *
!********************************


#options
! prep versions are:-
!
!   f = front ends (all of them)
!   c = Xcall
!   g = Xgate
!   t = fstore
!   a = Amdahl Feps
!   b = big buffer manager (also use i)
!   i = New compiler

==== ercm09/emas-a/x25/xprot3s.txt ====
! file:x25_XPROT3s
!      Service module for Big Buffer Manager using a DQS11 or KHV11
!
!*************************************************
!*                                               *
!*       PSS X-25 Level 2 Protocol Handler       *
!*                                               *
!*                   XPROT                       *
!*                                               *
!*        Version  3.15   7 Nov 1986             *
!*                                               *
!*************************************************

! Prep options
!
!  q  - dqs11 code
!  p  - dup11 code
!  k  - kv11  code
!  y  - Use a second xgate (for psse & small buffer version only)
!  b  - Use Big Buffer Manager
!  i  - New Imp Compiler

==== ercm09/emas-a/x25/infos.txt ====
%conststring (13) vsn = "infos....1a "
#datestring
#timestring

!********************************
!*  emas-2900  fep  info server  *
!*   file: infos/infosy       *
!*                              *
!********************************


#options
! prep versions are:-
!
!   f = front ends (all of them)
!   c = Xcall
!   g = Xgate
!   t = fstore
!   a = Amdahl Feps
!   b = big buffer manager (also use i)
!   i = New compiler

==== ercm09/emas-a/xx25_infoxy.txt ====
,INFO0Åð0Àÿ@©ÐA&MDÅe÷•èžÕÕÕß	ÈHt
ÕÕÕß	ÈHt
4ŠÀeß	H7~7Š~7~7Š~7~7Š~×-~ÁÀÀÂ@Àß	ÜHÁÇÀÂ@Àß	ÜHÃâ}Ãe0÷ä}ÁÀß	8HÁ@Àß	8Hß	`EÁÀß	8Hß	”EÁÎÀß	\@Àôß	ÔH4ŠÀeß	Hô‹Àôß	ÔH÷¥M|î‚×­vPê‚
ÃÝlÃe±ÿ÷h}7Š`ÏÐBà7X}7X}7ŠU}7P}7ŠM}ÃD},ÁÓÀß	8HÀÁ4}ß	@EÁâÀß	8HÀ
Ýß	@EÁíÀß	8HÀ
Ý	ß	@EÁøÀß	8HÀÁö|ß	@Eß	”Eô•	­KÕ

ß	Aô•	ÃÂ|Ãe÷¼|¶|2Š4

´


3Š€ÀÃ%
÷Á@ÀÂÀß	ÜH÷•	Ú|÷b<Ý|Ä|ÀÁR<ß	@Eß	”EÃl|Á€ÀÂÂeõrÐCß	ÜHÃX|ó•
ÕÕ
ß	Aw¤þ­×->|wþÕÕ&|
ß	Aw~þÀß	(@×-|wfþÕ

ß	AwVþ]:(@&fDÅeô•ôÚŸô•4Àeß	€H…„‡nd¶\@&
DÅeÂeß	ÜH­‚ó•ó”Ÿó•
3ŠÁeÂÂeß	ÜHÀÀeß	€H*ó•ó^Ÿ3ŠÀÀeß	¨Hó•óBŸó•
ó•ÂÁeÂeß	ÜHÀÀeß	€H„‡bBÀinfos....1a 15/08/8411.42.402972-02988-0INFOFrom Gate, fn=

==== ercm09/emas-a/xx25_xprot3s.txt ====
! file:x25_XPROT3s
!      Service module for Big Buffer Manager using a DQS11 or KHV11
!
!*************************************************
!*                                               *
!*       PSS X-25 Level 2 Protocol Handler       *
!*                                               *
!*                   XPROT                       *
!*                                               *
!*        Version  3.11  12 Sep 1986             *
!*                                               *
!*************************************************

! Prep options
!
!  q  - dqs11 code
!  p  - dup11 code
!  k  - kv11  code
!  y  - Use a second xgate (for psse & small buffer version only)
!  b  - Use Big Buffer Manager
!  i  - New Imp Compiler

==== ercm09/emas-a/cur#prof.txt ====
| Curlew profile file
| SW, 14/05/87
|
a-   | split line at CR
c+   | characters insert
d+   | expand tabs in buffer text
e-   | do not encode spaces to tabs (implemented?)
n+   | any-case-toggle on
s2   | extra space between sentences
v+   | automatic view
w80  | line width
y5   | scroll 5 lines

==== ercm09/emas-a/emasall.txt ====
<^PAclr
R100
<^M^M^M
>PAD
T30
<CALL emas-a^M
>User
<ERCM05^M
>Pass
<ednet1^M
0Comm
<USERS^M
3
>Comm
<edit fred^M
>Edit
<e^M
>Comm
<MAIL^M
6Mail
<Q^M

==== ercm09/emas-a/nodes.txt ====
{{circle(14,15,3);inlabel(.35,"KB CPSE@b")}}
{{inlabel(.2,"@b@b000015000000")}}
{{circle(14,4,3);inlabel(.35,"AT 1 CPSE@b")}}
{{inlabel(.2,"@b@b000016000000")}}
{{circle(2,15,2);inlabel(.2,"TelePAC 1@b")}}
{{inlabel(.14,"@b@b000015001000")}}
{{circle(7.9,12.5,2);inlabel(.2,"TelePAC 2")}}
{{inlabel(.14,"@b@b000015005000")}}
{{circle(2,4,2);inlabel(.2,"AT 2 CPSE@b")}}
{{inlabel(.14,"@b@b000016001000")}}
{{join(c1,c2);join(c1,c3);join(c1,c5)}}
{{join(c2,c3)}}
{{join(c3,c4)}}
{{box(.5,24)(4.5,26);inlabel(.2,"EMAS")}}
{{box(5.5,24)(9.5,26);inlabel(.2,"BUSH")}}
{{box(10.5,24)(14.5,26);inlabel(.2,"EMAS-A")}}
{{box(15.5,24)(19.5,26);inlabel(.2,"EMAS-B")}}
{{circle(1.5,23,.5)inlabel(.14,"Fe3")}}
{{circle(2.5,23,.5)inlabel(.14,"Fe1")}}
{{circle(3.5,23,.5)inlabel(.14,"Fe2")}}
{{circle(6,23,.5)inlabel(.14,"Fe4")}}

==== ercm09/emas-a/aber/runbat.txt ====
#
      echo 'directory' $cwd > $cwd.lis
      cp /******/teste.f prog3.f
      cp /******/symap.f prog2.f
      cp /******/testf.f prog1.f
      @ ncycles=0
      echo 'kill -9 '$$ >> /******/killerb
labl:
      date >> $cwd.lis
      time >> $cwd.lis
      @ ncycles++
      echo $cwd ' cycle number ' $ncycles >> $cwd.lis
      fort -O12 prog1.f >>& $cwd.lis
      a.out >> $cwd.lis
      fort -w prog2.f >>& $cwd.lis
      fort -O12 -V prog3.f >>& $cwd.lis
      a.out >> $cwd.lis
      rm testf.out
      goto labl


==== ercm09/emas-a/aber/testefor.txt ====
      PROGRAM teste
c     floating point, double precision arithmetic test
C     MAIN PROGRAM - EVALUATES INTEGRAL TO AN ACCURACY OF 8D
C                    INCREASING THE NUMBER OF STRIPS UNTIL REQUIRED
C                    ACCURACY IS REACHED
C               (A)  USING TRAPEZOIDAL RULE
C               (B)  USING SIMPSON'S RULE
C
      implicit double precision (a-h,o-z)
      character*18 type
C     (A)
C
      type='Trapezoidal Rule  '
      A=1.0
      B=2.2
C
      N=2
      ICOUNT=0
      WRITE(unit=6,fmt=103)type
   10 W=(B-A)/N
      ICOUNT=ICOUNT+1

==== ercm09/emas-a/aber/testbc.txt ====
/*sieveprimes.c*/
#include <stdio.h>
#include <math.h>
#define PRIMES 500
#define FALSE 0
#define TRUE 1
int main(void)
{
       int prime[PRIMES];
       int i, d;
       for(i = 2; i < PRIMES; i++)
            prime[i] = TRUE;
       for(d = 2; d <sqrt((double)PRIMES); d++)
            if(prime[d])
                for(i = d; i < PRIMES/d; i++)
                    prime[i*d] = FALSE;
       for(i = 2; i < PRIMES; i++)
            if(prime[i])
                printf("%d\n", i);
}


==== ercm09/emas-a/aber/runb.txt ====
#
# creates directories and initiates n batch jobs
      set noglob
      rm killerb
      echo 'number of jobs (1-5)?'
      set wjobs=$<
      if ($wjobs < 1 || $wjobs > 5) then
         @ wjobs=2
         echo 'default number of 2 taken'
      endif
      @ njob=0
jobs:
      @ njob++
      if ($njob > $wjobs) goto fin
      if (-e 'bat'$njob) rm -r 'bat$njob
      mkdir 'bat'$njob
      cd 'bat'$njob
      csh -f ../runbat &
      cd ..
      sleep 90
      goto jobs

==== ercm09/emas-a/aber/runi.txt ====
#
# creates directories and initiates n interactive jobs
      set noglob
      rm killer
      echo 'number of jobs (2-50)?'
      set wjobs=$<
      if ($wjobs < 2 || $wjobs > 50) then
         @ wjobs=5
         echo 'default number of 5 taken'
      endif
      @ njob=0
jobs:
      @ njob++
      if ($njob > $wjobs) goto fin
      if ($njob < 31) then
         if (-e 'dirna'$njob) rm -r 'dirna'$njob
         mkdir 'dirna'$njob
         cd 'dirna'$njob
         csh -f ../runcs.ednoad &
      else
         if (-e 'dir'$njob) rm -r 'dir'$njob

==== ercm09/emas-a/aber/testdfor.txt ====
      program testd
      do 2,i=1,10
      write (unit=6,fmt=100)i,i*i
    2 continue
  100 format(1x,i3,5x,i6)
      sop
      end



==== ercm09/emas-a/aber/runcs.txt ====
#
      echo 'directory' $cwd > $cwd.lis
      cp /******/liblst  liblst
      cp /******/my_lib  my_lib
      @ ncycles=0
      echo 'kill -9 '$$ >> /******/killer
labl:
      date >> $cwd.lis
      time >> $cwd.lis
      echo $cwd ' cycle number ' $ncycles >> $cwd.lis
      cp /******/testa.f prog1.f
      sleep 10
      fort prog1.f >>& $cwd.lis
      sleep 5
      ed - prog1.f << EOF >& /dev/null
1,4p
s/1000/750/
/999/
s/999/749/
+4
s/999/749/

==== ercm09/emas-a/aber/testffor.txt ====
      Program testf
c     This program fills and then accesses an array of 16M real 
c     values (64 Mbyte).  While filling the array it writes out
c     every 16th element to a file (final size 4 Mbyte).
c     The program is intended to force paging and I/O, and
c     not compare vectorised/non-vectorised performance,
c     safe optimisation but no automatic vectorisation
c     may be used.
      parameter (n=10,m=1600000)
      real a(m*n)
      integer ihist(n)
      open(unit=1,file='testf.out',form='unformatted')
      do 10,i=1,n
         do 20,j=1,m
            a(i*j)=sin(mod(real(j),3.141593))
   20    continue
         ihist(i)=0
         write(unit=1)(a(i*k),k=16,m,16)
   10 continue
c
      do 30,i=1,m*n

==== ercm09/emas-a/aber/testafor.txt ====
      program testa
c     character string manipulation test
      acter*32 ihold
      character*32 list(1000)
      list(50)='aabbccddeeffgghhiijjkkllmmnnoop '
      list(49)='abcdefghijklmnopqrstuvwxyzzzzzz '
      list(48)='bbccddeeffgghhiijjkkllmmnnooppq '
      list(47)='bcdefghijklmnopqrstuvwxyzabcdef '
      list(46)='ccddeeffgghhiijjkkllmmnnooppqqr '
      list(45)='cdefghijklmnopqrstuvwxyzabcedfg '
      list(44)='ddeeffgghhiijjkkllmmnnooppqqrrs '
      list(43)='defghijklmnopqrstuvwxyzabcdefgh '
      list(42)='eeffgghhiijjkkllmmnnooppqqrrsst '
      list(41)='efghijklmnopqrstuvwxyzabcdefghi '
      list(40)='ffgghhiijjkkllmmnnooppqqrrssttu '
      list(39)='fghijklmnopqrstuvwxyzabcdefghij '
      list(38)='gghhiijjkkllmmnnooppqqrrssttuuv '
      list(37)='ghijklmnopqrstuvwxyzabcdefghijk '
      list(36)='hhiijjkkllmmnnooppqqrrssttuuvvw '
      list(35)='hijklmnopqrstuvwxyzabcdefghijkl '
      list(34)='iijjkkllmmnnooppqqrrssttuuvvwwx '

==== ercm09/emas-a/aber/runcsna.txt ====
#
      echo 'directory' $cwd > $cwd.lis
      cp /******/liblst  liblst
      cp /******/my_lib  my_lib
      @ ncycles=0
      echo 'kill -9 '$$ >> /******/killer
labl:
      date >> $cwd.lis
      time >> $cwd.lis
      echo $cwd ' cycle number ' $ncycles >> $cwd.lis
      cp /******/testa.f prog1.f
      sleep 10
      fort prog1.f >>& $cwd.lis
      sleep 5
      ed - prog1.f << EOF >& /dev/null
1,4p
s/1000/750/
/999/
s/999/749/
+4
s/999/749/

==== ercm09/emas-a/aber/testcada.txt ====
WITH text_io, integer_text_io;
  USE text_io, integer_text_io;

--------------------------------------------------------------------

PROCEDURE rats IS
-- Simple test of rational_number routines

  TYPE rational IS
  RECORD
    numerator : integer;
    denominator:integer;
  END RECORD;

  a,b,c: rational;

--------------------------------------------------------------------

  PROCEDURE putrat (caption: string; ratval: rational) IS
  -- Prints caption followed by rational value
  BEGIN

==== ercm09/emas-a/b_ygatecalls.txt ====
      !************************************************************
      !* Function Values between Upper level and Gate
      !************************************************************
      %constinteger connect         =  1 ;! start a call up
      %constinteger accept call     =  2; ! accept a call
      %constinteger Disconnect      =  3; ! Stop a call, or reject a connect
      %constinteger Enable Input    =  4; ! Allow data, Gate -> Task
      %constinteger Put Output      =   5; ! Output Block, Gate -> Task
      %constinteger Enable Output   =   4; ! Allow Output, Task -> Gate
      %constinteger Input Here      =   5; ! Input Block,  Task -> Gate
      %constinteger Expedited       =   6; ! Pass 'Interrupts'
      %constinteger Reset           =   7; ! Reset the Virtual Circuit (!)
      %constinteger Datagram        =   8; ! Send a 'datagram'
      %constinteger Datagram Reply  =   9; ! Reply to a datagram

      %constinteger Enable Facility =  10; ! Claim incoming calls Task -> Gate
      %constinteger Disable Facility= 11; ! Stop them
      %constinteger Control data = 12;   ! control data in&out (xxx only)
%endoffile

==== ercm09/emas-a/bacg/compoff.txt ====

Computer Weekly and The Guardian (Thursday)
-------------------------------------------


Edinburgh Regional Computing Centre

University of Edinburgh

Computing Officer

Communications Group


A Computing Officer is required to work in the team which writes and 
supports the communications software for the extensive data network
of the University of Edinburgh.  This network includes X25 packet
switches and ethernets supporting 35 host systems and over 1500
asynchronous terminals.

Applicants should preferably hold an honours degree or equivalent in  

==== ercm09/emas-a/bacg/emlpn.txt ====
==== ercm09/emas-a/bacg/amdahl.txt ====
@make[report]
@majorheading[Amdahl]
@section[General]
Amdahl supply a wide range of X.25 equipment which can be put together to
provide extremely large networks.  The equipment is based on a multi-micro
processor architecture and although no store sizes are quoted it is stated
that the largest switch can handle 2000 simultaneous calls, expandable to
6000 calls.
@section[Hardware Description]
The main Amdahl switch, called the 4410 Network Processor is based on a
multi microprocessor design using Computer Automation microprocessors.
Each X.25 line (or pair of low speed lines) is controlled by an I/O Module
containing a CA micro and 64K bytes of local memory.  The I/O Module handles
all of both Level 1 and 2.  The I/O Modules are connected to a Data Movement
Processor.  The PLP has private memory for its code and access to 128K bytes
of public memory for buffers etc.  This entire unit is called an X.25
processor (XPRO) and the larges switch configuration contains three.  
There is a further Node Administrator, a CA mini, to control the parts 
and to handle all the details of call setup and cleardown.  
It is an unusual configuration as there is only
a small amount of global memory, with most of the memory (up to in excess of

==== ercm09/emas-a/bacg/cosprop.txt ====
The Edinburgh University Computing Service,
James Clerk Maxwell Building
The King's Buildings
Mayfield Road
Edinburgh
EH9 3JZ


COSINE SPECIFICATION PHASE

PROPOSAL FOR STUDY

TITLE: Migration from X.25(80) to X.25(84) in COSINE

The Computing Service proposes to perform the study on the Migration by the 
PTTs from X.25(1980) to X.25 (1984).

The person in overall control of the study would be Brian Gilmore and the actual
work would be carried out by George Howat and Bill Byers.

The  Edinburgh  University  Computing  Service  (formerly the Edinburgh Regional

==== ercm09/emas-a/bacg/agenda.txt ====

@make[report]
@flushleft{Edinburgh Regional Computing Centre
Edinburgh University}
@majorheading[Network Special Interest Group]
@heading[Calling Notice and Agenda]
You are invited to attend a meeting of @B{NETSIG} to be held on Wednesday
12th March 1986 in the Halls of Residence, University College, London.

The meeting will start at 10.30 a.m.
@majorheading{Agenda}
@begin[enumerate]
Minutes of the 11th meeting held on the 9th and 10th Sept 1985.

Matters Arising.

Proposal to set up a sug-group to monitor support issues.

Hardware and Software progress with PSE products.
@begin[enumerate]
Performance of 48 kb/links.

==== ercm09/emas-a/bacg/euronetlabs.txt ====

Address List!European Networkshop!!
Manfred Paul,!Techn Univ. Wien,!EDV-Xentrum, Abt! ProseBrechenanlage!GusshausstraBe 25,! A-1040 Wein,  AUSTRIA!!
Paul Van Binst!Univ. of Brussels (ULB),!CP 230-bd du Triomphe,!B-1050 Brussels!Belgium!!
Klaus Hansen!Datalogisk Institut!Copenhagen University!Sigurdsgrade 41!DK-2200 Kobenhavn N!Denmark!!
Peter Villemoes!Recku!Vermundsgrade 5!DK-2100 Kobenhavn O!Denmark!!
Jan Ekberg!Tec.Res.Centre of Finland!Telecom. Laboratory!Metallimiehenkuja 10!SP-02150 Espoo15!Finland!!
Jacques Prevost!DPhPE!CEN-Saclay!BP 2!F-91991 Gif-sur-Yvette Cedes!France!!
Klaus Ullmann!DFN!Pariser StraBe44!D-1000 Berlin!Germany!!
Christos Karaiskos!Ministry of Res.& Tech.!2 Ermou Str!10193 Athens!Greece!!
Michael E Walsh!Computer Centre!Univ. College Dublin!Belfield!Dublin 4!Ireland!!
Enzo Valente!Inst di Fisica G Marconi!Univ di Roma (INFN)!Piazzale Aldo Moro 2!I-00185!Italy!!
Barry Mahon!Euronet/Europ Bat Mkt.!    Dev.Grp!177 route d'Esch!L-1471 Luxenbourg!!
K A M Neggers!Universitair Rekencentrum!Katholieke Univ. Nijemegen!Postbus 9109!NL-6500 HB Nijmegen!!
Carel M. Stillebroer!James martin Assoc.!De Boelelaan 873!Ml 1082 RW Amsterdam!!
Alf Hansen, RUNIT!Ini. of Trondheim!Strinovn 2,N-7034!Trondheim-NTH! Norway!!
Francisco Ros!FUNESCO!Dept de Promocion Tecnol.!Paseo de la Castellana 83-85!Madrid 28046!Spain!!
Brigitta Carlson!Stockholm Univ.! Comp Centre-QZ!Linnegatan 89!P.O. Box 27322!S-102 54 Stockholm!!
Prof Jurgen harms!Univ de Geneve!Centre Univ.d'informatique!rue General Dufour 24!Ch-1204 Geneve!Switzerland!!
Peter Linington!JNT!Rutherford Appleton Lab.!Chilton, Didcot!Oxfordshire OX11 0QZ!!
Tomaz Karin!Inst Josef Stefan!Jarnova 39!61000 Ljubljana!Yugoslavia!!

==== ercm09/emas-a/bacg/enhance.txt ====
@make{report}
@device(x2700)
@flushleft[Edinburgh  Regional  Computing  Centre]
@Majorheading[Proposal to Enhance the Edinburgh University Network]
@subheading{Introduction}
In 1983 the Board funded the purchase of two large GEC Campus Packet
Switches (CPSEs) to form the nucleus of the Edinburgh University X.25 network thus
replacing the older RCO network.  This equipment enabled the University 
to connect up a total of 62 hosts, terminal concentrators and gateways,
including a link to JANET.

The Board will recall that one of the problems that Edinburgh University
faces is a split between two sites some two kilometres apart.  It was therefore
necessary to install two switches, one on the King's Buildings science campus 
site and the other located in the main University area in George Square.
@subheading{Current Network}
Since 1983, the University has funded the gradual enhancement of the two
main switches up to close to their potential maximum size.  In addition to
this, the University has also upgraded and extended the smaller GEC switch
which formed the pilot X.25 network.  All three switches are now close
to their permitted maximum number of connections.  A diagram showing the 

==== ercm09/emas-a/bacg/telepacrest.txt ====

@make[report]
@device[x2700]
@majorheading[TelePAC]
@heading[Restart Procedure]
The @B{TelePAC} can be restarted by simply pressing the @B['reset'] switch
on the front.

If it has crashed, it sometimes will not restart using the switch, in this
case the power should be switched off and on by pulling out the plug.

The @B{TelePAC} will use the stored configuration in its battery backed RAM.
If this fails it will automaticaly attempt to load a configuration from its
floppy disk.  The current configuration is on the floppy in the drive, there
is also a backup floppy disk.

Only if all this fails will it now be necessary to load a configuration by
typing it in at the console.


==== ercm09/emas-a/bacg/ecuc0485.txt ====


EDINBURGH REGIONAL COMPUTING CENTRE

For the attention of the Edinburgh Computer Users' Committee

                         Report on Communications

CPSEs

  KB CPSE 1

  There is still a disappointing rate of software crashes on this machine,
  currently about 1 per week.  GEC has given us new software which fixed
  some of the older faults but there has been a numbner of crashes all
  caused by the same fault.  GEC have promised a fix for this fault.

  AT CPSE

  There have been two software crashes since the previous report.


==== ercm09/emas-a/bacg/capex.txt ====


                         Capital Expenditure 1985/86
                         ---------------------------

1. Replacement for Info Machine

   This will replace the existing 11/34 with an 11/73 with hard
   disk + floppy for backup.  If this is not purchased, an 11/34
   will be needed instead for the extra Bush Fep.  Including BBC  
   + Colour Monitor.
                                       11/73 etc + X25 I/F + BBC   #13,811 (incl. VAT)

2. Extra 256Kb store board for the 11/44 that will be used for 
   the replacement Fstore machine.
                                                      256Kb Board     #862 (incl. VAT)

3. Three synchronous line drivers from Newcastle for the new Bush
   Feps and for the EMAS Ring Fep.
                                               3 Newcastle Boards   #3,450 (incl. VAT)


==== ercm09/emas-a/bacg/pads.txt ====


Known Differences between PADs and TCPs
---------------------------------------

a) Prompts
----------
     There is no way in the X29 protocol to support 'prompts' as we know
them on EMAS.   It is not specifically the PAD which stops their use but
the X29 protocol itself.

b) Screen Editing
-----------------
     From the work done by Duncan, it is obvious that SSMP will fit inside a
BBC Micro or other similar micros.   From this, it ought to be possible to
produce a reasonable screen editor for EMAS.  

     In addition, it would appear that a modified version of VECCE will run
on an Esprit on a PAD although work is required on the editor in EMAS to
recover all the functions.


==== ercm09/emas-a/bacg/pbxlan.txt ====


PBC/LAN Gateways
-----------------

     The current method of attaching multiple ports, which would normally be
for hosts, is to put an individual Data Interface Unit on the end of each 
link to the host (see fig n).  Even when this unit can be racked, as with
the Plessey exchange, this solution is hardly elegant.  Unless the exchange
is particularly flexible this leads to hard decisions being taken on the
maximum number of ports that can be allocated to a particular host along
with the corresponding setting up of the ??? groups.  The problem can be
partially alleviated by taking some of the connections via the interface
units on to a standard Packet Assembler Disassembler (PAD).  This PAD can
then be connected in the conventional manner to the local data network, be
it X25, Ethernet or Cambridge Ring.  In the Edinburgh case we have connected
a number of ???? on to a range of hosts and on to both ICL PADs (OSLUs) on
an Ethernet and JNT PADs on X25 (see fig n+1).  This 'solution' does lead to
problems with some users seeing a different user image and the problems of
overcrowding.  This particular solution has been done as an experiment to
test out the differing connections.

==== ercm09/emas-a/bacg/geclabs.txt ====

Customer Report Co-ordinator,!GEC Computers Ltd.,!Elstree Way,!Borehamwood,!Hertfordshire, WD6 1RX!!

Customer Report Co-ordinator,!GEC Computers Ltd.,!Elstree Way,!Borehamwood,!Hertfordshire, WD6 1RX!!

Customer Report Co-ordinator,!GEC Computers Ltd.,!Elstree Way,!Borehamwood,!Hertfordshire, WD6 1RX!!

Customer Report Co-ordinator,!GEC Computers Ltd.,!Elstree Way,!Borehamwood,!Hertfordshire, WD6 1RX!!

Customer Report Co-ordinator,!GEC Computers Ltd.,!Elstree Way,!Borehamwood,!Hertfordshire, WD6 1RX!!

Customer Report Co-ordinator,!GEC Computers Ltd.,!Elstree Way,!Borehamwood,!Hertfordshire, WD6 1RX!!

Customer Report Co-ordinator,!GEC Computers Ltd.,!Elstree Way,!Borehamwood,!Hertfordshire, WD6 1RX!!

Customer Report Co-ordinator,!GEC Computers Ltd.,!Elstree Way,!Borehamwood,!Hertfordshire, WD6 1RX!!

Customer Report Co-ordinator,!GEC Computers Ltd.,!Elstree Way,!Borehamwood,!Hertfordshire, WD6 1RX!!

Customer Report Co-ordinator,!GEC Computers Ltd.,!Elstree Way,!Borehamwood,!Hertfordshire, WD6 1RX!!


==== ercm09/emas-a/bacg/telepacuse.txt ====

@make[report]
@device[x2700]
@majorheading[TelePAC]
@heading(Using the System Console)
If the system console has been @B{'Logged off'}, then it is logged on by
typing:-
@Flushleft{@B[BE00(cr)]}
The prompt:-
@flushleft[@B{Welcome to the TelePAC, password:}]
is then output, and the password (currently BE00) should be typed in.  The
TelePAC should then prompt with:-
@flushleft(@B{BASE:})
To examine the switch stats type @B{STAT}, and to examine the status of a
line type:-
@flushleft[@b{PSxx STAT(cr) where xx is the line number}]
To log-off the console type:-
@flushleft{@U[QUIT(cr)]}

==== ercm09/emas-a/bacg/logdisc.txt ====

   
   
   
   
   
@h[GEC 4190 CPSE]
@h[Creating a Log Disc]

   
   @b[(N.B. Operator actions are underlined)]
   
   STORESIZE = 1024 KBYTES
   POWERUP COMPLETE
   CPU HALTED KEYS = 0000 RESET
   @b[*K15A0]
   KEYS = 15A0
   @b[*L2]
   CPU RUNNING KEYS = 15A0
   
   OS4000 Rel 4. 1 PSE Toolkit

==== ercm09/emas-a/bacg/ecuc0586.txt ====

@make[report]
@device[x2700]
@flushleft[For the attention of the E.C.U.C.]
@majorheading[Report on Communications]
The general level of the network service to users has been significantly 
better this term.
@paragraph[CPSEs]
For the first time ever, the main KB CPSE has run for a period of three
months with no unscheduled hardware or software breaks.  There were two
failures in the period caused by mains power outages.  Over the three
months the CPSE was taken out 4 times at lunchtime, twice to fix simple
line faults and twice to upgrade the software.

The second KB CPSE had two software crashes on the 14th march, otherwise no
faults in the 3 month period.  It has been taken briefly out of service in
the last few days to change network routing otherwise it has not been booked
out.

The Appleton Tower CPSE has not performed as well as the other two.  There
have been 8 hardware crashes and two software crashes over the period.

==== ercm09/emas-a/bacg/ecuc0587.txt ====
@device[x2700]
@make[report]
@flushleft[@B{EDINBURGH UNIVERSITY COMPUTING SERVICE}]
@flushleft[For the Attention of the E.C.U.C.]

@majorheading[Report on Communications]
@section[General]
The most significant event since the last meeting was the almost total loss of
power in the KB machine room.  Although we were able to bring up most of the
communication kit by patching to the remaining power this operation took a
couple of hours.
@Section[CPSE]
Since the January report
@begin[verbatim]
                   S/W       H/W                   S/W & H/W        Total
                 Crashes   Crashes  Environmental    MTBF            MTBF

KB  GEC 4190        0         1           2        127 days        42 days

AT  GEC 4190        1         1           0         63 days        63 days


==== ercm09/emas-a/bacg/euronw.txt ====

                ADDRESS LIST FOR EUROPEAN NETWORKSHOP
                -------------------------------------
AUSTRIA
-------
Manfred Paul,
Techn Universitat Wien,
EDV-Xentrum
Abt ProseBrechenanlage,
GusshausstraBe 25,
A-1040 Wein                     Telephone: +43 22 5601 3605
                                Telex    : 3222467 TUW

BELGIUM
-------
Paul Van Binst,
University of Brussels (ULB),
CP 230 - bd du Triomphe
B-1050 Brussels                 Telephone: +32 2 642 3211/3202 (Sec)
                                Telex    : 61051 vubco B
                          Electronic Mail: 'P Van Binst' @ QZCOM

==== ercm09/emas-a/bacg/ecuc1187.txt ====

@device[x2700]
@make[report]
@flushleft[@B{EDINBURGH UNIVERSITY COMPUTING SERVICE}]
@flushleft[For the Attention of the E.C.U.C.]
@majorheading[Report on Communications]
@Section[General]
@Section[CPSE]
For the past 3 months
@begin[verbatim]
                   S/W       H/W                   S/W & H/W        Total
                 Crashes   Crashes  Environmental    MTBF            MTBF

KB  GEC 4190        1         0           0         91 days        92 days

AT  GEC 4190        0         2           0         46 days        46 days

AT  GEC 4160        0         0           0        >92 days        >46 days
@end[verbatim]
The AT switch had 5 hours down time due to a disc fault.
@Subsection[TelePAC Switches]

==== ercm09/emas-a/bacg/futerm.txt ====

@h[Future Terminal Concentrators]


The ERCC is proposing to install @b[Camtec PADs] instead of new PDP 11
concentrators and start a conversion process which will mean that our
terminal handling protocol ITP will be replaced by the international
standard X29 (or the variant TS29) over a period of two to three years.  This
will bring us into line with other British Universities where the @b[Camtec]
@b[PAD] is widely used.

There are a number of reasons for making this change, connectability of
new hosts, cost, emerging standards for micros and the ability to connect
a @b[Camtec PAD] to a number of communications media.

@s[1. New Hosts]

As some users know only too well; when a new host is connected to the
network with standard X25 software, users on TCPs have to communicate through
a protocol converter @b[(XGate)] in order to communicate with the host.
This procedure is wasteful in resources, slow and complicated.  @b[XGate]

==== ercm09/emas-a/bacg/telepac2.txt ====
@make[report]
@device[x2700]
@majorheading[TelePAC]
@heading[To Set up a Base Password]
@begin[format]
1.  Check that MEM is set correctly (i.e. change if necessary).

       MEM: Reset/N @U{Return}
       MEM: Size/7380
       MEM: number of menu/1       @U[2]
       MEM: number of passwords/1  @U[3]
       MEM: X.25 addresses/1       @U[50]
       MEM: Billing records/1     @U[100]

2.  Set up 'port' BE00.

       BASE: @U{BE00}
       BE00(0):@U{CONF}
       BE00:Name:@U{BE00 Return}
       BE00(0) Options: GATE
       BE00(0) Resource Prio: 0 @U{Return}

==== ercm09/emas-a/bacg/annex2.txt ====
@make [Report]
@device(X2700)
@flushright[@B[Report Annex 2.]]
@subheading[CAMTEC Future Plans]
CAMTEC is planning a large switch consisting of switchpads interconnected
by either a dual Cambridge Ring or by 64 kb/s X.25 links.

This development will require Release 4 of the software, which is not due until
mid 1986.

Each switchpad could handle 16 X.25 links, with 8 of each running at 64 kb/s
and 8 at 19.2 kb/s.

It is suggested that for the 48 line version, each box is connected to all
of the other 3.  CAMTEC seem to think this configuration is preferable to
one which links the switches by Cambridge Ring.
@subheading[Budgetary Costs]
@begin[verbatim]
               48 lines (X.25 interconnected)    @T{#}40,000
               Plus cabinet                      @T{#} 1,500
                                                 -------

==== ercm09/emas-a/bacg/ptrfiles.txt ====
                                                                      @u[DRAFT]

@h[HANDLING PLOTTER FILES ON EDNET]


Notes of a meeting between Alec Nolan, Craig Stott and Brian Gilmore and
consequent discussions.

  1.  The problem is that it is not possible to move RCO plot files
      between EMAS and VMS or UNIX, or for the VAXs (ie both VMS and
      UNIX) to plot files on Calcomp type network plotters.

  2.  It is possible for the VAXs to plot on Hewlett Packard plotters
      (such as GP15) by FTPing an HPGL file to EMAS specifying an
      output device of 'GP15'.   In the future it should be possible
      for VMS systems to plot directly on GP15 etc using the Cranfield
      Package.
                                              @u[Action: B. Murdoch]

  3.  John Henshall is working on the transfer of binary files between
      EMAS and VAXs.   This is expected to be completed by about Xmas

==== ercm09/emas-a/bacg/cpseopins.txt ====
   
@h[Backing up the Operating System]
   
  @@b[(N.B. Operator actions are underlined)]
      
   STORESIZE = 1024 KBYTES
   POWERUP COMPLETE
   CPU HALTED KEYS = 0000 RESET
   @b[*K15A0]
   KEYS = 15A0
   @b[*L2]
   CPU RUNNING KEYS = 15A0
   
   OS4000 Rel 4. 1 PSE Toolkit
   Enter TIME HH MM [SS]
   Ready
   @b[DISC 0 VARI]
   Ready
   @b[TIME 13 06]
   Enter DATE DAY DD MTH YYYY
   Ready

==== ercm09/emas-a/bacg/blackbox.txt ====


@s(Edinburgh Regional Computing Centre)



@h(SERC BSC TO LAB-B CONVERTOR BOX)
@h(===============================)

@s(Introduction)

This document describes a @b("black-box") convertor that enables the connection
of IBM mainframes running the SERC X25 software on VM to connect to standard 
X25 hardware.   The requirement arises because a number of such systems in the
SERC and University communities are unable to support HDLC framed synchronous
communications lines.

@s(The Protocols)

The black box has two V24 synchronous communications ports.   One of
these operate to the LAP-B protocol as specified in part 2 of the PSS

==== ercm09/emas-a/bacg/pktswtch.txt ====
JANETS FILE

NAME MAX A B C D INFO
 
NAME AMDAHL
MAX 100
B #18K+#36K
C #112K

NAME BBN
MAX  64
INFO C30-#60-80K; C300-#80-100K

NAME BT
MAX  7
A #5605
INFO 16 Pte/s!

NAME CAMTEC
MAX 10(9.6)/10
A #2500/#5960

==== ercm09/emas-a/bacg/isotable.txt ====


---------------   ------------------   ------------------   ------------------
                                R G                  R G     
---------------                 E R                  E R     FTAM       X.400
                                D E                  D E    ------------------ 
---------------                   Y                    Y     PRES        PRES
                    X29        -----     X29        -----   ------------------ 
---------------                                              SES        SES 
                             BLUE                  BLUE     ------------------ 
---------------            ---------                         TRAN        TRAN 
                              YB                     
---------------    -----------------    ------------------  ------------------
                          X25 (1980)            X25 (1984)          X25 (1984)
---------------    -----------------    ------------------  ------------------
                        LAP-B                 LAP-B               LRP-B
---------------    -----------------    ------------------  ------------------
                        PHY                   PHY                 PYY
---------------    -----------------     -----------------   -----------------
                       Current            After network      Replacement of
                                          layer transition   upper level

==== ercm09/emas-a/bacg/reptget.txt ====


The group has responsibility for the maintenance of the software used for
the University Data network including the EMAS Front Ends.   In some cases,
particularly Gateways, Front Ends and other specialist network machines, the
group designs and builds the software.   In other machines such as PADs and 
CPSEs the group supports manufacturers software.

The group is also responsible for the technical planning of the network, which
includes discussion with the managers of the wide range of differing Hosts on
the network, to assist them in identifying any problems.   The group is
responsible for making recommendations to the Directorate on the long term
future of Edinburgh University networking.

The group co-ordinates with both Engineering Support and Operations in
identifying and solving the day to day problems in running a large network.

A varying number of the Communications Group are currently involved in the
OSLAN project team, see appendix  b.  Although some members of the project
team will return to the Communications Group after Easter, the maintenance of 
a proper network service to the users is being severely constrained by the

==== ercm09/emas-a/bacg/gec.txt ====

@make[report]
@majorheading[GEC]
@section[General]
In view of the position of GEC in the Academic Community, this report is an
update only.
@section[Hardware Description]
There are two major developments due for GEC switches, the MCC - megastream
controller card and the KCC - kilostream controller card.  Both cards use an
on-board M68000 as a processor.  The MCC is currently being field trialled
in METSATNET, the KCC should be field trialled in the first quarter of 1986.
In both the MCC and the KCC, all of both levels 1 and 2 of X.25 are handled
on the M68000 card.
@section[Software Description]
In order to increase the number of lines on a 4190 beyond 60, or to run either
the MCC or KCC, it will be necessary to run the Type 3 software.  This software
is under field trial currently, the first full release will be in the 1st
quarter of 1986.  This version will not include the 'JNT enhancements',
and should appear in the 2nd quarter of 1986.
@section[Configuration Options]
The first release of Type 3 will not allow a 100 line switch to be constructed.

==== ercm09/emas-a/bacg/survey2.txt ====
@flushright[@B[Report Annex 2.]]
@subheading[CAMTEC Future Plans]
CAMTEC is planning a large switch consisting of switchpads interconnected
by either a dual Cambridge Ring or by 64 kb/s X.25 links.

This development will require Release 4 of the software, which is not due
until mid 1986.

Each switchpad could handle 16 X.25 links, with 8 of each running at 64 kb/s
and 8 at 19.2 kb/s.

It is suggested that for the 48 line version, each box is connected to all
of the other 3.  CAMTEC seem to think this configuration is preferable to
one which links the switches by Cambridge Ring.
@subheading[Budgetary Costs]
@begin[verbatim]
               48 lines (X.25 interconnected)    @T{#}40,000
               Plus cabinet                      @T{#} 1,500
                                                 -------
                                                 @T{#}41,500
                                                 =======

==== ercm09/emas-a/bacg/licagree.txt ====

@make(report)
@device{x2700}
@majorheading[Program Licensing Agreement]
This Agreement made on _____________, 1985, by and between ERCC and
SATELCOM INTERNATIONAL ("LICENSEE"), a Corporation, with offices at 46,
Avenue d'Ivry 75013 Paris, France.

In consideration of the mutual covenants herein contained, the parties do
hereby agree as follows:
@section(DEFINITIONS)
@subsection( )
"Licensed Program" shall be each program in software or firmware form
specified in Schedula A to this Agreement including future additions thereto.
The term @B("Licensed Program") shall specifically include documentation and
related materials pertinent hereinafter furnished to Licensee by ERCC for
use in connection with a Licensed Program.
@subsection( )
"Use" shall mean the copying/duplicating of any portion of a Licensed Program
from storage units or media into equipment for processing or the utilization
of any Licensed Program in the course of the operation of Licensee's Equipment.

==== ercm09/emas-a/bacg/padsurvey.txt ====
@DEVICE(X2700)
@FLUSHLEFT(Edinburgh Regional Computing Centre
Communications Group)
@MAJORHEADING(PAD SURVEY)
@HEADING(1ST STAGE REPORT)
@FLUSHRIGHT(Brian Gilmore
March 1987)
@BEGIN(TEXT)
@UX(INTRODUCTION)

The aim of the 1st stage of the PAD survey was to identify those
manufacturers who produce a High Speed PAD.  A High Speed PAD is defined as one
that is capable of driving at least one X.25 link at a speed in excess of
19.2kb/s.  A selection has been made among the identified PADs to produce a
short list for the second stage of the survey.

@UX(THE SURVEY)

The following manufacturers were approached but do not market a discrete X.25
PAD product.
@BEGIN(FORMAT)

==== ercm09/emas-a/bacg/localnrs.txt ====
@make[report]
@device[x2700]
@flushleft[Edinburgh Regional Computing Centre

University of Edinburgh]
@majorheading[Proposal to Evaluate the Options for a Local Name Server]
@heading[Introduction]
ERCC proposes to carry out an investigation into the options open
when considering the construction of a local name server. The main areas
to be investigated include:-
@begin[itemize]
Functions to be included

Hardware Options

Software Options

Sizing details
@end[itemize]
At the end of the investigation, the ERCC would provide a report to the
JNT detailing the options and the recommended solutions.

==== ercm09/emas-a/bacg/phoutring.txt ====
@h[Phasing Out the Ring and Conversion to XXX]


@s[Phase 1. Creation of Additional X25 Ports]

An additional Camtec PAD (with an unmodified back plane) will be
connected to the @b[KB CPSE] and used as a switch.  In the first
instance at least four existing machines could be attached to this
PAD as the combined traffic is low.

          1. SIAE   RSX11  (line 30)
          2. Physics RSX11 (line 16)
          3. PRC Prime     (line 35)
          4. MRC VAX

It is important that they appear as the @u[same] network addresses
when connected to the PAD to avoid large changes to address tables.

          @u[Action:] Duncan Walker, Jim Leitch,
                  Callum Young, Derek Clyde.


==== ercm09/emas-a/bacg/x25survey1.txt ====
@make[report]
@device[x2700]
@flushleft[EDINBURGH REGIONAL COMPUTING CENTRE]
@flushleft[COMMUNICATIONS GROUP]
@majorheading[X.25 Packet Switch Survey]
@heading[1st Stage Report]
@section[General]
A total of twenty four manufacturers have been approached to determine what
X.25 packet switch equipment they sold and to do a brief examination into
whether the equipment would be suitable for use in the Academic Community.

Of particular interest were those manufacturers who could provide equipment
of greater connectivity and capacity than the existing GEC 4190 and those who sell very
small switches.
@section[Products]
The following systems we found to be currently marketed:
@begin[verbatim]
         Amdahl:       BBN:         BT:       Camtec:      DCA:
         Dynatech:     GEC:         IPAC:     Memotec:     Motorola:
         Northern Telecom:          Plessey:  SESA:        STC:
         Telefile:    Telematics:   Thorn-Ericsson.

==== ercm09/emas-a/bacg/x25survey2.txt ====
@make[report]
@device[x2700]
@flushleft[Edinburgh Regional Computing Centre

Communications Group]
@majorheading[X.25 Packet Switch Survey]
@heading[2nd Stage Report]
@Subheading[General]
After the conclusion of the first stage survey, it was agreed that 6 
companies be examined in more detail, they are Amdahl, Camtec, Dynatech, GEC,
Telefile and Telematics.

In view of the position of GEC and Camtec as existing suppliers in the Academic
Community, it was not considered necessary to examine their equipment to the
same depth as the rest.

Amdahl, GEC and Telematics are considered as suppliers for the high
connectivity and high throughput switch requirement while Camtec, Dynatech
and Telefile were considered for the small switch needs.

It should be noted that all costs are ex VAT

==== ercm09/emas-a/bacg/gecalvey.txt ====
@make[report]
@device[X2700]
@majorheading[
Proposal to the GEC/ALVEY Steering Comittee
to Acquire the Computer Board's Recommended
Protocols for use on SCMA/CD LANs]

@subheading[1. Introduction]
The ERCC  implemented ISO Transport Class 4 running over Logical Link Control -
LLC1 at a time before there was a firm recommendation on Ethernet protocols 
from JNT.  The Computer Board is now recommending a different set of protocols for use
on Ethernet and it is the intention of ERCC  to implement the Computer Board set of protocols as
a replacement for Class 4/LLC1.
@subheading[2.]
ERCC will develop and mount the OSI Network Service as defined in DIS 8348
using the X25 (1984) protocol as specified in DIS 8208 and the Logical Link
Control as specified in DIS 8802/3 Class II.  The detailed implementation
will correspond to the JNT recommendation as in -
                 @format[
                 Implemetation Details for Protocols on CSMA/CD Lans
                             JNT/CSMA/CD LAN (85)]

==== ercm09/emas-a/bacg/telefile.txt ====
@make[report]
@device[X2700]
@majorheading[Telefile]
@section[General]
Telefile is a small company (owned by a U.S. parent) producing a switch
called TelePAC.  This is a M68000-based switch using the standard VME bus.
The basic system has 128 Kbytes of store (soon to be expanded to 2 Mbytes).
It is claimed that 100 virtual calls can be supported.  TelePAC units will be
able to be joind together using a DMA interface.  This interface could also
be used to connect to a user-programmed processor supporting a UNIX-
compatible system for use as a Gateway or other such protocol converter.
STEEL Ltd., Livingston, now have the sole rights for sales in the
Academic Community.
@section[Hardware Description]
The Telepac is based on the standard VME bus with an 8 MHz M68000 processor.
A variety of card cages can be supplied which then dictates the maximum
configuration for that particular switch.  The software for the switch is
supplied on ROMs, a card containing 64 Kbytes of battary backed RAM is
used to contain the configuration and statistics.  The current switch
offering then adds further 64 Kbytes memory cards as desired.  A 2 Mbyte
memory board has been identified and will be offered in a standard switch

==== ercm09/emas-a/bacg/termly.txt ====

@make[report]
@device[x2700]
@majorheading[Communications Group]
@heading[Termly Report - October 1985]
@section[Personnel]
Eddie Corns and Mark McIntosh have joined the Communications Group, replacing
Duncan Walker and Ruth Holland.
@section[Ednet]
@paragraph[CPSEs]
The reliability of the CPSEs have increased, partly because of the decreased load
during the summer and partly due to a new release of the software, Type 2
Release 5, which has cleared most of the known faults which were causing
system crashes.

Although there are a number of spare lines on the Appleton Tower CPSE, both
the K.B. CPSEs have the maximum number of lines on the present hardware.
A Camtec Switch PAD was due to be delivered in September and in its absence,
a standard PAD is being used to switch a few lines.

The hardware is now present to increase the spread of the link between K.B.

==== ercm09/emas-a/bacg/paper.txt ====

@section[Conclusion]
It is evident that whilst the Gateway has been performing well there are
three main limitations on its use.  These limitations are the speed of the X.25
line, the resiliance of the X.25 link and the available CPU within the Gateway.

Although the line speed appears to be adequate for the user load on the
Gateway, section 4.1.4 indicates the problems associated with a speed
limitation of 9.6 kb/s.  A further consequence in the normal running of 
the Gateway is the blocking effect caused by this line speed.  With only
half of the maximum number of active users, the time spent in the queue
awaiting transmission on the X.25 link could be in the order of two to 
three seconds.  Such a delay being imposed by a Gateway, a supposedly
transparent part of the network, is unacceptable.

The current resiliance of the X.25 link causes serious problems in a
service X.25 network.  It is a frequent occurance for an X.25 link to be
broken for a few seconds, for line failures, a monitor to be inserted or
by patching errors.  The X.25 protocol was designed to recover from such
errors and consequently the current position whereby all calls are lost on
a momentary break is not acceptable.

==== ercm09/emas-a/bacg/letter.txt ====


Dear Colleague,

     At the workshop of representatives from  the European academic 
networking communities held on the 13th to the 15th may 1985, it was
decided to take a number of  initiatives to  foster inter-networking 
in  Europe.   One of these  initiations  was to  enable 'Full Screen 
Services' and  I have been asked to follow this up.

     I  am  writing  to  you  as  a named  'representative' of  your 
country/organisation to seek your views on the current position  and  
how it can  be progressed.  I am  including a full circulation  list   
with this letter and would  request that  you send  your response to 
all the people on the list to promote a genuine dialogue.

     There  are a number of problems  associated with handling  full
screen facilities across a  network.  The solution to these problems
is  not immediately  obvious  and there are advantages in attempting
to avoid major duplication in effort.


==== ercm09/emas-a/bacg/ethsup3.txt ====


Ethernet only support for EMAS 3
--------------------------------

There are two variations of this scheme.

       1. That all, or most, of the Ring TCPs are switched to Ethernet
          PADs.

       2. That all, or most, of the Ring TCPs are switched to X25
          PADs.

An overall assumption is also made that the EMAS 2 engine or engines are
supported on the ethernet.   If it/they are not, then increased X25
gateway traffic must be allowed for.


Scheme 1
--------


==== ercm09/emas-a/bacg/buresfs.txt ====
   
   
@heading[Restoring the System from a Back-up Disc]
   

@b[(N.B. Operator actions are underlined)]
   
   @b[K10A0]
   KEYS = 10A0
   @b[*L2]
   CPU RUNNING KEYS = 10A0
   
   OS4000 Rel 4. 1 PSE Toolkit
   Enter TIME HH MM [SS]
   Ready
   @b[DISC 1 VARI]
   Ready
   @b[TIME 17 16]
   Enter DATE DAY DD MTH YYYY
   Ready
   @b[DATE MON 25 JUL 1983]

==== ercm09/emas-a/bacg/configtele.txt ====
@make[report]
@device[X2700]
@majorheading[Configuring the TelePAC]
@section['log-in' to base by typing @U{BE00}]
@I{N.B.  Use upper case throughout and Backspace (ctrl+H) to rub out.}
@Section{You should get the prompt BASE:, the above sequence should also
be repeated after every BOOT of the system.}
@section[Configure the configuration memory size by typing:-]
@begin[verbatim]
         BASE: @U{MEM}
         MEM:  RESET/N @U{Y}
         MEM:  SIZE/XXXXX @U{31980}
         MEM:  NUMBER OF MENUS/1 @U{RETURN}
         MEM:  NUMBER OF PASSWORDS/1 @U{RETURN}
         MEM:  NUMBER OF X.25 ADDRESSES/32 @U{RETURN}
         MEM:  NUMBER OF BILLING RECORDS/1 @U{RETURN}
         BASE: @U{BOOT}
    this reboots the system setting up the configuration memory.
@end[verbatim]
@section[Configure in the Password 'file' at the Billing records]
@begin[verbatim]

==== ercm09/emas-a/bacg/ecuc0187.txt ====
@device[x2700]
@make[report]
@flushleft[For the attention of the E.C.U.C.]
@majorheading[Report on Communications]
@section[General]
The most significant change to the network since October has been the
phasing out of most of the TCPs.  There are now only 2 active TCPs left
and the total number of PADs has risen to 76.  Most of the transition
took place, as planned, over the Xmas vacation.
@section[Switches]
@subsection[GEC Switches]
Since the last report
@begin[verbatim]
                S/W        H/W                  S/W & H/W      Total
              Crashes    Crashes  Environmental   MTBF          MTBF
              -------    -------  -------------  -------        ----
KB GEC 4190      2          1            2        33 days      20 days

AT GEC 190       1          1            1        50 days      33 days

AT GEC 4160      5          1            1        17 days      14 days

==== ercm09/emas-a/bacg/telematics.txt ====

@make[report]
@device[x2700]
@majorheading[Telematics]
@section[General]
Telematics offer a range of X.25 networking products called the Net 25 Product
Family including concentrator switches, primary switches, backbone switches,
PADs and supervisory nodes.  The equipment is sold in the UK by Telematics and
also by ICL and other companies including IAL who sell it under their own label.
Telematics is certified for use on most public data networks.  
@section[Hardware Description]
The Net 25 switches are based on a proprietary 32 bit bus that is stated to
run at 32 Megabytes/sec.  
There are three models available, the P500, P1000 and P2000.  The main
difference being the number of processors used and the number of
slots available in the back plane.  The particular switch, constructed from
a P500, confgurations, described as Net 25/XXX are constructed from the appropriate
model.

The Net 25/100 switch consists of the bus and a
general purpose M68000 processor card, a memory controller and memory, either

==== ercm09/emas-a/bacg/question.txt ====

Please answer as many questions as possible -

1. Machine
----------
   No of GEC machines installed     4000 series   ________
                                    Packet Switch ________
                                    Series 63     ________
                                    Series 21/42  ________

     Do you keep a detailed record of the Reliability    YES/NO


2. If possible please give the following information for each machine used.
   If this is not possible then use aggregated figures.

   For the past year          Machine 1    2    3    4    5    6    7    8    9    10
   ------------------                 -    -    -    -    -    -    -    -    -    --

   Number of S/W Crashes


==== ercm09/emas-a/bacg/survey.txt ====
@make[report]
@flushleft[EDINBURGH REGIONAL COMPUTING CENTRE]
@flushleft[COMMUNICATIONS GROUP]
@majorheading[X.25 Packet Switch Survey]
@heading[1st Stage Report]
@section[General]
A total of twenty four manufacturers have been approached to determine what
X.25 packet switch equipment they sold and to do a brief examination into
whether the equipment would be suitable for use in the Academic Community.

Of particular interest was those manufacturers who could provide equipment
of greater connectivity than the existing GEC 4190 and those who sell very
small switches.
@section[Products]
The following systems we found to be currently marketed:
@begin[verbatim]
         Amdahl:       BBN:         BT:       Camtec:      DCA:
         Dynatech:     GEC:         IPAC:     Memotec:     Motorola:
         Northern Telecom:          Plessey:  SESA:        STC:
         Telefile:    Telematics:   Thorn-Ericsson.
@end[verbatim]

==== ercm09/emas-a/bacg/emlan.txt ====
@make[report]
@majorheading[EMLAN]
@flushleft[7.1 Comparisons with Existing EMAS Front Ends]
The differences noted earlier between the behaviour of EMAS X.25 FEPs and
EMLAN have caused a number of problems with, for example, programs like
screen editors. This could have been sorted but would have either required a 
number of changes in EMAS or completely repackaging the EMLAN output to
completely emulate an X.25 FEP.

Apart from the above, which has only effected a very small number of users,
the FEP has performed well and is regularly used by a number of users.  The
performance figures in the paper indicate a maximum throughput of about
6,000 character/sec which is very similar to the existimg X.25 FEPs.
@flushleft[7.2 Pros and Cons]
It does not appear that using a LAN for terminal access to EMAS provides any
benefits to users X.25 FEP.  The main reason for this is that 
it is very difficult to use large packets, especially with the current OSLUs,
and when the traffic is predominantly small packets, the extra
speed of a LAN over X.25 is not utilised.

It is unfortunate that there was not time to implement FTP as on X.25 the

==== ercm09/emas-a/bacg/netcom.txt ====

@make[report]
@device[x2700]
@majorheading[GEC-CUA Network Special Interest Group]
@heading{Minutes of the 12th meeting held during the CUA Convention
on the 9th and 10th September 1985}
@begin[verbatim]
   Present         Organisation               Interest

  D. Atkin        University of York          CPSE
  S. Bassill      GEC                           -
  G. Beemes       Travicom                    PSE + Net.Management
  P. Black        Queen's Univ. Belfast       CPSE
  P. Black        U.L.C.C.                    CPSE
  R. Brandwood    Rutherford & Appleton Lab.  CPSE
  P. Brett        GEC CL                      General
  P. Brown        GEC Avionics                General
  I. Campbell     University of Exeter        CPSE
  M. Capp         GEC CL                      General
  L. Clyne        J.N.T.
  J. Deegan       Bradford University         CPSE

==== ercm09/emas-a/bacg/capsub.txt ====



                              Capital Submission
                              ------------------

1.  X25 CPSEs
-------------
        
a)  DMA director on each switch to attach 2 Mb
            link cards.                                      2 x #6000   =   12,000

        b)  2 x 2 Mb link cards.                             2 x #2000   =    4,000

        c)  2 x 48K link cards for EMAS Feps.
            (N.B. less cost of existing interface)               #2000   =    2,000

        d)  Additional FMC on each switch to attach
            more low speed lines.                            2 x #5000   =   10,000

        e)  3 additional line cards.                         3 x #1500   =    4,500

==== ercm09/emas-a/bacg/x25saved.txt ====

@make[report]
@device[x2700]
@majorheading[X25 Campus Packet Switching Exchange (CPSE) Specification]
@paragraph[Control]
@begin[itemize]

change line speeds.
change Logical group assignments

change between DTE and DCE without the need of
a reload of the switch
@end[itemize]
@subheading[Configuration ]
@begin[verbatim]
PSE with 10 X25 connections  - 1 x 48 kbps, 9 x 9.6 kbps,
                               with 1 inter-network 
                               connection.
@end[verbatim]
@subheading[Minimum Performance]
@begin[verbatim]

==== ercm09/emas-a/bacg/emplan.txt ====
==== ercm09/emas-a/bacg/camtec.txt ====

@make[report]
@majorheading[Camtec]
@section[General]
In view of the position of CAMTEC as suppliers in the Academic Community
this report is in the form of an update only.
@section[Hardware Description]
The CAMTEC switch PAD contains a new board consisting of a M68000 processor,
1/4 megabyte store, 4 synchronous line interfaces and a Ring interface.
Either one or two of these boards can be combined with the Z80 processor
board and 128Kbytes of store found in a standard PAD.  It is expected that
eventually 4 M68000 boards could be used.

A CAMTEC Ring Switch consists of up to 6 Ring Gateways interconnected by a
dual Cambridge Ring.  In this configuration the line speed is constrained
to the 19.2Kb/s of the Ring Gateway.  The code in the Ring Gateway has
been modified so that X.25 packets can be carried across the Ring in a non
Ring-standard fashion.

There will be a further development that uses switch PADs interconnected by
Cambridge Ring but this will not be available before the summer of 1986.

==== ercm09/emas-a/bacg/filetrans.txt ====

@h[Proposal for a File Transfer Protocol Facility]

The ERCC is proposing to write a program for the ICL network Manager,
running on an Intel iRMX system, to implement a restricted version of
the @b['Blue Book'] Network Independent File Transfer protocol.

   @u[1. Restrictions]

      1.1  Only a @b['P'] end will be implemented, ie, the
           Network Manager can initiate calls to either
           'take' or 'give' a file but will not accept
           requests from another host.

      1.2  The subset of FTP implemented will be to the 
           standard of Appendix 3, ie, the Open Working Set.

  @u[2. Prerequisite]

      2.1  The ERCC will use as a basis the existing ICL file
           transfer program for the interface to Netskil 

==== ercm09/emas-a/bacg/geccua.txt ====
@make[report]
@device(x2700)
@majorheading[GEC-CUA Network Special Interest Group]
@heading[Minutes of the 13th meeting, held on the 12th March 1986
at the Halls of Residence, University College, London]
@tabclear
@tabset(1.5inch,4.5inch)
@begin[format]
@\Present@\Organisation
@end[format]
@Newpage
@section[Minutes of the 11th Meeting]
The minutes of the 11th meeting were circulated at the meeting.
@section[Matters Arising]
There were no matters arising.
@section[Proposal to set up a Sub-group to Monitor Support Issues]
Peter Halls, University of York, had proposed the setting up of a small
sub-group to monitor the progress of issues with GEC.  The proposal was
accepted by the meeting and the following members agreed.
@begin[verbatim]
           Brian Gilmore      -  Edinburgh University

==== ercm09/emas-a/bacg/ecuc0987.txt ====
@device[x2700]
@make[report]
@flushleft[@B{EDINBURGH UNIVERSITY COMPUTING SERVICE}]
@flushleft[For the Attention of the E.C.U.C.]
@majorheading[Report on Communications]
@section[General]
@section[CPSE]
For the past 3 months
@begin[verbatim]
                   S/W       H/W                   S/W & H/W        Total
                 Crashes   Crashes  Environmental    MTBF            MTBF

KB  GEC 4190        1         1           1         46 days        46 days

AT  GEC 4190        0         2           2         46 days        27 days

AT  GEC 4160        0         1           1         92 days        46 days
@end[verbatim]
Although the GEC switches are now more reliable than they used to be there is
still an unfortunate number of incidents on these switches.


==== ercm09/emas-a/bacg/x25switch.txt ====

@make[report]
@device[x2700]
@majorheading[X25 Campus Packet Switching Exchange (CPSE) Specification]
@section[Functional Modules]
A PSE can be considered as a number of functional modules which can be
grouped to fulfil a particular requirement.  These modules are:-
@begin[enumerate]
A virtual Call Packet Switch;

Access Units - to connect to X25 DTEs and DCEs;

Inter-Network Connections - to other X25 networks;

Network Management function.
@end[enumerate]
Each of the above-mentioned functions should be autonomous with well-defined
interfaces between them.
@subsection[Virtual Call Packet Switch]
The PSE will act as a multiple-call Data Circuit Terminating Equipment (DCE)
to packet-mode terminals and it will offer virtual call switching facilities

==== ercm09/emas-a/bacg/iunc.txt ====


@h{INTER-UNIVERSITY NETWORK COMMITTEE}

            @b[@u[Conference on Campus and Local Area Networking Choice]]
    @b[@u[University of Reading, Monday 23 September - Tuesday 24th September 1985]]

                        @u[Draft Programme]

 @b[@u[MONDAY, 23 SEPTEMBER]]

   11.30 onwards  Registration - St. Andrew's Hall

   12.30 - 13.45  Buffet Lunch

 @b[@u[First Session]] - Lecture Theatre LT4, London Road Site
                Chairman: Dr. P. Kemp, Secretary, IUCC

   14.15  Welcome                                      John Lindley,
                                                       Chairman, IUNC


==== ercm09/emas-a/bacg/dynatech.txt ====

@make[Report]
@device(x2700)
@Majorheading[DYNATECH]
@section[General]
Dynatech sell a range of X.25 equipment including PADs, switches and a
Gateway Address Translator and a Network Control Centre.  The switch is called
Multi Switch X.25 and has been certified for use with most of the public data
networks.
@section[Hardware Description]
The Multi Switch X.25 is based on a single 8 MHz 280 processor with 248 K
bytes RAM.  The basic switch consists of a box with power supply, a CPU
board and two trunk boards each capable of handling two lines.  A further
4 trunk boards can be installed in the box.
@section[Software Description]
280 assembler is used throughout.
@section[Configuration Options]
The Model 12 comes with 4 ports, a further 8 ports may be added in pairs.
@section[Line Speeds/Interface Options]
The following internal clock rates are supported:
@begin[verbatim]

==== ercm09/emas-a/bacg/iso.txt ====

@make[report]
@section[ISO Transition Plans (some brief comments)]
The ISO Transition Plans still correspond well with the outline given by
Peter Linington at Networkshop 1984.  However, since then the ISO Transition
Committee has been meeting and a major report will be available in the autumn
of this year.  An important feature in the transition is keeping in step
with the ISO transition in the rest of Europe.
@section[Current Position]
The transition will be handled in two distinct parts.
@begin[enumerate]
At the network Level (and below)
Upper levels
@end[enumerate]
@section[Network Level]
The intention is to switch from the current position of Yellow Book running over
X.25 (1980) to one of running just X.25 (1984) as the network layer (see fig 1).
This change is dependant on the timing of our PSE supplier, GEC, supplying the
relevant software.  GEC is unlikely to do this in advance of BT or PSS, who
may start providing the necessary facilities of X.25 1984 later next year.
We will not be able to change the entire Academic Community in one go, so there

==== ercm09/emas-a/bacg/pse.txt ====


              Questionaire for Desired PSE Enhancements
              -----------------------------------------

Please examine the detailed description of each enhancement on the seperate
sheets and then categorise the priority you attach to each enhancement on
the form below in the following way.

                         H  -  High Priority
                         M  -  Medium Priority
                         L  -  Low Priority
                         N  -  Not Interested

Attempt to distribute your priorities evenly, an answer of high priority for
everything will not tell us anything.

Please return the form to Mike Capp at GEC.

            PSE      Network      Network      
          Control    Control       Admin.      External     Other

==== ercm09/emas-a/bacg/screenser.txt ====

Dear Colleague,

                        Full Screen Service
                        -------------------
     I should like to thank those of you who replied to my earlier letter
and apologise for missing out the circulation list.  I am enclosing both
the list and a copy of all the replies that I have received to date with 
this letter.

     The situation in the UK Academic Community over the use of full screen
services is as follows:-

     Networked terminals are in very common use in our community, in a
     number of universities the majority of terminals are handled on a
     network, usually based on an X.25 packet switching but also using 
     Cambridge Rings and Ethernets.  In all of these networks Triple X
     (or a similar community variant to cross multiple networks) is used 
     and this obviously can impose a heavy load both on the network and 
     on the host machines when single character remote echoing is used, 
     particularly when screen editors are in use. 

==== ercm09/emas-a/rtms/l30apr87.txt ====
Performance run  -  27.apr.87   09.30 - 11.00 - emas-a, bush and emas

Channel 0,3,6,9   emas-a
        1,4,7     bush
        2,5,8     emas

                Log-on                  Users                Mail          Edit
C
C Channel      0      1      2      3      4      5      6      7      8      9
C Number     100    100    100    100    100    100    100    100    100    100
C Minimum    3.7    3.1    4.1    0.1    0.1    0.1    0.3    0.5    0.7    0.1
C Maximum    9.9    7.3    9.9    0.1    0.1    0.1    3.3    1.5    9.9    0.1
C Mean       4.7    4.3    6.7    0.1    0.1    0.1    1.1    0.8    1.7    0.1
C Median     4.3    3.9    6.3    0.1    0.1    0.1    0.9    0.7    1.3    0.1
C Std Dev    1.0    0.9    1.7    0.0    0.0    0.0    0.7    0.2    1.5    0.0
C
      0.2      0      0      0    100    100    100      0      0      0    100
      0.4      0      0      0      0      0      0     10      0      0      0
      0.6      0      0      0      0      0      0     18     25      0      0
      0.8      0      0      0      0      0      0     12     31      8      0
      1.0      0      0      0      0      0      0     18     28     25      0

==== ercm09/emas-a/rtms/e14aug87.txt ====
EMAS-A (88 users) and EMAS-B     14 Aug 87  1600 - 1700

0,1 logon a & b
3,4 users a & b
6,7 mail  a & b
C
C Channel      0      1      2      3      4      5      6      7      8      9
C Number      57     57      0     57     57      0     57     57      0     57
C Minimum    3.9    3.3    0.0    0.1    0.1    0.0    0.5    0.3    0.0    0.1
C Maximum    9.9    9.9    0.0    0.1    0.1    0.0    9.9    4.3    0.0    0.1
C Mean       7.2    5.4    0.0    0.1    0.1    0.0    1.7    0.7    0.0    0.1
C Median     7.1    5.5    0.0    0.1    0.1    0.0    1.3    0.5    0.0    0.1
C Std Dev    2.1    1.4    0.0    0.0    0.0    0.0    1.6    0.7    0.0    0.0
C
      0.2      0      0      0     57     57      0      0      0      0     57
      0.4      0      0      0      0      0      0      0     23      0      0
      0.6      0      0      0      0      0      0      1     16      0      0
      0.8      0      0      0      0      0      0      8      7      0      0
      1.0      0      0      0      0      0      0     11      1      0      0
      1.2      0      0      0      0      0      0      7      3      0      0
      1.4      0      0      0      0      0      0      6      1      0      0

==== ercm09/emas-a/rtms/l11may87b.txt ====
RTMS Run to ITSpna and ITS63a on 11 may 87 at 1700

0,1,2 - itspna logon,terminal and uptime
3,4   - its63a logon and uptime

C
C Channel      0      1      2      3      4      5      6      7      8      9
C Number      45     45     45     44     44      0      0      0      0      0
C Minimum    4.9    0.1    1.7    1.9    3.3    0.0    0.0    0.0    0.0    0.0
C Maximum    9.9    0.7    3.3    5.3    7.5    0.0    0.0    0.0    0.0    0.0
C Mean       5.2    0.3    2.0    2.7    4.1    0.0    0.0    0.0    0.0    0.0
C Median     5.1    0.3    1.9    2.3    3.5    0.0    0.0    0.0    0.0    0.0
C Std Dev    0.7    0.1    0.3    0.9    1.1    0.0    0.0    0.0    0.0    0.0
C
      0.2      0      8      0      0      0      0      0      0      0      0
      0.4      0     35      0      0      0      0      0      0      0      0
      0.6      0      1      0      0      0      0      0      0      0      0
      0.8      0      1      0      0      0      0      0      0      0      0
      1.0      0      0      0      0      0      0      0      0      0      0
      1.2      0      0      0      0      0      0      0      0      0      0
      1.4      0      0      0      0      0      0      0      0      0      0

==== ercm09/emas-a/rtms/e24apr87d.txt ====
Performance run  -  24.apr.87   15.30 - 17.00  Emas-a, bush and emas

Channel 0,3,6,9   emas-a
        1,4,7     bush
        2,5,8     emas

                Log-on                  Users                Mail          Edit
C
C Channel      0      1      2      3      4      5      6      7      8      9
C Number      66     66     60     66     66     60     66     66     60     66
C Minimum    3.7    3.3    5.9    0.1    0.1    0.1    0.5    0.5    1.3    0.1
C Maximum    9.9    9.9    9.9    0.1    0.1    0.1    3.9    2.1    9.9    0.1
C Mean       4.9    5.2    9.5    0.1    0.1    0.1    1.9    1.0    4.9    0.1
C Median     4.5    4.5    9.9    0.1    0.1    0.1    1.7    0.9    3.7    0.1
C Std Dev    1.2    1.8    0.9    0.0    0.0    0.0    0.8    0.4    2.8    0.0
C
      0.2      0      0      0     66     66     60      0      0      0     66
      0.4      0      0      0      0      0      0      0      0      0      0
      0.6      0      0      0      0      0      0      1      4      0      0
      0.8      0      0      0      0      0      0      5     24      0      0
      1.0      0      0      0      0      0      0      2     13      0      0

==== ercm09/emas-a/rtms/e11nov87.txt ====
Emas-a and emas-c   11 nov 87  1600-17.30  (100+ & ?? users)
C
C Channel      0      1      2      3      4      5      6      7      8      9
C Number      99     99      0     99     99      0     99     99      0     99
C Minimum    3.9    3.3    0.0    0.1    0.1    0.0    0.3    0.3    0.0    0.1
C Maximum    9.9    4.3    0.0    0.1    0.1    0.0    4.9    3.3    0.0    0.1
C Mean       6.9    3.5    0.0    0.1    0.1    0.0    1.3    0.4    0.0    0.1
C Median     6.7    3.5    0.0    0.1    0.1    0.0    1.1    0.3    0.0    0.1
C Std Dev    2.3    0.2    0.0    0.0    0.0    0.0    0.9    0.3    0.0    0.0
C
      0.2      0      0      0     99     99      0      0      0      0     99
      0.4      0      0      0      0      0      0      9     65      0      0
      0.6      0      0      0      0      0      0      5     11      0      0
      0.8      0      0      0      0      0      0     14     21      0      0
      1.0      0      0      0      0      0      0     17      1      0      0
      1.2      0      0      0      0      0      0     10      0      0      0
      1.4      0      0      0      0      0      0     14      0      0      0
      1.6      0      0      0      0      0      0      4      0      0      0
      1.8      0      0      0      0      0      0      6      0      0      0
      2.0      0      0      0      0      0      0      4      0      0      0
      2.2      0      0      0      0      0      0      4      0      0      0

==== ercm09/emas-a/rtms/l24apr87.txt ====
Performance run  -  24.apr.87   10.00 - 11.00

Channel 0,3,6,9   000015000043 - emas-a.fe1
        1,4,7     000015001006 - emas-a.fe3
        2,5,8     000015000048 - emas-a.fe2 (Development)

                Log-on                  Users                Mail          Edit
C
C Channel      0      1      2      3      4      5      6      7      8      9
C Number      52     52     52     52     52     52     52     52     52     52
C Minimum    3.9    3.9    3.9    0.1    0.1    0.1    0.7    0.5    0.7    0.1
C Maximum    5.7    5.5    9.9    0.1    0.1    0.1    2.9    2.9    3.5    0.1
C Mean       4.4    4.2    4.4    0.1    0.1    0.1    1.3    1.3    1.3    0.1
C Median     4.3    4.1    4.1    0.1    0.1    0.1    1.3    1.3    1.3    0.1
C Std Dev    0.4    0.4    1.0    0.0    0.0    0.0    0.5    0.4    0.4    0.0
C
      0.2      0      0      0     52     52     52      0      0      0     52
      0.4      0      0      0      0      0      0      0      0      0      0
      0.6      0      0      0      0      0      0      0      1      0      0
      0.8      0      0      0      0      0      0      5      3      6      0
      1.0      0      0      0      0      0      0      8     14      5      0

==== ercm09/emas-a/rtms/exeterlog.txt ====
Call Connect and Simple command timing tests  7 sep 87 1400-1530

Channel 0,5 - emas-b direct, call and users  (ts29 call)
        1,6 - via exeter,    ditto
        2,7 - via exter&manchester
        3,8 - via spider g/w at exter (xxx call)
        4,9 - via Manchester (ts29)

C
C Channel      0      1      2      3      4      5      6      7      8      9
C Number      61     61     61     61     61     61     61     61     61     61
C Minimum    0.3    1.5    1.9    0.7    1.1    0.1    0.5    0.5    0.5    0.3
C Maximum    0.9    2.1    2.7    1.3    1.7    0.3    0.9    0.9    0.9    0.7
C Mean       0.4    1.7    2.0    0.9    1.4    0.1    0.6    0.6    0.6    0.3
C Median     0.5    1.7    1.9    0.9    1.3    0.1    0.5    0.7    0.5    0.3
C Std Dev    0.1    0.2    0.2    0.1    0.1    0.0    0.1    0.1    0.1    0.1
C
      0.2      0      0      0      0      0     58      0      0      0      0
      0.4     20      0      0      0      0      3      0      0      0     49
      0.6     38      0      0      0      0      0     41     29     39     11
      0.8      2      0      0      9      0      0     19     27     18      1

==== ercm09/emas-a/rtms/l11may87.txt ====
RTMS Run - To its63a  11 may 87 at 1600

3 - time for login
4 - time for Uptime

C
C Channel      0      1      2      3      4      5      6      7      8      9
C Number       0      0      0     95     95      0      0      0      0      0
C Minimum    0.0    0.0    0.0    1.9    3.3    0.0    0.0    0.0    0.0    0.0
C Maximum    0.0    0.0    0.0    5.7    7.1    0.0    0.0    0.0    0.0    0.0
C Mean       0.0    0.0    0.0    2.7    4.0    0.0    0.0    0.0    0.0    0.0
C Median     0.0    0.0    0.0    2.3    3.5    0.0    0.0    0.0    0.0    0.0
C Std Dev    0.0    0.0    0.0    0.8    0.8    0.0    0.0    0.0    0.0    0.0
C
      2.0      0      0      0      3      0      0      0      0      0      0
      2.2      0      0      0     25      0      0      0      0      0      0
      2.4      0      0      0     22      0      0      0      0      0      0
      2.6      0      0      0      9      0      0      0      0      0      0
      2.8      0      0      0      1      0      0      0      0      0      0
      3.0      0      0      0      7      0      0      0      0      0      0
      3.2      0      0      0      8      0      0      0      0      0      0

==== ercm09/emas-a/rtms/e26may87.txt ====


Performance run  -  26.May.87    15.00-15.46   Emas-a, bush and emas

Channel 0,3,6,9   emas-a
        1,4,7     bush
        2,5,8     emas

                Log-on                  Users                Mail          Edit
C Channel      0      1      2      3      4      5      6      7      8      9
C Number      22     22     21     22     22     21     22     22     20     22
C Minimum    3.7    3.5    3.9    0.1    0.1    0.1    0.5    0.5    1.3    0.1
C Maximum    9.1    6.9    9.9    0.1    0.1    0.1    3.5    1.5    9.9    0.1
C Mean       5.3    4.7    8.0    0.1    0.1    0.1    1.5    0.9    3.5    0.1
C Median     4.3    4.5    8.9    0.1    0.1    0.1    1.3    0.9    2.7    0.1
C Std Dev    1.7    0.9    2.2    0.0    0.0    0.0    0.8    0.3    2.5    0.0
C
      0.2      0      0      0     22     22     21      0      0      0     22
      0.4      0      0      0      0      0      0      0      0      0      0
      0.6      0      0      0      0      0      0      1      1      0      0
      0.8      0      0      0      0      0      0      3      7      0      0

==== ercm09/emas-a/rtms/e09jun87.txt ====


Performance run  -  09 Jun 87    14.00-15.20   Emas-a, bush and emas

Channel 0,3,6,9   emas-a
        1,4,7     bush
        2,5,8     emas

                    Log-on               Users                Mail          Edit
C
C Channel      0      1      2      3      4      5      6      7      8      9
C Number      84     73     70     84     73     70     84     73     70     84
C Minimum    3.7    3.5    4.3    0.1    0.1    0.1    0.3    0.7    0.7    0.1
C Maximum    9.9    7.1    9.9    0.1    0.1    0.1    3.3    2.3    9.9    0.1
C Mean       4.8    4.1    8.4    0.1    0.1    0.1    0.6    1.2    3.7    0.1
C Median     4.3    3.9    9.7    0.1    0.1    0.1    0.3    1.1    2.9    0.1
C Std Dev    1.1    0.8    1.8    0.0    0.0    0.0    0.4    0.4    2.6    0.0
C
      0.2      0      0      0     84     73     70      0      0      0     84
      0.4      0      0      0      0      0      0     42      0      0      0
      0.6      0      0      0      0      0      0     18      0      0      0

==== ercm09/emas-a/rtms/l12may87.txt ====

RTMS run - itspna and its63a  12 May 87 11.30-12.15

Channel 0,1,2,3 - itspna Time for login,terminal,uptime and pwd
        4,5,6   - its63a Time for login, uptime and pwd

C
C Channel      0      1      2      3      4      5      6      7      8      9
C Number      44     44     44     44     44     44     44      0      0      0
C Minimum    5.3    0.1    2.1    0.5    1.9    3.3    0.3    0.0    0.0    0.0
C Maximum    9.9    1.9    6.5    3.5    4.7    8.3    0.9    0.0    0.0    0.0
C Mean       7.3    0.5    3.7    1.0    2.7    4.1    0.5    0.0    0.0    0.0
C Median     7.3    0.5    3.5    0.9    2.5    3.7    0.5    0.0    0.0    0.0
C Std Dev    1.5    0.3    1.1    0.6    0.7    1.1    0.2    0.0    0.0    0.0
C
      0.2      0      1      0      0      0      0      0      0      0      0
      0.4      0     18      0      0      0      0      9      0      0      0
      0.6      0     11      0      5      0      0     19      0      0      0
      0.8      0      8      0     16      0      0     14      0      0      0
      1.0      0      4      0     12      0      0      2      0      0      0
      1.2      0      0      0      3      0      0      0      0      0      0

==== ercm09/emas-a/rtms/l1may.txt ====
Log 1 may 87 - to itspna

Channel 1 - login in
        2 - terminal type
        3 - uptime

C Channel      0      1      2      3      4      5      6      7      8      9
C Number      39     39     39      0      0      0      0      0      0      0
C Minimum    6.3    0.1    1.7    0.0    0.0    0.0    0.0    0.0    0.0    0.0
C Maximum    8.5    2.1    4.1    0.0    0.0    0.0    0.0    0.0    0.0    0.0
C Mean       6.9    0.4    2.3    0.0    0.0    0.0    0.0    0.0    0.0    0.0
C Median     6.5    0.3    2.1    0.0    0.0    0.0    0.0    0.0    0.0    0.0
C Std Dev    0.6    0.3    0.5    0.0    0.0    0.0    0.0    0.0    0.0    0.0
C
      0.2      0      2      0      0      0      0      0      0      0      0
      0.4      0     27      0      0      0      0      0      0      0      0
      0.6      0      3      0      0      0      0      0      0      0      0
      0.8      0      4      0      0      0      0      0      0      0      0
      1.0      0      1      0      0      0      0      0      0      0      0
      1.2      0      1      0      0      0      0      0      0      0      0
      1.4      0      0      0      0      0      0      0      0      0      0

==== ercm09/emas-a/rtms/spider.txt ====
<^m^m^m^PAclr
R100
<^M^M^M
>Eth
T999
<CALL gate^m
2Enter
<000060599004^m
0***
<eloop^m
1***
<000015001030^m
2Enter
<eloop^m
3Enter
<000060599004^m
0***
<eloop^m
1***
<000015001030^m
2Enter

==== ercm09/emas-a/rtms/l24apr87b.txt ====
Performance run  -  24.apr.87   11.00 - 11.30 - Via Manchester

Channel 0,3,6,9   000010000001.000015000043 - emas-a.fe1
        1,4,7     000010000001.000015000043 - emas-a.fe3
        2,5,8     000010000001.000015001006 - emas-a.fe2 (Development)

                Log-on                  Users                Mail          Edit
C
C Channel      0      1      2      3      4      5      6      7      8      9
C Number      15     15     15     15     15     15     15     15     15     15
C Minimum    4.1    4.6    4.7    0.1    0.1    0.1    0.7    0.8    0.8    0.1
C Maximum    5.0    5.0    5.0    0.1    0.1    0.1    2.2    4.2    4.8    0.1
C Mean       4.5    4.9    4.9    0.1    0.1    0.1    1.1    1.4    1.8    0.1
C Median     4.5    5.0    5.0    0.1    0.1    0.1    1.0    1.1    1.1    0.1
C Std Dev    0.3    0.1    0.1    0.0    0.0    0.0    0.5    0.9    1.2    0.0
C
      0.1      0      0      0     15     15     15      0      0      0     15
      0.2      0      0      0      0      0      0      0      0      0      0
      0.3      0      0      0      0      0      0      0      0      0      0
      0.4      0      0      0      0      0      0      0      0      0      0
      0.5      0      0      0      0      0      0      0      0      0      0

==== ercm09/emas-a/ssmp/softtyp.txt ====
 { Start of file SOFT.TYP }
 
 character  = byte;
 coltype    = 0..maxcol;
 rowtype    = 0..maxrow;
 string10   = packed array [1..10] of char;
 string20   = packed array [1..20] of char;
 string30   = packed array [1..30] of char;
 string80   = packed array [1..80] of char;
 ZEUStype = (typeSOFT, typeISO6429, typeSSMP, typeSETUP, 
             typeEXIT, typeTEK);
 
 { End of file SOFT.TYP }

==== ercm09/emas-a/ssmp/exts.txt ====
 { EXTERNAL procedure definitions }
 procedure reset; EXTERNAL;   {FAWN}
 procedure resetparms; EXTERNAL;
 procedure default(p1, p2: integer); EXTERNAL;
 procedure logparm; EXTERNAL;
 procedure nexttab; EXTERNAL;
 function max(a, b : integer) : integer; EXTERNAL;
 function min(a, b : integer) : integer; EXTERNAL;
 procedure answerback; EXTERNAL;
 procedure selectg(n : integer); EXTERNAL;
 procedure setmode; EXTERNAL;
 procedure resetmode; EXTERNAL;
 procedure TX(c : character); EXTERNAL;
 procedure TXC(c : character); EXTERNAL;
 procedure ISOfsm(c : character); EXTERNAL; 
 procedure ISO6429; EXTERNAL;     { NB uses global termtype and ISOstate }
   { EXTERNAL procedures }
 { procedure ZSLIGHTS; EXTERNAL;                EXTERNAL; }         {FAWN}
 function bump(k : byte) : byte; EXTERNAL;
 { *********** PROCEDURES SHARED WITH OTHER MODULES ************* }
 procedure psetmode(element, value : smallint); EXTERNAL;

==== ercm09/emas-a/ssmp/driversext.txt ====
$CONTINUE WITH MDRV:Z.EXT  RETURN
$CONTINUE WITH MDRV:ZK.EXT RETURN
$CONTINUE WITH MDRV:ZL.EXT RETURN
$CONTINUE WITH MDRV:ZS.EXT RETURN

==== ercm09/emas-a/ssmp/isotyp.txt ====
   highlight  = DEFAULTREND..CROSSEDOUT;

==== ercm09/emas-a/ssmp/padpas.txt ====
 segment padpart;
 
 
 const
    {$I ISO.CST  } 
    {$I SOFT.CST } 
    {$I SSMP.CST }
 
 type
    {$I ISO.TYP }
    {$I HARDWARE.TYP } 
    {$I SOFT.TYP }
    {$I SSMP.TYP }
 
 
 {$I DRIVERS.EXT }
 {$I SOFT2.EXT }
 
 
 function linegetc(var c : character) : boolean;
 var loop : word;

==== ercm09/emas-a/ssmp/softpas.txt ====
 
 segment SOFTemulator;
 
 const
    { $I MACHINE.CST 2.0A-}
    {$I ISO.CST  }
    {$I SOFT.CST } 
    {$I SSMP.CST }
 
 userline  = 22;    { Line on which user's keystrokes are echoed       } 
 splitline = 17;    { Line between current screen and scrolling buffer }
 splitchar = 45;    { Character displayed for splitline                } 
 msgline   = 23;    { Messages for paused, escape and insert mode here }
 sbufflen  = 16383; { Length of scrolling buffer in characters         }
 pagesize  = 20;    { Page size for auto-pausing                       }
 maxreplay = 5;     { Maximum number of old lines for replay - 1       } 
  
 type
    {$I ISO.TYP }
    {$I HARDWARE.TYP }
    {$I SOFT.TYP }

==== ercm09/emas-a/ssmp/ssmpcst.txt ====
 { Start of file SSMP.CST }
 
 SSMPleadin = CTRLK;
 cKINTHOST  = EXCLAM;
 cKSUSPEND  = GREATER;
 cKRESTART  = QUESTION;
 
 maxnest       = 64;
 fieldlimit    = 95;
 optinsert     = 10;      { number of characters inserted before sending }
 
 PRINTIT       = QUESTION;
 DISPLAY       = SHARP;
 CHECK         = GRAVE;
 INVISIBLE     = BLANK;
 ENCODED       = COLON;
 SEPARATOR     = COMMA;
 ENDCMD        = SEMICOL; 
 COMMAND       = EQUALS; 
 fwdlen        = 60;
 

==== ercm09/emas-a/ssmp/iso6429pas.txt ====
 segment ISO6429emulator;
 
 const
    maxparm   = 4;
    errorchar = 168;
    maxleadin = 5;
 
    exitcode  = 128;
    upcode    = 129;
    downcode  = 130;
    rightcode = 131;
    leftcode  = 132; 
    
    {$I ISO.CST  }
    {$I SOFT.CST }
    {$I SSMP.CST }
 
 type
    {$I ISO.TYP }
    {$I HARDWARE.TYP }
    {$I SOFT.TYP }

==== ercm09/emas-a/ssmp/driverspas.txt ====
segment drivers;
const
    {$I iso.cst}
    {$I soft.cst}
    cnorm   = 'q';
    cinv    = 'p';
    cunder  = 'r';
    cxunder = 'u';
    xesc    = 27;

type
    {$I pcw.typ}
    {$I iso.typ}
    {$I soft.typ}
    
    scrf = ARRAY[0..80, 0..25] of byte;

var
    zcol, zrow: byte;
    nat, sin, sout: text;
    cesc, curr_s: char;

==== ercm09/emas-a/ssmp/softcst.txt ====
 { Start of file SOFT.CST }     
 
 maxcol = 79;
 maxrow = 23;
 
 { End of file SOFT.CST }

==== ercm09/emas-a/ssmp/soft2pas.txt ====
 program soft2; 
 
 { 2.0A 11/8/86                                                               }
 {  Full screen save to scrolling buffer - control characters now mapped      }
 {  to grave hex 60.                                                          }
 {  Bug fix to CTRLN from user line - theuser now set false before keystrokes }
 {  echoed to SOFTfsm.                                                        }
 {  ZSLOOP set from DOS time routine so only one version for IBM PCs          }
 
 { 2.0-B 17 Nov 1986 see CL40:SOFT-2.0-B                                      }
 
 const
    {$I ISO.CST  } 
    {$I SOFT.CST } 
    {$I SSMP.CST }
 
    { WARNING -- the following eight strings extend beyond column 80 } 
    titlemsg = '                           SOFT 2.2   ::                                        '; {2.0E}
    copymsg  = '       Copyright (C) 1987, The University of Newcastle upon Tyne, England       '; {2.0B+}
    blankmsg = '                                                                                ';
    help1msg = ' To enter terminal mode :         ESC "0"  (or RETURN)                          ';

==== ercm09/emas-a/ssmp/index.txt ====
 ACCESS.EXE         Program ACCESS: MSDOS File Attribute Program.
 APCFUNCT.KEY       Function Key Profile for SOFT on the NEC APC.
 APRSPEED.EXE       Speed program for Apricot.
 BNCH.PAS           PCW Pascal benchmarks and simple disk benchmark.
 CAPSLOCK.COM       What Micro Toolkit utility to set CAPSLOCK ON/OFF (IBM PC)
 CHOOSE.DOC         Program CHOOSE for MSDOS - documentation.
 CHOOSE.EXE         Program CHOOSE for MSDOS.
 CLEAN.EXE          Program CLEAN for MSDOS.
 COMBINE.EXE        Program to combine lines of text wrapped by an editor
 COMBINE.PAS        Pro Pascal source for COMBINE.EXE
 COUNT.EXE          Program to count the number of lines, words, chars
 COUNT.PAS          Pro Pascal source for COUNT.EXE
 DUMP.EXE           Hexadecimal file dump program.
 DUMP.PAS           Source for hexadecimal file dump program - ProPascal
 EE20.EXE           SC version 2.00 for IBM PC.
 EE60.EXE           SC version 2.00 for RM Nimbus.
 EE70.EXE           SC version 2.00 for Amstrad PC.
 EXT.EXE            Program to generate .EXT file from Pascal source
 E10.EXE            SC for NEC APC.
 E20.EXE            SC for IBM PC.
 E50.EXE            SC for Apricot.

==== ercm09/emas-a/ssmp/isocst.txt ====
 { Start of file ISO.CST }
 
 { ISO/646 character set definitions }
 NUL   = 0;      BLANK    = 32;       ATSIGN = 64;         GRAVE = 96; 
 CTRLA = 1;      EXCLAM   = 33;       CAPA = 65;           LETA  = 97;
 CTRLB = 2;      DQUOTE   = 34;       CAPB = 66;           LETB  = 98;
 CTRLC = 3;      SHARP    = 35;       CAPC = 67;           LETC  = 99;
 CTRLD = 4;      DOLLAR   = 36;       CAPD = 68;           LETD  = 100;
 CTRLE = 5;      PERCENT  = 37;       CAPE = 69;           LETE  = 101;
 CTRLF = 6;      AMPER    = 38;       CAPF = 70;           LETF  = 102;
 CTRLG = 7;      SQUOTE   = 39;       CAPG = 71;           LETG  = 103;
 CTRLH = 8;      LPAREN   = 40;       CAPH = 72;           LETH  = 104;
 CTRLI = 9;      RPAREN   = 41;       CAPI = 73;           LETI  = 105;
 CTRLJ = 10;     STAR     = 42;       CAPJ = 74;           LETJ  = 106;
 CTRLK = 11;     PLUS     = 43;       CAPK = 75;           LETK  = 107;
 CTRLL = 12;     COMMA    = 44;       CAPL = 76;           LETL  = 108;
 CTRLM = 13;     MINUS    = 45;       CAPM = 77;           LETM  = 109;
 CTRLN = 14;     PERIOD   = 46;       CAPN = 78;           LETN  = 110;
 CTRLO = 15;     SLASH    = 47;       CAPO = 79;           LETO  = 111;
 CTRLP = 16;     DIG0     = 48;       CAPP = 80;           LETP  = 112;
 CTRLQ = 17;     DIG1     = 49;       CAPQ = 81;           LETQ  = 113;

==== ercm09/emas-a/ssmp/ddrivers.txt ====
1                  Newcastle Microcomputer Support Group
                   =====================================
 
               Device Drivers for Recommended Microcomputers
               =============================================
 
                         Version 2 - February 1987
                         =========================
 
 
  1. Introduction.
 
  2. Implementation and Distribution.
 
  3. Examples.
 
  4. Screen Routines.
 
  5. Line Routines.
 
  6. Keyboard Routines.

==== ercm09/emas-a/ssmp/ssmptyp.txt ====
 { Start of file SSMP.TYP }
 
 status   = (terminal,host);
 smallint  = 0..255;
 
 SSMPtype = smallint;
 modetype = (fwdtype,chrtype,xytype,deltype,instype,eratype,ctrtype,
             insline,delline,fldtype);
 timertype= (off,on);
 
 modeindex = 0..37;
 fieldindex = 0..fieldlimit;
 savedfield = record
                 fldtop,  fldbottom : rowtype;
                 fldleft, fldright  : coltype
              end;
 tabstop = (notab,tabset);
 chrow   = array [0..maxcol] of character;
 garow   = array [0..maxcol] of highlight; 
 
 exittype = (MSGDISPLAY, SUSPEND, NORMAL);

==== ercm09/emas-a/ssmp/driverscst.txt ====
$CONTINUE WITH MDRV:ISO.CST     RETURN

==== ercm09/emas-a/ssmp/info.txt ====
 
 There  *will*  be  problems  porting  SOFT/SSMP  to  the PCW!  I can't
 understand their reluctance to give you the source code, however.  You
 can pick up brand new up to date copies from my id at NCL.MTS which is
 CL57.  The files you  want  are  CL57:SOFT2.PAS,  SOFT.PAS,  SSMP.PAS,
 ISO6429.PAS  and  PAD.PAS  These comprise all the 'program' parts.  On
 top of these you will need to build some IO drivers (things like ZSCLR
 to clear the screen and ZKPROG to program function keys etc).
 
 Your problems with porting it will be twofold :
 
 1)   Writing  the  IO drivers (you will need interrupt driven code for
      the comms line).  The NCL.MTS id.  MDRV contains  information  on
      all our drivers; the file to start with is MDRV:INFO
 
 2)   The  code  size  of  this program is enormous (in 64K Z80 terms).
      You will have to  cut  the  program  down  to  size,  perhaps  by
      dropping SOFT and just having ISO6429 and SSMP; even then you may

==== ercm09/emas-a/ssmp/ssmppas.txt ====
 segment SSMPemulator;
 
 const
 
    {$I ISO.CST }
    {$I SOFT.CST }
    {$I SSMP.CST }
 
 type
    {$I ISO.TYP }
    {$I HARDWARE.TYP }
    {$I SOFT.TYP }
    {$I SSMP.TYP }
 
 var
    SSMPst : SSMPtype;    { used by SSMPfsm and SSMP  }
    SSMPstream, SSMPasmp : boolean;     { used by SSMP              }
    table, elbat     : array [smallint] of smallint;   
    mask             : array [smallint] of boolean;
 
    boxleft, boxright : coltype;

==== ercm09/emas-a/ssmp/didoc.txt ====
 
 
           Notes for implementors of drivers
           ---------------------------------
 
 Before  recompiling  source  files, new EXT files should be generated.
 This reduces the chances of cross-module confusion.
 
 When  recompiling all the source files, one should be careful that the
 include files are all in the correct state.  Especially,  MACHINE.CST,
 which  contains  machine  dependent  timing  loop variables, which are
 mainly used in the screen drivers.
 
 In  order  to  set  these variables, a version of the SOFT terminal is
 compiled.  There are two loop constants.
 1.   NLOOPS.  When in setup mode, and Ctrl G is keyed, there should be
      a delay of 10 seconds, then a bell.
 2.   NWAIT.   When  in  normal terminal mode, ESC ?, should attempt to
      restart an SSMP session, giving a 20  second  delay  between  the
      messages on the screen.
 

==== ercm09/emas-a/ssmp/dindex.txt ====
 AMSEXTRA.ASM       Low level interrupt drivers for Amstrad (like IBM)
 AMSTRAD.OBJ        Object library containing Amstrad PC driver code
 APRICOT.OBJ        Object library containing Apricot driver code
 APRSOFT.OBJ        Objext library for APricot drivers (Soft)
 BATFILES           $source file to create batch files for MDRV files to micros
 DRIVERS.CST        Combination of all driver constants
 DRIVERS.DOC        Documentation for Microcomputer drivers
 DRIVERS.EXT        External procedure definitions for all the drivers (Propas)
 DRIVERS.TYP        Combination of all driver types
 HARDWARE.TYP       Hardware dependent Pascal types
 IBM.OBJ            Object library containing IBM PC,XT,AT driver code
 IBM2.OBJ           Object library containing IBM PC,XT,AT driver code 2nd ser
 INDEX              User index
 ISO.CST            ISO constant definitions
 ISO.TYP            ISO related type definitions
 ISO6429.PAS        Sample ISO6429 Terminal Emulator.
 NIMAUX.OBJ         Object library containing Nimbus driver code, AUX RS422 V2
 NIMDCC.MKE         Make file for Nimbus DCC port drivers
 NIMDCC.OBJ         Object library containing Nimbus driver code, DCC card  V2
 NIMPIC.LIB         Prolib file to create NIMPIC.OBJ
 NIMPIC.MKE         Make file for Nimbus Piconet port drivers

==== ercm09/emas-a/ssmp/hardwaretyp.txt ====
   byte       = 0..255;
   word       = -32768..32767;
   bits16     = 0..65535;

==== ercm09/emas-a/pass1#pre.txt ====
#if ~(e!d)
#report EITHER E OR D MUST BE ENTERED
#abort
#fi
#if e&d
#report BOTH E AND D SHOULD NOT BE ENTERED
#abort
#fi
#if e
#report PASS1 - EMAS Version
#else
#report PASS1 - DEIMOS Version
%diagnose 1<<14+4096
#fi
         {###################################################}
         {#       Portable IMP77 compiler First Pass        #}
         {#           Copyright: 1 January 1981             #}
         {#    Interactive Datasystems (Edinburgh) Ltd.     #}
         {#             32 Upper Gilmore Place              #}
         {#               Edinburgh EH3 9NJ                 #}
         {#              All Rights Reserved                #}

==== ercm09/emas-a/chess9.txt ====
%BEGIN
      %CONSTINTEGER BIT = X'80000000'
      %CONSTINTEGER MAX SCORE = +50000
      !!
      %EXTERNALROUTINESPEC PROMPT(%STRING (255) S)


      %CONSTINTEGER PLYWIDTH = 5
      %RECORDFORMAT SQF(%INTEGER P, ATT, DEF, ATTP)
      %RECORDFORMAT ROWF(%RECORD %ARRAY R(1:8)(SQF))

      %OWN %RECORD  %ARRAY BRD(1:8) (ROWF)
      %OWN %RECORD %ARRAY BRDOLD(1:8) (ROWF)
      %INTEGERARRAY VAL(-6:6)

       !! PIECE = BRD(Y)_R(X)_P

      %RECORDFORMAT LISTF(%RECORDNAME L, %INTEGER SCORE, %C
        %BYTEINTEGER FR, TO, %INTEGER SPEC, CHK)
            !! SCORE - CONTAINS SCORE FOR THE MOVE
            !! SPEC  - CONTAINS FLAGS FOR QUEENING, CASTLING

==== ercm09/emas-a/x25genpd_eccebackup.txt ====
! prep options
!  n - nsi
!  r - ring
!  k - kent
!  x - transport service interface
!  g - more general ftp
!  a - Version for Psse Accounts (sends straight to a process with same filename
!  b - new buffer manager (not permanently mapped on
! if k is not set, ercc format is assumed
#options
?==== ercm09/emas-a/gen11#pre.txt ====
#if e
#Report GEN11 - EMAS version
#else
#Report GEN11 - DEIMOS Version
#fi
             {#######################################}
             {#  PDP11 IMP77 Object File Generator  #}
             {#                                     #}
             {#       Copyright November 1981       #}
             {#          Peter S. Robertson         #}
             {#                                     #}
             {#######################################}


{#################################################################}
{# Object file format:   <N> = Word value N,  [N] = Byte value N #}
{#                                                               #}
{#        Zeroth word: <Link>  0 or size in bytes of Data Items  #}
{#         First word: <Size of code area>                       #}
{#        Second word: <Size of gla area>                        #}
{#         Third word: <Size of diag table area>                 #}

==== ercm09/emas-a/b_lmtsxbs.txt ====
prep x25gen.lmtots,lmtots#imp,t,b,clean
dimp11 lmtots#imp
dlink11 /map
lmtots#rel
.stack 1000
.streams 1
.stackseg 6
.name lmts
.end
lmtsxby
destroy lmtsxby
rename lmtsxby#abs,lmtsxby
old

==== ercm09/emas-a/b_infoxcall.txt ====
prep x25_infos,infos#imp,x,e,m,clean,c
imp11 infos#imp/,l
link11
infos#rel
i77perm
.stack 2000
.streams 1
.name info
.end
infoxcy
disconnect infoxcy
alist11 infos#imp/.lp23

==== ercm09/emas-a/b_peek.txt ====
imp11 peeks
link11
peeks#rel
i77perm
.stack 500
.streams 1
.end
peeky

==== ercm09/emas-a/imp11source_preps.txt ====
!#if  ~(d!e)(=false)
{  #report One of d or e must be set}
!#fi
!#if  (d&e)(=false)
{  #report Only one of d or e may be set}
!#fi
!#if  x(=false)
{#report Debugging code added}
!#fi
!#if  d(=false)
{!DEIMOS declerations}
{%systemroutinespec exit(%integer fault)}
{%externalstring(255)%mapspec cli param}
{%conststring(8) date="00/00/00"}
{%conststring(8) time="00:00:00"}
!#fi
!#if  e(=true)
!#else(=false)
{  #report Preparing DEIMOS version of PREP}
!#fi
!#if  e(=true)

==== ercm09/emas-a/specialpads.txt ====
Entity Information:
    Standard entity name:    EDINBURGH.KBPAD1.SCOTT
    Abbreviated entity name: ED.KBPAD1.SCOTT
    Description:             Scott Larnach's terminal in Kings Buildings
Use:
    Protocol Context:        TS29
    Direction:               REVERSE
    Sub-Network:             JANET
    DTE number:              000015000046
    YBTS address:            KBPAD1.T06
Entity Information:
    Standard entity name:    EDINBURGH.KBPAD2.GRAHAM
    Abbreviated entity name: ED.KBPAD2.GRAHAM
    Description:             Graham Rule's terminal in Kings Buildings
Use:
    Protocol Context:        TS29
    Direction:               REVERSE
    Sub-Network:             JANET
    DTE number:              000015005012
    YBTS address:            KBPAD2.T08
Entity Information:

==== ercm09/emas-a/xx25_ftp3s.txt ====
%conststring (13) vsn = "ftps....3m "
#datestring
#timestring

!********************************
!*  emas-2900  fep  ftp server  *
!*   file: fpt3s/fpt3y       *
!*                              *
!********************************


#options
! prep versions are:-
!
!  k = kent (no uflag)
!  e = ERCC
!  r = ring
!  n = nsi
!   x = Transport Service
!   m = Full Monitoring
!   c = Clock monitoring (needs a real time clock)

==== ercm09/emas-a/xx25_ftp3xy.txt ====
Wp01>ÀñÿÿLÀÁe<Àt
Éþ_wú_-è÷[÷ÚZ÷[ÁÀß	LlÁàÍß	LlÁæÍß	LlÁÀß	Llß	´i
ß	ðlÕÕÕß	ÜltÕÕÕß	Ült÷<ÀrZ÷nZnZ÷lÀjZô
Áß	(Bô
Áß	(BÁêÍß	\@ÁîÍß	\@ÁóÍß	\@Àôß	èl4Š!Ínot allwaitingreadyaskingtimingabortngWait Tschckingconninggoingclserdyclose ERCC tsFTPMAILXok
W=2/2Buff =, Pool =ËfÀeß	¤l÷‹zw¤÷¥Mz‚×­üyP
‚
ÃÝòyÃe±ÿ÷4f7ŠæyÁõÍß	Ll÷¥1Øy‚×­Òy7‚ÁùÍÂJÍß	0m÷¾yÙf÷¸yÕf7Š²y×­®y?w"ÁÿÍß	LlÀÁÞeß	`iÁÎß	LlÀÁÈeß	`iß	´iô´
Wp0Áe<ÀwfYW,ÿÿbÁÎß	Llß	àC×-˜eß	´iÁÎß	LlÀÃ6YÁß	`iÁÎß	LlÀqgÃYÁ(ß	`iÁÎß	LlÀÃYÁß	`iÁ*Îß	LlÀÃîXÁß	`iÁ3Îß	LlÀÃÖXÁß	`iÁ<Îß	LlÀþXÁß	`iÁFÎß	LlÀæXÁß	`iß	´i-Œ7Šˆxß	´i×­€xCÀß	ˆlß	$mÁOÎß	Ll7Šdx­ß	ìJw4þ­ß	PEw$þ­Àeß	¬Qwþô‹wþôô
VDhWp0Áe<ÀwXW,	CÂ&Â
±&ß	ŒOæÀdß	èlw¾ýÐ:(@&
DÅeß	àCß	´i4
´
ÁUÎß	Ll-
öˆ„‡ja¶\@&
DÅeÂeß	0m­‚ó•ó”Ÿó•
3ŠÁeÂÂeß	0mÀÀeß	”l*ó•ó^Ÿ3ŠÀÀeß	¼ló•óBŸó•
ó•ÂÁeÂeß	0mÀÀeß	”l„‡b/A&fÎå
DÅeÃZ‹5Àß	ˆlÁvÎß	LlÀúÿß	`iÁÎß	LlÀÃè~Áß	`iÁŽÎß	LlÀÃÐ~Áß	`iÁšÎß	LlÀþÿß	`iß	´i
ß	ˆl-úÿ$×-âŠÿÿÃÞŠ7
ØŠÀß	ˆlÁ¡Îß	Llüÿß	€d·
ŠüÿÃEÿ?Ã%À=üÿ?ß	(@ó•ó0ž3úÿÂB~³œ³œ	3üÿ3þÿ‹"BÁ÷
bŠÀÀeß	”l…„‡>áJ(B&fU
DÅeó•óÔs3ÀÀeß	”lþÿ÷
Š…„‡Ž€†lB&f
DÅeÀ%À%!4Š

==== ercm09/emas-a/ednet0987.txt ====
{{circle(26,11.5,.5)}}
{{INLABEL(.14,"Fe1")}}
{{circle(9.5,16.5,1.5);inlabel(.2,"TelePAC@b15001000")}}
{{circle(8,13,1.3);inlabel(.175,"TelePAC 3@b15004000")}}
{{circle(13,22.4,2);inlabel(.3,"KB-CPSE@bGEC 4190@b")}}
{{inlabel(.14,"@B@B@b@b000015000000")}}
{{join(c4,c1)}}
{{circle(13,4,2);inlabel(.3,"AT-CPSE@bGEC 4190@b")}}
{{inlabel(.14,"@B@B@b@b000016000000")}}
{{CIRCLE(8.5,20,1.25);inlabel(.175,"TelePAC 2@b15005000")}}
{{CIRCLE(26,10.5,0.5);inlabel(.14,"Fe2")}}
{{CIRCLE(26,9.5,0.5);inlabel(.14,"Fe3")}}
{{CIRCLE(26,3.8,0.5);inlabel(.14,"Fe1")}}
{{CIRCLE(32.5,21.7,1.5);INLABEL(.14,"JANET@bPSE")}}
{{CIRCLE(26,7.3,.5);inlabel(.14,"Fe3")}}
{{circle(12.75,24.8,.1);fill(c12)}}
{{circle(14.75,24.8,.1);fill(c13)}}
{{circle(16.75,24.8,.1);fill(c14)}}
{{circle(20.75,25.2,0)}}
{{circle(6.75,25.2,0)}}
{{CIRCLE(6.75,1.4,0)}}

==== ercm09/emas-a/xx25_dx11b1s.txt ====
 
!********************************
!*  emas-2900  fep dx11 handler  *
!*       file: x25_dx11b1s        *
!********************************
!! stack size = 300
!         n  =  new compiler
!         c  =  Clock monitoring (needs a real time clock!)
!         m  =  All monitoring
!

%owninteger fep no = 9;               ! number supplied on load

#if ~n
%control 1
%include "deimosperm"
#else
%control x'4001'
%include "b_deimosspecs"
#fi


==== ercm09/emas-a/xx25_ftp4s.txt ====
%conststring (13) vsn = "ftps....4c "
#datestring
#timestring

!********************************
!*  emas-2900  fep  ftp server  *
!*   file: ftp4s/ftp4y       *
!*                              *
!********************************


#options
! prep versions are:-
!
!  k = kent (no uflag)
!  e = ERCC
!  r = ring
!  n = nsi
!   x = Transport Service
!   m = Full Monitoring
!   c = Clock monitoring (needs a real time clock)

==== ercm09/emas-a/myusers.txt ====
%constant %integer maxtcpname= 23    {TCP-name length}

%record %format procdatf(%string (6) user, %string (maxtcpname) tcpname,
   %byte %integer logkey, %byte %integer invoc, protocol, nodeno, fsys,
   %integer logsno, %byte %integer site, reason, console1, console2,
   %integer id, process, prev warn, sessend, %byte %integer getmode, preempt,
   blnk, link)

%constant %string (6) %name uinf user= 68<<20
%constant %integer %name uinf isuff=68<<20+x'34'
%constant %integer yes=1, no=0
%constant %integer print=no
%external %routine %spec emas3string(%string %name vec, val)
%external %integer %function %spec dproclist(%integer %name n, adr)

%externalroutinespec EMAS3CONNECT %c
   (%stringname file, %integername mode, hole, prot, conad, %c
      type, start, end, flag)

%external %integer %function fecount(%integer %name num on fe, num on tcp)


==== ercm09/emas-a/padnrs.txt ====
Entity Information:
    Standard entity name:    EDINBURGH.FCRNPD
    Abbreviated entity name: ED.FCRNPD 
    Description:             Forestry Commission PAD
Use:
    Protocol Context:        TS29
    Direction:               REVERSE
    Sub-Network:             JANET
    DTE number:              000015000114
    YBTS address:            FCRNPD.Tnn
Entity Information:
    Standard entity name:    EDINBURGH.FCRNPD2
    Abbreviated entity name: ED.FCRNPD2 
    Description:             Forestry Commission PAD 2
Use:
    Protocol Context:        TS29
    Direction:               REVERSE
    Sub-Network:             JANET
    DTE number:              000015000014
    YBTS address:            FCRNPD2.Tnn
Entity Information:

==== ercm09/emas-a/boxes.txt ====
%externalroutine box %alias "c#box"(%string (255) s)
%integer i,j,k
printch(27); printch(';'); newline; ! set keypad to mode 1 -> esc 0-9
%end
%endoffile

==== ercm09/emas-a/xx25_buff3s.txt ====
! FILE 'FEP_BUFF3'
!*******************************
!* EMAS-2900   BUFFER MANAGER *
!*     FILE: BUFF3 (FEP)      *
!*     DATE: 13 FEB 86        *
!******************************

!! STK = SIZE+200
%CONSTINTEGER SIZE = K'34000';   ! USE LINK6Y !!!!!!
%CONTROL K'100001'
%SYSTEMROUTINESPEC LINKIN(%INTEGER SER)
%SYSTEMROUTINESPEC ALARM(%INTEGER TICKS)
%RECORDFORMAT D(%INTEGER I)
%CONSTRECORD (D) %NAME NULL = 0


%BEGIN

     %RECORDFORMAT BF(%RECORD (BF) %NAME L, %BYTEINTEGER LEN, MODE, %C
       %BYTEINTEGERARRAY A(0:99))


==== ercm09/emas-a/dimp11y/imp#fix.txt ====
.EVENT 160240
@DISPLAY 161474
@EVENTBASE 161516
@CODEBASE 161520
@STACKBASE 161522
@GLABASE 161524
@EVENTTOP 161526
@INITSP 161530
@IOAREA 161532
@IOTOP 161534
@NSTREAMS 161536

==== ercm09/emas-a/dimp11y/shr#fix.txt ====
.EVENT 160240
@DISPLAY 161474
@EVENTBASE 161516
@CODEBASE 161520
@STACKBASE 161522
@GLABASE 161524
@EVENTTOP 161526
@INITSP 161530
@IOAREA 161532
@IOTOP 161534
@NSTREAMS 161536
NEWLINE @000002
PRINTSTRING @000004
ITOS @000006
WRITE @000010
NEWPAGE @000012
NEWLINES @000014
SPACE @000016
SPACES @000020
READOCTAL @000022
READHEX @000024

==== ercm09/emas-a/dimp11y/dprims.txt ====
%constinteger NL=10
%prim( 1)%routinespec Readsymbol(%name N)
%prim( 2)%routinespec Readch(%name N)
%prim( 3)%string(*)%mapspec String(%integer A)
%prim( 4)%integermapspec Integer(%integer A)
%prim( 4)%integermapspec Shortinteger(%integer A)
%prim( 4)%integermapspec Short(%integer A)
%prim( 5)%bytemapspec Byteinteger(%integer A)
%prim( 5)%bytemapspec Byte(%integer A)
%prim( 6)%realmapspec Real(%integer A)
%prim( 7)%longrealmapspec Longreal(%integer A)
%prim( 8)%record(*)%mapspec Record(%integer A)
%prim( 9)%integerfnspec Rem(%integer A, B)
%prim(10)%longrealfnspec Float(%longreal R)
%prim(11)%bytemapspec Length(%string(255) S)
%prim(12)%bytemapspec Charno(%string(*)%name S, %integer N)
%prim(13)%string(1)%fnspec Snl
%prim(14)%string(1)%fnspec Tostring(%integer N)
%prim(15)%integerfnspec Sizeof(%name N)
%prim(16)%integerfnspec Typeof(%name N)
%prim(17)%integerfnspec Intpt(%longreal R)

==== ercm09/emas-a/dimp11y/perm11#rel.txt ====

NEWLINENEWPAGE
SPACENEWLINEPRINTSYMBOL

Á
ß		
‡


Á ß		
	‡

Áß		
‡

:PRINTSTRINGPRINTSTRINGP#SPMOVEPRINTSYMBOL:





 &
!D
"Å 
#‡
$Æ 
%‚
)ß		
*
+
-
/Õ”
0Š
1õ`þÿ
3Õ
5
7@þÿ
95 üÿ
;†
<”
=5þÿ
?ß		
@õ
B
C
D„
E‡
G:
HITOS
OCTALTOSTRING<ITOSP#SHIFTR
I<Mµ
J
K
L
MÁ
N

Oõ-†
P
Qõ †
R
SÂ	
T5
UW-† 5
†
V
Wµ

X
YÀ@@í5
Zõ@„
[
\õ
„
]CÂ
—r
Ãe0@@m„ðC
^CÂ
—r

_í
`A†õ
„@@m„pC
au-„	õ
„@@m„ð• Có
b

c@„À
5„€
5„
d

eÁAaAcB`‰œC
fÀ%?ñ
gu“
hÂBa‡
i
jM
k
l
n5Š
oÀÀeýÿ5

pAß		ÁEøÿÂBaŠŠƒ’ƒ`Áe0K
qÀë
rÂBa‡
s
uÐWRITEWRITEPRINTSYMBOLÐ
w&DU•ÅeD
x
y
zÁ
{
|ô-F
}
~ô F

€Â	
4
‚-F 4
F
ƒ
„´

…
†À@í4
‡ô@D
ˆ
‰ô
D
ŠÂ
—r
Ãe0mDð
‹Â
—r

==== ercm09/emas-a/dimp11y/readme.txt ====
To run the PDP11 imp compiler:-
searchdir erclib:general
searchdir ercm09:dimp11lib

Note: link11 is now called dlink11

==== ercm09/emas-a/dimp11y/imp#rel.txt ====

.ABANDON OUTPUT
ABANDONOUTPUTIO$FLUSH.






À4àÁà
Â
àß		

Ààð


à
Á4àÁ1
´á

‡.
P	BASE NAMEBASENAMEEXPANDP#SMOVEP#SRESP#SPMOVEN

&Dß		€U%

ß		ß		
N(À€aÕNß		†
“Àeþÿ4
Âa„‡

„‡
N
!	CALLER IDCALLERID
#
$
%
'
)
*Âà‡
+
-(CHECKIO$CHECKP#SIGNAL(
/
1
3&DU•
5 Á%ÁÀ	ß		
6B„‡
7(
9*SETCLI1CLIPARAMSETCLI1*
;
<
=
>
A
F
H

Iß
à
J
K

LÀà@c¢
W#xö
M
N@À
?
à
P‡*
R
TÂà‡
V*
WCLOSE INPUT
CLOSEINPUT
Y
Z
[
]
^À2à
Áà
_ñ

`
à
aÀ0
¨á
b
c‡
eø	CONSTRUCTIO$CONSP#SMOVEô
f
g
iM
k
l
m
nÁW"ÿÿ
oô.NÁôÂBaß		
phW"^
q
@ÜÀe05	
rõ•.

sõ
t
u
AAc@ÜÀE€ÿ5
v  
wÂBaBm

xµ

==== ercm09/emas-a/dimp11y/shr#rel.txt ====

lSHARE START&P#START
#STACKBASE	PROG$INIT%GO$EXIT&



&


Áà


‘
Ñ
	
Å	
&


&
8&DÕ
 
!
't
(

ß		
)
+Áß		
-÷	¤ÿ&DÕ
.t
/Áß		
0
1Áß		
2„‡&\
4ß		
5
ß		
7„‡ÿÿDPl&
9==== ercm09/emas-a/dimpsrc/pass1s.txt ====
{###################################################}
{#       Portable IMP77 compiler First Pass        #}
{#           Copyright: 1 January 1981             #}
{#    Interactive Datasystems (Edinburgh) Ltd.     #}
{#             32 Upper Gilmore Place              #}
{#               Edinburgh EH3 9NJ                 #}
{#              All Rights Reserved                #}
{###################################################}

%BEGIN
   %EXTERNALINTEGERSPEC IMPFLAG
   %ROUTINE define(%STRING (255) s)
      %EXTERNALROUTINESPEC emas3(%STRINGNAME command,params, %INTEGERNAME flag)
      %INTEGER flag
      emas3("DEFINE",s,flag)
   %END;                                 ! Of %ROUTINE define.
   %CONSTSTRING (4) version= "8.7"

                                         !configuration parameters

   %CONSTINTEGER minus 1= 16_ffff

==== ercm09/emas-a/dimpsrc/gen11s.txt ====
{#######################################}
{#  PDP11 IMP77 Object File Generator  #}
{#                                     #}
{#       Copyright November 1981       #}
{#          Peter S. Robertson         #}
{#                                     #}
{#######################################}


{#################################################################}
{# Object file format:   <N> = Word value N,  [N] = Byte value N #}
{#                                                               #}
{#        Zeroth word: <Link>  0 or size in bytes of Data Items  #}
{#         First word: <Size of code area>                       #}
{#        Second word: <Size of gla area>                        #}
{#         Third word: <Size of diag table area>                 #}
{#        Fourth word: <Size of line number table area>          #}
{#         Fifth word: <Size of event block>                     #}
{#                     "Section name"                            #}
{#                     <Number of external definitions>          #}
{#                     External Definitions                      #}

==== ercm09/emas-a/dimpsrc/comp11s.txt ====
%begin

%EXTERNALINTEGERFUNCTIONSPEC smaddr(%INTEGER chan, %INTEGERNAME length)
%EXTERNALROUTINESPEC close sm(%INTEGER chan)
%ROUTINE define(%STRING (255) s)
   %EXTERNALROUTINESPEC emas3(%STRINGNAME command,params, %INTEGERNAME flag)
   %INTEGER flag
   emas3("DEFINE",s,flag)
%END;                                    ! Of %ROUTINE define.
%EXTERNALROUTINESPEC prompt %ALIAS "S#PROMPT"(%STRING (255) s)

   %OWNINTEGER CHECKSUM
   %OWNBYTEINTEGERARRAY STORE(-40:K'177777')
   %OWNINTEGER BASE=0
   %OWNINTEGER RA,SA,FA
   %OWNSTRING (255) ST
   %OWNINTEGER I,J,HIGH ADDRESS,START ADDRESS,COMMAND,CH,X


   %ROUTINE WRITE OCTAL(%INTEGER NO)
!=================================

==== ercm09/emas-a/dimpsrc/tables.txt ====
   %endoflist
%conststring(8)%array text(0:255) = %c
"Z","VDEC","OWNVDEC","EXTVSPEC","ADEC","OWNADEC",
"EXTASPEC","PROC","PROCSPEC","FORMDEC","SWDEC","LDEC",
"FORMSPEC","AFORM","OWNAFORM","LSB","RSB","PRIM",
"OPTION","COMMA","T","COLON","COMMENT","LB",
"ALIAS","RB","SUB","ARRAYD","STYPE","ARRAY",
"NAME","PROCD","FNMAP","SWITCH","OWN","EXTERNAL",
"STRING","RECORD","FORMAT","SPEC","MCODE","LABEL",
"OP1","OP2","OP3","SIGN","UOP","MOD",
"DOT","COMP","ACOMP","EQ","EQEQ","JAM",
"JUMP","RESOP","AND","OR","NOT","WHILE",
"UNTIL","FOR","CWORD","EXIT","ON","SIGNAL",
"THEN","START","ELSE","FINISH","FELSE","CYCLE",
"REPEAT","SECTION","BEGIN","END","ENDPROG","ENDPERM",
"FRESULT","MRESULT","BACK","MONITOR","STOP","LIST",
"","CONTROL","INCLUDE","MASS","RTYPE","",
"IDENT","V","N","CONST","FM","",
"R","F","M","P","RP","FP",
"MP","PP","L","S","A","AN",
"NA","NAN","AF","NAF","","",

==== ercm09/emas-a/dimpsrc/recodes.txt ====
{Decode routine for PDP11}

%CONSTINTEGER Absf=   1,   Adc =   2,  Adcb =   3,   Add =   4,
               Addf =   5,   Ash =   6,  Ashc =   7,   Asl =   8,
               Aslb =   9,   Asr =  10,  Asrb =  11,   Beq =  12,
                Bge =  13,   Bgt =  14,   Bhi =  15,  Bhis =  16,
                Bic =  17,  Bicb =  18,   Bis =  19,  Bisb =  20,
                Bit =  21,  Bitb =  22,   Ble =  23,   Blo =  24,
               Blos =  25,   Blt =  26,   Bmi =  27,   Bne =  28,
                Bpl =  29,   Bpt =  30,    Br =  31,   Bvc =  32,
                Bvs =  33,  Cfcc =  34,   Clr =  35,  Clrb =  36
%CONSTINTEGER Clrf=  37,   Cmp =  38,  Cmpb =  39,  Cmpf =  40,
                Com =  41,  Comb =  42,   Dec =  43,  Decb =  44,
                Div =  45,  Divf =  46,   Emt =  47,  Fadd =  48,
               Fdiv =  49,  Fmul =  50,  Fsub =  51,  Halt =  52,
                Inc =  53,  Incb =  54,   Iot =  55,   Jmp =  56,
                Jsr =  57, Ldcfd =  58, Ldcif =  59, Ldexp =  60,
                Ldf =  61, Ldfps =  62,  Mark =  63,  Mfpd =  64,
               Mfpi =  65,  Modf =  66,   Mov =  67,  Movb =  68,
               Mtpd =  69,  Mtpi =  70,   Mul =  71,  Mulf =  72
%CONSTINTEGER Neg=  73,  Negb =  74,  Negf =  75,   Nop =  76,

==== ercm09/emas-a/dimpsrc/imp11s.txt ====
!IMP driver

%EXTERNALROUTINESPEC concf(%STRING (255) s)
%ROUTINE cross reference
   printstring("Cross reference not available")
   newline
%END {cross reference}


%OWNINTEGER cross=0

%OWNSTRING (25) pass1= "ercm09:dimp11y.pass1y",
               pass2       = "ercm09:dimp11y.ass11y",
               pass3       = "ercm09:dimp11y.Gen11Y",
               prim file = "ercm09:dimp11y.PRIMS"

%EXTERNALROUTINE nIMP11(%STRING (255) File)

   %EXTERNALINTEGERFUNCTIONSPEC exist %ALIAS "S#EXIST"(%STRING (255) file)
   %ROUTINE destroy(%STRING (255) s)
      %EXTERNALROUTINESPEC emas3(%STRINGNAME command,params, %INTEGERNAME flag)

==== ercm09/emas-a/dimpsrc/link11s.txt ====
{##################################}
{# PDP11 IMP77 Object file linker #}
{#                                #}
{#    Copyright November 1981     #}
{#       Peter S. Robertson       #}
{#                                #}
{##################################}

{ 0        1                                                 7               }
{*--------*----------*--------*-----------------*-------*---*---------------*}
{| Shared |  Events  |  Code  |-> Ds ----- Sp <-|  Gla  |\\\|  I/O Segment  |}
{*--------*----------*--------*-----------------*-------*---*---------------*}
{         ^          ^        ^                 ^                            }
{         |          |        |                 |                            }
{        #Event     #Code    #Stack            #Gla                          }
{         Base       Base     Base              Base                         }


{   I/O STREAMS }

%CONSTINTEGER Fixup Stream= 6

==== ercm09/emas-a/dimpsrc/ass11s.txt ====
!#if  e(=true)
!#else(=false)
{#report ASS11 - DEIMOS version}
!#fi
{############################################}
{#     PDP11 I-code Assembler for IMP77     #}
{#                                          #}
{#         Copyright November 1981          #}
{#            Peter S. Robertson            #}
{#           All rights reserved            #}
{#                                          #}
{############################################}

%CONSTINTEGER McOps= 118
%CONSTINTEGER Absf=  1,       Adc =  2,      Adcb =  3,       Add =  4,
                     Addf =  5,       Ash =  6,      Ashc =  7,       Asl =  8,
                     Aslb =  9,       Asr = 10,      Asrb = 11,       Bcc = 12,
                      Bcs = 13,       Beq = 14,       Bge = 15,       Bgt = 16,
                      Bhi = 17,      Bhis = 18,       Bic = 19,      Bicb = 20,
                      Bis = 21,      Bisb = 22,       Bit = 23,      Bitb = 24,
                      Ble = 25,       Blo = 26,      Blos = 27,       Blt = 28,

==== ercm09/emas-a/pinkconf.txt ====
call gatadmin
Connecting...

Call Cleared By Remote (00E8)

EthPad>call gatadm
Connecting...

Call Cleared By Remote (00E8)

EthPad>call gate
Connecting...
Connected
Spider Ethernet->WAN Gateway
Enter name/address : ?

Domain set to: uk.ac.edinburgh.  uk.ac.ed.

                 Hosts Available
Standard                                 Abbreviated
--------                                 -----------

==== ercm09/emas-a/inc_config.txt ====
! Configuration file for PSSE

! Options used:INC_CONFIGGEN,TEMP,P,CLEAN

!Versions required:


! System            Name  Accred Nets  Procs*    Disc Drv Prep

! P PSSE            PSSE  Yes    2+1   16  6 10  RL01 0     P
! M XGATE           XGATE  No    1+1   37 20 40  RL01 0     M
! K Kent            GATE  Yes    1+1   16  6 10  RL02 0     K
! U Kent #2         SGATE Yes    1+2   ?? ?? ??  RK05 0     U
! G Glasgow         GGATE  No    1+2   16  6 31  RX02 1     G
! F FEP (GATEX)     -      No     +2   60 20 40  -    -     H
! T XGATE # 2       XGATE2 No          37 20 40  RL01 0     T
! D DGATE           DGATE No           30 20 40  -    -     D

!Disc Configuration Information
!Define first and last user blocks to prevent us overwriting directory
!etc. Ranges for various discs are:

==== ercm09/emas-a/xx25_gatexs.txt ====

!**********************************************************
!*                                                        *
!*           PSS X-25 Level 3 Protocol Handler            *
!*                                                        *
!*                      GATEX                             *
!*                                                        *
!*                Version    10.05  22 Sep 1986           *
!*                                                        *
!**********************************************************
!*
%control x'4001'
%include "ercm09:b_deimosspecs"
%begin
#options
!************************************
!*                                  *
!*          Declarations            *  
!*                                  *
!************************************
!*

==== ercm09/emas-a/b_nbsmon.txt ====
imp11 nbsmon/,ll
link11
nbsmon#rel
i77perm
.stack 1000
.streams 0
.end
nbsmony
list nbsmony,.bpp6

==== ercm09/emas-a/b_game.txt ====
e gen_source2/temp
f/deimosperm/s/b_deimosspecs/
%c
imp11 temp
link11 /temp
temp
ercm11.newimp
.stack 6000
.streams 0
.end
game

==== ercm09/emas-a/b_info.txt ====
prep x25_infos,infos#imp,f,clean
imp11 infos#imp/,l
link11
infos#rel
i77perm
.stack 2000
.streams 1
.name info
.end
infoxy
disconnect infoxy
alist11 infos#imp/.lp23

==== ercm09/emas-a/xx25_gatexy.txt ====
,GATX˜Ú 0˜@ÿ@©ô}ÀÁÂȇ à$~&ˆ€PPȇ0º&~&ˆÄåT”Ì„‡@è}BA@
±É	CÈ	‡HªJL@&fDÅe4
Ã"ô
ô‹ÂÂ
°…„‡Ž£ZxÀß	à}÷•`hÕÕÕß	è}ÕÕÕß	è}ÁÏß	œ}ß	{÷•áG÷ýÀlH÷ÁhH7
¼G·
¸GÁ´GWp`ñ¬GÒÀ@ÀeÐÀÁ$Áß	(@×-˜Gì7
G·
ŒGÁˆGWp(ñ€GlÂ@ÀejÂÁ(Áß	(@×-lGPìÀÁß	$~÷HVGÀß	à}÷HJG÷•ôG÷ôfïG7ŠìG÷•êGÀÁß	~·
6GÀØGÁ,Áß	(@Àdß	Ø}7ŠÀGÀÁß	[LZy$~×­´Gß	¸Zó÷‹§Gß	ÀGí×­›Gß	<Eß	¨Aä×­ŠGß	<Eß	tIÛß	´Xرª@&f
DÅeÃp€
ÂÜ€àÀEøÿ4Á
@Ü
ÂÜ€àÀEøÿ
Ý Á…„‡1þÿô‹!ƒC
݃ 
4@
݃àñô1
7ùÀ
ß	hr
…„‡N€z4A&fU
DÅeÃÊ÷œÉwÉÂØÁÀ÷•®÷®ž©7Š¦7¦ÀÁß	ô}À,Áß	L@wŽß	¨A×-œÀ
ß	4A…„‡î‘¨A&
DÅeôb3Š

==== ercm09/emas-a/b_lmcon.txt ====
imp11 lmcons/,l
link11
lmcons#rel
i77perm
.stack 1000
.streams 0
.end
lmcony
alist11 lmcons/.lp23
list lmcony,.bpp6

==== ercm09/emas-a/b_xprot.txt ====
EDIT x25_XPROTs,T#B
TA/198/A1STM/Versi/f<X>KZ(r/Running/i<X>i/ (Fast)/p1)2
E
prep t#b,xprot#imp,F,Q
IMP11 XPROT#IMP/XPROT#REL,xprot#lst

LINK11
ERCM09.I77PERM
XPROT#REL
.STACK 2000
.STREAMS 0
.NAME XPR1
.END
XPR1#OBJ
destroy xpr1y
rename xpr1#obj,xpr1y

alist11 xprot#imp/.lp23

==== ercm09/emas-a/b_am1.txt ====
prep fep_eam77,eam77#imp,n,clean
dimp11 eam77#imp
link11 /map
eam77#rel
.stack 1000
.streams 1
.name am1h
.stackseg 6
.end
eam77
destroy eam77y
rename eam77#abs,eam77y
alist11 eam77#imp/.lp23

==== ercm09/emas-a/bench/l.txt ====
Source: ERCM09:BENCH.ACKI         Compiled: 07/06/88   18.05.04
Object: ERCM09:BENCH.ACKIY

Parms set: DEFAULTS



              ERCC. Portable Imp80 Compiler Release 4 Version 14 Sep 87


  2047  4095
     1        %begin
     2        %integer  i,j,k,k1
     3        
     4        
     5        %integerfn ackermann(%integer m,n)
     6             %if m=0 %then %result = n+1 %else %start
     7                 %if n=0 %then %result = ackermann(m-1,1) %else  %c
     C                 %result = ackermann(m-1,ackermann(m,n-1));
     9              %finish;
    10        %end;

==== ercm09/emas-a/bench/dhry1c.txt ====
/*
 ****************************************************************************
 *
 *                   "DHRYSTONE" Benchmark Program
 *                   -----------------------------
 *                                                                            
 *  Version:    C, Version 2.1
 *                                                                            
 *  File:       dhry_1.c (part 2 of 3)
 *
 *  Date:       May 25, 1988
 *
 *  Author:     Reinhold P. Weicker
 *
 ****************************************************************************
 */

#include "dhryh"

/* Global Variables: */


==== ercm09/emas-a/bench/dhry2c.txt ====
/*
 ****************************************************************************
 *
 *                   "DHRYSTONE" Benchmark Program
 *                   -----------------------------
 *                                                                            
 *  Version:    C, Version 2.1
 *                                                                            
 *  File:       dhry_2.c (part 3 of 3)
 *
 *  Date:       May 25, 1988
 *
 *  Author:     Reinhold P. Weicker
 *
 ****************************************************************************
 */

#include "dhryh"

#ifndef REG
#define REG

==== ercm09/emas-a/bench/ackcc.txt ====
int i,j,k,k1;
float t1,t2;
ackermann(m,n)
int m,n;
{
      if (m==0) return (n+1);
      if (n==0) return(ackermann(m-1,1));
      return(ackermann(m-1,ackermann(m,n-1)));
}
main(argc,argv)
int argc;
char *argv[];
{
	for (i = 0; i < 10; i++)
         j=ackermann(3,atoi(argv[1]));
}

==== ercm09/emas-a/bench/dhryh.txt ====
/*
 ****************************************************************************
 *
 *                   "DHRYSTONE" Benchmark Program
 *                   -----------------------------
 *                                                                            
 *  Version:    C, Version 2.1
 *                                                                            
 *  File:       dhry.h (part 1 of 3)
 *
 *  Date:       May 25, 1988
 *
 *  Author:     Reinhold P. Weicker
 *                      Siemens AG, E STE 35
 *                      Postfach 3240
 *                      8520 Erlangen
 *                      Germany (West)
 *                              Phone:  [xxx-49]-9131-7-20330
 *                                      (8-17 Central European Time)
 *                              Usenet: ..!mcvax!unido!estevax!weicker
 *

==== ercm09/emas-a/bench/acki.txt ====
%begin
%integer  i,j,k,k1


%integerfn ackermann(%integer m,n)
     %if m=0 %then %result = n+1 %else %start
         %if n=0 %then %result = ackermann(m-1,1) %else  %c
         %result = ackermann(m-1,ackermann(m,n-1));
      %finish;
%end;

         printstring("Param?"); read(i);
         %cycle  k = 1 ,1,10
            j=ackermann(3,i);
         printstring("Finish")
         %repeat
                              %endofprogram

==== ercm09/emas-a/bench/ackp.txt ====
program ack(input, output);
VAR  i,j,k,k1 : integer;


function ackermann(m,n: integer): integer;
begin
      if m=0 then ackermann := n+1 else begin
         if n=0 then ackermann := ackermann(m-1,1) else
         ackermann := ackermann(m-1,ackermann(m,n-1));
      end;
end;

begin
         write('Param?'); readln(i);
         for k := 1 to 10 do
            j:=ackermann(3,i);
         writeln('Finish', chr(7));
END.

==== ercm09/emas-a/bench/bench1i.txt ====
%begin

%integer %c
  i,j,x,y

printstring("start".tostring(7)); newline
x = 0;
y = 9;
%for i = 1, 1, 1000 %cycle
    x = 0;
    %for j = 1, 1,  1000  %cycle
       x = x+int((y*y-y)/ y);
%repeat
%repeat
printstring("finish".tostring(7)); newline
%endofprogram


==== ercm09/emas-a/bench/bench2i.txt ====
%begin

%integer %c
  i,j
%real x, y

printstring("start".tostring(7)); newline
x = 0;
y = 9.9;
%for i = 1, 1, 1000 %cycle
    x = 0;
    %for j = 1, 1,  1000  %cycle
       x = x+(y*y-y)/ y;
%repeat
%repeat
printstring("finish".tostring(7)); newline
%endofprogram


==== ercm09/emas-a/bench/cthrash.txt ====
#define PAGE              4096
#define SIZE              2047*PAGE
#define CYCLES            5000000
#define DECR_INTVL_PGS    23
#define DECR_INTVL_BYTES  DECR_INTVL_PGS*PAGE


main()
{
int ad, offset, j, cycles;
int *ptr;
   ad=malloc(SIZE);
   if (ad==0) {
      printf("Malloc fails\n");
      return(0);
   }

   offset=SIZE-PAGE;
   for (cycles=0; cycles<=CYCLES; cycles++) {
      /*printf("Offset = %x\n", offset);*/
      ptr=ad+offset;

==== ercm09/emas-a/bench/bench1.txt ====
program bench1(input,output);

var
  i,j,x,y:integer;

begin
writeln('start', chr(7));
x := 0;
y := 9;
for i := 1 to 10000 do begin
    x := 0;
    for j := 1 to 1000 do begin
       x := x+(y*y-y) div y; y := y+1; y := y-1;
end;
end;
writeln('finish', chr(7));
end.


==== ercm09/emas-a/bench/bench2.txt ====
program bench2(input,output);

var
  i,j:integer;
  x,y : real;

begin
writeln('start', chr(7));
x := 0;
y := 9.9;
for i := 1 to 10000 do begin
    x := 0;
    for j := 1 to 1000 do
       x := x+(y*y-y) / y;
end;
writeln('finish', chr(7));
end.


==== ercm09/emas-a/bench/bench3.txt ====
program bench2(input,output);

var
  i,j:integer;
  x,y : real;

begin
writeln('start', chr(7));
x := 0;
y := 9.9;
for i := 1 to 100 do begin
    x := 0;
    for j := 1 to 1000 do
       x := x+sin(arctan(cos(ln(y))));
end;
writeln('finish',x:8:3, chr(7));
end.


==== ercm09/emas-a/bench/bench4.txt ====
program bench1(input,output);

var
  i,j,x,y:integer;

begin
writeln('start', chr(7));
x := 0;
y := 9;
    for j := 1 to 1000 do
       writeln('1234567890qwertyuiop');
writeln('finish', chr(7));
end.


==== ercm09/emas-a/bench/bench6.txt ====
program bench6(input,output,testfile);

var
 i,j,x,y:integer;
  testfile: text;

begin
writeln('start', chr(7));

x := 0;
rewrite(testfile);
y := 9;
for i := 1 to 10 do
    for j := 1 to 1000 do
       writeln(testfile, '1234567890qwertyuiop');
close(testfile);
writeln('finish', chr(7));
end.


==== ercm09/emas-a/b_nbsmox.txt ====
e nbsmon/nbsmox
f/ponoff/pk
g
p_b = k'140172'
%c
imp11 nbsmox/,ll
link11
nbsmox#rel
i77perm
.stack 1000
.streams 0
.end
nbsmoxy
list nbsmoxy,.bpp6

==== ercm09/emas-a/xx25_buff5s.txt ====
! file 'fep_buff3'
!*******************************
!* emas-2900   buffer manager *
!*     file: buff5 (fep)      *
!*     date: 19 sep 84        *
!******************************

!! stk = size+200
%control 1
%include "deimosperm"


%begin
%conststring (9) vsn = "Buff..5a"

     %recordformat bf(%integer buff no, len,  %byte owner, mode, %c
       %byteintegerarray a(0:240))

     %recordformat qf(%record (bf) %name l)
     %recordformat pe(%byteinteger ser, reply, fn, port, %c
       %integer buff no, %byteinteger len, s1)

==== ercm09/emas-a/xx25_hostpeople.txt ====
j.leitch,d.walker,jhenshall,sshaw,bmurdoch,kfarvis,pmoran,scurrie,
Eddie Corns,glc@ecsvax,TCW@geovax,Mark McIntosh,ghowat,dave@edgr,
SYSMAN@phyvax,sysman@ercvax,scott@cstvax,smharrower

==== ercm09/emas-a/x25genpd_infop2s.txt ====
%conststring (17) vsn = "Info Poll....2b "
#datestring
#timestring

!********************************
!*  emas-2900  fep  info server  *
!*   file: fpt3s/fpt3y       *
!*                              *
!********************************


! Options used:X25_INFOPS,INFOPS,X,E,M,CLEAN
! prep versions are:-
!
!

%control 1
%include "deimosperm"




==== ercm09/emas-a/x25genpd_gecgrab2.txt ====

!**********************************************************
!*                                                        *
!*       RCO ITP to GEC Network Management Module         *
!*                                                        *
!*                       Gecgrab                          *
!*                                                        *
!*                                                        *
!**********************************************************

#options
!* Prep options
!*  b   -   output binary file, else packed hex+compression
!*
!*
%control 1 ;!No record checking.
!*
#if ~i
%include "deimosperm"
#else
%include "b_deimosspecs"

==== ercm09/emas-a/b_infops.txt ====
prep x25_infop2s,infops#imp,x,e,m,clean
imp11 infops#imp/,l
link11
infops#rel
i77perm
.stack 2000
.streams 1
.name infp
.end
infopxy
disconnect infopxy
alist11 infops#imp/.lp15

==== ercm09/emas-a/ass11#pre.txt ====
#if e
#report ASS11 - EMAS version
#else
#report ASS11 - DEIMOS version
#fi
            {############################################}
            {#     PDP11 I-code Assembler for IMP77     #}
            {#                                          #}
            {#         Copyright November 1981          #}
            {#            Peter S. Robertson            #}
            {#           All rights reserved            #}
            {#                                          #}
            {############################################}

%Constinteger McOps = 118
%constinteger        Absf =  1,       Adc =  2,      Adcb =  3,       Add =  4,
                     Addf =  5,       Ash =  6,      Ashc =  7,       Asl =  8,
                     Aslb =  9,       Asr = 10,      Asrb = 11,       Bcc = 12,
                      Bcs = 13,       Beq = 14,       Bge = 15,       Bgt = 16,
                      Bhi = 17,      Bhis = 18,       Bic = 19,      Bicb = 20,
                      Bis = 21,      Bisb = 22,       Bit = 23,      Bitb = 24,

==== ercm09/emas-a/edinburgho.txt ====
A3D5
Registering Institution:
    Name prefix:             UK.AC.
    Standard name:           EDINBURGH
    Abbreviated name:        ED
Entity Information:
    Standard entity name:    EDINBURGH
    Abbreviated entity name: ED
    Description:             E.R.C.C. Distributed mail directory
Use:
    Protocol Context:        MAIL-NIFTP
    Direction:               FORWARD
    Sub-network:             JANET
    DTE number:              000015000043
    YBTS address:            FTP.MAIL
Use:
    Protocol Context:        MAIL-NIFTP
    Direction:               FORWARD
    Sub-network:             PSS
    DTE number:              234231354354
    YBTS address:            (DEMO,DEMO).EMAS-A.FTP.MAIL

==== ercm09/emas-a/b_itpx.txt ====
prep fep_itp9s,itp9s#imp,x,e,a,clean
imp11 itp9s#imp/,l
link11
itp9s#rel
i77perm
.stack 1200
.name itps
.streams 1
.end
itp9xy
alist11 itp9s#imp/.lp23

==== ercm09/emas-a/inc_formats.txt ====
%constinteger hdrl = 8                                         ;! Length of dummy area before data field
%recordformat qf(%record (qf) %name link, %integer count)
%recordformat x25f(%byte octet1, lcn, fn, %bytearray a(0:255))
%recordformat mef(%record (mef) %name link, %byte l,type, %c
   (%bytearray a(0:251) %or (%string(4) padding, %byte octet1, lcn, fn, %c
   (%bytearray data(0:243) %or %string(250) s ))))

%recordformat pf(%byte ser, reply, %c
   ((%byte fn, %byte s1 , %c
   ((%record (mef) %name m, %byte gate port , task port) %c
     %or %string(3) facility)) %c
     %or (%byte a1, a2, b1, b2, c1, c2) %or (%integer a, b, c) %c
     %or (%byte j1, process, j2, j3, len, j4)))

%recordformat cvf((%byte l, (%byte reason, cause, diags, %bytearray our ct(0:3), our segs(0:7),pss ct(0:3), pss segs(0:7)) %c
                         %or %bytearray a(0:26)) %c
               %or %string(27) s)

%endoffile

==== ercm09/emas-a/stats/x89sep11.txt ====
=======Mon Sep 11 00:06:41 WET DST 1989 load average: 0.91, 0.68, 0.46 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   4 2.383M 3.004M    24    32 345.5M 910.8M  1464 22192 Brian
 1  0  on   5 2.467M 3.324M    34    43 152.7M 589.5M  2192 32920 Gilmore
7 ttys : ttyp 0, X.25 7 [x 3 y 4] Uids: 9 unique 9, active 3

=======Mon Sep 11 00:21:44 WET DST 1989 load average: 0.68, 0.60, 0.50 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   2 2.396M 3.022M     2     3 350.2M 918.6M   144   464 Brian
 1  0  on   3 2.472M 3.331M     7    11 153.2M 591.2M   432  3376 Gilmore
6 ttys : ttyp 0, X.25 6 [x 2 y 4] Uids: 8 unique 8, active 2

=======Mon Sep 11 00:36:48 WET DST 1989 load average: 0.48, 0.41, 0.41 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   2 2.399M 3.027M     0     0 352.1M 919.5M     0     0 Brian
 1  0  on   3 2.476M 3.336M     6     9 153.4M 591.9M   384   752 Gilmore
6 ttys : ttyp 0, X.25 6 [x 2 y 4] Uids: 8 unique 8, active 1

=======Mon Sep 11 00:51:51 WET DST 1989 load average: 0.47, 0.39, 0.33 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   2 2.401M 3.029M     0     0 352.2M 920.9M     0     0 Brian
 1  0  on   3 2.482M 3.346M     9    12 153.8M 593.1M   544  1144 Gilmore
6 ttys : ttyp 0, X.25 6 [x 2 y 4] Uids: 8 unique 8, active 2

=======Mon Sep 11 01:06:54 WET DST 1989 load average: 0.46, 0.41, 0.33 ========
==== ercm09/emas-a/stats/x89sep4.txt ====

=======Mon Sep 4 15:35:55 WET DST 1989 load average: 1.66, 1.64, 1.48 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on  22 2.263M 2.805M    59    73 573.5M 535.4M 23960 15296 Brian
 1  0  on  24 1.928M 2.563M    20    28 176.7M 441.6M  1200  4104 Gilmore
60 ttys : ttyp 21, X.25 39 [x 15 y 24] Uids: 65 unique 53, active 42

=======Mon Sep 4 15:38:54 WET DST 1989 load average: 1.55, 1.57, 1.48 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on  20 2.273M 2.816M    51    55 576.7M 538.4M  8536 15416 Brian
 1  0  on  23 1.933M 2.569M    40    50 177.0M 442.6M  2376  6520 Gilmore
57 ttys : ttyp 20, X.25 37 [x 14 y 23] Uids: 65 unique 51, active 42

=======Mon Sep 4 15:41:52 WET DST 1989 load average: 1.39, 1.46, 1.43 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on  19 2.280M 2.824M    29    33 577.4M 541.0M  3480 12896 Brian
 1  0  on  24 1.937M 2.575M    28    37 177.3M 443.7M  1648  3880 Gilmore
57 ttys : ttyp 21, X.25 36 [x 12 y 24] Uids: 65 unique 50, active 42

=======Mon Sep 4 15:45:05 WET DST 1989 load average: 1.50, 1.42, 1.40 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on  18 2.287M 2.832M    39    46 578.0M 543.8M  2592 15616 Brian
 1  0  on  24 1.942M 2.582M    21    28 177.6M 444.5M  1248  3896 Gilmore
57 ttys : ttyp 21, X.25 36 [x 12 y 24] Uids: 62 unique 49, active 46

=======Mon Sep 4 16:00:09 WET DST 1989 load average: 1.53, 1.49, 1.36 ========
==== ercm09/emas-a/stats/x89sep18.txt ====

=======Mon Sep 18 00:02:05 WET DST 1989 load average: 0.72, 0.62, 0.50 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   1 2.483M 3.089M     0     0 378.6M 979.8M     0     0 Brian
 1  0  on   7 6.181M 7.873M     0     0 432.5M 1.504G     8     8 Gilmore
9 ttys : ttyp 3, X.25 6 [x 0 y 6] Uids: 10 unique 7, active 2

=======Mon Sep 18 00:17:08 WET DST 1989 load average: 0.66, 0.59, 0.50 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   1 2.483M 3.089M     0     0 378.6M 979.8M     0     0 Brian
 1  0  on   7 6.181M 7.874M     0     0 432.5M 1.504G     8     8 Gilmore
9 ttys : ttyp 3, X.25 6 [x 0 y 6] Uids: 10 unique 7, active 2

=======Mon Sep 18 00:32:12 WET DST 1989 load average: 0.63, 0.59, 0.50 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   1 2.483M 3.089M     0     0 378.6M 979.8M     0     0 Brian
 1  0  on   7 6.181M 7.874M     0     0 432.5M 1.504G     8     8 Gilmore
9 ttys : ttyp 3, X.25 6 [x 0 y 6] Uids: 10 unique 7, active 2

=======Mon Sep 18 00:47:15 WET DST 1989 load average: 0.65, 0.59, 0.50 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   1 2.483M 3.089M     0     0 378.6M 979.8M     0     0 Brian
 1  0  on   6 6.183M 7.876M     0     0 432.6M 1.505G     8     8 Gilmore
6 ttys : ttyp 1, X.25 5 [x 0 y 5] Uids: 7 unique 6, active 1

=======Mon Sep 18 01:02:18 WET DST 1989 load average: 0.75, 0.63, 0.50 ========
==== ercm09/emas-a/stats/x89sep25.txt ====

=======Mon Sep 25 00:08:33 WET DST 1989 load average: 0.42, 0.35, 0.20 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   2 1.326M 1.643M     0     0 293.1M 414.2M     0     0 Brian
 1  0  on   2 2.063M 2.727M     7    10 202.7M 661.4M   408  2752 Gilmore
4 ttys : ttyp 2, X.25 2 [x 0 y 2] Uids: 5 unique 5, active 2

=======Mon Sep 25 00:23:37 WET DST 1989 load average: 0.48, 0.42, 0.30 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   3 1.326M 1.644M     0     0 293.2M 414.5M     0     0 Brian
 1  0  on   2 2.069M 2.736M     4     5 203.0M 662.8M   208  1296 Gilmore
5 ttys : ttyp 2, X.25 3 [x 1 y 2] Uids: 6 unique 6, active 3

=======Mon Sep 25 00:38:40 WET DST 1989 load average: 0.27, 0.28, 0.27 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   3 1.327M 1.644M     0     0 293.2M 414.5M     0     0 Brian
 1  0  on   2 2.075M 2.744M     9    12 203.4M 664.1M   504  1416 Gilmore
5 ttys : ttyp 2, X.25 3 [x 1 y 2] Uids: 6 unique 6, active 3

=======Mon Sep 25 00:53:44 WET DST 1989 load average: 0.29, 0.27, 0.17 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   4 1.332M 1.651M     2     3 293.5M 415.6M   120   280 Brian
 1  0  on   3 2.081M 2.753M     8    10 203.8M 665.6M   648   568 Gilmore
6 ttys : ttyp 2, X.25 4 [x 2 y 2] Uids: 7 unique 7, active 4

=======Mon Sep 25 01:08:48 WET DST 1989 load average: 0.27, 0.24, 0.17 ========
==== ercm09/emas-a/stats/x89oct16.txt ====

=======Mon Oct 16 00:14:20 WET DST 1989 load average: 0.75, 0.69, 0.54 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   2 3.806M 4.623M     0     0 556.7M 1.725G     0     0 Brian
 1  0  on   2 4.311M 5.548M     0     0 274.1M 1.367G     8     8 Gilmore
4 ttys : ttyp 0, X.25 4 [x 1 y 3] Uids: 8 unique 7, active 1

=======Mon Oct 16 00:29:23 WET DST 1989 load average: 0.76, 0.71, 0.59 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   2 3.808M 4.625M     0     0 556.8M 1.726G     0     0 Brian
 1  0  on   2 4.311M 5.548M     0     0 274.1M 1.367G     8     8 Gilmore
4 ttys : ttyp 0, X.25 4 [x 1 y 3] Uids: 8 unique 7, active 1

=======Mon Oct 16 00:44:27 WET DST 1989 load average: 0.83, 0.71, 0.60 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   3 3.809M 4.627M     3     3 557.0M 1.728G   136  2216 Brian
 1  0  on   2 4.311M 5.548M     0     0 274.1M 1.367G     8     8 Gilmore
4 ttys : ttyp 0, X.25 4 [x 1 y 3] Uids: 8 unique 7, active 0

=======Mon Oct 16 00:59:30 WET DST 1989 load average: 0.57, 0.57, 0.51 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   2 3.811M 4.629M     0     0 557.1M 1.729G     0     0 Brian
 1  0  on   2 4.312M 5.548M     0     0 274.1M 1.367G     8     8 Gilmore
4 ttys : ttyp 0, X.25 4 [x 1 y 3] Uids: 7 unique 6, active 0

=======Mon Oct 16 01:14:33 WET DST 1989 load average: 0.66, 0.57, 0.50 ========
==== ercm09/emas-a/stats/x89aug21.txt ====

===================Mon Aug 21 09:46:37 WET DST 1989========================
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   4 665176 809180    33    50 199.7M 245.5M  1984 12208 Brian
 1  0  on   7 707730 943375    22    32 83.42M 231.8M  1328  8184 Gilmore
 19 ttys : ttyp 10, X.25 9 [x 3 y 6]

===================Mon Aug 21 10:01:39 WET DST 1989========================
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   6 674012 821456    12    18 200.4M 247.3M  1424  2728 Brian
 1  0  on   8 719672 960199    28    36 84.16M 234.7M  1672  6064 Gilmore
 22 ttys : ttyp 11, X.25 11 [x 5 y 6]

===================Mon Aug 21 10:16:40 WET DST 1989========================
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on  11 697046 859406     9    13 202.7M 250.4M   552  2000 Brian
 1  0  on  11 732466 977804    18    24 84.93M 237.9M  1032  1936 Gilmore
 28 ttys : ttyp 11, X.25 17 [x 7 y 10]

===================Mon Aug 21 10:31:42 WET DST 1989========================
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on  11 720543 889209    11    15 205.0M 259.9M  1816  1072 Brian
 1  0  on  14 754427 1.008M    27    35 86.24M 243.9M  1584  7712 Gilmore
 32 ttys : ttyp 13, X.25 19 [x 7 y 12]

===================Mon Aug 21 10:46:44 WET DST 1989========================
==== ercm09/emas-a/stats/x89oct23.txt ====

=======Mon Oct 23 00:08:15 WET DST 1989 load average: 0.23, 0.25, 0.16 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   1 1.460M 1.799M     0     0 279.6M 482.7M     0     0 Brian
 1  0  on   1 2.143M 2.846M     0     0 138.5M 563.7M     8     8 Gilmore
5 ttys : ttyp 0, X.25 4 [x 1 y 3] Uids: 5 unique 5, active 0

=======Mon Oct 23 00:23:20 WET DST 1989 load average: 0.54, 0.38, 0.20 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   2 1.461M 1.801M     5     7 279.7M 483.0M   344  1264 Brian
 1  0  on   1 2.143M 2.846M     0     0 138.5M 563.7M     8     8 Gilmore
6 ttys : ttyp 0, X.25 5 [x 2 y 3] Uids: 7 unique 7, active 2

=======Mon Oct 23 00:38:27 WET DST 1989 load average: 0.39, 0.36, 0.29 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   1 1.461M 1.802M     0     0 279.7M 483.1M     0     0 Brian
 1  0  on   1 2.143M 2.846M     0     0 138.5M 563.7M     8     8 Gilmore
5 ttys : ttyp 0, X.25 4 [x 1 y 3] Uids: 6 unique 6, active 1

=======Mon Oct 23 00:53:30 WET DST 1989 load average: 0.50, 0.40, 0.34 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   1 1.461M 1.802M     0     0 279.7M 483.1M     0     0 Brian
 1  0  on   1 2.143M 2.846M     0     0 138.5M 563.7M     8     8 Gilmore
5 ttys : ttyp 0, X.25 4 [x 1 y 3] Uids: 6 unique 6, active 0

=======Mon Oct 23 01:08:36 WET DST 1989 load average: 0.21, 0.24, 0.25 ========
==== ercm09/emas-a/stats/x89aug28.txt ====

===================Mon Aug 28 00:11:15 WET DST 1989========================
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   2 1.004M 1.258M     0     0 187.8M 451.8M     0     0 Brian
 1  0  on   1 3.442M 5.759M     0     0 292.0M 679.9M     0     0 Gilmore
 6 ttys : ttyp 5, X.25 1 [x 0 y 1]

===================Mon Aug 28 00:26:17 WET DST 1989========================
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   2 1.004M 1.258M     0     0 187.8M 451.8M     0     0 Brian
 1  0  on   1 3.442M 5.759M     0     0 292.0M 679.9M     0     0 Gilmore
 6 ttys : ttyp 5, X.25 1 [x 0 y 1]

===================Mon Aug 28 00:41:19 WET DST 1989========================
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   2 1.004M 1.258M     0     0 187.8M 451.8M     0     0 Brian
 1  0  on   0 3.442M 5.759M     0     0 292.1M 679.9M     0     0 Gilmore
 2 ttys : ttyp 1, X.25 1 [x 0 y 1]

===================Mon Aug 28 00:56:21 WET DST 1989========================
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   2 1.004M 1.258M     0     0 187.8M 451.8M     0     0 Brian
 1  0  on   0 3.442M 5.759M     0     0 292.1M 679.9M     0     0 Gilmore
 2 ttys : ttyp 1, X.25 1 [x 0 y 1]

===================Mon Aug 28 01:11:23 WET DST 1989========================
==== ercm09/emas-a/stats/x90jan1.txt ====

=======Mon Jan 1 00:09:40 BST 1990 load average: 0.68, 0.64, 0.51 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   2 7.135M 9.398M     6     7 2.215G 2.818G   344  4688 000015001015
 1  0  on   1 3.875M 4.849M     0     0 330.8M 1.848G     8     8 000015005030
 2  0  on   0 3.890M 5.174M     0     0 236.6M 786.4M     0     0 000015005024
 3  0  on   0 104708 163672     0     0 8.101M 31.80M     0     0 000015001029
3 ttys : p 2 d 1, X.25 0 [x 0 y 0 z 0 e 0]
Uids: 3 unique 3, active 0

=======Mon Jan 1 00:24:44 BST 1990 load average: 0.53, 0.51, 0.50 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   1 7.137M 9.400M     3     3 2.215G 2.820G   136  2216 000015001015
 1  0  on   1 3.875M 4.849M     0     0 330.9M 1.848G     8     8 000015005030
 2  0  on   0 3.890M 5.174M     0     0 236.6M 786.4M     0     0 000015005024
 3  0  on   0 104726 163696     0     0 8.103M 31.81M     0     0 000015001029
3 ttys : p 2 d 1, X.25 0 [x 0 y 0 z 0 e 0]
Uids: 3 unique 3, active 0

=======Mon Jan 1 00:39:48 BST 1990 load average: 0.49, 0.53, 0.49 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   0 7.140M 9.404M     0     0 2.215G 2.822G     0     0 000015001015
 1  0  on   1 3.875M 4.849M     0     0 330.9M 1.848G     8     8 000015005030
 2  0  on   0 3.890M 5.174M     0     0 236.6M 786.4M     0     0 000015005024

==== ercm09/emas-a/stats/q89jul31.txt ====
0.2u 0.1s 0:00 70% 6+5io 0pf+0w
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on  22 389179 511692    33    43 27.23M 77.62M  2016  5000
Wed Aug  2 14:41:26 WET DST 1989
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on  23 394276 518144    57    71 27.55M 78.54M  3424 10400
Wed Aug  2 14:46:27 WET DST 1989
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on  23 407053 533755    50    66 28.55M 81.57M  3432  5312
Wed Aug  2 14:51:28 WET DST 1989
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on  24 422125 551880    47    65 29.59M 84.74M  2896  8304
Wed Aug  2 14:56:29 WET DST 1989
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on  25 432176 565346    34    46 30.31M 86.53M  2760  6688
Wed Aug  2 15:01:29 WET DST 1989
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on  23 444146 581091    45    57 31.13M 88.39M  2656  7280
Wed Aug  2 15:06:30 WET DST 1989
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on  21 453902 593306    32    42 31.75M 90.56M  1856  7264

==== ercm09/emas-a/stats/x90feb5.txt ====
=======Mon Feb 5 00:00:08 BST 1990 load average: 1.79, 1.80, 1.76 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   4 3.147M 3.935M     2     3 817.5M 1.011G   120  1992 000015001015
 1  0  on   3 3.136M 3.893M     0     0 594.9M 1.117G     8     8 000015005030
 2  0  on   5 4.614M 5.951M     0     0 347.1M 854.7M     0     0 000015005024
 3  0  on   0  40318  56362     0     0 2.684M 10.16M     0     0 000015001029
12 ttys : p 3 d 2, X.25 7 [x 0 y 2 z 5 e 0]
Uids: 13 unique 13, active 4

=======Mon Feb 5 00:15:17 BST 1990 load average: 1.89, 1.91, 1.83 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   4 3.149M 3.937M     0     0 817.6M 1.013G     0     0 000015001015
 1  0  on   3 3.138M 3.896M     0     0 595.0M 1.120G     8     8 000015005030
 2  0  on   5 4.614M 5.951M     0     0 347.1M 854.7M     0     0 000015005024
 3  0  on   0  40324  56370     0     0 2.685M 10.16M     0     0 000015001029
12 ttys : p 3 d 2, X.25 7 [x 0 y 2 z 5 e 0]
Uids: 13 unique 13, active 3

=======Mon Feb 5 00:30:23 BST 1990 load average: 1.80, 1.80, 1.80 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   4 3.150M 3.939M     0     0 817.7M 1.014G     0     0 000015001015
 1  0  on   2 3.140M 3.898M     0     0 595.1M 1.121G     8     8 000015005030
 2  0  on   6 4.617M 5.954M     1     2 347.3M 855.5M    88   200 000015005024

==== ercm09/emas-a/stats/x90apr30.txt ====
=======Wed Apr 25 11:54:14 BST 1990 load average: 3.44, 3.51, 3.35 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on  18 2.728M 3.639M    19    28 574.1M 783.3M  6096  3376 000015001015
 1  1  on  24 3.391M 5.332M    44    57 275.4M 834.5M  2584  9392 000015005030
 2  0  on  14 3.161M 2.946M    32    31 173.7M 462.7M  1712  4616 000015002011
 3  0  on   6 3.091M 2.968M    15    15 340.4M 474.8M   808  1000 000015002012
105 ttys : p 48 d 5, X.25 52 [x 8 y 22 z 16 e 6]
Uids: 106 unique 90, active 75

=======Wed Apr 25 12:09:30 BST 1990 load average: 3.11, 3.02, 3.04 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on  18 2.754M 3.677M    24    39 577.7M 789.0M  1568  5800 000015001015
 1  1  on  24 3.426M 5.377M    30    39 277.5M 840.7M  1752  3752 000015005030
 2  0  on  14 3.183M 2.966M    36    33 174.8M 466.4M  1944  6752 000015002011
 3  0  on   4 3.104M 2.979M    10    10 341.1M 476.3M   552   776 000015002012
110 ttys : p 51 d 7, X.25 52 [x 10 y 22 z 16 e 4]
Uids: 111 unique 92, active 79

=======Wed Apr 25 12:24:46 BST 1990 load average: 3.73, 3.67, 3.46 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on  22 2.795M 3.730M    55    75 588.8M 798.5M 19960  8208 000015001015
 1  1  on  27 3.458M 5.420M    34    48 279.6M 846.4M  2792  7840 000015005030
 2  0  on  14 3.215M 2.996M    40    38 176.5M 472.6M  2112 10032 000015002011

==== ercm09/emas-a/stats/q89aug7.txt ====
Mon Aug  7 00:03:28 WET DST 1989
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   5 1.901M 2.334M     0     0 598.4M 254.9M     0     0 Brian
 1  0  on   1 1.247M 1.602M     0     0 123.3M 598.8M     0     0 Gilmore
Mon Aug  7 00:53:35 WET DST 1989
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   6 1.920M 2.354M     7     7 609.4M 256.0M  4176   384 Brian
 1  0  on   1 1.247M 1.602M     0     0 123.3M 598.8M     0     0 Gilmore
Mon Aug  7 00:58:36 WET DST 1989
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   5 1.921M 2.354M     0     0 609.5M 256.0M     0     0 Brian
 1  0  on   1 1.247M 1.602M     0     0 123.3M 598.9M     0     0 Gilmore
Mon Aug  7 01:03:36 WET DST 1989
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   6 1.924M 2.358M    12    12 611.5M 256.2M  6152   704 Brian
 1  0  on   2 1.247M 1.602M     0     0 123.3M 598.9M     0     0 Gilmore
Mon Aug  7 01:08:37 WET DST 1989
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   6 1.927M 2.361M     0     0 613.2M 256.4M     0     0 Brian
 1  0  on   2 1.247M 1.602M     0     0 123.3M 598.9M     0     0 Gilmore
Mon Aug  7 01:43:42 WET DST 1989

==== ercm09/emas-a/stats/q89aug14.txt ====
Mon Aug 14 00:08:00 WET DST 1989
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 1  0  on   2 4.814M 6.148M     0     0 544.9M 1.277G    16    24 Gilmore
Mon Aug 14 00:23:01 WET DST 1989
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 1  0  on   1 4.815M 6.149M     0     0 545.0M 1.277G    16    24 Gilmore
Mon Aug 14 00:38:01 WET DST 1989
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 1  0  on   1 4.815M 6.149M     0     0 545.0M 1.277G    16    24 Gilmore
Mon Aug 14 00:53:02 WET DST 1989
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 1  0  on   1 4.815M 6.149M     0     0 545.0M 1.277G    16    24 Gilmore
Mon Aug 14 01:08:02 WET DST 1989
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 1  0  on   1 4.815M 6.150M     0     0 545.0M 1.277G    16    24 Gilmore
Mon Aug 14 01:23:03 WET DST 1989
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 1  0  on   1 4.816M 6.150M     0     0 545.0M 1.277G    16    24 Gilmore
Mon Aug 14 01:38:03 WET DST 1989
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 1  0  on   1 4.816M 6.150M     0     0 545.0M 1.277G    16     8 Gilmore

==== ercm09/emas-a/stats/x89oct2.txt ====
=======Mon Oct 2 00:02:42 WET DST 1989 load average: 0.03, 0.04, 0.00 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   1 2.097M 2.694M     0     0 318.1M 708.1M     0     0 Brian
 1  0  on   1 2.482M 3.252M     0     0 156.5M 614.9M     8     8 Gilmore
3 ttys : ttyp 2, X.25 1 [x 0 y 1] Uids: 3 unique 3, active 0

=======Mon Oct 2 00:17:45 WET DST 1989 load average: 0.26, 0.15, 0.01 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   2 2.099M 2.695M     3     4 318.2M 709.2M   160  2672 Brian
 1  0  on   1 2.482M 3.252M     0     0 156.5M 614.9M     8     8 Gilmore
3 ttys : ttyp 2, X.25 1 [x 0 y 1] Uids: 4 unique 4, active 1

=======Mon Oct 2 00:32:48 WET DST 1989 load average: 0.17, 0.17, 0.00 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   1 2.100M 2.697M     1     1 318.3M 710.1M    64   144 Brian
 1  0  on   1 2.482M 3.253M     0     0 156.5M 614.9M     8     8 Gilmore
3 ttys : ttyp 2, X.25 1 [x 0 y 1] Uids: 4 unique 4, active 1

=======Mon Oct 2 00:47:51 WET DST 1989 load average: 0.13, 0.06, 0.00 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   2 2.101M 2.698M     3     4 318.3M 711.3M   160  2664 Brian
 1  0  on   1 2.482M 3.253M     0     0 156.6M 614.9M     8     8 Gilmore
3 ttys : ttyp 2, X.25 1 [x 0 y 1] Uids: 3 unique 3, active 0

=======Mon Oct 2 01:02:54 WET DST 1989 load average: 0.03, 0.04, 0.00 ========
==== ercm09/emas-a/stats/x89oct9.txt ====

=======Mon Oct 9 00:15:00 WET DST 1989 load average: 0.04, 0.01, 0.00 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   0 219841 297109     0     0 19.88M 35.83M    48    16 Brian
 1  0  on   0 278523 371281     0     0 16.91M 49.66M     8     8 Gilmore
0 ttys : ttyp 0, X.25 0 [x 0 y 0] Uids: 0 unique 0, active 0

=======Mon Oct 9 00:30:03 WET DST 1989 load average: 0.00, 0.00, 0.00 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   0 219931 297244     0     0 19.90M 35.84M     0     0 Brian
 1  0  on   0 278673 371431     0     0 16.92M 49.67M     8     8 Gilmore
0 ttys : ttyp 0, X.25 0 [x 0 y 0] Uids: 0 unique 0, active 0

=======Mon Oct 9 00:45:06 WET DST 1989 load average: 0.06, 0.01, 0.00 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   0 220001 297349     0     0 19.91M 35.84M     0     0 Brian
 1  0  on   0 278823 371581     0     0 16.93M 49.68M     8     8 Gilmore
0 ttys : ttyp 0, X.25 0 [x 0 y 0] Uids: 0 unique 0, active 0

=======Mon Oct 9 01:00:09 WET DST 1989 load average: 0.02, 0.00, 0.00 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   0 220063 297442     0     0 19.93M 35.85M     0     0 Brian
 1  0  on   0 278974 371732     0     0 16.93M 49.68M     8     8 Gilmore
0 ttys : ttyp 0, X.25 0 [x 0 y 0] Uids: 0 unique 0, active 0

=======Mon Oct 9 01:15:12 WET DST 1989 load average: 0.04, 0.01, 0.00 ========
==== ercm09/emas-a/stats/x89nov6.txt ====

=======Mon Nov 6 00:10:41 BST 1989 load average: 2.24, 2.27, 2.12 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   6 5.501M 6.920M     6     8 1.086G 1.391G  1584  1472 Brian
 1  0  on   4 7.278M 9.316M     7     9 524.6M 1.807G   912   624 Gilmore
12 ttys : ttyp 3, X.25 5 [x 4 y 1] Uids: 13 unique 11, active 6

=======Mon Nov 6 00:25:44 BST 1989 load average: 1.97, 2.10, 2.11 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   5 5.504M 6.923M     0     0 1.087G 1.391G     0     0 Brian
 1  0  on   3 7.287M 9.328M     7     9 525.1M 1.812G   392   488 Gilmore
10 ttys : ttyp 3, X.25 5 [x 4 y 1] Uids: 11 unique 9, active 3

=======Mon Nov 6 00:40:47 BST 1989 load average: 1.91, 1.95, 1.97 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   5 5.505M 6.924M     0     0 1.087G 1.392G     0     0 Brian
 1  0  on   1 7.291M 9.333M     4     6 525.4M 1.815G   232   976 Gilmore
10 ttys : ttyp 3, X.25 5 [x 4 y 1] Uids: 11 unique 9, active 4

=======Mon Nov 6 00:55:50 BST 1989 load average: 1.96, 1.89, 1.87 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   6 5.510M 6.931M    12    14 1.088G 1.393G  3184  2656 Brian
 1  0  on   1 7.295M 9.339M     2     2 525.6M 1.817G   112   144 Gilmore
10 ttys : ttyp 3, X.25 5 [x 4 y 1] Uids: 10 unique 9, active 3

=======Mon Nov 6 01:10:54 BST 1989 load average: 2.00, 2.02, 1.91 ========
==== ercm09/emas-a/stats/x89dec14.txt ====

=======Mon Dec 4 00:02:07 BST 1989 load average: 2.92, 2.69, 2.59 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   6 10.58M 13.39M     7    10 1.997G 3.387G   600  1040 000015001015
 1  0  on   4 9.524M 12.17M     7     9 822.7M 3.190G   952   472 000015005030
 2  0  on   3 8.492M 11.19M     4     5 521.1M 1.873G   232   376 000015005024
 3  0  on   0 787780 920117     0     0 59.41M 118.7M     0     0 000015001029
25 ttys : p 9 d 6, X.25 10 [x 5 y 2 z 3 e 0]
Uids: 25 unique 20, active 9

=======Mon Dec 4 00:17:13 BST 1989 load average: 3.02, 2.83, 2.69 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   4 10.58M 13.39M     2     2 1.997G 3.388G    96   192 000015001015
 1  0  on   3 9.529M 12.18M     5     5 823.7M 3.192G   296  2112 000015005030
 2  0  on   2 8.492M 11.19M     0     0 521.1M 1.873G     0     0 000015005024
 3  0  on   0 787780 920117     0     0 59.41M 118.7M     0     0 000015001029
21 ttys : p 9 d 4, X.25 8 [x 4 y 2 z 2 e 0]
Uids: 22 unique 18, active 5

=======Mon Dec 4 00:32:17 BST 1989 load average: 2.57, 2.62, 2.63 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   4 10.59M 13.40M     1     1 2.000G 3.389G    48   440 000015001015
 1  0  on   2 9.532M 12.18M     5     5 823.9M 3.195G   256  3984 000015005030
 2  0  on   4 8.492M 11.19M     0     0 521.1M 1.873G     0     0 000015005024

==== ercm09/emas-a/stats/x89dec21.txt ====
=======Mon Dec 18 10:31:45 BST 1989 load average: 0.43, 0.38, 0.33 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on  10 100612 126143    21    27 18.89M 14.70M  1704  1608 000015001015
 1  0  on   8  51966  67541    10    14 3.738M 15.44M  1176  1688 000015005030
 2  0  on  14  79574 106539    16    20 4.801M 15.12M  1016  2424 000015005024
 3  0  on   0    783   1043     1     1  87520 191504    64   144 000015001029
57 ttys : p 29 d 3, X.25 25 [x 5 y 6 z 14 e 0]
Uids: 57 unique 44, active 42

=======Mon Dec 18 10:46:49 BST 1989 load average: 0.46, 0.56, 0.48 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on  12 122321 153468     0     0 21.83M 19.17M     0     0 000015001015
 1  0  on   9  65535  84942     0     0 5.103M 18.59M     8    40 000015005030
 2  0  on  11 103769 137402    15    19 6.265M 19.29M   872  2528 000015005024
 3  0  on   0    801   1067     0     0  89536 195920     0     0 000015001029
61 ttys : p 32 d 4, X.25 25 [x 6 y 8 z 11 e 0]
Uids: 61 unique 46, active 46

=======Mon Dec 18 11:01:53 BST 1989 load average: 0.57, 0.60, 0.50 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on  12 137171 172759     8    10 23.44M 22.38M  3232  1512 000015001015
 1  0  on   8  78747 101664    18    22 6.246M 22.80M  2256  5824 000015005030
 2  0  on  13 128396 169852     9    11 7.735M 22.87M   504  1008 000015005024

==== ercm09/emas-a/stats/x90jan15.txt ====
=======Mon Jan 15 09:29:24 BST 1990 load average: 0.83, 0.75, 0.55 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   8 2.007M 2.458M    42    53 399.4M 948.8M  2680  4264 000015001015
 1  0  on   7 1.124M 1.426M     9    13 85.88M 561.9M   528  2512 000015005030
 2  0  on   6 2.656M 3.464M     7    12 160.3M 590.9M   440  1944 000015005024
 3  0  on   1  13762  20468     2     2 1.210M 3.539M   112   256 000015001029
45 ttys : p 26 d 0, X.25 19 [x 5 y 6 z 7 e 1]
Uids: 45 unique 34, active 32

=======Mon Jan 15 09:44:28 BST 1990 load average: 0.91, 0.92, 0.75 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on  12 2.041M 2.499M    38    50 401.9M 959.8M  2952  8640 000015001015
 1  0  on  10 1.139M 1.446M    15    20 86.74M 565.7M   880  5160 000015005030
 2  0  on   8 2.666M 3.478M    13    17 160.9M 593.1M   848  1128 000015005024
 3  0  on   0  13791  20506     0     0 1.213M 3.544M     0     0 000015001029
61 ttys : p 33 d 2, X.25 26 [x 8 y 9 z 9 e 0]
Uids: 61 unique 47, active 42

=======Mon Jan 15 09:59:34 BST 1990 load average: 0.80, 0.84, 0.82 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   9 2.069M 2.533M    29    37 404.0M 966.7M  1688  2512 000015001015
 1  0  on   9 1.151M 1.464M    12    17 87.82M 568.8M   696  3584 000015005030
 2  0  on  13 2.678M 3.493M    32    40 161.6M 595.4M  1912  6976 000015005024

==== ercm09/emas-a/stats/x90jan22.txt ====
=======Mon Jan 22 00:12:41 BST 1990 load average: 2.30, 2.33, 2.31 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   9 10.56M 13.04M     6     9 1.757G 3.657G   368   960 000015001015
 1  0  on   8 12.25M 19.28M    25    49 1.005G 3.157G  1568  2744 000015005030
 2  0  on   1 5.002M 6.693M     0     0 305.0M 1.056G     0     0 000015005024
 3  0  on   0 159867 236302     0     0 11.08M 39.48M     0     0 000015001029
26 ttys : p 13 d 4, X.25 9 [x 6 y 2 z 1 e 0]
Uids: 27 unique 20, active 5

=======Mon Jan 22 00:27:45 BST 1990 load average: 2.29, 2.28, 2.28 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   9 10.57M 13.05M     0     0 1.757G 3.658G     0     0 000015001015
 1  0  on   8 12.28M 19.32M    26    52 1.007G 3.160G  1672  2912 000015005030
 2  0  on   1 5.002M 6.694M     0     0 305.0M 1.056G     0     0 000015005024
 3  0  on   0 159891 236334     0     0 11.08M 39.48M     0     0 000015001029
25 ttys : p 13 d 4, X.25 8 [x 5 y 2 z 1 e 0]
Uids: 26 unique 19, active 5

=======Mon Jan 22 00:42:50 BST 1990 load average: 2.43, 2.40, 2.33 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   6 10.57M 13.05M     0     0 1.757G 3.659G     0     0 000015001015
 1  0  on   8 12.30M 19.37M    26    52 1.008G 3.162G  1656  2904 000015005030
 2  0  on   1 5.002M 6.694M     0     0 305.0M 1.056G     0     0 000015005024

==== ercm09/emas-a/stats/x90jan29.txt ====
=======Mon Jan 29 00:00:43 BST 1990 load average: 1.06, 0.82, 0.68 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   1 2.043M 2.539M     0     0 336.8M 829.0M     8    24
 1  0  on   1 1.944M 2.500M     0     0 149.9M 694.2M     8     8
 2  0  on   2 2.781M 3.732M     0     0 170.4M 542.3M     0     0
 3  0  on   0  11422  18534     0     0 796064 3.038M     0     0
11 ttys : p 5 d 2, X.25 4 [x 0 y 0 z 4 e 0]
Uids: 12 unique 11, active 5

=======Mon Jan 29 00:15:51 BST 1990 load average: 0.99, 0.94, 0.83 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   1 2.043M 2.539M     0     0 336.8M 829.0M     0     0
 1  0  on   1 1.944M 2.501M     0     0 149.9M 694.2M     8     8
 2  0  on   2 2.781M 3.732M     0     0 170.4M 542.3M     0     0
 3  0  on   0  11422  18534     0     0 796064 3.038M     0     0
12 ttys : p 6 d 2, X.25 4 [x 0 y 0 z 4 e 0]
Uids: 13 unique 12, active 6

=======Mon Jan 29 00:30:55 BST 1990 load average: 0.91, 0.80, 0.77 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   2 2.043M 2.540M     0     0 336.9M 829.1M     0     0
 1  0  on   2 1.945M 2.501M     1     1 149.9M 694.2M    40    72
 2  0  on   2 2.781M 3.732M     0     0 170.4M 542.3M     0     0

==== ercm09/emas-a/stats/x90jun18.txt ====
=======Wed Jun 6 09:52:56 BST 1990 load average: 1.41, 1.44, 1.23 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on  13 5.815M 7.328M     6     9 934.8M 2.201G   384   936 000015001015
 1  1  on  12 4.149M 5.164M    35    48 483.5M 2.283G  2584 10608 000015001020
 2  0  on   9 1.393M 1.356M    37    36 116.8M 185.3M  2048  4064 000015002011
 3  0  on  15 7.010M 6.514M    44    42 377.6M 1.217G  2360  4984 000015002012
98 ttys : p 49 d 2, X.25 47 [x 13 y 10 z 9 e 15]
Uids: 97 unique 80, active 64

=======Wed Jun 6 10:08:02 BST 1990 load average: 1.54, 1.38, 1.23 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on  14 5.836M 7.356M    39    51 936.3M 2.205G  2256  9592 000015001015
 1  1  on  12 4.159M 5.177M    13    18 484.5M 2.286G   784  1976 000015001020
 2  0  on   7 1.413M 1.375M    77    68 117.9M 188.2M  4040  9832 000015002011
 3  0  on  16 7.054M 6.556M    34    31 380.5M 1.223G  1768  8216 000015002012
102 ttys : p 52 d 2, X.25 48 [x 14 y 11 z 7 e 16]
Uids: 102 unique 79, active 64

=======Wed Jun 6 10:23:09 BST 1990 load average: 1.30, 1.31, 1.29 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on  13 5.865M 7.394M    13    17 938.3M 2.211G   752  2528 000015001015
 1  1  on  11 4.174M 5.198M    18    24 485.8M 2.290G  1688  2256 000015001020
 2  0  on   4 1.422M 1.384M     0     0 118.4M 189.6M     0     0 000015002011

==== ercm09/emas-a/stats/net89dec7.txt ====
Mon Nov 20 00:11:07 BST 1989
328/2048 mbufs in use:
	31 
	15 
	122 
	56 
	85 
	15 
	2 
	2 
22/200 mapped pages in use
556 Kbytes allocated to network (13% in use)
0 requests for memory denied
0 requests for clusters denied
Mon Nov 20 00:26:08 BST 1989
322/2048 mbufs in use:
	31 
	14 
	120 
	55 
	83 

==== ercm09/emas-a/stats/x90mar12.txt ====
=======Mon Mar 5 00:06:21 BST 1990 load average: 1.35, 1.17, 0.94 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   6 4.782M 5.635M    13    17 736.8M 1.849G  1400  3648 000015001015
 2  0  on   3 5.988M 8.001M     0     0 365.0M 1.183G     0     0 000015005024
 3  0  on   1 1.963M 1.871M     0     0 109.1M 281.8M     0     0 000015002012
19 ttys : p 6 d 3, X.25 10 [x 6 y 0 z 3 e 1]
Uids: 20 unique 16, active 6

=======Mon Mar 5 00:21:28 BST 1990 load average: 1.20, 1.25, 1.08 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   6 4.794M 5.650M    13    18 737.7M 1.852G   792  1208 000015001015
 2  0  on   3 5.988M 8.001M     0     0 365.0M 1.183G     0     0 000015005024
 3  0  on   3 1.967M 1.875M     6     6 109.3M 282.5M   312   392 000015002012
21 ttys : p 6 d 3, X.25 12 [x 6 y 0 z 3 e 3]
Uids: 22 unique 18, active 8

=======Mon Mar 5 00:36:33 BST 1990 load average: 1.11, 1.00, 0.96 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   5 4.796M 5.652M     3     3 737.9M 1.852G   136  2216 000015001015
 2  0  on   3 5.988M 8.001M     0     0 365.0M 1.183G     0     0 000015005024
 3  0  on   3 1.982M 1.890M    40    40 110.1M 284.2M  2128  4784 000015002012
20 ttys : p 6 d 3, X.25 11 [x 5 y 0 z 3 e 3]
Uids: 21 unique 17, active 5

==== ercm09/emas-a/stats/x89nov13.txt ====
=======Mon Nov 13 00:13:19 BST 1989 load average: 1.00, 0.99, 0.85 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   4 1.624M 2.109M    10    12 253.6M 438.4M   568   616 Brian
 1  0  on   2 2.564M 3.374M     1     1 178.0M 630.3M    64    48 Gilmore
7 ttys : ttyp 3, X.25 4 [x 3 y 1] Uids: 8 unique 7, active 4

=======Mon Nov 13 00:28:22 BST 1989 load average: 1.02, 1.00, 0.86 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   3 1.626M 2.112M     0     0 253.8M 438.6M     0     0 Brian
 1  0  on   2 2.566M 3.376M     3     3 178.1M 631.8M   144  2232 Gilmore
6 ttys : ttyp 3, X.25 3 [x 2 y 1] Uids: 7 unique 6, active 2

=======Mon Nov 13 00:43:25 BST 1989 load average: 0.81, 0.77, 0.79 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   3 1.627M 2.113M     0     0 253.8M 438.7M     0     0 Brian
 1  0  on   1 2.568M 3.378M     0     0 178.2M 633.0M    48    16 Gilmore
6 ttys : ttyp 3, X.25 3 [x 2 y 1] Uids: 7 unique 6, active 2

=======Mon Nov 13 00:58:28 BST 1989 load average: 0.90, 0.83, 0.80 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   3 1.628M 2.114M     7     8 253.9M 438.8M   384   840 Brian
 1  0  on   2 2.572M 3.384M     5     7 178.5M 634.8M   288   536 Gilmore
6 ttys : ttyp 3, X.25 3 [x 2 y 1] Uids: 7 unique 6, active 2

=======Mon Nov 13 01:13:31 BST 1989 load average: 1.11, 0.94, 0.81 ========
==== ercm09/emas-a/stats/x89nov20.txt ====

=======Mon Nov 20 00:12:32 BST 1989 load average: 2.79, 2.75, 2.63 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on  10 10.52M 13.01M     3     6 1.545G 2.626G   200  1408 Brian
 1  0  on   5 12.40M 15.55M     0     0 894.0M 3.678G     8     8 Gilmore
14 ttys : ttyp 6, X.25 6 [x 2 y 4] Uids: 15 unique 13, active 4

=======Mon Nov 20 00:27:35 BST 1989 load average: 2.90, 2.79, 2.67 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on  11 10.52M 13.02M     1     1 1.545G 2.626G    80   200 Brian
 1  0  on   5 12.40M 15.55M     0     0 894.0M 3.678G     8     8 Gilmore
16 ttys : ttyp 6, X.25 6 [x 2 y 4] Uids: 17 unique 14, active 5

=======Mon Nov 20 00:42:39 BST 1989 load average: 2.85, 2.77, 2.67 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on  10 10.52M 13.02M     1     2 1.545G 2.627G    80   280 Brian
 1  0  on   5 12.40M 15.55M     0     0 894.1M 3.678G     8     8 Gilmore
16 ttys : ttyp 6, X.25 6 [x 2 y 4] Uids: 17 unique 14, active 3

=======Mon Nov 20 00:57:43 BST 1989 load average: 2.66, 2.64, 2.60 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on  10 10.52M 13.02M     0     0 1.545G 2.627G    24    24 Brian
 1  0  on   6 12.40M 15.55M     0     0 894.1M 3.679G     8     8 Gilmore
18 ttys : ttyp 6, X.25 7 [x 2 y 5] Uids: 18 unique 14, active 5

=======Mon Nov 20 01:12:46 BST 1989 load average: 2.68, 2.63, 2.52 ========
==== ercm09/emas-a/stats/x89nov27.txt ====

=======Fri Nov 24 09:40:19 BST 1989 load average: 1.78, 1.73, 1.59 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   8 1.994M 2.370M    11    14 285.5M 781.9M   624  1056 Brian
 1  0  on  17 1.748M 2.192M    19    26 124.2M 480.0M  1112  2256 Gilmore
 2  0  on   0 242981 309490     0     0 19.45M 30.26M     0     0
 3  0  on   0 574498 631297     0     0 46.36M 78.01M     0     0
51 ttys : p 27 d 3, X.25 21 [x 5 y 16 z 0 e 0]
Uids: 51 unique 38, active 33

=======Fri Nov 24 09:55:23 BST 1989 load average: 2.20, 2.04, 1.83 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on  11 2.004M 2.383M    19    25 286.8M 783.1M  1280  3688 Brian
 1  0  on  21 1.770M 2.221M    33    40 125.5M 484.9M  1912  7400 Gilmore
 2  0  on   0 243011 309530     0     0 19.45M 30.27M    16   120
 3  0  on   2 577538 635211     1     1 46.55M 78.57M    56   152
68 ttys : p 29 d 8, X.25 29 [x 8 y 21 z 0 e 2]
Uids: 68 unique 54, active 50

=======Fri Nov 24 10:10:27 BST 1989 load average: 2.29, 2.14, 1.95 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on  12 2.015M 2.396M    19    25 287.9M 785.6M  1336  2600 Brian
 1  0  on  28 1.799M 2.261M    21    31 127.3M 491.9M  1312  5328 Gilmore
 2  0  on   0 243035 309562     0     0 19.46M 30.28M     0     0

==== ercm09/emas-a/stats/x90apr6.txt ====
=======Mon Mar 19 10:13:41 BST 1990 load average: 1.74, 1.65, 1.41 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on  15 7.408M 9.708M    19    24 1.284G 2.478G  1280  9584 000015001015
 1  1  on  16 5.817M 7.292M    45    60 659.3M 2.467G  2704  8704 000015005030
 2  0  on  13 12.52M 11.98M     7     6 679.7M 1.613G   384   408 000015002011
 3  0  on   3 7.374M 7.075M     1     1 408.5M 1.126G    56   112 000015002012
81 ttys : p 27 d 6, X.25 37 [x 8 y 13 z 13 e 3]
Uids: 80 unique 60, active 56

=======Mon Mar 19 10:28:48 BST 1990 load average: 1.89, 1.77, 1.56 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on  13 7.434M 9.738M    29    37 1.288G 2.488G  4392  6416 000015001015
 1  1  on  11 5.858M 7.344M    28    37 665.0M 2.476G  1760  4784 000015005030
 2  0  on  11 12.55M 12.00M    26    25 681.0M 1.617G  1480  2976 000015002011
 3  0  on   6 7.380M 7.081M    13    13 408.8M 1.127G   704  2688 000015002012
76 ttys : p 32 d 5, X.25 29 [x 4 y 8 z 11 e 6]
Uids: 75 unique 54, active 44

=======Mon Mar 19 10:43:54 BST 1990 load average: 1.26, 1.37, 1.43 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on  13 7.447M 9.756M     9    12 1.289G 2.491G  2432  1688 000015001015
 1  1  on  11 5.875M 7.367M    12    16 666.2M 2.479G   656  4048 000015005030
 2  0  on  11 12.58M 12.03M    22    22 682.6M 1.622G  1184  3272 000015002011

==== ercm09/emas-a/stats/net89dec18.txt ====
Thu Dec  7 14:22:15 BST 1989
429/576 mbufs in use:
	34 
	44 
	142 
	70 
	123 
	14 
	2 
22/200 mapped pages in use
372 Kbytes allocated to network (23% in use)
0 requests for memory denied
0 requests for clusters denied
Thu Dec  7 14:37:16 BST 1989
733/864 mbufs in use:
	111 
	73 
	228 
	108 
	197 
	14 

==== ercm09/emas-a/stats/x90jun1.txt ====
=======Mon Jun 18 00:07:51 BST 1990 load average: 0.85, 0.77, 0.65 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   1 6.341M 7.956M     0     0 1.046G 2.148G    24    48 000015001015
 1  1  on   0 4.365M 5.508M     0     0 493.6M 2.014G     0     0 000015001020
 2  0  on   1 1.545M 1.491M     0     0 98.05M 228.0M     0     0 000015002011
 3  0  on   1 8.048M 7.594M     0     0 453.0M 1.239G     0     0 000015002012
20 ttys : p 17 d 0, X.25 3 [x 0 y 0 z 1 e 2]
Uids: 20 unique 15, active 1

=======Mon Jun 18 00:22:59 BST 1990 load average: 0.68, 0.65, 0.62 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   0 6.342M 7.957M     0     0 1.046G 2.148G    16     8 000015001015
 1  1  on   0 4.365M 5.508M     0     0 493.6M 2.014G     0     0 000015001020
 2  0  on   1 1.545M 1.491M     0     0 98.06M 228.0M    24   120 000015002011
 3  0  on   1 8.049M 7.594M     2     2 453.0M 1.239G   160   296 000015002012
21 ttys : p 17 d 1, X.25 3 [x 0 y 0 z 1 e 2]
Uids: 21 unique 16, active 2

=======Mon Jun 18 00:38:05 BST 1990 load average: 0.61, 0.56, 0.50 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   1 6.342M 7.957M     0     0 1.046G 2.148G    40    56 000015001015
 1  1  on   0 4.365M 5.508M     0     0 493.6M 2.014G     0     0 000015001020
 2  0  on   1 1.545M 1.491M     0     0 98.07M 228.1M     0     0 000015002011

==== ercm09/emas-a/stats/x90jun4.txt ====
=======Mon May 7 16:45:44 BST 1990 load average: 1.75, 1.86, 1.99 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on  16 3.830M 4.944M    42    53 509.2M 1.380G 10400 17520 000015001015
 1  1  on   6 2.627M 3.288M     6     9 294.5M 1.262G   376  1464 000015005030
 2  0  on   2  40752  40393    51    47 3.555M 7.349M  2640  9952 000015002011
 3  0  on  17 6.203M 5.833M    26    26 340.6M 951.2M  1536  3592 000015002012
102 ttys : p 59 d 7, X.25 36 [x 15 y 3 z 2 e 16]
Uids: 103 unique 78, active 60

=======Mon May 7 17:00:52 BST 1990 load average: 2.18, 1.91, 1.85 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on  18 3.852M 4.973M    31    44 511.3M 1.385G  1944 13584 000015001015
 1  1  on  11 2.640M 3.304M    21    26 295.7M 1.268G  1672 11352 000015005030
 2  0  on   3  52620  51855    22    21 4.195M 9.092M  1168  3432 000015002011
 3  0  on  17 6.239M 5.866M    20    20 342.5M 956.9M  1160  2784 000015002012
95 ttys : p 46 d 8, X.25 41 [x 18 y 3 z 3 e 17]
Uids: 94 unique 77, active 59

=======Mon May 7 17:16:01 BST 1990 load average: 2.29, 2.32, 2.12 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on  16 3.889M 5.021M    45    59 516.6M 1.391G  3960  6440 000015001015
 1  1  on  16 2.666M 3.334M    12    16 298.1M 1.286G  4208  5136 000015005030
 2  0  on   3  63617  62651    20    20 4.788M 10.59M  1064  1944 000015002011

==== ercm09/emas-a/stats/x90feb12.txt ====
=======Mon Feb 12 09:28:29 BST 1990 load average: 0.68, 0.55, 0.37 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   7  74613  93199     3     5 22.20M 16.62M   224   888 000015001015
 1  0  on  10  71645  94606    39    50 4.311M 14.53M  2320  8104 000015005030
 2  0  on   6  34970  47267     7     9 2.060M 7.893M   392  2688 000015005024
 3  0  on   0  21722  21624     0     0 1.194M 2.195M     0     0 000015002012
38 ttys : p 15 d 0, X.25 23 [x 7 y 9 z 7 e 0]
Uids: 38 unique 32, active 29

=======Mon Feb 12 09:43:33 BST 1990 load average: 0.89, 0.72, 0.53 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on  11  85255 106642    32    42 24.26M 20.15M  3744 27168 000015001015
 1  0  on  15  99505 131037    32    44 5.998M 19.51M  1936  6352 000015005030
 2  0  on  14  49830  67029    59    71 2.931M 11.36M  3472  8192 000015005024
 3  0  on   1  23859  23736     0     0 1.307M 2.606M     0     0 000015002012
66 ttys : p 27 d 1, X.25 38 [x 8 y 14 z 15 e 1]
Uids: 67 unique 56, active 46

=======Mon Feb 12 09:58:37 BST 1990 load average: 2.17, 1.68, 1.16 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on  16 103204 130231    23    31 27.86M 23.07M  1368  3736 000015001015
 1  0  on  16 133400 174559    40    46 8.028M 26.54M  2360  9224 000015005030
 2  0  on  14  81117 106130    37    47 4.779M 18.18M  2216  5040 000015005024

==== ercm09/emas-a/stats/x90feb19.txt ====
=======Mon Feb 19 09:17:26 BST 1990 load average: 2.28, 2.23, 2.00 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   6 156934 192271    11    15 50.31M 25.75M   712  1192 000015001015
 1  0  on   6  55418  71037     7     9 5.935M 10.99M   912   736 000015005030
 2  0  on   9  83094 113812    20    26 5.378M 20.06M  1168  3296 000015005024
 3  0  on   0   9703   9676     0     0 530504 838136     0     0 000015002012
44 ttys : p 20 d 1, X.25 23 [x 8 y 6 z 9 e 0]
Uids: 44 unique 33, active 30

=======Mon Feb 19 09:34:56 BST 1990 load average: 2.00, 2.06, 2.00 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   6 175031 215374    21    28 51.60M 29.85M  1264  3168 000015001015
 1  0  on   7  72787  93500     4     6 7.441M 14.67M   232  1096 000015005030
 2  0  on  15 101473 137491    46    57 6.472M 24.29M  2648 15040 000015005024
 3  0  on   1  15462  15230     0     0 831432 2.088M     0     0
59 ttys : p 25 d 3, X.25 31 [x 8 y 7 z 15 e 1]
Uids: 59 unique 48, active 44

=======Mon Feb 19 09:51:49 BST 1990 load average: 1.87, 1.64, 1.62 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   9   1862   2522    19    23 272376 606320  1160 10800
 1  0  on   4   1598   2190     5     8 178576 411864   304  1472
 2  0  on  11   3927   5387    18    23 241144 839848  1144  2544

==== ercm09/emas-a/stats/x90feb26.txt ====
=======Mon Feb 26 00:04:51 BST 1990 load average: 1.30, 1.23, 1.07 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   3 1.689M 2.147M     0     0 309.2M 564.2M     8    16 000015001015
 1  0  on   4 2.093M 2.615M     0     0 245.5M 907.1M     8     8 000015005030
 2  0  on   4 2.287M 3.032M     0     0 142.9M 530.3M    16   120 000015005024
 3  0  on   0  37260  31334     0     0 2.494M 3.209M     0     0 000015002012
16 ttys : p 5 d 2, X.25 9 [x 2 y 3 z 4 e 0]
Uids: 16 unique 15, active 4

=======Mon Feb 26 00:19:57 BST 1990 load average: 1.35, 1.30, 1.17 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   3 1.693M 2.152M     0     0 309.7M 567.2M     0     0 000015001015
 1  0  on   4 2.094M 2.616M     0     0 245.6M 907.8M     8    16 000015005030
 2  0  on   4 2.288M 3.032M     0     0 142.9M 530.3M     0     0 000015005024
 3  0  on   0  37260  31334     0     0 2.494M 3.209M     0     0 000015002012
16 ttys : p 5 d 2, X.25 9 [x 2 y 3 z 4 e 0]
Uids: 17 unique 16, active 5

=======Mon Feb 26 00:35:03 BST 1990 load average: 1.23, 1.22, 1.16 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   4 1.697M 2.157M     4     5 310.0M 570.7M  1200   384 000015001015
 1  0  on   5 2.097M 2.621M     0     0 246.1M 908.2M     8     8 000015005030
 2  0  on   4 2.288M 3.033M     0     0 142.9M 530.4M     0     0 000015005024

==== ercm09/emas-a/stats/x90may7.txt ====
=======Mon Apr 30 00:06:25 BST 1990 load average: 1.97, 1.89, 1.73 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   4 6.121M 7.916M     1     1 1.094G 2.054G    72    56 000015001015
 1  1  on   3 6.923M 9.787M     1     1 664.5M 1.981G    40    56 000015005030
 2  0  on   0 4.980M 4.674M     0     0 275.7M 720.5M     0     0 000015002011
 3  0  on   5 11.62M 11.03M    36    36 1.078G 1.747G 16728  1912 000015002012
28 ttys : p 11 d 7, X.25 10 [x 1 y 3 z 2 e 4]
Uids: 29 unique 20, active 7

=======Mon Apr 30 00:21:35 BST 1990 load average: 2.22, 2.10, 1.88 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   3 6.123M 7.918M     0     0 1.094G 2.055G    16    24 000015001015
 1  1  on   3 6.924M 9.789M     0     0 664.5M 1.982G     8     8 000015005030
 2  0  on   0 4.980M 4.674M     0     0 275.7M 720.5M     0     0 000015002011
 3  0  on   4 11.65M 11.05M    22    16 1.085G 1.750G  1184 10552 000015002012
28 ttys : p 11 d 7, X.25 10 [x 1 y 3 z 2 e 4]
Uids: 29 unique 20, active 7

=======Mon Apr 30 00:36:47 BST 1990 load average: 2.07, 1.97, 1.84 ========
-c -l sts vcs rx frm tx frm r f/s t f/s rxbits txbits rxbps txbps name
 0  0  on   3 6.125M 7.920M     5     7 1.094G 2.056G   288  2728 000015001015
 1  1  on   3 6.926M 9.792M    28    34 664.7M 1.983G  1544 24832 000015005030
 2  0  on   0 4.980M 4.674M     0     0 275.7M 720.5M     0     0 000015002011

==== ercm09/emas-a/padans.txt ====
%EXTERNALROUTINE padan(%STRING (255) s)
%EXTERNALROUTINESPEC prompt %ALIAS "S#PROMPT"(%STRING (255) s)
   %ROUTINE define(%STRING (255) s)
      %EXTERNALROUTINESPEC emas3(%STRINGNAME command,params, %INTEGERNAME flag)
      %INTEGER flag
      emas3("DEFINE",s,flag)
   %END;                                 ! Of %ROUTINE define.
   %STRING (255) t,u,v,s2,t2,padname
   %INTEGER i,j,k,x,crash, st,m1,m2
   %OWNINTEGER this day,hours,thours
   %OWNINTEGER max= 0, fhours, hours up, fday = 2
   %REAL mtbf

   %RECORDFORMAT padf(%STRING (15) name, %INTEGER last crash,crash,lastt,
      maxu,first,last)
   %OWNRECORD (padf) %ARRAY pada(1:100)
   %OWNRECORD (padf) %NAME pad

   %STRING (255) %ARRAY res(1:12)
   %OWNINTEGER no of res


==== ercm09/emas-a/x25addr.txt ====
\documentstyle[a4]{article}
\leftmargin -1.5em
\begin{document}
\huge \bf
EDNET addresses 21st November 1989 \linebreak[2]
\normalsize \rm
\vspace{0.5 in}
\section{TelePAC\#1 (KB \#1) Switch} 
\begin{tabular}{|l|r|l|c|l|l|} \hline
Line  &    &Address       &PSE &EDNET        &Comments \\ \hline
lne  1& IV &000015000xxx  &PS01& KBCPSE      &Linkto KB CPSE \\
lne  2&  X &0000160010xx  &PS02& TelePAC4    &Link to AT TelePAC 4 \\
lne  3& IM &000015001003  &PS03& emas-a-fe1  &EMAS - NAS    (c/1) \\
lne  4& IM &000015004xxx  &PS04& TelePAC3    &Link to BUSH TelePAC Line 1 \\
lne  5&  X &000015005xxx  &PS05& TELEPAC2    &Link to TelePAC 2 Line 1 \\
lne  6&    &000015001006  &PS06& emas-a-fe4  &EMAS - NAS    (a/3) \\
lne  7&  X &000015001007  &PS07& JANET2      &Second JANET link \\
lne  8&  X &000015001008  &PS08& Telepac5    &Connection to Telepac 5 \\
lne  9&  M &000015001009  &PS09& ERTE        &ERTE - \#1 \\
lne 10&  V &000015001010  &PS10& ERCVAX      &ERCVAX - 8500 \\
lne 11&    &000015001011  &PS11& emas-a-fe6  &EMAS - NAS    (b/2) \\

==== ercm09/emas-a/b_lmiots.txt ====
new
prep x25gen_lmxots,lmxots#imp,t,clean
dimp11 lmxots#imp
link11
lmxots#rel
.stack 1000
.streams 1
.stackseg 6
.name lmio
.end
lmioty
destroy lmioty
rename lmioty#abs,lmioty
old

==== ercm09/emas-a/inc_bformats.txt ====
%constinteger hdrl = 8                                         ;! Length of dummy area before data field
%recordformat qf(%record (qf) %name link, %integer count)
%recordformat x25f(%byte octet1, lcn, fn, %bytearray a(0:255))
%recordformat mef(%integer buff no, l, %byte owner, type, %c
   (%bytearray a(0:249) %or (%string(2) padding, %byte octet1, lcn, fn, %c
   (%bytearray data(0:243) %or %string(250) s ))))

%recordformat pf(%byte ser, reply, %c
   ((%byte fn, %byte s1 , %c
   ((%integer buff no, %byte gate port , task port) %c
     %or %string(3) facility)) %c
     %or (%byte a1, a2, b1, b2, c1, c2) %or (%integer a, b, c) %c
     %or (%byte j1, process, j2, j3, len, j4)))

%recordformat cvf((%byte l, (%byte reason, cause, diags, %bytearray our ct(0:3), our segs(0:7),pss ct(0:3), pss segs(0:7)) %c
                         %or %bytearray a(0:26)) %c
               %or %string(27) s)

%endoffile

==== ercm09/emas-a/b_infofst.txt ====
prep x25_infos,infos#imp,x,e,m,t,i,clean
dimp11 infos#imp
dlink11
infos#rel
.stack 2000
.stackseg 6
.name info
.end
infoxcy
destroy infoamdy
rename infoxcy#abs,infoamdy
alist11 infos#imp,infos#rel/.lp

==== ercm09/emas-a/xx25_gatexby.txt ====
,GATX˜Ú  ˜Àÿ@©Ô~ÀÁÂȇ ÿ&ˆ€PPȇ0Ù&ä~&ˆÄåT”Ì„‡@$È~BA@
±É	CÈ	‡HªJL@&fDÅe4
Ã"ô
ô‹ÂÂ
°…„‡Ž£:@&fU
DÅeô–³–2€ß	(@…„‡nŒ:Ä@&f
DÅeß	L@ttÉ–s–…„‡n»ø@À
‡Á
Á ‡07yÀß	À~÷•¨gÕÕ
ß	È~ÁÏß	|~ß	ä{÷•;G÷ýÀÆG÷ÁÂG7
G·
GÁGWp`ñGÒÀ@ÀeÐÀÁ$Áß	(@×-òFì7
êF·
æFÁâFWp(ñÚFlÂ@ÀejÂÁ(Áß	(@×-ÆFPì÷e¼F÷
¸FôFÃ`Ã`aÂÂe³þÿ×- FðÃeô–ÀÁß	÷6G€FÀß	À~÷*GtF÷•G÷fG7ŠG÷•GÀÁß	ä~·
`FuvzÀGÁ,Áß	@Àdß	¸~7ŠêFÀÁß	À€ß	ø@wàF×­ÒFß	„[í÷‹ÅFß	ŒHç×­¹Fß	äEß	(BÞ×­¨Fß	äEß	@JÕß	|YÒêªA&f
DÅeÃð
ÂÜ€àÀEøÿ4Á
@Ü
ÂÜ€àÀEøÿ
Ý Á…„‡1þÿô‹!ƒC
݃ 
4@
݃àñô1

==== ercm09/emas-a/p1ems.txt ====

(Message 330)
Subject:  to NRS : EDINBURGH
From:     TRANSFER [fail]
To:       ERCM09@EMAS-A
Msg ID:   <received 07 Feb 89  17:59:36 gmt via ?>

Transfer of 330294 EDINBURGH
Possibly Transfer will overwrite an existing file
Receiver failure at UK.AC.NRS
From NRS: TEXT        UK.AC.EDINBURGH.AIPNA AFTER COLON IN HEADING IS INVALID
Transfer fails and has been deleted.


==== ercm09/emas-a/inc_sers.txt ====
!PSS Gateway Service Numbers

!DEIMOS hardware driver sers etc
! 1 tty #1
! 2 CLI
! 3 DK
! 4 DIRT
! 5 LOAD
! 6 TU16 (-5) & MOTH
! 8 Big disc #1 - ERTE Big disc handler BDKH
! 9 Big Disc #1 DIR
!11 DQS11S (KMC/DU11)
!12 LP
!13 LP #2 ?
!17 Spool
!18 SPCI
!19 tty #2
!20 CLI #2
!21 tty #3
!22 CLI #3
!23 CR

==== ercm09/emas-a/imp11source_ass11.txt ====
!#if  e(=true)
!#else(=false)
{#report ASS11 - DEIMOS version}
!#fi
            {############################################}
            {#     PDP11 I-code Assembler for IMP77     #}
            {#                                          #}
            {#         Copyright November 1981          #}
            {#            Peter S. Robertson            #}
            {#           All rights reserved            #}
            {#                                          #}
            {############################################}

%Constinteger McOps = 118
%constinteger        Absf =  1,       Adc =  2,      Adcb =  3,       Add =  4,
                     Addf =  5,       Ash =  6,      Ashc =  7,       Asl =  8,
                     Aslb =  9,       Asr = 10,      Asrb = 11,       Bcc = 12,
                      Bcs = 13,       Beq = 14,       Bge = 15,       Bgt = 16,
                      Bhi = 17,      Bhis = 18,       Bic = 19,      Bicb = 20,
                      Bis = 21,      Bisb = 22,       Bit = 23,      Bitb = 24,
                      Ble = 25,       Blo = 26,      Blos = 27,       Blt = 28,

==== ercm09/emas-a/b_lmcox2s.txt ====
prep x25gen.lmcoxs,lmcoxs#imp,b,clean
dimp11 lmcoxs
dlink11 /map
lmcoxs
.streams 1
.stack 1000
.end
lmcoxs
destroy dobj.lmcox2y
rename lmcoxs#abs,dobj.lmcox2y

==== ercm09/emas-a/b_fsave.txt ====
imp11 fsaves/,ll
link11
fsaves#rel
i77perm
.stack 1000
.streams 1
.end
fsavey
alist11 fsaves/.lp23

==== ercm09/emas-a/b_rjesx.txt ====
prep x25_rjesx2,rjesx2#imp,m,clean
imp11 rjesx2#imp/,l
link11
rjesx2#rel
i77perm
.stack 1400
.name rjes
.streams 1
.end
rjesx2y
alist11 rjesx2#imp/.lp23

==== ercm09/emas-a/xx25_xgate.txt ====

!**********************************************************
!*                                                        *
!*           PSS X-25 Level 3 Protocol Handler            *
!*                                                        *
!*                      XGATE                             *
!*                                                        *
!*                Version    8.15  29 Mar  1982           *
!*                                                        *
!**********************************************************
!*
%CONTROL 1
%BEGIN
!************************************
!*                                  *
!*          Declarations            *  
!*                                  *
!************************************
!*
!****** Constintegers ******
!*

==== ercm09/emas-a/pinkaddr.txt ====

Current NSAP stuff and the original NSAP allocation scheme follows:
(current NSAPs first then the old scema):

-------------------------------------------------------- NSAPS

                  HOST NAME-ADDRESS TABLE

uk.ac.edinburgh.krypton                        uk.ac.ed.krypton
         LSAP: 08000901E2BA7E
         X  3882611000015099001001000101
         B  3882611000015099001001000102
         G  3882611000015099001001000103

uk.ac.edinburgh.its63b                         uk.ac.ed.its63b
         LSAP: 0207010038E37E
         X  3882611000015099001001000201
         B  3882611000015099001001000202
         G  3882611000015099001001000203

uk.ac.edinburgh.itspna                         uk.ac.ed.itspna

==== ercm09/emas-a/edinbur0489.txt ====
0D21
Registering Institution:
    Name prefix:             UK.AC.
    Standard name:           EDINBURGH
    Abbreviated name:        ED
Entity Information:
    Standard entity name:    EDINBURGH
    Abbreviated entity name: ED
    Description:             E.U.C.S. Distributed mail directory
Use:
    Protocol Context:        MAIL-NIFTP
    Direction:               FORWARD
    Sub-network:             JANET
    DTE number:              000015000043
    YBTS address:            FTP.MAIL
Use:
    Protocol Context:        MAIL-NIFTP
    Direction:               FORWARD
    Sub-network:             PSS
    DTE number:              234231354354
    YBTS address:            (DEMO,DEMO).EMAS-A.FTP.MAIL

==== ercm09/emas-a/savpreps.txt ====
!#if  ~(d!e)(=false)
{  #report One of d or e must be set}
!#fi
!#if  (d&e)(=false)
{  #report Only one of d or e may be set}
!#fi
!#if  x(=false)
{#report Debugging code added}
!#fi
!#if  d(=false)
{!DEIMOS declerations}
{%systemroutinespec exit(%integer fault)}
{%externalstring(255)%mapspec cli param}
{%conststring(8) date="00/00/00"}
{%conststring(8) time="00:00:00"}
!#fi
!#if  e(=true)
!#else(=false)
{  #report Preparing DEIMOS version of PREP}
!#fi
!#if  e(=true)

==== ercm09/emas-a/recode.txt ====
{Decode routine for PDP11}

%constinteger  Absf =   1,   Adc =   2,  Adcb =   3,   Add =   4,
               Addf =   5,   Ash =   6,  Ashc =   7,   Asl =   8,
               Aslb =   9,   Asr =  10,  Asrb =  11,   Beq =  12,
                Bge =  13,   Bgt =  14,   Bhi =  15,  Bhis =  16,
                Bic =  17,  Bicb =  18,   Bis =  19,  Bisb =  20,
                Bit =  21,  Bitb =  22,   Ble =  23,   Blo =  24,
               Blos =  25,   Blt =  26,   Bmi =  27,   Bne =  28,
                Bpl =  29,   Bpt =  30,    Br =  31,   Bvc =  32,
                Bvs =  33,  Cfcc =  34,   Clr =  35,  Clrb =  36
%constinteger  Clrf =  37,   Cmp =  38,  Cmpb =  39,  Cmpf =  40,
                Com =  41,  Comb =  42,   Dec =  43,  Decb =  44,
                Div =  45,  Divf =  46,   Emt =  47,  Fadd =  48,
               Fdiv =  49,  Fmul =  50,  Fsub =  51,  Halt =  52,
                Inc =  53,  Incb =  54,   Iot =  55,   Jmp =  56,
                Jsr =  57, Ldcfd =  58, Ldcif =  59, Ldexp =  60,
                Ldf =  61, Ldfps =  62,  Mark =  63,  Mfpd =  64,
               Mfpi =  65,  Modf =  66,   Mov =  67,  Movb =  68,
               Mtpd =  69,  Mtpi =  70,   Mul =  71,  Mulf =  72
%constinteger   Neg =  73,  Negb =  74,  Negf =  75,   Nop =  76,

==== ercm09/emas-a/x25genpd_gecgraby.txt ====
,GECGÀƼÀ@ÿ@©À(üìI&MDÅet

ß	 OÁyÁß	äNbÁ’Áß	äNÁ£Áß	,OÀ.Áß	,H÷‹wÁ¬ÁÂ.Áß	¨OÕÕÕß	„OwØuÕÕÕß	„OwÄuÀ
ß	(@7Š®uÀÀß	LO÷¥M²•
‚×­¬•O	‚
ÃÝ¢•Ãe±ÿ÷’u7Š–•×­’•AÀÁß	0B×­~•?ß	ØH7Šr•Ã`u·
du
ÀÝQuß	ÀFÌÀÁß	0BÅ(@&fU
DÅeÁô•ôÒŸ4Š4

Àeß	dO·
Î4üÿÃÀÁ»Áß	äNÀþÿß	øKß	LLþÿüÿò•ò•„ò•
2Š
ÁÝhŠÁrÀ\ÀEÿ2:Ã%üÿò•ò•‚ò•
2Š)Ã%
üÿò•2Šò•
2ŠÃ%üÿò2Šò
òö~
Ã%üÿä&(Aß	èB…„‡Àüÿß	PI…„‡F.bHA&f
DÅeÀ…„‡ô•ô®žô•4÷
²~ð‹¬@Àß	ÈIÀeß	<O…„‡¾ô’¤A&fDÅe4œ4Š	Àß	øKß	Lß	L4
Ã
ôôÿÿ´
þÿÂ`À
Üß	øK´
-4
ß	LL4-äß	LL
ß	 O…„‡Åz0B&fUDÅe÷•Ú}÷ÐÕ}wÒ}7Ï}÷À}Ì}÷•Ç}7
À}ÀÀß	<Oú}ÁÒÁß	äNÀüÿß	øKÁãÁß	äNÀþÿß	øKß	LL…„‡îlJ¤B&fUDÅeC

==== ercm09/emas-a/b_bdk.txt ====
dimp11 bdk7s
link11 /map
bdk7s
.codeseg 2
.stackseg 6
.stack 200
.streams 0
.end
bdk7s
c bdk7s#abs,newsys_bdk7y

==== ercm09/emas-a/ftans.txt ====
%EXTERNALROUTINE ftan %ALIAS "c#ftan"(%STRING (255) s)

   %ROUTINE define(%STRING (255) s)
      %EXTERNALROUTINESPEC emas3(%STRINGNAME command,params, %INTEGERNAME flag)
      %INTEGER flag
      emas3("DEFINE",s,flag)
   %END;                                 ! Of %ROUTINE define.

%EXTERNALROUTINESPEC prompt %ALIAS "S#PROMPT"(%STRING (255) s)
   %STRING (255) t,u,v,s2,t2,v2
   %INTEGER i,j,k,l
   %OWNINTEGER known= 0, days, state, total

   %RECORDFORMAT nf(%STRING (21) name, %INTEGERARRAY fig(1:27))

   %RECORD (nf) %NAME n, nt
   %OWNRECORD (nf) %ARRAY na(0:200)
   %integerarray order(0:200)

   %integerfn stoi(%string (255) s)
      %integer i,j,n, sum

==== ercm09/emas-a/imp11source_pass1s.txt ====
{###################################################}
{#       Portable IMP77 compiler First Pass        #}
{#           Copyright: 1 January 1981             #}
{#    Interactive Datasystems (Edinburgh) Ltd.     #}
{#             32 Upper Gilmore Place              #}
{#               Edinburgh EH3 9NJ                 #}
{#              All Rights Reserved                #}
{###################################################}

%BEGIN
   %EXTERNALINTEGERSPEC IMPFLAG
   %ROUTINE define(%STRING (255) s)
      %EXTERNALROUTINESPEC emas3(%STRINGNAME command,params, %INTEGERNAME flag)
      %INTEGER flag
      emas3("DEFINE",s,flag)
   %END;                                 ! Of %ROUTINE define.
   %CONSTSTRING (4) version= "8.7"

                                         !configuration parameters

   %CONSTINTEGER minus 1= 16_ffff

==== ercm09/emas-a/xx25_sercaddr.txt ====
(Message 280)
Subject:  Network addresses
From:     NPIN07@RLGB (on GEC 4090 - RLGB at Rutherford)
Date:     Thu, 31 May 84 13:22 GMT
To:       netimp
Via:      EDXA  ; (to RCO) 31 May 84  13:34:28 bst
Via:      RLGB; by EDXA on  Thursday, 31-May-84  13:27:04-GMT
Msg ID:   <31 MAY 1984 13:22:56 NPIN07@RLGB>


Network Address list.                       31 May 1984

The following is a list of network connections, addresses and titles. It
is by no means a full or complete list. That I believe is the responsibility
 of the NRS

I am prepared to maintain this list and add to it (Providing Im given the information)
on a 'Best Endeavours Basis'. If you wish to have systems added to the list
please provide me with the information in the following format.
Site, Gateway Address, System Address, Title (mnemonic), Facility.


==== ercm09/emas-a/b_veris.txt ====
IMP11 gen_VERIS77/veris77#rel,L
LINK11
VERIS77#REL
GEN_EXTERNSREL
I77PERM
.STACK 6000
.STREAMS 1
.END
VERIS77Y

==== ercm09/emas-a/x25genpd_nlpx1.txt ====
!**********************
!* nlpx1/nlpx1y       *
!* date: 15.mar.84   *
!*********************
%conststring (7) vsn = "vsn001c"
!! stack = 400, streams = 3

%control 1
%include "deimosperm"
!stack=400, streams=1


%recordformat xf(%byteinteger unit,fsys,%byteintegerarray fname(0:5))
%begin

      %constinteger control ser = 1;     ! on node = 11, otherwise = 1

%recordformat rjef(%byteintegerarray data(0:239))
%recordformat mef(%record(mef)%name link,%byteinteger len,type,  %c
      %bytearray reserved(0:7), %record (rjef) rje)


==== ercm09/emas-a/xx25_xprots.txt ====
! file: x25_XPROTs
!
!*************************************************
!*                                               *
!*       PSS X-25 Level 2 Protocol Handler       *
!*                                               *
!*                   XPROT                       *
!*                                               *
!*        Version  9.30   11 Oct  1985           *
!*                                               *
!*************************************************
#options

#if p&q
   #report must have either p (dup11) or q (dqs11e) or neither (both)
#fi
#if ~p
   #report dqs11e code included
#fi
#if ~q
   #report dup11 code included

==== ercm09/emas-a/x25genpd_lmxots.txt ====
! file 'lmxots'
!**********************
!* lmxots/lmeoty   *
!* date: 20.may.81   *
!*********************
%conststring (13) vsn = "lmxs...1c "

! Prep options:-    t   -  itp over transport service
!                   x   -  xxx over transport service

#datestring

!! stack = 300, streams = 1

%control x'4001'


%recordformat xf(%byteinteger unit,fsys,%byteintegerarray fname(0:5))
%include "b_deimosspecs"
%begin


==== ercm09/emas-a/b_pcl.txt ====
imp11 pclo4s
link11
pclo4s#rel
i77perm
.stack 1400
.streams 0
.name clok
.end
pclo4y

==== ercm09/emas-a/ftbush.txt ====
=UDK=^^5^i0
^rr1024rFTP traffic to and from EMAS (ERCC 2988)

^rr993rPeriod: 30/11/86 12.54.58 - 07/12/86 16.23.20
^4

^rr1098rFTP transfers initiated locally and remotely^2  - page 1
^0^a500,150

                       ^b         JNT mail                 Network spooling            All other transfers    ^p
         ^bHost^p           Total     Total   Average    Total     Total   Average    Total     Total   Average           ^bHost^p
                        files    Kbytes   Kb/file    files    Kbytes   Kb/file    files    Kbytes   Kb/file  ^i1
                 ABDN      11        18         2                                                             ABDN
           AFRC.AFRUS       2         2         1                                    23       118         5   AFRC.AFRUS
            AFRC.ARCC       1         1         1                                     4        70        18   AFRC.ARCC
            AFRC.NVRS       4         5         1                                                             AFRC.NVRS
             AFRC.PRC       2         2         1                                    32      1046        33   AFRC.PRC
            AFRC.WPBS                                                                 1       121       121   AFRC.WPBS
                 AUCC       1         1         1                                                             AUCC
          AUS.DITMELB       2         6         3                                                             AUS.DITMELB
            BATH.UX63       2         9         5                                                             BATH.UX63

==== ercm09/emas-a/b_pollpad.txt ====
prep x25gen.pollpads,poll#imp,x
dimp11 poll#imp
dlink11
poll#rel
.stack 4000
.streams 3
.stackseg 6
.name poll
.end
pollxy
destroy pollxy
rename pollxy#abs,pollxy

==== ercm09/emas-a/link11#pre.txt ====
#if e
#report LINK11 - EMAS Version
#else
#report LINK11 - DEIMOS Version
#fi
         {##################################}
         {# PDP11 IMP77 Object file linker #}
         {#                                #}
         {#    Copyright November 1981     #}
         {#       Peter S. Robertson       #}
         {#                                #}
         {##################################}

{ 0        1                                                 7               }
{*--------*----------*--------*-----------------*-------*---*---------------*}
{| Shared |  Events  |  Code  |-> Ds ----- Sp <-|  Gla  |\\\|  I/O Segment  |}
{*--------*----------*--------*-----------------*-------*---*---------------*}
{         ^          ^        ^                 ^                            }
{         |          |        |                 |                            }
{        #Event     #Code    #Stack            #Gla                          }
{         Base       Base     Base              Base                         }

==== ercm09/emas-a/x25genpd_lmxoty.txt ====
,LMXO¸Çà¸Àÿ@©À
lmxs...1c 11/04/83…Á'Â&èG&MDÅe’F(@&fDÅeŠß	PtÁ%

ÁŠ
tþÿÁeß	¼Pì…„‡†±Jh@&fU
DÅeó•ó”Ÿ3Šó•s	3ÀÀeß	ôP…„‡Ž*>¬@&f
DÅeó•óRŸó•3ÀÀeß	ôP…„‡vÂä@&fDÅe4œ4Š	Àe4Àß	°Mß	ÐMß	ÐM4
4ôÿÿ/´
Ãø~-m´’
4Š
Á%@ß	¤LmÀ
ÁÒß	°M´
-4
ß	N4-Íß	N
ß	ØP…„‡~y A&fDÅeÁÔÃß	œPÀþÿ
ÁÜß	°MÁÚÃß	œPÀþÿ
ÁÜß	°MÁåÃß	œPÀþÿ
ÁÜß	°MÁðÃß	œPÀþÿ
ÁÜß	°MþÿÂ<ß	NÀß	ÜMþÿÂÀ
Üß	°MþÿÂ
Ütôÿÿ´
þÿÂ`ÀAœÁEÿß	°MÃEðÿÃ%ß	N4-âß	N…„‡Ù
 Bæ¤B&fÎå
DÅe-úÿ*Ãl}×"üÿß	¬@…„‡Â
Ü

==== ercm09/emas-a/inc_discquals.txt ====
!*Disconnect qualifiers
!*From PSS:
%constinteger pss prot not supported   = x'43'

!*Transport Service
!
%constinteger ts ok                    =  0
%constinteger ts response              =  1
%constinteger ts no connection         = 16
%constinteger ts numberbusy            = 17
%constinteger ts out of order          = 18
%constinteger ts invalid address       = 19
%constinteger ts access barred         = 20
%constinteger ts incompatible facilities=21
%constinteger ts no reverse charging   = 22
%constinteger ts network congestion    = 23
%constinteger ts message too long      = 24
%constinteger ts protocol apology      = 32
%constinteger ts protocol accusation   = 33
%constinteger ts timeout               = 34
%constinteger ts connection lost       = 35

==== ercm09/emas-a/padobey.txt ====
BECCE PADSTATS,npadstats
-10
%I=C
%O=C1
(F/ATBPD1 /S/ATBPAD1/)*
M-0(F/CSTPD1 /S/CSTPAD1/)*
M-0(F/CSTPD2 /S/CSTPAD2/)*
M-0(F/ENGPD1 /S/ENGPAD1/)*
M-0(F/FCNRPD  /S/FCNRPAD1/)*
M-0(F/HFROPD1 /S/HFROPAD1/)*
M-0(F/HFROPD2 /S/HFROPAD2/)*
M-0(F/HFRPD1  /S/HFROPAD1/)*
M-0(F/LIBPD1 /S/LIBPAD1/)*
M-0(F/LIBPD2 /S/LIBPAD2/)*
M-0(F/POLPAD /S/POLPAD1/)*
M-0(F/POLPD2 /S/POLPAD2/)*
M-0(F/SIAEPD /S/SIAEPAD/)*
%C

==== ercm09/emas-a/etheraddr.txt ====

(Message 496)
From:     John Butler <JHB@UK.AC.EDINBURGH.ECSVAX>
Date:     30 Nov 87 21:26:42 GMT
To:       "b.gilmore@rco": ;
Via:      UK.AC.EDINBURGH.EMAS-A  ; (to uk.ac.edinburgh.emas-c) 30 Nov 87  21:27:36 gmt
Via:      UK.AC.EDINBURGH.ECSVAX  ; (to uk.ac.edinburgh.emas-a) 30 Nov 87  21:28:16 gmt
Msg ID:   <"30-NOV-1987 21:26:42"@UK.AC.EDINBURGH.ECSVAX>

$l0
3/160   server
3/110LC small screen colour sun
3/110C  big screen colour sun
3/50    yukko sun

-4 (4 Mb)
!! CS1 Sun lab - 10/11/87

Banff         -         - 08-00-20-00-00-DE 5011-1621-6328 192.9.200.10
#???????? AT L3 Server  3/50M-4
Tamdhu      636 CS-AT1:14 08-00-20-00-12-E7 5011-1621-6603 192.9.200.11

==== ercm09/emas-a/rootetive.txt ====

Via: UK.AC.EDINBURGH.ITSPNA  ; (to uk.ac.edinburgh.emas-a) 13 Feb 89  15:10:06 gmt
Date: Mon, 13 Feb 89 15:06:27 GMT
From: B Gilmore <brian@uk.ac.ed.etive>
Subject: [root@uk.ac.ed.etive: log/reports of machine breaks on Itspna]
Sender: brian@uk.ac.ed.etive
To: b.gilmore@uk.ac.ed
Message-ID: <8902131506.aa10104@etive.ed.ac.uk>
Status: O

---- Start of forwarded text ----
> Date:     Mon, 6 Feb 89 6:00:02 GMT
> From:     root@uk.ac.ed.etive
> Subject:  log/reports of machine breaks on Itspna
> To:       jimmy@uk.ac.ed.etive, keith@uk.ac.ed.etive, brian@uk.ac.ed.etive, 
>           mpb@uk.ac.ed.etive
> Message-ID:  <8902060600.aa14844@etive.ed.ac.uk>
> Status: RO
> 
> 
>           Performance Statistics for IT School

==== ercm09/emas-a/x25genpd_dumpgec.txt ====
%externalroutine dumpgec(%string(63) s)

%conststring (25) vsn = "  Version  1.2"

%owninteger print all = 0;        ! prints lau data if <>0
%owninteger mon line = -1;       ! line to monitor
%owninteger mon con = 0
%owninteger print this = 0

%constinteger our exchange = 1
%owninteger this exchange = 0, fix exch
%constinteger scd = 0
%constinteger ecd = 1
%constinteger dcd = 2
%constinteger laustats = 3
%constinteger unitstats = 4
%routinespec dumpaddr(%bytearrayname a, %byte l)
%routinespec writehex(%integer n,d)
!Routine for dumping GEC Network Management logs
%routinespec dat(%integer dat)
%routinespec tod(%integer d)

==== ercm09/emas-a/xx25_baccts.txt ====
! dummy account prog to fit with jb xgate
!
! date: 07.may.82

%control k'100001'

%include "deimosperm"
%begin

%recordformat mef(%record (mef) %name l, %integerarray a(0:125))
%recordformat pf(%byte ser, reply, a1, a2, %record (mef) %name mes, %c
  %byte c1, c2)
%record (pf) p

%constinteger buffer manager = 17
%constinteger release buffer = 1

      %routine free buffer(%record(mef)%name mes)
         p_ser=buffer manager;   p_reply=id
         p_a1=release buffer;   p_mes==mes
         pon(p)

==== ercm09/emas-a/xx25_baccty.txt ====
,BACCÐÀÀÐ@ÿ@©`@&MDÅe
1>(@&f
DÅeó•óÖŸó•3ÀÀeß	@…„‡vu,j@Àß	¸@4ŠÀeß	 @öÀß	(@òb@ÀÁÂȇ  @&ˆ€PPȇ0|¸@
ˆ‡Í@ÅÀÆÐÀ&
ß	`@
Ç
à0Â@©==== ercm09/emas-a/xx25_xpr1y.txt ====
,XPR1ÀÇ<À@ÿ@©]ÀÁÂȇ à$]&ˆ€PPȇ0Û]BA@
ˆ‡Q:¼\@BAAAAAÁEøÿˆŠÁe@BcÂEà ‡
‡h	ø\ˆ‡a¬\ˆ‡Â´\
ˆ‡µð\ˆ‡w]ˆ‡W \ÀÁàIóÀPSSE TOOFLES?????EDNETPSS  ?EPúÿùÿ·Á'PU&MDÅeÕÕÕß	]ÕÕÕß	]÷òÀžl÷Á”l÷•<‹7Š*kÀºÀß	$]÷ kkÁ‚Âß	X\
ÁÝôjWpÁe$Àß	X\Á‰Âß	X\ÃùjÃEøÿ÷Õj
ÂÝëj—tùÿÂEþ·Xj÷Üjêj
ÁÝÖjÁUÿw¶j
ÀÝÉjÀUÿ7¦j÷‹œj‡×­–jƒÀ@ß	PO÷‹‡j‡×­jƒÀAß	POÃjÃ`÷¶ÀJjß	DNÀß	UÀß	¬\ß	BPV7ŠfjÀºÀß	$]×½Zj€Ã>jÃEÿ
ÂÝHj ÷FjÀÂÀß	ÜT7
j7
Üiß	Bßß	P7
Ìiß	PEØ÷‹jXß	lJ÷‹‚‰Ð×­|‰SÀß	(@F×­j‰AÀß	(@=×­X‰?ß	”LÀ
ß	L1÷¥0>‰‚×­8‰9‚
ÃÝ.‰ÃeÐÿ÷ªi!×­ ‰NÀß	”\ß	 \×­
‰QÃÃízi÷vi×­ôˆWˆÃÃífi÷bi 7Š¿PWÞˆwúþ×­biH·
HiÃXió‹׬@Àß	POÃi.Âi‚`‚`ÂeÁ·|iÊ(i1Š
ÀÝiÀe2Ãèhƒ
ÃEÀÿ÷úhÃ-Òh	À1
ß	LÀß	(@÷ÞhÀhß	BwrþÀÜhß	¼A7
Ôhwbþ×­Êh+Èh÷•¾h÷¤h¹h÷®h”h7Š‘h÷¥h¢h÷†hhÃœhÕ0Õ8ÀÍÕ`ß	äOÄhó•0ÀºÀß	]wþÀ;
PXÁºÀß	LwôýÉ(@&f
DÅeÃH€~Àß	]þÿ÷<€Ã6€!
ÁÝF€WpÁe$Àß	X\Á°Âß	X\À×tÁÁe"Âß	X\ß	ÀYÀ
ß	LÀß	U×-þ÷äT7

==== ercm09/emas-a/b_link.txt ====
imp11 link77s/,l
link11
link77s#rel
.streams 4
i77perm
.stack 27200
.end
link77y
alist11 link77s/.lp23

==== ercm09/emas-a/ackers.txt ====
%begin
%externalroutinespec prompt(%string (255) s)
! ackerman function
%integer x,y,j,k

%integerfn acker(%integer m,n)
%if m = 0 %then %result = n+1
%if n = 0 %then %result = acker(m-1,1)
%result = acker(m-1, acker(m, n-1))
%end

prompt("Ackerman, First param (1..4)?"); read(x)
prompt("         Second param (1..7)?"); read(y)
write(acker(x,y), 4); newline
%endofprogram

==== ercm09/emas-a/b_rles.txt ====
imp11 rles77
link11
rles77#rel
i77perm
.stack 400
.streams 1
.end
rlesy

==== ercm09/emas-a/misperform.txt ====
MIS 4341   25 apr 88   17.15 to 17.30
C
C Channel      0      1      2      3      4      5      6      7      8      9
C Number       1      0      0    100      0      0      0      0      0      0
C Minimum    0.1    0.0    0.0    0.5    0.0    0.0    0.0    0.0    0.0    0.0
C Maximum    0.1    0.0    0.0    3.7    0.0    0.0    0.0    0.0    0.0    0.0
C Mean       0.1    0.0    0.0    1.5    0.0    0.0    0.0    0.0    0.0    0.0
C Median     0.1    0.0    0.0    1.3    0.0    0.0    0.0    0.0    0.0    0.0
C Std Dev    0.0    0.0    0.0    0.5    0.0    0.0    0.0    0.0    0.0    0.0
C
      0.2      1      0      0      0      0      0      0      0      0      0
      0.4      0      0      0      0      0      0      0      0      0      0
      0.6      0      0      0      1      0      0      0      0      0      0
      0.8      0      0      0      2      0      0      0      0      0      0
      1.0      0      0      0      1      0      0      0      0      0      0
      1.2      0      0      0      0      0      0      0      0      0      0
      1.4      0      0      0     78      0      0      0      0      0      0
      1.6      0      0      0      0      0      0      0      0      0      0
      1.8      0      0      0      0      0      0      0      0      0      0
      2.0      0      0      0      0      0      0      0      0      0      0
      2.2      0      0      0      0      0      0      0      0      0      0

==== ercm09/emas-a/hostess.txt ====

                    *******  HOSTESS  *******


Welcome to HOSTESS, the information service for British Telecom's
Public Data Network.

*************************  NEWSFLASHES  *************************


For details of network status enter NETSTATUS at the "Document"
prompt.
                        ------------------
Hostess  catalogues  revised for further details enter TOPCAT  at
the "Document?" prompt.
                       -------------------
New release of VPAD software to be tested at Swindon (0793 614914).
For details type INFORMATION.VPAD at the "Document?" prompt.
                       ---------------------



==== ercm09/emas-a/b_lmxxxbs.txt ====
prep x25gen.lmtots,lmtots#imp,x,b,clean
dimp11 lmtots#imp
dlink11 /map
lmtots#rel
.stack 1000
.streams 1
.stackseg 6
.name lmxx
.end
lmxxxby
destroy dobj.lmxxxby
rename lmxxxby#abs,dobj.lmxxxby

==== ercm09/emas-a/b_fsys.txt ====
dimp11 fsys79
link11 /fsys79
fsys79
.stack 300
.streams 0
.stackseg 6
.codeseg 2
.end
fsys79
c fsys79#abs,newsys_fsys79y

==== ercm09/emas-a/xx25_ftpd4s.txt ====
! prep options
!  n - nsi
!  r - ring
!  k - kent
!  x - transport service interface
!  g - more general ftp
! if k is not set, ercc format is assumed
#options
#if ~(n!r!x) ! ~(e!g) ! (n&r) ! (n&x) ! (r&x) ! (e&g)
  #report must specify one of (n,r,x) and one of (e,g)
  #abort
#fi

#if r
  #report Preparing ring version
#fi
#if n
  #report Preparing NSI version
#fi
#if x
  #report Preparing transport service interface version

==== ercm09/emas-a/b_ftpb.txt ====
prep x25_ftp4s,ftp4s#imp,x,e,m,clean,b
imp11 ftp4s#imp/,l
link11
ftp4s#rel
i77perm
.stack 2000
.streams 1
.name ftps
.end
ftp4xy
disconnect ftp4xy
alist11 ftp4s#imp/.lp23

==== ercm09/emas-a/b_ftpd.txt ====
prep gen_ftpd1s,ftpd1s#imp,n,e,clean
dimp11 ftpd1s#imp
link11 /ftpd1s
ftpd1s
ercm11.imp
.fixup ercm11.imp#fix
.stack 2000
.streams 1
.STACKSEG 6
.end
ftpd1y
destroy ftpd1y
rename ftpd1y#abs,ftpd1y

==== ercm09/emas-a/b_infoamd.txt ====
prep x25.infos,infos#imp,x,e,m,a,b,i,clean
dimp11 infos#imp
dlink11
infos#rel
.stack 2000
.stackseg 6
.name info
.end
infoxcy
destroy infoamdy
rename infoxcy#abs,infoamdy
alist11 infos#imp,infos#rel/.lp23

==== ercm09/emas-a/xx25_bformats.txt ====
%constinteger hdrl = 8 ;!Length of dummy area before data field
%recordformat qf(%record (qf) %name link, %integer count)
%recordformat ts29f(%string (255) s %or %byte octet1 %or %bytearray a(0:255))
%recordformat itpf(%byte cnsl, hb2, hb3, (%string(255) s %or %bytearray a(0:255)))
%recordformat x25f(%byte octet1, lcn, fn, %bytearray a(0:255))
%recordformat mef(%integer buff no, l, %byte owner,type, %c
       (%bytearray a(0:249) %c
   %or (%string(2) padding, %byte octet1,lcn,fn,(%bytearray data(0:243) %or %record(itpf) itp %or %record(ts29f) ts29)) %c
   %or %string(250) s))
%recordformat pf(%byte ser, reply, %c
   ((%byte fn, (%byte s1 %or %byte process), ((%integer buff no, (%byte gate port %or %byte len), %byte task port) %or %string(3) facility)) %c
%or (%byte a1, a2, b1, b2, c1, c2) %or (%integer a, b, c)))

%recordformat cvf((%byte l, (%byte reason, cause, diags, %bytearray our ct(0:3), our segs(0:7),pss ct(0:3), pss segs(0:7)) %c
                         %or %bytearray a(0:26)) %c
               %or %string(27) s)

%endoffile

==== ercm09/emas-a/b_ftpn.txt ====
prep fep_ftp1s,ftp1s#imp,n,e,clean
imp11 ftp1s#imp/,l
link11
ftp1s#rel
i77perm
.stack 1000
.streams 1
.name ftps
.end
ftp1ny

==== ercm09/emas-a/b_ftpp.txt ====
prep ftp1s,,e,n
imp11 ftp1s#p
link11
ftp1s#rel
i77perm
.stack 1000
.streams 1
.name ftps
.end
ftp1y
list ftp1y,.fep72
alist11 ftp1s#p/.lp23

==== ercm09/emas-a/test.txt ====
%begin
%integer i,j,k,l,m

%cycle i = 1,1,10
printch(27); printch('H');

%cycle k = 1,1,24
%cycle j = 1, 1, 80
  printch('a')
%repeat
newline
%repeat
%repeat
%endofprogram

==== ercm09/emas-a/b_gatexb.txt ====
EDIT x25.gatexs,t#b
A/198/A1STM/Versi/F<X>K(M/GATX Running/M0R/Running/I<X>i/ (Large,2 lines)/p1)2
E
prep t#b,gatex#imp,m,h,a,clean,b
dIMP11 gatex#imp/gatex#rel,gatex#lst
dLINK11
gatex#rel
.name gatx
.STACK 5000
.STREAMS 1
.stackseg 6
.END
gatex
destroy dobj.bacbgm
rename gatex#abs,dobj.bacbgm

==== ercm09/emas-a/b_gatexf.txt ====
EDIT x25.gatexs,t#b
A/198/A1STM/Versi/F<X>K(M/GATX Running/M0R/Running/I<X>i/ (Min,Large,2 lines)/p1)2
E
prep t#b,gatex#imp,f,m,h,a,clean
dIMP11 gatex#imp/gatex#rel,gatex#lst
dLINK11
gatex#rel
.name gatx
.STACK 5000
.STREAMS 0
.stackseg 6
.END
gatex
destroy bacg
rename gatex#abs,bacg

==== ercm09/emas-a/b_ftpx.txt ====
prep x25_ftp4s,ftp4s#imp,x,e,m,clean
imp11 ftp4s#imp/,l
link11
ftp4s#rel
i77perm
.stack 2000
.streams 1
.name ftps
.end
ftp4xy
disconnect ftp4xy
alist11 ftp4s#imp/.lp23

==== ercm09/emas-a/pcw1asc.txt ====
PCW Benchmarks

           Intg  Real Trig Outp X.25 File Flpy Ratg
---------------------------------------------------
EMAS-NAS  .0014 .0011 .031       14   .05       600
---------------------------------------------------
Ardent    .0003 .0005 .087  52        .06       570
---------------------------------------------------
Gould NP1 .0029 .0024 .041       14   .11       358
---------------------------------------------------
Convex C2 .0035 .0059 .04             .11       290
---------------------------------------------------
EMAS-Amd  .0029 .0022 .069       14   .3        269
---------------------------------------------------
Sequent   .0051 .0056 .040            .13       262
 no fpa         .0262 .178                      143
---------------------------------------------------
SUN 4     .0004 .0122 .15   43        .15       222
---------------------------------------------------
PN9080    .0033 .0056 .105       14   .25       207
---------------------------------------------------

==== ercm09/emas-a/inc_configf.txt ====
! Configuration file for Front ends

! Options used:INC_CONFIGGEN,TEMP,H,CLEAN

!Versions required:


! System            Name  Accred Nets  Procs*    Disc Drv Prep

! P PSSE            PSSE  Yes    2+1   16  6 10  RL01 0     P
! M XGATE           XGATE  No    1+1   37 20 40  RL01 0     M
! K Kent            GATE  Yes    1+1   16  6 10  RL02 0     K
! U Kent #2         SGATE Yes    1+2   ?? ?? ??  RK05 0     U
! G Glasgow         GGATE  No    1+2   16  6 31  RX02 1     G
! F FEP (GATEX)     -      No     +2   60 20 40  -    -     H
! T XGATE # 2       XGATE2 No          37 20 40  RL01 0     T
! D DGATE           DGATE No           30 20 40  -    -     D

!Disc Configuration Information
!Define first and last user blocks to prevent us overwriting directory
!etc. Ranges for various discs are:

==== ercm09/emas-a/b_dpal.txt ====
imp11 gen_dpal8s/dpal8s#rel,ll
link11
dpal8s#rel
i77perm
.stack 2400
.streams 1
.end
dpal8y
alist11 dpal8s/.lp23

==== ercm09/emas-a/edinbur1188.txt ====
0D1E
Registering Institution:
    Name prefix:             UK.AC.
    Standard name:           EDINBURGH
    Abbreviated name:        ED
Entity Information:
    Standard entity name:    EDINBURGH
    Abbreviated entity name: ED
    Description:             E.U.C.S. Distributed mail directory
Use:
    Protocol Context:        MAIL-NIFTP
    Direction:               FORWARD
    Sub-network:             JANET
    DTE number:              000015000043
    YBTS address:            FTP.MAIL
Use:
    Protocol Context:        MAIL-NIFTP
    Direction:               FORWARD
    Sub-network:             PSS
    DTE number:              234231354354
    YBTS address:            (DEMO,DEMO).EMAS-A.FTP.MAIL

==== ercm09/emas-a/eansites.txt ====







Lists of EAN domains and sites reachable from UCL.



_1_.  _I_n_t_r_o_d_u_c_t_i_o_n


This document contains lists of all the  UCL  supported  EAN
domains  and  sites  (in NRS order).  The EAN sites are dis-
tinguished in this document from domains by  a  prefix  "*".
Please  note  that a EAN Lower-level domain in this document
does not always correspond to an EAN site.

Included within the listings are the  addresses  of  Contact

==== ercm09/emas-a/b_gecstr.txt ====
prep gen_gecgrab,gecgrab#imp,f,m,s
imp11 gecgrab#imp/,l
link11
gecgrab#rel
i77perm
.stack 2000
.streams 2
.end
gecstry

==== ercm09/emas-a/b_deimosspecs.txt ====
!  Deimos specs for Imp11 v8.7

%externalroutinespec set prio %alias "$SETPRIORITY"(%integer prio)
%externalbytemapspec id
%externalbytemapspec own id %alias "ID"
%externalbytemapspec int %alias "INTCHAR"
%externalintegerfnspec map virt %alias "$FMAPVIRT"(%integer id, fromseg, toseg)
%externalintegerfnspec map psect %alias "$MAPPSECT"(%integer task, toseg)
%externalintegerfnspec time %alias "$TIME"
%externalroutinespec terminate
%externalroutinespec use tt(%integer ser)
%constinteger t3 ser = 21;               ! common output handler service number
%constrecord (*) %name null == 0
%endoffile

==== ercm09/emas-a/b_bou.txt ====
imp11 bounce/,ll
link11
bounce#rel
i77perm
.stack 1000
.streams 1
.end
bouncey

==== ercm09/emas-a/telepac/tel3conf.txt ====


 BASE: x25 

      ERROR 'x2  '
 BASE: X25 LIST ALL

 X25 (0): 

 BE00 0  000015004000-                                                
 P002 0  000015004002-                                                
 P003 0  000015004003-                                                
 P004 0  000015004004-                                                
 P005 0  000015004008-                                                
 P006 0  000015004006-                                                
 P007 0  000015004007-                                                
 P008 0  000015004005-                                                
 P009 0  000015004009-                                                
 P010 0  000015004010-                                                
 P010 0  000015004110-                                                
 P006 0  000015004106-                                                

==== ercm09/emas-a/telepac/log710a.txt ====
date: 7 oct 86  14.40
POLL ALL
2047 1925 1820 0 100 2048 3926666 4002706 27 27 7560 123 14484 14521 
9 399 184 61260 28  DATA 4 6 1 6 6 8624836 5602499 6990233 5792070 9 7 865 9462 29764 340 154 
1 38 0 87 0  DATA 1 1 0 3 3 47237 74674 2527 3925 0 0 1447 1938 1931 0 0 
0 4200 1 2443 24  DATA 1 1 0 2 2 1176495 768660 1286727 346236 6 1 29880 7766 57919 0 0 
9 49 607 5679 3  DATA 4 4 0 0 0 1218554 10681590 461887 1587927 0 1 2574 4209 3085 0 473 
0 5 170 6415 6  DATA 7 7 0 4 4 3515112 5106698 638865 1407962 0 1 3450 4659 4248 16 735 
2 996 4984 2038 65535  DATA 3 3 0 1 1 10679664 945234 460612 183445 0 0 3 2060 62 0 0 
1 331 16 7088 2  DATA 3 3 0 6 6 11074504 7873796 313319 271870 0 0 2721 6378 2336 1 7 
0 36 0 35692 1  DATA 4 4 0 5 5 1619656 4405201 421937 73051 0 3 846 339 34090 0 0 
34 88 0 15937 0  DATA 1 1 0 1 1 10731224 9502908 143291 155788 0 0 7997 7990 7977 0 0 
0 0 0 0 0  SABM 0 0 28 0 0 0000 0000 0000 0000 0 0 0 0 0 0 0 
240 203 34 36836 0  DATA 4 4 0 2 2 749665 1123856 61561 104117 0 0 57176 4597 34707 11 11 
0 6 15 3497 0  DATA 4 4 0 1 1 147080 5828608 29905 103787 0 0 260 3730 704 0 130 
3 35 47 4169 3  DATA 6 6 0 5 5 1344790 15277576 118660 314955 0 0 1161 4031 2009 0 130 
0 56 6 3140 0  DATA 3 3 0 1 1 599993 3172860 22586 55534 0 0 236 10485 7787 0 53 
1 396 57 5755 3  DATA 7 7 0 3 3 10924931 3963278 1188508 504958 3 0 1024 6583 1812 3 0 
188 42 46 4878 6  DATA 2 2 0 6 6 2260867 5623452 369415 814685 0 1 1965 4207 2354 31 288 
4 29 38 4150 2  DATA 4 4 0 2 2 922573 15493254 104643 284568 0 1 933 3735 1388 0 187 
7 2517 1705 15201 1  DATA 1 1 0 0 0 13196973 4862703 2205399 2320149 1 1 23040 43751 26765 0 0 

==== ercm09/emas-a/telepac/l.txt ====
Source: ERCM09:TELDATA.TELANS         Compiled: 07/10/86   15.04.38
Object: ERCM09:TELDATA.TELANY

Parms set: DEFAULTS



              ERCC. Portable Imp80 Compiler Release 4 Version 15 May 86


  2047  4095
     1        %EXTERNALROUTINE telan(%STRING (255) s)
     2        
     3        %EXTERNALROUTINESPEC prompt %ALIAS "S#PROMPT"(%STRING (255) s)
     4           %routine define (%string (255) s)
     5              %EXTERNALROUTINESPEC emas3(%STRINGNAME command,params, %INTEGERNAME flag)
     6              %INTEGER flag
     7              emas3("DEFINE",s,flag)
     8           %END;                                 ! Of %ROUTINE define.
     9        
    10           %INTEGER i,j,k,ln,file, hours, mins, secs

==== ercm09/emas-a/telepac/x25.txt ====
 BASE: X25 LIST ALL

 X25 (0): 

 P009 0  000015001009-                                                
 P011 0  000015003011-                                                
 P012 0  000015001012-                                                
 P013 0  000015003013-                                                
 P014 0  000015003014-                                                
 P026 0  000015001026-                                                
 P003 0  000015001003-                                                
 P004 0  000015003004-                                                
 P005 0  0000150050-                                                  
 P006 0  000015001006-                                                
 P007 0  000015001007-                                                
 P008 0  000015001008-                                                
 BE00 0  *15003000                                                    
 P015 0  000015001015-                                                
 P016 0  000015003016-                                                
 P017 0  000015001017-                                                
 P018 0  *15001018-                                                   

==== ercm09/emas-a/telepac/t1x25.txt ====
x25 list all

 X25 (0): 

 BE00 0  000015001000-                                    
 EI00 0  000015001098-                                    
 BE01 0  000015001099                                     
 P003 0  000015001003-                                    
 P004 0  000015004-                                       
 PX05 0  000015005-                                       
 P006 0  000015001006-                                    
 P007 0  000015001007-                                    
 P008 0  0000150019-                                      
 P009 0  000015001009-                                    
 P010 0  000015001010-                                    
 P011 0  000015001011-                                    
 P012 0  000015001012-                                    
 P013 0  000015003013-                                    
 P014 0  000015003014-                                    
 P015 0  000015001015-                                    
 P016 0  000015001016-                                    

==== ercm09/emas-a/telepac/tallx25.txt ====
TelePAC 1   28th September

x25 list all

 BE00 0  000015001000-                                    
 EI00 0  000015001098-                                    
 BE01 0  000015001099                                     
 P003 0  000015001003-                                    
 P004 0  000015004-                                       
 P005 0  000015005-                                       
 P006 0  000015001006-                                    
 P007 0  000015001007-                                    
 P008 0  0000150019-                                      
 P009 0  000015001009-                                    
 P010 0  000015001010-                                    
 P011 0  000015001011-                                    
 P012 0  000015001012-                                    
 P013 0  000015003013-                                    
 P014 0  000015003014-                                    
 P015 0  000015001015-                                    
 P016 0  000015001016-                                    

==== ercm09/emas-a/telepac/tel2conf.txt ====
base exam


   VERSION/ 7114     REPORTS/ EI00     SESSION STATISTICS/ EI01 
   BUFFER THRESHOLD/ 0 

 BASE: pb01 exam


   NAME/ PB01        TYPE/ X25         SUB-TYPE/ NONE 
   SPEED/ EXT        ADDRESS/ A        CHANNELS/ 200 
   OPTIONS/ EXT      INIT FRAME/ SABM 
   T1/ 30            TRIES/ 10         K LEVEL2/ 7 
   K LEVEL3/ 2       LINE GROUP/ 0     LCGN/ 4 
   ADDRESS GROUP/ 0                    FRAME SEQ/ NORM 
   CALL TIME OUT/ 190                  ERROR THRESHOLD/ 20 
   LOOP BAR PRIORITY/ 0 

 PB01: list all

 PB01: 

==== ercm09/emas-a/telepac/log610a.txt ====
date: 6 oct 86   10.33

 X25 (49): POLL ALL

 X25 (49): 

 BASE: POLL ALL
2047 1939 1820 0 100 2048 3387797 3463028 40 40 61940 97 13721 12315 
9 368 175 56992 21  DATA 7 1 1 7 7 2041501 1483765 6843841 5676719 16 9 63414 6470 25748 267 139 
1 38 0 86 0  DATA 1 1 0 1 1 47205 74674 2525 3925 0 0 1447 1907 1901 0 0 
0 4152 1 1110 8  DATA 3 4 1 5 5 13196310 700693 1234613 338604 4 0 28001 7511 56954 0 0 
9 49 581 5534 6  DATA 2 2 0 7 7 1172262 7913372 447850 1545405 0 1 2470 4151 2998 0 466 
0 5 168 6220 5  DATA 6 6 0 6 6 3440082 3539939 621098 1367027 0 2 3284 4590 4093 16 709 
1 586 3156 1847 13  DATA 0 2 1 4 4 7838870 849597 416190 169031 3 1 0 1870 55 0 0 
1 321 15 6855 4  DATA 5 5 0 6 6 9991910 7827516 292674 264610 0 0 2653 6136 2259 1 3 
0 36 0 35167 1  DATA 4 4 0 6 6 16707151 4224911 408052 70973 0 0 61355 305 33691 0 0 
34 88 0 15937 0  DATA 1 1 0 1 1 10731224 9502908 143291 155788 0 0 7997 7990 7977 0 0 
0 0 0 0 0  SABM 0 0 26 0 0 0000 0000 0000 0000 0 0 0 0 0 0 0 
236 173 33 36513 0  DATA 3 3 0 3 3 749149 1114850 61494 103419 0 0 55879 4582 34373 11 11 
0 6 15 3425 0  DATA 1 1 0 6 6 141444 5459488 28695 98434 0 0 230 3672 670 0 116 
3 35 47 4049 6  DATA 7 7 0 2 2 1051387 14461084 105285 293341 1 2 1087 3973 1929 0 113 

==== ercm09/emas-a/telepac/log610b.txt ====
date: 6 oct 86  11.42
POLL ALL
2047 1927 1820 0 100 2048 3498548 3574047 22 22 64592 105 13793 12571 
9 392 175 58173 20  DATA 4 4 1 3 3 3590336 2246690 6877282 5702968 7 5 64051 7113 26480 273 145 
1 38 0 86 0  DATA 1 1 0 1 1 47205 74674 2525 3925 0 0 1447 1907 1901 0 0 
0 4155 1 1599 10  DATA 5 6 1 4 4 14872181 717253 1250427 340256 2 0 28525 7560 57368 0 0 
9 49 584 5562 5  DATA 5 5 0 6 6 1185925 8483918 452994 1556591 0 1 2492 4158 3017 0 469 
0 5 168 6251 6  DATA 4 4 0 5 5 3454207 3812652 623160 1372673 0 1 3308 4597 4117 16 713 
1 608 3307 1879 11  DATA 2 2 0 6 7 8354934 871252 424883 171839 4 1 3 1901 56 0 0 
1 321 15 6896 2  DATA 1 1 0 3 3 10037620 7834876 293887 265221 0 0 2667 6178 2272 1 7 
0 36 0 35232 1  DATA 1 1 0 2 2 157489 4229641 409949 71102 0 0 62318 310 33731 0 0 
34 88 0 15937 0  DATA 1 1 0 1 1 10731224 9502908 143291 155788 0 0 7997 7990 7977 0 0 
0 0 0 0 0  SABM 0 0 29 0 0 0000 0000 0000 0000 0 0 0 0 0 0 0 
236 173 33 36516 0  DATA 1 1 0 1 1 749458 1114991 61539 103448 0 0 55879 4585 34376 11 11 
0 6 15 3435 1  DATA 1 1 0 5 5 142939 5517787 29029 99559 0 0 232 3680 670 0 118 
3 35 47 4076 5  DATA 5 5 0 1 1 1075116 14678930 108204 299632 0 2 1106 3981 1946 0 119 
0 55 6 3095 1  DATA 4 4 0 5 5 597976 2945399 22381 53407 0 0 230 10437 7772 0 53 
1 361 53 5662 2  DATA 1 1 0 7 7 8375354 3887584 1158278 496935 0 0 980 6466 1741 3 0 
171 42 42 4771 5  DATA 5 5 0 0 0 2217383 4527355 353005 779954 2 2 1882 4157 2283 31 277 
1 0 35 4063 2  DATA 2 2 0 4 4 899661 14382244 97858 264880 0 0 885 3684 1339 0 184 
7 2497 1702 15067 0  DATA 7 7 0 3 3 13154589 4752624 2203329 2318561 0 0 22788 43340 26466 0 0 

==== ercm09/emas-a/telepac/log610c.txt ====
date: 6 oct 86  14.38

 BASE: POLL ALL
2047 1938 1820 0 100 2048 3731276 3806912 29 29 4790 98 13993 13052 
9 396 179 60537 19  DATA 6 6 0 0 0 6613412 4100804 6943785 5751845 8 6 265 8781 28827 290 146 
1 38 0 86 0  DATA 3 3 0 6 6 47205 74674 2525 3925 0 0 1447 1928 1922 0 0 
0 4187 1 2253 8  DATA 3 3 1 5 5 16603116 743029 1269095 342858 4 0 29487 7651 57865 0 0 
9 49 597 5636 8  DATA 4 4 0 6 6 1203941 9931934 457311 1575656 0 8 2546 4188 3057 0 471 
0 5 169 6349 7  DATA 2 2 0 2 2 3487124 4469036 631053 1389651 0 0 3401 4634 4197 16 721 
1 652 3612 1969 13  DATA 7 0 1 6 6 9771516 916988 446144 178647 1 0 3 1991 56 0 0 
1 321 15 7029 4  DATA 1 1 0 4 4 10838835 7862299 307071 268038 0 0 2712 6306 2311 1 7 
0 36 0 35324 0  DATA 6 6 0 6 6 916165 4236318 416137 71245 0 0 64126 336 33740 0 0 
34 88 0 15937 0  DATA 1 1 0 1 1 10731224 9502908 143291 155788 0 0 7997 7990 7977 0 0 
0 0 0 0 0  SABM 0 0 2 0 0 0000 0000 0000 0000 0 0 0 0 0 0 0 
238 203 34 36736 0  DATA 7 7 0 7 7 749614 1119984 61558 103902 0 0 56800 4594 34604 11 11 
0 6 15 3479 1  DATA 3 3 0 5 5 145923 5740770 29687 102675 0 1 259 3710 699 0 126 
3 35 47 4126 3  DATA 1 1 0 7 7 1090298 15014404 111329 306929 0 0 1135 4011 1982 0 127 
0 56 6 3120 0  DATA 5 5 0 7 7 598359 3105230 22422 54782 0 0 232 10467 7782 0 53 
1 361 54 5719 4  DATA 4 4 0 2 2 9920426 3948233 1174865 500872 2 0 1008 6543 1794 3 0 
177 42 43 4838 3  DATA 3 5 0 4 4 2244814 5091590 363717 800731 1 1 1934 4187 2332 31 284 
1 0 37 4118 2  DATA 0 0 0 3 3 914846 15282658 102682 279546 0 0 918 3715 1376 0 187 

==== ercm09/emas-a/telepac/log610d.txt ====
date: 6 oct 86  16.02
POLL ALL
2047 1925 1820 0 100 2048 3926666 4002706 27 27 7560 123 14484 14521 
9 399 184 61260 28  DATA 4 6 1 6 6 8624836 5602499 6990233 5792070 9 7 865 9462 29764 340 154 
1 38 0 87 0  DATA 1 1 0 3 3 47237 74674 2527 3925 0 0 1447 1938 1931 0 0 
0 4200 1 2443 24  DATA 1 1 0 2 2 1176495 768660 1286727 346236 6 1 29880 7766 57919 0 0 
9 49 607 5679 3  DATA 4 4 0 0 0 1218554 10681590 461887 1587927 0 1 2574 4209 3085 0 473 
0 5 170 6415 6  DATA 7 7 0 4 4 3515112 5106698 638865 1407962 0 1 3450 4659 4248 16 735 
2 996 4984 2038 65535  DATA 3 3 0 1 1 10679664 945234 460612 183445 0 0 3 2060 62 0 0 
1 331 16 7088 2  DATA 3 3 0 6 6 11074504 7873796 313319 271870 0 0 2721 6378 2336 1 7 
0 36 0 35692 1  DATA 4 4 0 5 5 1619656 4405201 421937 73051 0 3 846 339 34090 0 0 
34 88 0 15937 0  DATA 1 1 0 1 1 10731224 9502908 143291 155788 0 0 7997 7990 7977 0 0 
0 0 0 0 0  SABM 0 0 28 0 0 0000 0000 0000 0000 0 0 0 0 0 0 0 
240 203 34 36836 0  DATA 4 4 0 2 2 749665 1123856 61561 104117 0 0 57176 4597 34707 11 11 
0 6 15 3497 0  DATA 4 4 0 1 1 147080 5828608 29905 103787 0 0 260 3730 704 0 130 
3 35 47 4169 3  DATA 6 6 0 5 5 1344790 15277576 118660 314955 0 0 1161 4031 2009 0 130 
0 56 6 3140 0  DATA 3 3 0 1 1 599993 3172860 22586 55534 0 0 236 10485 7787 0 53 
1 396 57 5755 3  DATA 7 7 0 3 3 10924931 3963278 1188508 504958 3 0 1024 6583 1812 3 0 
188 42 46 4878 6  DATA 2 2 0 6 6 2260867 5623452 369415 814685 0 1 1965 4207 2354 31 288 
4 29 38 4150 2  DATA 4 4 0 2 2 922573 15493254 104643 284568 0 1 933 3735 1388 0 187 
7 2517 1705 15201 1  DATA 1 1 0 0 0 13196973 4862703 2205399 2320149 1 1 23040 43751 26765 0 0 

==== ercm09/emas-a/telepac/l2.txt ====
date: 6 oct 86  14.38
date: 7 oct 86  14.40
      Current       Frames           Bytes    Acc Calls
Line   Calls    Rx/sec Tx/sec  Rx/sec Tx/sec    per min  CRC  Rejects  Retxs
   1     28      0.5      0.5      -0      -0      0      0      3      5
   2      0      0.0      0.0       0       0      0      0      0      0
   3     24      0.2      0.0      -0       0      0      0     13      0
   4      3      0.1      0.1       0      -0      0      0      0     10
   5      6      0.1      0.2       0      -0      0      0      0      1
   6  65535      0.2      0.1      -0       0      0      1    344   1372
   7      2      0.1      0.0      -0       0      0      0     10      1
   8      1      0.1      0.0      -0      -0      0      0      0      0
   9      0      0.0      0.0       0       0      0      0      0      0
  10      0      0.0      0.0       0       0      0      0      0      0
  11      0      0.0      0.0       0       0      0      2      0      0
  12      0      0.0      0.0       0      -0      0      0      0      0
  13      3      0.1      0.1      -0      -0      0      0      0      0
  14      0      0.0      0.0       0      -0      0      0      0      0
  15      3      0.2      0.0      -0       0      0      0     35      3
  16      6      0.1      0.2       0      -0      0     11      0      3
  17      2      0.0      0.1       0      -0      0      3     29      1

==== ercm09/emas-a/telepac/t3x25.txt ====
TelePAC 3 (Bush) X,25 Routing Table  29 July 87

 BE00 0  000015004000-                                                
 P002 0  000015004002-                                                
 P003 0  000015004003-                                                
 P004 0  000015004004-                                                
 P005 0  000015004008-                                                
 P006 0  000015004006-                                                
 P007 0  000015004007-                                                
 P008 0  000015004005-                                                
 P009 0  000015004009-                                                
 P010 0  000015004010-                                                
 P010 0  000015004110-                                                
 P006 0  000015004106-                                                
 P006 0  000015004206-                                                
 P007 0  000015004107-                                                
 P009 0  000015004109-                                                
 P006 0  000015000229-                                                
 P006 0  000015000129-                                                
 EI00 0  000015004098-                                                
 EI01 0  000015004099                                                 

==== ercm09/emas-a/telepac/tel4conf.txt ====
TelePAC 4 (AT) Configuration 7 September 1987

BASE:x25 list all
 X25 (0): 

 BE00 0  000016004000-                                    
 p014 0  000016004014-                                    
 p013 0  000016004013-                                    
 p012 0  000016004012-                                    
 p011 0  000016004011-                                    
 p010 0  000016004010-                                    
 p009 0  000016004009-                                    
 p008 0  000016004008-                                    
 p007 0  000016004007-                                    
 p006 0  000016004006-                                    
 p005 0  000016004005-                                    
 EI00 0  000016005098-                                    
 p004 0  *-                                               

 X25 (49): 
 BASE: list all

==== ercm09/emas-a/telepac/tel1conf2.txt ====
TelePAC 1 Configuration    9 Feb 87

 BASE: x25 list all

 X25 (0): 

 BE00 0  000015001000-                                    
 EI00 0  000015003098-                                    
 BE01 0  000015003099                                     
 P003 0  000015001003-                                    
 P004 0  000015004-                                       
 P005 0  000015005-                                       
 P006 0  000015001006-                                    
 P007 0  000015001007-                                    
 P008 0  000015001008-                                    
 P009 0  000015001009-                                    
 P010 0  000015001010-                                    
 P011 0  000015003011-                                    
 P012 0  000015001012-                                    
 P013 0  000015003013-                                    
 P014 0  000015003014-                                    

==== ercm09/emas-a/telepac/tel4addr.txt ====
list all

 BASE: 

 6128  EI00  EI01 0 
 PD01  X25   B    200  EXT   SABM 30 10 7 2 0 4 0  NORM 190 20 0 
 PD02  X25   B    100  EXT   SABM 30 10 7 2 0 4 0  NORM 190 20 0 
 PD03  X25   A    100  EXT   SABM 30 10 7 2 0 4 0  NORM 190 20 0 
 PD04  X25   A    100  EXT   SABM 30 10 7 2 0 4 0  NORM 190 20 0 
 PD05  X25   B    100  EXT   SABM 30 10 7 2 0 4 0  NORM 190 20 0 
 PD06  X25   B    100  EXT   SABM 30 10 7 2 0 4 0  NORM 190 20 0 
 PD07  X25   B    100  EXT   SABM 15 10 7 2 0 4 0  NORM 190 20 0 
 PD08  X25   B    100  EXT   SABM 30 10 7 2 0 4 0  NORM 190 20 0 
 PD09  X25   B    100  EXT   SABM 30 10 7 2 0 4 0  NORM 190 20 0 
 PD10  X25   B    100  EXT   SABM 30 10 7 2 0 4 0  NORM 190 20 0 
 PD11  X25   B    100  EXT   SABM 30 10 7 2 0 4 0  NORM 190 20 0 
 PD12  X25   B    100  EXT   SABM 30 10 7 2 0 4 0  NORM 190 20 0 
 PD13  X25   B    100  EXT   SABM 30 10 7 2 0 4 0  NORM 190 20 0 
 PD14  X25   B    100  EXT   SABM 30 10 7 2 0 4 0  NORM 190 20 0 

x25 list all

==== ercm09/emas-a/telepac/t1eaug88.txt ====
elog list all

 ELOG(0): 

01:12:34  04/04/88  PS07 RESTART (N)
01:12:44  04/04/88  PS15 RESTART (N)
09:23:02  04/04/88  PS09 DISCONNECTED
09:23:02  04/04/88  PS09 RESTART (N)
11:46:01  04/04/88  PS07 DOWN
11:58:06  04/04/88  PS07 RESTART (N)
10:28:47  05/04/88  PS10 DOWN
11:01:40  05/04/88  PS15 RESTART (N)
12:23:01  05/04/88  PS10 RESTART (N)
15:52:47  05/04/88  PS03 ERROR THRESHOLD EXCEEDED
16:44:40  05/04/88  PS03 ERROR THRESHOLD EXCEEDED
17:57:17  05/04/88  PS03 ERROR THRESHOLD EXCEEDED
18:48:08  05/04/88  PS03 ERROR THRESHOLD EXCEEDED
20:55:14  05/04/88  PS03 ERROR THRESHOLD EXCEEDED
01:41:07  06/04/88  PS07 DOWN
01:41:13  06/04/88  PS07 RESTART (N)
01:42:53  06/04/88  PS15 RESTART (N)

==== ercm09/emas-a/telepac/tel6conf.txt ====


 BASE: exam


   NUMBER OF CONTROL CHANNELS/ 3       VERSION/ 806D 
   REPORTS/ EI00     SESSION STATISTICS/ EI01 
   BUFFER THRESHOLD/ 40                INITIAL PRESENTATION TIMER/ 30 
   SECONDARY PRESENTATION TIMER/ 30    INACTIVITY DETECT TIMER/ 15 
   TERMINAL EMULATION BUFFERS/ 0 

 BASE: >
 EPCI: 
 EPCI: exam

 EPCI: >
 PF01: 

   NAME/ PF01        TYPE/ X25         SUB-TYPE/ SIO 
   SPEED/ EXT        PACKET SIZE/ 128 
   V54 TESTS/ NO     ADDRESS/ A        CHANNELS/ 100 

==== ercm09/emas-a/telepac/tel1confo.txt ====
Telepac 1 Configuration   11 Mar 88 at 1200

x25 list all

 X25 (0): 

 BE00 0  000015001000-                                    
 EI00 0  000015001098-                                    
 BE01 0  000015001099                                     
 P003 0  000015001003-                                    
 P004 0  000015004-                                       
 P005 0  000015005-                                       
 P006 0  000015001006-                                    
 P007 0  000015001007-                                    
 P008 0  000015001008-                                    
 P022 0  000015001009-                                    
 P010 0  000015001010-                                    
 P011 0  000015001011-                                    
 P012 0  000015001012-                                    
 P013 0  000015003013-                                    
 P014 0  000015001014-                                    

==== ercm09/emas-a/telepac/allfaults.txt ====
 
 
List of TelePAC faults   (Position as of 12 Sept 86)
 
1.2 Points addressed with Mr Gilmour regarding JNT Spec    (Telefile)
     Guaranteed PSS compatibility (BG 1)        SEEL letter of 12 02 86
     Call statistics in Clear packet (BG 2)     Ok, but see N7
     Call redirection (BG 3)                    Ok
     Load Sharing (BG 4)                        Ok, but see N6
     Performance monitor (BG 6)                 Ok
     Fault warning (BG 7)                       Ok (but could be more)
     Network management (BG 8)                  Ok, but multiple PSE not tried
     Various packet counts (BG 9)               Clear,Int,Rst SENT not counted
     Displayable DTE addresses (BG 11)          No (not by address yet)
     Password on BASE: (BG 12)                  Ok
     MTBF (BG 13)                               Ok (SEEL letter of 12 02 86)
     Crash on buffer exhaustion (BG 14)         Ok
     Hold link down (BG 15)                     Ok
     Change of line speeds (BG 16)              Ok
 
1.3 Gilmore/Cheney-reported bugs not dealt with above   (Telefile)

==== ercm09/emas-a/telepac/billans.txt ====
%EXTERNALROUTINE billans %alias "C#billans"(%STRING (255) s)

   %externalstring %fn %spec date %alias "S#date"
   %externalstringfnspec substring %alias "S#substring" %c
      (%string (*) %name s, %integer i,j)
   %EXTERNALROUTINESPEC prompt %ALIAS "S#PROMPT"(%STRING (255) s)
   %externalroutinespec EMAS3CONNECT %c
      (%stringname file, %integername mode, hole, prot, conad, %c
        type, start, end, flag)
   %ROUTINE define(%STRING (255) s)
      %EXTERNALROUTINESPEC emas3(%STRINGNAME command,params, %INTEGERNAME flag)
      %INTEGER flag
      emas3("DEFINE",s,flag)
   %END;                                 ! Of %ROUTINE define.
   %STRING (255) t,u, sou, des
   %INTEGER i,j, mins, secs, num, mon, hst
   %integerarray figs(1:4)
   %ownrealarray fx(1:10, 0:4)
   %ownstring (25) %array host(1:10)
   %real x
   %routine skip spaces

==== ercm09/emas-a/telepac/tel4log2.txt ====
time



 TIME: SECONDS/ 27 

 TIME: MINUTES/ 20 

 TIME: HOUR/ 16 

 TIME: DAY/ 3 

 TIME: MONTH/ 6 

 TIME: YEAR/ 88 

 BASE: 
 BASE: pd07 stat


   TYPE/ X25         CRC ERRORS/ 0     RETRANSMISSIONS/ 37 

==== ercm09/emas-a/telepac/tel1conf.txt ====
base exam


   NUMBER OF CONTROL CHANNELS/ 3       VERSION/ 8016 
   REPORTS/ EI00     SESSION STATISTICS/ EI01 
   BUFFER THRESHOLD/ 100               INITIAL PRESENTATION TIMER/ 30 
   SECONDARY PRESENTATION TIMER/ 30 

 BASE: ps01 exam


   NAME/ PS01        TYPE/ X25         SUB-TYPE/ NONE 
   SPEED/ EXT        PACKET SIZE/ 128  
   ADDRESS/ B        CHANNELS/ 100     OPTIONS/ EXT  
   INIT FRAME/ SABM                    T1/ 30 
   TRIES/ 30         K LEVEL2/ 7       K LEVEL3/ 2 
   LINE GROUP/ 0     LCGN/ 4           ADDRESS GROUP/ 0 
   FRAME SEQ/ NORM   CALL TIME OUT/ 190 
   ERROR THRESHOLD/ 20                 LOOP BAR PRIORITY/ 0 

 PS01: mem

==== ercm09/emas-a/telepac/t4eaug88.txt ====
elog list all

 ELOG(0): 

12:56:11  26/07/88  PD07 RESTART (N)
13:07:46  26/07/88  PD07 FRMR SENT (71,16,01)
13:07:46  26/07/88  PD07 FRMR SENT (71,16,01)
13:07:46  26/07/88  PD07 RESTART (N)
13:14:01  26/07/88  PD07 DOWN
13:14:36  26/07/88  PD07 RESTART (N)
13:14:36  26/07/88  PD07 RESTART (N)
13:40:36  26/07/88  PD07 ADDRESS ERROR (2F)
13:44:36  26/07/88  PD07 FRMR SENT (71,16,01)
13:44:36  26/07/88  PD07 FRMR SENT (71,16,01)
13:44:36  26/07/88  PD07 RESTART (N)
14:13:51  26/07/88  PD07 FRMR SENT (11,D0,01)
14:13:56  26/07/88  PD07 FRMR SENT (11,D0,01)
14:13:56  26/07/88  PD07 RESTART (N)
14:28:26  26/07/88  PD07 ADDRESS ERROR (6F)
14:48:41  26/07/88  PD07 FRMR SENT (F1,FE,01)
14:48:46  26/07/88  PD07 FRMR SENT (F1,FE,01)

==== ercm09/emas-a/telepac/t2x25.txt ====
x25 list all

 X25 (0): 

 BE00 0  000015005000-                                    
 EI00 0  000015005098-                                    
 P002 0  000015005002-                                    
 P004 0  000015005004-                                    
 P005 0  000015005005-                                    
 P006 0  000015005006-                                    
 P007 0  000015005007-                                    
 P008 0  000015005008-                                    
 P009 0  000015005009-                                    
 P010 0  000015005010-                                    
 P011 0  000015005011-                                    
 P012 0  000015005012-                                    
 P013 0  000015005013-                                    
 P014 0  000015005014-                                    
 BE01 0  000015005099                                     
 P024 0  000015005024-                                    
 P016 0  000015005016-                                    

==== ercm09/emas-a/preppd_oprepd.txt ====
{Prepare PREP for DEIMOS}
prep preppd_preps,prep#imp,d
imp11 prep#imp
link11 /prep
prep
ercm11.shr
.fixup ercm11.shr#fix
.end
prep
destroy prep#imp,prep#rel,prep#lst

==== ercm09/emas-a/b_inv.txt ====
prep invaders,inv#imp,d
imp11 inv#imp
link11 /map
inv#rel
i77perm
.stack 4000
.end
invy

==== ercm09/emas-a/preppd_oprepe.txt ====
!Prepare PREP for EMAS
prep preppd_preps,prep#imp,e
imp80 prep#imp,prepy
destroy prep#imp

==== ercm09/emas-a/xx25_xxx3as.txt ====
!********************************
!*  emas-2900  fep  itp server  *
!*   file: x25_xxx3as/xxx3y         *
!* NB: NOT same source as 2900       *
!********************************
!! stack size = 500
!*
#options

%control 1
%include "deimosperm"

%begin

      %conststring (13)vsn = "xxx...3a "
#datestring

      !!   no of data bytes in a short block  

      %constinteger small block max = 115;        ! 128-4-6-4
      %constinteger big block max = 127;          ! for P=128/128 calls

==== ercm09/emas-a/b_xprotbm.txt ====
EDIT x25.xprot3s,T#B
TA/198/A1STM/Versi/f<X>KZ(r/Running/i<X>i/ (Mon)(BigB)/p1)2
E
prep t#b,xprot2#imp,q,i,b,clean
dIMP11 xprot2#IMP/xprot2#REL,xprot2#lst
dLINK11
xprot2#REL
.STACK 2000
.STREAMS 1
.NAME xpr1
.stackseg 6
.END
xpr2#OBJ
destroy xprby
rename xpr2#obj,xprby

dalist11 xprot2#imp/l2
list l2,.lp23

==== ercm09/emas-a/b_dpalnew.txt ====
e gen_dpal8s/temp
f/deimosperm/s/b_deimosspecs/
%c
imp11 temp/,ll
link11
temp#rel
ercm11.newimp
.stack 2400
.streams 1
.end
dpal8y
alist11 temp/.lp23

==== ercm09/emas-a/b_det23.txt ====
out=lp23
name=what a drag
.end

==== ercm09/emas-a/cals.txt ====


%INTEGERFN INITIALDAY(%INTEGER YEAR)
   %OWNINTEGER INITIAL= 0;               ! BASE IN 1973
   %INTEGER X
   X = (INITIAL+YEAR-1973+(YEAR-1973)//4)
   %WHILE X>7 %CYCLE
      X = X-7
   %REPEAT
   %RESULT = X
%END

%EXTERNALROUTINE CALENDAR(%STRING (63) S)
   %INTEGER I,YEAR,DAY
   %OWNINTEGER INITIAL= 0;               !BASE IN 1973
   %OWNSTRING (9) %ARRAY MONTH(1:12)= %C
       "JANUARY  ", "FEBRUARY ", "MARCH    ", "APRIL    ",
       "MAY      ", "JUNE     ", "JULY     ", "AUGUST   ",
       "SEPTEMBER", "OCTOBER  ", "NOVEMBER ", "DECEMBER "
   %OWNBYTEINTEGERARRAY DAYS(1:12)= %C
       31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31

==== ercm09/emas-a/b_lmeor.txt ====
imp11 lmeors
link11
lmeors#rel
i77perm
.stack 1000
.streams 1
.end
lmeory
alist11 lmeors/.lp23

==== ercm09/emas-a/xx25_karen.txt ====
sksd@[15000040.(FTP001,RATS).GECDFTP.00000000203150.FTP.MAIL]

==== ercm09/emas-a/xwindowsasc.txt ====
X Windows

The X Windows protocol specification offers a combination of a graphics and a communications interface.  This enables an application which uses X Windows to run on either a single machine supporting both the application and the screen or it enables the application to be on one machine with the screen supported on a second system.

X Windows originated in MIT as part of Project Athena supported by DEC and IBM.  There are now a wide range of implementations supported on Unix, VMS and IBM operating systems (see Fig. 1).


X Usage

The terminology used in X is unusual.  The application 'end' is described as the 'Client' and the screen 'end' is described as the Server - as it serves the graphics to the user.  The setting up of an X dialogue is also unconventional and is shown in Fig. 2.  The user first makes a 'call' to a machine supporting an X client application.  This call can be by any means which a user would normally use to call a host from a terminal or workstation, eg by XXX, a TCP/IP terminal call, a DECNET terminal call or whatever.  

After logging in as normal to the host machine, quoting a name and password if demanded, the user then calls up an X application. The most usual one would be 'xterm' which offers a terminal emulator over X thus enabling other applications to be started.  The user would then probably clear his original call to the host machine and the X session would be started by the application machine calling back to the user and opening a window on his display.

The mechanism employed, that of the host (client) calling the user (server) can be repeated a number of times creating multiple windows on the user's screen.

A typical X session is depicted in Fig. 3, the user has created three windows on his screen from three different hosts.  In reality this could be from a mail server, an archive server and a compute server.  It is quite normal for small areas of the screen to be 'donated' to a server such as a mail server in an iconised form and the  full window only opened up when new mail arrives or the user wishes to send out mail.


X Structure

The structure of an X conversation is shown in Fig. 4.  The protocol, known as X 11,  runs over a simple reliable byte stream and thus can be readily mapped over different communications infrastructures.  The purpose of the Toolkit is to add functionality to aid programming and provide some consistency to applications.  Policy decisions, such as whether to use overlapping or tiled windows, pop up or pull down menus and other 'look and feel' decisions is the responsibility of the top level of the structure.  X 11 does not impose any restrictions on such policy matters.

==== ercm09/emas-a/convs.txt ====
%externalroutine conv %alias "c#conv"(%string (255) s)
%string (255) t,u,v
%ownstring (255) last add, last pd
%integer i,j,k,l
%owninteger rec = 0, add = 0
%ownbyteintegerarray a(0:255)
   %ROUTINE define(%STRING (255) s)
      %EXTERNALROUTINESPEC emas3(%STRINGNAME command,params, %INTEGERNAME flag)
      %INTEGER flag
      emas3("DEFINE",s,flag)
   %END;                                 ! Of %ROUTINE define.

%on %event 9 %start
   -> eof
%finish

%routine read my line
   %integer i,j,k,l,sh, shm, ind, x
   %byteintegerarray pda(0:5)
   l = 0; ind = 1; sh = 0
   %cycle i = 1, 1, 5

==== ercm09/emas-a/xx25_infos.txt ====
%conststring (13) vsn = "infos....1a "
#datestring
#timestring

!********************************
!*  emas-2900  fep  info server  *
!*   file: infos/infosy       *
!*                              *
!********************************


#options
! prep versions are:-
!
!   f = front ends (all of them)
!   c = Xcall
!   g = Xgate
!   t = fstore
!   a = Amdahl Feps
!   b = big buffer manager (also use i)
!   i = New compiler

==== ercm09/emas-a/dhryasc.txt ====
Dhrystone Ratings

Machine        Who   Reg    non-reg
-----------------------------------
SUN 4/260       (CS)         18,963
Ardent              17,301   17,346
Convex C210                  12,646
Sun 4/110                    11,904
NAS                          10,869
Gould NP1                     8,547
SUN 3/260       (CS)          7,853
PN9080          (CS)          7,672
COMPAC 386 20Mhz     6,341    6,066
Sequent                       5,237
u Vax 3600      (CS)          4,329
Archimedes      (?)           4,000
SUN 3/160       (CS)          3,764
SUN 3/60        (?)           2,289
Torch Quad X    (?)           1,883
Torch XXX       (?)             384


==== ercm09/emas-a/rootitspna.txt ====

Via: UK.AC.EDINBURGH.ITSPNA  ; (to uk.ac.edinburgh.emas-a) 27 Mar 89  06:02:02 bst
Date: Mon, 27 Mar 89 06:00:14 GMT
From: The Almighty <root@uk.ac.ed.itspna>
Subject: log/reports of machine breaks on Itspna
To: B.Gilmore@uk.ac.ed, guc@uk.ac.ed.itspna, rob@uk.ac.ed.itspna,
        tony@uk.ac.ed.itspna
Message-ID: <736.8903270600@itspna.ed.ac.uk>
Status: O


          Performance Statistics for IT School

Edinburgh Univ Comp Service: itspna.

Computer Supplier: GOULD       Model: 32/DP97     System Identifier: N/A

Period of report: Mon Mar 20 1989  to  Mon Mar 27 1989

Service Schedule:


==== ercm09/emas-a/b_infop.txt ====
prep x25gen_infop2s,infops#imp,x,e,m,clean
imp11 infops#imp/,l
link11
infops#rel
i77perm
.stack 2000
.streams 1
.name infp
.end
infopxy
disconnect infopxy
alist11 infops#imp/.lp15

==== ercm09/emas-a/ftptest.txt ====
transfer BDGA(a,b)c,d,FI
transfer BHGA(a,b)c,d,FI
transfer BHGB(a,b)c,d,FI
transfer BHIA(a,b)c,d,FI
transfer BHVS(a,b)c,d,FI
transfer BIHA(a,b)c,d,FI
transfer BRGA(a,b)c,d,FI
transfer CERN.CERNVM(a,b)c,d,FI
transfer CERN.GEC-A(a,b)c,d,FI
transfer CERN.IBMFM(a,b)c,d,FI
transfer CERN.VXALBM(a,b)c,d,FI
transfer CERN.VXALFB(a,b)c,d,FI
transfer CERN.VXBSSY(a,b)c,d,FI
transfer CERN.VXCRNA(a,b)c,d,FI
transfer CERN.VXDEBM(a,b)c,d,FI
transfer CERN.VXDEFB(a,b)c,d,FI
transfer CERN.VXDEV(a,b)c,d,FI
transfer CERN.VXDEVT(a,b)c,d,FI
transfer CERN.VXGIFT(a,b)c,d,FI
transfer CERN.VXL3(a,b)c,d,FI
transfer CERN.VXMERL(a,b)c,d,FI

==== ercm09/emas-a/b_gecgrab.txt ====
prep x25gen.gecgrab2,gecgrab#imp,f,m,i
dimp11 gecgrab#imp
dlink11
gecgrab#rel
.stack 2000
.streams 2
.stackseg 6
.end
gecgrab
destroy dobj.gecgraby
rename gecgrab#abs,dobj.gecgraby


==== ercm09/emas-a/readm#.txt ====
READ.ME    ----    RTMS VERSION 1.00    ----    02/02/87

The RTMS program requires the modem flow control lines on the IBM's serial
port to be held at the correct levels.  If an ERCC cable type 94 or 01 is
used, it is sufficient to connect pins 4 & 5, and 6, 8 & 20 at the 
network end.

==== ercm09/emas-a/b_lmtsxs.txt ====
prep x25gen.lmtots,lmtots#imp,t,clean
dimp11 lmtots#imp
dlink11 /map
lmtots#rel
.stack 1000
.streams 1
.stackseg 6
.name lmts
.end
lmtsxy
destroy dobj.lmtsxy
rename lmtsxy#abs,dobj.lmtsxy

==== ercm09/emas-a/b_cli.txt ====
dimp11 cli1s
link11 /map
cli1s
.codeseg 2
.stackseg 6
.stack 300
.streams 0
.end
cli1s
c cli1s#abs,newsys_cli1y

==== ercm09/emas-a/b_xprotb.txt ====
EDIT x25.xprot3s,T#B
TA/198/A1STM/Versi/f<X>KZ(r/Running/i<X>i/ (Fast)(BigB)/p1)2
E
prep t#b,xprot2#imp,f,q,i,b,clean
dIMP11 xprot2#IMP/xprot2#REL,xprot2#lst
dLINK11
xprot2#REL
.STACK 2000
.STREAMS 1
.NAME xpr1
.stackseg 6
.END
xpr2#OBJ
destroy xprby
rename xpr2#obj,xprby

dalist11 xprot2#imp/l2
list l2,.lp23

==== ercm09/emas-a/b_am1b.txt ====
prep x25_eam9s,eam9s#imp,n,clean,b,m
dimp11 eam9s#imp
dlink11 /map
eam9s#rel
.stack 2000
.streams 1
.name am1h
.stackseg 6
.end
eam9s
destroy eam9sy
rename eam9s#abs,eam9sy
alist11 eam9s#imp/.lp23

==== ercm09/emas-a/imp11source_gen11s.txt ====
{#######################################}
{#  PDP11 IMP77 Object File Generator  #}
{#                                     #}
{#       Copyright November 1981       #}
{#          Peter S. Robertson         #}
{#                                     #}
{#######################################}


{#################################################################}
{# Object file format:   <N> = Word value N,  [N] = Byte value N #}
{#                                                               #}
{#        Zeroth word: <Link>  0 or size in bytes of Data Items  #}
{#         First word: <Size of code area>                       #}
{#        Second word: <Size of gla area>                        #}
{#         Third word: <Size of diag table area>                 #}
{#        Fourth word: <Size of line number table area>          #}
{#         Fifth word: <Size of event block>                     #}
{#                     "Section name"                            #}
{#                     <Number of external definitions>          #}
{#                     External Definitions                      #}

==== ercm09/emas-a/b_xprotk.txt ====
EDIT x25_xprot3s,T#B
TA/198/A1STM/Versi/f<X>KZ(r/Running/i<X>i/ (Fast)/p1)2
E
prep t#b,xprot2#imp,f,k,i,clean
dIMP11 xprot2#IMP/xprot2#REL,xprot2#lst
dLINK11
xprot2#REL
.STACK 2000
.STREAMS 1
.NAME xpr1
.stackseg 6
.END
xpr2#OBJ
destroy xprky
rename xpr2#obj,xprky

alist11 xprot2#imp/l2
list l2,.lp23

==== ercm09/emas-a/b_xprotkb.txt ====
EDIT x25.xprot3s,T#B
TA/198/A1STM/Versi/f<X>KZ(r/Running/i<X>i/ (Fast)(BigB)/p1)2
E
prep t#b,xprot2#imp,f,k,i,b,clean
dIMP11 xprot2#IMP/xprot2#REL,xprot2#lst
dLINK11
xprot2#REL
.STACK 2000
.STREAMS 1
.NAME xpr1
.stackseg 6
.END
xpr2#OBJ
destroy xprkby
rename xpr2#obj,xprkby

dalist11 xprot2#imp/l2
list l2,.lp23

==== ercm09/emas-a/xx25_rolbx1.txt ====
! FILE 'rolbx1'
!**********************
!* rolbx1/rolbx1y
!* date: 01.jun.81   *
!* ring vsn          *
!*********************
%conststring (7) vsn = "vsn001b"
!! stack = 300, streams = 1

%control k'100001'
%INCLUDE "DEIMOSPERM"


%recordformat xf(%byteinteger unit,fsys,%byteintegerarray fname(0:5))
%BEGIN

   %owninteger mon = -1

%recordformat mef(%record(mef)%name link,%byteinteger len,type,  %c
      (%bytearray reserved(0:7), %bytearray data(0:239) %or %c
      %bytearray params(0:239)))

==== ercm09/emas-a/xx25_paddoc.txt ====
[6{ HThe JNT PAD - Getting Started
	The JNT PAD - Getting Started

ThefollowingcontainsasummaryoftheJNTPADfacilities
mostlikelytobeofinteresttotheuserapproachingthePAD
;forthefirsttime.Themore'exotic'featuresandvaluesof
thevariousparametersarenotdescribed. HItisemphasised
	Itisemphasised
; HthatthereisnosubstituteforexaminationoftheJNTPAD
	thatthereisnosubstituteforexaminationoftheJNTPAD
; HTerminalUsers'Guide.Inthefollowing sections,CRis'carriage
	TerminalUsers'Guide
;return'andDLEisobtainedbyholdingdownthe'ctrl'keyand
pressing P.

 HINTRODUCEyourselftothePADbytypingCR(perhaps
	INTRODUCE
;repeatedly)sothatthePADcanascertainyourterminalline
speed, 110-9600 baud.

 HHELP is available by typing 'HELP' to the PAD> prompt to obtain
	HELP 
;informationastowhatthePADknows aboute.g.'HELPADDRESS'
gives host names known to the PAD.

 HCALLthehostbytyping'CALL<hostname>'tothePAD>prompt
	CALL
;e.g.

==== ercm09/emas-a/b_am1m.txt ====
prep fep_eam77,eam77#imp,n,m,c,clean
dimp11 eam77#imp
link11 /map
eam77#rel
.stack 1000
.streams 1
.name am1h
.stackseg 6
.end
eam77
destroy eam77y
rename eam77#abs,eam77y
alist11 eam77#imp/.lp23

==== ercm09/emas-a/b_xprotp.txt ====
EDIT x25_XPROTs,T#B
TA/198/A1STM/Versi/f<X>KZ(r/Running/i<X>i/ (Fast)/p1)2
E
prep t#b,xprot#imp,F,p
IMP11 XPROT#IMP/XPROT#REL,xprot#lst

LINK11
ERCM09.I77PERM
XPROT#REL
.STACK 2000
.STREAMS 0
.NAME XPR1
.END
XPR1#OBJ
destroy xpr1y
rename xpr1#obj,xpr1y

alist11 xprot#imp/.lp23

==== ercm09/emas-a/b_am1o.txt ====
prep fep_eam77,eam77#imp,clean
imp11 eam77#imp
link11 /map
i77perm
eam77#rel
.stack 1000
.streams 1
.name am1h
.end
eam77y
alist11 eam77#imp/.lp23

==== ercm09/emas-a/b_down.txt ====
imp11 down4m
link11
down4m#rel
.stack 2000
i77perm
.streams 1
.end
down4y

==== ercm09/emas-a/b_xproty.txt ====
EDIT x25_XPROTs,T#B
TA/198/A1STM/Versi/f<X>KZ(r/Running/i<X>i/ (Fast)/p1)2
E
prep t#b,xprot#imp,F,p,Y
IMP11 XPROT#IMP/XPROT#REL,xprot#lst

LINK11
ERCM09.I77PERM
XPROT#REL
.STACK 2000
.STREAMS 0
.NAME XPRY
.END
XPR1#OBJ
destroy xpry1y
rename xpr1#obj,xpry1y

alist11 xprot#imp/.lp23

==== ercm09/emas-a/ednet0588.txt ====
{{circle(24,12,.5);INLABEL(.14,"Fe1")}}
{{circle(8.7,16.5,2);inlabel(.2,"TelePAC 1@b15001000")}}
{{circle(7.1,13,1.3);inlabel(.175,"TelePAC 3@b15004000")}}
{{circle(13,22.4,2);inlabel(.3,"KB-CPSE@bGEC 4190@b")}}
{{inlabel(.14,"@B@B@b@b000015000000")}}
{{join(c4,c1)}}
{{circle(13,4,2);inlabel(.3,"AT-CPSE@bGEC 4190@b")}}
{{inlabel(.14,"@B@B@b@b000016000000")}}
{{CIRCLE(8.2,20,1.25);inlabel(.175,"TelePAC 2@b15005000")}}
{{circle(24,11,0.5);inlabel(.14,"Fe2")}}
{{circle(24,10,0.5);inlabel(.14,"Fe3")}}
{{circle(24,4,0.5);inlabel(.14,"Fe2")}}
{{CIRCLE(32.5,21.7,1.5);INLABEL(.14,"JANET@bPSE")}}
{{circle(28,7.3,.5);inlabel(.14,"Fe3")}}
{{circle(12.75,24.8,.1);fill(c12)}}
{{circle(14.75,24.8,.1);fill(c13)}}
{{circle(16.75,24.8,.1);fill(c14)}}
{{circle(20.75,25.2,0)}}
{{circle(6.75,25.2,0)}}
{{CIRCLE(6.75,1.4,0)}}
{{circle(8.75,1.4,0)}}

==== ercm09/emas-a/netcomm/xiconpas.txt ====
{

<E>dit, <F>iles, <G>et from PAD, <P>ut to PAD, <T>erminal, e<X>it:

Files - <A>ddresses, <C>onfiguration, e<X>it:

Get - <A>ddresses, <C>onfiguration, e<X>it:

Put - <A>ddresses, <C>onfiguration, e<X>it:

}

program test(input,output,f);

{$i typedefs.pas}

var		padarray:parray;
			menu:marray;
			i:integer;
			x:integer;
			y:integer;

==== ercm09/emas-a/netcomm/readm#.txt ====
Thió  ió  thå  sourcå codå foò XICON®  Iô  shoulä  compilå  usinç ==== ercm09/emas-a/netcomm/namespas.txt ====


procedure sortnames(i	:	integer);				{ sort name file selected by i}

var
	j,rec	:	integer;
	finished	:	boolean;
	namepkt,nextpkt	:	namentry;
	temps	:	string20;
		
begin
	poscur(7,1);
	flashon;
	write('SORTING');
	flashoff;
	assign (fn,padarray[i].namfile);
	update(fn);
	j:=1;
	rec:=0;
	finished:=false;
	repeat

==== ercm09/emas-a/netcomm/readme.txt ====
Thió  ió  thå  sourcå codå foò XICON®  Iô  shoulä  compilå  usinç ==== ercm09/emas-a/netcomm/editorpas.txt ====
segment editor ;

{ ***
  Header file with type declarations and common variables
  *** }

{$I typedefs.pas}


procedure readfromfile(var filename : string20) ; external ;
procedure readcopyfile(var filename : string20) ; external ;
procedure cls ; external ;
procedure underscoreon ; external ;
procedure poscur(x,y : integer) ; external ;
procedure hlighton ; external ;
procedure hlightoff ; external ;
procedure flashon ; external ;
procedure flashoff ; external ;
function kbstat : boolean ; external ;
procedure kbread(var ch : char) ; external ;
procedure syscall(intnumber:byte; var regs : intregspec) ; external ;

==== ercm09/emas-a/inc_exts.txt ====
!Commonly Used Externals

%externalroutinespec alarm(%integer ticks)
%externalroutinespec linkin(%integer ser)
%externalintegerfnspec dup addr(%integer seg)
%externalintegerfnspec map abs(%integer adr, len, req id)
%externalroutinespec map hwr(%integer seg)
%externalintegerfnspec get id
%externalroutinespec map virt(%integer ser,seg1,seg2)
%externalroutinespec set prio(%integer n)
%externalroutinespec pon(%record (*) %name p)
%externalroutinespec ponoff(%record (*) %name p)
%externalroutinespec poff(%record (*) %name p)

%endoffile

==== ercm09/emas-a/setup.txt ====
-5000 -900 -500 -350 -300 -100 0 100 300 350 500 900 5000
2 0 0    1 0
-4 -2 -3 -5 -6 -3 -2 -4
-1 -1 -1 -1 -1 -1 -1 -1
 0  0  0  0  0  0  0  0
 0  0  0  0  0  0  0  0
 0  0  0  0  0  0  0  0
 0  0  0  0  0  0  0  0
 1  1  1  1  1  1  1  1
 4  2  3  5  6  3  2  4
0

==== ercm09/emas-a/b_rl01.txt ====
dimp11 rl06s
link11 /map
rl06s
.codeseg 2
.stackseg 6
.stack 300
.streams 0
.end
rl06s
c rl06s#abs,newsys_rl06y

==== ercm09/emas-a/b_sbld.txt ====
imp11 gen_sbld6s/sbld6s#rel,l
link11
sbld6s#rel
i77perm
.stack 72000
.streams 4
.end
sbld6y
alist11 gen_sbld6s,sbld6s#rel/.lp23

==== ercm09/emas-a/primep.txt ====
PROGRAM primes(input,output);
{Computes primes up to a given limit,
 using the "sieve of Eratosthenes" }
CONST
  maxnumber = 120000;
  maxhalf = 60000;  {maxnumber DIV 2}
TYPE
  number = 1..maxnumber;
  half = 1..maxhalf;
VAR
  i, count,factor,maxfactor,limit,nonprime: number;
  index,halflimit: half;
  primeflags: ARRAY [half] OF boolean;
BEGIN
  REPEAT
    writeln('Upper limit = ?');
    readln(limit);
  UNTIL (1 <= limit) AND (limit <= maxnumber);
  halflimit := pred(limit) DIV 2;
  for i := 1 to 10 do begin
  FOR index := 1 TO halflimit DO primeflags[index] := true;

==== ercm09/emas-a/geac3.txt ====
3
aut/peterson
AGE RETURN
3
til/water
AGE RETURN
3
1
AGE RETURN
3
aut/thompson
AGE RETURN
3
1
AGE RETURN
3
aut/joshi
AGE RETURN
3
1
AGE RETURN

==== ercm09/emas-a/b_lmtim.txt ====
c gen_lmtims,temp
imp11 temp
link11
temp#rel
i77perm
.name lmti
.stack 2000
.streams 1
.end
lmtimy
list lmtimy,.fep72
alist11 temp/.lp23

==== ercm09/emas-a/b_fsys78.txt ====
imp11 sys_fsys78/fsys78#rel,l
link11
fsys78#rel
i77perm
.stack 300
.streams 0
.end
fsys78y
alist11 sys_fsys78,fsys78#rel/l2
list l2,.lp23

==== ercm09/emas-a/b_det.txt ====
out=file
outname=detout
name=what a drag
.end

==== ercm09/emas-a/preppd_prepams.txt ====
!Emas declerations
%EXTERNALSTRINGFUNCTIONSPEC date %ALIAS "S#DATE"
%EXTERNALSTRINGFUNCTIONSPEC time %ALIAS "S#TIME"
%EXTERNALROUTINESPEC set return code %ALIAS "S#SETRETURNCODE"(%INTEGER n)
%ROUTINE define(%STRING (255) s)
   %EXTERNALROUTINESPEC emas3(%STRINGNAME command,params, %INTEGERNAME flag)
   %INTEGER flag
   emas3("DEFINE",s,flag)
%END;                                    ! Of %ROUTINE define.
%ROUTINE destroy(%STRING (255) s)
   %EXTERNALROUTINESPEC emas3(%STRINGNAME command,params, %INTEGERNAME flag)
   %INTEGER flag
   emas3("DESTROY",s,flag)
%END;                                    ! Of %ROUTINE destroy.
%EXTERNALINTEGERFUNCTIONSPEC exist %ALIAS "S#EXIST"(%STRING (255) file)
%EXTERNALINTEGERFUNCTIONSPEC iocp %ALIAS "S#IOCP"(%INTEGER ep,parm)

%OWNSTRING (255) expression
%OWNSTRING (255) initstr
%OWNINTEGER expindex,expchar,errflag,line no,hash present
%OWNBYTEINTEGERARRAY vars(0:25)=0(26)

==== ercm09/emas-a/futureasc.txt ====
@heading{Future Terminals}

The 'terminal' of the future will be a bitmapped display offering as normal what would currently be regarded as high resolution and supported by mouse and keyboard and, eventually, voice input.  The user interface, for whatever application, will be at least of the user friendly standard currently being set by a few micros.

It will need to contain significant computing power to supply its graphics but the precise division between a 'terminal', diskless workstation and full powered workstation with local disc support will be less precise than at present and will be determined by the style of application that the user wishes to use.

@section{Why remote access?}

A reasonable question is why a 'terminal' should be considered at all.  Why is our future user not going to be satisfied by his high powered personal workstation with large quantities of disk space?  The answer to this question lies in a number of applications that even a powerful workstation cannot handle.

@itemise{
Mail - Even with the X.400 standards, workstations in general will not be able to be Message Transfer Agents.   The  periodical switching off of workstations would cause message delivery to fail as timeouts are short and the problems of an academic institution attempting to handle thousands of MTAs are daunting.

Very Large Disk space requirements - the requirements of disk space for databases will probably always outstrip what a user can put on his desk.  One common biological database already exceeds 100 Megabytes (???) and other databases such as a library catalogue are in the multi gigabyte size.

Compute Servers - although the available power on the desk has grown dramatically so have the requirements.  Significant numbers of users will require access to powerful computing resources thus raising questions on how control of such resources can be provided in a user friendly fashion.

TP Activities - access to shared data, of a different quality than the databases listed above will require remote access.
}

@section{Possible Solutions}

==== ercm09/emas-a/xx25_rolbx1y.txt ====
-þÿüÿÂ`
Üm
tô
þÿìüÿÂ`Áe…„‡ÁÀ…„‡ÞjJ”@&fUDÅeC
ÂÜB`Âeß	PQüÿ
ÂÜ
ßþÿB`‚
³…„‡ŽVFØ@&fU
DÅeó•ó$Ÿ3Š3Šs	3ÀÀeß	ôP…„‡†>A&f
DÅeó•óæžó•3ÀÀeß	ôP…„‡vVPA&fÎå
DÅeó•ó¬ž3úÿ3üÿ3þÿó*ó•	ÀÀeß	ôP…„‡¦9¢ A&f
DÅeó•ó^ž3Š3ŠÀÀeß	QÂ2ŠÀZÂß	”@ÀÔÄÁß	”@ÀtÂÁß	”@ÀÔÄÁß	”@ó•óžó•3Šó•	ÀÀeß	ôP…„‡>ÄFailed to turn Disc check offWhole disc written
Failed üò<B&DÅeÃp‚$ôr‚
ôÄ4
4
Àe
ß	Q-	ÁÖÄß	œPÀß	Nß	pN
@ß	ÀL÷-"‚"‚
ÁôÄß	œP÷‚„‡ô‚
ô`ôô¶ÂÃîÃ]øôÀe
ß	QÁÅß	œPÀÁÆß	NÁÅß	œPÀß	Nß	pN-·
ž÷¢„‡Úü˜C&fu
DÅe
v(C&fU5DÅet’4Š…„‡ôÂe´


==== ercm09/emas-a/b_nbsp.txt ====
DIMP11 NBSP9S
link11 /nbsp
nbsp9s
.stack 1000
.streams 1
.codeseg 1
.stackseg 6
.end
nbsp9s
destroy nbsp9y
rename nbsp9s#abs,nbsp9y
LIST NBSP9Y,.BPP155

==== ercm09/emas-a/readme.txt ====
READ.ME    ----    RTMS VERSION 1.00    ----    02/02/87

The RTMS program requires the modem flow control lines on the IBM's serial
port to be held at the correct levels.  If an ERCC cable type 94 or 01 is
used, it is sufficient to connect pins 4 & 5, and 6, 8 & 20 at the 
network end.

==== ercm09/emas-a/b_snoop.txt ====
imp11 snoops/,l
link11
snoops#rel
i77perm
.stack 1000
.streams 0
.end
snoopy

==== ercm09/emas-a/b_nbss.txt ====
DIMP11 nbss9S
link11 /nbss
nbss9s
.stack 1000
.streams 1
.codeseg 1
.stackseg 6
.end
nbss9s
destroy nbss9y
rename nbss9s#abs,nbss9y

==== ercm09/emas-a/b_nipoll.txt ====
prep x25gen.nipolls,nipolls#imp,clean
dimp11 nipolls
dlink11 /map
nipolls
.streams 1
.stack 1000
.end
nipolls
destroy nipolly
rename nipolls#abs,nipolly

==== ercm09/emas-a/imp11source_comp11s.txt ====
%EXTERNALINTEGERFNSPEC SMADDR(%INTEGER CHAN,%INTEGERNAME LEN)
!%EXTERNALROUTINESPEC CLOSESM(%INTEGER CHAN)
%EXTERNALROUTINESPEC prompt %ALIAS "S#PROMPT"(%STRING (255) s)
%BEGIN

   %OWNINTEGER CHECKSUM
   %OWNBYTEINTEGERARRAY STORE(-40:K'177777')
   %OWNINTEGER BASE=0
   %OWNINTEGER RA,SA,FA
   %OWNSTRING (255) ST
   %OWNINTEGER I,J,HIGH ADDRESS,START ADDRESS,COMMAND,CH,X


   %ROUTINE WRITE OCTAL(%INTEGER NO)
!=================================
      %INTEGER I

      NO = NO&K'177777'
      %CYCLE I = 15,-3,0
         PRINTSYMBOL((NO>>I)&7+'0')
      %REPEAT

==== ercm09/emas-a/b_dbug.txt ====
dimp11 gen_dbug7/dbug7#rel
link11 /dbug7
dbug7
.stack 2000
.streams 1
.stackseg 6
.name dbug
.end
dbug7
c dbug7#abs,dbug7y

==== ercm09/emas-a/b_lmxxxs.txt ====
prep x25gen.lmtots,lmtots#imp,x,clean
dimp11 lmtots#imp
dlink11 /map
lmtots#rel
.stack 1000
.streams 1
.stackseg 6
.name lmxx
.end
lmxxxy
destroy dobj.lmxxxy
rename lmxxxy#abs,dobj.lmxxxy

==== ercm09/emas-a/b_batch.txt ====
dimp11 gen.batchs/batchs#rel
dlink11
batchs#rel
.stack 1000
.streams 2
.name BATC
.stackseg 6
.end
batchy
destroy batchy
rename batchy#abs,batchy

==== ercm09/emas-a/x25genpd_ftpd3s.txt ====
! prep options
!  n - nsi
!  r - ring
!  k - kent
!  x - transport service interface
!  g - more general ftp
! if k is not set, ercc format is assumed
#options
#if ~(n!r!x) ! ~(e!g) ! (n&r) ! (n&x) ! (r&x) ! (e&g)
  #report must specify one of (n,r,x) and one of (e,g)
  #abort
#fi

#if r
  #report Preparing ring version
#fi
#if n
  #report Preparing NSI version
#fi
#if x
  #report Preparing transport service interface version

==== ercm09/emas-a/geacs.txt ====

%EXTERNALROUTINE geac %alias "C#geac"(%STRING (255) s)
%externalstring %fn %spec date %alias "S#date"
%externalstring %fn %spec itos %alias "S#itos" (%integer a)
%externalstringfnspec substring %alias "S#substring" %c
   (%string (*) %name s, %integer i,j)
   %EXTERNALROUTINESPEC prompt %ALIAS "S#PROMPT"(%STRING (255) s)
   %externalroutinespec EMAS3CONNECT %c
      (%stringname file, %integername mode, hole, prot, conad, %c
      type, start, end, flag)
   %ROUTINE define(%STRING (255) s)
      %EXTERNALROUTINESPEC emas3(%STRINGNAME command,params, %INTEGERNAME flag)
      %INTEGER flag
      emas3("DEFINE",s,flag)
   %END;                                 ! Of %ROUTINE define.
   %INTEGER i,j,k,max

    %owninteger seed = 64643

    %ownstring (120) %array item(0:300)


==== ercm09/emas-a/x25genpd_ftpd4s.txt ====
! prep options
!  n - nsi
!  r - ring
!  k - kent
!  x - transport service interface
!  g - more general ftp
! if k is not set, ercc format is assumed
#options
#if ~(n!r!x) ! ~(e!g) ! (n&r) ! (n&x) ! (r&x) ! (e&g)
  #report must specify one of (n,r,x) and one of (e,g)
  #abort
#fi

#if r
  #report Preparing ring version
#fi
#if n
  #report Preparing NSI version
#fi
#if x
  #report Preparing transport service interface version

==== ercm09/emas-a/xx25_xprotbs.txt ====
! file: x25_XPROTbs
!
!*************************************************
!*                                               *
!*       PSS X-25 Level 2 Protocol Handler       *
!*                                               *
!*                   XPROT                       *
!*                                               *
!*        Version  9.29   10 Oct  1985           *
!*                                               *
!*************************************************

! Prep options
!
!  q  - dqs11 code
!  p  - dup11 code
!  k  - kv11  code
!  y  - Use a second xgate (for psse & small buffer version only)
!
#report Producing Big Buffer Manager Version


==== ercm09/emas-a/x25genpd_ftpd5s.txt ====
! prep options
!  n - nsi
!  r - ring
!  k - kent
!  x - transport service interface
!  g - more general ftp
!  a - Version for Psse Accounts (sends straight to a process with same filename
!  b - new buffer manager (not permanently mapped on
! if k is not set, ercc format is assumed
#options
#if ~(n!r!x) ! ~(e!g) ! (n&r) ! (n&x) ! (r&x) ! (e&g)
  #report must specify one of (n,r,x) and one of (e,g)
  #abort
#fi

#if r
  #report Preparing ring version
#fi
#if n
  #report Preparing NSI version
#fi

==== ercm09/emas-a/x25genpd_lmxxxy.txt ====
.LMXXÂòŽxœ,Èc &DU%Ãì+ÿ	ößôÅ
À
€
×pÃeÂßÂÂÿ	ÐßÂÀÂ
ÿ	Àßÿ	¶ßÀÂ0Š	0

-‘@^ Þ„‡&DUÅeˆÁet
€Ü4üœÂJaÿ	ˆßÔ†™ ÀÀÀeRÄÅÁÂ*

ÿ	´ßÃß+ÿ	Fß
‚
ÿ	>ß
‚
ÀÅÿ	.ß
‚

ßÿ	 ßô‹JƒÃJaÿ	ßÿ	ß
ÿ	hßÀJaÕå+Á
aUÂJQg!a•ÿ	ß
†Õ


==== ercm09/emas-a/b_ftpgbx.txt ====
prep x25gen.ftpd5s,ftpd5s#imp,x,g,clean,b
dimp11 ftpd5s#imp
dlink11 /ftpd5s
ftpd5s#rel
.stack 2400
.streams 1
.stackseg 6
.name ftpx
.end
ftpg5s
c ftpg5s#abs,ftpgxby
destroy ftpg5s#abs
alist11 ftpd5s#imp
list ftpd5s#lst,.lp23

==== ercm09/emas-a/b_lmcoxs.txt ====
prep x25gen.lmcoxs,lmcoxs#imp,clean
dimp11 lmcoxs
dlink11 /map
lmcoxs
.streams 1
.stack 1000
.end
lmcoxs
destroy dobj.lmcoxy
rename lmcoxs#abs,dobj.lmcoxy

==== ercm09/emas-a/mailtest.txt ====
ercm09%emas-a@BDGA,
ercm09%emas-a@BHGA,
ercm09%emas-a@BHGB,
ercm09%emas-a@BHIA,
ercm09%emas-a@BHVS,
ercm09%emas-a@BIHA,
ercm09%emas-a@BRGA,
ercm09%emas-a@CERN.CERNVM,
ercm09%emas-a@CERN.GEC-A,
ercm09%emas-a@CERN.IBMFM,
ercm09%emas-a@CERN.VXALBM,
ercm09%emas-a@CERN.VXALFB,
ercm09%emas-a@CERN.VXBSSY,
ercm09%emas-a@CERN.VXCRNA,
ercm09%emas-a@CERN.VXDEBM,
ercm09%emas-a@CERN.VXDEFB,
ercm09%emas-a@CERN.VXDEV,
ercm09%emas-a@CERN.VXDEVT,
ercm09%emas-a@CERN.VXGIFT,
ercm09%emas-a@CERN.VXL3,
ercm09%emas-a@CERN.VXMERL,

==== ercm09/emas-a/inc_xgtfns.txt ====
! New X-25 Gate to task Interface - extended set to include Accounting
! Functions:

! Accounting Functions:
%constinteger accredit user pass       = 40
%constinteger process command          = 41
%constinteger accredit reply           = 42
%constinteger command reply            = 43
%constinteger log call start           = 44
%constinteger checkpoint               = 45
%constinteger log call end             = 46
%constinteger end call reply           = 46
%constinteger hello                    = 47
%constinteger abort session            = 48
%constinteger broadcast                = 49
%constinteger goodbye                  = 50
%constinteger log session end          = 51
%constinteger noticeboard              = 52

! Transport Functions:
%constinteger connect                  =  1

==== ercm09/emas-a/b_comms.txt ====
imp11 gen_comm77/comm77#rel
link11
i77perm
comm77#rel
.stack 1000
.streams 1
.name comm
.end
alist11 gen_comm77/.lp23

==== ercm09/emas-a/shsexp.txt ====
Scottish Health Service Communications Course

1. Income   8 x 200           1,600

2. Expenditure

    a. Coffee & teas    
       2 x 11 x 27                5.94
       2 x 11 x 20                4.40
                                  ----
                                 10.34

    b. Lunch at Maxis            53.05
                                 61.75
                                ------
                                114.80

    c. Staff Time
       2 days lectures at average of:-

               J. Henshall      12,780

==== ercm09/emas-a/x25genpd_ftpgx1y.txt ====
.FTPXÅjØx:„† Ã&8ÿ	üßÂ
Á×Åÿ	òßÀ>ã÷	h
À>ã÷	\
ÿ	Ð߇&Dæ>ã>ãÅe
À×ÅÀx8×'Å
À×ÅÅÃ18ÿ	šßÿ	”ßßÅ÷	ÐÃ>8÷	熀 ÀÅ÷	ÜŸ>ㄇÀÅÀe4
Ü	Lß•ÅÂÂÇÃK8ÿ	FßÁÅ÷	èÁ÷	×'ÅÁÅ÷	¨Œ— Cw\ÿ	ŒßŸ(ÅÃQ8ÿ	
ßßÅlq!÷	DÌGwn×'ÅT#ÀÅß,ÅÃ[8ÿ	ÖÞÀÂÇÁÅ÷	rÁÅ÷	ÂxŸ>ㄇ#,ñ•	Â*Åß0al!ÅßÅŠÅÃÅó•ñ•‚1Š
Á÷	ÈÃk8ÿ	fÞÿ	ØÞŸ&ÅŸ>ㄇÃt8÷	ÖwR×'Å#FYCÈ!p#FÉ8÷	¶0Šð•C	ŠÅÁ÷	lŸ>ㄇ#GW"ð‹
Ô8ÿ	ðÝâ8ÿ	æÝ
‚

Ü
ÿ	ØÝæ8ÿ	ÌÝßÅÁ¹ÇÀeÿ	ÐÝðÕ€a?X"ŠÅÁÅñ•Á÷	îŸ>ㄇ0Š0“	0Š
ÁÅñ•†’"ŠÅÁ÷	¾Ÿ>ㄇ×'Å&#ÀÅð8÷	È#ÁÅ÷	ŠÂŸ>ㄇß	Å÷	€

ÅÁ÷	jŸ>ㄇ×'Å
 ü8÷	€ÃÌ8¾†#ÿ	îÜ
‚
ÿ	èÜ
‚

Ü
ÿ	ÖÜÿ	ÌÜÁÅ÷	pÿ	ÝÊ•A÷	
Ÿ>ㄇ×'Å×'Å×'Å÷	ØŸ>ㄇÀÅ?ÁÂÇ.ÃÕ8ÿ	vÜ

==== ercm09/emas-a/ftemas.txt ====
=UDK=^^5^i0
^rr1024rFTP traffic to and from EMAS (ERCC 2976)

^rr993rPeriod: 01/12/86 08.00.10 - 07/12/86 17.24.42
^4

^rr1098rFTP transfers initiated locally and remotely^2  - page 1
^0^a500,150

                       ^b         JNT mail                 Network spooling            All other transfers    ^p
         ^bHost^p           Total     Total   Average    Total     Total   Average    Total     Total   Average           ^bHost^p
                        files    Kbytes   Kb/file    files    Kbytes   Kb/file    files    Kbytes   Kb/file  ^i1
                 ABDN       4         6         2                                     2        14         7   ABDN
           ABDN.CSVAX       2         2         1                                                             ABDN.CSVAX
            AFRC.ARCC       1         3         3                                                             AFRC.ARCC
            AFRC.NVRS       1         1         1                                                             AFRC.NVRS
             AFRC.RRI       8        20         3                                                             AFRC.RRI
                 AUCC       8        11         1                                                             AUCC
          AUS.DITMELB       2         4         2                                                             AUS.DITMELB
            BATH.UX63       2        11         6                                                             BATH.UX63
               BBK.CS       2         2         1                                                             BBK.CS

==== ercm09/emas-a/dotel.txt ====

notice ttl
gp23
h
n
n
y
ttlo
y
drawpicture ttlo
device .glp23
draw
stop


==== ercm09/emas-a/x25gen/lmxots.txt ====
! file 'lmxots'
!**********************
!* lmxots/lmeoty   *
!* date: 20.may.81   *
!*********************
%conststring (13) vsn = "lmxs...1c "

! Prep options:-    t   -  itp over transport service
!                   x   -  xxx over transport service

#datestring

!! stack = 300, streams = 1

%control x'4001'


%recordformat xf(%byteinteger unit,fsys,%byteintegerarray fname(0:5))
%include "b_deimosspecs"
%begin


==== ercm09/emas-a/x25gen/lmxoty.txt ====
,LMXO¸Çà¸Àÿ@©À
lmxs...1c 11/04/83…Á'Â&èG&MDÅe’F(@&fDÅeŠß	PtÁ%

ÁŠ
tþÿÁeß	¼Pì…„‡†±Jh@&fU
DÅeó•ó”Ÿ3Šó•s	3ÀÀeß	ôP…„‡Ž*>¬@&f
DÅeó•óRŸó•3ÀÀeß	ôP…„‡vÂä@&fDÅe4œ4Š	Àe4Àß	°Mß	ÐMß	ÐM4
4ôÿÿ/´
Ãø~-m´’
4Š
Á%@ß	¤LmÀ
ÁÒß	°M´
-4
ß	N4-Íß	N
ß	ØP…„‡~y A&fDÅeÁÔÃß	œPÀþÿ
ÁÜß	°MÁÚÃß	œPÀþÿ
ÁÜß	°MÁåÃß	œPÀþÿ
ÁÜß	°MÁðÃß	œPÀþÿ
ÁÜß	°MþÿÂ<ß	NÀß	ÜMþÿÂÀ
Üß	°MþÿÂ
Ütôÿÿ´
þÿÂ`ÀAœÁEÿß	°MÃEðÿÃ%ß	N4-âß	N…„‡Ù
 Bæ¤B&fÎå
DÅe-úÿ*Ãl}×"üÿß	¬@…„‡Â
Ü

==== ercm09/emas-a/x25gen/dumpgec.txt ====
%externalroutine dumpgec(%string(63) s)

%conststring (25) vsn = "  Version  1.2"

%owninteger print all = 0;        ! prints lau data if <>0
%owninteger mon line = -1;       ! line to monitor
%owninteger mon con = 0
%owninteger print this = 0

%constinteger our exchange = 1
%owninteger this exchange = 0, fix exch
%constinteger scd = 0
%constinteger ecd = 1
%constinteger dcd = 2
%constinteger laustats = 3
%constinteger unitstats = 4
%routinespec dumpaddr(%bytearrayname a, %byte l)
%routinespec writehex(%integer n,d)
!Routine for dumping GEC Network Management logs
%routinespec dat(%integer dat)
%routinespec tod(%integer d)

==== ercm09/emas-a/x25gen/nlpx1.txt ====
!**********************
!* nlpx1/nlpx1y       *
!* date: 15.mar.84   *
!*********************
%conststring (7) vsn = "vsn001c"
!! stack = 400, streams = 3

%control 1
%include "deimosperm"
!stack=400, streams=1


%recordformat xf(%byteinteger unit,fsys,%byteintegerarray fname(0:5))
%begin

      %constinteger control ser = 1;     ! on node = 11, otherwise = 1

%recordformat rjef(%byteintegerarray data(0:239))
%recordformat mef(%record(mef)%name link,%byteinteger len,type,  %c
      %bytearray reserved(0:7), %record (rjef) rje)


==== ercm09/emas-a/x25gen/pollpads.txt ====
! file 'pollpads'
!**********************
!* pollpads/lmeoty   *
!*                   *
!*********************
%conststring (13) vsn = "PollPad...1b "

! Prep options:-    m   -  more monitoring          

#datestring

!! stack = 300, streams = 1

%externalstring (255) %fnspec cli param

%control 1


%recordformat xf(%byteinteger unit,fsys,%byteintegerarray fname(0:5))
%include "b_deimosspecs"
%begin

==== ercm09/emas-a/x25gen/pclo4s.txt ====
! file 'gen_pclo4s/clocky'
! programmable clock program
! date: 18.sep.81

%control 1
%include "deimosperm"
%begin

      %conststring (13) vsn = "clok:vsn001
"

%recordformat clockf(%integer status, data)
%constrecord (clockf) %name clock == k'112540';   ! in seg 4

%recordformat pf(%byteinteger ser, reply, %integer a, b, c)
%record (pf) p

%integer i,j,k,n, sum, maxi, sumn, ssum, flag, ticks
%owninteger repf
%integerarray tasks(0:75)
%integerarray super(0:75)

==== ercm09/emas-a/x25gen/nipolls.txt ====
!**********************
!* nipolls/nipolly   *
!*                   *
!*********************
%conststring (13) vsn = "nipoll..1b"

#options

#datestring
!! stack = 300, streams = 1

%control x'4001'
%include "b_deimosspecs"


%begin

#if ~b
%recordformat lev3f(%byteintegerarray reserved(0:6), %c
       %byteintegerarray a(0:239))
%recordformat mef(%record(mef)%name link,%byteinteger len,type,  %c

==== ercm09/emas-a/x25gen/ftpd3s.txt ====
! prep options
!  n - nsi
!  r - ring
!  k - kent
!  x - transport service interface
!  g - more general ftp
! if k is not set, ercc format is assumed
#options
#if ~(n!r!x) ! ~(e!g) ! (n&r) ! (n&x) ! (r&x) ! (e&g)
  #report must specify one of (n,r,x) and one of (e,g)
  #abort
#fi

#if r
  #report Preparing ring version
#fi
#if n
  #report Preparing NSI version
#fi
#if x
  #report Preparing transport service interface version

==== ercm09/emas-a/x25gen/ftpd4s.txt ====
! prep options
!  n - nsi
!  r - ring
!  k - kent
!  x - transport service interface
!  g - more general ftp
! if k is not set, ercc format is assumed
#options
#if ~(n!r!x) ! ~(e!g) ! (n&r) ! (n&x) ! (r&x) ! (e&g)
  #report must specify one of (n,r,x) and one of (e,g)
  #abort
#fi

#if r
  #report Preparing ring version
#fi
#if n
  #report Preparing NSI version
#fi
#if x
  #report Preparing transport service interface version

==== ercm09/emas-a/x25gen/ftpd5s.txt ====
! prep options
!  n - nsi
!  r - ring
!  k - kent
!  x - transport service interface
!  g - more general ftp
!  a - Version for Psse Accounts (sends straight to a process with same filename
!  b - new buffer manager (not permanently mapped on
! if k is not set, ercc format is assumed
#options
#if ~(n!r!x) ! ~(e!g) ! (n&r) ! (n&x) ! (r&x) ! (e&g)
  #report must specify one of (n,r,x) and one of (e,g)
  #abort
#fi

#if r
  #report Preparing ring version
#fi
#if n
  #report Preparing NSI version
#fi

==== ercm09/emas-a/x25gen/lmxxxy.txt ====
.LMXXÂòŽxœ,Èc &DU%Ãì+ÿ	ößôÅ
À
€
×pÃeÂßÂÂÿ	ÐßÂÀÂ
ÿ	Àßÿ	¶ßÀÂ0Š	0

-‘@^ Þ„‡&DUÅeˆÁet
€Ü4üœÂJaÿ	ˆßÔ†™ ÀÀÀeRÄÅÁÂ*

ÿ	´ßÃß+ÿ	Fß
‚
ÿ	>ß
‚
ÀÅÿ	.ß
‚

ßÿ	 ßô‹JƒÃJaÿ	ßÿ	ß
ÿ	hßÀJaÕå+Á
aUÂJQg!a•ÿ	ß
†Õ


==== ercm09/emas-a/x25gen/lmtotss.txt ====
!**********************
!* lmtots/lmtsxy   *
!* date: 20.may.81   *
!*********************
%conststring (13) vsn = "lmts...1i "

! Prep options:-    t   -  itp over transport service
!                   x   -  xxx over transport service (ie TS29)
!                   b   -  Big buffer vsn

%conststring (8) datestring="03/12/86"

!! stack = 300, streams = 1

%control x'4001'


%recordformat xf(%byteinteger unit,fsys,%byteintegerarray fname(0:5))
%include "ercm09:b_deimosspecs"
%begin


==== ercm09/emas-a/x25gen/fractals.txt ====
%begin
%integer i,k,a,b,p,q, max
%real m,n,r,t,x,y,h,v
%real xmin,xmax,ymin,ymax
%externalroutinespec prompt(%string (255) s)
prompt("xmin,xmax,ymin,ymax?")
read(xmin); read(xmax); read(ymin); read(ymax)
select output(1)
k=1000
max = 0
h=(xmax-xmin)/79
v = (ymax-ymin)/21
%cycle q = 0, 1, 21
%cycle p = 0, 1, 79
   m = xmin+p*h
   n = ymin+q*v
   i = 0; x= 0; y = 0
   %cycle
      r = x*x+y*y
      t = x*x-y*y+m
      y = 2*x*y+n

==== ercm09/emas-a/x25gen/lmcoxs.txt ====
!**********************
!* lmcoxs/lmcoxy   *
!* date: 28.jan.81   *
!*********************
%conststring (13) vsn = "Lmco..2e "

#options

#datestring
!! stack = 300, streams = 1

%control x'4001'
%include "b_deimosspecs"


%begin

#if ~b
%recordformat lev3f(%byteintegerarray reserved(0:7), %c
       %byteintegerarray a(0:239))
%recordformat mef(%record(mef)%name link,%byteinteger len,type,  %c

==== ercm09/emas-a/x25gen/lmcoxy.txt ====
.LMCOBJ	žxô(°? &DUÅeÁetÀ<ã4
Â
´
‚
´mò•A	
+: -óð•€	Á<ãpœ
ð•ÿð—BœM` Ÿ
BBÂe³Ÿ
BÕÕ
÷	„‡&DÄåÀ<ãÈ•ÿ	®ßÀ<ã°’0“ôG¨ 00ð—Bð•ÿ	Îß„‡&DUÀ<ãÈ•ÿ	lßÀ<ã°’ð•úYê 0ÿ	žß„‡Á
&DUÀ<ãÈ•ÿ	:ßÀ<ã°’0Š0Š0“0Šÿ	fß„‡&DUÅe@7>!À<ãÈ•ÿ	ßÀ<ã°’ð•0Šð•0Š01Š4Yp!ÁBÂaÿ	¢ÞŠŠ€’€`È•.ÁšBÿ	’ÞÀaÕ?÷	zÕ˜BÕ÷	lÁVBÂaÿ	bÞÀnÅ!aÕ?÷	LÕ˜BÕ÷	>À–B

ÿ	~ÞÁÿ	ÞÃ(ÿ	ÞÀ<ã÷	J
ÿ	^ÞÀ<ãÿ	~Þ„‡Åå
A@Ü@`Aˆn."Âeÿ	èÝ
A@Ü
CßÀ`€
1‡&DUU%Ãû'ÿ	¤Ý
‚

Üÿ	˜ÝÃ(ÿ	ŒÝ
‚

==== ercm09/emas-a/x25gen/gecgrab2.txt ====

!**********************************************************
!*                                                        *
!*       RCO ITP to GEC Network Management Module         *
!*                                                        *
!*                       Gecgrab                          *
!*                                                        *
!*                                                        *
!**********************************************************

#options
!* Prep options
!*  b   -   output binary file, else packed hex+compression
!*
!*
%control 1 ;!No record checking.
!*
#if ~i
%include "deimosperm"
#else
%include "b_deimosspecs"

==== ercm09/emas-a/x25gen/ftpgx1y.txt ====
.FTPXÅjØx:„† Ã&8ÿ	üßÂ
Á×Åÿ	òßÀ>ã÷	h
À>ã÷	\
ÿ	Ð߇&Dæ>ã>ãÅe
À×ÅÀx8×'Å
À×ÅÅÃ18ÿ	šßÿ	”ßßÅ÷	ÐÃ>8÷	熀 ÀÅ÷	ÜŸ>ㄇÀÅÀe4
Ü	Lß•ÅÂÂÇÃK8ÿ	FßÁÅ÷	èÁ÷	×'ÅÁÅ÷	¨Œ— Cw\ÿ	ŒßŸ(ÅÃQ8ÿ	
ßßÅlq!÷	DÌGwn×'ÅT#ÀÅß,ÅÃ[8ÿ	ÖÞÀÂÇÁÅ÷	rÁÅ÷	ÂxŸ>ㄇ#,ñ•	Â*Åß0al!ÅßÅŠÅÃÅó•ñ•‚1Š
Á÷	ÈÃk8ÿ	fÞÿ	ØÞŸ&ÅŸ>ㄇÃt8÷	ÖwR×'Å#FYCÈ!p#FÉ8÷	¶0Šð•C	ŠÅÁ÷	lŸ>ㄇ#GW"ð‹
Ô8ÿ	ðÝâ8ÿ	æÝ
‚

Ü
ÿ	ØÝæ8ÿ	ÌÝßÅÁ¹ÇÀeÿ	ÐÝðÕ€a?X"ŠÅÁÅñ•Á÷	îŸ>ㄇ0Š0“	0Š
ÁÅñ•†’"ŠÅÁ÷	¾Ÿ>ㄇ×'Å&#ÀÅð8÷	È#ÁÅ÷	ŠÂŸ>ㄇß	Å÷	€

ÅÁ÷	jŸ>ㄇ×'Å
 ü8÷	€ÃÌ8¾†#ÿ	îÜ
‚
ÿ	èÜ
‚

Ü
ÿ	ÖÜÿ	ÌÜÁÅ÷	pÿ	ÝÊ•A÷	
Ÿ>ㄇ×'Å×'Å×'Å÷	ØŸ>ㄇÀÅ?ÁÂÇ.ÃÕ8ÿ	vÜ

==== ercm09/emas-a/x25gen/lmacxs.txt ====
!**********************
!* lmacxs/lmacxy   *
!* date: 28.jan.81   *
!*********************
%conststring (13) vsn = "lmax...001e "
#datestring
!! stack = 300, streams = 1

%control x'4001'
%include "b_deimosspecs"


%begin

#if ~b
%recordformat lev3f(%byteintegerarray reserved(0:8), %c
       %byteintegerarray a(0:239))

%recordformat mef(%record(mef)%name link,%byteinteger len,type,  %c
   (%record(lev3f) lev3 %or %bytearray params(0:241)))


==== ercm09/emas-a/x25gen/lmacxy.txt ====
.LMACB
	¦x´(6? &DUÅeÁetÀ<ã4
Â
´
‚
´mò•A	
+: -óð•€	Á<ãpœ
ð•ÿð—BœM` Ÿ
BBÂe³Ÿ
BÕÕ
÷	„‡&DÄåÀ<ãÈ•ÿ	®ßÀ<ã°’0“ôI¨ 00ð—Bð—Bÿ	Îß„‡&DUÀ<ãÈ•ÿ	lßÀ<ã°’ð•¯eì 0ÿ	žß„‡&DUÀ<ãÈ•ÿ	<ßÀ<ã°’0Š0Š0“ÿ	lß„‡&DUÅeÀ<ãÈ•ÿ	ßÀ<ã°’);L!ð•0Šð•0Š01ŠUÕBÕ?÷	ŒÕšBÕxI‚!÷	~Á(Âaÿ	ŒÞÀaÕ÷	^ÁœBÂaÿ	lÞÀaÕ÷	>÷gÆ!À˜B

ÿ	–ÞÁÿ	4ÞÃ(ÿ	 ÞÀ<ã÷	š
ÿ	vÞÀ<ãÿ	–Þ„‡Åå
A@Ü@`AÂeÿ	Þ
A@Ü>K("
CßÀ`€
1‡MµÁ ñ‹ƒÂ5
W-@
BcÜ@`€
5Ikn"õ
î@@cÂe‡Â(‡&DUU%Ãç'ÿ	lÝ

==== ercm09/emas-a/x25gen/gecgraby.txt ====
,GECGÀƼÀ@ÿ@©À(üìI&MDÅet

ß	 OÁyÁß	äNbÁ’Áß	äNÁ£Áß	,OÀ.Áß	,H÷‹wÁ¬ÁÂ.Áß	¨OÕÕÕß	„OwØuÕÕÕß	„OwÄuÀ
ß	(@7Š®uÀÀß	LO÷¥M²•
‚×­¬•O	‚
ÃÝ¢•Ãe±ÿ÷’u7Š–•×­’•AÀÁß	0B×­~•?ß	ØH7Šr•Ã`u·
du
ÀÝQuß	ÀFÌÀÁß	0BÅ(@&fU
DÅeÁô•ôÒŸ4Š4

Àeß	dO·
Î4üÿÃÀÁ»Áß	äNÀþÿß	øKß	LLþÿüÿò•ò•„ò•
2Š
ÁÝhŠÁrÀ\ÀEÿ2:Ã%üÿò•ò•‚ò•
2Š)Ã%
üÿò•2Šò•
2ŠÃ%üÿò2Šò
òö~
Ã%üÿä&(Aß	èB…„‡Àüÿß	PI…„‡F.bHA&f
DÅeÀ…„‡ô•ô®žô•4÷
²~ð‹¬@Àß	ÈIÀeß	<O…„‡¾ô’¤A&fDÅe4œ4Š	Àß	øKß	Lß	L4
Ã
ôôÿÿ´
þÿÂ`À
Üß	øK´
-4
ß	LL4-äß	LL
ß	 O…„‡Åz0B&fUDÅe÷•Ú}÷ÐÕ}wÒ}7Ï}÷À}Ì}÷•Ç}7
À}ÀÀß	<Oú}ÁÒÁß	äNÀüÿß	øKÁãÁß	äNÀþÿß	øKß	LL…„‡îlJ¤B&fUDÅeC

==== ercm09/emas-a/x25gen/lmtot2s.txt ====
!**********************
!* lmtots/lmtsxy   *
!* date: 20.may.81   *
!*********************
%conststring (13) vsn = "lmts...1h "

! Prep options:-    t   -  TS29 - XXX over transport service
!                   x   -  xxx
!                   b   -  Big buffer vsn

#datestring

!! stack = 300, streams = 1

%control x'4001'


%recordformat xf(%byteinteger unit,fsys,%byteintegerarray fname(0:5))
%include "b_deimosspecs"
%begin


==== ercm09/emas-a/x25gen/nlpx1y.txt ====
,NLPXpÃLpÀÿ@©¤E&MDÅeئ(@&f
DÅeó$àÂÉÉ–€s
¢ÿ÷
†€	
…„‡Â


ò2

ÒA`
ÃݘŸÃŠ€
C\ÚÀðÀeþÿP”P”P”P”P”P”P”P”ƒ
3
3
3
óz…„‡F/RÈ@&fUDÅeÀ,ß	°Füÿ	ÀÁß	¼GÁäÀß	¨JÀþÿß	¼GÁèÀß	¨J…„‡žnÒA&
DÅe
ó$àÂ@ÁðÀß	¨J„‡Àe4’ÀEÿÀe0ß	°FÀ.ß	°Fôÿÿ´
Â`´œ4Š- ß	°F-èÀ(ß	°F
ÂÜ¡‚‚€Àe0ß	°FÂœÂEøÿ€Àe0ß	°FÀ)ß	°F„‡ší>àA&f
DÅeó•óžó•3ÀÀeß	ðJ…„‡vNB&fÎå
DÅeó•óä3úÿ3üÿ3þÿó•	ÀÀeß	ðJ…„‡––Àvsn001cVLP000IdleRunningEnabledAbortedRunningk + chars.null
…øÀxB…Á
LP: Starting ­Á2CÁ`B&
DÅe
ÂÜ‚`zöÀÀß	àA×-˜}JÁÁß	¨J÷ˆ}7Š…}Õ


==== ercm09/emas-a/x25gen/lmtots.txt ====
!**********************
!* lmtots/lmtsxy   *
!* date: 20.may.81   *
!*********************
%conststring (13) vsn = "lmts...1i "

! Prep options:-    t   -  TS29 - XXX over transport service
!                   x   -  xxx
!                   b   -  Big buffer vsn

#datestring

!! stack = 300, streams = 1

%control x'4001'


%recordformat xf(%byteinteger unit,fsys,%byteintegerarray fname(0:5))
%include "b_deimosspecs"
%begin


==== ercm09/emas-a/x25gen/gecgrab.txt ====

!**********************************************************
!*                                                        *
!*       RCO ITP to GEC Network Management Module         *
!*                                                        *
!*                       Gecgrab                             *
!*                                                        *
!*           Version    9.3  11 Apr  1983                *
!*                                                        *
!**********************************************************

#options
!* Prep options
!*  b   -   output binary file, else packed hex+compression
!*
!*
%control 1 ;!No record checking.
!*
#if ~i
%include "deimosperm"
#else

==== ercm09/emas-a/x25gen/padgrbs.txt ====
!**********************
!* padgrbs/padgrby    *
!* date: 12.dec.87    *
!**********************
%conststring (13) vsn = "padgr...1a "

! Prep options:-    t   -  TS29 - XXX over transport service
!                   x   -  xxx
!                   b   -  Big buffer vsn

#datestring

!! stack = 300, streams = 1

%control x'4001'


%recordformat xf(%byteinteger unit,fsys,%byteintegerarray fname(0:5))
%include "b_deimosspecs"
%begin


==== ercm09/emas-a/x25gen/infop2s.txt ====
%conststring (17) vsn = "Info Poll....2b "
#datestring
#timestring

!********************************
!*  emas-2900  fep  info server  *
!*   file: fpt3s/fpt3y       *
!*                              *
!********************************


! Options used:X25_INFOPS,INFOPS,X,E,M,CLEAN
! prep versions are:-
!
!

%control 1
%include "deimosperm"




==== ercm09/emas-a/x25gen/newinfo.txt ====
!*****************************************
!* Amdahl-FEP: Info Responder            *
!* File      : ERCM09:x25gen.NEWINFO     *
!*****************************************

%control x'4001'

%include "ercm09:b_deimosspecs"

%begin

%conststring (*) version = "info...1d"
#datestring
#timestring

      !***************************
      !* Configuration constants *
      !***************************
      !
      %constinteger info stream = 1 {output stream for info updates}


==== ercm09/emas-a/b_mail.txt ====
new
prep gen_mailte,mailte#imp,x,g,clean
dimp11 mailte#imp
link11 /mailte
mailte#rel
.stack 2400
.streams 1
.stackseg 6
.name mail
.end
mailte
c mailte#abs,mailtey
destroy mailte#abs

==== ercm09/emas-a/x25genpd_lmcoxs.txt ====
!**********************
!* lmcoxs/lmcoxy   *
!* date: 28.jan.81   *
!*********************
%conststring (13) vsn = "Lmco..2a"

#options

#datestring
!! stack = 300, streams = 1

%control x'4001'
%include "b_deimosspecs"


%begin

#if ~b
%recordformat lev3f(%byteintegerarray reserved(0:8), %c
       %byteintegerarray a(0:239))
%recordformat mef(%record(mef)%name link,%byteinteger len,type,  %c

==== ercm09/emas-a/b_lmacc.txt ====
imp11 lmaccs/,l
link11
lmaccs#rel
i77perm
.stack 1000
.streams 0
.end
lmaccy
alist11 lmaccs/.lp23
list lmaccy,.bpp6

==== ercm09/emas-a/x25genpd_lmcoxy.txt ====
.LMCOBJ	žxô(°? &DUÅeÁetÀ<ã4
Â
´
‚
´mò•A	
+: -óð•€	Á<ãpœ
ð•ÿð—BœM` Ÿ
BBÂe³Ÿ
BÕÕ
÷	„‡&DÄåÀ<ãÈ•ÿ	®ßÀ<ã°’0“ôG¨ 00ð—Bð•ÿ	Îß„‡&DUÀ<ãÈ•ÿ	lßÀ<ã°’ð•úYê 0ÿ	žß„‡Á
&DUÀ<ãÈ•ÿ	:ßÀ<ã°’0Š0Š0“0Šÿ	fß„‡&DUÅe@7>!À<ãÈ•ÿ	ßÀ<ã°’ð•0Šð•0Š01Š4Yp!ÁBÂaÿ	¢ÞŠŠ€’€`È•.ÁšBÿ	’ÞÀaÕ?÷	zÕ˜BÕ÷	lÁVBÂaÿ	bÞÀnÅ!aÕ?÷	LÕ˜BÕ÷	>À–B

ÿ	~ÞÁÿ	ÞÃ(ÿ	ÞÀ<ã÷	J
ÿ	^ÞÀ<ãÿ	~Þ„‡Åå
A@Ü@`Aˆn."Âeÿ	èÝ
A@Ü
CßÀ`€
1‡&DUU%Ãû'ÿ	¤Ý
‚

Üÿ	˜ÝÃ(ÿ	ŒÝ
‚

==== ercm09/emas-a/imp11source_comp11.txt ====
!%EXTERNALINTEGERFNSPEC SMADDR(%INTEGER CHAN,%INTEGERNAME LEN)
!%EXTERNALROUTINESPEC CLOSESM(%INTEGER CHAN)
%EXTERNALROUTINESPEC PROMPT(%STRING(15) S)
%begin

%OWNINTEGER CHECKSUM
%OWNBYTEINTEGERARRAY STORE(-40:K'177777')
%OWNINTEGER BASE=0
%OWNINTEGER RA,SA,FA
%OWNSTRING(255) ST
%OWNINTEGER I,J,HIGH ADDRESS,START ADDRESS,COMMAND,CH,X


%ROUTINE WRITE OCTAL(%INTEGER NO)
!=================================
%INTEGER I

  NO=NO&K'177777'
  %CYCLE I=15,-3,0
    PRINTSYMBOL((NO>>I)&7+'0')
 %REPEAT

==== ercm09/emas-a/kermits2.txt ====
KERMITS.EXE
CEYL0IP0~280201?ooCQN009TC40304Qh0~20@00~~~~~~~~~~~~~=R2H008TV?P7Xl@F:9P00
P?`4M220o05e0nV>083l1GD3jE@3P?`6M@?Ym0>d2KZL0<dQ`nRg1X3l07P6aPH000?3P>AoP?`K
MAjd0[87cB761P4008\NSP1;RAj>08TNT03n3P80jlb0o3me<[@9^_<0cB6d2KX\0LdQ]0V;5PP0
cB6;7Y00]2B89ol>SP2d2KX>0<dQ]0289P40jK@6P?`<M@?X@FgY5`N97P`0RAH:08_JRRm3RaJ@
08TFUP20o@1e0nVf0Ok=\@3X80J0o01i0nV;0D?n`HX7j<86>^1d27l3jIH1j@h2@hX7j;06?2Ae
0nTJ0X[@j?85o\6:`^RM1X3lVg@FP?bPM160o8ed383l_g@7>^1dcnWJ0HTNU0293Y80R2JH083l
_g@kj1T2jKT0RRJH083lVg@3jC`1]0:b1ldQRaj>04^97Xh0RAj@0?h>0P2;7Y@0R`jB0?k9BlH6
0@00jh2j4@6d2LdQaPHm0@2;7Y@0R`jB0;D0:mU3RAjD08\NU01;RPL01Sd1P3hm0Dan3;@9^R`1
cB761Sd10;8P]0;=8Oh6?@7=8Oh6?@6;5Y@0]0W=8H\NU01;RPNd00D500?HRo>;?Y@0RAjD08\>
TP3ncG`>R@jB0;D0o\WSX?>VM9cYc`2;3Y80RajD080nV02PM5J0?YP0_gA?P3jH08edB?l>SP2;
5Xh0RROXR0F0o2Ad38_jR2E3@_h60P3[j[@PRoZ89D:;3Xh0RAJ>08TFT02d98_jR2Fd2H_AcB53
Rao61P400>U^1D>:9h3l97Gh@h\OjF05P>AoP?`oM3Z0o21dNH3l3GAdP?`9M6n0o1]d2[@9^\80
cB7Yh@Bd0[87cB7o3Xh0o`j@0?h>0P361P400?k5jAcn@hTNU02a0HT>TP2;5P`02m9e0nVao[@9
cB6d2KX\0LdQRaH80<dQRaj@0;0TR0Nj3P3=8Ol>SP3n3P80aPH1~2jF`4P3jJ005d1k@9^]D0
cB7YL0A3P3lTMOZ3``>;5YH0RAJ@0<H60`3ojJkmj=X3P?`0N0=;jmb0o;me1Ok1jOSm@h\OP?bK
MAZd2KXb0LdQRcj>04nd88PUaPH1~2aPH30?oYMPB0o@1e0L=3RPLl97GiPl<4o\V;5YH0RRN;
nXX5j3H4>^1n0L=3@_k9MNcYB@B97PX0RAHZ0K40aPH3~2j6@3m\B0M3b0i7n0o21d=83l6gDI
]0:b1ldQaPH1~2o`j>0?l>T03n3P80jlf0o3md983l37D3j2IZR^6;7PX0jOH3o\6;7PX0R2M3
\0281hTN2P3[Y<H60@00o`J@083i07GOo`j>0?h>0P3o3Y00]0V;5RX1cB6d2KX\0LdQ]0V;5PP0
cB6;7Y00aPLT]0Vj3P3=8NURoe:;de^97PX0RAHZ0K40aPH30?oX^0;fa81e0nV>083TOh3l6g@8

==== ercm09/emas-a/kermits3.txt ====
KA.EXE
CEY`0K`0~2803>1?oo7Ab009TC40115ah0~20@00~~~~~~~~~~~~~=RBI70\H6B`80P?`4M@?Y
_0B0o05e0n\KT83l1GD3jD83P?`6M@?Y10Bd2KXI0LdQjMH8a`H>0@00X@`1Xa01RAh908TF1`2;
fX0o07D3jIP0aPH00?oXn0Mb68\F305:RAH@0Ol63P7XiPMb1_l63P7[mH3l?gD3jE`1P?`KMBKX
hP1b5lH65040aPHF0@361QP10<H65@40jCl9Pch>0@1d[^Ta0H<n3P40M3aCRah@0H0o>U]e1\L6
3P410>PQ0W980Qn0e`23``:;7lH65040aPHF0@361QP10<H65@40aPI50P3YlPR3?Ph107DKP3hC
0@1eKE:d2KXo0LdQF\H65@40aPHH0@33P3hH0@1d5\H66040a`H<0@\0aPHE0@6kP63Y\`S61QD1
0<H6A@81j5L8LbB0?Q\V07DMj>L1o`h<0H\N3060?b1e5[@9^Sd2cB7XE@OY^`OXK`>@T93Xa073
j4D7Pch>0@1e1NQF0?W3j6\1L_ICEXX?]@13RcH:0H\F3P43fR_:0@h>0N<A]0::1d?X:@R814J:
d<dQh_76122b8;@2cB56RCH<0HTf2P761P00oeiK0Qn0e`23``:;7oS3D5:d0[87cB5JF>SH1_W3
Pch>0@1e1h<n2@00MFG71T<2~2Rah708X_\@13Pch>0@1d1NRj078lRPL01T<2Pci30Taf3K@9
^Sd2cB771T<2~2P?T0M@Vjm@6d2LdQo\6b8;@2cB7=8H<6@`82Rm=2]0W=8Ok=OQ@27h3G08?3
1>^ZRaH90;@9cB7n`H3i07DMR`h>0H?i07l<D[@9^Sl1cB5JjI\6aPI60P3X\P2d2KXm0\dQj2d6
jI<6De5B\P2;7PL0RPne0><Q@nPR0787o\:0nP5g508OP=L0Pl<4h^Z0nP5e1EYIFoS3FUUKnL=A
R`h>0N<P>Pmg751CET>;=Q01o:b:9d?Xl0Hjh>7eGU]HM@=In<=InL=AaPI60P23?Ph107@cRah7
08X?]@3S:D?X^omb6LH6AP81DX\F3P4h5eYd5nQbog<BaPI60P827h3G08?31>;HFOW3FOS3]0Vj
G@7=8H\>3P7S7;@2EX\f407l[3`PL`Q@\Uk=8EP4@8[@cB7RkEjjI`60?TH20G83^W`1]0W=8L>9
7PL0RAH90;T0080n5`40M@G61QL1OlH6~2oh0n4P40M0G61P000>S317=]P?`PM6R0o1]e1NP[
o^_KP?`oM2b0o0ed1ol6307[CY2:hH\N1`361`361Q810<H65040aPHG0@361QH10>T;1_l63063
n@1e9?l>30771Ph1~2aPHB0@23?PT007D;a`H90=L1aPHG0@3Yf_e1Rah708PW@k00R0N97PL0
P?d0MA4j3QL1M`]b1[@2\PO=8NUSok@9^Z`1cB7Yg0B95PL0RAh90<L63P40080n4P40M@G61P00

==== ercm09/emas-a/preppd_preps.txt ====
#if ~(d!e)
  #report One of d or e must be set
#fi
#if (d&e)
  #report Only one of d or e may be set
#fi
#if x
#report Debugging code added
#fi
#if d
!DEIMOS declerations
%systemroutinespec exit(%integer fault)
%externalstring(255)%mapspec cli param
%conststring(8) date="00/00/00"
%conststring(8) time="00:00:00"
#fi
#if e
  #report Preparing EMAS version of PREP
#else
  #report Preparing DEIMOS version of PREP
#fi

==== ercm09/emas-a/b_lmacxs.txt ====
prep x25gen.lmacxs,lmacxs#imp
dimp11 lmacxs
dlink11 /map
lmacxs
.streams 1
.stack 1000
.end
lmacxs
destroy lmacxy
rename lmacxs#abs,lmacxy

==== ercm09/emas-a/nodes788.txt ====
{{circle(15,15,2);inlabel(.2,"KB CPSE@b")}}
{{inlabel(.14,"@b@b000015000000")}}
{{circle(15,4,2);inlabel(.2,"AT 1 CPSE@b")}}
{{inlabel(.14,"@b@b000016000000")}}
{{circle(3,15,2);inlabel(.2,"TelePAC 1@b")}}
{{inlabel(.14,"@b@b000015001000")}}
{{circle(8.9,12.5,2);inlabel(.2,"TelePAC 2")}}
{{inlabel(.14,"@b@b000015005000")}}
{{circle(3,4,2);inlabel(.2,"TelePAC 4@b")}}
{{inlabel(.14,"@b@b000016002000")}}
{{join(c1,c2);join(c1,c3);join(c1,c5)}}
{{join(c2,c3)}}
{{join(c3,c4)}}
{{box(10,24)(19,26);inlabel(.2,"EMAS-A  NAS  VL60")}}
{{box(12.25,24)(12.25,24)}}
{{box(16.75,24)(16.75,24,0)}}
{{circle(11,23,.5)inlabel(.14,"Fe1")}}
{{circle(12,23,.5)inlabel(.14,"Fe4")}}
{{circle(13,23,.5)inlabel(.14,"Fe6")}}
{{circle(14,23,.5)inlabel(.14,"Fe8")}}
{{circle(15,23,.5)inlabel(.14,"Fe7")}}

==== ercm09/emas-a/b_xprotyp.txt ====
EDIT x25_XPROTs,T#B
TA/198/A1STM/Versi/f<X>KZ(r/Running/i<X>i/ (Fast)/p1)2
E
prep t#b,xprot#imp,F,p,Y
IMP11 XPROT#IMP/XPROT#REL,xprot#lst

LINK11
ERCM09.I77PERM
XPROT#REL
.STACK 2000
.STREAMS 0
.NAME XPRY
.END
XPR1#OBJ
destroy xpry1y
rename xpr1#obj,xpry1y

alist11 xprot#imp/.lp23

==== ercm09/emas-a/b_gatexfbo.txt ====
EDIT x25.gatexs,t#b
A/198/A1STM/Versi/F<X>K(M/GATX Running/M0R/Running/I<X>i/ (Min,Large,Old Comp.)/p1)2
E
prep t#b,gatex#imp,f,m,h,a,clean,b,o
IMP11 gatex#imp/gatex#rel,gatex#lst
LINK11
gatex#rel
ercm11:i77perm
.name gatx
.STACK 5000
.STREAMS 0
.END
gatex#abs
destroy dobj.bacbg
rename gatex#abs,dobj.bacbg

==== ercm09/emas-a/ftemasa1602.txt ====
=UDK=^^5^i0
^rr1024rFTP traffic to and from EMAS (EMAS-A) 470 V/7)

^rr993rPeriod: 08/02/87 01.12.58 - 15/02/87 21.46.48
^4

^rr1098rFTP transfers initiated locally and remotely^2  - page 1
^0^a500,150

                       ^b         JNT mail                 Network spooling            All other transfers    ^p
         ^bHost^p           Total     Total   Average    Total     Total   Average    Total     Total   Average           ^bHost^p
                        files    Kbytes   Kb/file    files    Kbytes   Kb/file    files    Kbytes   Kb/file  ^i1
                 ABDN       7        13         2                                                             ABDN
           AFRC.AFRUS       1         1         1                                    15       331        22   AFRC.AFRUS
            AFRC.CAMB       3         4         1                                                             AFRC.CAMB
             AFRC.JII       1         1         1                                                             AFRC.JII
            AFRC.RESB       1        54        54                                                             AFRC.RESB
                 AUCC      16        16         1                                                             AUCC
          AUS.DITMELB       3         8         3                                                             AUS.DITMELB
         BANGOR.DEC20       1         1         1                                                             BANGOR.DEC20
            BATH.UX63                                                                13       116         9   BATH.UX63

==== ercm09/emas-a/xx25_eam9s.txt ====
! file 'fep_eam9s'

!********************************
!*  emas-2900  fep am1 handler  *
!*       file: eam9             *
!* modified for pcb interface   *
!********************************
!! stack size = 300
! Options
!         n  =  new compiler
!         c  =  Clock monitoring (needs a real time clock!)
!         m  =  All monitoring
!         b  =  New Big Buffer manager
!

%owninteger fep no = 9;               ! number supplied on load

#if ~n
%control 1
%include "deimosperm"
#else

==== ercm09/emas-a/xx25_itp9xy.txt ====
,ITPS@Ü D@Àÿ@©À29/08/8411.15.13
ô


Wp$@ÀeÎÈÁ:Àß	ün
ð4
4

´


WpÁeFÀw$W1
1ôe1-
é÷†ÈWÃ
Wóþÿ÷ªÈWÂüVòÿÿÁ"ÀÂ&Öß	0oÁhÖß	nÂ&ÖÁnÖß	nÁ&Öß	pnÁÀß	pnß	Øk
ß	ônÕÕÕß	ànt
ÕÕÕß	ànt
7
\ôÿÿ
´

==== ercm09/emas-a/b_sbld5.txt ====
imp11 gen_sbld5s/sbld5s#rel,l
link11
sbld5s#rel
i77perm
.stack 72000
.streams 4
.end
sbld5y
alist11 gen_sbld5s,sbld5s#rel/.lp23

==== ercm09/emas-a/x25genpd_lmacxs.txt ====
!**********************
!* lmacxs/lmacxy   *
!* date: 28.jan.81   *
!*********************
%conststring (13) vsn = "lmax...001e "
#datestring
!! stack = 300, streams = 1

%control x'4001'
%include "b_deimosspecs"


%begin

#if ~b
%recordformat lev3f(%byteintegerarray reserved(0:8), %c
       %byteintegerarray a(0:239))

%recordformat mef(%record(mef)%name link,%byteinteger len,type,  %c
   (%record(lev3f) lev3 %or %bytearray params(0:241)))


==== ercm09/emas-a/cbigc.txt ====
           
#define MAX 500

main()
{
   int arr[MAX] [MAX];

   int i,j;

   for (i=1;i<MAX;i++){
         for (j=1;j<MAX;j++){
               arr[j][i] = 1;
         }
   }

}
   


==== ercm09/emas-a/amstrad/lpextsins.txt ====

PROCEDURE cursor(y,x: integer);         EXTERNAL;
PROCEDURE clearscreen;                  EXTERNAL;
PROCEDURE Clear_from_Line(n: integer);  EXTERNAL;
PROCEDURE Clearline(n: integer);        EXTERNAL;
PROCEDURE set_viewport(n: integer);     EXTERNAL;
PROCEDURE reset_viewport;               EXTERNAL;
FUNCTION get: char;                     EXTERNAL;
FUNCTION readint: integer;              EXTERNAL;
FUNCTION getchar: integer;              EXTERNAL;
FUNCTION getint(x, y:integer): integer; EXTERNAL;
PROCEDURE Request_Register;             EXTERNAL;
PROCEDURE Close_Register;               EXTERNAL;
PROCEDURE set_party;                    EXTERNAL;
PROCEDURE show_attributes;              EXTERNAL;
PROCEDURE Get_address(n: integer);      EXTERNAL;
PROCEDURE print_attributes(q: integer); EXTERNAL;
PROCEDURE Get_Names;                    EXTERNAL;
PROCEDURE display_entry(x: s_integer);  EXTERNAL;
PROCEDURE back_to_menu;                 EXTERNAL;
==== ercm09/emas-a/amstrad/lpvotprn.txt ====
Pro Pascal Compiler - Version zz 2.1

Compilation of: M:LPVOT.PAS

Options:    LNIAP

    1   0000    program LPVOT(input,output);
    2   0000    
    3   0000       { Program to examine and modify a file in Database format}
    4   0000    
    5   0000       {Brian Gilmore May 1987}
    6   0000    
    7   0000       
    8   0000    TYPE
    9   0000       {$I lptype.ins}
   10   0000       adulta = ARRAY[1..10] OF integer;
   11   0000       fsa = ARRAY[1..4] OF integer;
   12   0000       fparty = ARRAY[0..8] OF string[3];
   13   0000       fattrn = ARRAY[0..15] OF string[15];
   14   0000       fsname = PACKED ARRAY[1..19] OF char;
   15   0000       ffname = PACKED ARRAY[1..25] OF char;

==== ercm09/emas-a/amstrad/lpextsprn.txt ====
Pro Pascal Compiler - Version zz 2.1

Compilation of: LPEXTS.PAS

Options:    LNIAP

    1   0000    segment externals;
    2   0000    
    3   0000       {External routines for Database package}
    4   0000    
    5   0000       {Brian Gilmore August 1987}
    6   0000    
    7   0000       
    8   0000    
    9   0000    TYPE
   10   0000       {$I lptype.ins}
   11   0000       adulta = ARRAY[1..10] OF integer;
   12   0000       fsa = ARRAY[1..4] OF integer;
   13   0000       fparty = ARRAY[0..8] OF string[3];
   14   0000       fattrn = ARRAY[0..15] OF string[15];
   15   0000       fsname = PACKED ARRAY[1..19] OF char;

==== ercm09/emas-a/amstrad/lpfindbak.txt ====
program LPFIND(input,output);

   { Program to a name using an index file from a file in Database format}

   {Brian Gilmore August 1987}

   
TYPE

   {$I lptype}

VAR

   s, target: string[40];  
   xfn: string[14];

   tgt: string[4];
   i,flag, max, last_address, indx: integer;

{$i lpexti}


==== ercm09/emas-a/amstrad/lpsortpas.txt ====
program LPSORT(input,output);

   { Program to construct an index file from a file in Database format}

   {Brian Gilmore August 1987}

const  n_max = 6500;
   
TYPE
   nf = RECORD
      sname: string [8];
   end;
   nfa = ARRAY[0..n_max] of nf;
   nfp = ^nfa;

   iaf = ARRAY[0..n_max] of 0..30000;

   {$I lptype}
 
VAR
   na: nfp;

==== ercm09/emas-a/amstrad/lpfindpas.txt ====
program LPFIND(input,output);
   
   { Program to a name using an index file from a file in Database format}
   
   {Brian Gilmore August 1987}
   
      
TYPE
   
   {$I lptype}
   
   
VAR
   
   s, target: string[40];  
   xfn: string[14];
   
   tgt: string[4];
   x, i,flag, max, last_address, indx: integer;
   
{$i lpexti}

==== ercm09/emas-a/amstrad/lpsrxbak.txt ====
segment lpsrx(input,output);

   { Program to search for a voter name in a file in Database format}

   {Brian Gilmore September 1987}

   
TYPE
   pns = string[40];

   {$I lptype}

VAR
   xa: xaf;
   s, target: string[40];  
   tgt, tgt2: string[4];
   i,flag, max, last_address, indx, max_add: integer;

{$i lpexti}

PROCEDURE construct_index;

==== ercm09/emas-a/amstrad/lpsrxpas.txt ====
segment lpsrx(input,output);
  
{ Program to search for a voter name in a file in Database format}
   
{Brian Gilmore September 1987}
  
      
TYPE
   pns = string[40];

   {$I lptype}
  
VAR
   xa: xaf;
   s, target: string[40];  
   tgt, tgt2: string[4];
   i,flag, max, last_address, indx, max_add: integer;
   
{$i lpexti}

PROCEDURE construct_index;

==== ercm09/emas-a/amstrad/lptypepas.txt ====
   fparty = ARRAY[0..8] OF string[3];
   fattrn = ARRAY[0..15] OF string[15];
   fstylef= ARRAY[0..7]  OF string[5];
   fstne  = PACKED ARRAY[1..25] OF char;
   fpcode = PACKED ARRAY[1..8] OF char;
   initf  = PACKED ARRAY[1..3] OF char;
   s_integer = 0..65530;
   byte = 0..255;
   stylef = 0..7;
   xattr = 1..24;
   sattr = SET OF xattr;
   sts   = string[40];
   bdayf = ARRAY[1..3] OF byte;

   vf = RECORD
     fnameind: s_integer;    {Index into first name file}
     namind:   s_integer;    {Index into surname & house name file}
     street:   byte;         {Index into street name file}
     style:    stylef;       {Mr, Mrs, Ms etc}
     init:     initf;        {Initials - up to 3}
     xvote:    byte;         {current canvas & previous canvas * 16}

==== ercm09/emas-a/amstrad/dbase.txt ====
*DBASE 
       HELP TEXT FILE DBASEMSG.TXT VERSION 1.12 FOR dBASE II v2.4
                Copyright 1983 Ashton-Tate and RSP, Inc.

        written by Wayne Ratliff, Jim Taylor, and Howard Dickler

                         INTRODUCTION
     
     This entry is intended to give you on-line information about your dBASE 
II  Database  Management  System.   It  explains the  disk  files  you  have 
received,  and  gives suggestions on tapping the power now available to  you 
for  data  management.   Using  the on-line HELP in  conjunction  with  your 
Manual,   you will soon be creating databases and writing command procedures 
to do your work. 





                    >>>>> type any key to continue <<<<<


==== ercm09/emas-a/amstrad/lpvot.txt ====
program LPVOT(input,output);

   { Program to examine and modify a file in Database format}

   {Brian Gilmore May 1987}

   
LABEL 9999;

TYPE
   {$I lptype.ins}
   adulta = ARRAY[1..10] OF integer;
   fsa = ARRAY[1..4] OF integer;
   fparty = ARRAY[0..8] OF string[3];
   fattrn = ARRAY[0..15] OF string[15];
   fsname = PACKED ARRAY[1..19] OF char;
   ffname = PACKED ARRAY[1..25] OF char;
   fhname = PACKED ARRAY[1..5] OF char;
   fstne  = PACKED ARRAY[1..34] OF char;
   fpcode = PACKED ARRAY[1..8] OF char;
   s_integer = 0..60000;

==== ercm09/emas-a/amstrad/lpconvpas.txt ====
program LPCONV(input,output);

   {Convert a Register type file into a data base file for}
   {for the pascal suite}

   {Brian Gilmore September 1987}
                  {Amended to allow 5 char house numbers}
                  {October: Amended to new database file format}

   
LABEL 1,999;

TYPE
   fsa = array[1..4] OF integer;
   {$I lptype};
 
VAR
   source: text;
   filename, ofn, rfn, nfn, hfn, pfn, name: string[14];
   ad1, sname, fsname, initial, ad2, ad3, ad4: sts;   {string[40]}
   line,rname, snr, r2name, padd, add, this_add, last_add, code, 

==== ercm09/emas-a/amstrad/lpprintpas.txt ====
program LPPRINT(input,output);

   { Program to print out Information from a file in Database format}

   {Brian Gilmore September 1987}

   
TYPE
   pns = string[40];

   {$I lptype} 

VAR
   target, count: integer;
   output_type, x_now, x_party: integer;
   Range_Control: byte;
   setup_done : boolean;

{$i lpexti}
{$i lpprii}


==== ercm09/emas-a/amstrad/scrivnertxt.txt ====




 1. Introduction.

 1.1 What does Scrivener do?

      SCRIVENER is an extraordinarily useful program, if you are handling 
 text. We are constantly thinking up new uses for the program and use it 
 ourselves in-house. Operating Scrivener is easy. Constructing SCRIVENER 
 files takes patience and some time, but repays effort. 


      Scrivener works with a text file, doing computation and text 
 substitution on it and producing more text. Scrivener is designed to deal 
 with repetitive clerical work. It is an aid to a text-editing or 
 wordprocessing program. Scrivener is a program that is designed to make life 
 easier for anyone who has to do calculations, prepare documents or letters, 
 or do a repetitive typing or clerical job for which no program exists. It is 
 useful to be able to do calculations and totalling on simple text files, 

==== ercm09/emas-a/amstrad/lpsortprn.txt ====
Pro Pascal Compiler - Version zz 2.1

Compilation of: M:LPSORT.PAS

Options:    LNIAP

    1   0000    program LPSCAN(input,output);
    2   0000    
    3   0000       { Program to construct an index file from a file in Database format}
    4   0000    
    5   0000       {Brian Gilmore August 1987}
    6   0000    
    7   0000       
    8   0000    TYPE
    9   0000       nf = RECORD
   10   0000          sname: string [4];
   11   0000          street: 1..60000;
   12   0000       end;
   13   0000       nfa = ARRAY[0..5000] of nf;
   14   0000       nfp = ^nfa;
   15   0000    

==== ercm09/emas-a/amstrad/lpmergepas.txt ====
program lpmerge;

   {merge name index files into one large one}

   {Brian Gilmore August 1987}
                 {October - modified for new database format}

TYPE
   nxf = record
        s : string[40];
        sname : string[4];
        street : 0..255;
        r_no: 0..65000;
        reg, lreg: 0..255;
        max : integer;
        nam : string[4];
   end;
   nxff = array [1..6] of nxf;
   indxx = array [0..50] of 0..65000;

   {$I lptype} 

==== ercm09/emas-a/amstrad/lpcountpas.txt ====
program LPCOUNT(input,output);

   { Program to calculate promise figures from a file in Database format}

   {Brian Gilmore August 1987}
                  {October - Modified for new database file format}
   
TYPE
   nums = ARRAY[1..2,0..10] of 0..60000;
   diffs = ARRAY[0..9, 0..9] of 0..60000;
   fsa = ARRAY[1..4] OF integer;

   {$I lptype}
 
VAR
   x_party, t_party: nums;
   diff: diffs;
   s, old_street: string[40];
   target, count, c_option, i, flag,dstart,rlen,lflag: integer;
   x_now, p3, labels, addno, last_address: integer;
   field_size, field_max: fsa;

==== ercm09/emas-a/amstrad/spanam.txt ====
D/NEWTON!Danderhall, Dalkeith	Idlothian	Ronaldson640Hendry642Ilyas674Sked684Mckay696Mccallum698Monteith700{==== ercm09/emas-a/amstrad/lptypeins.txt ====
   adulta = ARRAY[1..10] OF integer;
   fsa = ARRAY[1..4] OF integer;
   fparty = ARRAY[0..8] OF string[3];
   fattrn = ARRAY[0..15] OF string[15];
   fstylef= ARRAY[0..7]  OF string[5];
   fhname = PACKED ARRAY[1..7] OF char;
   fstne  = PACKED ARRAY[1..25] OF char;
   fpcode = PACKED ARRAY[1..8] OF char;
   initf  = PACKED ARRAY[1..3] OF char;
   s_integer = 0..65530;
   byte = 0..255;
   stylef = 0..7;
   xattr = 1..24;
   sattr = SET OF xattr;
   sts   = string[40];
   bdayf = ARRAY[1..3] OF byte;

   vf = RECORD
     fnameind: s_integer;    {Index into first name file}
     namind:   s_integer;    {Index into surname & house name file}
     street:   byte;         {Index into street name file}

==== ercm09/emas-a/amstrad/lpsrx2bak.txt ====
segment lpsrx(input,output);

   { Program to search for a voter name in a file in Database format}

   {Brian Gilmore September 1987}

   
TYPE
   pns = string[40];

   {$I lptype}

VAR
   xa: xaf;
   s, target: string[40];  
   tgt, tgt2: string[4];
   i,flag, max, last_address, indx, max_add: integer;
   last_reg : byte;

{$i lpexti}


==== ercm09/emas-a/amstrad/lpconvprn.txt ====
Pro Pascal Compiler - Version zz 2.1

Compilation of: M:LPCONV.PAS

Options:    LNIAP

    1   0000    program LPDBC(input,output);
    2   0000    
    3   0000       {Convert a Register type file into a data base file for}
    4   0000       {for the pascal suite}
    5   0000    
    6   0000       {Brian Gilmore May 1987}
    7   0000    
    8   0000       
    9   0000    LABEL 1,999;
   10   0000    
   11   0000    TYPE
   12   0000       {$I lptype.ins}
   13   0000       adulta = ARRAY[1..10] OF integer;
   14   0000       fsa = ARRAY[1..4] OF integer;
   15   0000       fparty = ARRAY[0..8] OF string[3];

==== ercm09/emas-a/amstrad/lpmenubak.txt ====
program LPMENU(input,output);

   { Program to run the Database suite}

   {Brian Gilmore September 1987}

   
TYPE
   pns = string[40];
   xxx = FILE of 0..255;

   {$I lptype.pas} 

VAR
   control: text;
   chainfile: xxx;  {program file}
   s: string[14];
   target, count, p1, p2, lno,vkey,row,col,spt,i,flag,dstart,rlen,lflag: integer;
   x_now, x_party, p3, labels, addno, last_address, prev: integer;
   key: char;
   chng: boolean;

==== ercm09/emas-a/amstrad/lppollpas.txt ====
program LPPOLL(input,output);

   { Program to run a Reading system on polling day from a file in Database format}

   {Brian Gilmore September 1987}
                 {October - modified for new database format}

   
TYPE
   pns = string[40];
   stf = record
       street: string[22];
       index: 0..255;
       knockup: 0..255;
       promises: 0..60000;
       collected: 0..60000;
       r_no: 0..60000;
   end;
   stfa = ARRAY[0..60] OF stf;
   stfpa = ^ stfa;
   stindf = ARRAY[0..250] OF 0..255;   {points from dbfile.street into stfa}

==== ercm09/emas-a/amstrad/lpsrx2pas.txt ====
segment lpsrx(input,output);
  
{ Program to search for a voter name in a file in Database format}
   
{Brian Gilmore September 1987}
  
      
TYPE
   pns = string[40];

   {$I lptype}
  
VAR
   xa: xaf;
   s, target: string[40];  
   tgt, tgt2: string[4];
   i,flag, max, last_address, indx, max_add: integer;
   
{$i lpexti}

PROCEDURE construct_index;

==== ercm09/emas-a/amstrad/screened.txt ====
program screen (input,output);

   {read from a file and display on the screen.}

TYPE
   txtstorage = ARRAY [0..200] OF string[90];

VAR
   source,nat,temp: text;  {source file}
   name: string [14];
   filename: string[14];
   line: string[120];
   screen: txtstorage;
   lno,vkey,row,col,i,dstart,rlen: integer;
   key: char;

PROCEDURE cursor(x,y: integer);
   BEGIN
      write(chr(1bh), 'Y', chr(y+20h), chr(x+20h));
   END;
PROCEDURE putcursor; BEGIN cursor(col-1,row-dstart); END;

==== ercm09/emas-a/amstrad/lpmenupas.txt ====
program LPMENU(input,output);

   { Program to run the Database suite}

   {Brian Gilmore September 1987}

   
TYPE
   pns = string[40];
   xxx = FILE of 0..255;

   {$I lptype.pas} 

VAR
   control: text;
   chainfile: xxx;  {program file}
   s: string[14];
   target, count, p1, p2, lno,vkey,row,col,spt,i,flag,dstart,rlen,lflag: integer;
   x_now, x_party, p3, labels, addno, last_address, prev: integer;
   key: char;
   chng: boolean;

==== ercm09/emas-a/amstrad/lpcountprn.txt ====
Pro Pascal Compiler - Version iid 3.1

Compilation of: LPCOUNT.PAS

Options:    L

    1   program LPCOUNT(input,output);
    2   
    3      { Program to calculate promise figures from a file in Database format}
    4   
    5      {Brian Gilmore August 1987}
    6   
    7      
    8   TYPE
    9      nums = ARRAY[1..2,0..10] of 0..60000;
   10      {$I lptype.ins}
   11      adulta = ARRAY[1..10] OF integer;
   12      fsa = ARRAY[1..4] OF integer;
   13      fparty = ARRAY[0..8] OF string[3];
   14      fattrn = ARRAY[0..15] OF string[15];
   15      fsname = PACKED ARRAY[1..19] OF char;

==== ercm09/emas-a/amstrad/screenprn.txt ====
Pro Pascal Compiler - Version zz 2.1

Compilation of: M:SCREEN.PAS

Options:    LNIAP

    1   0000    program screen (input,output);
    2   0000    
    3   0000       {read from a file and display on the screen.}
    4   0000    
    5   0000    TYPE
    6   0000       txtstorage = ARRAY [0..300] OF string[130];
    7   0000       pttext = ^ txtstorage;
    8   0000    
    9   0000    VAR
   10   0000       source,nat,temp, outfile: text;  {source file}
   11   0000       filename, ofn, name: string[14];
   12   0000       comm_in: string[50];
   13   0000       line: string[120];
   14   0000       screen: pttext;
   15   0000       lno,vkey,row,col,i,dstart,rlen,lflag: integer;

==== ercm09/emas-a/amstrad/lpextipas.txt ====
PROCEDURE Ready_Keyboard;               EXTERNAL;
PROCEDURE cursor(y,x: integer);         EXTERNAL;
PROCEDURE clearscreen;                  EXTERNAL;
PROCEDURE Clear_from_Line(n: integer);  EXTERNAL;
PROCEDURE Clearline(n: integer);        EXTERNAL;
PROCEDURE set_viewport(n: integer);     EXTERNAL;
PROCEDURE reset_viewport;               EXTERNAL;
FUNCTION get: char;                     EXTERNAL;
FUNCTION Test_input: boolean;           EXTERNAL;
FUNCTION getint(x, y:integer): integer; EXTERNAL;
PROCEDURE Request_Register;             EXTERNAL;
FUNCTION  Get_option(from, tx, flag:byte): integer; EXTERNAL;
PROCEDURE Close_Register;               EXTERNAL;
PROCEDURE set_party;                    EXTERNAL;
PROCEDURE show_attributes;              EXTERNAL;
PROCEDURE Get_address(n: integer);      EXTERNAL;
PROCEDURE Get_Postcode(N: s_integer);   EXTERNAL;
PROCEDURE print_attributes(q: integer); EXTERNAL;
PROCEDURE Get_Names;                    EXTERNAL;
PROCEDURE Disp_Form;                    EXTERNAL;
PROCEDURE Disp_Voter(n: s_integer);     EXTERNAL;

==== ercm09/emas-a/amstrad/lpvotpas.txt ====
program LPVOT(input,output);

   { Program to examine and modify a file in Database format}
  
   {Brian Gilmore May 1987}
                 {October - amended for new database format}
   
TYPE
   {$I lptype.pas} 

VAR
   x_now, x_party: integer;
   chng: boolean;

   {$i lpexti.pas}

PROCEDURE set_at_spec;
   VAR k, n, attr: integer;
   BEGIN
      cursor(0,0); write('Set ONE attribute ONLY');
      clear_from_line(1);

==== ercm09/emas-a/amstrad/lpextspas.txt ====
segment externals;

   {External routines for Database package}

   {Brian Gilmore August 1987}
                 {October - modified for new database format}

TYPE
   {$I lptype}
 
VAR
   control: text;
   chainfile: prog;
   attr_clear, last_address: byte;

   {$I HARDWARE}

FUNCTION readint: integer;
   VAR i, j, n, q: integer;
   BEGIN
      n := 0; final := -1; q := 0;

==== ercm09/emas-a/amstrad/screened2.txt ====
program screen (input,output);

   {read from a file and display on the screen.}

TYPE
   txtstorage = ARRAY [0..200] OF string[90];
   pttext = ^ txtstorage;

VAR
   source,nat,temp, outfile: text;  {source file}
   filename, ofn, name: string[14];
   line: string[120];
   screen: pttext;
   lno,vkey,row,col,i,dstart,rlen: integer;
   key: char;

PROCEDURE cursor(x,y: integer);
   BEGIN
      write(chr(1bh), 'Y', chr(y+20h), chr(x+20h));
   END;
PROCEDURE putcursor; BEGIN cursor(col-1,row-dstart); END;

==== ercm09/emas-a/amstrad/lpprinpas.txt ====
segment printer;

         {externals to handle printer/file output }
         {to achieve independance between PC & PCW}

TYPE
    {$I lptype}

    {$I lpexti}


PROCEDURE file_or_printer;
   VAR i: byte;
       s: string[40];
   BEGIN
      reset_viewport;
      REPEAT
         clearline(23); i := 0;
         write('Output to Printer or File (P or F)?'); readln(s);
         if s='p' then s := 'P'; if s = 'f' then s := 'F';
         if (s<>'F') and (s<>'P') then begin

==== ercm09/emas-a/amstrad/lppriipas.txt ====
PROCEDURE file_or_printer; EXTERNAL;
PROCEDURE Close_Printer; EXTERNAL;
==== ercm09/emas-a/amstrad/lpxxxpas.txt ====
segment externals;

   {External routines for Database package}

   {Brian Gilmore August 1987}
                 {October - modified for new database format}

TYPE
   {$I b:lptype};
 
VAR
   chainfile: prog;
   attr_clear, last_address: integer;
   Origx, Origy: Byte;

PROCEDURE ClrScr; EXTERNAL;
PROCEDURE ClrEol; EXTERNAL;
PROCEDURE GoToXY(Col, Row: byte); EXTERNAL;
FUNCTION ConSilent: char; EXTERNAL;
FUNCTION CStat: boolean; EXTERNAL;


==== ercm09/emas-a/amstrad/spadat.txt ====

+9!9-D5D=NHWRW	Yadaqn}n-D5D=NHWRW==== ercm09/emas-a/x25genpd_lmacxy.txt ====
.LMACB
	¦x´(6? &DUÅeÁetÀ<ã4
Â
´
‚
´mò•A	
+: -óð•€	Á<ãpœ
ð•ÿð—BœM` Ÿ
BBÂe³Ÿ
BÕÕ
÷	„‡&DÄåÀ<ãÈ•ÿ	®ßÀ<ã°’0“ôI¨ 00ð—Bð—Bÿ	Îß„‡&DUÀ<ãÈ•ÿ	lßÀ<ã°’ð•¯eì 0ÿ	žß„‡&DUÀ<ãÈ•ÿ	<ßÀ<ã°’0Š0Š0“ÿ	lß„‡&DUÅeÀ<ãÈ•ÿ	ßÀ<ã°’);L!ð•0Šð•0Š01ŠUÕBÕ?÷	ŒÕšBÕxI‚!÷	~Á(Âaÿ	ŒÞÀaÕ÷	^ÁœBÂaÿ	lÞÀaÕ÷	>÷gÆ!À˜B

ÿ	–ÞÁÿ	4ÞÃ(ÿ	 ÞÀ<ã÷	š
ÿ	vÞÀ<ãÿ	–Þ„‡Åå
A@Ü@`AÂeÿ	Þ
A@Ü>K("
CßÀ`€
1‡MµÁ ñ‹ƒÂ5
W-@
BcÜ@`€
5Ikn"õ
î@@cÂe‡Â(‡&DUU%Ãç'ÿ	lÝ

==== ercm09/emas-a/imp11source_recodes.txt ====
!
! nb: GLOBAL declared inside routine for AMDAHL IMP compiler
!
{Decode routine for PDP11}

%CONSTINTEGER Absf=   1,   Adc =   2,  Adcb =   3,   Add =   4,
               Addf =   5,   Ash =   6,  Ashc =   7,   Asl =   8,
               Aslb =   9,   Asr =  10,  Asrb =  11,   Beq =  12,
                Bge =  13,   Bgt =  14,   Bhi =  15,  Bhis =  16,
                Bic =  17,  Bicb =  18,   Bis =  19,  Bisb =  20,
                Bit =  21,  Bitb =  22,   Ble =  23,   Blo =  24,
               Blos =  25,   Blt =  26,   Bmi =  27,   Bne =  28,
                Bpl =  29,   Bpt =  30,    Br =  31,   Bvc =  32,
                Bvs =  33,  Cfcc =  34,   Clr =  35,  Clrb =  36
%CONSTINTEGER Clrf=  37,   Cmp =  38,  Cmpb =  39,  Cmpf =  40,
                Com =  41,  Comb =  42,   Dec =  43,  Decb =  44,
                Div =  45,  Divf =  46,   Emt =  47,  Fadd =  48,
               Fdiv =  49,  Fmul =  50,  Fsub =  51,  Halt =  52,
                Inc =  53,  Incb =  54,   Iot =  55,   Jmp =  56,
                Jsr =  57, Ldcfd =  58, Ldcif =  59, Ldexp =  60,
                Ldf =  61, Ldfps =  62,  Mark =  63,  Mfpd =  64,

==== ercm09/emas-a/gen11.txt ====
             {#######################################}
             {#  PDP11 IMP77 Object File Generator  #}
             {#                                     #}
             {#       Copyright November 1981       #}
             {#          Peter S. Robertson         #}
             {#                                     #}
             {#######################################}


{#################################################################}
{# Object file format:   <N> = Word value N,  [N] = Byte value N #}
{#                                                               #}
{#        Zeroth word: <Link>  0 or size in bytes of Data Items  #}
{#         First word: <Size of code area>                       #}
{#        Second word: <Size of gla area>                        #}
{#         Third word: <Size of diag table area>                 #}
{#        Fourth word: <Size of line number table area>          #}
{#         Fifth word: <Size of event block>                     #}
{#                     "Section name"                            #}
{#                     <Number of external definitions>          #}
{#                     External Definitions                      #}

==== ercm09/emas-a/xx25_dx11bbs.txt ====
%begin
  ! nb: This program only exists to give its stack segment to the dx11
  !     program proper, it should NEVER run again
loop:
   *EMT_1
   -> loop
%endofprogram

==== ercm09/emas-a/b_fepload.txt ====
e gen_loadups/temp
f+batch go/.tt+s+LOAD FEP+
1
%c
imp11 temp
link11
temp#rel
i77perm
.stack 1000
.streams 0
.name ldup
.end
fepldupy

==== ercm09/emas-a/padlog.txt ====
10/12/87 10:00
         10:30 faapad   09/00  15 times

11/12/87 15:30 engpad1  09/00    {no crash}
         16:00 engpad1  00/00
         16:30 afbpad3  00/00
               phypad   09/00

12/12/87 11:30 dvetpad  09/00
         13:30 dvetpad  09/00
         19:30 faapad   09/00

14/12/87 13.30 afbpad3  00/00
               kbpad1   09/00
         14:00 faapad   09/00  5 times  {4 actual, then JL at scene}
         15:00 rehpad1  09/00
               rehpad2  09/00
         17:30 tevpad   00/00

15/12/87 09:30 faapad   09/00  {Booked out}
         09:30 scipad2  00/00

==== ercm09/emas-a/xx25_telepac.txt ====
@device(x2700)
@majorheading[TelePAC Fault and Crash History]
@verbatim[
?? Aug 85            TelePAC delivered on loan
?? Oct 85            Version: 1256
?? Oct 85            Crash while configuring it

=================================================================
==== ercm09/emas-a/b_mgatex.txt ====
EDIT x25_gatexs,t#b
A/198/A1STM/Versi/F<X>K(M/GATX Running/M0R/Running/I<X>i/ (Min,Large,2 lines)/p1)2
E
prep t#b,gatex#imp,m,h,a,clean
dIMP11 gatex#imp/gatex#rel,gatex#lst
dLINK11
gatex#rel
.name gatx
.STACK 5000
.STREAMS 1
.stackseg 6
.END
gatex
destroy bacg
rename gatex#abs,bacg

==== ercm09/emas-a/b_changes.txt ====
%externalroutinespec insert(%string (255) s)
%externalroutinespec remove(%string (255) s)

%externalroutine new(%string(255) s)
remove("iprogs_alist11y")
remove("iprogs_code11y")
remove("iprogs_link11y")
insert("ercs09.imp11y")
insert("ercs09.recodey")
insert("ercs09.link11y")
printstring("Gone to new compiler
")
%end
%externalroutine old(%string (255) s)
remove("ercs09.imp11y")
remove("ercs09.link11y")
remove("ercs09.recodey")
insert("iprogs_alist11y")
insert("iprogs_code11y")
insert("iprogs_link11y")
%end

==== ercm09/emas-a/b_newinfo.txt ====
e routines
k*
%s=x25gen.newinfo
(f/!=/m-nmam)*
%s
m-*
((t/%routine/,t/%function/,t/%map/,t/%predicate/)i/ %spec/pm,m)*
m-*
(t/%spec/i/ /40l*r40(v/ /e)*pm,m)*
g
%endoffile
%c

prep x25gen.newinfo,infos#imp,clean
dimp11 infos#imp
dlink11
infos#rel
.stack 2000
.stackseg 6
.name info
.end

==== ercm09/emas-a/b_ftpsnew.txt ====
prep fep_ftp1s,ftp1s#imp,r,e,i,clean
dimp11 ftp1s#imp
link11 /ftp1s
ftp1s
.stack 1400
.streams 1
.name ftps
.stackseg 6
.end
ftp1s
destroy ftp1ey
rename ftp1s#abs,ftp1ey

==== ercm09/emas-a/edinbur0189.txt ====
9CC2
Registering Institution:
    Name prefix:             UK.AC.
    Standard name:           EDINBURGH
    Abbreviated name:        ED
Entity Information:
    Standard entity name:    EDINBURGH
    Abbreviated entity name: ED
    Description:             E.U.C.S. Distributed mail directory
Use:
    Protocol Context:        MAIL-NIFTP
    Direction:               FORWARD
    Sub-network:             JANET
    DTE number:              000015000043
    YBTS address:            FTP.MAIL
Use:
    Protocol Context:        MAIL-NIFTP
    Direction:               FORWARD
    Sub-network:             PSS
    DTE number:              234231354354
    YBTS address:            (DEMO,DEMO).EMAS-A.FTP.MAIL

==== ercm09/emas-a/ksip.txt ====
KSIP.EXE
CEX<0IP0~280211?ooBQN009TC402k4Qh0~20@00~~~~~~~~~~~~~=R2H008TV?P7Xl@F:9P00
P?`4M220o05e0nV>083l1GD3jE@3P?`6M@?Ym0>d2KZL0<dQ`nRg1X3l07P6aPH000?3P>AoP?`K
MAjd0[87cB761P4008\NSP1;RAj>08TNT03n3P80jlb0o3me<[@9^_<0cB6d2KX\0LdQ]0V;5PP0
cB6;7Y00]2B89ol>SP2d2KX>0<dQ]0289P40jK@6P?`<M@?X@FgY5`N97P`0RAH:08_JRRm3RaJ@
08TFUP20o@1e0nVf0Ok=\@3X80J0o01i0nV;0D?n`HX7j<86>^1d27l3jIH1j@h2@hX7j;06?2Ae
0nTJ0X[@j?85o\6:`^RM1X3lVg@FP?bPM160o8ed383l_g@7>^1dcnWJ0HTNU0293Y80R2JH083l
_g@kj1T2jKT0RRJH083lVg@3jC`1]0:b1ldQRaj>04^97Xh0RAj@0?h>0P2;7Y@0R`jB0?k9BlH6
0@00jh2j4@6d2LdQaPHm0@2;7Y@0R`jB0;D0:mU3RAjD08\NU01;RPL01Sd1P3hm0Dan3;@9^R`1
cB761Sd10;8P]0;=8Oh6?@7=8Oh6?@6;5Y@0]0W=8H\NU01;RPNd00D500?HRo>;?Y@0RAjD08\>
TP3ncG`>R@jB0;D0o\WSX?>VM9cYc`2;3Y80RajD080nV02PM5J0?YP0_gA?P3jH08edB?l>SP2;
5Xh0RROXR0F0o2Ad38_jR2E3@_h60P3[j[@PRoZ89D:;3Xh0RAJ>08TFT02d98_jR2Fd2H_AcB53
Rao61P400>U^1D>:9h3l97Gh@h\OjF05P>AoP?`oM3Z0o21dNH3l3GAdP?`9M6n0o1]d2[@9^\80
cB7Yh@Bd0[87cB7o3Xh0o`j@0?h>0P361P400?k5jAcn@hTNU02a0HT>TP2;5P`02m9e0nVao[@9
cB6d2KX\0LdQRaH80<dQRaj@0;0TR0Nj3P3=8Ol>SP3n3P80aPH1~2jF`4P3jJ005d1k@9^]D0
cB7YL0A3P3lTMOZ3``>;5YH0RAJ@0<H60`3ojJkmj=X3P?`0N0=;jmb0o;me1Ok1jOSm@h\OP?bK
MAZd2KXb0LdQRcj>04nd88PUaPH1~2aPH30?oYMPB0o@1e0L=3RPLl97GiPl<4o\V;5YH0RRN;
nXX5j3H4>^1n0L=3@_k9MNcYB@B97PX0RAHZ0K40aPH3~2j6@3m\B0M3b0i7n0o21d=83l6gDI
]0:b1ldQaPH1~2o`j>0?l>T03n3P80jlf0o3md983l37D3j2IZR^6;7PX0jOH3o\6;7PX0R2M3
\0281hTN2P3[Y<H60@00o`J@083i07GOo`j>0?h>0P3o3Y00]0V;5RX1cB6d2KX\0LdQ]0V;5PP0
cB6;7Y00aPLT]0Vj3P3=8NURoe:;de^97PX0RAHZ0K40aPH30?oX^0;fa81e0nV>083TOh3l6g@8

==== ercm09/emas-a/ednet.txt ====
KB-CPSE: 000015000000
      kbpad13,13,pad
      scipd1,15,pad
      forpd1,21,pad
      polpad,28,pad
      kbpad14,32,pad
      kbpad15,33,pad
      wsapad,34,pad
      rehpad,38,pad
      hsypd1,42,pad
      kbpad1,46,pad
      scipd2,115,pad
      phypad,116,pad
      rehpd2,138,pad
TELEPAC1: 000015001000
      kbpad5,26,pad
      kbpad4,30,pad
      kbpad6,15003013,pad
      kbpad3,16,pad
      tevpad,15003014,pad
      genpad,23,pad

==== ercm09/emas-a/b_i77perm.txt ====
WAIT
CLOSEINPUT
CLOSEOUTPUDUPADDRSETPRIOPOPPUSHTIMEMAPPSECTMAPHWRLINKINALARMGETIDMAPABS4MAPVIRTPONOFF POFFPONÀÁÂȇ ààà&ˆ€PPȇ0ààà&ˆÄåT”Ì„‡@àààBA@
ˆ‡ààà@BAAAAAÁEøÿˆŠÁe@BcÂEà ‡
‡hàààˆ‡àààˆ‡ààà
ˆ‡àààˆ‡àààˆ‡àààˆ‡àààBˆ
	‡(ààà
‡B J
‡0àààˆ‡àààˆ‡àààÀÁàIààà
ÁàIàààˆààà==== ercm09/emas-a/b_lotups.txt ====
e gen_loadups,lotups
f+batch go/.tt+s+LOAD FEP+p
1
%c
imp11 lotups
link11
lotups#rel
i77perm
.stack 1000
.streams 0
.name ldup
.end
lotupy
alist11 lotups/.lp23
list lotupy,.bpp155
destroy lotups,lotups#rel

==== ercm09/emas-a/b_verisnew.txt ====
e gen_veris77/temp
f/deimosperm/s/b_deimosspecs/
m-0f/cli string/s/cli param/
0
m-0f/%integername a/s/%integer a/
1
1
f/==address/e
m-0f/f2==fa(0)/k
f/f2_x/s/addr(fa(0))/
m-0
f/, ba(0)_pr/s/, addr(ba(0)_pr)/p
1
%c
dimp11 temp
link11 /temp
temp
ercm11.newimp
.stack 6000
.streams 1
.name veri

==== ercm09/emas-a/ccta.txt ====
Subject:  Re: Procurement Procedures
From:     CCTA <NJIN03@UK.AC.RUTHERFORD.GEC-B>
Date:     Fri, 19 Jun 87 12:15 BST
To:       P.E.Williams@UK.AC.EDINBURGH
In reply to: <17 Jun 87  15:17:33 bst  110889@BUSH>
Via:      UK.AC.EDINBURGH.EMAS-A  ; (to uk.ac.edinburgh.bush) 19 Jun 87  12:40:18 bst
Via:      UK.AC.RUTHERFORD.GEC-B  ; (to uk.ac.edinburgh.emas-a) 19 Jun 87  12:16:52 bst
Msg ID:   <19 JUN 1987 12:15:41 NJIN03@UK.AC.RUTHERFORD.GEC-B>

                           Guide to the
 
            Procurement process for University systems
 
                          funded by the
 
      Computer Board for Universities and Research Councils
 
 
                              Part I
 
                   The Operational Requirement

==== ercm09/emas-a/b_supbl.txt ====
parm free
parm opt,noarray,notrace
prep supbuilds,supbuilde,e
i supbuilde,supbuildy,l,.out

==== ercm09/emas-a/b_ftpgx.txt ====
prep x25gen.ftpd5s,ftpd5s#imp,x,g,clean
dimp11 ftpd5s#imp
dlink11 /ftpd5s
ftpd5s#rel
.stack 2400
.streams 1
.stackseg 6
.name ftpx
.end
ftpg5s
c ftpg5s#abs,dobj.ftpgxy
destroy ftpg5s#abs
alist11 ftpd5s#imp
list ftpd5s#lst,.lp23

==== ercm09/emas-a/ednet0788.txt ====
{{circle(24,10.8,.5);INLABEL(.14,"Fe2")}}
{{circle(8.7,16.5,2);inlabel(.2,"TelePAC 1@b15001000")}}
{{circle(7.1,13,1.3);inlabel(.175,"TelePAC 3@b15004000")}}
{{circle(13,22.4,2);inlabel(.3,"KB-CPSE@bGEC 4190@b")}}
{{inlabel(.14,"@B@B@b@b000015000000")}}
{{join(c4,c1)}}
{{circle(13,4,2);inlabel(.3,"AT-CPSE@bGEC 4190@b")}}
{{inlabel(.14,"@B@B@b@b000016000000")}}
{{CIRCLE(8.2,20,1.25);inlabel(.175,"TelePAC 2@b15005000")}}
{{circle(24,9.8,0.5);inlabel(.14,"Fe3")}}
{{circle(24,8.8,0.5);inlabel(.14,"Fe5")}}
{{circle(24,5.8,0.5);inlabel(.14,"Fe4")}}
{{CIRCLE(32.5,21.7,1.5);INLABEL(.14,"JANET@bPSE")}}
{{circle(28,7.8,.5);inlabel(.14,"Fe8")}}
{{circle(12.75,24.8,.1);fill(c12)}}
{{circle(14.75,24.8,.1);fill(c13)}}
{{circle(16.75,24.8,.1);fill(c14)}}
{{circle(20.75,25.2,0)}}
{{circle(6.75,25.2,0)}}
{{CIRCLE(6.75,1.4,0)}}
{{circle(8.75,1.4,0)}}

==== ercm09/emas-a/b_xxx1.txt ====
prep x25_xxx2s,xxx2s#imp,s,clean
imp11 xxx2s#imp/xxx2s#rel,l
link11
xxx2s#rel
b_i77perm
.stack 1400
.streams 1
.name xxx
.end
xxx1y
alist11 xxx2s#imp,xxx2s#rel/.lp23

==== ercm09/emas-a/b_lmn6.txt ====
e gen_lmtims/temp
f/prompt("n/k2g
node = 6; term = 181
m-0
f/ercm09/s/ERCM05/p
f/liam/s/LIZ!/p
%c
imp11 temp
link11
temp#rel
i77perm
.stack 2000
.streams 1
.name lmn6
.end
lmn6y

==== ercm09/emas-a/info.txt ====
                               INFO Service

A new, test, INFO service is now available. It may be called directly from
PADs by typing CALL INFO

Any comments or suggestions should be sent by electronic mail to M.McIntosh

==== ercm09/emas-a/perfgra/padan4s.txt ====
%EXTERNALROUTINE padan %alias "c#padan"(%STRING (255) s)

{version for NEW pad stats}

%EXTERNALROUTINESPEC prompt %ALIAS "S#PROMPT"(%STRING (255) s)
%externalroutinespec EMAS3CONNECT %c
   (%stringname file, %integername mode, hole, prot, conad, %c
      type, start, end, flag)
   %ROUTINE define(%STRING (255) s)
      %EXTERNALROUTINESPEC emas3(%STRINGNAME command,params, %INTEGERNAME flag)
      %INTEGER flag
      emas3("DEFINE",s,flag)
   %END;                                 ! Of %ROUTINE define.
   %STRING (255) t,u,v,s2,t2,padname
   %INTEGER i,j,k,x,crash, st,m1,m2,m,hit,low,high, final, q,cou del, yr, ii, kk, z, fr ho up, dayofmonth
   %owninteger mode, hole, prot, conad, type, start, end, flag, ptr
   %owninteger ignorelunch
   %OWNINTEGER this day,hours,thours, bars, trig hours
   %OWNINTEGER max= 0, fhours, hours up, fday = 5, poll h, pollday
   %REAL mtbf


==== ercm09/emas-a/perfgra/gra3.txt ====
easygraph
title "Packets/sec vs Packet Length - 1 SVC"
xaxis 12,"Length of Packets"
xformat 3,0
xscale 0,10
yaxis 12,"Packets/Sec"
yformat 3,0
yscale 0,5
flatnumber
linetype line+points
symbol square
data
5 32.4
10 29.2
15 26.1
20 23.2
25 21.3
30 19.5
35 18.3
40 16.7
45 15.5

==== ercm09/emas-a/perfgra/gra4.txt ====
easygraph
title "Packets/sec vs Packet Length - 3 SVCs"
xaxis 12,"Length of Packets"
xformat 3,0
xscale 0,10
yaxis 12,"Packets/Sec"
yformat 3,0
yscale 0,5
flatnumber
linetype line+points
symbol square
data
   5 64.2
  10 58.2
  15 57.9
  20 55.8
  25 54.3
  30 53.1
  35 50.1
  40 45.6
  45 41.7

==== ercm09/emas-a/perfgra/te1stats.txt ====
MTBF - TelePAC #1 - 3 Month Rolling Average
Month - Jan 86 to October 86
11
0 1
0 0 1 0 0 0 0 0
0 0 0 0 0 2 0 0 0 0 0 0

==== ercm09/emas-a/perfgra/contime.txt ====
title "Time/count for @bLoopback Connect"
xformat 3,0
yformat 3,0
xaxis "Time in 100th sec"
yaxis "Number"
pen blue
symbol square
data
   10     1
   12   129
   14   162
   16   49
   18   32
   20    46
   22    32
   24    61
   26    39
   28    48
   30    49
   32    77
   34    66

==== ercm09/emas-a/perfgra/dotel5.txt ====
telan5 ttl

g
notice ttl
gp23
h
n
n
y
ttlo
y
drawpicture ttlo
device .dpg15
draw
stop


==== ercm09/emas-a/perfgra/telanhs.txt ====
{this version draws a plot in HOURS not DAYS}



%EXTERNALROUTINE telan5 %alias "C#telan5"(%STRING (255) s)
%externalstring %fn %spec date %alias "S#date"
%externalstringfnspec substring %alias "S#substring" %c
   (%string (*) %name s, %integer i,j)
%EXTERNALROUTINESPEC prompt %ALIAS "S#PROMPT"(%STRING (255) s)
%externalroutinespec EMAS3CONNECT %c
   (%stringname file, %integername mode, hole, prot, conad, %c
      type, start, end, flag)
   %ROUTINE define(%STRING (255) s)
      %EXTERNALROUTINESPEC emas3(%STRINGNAME command,params, %INTEGERNAME flag)
      %INTEGER flag
      emas3("DEFINE",s,flag)
   %END;                                 ! Of %ROUTINE define.
   %STRING (255) t,u,v,s2,t2,padname,d2,s3,s4,t3, mnth, curr, dst, yrs, mon name
   %string (255) mn, linename
   %INTEGER i,j,k,x,crash, st,m1,m2,yr, xhrs
   %owninteger thisf, lastf, thisrej, lastrej, reload, finh, PAC, GRTYPE

==== ercm09/emas-a/perfgra/psscharges.txt ====
title "PSS Call Charges per qtr"
yformat 4,0
yscale 0,250
yaxis 16
xaxis 22
xscale 0,1
xlabel /Apr 84//Oct 84//Apr 85//Oct 85//Apr 86//Oct 86//Apr 87//Oct 87//Apr 88//Oct 88//Apr 89/
data
1 571
2 1320
3 1424
4 1273
5 987
6 1172
7 1560
8 1264
9 1725
10 1646
11 2033
12 2545
13 2336

==== ercm09/emas-a/perfgra/dotelc.txt ====
telan5 ttl

c
notice ttl
gp23
h
n
n
y
ttlo
y
drawpicture ttlo
device .dpg15
draw
stop


==== ercm09/emas-a/perfgra/dotelm.txt ====
telan5 ttl

m
g
notice ttl
gp23
h
n
n
y
ttlo
y
drawpicture ttlo
device .dpg15
draw
stop


==== ercm09/emas-a/perfgra/mtbfs.txt ====
%EXTERNALROUTINE mtbf(%STRING (255) s)
   %STRING (255) t,u,v,qq
   %STRING (255) title,x axis
   %INTEGER h,x,q,mon
   %ROUTINE easygraph(%STRING (255) s)
      %externalroutinespec emas3(%stringname command,params, %integername flag)
      %integer flag
      emas3("EASYGRAPH",s,flag)
   %end

   %ROUTINE define(%STRING (255) s)
      %EXTERNALROUTINESPEC emas3(%STRINGNAME command,params, %INTEGERNAME flag)
      %INTEGER flag
      emas3("DEFINE",s,flag)
   %END;                                 ! Of %ROUTINE define.
   %EXTERNALROUTINESPEC prompt %ALIAS "S#PROMPT"(%STRING (255) s)
   %CONSTINTEGER nl= 10
   %OWNSTRING (24) %ARRAY ss(1:12)= "January", "February",
 "March", "April", "May", "June", "july", "August", "september",
 "October", "November", "December"
   %INTEGERARRAY hw(1:50),sw(1:50)

==== ercm09/emas-a/perfgra/dotelw.txt ====
telan5 ttl

w
g
notice ttl
gp23
h
n
n
y
ttlo
y
drawpicture ttlo
device .dpg15
draw
stop


==== ercm09/emas-a/perfgra/temp.txt ====

title "MTBF - AT 4190 - 3 Month Rolling Average"
xaxis 20,"Month - Jan 84 to August 1987"
xformat 3,0
xscale 0,2
size_xnumber .15
xlabel Jan/Mar/May/Jul/Sep/Nov/Jan/Mar/May/Jul/Sep/Nov/Jan/Mar/May/Jul/Sep/Nov
yaxis 16,"Hours MTBF"
yformat 3,0
yscale 0,150
flatnumber
linetype line+points
pen 3
symbol square
data
 1 2500
 2 2500
 3 2196
 4 2196
 5 732
 6 732

==== ercm09/emas-a/perfgra/dexpand1.txt ====
title 'Dexpand Throughput'
yaxis 'Bytes/Sec'
xaxis 'Packet Size'
data
10 442
20 825
30 1173
40 1550
50 1900
60 2235
70 2607
80 2860
90 3105
100 3325
110 3549
120 3720
130 3705
140 3920
150 4087
160 4320
170 4547

==== ercm09/emas-a/perfgra/dexpand2.txt ====
title 'Dexpand Throughput'
yaxis 'Packets/Sec'
xaxis 'Packet Size'
data
10 44.4
20 41.3
30 39.9
40 38.8
50 38.0
60 37.3
70 37.3
80 35.8
90 34.6
100 33.4
110 32.2
120 31
130 28.5
140 28.1
150 27.3
160 27.1
170 26.8

==== ercm09/emas-a/perfgra/telan3s.txt ====
%EXTERNALROUTINE telan %alias "C#telan"(%STRING (255) s)
%externalstring %fn %spec date %alias "S#date"
%externalstringfnspec substring %alias "S#substring" %c
   (%string (*) %name s, %integer i,j)
%EXTERNALROUTINESPEC prompt %ALIAS "S#PROMPT"(%STRING (255) s)
%externalroutinespec EMAS3CONNECT %c
   (%stringname file, %integername mode, hole, prot, conad, %c
      type, start, end, flag)
   %ROUTINE define(%STRING (255) s)
      %EXTERNALROUTINESPEC emas3(%STRINGNAME command,params, %INTEGERNAME flag)
      %INTEGER flag
      emas3("DEFINE",s,flag)
   %END;                                 ! Of %ROUTINE define.
   %STRING (255) t,u,v,s2,t2,padname,d2,s3,t3, mnth, curr, dst, yrs, mon name,mn
   %INTEGER i,j,k,n,x,crash, st,m1,m2,yr
   %owninteger thisf, lastf, thisrej, lastrej, reload, finh
   %owninteger mode, hole, prot, conad, type, start, end, flag, ptr
   %OWNINTEGER this day,hours,thours, bars
   %OWNINTEGER max= 0, days, fhours, hours up, fday = 2
   %real x1, y1, x2, y2, bsize
   %REAL mtbf

==== ercm09/emas-a/perfgra/telan4s.txt ====
%EXTERNALROUTINE telan4 %alias "C#telan4"(%STRING (255) s)
%externalstring %fn %spec date %alias "S#date"
%externalstringfnspec substring %alias "S#substring" %c
   (%string (*) %name s, %integer i,j)
%EXTERNALROUTINESPEC prompt %ALIAS "S#PROMPT"(%STRING (255) s)
%externalroutinespec EMAS3CONNECT %c
   (%stringname file, %integername mode, hole, prot, conad, %c
      type, start, end, flag)
   %ROUTINE define(%STRING (255) s)
      %EXTERNALROUTINESPEC emas3(%STRINGNAME command,params, %INTEGERNAME flag)
      %INTEGER flag
      emas3("DEFINE",s,flag)
   %END;                                 ! Of %ROUTINE define.
   %STRING (255) t,u,v,s2,t2,padname,d2,s3,t3, mnth, curr, dst, yrs, mon name
   %string (255) mn, linename
   %INTEGER i,j,k,x,crash, st,m1,m2,yr
   %owninteger thisf, lastf, thisrej, lastrej, reload, finh, PAC, GRTYPE
   %owninteger mode, hole, prot, conad, type, start, end, flag, ptr, sample
   %OWNINTEGER this day,hours,thours, bars, gbase, stat type
   %OWNINTEGER max= 0, days, fhours, hours up, fday = 2
   %real x1, y1, x2, y2, bsize

==== ercm09/emas-a/perfgra/telan5s.txt ====
%EXTERNALROUTINE telan5 %alias "C#telan5"(%STRING (255) s)
%externalstring %fn %spec date %alias "S#date"
%externalstringfnspec substring %alias "S#substring" %c
   (%string (*) %name s, %integer i,j)
%EXTERNALROUTINESPEC prompt %ALIAS "S#PROMPT"(%STRING (255) s)
%externalroutinespec EMAS3CONNECT %c
   (%stringname file, %integername mode, hole, prot, conad, %c
      type, start, end, flag)
   %ROUTINE define(%STRING (255) s)
      %EXTERNALROUTINESPEC emas3(%STRINGNAME command,params, %INTEGERNAME flag)
      %INTEGER flag
      emas3("DEFINE",s,flag)
   %END;                                 ! Of %ROUTINE define.
   %STRING (255) t,u,v,s2,t2,padname,d2,s3,t3, mnth, curr, dst, yrs, mon name
   %string (5) dmstr
   %string (255) mn, linename, input file
   %INTEGER i,j,k,x,crash, st,m1,m2,yr,n, period, char, q
   %owninteger thisf, lastf, thisrej, lastrej, reload, finh, PAC, GRTYPE
   %owninteger mode, hole, prot, conad, type, start, end, flag, ptr, sample
   %OWNINTEGER this day,hours,thours, bars, gbase, stat type
   %OWNINTEGER max= 0, days, fhours, hours up, fday = 2

==== ercm09/emas-a/perfgra/lmts.txt ====
title "Network Performance@bData Packets/sec"
xformat 4,0
yformat 4,0
xaxis 17,"No of simulated users"
yaxis 20,"Packets/Sec"
yscale 0,150
ylabel /0//5//10//15//20//25//30//35//40//45//50/
pen black
symbol square
data
0 0
1 774
2 1434
3 1882
4 2236
5 2564
6 2732
7 2838
8 2722
9 2630
10 2658

==== ercm09/emas-a/perfgra/dotel.txt ====
telan5 ttl

d
g
notice ttl
gp23
h
n
n
y
ttlo
y
drawpicture ttlo
device .dpg15
draw
stop


==== ercm09/emas-a/perfgra/thruvslen.txt ====
easygraph
title "Packets/sec vs Packet Length - 3 SVCs"
xaxis 12,"Length of Packets"
xformat 3,0
xscale 0,10
yaxis 12,"Packets/Sec"
yformat 3,0
yscale 0,5
flatnumber
linetype line+points
symbol square
data
   5 64.2
  10 58.2
  15 57.9
  20 55.8
  25 54.3
  30 53.1
  35 50.1
  40 45.6
  45 41.7

==== ercm09/emas-a/perfgra/kbstats.txt ====
MTBF - KB 4190 - 3 Month Rolling Average
Month - Jan 84 - August 1987
45
1 0 0 0 4 0 0 0 3 0 3 1 5 1 3 0 1 0 3 0 3 0 2 0 1 0 3 0 5 0 5 0
2 0 1 0 0 0 0 0 1 0 1 0 0 1 1 1 0 2 1 1 0 0
1 0
0 0 1 0
1 0 0 1 1 0
1 0 2 1 1 0 0 0 0 0 0 0
0 0 0 1 0 1 0 0 1 0 0 0

==== ercm09/emas-a/perfgra/gra1b.txt ====
easygraph
title "Packets/sec vs Packet Length - 1 SVC"
xaxis 12,"Length of Packets"
xformat 3,0
xscale 0,10
yaxis 12,"Packets/Sec"
yformat 3,0
yscale 0,5
flatnumber
linetype line+points
symbol square
data
5 32.4
10 29.2
15 26.1
20 23.2
25 21.3
30 19.5
35 18.3
40 16.7
45 15.5

==== ercm09/emas-a/perfgra/gra2b.txt ====
easygraph
title "Packets/sec vs Packet Length - 3 SVCs"
xaxis 12,"Length of Packets"
xformat 3,0
xscale 0,10
yaxis 12,"Packets/Sec"
yformat 3,0
yscale 0,5
flatnumber
linetype line+points
symbol square
data
   5 64.2
  10 58.2
  15 57.9
  20 55.8
  25 54.3
  30 53.1
  35 50.1
  40 45.6
  45 41.7

==== ercm09/emas-a/perfgra/ssstats.txt ====
MTBF - AT 4160 - 3 Month Rolling Average
Month - Jan 84 to August 1987
45
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 2 0
0 0 0 0
0 0 0 0 0 0 0 0 0 1
5 0 0 0 1 0 5 0
0 0 0 0 0 0 0 0 0 1 0 0


==== ercm09/emas-a/perfgra/dumpgec2s.txt ====
%EXTERNALROUTINE dumpgec %alias "c#dumpgec"(%STRING (63) s)

   %CONSTSTRING (25) vsn= "  Version  1.4"

   %OWNINTEGER print all= 0;             ! prints lau data if <>0
   %OWNINTEGER mon line= -1;             ! line to monitor
   %OWNINTEGER mon con= 0
   %OWNINTEGER print this= 0

   %CONSTINTEGER our exchange= 1
   %OWNINTEGER this exchange= 0, fix exch
   %CONSTINTEGER scd= 0
   %CONSTINTEGER ecd= 1
   %CONSTINTEGER dcd= 2
   %CONSTINTEGER laustats= 3
   %CONSTINTEGER unitstats= 4
   %ROUTINESPEC dumpaddr(%BYTEARRAYNAME a, %BYTE l)
   %ROUTINESPEC writehex(%INTEGER n,d)
!Routine for dumping GEC Network Management logs
   %ROUTINESPEC date(%INTEGER dat)
   %ROUTINESPEC tod(%INTEGER d)

==== ercm09/emas-a/perfgra/padgr.txt ====
title "No of Pad Restarts Per Week"
xaxis 18,"Weekly figures -  86 to  89"
xscale 0,8.66
xlabel  Mar//Jul//Nov//Mar//Jul//Nov//Mar//Jul//Nov//Mar/
yaxis 14,"No of Restarts"
yformat 3,0
yscale 0,5
flatnumber
pen red
data
1 0 4.5 19 9 24 13.5 22 18 18.6 22.5 21.3 27 23.2 32.5 30.5
36 36.5 44 25 48 31 52 33 57 27 61 19 65 24 69 14 73 18 78 16 82 17
87 34 91 16 95 12 99 28 103 13 107 11 111 11 115 13
119 15
137 6 141 14 145 15 149 16 153 22 157 20
plot
overlay
pen black
data
   1    2 2   16 3   27 4   19 5   15 6   19 7   24 8   36 9   17 10   17
  11   23 12   26 13   31 14   17 15   29 16   15 17    9 18   22 19   20

==== ercm09/emas-a/perfgra/atstats.txt ====
MTBF - AT 4190 - 3 Month Rolling Average
Month - Jan 84 to August 1987
45
0 0 0 0 0 0 0 1 1 0 0 0 2 5 1 4 0 1 0 0 0 0 1 0 0 0
0 2
1 0
0 3 1 0 1 1 0 0 1 0 1 2 0 0 0 6 2 0 0 0
0 1
1 1
1 1
0 5 0 0
0 2 0 0 0 0
0 3 0 2 1 0 0 0 0 0 0 0
0 0 0 0 1 1 0 0 0 0 0 1

==== ercm09/emas-a/perfgra/etive.txt ====
title "        Etive@bHardware breaks/Month"
yformat 2,0
yscale 0,1
yaxis 5
xaxis 12
xscale 0,1
xlabel /Apr/May/Jun/Jul/Aug/Sep/Oct/Nov/Dec/Jan/
linetype histogram
data
1 3
2 1
3 3
4 0
5 3
6 3
7 0
8 3
9 1
10 0
11 2
12 1

==== ercm09/emas-a/perfgra/padan3s.txt ====
%EXTERNALROUTINE padan %alias "c#padan"(%STRING (255) s)
%EXTERNALROUTINESPEC prompt %ALIAS "S#PROMPT"(%STRING (255) s)
%externalroutinespec EMAS3CONNECT %c
   (%stringname file, %integername mode, hole, prot, conad, %c
      type, start, end, flag)
   %ROUTINE define(%STRING (255) s)
      %EXTERNALROUTINESPEC emas3(%STRINGNAME command,params, %INTEGERNAME flag)
      %INTEGER flag
      emas3("DEFINE",s,flag)
   %END;                                 ! Of %ROUTINE define.
   %STRING (255) t,u,v,s2,t2,padname
   %INTEGER i,j,k,x,crash, st,m1,m2,m,hit,low,high, final, q,cou del, yr, ii, kk, z, fr ho up
   %owninteger mode, hole, prot, conad, type, start, end, flag, ptr
   %owninteger ignorelunch
   %OWNINTEGER this day,hours,thours, bars, trig hours
   %OWNINTEGER max= 0, fhours, hours up, fday = 5, poll h, pollday
   %REAL mtbf

   %constinteger special = 13
   %ownstring (11) %array fromname(1:special) = "ATBPD1",
     "CSTPD1", "CSTPD2", "ENGPD1", "FCNRPD", "HFROPD1",

==== ercm09/emas-a/b_deimosperm.txt ====
!
!      specs for deimos perm routines
!
%externalroutinespec pon(%record(*) %name p)
%externalroutinespec poff(%record(*) %name p)
%externalroutinespec ponoff(%record(*) %name p)
%externalintegerfnspec mapvirt(%integer ser,seg1,seg2)
%externalintegerfnspec map abs(%integer vadd,len,id)
%externalintegerfnspec getid
%externalroutinespec alarm(%integer ticks)
%externalroutinespec linkin(%integer ser)
%externalroutinespec maphwr(%integer segs)
%externalintegerfnspec mappsect(%integer seg,task)
%externalroutinespec push(%record(*)%name q,%record(*)%name m)
%externalrecord(*)%mapspec pop(%record(*)%name q)
%externalintegerfnspec time
%externalroutinespec set prio(%integer prio)
%constbyteintegername own id==(8_160030);   !8.1 compiler bug
%constbyteintegername fsys == k'160055'
%constbyteintegername id == k'160030'
%constbyteintegername int==(8_160060)

==== ercm09/emas-a/b_load8.txt ====
dimp11 load8s
link11 /map
load8s
.codeseg 2
.stackseg 6
.stack 600
.streams 1
.end
load8s
c load8s#abs,newsys_load8y

==== ercm09/emas-a/b_dx11.txt ====
prep x25_dx11b1s,dx11b1s,b,n,m
dimp11 dx11b1s
link11 /map
dx11b1s
.stack 2000
.streams 1
.name dx11
.stackseg 6
.end
dx11b1s
c dx11b1s#abs,dx11b1y

==== ercm09/emas-a/nrsdoc.txt ====
                      The distributed NRS service
                      ---------------------------

From 15 June 1987 users will be required to collect the NRS database from 
one of the distribution centres (DCs) listed below. These DCs will collect 
the files from UK.AC.NRS daily between 01:00 and 08:00 after which time 
they will be available for collection by users. The files available and 
the method of collecting are listed below for each DC.

It is very important that users cease from the above date to collect these
files from UK.AC.NRS as otherwise the new service will not work.

I suggest that in general files are collected from the DC nearest to you
except where there are valid reasons for collecting from elsewhere.

At present the complete list of DCs have not been set up as information
on how to access some of them has not yet been provided.


List of Distribution Centres
----------------------------

==== ercm09/emas-a/nodes188.txt ====
{{circle(15,15,2);inlabel(.2,"KB CPSE@b")}}
{{inlabel(.14,"@b@b000015000000")}}
{{circle(15,4,2);inlabel(.2,"AT 1 CPSE@b")}}
{{inlabel(.14,"@b@b000016000000")}}
{{circle(3,15,2);inlabel(.2,"TelePAC 1@b")}}
{{inlabel(.14,"@b@b000015001000")}}
{{circle(8.9,12.5,2);inlabel(.2,"TelePAC 2")}}
{{inlabel(.14,"@b@b000015005000")}}
{{circle(3,4,2);inlabel(.2,"TelePAC 4@b")}}
{{inlabel(.14,"@b@b000016002000")}}
{{join(c1,c2);join(c1,c3);join(c1,c5)}}
{{join(c2,c3)}}
{{join(c3,c4)}}
{{box(1.5,24)(5.5,26);inlabel(.2,"EMAS-A")}}
{{box(6.5,24)(10.5,26);inlabel(.2,"EMAS-B")}}
{{box(11.5,24)(15.5,26);inlabel(.2,"EMAS-C")}}
{{circle(2.5,23,.5)inlabel(.14,"Fe3")}}
{{circle(3.5,23,.5)inlabel(.14,"Fe1")}}
{{circle(4.5,23,.5)inlabel(.14,"Fe2")}}
{{circle(7.5,23,.5)inlabel(.14,"Fe2")}}
{{circle(8.5,23,.5)inlabel(.14,"Fe3")}}

==== ercm09/emas-a/eanusage.txt ====







Use of the EAN service from a UK site



_1_.  _O_v_e_r_v_i_e_w


This document gives a brief  introduction  of  EAN  together
with  a  description  of the way messages may be sent to, or
relayed through EAN.  Included in this document  are  guide-
lines for locating EAN users and UK domains, together with a
help section regarding EAN mail problems.  Please  refer  to
the  document <DOCS>ean.sites, for a list of EAN domains and
sites reachable from UCL.

==== ercm09/emas-a/ftba.txt ====
FTP traffic to and from EMAS (ERCC 2976) & BUSH

Period: 01/12/86 08.00.10 - 07/12/86 17.24.42
  

                                  JNT mail        
           Host             Total     Total   Aver
                        files    Kbytes   Kb/file 

              ED.BUSH     427      1317         3 
              ED.EMAS     431      1389         3 
            ED.EMAS-A    1341      2709         2 


                 ABDN      15        24         2 
           ABDN.CSVAX       2         2         1 
           AFRC.AFRUS       2         2         1 
            AFRC.ARCC       2         4         2 
            AFRC.NVRS       5         6         1 
             AFRC.PRC       2         2         1 
             AFRC.RRI       8        20         3 

==== ercm09/emas-a/geac002.txt ====
aut/peterson
til/water
1
aut/thompson
1
aut/joshi
1
til/electronic
1
1
aut/williams
1
til/memoires
1
til/works of robert louis
1
aut/bbc
1
1
aut/booth

==== ercm09/emas-a/x25genpd_gecgrab.txt ====

!**********************************************************
!*                                                        *
!*       RCO ITP to GEC Network Management Module         *
!*                                                        *
!*                       Gecgrab                             *
!*                                                        *
!*           Version    9.3  11 Apr  1983                *
!*                                                        *
!**********************************************************

#options
!* Prep options
!*  b   -   output binary file, else packed hex+compression
!*
!*
%control 1 ;!No record checking.
!*
#if ~i
%include "deimosperm"
#else

==== ercm09/emas-a/janet.txt ====
      Sorted list of JANET addresses as of 30 Apr 1987
 
Address range                           Host/CPSE
 
000000000001/000000099999               RAL 4190 CPSE
000000000002                            RAL Amdahl
000000000005                            GWGA
000000000025                            WKPA
000000000026                            SYPE
000000000033                            RLVS
000000000036                            XXVA
000000000040                            RAL PSS Gateway
000000000048                            ZIVA
000000002201                            XXDA
000000002251                            Bath PAD
000000002304                            SNGA
000000002306                            Cranfield
000000002309                            PHGA
000000002400                            Exeter
000000002507                            XXDB
000000002600                            RGO PAD

==== ercm09/emas-a/ftbb.txt ====
FTP traffic to and from EMAS (ERCC 2976) & BUSH

Period: 01/12/86 08.0
  

                           All other transfers    
           Host      e    Total     Total   Average             Host
                      files    Kbytes   Kb/file  1

              ED.BUSH   247     23189        94   ED.BUSH
              ED.EMAS   254     24431        96   ED.EMAS
            ED.EMAS-A   541     63484       116   ED.EMAS-A
            ED.FSTORE   393    223935       570   ED.FSTORE
            ED.FSTORE    18      1750        97   ED.FSTORE


                 ABDN                             ABDN
           ABDN.CSVAX   23      118          5    ABDN.CSVAX
           AFRC.AFRUS    23       118         5   AFRC.AFRUS
            AFRC.ARCC     4        70        18   AFRC.ARCC
            AFRC.NVRS                             AFRC.NVRS

==== ercm09/emas-a/b_moth.txt ====
dimp11 newsys_moth77,moth77#rel
link11 /moth77
moth77
.stack 300
.streams 0
.codeseg 2
.stackseg 6
.end
moth77
c moth77#abs,newsys_moth77y

==== ercm09/emas-a/nodes887.txt ====
{{circle(15,15,2);inlabel(.2,"KB CPSE@b")}}
{{inlabel(.14,"@b@b000015000000")}}
{{circle(15,4,2);inlabel(.2,"AT 1 CPSE@b")}}
{{inlabel(.14,"@b@b000016000000")}}
{{circle(3,15,2);inlabel(.2,"TelePAC 1@b")}}
{{inlabel(.14,"@b@b000015001000")}}
{{circle(8.9,12.5,2);inlabel(.2,"TelePAC 2")}}
{{inlabel(.14,"@b@b000015005000")}}
{{circle(3,4,2);inlabel(.2,"AT 2 CPSE@b")}}
{{inlabel(.14,"@b@b000016001000")}}
{{join(c1,c2);join(c1,c3);join(c1,c5)}}
{{join(c2,c3)}}
{{join(c3,c4)}}
{{box(1.5,24)(5.5,26);inlabel(.2,"EMAS-A")}}
{{box(6.5,24)(10.5,26);inlabel(.2,"EMAS-B")}}
{{box(11.5,24)(15.5,26);inlabel(.2,"EMAS-C")}}
{{circle(2.5,23,.5)inlabel(.14,"Fe3")}}
{{circle(3.5,23,.5)inlabel(.14,"Fe1")}}
{{circle(4.5,23,.5)inlabel(.14,"Fe2")}}
{{circle(7.5,23,.5)inlabel(.14,"Fe2")}}
{{circle(8.5,23,.5)inlabel(.14,"Fe3")}}

==== ercm09/emas-a/x25genpd_nlpx1y.txt ====
,NLPXpÃLpÀÿ@©¤E&MDÅeئ(@&f
DÅeó$àÂÉÉ–€s
¢ÿ÷
†€	
…„‡Â


ò2

ÒA`
ÃݘŸÃŠ€
C\ÚÀðÀeþÿP”P”P”P”P”P”P”P”ƒ
3
3
3
óz…„‡F/RÈ@&fUDÅeÀ,ß	°Füÿ	ÀÁß	¼GÁäÀß	¨JÀþÿß	¼GÁèÀß	¨J…„‡žnÒA&
DÅe
ó$àÂ@ÁðÀß	¨J„‡Àe4’ÀEÿÀe0ß	°FÀ.ß	°Fôÿÿ´
Â`´œ4Š- ß	°F-èÀ(ß	°F
ÂÜ¡‚‚€Àe0ß	°FÂœÂEøÿ€Àe0ß	°FÀ)ß	°F„‡ší>àA&f
DÅeó•óžó•3ÀÀeß	ðJ…„‡vNB&fÎå
DÅeó•óä3úÿ3üÿ3þÿó•	ÀÀeß	ðJ…„‡––Àvsn001cVLP000IdleRunningEnabledAbortedRunningk + chars.null
…øÀxB…Á
LP: Starting ­Á2CÁ`B&
DÅe
ÂÜ‚`zöÀÀß	àA×-˜}JÁÁß	¨J÷ˆ}7Š…}Õ


==== ercm09/emas-a/b_infoamdn.txt ====
prep x25.infons,infons#imp,x,e,m,a,b,i,clean
dimp11 infons#imp
dlink11
infons#rel
.stack 2000
.stackseg 6
.name info
.end
infoxcy
destroy infoamdy
rename infoxcy#abs,infoamdy
alist11 infons#imp,infons#rel/.lp23

==== ercm09/emas-a/nrsdos.txt ====
%EXTERNALROUTINE nrs %alias "c#nrs"(%STRING (255) s)
   %ROUTINE define(%STRING (255) s)
      %EXTERNALROUTINESPEC emas3(%STRINGNAME command,params, %INTEGERNAME flag)
      %INTEGER flag
      emas3("DEFINE",s,flag)
   %END;                                 ! Of %ROUTINE define.
   %STRING (255) t,u,v
   %INTEGER i,j,k
   %OWNINTEGER state= 0, lines = 0
   %OWNINTEGERARRAY field(0:4)= 34, 18, 20, 5, 5
   %OWNINTEGERARRAY spc(0:2)= 34, 52, 72

   %OWNBYTEINTEGERARRAY first(0:4)= 'S', 'A', 'D', 'Y', 'A'
   %OWNSTRING (25) %ARRAY names(0:4)= %C
 "Standard name",
 "Abbreviated name",
 "DTE string",
 "YBTS string",
 "Application relay"
   %ON 9 %START
      %STOP

==== ercm09/emas-a/x25genpd_lmtots.txt ====
!**********************
!* lmtots/lmtsxy   *
!* date: 20.may.81   *
!*********************
%conststring (13) vsn = "lmts...1d "

! Prep options:-    t   -  itp over transport service
!                   x   -  xxx over transport service (ie TS29)
!                   b   -  Big buffer vsn

#datestring

!! stack = 300, streams = 1

%control x'4001'


%recordformat xf(%byteinteger unit,fsys,%byteintegerarray fname(0:5))
%include "b_deimosspecs"
%begin


==== ercm09/emas-a/b_xxxa.txt ====
prep x25_xxx3as,xxx3s#imp,s,clean,b,a
imp11 xxx3s#imp/xxx3s#rel,l
link11
xxx3s#rel
i77perm
.stack 1400
.streams 1
.name xxx
.end
xxx3y
alist11 xxx3s#imp,xxx3s#rel/.lp23

==== ercm09/emas-a/b_xxxb.txt ====
prep x25_xxx3s,xxx3s#imp,s,clean,b
imp11 xxx3s#imp/xxx3s#rel,l
link11
xxx3s#rel
i77perm
.stack 1400
.streams 1
.name xxx
.end
xxx3y
alist11 xxx3s#imp,xxx3s#rel/.lp23

==== ercm09/emas-a/b_zom.txt ====
imp11 zomb82/,ll
link11
zomb82#rel
i77perm
.stack 5000
.streams 0
.end
zomb82y
list zomb82y,.BPP155

==== ercm09/emas-a/padnam.txt ====
000016000018 AFBPAD1
000016001017 AFBPAD2
000016001008 AFBPAD3
000016000328 AIPAD 
000015004004 APDPAD
000016001005 APLSPAD
000016000030 ATBPAD1
000016000113 ATBPAD2
000016000114 ATBPAD3
000016001009 ATBPAD4
000016000041 BIOPAD
000016002008 BIOPAD2
000015004006 BSHPAD
000016000020 BUSPAD
000016001016 CAAPAD
000016001012 CESPAD1
000015000014 CHEMPAD1
000015000225 CHEMPAD2
000015001019 CSCPAD
000016000010X CS.PAD1
000016000011X CS.PAD2

==== ercm09/emas-a/b_lmacx2s.txt ====
prep x25gen.lmacxs,lmacxs#imp,b,clean
dimp11 lmacxs
dlink11 /map
lmacxs
.streams 1
.stack 1000
.end
lmacx2s
destroy lmacx2y
rename lmacx2s#abs,lmacx2y

==== ercm09/emas-a/emasft.txt ====
EMAS-B SPE  TEST
FTPX /.N
00001500103005.ISO.3882611000015099001001001003
*.EDINBURGH
END

==== ercm09/emas-a/b_fix.txt ====
==== ercm09/emas-a/b_loads.txt ====
imp11 loads
link11
loads#rel
i77perm
.stack 1000
.streams 1
.name lodf
.end
loady
list loady,.bpp155

==== ercm09/emas-a/b_ftpold.txt ====
imp11 ftp1es
link11
ftp1es#rel
i77perm
.stack 1000
.streams 1
.name ftps
.end
ftp1ey
list ftp1ey,.fep72
alist11 ftp1es/.lp23

==== ercm09/emas-a/setkeyspas.txt ====
program setkeys(input/output);

{set up ibm fn keys for ssmp use}

Var i,j,k: integer;
    c1, c2, c3, c4: byte;

Begin

c1 := 5; c2 := 9; k := 48; c3 := 4; c4 := 9;
for i := 1 to 10 do begin
   if i = 10 then begin c3 := 4; c4 := 8 end;
   writeln(chr(27),
        '[0;', chr(c1+k), chr(c2+k), ';27;',chr(c3+k),chr(c4+k),'p');
   c2 := c2+1;
   if c2 = 10 then begin
     c2 := 0; c1 := c1+1;
   end;
   c4 := c4+1;
   if c4 = 10 then begin
      c4 := 0; c3 := c3+1;

==== ercm09/emas-a/pssel.txt ====


PSSE/Command:call qzdb

Connected



Connecting to host system.
Oden/QZ Stockholm 7.02 13:06:14 TTY17, line MUNIN_112, system 1215/1346
Please LOGIN

.login 67,6216,vague

JOB 54 Oden/QZ Stockholm 7.02 TTY17
Means left: -114360 SEK   Used current month: 1246 SEK
Friday 87-03-13  13:06       Last login 87-03-13  12:59

.r com



==== ercm09/emas-a/b_zomnew.txt ====
dimp11 zomb82
link11 /zomb82
zomb82
ercm11.emts
ercm11.newimp
.stack 5000
.streams 0
.end
zomb82

==== ercm09/emas-a/edinburgh.txt ====
0637
Registering Institution:
    Name prefix:             UK.AC.
    Standard name:           EDINBURGH
    Abbreviated name:        ED
Entity Information:
    Standard entity name:    EDINBURGH
    Abbreviated entity name: ED
    Description:             E.R.C.C. Distributed mail directory
Use:
    Protocol Context:        MAIL-NIFTP
    Direction:               FORWARD
    Sub-network:             JANET
    DTE number:              000015000001
    YBTS address:            FTP.MAIL
Use:
    Protocol Context:        MAIL-NIFTP
    Direction:               FORWARD
    Sub-network:             PSS
    DTE number:              234231354354
    YBTS address:            (DEMO,DEMO).EMAS.FTP.MAIL

==== ercm09/emas-a/fecounts.txt ====
%CONSTSTRING (13) vsn="26 JUL 83   1"

!!SPEC WARNING: DPROCEDURE changed to DPROCS - change calls.
%EXTERNALINTEGERFUNCTIONSPEC dprocs(%INTEGERNAME n, %INTEGER adr)

!     %INCLUDE "ercc04.pd21s_c03formats"
%CONSTINTEGER MAXTCPNAME= 15    {TCP-name length}
%RECORDFORMAT PROCDATF(%STRING (6) USER, %STRING (MAXTCPNAME) TCPNAME,
   %BYTEINTEGER LOGKEY, %BYTEINTEGER INVOC,PROTOCOL,NODENO,FSYS,
   %INTEGER LOGSNO, %BYTEINTEGER SITE,REASON,CONSOLE1,CONSOLE2, %INTEGER ID,
   PROCESS,PREV WARN,SESSEND, %BYTEINTEGER GETMODE,PREEMPT,BLNK,LINK)
!
%RECORDFORMAT TMODEF(%HALFINTEGER FLAGS1,FLAGS2,
   {.04} %BYTEINTEGER PROMPTCHAR,ENDCHAR,
   {.06} %BYTEARRAY BREAKBIT1(0:3) {%or %halfintegerarray BREAKBIT2(0:1))},
   {.0A} %BYTEINTEGER PADS,RPTBUF,LINELIMIT,PAGELENG,
   {.0E} %BYTEINTEGERARRAY TABVEC(0:7), {.16} %BYTEINTEGER CR,ESC,DEL,CAN,
   SP1,SP2,SP3,SP4,SP5,SP6)
{length of this format is X20 bytes}

%RECORDFORMAT UINFF(%STRING (6) USER, %STRING (31) JOBDOCFILE,

==== ercm09/emas-a/xx25_ftp4as.txt ====
%conststring (13) vsn = "ftps....4a "
#datestring
#timestring

!********************************
!*  emas-2900  fep  ftp server  *
!*   file: ftp4as/ftp4ay     *
!*                              *
!********************************


#options
! prep versions are:-
!
!   m = Full Monitoring
!   c = Clock monitoring (needs a real time clock)
!  i = new imp compiler
!

%control 1
%include "deimosperm"

==== ercm09/emas-a/newimp11.txt ====
!IMP driver

%EXTERNALROUTINESPEC concf(%STRING (255) s)
%ROUTINE cross reference
   printstring("Cross reference not available")
   newline
%END {cross reference}


%OWNINTEGER cross=0

%OWNSTRING (25) pass1= "ercm09:pass1y",
               pass2       = "ercm09:ass11y",
               pass3       = "ercm09:Gen11Y",
               prim file = "ERCm09:PRIMS"

%EXTERNALROUTINE nIMP11 %alias "C#NIMP11"

   %EXTERNALROUTINESPEC EMAS3STRING(%STRINGNAME vector, value)
   %EXTERNALINTEGERFUNCTIONSPEC exist %ALIAS "S#EXIST"(%STRING (255) file)
   %ROUTINE destroy(%STRING (255) s)

==== ercm09/emas-a/xx25_infopxy.txt ====
,INFPÐÊÐ	Ð
ÃÝÖœÃe±ÿ÷Ö|7ŠÊœà7È|7Æ|7ŠÃ|ü|-ÁiÆß	IÀÁ¬|ß	 FÁxÆß	IÀ
ñ CÝß	 FÁƒÆß	IÀ
Ý	ß	 FÁŽÆß	IÀ
Ýß	 Fß	tF×-^|FÀÁN|ß	ø@Â~Àß	¼IÃÆ|×tÁÁe°Àß	IÀß	LFÀ
Ýß	 FÃ|ôœ
4Šôœ4Š
À
ß	 FÀß	 F×-ê{ß	tFBÀØ{ß	(@÷Ô{w¼þ×-Ê{=þ{ÁÁeÂ~Àß	¼I×­ô{ƒ÷­í{ê{†Àß	LFÁ@„ DÀß	IÀ
ÁÝ×{ß	 Fß	tFÕ

ß	ÔA×-r{	Àf{ß	(@÷b{wJþÀT{ß	\@7
R{w:þ×-H{ÃB{ñwàþî×-4{×Ã({wþÀß	(@w
þ–:(@&fDÅeô•ôÚŸô•4Àeß	`I…„‡nƒ¢\@&f
DÅe0Š·
L€óF€	×-@€Zß	(@3ŠÀÀeß	pI
@ß	°HÀ×tÂeÁÁe°Àß	¼IÁ˜Æß	8Iß	dAþÿÁÀß	dAþÿÁÀß	dAÕþÿ
ß	ÔA…„‡>¤rø@&fUDÅeÁ&ñ‹#ƒÀ!4
-þÿüÿÂ`
Üm
tô
þÿìüÿÂ`Áe…„‡ÁÀ…„‡ÞšfdA&fÎåDÅeFÂeß	¼IþÿÂ

==== ercm09/emas-a/dexaddr.txt ====

(Message 544)
Subject:  Dexpand-QE etc
From:     P.Kirkby @ uk.ac.edinburgh
Date:     08 Mar 88  16:33:20 gmt
To:       B.Gilmore @ uk.ac.edinburgh
Msg ID:   <08 Mar 88  16:33:20 gmt  330170@EMAS-C>

Brian,
    You asked for details pink book addresses for the Dexpand-QE in EMAS-B.FE3
Will the following suffice ?

    MAC address 080039004000
    LSAP        7E
    NSAP        38826110000150990010010010??

Format of addresses for use within EMAS is

    FEP3.ISO.{<dest lsap>:<srce lsap>:<dest macad>}.<dest nsap>

Does that make sense? (The dots, colons and curly brackets are real)

==== ercm09/emas-a/ednet0187.txt ====
{{circle(26,11.5,.5)}}
{{INLABEL(.14,"Fe3")}}
{{circle(9.5,15,1.5);inlabel(.2,"TelePAC@b15003000")}}
{{join(c1,c2)}}
{{circle(8,11,1.3);inlabel(.175,"TelePAC 3@b15004000")}}
{{circle(13,21.7,2);inlabel(.3,"KB-CPSE@bGEC 4190@b")}}
{{inlabel(.14,"@B@B@b@b000015000000")}}
{{circle(13,4,2);inlabel(.3,"AT-CPSE@bGEC 4190@b")}}
{{inlabel(.14,"@B@B@b@b000016000000")}}
{{CIRCLE(8.5,18,1.25);inlabel(.175,"TelePAC 2@b15005000")}}
{{CIRCLE(26,10.5,0.5);inlabel(.14,"Fe1")}}
{{CIRCLE(26,9.5,0.5);inlabel(.14,"Fe2")}}
{{CIRCLE(26,3.8,0.5);inlabel(.14,"Fe2")}}
{{CIRCLE(32.5,21.7,1.5);INLABEL(.14,"JANET@bPSE")}}
{{CIRCLE(26,7.3,.5);inlabel(.14,"Fe2")}}
{{circle(12.75,24.8,.1);fill(c12)}}
{{circle(14.75,24.8,.1);fill(c13)}}
{{circle(16.75,24.8,.1);fill(c14)}}
{{circle(20.75,25.2,0)}}
{{circle(6.75,25.2,0)}}
{{CIRCLE(6.75,1.4,0)}}

==== ercm09/emas-a/ednet0188.txt ====
{{circle(26,11.5,.5)}}
{{INLABEL(.14,"Fe1")}}
{{circle(9.5,16.5,1.5);inlabel(.2,"TelePAC@b15001000")}}
{{circle(8,13,1.3);inlabel(.175,"TelePAC 3@b15004000")}}
{{circle(13,22.4,2);inlabel(.3,"KB-CPSE@bGEC 4190@b")}}
{{inlabel(.14,"@B@B@b@b000015000000")}}
{{join(c4,c1)}}
{{circle(13,4,2);inlabel(.3,"AT-CPSE@bGEC 4190@b")}}
{{inlabel(.14,"@B@B@b@b000016000000")}}
{{CIRCLE(8.5,20,1.25);inlabel(.175,"TelePAC 2@b15005000")}}
{{CIRCLE(26,10.5,0.5);inlabel(.14,"Fe2")}}
{{CIRCLE(26,9.5,0.5);inlabel(.14,"Fe3")}}
{{CIRCLE(26,3.8,0.5);inlabel(.14,"Fe2")}}
{{CIRCLE(32.5,21.7,1.5);INLABEL(.14,"JANET@bPSE")}}
{{CIRCLE(26,7.3,.5);inlabel(.14,"Fe3")}}
{{circle(12.75,24.8,.1);fill(c12)}}
{{circle(14.75,24.8,.1);fill(c13)}}
{{circle(16.75,24.8,.1);fill(c14)}}
{{circle(20.75,25.2,0)}}
{{circle(6.75,25.2,0)}}
{{CIRCLE(6.75,1.4,0)}}

==== ercm09/emas-a/b_sup.txt ====
link11 /sup
newsys_dvn87y
supnew#rel
sinnew#rel
gen_pushopsrel
.fixup b_fix
.stack 0
.alone 0 77777
.squeeze
.entry ep
.end
supnew
c supnew#abs,newsys_supnewy

==== ercm09/emas-a/b_loadup.txt ====
imp11 loadups
link11
loadups#rel
i77perm
.stack 10000
.streams 0
.name ldup
.end
loadupy

==== ercm09/emas-a/b_padgrabs.txt ====
prep x25gen.padgrbs,padgrbs#imp,clean,x
dimp11 padgrbs#imp
dlink11 /map
padgrbs#rel
.stack 3000
.streams 2
.stackseg 6
.name padg
.end
padgrby
destroy dobj.padgrby
rename padgrby#abs,dobj.padgrby

==== ercm09/emas-a/xx25_xxx2s.txt ====
!********************************
!*  emas-2900  fep  xxx server  *
!*   file: x25_xxx2s/xxx2y         *
!********************************
!! stack size = 500
!*
#options

#if i
%control x'4001'
%include "b_deimosspecs"
#else
%control 1
%include "b_deimosperm"
#fi

%begin

      %conststring (13)vsn = "xxx...2k "
      #datestring
      %recordformat am1f(%integer rxs, rxd, txs, txd)

==== ercm09/emas-a/b_lmss.txt ====
e gen_lmtims/temp
f/prompt("n/k2g
node = 80; term = 80
m-0
f/if tim>600/g5
%if tim>600 %start
      printstring("Greater than 12 secs
")
      int = 'A'
%finish
%c
imp11 temp
link11
temp#rel
i77perm
.stack 2000
.streams 1
.name lmss
.end
lmssy

==== ercm09/emas-a/ratesl.txt ====
emas-a   29 Mar 88
emas-b   29 Mar 88
emas-c   29 Mar 88


ABDN........... emas-a   76 kb @ 67  b/s  ;  P Cons: 34
ABDN........... emas-b 4770 kb @ 141 b/s  ;  P Cons: 220 Polls: 117 Mean:  0.5
ABDN........... emas-c   16 kb @ 111 b/s  ;  P Cons: 21 Polls: 30 Mean:  1.4
ABDN.BIOMED.... emas-a    4 kb @ 951 b/s  ;  P Cons: 3
ABDN.BIOMED.... emas-b    3 kb @ 471 b/s  ;  P Cons: 2
ABDN.BIOMED.... emas-c    3 kb @ 544 b/s  ;  P Cons: 3
ABDN.CSVAX..... emas-a    2 kb @ 196 b/s   ;   No response
ABDN.CSVAX..... emas-b 3940 kb @ 159 b/s  ;  P Cons: 3
ABDN.CSVAX..... emas-c    2 kb @ 898 b/s  ;  P Cons: 3 Polls: 2 Mean:  0.7
ABDN.TEST...... emas-b   23 kb @ 719 b/s  ;  P Cons: 1 Polls: 125 Mean:  125.0
ABER........... emas-b  106 kb @ 540 b/s  ;  P Cons: 24 Polls: 75 Mean:  3.1
ABER.CS........ emas-c    3 kb @ 259 b/s  ;  P Cons: 1 Polls: 5 Mean:  5.0
AFRC.ABRO...... emas-a  134 kb @ 345 b/s  ;  P Cons: 14 Polls: 42 Mean:  3.0
AFRC.ABRO...... emas-b  732 kb @ 358 b/s  ;  P Cons: 17 Polls: 47 Mean:  2.8
AFRC.AGRI...... emas-b    3 kb @ 653 b/s  ;  P Cons: 4
AFRC.ARCC...... emas-a  423 kb @ 416 b/s  ;  P Cons: 12

==== ercm09/emas-a/xx25_xxx2y.txt ====
ô


Wp&@ÀeœÄÁ4Àß	\l
Wp&1
 Ä-
è4
4

´


WpÁe@ÀwvY1
-
ï÷PÄlYÃhYóþÿ÷vÄ^YÂZYòÿÿÁÀß	°kÁÀß	°kß	i
ß	TlÕÕÕß	@lt
ÕÕÕß	@lt
7
àô
Áß	|Aô	

==== ercm09/emas-a/xx25_rjesx2.txt ====
!********************************
!*  emas-2900  fep  rje server  *
!*   file: rjesx2/rjesx2y       *
!* x25 only version
!********************************
!! stack size = 300

%control 1
%include "deimosperm"

%conststring(13) vsn = "Rjes...v2t "
#datestring
#timestring
%begin

      %recordformat am1f(%integer rxs, rxd, txs, txd)

      %ownrecord (am1f) %name l == 1;    ! supplied by am1 handler


      %recordformat ssmessagef(%bytearray a(0:240) %or %c

==== ercm09/emas-a/pcw2asc.txt ====
Ackermann Function

            Lang        3,5   3,6   3,7    ratg
-----------------------------------------------
Ardent        C         .05   .17   .74    1118
-----------------------------------------------
EMAS-NAS      I               .21   .94     905
              P               .34   1.5     559
-----------------------------------------------
Convex C210   C        .05    .24   1.04    792
-----------------------------------------------
EMAS Amd V8   I        .110  .425   1.7     447
              C        .116  .473
              P        .14   .611   2.8
-----------------------------------------------
PN9080        C        .17   .64            299
              P        .21   .87     x      218
-----------------------------------------------
NP1           P        .19   .84    3.5     226
-----------------------------------------------
Sequent       C        .22   .90    3.64    211

==== ercm09/emas-a/b_exters.txt ====
%externalstring (255) %map cli param
      %constintegername cli addr = k'160000'

      %result == string(cli addr)
%end
%endoffile

==== ercm09/emas-a/xx25_xxx3s.txt ====
!********************************
!*  emas-2900  fep  itp server  *
!*   file: x25_xxx3s/xxx3y         *
!********************************
!! stack size = 500
!*
#options
!   b     =    Big Buffer Manager
!   a     =    Amdahl FEP

#if i
%control x'4001'
%include "b_deimosspecs"
#else
%control 1
%include "deimosperm"
#fi

%begin

      %conststring (13)vsn = "xxx...3a "

==== ercm09/emas-a/b_buff.txt ====
imp11 x25_buff5s/buff5s#rel
link11
buff5s
i77perm
.stack 1000
.streams 0
.name buff
.end
buff5y
transfer buff5y,emas-a(,)BUFF5q(25),ma,no
alist11 x25_buff5s,buff5s#rel/.lp23

==== ercm09/emas-a/b_gatexfb.txt ====
EDIT x25.gatexs,t#b
A/198/A1STM/Versi/F<X>K(M/GATX Running/M0R/Running/I<X>i/ (Min,Large,2 lines)/p1)2
E
prep t#b,gatex#imp,f,m,h,a,clean,b
dIMP11 gatex#imp/gatex#rel,gatex#lst
dLINK11
gatex#rel
.name gatx
.STACK 5000
.STREAMS 0
.stackseg 6
.END
gatex
destroy dobj.bacbg
rename gatex#abs,dobj.bacbg

==== ercm09/emas-a/prims.txt ====
%constinteger NL=10
%prim( 1)%routinespec Readsymbol(%name N)
%prim( 2)%routinespec Readch(%name N)
%prim( 3)%string(*)%mapspec String(%integer A)
%prim( 4)%integermapspec Integer(%integer A)
%prim( 4)%integermapspec Shortinteger(%integer A)
%prim( 4)%integermapspec Short(%integer A)
%prim( 5)%bytemapspec Byteinteger(%integer A)
%prim( 5)%bytemapspec Byte(%integer A)
%prim( 6)%realmapspec Real(%integer A)
%prim( 7)%longrealmapspec Longreal(%integer A)
%prim( 8)%record(*)%mapspec Record(%integer A)
%prim( 9)%integerfnspec Rem(%integer A, B)
%prim(10)%longrealfnspec Float(%longreal R)
%prim(11)%bytemapspec Length(%string(255) S)
%prim(12)%bytemapspec Charno(%string(*)%name S, %integer N)
%prim(13)%string(1)%fnspec Snl
%prim(14)%string(1)%fnspec Tostring(%integer N)
%prim(15)%integerfnspec Sizeof(%name N)
%prim(16)%integerfnspec Typeof(%name N)
%prim(17)%integerfnspec Intpt(%longreal R)

==== ercm09/emas-a/b_infopsse.txt ====
prep x25_infos,infos#imp,x,e,m,clean,g
imp11 infos#imp/,l
link11
infos#rel
i77perm
.stack 2000
.streams 1
.name info
.end
infoxgy
disconnect infoxgy
alist11 infos#imp/.lp23

==== ercm09/emas-a/x25genpd_pollpads.txt ====
! file 'pollpads'
!**********************
!* pollpads/lmeoty   *
!*                   *
!*********************
%conststring (13) vsn = "PollPad...1a "

! Prep options:-    m   -  more monitoring          

#datestring

!! stack = 300, streams = 1

%externalstring (255) %fnspec cli param

%control 1


%recordformat xf(%byteinteger unit,fsys,%byteintegerarray fname(0:5))
%include "b_deimosspecs"
%begin

==== ercm09/emas-a/schelp.txt ====
Cursor:    ^n j next row          ^p k prev. row    ESC ^g erase cmd
           f l fwd col [4;43H     ^b h back col     ^l ^r redraw screen
           0 col A                $ last col        g goto
           ^ row 0                # last row

Cell:      " < > enter label      = enter value     x clear cell
           c copy cell            m mark cell       ^t line 1 on/off
           ^a type value          ^e type expr.     ^v type vbl name
Row, Col:  ar ac dup              ir ic insert      sr sc show
           dr dc delete           zr zc hide        pr pc pull
           vr vc value only       f format
Region:    /c copy                /x clear          /f fill
File:     G get database          M merge database  T write tbl fmt
          P put database          W write listing
Misc:     Q q quit [16;45H        pm pull (merge)
Expr:     +-*/^ arithmetic        ?e:e conditional   & | booleans
          < = > relations         <= >= relations      != relations
          @sum(v1:v2)             @avg(v1:v2)       @prod(v1:v2)
          @func(e) - lots of other math functions
    
    

==== ercm09/emas-a/xx25_gecsir.txt ====
@device(x2700)
@majorheading(List of CPSE Problems)
@verbatim[

Ref   Date   G-Ref Site            Description

=============================================================================
 8  1 Feb 84  F284 KB    CPSE crash caused by console out of paper
 9  1 Feb 84  F285 KB    Proc AC14 Call Instruction error at @@C654
10 27 Feb 84  F311 KB    Proc AC14 Call Instruction Error at @@C654
11  8 Mar 84       KB    Proc AC15 Call Instruction Error at @@C654
   24 Mar 84  **** AT    Power Supply Fault
    3 Apr 84  **** KB    Crash with no message (See F336)
    3 Apr 84  **** KB    Actually a Process AC20 call inst. error

==== ercm09/emas-a/inc_various.txt ====
! Various useful consts etc

%CONSTINTEGER TRUE                     =  1
%CONSTINTEGER FALSE                    =  0
%CONSTINTEGER CR                       = 13
%CONSTINTEGER LF                       = 10

! Buffer Manager Consts

%CONSTINTEGER LONG                     =  0
%CONSTINTEGER SHORT                    =  1
%CONSTINTEGER REQUEST BUFFER           =  0
%CONSTINTEGER RELEASE BUFFER           =  1

%CONSTINTEGERNAME NO OF BUFF           == K'100112'
%CONSTINTEGERARRAYNAME BMS             == K'100112'            ;! Buffer Manager Statistics

%ENDOFFILE

==== ercm09/emas-a/preppd_prepdoc.txt ====


                PREP Version 3.0
                ================

Description.

============
 
Prep is a pre-processor for imp11 programs which provides a conditional
compilation facility. The first parameter is the source file name, the second
parameter is the output file. If the output file is not specified 
<input file>#p is used. The remaining parameters (which must be single
characters) are taken to be booleans (all true) to control the generation of the
text. Booleans not in the parameter list are taken to be false. The conditional
generation is controlled by lines begining with # i.e.
 
#if <boolean exp>
#else
#fi
#datestring      this is changed to a conststring declaration
                 containing the date   %conststring(9) datestring='.....'

==== ercm09/emas-a/nodes987.txt ====
{{circle(15,15,2);inlabel(.2,"KB CPSE@b")}}
{{inlabel(.14,"@b@b000015000000")}}
{{circle(15,4,2);inlabel(.2,"AT 1 CPSE@b")}}
{{inlabel(.14,"@b@b000016000000")}}
{{circle(3,15,2);inlabel(.2,"TelePAC 1@b")}}
{{inlabel(.14,"@b@b000015001000")}}
{{circle(8.9,12.5,2);inlabel(.2,"TelePAC 2")}}
{{inlabel(.14,"@b@b000015005000")}}
{{circle(3,4,2);inlabel(.2,"TelePAC 4@b")}}
{{inlabel(.14,"@b@b000016002000")}}
{{join(c1,c2);join(c1,c3);join(c1,c5)}}
{{join(c2,c3)}}
{{join(c3,c4)}}
{{box(1.5,24)(5.5,26);inlabel(.2,"EMAS-A")}}
{{box(6.5,24)(10.5,26);inlabel(.2,"EMAS-B")}}
{{box(11.5,24)(15.5,26);inlabel(.2,"EMAS-C")}}
{{circle(2.5,23,.5)inlabel(.14,"Fe3")}}
{{circle(3.5,23,.5)inlabel(.14,"Fe1")}}
{{circle(4.5,23,.5)inlabel(.14,"Fe2")}}
{{circle(7.5,23,.5)inlabel(.14,"Fe2")}}
{{circle(8.5,23,.5)inlabel(.14,"Fe3")}}

==== ercm09/emas-a/xx25_xpr1by.txt ====
,XPR1ÈÇÐÈÀÿ@©¨\ÀÁÂȇ M¸\&ˆ€PPȇ0H”\BA@
ˆ‡¾:P\@BAAAAAÁEøÿˆŠÁe@BcÂEà ‡
‡huŒ\ˆ‡Í@\ˆ‡.H\
ˆ‡!„\ˆ‡ã \ˆ‡Ä4\ÀÁàI_ÀPSSE TOLKIEN????SERCPSS RCO ?SPRúÿùÿùÁ'èT&MDÅeÕÕÕß	”\÷úÀ"m÷Ám÷•´‹7Š¦kÀ¾Àß	¸\÷œk~kÁŽÂß	ì[
ÁÝpkWpÁe#Àß	ì[Á•Âß	ì[ÃukÃEøÿ÷Qk
ÂÝgk—tùÿÂEþ·Ôj÷Xkjk
ÁÝRkÁUÿw2k
ÀÝEkÀUÿ7"k÷‹k‡×­kƒÀ@ß	dP÷‹k‡×­ýjƒÀAß	dPÂjÃ`÷ºÀÆjß	ÌNÀß	¨TÀß	@\ß	ŒB7ŠâjÀ¾Àß	¸\×½ÖjÄèU€ÃºjÃEÿ
ÂÝÄj ÷ÂjÀÆÀß	|R7
Œj7
Xjß	ŒBßß	0Q7
Hjß	ÜEØ÷‹“jXß	ôJ÷‹ú‰Ð×­ô‰SÀß	(@F×­â‰AÀß	(@=׭Љ?ß	MÀ
ß	M1÷¥0¶‰‚×­°‰9‚
Ãݦ‰ÃeÐÿ÷&j!×­˜‰NÀß	(\ß	4\×­‚‰QÃÃíöi÷òi×­l‰WˆÃÃíâi÷Þi 7ŠV‰wúþ×­ÞiM·
™èVÄiÀÔiß	hAwÚiÉ%W"ÿÀß	dPÃÂió‰Âni,Á|iA`A`ÁeÁwìiÉ”i3ŠÀÀe1ÂXi‚
ÂEÀÿ·jiÂ-Bi	À1
ß	MÀß	(@÷Ni0iß	ŒBwfþÀß	B7
FiwXþ×­<i-Ãúh÷•0i÷i+i÷ ii7Ši÷ii÷øhiÃi÷iÕ0Õ<ÀÍÕ`ß	øPÃió0À¾Àß	¨\wöýÀ;Á£èW¾Àß	Mwæý‹(@&f
DÅeÃL€~Àß	 \þÿ÷@€Ã:€!
ÁÝJ€WpÁe#Àß	ì[Á¼Âß	ì[À×tÁÁe.Âß	ì[ß	TYÀ
ß	MÀß	¨T×-€÷èT7
â4
÷-àæ"ÃØÃ`Ã`ÃeÁ÷P€Àß	BÃF€

==== ercm09/emas-a/opermunge.txt ====
e journl:mlog,mlog
(l0f.DT:.r3^r9^m(f.DT:.rf1@k)*)*
m-0(t0/EOT/e0ju0/itaddr/e6)*
m-0(t0/CLR/e0ju0/itaddr/e6)*
m-0(f/ercc96/k)*
%c

==== ercm10/imp11source_preps.txt ====
!#if  ~(d!e)(=false)
{  #report One of d or e must be set}
!#fi
!#if  (d&e)(=false)
{  #report Only one of d or e may be set}
!#fi
!#if  x(=false)
{#report Debugging code added}
!#fi
!#if  d(=false)
{!DEIMOS declerations}
{%systemroutinespec exit(%integer fault)}
{%externalstring(255)%mapspec cli param}
{%conststring(8) date="00/00/00"}
{%conststring(8) time="00:00:00"}
!#fi
!#if  e(=true)
!#else(=false)
{  #report Preparing DEIMOS version of PREP}
!#fi
!#if  e(=true)

==== ercm10/imp11source_ass11.txt ====
!#if  e(=true)
!#else(=false)
{#report ASS11 - DEIMOS version}
!#fi
            {############################################}
            {#     PDP11 I-code Assembler for IMP77     #}
            {#                                          #}
            {#         Copyright November 1981          #}
            {#            Peter S. Robertson            #}
            {#           All rights reserved            #}
            {#                                          #}
            {############################################}

%Constinteger McOps = 118
%constinteger        Absf =  1,       Adc =  2,      Adcb =  3,       Add =  4,
                     Addf =  5,       Ash =  6,      Ashc =  7,       Asl =  8,
                     Aslb =  9,       Asr = 10,      Asrb = 11,       Bcc = 12,
                      Bcs = 13,       Beq = 14,       Bge = 15,       Bgt = 16,
                      Bhi = 17,      Bhis = 18,       Bic = 19,      Bicb = 20,
                      Bis = 21,      Bisb = 22,       Bit = 23,      Bitb = 24,
                      Ble = 25,       Blo = 26,      Blos = 27,       Blt = 28,

==== ercm10/imp11source_pass1s.txt ====
{###################################################}
{#       Portable IMP77 compiler First Pass        #}
{#           Copyright: 1 January 1981             #}
{#    Interactive Datasystems (Edinburgh) Ltd.     #}
{#             32 Upper Gilmore Place              #}
{#               Edinburgh EH3 9NJ                 #}
{#              All Rights Reserved                #}
{###################################################}

%BEGIN
   %EXTERNALINTEGERSPEC IMPFLAG
   %ROUTINE define(%STRING (255) s)
      %EXTERNALROUTINESPEC emas3(%STRINGNAME command,params, %INTEGERNAME flag)
      %INTEGER flag
      emas3("DEFINE",s,flag)
   %END;                                 ! Of %ROUTINE define.
   %CONSTSTRING (4) version= "8.7"

                                         !configuration parameters

   %CONSTINTEGER minus 1= 16_ffff

==== ercm10/imp11manual.html ====
<HTML><HEAD></HEAD><BODY><PRE>


                           <B>IMP11 User's Guide</B>

                                <B>Contents</B>


           1.    Introduction

           2.    <A HREF="#imp11">IMP11</A>    (Source code: <A HREF="imp11source_pass1s.txt">Pass 1</A>, <A HREF="imp11source_ass11.txt">Pass 2</A>, <A HREF="imp11source_gen11s.txt">Pass 3</A>)</A>

           3.    <A HREF="#link11">LINK11</A>   <A HREF="http://history.dcs.ed.ac.uk/archive/os/emas/users/ercm11/emas-2900/imp11s_link11.txt">(Source code)</A>

           4.    <A HREF="#code11">CODE11</A>   <A HREF="http://history.dcs.ed.ac.uk/archive/os/emas/users/ercm11/emas-2900/imp119s/code11.txt">(Source code)</A>

           5.    <A HREF="#dump11">DUMP11</A>   <A HREF="http://history.dcs.ed.ac.uk/archive/os/emas/users/ercm11/emas-2900/u11_dump11.txt">(Source code)</A>

           6.    <A HREF="#con11">CON11</A>    <A HREF="http://history.dcs.ed.ac.uk/archive/os/emas/users/ercm11/emas-2900/u11_con11.txt">(Source code)</A>

           7.    <A HREF="#conventions">Code conventions</A>

==== ercm10/emas-2900/z.txt ====
==== ercm10/emas-2900/x25addr.txt ====
@device[x2700]
@style[topmargin=0.5in,leftmargin=0.5in,bottommargin=0.5in]
@majorheading(EDNET addresses 2nd May 1988)
@b[ Configuration of GEC 4190 KB#1 switch    System No. 669]
@verbatim[
Line No     Address     PSE Name   EDNET name              Comments
lau 01  TV  0000160010xx   LA01  TelePAC4     Connection to AT TelePAC
lau 02  IH  000015000002   LA02  emas-c-fe2   EMAS3, Machine C
lau 03  TV  0000150010xx   LA03  TELEPAC1     Link to TelePAC
lau 04   M  000015000004   LA04  Xcall        XXX <-> ITP Converter
lau 05  TM  ------------   LA05  JANET        Direct JANET Link
lau 06   M  000015000006   LA06  ECSVAX       Comp Sc Vax
lau 07   M  000015005xxx   LA07  TELEPAC2     Connection to KB TelePAC #2
lau 08   H  000015000043   LA08  emas-a-fe1   for emas-a-fe1.a (15-43)
lau 09      ------------   LA09  spare        Not Usable
lau 10   H  000015000010   LA10  emas-b-fe1   ERCC EMAS3, Amdahl V8
lau 11      ------------   LA11  spare        Not Usable
lau 12      000015000012   LA12 *spare        spare
lau 13      000015000013   LA13  KBPAD13
lau 14      000015000014   LA14 *CHEMPAD2     Undaisychained chem pad # 2
lau 15      000015000015   LA15  SCIPAD1      SCRI PAD              (T33)

==== ercm10/emas-2900/opermunge.txt ====
e journl:mlog,mlog
(l0f.DT:.r3^r9^m(f.DT:.rf1@k)*)*
m-0(t0/EOT/e0ju0/itaddr/e6)*
m-0(t0/CLR/e0ju0/itaddr/e6)*
m-0(f/ercc96/k)*
m-0(f.0/.k)*
%c



==== ercm10/keithsimp_dec6imp11s.txt ====
! DATED 02 MAY 78   2
%ROUTINESPEC SETS(%INTEGER STREAM)
%ROUTINE DUMP BIN(%HALFINTEGERARRAYNAME CODE, %C
%INTEGER START,FINISH,%STRINGNAME T,%INTEGERNAME FLAG)
      PRINTSTRING("ROUTINE DUMPBIN CALLED ??
")
      %END; ! DUMPBIN
%OWNBYTEINTEGERARRAY BIN(-2:30000)
%OWNINTEGERARRAY T(0:300)
%OWNINTEGER CA,BLKENT,BRFAULT
%OWNINTEGERARRAY BAT(0:6000)
%RECORDFORMAT REL ADDRS(%INTEGER RADDR,LINK)
%OWNRECORDARRAY REL(1:10)(RELADDRS)
%OWNINTEGER MAIN=0
%OWNINTEGER SYSSTK=0
%OWNINTEGER ENDCO1=0
%OWNINTEGER ENDCO=0
%OWNINTEGER CT0=0
%OWNINTEGER LASTRELADDR=0
%OWNINTEGER LASTCAREL=0
%ROUTINE DBIN(%INTEGER OP,M1,NEM1,NUM1,M2,NEM2,NUM2)

==== ercm10/emas-a/z.txt ====
==== ercm10/emas-a/x25addr.txt ====
@device[x2700]
@style[topmargin=0.5in,leftmargin=0.5in,bottommargin=0.5in]
@majorheading(EDNET addresses 2nd May 1988)
@b[ Configuration of GEC 4190 KB#1 switch    System No. 669]
@verbatim[
Line No     Address     PSE Name   EDNET name              Comments
lau 01  TV  0000160010xx   LA01  TelePAC4     Connection to AT TelePAC
lau 02  IH  000015000002   LA02  emas-c-fe2   EMAS3, Machine C
lau 03  TV  0000150010xx   LA03  TELEPAC1     Link to TelePAC
lau 04   M  000015000004   LA04  Xcall        XXX <-> ITP Converter
lau 05  TM  ------------   LA05  JANET        Direct JANET Link
lau 06   M  000015000006   LA06  ECSVAX       Comp Sc Vax
lau 07   M  000015005xxx   LA07  TELEPAC2     Connection to KB TelePAC #2
lau 08   H  000015000043   LA08  emas-a-fe1   for emas-a-fe1.a (15-43)
lau 09      ------------   LA09  spare        Not Usable
lau 10   H  000015000010   LA10  emas-b-fe1   ERCC EMAS3, Amdahl V8
lau 11      ------------   LA11  spare        Not Usable
lau 12      000015000012   LA12 *spare        spare
lau 13      000015000013   LA13  KBPAD13
lau 14      000015000014   LA14 *CHEMPAD2     Undaisychained chem pad # 2
lau 15      000015000015   LA15  SCIPAD1      SCRI PAD              (T33)

==== ercm10/emas-a/opermunge.txt ====
e journl:mlog,mlog
(l0f.DT:.r3^r9^m(f.DT:.rf1@k)*)*
m-0(t0/EOT/e0ju0/itaddr/e6)*
m-0(t0/CLR/e0ju0/itaddr/e6)*
m-0(f/ercc96/k)*
m-0(f.0/.k)*
%c



==== ercm10/imp11source_gen11s.txt ====
{#######################################}
{#  PDP11 IMP77 Object File Generator  #}
{#                                     #}
{#       Copyright November 1981       #}
{#          Peter S. Robertson         #}
{#                                     #}
{#######################################}


{#################################################################}
{# Object file format:   <N> = Word value N,  [N] = Byte value N #}
{#                                                               #}
{#        Zeroth word: <Link>  0 or size in bytes of Data Items  #}
{#         First word: <Size of code area>                       #}
{#        Second word: <Size of gla area>                        #}
{#         Third word: <Size of diag table area>                 #}
{#        Fourth word: <Size of line number table area>          #}
{#         Fifth word: <Size of event block>                     #}
{#                     "Section name"                            #}
{#                     <Number of external definitions>          #}
{#                     External Definitions                      #}

==== ercm10/imp11source_comp11s.txt ====
%EXTERNALINTEGERFNSPEC SMADDR(%INTEGER CHAN,%INTEGERNAME LEN)
!%EXTERNALROUTINESPEC CLOSESM(%INTEGER CHAN)
%EXTERNALROUTINESPEC prompt %ALIAS "S#PROMPT"(%STRING (255) s)
%BEGIN

   %OWNINTEGER CHECKSUM
   %OWNBYTEINTEGERARRAY STORE(-40:K'177777')
   %OWNINTEGER BASE=0
   %OWNINTEGER RA,SA,FA
   %OWNSTRING (255) ST
   %OWNINTEGER I,J,HIGH ADDRESS,START ADDRESS,COMMAND,CH,X


   %ROUTINE WRITE OCTAL(%INTEGER NO)
!=================================
      %INTEGER I

      NO = NO&K'177777'
      %CYCLE I = 15,-3,0
         PRINTSYMBOL((NO>>I)&7+'0')
      %REPEAT

==== ercm10/imp11source_comp11.txt ====
!%EXTERNALINTEGERFNSPEC SMADDR(%INTEGER CHAN,%INTEGERNAME LEN)
!%EXTERNALROUTINESPEC CLOSESM(%INTEGER CHAN)
%EXTERNALROUTINESPEC PROMPT(%STRING(15) S)
%begin

%OWNINTEGER CHECKSUM
%OWNBYTEINTEGERARRAY STORE(-40:K'177777')
%OWNINTEGER BASE=0
%OWNINTEGER RA,SA,FA
%OWNSTRING(255) ST
%OWNINTEGER I,J,HIGH ADDRESS,START ADDRESS,COMMAND,CH,X


%ROUTINE WRITE OCTAL(%INTEGER NO)
!=================================
%INTEGER I

  NO=NO&K'177777'
  %CYCLE I=15,-3,0
    PRINTSYMBOL((NO>>I)&7+'0')
 %REPEAT

==== ercm10/imp11source_recodes.txt ====
!
! nb: GLOBAL declared inside routine for AMDAHL IMP compiler
!
{Decode routine for PDP11}

%CONSTINTEGER Absf=   1,   Adc =   2,  Adcb =   3,   Add =   4,
               Addf =   5,   Ash =   6,  Ashc =   7,   Asl =   8,
               Aslb =   9,   Asr =  10,  Asrb =  11,   Beq =  12,
                Bge =  13,   Bgt =  14,   Bhi =  15,  Bhis =  16,
                Bic =  17,  Bicb =  18,   Bis =  19,  Bisb =  20,
                Bit =  21,  Bitb =  22,   Ble =  23,   Blo =  24,
               Blos =  25,   Blt =  26,   Bmi =  27,   Bne =  28,
                Bpl =  29,   Bpt =  30,    Br =  31,   Bvc =  32,
                Bvs =  33,  Cfcc =  34,   Clr =  35,  Clrb =  36
%CONSTINTEGER Clrf=  37,   Cmp =  38,  Cmpb =  39,  Cmpf =  40,
                Com =  41,  Comb =  42,   Dec =  43,  Decb =  44,
                Div =  45,  Divf =  46,   Emt =  47,  Fadd =  48,
               Fdiv =  49,  Fmul =  50,  Fsub =  51,  Halt =  52,
                Inc =  53,  Incb =  54,   Iot =  55,   Jmp =  56,
                Jsr =  57, Ldcfd =  58, Ldcif =  59, Ldexp =  60,
                Ldf =  61, Ldfps =  62,  Mark =  63,  Mfpd =  64,

==== ercm10/imp11manual.txt ====



                           IMP11 User's Guide

                           __________________





                                Contents

                                ________

           1.    Introduction

           2.    IMP11

           3.    LINK11

           4.    CODE11

           5.    DUMP11


==== ercm11/emas-2900/i77perm.txt ====
WAIT
CLOSEINPUT
CLOSEOUTPUDUPADDRSETPRIOPOPPUSHTIMEMAPPSECTMAPHWRLINKINALARMGETIDMAPABS4MAPVIRTPONOFF POFFPONÀÁÂȇ ààà&ˆ€PPȇ0ààà&ˆÄåT”Ì„‡@àààBA@
ˆ‡ààà@BAAAAAÁEøÿˆŠÁe@BcÂEà ‡
‡hàààˆ‡àààˆ‡ààà
ˆ‡àààˆ‡àààˆ‡àààˆ‡àààBˆ
	‡(ààà
‡B J
‡0àààˆ‡àààˆ‡àààÀÁàIààà
ÁàIàààˆààà==== ercm11/emas-2900/x25_nlpx1.txt ====
!**********************
!* nlpx1/nlpx1y       *
!* date: 06.aug.81   *
!*********************
%conststring (7) vsn = "vsn001c"
!! stack = 400, streams = 3

%control 1
%include "deimosperm"
!stack=400, streams=1


%recordformat xf(%byteinteger unit,fsys,%byteintegerarray fname(0:5))
%begin

      %constinteger control ser = 1;     ! on node = 11, otherwise = 1

%recordformat rjef(%byteintegerarray data(0:239))
%recordformat mef(%record(mef)%name link,%byteinteger len,type,  %c
      %bytearray reserved(0:7), %record (rjef) rje)


==== ercm11/emas-2900/u11_code11.txt ====
!
! RECODE for IMP programs.
!

%const %integer ext name len = 10
%const %integer max glap     = 8191
%const %integer max specs    = 150
%const %integer Max Defs     = 150
%const %integer codelength   = 511
%const %integer linelength   = 54
%const %integer source       = 1
%const %integer object       = 2
%const %integer page         = 62
%const %string(3) tab        = "   "

%control 15;! turn off integer size checks

%const %integer %array doinstr(1:12) =
      8_010000,8_020000,8_030000,8_040000,
      8_050000,8_060000,8_110000,8_120000,
      8_130000,8_140000,8_150000,8_160000

==== ercm11/emas-2900/imp#fix.txt ====
.EVENT 160240
@DISPLAY 161474
@EVENTBASE 161516
@CODEBASE 161520
@STACKBASE 161522
@GLABASE 161524
@EVENTTOP 161526
@INITSP 161530
@IOAREA 161532
@IOTOP 161534
@NSTREAMS 161536

==== ercm11/emas-2900/imp77pdx_abandout.txt ====
%include "CONSTS"
%include "FORMS"
%include "SEG7"
%include "PROCS"

%control 0

%external %routine  ABANDON OUTPUT
   %if S7_outstrmx # 0 %and S7_outx ## null %start
      flush out %if S7_outx_type = char type
      S7_outx_refs = S7_outx_refs - 1
      S7_outx == null
      S7_outstrm(S7_outstrmx) == null
   %finish
%end

%end %of %file

==== ercm11/emas-2900/x25_rolbx1.txt ====
! FILE 'rolbx1'
!**********************
!* rolbx1/rolbx1y
!* date: 01.jun.81   *
!* ring vsn          *
!*********************
%conststring (7) vsn = "vsn001b"
!! stack = 300, streams = 1

%control k'100001'
%INCLUDE "DEIMOSPERM"


%recordformat xf(%byteinteger unit,fsys,%byteintegerarray fname(0:5))
%BEGIN

   %owninteger mon = -1

%recordformat mef(%record(mef)%name link,%byteinteger len,type,  %c
      (%bytearray reserved(0:7), %bytearray data(0:239) %or %c
      %bytearray params(0:239)))

==== ercm11/emas-2900/impview_impbugs_s10.txt ====
!TITLE Stack corruption on READ SYMBOL

There is a compiler bug which causes corruption to the data stack on calls to
READ SYMBOL (which is treated in a peculiar fashion), if READ SYMBOL is the
only routine called within a routine or block. A temporary fix is to include
a call to some other routine.

Note that the dummy routine must in principle be reachable, or the compiler will
remove its call and perform the bad optimisation used for read symbol.

==== ercm11/emas-2900/impview_impbugs_s11.txt ====
!TITLE Register corruption on READ SYMBOL

Where the argument to READ SYMBOL is an intrinsic map (ie CHARNO, BYTE, INTEGER,
LENGTH), the address is first calculated, stored in a register, and READ SYMBOL
called. READ SYMBOL may overwrite the register in which the destination address
is stored. The solution is declare a temporary integer to hold the READ SYMBOL

  i.e. change

    READ SYMBOL(BYTE(100))

  into

    READ SYMBOL(C); BYTE(100) = C

==== ercm11/emas-2900/impview_impbugs_s12.txt ====
!TITLE Missing ENDOFFILE or ENDOFPROGRAM

If PASS1 of the compiler gets an EOF before an ENDOFFILE or ENDOFPROGRAM it
attempts to put one in for you. Unfortunately it gets it wrong, causing a blow
up in PASS2.

==== ercm11/emas-2900/impview_impbugs_s13.txt ====
!TITLE PRIMROUTINE specs
When converting programs watch out for %PRIMROUTINESPEC 's. They cause a blow-up
in PASS2. The blow up causes a MONITOR; the variable THISLINE, defined at the
outermost level, will tell you which line was being processed when the problem
arose.

==== ercm11/emas-2900/imp11pd_linkdefs.txt ====
!
! DEIMOS Linker default command file 
!
! MT  August 1981
!
.streams 2                           ! average ?
.stack 2048                          ! Modest quantity...
.pure                                ! Read-only code
.perm        ercm11.imp11pd_perm77r    ! Standard perm set
.library     ercm11.imp11pd_lib77r     ! I/O package + std procs
.library     ercm11.imp11pd_rtl77r     ! DEIMOS interface stuff
.noshare                             ! no shareable segments (yet!)
.shortmap                            ! Don't be so verbose!!!
.end

==== ercm11/emas-2900/imp77pdx_check.txt ====
%include "CONSTS"

%control 0

%external %integer %function  CHECK %alias "IO$CHECK" %c
                                    (%integer sno, min)
   %signal 9, 2, sno %unless min <= sno <= max streams
   %result = sno
%end

%end %of %file

==== ercm11/emas-2900/imp77pdx_construct.txt ====
%include "CONSTS"
%include "FORMS"

%external %string(12) %function  CONSTRUCT %alias "IO$CONS" %c
                                           (%record(sdfm)%name t)
   %byte c
   %integer j, n
   %string(12) s
   %if t == null %or t_type = null type %start
      s = ".N"
   %else %if t_type = file type
      charno(s,1) = t_file_unit + '0'
      charno(s,2) = '.'
      j = 3
      %cycle
         c = t_file_fname(j-2) & 127;         ! Ignore 'temp' bit
         %exit %if c = ' '
         charno(s,j) = c
         j = j + 1
      %repeat %until j = 9
      charno (s, j) = '('; j = j + 1

==== ercm11/emas-2900/x25_nlpx1y.txt ====
,NLPSxÃ,xÐÿ@©äE&MDÅe˜:(@&fDÅeô•ôÚŸÀU4ô(Àôx
…„‡nV¦\@&f
DÅeó$àÂÉÉV€s
¢ÿ÷
F€	
…„‡Â


ò2

ÒA`
ÃÝdŸÃŠ€
C\ÎÀðÀeþÿP”P”P”P”P”P”P”P”ƒ
3
3
3
óz…„‡F»Rü@&fUDÅeÀ,ß	üFüÿ	ÀÁß	HÁØÀß	ôJÀþÿß	HÁÜÀß	ôJ…„‡žÔÒHA&
DÅe
ó$àÂ@ÁäÀß	ôJ„‡Àe4’ÀEÿÀe0ß	üFÀ.ß	üFôÿÿ´
Â`´œ4Š- ß	üF-èÀ(ß	üF
ÂÜ¡‚‚€Àe0ß	üFÂœÂEøÿ€Àe0ß	üFÀ)ß	üF„‡še>B&f
DÅeó•óêó•3ÀÀeß	<K…„‡v¾VLB&fÎå
DÅeó•ó°3úÿ3üÿ3þÿó }ó•	ÀÀeß	<K…„‡¦„øÀvsn001cVLP000IdleRunningEnabledRunningk + chars.null
ZìÀ´BUÁ
LP: Starting ¹ôÀzC†œB&
DÅe
ÂÜ‚`zêÀ÷d}7Ša}Àß	B×-P}KÁÁß	ôJÕ

==== ercm11/emas-2900/imp77pdx_procs.txt ====
! I/O package procedure specs added
%end %of %list
%external %routine %spec  OPEN %alias "IO$OPEN" %c
                               (%string(*) %name s, %integer stream)
%external %routine %spec  DIR FN %alias "IO$DIRFN" %c
                               (%record(sdfm)%name x, %integer func)
%external %routine %spec  DEV FN %alias "IO$DEVFN"  %c
                               (%record(sdfm) %name x, %integer func)
%external %routine %spec  FLUSH OUT %alias "IO$FLUSH"
%external %routine %spec  SET EOT   %alias "IO$SETEOT" (%integer buffad)
%external %predicate %spec  GOT SYM %alias "IO$GOTSYM"
%external %predicate %spec  PARSE   %alias "IO$PARSE" %c
                                 (%string(*)%name file, %record(sdfm)%name t)
%external %integer %function %spec  CHECK %alias "IO$CHECK" %c
                                          (%integer sno, min)
%external %string(12) %function %spec  CONSTRUCT %alias "IO$CONS" %c
                                                 (%record(sdfm)%name d)
%list
%end %of %file

==== ercm11/emas-2900/gkb19nov86.txt ====
Õû$?ÀÁ  •b  Øÿ$,ÀÂ-2#•b	-2Ú$
éFb	8€Ü$rÀªce#•b	ueÜ IÀÁEÝ$™00É™0Hb00ç$™00Ì™Hb00ç  00Ë  è 00Ì00é$,l•b	:Wì$ ÀÅ  #•b	  ì$ ÀÆ 0•b32î$
éHb	•û'$™00Ï™0Hb00û($™00ЙHb00û) 400Ï+0ü* 00Ð00þ+$PÀÈIP•b  þ,$3,mty•b	-$ÀÉ#•b	 10$S
éJRCb	S01 ÀÈo=$™00Ó™0Hb00>$™00Ô™Hb00? 00Ó00@ 00Ô00C$,n•b	gnD$ÀÌ,#•b	  E  00˜.*F$ÿÀÍ60•b8€G$
éLb	gnU$rÀÎ 1#•b	 1"Y  +ð'  "Z$m
éM60b	8€#[$™00×™0Hb00#\$™00Ø™Hb00#]$00Ù#™Hb	-i$00Ü#™Hb	at-j 00Ú.k 00Û002n$ÀÐH#•b	7q$
éOb	
7r$™00Ý™0Hb007s$™00Þ™Hb00B~$Z00â
 #™Hb	 *B È00àB€$
éPb	B 00áF„$LÀÔ&#•b	  F…$rÀÓ 1•b 1Iˆ$+ð)PP•Cb	P•$ÿÀÕ60#•b	8€Q–$0,r ,•b	1.U™$™00æ™0Hb00Vš$™00ç™Hb00V›$s00è#™Hb	 CVœ 00æ00V 00çHVž$
éRb	sc`ª 
00êIN`«$,s6•	a®$A
éSDIb	COd¯$>À×
 #•b	 *e°$hÀØee6•	f±$L,t *•b	**t¿$™00ï™0Hb00tÀ$™00ð™Hb00tÁ$-00ñ3,#™Hb	6,t 00ïjtà 00ð00uÄ$*+ð+R
PP•Cb	
 vÅ$
éU0b	 CxÆ$ÿÀÚ60#•b	8€ˆÕ$™00õ™0Hb00ˆÖ$™00ö™Hb00ˆ×$300÷31#™Hb11ˆØ È00õˆÙ 300ö31‹Ú$
éWb	  ŒÝ$îÀÜ#•b	FN–è$ÀÞ#•b	2,›ï +ð,f›ð$+ð-’!!ˆCb™@œñ$™00ú™0Hb00œò$™00û™Hb00¦þ 00ü00¦ÿ 00ý00¦$ ,w  •b	  ª$
éZb	  ª$ZÀàED#•b	! °$™00þ™0Hb00°$™00ÿ™Hb00° 00þ° 00ÿ»$,y•b	  ¾$oÀâr #•b	 G¾$
é\b	 :Ä$™01™0Hb00Ä$™01™Hb00Ä 0100Ä 0100Î) È01Î* 0100Ò-$ ,z  •b	 ‘Ò.$3Àäty#•b	 SÓ2$
é^b	gnâ? šG Câ?$™01™0Hb00â@$™01	™Hb00âA È01âB _01	S1æE$Àæ#•b	'æF$,{•b	  èG$
é`b	  õT î¬	ÚöU$™01™0Hb00öV$™01
™Hb00öW È01öX È01
ù[$ +ð0H PP•Cb	  ú\$Àé#•b	E(û]$Àê)•b	8€û^$,| •b	Pj$Àë#•b**k$E«  "b(-l$ 
éc  b	  	o ¥Kvj¯

==== ercm11/emas-2900/imp77pdx_printsym.txt ====
%include "CONSTS"
%include "FORMS"
%include "SEG7"
%include "PROCS"

%control 0

%external %routine  PRINT SYMBOL (%integer sym)
   %if S7_outx ## null %start
      byteinteger (S7_outx_buffp) = sym
      S7_outx_buffp = S7_outx_buffp + 1
      flush out %if (S7_outx_type = char type %and sym = nl) %or
                     S7_outx_buffp = S7_outx_ebp
   %finish
%end

%end %of %file

==== ercm11/emas-2900/util_readlines.txt ====
%EXTERNAL %ROUTINE  READ LINE (%STRING(255)%NAME S)
   %INTEGER SYM, p
   p = 0
   SYM = NEXT SYMBOL
   %WHILE SYM # NL %CYCLE
      p = p + 1
      CHARNO(S,p) = SYM
      SKIP SYMBOL; SYM = NEXT SYMBOL
   %REPEAT
   LENGTH(S) = p
   SKIP SYMBOL;   ! Get past the NL
%END
%END %OF %FILE

==== ercm11/emas-2900/util11_linkd.txt ====
!
! Linker for DEIMOS
! (Shared perm version)
!
! Takes PSR relocatable format object files
! and produces absolute loader format file.
!
! Adapted by Mark Taunton, 80/81, from
! original program by Peter S. Robertson.
!
! CCUTIL comments:  D - DEIMOS  E - EMAS  V - VMS
!

! System-dependent configuration parameters

!V! %const %integer  fatal error = 16_1000002c; ! Error code to EXIT (VMS)
!!{E} %const %integer  fatal error = 13;          ! %Signal (EMAS)

!V! %const %integer  max f       = 127;         ! Length of file name
{D} %const %integer  max f       = 12
!E! %const %integer  max f       = 31

==== ercm11/emas-2900/util11_linke.txt ====
!
! Linker for DEIMOS
! (Shared perm version)
!
! Takes PSR relocatable format object files
! and produces absolute loader format file.
!
! Adapted by Mark Taunton, 80/81, from
! original program by Peter S. Robertson.
!
! CCUTIL comments:  D - DEIMOS  E - EMAS  V - VMS
!

! System-dependent configuration parameters

!V! %const %integer  fatal error = 16_1000002c; ! Error code to EXIT (VMS)
!!{E} %const %integer  fatal error = 13;          ! %Signal (EMAS)

!V! %const %integer  max f       = 127;         ! Length of file name
!D! %const %integer  max f       = 12
{E} %const %integer  max f       = 31

==== ercm11/emas-2900/incs_seg7old.txt ====
! Segment 7 I/O layout included
%end %of %list

! Layout of segment 7: ALL I/O status variables live here.
! Hence any process calling   MAP VIRT (this id, 7, 7)  can pick
! up entire state of this process' I/O.
! See e.g. new IMP-77 compiler control process. Each pass maps its
! Seg 7 onto that of control process, and control proc. performs
! all opening/closing of files instead of individual passes. Hence
! less code is required to support each pass, easing shoe-horning
! problems!


%record %format pf(%byte %integer ser, reply, %integer a, b, c)
%record %format  seg7fm ( %c
   %string(255)%name  param str,    { ->string param from parent via loader }
   %integer   load flag,          { Type of load: generally ignored?      }
   %byte      unit, fsys,         { Current disk + file system number     }
              callid, strm0id,    { Parent task, SER of TTY for this task }
              id,                 { Real identity of this task            }
              param set,          { flag for handling of CLI-Param        }

==== ercm11/emas-2900/imp11prims.txt ====
%constinteger nl = 10
!##############################################
!## DO NOT CHANGE THE ORDER OF THE FOLLOWING ##
!##############################################
%primintegerfnspec addr(%name n)
%primintegermapspec integer(%integer a)
%primrealmapspec real(%integer a)
%primstring(255)%mapspec string(%integer a)
%primrecord(*)%mapspec record(%integer a)
%primbytemapspec byteinteger(%integer a)
%primbytemapspec length(%string(*)%name s)
%primbytemapspec charno(%string(*)%name s, %integer n)
%primintegerfnspec rem(%integer a, b)
%primroutinespec readch(%name n)
%primroutinespec readsymbol(%name n)
%primintegerfnspec swab(%integer x)
%primstring(1)%fnspec tostring(%integer n)
%primstring(1)%fnspec snl
%primintegerfnspec intpt(%real r)
%primintegerfnspec int(%real r)
%primlongrealmapspec longreal(%integer a)

==== ercm11/emas-2900/shr#fix.txt ====
.EVENT 160240
@DISPLAY 161474
@EVENTBASE 161516
@CODEBASE 161520
@STACKBASE 161522
@GLABASE 161524
@EVENTTOP 161526
@INITSP 161530
@IOAREA 161532
@IOTOP 161534
@NSTREAMS 161536
NEWLINE @000002
PRINTSTRING @000004
ITOS @000006
WRITE @000010
NEWPAGE @000012
NEWLINES @000014
SPACE @000016
SPACES @000020
READOCTAL @000022
READHEX @000024

==== ercm11/emas-2900/gat24feb87.txt ====
÷ÌŒÂ$c:Cno4–YH	DE÷͌à mA÷ÎŒÄ$:DP–Yæ	LE÷ÏŒÅ$ :E a8–Yæ i÷ÏŒÆ  :E  ÷ÐŒÇ$:FY –PæLL÷ÐŒÈ  :FPu÷ÓŒÉ$:GH–æ	÷ÕŒÊ^0l	s	÷þ"
,&@¿ &Q)®
“÷ÚŒÔ$Î:L––æ	÷ÛŒÕ$:MY–PæLL÷ÛŒÖ :M÷ÞŒ×^ïÁîÚs
@*ïFDæÿë%Ë„÷ÞŒØ^& üêн,Vb2ên”++÷ÞŒÙ$0:N5H1–Pæ6;÷ÞŒÚ Î:N–÷ߌÛ$:O1–Pæ
֍Ί^g
<kfæíëà!eù7XÂõ€X¶OÙŸ¿Dú£5÷çŒå :S÷çŒæ$i:Tge7–Pæan÷çŒç :T÷ç÷çŒè 	 ÷–6Çp÷éŒé$D:U[D$–Pæ	÷ìŒê$:VY6–Pæ	LE÷îŒë$:WH–æ	÷ïŒì$p
ÏunC–æ08÷öŒõ :Z÷øŒö [&Š  +n÷ùŒ÷^
þ(
ÆO/¨Îº4b@_Æ
XŒôú•›÷ùŒø^
f6{&G@
‚sÍdµJíá'9%XY÷ùŒù$:[H–æ	  ÷ûŒú$1:\'–€Yæe.÷ûŒû [:\[÷þŒü$:^7	–Pæ8Hø 8:a[ø$:bY–YæLEø ::b30ø$w:c.
–æ	,Rø	$ &‹=1C™8ægaø
$:d3wPæ	 eø$[:e[0–Yæ[Dø Ì:eø
$:fA–Yæ(:ø [:f61ø	 &‹ø$:jø–æ	
£H™£ôO
ø\g^$'½;S‘
,E\CREÛÅÖŒFò*ø\h$:øS–æ	øai$:Ž–æ	 1øej^ %”	œ
N™	
 újþ 1ä
A½újþ$:ò˜æ	IEúmÿ$s:ó  ˜æ	  útŽ$:ô˜æ	erúuŽ &’úxŽ$:õH˜æ	  ú{Ž$&“ú8P8æ˜ú¡Ž$m:ý iPæ	 	ú¦Ž 2;
S5pú¦Ž$e:þndPæ	0)ú¬Ž$ :ÿe Pæ	maú°Ž$;Pæ	 tú¶Ž$;HPæ	  úºŽ$p;nePæ	APúÁŽ$;HPæ	LLúÄŽ  kngoþúÄŽ$;Pæ	odúÊŽ$#PCP	LEúëŽ!$ ; DPæ	**úìŽ"$;Pæ	adúîŽ# 
úïŽ$$€IP$æ	e úõŽ%$;
Pæ	32úöŽ&$;Pæ	ˆFûŽ' uen;ûŽ'$;HPæ	yiûŽ($;Pæ	
 ûŽ) %£ïÁqçû
Ž*$;Pæ	NEû(Ž4$;Pæ	NGû*Ž5$5;aiPæ	[2û2Ž6 %¤Q)û2Ž7$;Pæ	  û4Ž8$ë;9·Pæ	3,û:Ž9$e%¥t,7–7æa û<Ž: ‘tipû<Ž:$;Pæ	LLû?Ž;$*;**Pæ	**ûGŽ<$;Pæ	adûIŽ=$;;Pæ	auûyŽH Š c¯eûyŽH$;'Pæ	=1û|ŽI^t N˜7ÿxñ^ J†!Ô¢ðPô
Pº"n	±¢ÍbF.!	oû~ŽJ$[;(= Pæ	  ûƒŽK$;)Pæ	8FûˆŽL$;*HPæ	LLûŽM$3;+
Pæ	LEû“ŽN$;,HPæ	==û—ŽO 0Þno©‘û—ŽO$l;-EdPæ	PRûµŽX ð;
ûµŽX$;3Pæ	([û»ŽY$$æI“6æ	l:û½ŽZ$Ì;4Pæ	eû¿Ž[$:;5erPæ	ToûÇŽ\$;6Pæ	,2ûÉŽ]$;7Pæ	* ûÒŽ^ ]#ÓX
ÒûÒŽ^$;8HPæ	TNûÓŽ_$;9Pæ	odûÜŽ` [
Ï[¥ûÿŽk :	A  ¦üŽl$h	BedD–	æc]üŽm$;BPæ	c]üŽn$~;CPæ	inüŽo  #ä X	œ-üŽo$ stg–€)æ
 üŽp$;DPæ	  üŽq$;E

==== ercm11/emas-2900/gkb24feb87.txt ====
Q@üÂ0 î(Ú@üÂ1$0‹ÈP™Hb|@ýÂ2$(Ü#–Pb  AÂ=$(àY$–PbLEAÂ>$(áY8–YbELAÂ? þ(à°AÂ@ (áYAÂA$;719C–(b/AÂB$ ±gob iAÂC$b(ã1:–Yb-AAÂD þ(ã°AÂE$0‹É(™Hbˆ tAÂQ$_nP@#™b‹LEAÂR I(çrrAÂS$ (æ  5–Pb  AÂT$-(èsm8wPb!!A	ÂU$ ~C n#‘$bÿadA
ÂV$T(éte8–PbrmA
ÂW (éYAÂZ$_p$#™bˆ0AÂe$_qY@#™b‹LLAÂf ‚(íE AÂg$n0‹Îie™HbisAÂj$(î–Yb92AÂk €(îAÂl$i~Dr #‘$bÿo AÂm$ÿ_r<@#™b€<AÂn$(ï0–Y	2 AÂy$ (ò.04–Yb0 AÂz$™0‹Ð™Hb00AÂ{ (òAÂ|$0‹Ñ™Hb0?AÂ}$™(ó0–Pb00AÂ~ (óAAÂ$(ô–YbA€  (ô  A‚$x(õþ–PbþAƒ (õA"ÂŒ$0‹Ò™HbˆA"Â$(ø&PYbA#Â$±
(A4¿ )A8ÂÌ ÿ)A:ÂÍ$)
A7A–Yb–A:ÂÎ ý)
AAÕÄH$)oP–Pb–pAÕÄI /)o nAÕÄJ$K±. lbK AÖÄK ™0‹ô"AÖÄK Î0‹ñ–"AÖÄK /0‹î n"A×ÄU$ú±/žHb¢AØÄV$™0Œ	™Hb00AØÄW$j0Œ
)–JBÄÖ$ )—  &PPb  BÄ×$)˜8–YbúBÄØ 
‰(–pPborB¦Ɔ *
2#–PbÿANBéÇ?$_¦H)™b*
BêÇ@$
Ç’$m*L–	–Pb¥C
Ç“ *LCCÇŸ T_ªCÇ $™0Œi™Hb00CÇ¡$0Œj™HbCǤ$*QA–PbCMCÇ¥$*R'–YbROCǦ *QCǧ 3*RÌCǨ$T±rHHb™CÇ©$ÿ*S'–YbCǵ *V CǶ$*U(–YbÿCÇ·$±sbgnCǸ$-P ˜Eb

==== ercm11/emas-2900/util_sss.txt ====
%dynamicstringfnspec itos(%integer value)
%dynamicintegerfnspec outpos
%systemroutinespec phex(%integer i)
%dynamicroutinespec dump(%integer a,b,c,d)
%dynamicintegerfnspec nwfilead(%string(255) s,%integer epgs)
%systemroutinespec move(%integer len,from,to)
%externalintegerfnspec dconnect(%string(6) user,  %c
   %string(15) file,%integer fsys,mode,apf,%integername seg,gap)
%externalintegerfnspec ddisconnect(%string(6) user,%string(15) file  %c
   , %integer fsys,destroy)
!
!* communications record format - extant from chopsupe 20f onwards *
%recordformat comf(%integer ocptype,ipldev,sblks,sepgs,ndiscs,  %c
         ddtaddr,gpctabsize,gpca,sfctabsize,sfca,sfck,dirsite,  %c
         dcodeda,suplvn,wasklokcorrect,date0,date1,date2,  %c
         time0,time1,time2,epagesize,users,cattad,dqaddr,  %c
         %byteinteger nsacs,resv1,sacport1,sacport0, %c
         nocps,resv2,ocpport1,ocpport0, %c
         %integer itint,contypea,gpcconfa,fpcconfa,sfcconfa, %c
         blkaddr,ration,smacs,trans,%longinteger kmon,  %c
         %integer ditaddr,smacpos,supvsn,pstva,secsfrmn,secstocd, %c

==== ercm11/emas-2900/imp77pdx_dirfn.txt ====
%include "CONSTS"
%include "FORMS"
%include "SEG7"

%control 0

%external %routine  DIR FN %alias "IO$DIRFN" %c
                           (%record(sdfm)%name x, %integer func)
   S7_p_a     = func
   S7_p_ser   = x_ser + 1;              ! Directory service
   S7_p_reply = S7_id
   S7_p_b     = addr(x_file);           ! File name descriptor
   S7_p_c     = x_block;                ! Want first (next) block number
   ponoff (S7_p)
   x_block = S7_p_a
%end

%end %of %file

==== ercm11/emas-2900/imp11s_imp77lib.txt ====
! Routines for IMP77 compatiblity with the standard ERCC IMP library.

%external %routine %spec SET RETURN CODE (%integer I)
%external %integer %fn %spec EXIST (%string(255) S)
%external %routine %spec SSFOFF
%external %routine %spec SSFON
%external %string (127) %fn %spec SSFMESSAGE
%external %routine %spec DEF INFO (%integer CHAN, %string (255) %name FILENAME, %integer %name STATUS)
%system %integer %map %spec COMREG (%integer N)
%external %routine %spec CLEAR (%string(255) PARM)
%external %routine %spec DEFINE (%string(255) PARM)
%external %integer %fn %spec IN STREAM
%external %integer %fn %spec OUT STREAM
%external %routine %spec CLOSE STREAM (%integer I)


%const %integer MAX STREAM = 7

%own %string (127) DEFAULT = ""

%external %string(63)%fn itos(%integer n, p)

==== ercm11/emas-2900/assblds.txt ====
%Begin
%integer i,j,k
%string (255) s,t,u

   %const %byte %integer %array built in(1:259)=2, 82, 48, 2, 82, 49, 2 %c
        , 82, 50, 2,
      82, 51, 2, 82, 52, 2, 82, 53, 2, 83,
      80, 2, 80, 67, 3, 67, 76, 82, 3, 68,
      69, 67, 3, 73, 78, 67, 3, 78, 69, 71,
      3, 84, 83, 84, 3, 67, 79, 77, 3, 65,
      83, 82, 3, 65, 83, 76, 3, 65, 68, 67,
      3, 83, 66, 67, 3, 82, 79, 76, 3, 82,
      79, 82, 3, 83, 87, 65, 3, 77, 79, 86,
      3, 65, 68, 68, 3, 83, 85, 66, 3, 67,
      77, 80, 3, 66, 73, 83, 3, 66, 73, 84,
      3, 66, 73, 67, 2, 66, 82, 3, 66, 69,
      81, 3, 66, 78, 69, 3, 66, 77, 73, 3,
      66, 80, 76, 3, 66, 67, 83, 3, 66, 67,
      67, 3, 66, 86, 83, 3, 66, 86, 67, 3,
      66, 76, 84, 3, 66, 71, 69, 3, 66, 76,
      69, 3, 66, 71, 84, 3, 66, 72, 73, 4,

==== ercm11/emas-2900/gat11aug87.txt ====
ì’§ Uzniì–¨ Kos>Qì–¨$oPæcrì—©$Ep;7Pæ1Hì—ª$#{J#'(æ Sìš« 
ro`"재$J'$æì¡­$WqìPæPì¡®$rcPæPE쫯$sPæUMì«°$it
£ìóÅ 
}T ìóÆ$ „60Pæ  ìôÇ$:…  Pæ61ìþÈ$
†  Pæ0/ìþÉ$
‡avPæreìþÊ$'næ	 
íË$/K
 $ÄPæPî
orPæw ïJŠ$	PæofïJ‹$pE– æ tïTŒ$ 	
Pær3ïT$p	
orPæw ï^Ž$4(  æ	12ï^$O	AGPæ 
ï^$ 	
Pær3ïa‘$	P'PæLLïi’$9	  Pæ  ïi“$	Pæidïj”$qE– æ80ïs•$	PæPïs–$	PæInï}—$a	 iPæleï}˜$[	y*PæCï„™ ge*ï„š$	Pæ o$	Pæt $u	
Pæ

ï‰$è‚'ó'(æl ïŽž$	/'PæPï’Ÿ$	Pætiï’ $	Pæf ï—¡$?vceE0æli X	Z#Zɲ 1  V+$=	 cPæin$e	 oPæèe簾$+	etPæis裏$:	 ngPæNsﱨ$l	!"@Pæk ﱩ$	"PæTrﺪ$ 	#82'Pæ .ﻫ$*	$**Pæ**L$ 	%FuPæcpïÀ­ %8.1=ïÀ­$	&
Pæ**ïÅ®$	'PæV2ïƯ$n	(
=Pæacïа$ 	)áîPæoiïб$l	* 2PæaiïÙ² d	ïÚ³$E	+anPævaïÛ´$ 	, UPæ  ïâµ % .ýÁïâµ {Yïä¶$ 	- 1Pæ00ïå·$D	.E1Pæ )ïæ¸$	/4'Pæinïï¹$ 	00 Pæ  ïïº$U	1ncPæalïö»$| C–)æ0 ïö¼$	[		–		æLLïù½$6	210Pæ-1ïú¾$t	3è Pæerïü¿ V(ESµŽïü¿$	4Pæ  ðÀ 
#M2
ðÁ$	5Pæ  ðÂ$	6Pæ0 ð
Ã$>	7  Pæ
ðÄ$   	æ
 ðÅ$A	8lsPæ
ðÆ  v  jðÇ$á	9tá'PæáöðÈ$*w*
0æ  ðÉ$	:PæanðÊ$ 	;  Pæ
 ð!Ë 	[<>ð"Ì$Ì	<Pæ ð#Í$T	=PaPæ 0ð%Î$QP'$æfið&Ï rmm ð,Ð$	>Pæ  ð-Ñ pPq$ð-Ò$	?Pæ26ð.Ó$	\		–		æ50ð2Ô$3rE– æedð7Õ$	@PPæLLð7Ö$.	ARCPæ  ð8×$n	B
=Pæacð<Ø$R$æltð>Ù$i	C

==== ercm11/emas-2900/x25_itpx9sbg.txt ====
!********************************
!*  emas-2900  fep  itp server  *
!*   file: itps9/itps9y         *
!*   date: 25.mar.82             *
!********************************
!! stack size = 500
!*
!*  nsi version - include {n} statements
!*  ring version - {n} -> !n! and !r! -> {r}
!*  nsi and ring - include {z}
!*  Yellow book gate interface - {n} & {z} -> !n! & !z!, !x! -> {x}
!*

%control 1
%include "deimosperm"

%begin

      %conststring (13)vsn = "itps...9(n)h
"
      %recordformat am1f(%integer rxs, rxd, txs, txd)

==== ercm11/emas-2900/imp77pdx_cliparam.txt ====
%include "CONSTS"
%include "FORMS"
%include "SEG7"
%include "PROCS"

%external %string(127) %function  CLI PARAM
   ! Returns the parameter string passed into this task
   ! by the Command Interpreter, after suitable conversion.
   %integer l, ad, s
   %owninteger called = 0
   %if called = 0 %start
      ad = addr(S7_param str)
      ad = ad + 1 %while byteinteger(ad) = ' '; ! skip leading spaces
      s = ad;                                   ! mark start
      ad = ad + 1 %while byteinteger (ad) # nl; ! find end
      l = ad - s;                               ! find length
      %while ad # s %cycle
         byteinteger (ad) = byteinteger (ad-1); ! shuffle up 1 place
         ad = ad - 1
      %repeat
      length(S7_param str) = l;                 ! set length byte

==== ercm11/emas-2900/x25_itp9xy.txt ====
,ITPSÀß ¼
ÀÀÿ@©À09/09/8215.10.55
ô


Wp$@ÀeÎÈÁ:Àß	tm
ð4
4

´


WpÁeFÀw¸X1
1ôe1-
é÷†È¢XÞXóþÿ÷ªÈ”XÂXòÿÿÁ"ÀÂÂÙß	¨mÁÚß	mÂÂÙÁ
Úß	mÂeÁÂÙß	¨mÁÀß	mß	èlß	Pj
ß	lmÕÕÕß	Xmt
ÕÕÕß	Xmt
¤ÙERCC ts RmÐ$h7
äôÿÿ
´

==== ercm11/emas-2900/imp77pdx_resetin.txt ====
%include "CONSTS"
%include "FORMS"
%include "SEG7"
%include "PROCS"
%external %routine  RESET INPUT
   %if S7_inx ## null %start
      %if S7_inx_type = char type %start
         S7_inx_state = invalid %if S7_inx_state = EOF; ! Clear TTY EOF
      %else
         S7_inx_block = 0
         dir fn (S7_inx, examine);     ! Pick up block #1 again,
         S7_inx_buffp = S7_inx_ebp;    ! and empty the buffer, so
         S7_inx_state = invalid;       ! will need a disk read for input
      %finish
   %finish
%end
%end %of %file

==== ercm11/emas-2900/imp11pd_rtl77r.txt ====
%ITOSITOS0PERM$BPERM$F˜ITOS0PERM$B
MONITOREVE
PRINTSYMBONEWLINE
PRINTSTRINWRITE0EVENTPOCTALPERM$BÜ8NEWLINE
PRINTSYMBONEWLINES
PRINTSYMBO$NEWPAGE
PRINTSYMBOPERM$W	NEWLINE
PRINTSTRINWRITE0INSTREAM	OUTSTREAM
INFILENAME
OUTFILENAMPERM$BPERM$F”LPOCTAL
PRINTSYMBOPERM$BLPOP PUSHREADPERM$P
NEXTSYMBOL
ENDOFINPUTPERM$BPERM$VPERM$A READLINEPERM$BPERM$PPERM$HL
READSTRINGPERM$P
NEXTSYMBOLPERM$BPERM$PPERM$APERM$VPERM$HŒSPACE
PRINTSYMBOSPACES
PRINTSYMBO$	SUBSTRINGPERM$BPERM$V`$TRACENEWLINE
PRINTSTRINWRITE
SELECTOUTP	OUTSTREAMPERM$BDWRITESPACES
PRINTSTRINITOSPERM$BPERM$FHWRITE0
PRINTSYMBOPERM$BX$EXITIMP$OUT $DELETE$LINKIN$SETPRIO$TIME$ALARM$GETID$MAPHWR$MAPABS4$MAPVIRT	$MAPPSECT$PONOFF $POFF$PONMOVC3PMULDIV	FREESTORE$GO$IMP$IN$EXIT$DS$SP(ÆÅÁà‘Ñˆ

==== ercm11/emas-2900/imp11s_link11.txt ====
!
! Linker for DEIMOS
!
! Takes PSR relocatable format object files
! and produces absolute loader format file.
!
! Adapted by Mark Taunton, 80/81, from
! original program by Peter S. Robertson.
!
! CCUTIL comments:  D - DEIMOS  E - EMAS  V - VMS
!

! System-dependent configuration parameters

!V! %const %integer  tty type    = 1;           ! Value from IN TYPE
{DE}%const %integer  tty type    = 0
!V! %const %integer  fatal       = 16_1000002c; ! Error code to EXIT (VMS)
!V! %const %integer  max f       = 127;         ! Length of file name
!D! %const %integer  max f       = 12
{E} %const %integer  max f       = 31
!V! %const %integer  max clp     = 127;         ! Max size of CLIPARAM

==== ercm11/emas-2900/impview_impbugs_s1.txt ====
!TITLE Routines with final string parameters gobble store

      Fixed 27/5/82

There is a problem with routines whose last argument is a string parameter, and
which do not themselves call other routines. Each time a routine of this sort
is called space for the string is claimed from the stack, and is not returned.
However when the enclosing routine terminates, the space is reclaimed. 

eg: suppose you have the following routines

  %routine check length(%string(255) s)
     %signal 10,1 %if length(s)>25
  %end

  %routine dummy
     check length(s1)
     check length(s2)
     check length(s3)
  %end


==== ercm11/emas-2900/impview_impbugs_s2.txt ====
!TITLE Failure of string assignment from final string parameter of routine

     Fixed 27/5/82

There is a problem in string assignments and jam transfers in routines whose
last argument is a string:

  %routine demo(%string(255) s)
    global s1=s
    global s2<-s
  %end

will not assign s to global s1 or global s2. This is a newly introduced bug.
This is why the routine PROMPT doesnt work at the moment.

==== ercm11/emas-2900/impview_impbugs_s3.txt ====
!TITLE Failure to relocate record elements

    Believed fixed 27/5/82 - Let me know if not

Under somewhat obscure circumstances the compiler fails to relocate references
to record elements.

The difficulty with this is you cant tell from the CODE11 that anything is 
wrong, but you are likely to get an address error when it runs. It will be very
obvious from the DEBUG of the code near the crash that this has happened.

==== ercm11/emas-2900/u11_lib11.txt ====
%control 0

%system   %routine %spec  EXIT (%integer status)
!V!%external %routine %spec  SET DEFAULT (%string(127) def)
%external %string(63)  %function %spec  ITOS (%integer n, p)
%external %string(127) %function %spec  EXPAND (%string(127) filename)
%external %string(127) %function %spec  IN FILE NAME
%external %string(127) %function %spec  CLI PARAM
%external %string(127) %function %spec  SYS MESS (%integer n)

%const %integer  max table = 400
%const %integer  max files = 70
%const %integer  max text  = 10
%const %integer  max f     = 127
!V!%const %integer  fatal     = 16_1000002C
{D}%const %integer  fatal     = 0

%begin
   %record %format  tabfm (%string(10) text, %integer index);  ! for defs only
   %record(tabfm) %array  table (0 : max table)
   %string(maxf)  %array  file  (1 : max files)

==== ercm11/emas-2900/impview_impbugs_s4.txt ====
!TITLE MAPABS explodes when used with shared library.


  This has now been fixed
 A side effect of MAPABS is that it maps the segment which you are interested
in onto your segment 0. Since this is where the shared library is, random
disasters will occur on the return from the MPABS SVC.

 The only way round it at present is not to use the shared library with MAPABS.

==== ercm11/emas-2900/impview_impbugs_s5.txt ====
!TITLE Use of segment 0
Non-shared programs which try to put code in segment 0 will not load properly.
For the time being avoid putting code there, but it is ok to map into it.

==== ercm11/emas-2900/impview_impbugs_s6.txt ====
!TITLE IMP compiler loops in pass3
Under unknown circumstances PASS3 of the compiler loops. This is being urgently
investigated

==== ercm11/emas-2900/gkb26jan87.txt ====
¯ü$38jid6pb  ¯ü$™0
™‘Cb00¯ü $0(™Cbcu¯ü! s0
: ¯ü" 000€¯ý#^
äš	¡nHã
–s#-FU²
älN°n^oýfG?ôw–4#ƒ"#d5E
1°z$0C™Cb.0°{ s0r °|$n0le#™pCbs °} L0IN€°~$í)™bˆED°$~ZÐw@PbH°€$s0r ™Cbpo° 	—wi@°$*#™bˆ0 °‚$AZÑ  Fw@Pb  ° ƒ$2‚l[b
°"$LZÖ985w@Pb  °"Ž$jZ×: 4w@PbCK°#$ZÙ°!8w@Pbw@°#’$H+
E™bˆPU°#“$ ZÚ27)w@Pb *°#”$DZÜ T#w@PbAY°#•$rZÞacw@PbCA°%  0 °%¡$
Zä8w@Pbat°%¢ 0Zã00°%£$0Zæ2.w@Pb98°%¤$7ZåC8w@Pbat°%¥$îZçw@Pbq?°%¦$ 0!nn(™Cb N°%§$Zé#w@Pbÿ 1°&¨  0!0 €°&©$ZëPw@Pb
o°'´  ,  °'µ a0#<°'¶$ÿZð60w@Pb&€€°'·$ZñP&P@PbLE°(¸$ÎZòw'w@Pb°(¹ A0"as€°(º$ ‚m c0beq°(»$dZô09w@Pb	IO°(¼$aZâ3,5w@Pb32°(½$0Zõ  w@Pb  °)È$ Zü  w@Pb  °)É$ˆZúPAw@Pb  °)Ê -Zû--°)Ë Zü°%°*Ì^f1\)ek—oÀPgwzõ®5ž7°*Í^„z£Þ|Å”ùxAùi]!ZfP
™h]ë”°*Î$1‚n33b.3°*Ï$RZý   w@Pb  °,Ú$ [
 1w@PbON°,Û$s/3ct™bsp°,Ü$T[ Rw@Pb0.°,Ý$?[]S"w@Pb0?°,Þ$'[
 7w@Pb86°,ß$[
CpPbt °,à ‚Q°+È°,á$,[	<¯7w@Pb¼S°,â 
[
51°,ã$E[  6w@PbLB°-î$0[w@PbAI°.ï$j[:Bw@Pb°.ð$x[elCw@PbR °.ñ t[°.ò Ì[°.õ$e[.))w@Pbch°/ö$Zïw@Pb¼@°/÷$R[  'w@Pb30°0 I0%UN°0$S[  w@PbEM°0 ;[1H°0$I[UN2w@PbTE°0$[°/!w@Pb°0$[öÖ)w@Pb¡F°1	$™1™b00°1
$ 2m ™bˆdi°1$0(C™Cb.0°1$[Cw@Pb&.0°2$[%PBw@PbLL°2 0'€°3^8Ê‘'tZpƒo“>ÕGà%xÕâ(°3^ ò]À2³»ú°NÙ°3$ 3=f#™bˆ**°3$l[& a"w@Pbes°3$['Pw@PbLL°5)$u[.ap4w@Pb  °6*$h/3€ce™ban°6+$ [0 
8w@Pb  °6,$ [/ bw@Pbst°6-$[1°')w@Pb™°6.$²[3
-£åè °N‹$Ú[P›%w@Pb®%°OŒ$™=™‘b00°O$>™bˆ1F°OŽ$™04™0Cb00°O$06C™Cb.0°O$r[Q^ %w@PbL °S$,[RD;w@Pb;P°Tž$‚sP0b,Ø°TŸ$s[S
w@Pb !°T $/3„™bRO°U¡$@™bˆ g°V¢$ [T1w@Pb
°V£$é8l÷ø6pbΰW¤^p!gé	#$ (
ü†÷yÄ_°Y®$BC™bˆ.0°Y¯ i09
P°Y¯ Ì0:€°Y° !6PG°Z±  A0 °Z²$ [V32"w@Pb91°[³$e[Wpe7w@Pb  °[´$C#™bˆù:°[µ$10<.3™Cb.0°[¶$B0= P#™pCb P°[· 0=ot€°`Á^#îýš´šŸ
ü"A	¾‘_¢”°`Â^ $òÕÑœˆ
°€" 
0Och°# 0M00°$ 0N°€€°%$P<É™bˆ¼—°‚&$-Ál-7!b5m°‚'$s[g  !w@Pbam°„0^i,ÿy;o ¤E·µ¤¼Çžè3!c&¬Ô
Ì°„1$ ‚yâ b.e°…2$`H™b j°…3$™‚z™‘b00°†4$>[i

Bw@Pb  °†5$/3Š°„™b ¤°‡6$tRha™bˆpp°‡7$/Nup$˜b g°ŒD$a0Urs™Cb,h°ŒE$70VBI#™pCb86°F^ -1„È
…_

==== ercm11/emas-2900/impview_impbugs_s7.txt ====
!TITLE Assignment of RECORDARRAY elements

  No code is generated for assignments of recordarray elements as folows

    %record(blah)%array ra(0:100)

    %integer i

       ra(i)=ra(i-1)


==== ercm11/emas-2900/impview_impbugs_s8.txt ====
!TITLE String comparisons 

  The code

   %if com(i) = d1_s

       etc

  compiles bad code, where "com" is a const()string array, and "d1" is a
  recordname

==== ercm11/emas-2900/impview_impbugs_s9.txt ====
!TITLE Reopening channel after end of file

If open input(n,file) is called after an EOF has been trapped by an %on %event
block for channel n, store can get corrupted. 

==== ercm11/emas-2900/util_detabs.txt ====
%EXTERNAL %ROUTINE DETAB(%STRING(63) FILE)
   %EXTERNAL %ROUTINE %SPEC DEFINE(%STRING(63) S)
   %EXTERNAL %ROUTINE %SPEC DESTROY(%STRING(63) FILES)
   %EXTERNAL %ROUTINE %SPEC COPY(%STRING(63) FILE LIST)
   %EXTERNAL %ROUTINE %SPEC CLOSE STREAM(%INTEGER S)
   %EXTERNAL %ROUTINE %SPEC RENAME(%STRING(63)FILES)
   %EXTERNAL %ROUTINE %SPEC CLEAR(%STRING(63) DEF)
   %EXTERNAL %INTEGER %FNSPEC OUTPOS
   %EXTERNAL %INTEGER %FN %SPEC EXIST(%STRING(63) FILE)
   
   %CONST %INTEGER  SAME = 22, DIFFERENT = 17, EM = 25, TAB = 9
   %INTEGER  MODE
   %INTEGER X

   %CONST %STRING(10) TEMP FILE = "TMP#DETAB"
   %STRING(63) INFILE, OUTFILE

   %IF FILE -> INFILE . ("/") . OUTFILE  %OR %C
       FILE -> INFILE . (",") . OUTFILE  %START
      %IF INFILE = OUTFILE %THEN MODE = SAME %ELSE MODE = DIFFERENT
   %FINISH %ELSE %START

==== ercm11/emas-2900/sharelib_display.txt ====
.EVENT 160240
@DISPLAY 161474
@EVENTBASE 161516
@CODEBASE 161520
@STACKBASE 161522

==== ercm11/emas-2900/startup.txt ====
parm free
setmode v=on,lower,w=80,flow=on
whichemas

==== ercm11/emas-2900/util_as.txt ====
%EXTERNAL %ROUTINE  A (%STRING(255) PARAM)
   ! MAKES '*' THE DEFAULT QUALIFIER FOR ANALYSE
   %EXTERNAL %ROUTINE %SPEC  ANALYSE (%STRING(255) S)
   %STRING (255) SCRAP
   PARAM = PARAM . ",*"  %UNLESS PARAM -> SCRAP.(",").SCRAP
   ANALYSE (PARAM)
%END

%END %OF %FILE

==== ercm11/emas-2900/x25_xxx1s.txt ====
!********************************
!*  emas-2900  fep  itp server  *
!*   file: xxx1/xxx1y         *
!*   date: 31.may.82             *
!********************************
!! stack size = 500
!*
!*  nsi version - include !n! statements
!*  ring version - !n! -> !n! and !r! -> {r}
!*

#if i
%control x'4001'
%include "b_deimosspecs"
#else
%control 1
%include "deimosperm"
#fi

%begin


==== ercm11/emas-2900/imp77pdx_endofin.txt ====
%include "FORMS"
%include "PROCS"

%external %predicate  END OF INPUT
   %true %unless got sym
   %false
%end

%end %of %file

==== ercm11/emas-2900/util_uppers.txt ====
%EXTERNAL %ROUTINE  UPPER (%STRING(255)%NAME S)
   %INTEGER L, C
   L = LENGTH(S)
   %WHILE L > 0 %CYCLE
      C = CHARNO (S, L)
      C = C - 'a' + 'A' %IF 'a' <= C <= 'z'
      CHARNO (S, L) = C
      L = L - 1
   %REPEAT
%END

%END %OF %FILE

==== ercm11/emas-2900/imp77pdx_flushout.txt ====
%include "CONSTS"
%include "FORMS"
%include "SEG7"
%include "PROCS"

%external %routine  FLUSH OUT %alias "IO$FLUSH"
   %return %if S7_outx == null
   %if S7_outx_type = char type %start;! Set up length to be written
      S7_outx_len = S7_outx_buffp - S7_outx_buffad
   %else;                              ! File - create or append?
      %if S7_outx_block = 0 %start;    ! Doesn't yet exist - open temp
         S7_outx_file_fname(1) = S7_outx_file_fname(1)!128
         dir fn (S7_outx, destroy);    ! Throw away old temp, if any.
         dir fn (S7_outx, create);     ! Make new temp (returns 1st block no)
      %else
         dir fn (S7_outx, append);     ! Find new disk block
      %finish
      %signal  9, 3, disc full %if S7_p_a = 0; ! No room on disk (or in Dir.)
   %finish
   dev fn (S7_outx, write fn);         ! Write to device or disk
   %if S7_outx_type = file type %start

==== ercm11/emas-2900/x25_gatex1y.txt ====
ß	ˆ`4ŠÀeß	\`7²g7Š¯g7ªg7Š§gÀdß	€`4
$´
$$WpÁe ÀwŠg1$-$2ïÃeôÂe´4ŠÀeß	\`÷¥Mf‡
‚×­`‡O	‚
ÃÝV‡Ãe±ÿ÷:g7ŠJ‡×­F‡D

Áß	Ì@
3
7Š,‡Yß	ÔQ­ß	¬H­ß	PÊ7­ð†wàô‹ÁÀdß	€`×­ð†?wBôÿÿ$´
$ÁÆß	`Á!Æß	`$Wp
aÁet
CÁ&Æß	`Á+Æß	`Á0Æß	`À
Áß	]ß	l]-$ÍÁ9Æß	`4
$´
$$WpÁe ÀwJfÉ‹SÀ$ß	]ÀÃ2f
ÁÒß	]ÀÃ"f
ÁÜß	ÂZ]Ãfô,ÁoÆß	`ÁtÆß	`ÀÃòe
ÁÜ
ß	]ÀÃàe
ÁÜß	]ÀÃÎe
ÁÜ
ß	]ÀüeÁß	]ÀìeÁß	]ß	l]-$27Š¦…×­¢…F7Šš…ß	 S·
tk×-pkwþ7

==== ercm11/emas-2900/x25_xxx1y.txt ====
,XXX °Ñ ¼°Àÿ@©À	xxx...1a
ô


Wp$@ÀezÄÁ*Àß	tg
ð4
4

´


WpÁe6ÀwL_1
-
2ï÷2ÄB_Ã>_óþÿ÷VÄ4_Â0_òÿÿÁÀß	ðf
ß	lgÕÕÕß	`gt
ÕÕÕß	`gt
7
Ìôÿÿ
´


==== ercm11/emas-2900/makeshare.txt ====
%externalroutinespec destroy(%string(255) s)
%externalroutinespec prompt(%string(15) s)
%externalroutinespec link11(%string(255) s)
%externalroutinespec define(%string(255) s)
%begin
%conststring(14) entry name = "DISPATCHVECTOR"

%recordformat sbf((%string(255) s) %or (%byteintegerarray b(0:255)))
%record(sbf) sb, f, g

%integer n,i
%constinteger maxvec=100

%routine putw(%integer n)

  print ch(n&x'ff')
  print ch((n>>8)&x'ff')
  
%end

%routine putb(%integer n)

==== ercm11/emas-2900/imp11pd_lib77r.txt ====
3
ABANDONOUTIO$FLUSH8BASENAMEEXPANDPERM$BPERM$FPERM$JpCALLERIDIO$CHECKPERM$ACLIPARAMPERM$Bt
CLOSEINPUTPERM$B,
CLOSEOUTPUIO$DIRFNIO$FLUSHPERM$BLIO$CONSPERM$BPERM$FIO$DEVFN$PONOFF(IO$DIRFN$PONOFFP
ENDOFINPUT	IO$GOTSYMPERM$B.EVENTEVENTNEXISTSIO$DIRFNIO$PARSEPERM$BXEXPANDIO$PARSEIO$CONSPERM$BPERM$FPERM$VPIO$FLUSHIO$DIRFNIO$DEVFN	IO$SETEOTPERM$BPERM$V FSYS	IO$GOTSYM$PONOFFIO$DIRFNIO$DEVFNÔIDIMPGO0EVENT$GO$EXITdIMPGO1
PRINTSTRIN
SELECTOUTPEVENT$GO
MONITOREVEIO$INIT$EXITx˜IMP$GO2

PRINTSYMBO
PRINTSTRIN
SELECTOUTPEVENT$GOIO$INIT$EXIT
MONITOREVE
SETSTREAMSCLIPARAMPERM$VPERM$FPERM$J 	IMP$STOP0	IMP$STOP1NEWLINE
SELECTOUTP
CLOSEOUTPU
ABANDONOUTT
INFILENAMEIO$CONSPERM$BPERM$F,IO$INITPERM$F´INSTREAMINTCHARINTYPEIO$MOS
SELECTOUTP
CLOSEOUTPUIO$CHECKPERM$Bp
NEXTSYMBOL	IO$GOTSYMPERM$V¸IO$OPEN	IO$SETEOTIO$PARSEPERM$B	$NSTREAMSPERM$V€	OPENINPUT
SELECTINPU.EVENTIO$OPENIO$DIRFNIO$CHECKPERM$BPERM$FPERM$V¼

==== ercm11/emas-2900/util_es.txt ====
%EXTERNAL %ROUTINE %SPEC  PROMPT (%STRING(15) P)
%EXTERNAL %ROUTINE %SPEC  READ LINE (%STRING(255)%NAME LINE)
%EXTERNAL %ROUTINE %SPEC  UPPER (%STRING(255)%NAME S)
%EXTERNAL %INTEGER %FN %SPEC  EXIST (%STRING(255) FILE)
%EXTERNAL %ROUTINE  E (%STRING(255) FILE)
   ! MAKES E BEHAVE AS ON VAX, IE CREATING NEW FILE ETC...
   %EXTERNAL %ROUTINE %SPEC  ECCE (%STRING(255) FILE)
   %STRING(255) IN, OUT
   IN = ""; OUT = ""
   PROMPT ("File: ")
   READ LINE (FILE) %WHILE FILE = ""
   UPPER (FILE)
   %UNLESS FILE -> IN.("/").OUT %START
      OUT = FILE
      %IF EXIST (FILE) = 0 %START
         PRINT STRING ("Creating new file ")
         PRINT STRING (OUT)
         NEWLINE
         OUT = "/".OUT
      %FINISH
   %FINISH %ELSE %START

==== ercm11/emas-2900/imp77pdx_devfn.txt ====
%include "CONSTS"
%include "FORMS"
%include "SEG7"

%control 0

%external %routine  DEV FN %alias "IO$DEVFN"  %c
                           (%record(sdfm) %name x, %integer func)
   S7_p_a     = func;                   ! Read/write
   S7_p_ser   = x_ser
   S7_p_reply = S7_id
   S7_p_b     = x_buffad;               ! Start of stream buffer
   S7_p_c     = x_block;                ! Disk address or output length
   ponoff (S7_p)
%end

%end %of %file

==== ercm11/emas-2900/impview_comments.txt ====
!TITLE Comments, bug reports, etc.
Please type any bugs, comments etc here
!MAIL imp11bugs

==== ercm11/emas-2900/x25_rolbx1y.txt ====
-þÿüÿÂ`
Üm
tô
þÿìüÿÂ`Áe…„‡ÁÀ…„‡ÞjJ”@&fUDÅeC
ÂÜB`Âeß	PQüÿ
ÂÜ
ßþÿB`‚
³…„‡ŽVFØ@&fU
DÅeó•ó$Ÿ3Š3Šs	3ÀÀeß	ôP…„‡†>A&f
DÅeó•óæžó•3ÀÀeß	ôP…„‡vVPA&fÎå
DÅeó•ó¬ž3úÿ3üÿ3þÿó*ó•	ÀÀeß	ôP…„‡¦9¢ A&f
DÅeó•ó^ž3Š3ŠÀÀeß	QÂ2ŠÀZÂß	”@ÀÔÄÁß	”@ÀtÂÁß	”@ÀÔÄÁß	”@ó•óžó•3Šó•	ÀÀeß	ôP…„‡>ÄFailed to turn Disc check offWhole disc written
Failed üò<B&DÅeÃp‚$ôr‚
ôÄ4
4
Àe
ß	Q-	ÁÖÄß	œPÀß	Nß	pN
@ß	ÀL÷-"‚"‚
ÁôÄß	œP÷‚„‡ô‚
ô`ôô¶ÂÃîÃ]øôÀe
ß	QÁÅß	œPÀÁÆß	NÁÅß	œPÀß	Nß	pN-·
ž÷¢„‡Úü˜C&fu
DÅe
v(C&fU5DÅet’4Š…„‡ôÂe´


==== ercm11/emas-2900/preppd_oprepd.txt ====
{Prepare PREP for DEIMOS}
prep preppd_preps,prep#imp,d
imp11 prep#imp
link11 /prep
prep
ercm11.shr
.fixup ercm11.shr#fix
.end
prep
destroy prep#imp,prep#rel,prep#lst

==== ercm11/emas-2900/preppd_oprepe.txt ====
!Prepare PREP for EMAS
prep preppd_preps,prep#imp,e
imp80 prep#imp,prepy
destroy prep#imp

==== ercm11/emas-2900/imp77pdx_exists.txt ====
%include "CONSTS"
%include "FORMS"
%include "SEG7"
%include "PROCS"

%external %predicate  EXISTS (%string(*)%name file, %integer n)
   ! Note the string param frigg as usual..
   %record(sdfm)  t
   %if parse (file, t) %start
      %if t_type = file type %start;   ! Look for file
         t_block = 0;                  ! Want first block no
         dir fn (t, examine)
         %false %if t_block = 0
      %finish
      %true
   %finish
   %false
%end

%end %of %file

==== ercm11/emas-2900/imp77pdx_nextsym.txt ====
%include "CONSTS"
%include "FORMS"
%include "SEG7"
%include "PROCS"

%control 0

%external %integer %function  NEXT SYMBOL
   %result = S7_inx_sym %if got sym
   %signal 9, 1
%end

%end %of %file

==== ercm11/emas-2900/x25_rjesx1y.txt ====
×t3*Àóÿÿ6ÀÃe(Àô
Ëg÷
g-è÷þa÷Úa÷ôa
ß	ÐdÕÕÕß	¼dtÕÕÕß	¼dt÷(À–a÷’a’a÷HÀŽaô
Áß	Ø@ô
Áß	Ø@4
´
ô•ôNô•
4ŠÃ`Ã`ÁÁeÀÆÂeß	eÀeß	”d-Þ5_Àôß	Èd4ŠÀeß	¤d÷¥M
‚×­P	‚
ÃÝÃe±ÿ÷äf7Šø€×­ô€?9ô´
×tÃe(À÷È`×,ÿÿ ÁXËß	Ldß	TBÁ]Ëß	LdÀä`Áß	`aÁaËß	LdÀÃŒ`Áß	`aß	´a-(Î7Š‚€ß	´a÷¥0x€‚×­r€9‚
ÃÝh€ÃeÐÿ×p
÷Ff7ŠX€­ß	¼H‘­ß	ÜCŠ­Àe“V`ß	ôO€ô‹wöþô)ô
×tÃe(À÷ö_×,
Áß	`LêÀôß	Èdw¸þÆ:(@&
DÅeß	TBß	´a4
´
ÁgËß	Ld-
öˆ„‡jï‚\@&fÎå
DÅe-úÿ·
¦…üÿÃEÿ?Ã%À=üÿ?ß	(@ó•ózŸ3úÿ3üÿ3þÿÂl³œ³œ	ÀÀeß	”d…„‡þ6>Ø@&fU
DÅeó•ó$Ÿs3ÀÀeß	”d…„‡vo~A&f
DÅeÀ%4Š
ô•

==== ercm11/emas-2900/gss3mar86.txt ====
úÈ
^ #paÚ¾Â	´6­éÃÊ.!´oðó%bt úÐ
	^úÐ
^=#paÚ¾Â	´6­éÃÊ.!´oðó%bt úÖ
 t
 ,	ßúÙ
^”"”­HúÙ

^ƒd‚‹63±ƒÍ"üµ•mhi
‹	O'ÁiºX“úÝ
$
ÖndPPbÂ'úâ
^xVC¬t+$úâ
^rúç
 dˆ,|DAúç
$A¡b
w
úñ
 lÖe
úø
$
ÚD Pb™ßû#
$-A¢--b
--û?
 #îÚÀá	û@
^†½…18'²€Ï"E›luZji
Ž	R(oe¼JMû[
$

ndPb
û_
$A£b
5 û„
 E
CAJû˜
$A¤b
Pû¥
$Î×PPPbû²
 î×
·û×
$A¥Aób
oÞü
$A¦—Mb
–Òü<
$

ndPbÃýüO
 $A§p b
tLü]
!$Ij  PPbÊüm
" jŸB3€ü‹
#$A¨b
œCüÈ
$ #ûZdüÈ
$$ A©4
b
b
üÐ
% P:&v'üÐ
%$áØ^´PPbÓ`ü×
& ïØ:Ìý
(^
Ô)¢¯Ù¨	,wŠ]NŸîŽÔZ#¶ˆý
' i
?ý
'$ AªõÐb
gªý@
) g_a	üÎý@
)$A«b
ÞŽýf
* gaFýf
* 
Q£ýf
* øûòå­ý|
+$A¬b
thý¸
, `
8#i@ý¸
, ¦à¬çý¸
,$VA­yæb
H¿ýà
- #Ú›ÿõVýà
- 3ÔwûàGýà
-$<ÛäPbúëýô
.$@A®b
S¼ýþ
/ Ñ
âÒ£ýþ
/$ÙPPb‚eþ
0 óÙìDþ0
1$A¯Ób
µþl
2$A°b
”þ¨
3$þA±<b
©5þÔ
4$P<@PbäæþÛ
5 ¾
îçŠÈþä
6$A²b
iÿ 
7$üA³ñ_b
gËÿ+
8$ÚPPbP€ÿ2
9 Ú¯ÿ\
:$A´Ž	b
.ÿ}
;$
Û
NPPb))ÿ˜
<$ÔAµKb
œ¶ÿÂ
= ®ÛPe0ÿÔ
>$¿A¶P7b

?$åA·“Öb
!
@$Üb™PPbÌÿ3
A 9:q'3
A ÜPL
B ÿi@©DHL
B$A¸b
îIT
C$·ÝÜPPb=×]
D Ýj
E Ö_!
Â+j
E á
ó ù¸†
F$A¹;öb
–ÝÄ
G <edTÄ
G µLUFÄ
G$Aºb
Š)Ì
H %
Q
I ¦&éç
I ³Ûd'
I$ÊA»»õb
ô4
J úÚ”4ˆ4
J Ôùd$U=
K$öA¼øGb
s,y
L$A½zÞb
Q§‚
M$ÞPPbLˆ†
N$
ündPb¾µˆ
O ÞÜ µ
P$ A¾isb
;èÀ
Q (üuYÅ
R$ÁýÎZPböðê
S^èè'µAPÆd‚h¬Ë®ìW¸ò¢¾’Ókê
T^?ª5ˆA¸Vjî
U ÛeÝ9ñ
V$A¿b
ÿò
W^Ò„Õ‡häçoË
óy¦
J¢ýsS	"è!›Bò
X^¼¾g	û
Y^}6ݶz”ƒ÷‡·¶Aiæ(õ@ì	Vû
Z^ß^¦	YÛ3Û*Þuriô+£':ŵJv2¿€
[^>¬l°»[d8£u	»Ó\ÊÒsØ
øý=)60Ü›|W
\^)(Y£‘7¤0J5¤>ª¶ 	’¸<

]^9	

^^
Ö‡*5±F©ã,£Ø£N¢…(òö#ü$
_^6

«"³6üI
Ÿ.I

`^èÆyv€Äý#ðjÎdaR£
µ-ö	ƒ6¸qš
a^£
vå=
æ›*Ê+ÜS·-†8
b^ñ(
c^ R.P~FÐcAÚ³§í|råsP‚¡Æ0(
d^ „
,!
…
ÌÏ	uÒaßLß-
e$EAÀs b
 1
f^J1
g^ò,o`ý	ð6±@XãØÞ.¡"3f

==== ercm11/emas-2900/imp77pdx_gotsym.txt ====
%include "CONSTS"
%include "FORMS"
%include "SEG7"
%include "PROCS"

%control 0

%external %predicate  GOT SYM %alias "IO$GOTSYM"
   -> false %if S7_inx == null;             ! Permanent EOF from .N
   %if S7_inx_state # valid %start
      -> false %if S7_inx_state = EOF
      ! Invalid - try to get next character
      %if S7_inx_buffp = S7_inx_ebp %start; ! At end of buffer
         -> nogo %if S7_inx_type = file type %and
                     S7_inx_block = 0;      ! No more blocks
         %if S7_inx_type = char type %start;! Put out prompt
            S7_p_ser   = S7_inx_ser
            S7_p_reply = S7_id
            S7_p_a     = write fn
            S7_p_b     = addr(S7_prompt) + 1
            S7_p_c     = length(S7_prompt)

==== ercm11/emas-2900/util_dumps.txt ====
%external %routine  DUMP (%string(63) fname)
   %external %integer %function %spec  EXIST (%string(31) file)
   %external %integer %function %spec  SMADDR (%integer chan,%integername len)
   %external %routine %spec  DEFINE (%string(63) def)
   %external %routine %spec  CLEAR (%string(63) chan)
   %external %routine %spec  CLOSESM (%integer chan no)

   %string(63) out
   %integer pos, ad, len, ch, bpos

   %const %byteinteger %array hexchar(0:15) = %c
         '0','1','2','3','4','5','6','7',
         '8','9','A','B','C','D','E','F'

   %routine  PHEX (%integer n, p)
      %integer j
      %cycle j = p*4 - 4, -4, 0
         print symbol (hexchar((n >> j) & x'f'))
      %repeat
   %end


==== ercm11/emas-2900/util_unixs.txt ====
!
! File:   UNIXS
!
! UNIX - EMAS Communications Software
!
! Based on ERCC Microcomputer Support
! Group   Micro - EMAS routines.
!
! Author: Mark Taunton, ERCC
!
! Date:   9th September 1980
!
!
%external %routine %spec       copy     (%string(63) f1f2)
%external %routine %spec      setmode  (%string(63) mode)
%external %routine %spec      messages (%string(63) state)
%external %routine %spec      destroy  (%string(63) file)
%external %routine %spec      define   (%string(63) defs)
%external %routine %spec      clear    (%string(63) stno)
%external %integer %fn %spec  exist    (%string(63) file)


==== ercm11/emas-2900/gss24dec86.txt ====
6þ$nW33w0b	.D`ÿ ˆ
REAÜE`ÿ  
O  ’x`ÿ  	êqt¡qf$	ïaCwbd „ ð
F[mŒ~„$Xw0b	; Ò '
J tDÒ  m

$ªÒ _j__*mž  hm ‚äž$Y0w0b	LLžè^0ZL¤HlO8>[L½zµ·6&qÿ'"Ÿ
 ®‡uŸ
 [Ÿ
 géŸ
 H	ï0rrŸ$;	ñmtCwb5,Ÿ/
 …


"fá0NV”(~ÅGæ¢2=^nm°$-$/ñÐô¼Ù¿¢;>^."Á‹ k
ç^4n08
 ÈgX 	·¢;?^9BmTh
&¢VE^X
¥ƒˆ‚Håj¢VF^-¢mGge{Jq  ¢mG m
ð/ ¢pH$g5w0	b	[2¢vI$
ñ™b  ¢…J H	÷[þ8¢‹K$	û
Cwb)
¢ÂL 
ñi£²W$j0w0b	LL£¿X$
ô@w	ble£ÄY$
õ|wbno£ÆZ$kw0b	[K£Ô[ d0ŠY¤\ H
õ0r¤
] ›r¤^$;
ö7mwb: ¤_$	üwb.J¤`$lw0b	0 ¤¦l$
nnvw0b	on¤·m$s
û  b	s ¤¼n$¥iCwbws¤Åo$
ü ˜bs ¤Íp  
ü 0
¤×q   58‡¤Úr$ 
ý -˜b  ¤Ýs$¦8C˜bor¤ît$:§1C˜bto¥u  ¥(d¥ v 0
ý
vJ¥]€$
ÿ˜b  ¥_ I	ý R¥p‚$	þC˜baô¥uƒ  	òun®’¥Ê„ H
S4¥Ê„ f
Q*Y¥Ê„ å
LÊ9¥Î…$
qAMw0b	VE¥Ò† 
ÿc÷¿¥Ú‡$
 ˜b

==== ercm11/emas-2900/shared#fix.txt ====
.EVENT 160240
@DISPLAY 161474
@EVENTBASE 161516
@CODEBASE 161520
@STACKBASE 161522
@GLABASE 161524
@EVENTTOP 161526
@INITSP 161530
@IOAREA 161532
@IOTOP 161534
@NSTREAMS 161536
NEWLINE @000002
PRINTSTRING @000004
ITOS @000006
WRITE @000010
NEWPAGE @000012
NEWLINES @000014
SPACE @000016
SPACES @000020
READOCTAL @000022
READHEX @000024

==== ercm11/emas-2900/shared.txt ====
NEWLINE
PRINTSTRING
ITOS
WRITE
NEWPAGE
NEWLINES
SPACE
SPACES
READOCTAL
READHEX
READ
WRITEOCTAL
WRITEHEX
P#CONSIG
P#SIGNAL
P#SMOVE
P#SCONC
P#SJAM1
P#SJAM2
P#SPMOVE
P#SCOMP

==== ercm11/emas-2900/tables.txt ====
   %const %integer  max predef = 197
   %const %integer  max code = 148
   %const %integer  max pseudo = 25
   %const %integer  max regdef = 24
   %const %byte %array  regnos (1 : max regdef) =
      0, 1, 2, 3, 4, 4, 5, 5, 6, 6, 7, 7, 0, 0, 1, 1,
      2, 2, 3, 3, 4, 4, 5, 5
   %const %integer %array  inst code (1 : max code) =
      8_000240, 8_005000, 8_105000, 8_005300, 
      8_105300, 8_005200, 8_105200, 8_005400, 
      8_105400, 8_005700, 8_105700, 8_005100, 
      8_105100, 8_006200, 8_106200, 8_006300, 
      8_106300, 8_072000, 8_073000, 8_005500, 
      8_105500, 8_005600, 8_105600, 8_006700, 
      8_006100, 8_106100, 8_006000, 8_106000, 
      8_000300, 8_075000, 8_075010, 8_075020, 
      8_075030, 8_010000, 8_110000, 8_060000, 
      8_160000, 8_020000, 8_120000, 8_070000, 
      8_071000, 8_074000, 8_050000, 8_150000, 
      8_030000, 8_130000, 8_040000, 8_140000, 
      8_000400, 8_001400, 8_001000, 8_100400, 

==== ercm11/emas-2900/gss19sep85.txt ====
ìoï^rìtí 0anìtí^d’$‹32ìtí$T- tC™b eìxð K-,,ìñ$B.l,C™bADì©ò snolÚì©ò r.^rì²ó 0
A,!ì²ó$^/bt™b45ìÉô n
BM„æìÉô$f™b  ìÜõ$×  B)™PbõîìÜö  2 ³í÷ ,
LAáí÷ ,/,Bíø w
rt´åíø$i0leC)™b  íù T
R ìí;ú r)k`‡7í;ú 9,.5À3í>û$k17rC™bbeíZü  0  ?íZü$ 7 ™	b  íný LCOe;íný 1is*íŸþ S1EC
íŸþ ES,8•íŸþ$.ey™	b,,í±ÿ .0anlî or2*î 2r2X‹î retî 
0
.î$2™bMcîO 9).5zuîm$Êer™bGNîu 42r2î‹$P3%Pb  îá  ³îë$e!^o•Pbteîñ	  !  îø
$ 4  ™breïW m	 lü[ïW =te%	ï^ :0 ñï^$t5n:™b/ ïŒ
 
,3Ô€ïŒ
 ,,EŽï$™bc
ï  .c*ïš RIOïš$"P%™Pbedï­ M" P
ï®$^#  P	PPbd ï¼  D eï¼ €# r0ïÚ e( 7ïÚ$L6--C	Pb--ïÚ ð /ïß$ $785PPb
 *ð tð P5 P!ð$P76	PbRMð   EDá#ð   45
mð@ 
 7!ð@$8™bwiðI a89/ð[  
  cmð[$r	b
GNðc :isôrðo  
  ìðo$:	b
#Oðo$
%faPPb
otðt $ðo	b
ðy!$C	b
osð}"$e
F	b
*Sð‡# !6ð‡#$R9
™b  ð$ 
9-rð¥% t7FPnð¥%$F	b
*Sð©&$af.	b
# ð®'$	b
  ð°( 91.06ð³)$Ì:C™b.ð³*$FER	b
ypð¶+ 3ð¥íXð¸,$C	b
osðÐ- R:: ðÐ-$m m	b
thðÕ.$ ob	b
, ðÚ/$E  	b
-Hðß0$Ì	b
ƒðä1 ÿTP‚¢ðä1$eot	b

Cðå2$;%Pbƒñ3 U;ISñ3$g 22P	b05ñ$4  46°ñ$4 Žñ75     óñ76$&PPb
usñ97 ·±´±ñ:8 Ì
…ƒcñ:9 EASLCñ<: 	ñ9µÅcñ@;$td+™bc
ñ@< ÅñC=$
™b5~ñE>$™bÅñH?$
™bWñH@$<™b )ñIA .<.7ñIB r
umñKC Y
BUñRD$T=(3™bieñ}E ñ„F$#..™b )ñ„G ñ‰H$	C™b  ñ‰I  	0 ñ£J 
=0 ñ£K$
ñ„™
Cñ§L$ ™
Cilñ«M$™b 0ñ«N ñ­O$7>me™b.SñÃP$5

==== ercm11/emas-2900/imp77pdx_link77.txt ====
!
! Linker for DEIMOS
!
! Takes PSR relocatable format object files
! and produces absolute loader format file.
!
! Adapted by Mark Taunton, 80/81, from
! original program by Peter S. Robertson.
!
! CCUTIL comments:  D - DEIMOS  E - EMAS  V - VMS
!

! System-dependent configuration parameters

!V! %const %integer  tty type    = 1;           ! Value from IN TYPE
{DE}%const %integer  tty type    = 0
!V! %const %integer  fatal       = 16_1000002c; ! Error code to EXIT (VMS)
!V! %const %integer  max f       = 127;         ! Length of file name
!D! %const %integer  max f       = 12
{E} %const %integer  max f       = 31
!V! %const %integer  max clp     = 127;         ! Max size of CLIPARAM

==== ercm11/emas-2900/x25_parr3xs.txt ====
!*********************
!*  parr3xs/parr3xy *
!* date: 13.jul.81  *
!* modified for fep  *
!*********************
!stack = 140


%control 1
%include "deimosperm"


%conststring (7) vsn = "vsn0x1a"
%begin
      %recordformat parrf(%integer rcsr, rbc, rba, rvec, %c
        tcsr, tbc, tba, tvec)

      %ownrecord (parrf) %name pa == 1


      %constinteger kernel ser = 10;  ! 29 is node, 10 is fep (ie gate)

==== ercm11/emas-2900/x25_parr3xy.txt ====
,PARRÈÂôÈÐÿ@©,E&MDÅefR(@&fDÅeôôeýÿþÿ¡Â
üÃEøÿÀÀe0ß	Hêß	@I…„‡žk&t@ÁjÀß	LÀÁ˜ß	 IÀ:ß	H‡@¯ª”@&
DÅe
À|ß	¸LÀvß	¸LÃeô
&¼
‚`ÁWt
UÕÕ>ŸŠ´ß	|LsNÀ€t

ÕŸŠß	|Lt/Ö
ß	ÀLÃþ~ÂÁE@K€ÃU@Ê„‡JW¢8A&
DÅeÃÃeô×tóÿÃEøÿÃ`ôNÀß	t@ÁnÀß	LÿÃE?à×túÿÃEüô`ÂEÿ—túÿÂEü´
ÁEÀÿt@`4Ãh~óÿ‹3ÁBÂU@‹÷`~„‡:dÊÔA&f
DÅe
ÜÃeÂ(~ò
0Š0Š×-6~ð•Àe4tóÿÀEøÿ`4NÀß	t@Á‚Àß	LÿÃE?à×túÿÃEüô`ÂEÿ—túÿÂEü´Á¸}±ÀEÀÿ×t`ñB€ÀU@1÷ }…„‡ŽÎ6˜B÷•
„}÷v}Â}ó•7t}wr}ób}À"Àß	HL‡`fÈB&fDÅe÷•H}÷:C}÷>}Ã@}3ð‹×-B}×-J=
À"Àß	HL4È4}70}·
}…„‡Æ"&(C÷•ô|÷æœï|7
ì|7
ì|À"Àß	HL‡@”ŠHC&f
DÅeÃÞ|…„‡ß	t@Á–Àß	LþÿÀe0ß	Hß	tI
Áß	˜Bø|ÀDÀß	ÜLw²|÷•‚|÷tœ}|÷x|Ãz|sÀ"Àß	HLå÷t|…„‡4ÌC&f
DÅeÀjÃd|ôœ4Š	-
Àß	HCß	t@ÁœÀß	Lô:|þÿÃ|ÂÂeü´
ÁÂß	t@
Á¢Àß	LÁ¨Àß	Lß	tI·
ê{Àß	HCß	8AÃÞ{ß	t@Á±Àß	L
ß	˜B7

==== ercm11/emas-2900/unixs.txt ====
!
! File:   UNIXS
!
! UNIX - EMAS Communications Software
!
! Based on ERCC Microcomputer Support
! Group   Micro - EMAS routines.
!
! Author: Mark Taunton, ERCC
!
! Date:   9th September 1980
!
!
%external %routine %spec       copy     (%string(63) f1f2)
%external %routine %spec      setmode  (%string(63) mode)
%external %routine %spec      messages (%string(63) state)
%external %routine %spec      destroy  (%string(63) file)
%external %routine %spec      define   (%string(63) defs)
%external %routine %spec      clear    (%string(63) stno)
%external %integer %fn %spec  exist    (%string(63) file)


==== ercm11/emas-2900/x25_rjesx1.txt ====
%conststring (7) vsn = "vsnx01a"

!********************************
!*  emas-2900  fep  rje server  *
!*   file: rjesx1/rjesx1y       *
!*   date: 07.aug.81             *
!* modified for ring 27.oct.80
!********************************
!! stack size = 300

%control 1
%include "deimosperm"

%begin

      %recordformat am1f(%integer rxs, rxd, txs, txd)

      %ownrecord (am1f) %name l == 1;    ! supplied by am1 handler


      %recordformat ssmessagef(%bytearray a(0:240) %or %c

==== ercm11/emas-2900/u11_con11.txt ====
{V} %system %routine %spec  EXIT (%integer status)
%const %integer  max text = 10
{V}%const %integer  fatal err = 16_1000002C

%const %integer  report = 0, abs in = 1, rel out = 2

{DV}%begin
!E! %external %routine  CON11 (%string(maxclp) cliparam)
   %string(127) file = cliparam
   %ownstring(31) text type = "Entry point "
   %const %integer  maxcode = 20000
   %const %integer  glamod = 1, evmod = 2
   %const %integer  nrec = 200
   %integerarray code(-20:maxcode)
   %integer modules, len, check, at, s, p ,j, start, m
   %integer flag, specs, spec ad, spec index, size

   %recordformat efm(%integer start, finish, flag, %string(10) text)
   %recordformat sfm(%integer chain, index, %string(10) text)

   %record(efm)%array entry(1:nrec)

==== ercm11/emas-2900/x25_lmxots.txt ====
! file 'lmeots'
!**********************
!* lmeots/lmeoty   *
!* date: 20.may.81   *
!*********************
%conststring (13) vsn = "lmxs...1c "

! Prep options:-    t   -  itp over transport service
!                   x   -  xxx over transport service

#datestring

!! stack = 300, streams = 1

%control 1


%recordformat xf(%byteinteger unit,fsys,%byteintegerarray fname(0:5))
%include "deimosperm"
%begin


==== ercm11/emas-2900/x25_lmxoty.txt ====
,LMXO¸Ç¨¸Àÿ@©À
lmxs...1c 16/09/82|Á'Â&4I&MDÅeDF(@&fDÅeŠß	|QtÁ%

ÁŠ
tþÿÁeß	 Rì…„‡†æJh@&fU
DÅeó•ó”Ÿ3Šó•s	3ÀÀeß	XR…„‡ŽÄ>¬@&f
DÅeó•óRŸó•3ÀÀeß	XR…„‡v›Âä@&fDÅe4œ4Š	Àe4Àß	Oß	4Oß	4O4
4ôÿÿ/´
Ãø~-m´’
4Š
Á%@ß	NmÀ
ÁÒß	O´
-4
ß	hO4-Íß	hO
ß	<R…„‡~K A&fDÅeÁÔÃß	RÀþÿ
ÁÜß	OÁÚÃß	RÀþÿ
ÁÜß	OÁåÃß	RÀþÿ
ÁÜß	OÁðÃß	RÀþÿ
ÁÜß	OþÿÂ<ß	hOÀß	@OþÿÂÀ
Üß	OþÿÂ
Ütôÿÿ´
þÿÂ`ÀAœÁEÿß	OÃEðÿÃ%ß	hO4-âß	hO…„‡H
 Bæ¤B&fÎå
DÅe-úÿ*Ãl}×"üÿß	¬@…„‡Â
Ü

==== ercm11/emas-2900/imp77pdx_intchar.txt ====
%include  "CONSTS"
%include  "FORMS"
%include  "SEG7"

%control 0

%external %byte %map  INT CHAR
   %result == S7_int char
%end

%end %of %file



==== ercm11/emas-2900/imp11pd_linkhelp.txt ====
                    LINK11 Help Info   1/9/81

In response to "Link: " give required 'rel' file name(s) or any of the
following keywords (which may be abbreviated, if not ambiguous)

.STACK <dec. bytes>      ! Specify allowable stack space
.MAXSTACK                ! Maximise stack area available
.IMPURE                  ! Maximise data space (last code seg writeable)
.PURE                    ! Reverse of above (all code read-only)
.NOPERM                  ! Remove current perm file from search-list
.PERM  <perm file>       ! Specify alternative file to be searched for perms
.NOLIB                   ! Remove all libraries from search-list
.LIBRARY  <lib file>     ! Specify library to be added to search-list
.FIXUP <fix file>        ! Specify file defining (otherwise undefined) refs
.NAME <task id>          ! Set name of task (DEIMOS) 1-4 characters
.ENTRY <addr>            ! Specify absolute code entry address (octal) and...
.ALONE <start> <end>     ! Specify load area of store for stand-alone programs
.SHARE <segno>           ! Specify segment containing system-wide shared code
.CODEBASE <addr>         ! Define start of user store (with .SHARE)
.NOSHARE                 ! Cancel definition of shared segment
.OBJECT <load file>      ! Define output file for load image (binary)

==== ercm11/emas-2900/arpasites.txt ====

; DoD Internet Host Table
;   8-Jan-87
;  Version number 600
;
; Changes, corrections, comments or questions to (HOSTMASTER@SRI-NIC.ARPA)
;
; The format of this file is documented in RFC 952, "DoD Internet
; Host Table Specification", which is available online at SRI-NIC
; as the file
;              [SRI-NIC]<RFC>RFC952.TXT
;
; It may be retrieved via FTP using username ANONYMOUS with
; any password.
;
; The format for entries is:
;
; NET : NET-ADDR : NETNAME :
; GATEWAY : ADDR, ADDR : NAME : CPUTYPE : OPSYS : PROTOCOLS :
; HOST : ADDR, ALTERNATE-ADDR (if any): HOSTNAME,NICKNAME : CPUTYPE :
;   OPSYS : PROTOCOLS :

==== ercm11/emas-2900/x25_xprot.txt ====
!
!*************************************************
!*                                               *
!*       PSS X-25 Level 2 Protocol Handler       *
!*                                               *
!*                   XPROT                       *
!*                                               *
!*        Version 7.3    8 Feb  1982             *
!*                                               *
!*************************************************
!*
%CONTROL 1
!*
!********************************
!*                              *
!*       Declarations           *
!*                              *
!********************************

%BEGIN
!***** Configuration Information *****

==== ercm11/emas-2900/mss.txt ====
!
! MAKESHARE
!
!    Makeshare takes as input a PSR PDP-11 RELocatable
! object module, and a text file containing driving 
! information, and produces a DEIMOS absolute loader 
! format file for a shareable perm segment, and a 
! descriptor file in relocatable (linker input)
! format.  The load file contains all the code from
! the object, with a vector of transfer addresses
! loaded at the start.  The descriptor file contains
! the vector in the form of a set of absolute indirect 
! symbol definitions (eg PSYM = @20) and a glap area
! which defines certain control variables used by the
! the shared perm code and which are to be initialised
! by the linker using the normal reference mechanism. 
! This file is suitable for input to the linker, using
! the .SHARE keyword (normally done in the linker
! initialisation file). Currently all (non-code) refs
! remaining in the object file are assumed to refer to
! read-only data which will be allocated space, and

==== ercm11/emas-2900/x25_gatex1.txt ====
! file 'fep_gatex1'

%conststring (7) vsn = "vsn001a"

!****************************
!*  emas-2900  fep  gate    *
!*  file:  gatex1           *
!*  date:  07.aug.81        *
!****************************
!! stack size = 300
%owninteger own term = 72;            ! network address
%owninteger subattach flag = 74



%control 1

%include "deimosperm"
%externalstring (127) %fnspec itos(%integer i,j)

%begin

==== ercm11/emas-2900/gkb28nov86.txt ====
`P‘b87¬Ló[ o©hn¬Nó\$™07O™Hb00¬Nó]$™07R™AHb00¬Qóh$™¦™	b00¬Qói$G«d•b	p¬Qój Sók M+
A€
¬Sól$-§--b	--¬Uóm$1+¬.10•Cb	3
¬Vón$™07S™	Hb00¬Vóo V07SON¬Wór$4dd@wPbR¬[ó}$n­
w#•e	eq¬[ó~$¯#•1	02¬[ó$™¨™	b00¬[ó€ 0¨00¬\ó$a®&~•b	^'¬]óƒ$:©e
b	
¬_ó…$+®u0•Cb	es¬`ó†$u5n w0b	
¬¡ô&$nÆ,1#•S	3@¬¢ô' 0  ¬¢ô($:+½xt0•Cb	ou¬£ô*$a³.Bb	  ¬¤ô+$Ç`P‘b[7¬¤ô, Ǭ¨ô8 ÿ07~60¬ªô9$+¿D•CbIN¬«ô:$rÈd
#•6	12¬«ô;$
w0b  ¬Èô  07‰ L4¬Èô€$">Cw0b44¬Éô >	¬ÍôŒ$î?Hw0br¬Íô  ?> ¬ÍôŽ$+È0•Cb	Z¬Îô$3Ôm•b	P.¬Îô$™07™1Hb00¬Îô‘ 07ll¬Ïô’$É`b3™bU*¬Ðô•$™07™Hb00¬Ôô $@Ew0	w3¬Õô¡$l+Éor0•Cb	is¬Õô¤$1º1 b	 2¬Öô¥$aŠ  6•f	re¬×ô¦$m+Ê)0•Cb	q%¬×ô§$*+@* "bu#¬Øô¨$Ø'$•b	rc¬Øô©$A*esBbio¬Üô·$8¾ 1r1P€b
+Ñ  0•Cb	 o¬õô÷$aäIE•b	  ¬õôø 0½;P¬öôù$™07£™1Hb00¬öôú$07¤H™Hb.0¬öôû  07£d4¬øôü$™07¥™	Hb00¬øôý$É07¦  ™Hb	  ¬øôþ$
07§**™Hb	rc¬üõ
 oç :¬ýõ$A+Ò 40•Cb	39¬þõ$1¿  b	is¬ÿõ
$ +ªin@0•Cb	60¬ÿõ$(˜@ 	e ¬ÿõ$]+ÓPU0•Cb	  ¬ÿõ$_Àear1P€b•­õ$™07¨™AHb00­õ$ê¬ê6•	•­õ$rëat#•e	as­õ $cì[#• 	ym­õ#$P+Õ

0•Cb	NI­õ$$
À  b	 ~­	õ%$.+Ö.10•Cb	 :­
õ&$™07­™AHb00­
õ' 107­.1­õ3$rîat#•e	as­õ4$
ïnd#•7	  ­õ5$­•b	˜­õ7$+×­0•Cb	™­õ9$Áb	8€­õ:$ +Øly0•Cb	6 ­õ;$™07±™AHb00­õI$ÿò60#•0	8€­õJ$ ó %#•a	s ­õK^ÊÜ4­±ç^«É0Œ_¿
²èX>ЭõL^3 zYß³þËI»†Ø6,Á£
5z,ë±_OM4›¾4<CZ­õM$
+Ùqu0•Cb	  ­õN$Âeb	 I­õO$ H  w0b	  ­ õZ$07¹.0™Hb	  ­!õ[ 07·00­#õ\$õ#•o	l ­#õ]$ ö  #• 	  ­%õ`$Ž•b	  ­&õa$0Ä00b	.0­&õb$ +Û  0•Cb	 Y­'õc$r+Ü..0•Cb	  ­*õn$207½ve™Hb	  ­*õo PÆK['­*õp$ ø.1•b	.0­*õq$î+Ý@0•Cb	64­*õr 07»00­+õs 07©00M­-õt$ù#•o	l ­-õu$ ú 2#•1	  ­0õx$ Ç12b	4+­4õƒ$207Áha™Hb	
 ­4õ„$1ü  •b	,k­5õ…  +  dc­6õŠ 007¿R*­7õ‹$Aý  #• 	  ­7õŒ$þ*#•	-7­=õ™$
+áre0•Cb	i:­=õš$ÿC•b	 E­@õ›$™07Ä™‘Hb00­@õœ$807Å  ™Hb	C0­@õ$T07Æle™Hb	e ­Aõž r07¶t õ­Aõž$D#• 	  ­AõŸ$fn #•;	e­Aõ   07Ä  ­Fõ« ^ÞTLì|­Fõ¬$ I00Bw0b	0 ­Gõ¯$a+ãS 0•Cb	  ­Hõ°$  5•b	  ­Iõ± @07¶$+­Jõ²$™07É™‘Hb00­Jõ³$ 07ÊA ™Hb	si­Jõ´$m07ËRE™Hb	40­Jõµ a07É

==== ercm11/emas-2900/u11_nlib11.txt ====
! 
! LIB11
! 
!    Librarian for Imp77 PDP-11 relocatable object files.
!    
!    

! For EMAS Imp77 compatibility...
!E! %include "ERCM11.IMP77_SPECS"

{V} %system   %routine %spec  EXIT (%integer status)
{EV}%external %routine %spec  SET DEFAULT EXTENSION (%string(127) def)
{EV}%external %routine %spec  SET IMP77 STREAMS (%string(255) f, d, 
{EV}                                             %integer %name  err)
{DV}%external %string(255) %function %spec  CLI PARAM
    %external %string(255) %function %spec  LAST STREAM ERROR

%const %integer  max table = 400
%const %integer  max files = 70
%const %integer  max text  = 10


==== ercm11/emas-2900/sharelib_shared.txt ====
NEWLINE
PRINTSTRING
ITOS
WRITE
NEWPAGE
NEWLINES
SPACE
SPACES
READOCTAL
READHEX
READ
WRITEOCTAL
WRITEHEX
P#CONSIG
P#SIGNAL
P#SMOVE
P#SCONC
P#SJAM1
P#SJAM2
P#SPMOVE
P#SCOMP

==== ercm11/emas-2900/x25_xgate.txt ====

!**********************************************************
!*                                                        *
!*           PSS X-25 Level 3 Protocol Handler            *
!*                                                        *
!*                      XGATE                             *
!*                                                        *
!*                Version    8.15  29 Mar  1982           *
!*                                                        *
!**********************************************************
!*
%CONTROL 1
%BEGIN
!************************************
!*                                  *
!*          Declarations            *  
!*                                  *
!************************************
!*
!****** Constintegers ******
!*

==== ercm11/emas-2900/imp77_specs.txt ====
%external %routine %spec  PROMPT (%string(15) s)
%external %routine %spec  READ SYMBOL  %alias "I77#RSYM"  (%integer %name  sym)
%external %routine %spec  SKIP SYMBOL  %alias "I77#SSYM"
%external %routine %spec  PRINT SYMBOL %alias "I77#PSYM"  (%integer sym)
%external %routine %spec  WRITE        %alias "I77#WRITE" (%integer num, pl)
!%external %routine %spec  RTOS (%long %real num, %integer pl, dp)
!%external %routine %spec  PRINT %alias "I77#PRINT" (%long %real r, %integer p)
%external %routine %spec  CLOSE INPUT
%external %routine %spec  OPEN INPUT (%integer stm, %string(255) file)
%external %routine %spec  ABANDON INPUT
%external %routine %spec  RESET INPUT
%external %routine %spec  SELECT INPUT  %alias "I77#SELIN"  (%integer stream)
%external %routine %spec  SELECT OUTPUT %alias "I77#SELOUT" (%integer stream)
%external %routine %spec  OPEN OUTPUT (%integer stm, %string(255) file)
%external %routine %spec  CLOSE OUTPUT
%external %routine %spec  RESET OUTPUT
%external %integer %function %spec  REM (%integer a, b)
%external %integer %function %spec  NEXT SYMBOL %alias "I77#NSYM"
%external %integer %function %spec  IN TYPE
%external %integer %function %spec  OUT TYPE
%external %integer %function %spec  IN STREAM  %alias "I77#ISTRM"

==== ercm11/emas-2900/util_zs.txt ====
%external %routine  Z (%string(255) s)
   print ch (27)
   print ch ('v')
%end

%end %of %file

==== ercm11/emas-2900/imp77pdx_seg7.txt ====
! Segment 7 I/O layout included
%end %of %list

! Layout of segment 7: ALL I/O status variables live here.
! Hence any process calling   MAP VIRT (this id, 7, 7)  can pick
! up entire state of this process' I/O.
! See e.g. new IMP-77 compiler control process. Each pass maps its
! Seg 7 onto that of control process, and control proc. performs
! all opening/closing of files instead of individual passes. Hence
! less code is required to support each pass, easing shoe-horning
! problems!

%record %format  seg7fm ( %c
   %string(*)%name  param str,    { ->string param from parent via loader }
   %integer   load flag,          { Type of load: generally ignored?      }
   %byte      unit, fsys,         { Current disk + file system number     }
              callid, strm0id,    { Parent task, SER of TTY for this task }
              id, dummy1,         { Real identity of this task            }
   %integer   gvar,               { Var for GOT SYM - makes it go faster  }
   %record(sdfm) %name inx, outx, { -> current stream descriptors         }
   %string(31) prompt,            { Current prompt string                 }

==== ercm11/emas-2900/imp77pdx_closeout.txt ====
%include "CONSTS"
%include "FORMS"
%include "SEG7"
%include "PROCS"

%external %routine  CLOSE OUTPUT
   %if S7_outstrmx # 0 %and S7_outx ## null %start
      flush out
      %if S7_outx_type = file type %start
         dir fn (S7_outx, rentemp)
      %finish
      S7_outx_refs = S7_outx_refs - 1
      S7_outx == null
      S7_outstrm(S7_outstrmx) == null
   %finish
%end

%end %of %file

==== ercm11/emas-2900/gat3mar86.txt ====
•PSK 2Ÿ;P•SSL$ -$æ
  •TSM$î…‹P	C•TSN$n…Œ.fPr	Csf•TSO$…™Pænk•TSP 0…01•^SQ$/…Ž.P	CP•^SR$<…, P 	CLL•^SS$…™Pæ  •^ST 0…01•dSU$…‘1Pæer•dSV$…’CPæ  •hSW$™…“CPF	CLT•hSX$ …”  P	C•hSY$/…••J™Pæ•hSZ 0…•01•iS[$…– ™Pæ•iS\$™…˜™PæAI•iS]$™…—qPæ
e)•iS^ 0…–01•iS_$…™qPæ
•iS` ?…˜NE•jSa ¥…‘le
•kSb$B…›  Pæ
  •lSc$e…šnuPæ
eg•lSd "…’
•rSe$…œvP	Cti•rSf$
… uPR	C1 •rSg$ …žr ™Pæpt•rSh "…ž•wSi î	`9•zSj$ 	dPRC	™	æ**•|Sk$ …Ÿ
iPe	Cf •|Sl$… 0P
	C
C•|Sm$N…¡v™PæE,•|Sn 0…¡01•‚So$î敆Sp$…¢P 	CEN•†Sq$E…£dlPc	C'
•†Sr$…¤"i™PæW•†Ss 0…¤01•St$5…¥0 P 	C  •Su$…¦tP	Cse•Sv$r…§(o™Pæou•Sw 0…§01••Sx$0…¨5 ™Pæds••Sy$…ªK™Pæ••Sz$…©qPæ
ds••S{$ …«  qPæ
li••S| 0…¨01•–S} ?…ªNE•—S~$…­Pæ
S.•˜S$i…¬UPæ
  •šS€$È…®P	C
 •šS$l…¯enPd	Cn)•šS‚$n…°e ™Pæ u•šSƒ ¥…°le•¤S„$Ì…±  P 	C  •¤S…$E…²_Pa	C
•¤S†$…³™Pæ
™Pæ  •ÌS¡ 0…Å01•ÖS¢$î…ÆP	C•ÖS£$±…Ç  P 	C  •ÖS¤$2…È08™Pæes•ÖS¥ 0…È01•ÚS¦ ÿDF(•àS§  Åf Ê•àS§$…ÉP 	C  •àS¨$…Ê`rP7	C  •àS©$U…ËCK™Pæes•àSª 0…Ë01•ãS« S‡¦•äS¬$æ•êS­$5…Ì45P3	C  •êS®$n…ÍiaPe	C.'•êS¯$L…Îng™Pæ7,•êS° 0…Î01•íS±$…Ï ™Pæca•íS²$…Ñ™Pæ•íS³$…Ð
qPæ	Ces•íS´ 0…Ï01•íSµ$…ÒqPæ	C•íS¶ ?…ÑNE•ðS·$úe1™1æhe•ôS¸$…ÓP	C•ôS¹$0…ÔA P0	C C•ôSº$R…Õ  ™PæEQ•ôS» ¥…Õle•þS¼  	e  •þS¼$…ÖnP	C•þS½$…וôP	C•þS¾$:…Ø`r™Pæ  •þS¿ 0…Ø01–SÀ$O…Ù0 Pt	C  –SÁ$
…Ú uPR	C1 –SÂ$6…Û 1™Pæ  –SÃ 0…Û01–SÄ$™…ÜCP	C  –SÅ$E…ÝoaP
	Ce(–SÆ$Î…Þ™Pæ–SÇ 0…Þ01–SÈ U	c

–vSù$
†d:P
	Co:–vSú$l†Co™PæST–vSû 0†01–xSü$UrCK ™ æÊ–ySý$…þPæ–€Sþ$†P|	C  –€Sÿ$†-P	C–€T$ †  ™Pæ--–€T 0†01–€T$û1™1æ d–‡T 0…þ01–ŠT$S†erPn	C
–ŠT$†P0	C0 –ŠT$† ™Pære–ŠT "†C–”T  Õ  ,s–”T$†iP 	C  –”T	$^†	 IPS	CRC–”T
$†
™Pæ
Q–”T 0†
01––T  
   / –T
 Nç  –žT$†P	C
Q–žT$n†P	C--–žT$†
–™Pæ–žT 0†
01–¨T$î†P	C–¨T$
†ndPs	C5
–¨T$N† E™Pæ/M–¨T 0†01–²T E
  ˜–²T$î†P	C–²T$.†rvPm	Cni–²T$†a™PæO–²T 0†01–¼T$)†r
P	C–¼T$t†

™Pænt—TC 0†/01—TD È	f—TE$™	gC	™	æ n—TF$†0SPs	C2.—TG$†1—P	C—TH$/†2nd™PæL€—TI 0†201— TJ$™†3CP	C— TK$ †4ABP 	CPP— TL$†5™Pæ
— TM 0†501—)TN 

==== ercm11/emas-2900/imp77pdx_basename.txt ====
%external %string(12) %function %spec  EXPAND (%string(127) file)

%external %string(6) %function  BASE NAME (%string(127) file)
   %string(3) grot
   file = expand (file);                   ! If fails, %signal 9, 3, bad file
   %if file -> file . ("(") . grot %start; ! Normal file
      charno(file, 2) = length(file) - 2;  ! Cut out disc number + '.'
      %result = string(addr(file)+2)
   %finish
   %result = file;                         ! Device or ".N"
%end

%end %of %file

==== ercm11/emas-2900/gkb22feb86.txt ====
gi_œ$ E'  Pb
gl_$eÅt (Pb
ongv_¢$
Åg=(Pb
mg¨_Ä$iÅnd(Pb
  g²_È$ Å  (Pb
  gº_Í )ð	Çkgò_ï *apFBgò_ï$¤$•bgø_ò$Å%g(Pb
0gú_ó$ $„|™bsh4`$AÅ,RO(Pb
 Ch<`"$P$…OR™bROhz`F$>Å3~Y(Pb
 `h`I *$¸* /h‚`L$$¹CpP6b
h¬`c$Å9h¢(Pb
Ph¶`h$UÅ< b#Pb Oh¶`i$LÅ;L(Pb
Li`$~ÅE~G(Pb
 bi` $ý(™P(bd i`¡$LÅF(N(Pb
EMi`¤$
E, WPb

_i8`º$^ÅJ~G(Pb
JSi@`½ ¼+shai@`¾$2E-?fPb
JMiB`Á$ÅK(Pb
--i~`ä$ÅQ(Pb
  i`å$~$†:e™b, i†`è m+†’tt¾iˆ`é$:ÅR(Pb
iŠ`ì$$ºpP6b
™PiŽ`í$€•b  iÄa
$E1Pb
TSiÄa$_ÅX4r(Pb
55iÎa Î1™iÎa$ÅY(Pb
TSiÏa Lþ  
ja;$ÌC"bËja<$E4iØ@Pb
Pja=$2ÅaJF(Pb
FTja@ $„alÇjQam$Åh(Pb
  jQan$"
""(™P(b""jUaq$3•b  jVar 3jCjVat  )ð.0j—a¢$Åp(Pb
 ej™a¥$ E>35@Pb
 3j¡a¨$ÅqjŠ(Pb
Pj¡a© È5aej¡aª 
ŠcjÑaË$06

HPPb00jÒaÌ$EAPb
ORjÓaÍ$ ÅwNT(Pb
48jÔaÐ Åk™jÝaÓ$ÅxjÒ(Pb
Pkb$~Å‚~I(Pb
rmkb$~Ń~APb
  kb$Å„ #Pb  kb ÌÅ„k"b$2Å…  (Pb
20keb5$+†™k^6PCb
Pkfb6 :+†˜ºkhb7$IÅ(Pb
krb<$ ÅŽOR(Pb
[`k¡b]$Å—oPb
hek¤b^$~Ř@~(Pb
@~k¨ba$3Å™i #Pb
 ak®bd$ EI  Pb
65k®be$1ÅšAN(Pb
  kÚb…$
m„c·$EOPb
 m…c¸ 'CÈbm…c¹$ Åö  (P 
C  m…cº$Å÷86Pb

m†c»$2Åø.59Pb
CTmÈcè$ +†½:LPCb

 mÈcé$+†¿PCb
LˆmÈcê$Æ(Pb
Êcë$+†ÀLPCb
LˆmÍcî$H+†ÁIGPCb™nd$BÆ(Pb
Pnd Ö3
C.&©nd$ERHPb
Jrn	d$
Æss@(Pb
inn	d$4ÆCo(PE
C14n	d$Æn6Pb
Pn
d$pÆtb9Pb
6)nJdG$Æ(Pb
GOnMdJ^I eõ”ÙHЪ…Æ͹ì³(ÎcžO¸óþnMdK^^Ý
4êÛ6SDŸ1¦°„nèö$MñÑ5¨;K!nMdL ^(<TT
6„n•d…^_	ÙÖ
Œ¸­ÏM¹a’4ð$$n•d†^7
cxd=-T8pMR1&Ãt´¡Wn˜d‰  +†Æ  CnšdŠ$2Æ$29(Pb
.0nÔd¸^!O
$
aoá!u!S„‹ÈBŠ(¶enÔd¹^"‘(´¯	^AŸï/$ŸnÖdº$Æ*(Pb
	nÝd¾^#\ƒ­x&
‘ÀuÇodí^ì1odî^2rP56o–ÓZ+€æÆÕÎß!ª
r)} s¼	»odï$7Æ1om(Pb
7.oWe 

´“oXe$ Æ7o(Pb
–obe$ Æ8  (Pb
  ode$$ÃCpP6b
Po¤e7$EEXCPb
INo¨e:$4Æ?  (Pb
 Ao©e; A’Oo±e> Ò ZËoÚeW$ ÆDnt(Pb
  oäe\$nÆEec(Pb
 eoèe_ Ò1æp e$TÆKlt(Pb

Dp(e„ *gp(e„$E\hPb
p*e‡$ÆL (Pb
pce©$Ì$‹™b pfe¬$ÆR(Pb
pme¯$E_@Pb
  ppe°$
ÆS(Pb
p²eà$
)ó
A0Abrup¶eã$Æ[E(Pb
--pÀeè$Æ\((Pb
ªpòf$FÆa3
(Pb
S(púf$+†É
6PCb
™q/f*$Æh(Pb
 Lq1f-  ÆZesÐq9f0$Æi(Pb
q@f3$ Æj  #Pbs qAf4$Î@"bL€qxfV $Š{
q}fY$NÆr1 Pb
:
q~fZ$ +†Ì  6PCb
UCqf[$Æs(Pb
l q€f^$-ÆtIF€Pb  q¿f‰$Æq²#Pb
PqÃfŒ$
&:6b
	`qÃf$
nd(™P(b  qÅfŽ$oÆ€
 (Pb
enqÉf$dÆ  #Pb
  qÍf‘ ¼+„Iarf¾$Æ

==== ercm11/emas-2900/deimosperm.txt ====
!
!      specs for deimos perm routines
!
%externalroutinespec pon(%record(*) %name p)
%externalroutinespec poff(%record(*) %name p)
%externalroutinespec ponoff(%record(*) %name p)
%externalintegerfnspec mapvirt(%integer ser,seg1,seg2)
%externalintegerfnspec map abs(%integer vadd,len,id)
%externalintegerfnspec getid
%externalroutinespec alarm(%integer ticks)
%externalroutinespec linkin(%integer ser)
%externalroutinespec maphwr(%integer segs)
%externalintegerfnspec mappsect(%integer seg,task)
%externalroutinespec push(%record(*)%name q,%record(*)%name m)
%externalrecord(*)%mapspec pop(%record(*)%name q)
%externalintegerfnspec time
%externalroutinespec set prio(%integer prio)
%constbyteintegername own id==(8_160030);   !8.1 compiler bug
%constbyteintegername fsys == k'160055'
%constbyteintegername id == k'160030'
%constbyteintegername int==(8_160060)

==== ercm11/emas-2900/imp77pdx_consts.txt ====
! I/O package constants added
%end %of %list

! Operating constants
%const %integer  max streams = 5;      ! ie can select input/output 0-5
%const %integer  max units   = 10;     ! # of logical disk units allowed
%const %integer  max devs    = 10;     ! # of different device names
%const %integer  max fsys    = 8_77;   ! # of directories/logical disk

! Values for TYPE field in SDFM
%const %integer  null type = -1,
                 char type = 0,
                 file type = 1

! Values for STATE field (i.e. state of SYM)
%const %integer  valid   = 0,
                 invalid = 1,
                 EOF     = 2

! Error exit codes (event info in %signal)
%const %integer  FNF      = 25,     { File Not Found }

==== ercm11/emas-2900/gat15dec86.txt ====
'‡…$!ÈH˜æ	 '‘† …¢ˆ:'‘†$!ÉH˜æ	€'›‡$!ÊH˜æ	€'¥ˆ$!ËH˜æ	€'¯‰ ë#(Û9'¯‰$!ÌH˜æ	€'¶Š$ø2v™'æ€'¶‹ ø'C'¹Œ$!Í'¯˜æ	9(
H˜æ	€€*€ä ¶	+#*€ä$"H˜Pæ	*Šå$"€˜Pæ	*”æ$"H˜Pæ	86*žç Õ
vi3.*žç$"H˜Pæ	b*¨è$"˜Pæ	ly*²é$"H˜Pæ	h°*¼ê ö
/(,!÷*¼ê$"H˜Pæ	I*Æë$"H˜Pæ	!÷+4ö i¢Suˆ:+4ö$"'H˜Pæ	+:÷$ûv™'æri+:ø uûunC+>ù$"(H˜Pæ	‰	+Hú$")˜Pæ	˜+Rû #(Û9+Rû$"*H˜Pæ	€€+\ü$"+H˜Pæ	€€+fý$",H˜Pæ	€€+pþ$"-H˜Pæ	on+Ð	$e"7"d(˜PæBf+Ò
5$U"Wk ˜Pæ	ea-6$N€€-7$"X˜Pæ	s-8$"Y3˜Pæ	O'-(9$H"ZQ1˜Pæ	8`-2:$2"[1%˜Pæ	1F-xD$"bH˜Pæ	an-‚E$"c˜Pæ	i-ŒF$e"d  ˜Pæ	  -“G$þv™'æut-“H þ'C-–I$"eH˜Pæ	f - J$"fH˜Pæ	 s-ªK$Ì"g˜Pæ	 -´L$2"h -˜Pæ	h'-¾M$"iH˜Pæ	 c-äT^ü-æU$"mH˜Pæ	86-íV^
*Á—¾-íW^
**²!OȤ-ðX$"nH˜Pæ	86-öY^ *Í£-Ö¿.`^aR‚ÔA·Ä
ßd.a$"qH˜Pæ	en.b^o
¨V†œ¸ˆE	Ê+jq.c^&R‚ÔA½Ã
ëb.d$"rH˜Pæ	ly.e^3!5Ó¢á
˜Pæ	 p1Äë ã
%33.1Äë$"Ð
˜Pæ	 p1Îì$"Ñ
 23.5HR$#+H˜Pæ	˜5RS$#,R˜Pæ	==5\T$#-H˜Pæ	ma5 ]^ˆ‡Q¨1§ZøŠ——N7Gc‚,w©GÁ!5¢[ hMyo5¢[$e#4an˜Pæ	 b5¨^^sÿŠ,,ÿŠ+š+šýÇ	éôÂÒ5¨_^„5¬`^‚,*,*,9,9þÐ	ïqÑî5Ág$#7E˜Pæ	e 5Ãh^e	’´Ý»Ì Ö5Ãi^§
}Šö†5Èj$IP™'æ	5Ëk$#8˜Pæ	n5Ìl^®}ŠŸ	Š5Þt^.!5ð¿
ñ$#‹H˜Pæ	eF9ò$?#Œ!!˜Pæ	!N9ó$i#(P˜Pæ	VC9(ô MD9(ô$#ŽH˜Pæ	#!92õ$0#(4˜Pæ	h*9<ö$#H˜Pæ	'&9F÷$S#‘!!˜Pæ	$$9ª$#›H˜Pæ	ce9´$#œH˜Pæ	te9¾$#˜Pæ	99È$#žR˜Pæ	s 9Ò$#ŸP˜Pæ	s 9Ü$# H˜Pæ	Un9ã "ìÊ9æ$#¡H˜Pæ	A9ð	$#¢H˜Pæ	e 9ú
v™'æ˜=“ 
C=“€$$H˜Pæ	=™^

¨` œì¬R>o=«ˆ^"X˜0ðLàûLF=±‰$$H˜Pæ	he=´Š^c¼ø Ó	¢)=´‹^‰ Žœ âÓ¢=»Œ$$H˜Pæ	!`=½^;Zš4ôM÷þ«¨=Ï”^)0šj+Ô0„=Ï•$$H˜Pæ	 =Ø–^<Æ{ŸzŠ	{	ç.$N…KQ`=Ø—^hF†!mn ¾4t7:

==== ercm11/emas-2900/preppd_preps.txt ====
#if ~(d!e)
  #report One of d or e must be set
#fi
#if (d&e)
  #report Only one of d or e may be set
#fi
#if x
#report Debugging code added
#fi
#if d
!DEIMOS declerations
%systemroutinespec exit(%integer fault)
%externalstring(255)%mapspec cli param
%conststring(8) date="00/00/00"
%conststring(8) time="00:00:00"
#fi
#if e
  #report Preparing EMAS version of PREP
#else
  #report Preparing DEIMOS version of PREP
#fi

==== ercm11/emas-2900/imp#rel.txt ====

.ABANDON OUTPUT
ABANDONOUTPUTIO$FLUSH.






À4àÁà
Â
àß		

Ààð


à
Á4àÁ1
´á

‡.
P	BASE NAMEBASENAMEEXPANDP#SMOVEP#SRESP#SPMOVEN

&Dß		€U%

ß		ß		
N(À€aÕNß		†
“Àeþÿ4
Âa„‡

„‡
N
!	CALLER IDCALLERID
#
$
%
'
)
*Âà‡
+
-(CHECKIO$CHECKP#SIGNAL(
/
1
3&DU•
5 Á%ÁÀ	ß		
6B„‡
7(
9*SETCLI1CLIPARAMSETCLI1*
;
<
=
>
A
F
H

Iß
à
J
K

LÀà@c¢
W#xö
M
N@À
?
à
P‡*
R
TÂà‡
V*
WCLOSE INPUT
CLOSEINPUT
Y
Z
[
]
^À2à
Áà
_ñ

`
à
aÀ0
¨á
b
c‡
eø	CONSTRUCTIO$CONSP#SMOVEô
f
g
iM
k
l
m
nÁW"ÿÿ
oô.NÁôÂBaß		
phW"^
q
@ÜÀe05	
rõ•.

sõ
t
u
AAc@ÜÀE€ÿ5
v  
wÂBaBm

xµ

==== ercm11/emas-2900/util11_aliste.txt ====
!
! ALIST for IMP-11 programs.
!
! Takes the relocatable object file and the source file,
! producing a listing matching code addresses (relative to
! the file code-base) with the corresponding source lines.
!

{E} %include "ERCM11.IMP77_SPECS"

! stream usage:
%const %integer  source = 1, object = 2
%const %integer  listing = 1


!DV!%begin
{E} %external %routine  ALIST11 (%string(255) param)

   %switch  c (1:11)
   %integer  n, modules, module, ca, code, gla
   %const %string(39)  form err = "Form:  ALIST source,object/listing"

==== ercm11/emas-2900/imp77pdx_resetout.txt ====
%include "CONSTS"
%include "FORMS"
%include "SEG7"
%include "PROCS"

%external %routine  RESET OUTPUT
   %if S7_outx ## null %and S7_outx_type = file type %start
      S7_outx_buffp = S7_outx_buffad;   ! Zero buffer
      set EOT (S7_outx_buffad)
      S7_outx_block = 0;    ! FLUSH OUT will recreate temp
   %finish
%end

%end %of %file

==== ercm11/emas-2900/incs_consts.txt ====
! I/O package constants added
%end %of %list

! Operating constants
%const %integer  max streams = 5;      ! ie can select input/output 0-5
%const %integer  max units   = 10;     ! # of logical disk units allowed
%const %integer  max devs    = 10;     ! # of different device names
%const %integer  max fsys    = 8_77;   ! # of directories/logical disk

! Values for TYPE field in SDFM
%const %integer  null type = -1,
                 char type = 0,
                 file type = 1

! Values for STATE field (i.e. state of SYM)
%const %integer  valid   = 0,
                 invalid = 1,
                 EOF     = 2

! Error exit codes (event info in %signal)
%const %integer  FNF      = 25,     { File Not Found }

==== ercm11/emas-2900/u11_recode.txt ====
!
! RECODE for IMP programs.
!

%const %integer ext name len = 10
%const %integer max glap     = 8191
%const %integer max specs    = 100
%const %integer codelength   = 511
%const %integer linelength   = 54
%const %integer source       = 1
%const %integer object       = 2
%const %integer page         = 62
%const %string(3) tab        = "   "
%const %string(39) form err  = "Form is RECODE source,object/listing"

%const %integer %array doinstr(1:12) =
      8_010000, 8_020000, 8_030000, 8_040000,
      8_050000, 8_060000, 8_110000, 8_120000,
      8_130000, 8_140000, 8_150000, 8_160000

%const %string(5) %array domnem(1:12) =

==== ercm11/emas-2900/util_ndumps.txt ====
%external %routine %spec  DEFINE (%string(63) def)
%external %routine %spec  CLEAR  (%string(63) chan)
%external %routine %spec  CLOSESM (%integer chan no)
%external %integer %function %spec  EXIST (%string(31) file)
%external %integer %function %spec  SMADDR (%integer chan,%integername len)

%external %routine  NDUMP (%string(63) fname)
   %string(63) out
   %integer pos, ad, len, ch

   %const %byteinteger %array hexchar(0:15) = %c
         '0','1','2','3','4','5','6','7',
         '8','9','A','B','C','D','E','F'

   %routine  PHEX (%integer n, p)
      %integer j
      %cycle j = p*4 - 4, -4, 0
         print symbol (hexchar((n >> j) & x'f'))
      %repeat
   %end


==== ercm11/emas-2900/linkhelp.txt ====
Linker Help Info   1/9/81

In response to "Link: " give required 'rel' file name(s) or any of the
following keywords (which may be abbreviated, if not ambiguous)

.STACK <dec. bytes>      ! Specify allowable stack space
.MAXSTACK                ! Maximise stack area available
.IMPURE                  ! Maximise data space (last code seg writeable)
.PURE                    ! Reverse of above (all code read-only)
.NOPERM                  ! Remove current perm file from search-list
.PERM  <perm file>       ! Specify alternative file to be searched for perms
.NOLIB                   ! Remove all libraries from search-list
.LIBRARY  <lib file>     ! Specify library to be added to search-list
.FIXUP <fix file>        ! Specify file defining (otherwise undefined) refs
.NAME <task id>          ! Set name of task (DEIMOS) 1-4 characters
.ENTRY <addr>            ! Specify absolute code entry address (octal) and...
.ALONE <start> <end>     ! Specify load area of store for stand-alone programs
.SHARE <segno>           ! Specify segment containing system-wide shared code
.CODEBASE <addr>         ! Define start of user store (with .SHARE)
.NOSHARE                 ! Cancel definition of shared segment
.OBJECT <load file>      ! Define output file for load image (binary)

==== ercm11/emas-2900/u11_dump11.txt ====
%external %routine %spec  SET DEFAULT (%string(127) def)
%external %string(127) %function %spec  EXPAND (%string(127) spec)
%external %string(127) %function %spec  CLI PARAM
%external %string(127) %function %spec  SYS MESS (%integer no)
%external %string(127) %function %spec  IN FILE NAME

%begin
   %string(127)  file = cliparam
   %integer  check, record = 0
   %integer  n, s, a, l
   %record(eventfm) %name  ev

   %routine  GETCH (%integer %name s)
      read symbol (s)
      check = check + s
   %end

   %routine  OCTAL (%integer n)
      %integer j
      %for j = 15, -3, 0 %cycle
         print symbol (n>>j & 7 + '0')

==== ercm11/emas-2900/u11_alist.txt ====
!
! ALIST for IMP-11 programs.
!
! Takes a PDP-11 Imp77 relocatable object file, and its 
! source file, producing a listing matching code addresses 
! (relative to the file code-base) with the corresponding 
! source lines.
!

!E!  %include "ERCM11.IMP77_SPECS"
{EV} %external %routine %spec  SET IMP77 STREAMS (%string(255) flist, dlist,
{EV}                                              %integer %name  err)

! stream usage:
%const %integer  source = 1, object = 2
%const %integer  listing = 1


{DV}%begin
!E! %external %routine  ALIST11 (%string(255) param)


==== ercm11/emas-2900/imp77pdx_open.txt ====
%include "CONSTS"
%include "FORMS"
%include "SEG7"
%include "PROCS"

%record(sdfm) %map  NEW SD (%record(sdfm)%name skeleton, %integer strm)
   %record(sdfm) %name x
   %system %integer %spec  n streams;   ! Set up by linker...
   %integer j, size
   size = 512
   size = 128 %if skeleton_type = char type; ! shorter buffer
   j = 0
   %cycle;                              ! Hunt for spare descriptor+buffer
      j = j + 1
      %signal 2, 1, 0 %if j > addr(n streams);  ! none free
      x == S7_sb(j)_sd
      %if x_refs = 0 %start;            ! Found one
         x = skeleton;                  ! Copy existing fields
         x_refs   = 1
         x_buffad = addr(S7_sb(j)_bf(0))
         x_ebp    = x_buffad + size

==== ercm11/emas-2900/x25_baccts.txt ====
! dummy account prog to fit with jb xgate
!
! date: 07.may.82

%control k'100001'

%include "deimosperm"
%begin

%recordformat mef(%record (mef) %name l, %integerarray a(0:125))
%recordformat pf(%byte ser, reply, a1, a2, %record (mef) %name mes, %c
  %byte c1, c2)
%record (pf) p

%constinteger buffer manager = 17
%constinteger release buffer = 1

      %routine free buffer(%record(mef)%name mes)
         p_ser=buffer manager;   p_reply=id
         p_a1=release buffer;   p_mes==mes
         pon(p)

==== ercm11/emas-2900/incs_forms.txt ====
! I/O related record formats added
%end %of %list
! File descriptor for directory service
%record %format  fdfm (    %c
   %byte unit, fsys,
   %byte %array fname(1:6) %c
)
! Internal stream descriptor
%record %format  sdfm ( %c
   %integer  type,      { =char/file type etc. }
  (%record(fdfm)  file %or { descr. for Dir.fn.   }
   %string(7) device),
  (%integer  block %or  { current block number }
   %integer  len),      { length of output line}
   %integer  buffad,
             buffp,     { address of next char }
             ebp,       { 1 beyond last char   }
   %byte     ser,       { of handler process.  }
             sym,       { this char            }
   %integer  state,     { of stream            }
             refs       { for buffer management} %c

==== ercm11/emas-2900/x25_baccty.txt ====
,BACCÐÀÀÐ@ÿ@©`@&MDÅe
1>(@&f
DÅeó•óÖŸó•3ÀÀeß	@…„‡vu,j@Àß	¸@4ŠÀeß	 @öÀß	(@òb@ÀÁÂȇ  @&ˆ€PPȇ0|¸@
ˆ‡Í@ÅÀÆÐÀ&
ß	`@
Ç
à0Â@©==== ercm11/emas-2900/shr#rel.txt ====

lSHARE START&P#START
#STACKBASE	PROG$INIT%GO$EXIT&



&


Áà


‘
Ñ
	
Å	
&


&
8&DÕ
 
!
't
(

ß		
)
+Áß		
-÷	¤ÿ&DÕ
.t
/Áß		
0
1Áß		
2„‡&\
4ß		
5
ß		
7„‡ÿÿDPl&
9==== ercm11/emas-2900/sharelib_makeshare.txt ====
%externalroutinespec destroy(%string(255) s)
%externalroutinespec prompt(%string(15) s)
%externalroutinespec link11(%string(255) s)
%externalroutinespec define(%string(255) s)
%begin

%recordformat sbf((%string(255) s) %or (%byteintegerarray b(0:255)))
%record(sbf) sb, f, g

%integer n,i
%constinteger maxvec=100

%routine putw(%integer n)

  print ch(n&x'ff')
  print ch((n>>8)&x'ff')
  
%end

%routine putb(%integer n)


==== ercm11/emas-2900/imp77pdx_event.txt ====
%control 0

%external %record(eventfm) eventz      %alias ".EVENT"

%external %record(eventfm) %map  EVENT
   %result == eventz
%end

%end %of %file

==== ercm11/emas-2900/imp77pdx_makeshare.txt ====
!
! MAKESHARE
!
!    Makeshare takes a PSR PDP-11 relocatable object
! module in on stream 1, and a text file containing
! driving information on stream 2, and produces a
! DEIMOS absolute loader format file for a shareable
! perm segment, and a descriptor file in relocatable
! format.  The load file contains all the code from
! the object, with a vector of transfer addresses
! loaded at the start.  The descriptor file contains
! the vector in the form of a set of absolute indirect 
! symbol definitions (eg PSYM = @20) and a glap area
! which defines certain control variables used by the
! the shared perm code and which are to be initialised
! by the linker using the normal reference mechanism. 
! This file is suitable for input to the linker, using
! the .SHARE keyword (normally done in the linker
! initialisation file). Currently all (non-code) refs
! remaining in the object file are assumed to refer to
! read-only data which will be allocated space, and

==== ercm11/emas-2900/x25_i77perm.txt ====
WAIT
CLOSEINPUT
CLOSEOUTPUDUPADDRSETPRIOPOPPUSHTIMEMAPPSECTMAPHWRLINKINALARMGETIDMAPABS4MAPVIRTPONOFF POFFPONÀÁÂȇ ààà&ˆ€PPȇ0ààà&ˆÄåT”Ì„‡@àààBA@
ˆ‡ààà@BAAAAAÁEøÿˆŠÁe@BcÂEà ‡
‡hàààˆ‡àààˆ‡ààà
ˆ‡àààˆ‡àààˆ‡àààˆ‡àààBˆ
	‡(ààà
‡B J
‡0àààˆ‡àààˆ‡àààÀÁàIààà
ÁàIàààˆààà==== ercm11/emas-2900/imp11pd_perm77r.txt ====
PERM$U$PERM$Q$PSIG$PERM$OPERM$N$PSIG$DPERM$MPERM$A,PERM$L$PSIG$,PERM$KPERM$J”PERM$I$PERM$HPERM$G(PERM$FPERM$EPERM$A$PSIG$,PERM$DPERM$A8PERM$C$TRACEPERM$B$PSIG$$SSIG$PERM$A PERM$V$SSIG$$PSIG$$SSIG$PERM$A.EVENT$EVENT$TOP$EXITtÃS““‹ÓåSÃÃÀ
ý€À_ÂW ôƒB‚ÂE€B` ôƒW2C<úÿ1 üÿƒGW2…W2Ú„Øèààà‚_àààƒÂæ_àààÂEÀÿWtúÿ@ÁEÀÿtúÿÀEðÿ_@àààCÃe@Æ ‡ß	@ ‡(ààà@f_ààà€ ÀÁ_ øàÁ@àÀÁ_ÖHpàààB@ÁÂ
ÀÁ_@p†ß	@†~‡Xààà
@Ò€
ƒS”~‡ ààà
@Ò€
ƒÎeBÅ` ÀÁ
R”~‡Pààà
@Ô
ƒÔƒ`S”~ƒàâ‡0ààà
@Ô
ƒÒÀà`
€€
P¤Ã~ͱ‡Hààà@þÿ
ÔAúÿ
BÔUÂ
ƒà&€ÃAþÿB”¤Ã~Åå
¡‡Ã
B&¤íƒ~ÖAíøÿ`Büÿà‚
5þÿÍõöÿå@úÿÁàP”B~AB@øÿP”B~Å屇(ààà&f„ú	…„‡®
àààƒàƒ
ß	ÀPCp@€
ÀEBpÎe‡XàààBƒÀ

==== ercm11/emas-2900/imp119s/utility.txt ====
%external %string (31) %fn itos(%integer n,m)
   %integer flag
   %string (31) s
   s = ""
   flag = 1
   %if n<0 %start
      n = -n
      flag = -1
   %finish
   m = flag-m %if m<0
   %cycle
      s = tostring(n-n//10*10+'0').s
      n = n//10
      %exit %if n=0
   %repeat
   s = "-".s %if flag<0
   s = " ".s %while length(s)<m
   s = " ".s %if flag#0
   %result = s
%end
%external %routine poctal(%integer n)

==== ercm11/emas-2900/imp119s/pass2o.txt ====
!!             New pass2 for pdp11 imp
! Missing: Reals
!          Procedures as parameters
!          Jam transfer
!          Machine code

!Control bits
%const %integer no eis= 256;             !Set if EIS option missing
%const %integer stack check= 512
!
%external %routine pass2
   %external %routine %spec poctal(%integer n)
   %external %string %function %spec i to s %alias "S#ITOS"(%integer i)

   %external %routine %spec move %alias "S#MOVE"(%integer length,from,to)
!EMAS
   %external %integer %map %spec comreg %alias "S#COMREGMAP"(%integer n)
!EMAS:
   %own %integer fptr,fend,fptrinit;     !EMAS:
                                         !SIZE CONSTANTS


==== ercm11/emas-2900/imp119s/l.txt ====
Source: ERCM11:IMP119S.ASS11S         Compiled: 06/10/86   15.42.04
Object: ERCM11:IMP119Y.ASS11Y

Parms set: DEFAULTS



              ERCC. Portable Imp80 Compiler Release 4 Version 15 May 86


  2047  4095
     1        %external %routine ass11(%string (63) files)
     2           %external %integer %function %spec smaddr(%integer chan,
     C              %integer %name length)
     4           %routine define(%string (255) s)
     5              %external %routine %spec emas3(%string %name command,params,
     C                 %integer %name flag)
     7              %integer flag
     8              emas3("DEFINE",s,flag)
     9           %end;                                 ! Of %routine define.
    10           %external %string %function %spec date %alias "S#DATE"

==== ercm11/emas-2900/imp119s/link11.txt ====
%external %routine link11(%string (63) param)
   %string (63) map
   %own %integer brians fiddle= 255
   %const %integer limit= 128
   %own %integer code base= 2<<13, gla base = 0, spbase = 7<<13
   %own %integer alone= 0, main ep = -1, entry = 0
   %own %string (31) task id= ""
   %own %string (31) fix file= ""
   %own %integer streams= 2
   %own %string (31) perm file= ":imp119y.PERM11#REL",
                  lib  file = ":imp119y.LIB11#REL",
                  object    = ""
   %own %integer stack= 8*1024
   %const %integer plug bit= 64
   %external %integer %function %spec exist %alias "S#EXIST"(%string %c
      (255) file)
   %routine define(%string (255) s)
      %external %routine %spec emas3(%string %name command,params,
         %integer %name flag)
      %integer flag
      emas3("DEFINE",s,flag)

==== ercm11/emas-2900/imp119s/pass1.txt ====
!   IMP77 compiler  first pass

!to create an EMAS version:
!
!         d*//*
!         m-0 (f/!imp77:/ l* i/!imp77:/ m)*
!            On EMAS all shorts should be changed to integers.
!
!            Also, the INCLUDE facility will need to be modified.
!         ARRAYS CHAR,MAPPED,ANYFORM,CNEST BECOME INTEGER
!
!
                                         !#########%c
                                         ##########%c
                                         ################################
                                         !            Copyright: 1 January%c
                                         1980             #
                                         !    INTERACTIVE DATASYSTEMS%c
                                         (EDINBURGH) LTD.      #
                                         !                Peter S. Robertson%c
                                         #

==== ercm11/emas-2900/imp119s/pass2.txt ====
!!             New pass2 for pdp11 imp
! Missing: Reals
!          Procedures as parameters
!          Jam transfer
!          Machine code

!Control bits
%const %integer no eis= 256;             !Set if EIS option missing
%const %integer stack check= 512
!
%external %routine pass2
   %external %routine %spec poctal(%integer n)
   %external %string %function %spec i to s %alias "S#ITOS"(%integer i)

   %external %routine %spec move %alias "S#MOVE"(%integer length,from,to)
!EMAS
   %external %integer %map %spec comreg %alias "S#COMREGMAP"(%integer n)
!EMAS:
   %own %integer fptr,fend,fptrinit;     !EMAS:
                                         !SIZE CONSTANTS


==== ercm11/emas-2900/imp119s/ass11sold.txt ====
%external %routine ass11(%string (63) files)
   %external %integer %function %spec smaddr(%integer chan,
      %integer %name length)
   %routine define(%string (255) s)
      %external %routine %spec emas3(%string %name command,params,
         %integer %name flag)
      %integer flag
      emas3("DEFINE",s,flag)
   %end;                                 ! Of %routine define.
   %external %string %function %spec date %alias "S#DATE"
   %dynamic %integer %fn %spec time40(%integer in)
   %dynamic %integer %fn %spec time03(%integer in)
   %dynamic %integer %fn %spec time45(%integer in)
   %routine dump bin(%half %integer %array %name code, %integer start,finish,
      %string %name t, %integer %name flag)
      %integer check,j
      %routine put(%integer n)
         %integer m
         m = n>>8&255
         n = n&255
         printch(n); printch(m)

==== ercm11/emas-2900/imp119s/pass3.txt ====
%external %routine pass3;                !PASS3 FOR PDP11 IMP
   %external %integer shortjumps=0
   %external %integer mediumjumps=0
   %external %integer longjumps=0
   %external %real stretch time= 0
   %external %long %real %function %spec cpu time %alias "S#CPUTIME"
                                         !INFO BITS   &1 = NO SHORT JUMPS
                                         !            &2 = NO JUMPS ROUND JUMPS
                                         !            &4 = NO DEFERAL OF JUMPS
                                         !            &8 = NO TAILORED ENTRY

!               OBJECT FILE FORMAT
!
!         +============================+
!         !   NUMBER OF DEFINITIONS    !
!         +----------------------------+
!         !                            !
!         !        DEFINITIONS         !
!         !   ADDR<2> TYPE<1> "TEXT"   !
!         !                            !
!         +----------------------------+

==== ercm11/emas-2900/imp119s/code11old.txt ====
! RECODE FOR IMP PROGRAMS
! THIS PROGRAM TAKES THE THIRD PASS
! OUTPUT OF THE IMP COMPILER
! AND MAKES A RECODE IN ASSEMBLY
! OF EVERY IMP SOURCE LINE
! AUTHOR K. STRAATMAN
! MATHEMATISCH INSTITUUT
! RIJKSUNIVERSITEIT TE GRONINGEN
! POSTBUS 800, GRONINGEN, THE NETHERLANDS
! 24 JAN 1978
! COMMAND: RECODE SOURCE OY / OUTPUT

%external %routine code11(%string (63) file)
   %const %integer max specs= 100
   %string (63) source file,object file,output,sdisp
   %integer disp,i

   %external %integer %function %spec exist %alias "S#EXIST"(%string %c
      (255) file)
   %routine define(%string (255) s)
      %external %routine %spec emas3(%string %name command,params,

==== ercm11/emas-2900/imp119s/alist11old.txt ====
! RECODE FOR IMP PROGRAMS
! THIS PROGRAM TAKES THE THIRD PASS
! OUTPUT OF THE IMP COMPILER
! AND MAKES A RECODE IN ASSEMBLY
! OF EVERY IMP SOURCE LINE
! AUTHOR K. STRAATMAN
! MATHEMATISCH INSTITUUT
! RIJKSUNIVERSITEIT TE GRONINGEN
! POSTBUS 800, GRONINGEN, THE NETHERLANDS
! 24 JAN 1978
! COMMAND: RECODE SOURCE OY / OUTPUT

%external %routine alist11(%string (63) file)
   %const %integer max specs= 100
   %string (63) source file,object file,output,sdisp

   %integer disp,i
   %external %integer %function %spec exist %alias "S#EXIST"(%string %c
      (255) file)
   %routine define(%string (255) s)
      %external %routine %spec emas3(%string %name command,params,

==== ercm11/emas-2900/imp119s/alist11.txt ====
! RECODE FOR IMP PROGRAMS
! THIS PROGRAM TAKES THE THIRD PASS
! OUTPUT OF THE IMP COMPILER
! AND MAKES A RECODE IN ASSEMBLY
! OF EVERY IMP SOURCE LINE
! AUTHOR K. STRAATMAN
! MATHEMATISCH INSTITUUT
! RIJKSUNIVERSITEIT TE GRONINGEN
! POSTBUS 800, GRONINGEN, THE NETHERLANDS
! 24 JAN 1978
! COMMAND: RECODE SOURCE OY / OUTPUT

%external %routine alist11(%string (63) file)
   %const %integer max specs= 100
   %own %integer main prog= 0
   %string (63) source file,object file,output,sdisp

   %integer disp,i
   %external %integer %function %spec exist %alias "S#EXIST"(%string %c
      (255) file)
   %routine define(%string (255) s)

==== ercm11/emas-2900/imp119s/code11.txt ====
! RECODE FOR IMP PROGRAMS
! THIS PROGRAM TAKES THE THIRD PASS
! OUTPUT OF THE IMP COMPILER
! AND MAKES A RECODE IN ASSEMBLY
! OF EVERY IMP SOURCE LINE
! AUTHOR K. STRAATMAN
! MATHEMATISCH INSTITUUT
! RIJKSUNIVERSITEIT TE GRONINGEN
! POSTBUS 800, GRONINGEN, THE NETHERLANDS
! 24 JAN 1978
! COMMAND: RECODE SOURCE OY / OUTPUT

%external %routine code11(%string (63) file)
   %const %integer max specs= 100
   %own %integer main prog= 0
   %string (63) source file,object file,output,sdisp
   %integer disp,i

   %external %integer %function %spec exist %alias "S#EXIST"(%string %c
      (255) file)
   %routine define(%string (255) s)

==== ercm11/emas-2900/imp119s/vers.txt ====
%externalstring (40) %fn imp11 version
   %result = "8.2 release 4"
%end
%externalstring (6) %fn imp11host
   %result = "ercm11"
%end
%externalroutine ssmess(%integer i)
   printstring("?? See BG ??")
%end
%endoffile

==== ercm11/emas-2900/imp119s/timeio.txt ====
%externalroutine timeio(%string(63) file)
      %integer s
      %real t
      %externalroutinespec define(%string(63) s)
      %externallongrealfnspec cputime
      define("ST1,".file)
      t = cputime
      selectinput(1)
      readch(s) %until s = 25
      t = cputime-t
      printstring("I/O time for ".file." =")
      print(t, 2, 4)
      printstring(" seconds")
      newline
      selectinput(0)
      closestream(1)
%end
%endoffile

==== ercm11/emas-2900/imp119s/deimosperm.txt ====
!
!      specs for deimos perm routines
!
%externalroutinespec pon(%record(*) %name p)
%externalroutinespec poff(%record(*) %name p)
%externalroutinespec ponoff(%record(*) %name p)
%externalintegerfnspec mapvirt(%integer ser,seg1,seg2)
%externalintegerfnspec map abs(%integer vadd,len,id)
%externalintegerfnspec getid
%externalroutinespec alarm(%integer ticks)
%externalroutinespec linkin(%integer ser)
%externalroutinespec maphwr(%integer segs)
%externalintegerfnspec mappsect(%integer seg,task)
%externalroutinespec push(%record(*)%name q,%record(*)%name m)
%externalrecord(*)%mapspec pop(%record(*)%name q)
%externalintegerfnspec time
%externalroutinespec set prio(%integer prio)
%constbyteintegername own id==(8_160030);   !8.1 compiler bug
%constbyteintegername fsys == k'160055'
%constbyteintegername id == k'160030'
%constbyteintegername int==(8_160060)

==== ercm11/emas-2900/imp119s/ass11s.txt ====
%external %routine ass11(%string (63) files)
   %external %integer %function %spec smaddr(%integer chan,
      %integer %name length)
   %routine define(%string (255) s)
      %external %routine %spec emas3(%string %name command,params,
         %integer %name flag)
      %integer flag
      emas3("DEFINE",s,flag)
   %end;                                 ! Of %routine define.
   %external %string %function %spec date %alias "S#DATE"
   %dynamic %integer %fn %spec time40(%integer in)
   %dynamic %integer %fn %spec time03(%integer in)
   %dynamic %integer %fn %spec time45(%integer in)
   %routine dump bin(%half %integer %array %name code, %integer start,finish,
      %string %name t, %integer %name flag)
      %integer check,j
      %routine put(%integer n)
         %integer m
         m = n>>8&255
         n = n&255
         printch(n); printch(m)

==== ercm11/emas-2900/imp119s/imp11.txt ====
%external %routine imp11(%string (255) s)
   %external %string (6) %fn %spec imp11host
!   %extrinsic %integer shortjumps
!   %extrinsic %integer mediumjumps
!   %extrinsic %integer longjumps
!   %extrinsic %real stretchtime
    %owninteger shortjumps,mediumjumps,longjumps,stretchtime
   %external %integer permad
   %extrinsic %integer LIST
!   %external %routine %spec timeio(%string (63) file)
   %external %string %function %spec date %alias "S#DATE"
   %external %string %function %spec time %alias "S#TIME"
   %external %long %real %function %spec cpu time %alias "S#CPUTIME"
   %own %integer exclam= 0, info2, info3
   %string (63) source,object,listing,grot,x1,x2
   %integer flag,stats
   %real t0,t1,t2,t3
   %external %integer %map %spec comreg %alias "S#COMREGMAP"(%integer n)
   %record %format rfm(%integer conad,filetype,datastart,dataend,a,b,c,d)
   %external %routine %spec connect %alias "S#OLDCONNECT"(%string (255) file,
      %integer mode,hole,prot, %record (rfm) %name r, %integer %name flag)

==== ercm11/emas-2900/imp119y/lib11#rel.txt ====
	ITOSWRITE SPACE,SPACESTNEWLINE`NEWLINES”	SUBSTRINGü
READSTRINGp$READ$PSYMPERM$P
NEXTSYMBOL$PSTRPERM$PPERM$HPERM$Ah
&fUDÅeHÁô-Ftüÿô•2@ô•7A	ô•6Bô•8C
ôüÿô>D
ô FÀ4
FôBDô
DDaüÿÀ
r
Áe0süÿÀ
r
4üÿêFô
DDaòþÿÃeBôþÿÂAÂà´þÿþÿôþÿ4-Dþÿ	ô
DDaó• óô
DDaÂAíD³ ÁÁe…„‡&fUDÅe#ß		ß	…„$‡F &À ß	'‡,&fDÅe)þÿ*À ß	+ô
þÿ,ö…„-‡VT/À
ß	0‡`&fDÅe2þÿ3À
ß	4ô
þÿ5ö…„6‡Vˆ8Àß	9‡”&fÎåDÅe<4üþ4Š=üÿ-Ã
-þÿ4-þÿÁ
ÿÿ…„‡>þÿíüÿƒ
ô?ÂeüþmüÿÂ
´þÿ@ÊA…„‡Öü&fDÅeEß	tFÁ%
ùÁ% öÁ%óGÁ%"I<ŠþÿJß	Á%"Kß	tLÁŠ

==== ercm11/emas-2900/imp119y/perm11#rel.txt ====
	FREESTOREPERM$T0PERM$SdPERM$R0PERM$QPERM$KPERM$JœPERM$L PERM$I,PERM$HPERM$GPERM$FPERM$BPERM$A$EVENT$TOP\
SELECTOUTP
SELECTINPU
NEXTSYMBOLPROMPT$PSTR$PSTR$PSYM $PSYMPERM$PPERM$A$GO$$DS$GO$SPÅÆ&
ß	
Ç
à0àààæfæàÞ	À	_‡8ààà&æàÞ	‡ààà&
NÔ
f€ŸŽ
ß	ö
øÖÖ‡@àààß	À€_ àààæàÞ	@‡ààà&æàÞ	‡ààà&æàÞ	‡àààÃÀ
Ãü€
Ç
àÂW ƒB‚ÂE€B` ôƒW2C<úÿ1 üÿƒGW2…W2Û„Ù¸àààAÁe F ƒÀ_‡0ààà
@Ò€
ƒS”À
ý‡(ààà
@Ò€
ƒBÅdR”À
ýÇ0ààà
@Ô‡

==== ercm11/emas-2900/gkb23feb86.txt ====
Þ¾ —$HION1bT(Þ¾ ˜$e![he03™3b. Þ¿ ™$™.ó™2b00ÞÀ š^*2x
ª(_"j\-DÉBƒì
Tq´dÞÀ ›^™ !ºEþ\s?9MÁŸ)î$Û]&ÞÀ œ 0.ó00ÞÀ $.t(Pb
PÞ ž ]Ÿ)ƒÞÄ ¡ :HstÞÉ ¤^!>U¡Ë'ôlX×US+	.~h‹€wòÞÉ ¥^ "&wÄçŠF\•×aâc
RÞÉ ¨$™.õ™2b00ÞÊ © >.õveÞÊ ª SöéÞÊ «$E.uR (Pb

ÞË ¬^ S_Ã
9.ß‹¼À®qz‡,#®ìŒ3`&cÿÞÍ ­ r Tr{gÞÍ ­$L.ö  $Pb
IFÞÎ ®$3.ô  @$Pb
  ÞÒ ±^u#âMj'¸‹h

¿;,»ÞÒ ²^R$+a2%=%¹&¨cÖvŠq?5%Äí¦Ê¡Kÿ¥ÞÒ ³ C.pC ÞÓ ´$™.÷™2b00ÞÔ µ 
.÷Þ­ÞÔ ¶$ .w6
(Pb
  ÞÕ ·$7 "bhÞ× º$h.vhI bxAÞÛ »^w%3©ò'eAO	Dc‹ìU²ÞÛ ¼^n&ö	WNÈW
³	ý¦Òà
ÞÜ ¿ 7ÞÝ À$8"b@ÞÝ Á$™.ø™2b00ÞÞ Â e.ønyÞÞ Ã$.x­(Pb
 CÞá Ä$/…™ brsÞâ Ç$O0èNTI PHb
(Þä È^@'K3=èA¶º@Ä
u‘!‰Ð&‡Ï	ÉG	ûÕ9Þä É^#(W%u*©-0ÈM¸;ªÄ·	|a³(hhÞç Ì$™.ù™2b00Þè Í î.ùÞè Î$.y(Pb
  Þé Ï^ôŽ
?»À’4B!FÐ9¿~2w)T	HÞê Ð 6![02Þê Ð %.s  #Þí Ñ^
)Jg76*=„&d¾;¬{.	¡2}½Þí Ò^*/Ò#u%4
žW'>‹FqÆ⟵‘	”÷Þð Õ 0»h0Þñ Ö$™.ú™2b00Þò × .ú-Þò Ø$t.z
R(Pb
enÞõ Û  .n  Þö Ü^y+Þö Ý^1,Þö Þ .n00žÞ÷ ß$8 •b2
Þø à  .  paÞø á$ mbCPPbayÞù ä$ .ûg5$Pb
+gÞû å$™.ý™2b00Þü æ 1.ý
@Þü ç$4.{  (Pb
  Þþ è$u.ü@$Pb
 3Þÿ é^r-oÕOŽ_e‡ÌzjÛP,nLÖ.Æ4øs3À		Þÿ ê^7.ÊUR;]j`™1\+)zt6s‹b‚¼#éQß í$Î.Ž™$™bß î$+
J_+b_+ß ï (h
ß ð$a.|ù #Pblyß ó$E.co$•b
 Aß ô$™.þ™2b00ß õ o.þldß ö$B*Y   Bb  ß ÷$r.}"(Pb
2Fß ø^"/°”ã(!Aœ”+ätÄw3;	á.Ú(ÑŠß ù^ 0)ßT¤Ùa¹Å'—;èÃ32.żJ®|m%Xß ú g!ZthS!ß ü$&.8™8b  ß ý$™.ÿ™2b00ß þ  .ÿ  ß ÿ m.vm0	ß!$1J  H2b 2ß!$4.~T (Pb
ngß!^1ß!^Á2@­)[¡VµŸœJ@²3Z}
"
ÚEvdpS5.ß!$ 0é4 I PHb
6 ß!	$™/™2b00ß!
^2ÃðÖ%ÑE̾ÐÕ8µo¢u"ß!^R4òAÈŦ’’ß! 
/ntß!
 .cßß!$|.5 (Pb
/2ß! .| hß#!^[ß#!9
yW(=10ß#!$™/™2b00ß$! T/ ß$!$™.€(Pb
ß&! !Xý„ß&!$ / $Pb
 ß(!$.#Pbß)! $4/0,@$Pb
0,ß+!!$ q  ™b  ß,!"$E.‚[K#Pb[ß-!#$™/™2b00ß.!$ c¦
ß.!% 0/sbß.!&$e.ƒ ­(Pb
ciß2!-$v$ñat%6bwhß7!0$™/™2b00ß8!1 /ß8!2$6.„0 (Pb
  ß<!5$ô.… IPb
ß>!6 U'.#»‰ß>!7$ d"P(™(b61ß?!8$0ê™I PHb
¡ëß@!:$.† •bßB!>$™/™2b00ßB!? G/ DßB!@$
.‡d:(•b
40ßC!A^m _H–1ß_à•ß~Œ~
(Eöñ'לßG!B ÿ$ñ„IßL!D$™/™2b00ßL!E ./ 0ßL!F$
.ˆ.B(•b
;1ßT!K $$ñ0.ßV!L$™/™2b00ßV!M$:$òCO6b
..ßV!N /00ßV!O$ .‰  (•b
32ßX!P  .†  +ß\!S d
R?mß]!T$e/	00Pb0.ß`!W$™/
™2b00ß`!X /
00ß`!Y$U.Š§ó(•b
ßa!Z$
$ó  C6b
  ßd![ 
$Ñæ ])ßd![ ^.‚RTœßd!\ 

==== ercm11/emas-2900/incs_procs.txt ====
! I/O package procedure specs added
%end %of %list
%external %routine %spec  OPEN %alias "IO$OPEN" %c
                               (%string(*) %name s, %integer stream)
%external %routine %spec  DIR FN %alias "IO$DIRFN" %c
                               (%record(sdfm)%name x, %integer func)
%external %routine %spec  DEV FN %alias "IO$DEVFN"  %c
                               (%record(sdfm) %name x, %integer func)
%external %routine %spec  FLUSH OUT %alias "IO$FLUSH"
%external %routine %spec  SET EOT   %alias "IO$SETEOT" (%integer buffad)
%external %predicate %spec  GOT SYM %alias "IO$GOTSYM"
%external %predicate %spec  PARSE   %alias "IO$PARSE" %c
                                 (%string(*)%name file, %record(sdfm)%name t)
%external %integer %function %spec  CHECK %alias "IO$CHECK" %c
                                          (%integer sno, min)
%external %string(12) %function %spec  CONSTRUCT %alias "IO$CONS" %c
                                                 (%record(sdfm)%name d)
%externalroutinespec ABANDON OUTPUT
%external %routine %spec ponoff %alias "$PONOFF" (%record(*)%name p)
%list
%end %of %file

==== ercm11/emas-2900/gat29sep86.txt ====
=ɬ$=ˆw00Pæ
R9=Ê­$=‰Cw0Pæ
J!=Ï®^)R÷Ê

n=ϯ^(P­]*r4š=Ò°$=ŠGw0PæG,=Ó±$=‹w00Pæ
R9=Ô²$=Œ=Ïw0Pæ
=á¹^A-°.¥#‡¦p·THpúÜž
ÒQ®¦M?-À€aî­¼2NÎE5!#$@§0w00Pæ
5HE6!$$@¨Cw0Pæ
dE9!%^$-Z<â³ÆE9!&^5\\â¾È0hE=!'$@©Cw0PærrE?!($@ªww00Pæ
E@!)$@«w0Pæ
wEK!2^	2{H(i“##ÞÞEK!3^1
'xT'(„5þEL!4$@°0Bw0Pæ
wEQ!5$@²Cw0PæER!6$@±w0Pæ
Q3ES!7$@³8w0Pæ
wET!8^'¢¨'þ	[|E]!@$@¸w00Pæ
)!E^!A$@¹w0Pæ
E`!B$@º#w0Pæ
HrEf!C^m8aAå ÙEf!D^\ªTU(eXEf!E$@»Cw0PæAmEg!F$@¼8w00Pæ
Eh!G$@½0w0Pæ
34Ex!N^óP84G4mCãU…%….(>DšOï
E¬!l$@ÒCw0PæE­!m$@Ó0w00Pæ
9qE®!n^dhtP–!è7bE®!o^m 2µ¼(û
úÒEÀ!x^#2µ¼(ú
úÐEÀ!y^v$mˇò"‡ggEÁ!z$@Ú®w00Pæ
EÂ!{$@Ûw0Pæ
wEÉ!|^G%XUdN|ê5ŽEÉ!}^Q&2µ¼(
ú
ùÐEÒ!†^(2´º(ý
øŠEÒ!‡$@â'w0Pæ
EÓ!ˆ$@ãCw0PæX3EÕ!‰$@ä0w00Pæ
hEEÖ!Š$@åCw0Pæ
EÛ!‹^c)2á(gþç)ŽEÛ!Œ^Š*2µ¼(
ü
ÒQ®öT
1‚¨¿Ÿü½oØLì$Ê^‘ƒëN7)½»J8X’MXõ<í‹'­	’Lì$Ë$~Câ~Gw0Pæ
avLó$Ì$CãCw0PæheLô$Í^ÁLô$Î^ÌM$×^Ö,,ÿoM$Ø^äd–ò24

==== ercm11/emas-2900/gkb21sep86.txt ====
‘Ç V$M+ç74™Cb	*B‘É W$?äPb	™‘Ê Z$eþbuˆb E‘Ê [$C?åOW#Pb	
 ‘Ë \ 
þnd‘Í _$eÿ17ˆbVA‘Ô l$e?çbu#Pb	 E‘Ö m RB[AT‘× n$HB][2b	ST‘Ø q$?è‘ËPb	™‘Ú t$ +çci™Cb	» ‘ä € É€€‘ä ‚$t+ç!pl™Cb	MI‘ä ƒ$h+ç"nd™Cb	- ‘ä „$p+ç#SH™Cb	u'‘å …$B`Sb	HT‘å †$+ç$I™Cb	  ‘æ ‡$,Ba,5pb
 ‘è ˆ$1?êow#Pb	nd‘ò “$e?ëG.#Pb	  ‘ò ”$Y·70™#b€€‘õ •$ËBdb	‘õ –$i?ì  Pb	,N‘ö —$7 Cˆb
‘ö š$MÀ= "ble‘÷ › 3Ba5,M‘ø œ$+ç)at™Cb	r ‘ü §$„?îro#Pb	pr‘ÿ ¨$eBfbub	20’ © 0»00I¦’ «$N+ç-ZX™Cb	-1’ ¬$+ç.C™Cb	%@’ ­$+ç/’™Cb	™’ ®$ Bg.6b	  ’ ¯$+ç0 ™Cb	OX’ °$?ï‘ü#Pb	™’ ½$?ñ#Pb	wi’ ¾ C?ð
’ ¿ Gµi’ À +ç1&b0’ Á$=BjAKb	,1’ Ä$ +ç6  ™Cb	
’ Å$+ç7C™Cb	NT’  Ð$^+ç;(b™Cb	73’  Ñ$T+ç<le™Cb	A
’! Ô$Bm’b	
’! Õ$+ç=e™Cb	A
’! Ö$m?óÕPb	Î’$ ×$0#3 0™b05’$ Ø$*?ô
i#Pb	no’% Ù$ ?õÝ.€Pb	-¾’+ ä$-+çA
 ™Cb	  ’, ç 4H’, è &2’. é$?ö#Pb	86’1 ê$sBpp)b	iz’1 ë +ç¯’4 î$ +çBúe™Cb	±Ý’: ù$ˆb  ’; ú$Br b	  ’; û$.|ce•b	R0’< ü ’> þ 0Ù7 ”,’> ÿ$E+çF  ™Cb	20’>¡$T+çGle™Cb	nt’>¡$+çH ™Cb	
’?¡$3Bs 2b	mc’H¡
$+çMF™Cb	-5’I¡$Bu’Hb	™’I¡$+çN™Cb	’I¡ E.È. 
àí’J¡$9+çO0V#™Cb	17’L¡$406ˆb01’M¡$e?ø  Pb	  ’N¡ E’S¡!$,Bx,2b	8,’S¡"$:+çSdr™Cb	iz’T¡#$+çT#™Cb	67’T¡$$BBwnd0™biz’U¡%$E'on™!b.
’X¡( u'pe’X¡)$3BQ,8b	,1’X¡*$1.×orF™FbK’]¡5$0+çX00™Cb	  ’^¡6^0 ˆ›¢ŠR//
ªZú{Ü„É
ÃB…oØ	CÕ=•aíW’^¡7$+çY#™Cb	ˆF’^¡8$0ŠPRr1Pˆb	0,’b¡; ªâ 2Q’c¡<$AB{ Mb	’f¡=$+çZ™Cb	e:’p¡J$+ç_™Cb	 W’p¡K$:+ç`E(™Cb	re’p¡L$+ça’p™Cb	™’q¡M$1B~87b	67’q¡N$+çb™Cb	’q¡O$MY¹EN0™0bN ’r¡P$+çcC#™Cb	in’z¡\$Î+çf™™Cb	’{¡]$6B€5
b	16’{¡^$P+çge™Cb	  ’|¡_^3€’ȉýߧo
“<S˜DÅ
²
Ì)˜_žŠ¨’|¡`$d+çhlt#™Cb	 i’}¡a$;?úPr€Pb	an’~¡b$l+çirt™Cb+ ’†¡o$+çnP#™Cb	  ’Š¡p 
X09¤’‹¡q$CB„  b	  ’‹¡s$7+çoPD™CbPR’¡u$+çpa™Cb™’Ž¡v$N+çr(8™Cb	tr’Ž¡w$+çsC™Cb	%l’Ž¡x$+çtC™Cb	r/’˜¡ƒ$ +çyva™Cb	d:’™¡„$
B‡6.b	6.’™¡…$+çz’™Cb	’™¡†$
+çqH+™Cb'J’š¡‡$p+ç{te#™Cb	  ’¡ˆ$DY».3Hp0b’Ÿ¡‹$BˆAb	A,’¡¡Œ M& Nú>’©¡—$6?û 2€Pb	7n’«¡š RB‚L,’¬¡›$D+çs.™Cb	is’¬¡œ$ +ç‚11™Cb	
“¢$$B “b	™“¢% rÜac“¢&$$+ç¹EP#™Cb	IO“¢' EYR80'“¢($+纠 ™Cb	  “¢)$B¡8pb
“¢,$ B¢ =b	AC“¢-$E+ç»ý<™Cb	÷“¢8$s+çÀ: ™Cb	ff“!¢9$;B¤0mb	H.“!¢: 1-	=S“#¢= .ÖHd'“$¢>$+çÁ™Cb	60“$¢?$+ç™Cb	“$¢@$P+çÙCb	0,“%¢A$AB¥Ab	–A“.¢L$+çÆC™Cb	H“.¢M$+çÇC™Cb	P“.¢N$+çÈ1™Cb	00“/¢O$B§Cb	Ñ“/¢P$+çÉAE€™Cb	“0¢Q^I Šm\e/2Ø ´NcB¥	lø]K	16‘$+‡i“0¢R^3 	%ɾL¶tù•â_"Ox”
µ
Ð)ð’†+žŠ¨“0¢S$e+çÊ#™Cb	“9¢^$ B©1)b	

==== ercm11/emas-2900/incs_emts.txt ====
! DEIMOS EMT service number constants included
%end %of %list

%const %integer  emt wait      =  1
%const %integer  emt pon       =  2
%const %integer  emt poff      =  3
%const %integer  emt delete    =  5
%const %integer  emt timer     =  8
%const %integer  emt mapvirt   = 10
%const %integer  emt getabs    = 11
%const %integer  emt getid     = 12
%const %integer  emt linkin    = 13
%const %integer  emt mapshr    = 14
%const %integer  emt maphwr    = 15
%const %integer  emt mappsct   = 16
%const %integer  emt ponoff    = 17
%const %integer  emt toff      = 20
%const %integer  emt time      = 23

%end %of %file

==== ercm11/emas-2900/gkb21oct85.txt ====
66Pb
74°:r$Ç*)ÇÇBb‡‡°;s  Ú5/°Bv$‡ˆ ‡Çb
LJ°Cw$FœBAPb
‡‡°Dx  ~  _ä°Ey$   (b 1°H| g+¹sim°H} 8(ö  ¨!°I~$ |-Cpb  °L$ˆ¡Âb
°M‚$œPb
°Nƒ Cœ
2$ˆ¸b
±
3$œ,
'pb
±6$œ-±

±>h$
™bn ±?i$€";4™4b65±Al .Æue±Cm E
LJ±Fn$ˆ¾ :b
of±Gq È$	±Hr$Iœ5
 ²fj$#¹W™5b
.1²gm ‡.ÇLJ+²gn$-#º -™5b

 ²ho$ˆßeb
· ²hp$#»5™5b
  ²hq$‡
ˆê28²Ä»$)œfbb
ÇDzʾ$ %Si —pb S²Ë¿$$}Cp6b22²ËÀ$rˆë/
b
[²ÎÃ$‡œg‡‡b
‡‡²ÏÄ mK
€–²ÓÊ$™ˆì™˜b00²ÕË$̈íb
m²ØÌ$‡œh‡‡b
‡Ç²ÛÏ  œU 4C²ÛÐ i%½¾²ÝÑ$œi pbHU²ÝÒ  œi  ²ßÕ$b[pPb[3²ßÖ$̈îb
4²á×$
å28•b
LJ²âØ$Çœj‡‡b
‡Ç²éÝ$̈ïb

²êÞ  .µ33@²ìá$ œk:3b
 1²ìâ$& o—pb
%e²íã eÚis_W²íã Ç$}‡‡"²ïä$™ˆð™	b1.²ðå O$z2.SK²ðæ Çˆð‡‡²ôê$ˆñMb
re²öì$^œl

==== ercm11/emas-2900/imp77pdx_expand.txt ====
%include "CONSTS"
%include "FORMS"
%include "PROCS"

%external %string(12) %function  EXPAND (%string(127) s)
   ! Returns the full file-name from a (possibly) partial form,
   ! inserting unit and fsys number for files, etc
   %record(sdfm) t
   %if parse (s, t) %start
      %result = construct (t)
   %finish
   %signal 9, 3, bad file
%end

%end %of %file

==== ercm11/emas-2900/gkb18oct85.txt ====
¶uö$™ë™	b00¶u÷ îë¸uú î(!ºuû^D=
`)O&Ö=g¤H6I,O!¨ºuü^Z*ರ&&ºFa/U':XÑÜÚÞG¾uÿ$™ì™b00¾v$™	í™	b00¾v$™	î™b00¾v ì00¾v 	í}¾v i	î¾v )f¿v$0Ï5™XD]Àv$™í™	b00Àv$Vll5™b
gnÀv	 í00Áv
 ?RCÃv^4j˜}™6Í&ÿ :òùZÃv^ ¥û-@“m‹|:hÔ(::â&
	O¤œmÆv$7)g4 Ab52Èv$™î™b00Èv$™	ï™	b00Èv$™	ð™b00Èv î00Èv 	ï00Èv 	ð00Êv$™ï™	b00Êv ï00Ìv^³w:[‹Ìv^b$1-¤Y–ØÍv$î)™b,0Îv$ЙbЮÏv  mÐD
Ðv! 	Ò €Ñv"^ õ†9ŸEB°w7==4íÒ9
MÝû9Îe>ÖØÑv$$ +  Cb3:Òv%$™ð™b00Òv&$™	ñ™	b00Òv'$™	ò™b00Òv( ð00Òv) 	ñ0Òv* 	òÔv+$™ñ™	b00Ôv, ñ00Õv/^
ùƒ;;¾Úô7	r	ác<ãq¨[	ÝÕv0^7 êœÖtx
™b00v¡ þ00v¢ B	ÿFOv£ 
0v¤$™ÿ™	b00v¥ îÿv¨^/x?tÍJ½0ƒ]ŽÜZÎßxHÇ*îò4(¾v©^0!vª$™™b00"v«$™
™	b00"v¬$™
™b00"v­ 00"v® 
"v¯ 
00#v²$™™	b00$v³ 00&v´^1&vµ^œ2#Ñ[ˆ6ò/$Ä+ç·‰"Z(.‰-
>WpvÕ'v¶$VI,#bII)v¹$+Cb)vº$@"b+v» @00+v»$
17b+v¼$™™b00,v½$™
™	b00,v¾$™
™b00,v¿ ÿ50,vÀ È
,vÁ È
-vÂ$™™	b00.và 00/vÆ^òÍÉâ·‰ˆ, Z†˜õ0\ žd/vÇ^7"OÍb]œTyì5vÊ$™™b006vË$™
™	b006vÌ$™
™b006vÍ ÿ506vÎ s
al6vÏ 

==== ercm11/emas-2900/imp77pdx_closein.txt ====
%include "CONSTS"
%include "FORMS"
%include "SEG7"

%external %routine  CLOSE INPUT
   %if S7_instrmx # 0 %and S7_inx ## null %start
      S7_inx_refs = S7_inx_refs - 1
      S7_inx == null
      S7_instrm(S7_instrmx) == null
   %finish
%end

%end %of %file

==== ercm11/emas-2900/prims.txt ====
%constinteger nl = 10
!##############################################
!## DO NOT CHANGE THE ORDER OF THE FOLLOWING ##
!##############################################
%primintegerfnspec addr(%name n)
%primintegermapspec integer(%integer a)
%primrealmapspec real(%integer a)
%primstring(255)%mapspec string(%integer a)
%primrecord(*)%mapspec record(%integer a)
%primbytemapspec byteinteger(%integer a)
%primbytemapspec length(%string(*)%name s)
%primbytemapspec charno(%string(*)%name s, %integer n)
%primintegerfnspec rem(%integer a, b)
%primroutinespec readch(%name n)
%primroutinespec readsymbol(%name n)
%primintegerfnspec swab(%integer x)
%primstring(1)%fnspec tostring(%integer n)
%primstring(1)%fnspec snl
%primintegerfnspec intpt(%real r)
%primintegerfnspec int(%real r)
%primlongrealmapspec longreal(%integer a)

==== ercm11/emas-2900/imp77pdx_callerid.txt ====
%include  "CONSTS"
%include  "FORMS"
%include  "SEG7"

%control 0

%external %byte %map  CALLER ID
   %result == S7_call id
%end

%end %of %file

==== ercm11/emas-2900/preppd_prepdoc.txt ====


                PREP Version 3.0
                ================

Description.

============
 
Prep is a pre-processor for imp11 programs which provides a conditional
compilation facility. The first parameter is the source file name, the second
parameter is the output file. If the output file is not specified 
<input file>#p is used. The remaining parameters (which must be single
characters) are taken to be booleans (all true) to control the generation of the
text. Booleans not in the parameter list are taken to be false. The conditional
generation is controlled by lines begining with # i.e.
 
#if <boolean exp>
#else
#fi
#datestring      this is changed to a conststring declaration
                 containing the date   %conststring(9) datestring='.....'

==== ercm11/emas-2900/incs_seg7.txt ====
! Segment 7 I/O layout included
%end %of %list

! Layout of segment 7: ALL I/O status variables live here.
! Hence any process calling   MAP VIRT (this id, 7, 7)  can pick
! up entire state of this process' I/O.
! See e.g. new IMP-77 compiler control process. Each pass maps its
! Seg 7 onto that of control process, and control proc. performs
! all opening/closing of files instead of individual passes. Hence
! less code is required to support each pass, easing shoe-horning
! problems!
!
!*********************************************************************
!*
!*                B E W A R E
!*
!* The constintegernames defined below point to things in segment 7.
!* Any changes to seg7 format which move items defined here will require
!* to the addresses of these items to be changed.
!*
!* The reason for doing this is because of limitations in the embedded

==== ercm11/emas-2900/imp77pdx_forms.txt ====
! I/O related record formats added
%end %of %list
! File descriptor for directory service
%record %format  fdfm (    %c
   %byte unit, fsys,
   %byte %array fname(1:6) %c
)
! Internal stream descriptor
%record %format  sdfm ( %c
   %integer  type,      { =char/file type etc. }
  (%record(fdfm)  file %or { descr. for Dir.fn.   }
   %string(7) device),
  (%integer  block %or  { current block number }
   %integer  len),      { length of output line}
   %integer  buffad,
             buffp,     { address of next char }
             ebp,       { 1 beyond last char   }
   %byte     ser,       { of handler process.  }
             sym,       { this char            }
   %integer  state,     { of stream            }
             refs       { for buffer management} %c

==== ercm11/emas-2900/imp77_lib77s.txt ====
! Routines for IMP77 compatiblity with the standard ERCC IMP library.
%external %routine %spec  DEF INFO (%integer chan, %string(255) %name file,
                                    %integer %name status)
%system   %routine %spec  DEFINE (%integer  chan, %string(255) parm,
                                  %integer %name  addr, flag)
%system   %routine %spec  SET FNAME (%string(40) fname)
%system   %integer %map %spec COMREG (%integer n)
%system   %integer %function %spec IOCP (%integer ENO, PARM)
%external %integer %function %spec  EXIST (%string(255) s)
%system   %string(255) %function %spec FAILURE MESSAGE (%integer errno)
%external %string(255) %function %spec  UINFS (%integer e)

! COMREG values used -
%const %integer  creg instream   = 22
%const %integer  creg outstream  = 23
%const %integer  creg errmess    = 24

! IOCP codes used -
%const %integer  iocp rsym    =  4  {read symbol (actually 'ch')}
%const %integer  iocp psym    =  5  {print symbol (actually 'ch')} 
%const %integer  iocp nsym    = 18  {next symbol (actually 'ch')}

==== ercm11/emas-a/i77perm.txt ====
WAIT
CLOSEINPUT
CLOSEOUTPUDUPADDRSETPRIOPOPPUSHTIMEMAPPSECTMAPHWRLINKINALARMGETIDMAPABS4MAPVIRTPONOFF POFFPONÀÁÂȇ ààà&ˆ€PPȇ0ààà&ˆÄåT”Ì„‡@àààBA@
ˆ‡ààà@BAAAAAÁEøÿˆŠÁe@BcÂEà ‡
‡hàààˆ‡àààˆ‡ààà
ˆ‡àààˆ‡àààˆ‡àààˆ‡àààBˆ
	‡(ààà
‡B J
‡0àààˆ‡àààˆ‡àààÀÁàIààà
ÁàIàààˆààà==== ercm11/emas-a/lib11#rel.txt ====
	ITOSWRITE SPACE,SPACESTNEWLINE`NEWLINES”	SUBSTRINGü
READSTRINGp$READ$PSYMPERM$P
NEXTSYMBOL$PSTRPERM$PPERM$HPERM$Ah
&fUDÅeHÁô-Ftüÿô•2@ô•7A	ô•6Bô•8C
ôüÿô>D
ô FÀ4
FôBDô
DDaüÿÀ
r
Áe0süÿÀ
r
4üÿêFô
DDaòþÿÃeBôþÿÂAÂà´þÿþÿôþÿ4-Dþÿ	ô
DDaó• óô
DDaÂAíD³ ÁÁe…„‡&fUDÅe#ß		ß	…„$‡F &À ß	'‡,&fDÅe)þÿ*À ß	+ô
þÿ,ö…„-‡VT/À
ß	0‡`&fDÅe2þÿ3À
ß	4ô
þÿ5ö…„6‡Vˆ8Àß	9‡”&fÎåDÅe<4üþ4Š=üÿ-Ã
-þÿ4-þÿÁ
ÿÿ…„‡>þÿíüÿƒ
ô?ÂeüþmüÿÂ
´þÿ@ÊA…„‡Öü&fDÅeEß	tFÁ%
ùÁ% öÁ%óGÁ%"I<ŠþÿJß	Á%"Kß	tLÁŠ

==== ercm11/emas-a/oimp11.txt ====
%externalroutine imp11(%string(63) s)
       %externalstring(6) %fnspec imp11host
      %extrinsicinteger shortjumps
      %extrinsicinteger mediumjumps
      %extrinsicinteger longjumps
      %extrinsicreal stretchtime
  %externalinteger permad
   %extrinsicinteger LIST
      %externalroutinespec timeio(%string(63) file)
   %externalstring(8)%fnspec date
   %externalstring(8)%fnspec time
   %externallongrealfnspec cputime
      %owninteger exclam = 0, info2, info3
   %string(63) source, object, listing, grot, x1, x2
   %integer flag, stats
   %real t0,t1,t2,t3
   %systemintegermapspec comreg(%integer n)   
   %systemroutinespec connect(%string(31) file, %c
   %integer mode,hole,protect,%record(?)%name r, %c
    %integername flag)  
    %recordformat rfm(%integer conad,filetype,datastart,dataend,a,b,c,d)  

==== ercm11/emas-a/gkb19nov86.txt ====
Õû$?ÀÁ  •b  Øÿ$,ÀÂ-2#•b	-2Ú$
éFb	8€Ü$rÀªce#•b	ueÜ IÀÁEÝ$™00É™0Hb00ç$™00Ì™Hb00ç  00Ë  è 00Ì00é$,l•b	:Wì$ ÀÅ  #•b	  ì$ ÀÆ 0•b32î$
éHb	•û'$™00Ï™0Hb00û($™00ЙHb00û) 400Ï+0ü* 00Ð00þ+$PÀÈIP•b  þ,$3,mty•b	-$ÀÉ#•b	 10$S
éJRCb	S01 ÀÈo=$™00Ó™0Hb00>$™00Ô™Hb00? 00Ó00@ 00Ô00C$,n•b	gnD$ÀÌ,#•b	  E  00˜.*F$ÿÀÍ60•b8€G$
éLb	gnU$rÀÎ 1#•b	 1"Y  +ð'  "Z$m
éM60b	8€#[$™00×™0Hb00#\$™00Ø™Hb00#]$00Ù#™Hb	-i$00Ü#™Hb	at-j 00Ú.k 00Û002n$ÀÐH#•b	7q$
éOb	
7r$™00Ý™0Hb007s$™00Þ™Hb00B~$Z00â
 #™Hb	 *B È00àB€$
éPb	B 00áF„$LÀÔ&#•b	  F…$rÀÓ 1•b 1Iˆ$+ð)PP•Cb	P•$ÿÀÕ60#•b	8€Q–$0,r ,•b	1.U™$™00æ™0Hb00Vš$™00ç™Hb00V›$s00è#™Hb	 CVœ 00æ00V 00çHVž$
éRb	sc`ª 
00êIN`«$,s6•	a®$A
éSDIb	COd¯$>À×
 #•b	 *e°$hÀØee6•	f±$L,t *•b	**t¿$™00ï™0Hb00tÀ$™00ð™Hb00tÁ$-00ñ3,#™Hb	6,t 00ïjtà 00ð00uÄ$*+ð+R
PP•Cb	
 vÅ$
éU0b	 CxÆ$ÿÀÚ60#•b	8€ˆÕ$™00õ™0Hb00ˆÖ$™00ö™Hb00ˆ×$300÷31#™Hb11ˆØ È00õˆÙ 300ö31‹Ú$
éWb	  ŒÝ$îÀÜ#•b	FN–è$ÀÞ#•b	2,›ï +ð,f›ð$+ð-’!!ˆCb™@œñ$™00ú™0Hb00œò$™00û™Hb00¦þ 00ü00¦ÿ 00ý00¦$ ,w  •b	  ª$
éZb	  ª$ZÀàED#•b	! °$™00þ™0Hb00°$™00ÿ™Hb00° 00þ° 00ÿ»$,y•b	  ¾$oÀâr #•b	 G¾$
é\b	 :Ä$™01™0Hb00Ä$™01™Hb00Ä 0100Ä 0100Î) È01Î* 0100Ò-$ ,z  •b	 ‘Ò.$3Àäty#•b	 SÓ2$
é^b	gnâ? šG Câ?$™01™0Hb00â@$™01	™Hb00âA È01âB _01	S1æE$Àæ#•b	'æF$,{•b	  èG$
é`b	  õT î¬	ÚöU$™01™0Hb00öV$™01
™Hb00öW È01öX È01
ù[$ +ð0H PP•Cb	  ú\$Àé#•b	E(û]$Àê)•b	8€û^$,| •b	Pj$Àë#•b**k$E«  "b(-l$ 
éc  b	  	o ¥Kvj¯

==== ercm11/emas-a/myusers.txt ====
%constant %integer maxtcpname= 23    {TCP-name length}

%record %format procdatf(%string (6) user, %string (maxtcpname) tcpname,
   %byte %integer logkey, %byte %integer invoc, protocol, nodeno, fsys,
   %integer logsno, %byte %integer site, reason, console1, console2,
   %integer id, process, prev warn, sessend, %byte %integer getmode, preempt,
   blnk, link)

%constant %string (6) %name uinf user= 68<<20
%constant %integer %name uinf isuff=68<<20+x'34'
%constant %integer yes=1, no=0
%constant %integer print=no
%external %routine %spec emas3string(%string %name vec, val)
%external %integer %function %spec dproclist(%integer %name n, adr)

%externalroutinespec EMAS3CONNECT %c
   (%stringname file, %integername mode, hole, prot, conad, %c
      type, start, end, flag)

%external %integer %function fecount(%integer %name num on fe, num on tcp)


==== ercm11/emas-a/imp11prims.txt ====
%CONTROL 0
%constinteger nl = 10
%primintegerfnspec addr(%name n)
%primintegermapspec integer(%integer a)
%primrealmapspec real(%integer a)
%primstring(255)%mapspec string(%integer a)
%primrecord(*)%mapspec record(%integer a)
%primbytemapspec byteinteger(%integer a)
%primbytemapspec length(%string(*)%name s)
%primbytemapspec charno(%string(*)%name s, %integer n)
%primintegerfnspec rem(%integer a, b)
%primroutinespec readch(%name n)
%primroutinespec readsymbol(%name n)
%primintegerfnspec swab(%integer x)
%primstring(1)%fnspec tostring(%integer n)
%primstring(1)%fnspec snl
%primintegerfnspec intpt(%real r)
%primintegerfnspec int(%real r)
%externalroutinespec printsymbol %alias "$PSYM"(%integer s)
%externalroutinespec printch(%integer n)
%externalroutinespec skipsymbol %alias "PERM$P"

==== ercm11/emas-a/gat24feb87.txt ====
÷ÌŒÂ$c:Cno4–YH	DE÷͌à mA÷ÎŒÄ$:DP–Yæ	LE÷ÏŒÅ$ :E a8–Yæ i÷ÏŒÆ  :E  ÷ÐŒÇ$:FY –PæLL÷ÐŒÈ  :FPu÷ÓŒÉ$:GH–æ	÷ÕŒÊ^0l	s	÷þ"
,&@¿ &Q)®
“÷ÚŒÔ$Î:L––æ	÷ÛŒÕ$:MY–PæLL÷ÛŒÖ :M÷ÞŒ×^ïÁîÚs
@*ïFDæÿë%Ë„÷ÞŒØ^& üêн,Vb2ên”++÷ÞŒÙ$0:N5H1–Pæ6;÷ÞŒÚ Î:N–÷ߌÛ$:O1–Pæ
֍Ί^g
<kfæíëà!eù7XÂõ€X¶OÙŸ¿Dú£5÷çŒå :S÷çŒæ$i:Tge7–Pæan÷çŒç :T÷ç÷çŒè 	 ÷–6Çp÷éŒé$D:U[D$–Pæ	÷ìŒê$:VY6–Pæ	LE÷îŒë$:WH–æ	÷ïŒì$p
ÏunC–æ08÷öŒõ :Z÷øŒö [&Š  +n÷ùŒ÷^
þ(
ÆO/¨Îº4b@_Æ
XŒôú•›÷ùŒø^
f6{&G@
‚sÍdµJíá'9%XY÷ùŒù$:[H–æ	  ÷ûŒú$1:\'–€Yæe.÷ûŒû [:\[÷þŒü$:^7	–Pæ8Hø 8:a[ø$:bY–YæLEø ::b30ø$w:c.
–æ	,Rø	$ &‹=1C™8ægaø
$:d3wPæ	 eø$[:e[0–Yæ[Dø Ì:eø
$:fA–Yæ(:ø [:f61ø	 &‹ø$:jø–æ	
£H™£ôO
ø\g^$'½;S‘
,E\CREÛÅÖŒFò*ø\h$:øS–æ	øai$:Ž–æ	 1øej^ %”	œ
N™	
 újþ 1ä
A½újþ$:ò˜æ	IEúmÿ$s:ó  ˜æ	  útŽ$:ô˜æ	erúuŽ &’úxŽ$:õH˜æ	  ú{Ž$&“ú8P8æ˜ú¡Ž$m:ý iPæ	 	ú¦Ž 2;
S5pú¦Ž$e:þndPæ	0)ú¬Ž$ :ÿe Pæ	maú°Ž$;Pæ	 tú¶Ž$;HPæ	  úºŽ$p;nePæ	APúÁŽ$;HPæ	LLúÄŽ  kngoþúÄŽ$;Pæ	odúÊŽ$#PCP	LEúëŽ!$ ; DPæ	**úìŽ"$;Pæ	adúîŽ# 
úïŽ$$€IP$æ	e úõŽ%$;
Pæ	32úöŽ&$;Pæ	ˆFûŽ' uen;ûŽ'$;HPæ	yiûŽ($;Pæ	
 ûŽ) %£ïÁqçû
Ž*$;Pæ	NEû(Ž4$;Pæ	NGû*Ž5$5;aiPæ	[2û2Ž6 %¤Q)û2Ž7$;Pæ	  û4Ž8$ë;9·Pæ	3,û:Ž9$e%¥t,7–7æa û<Ž: ‘tipû<Ž:$;Pæ	LLû?Ž;$*;**Pæ	**ûGŽ<$;Pæ	adûIŽ=$;;Pæ	auûyŽH Š c¯eûyŽH$;'Pæ	=1û|ŽI^t N˜7ÿxñ^ J†!Ô¢ðPô
Pº"n	±¢ÍbF.!	oû~ŽJ$[;(= Pæ	  ûƒŽK$;)Pæ	8FûˆŽL$;*HPæ	LLûŽM$3;+
Pæ	LEû“ŽN$;,HPæ	==û—ŽO 0Þno©‘û—ŽO$l;-EdPæ	PRûµŽX ð;
ûµŽX$;3Pæ	([û»ŽY$$æI“6æ	l:û½ŽZ$Ì;4Pæ	eû¿Ž[$:;5erPæ	ToûÇŽ\$;6Pæ	,2ûÉŽ]$;7Pæ	* ûÒŽ^ ]#ÓX
ÒûÒŽ^$;8HPæ	TNûÓŽ_$;9Pæ	odûÜŽ` [
Ï[¥ûÿŽk :	A  ¦üŽl$h	BedD–	æc]üŽm$;BPæ	c]üŽn$~;CPæ	inüŽo  #ä X	œ-üŽo$ stg–€)æ
 üŽp$;DPæ	  üŽq$;E

==== ercm11/emas-a/gkb24feb87.txt ====
Q@üÂ0 î(Ú@üÂ1$0‹ÈP™Hb|@ýÂ2$(Ü#–Pb  AÂ=$(àY$–PbLEAÂ>$(áY8–YbELAÂ? þ(à°AÂ@ (áYAÂA$;719C–(b/AÂB$ ±gob iAÂC$b(ã1:–Yb-AAÂD þ(ã°AÂE$0‹É(™Hbˆ tAÂQ$_nP@#™b‹LEAÂR I(çrrAÂS$ (æ  5–Pb  AÂT$-(èsm8wPb!!A	ÂU$ ~C n#‘$bÿadA
ÂV$T(éte8–PbrmA
ÂW (éYAÂZ$_p$#™bˆ0AÂe$_qY@#™b‹LLAÂf ‚(íE AÂg$n0‹Îie™HbisAÂj$(î–Yb92AÂk €(îAÂl$i~Dr #‘$bÿo AÂm$ÿ_r<@#™b€<AÂn$(ï0–Y	2 AÂy$ (ò.04–Yb0 AÂz$™0‹Ð™Hb00AÂ{ (òAÂ|$0‹Ñ™Hb0?AÂ}$™(ó0–Pb00AÂ~ (óAAÂ$(ô–YbA€  (ô  A‚$x(õþ–PbþAƒ (õA"ÂŒ$0‹Ò™HbˆA"Â$(ø&PYbA#Â$±
(A4¿ )A8ÂÌ ÿ)A:ÂÍ$)
A7A–Yb–A:ÂÎ ý)
AAÕÄH$)oP–Pb–pAÕÄI /)o nAÕÄJ$K±. lbK AÖÄK ™0‹ô"AÖÄK Î0‹ñ–"AÖÄK /0‹î n"A×ÄU$ú±/žHb¢AØÄV$™0Œ	™Hb00AØÄW$j0Œ
)–JBÄÖ$ )—  &PPb  BÄ×$)˜8–YbúBÄØ 
‰(–pPborB¦Ɔ *
2#–PbÿANBéÇ?$_¦H)™b*
BêÇ@$
Ç’$m*L–	–Pb¥C
Ç“ *LCCÇŸ T_ªCÇ $™0Œi™Hb00CÇ¡$0Œj™HbCǤ$*QA–PbCMCÇ¥$*R'–YbROCǦ *QCǧ 3*RÌCǨ$T±rHHb™CÇ©$ÿ*S'–YbCǵ *V CǶ$*U(–YbÿCÇ·$±sbgnCǸ$-P ˜Eb

==== ercm11/emas-a/x25addr.txt ====
@device[x2700]
@style[topmargin=0.5in,leftmargin=0.5in,bottommargin=0.5in]
@majorheading(EDNET addresses  25 August 1987)
@b[ Configuration of GEC 4190 KB#1 switch    System No. 669]
@verbatim[
Line No     Address     PSE Name   EDNET name              Comments
lau 01  TV  0000160010xx   TRGS  atcpse2    Connection to AT #2 CPSE
lau 02  IH  000015000002   EA71 *EMAS-C-FE2 EMAS3, Machine C
lau 03  TH  0000150010xx   TRK2  TELEPAC1   Link to TelePAC
lau 04   M  000015000004   E882  Xcall      XXX <-> ITP Converter
lau 05  TM  ------------   GW01  JANET      Direct JANET Link
lau 06   M  000015000006   CSVX  ECSVAX     Comp Sc Vax - No XXX, ITP only
lau 07   M  000015005xxx   XGTE  TELEPAC2   Connection to TelePAC #2
lau 08   M  ------------   GSCP  spare      OUT OF USE
lau 09  IM  000015000001   EA72  spare      spare
lau 10   M  000015000010   ERCV  EMAS-B-FE1 ERCC EMAS3, Amdahl V8
lau 11   M  000015000011   E881  spare      spare
lau 12   T  ------------   STSW  spare      spare (not useable - DTE)
lau 13      000015000013   TCPM  KBPAD13
lau 14      000015000014   LA14  JCMBPAD2   Jcmb Pad #2
lau 15      000015000015   MEME  SCIPAD1    SCRI PAD                (T33)

==== ercm11/emas-a/olink11.txt ====
%externalroutine link11(%string(63) param)
   %string(63) map
   %owninteger brians fiddle = 255
   %constinteger limit = 128
   %owninteger code base = 2<<13, gla base = 0, spbase = 7<<13
   %owninteger alone = 0, main ep = -1, entry = 0
   %ownstring(31) task id = ""
   %ownstring(31) fix file = ""
   %owninteger streams = 2
   %ownstring(31) perm file = ".PERM11#REL", %c
                  lib  file = ".LIB11#REL",  %c
                  object    = ""
   %owninteger stack = 8*1024
   %constinteger plug bit = 64
   %externalintegerfnspec exist(%string(255) s)
   %externalroutinespec define(%string(63) s)
   %EXTERNALSTRING(6) %FNSPEC IMP11HOST
   %externalroutinespec prompt(%string(15) s)
   %recordformat tabfm(%integer addr, index, %c
                       %byteinteger type, %string(63) text)
   %constinteger max table = 400

==== ercm11/emas-a/assblds.txt ====
%Begin
%integer i,j,k
%string (255) s,t,u

   %const %byte %integer %array built in(1:259)=2, 82, 48, 2, 82, 49, 2 %c
        , 82, 50, 2,
      82, 51, 2, 82, 52, 2, 82, 53, 2, 83,
      80, 2, 80, 67, 3, 67, 76, 82, 3, 68,
      69, 67, 3, 73, 78, 67, 3, 78, 69, 71,
      3, 84, 83, 84, 3, 67, 79, 77, 3, 65,
      83, 82, 3, 65, 83, 76, 3, 65, 68, 67,
      3, 83, 66, 67, 3, 82, 79, 76, 3, 82,
      79, 82, 3, 83, 87, 65, 3, 77, 79, 86,
      3, 65, 68, 68, 3, 83, 85, 66, 3, 67,
      77, 80, 3, 66, 73, 83, 3, 66, 73, 84,
      3, 66, 73, 67, 2, 66, 82, 3, 66, 69,
      81, 3, 66, 78, 69, 3, 66, 77, 73, 3,
      66, 80, 76, 3, 66, 67, 83, 3, 66, 67,
      67, 3, 66, 86, 83, 3, 66, 86, 67, 3,
      66, 76, 84, 3, 66, 71, 69, 3, 66, 76,
      69, 3, 66, 71, 84, 3, 66, 72, 73, 4,

==== ercm11/emas-a/gat11aug87.txt ====
ì’§ Uzniì–¨ Kos>Qì–¨$oPæcrì—©$Ep;7Pæ1Hì—ª$#{J#'(æ Sìš« 
ro`"재$J'$æì¡­$WqìPæPì¡®$rcPæPE쫯$sPæUMì«°$it
£ìóÅ 
}T ìóÆ$ „60Pæ  ìôÇ$:…  Pæ61ìþÈ$
†  Pæ0/ìþÉ$
‡avPæreìþÊ$'næ	 
íË$/K
 $ÄPæPî
orPæw ïJŠ$	PæofïJ‹$pE– æ tïTŒ$ 	
Pær3ïT$p	
orPæw ï^Ž$4(  æ	12ï^$O	AGPæ 
ï^$ 	
Pær3ïa‘$	P'PæLLïi’$9	  Pæ  ïi“$	Pæidïj”$qE– æ80ïs•$	PæPïs–$	PæInï}—$a	 iPæleï}˜$[	y*PæCï„™ ge*ï„š$	Pæ o$	Pæt $u	
Pæ

ï‰$è‚'ó'(æl ïŽž$	/'PæPï’Ÿ$	Pætiï’ $	Pæf ï—¡$?vceE0æli X	Z#Zɲ 1  V+$=	 cPæin$e	 oPæèe簾$+	etPæis裏$:	 ngPæNsﱨ$l	!"@Pæk ﱩ$	"PæTrﺪ$ 	#82'Pæ .ﻫ$*	$**Pæ**L$ 	%FuPæcpïÀ­ %8.1=ïÀ­$	&
Pæ**ïÅ®$	'PæV2ïƯ$n	(
=Pæacïа$ 	)áîPæoiïб$l	* 2PæaiïÙ² d	ïÚ³$E	+anPævaïÛ´$ 	, UPæ  ïâµ % .ýÁïâµ {Yïä¶$ 	- 1Pæ00ïå·$D	.E1Pæ )ïæ¸$	/4'Pæinïï¹$ 	00 Pæ  ïïº$U	1ncPæalïö»$| C–)æ0 ïö¼$	[		–		æLLïù½$6	210Pæ-1ïú¾$t	3è Pæerïü¿ V(ESµŽïü¿$	4Pæ  ðÀ 
#M2
ðÁ$	5Pæ  ðÂ$	6Pæ0 ð
Ã$>	7  Pæ
ðÄ$   	æ
 ðÅ$A	8lsPæ
ðÆ  v  jðÇ$á	9tá'PæáöðÈ$*w*
0æ  ðÉ$	:PæanðÊ$ 	;  Pæ
 ð!Ë 	[<>ð"Ì$Ì	<Pæ ð#Í$T	=PaPæ 0ð%Î$QP'$æfið&Ï rmm ð,Ð$	>Pæ  ð-Ñ pPq$ð-Ò$	?Pæ26ð.Ó$	\		–		æ50ð2Ô$3rE– æedð7Õ$	@PPæLLð7Ö$.	ARCPæ  ð8×$n	B
=Pæacð<Ø$R$æltð>Ù$i	C

==== ercm11/emas-a/temp.txt ====
link11
xxx2s#rel
i77perm
.stack 1400
.streams 1
.name xxx
.end
xxx2y
alist11 xxx2s#imp,xxx2s#rel/.lp23

==== ercm11/emas-a/opass2.txt ====
!!             New pass2 for pdp11 imp
! Missing: Reals
!          Procedures as parameters
!          Jam transfer
!          Machine code

!Control bits
%constinteger no eis      = 256;   !Set if EIS option missing
%constinteger stack check = 512
!
%externalroutine pass2
   %externalroutinespec poctal(%integer n)
   %externalstring(15)%fnspec itos(%integer n,m)

     %systemroutinespec move(%integer l,f,t)  ;!EMAS
      %systemintegermapspec comreg(%integer n)  ;!EMAS:
     %owninteger fptr,fend  ;!EMAS:
   !SIZE CONSTANTS

   %constinteger max vars   = 700, %c
                 max label  = 150, %c

==== ercm11/emas-a/opass3.txt ====
%externalroutine pass3;   !PASS3 FOR PDP11 IMP
      %externalinteger shortjumps=0
      %externalinteger mediumjumps=0
      %externalinteger longjumps=0
      %externalreal stretch time = 0
      %externallongrealfnspec cputime
      !INFO BITS   &1 = NO SHORT JUMPS
      !            &2 = NO JUMPS ROUND JUMPS
      !            &4 = NO DEFERAL OF JUMPS
      !            &8 = NO TAILORED ENTRY

!               OBJECT FILE FORMAT
!
!         +============================+
!         !   NUMBER OF DEFINITIONS    !
!         +----------------------------+
!         !                            !
!         !        DEFINITIONS         !
!         !   ADDR<2> TYPE<1> "TEXT"   !
!         !                            !
!         +----------------------------+

==== ercm11/emas-a/gkb26jan87.txt ====
¯ü$38jid6pb  ¯ü$™0
™‘Cb00¯ü $0(™Cbcu¯ü! s0
: ¯ü" 000€¯ý#^
äš	¡nHã
–s#-FU²
älN°n^oýfG?ôw–4#ƒ"#d5E
1°z$0C™Cb.0°{ s0r °|$n0le#™pCbs °} L0IN€°~$í)™bˆED°$~ZÐw@PbH°€$s0r ™Cbpo° 	—wi@°$*#™bˆ0 °‚$AZÑ  Fw@Pb  ° ƒ$2‚l[b
°"$LZÖ985w@Pb  °"Ž$jZ×: 4w@PbCK°#$ZÙ°!8w@Pbw@°#’$H+
E™bˆPU°#“$ ZÚ27)w@Pb *°#”$DZÜ T#w@PbAY°#•$rZÞacw@PbCA°%  0 °%¡$
Zä8w@Pbat°%¢ 0Zã00°%£$0Zæ2.w@Pb98°%¤$7ZåC8w@Pbat°%¥$îZçw@Pbq?°%¦$ 0!nn(™Cb N°%§$Zé#w@Pbÿ 1°&¨  0!0 €°&©$ZëPw@Pb
o°'´  ,  °'µ a0#<°'¶$ÿZð60w@Pb&€€°'·$ZñP&P@PbLE°(¸$ÎZòw'w@Pb°(¹ A0"as€°(º$ ‚m c0beq°(»$dZô09w@Pb	IO°(¼$aZâ3,5w@Pb32°(½$0Zõ  w@Pb  °)È$ Zü  w@Pb  °)É$ˆZúPAw@Pb  °)Ê -Zû--°)Ë Zü°%°*Ì^f1\)ek—oÀPgwzõ®5ž7°*Í^„z£Þ|Å”ùxAùi]!ZfP
™h]ë”°*Î$1‚n33b.3°*Ï$RZý   w@Pb  °,Ú$ [
 1w@PbON°,Û$s/3ct™bsp°,Ü$T[ Rw@Pb0.°,Ý$?[]S"w@Pb0?°,Þ$'[
 7w@Pb86°,ß$[
CpPbt °,à ‚Q°+È°,á$,[	<¯7w@Pb¼S°,â 
[
51°,ã$E[  6w@PbLB°-î$0[w@PbAI°.ï$j[:Bw@Pb°.ð$x[elCw@PbR °.ñ t[°.ò Ì[°.õ$e[.))w@Pbch°/ö$Zïw@Pb¼@°/÷$R[  'w@Pb30°0 I0%UN°0$S[  w@PbEM°0 ;[1H°0$I[UN2w@PbTE°0$[°/!w@Pb°0$[öÖ)w@Pb¡F°1	$™1™b00°1
$ 2m ™bˆdi°1$0(C™Cb.0°1$[Cw@Pb&.0°2$[%PBw@PbLL°2 0'€°3^8Ê‘'tZpƒo“>ÕGà%xÕâ(°3^ ò]À2³»ú°NÙ°3$ 3=f#™bˆ**°3$l[& a"w@Pbes°3$['Pw@PbLL°5)$u[.ap4w@Pb  °6*$h/3€ce™ban°6+$ [0 
8w@Pb  °6,$ [/ bw@Pbst°6-$[1°')w@Pb™°6.$²[3
-£åè °N‹$Ú[P›%w@Pb®%°OŒ$™=™‘b00°O$>™bˆ1F°OŽ$™04™0Cb00°O$06C™Cb.0°O$r[Q^ %w@PbL °S$,[RD;w@Pb;P°Tž$‚sP0b,Ø°TŸ$s[S
w@Pb !°T $/3„™bRO°U¡$@™bˆ g°V¢$ [T1w@Pb
°V£$é8l÷ø6pbΰW¤^p!gé	#$ (
ü†÷yÄ_°Y®$BC™bˆ.0°Y¯ i09
P°Y¯ Ì0:€°Y° !6PG°Z±  A0 °Z²$ [V32"w@Pb91°[³$e[Wpe7w@Pb  °[´$C#™bˆù:°[µ$10<.3™Cb.0°[¶$B0= P#™pCb P°[· 0=ot€°`Á^#îýš´šŸ
ü"A	¾‘_¢”°`Â^ $òÕÑœˆ
°€" 
0Och°# 0M00°$ 0N°€€°%$P<É™bˆ¼—°‚&$-Ál-7!b5m°‚'$s[g  !w@Pbam°„0^i,ÿy;o ¤E·µ¤¼Çžè3!c&¬Ô
Ì°„1$ ‚yâ b.e°…2$`H™b j°…3$™‚z™‘b00°†4$>[i

Bw@Pb  °†5$/3Š°„™b ¤°‡6$tRha™bˆpp°‡7$/Nup$˜b g°ŒD$a0Urs™Cb,h°ŒE$70VBI#™pCb86°F^ -1„È
…_

==== ercm11/emas-a/gss3mar86.txt ====
úÈ
^ #paÚ¾Â	´6­éÃÊ.!´oðó%bt úÐ
	^úÐ
^=#paÚ¾Â	´6­éÃÊ.!´oðó%bt úÖ
 t
 ,	ßúÙ
^”"”­HúÙ

^ƒd‚‹63±ƒÍ"üµ•mhi
‹	O'ÁiºX“úÝ
$
ÖndPPbÂ'úâ
^xVC¬t+$úâ
^rúç
 dˆ,|DAúç
$A¡b
w
úñ
 lÖe
úø
$
ÚD Pb™ßû#
$-A¢--b
--û?
 #îÚÀá	û@
^†½…18'²€Ï"E›luZji
Ž	R(oe¼JMû[
$

ndPb
û_
$A£b
5 û„
 E
CAJû˜
$A¤b
Pû¥
$Î×PPPbû²
 î×
·û×
$A¥Aób
oÞü
$A¦—Mb
–Òü<
$

ndPbÃýüO
 $A§p b
tLü]
!$Ij  PPbÊüm
" jŸB3€ü‹
#$A¨b
œCüÈ
$ #ûZdüÈ
$$ A©4
b
b
üÐ
% P:&v'üÐ
%$áØ^´PPbÓ`ü×
& ïØ:Ìý
(^
Ô)¢¯Ù¨	,wŠ]NŸîŽÔZ#¶ˆý
' i
?ý
'$ AªõÐb
gªý@
) g_a	üÎý@
)$A«b
ÞŽýf
* gaFýf
* 
Q£ýf
* øûòå­ý|
+$A¬b
thý¸
, `
8#i@ý¸
, ¦à¬çý¸
,$VA­yæb
H¿ýà
- #Ú›ÿõVýà
- 3ÔwûàGýà
-$<ÛäPbúëýô
.$@A®b
S¼ýþ
/ Ñ
âÒ£ýþ
/$ÙPPb‚eþ
0 óÙìDþ0
1$A¯Ób
µþl
2$A°b
”þ¨
3$þA±<b
©5þÔ
4$P<@PbäæþÛ
5 ¾
îçŠÈþä
6$A²b
iÿ 
7$üA³ñ_b
gËÿ+
8$ÚPPbP€ÿ2
9 Ú¯ÿ\
:$A´Ž	b
.ÿ}
;$
Û
NPPb))ÿ˜
<$ÔAµKb
œ¶ÿÂ
= ®ÛPe0ÿÔ
>$¿A¶P7b

?$åA·“Öb
!
@$Üb™PPbÌÿ3
A 9:q'3
A ÜPL
B ÿi@©DHL
B$A¸b
îIT
C$·ÝÜPPb=×]
D Ýj
E Ö_!
Â+j
E á
ó ù¸†
F$A¹;öb
–ÝÄ
G <edTÄ
G µLUFÄ
G$Aºb
Š)Ì
H %
Q
I ¦&éç
I ³Ûd'
I$ÊA»»õb
ô4
J úÚ”4ˆ4
J Ôùd$U=
K$öA¼øGb
s,y
L$A½zÞb
Q§‚
M$ÞPPbLˆ†
N$
ündPb¾µˆ
O ÞÜ µ
P$ A¾isb
;èÀ
Q (üuYÅ
R$ÁýÎZPböðê
S^èè'µAPÆd‚h¬Ë®ìW¸ò¢¾’Ókê
T^?ª5ˆA¸Vjî
U ÛeÝ9ñ
V$A¿b
ÿò
W^Ò„Õ‡häçoË
óy¦
J¢ýsS	"è!›Bò
X^¼¾g	û
Y^}6ݶz”ƒ÷‡·¶Aiæ(õ@ì	Vû
Z^ß^¦	YÛ3Û*Þuriô+£':ŵJv2¿€
[^>¬l°»[d8£u	»Ó\ÊÒsØ
øý=)60Ü›|W
\^)(Y£‘7¤0J5¤>ª¶ 	’¸<

]^9	

^^
Ö‡*5±F©ã,£Ø£N¢…(òö#ü$
_^6

«"³6üI
Ÿ.I

`^èÆyv€Äý#ðjÎdaR£
µ-ö	ƒ6¸qš
a^£
vå=
æ›*Ê+ÜS·-†8
b^ñ(
c^ R.P~FÐcAÚ³§í|råsP‚¡Æ0(
d^ „
,!
…
ÌÏ	uÒaßLß-
e$EAÀs b
 1
f^J1
g^ò,o`ý	ð6±@XãØÞ.¡"3f

==== ercm11/emas-a/gss24dec86.txt ====
6þ$nW33w0b	.D`ÿ ˆ
REAÜE`ÿ  
O  ’x`ÿ  	êqt¡qf$	ïaCwbd „ ð
F[mŒ~„$Xw0b	; Ò '
J tDÒ  m

$ªÒ _j__*mž  hm ‚äž$Y0w0b	LLžè^0ZL¤HlO8>[L½zµ·6&qÿ'"Ÿ
 ®‡uŸ
 [Ÿ
 géŸ
 H	ï0rrŸ$;	ñmtCwb5,Ÿ/
 …


"fá0NV”(~ÅGæ¢2=^nm°$-$/ñÐô¼Ù¿¢;>^."Á‹ k
ç^4n08
 ÈgX 	·¢;?^9BmTh
&¢VE^X
¥ƒˆ‚Håj¢VF^-¢mGge{Jq  ¢mG m
ð/ ¢pH$g5w0	b	[2¢vI$
ñ™b  ¢…J H	÷[þ8¢‹K$	û
Cwb)
¢ÂL 
ñi£²W$j0w0b	LL£¿X$
ô@w	ble£ÄY$
õ|wbno£ÆZ$kw0b	[K£Ô[ d0ŠY¤\ H
õ0r¤
] ›r¤^$;
ö7mwb: ¤_$	üwb.J¤`$lw0b	0 ¤¦l$
nnvw0b	on¤·m$s
û  b	s ¤¼n$¥iCwbws¤Åo$
ü ˜bs ¤Íp  
ü 0
¤×q   58‡¤Úr$ 
ý -˜b  ¤Ýs$¦8C˜bor¤ît$:§1C˜bto¥u  ¥(d¥ v 0
ý
vJ¥]€$
ÿ˜b  ¥_ I	ý R¥p‚$	þC˜baô¥uƒ  	òun®’¥Ê„ H
S4¥Ê„ f
Q*Y¥Ê„ å
LÊ9¥Î…$
qAMw0b	VE¥Ò† 
ÿc÷¿¥Ú‡$
 ˜b

==== ercm11/emas-a/gss19sep85.txt ====
ìoï^rìtí 0anìtí^d’$‹32ìtí$T- tC™b eìxð K-,,ìñ$B.l,C™bADì©ò snolÚì©ò r.^rì²ó 0
A,!ì²ó$^/bt™b45ìÉô n
BM„æìÉô$f™b  ìÜõ$×  B)™PbõîìÜö  2 ³í÷ ,
LAáí÷ ,/,Bíø w
rt´åíø$i0leC)™b  íù T
R ìí;ú r)k`‡7í;ú 9,.5À3í>û$k17rC™bbeíZü  0  ?íZü$ 7 ™	b  íný LCOe;íný 1is*íŸþ S1EC
íŸþ ES,8•íŸþ$.ey™	b,,í±ÿ .0anlî or2*î 2r2X‹î retî 
0
.î$2™bMcîO 9).5zuîm$Êer™bGNîu 42r2î‹$P3%Pb  îá  ³îë$e!^o•Pbteîñ	  !  îø
$ 4  ™breïW m	 lü[ïW =te%	ï^ :0 ñï^$t5n:™b/ ïŒ
 
,3Ô€ïŒ
 ,,EŽï$™bc
ï  .c*ïš RIOïš$"P%™Pbedï­ M" P
ï®$^#  P	PPbd ï¼  D eï¼ €# r0ïÚ e( 7ïÚ$L6--C	Pb--ïÚ ð /ïß$ $785PPb
 *ð tð P5 P!ð$P76	PbRMð   EDá#ð   45
mð@ 
 7!ð@$8™bwiðI a89/ð[  
  cmð[$r	b
GNðc :isôrðo  
  ìðo$:	b
#Oðo$
%faPPb
otðt $ðo	b
ðy!$C	b
osð}"$e
F	b
*Sð‡# !6ð‡#$R9
™b  ð$ 
9-rð¥% t7FPnð¥%$F	b
*Sð©&$af.	b
# ð®'$	b
  ð°( 91.06ð³)$Ì:C™b.ð³*$FER	b
ypð¶+ 3ð¥íXð¸,$C	b
osðÐ- R:: ðÐ-$m m	b
thðÕ.$ ob	b
, ðÚ/$E  	b
-Hðß0$Ì	b
ƒðä1 ÿTP‚¢ðä1$eot	b

Cðå2$;%Pbƒñ3 U;ISñ3$g 22P	b05ñ$4  46°ñ$4 Žñ75     óñ76$&PPb
usñ97 ·±´±ñ:8 Ì
…ƒcñ:9 EASLCñ<: 	ñ9µÅcñ@;$td+™bc
ñ@< ÅñC=$
™b5~ñE>$™bÅñH?$
™bWñH@$<™b )ñIA .<.7ñIB r
umñKC Y
BUñRD$T=(3™bieñ}E ñ„F$#..™b )ñ„G ñ‰H$	C™b  ñ‰I  	0 ñ£J 
=0 ñ£K$
ñ„™
Cñ§L$ ™
Cilñ«M$™b 0ñ«N ñ­O$7>me™b.SñÃP$5

==== ercm11/emas-a/arpasites.txt ====

; DoD Internet Host Table
;   8-Jan-87
;  Version number 600
;
; Changes, corrections, comments or questions to (HOSTMASTER@SRI-NIC.ARPA)
;
; The format of this file is documented in RFC 952, "DoD Internet
; Host Table Specification", which is available online at SRI-NIC
; as the file
;              [SRI-NIC]<RFC>RFC952.TXT
;
; It may be retrieved via FTP using username ANONYMOUS with
; any password.
;
; The format for entries is:
;
; NET : NET-ADDR : NETNAME :
; GATEWAY : ADDR, ADDR : NAME : CPUTYPE : OPSYS : PROTOCOLS :
; HOST : ADDR, ALTERNATE-ADDR (if any): HOSTNAME,NICKNAME : CPUTYPE :
;   OPSYS : PROTOCOLS :

==== ercm11/emas-a/ocode11.txt ====
! RECODE FOR IMP PROGRAMS
! THIS PROGRAM TAKES THE THIRD PASS
! OUTPUT OF THE IMP COMPILER
! AND MAKES A RECODE IN ASSEMBLY
! OF EVERY IMP SOURCE LINE
! AUTHOR K. STRAATMAN
! MATHEMATISCH INSTITUUT
! RIJKSUNIVERSITEIT TE GRONINGEN
! POSTBUS 800, GRONINGEN, THE NETHERLANDS
! 24 JAN 1978
! COMMAND: RECODE SOURCE OY / OUTPUT

%externalroutine code11(%string(63) file)
   %constinteger max specs = 100
   %string(63) source file, object file,output,sdisp
%integer disp,i

   %externalintegerfnspec exist(%string(63) file)
   %externalroutinespec define(%string(63) s)
!   %EXTERNALINTEGERFNSPEC TIME40(%INTEGER INST)
   %constinteger source = 1, oy = 2

==== ercm11/emas-a/perm11#rel.txt ====
	FREESTOREPERM$T0PERM$SdPERM$R0PERM$QPERM$KPERM$JœPERM$L PERM$I,PERM$HPERM$GPERM$FPERM$BPERM$A$EVENT$TOP\
SELECTOUTP
SELECTINPU
NEXTSYMBOLPROMPT$PSTR$PSTR$PSYM $PSYMPERM$PPERM$A$GO$$DS$GO$SPÅÆ&
ß	
Ç
à0àààæfæàÞ	À	_‡8ààà&æàÞ	‡ààà&
NÔ
f€ŸŽ
ß	ö
øÖÖ‡@àààß	À€_ àààæàÞ	@‡ààà&æàÞ	‡ààà&æàÞ	‡àààÃÀ
Ãü€
Ç
àÂW ƒB‚ÂE€B` ôƒW2C<úÿ1 üÿƒGW2…W2Û„Ù¸àààAÁe F ƒÀ_‡0ààà
@Ò€
ƒS”À
ý‡(ààà
@Ò€
ƒBÅdR”À
ýÇ0ààà
@Ô‡

==== ercm11/emas-a/oalist11.txt ====
! RECODE FOR IMP PROGRAMS
! THIS PROGRAM TAKES THE THIRD PASS
! OUTPUT OF THE IMP COMPILER
! AND MAKES A RECODE IN ASSEMBLY
! OF EVERY IMP SOURCE LINE
! AUTHOR K. STRAATMAN
! MATHEMATISCH INSTITUUT
! RIJKSUNIVERSITEIT TE GRONINGEN
! POSTBUS 800, GRONINGEN, THE NETHERLANDS
! 24 JAN 1978
! COMMAND: RECODE SOURCE OY / OUTPUT

%externalroutine alist11(%string(63) file)
   %constinteger max specs = 100
   %string(63) source file, object file,output,sdisp

         %integer disp,i
   %externalintegerfnspec exist(%string(63) file)
   %externalroutinespec define(%string(63) s)
!   %EXTERNALINTEGERFNSPEC TIME40(%INTEGER INST)
   %constinteger source = 1, oy = 2

==== ercm11/emas-a/gkb28nov86.txt ====
`P‘b87¬Ló[ o©hn¬Nó\$™07O™Hb00¬Nó]$™07R™AHb00¬Qóh$™¦™	b00¬Qói$G«d•b	p¬Qój Sók M+
A€
¬Sól$-§--b	--¬Uóm$1+¬.10•Cb	3
¬Vón$™07S™	Hb00¬Vóo V07SON¬Wór$4dd@wPbR¬[ó}$n­
w#•e	eq¬[ó~$¯#•1	02¬[ó$™¨™	b00¬[ó€ 0¨00¬\ó$a®&~•b	^'¬]óƒ$:©e
b	
¬_ó…$+®u0•Cb	es¬`ó†$u5n w0b	
¬¡ô&$nÆ,1#•S	3@¬¢ô' 0  ¬¢ô($:+½xt0•Cb	ou¬£ô*$a³.Bb	  ¬¤ô+$Ç`P‘b[7¬¤ô, Ǭ¨ô8 ÿ07~60¬ªô9$+¿D•CbIN¬«ô:$rÈd
#•6	12¬«ô;$
w0b  ¬Èô  07‰ L4¬Èô€$">Cw0b44¬Éô >	¬ÍôŒ$î?Hw0br¬Íô  ?> ¬ÍôŽ$+È0•Cb	Z¬Îô$3Ôm•b	P.¬Îô$™07™1Hb00¬Îô‘ 07ll¬Ïô’$É`b3™bU*¬Ðô•$™07™Hb00¬Ôô $@Ew0	w3¬Õô¡$l+Éor0•Cb	is¬Õô¤$1º1 b	 2¬Öô¥$aŠ  6•f	re¬×ô¦$m+Ê)0•Cb	q%¬×ô§$*+@* "bu#¬Øô¨$Ø'$•b	rc¬Øô©$A*esBbio¬Üô·$8¾ 1r1P€b
+Ñ  0•Cb	 o¬õô÷$aäIE•b	  ¬õôø 0½;P¬öôù$™07£™1Hb00¬öôú$07¤H™Hb.0¬öôû  07£d4¬øôü$™07¥™	Hb00¬øôý$É07¦  ™Hb	  ¬øôþ$
07§**™Hb	rc¬üõ
 oç :¬ýõ$A+Ò 40•Cb	39¬þõ$1¿  b	is¬ÿõ
$ +ªin@0•Cb	60¬ÿõ$(˜@ 	e ¬ÿõ$]+ÓPU0•Cb	  ¬ÿõ$_Àear1P€b•­õ$™07¨™AHb00­õ$ê¬ê6•	•­õ$rëat#•e	as­õ $cì[#• 	ym­õ#$P+Õ

0•Cb	NI­õ$$
À  b	 ~­	õ%$.+Ö.10•Cb	 :­
õ&$™07­™AHb00­
õ' 107­.1­õ3$rîat#•e	as­õ4$
ïnd#•7	  ­õ5$­•b	˜­õ7$+×­0•Cb	™­õ9$Áb	8€­õ:$ +Øly0•Cb	6 ­õ;$™07±™AHb00­õI$ÿò60#•0	8€­õJ$ ó %#•a	s ­õK^ÊÜ4­±ç^«É0Œ_¿
²èX>ЭõL^3 zYß³þËI»†Ø6,Á£
5z,ë±_OM4›¾4<CZ­õM$
+Ùqu0•Cb	  ­õN$Âeb	 I­õO$ H  w0b	  ­ õZ$07¹.0™Hb	  ­!õ[ 07·00­#õ\$õ#•o	l ­#õ]$ ö  #• 	  ­%õ`$Ž•b	  ­&õa$0Ä00b	.0­&õb$ +Û  0•Cb	 Y­'õc$r+Ü..0•Cb	  ­*õn$207½ve™Hb	  ­*õo PÆK['­*õp$ ø.1•b	.0­*õq$î+Ý@0•Cb	64­*õr 07»00­+õs 07©00M­-õt$ù#•o	l ­-õu$ ú 2#•1	  ­0õx$ Ç12b	4+­4õƒ$207Áha™Hb	
 ­4õ„$1ü  •b	,k­5õ…  +  dc­6õŠ 007¿R*­7õ‹$Aý  #• 	  ­7õŒ$þ*#•	-7­=õ™$
+áre0•Cb	i:­=õš$ÿC•b	 E­@õ›$™07Ä™‘Hb00­@õœ$807Å  ™Hb	C0­@õ$T07Æle™Hb	e ­Aõž r07¶t õ­Aõž$D#• 	  ­AõŸ$fn #•;	e­Aõ   07Ä  ­Fõ« ^ÞTLì|­Fõ¬$ I00Bw0b	0 ­Gõ¯$a+ãS 0•Cb	  ­Hõ°$  5•b	  ­Iõ± @07¶$+­Jõ²$™07É™‘Hb00­Jõ³$ 07ÊA ™Hb	si­Jõ´$m07ËRE™Hb	40­Jõµ a07É

==== ercm11/emas-a/gat3mar86.txt ====
•PSK 2Ÿ;P•SSL$ -$æ
  •TSM$î…‹P	C•TSN$n…Œ.fPr	Csf•TSO$…™Pænk•TSP 0…01•^SQ$/…Ž.P	CP•^SR$<…, P 	CLL•^SS$…™Pæ  •^ST 0…01•dSU$…‘1Pæer•dSV$…’CPæ  •hSW$™…“CPF	CLT•hSX$ …”  P	C•hSY$/…••J™Pæ•hSZ 0…•01•iS[$…– ™Pæ•iS\$™…˜™PæAI•iS]$™…—qPæ
e)•iS^ 0…–01•iS_$…™qPæ
•iS` ?…˜NE•jSa ¥…‘le
•kSb$B…›  Pæ
  •lSc$e…šnuPæ
eg•lSd "…’
•rSe$…œvP	Cti•rSf$
… uPR	C1 •rSg$ …žr ™Pæpt•rSh "…ž•wSi î	`9•zSj$ 	dPRC	™	æ**•|Sk$ …Ÿ
iPe	Cf •|Sl$… 0P
	C
C•|Sm$N…¡v™PæE,•|Sn 0…¡01•‚So$î敆Sp$…¢P 	CEN•†Sq$E…£dlPc	C'
•†Sr$…¤"i™PæW•†Ss 0…¤01•St$5…¥0 P 	C  •Su$…¦tP	Cse•Sv$r…§(o™Pæou•Sw 0…§01••Sx$0…¨5 ™Pæds••Sy$…ªK™Pæ••Sz$…©qPæ
ds••S{$ …«  qPæ
li••S| 0…¨01•–S} ?…ªNE•—S~$…­Pæ
S.•˜S$i…¬UPæ
  •šS€$È…®P	C
 •šS$l…¯enPd	Cn)•šS‚$n…°e ™Pæ u•šSƒ ¥…°le•¤S„$Ì…±  P 	C  •¤S…$E…²_Pa	C
•¤S†$…³™Pæ
™Pæ  •ÌS¡ 0…Å01•ÖS¢$î…ÆP	C•ÖS£$±…Ç  P 	C  •ÖS¤$2…È08™Pæes•ÖS¥ 0…È01•ÚS¦ ÿDF(•àS§  Åf Ê•àS§$…ÉP 	C  •àS¨$…Ê`rP7	C  •àS©$U…ËCK™Pæes•àSª 0…Ë01•ãS« S‡¦•äS¬$æ•êS­$5…Ì45P3	C  •êS®$n…ÍiaPe	C.'•êS¯$L…Îng™Pæ7,•êS° 0…Î01•íS±$…Ï ™Pæca•íS²$…Ñ™Pæ•íS³$…Ð
qPæ	Ces•íS´ 0…Ï01•íSµ$…ÒqPæ	C•íS¶ ?…ÑNE•ðS·$úe1™1æhe•ôS¸$…ÓP	C•ôS¹$0…ÔA P0	C C•ôSº$R…Õ  ™PæEQ•ôS» ¥…Õle•þS¼  	e  •þS¼$…ÖnP	C•þS½$…וôP	C•þS¾$:…Ø`r™Pæ  •þS¿ 0…Ø01–SÀ$O…Ù0 Pt	C  –SÁ$
…Ú uPR	C1 –SÂ$6…Û 1™Pæ  –SÃ 0…Û01–SÄ$™…ÜCP	C  –SÅ$E…ÝoaP
	Ce(–SÆ$Î…Þ™Pæ–SÇ 0…Þ01–SÈ U	c

–vSù$
†d:P
	Co:–vSú$l†Co™PæST–vSû 0†01–xSü$UrCK ™ æÊ–ySý$…þPæ–€Sþ$†P|	C  –€Sÿ$†-P	C–€T$ †  ™Pæ--–€T 0†01–€T$û1™1æ d–‡T 0…þ01–ŠT$S†erPn	C
–ŠT$†P0	C0 –ŠT$† ™Pære–ŠT "†C–”T  Õ  ,s–”T$†iP 	C  –”T	$^†	 IPS	CRC–”T
$†
™Pæ
Q–”T 0†
01––T  
   / –T
 Nç  –žT$†P	C
Q–žT$n†P	C--–žT$†
–™Pæ–žT 0†
01–¨T$î†P	C–¨T$
†ndPs	C5
–¨T$N† E™Pæ/M–¨T 0†01–²T E
  ˜–²T$î†P	C–²T$.†rvPm	Cni–²T$†a™PæO–²T 0†01–¼T$)†r
P	C–¼T$t†

™Pænt—TC 0†/01—TD È	f—TE$™	gC	™	æ n—TF$†0SPs	C2.—TG$†1—P	C—TH$/†2nd™PæL€—TI 0†201— TJ$™†3CP	C— TK$ †4ABP 	CPP— TL$†5™Pæ
— TM 0†501—)TN 

==== ercm11/emas-a/gkb22feb86.txt ====
gi_œ$ E'  Pb
gl_$eÅt (Pb
ongv_¢$
Åg=(Pb
mg¨_Ä$iÅnd(Pb
  g²_È$ Å  (Pb
  gº_Í )ð	Çkgò_ï *apFBgò_ï$¤$•bgø_ò$Å%g(Pb
0gú_ó$ $„|™bsh4`$AÅ,RO(Pb
 Ch<`"$P$…OR™bROhz`F$>Å3~Y(Pb
 `h`I *$¸* /h‚`L$$¹CpP6b
h¬`c$Å9h¢(Pb
Ph¶`h$UÅ< b#Pb Oh¶`i$LÅ;L(Pb
Li`$~ÅE~G(Pb
 bi` $ý(™P(bd i`¡$LÅF(N(Pb
EMi`¤$
E, WPb

_i8`º$^ÅJ~G(Pb
JSi@`½ ¼+shai@`¾$2E-?fPb
JMiB`Á$ÅK(Pb
--i~`ä$ÅQ(Pb
  i`å$~$†:e™b, i†`è m+†’tt¾iˆ`é$:ÅR(Pb
iŠ`ì$$ºpP6b
™PiŽ`í$€•b  iÄa
$E1Pb
TSiÄa$_ÅX4r(Pb
55iÎa Î1™iÎa$ÅY(Pb
TSiÏa Lþ  
ja;$ÌC"bËja<$E4iØ@Pb
Pja=$2ÅaJF(Pb
FTja@ $„alÇjQam$Åh(Pb
  jQan$"
""(™P(b""jUaq$3•b  jVar 3jCjVat  )ð.0j—a¢$Åp(Pb
 ej™a¥$ E>35@Pb
 3j¡a¨$ÅqjŠ(Pb
Pj¡a© È5aej¡aª 
ŠcjÑaË$06

HPPb00jÒaÌ$EAPb
ORjÓaÍ$ ÅwNT(Pb
48jÔaÐ Åk™jÝaÓ$ÅxjÒ(Pb
Pkb$~Å‚~I(Pb
rmkb$~Ń~APb
  kb$Å„ #Pb  kb ÌÅ„k"b$2Å…  (Pb
20keb5$+†™k^6PCb
Pkfb6 :+†˜ºkhb7$IÅ(Pb
krb<$ ÅŽOR(Pb
[`k¡b]$Å—oPb
hek¤b^$~Ř@~(Pb
@~k¨ba$3Å™i #Pb
 ak®bd$ EI  Pb
65k®be$1ÅšAN(Pb
  kÚb…$
m„c·$EOPb
 m…c¸ 'CÈbm…c¹$ Åö  (P 
C  m…cº$Å÷86Pb

m†c»$2Åø.59Pb
CTmÈcè$ +†½:LPCb

 mÈcé$+†¿PCb
LˆmÈcê$Æ(Pb
Êcë$+†ÀLPCb
LˆmÍcî$H+†ÁIGPCb™nd$BÆ(Pb
Pnd Ö3
C.&©nd$ERHPb
Jrn	d$
Æss@(Pb
inn	d$4ÆCo(PE
C14n	d$Æn6Pb
Pn
d$pÆtb9Pb
6)nJdG$Æ(Pb
GOnMdJ^I eõ”ÙHЪ…Æ͹ì³(ÎcžO¸óþnMdK^^Ý
4êÛ6SDŸ1¦°„nèö$MñÑ5¨;K!nMdL ^(<TT
6„n•d…^_	ÙÖ
Œ¸­ÏM¹a’4ð$$n•d†^7
cxd=-T8pMR1&Ãt´¡Wn˜d‰  +†Æ  CnšdŠ$2Æ$29(Pb
.0nÔd¸^!O
$
aoá!u!S„‹ÈBŠ(¶enÔd¹^"‘(´¯	^AŸï/$ŸnÖdº$Æ*(Pb
	nÝd¾^#\ƒ­x&
‘ÀuÇodí^ì1odî^2rP56o–ÓZ+€æÆÕÎß!ª
r)} s¼	»odï$7Æ1om(Pb
7.oWe 

´“oXe$ Æ7o(Pb
–obe$ Æ8  (Pb
  ode$$ÃCpP6b
Po¤e7$EEXCPb
INo¨e:$4Æ?  (Pb
 Ao©e; A’Oo±e> Ò ZËoÚeW$ ÆDnt(Pb
  oäe\$nÆEec(Pb
 eoèe_ Ò1æp e$TÆKlt(Pb

Dp(e„ *gp(e„$E\hPb
p*e‡$ÆL (Pb
pce©$Ì$‹™b pfe¬$ÆR(Pb
pme¯$E_@Pb
  ppe°$
ÆS(Pb
p²eà$
)ó
A0Abrup¶eã$Æ[E(Pb
--pÀeè$Æ\((Pb
ªpòf$FÆa3
(Pb
S(púf$+†É
6PCb
™q/f*$Æh(Pb
 Lq1f-  ÆZesÐq9f0$Æi(Pb
q@f3$ Æj  #Pbs qAf4$Î@"bL€qxfV $Š{
q}fY$NÆr1 Pb
:
q~fZ$ +†Ì  6PCb
UCqf[$Æs(Pb
l q€f^$-ÆtIF€Pb  q¿f‰$Æq²#Pb
PqÃfŒ$
&:6b
	`qÃf$
nd(™P(b  qÅfŽ$oÆ€
 (Pb
enqÉf$dÆ  #Pb
  qÍf‘ ¼+„Iarf¾$Æ

==== ercm11/emas-a/deimosperm.txt ====
!
!      specs for deimos perm routines
!
%externalroutinespec pon(%record(*) %name p)
%externalroutinespec poff(%record(*) %name p)
%externalroutinespec ponoff(%record(*) %name p)
%externalintegerfnspec mapvirt(%integer ser,seg1,seg2)
%externalintegerfnspec map abs(%integer vadd,len,id)
%externalintegerfnspec getid
%externalroutinespec alarm(%integer ticks)
%externalroutinespec linkin(%integer ser)
%externalroutinespec maphwr(%integer segs)
%externalintegerfnspec mappsect(%integer seg,task)
%externalroutinespec push(%record(*)%name q,%record(*)%name m)
%externalrecord(*)%mapspec pop(%record(*)%name q)
%externalintegerfnspec time
%externalroutinespec set prio(%integer prio)
%constbyteintegername own id==(8_160030);   !8.1 compiler bug
%constbyteintegername fsys == k'160055'
%constbyteintegername id == k'160030'
%constbyteintegername int==(8_160060)

==== ercm11/emas-a/gat15dec86.txt ====
'‡…$!ÈH˜æ	 '‘† …¢ˆ:'‘†$!ÉH˜æ	€'›‡$!ÊH˜æ	€'¥ˆ$!ËH˜æ	€'¯‰ ë#(Û9'¯‰$!ÌH˜æ	€'¶Š$ø2v™'æ€'¶‹ ø'C'¹Œ$!Í'¯˜æ	9(
H˜æ	€€*€ä ¶	+#*€ä$"H˜Pæ	*Šå$"€˜Pæ	*”æ$"H˜Pæ	86*žç Õ
vi3.*žç$"H˜Pæ	b*¨è$"˜Pæ	ly*²é$"H˜Pæ	h°*¼ê ö
/(,!÷*¼ê$"H˜Pæ	I*Æë$"H˜Pæ	!÷+4ö i¢Suˆ:+4ö$"'H˜Pæ	+:÷$ûv™'æri+:ø uûunC+>ù$"(H˜Pæ	‰	+Hú$")˜Pæ	˜+Rû #(Û9+Rû$"*H˜Pæ	€€+\ü$"+H˜Pæ	€€+fý$",H˜Pæ	€€+pþ$"-H˜Pæ	on+Ð	$e"7"d(˜PæBf+Ò
5$U"Wk ˜Pæ	ea-6$N€€-7$"X˜Pæ	s-8$"Y3˜Pæ	O'-(9$H"ZQ1˜Pæ	8`-2:$2"[1%˜Pæ	1F-xD$"bH˜Pæ	an-‚E$"c˜Pæ	i-ŒF$e"d  ˜Pæ	  -“G$þv™'æut-“H þ'C-–I$"eH˜Pæ	f - J$"fH˜Pæ	 s-ªK$Ì"g˜Pæ	 -´L$2"h -˜Pæ	h'-¾M$"iH˜Pæ	 c-äT^ü-æU$"mH˜Pæ	86-íV^
*Á—¾-íW^
**²!OȤ-ðX$"nH˜Pæ	86-öY^ *Í£-Ö¿.`^aR‚ÔA·Ä
ßd.a$"qH˜Pæ	en.b^o
¨V†œ¸ˆE	Ê+jq.c^&R‚ÔA½Ã
ëb.d$"rH˜Pæ	ly.e^3!5Ó¢á
˜Pæ	 p1Äë ã
%33.1Äë$"Ð
˜Pæ	 p1Îì$"Ñ
 23.5HR$#+H˜Pæ	˜5RS$#,R˜Pæ	==5\T$#-H˜Pæ	ma5 ]^ˆ‡Q¨1§ZøŠ——N7Gc‚,w©GÁ!5¢[ hMyo5¢[$e#4an˜Pæ	 b5¨^^sÿŠ,,ÿŠ+š+šýÇ	éôÂÒ5¨_^„5¬`^‚,*,*,9,9þÐ	ïqÑî5Ág$#7E˜Pæ	e 5Ãh^e	’´Ý»Ì Ö5Ãi^§
}Šö†5Èj$IP™'æ	5Ëk$#8˜Pæ	n5Ìl^®}ŠŸ	Š5Þt^.!5ð¿
ñ$#‹H˜Pæ	eF9ò$?#Œ!!˜Pæ	!N9ó$i#(P˜Pæ	VC9(ô MD9(ô$#ŽH˜Pæ	#!92õ$0#(4˜Pæ	h*9<ö$#H˜Pæ	'&9F÷$S#‘!!˜Pæ	$$9ª$#›H˜Pæ	ce9´$#œH˜Pæ	te9¾$#˜Pæ	99È$#žR˜Pæ	s 9Ò$#ŸP˜Pæ	s 9Ü$# H˜Pæ	Un9ã "ìÊ9æ$#¡H˜Pæ	A9ð	$#¢H˜Pæ	e 9ú
v™'æ˜=“ 
C=“€$$H˜Pæ	=™^

¨` œì¬R>o=«ˆ^"X˜0ðLàûLF=±‰$$H˜Pæ	he=´Š^c¼ø Ó	¢)=´‹^‰ Žœ âÓ¢=»Œ$$H˜Pæ	!`=½^;Zš4ôM÷þ«¨=Ï”^)0šj+Ô0„=Ï•$$H˜Pæ	 =Ø–^<Æ{ŸzŠ	{	ç.$N…KQ`=Ø—^hF†!mn ¾4t7:

==== ercm11/emas-a/imp119s/utility.txt ====
%external %string (31) %fn itos(%integer n,m)
   %integer flag
   %string (31) s
   s = ""
   flag = 1
   %if n<0 %start
      n = -n
      flag = -1
   %finish
   m = flag-m %if m<0
   %cycle
      s = tostring(n-n//10*10+'0').s
      n = n//10
      %exit %if n=0
   %repeat
   s = "-".s %if flag<0
   s = " ".s %while length(s)<m
   s = " ".s %if flag#0
   %result = s
%end
%external %routine poctal(%integer n)

==== ercm11/emas-a/imp119s/pass2o.txt ====
!!             New pass2 for pdp11 imp
! Missing: Reals
!          Procedures as parameters
!          Jam transfer
!          Machine code

!Control bits
%const %integer no eis= 256;             !Set if EIS option missing
%const %integer stack check= 512
!
%external %routine pass2
   %external %routine %spec poctal(%integer n)
   %external %string %function %spec i to s %alias "S#ITOS"(%integer i)

   %external %routine %spec move %alias "S#MOVE"(%integer length,from,to)
!EMAS
   %external %integer %map %spec comreg %alias "S#COMREGMAP"(%integer n)
!EMAS:
   %own %integer fptr,fend,fptrinit;     !EMAS:
                                         !SIZE CONSTANTS


==== ercm11/emas-a/imp119s/l.txt ====
Source: ERCM11:IMP119S.ASS11S         Compiled: 06/10/86   15.42.04
Object: ERCM11:IMP119Y.ASS11Y

Parms set: DEFAULTS



              ERCC. Portable Imp80 Compiler Release 4 Version 15 May 86


  2047  4095
     1        %external %routine ass11(%string (63) files)
     2           %external %integer %function %spec smaddr(%integer chan,
     C              %integer %name length)
     4           %routine define(%string (255) s)
     5              %external %routine %spec emas3(%string %name command,params,
     C                 %integer %name flag)
     7              %integer flag
     8              emas3("DEFINE",s,flag)
     9           %end;                                 ! Of %routine define.
    10           %external %string %function %spec date %alias "S#DATE"

==== ercm11/emas-a/imp119s/link11.txt ====
%external %routine link11(%string (63) param)
   %string (63) map
   %own %integer brians fiddle= 255
   %const %integer limit= 128
   %own %integer code base= 2<<13, gla base = 0, spbase = 7<<13
   %own %integer alone= 0, main ep = -1, entry = 0
   %own %string (31) task id= ""
   %own %string (31) fix file= ""
   %own %integer streams= 2
   %own %string (31) perm file= ":imp119y.PERM11#REL",
                  lib  file = ":imp119y.LIB11#REL",
                  object    = ""
   %own %integer stack= 8*1024
   %const %integer plug bit= 64
   %external %integer %function %spec exist %alias "S#EXIST"(%string %c
      (255) file)
   %routine define(%string (255) s)
      %external %routine %spec emas3(%string %name command,params,
         %integer %name flag)
      %integer flag
      emas3("DEFINE",s,flag)

==== ercm11/emas-a/imp119s/pass1.txt ====
!   IMP77 compiler  first pass

!to create an EMAS version:
!
!         d*//*
!         m-0 (f/!imp77:/ l* i/!imp77:/ m)*
!            On EMAS all shorts should be changed to integers.
!
!            Also, the INCLUDE facility will need to be modified.
!         ARRAYS CHAR,MAPPED,ANYFORM,CNEST BECOME INTEGER
!
!
                                         !#########%c
                                         ##########%c
                                         ################################
                                         !            Copyright: 1 January%c
                                         1980             #
                                         !    INTERACTIVE DATASYSTEMS%c
                                         (EDINBURGH) LTD.      #
                                         !                Peter S. Robertson%c
                                         #

==== ercm11/emas-a/imp119s/pass2.txt ====
!!             New pass2 for pdp11 imp
! Missing: Reals
!          Procedures as parameters
!          Jam transfer
!          Machine code

!Control bits
%const %integer no eis= 256;             !Set if EIS option missing
%const %integer stack check= 512
!
%external %routine pass2
   %external %routine %spec poctal(%integer n)
   %external %string %function %spec i to s %alias "S#ITOS"(%integer i)

   %external %routine %spec move %alias "S#MOVE"(%integer length,from,to)
!EMAS
   %external %integer %map %spec comreg %alias "S#COMREGMAP"(%integer n)
!EMAS:
   %own %integer fptr,fend,fptrinit;     !EMAS:
                                         !SIZE CONSTANTS


==== ercm11/emas-a/imp119s/ass11sold.txt ====
%external %routine ass11(%string (63) files)
   %external %integer %function %spec smaddr(%integer chan,
      %integer %name length)
   %routine define(%string (255) s)
      %external %routine %spec emas3(%string %name command,params,
         %integer %name flag)
      %integer flag
      emas3("DEFINE",s,flag)
   %end;                                 ! Of %routine define.
   %external %string %function %spec date %alias "S#DATE"
   %dynamic %integer %fn %spec time40(%integer in)
   %dynamic %integer %fn %spec time03(%integer in)
   %dynamic %integer %fn %spec time45(%integer in)
   %routine dump bin(%half %integer %array %name code, %integer start,finish,
      %string %name t, %integer %name flag)
      %integer check,j
      %routine put(%integer n)
         %integer m
         m = n>>8&255
         n = n&255
         printch(n); printch(m)

==== ercm11/emas-a/imp119s/pass3.txt ====
%external %routine pass3;                !PASS3 FOR PDP11 IMP
   %external %integer shortjumps=0
   %external %integer mediumjumps=0
   %external %integer longjumps=0
   %external %real stretch time= 0
   %external %long %real %function %spec cpu time %alias "S#CPUTIME"
                                         !INFO BITS   &1 = NO SHORT JUMPS
                                         !            &2 = NO JUMPS ROUND JUMPS
                                         !            &4 = NO DEFERAL OF JUMPS
                                         !            &8 = NO TAILORED ENTRY

!               OBJECT FILE FORMAT
!
!         +============================+
!         !   NUMBER OF DEFINITIONS    !
!         +----------------------------+
!         !                            !
!         !        DEFINITIONS         !
!         !   ADDR<2> TYPE<1> "TEXT"   !
!         !                            !
!         +----------------------------+

==== ercm11/emas-a/imp119s/code11old.txt ====
! RECODE FOR IMP PROGRAMS
! THIS PROGRAM TAKES THE THIRD PASS
! OUTPUT OF THE IMP COMPILER
! AND MAKES A RECODE IN ASSEMBLY
! OF EVERY IMP SOURCE LINE
! AUTHOR K. STRAATMAN
! MATHEMATISCH INSTITUUT
! RIJKSUNIVERSITEIT TE GRONINGEN
! POSTBUS 800, GRONINGEN, THE NETHERLANDS
! 24 JAN 1978
! COMMAND: RECODE SOURCE OY / OUTPUT

%external %routine code11(%string (63) file)
   %const %integer max specs= 100
   %string (63) source file,object file,output,sdisp
   %integer disp,i

   %external %integer %function %spec exist %alias "S#EXIST"(%string %c
      (255) file)
   %routine define(%string (255) s)
      %external %routine %spec emas3(%string %name command,params,

==== ercm11/emas-a/imp119s/alist11old.txt ====
! RECODE FOR IMP PROGRAMS
! THIS PROGRAM TAKES THE THIRD PASS
! OUTPUT OF THE IMP COMPILER
! AND MAKES A RECODE IN ASSEMBLY
! OF EVERY IMP SOURCE LINE
! AUTHOR K. STRAATMAN
! MATHEMATISCH INSTITUUT
! RIJKSUNIVERSITEIT TE GRONINGEN
! POSTBUS 800, GRONINGEN, THE NETHERLANDS
! 24 JAN 1978
! COMMAND: RECODE SOURCE OY / OUTPUT

%external %routine alist11(%string (63) file)
   %const %integer max specs= 100
   %string (63) source file,object file,output,sdisp

   %integer disp,i
   %external %integer %function %spec exist %alias "S#EXIST"(%string %c
      (255) file)
   %routine define(%string (255) s)
      %external %routine %spec emas3(%string %name command,params,

==== ercm11/emas-a/imp119s/alist11.txt ====
! RECODE FOR IMP PROGRAMS
! THIS PROGRAM TAKES THE THIRD PASS
! OUTPUT OF THE IMP COMPILER
! AND MAKES A RECODE IN ASSEMBLY
! OF EVERY IMP SOURCE LINE
! AUTHOR K. STRAATMAN
! MATHEMATISCH INSTITUUT
! RIJKSUNIVERSITEIT TE GRONINGEN
! POSTBUS 800, GRONINGEN, THE NETHERLANDS
! 24 JAN 1978
! COMMAND: RECODE SOURCE OY / OUTPUT

%external %routine alist11(%string (63) file)
   %const %integer max specs= 100
   %own %integer main prog= 0
   %string (63) source file,object file,output,sdisp

   %integer disp,i
   %external %integer %function %spec exist %alias "S#EXIST"(%string %c
      (255) file)
   %routine define(%string (255) s)

==== ercm11/emas-a/imp119s/code11.txt ====
! RECODE FOR IMP PROGRAMS
! THIS PROGRAM TAKES THE THIRD PASS
! OUTPUT OF THE IMP COMPILER
! AND MAKES A RECODE IN ASSEMBLY
! OF EVERY IMP SOURCE LINE
! AUTHOR K. STRAATMAN
! MATHEMATISCH INSTITUUT
! RIJKSUNIVERSITEIT TE GRONINGEN
! POSTBUS 800, GRONINGEN, THE NETHERLANDS
! 24 JAN 1978
! COMMAND: RECODE SOURCE OY / OUTPUT

%external %routine code11(%string (63) file)
   %const %integer max specs= 100
   %own %integer main prog= 0
   %string (63) source file,object file,output,sdisp
   %integer disp,i

   %external %integer %function %spec exist %alias "S#EXIST"(%string %c
      (255) file)
   %routine define(%string (255) s)

==== ercm11/emas-a/imp119s/vers.txt ====
%externalstring (40) %fn imp11 version
   %result = "8.2 release 4"
%end
%externalstring (6) %fn imp11host
   %result = "ercm11"
%end
%externalroutine ssmess(%integer i)
   printstring("?? See BG ??")
%end
%endoffile

==== ercm11/emas-a/imp119s/timeio.txt ====
%externalroutine timeio(%string(63) file)
      %integer s
      %real t
      %externalroutinespec define(%string(63) s)
      %externallongrealfnspec cputime
      define("ST1,".file)
      t = cputime
      selectinput(1)
      readch(s) %until s = 25
      t = cputime-t
      printstring("I/O time for ".file." =")
      print(t, 2, 4)
      printstring(" seconds")
      newline
      selectinput(0)
      closestream(1)
%end
%endoffile

==== ercm11/emas-a/imp119s/deimosperm.txt ====
!
!      specs for deimos perm routines
!
%externalroutinespec pon(%record(*) %name p)
%externalroutinespec poff(%record(*) %name p)
%externalroutinespec ponoff(%record(*) %name p)
%externalintegerfnspec mapvirt(%integer ser,seg1,seg2)
%externalintegerfnspec map abs(%integer vadd,len,id)
%externalintegerfnspec getid
%externalroutinespec alarm(%integer ticks)
%externalroutinespec linkin(%integer ser)
%externalroutinespec maphwr(%integer segs)
%externalintegerfnspec mappsect(%integer seg,task)
%externalroutinespec push(%record(*)%name q,%record(*)%name m)
%externalrecord(*)%mapspec pop(%record(*)%name q)
%externalintegerfnspec time
%externalroutinespec set prio(%integer prio)
%constbyteintegername own id==(8_160030);   !8.1 compiler bug
%constbyteintegername fsys == k'160055'
%constbyteintegername id == k'160030'
%constbyteintegername int==(8_160060)

==== ercm11/emas-a/imp119s/ass11s.txt ====
%external %routine ass11(%string (63) files)
   %external %integer %function %spec smaddr(%integer chan,
      %integer %name length)
   %routine define(%string (255) s)
      %external %routine %spec emas3(%string %name command,params,
         %integer %name flag)
      %integer flag
      emas3("DEFINE",s,flag)
   %end;                                 ! Of %routine define.
   %external %string %function %spec date %alias "S#DATE"
   %dynamic %integer %fn %spec time40(%integer in)
   %dynamic %integer %fn %spec time03(%integer in)
   %dynamic %integer %fn %spec time45(%integer in)
   %routine dump bin(%half %integer %array %name code, %integer start,finish,
      %string %name t, %integer %name flag)
      %integer check,j
      %routine put(%integer n)
         %integer m
         m = n>>8&255
         n = n&255
         printch(n); printch(m)

==== ercm11/emas-a/imp119s/imp11.txt ====
%external %routine imp11(%string (255) s)
   %external %string (6) %fn %spec imp11host
!   %extrinsic %integer shortjumps
!   %extrinsic %integer mediumjumps
!   %extrinsic %integer longjumps
!   %extrinsic %real stretchtime
    %owninteger shortjumps,mediumjumps,longjumps,stretchtime
   %external %integer permad
   %extrinsic %integer LIST
!   %external %routine %spec timeio(%string (63) file)
   %external %string %function %spec date %alias "S#DATE"
   %external %string %function %spec time %alias "S#TIME"
   %external %long %real %function %spec cpu time %alias "S#CPUTIME"
   %own %integer exclam= 0, info2, info3
   %string (63) source,object,listing,grot,x1,x2
   %integer flag,stats
   %real t0,t1,t2,t3
   %external %integer %map %spec comreg %alias "S#COMREGMAP"(%integer n)
   %record %format rfm(%integer conad,filetype,datastart,dataend,a,b,c,d)
   %external %routine %spec connect %alias "S#OLDCONNECT"(%string (255) file,
      %integer mode,hole,prot, %record (rfm) %name r, %integer %name flag)

==== ercm11/emas-a/imp119y/lib11#rel.txt ====
	ITOSWRITE SPACE,SPACESTNEWLINE`NEWLINES”	SUBSTRINGü
READSTRINGp$READ$PSYMPERM$P
NEXTSYMBOL$PSTRPERM$PPERM$HPERM$Ah
&fUDÅeHÁô-Ftüÿô•2@ô•7A	ô•6Bô•8C
ôüÿô>D
ô FÀ4
FôBDô
DDaüÿÀ
r
Áe0süÿÀ
r
4üÿêFô
DDaòþÿÃeBôþÿÂAÂà´þÿþÿôþÿ4-Dþÿ	ô
DDaó• óô
DDaÂAíD³ ÁÁe…„‡&fUDÅe#ß		ß	…„$‡F &À ß	'‡,&fDÅe)þÿ*À ß	+ô
þÿ,ö…„-‡VT/À
ß	0‡`&fDÅe2þÿ3À
ß	4ô
þÿ5ö…„6‡Vˆ8Àß	9‡”&fÎåDÅe<4üþ4Š=üÿ-Ã
-þÿ4-þÿÁ
ÿÿ…„‡>þÿíüÿƒ
ô?ÂeüþmüÿÂ
´þÿ@ÊA…„‡Öü&fDÅeEß	tFÁ%
ùÁ% öÁ%óGÁ%"I<ŠþÿJß	Á%"Kß	tLÁŠ

==== ercm11/emas-a/imp119y/perm11#rel.txt ====
	FREESTOREPERM$T0PERM$SdPERM$R0PERM$QPERM$KPERM$JœPERM$L PERM$I,PERM$HPERM$GPERM$FPERM$BPERM$A$EVENT$TOP\
SELECTOUTP
SELECTINPU
NEXTSYMBOLPROMPT$PSTR$PSTR$PSYM $PSYMPERM$PPERM$A$GO$$DS$GO$SPÅÆ&
ß	
Ç
à0àààæfæàÞ	À	_‡8ààà&æàÞ	‡ààà&
NÔ
f€ŸŽ
ß	ö
øÖÖ‡@àààß	À€_ àààæàÞ	@‡ààà&æàÞ	‡ààà&æàÞ	‡àààÃÀ
Ãü€
Ç
àÂW ƒB‚ÂE€B` ôƒW2C<úÿ1 üÿƒGW2…W2Û„Ù¸àààAÁe F ƒÀ_‡0ààà
@Ò€
ƒS”À
ý‡(ààà
@Ò€
ƒBÅdR”À
ýÇ0ààà
@Ô‡

==== ercm11/emas-a/gkb23feb86.txt ====
Þ¾ —$HION1bT(Þ¾ ˜$e![he03™3b. Þ¿ ™$™.ó™2b00ÞÀ š^*2x
ª(_"j\-DÉBƒì
Tq´dÞÀ ›^™ !ºEþ\s?9MÁŸ)î$Û]&ÞÀ œ 0.ó00ÞÀ $.t(Pb
PÞ ž ]Ÿ)ƒÞÄ ¡ :HstÞÉ ¤^!>U¡Ë'ôlX×US+	.~h‹€wòÞÉ ¥^ "&wÄçŠF\•×aâc
RÞÉ ¨$™.õ™2b00ÞÊ © >.õveÞÊ ª SöéÞÊ «$E.uR (Pb

ÞË ¬^ S_Ã
9.ß‹¼À®qz‡,#®ìŒ3`&cÿÞÍ ­ r Tr{gÞÍ ­$L.ö  $Pb
IFÞÎ ®$3.ô  @$Pb
  ÞÒ ±^u#âMj'¸‹h

¿;,»ÞÒ ²^R$+a2%=%¹&¨cÖvŠq?5%Äí¦Ê¡Kÿ¥ÞÒ ³ C.pC ÞÓ ´$™.÷™2b00ÞÔ µ 
.÷Þ­ÞÔ ¶$ .w6
(Pb
  ÞÕ ·$7 "bhÞ× º$h.vhI bxAÞÛ »^w%3©ò'eAO	Dc‹ìU²ÞÛ ¼^n&ö	WNÈW
³	ý¦Òà
ÞÜ ¿ 7ÞÝ À$8"b@ÞÝ Á$™.ø™2b00ÞÞ Â e.ønyÞÞ Ã$.x­(Pb
 CÞá Ä$/…™ brsÞâ Ç$O0èNTI PHb
(Þä È^@'K3=èA¶º@Ä
u‘!‰Ð&‡Ï	ÉG	ûÕ9Þä É^#(W%u*©-0ÈM¸;ªÄ·	|a³(hhÞç Ì$™.ù™2b00Þè Í î.ùÞè Î$.y(Pb
  Þé Ï^ôŽ
?»À’4B!FÐ9¿~2w)T	HÞê Ð 6![02Þê Ð %.s  #Þí Ñ^
)Jg76*=„&d¾;¬{.	¡2}½Þí Ò^*/Ò#u%4
žW'>‹FqÆ⟵‘	”÷Þð Õ 0»h0Þñ Ö$™.ú™2b00Þò × .ú-Þò Ø$t.z
R(Pb
enÞõ Û  .n  Þö Ü^y+Þö Ý^1,Þö Þ .n00žÞ÷ ß$8 •b2
Þø à  .  paÞø á$ mbCPPbayÞù ä$ .ûg5$Pb
+gÞû å$™.ý™2b00Þü æ 1.ý
@Þü ç$4.{  (Pb
  Þþ è$u.ü@$Pb
 3Þÿ é^r-oÕOŽ_e‡ÌzjÛP,nLÖ.Æ4øs3À		Þÿ ê^7.ÊUR;]j`™1\+)zt6s‹b‚¼#éQß í$Î.Ž™$™bß î$+
J_+b_+ß ï (h
ß ð$a.|ù #Pblyß ó$E.co$•b
 Aß ô$™.þ™2b00ß õ o.þldß ö$B*Y   Bb  ß ÷$r.}"(Pb
2Fß ø^"/°”ã(!Aœ”+ätÄw3;	á.Ú(ÑŠß ù^ 0)ßT¤Ùa¹Å'—;èÃ32.żJ®|m%Xß ú g!ZthS!ß ü$&.8™8b  ß ý$™.ÿ™2b00ß þ  .ÿ  ß ÿ m.vm0	ß!$1J  H2b 2ß!$4.~T (Pb
ngß!^1ß!^Á2@­)[¡VµŸœJ@²3Z}
"
ÚEvdpS5.ß!$ 0é4 I PHb
6 ß!	$™/™2b00ß!
^2ÃðÖ%ÑE̾ÐÕ8µo¢u"ß!^R4òAÈŦ’’ß! 
/ntß!
 .cßß!$|.5 (Pb
/2ß! .| hß#!^[ß#!9
yW(=10ß#!$™/™2b00ß$! T/ ß$!$™.€(Pb
ß&! !Xý„ß&!$ / $Pb
 ß(!$.#Pbß)! $4/0,@$Pb
0,ß+!!$ q  ™b  ß,!"$E.‚[K#Pb[ß-!#$™/™2b00ß.!$ c¦
ß.!% 0/sbß.!&$e.ƒ ­(Pb
ciß2!-$v$ñat%6bwhß7!0$™/™2b00ß8!1 /ß8!2$6.„0 (Pb
  ß<!5$ô.… IPb
ß>!6 U'.#»‰ß>!7$ d"P(™(b61ß?!8$0ê™I PHb
¡ëß@!:$.† •bßB!>$™/™2b00ßB!? G/ DßB!@$
.‡d:(•b
40ßC!A^m _H–1ß_à•ß~Œ~
(Eöñ'לßG!B ÿ$ñ„IßL!D$™/™2b00ßL!E ./ 0ßL!F$
.ˆ.B(•b
;1ßT!K $$ñ0.ßV!L$™/™2b00ßV!M$:$òCO6b
..ßV!N /00ßV!O$ .‰  (•b
32ßX!P  .†  +ß\!S d
R?mß]!T$e/	00Pb0.ß`!W$™/
™2b00ß`!X /
00ß`!Y$U.Š§ó(•b
ßa!Z$
$ó  C6b
  ßd![ 
$Ñæ ])ßd![ ^.‚RTœßd!\ 

==== ercm11/emas-a/gat29sep86.txt ====
=ɬ$=ˆw00Pæ
R9=Ê­$=‰Cw0Pæ
J!=Ï®^)R÷Ê

n=ϯ^(P­]*r4š=Ò°$=ŠGw0PæG,=Ó±$=‹w00Pæ
R9=Ô²$=Œ=Ïw0Pæ
=á¹^A-°.¥#‡¦p·THpúÜž
ÒQ®¦M?-À€aî­¼2NÎE5!#$@§0w00Pæ
5HE6!$$@¨Cw0Pæ
dE9!%^$-Z<â³ÆE9!&^5\\â¾È0hE=!'$@©Cw0PærrE?!($@ªww00Pæ
E@!)$@«w0Pæ
wEK!2^	2{H(i“##ÞÞEK!3^1
'xT'(„5þEL!4$@°0Bw0Pæ
wEQ!5$@²Cw0PæER!6$@±w0Pæ
Q3ES!7$@³8w0Pæ
wET!8^'¢¨'þ	[|E]!@$@¸w00Pæ
)!E^!A$@¹w0Pæ
E`!B$@º#w0Pæ
HrEf!C^m8aAå ÙEf!D^\ªTU(eXEf!E$@»Cw0PæAmEg!F$@¼8w00Pæ
Eh!G$@½0w0Pæ
34Ex!N^óP84G4mCãU…%….(>DšOï
E¬!l$@ÒCw0PæE­!m$@Ó0w00Pæ
9qE®!n^dhtP–!è7bE®!o^m 2µ¼(û
úÒEÀ!x^#2µ¼(ú
úÐEÀ!y^v$mˇò"‡ggEÁ!z$@Ú®w00Pæ
EÂ!{$@Ûw0Pæ
wEÉ!|^G%XUdN|ê5ŽEÉ!}^Q&2µ¼(
ú
ùÐEÒ!†^(2´º(ý
øŠEÒ!‡$@â'w0Pæ
EÓ!ˆ$@ãCw0PæX3EÕ!‰$@ä0w00Pæ
hEEÖ!Š$@åCw0Pæ
EÛ!‹^c)2á(gþç)ŽEÛ!Œ^Š*2µ¼(
ü
ÒQ®öT
1‚¨¿Ÿü½oØLì$Ê^‘ƒëN7)½»J8X’MXõ<í‹'­	’Lì$Ë$~Câ~Gw0Pæ
avLó$Ì$CãCw0PæheLô$Í^ÁLô$Î^ÌM$×^Ö,,ÿoM$Ø^äd–ò24

==== ercm11/emas-a/gkb21sep86.txt ====
‘Ç V$M+ç74™Cb	*B‘É W$?äPb	™‘Ê Z$eþbuˆb E‘Ê [$C?åOW#Pb	
 ‘Ë \ 
þnd‘Í _$eÿ17ˆbVA‘Ô l$e?çbu#Pb	 E‘Ö m RB[AT‘× n$HB][2b	ST‘Ø q$?è‘ËPb	™‘Ú t$ +çci™Cb	» ‘ä € É€€‘ä ‚$t+ç!pl™Cb	MI‘ä ƒ$h+ç"nd™Cb	- ‘ä „$p+ç#SH™Cb	u'‘å …$B`Sb	HT‘å †$+ç$I™Cb	  ‘æ ‡$,Ba,5pb
 ‘è ˆ$1?êow#Pb	nd‘ò “$e?ëG.#Pb	  ‘ò ”$Y·70™#b€€‘õ •$ËBdb	‘õ –$i?ì  Pb	,N‘ö —$7 Cˆb
‘ö š$MÀ= "ble‘÷ › 3Ba5,M‘ø œ$+ç)at™Cb	r ‘ü §$„?îro#Pb	pr‘ÿ ¨$eBfbub	20’ © 0»00I¦’ «$N+ç-ZX™Cb	-1’ ¬$+ç.C™Cb	%@’ ­$+ç/’™Cb	™’ ®$ Bg.6b	  ’ ¯$+ç0 ™Cb	OX’ °$?ï‘ü#Pb	™’ ½$?ñ#Pb	wi’ ¾ C?ð
’ ¿ Gµi’ À +ç1&b0’ Á$=BjAKb	,1’ Ä$ +ç6  ™Cb	
’ Å$+ç7C™Cb	NT’  Ð$^+ç;(b™Cb	73’  Ñ$T+ç<le™Cb	A
’! Ô$Bm’b	
’! Õ$+ç=e™Cb	A
’! Ö$m?óÕPb	Î’$ ×$0#3 0™b05’$ Ø$*?ô
i#Pb	no’% Ù$ ?õÝ.€Pb	-¾’+ ä$-+çA
 ™Cb	  ’, ç 4H’, è &2’. é$?ö#Pb	86’1 ê$sBpp)b	iz’1 ë +ç¯’4 î$ +çBúe™Cb	±Ý’: ù$ˆb  ’; ú$Br b	  ’; û$.|ce•b	R0’< ü ’> þ 0Ù7 ”,’> ÿ$E+çF  ™Cb	20’>¡$T+çGle™Cb	nt’>¡$+çH ™Cb	
’?¡$3Bs 2b	mc’H¡
$+çMF™Cb	-5’I¡$Bu’Hb	™’I¡$+çN™Cb	’I¡ E.È. 
àí’J¡$9+çO0V#™Cb	17’L¡$406ˆb01’M¡$e?ø  Pb	  ’N¡ E’S¡!$,Bx,2b	8,’S¡"$:+çSdr™Cb	iz’T¡#$+çT#™Cb	67’T¡$$BBwnd0™biz’U¡%$E'on™!b.
’X¡( u'pe’X¡)$3BQ,8b	,1’X¡*$1.×orF™FbK’]¡5$0+çX00™Cb	  ’^¡6^0 ˆ›¢ŠR//
ªZú{Ü„É
ÃB…oØ	CÕ=•aíW’^¡7$+çY#™Cb	ˆF’^¡8$0ŠPRr1Pˆb	0,’b¡; ªâ 2Q’c¡<$AB{ Mb	’f¡=$+çZ™Cb	e:’p¡J$+ç_™Cb	 W’p¡K$:+ç`E(™Cb	re’p¡L$+ça’p™Cb	™’q¡M$1B~87b	67’q¡N$+çb™Cb	’q¡O$MY¹EN0™0bN ’r¡P$+çcC#™Cb	in’z¡\$Î+çf™™Cb	’{¡]$6B€5
b	16’{¡^$P+çge™Cb	  ’|¡_^3€’ȉýߧo
“<S˜DÅ
²
Ì)˜_žŠ¨’|¡`$d+çhlt#™Cb	 i’}¡a$;?úPr€Pb	an’~¡b$l+çirt™Cb+ ’†¡o$+çnP#™Cb	  ’Š¡p 
X09¤’‹¡q$CB„  b	  ’‹¡s$7+çoPD™CbPR’¡u$+çpa™Cb™’Ž¡v$N+çr(8™Cb	tr’Ž¡w$+çsC™Cb	%l’Ž¡x$+çtC™Cb	r/’˜¡ƒ$ +çyva™Cb	d:’™¡„$
B‡6.b	6.’™¡…$+çz’™Cb	’™¡†$
+çqH+™Cb'J’š¡‡$p+ç{te#™Cb	  ’¡ˆ$DY».3Hp0b’Ÿ¡‹$BˆAb	A,’¡¡Œ M& Nú>’©¡—$6?û 2€Pb	7n’«¡š RB‚L,’¬¡›$D+çs.™Cb	is’¬¡œ$ +ç‚11™Cb	
“¢$$B “b	™“¢% rÜac“¢&$$+ç¹EP#™Cb	IO“¢' EYR80'“¢($+纠 ™Cb	  “¢)$B¡8pb
“¢,$ B¢ =b	AC“¢-$E+ç»ý<™Cb	÷“¢8$s+çÀ: ™Cb	ff“!¢9$;B¤0mb	H.“!¢: 1-	=S“#¢= .ÖHd'“$¢>$+çÁ™Cb	60“$¢?$+ç™Cb	“$¢@$P+çÙCb	0,“%¢A$AB¥Ab	–A“.¢L$+çÆC™Cb	H“.¢M$+çÇC™Cb	P“.¢N$+çÈ1™Cb	00“/¢O$B§Cb	Ñ“/¢P$+çÉAE€™Cb	“0¢Q^I Šm\e/2Ø ´NcB¥	lø]K	16‘$+‡i“0¢R^3 	%ɾL¶tù•â_"Ox”
µ
Ð)ð’†+žŠ¨“0¢S$e+çÊ#™Cb	“9¢^$ B©1)b	

==== ercm11/emas-a/gkb21oct85.txt ====
66Pb
74°:r$Ç*)ÇÇBb‡‡°;s  Ú5/°Bv$‡ˆ ‡Çb
LJ°Cw$FœBAPb
‡‡°Dx  ~  _ä°Ey$   (b 1°H| g+¹sim°H} 8(ö  ¨!°I~$ |-Cpb  °L$ˆ¡Âb
°M‚$œPb
°Nƒ Cœ
2$ˆ¸b
±
3$œ,
'pb
±6$œ-±

±>h$
™bn ±?i$€";4™4b65±Al .Æue±Cm E
LJ±Fn$ˆ¾ :b
of±Gq È$	±Hr$Iœ5
 ²fj$#¹W™5b
.1²gm ‡.ÇLJ+²gn$-#º -™5b

 ²ho$ˆßeb
· ²hp$#»5™5b
  ²hq$‡
ˆê28²Ä»$)œfbb
ÇDzʾ$ %Si —pb S²Ë¿$$}Cp6b22²ËÀ$rˆë/
b
[²ÎÃ$‡œg‡‡b
‡‡²ÏÄ mK
€–²ÓÊ$™ˆì™˜b00²ÕË$̈íb
m²ØÌ$‡œh‡‡b
‡Ç²ÛÏ  œU 4C²ÛÐ i%½¾²ÝÑ$œi pbHU²ÝÒ  œi  ²ßÕ$b[pPb[3²ßÖ$̈îb
4²á×$
å28•b
LJ²âØ$Çœj‡‡b
‡Ç²éÝ$̈ïb

²êÞ  .µ33@²ìá$ œk:3b
 1²ìâ$& o—pb
%e²íã eÚis_W²íã Ç$}‡‡"²ïä$™ˆð™	b1.²ðå O$z2.SK²ðæ Çˆð‡‡²ôê$ˆñMb
re²öì$^œl

==== ercm11/emas-a/gkb18oct85.txt ====
¶uö$™ë™	b00¶u÷ îë¸uú î(!ºuû^D=
`)O&Ö=g¤H6I,O!¨ºuü^Z*ರ&&ºFa/U':XÑÜÚÞG¾uÿ$™ì™b00¾v$™	í™	b00¾v$™	î™b00¾v ì00¾v 	í}¾v i	î¾v )f¿v$0Ï5™XD]Àv$™í™	b00Àv$Vll5™b
gnÀv	 í00Áv
 ?RCÃv^4j˜}™6Í&ÿ :òùZÃv^ ¥û-@“m‹|:hÔ(::â&
	O¤œmÆv$7)g4 Ab52Èv$™î™b00Èv$™	ï™	b00Èv$™	ð™b00Èv î00Èv 	ï00Èv 	ð00Êv$™ï™	b00Êv ï00Ìv^³w:[‹Ìv^b$1-¤Y–ØÍv$î)™b,0Îv$ЙbЮÏv  mÐD
Ðv! 	Ò €Ñv"^ õ†9ŸEB°w7==4íÒ9
MÝû9Îe>ÖØÑv$$ +  Cb3:Òv%$™ð™b00Òv&$™	ñ™	b00Òv'$™	ò™b00Òv( ð00Òv) 	ñ0Òv* 	òÔv+$™ñ™	b00Ôv, ñ00Õv/^
ùƒ;;¾Úô7	r	ác<ãq¨[	ÝÕv0^7 êœÖtx
™b00v¡ þ00v¢ B	ÿFOv£ 
0v¤$™ÿ™	b00v¥ îÿv¨^/x?tÍJ½0ƒ]ŽÜZÎßxHÇ*îò4(¾v©^0!vª$™™b00"v«$™
™	b00"v¬$™
™b00"v­ 00"v® 
"v¯ 
00#v²$™™	b00$v³ 00&v´^1&vµ^œ2#Ñ[ˆ6ò/$Ä+ç·‰"Z(.‰-
>WpvÕ'v¶$VI,#bII)v¹$+Cb)vº$@"b+v» @00+v»$
17b+v¼$™™b00,v½$™
™	b00,v¾$™
™b00,v¿ ÿ50,vÀ È
,vÁ È
-vÂ$™™	b00.và 00/vÆ^òÍÉâ·‰ˆ, Z†˜õ0\ žd/vÇ^7"OÍb]œTyì5vÊ$™™b006vË$™
™	b006vÌ$™
™b006vÍ ÿ506vÎ s
al6vÏ 

==== ercs07/emas-2900/slogof_setcfffr.txt ====
    
      SUBROUTINE SETCF  
      INTEGER GCHAR 
    
      INTEGER  QUOTEX   
      INTEGER  CONTF
      INTEGER  CONTRL   
      INTEGER  HEAD 
      INTEGER  EJECT
      INTEGER  BLANK
      INTEGER  SLASH
      INTEGER  CARDC
      INTEGER  FLINCT (8)   
      INTEGER  EOCC 
      INTEGER  ENDCRD (3)   
      INTEGER  RECORD (66)  
      INTEGER  RECPTR   
      INTEGER  SOURCE (150) 
      INTEGER  SRCEND   
      INTEGER  SLEN 
      INTEGER  TF (3)   

==== ercs07/emas-2900/eelimv4.txt ====
! 01/02/83 - EELIMV4 -LINE 960, DO DEFTEST CHECK BEFORE CALLING UPDATECURRDEF
! 31/07/83 - EELIMV3 -  DELETE LINES 960-966 AND CALL UPDATE CURRDEF
 !         - INSERT AT LINE 610, REPL TRIAD POINTS TO ARREL WHERE NECESSARY
{30/12/82 - allow for intrinsic triads}
%INCLUDE "ERCS06.OPT_SPECS"

%INCLUDE "ERCS06.PERQ_TRIADOPS"

%OWNINTEGER ELFLAG,ELIMEND,RWFLAG,HVAL
%OWNINTEGER COORD1,COORD2,MODE,MATCH

! ARRAY FOR TRIADS WHICH MAY BE ELIMINATION CANDIDATES
%CONSTBYTEINTEGERARRAY TRELIM(0:114) = 0,0,1,1,1,1,1,0,1,1,
                                      0,0,0,0,1,1,1,1,1,1,
                                      1,0,0,0,0,0,0,0,0,0,
                                      0,0,0,0,0,0,0,0,0,0,
                                      0,0,1,1,0,1,0,0,0,0,
                                      0,0,0,0,0,0,0,1,0,0,
                                      0,0,0,0,0,0,0,1,0,0,
                                      0,1,0,0,0,0,0,0,0,1,
                                      0,0,0,0,0,0,0,0,0,0,

==== ercs07/emas-2900/slogof_ofltapfr.txt ====
 
      SUBROUTINE  OFAULT 
      INTEGER     PFLTS 
 
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG 
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV 
      INTEGER     NEXT,   NUMBER, I,      IOTYPE 
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE 
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP 
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT 
      INTEGER ICLP05 
      LOGICAL     ENDOK,CONEND 
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG 
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV 
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE 
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N 

==== ercs07/emas-2900/basicmaster_fconvs.txt ====
%EXTERNALROUTINESPEC DEFINE (%STRING(255) PARMS)
%EXTERNALINTEGERFNSPEC OUT STREAM
%SYSTEMROUTINESPEC ETOI(%INTEGER ADDRESS,LEN)
%SYSTEMROUTINESPEC ITOE(%INTEGER ADDRESS,LENGTH)
%EXTERNALROUTINESPEC OPENSQ(%INTEGER CHAN)
%EXTERNALROUTINESPEC  READSQ (%INTEGER CHAN,%NAME START,END)
%EXTERNALROUTINESPEC WRITESQ (%INTEGER CHAN,%NAME START,END)
%EXTERNALROUTINESPEC CLOSESQ(%INTEGER CHAN)
!
%EXTERNALROUTINE CTES (%STRING(255) PARMS)
!
!       CONVERT TO EBCDIC SEQUENTIAL (FROM ISO CHARACTER FILE)
!
%INTEGER INPUT,OUTPUT,I,COUNT
%STRING(32) BEFORE,AFTER
%BYTEINTEGERARRAY BUFF (0:132)
%STRINGNAME LINE
%ON %EVENT 9 %START
    CLOSESQ(OUTPUT)
    WRITE(COUNT,0)
    PRINTSTRING(" LINES PROCESSED") ; NEWLINE

==== ercs07/emas-2900/eelimv5.txt ====
! 08/02/83 - EELIMV5 - SET DEFARR BIT IN TRELIM
! 01/02/83 - EELIMV4 -LINE 960, DO DEFTEST CHECK BEFORE CALLING UPDATECURRDEF
! 31/07/83 - EELIMV3 -  DELETE LINES 960-966 AND CALL UPDATE CURRDEF
 !         - INSERT AT LINE 610, REPL TRIAD POINTS TO ARREL WHERE NECESSARY
{30/12/82 - allow for intrinsic triads}
%INCLUDE "ERCS06.OPT_SPECS"

%INCLUDE "ERCS06.PERQ_TRIADOPS"

%OWNINTEGER ELFLAG,ELIMEND,RWFLAG,HVAL
%OWNINTEGER COORD1,COORD2,MODE,MATCH

! ARRAY FOR TRIADS WHICH MAY BE ELIMINATION CANDIDATES
%CONSTBYTEINTEGERARRAY TRELIM(0:114) = 0,0,1,1,1,1,1,0,1,1,
                                      0,0,0,0,1,1,1,1,1,1,
                                      1,0,0,0,0,0,0,0,0,0,
                                      0,0,0,0,0,0,0,0,0,0,
                                      0,1,1,1,0,1,0,0,0,0,
                                      0,0,0,0,0,0,0,1,0,0,
                                      0,0,0,0,0,0,0,1,0,0,
                                      0,1,0,0,0,0,0,0,0,1,

==== ercs07/emas-2900/pptecodes_pptest1.txt ====
Einitialise 
Enextproc  1
Eproc PTEST1    1    0    0
 Elinestart ++++++++++++++++++++++   28
 Elinestart ++++++++++++++++++++++   29
Estklit        0
Estkaddr   Gla     + 16      4    B1
Eop    ESTORE
 0 0 0
Estack:
 2:AddrDir       Gla     +   16  size: 4
 1:LitVal            0  size: 4
 Elinestart ++++++++++++++++++++++   30
Estkdir   Gla     + 16      4    B1
Estkaddr   Gla     + 16      4    B1
Eop    ESTORE
 0 0 0
Estack:
 2:AddrDir       Gla     +   16  size: 4
 1:DirVal        Gla     +   16  size: 4
 Elinestart ++++++++++++++++++++++   31

==== ercs07/emas-2900/pptecodes_pptest2.txt ====
Einitialise 
Enextproc  1
Eproc PPTEST2    1    0    0
 Elinestart ++++++++++++++++++++++   27
 Elinestart ++++++++++++++++++++++   29
Estklit        0
Estkaddr   Gst     + 0      4    A
Eop    ESTORE
 0 0 0
Estack:
 2:AddrDir       Gst     +    0  size: 4
 1:LitVal            0  size: 4
 Elinestart ++++++++++++++++++++++   30
Estklit        0
Estkaddr   Gst     + 0      4    A
Estkdir   Gla     + 16      4    I
Eop    INDEX4
 0 0 0
Estack:
 3:DirVal        Gla     +   16  size: 4
 2:AddrDir       Gst     +    0  size: 4

==== ercs07/emas-2900/mixedsrce1_booltesta.txt ====
%BEGIN
%PROCEDURE FLAGSET(FLAG,VAL);
%VALUE VAL;%BOOLEAN FLAG,VAL;
%EXTERNAL FLAGSET;
%BOOLEAN FLAG;
PRINTSTRING(<CALLING_FLAGSET>);
NEWLINE;
FLAGSET(FLAG,%TRUE);
PRINTSTRING(<FLAG_IS>);
WRITEBOOLEAN(FLAG);NEWLINE;
PRINTSTRING(<DID_IT_WORK>);NEWLINE
%END;

==== ercs07/emas-2900/pptecodes_pptest3.txt ====
Einitialise 
Enextproc  1
Eproc PPTEST3    1    0    0
 Elinestart ++++++++++++++++++++++   19
 Elinestart ++++++++++++++++++++++   21
EXname  p_new1    2    0    0
Eprecall     2
Estkaddr   Gla     + 16      4    P
Eop    PUSHVAL
 0 0 0
Estack:
 1:AddrDir       Gla     +   16  size: 4
Estklit       52
Eop    PUSHVAL
 0 0 0
Estack:
 1:LitVal           52  size: 4
Ecall        2      2    8
 Elinestart ++++++++++++++++++++++   22
EXname  p_dispose1    3    0    0
Eprecall     3

==== ercs07/emas-2900/slogosorg_xnameain.txt ====
C     EDIT DATE   14JAN79  09:50
C     SOURCE FILE XNAMEAJH.IN
C     AUTHOR      A. J. HOWARD
      INTEGER     XNX, XNXMAX, XNAME (100)
      COMMON      /XNAMC/  XNX, XNXMAX, XNAME




==== ercs07/emas-2900/imptests_cnstsarr.txt ====
%BEGIN
%STRING(255) S
%CONSTSTRING(20)%ARRAY CONSTR (1:2) = 'CONST STRING', '2ND CONST STR'
S=FROMSTRING(CONSTR(1),1,3)
PRINTSTRING(CONSTR(1).S)
NEWLINE
%ENDOFPROGRAM

==== ercs07/emas-2900/rel4_aux12.txt ====
!* MODIFIED 08/04/82  02.00
!*
!              
!                         EXPORT LIST
!
!
%ROUTINESPEC F77 STOP(%HALFINTEGER PTYPE,%INTEGER VAL)
%ROUTINESPEC F77 PAUSE (%HALFINTEGER PTYPE,%INTEGER VAL)
%ROUTINESPEC F77 RTERR(%HALFINTEGER ERRNO)
%ROUTINESPEC F77 IOERR(%HALFINTEGER ERRNO)
%HALFINTEGERFNSPEC F77 CONCAT(%INTEGER OUTPUTBASE,
      %HALFINTEGER OUTPUT DISP,OUTPUT LEN,%INTEGER COUNT,
ADDRINPUTDESCS,%HALFINTEGER SPACEFILL)
%ROUTINESPEC F77COPY (%INTEGER SCE BASE,%HALFINTEGER SCE DISP,
SOURCE LEN,%INTEGER TARGET BASE,%HALFINTEGER TARGET DISP,TARGET LEN)
%INTEGERFNSPEC F77 INDEX (%INTEGER SEARCHBASE,
%HALFINTEGER SEARCHDISP,SEARCHLEN,%INTEGER KEYBASE,%HALFINTEGER KEYDISP,
KEYLEN)
%ROUTINESPEC F77 CMULTC(%INTEGER AD,%REAL R1,C1,R2,C2)
%ROUTINESPEC F77 CDIVC(%INTEGER AD,%REAL R1,C1,R2,C2)
%INTEGERFNSPEC F77 CXREL(%REAL R1,C1,R2,C2)

==== ercs07/emas-2900/dsea20_libnucehmtm.txt ====
-E(TC/ICL9LPRTMTM/ R/ICL9LPRTMTM/ICL9LPEHMTM/ G)
E

==== ercs07/emas-2900/perqrel2_objanal2.txt ====
%CONSTINTEGER EMAS=1,PERQ=0,SYS=EMAS
%CONSTINTEGER NOTSYS = (SYS+1)&1
!
!***********************************************************
!*                                                         *
!*    PROGRAM TO ANALYSE A PERQ OBJECT                     *
!***********************************************************


!
!
! Procedures which will be specially interpreted:
!
! 
!
{PERQ   %EXTERNALHALFINTEGERFNSPEC OPENFILE(%INTEGER FILE, %HALFINTEGERNAME BLOCKS,BITS)
{PERQ   %EXTERNALROUTINESPEC NEWSEG(%INTEGER AD,%HALFINTEGER SIZE,INC,MAXSIZE)
{PERQ   %EXTERNALROUTINESPEC READBLOCK(%HALFINTEGER FILEID,BLOCK,%INTEGER AD)
{EMAS} %DYNAMICINTEGERFNSPEC RDFILEAD(%STRING(63) S)
{EMAS} %DYNAMICINTEGERFNSPEC NWFILEAD(%STRING(15) S,%INTEGER PGS)
{EMAS} %SYSTEMROUTINESPEC PHEX(%INTEGER I)

==== ercs07/emas-2900/slogos_bracesfs.txt ====
'HEAD'  BRACE PROCESSING SUBROUTINES
C     EDIT DATE   09DEC78  16:43
C     SOURCE FILE BRACESFTM.FS
C     AUTHOR      F. T. MICKEY
C     CLUSTER     11
      'OUTFILE'   SETLLFTM.FR
N     OVERLAY     OLSLL
C
C     SET LIMITS FOR LOOP AND WHILE CONSTRUCTIONS
C
      SUBROUTINE  SETLL
      'INCLUDE' LOGOSAJH.IN,
      'INCLUDE' BRACEFTM.IN,
      'INCLUDE' CODE1FTM.IN,
      'INCLUDE'   STKDFA.IN,
      'INCLUDE'   STKDFB.IN,
      'INCLUDE' GENCMB.IN,
      'INCLUDE' WFLAGSJHP.IN,
      'INCLUDE' NLISTCFTM.IN,
      'INCLUDE' OPERSAJH.IN,
      'INCLUDE' RMCODES.IN,

==== ercs07/emas-2900/pptecodes_pptest4.txt ====
Einitialise 
Enextproc  1
Eproc PPTEST4    1    0    0
 Elinestart ++++++++++++++++++++++   11
 Elinestart ++++++++++++++++++++++   13
Estkdir   Gla     + 16      4    I
Estkdir   Gla     + 20      4    J
Eop    IEQ
 0 0 0
Estack:
 2:DirVal        Gla     +   20  size: 4
 1:DirVal        Gla     +   16  size: 4
Estkaddr   Gla     + 28      4    B
Eop    ESTORE
 0 0 0
Estack:
 1:AddrDir       Gla     +   28  size: 4
 Elinestart ++++++++++++++++++++++   14
Estkdir   Gla     + 16      4    I
Estkdir   Gla     + 20      4    J
Eop    INE

==== ercs07/emas-2900/ctpsclma_compile.txt ====
AREA(1)
PATCH(X61C6,X1804788E,CODE
      X79940008&X15801C58&X1200728D&X75940008&
      XB2131804&X788E
      RETURN   X04
      END,RETURN=NO,NAME=PASC14)
#

==== ercs07/emas-2900/pptecodes_pptest5.txt ====
Einitialise 
Enextproc  1
Eproc PPTEST5    1    0    0
 Elinestart ++++++++++++++++++++++   13
 Elinestart ++++++++++++++++++++++   14
Estkconst         2
Estkaddr   Gst     + 0      4    S1
Eop    ESTORE
 0 0 0
Estack:
 2:AddrDir       Gst     +    0  size: 4
 1:DirVal        Consts  +   56  size: 2
 Elinestart ++++++++++++++++++++++   15
Estkconst        26
Estkaddr   Gst     + 8      4    S3
Eop    ESTORE
 0 0 0
Estack:
 2:AddrDir       Gst     +    8  size: 4
 1:DirVal        Consts  +   60  size: 26
 Elinestart ++++++++++++++++++++++   19

==== ercs07/emas-2900/cobolsce_cobole.txt ====
!__________________________________________________________________________________
!
!    COBOLE COMMAND IS EQUIVALENT TO ICLMACRO COBOLCOMPILE.  IT PASSES
!     THE PARAMETERS ON TO COBCOLCOMPILE, WHICH IS AN ENTRY IN THE
!      COMPILER MODULE, COBOLY.  THIS THEN CALLS ICL9HNCOMPILESUPPORT WHICH
!     PROCESSES THE OPTIONS AND CALLS THE COMPILER VIA A LINK
!      DESCRIPTOR.   AFTER COMPLETION OF THE COMPILATION THE
!     UTILITY  COMF  IS CALLED TO CONVERT THE OMF FILE TO EMAS
!     OBJECT FORMAT, MARKING THE PROGRAM I.D. AS THE MAIN ENTRY.
!
!_____________________________________________________________________________
  
!**********************************************************************
!*
!*                         C O B O L
!*
!*                COMPILER ENVIRONMENT ROUTINES
!*
!**********************************************************************
!
!

==== ercs07/emas-2900/npc2_codeinit.txt ====
{

                          Module  29


                        Code Generator
                        Initialisation





 The code-generator is initialised systematically on  a  module  by
 module  basis  by a call to procedure InitCodeGeneration made from
 the compiler program body. However, a number  of  generator  vari-
 ables not associated with any module in particular are initialised
 here by procedures InitPCodes, InitDefaults, and InitOthers.


                                                                     }


==== ercs07/emas-2900/dsa20_sflehmtm.txt ====
ICL9LPEHMTM MODULE
 
*    MUST BE COMPILED WITH PLT = XNB
 
 
&LWVDT EQU X'30000000'
&NUMOFTEXTS AWORD
 
 DATA
NUMROWMARK W
MESS1000 W 1000
MESS1001 W 1001
MESS1002 W 1002
MESS1003 W 1003
MESS1004 W 1004
MESS1005 W 1005
MESS1006 W 1006
MESS1007 W 1007
MESS1008 W 1008
MESS1009 W 1009
MESS1010 W 1010

==== ercs07/emas-2900/slogof_genmovfr.txt ====
 
      SUBROUTINE  GENMOV 
 
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG 
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV 
      INTEGER     NEXT,   NUMBER, I,      IOTYPE 
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE 
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP 
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT 
      INTEGER ICLP05 
      LOGICAL     ENDOK,CONEND 
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG 
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV 
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE 
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N 
      COMMON   /LOGOS/  PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE 

==== ercs07/emas-2900/pptecodes_pptest6.txt ====
Einitialise 
Enextproc  1
Eproc PPTEST6    1    0    0
 Elinestart ++++++++++++++++++++++   13
 Elinestart ++++++++++++++++++++++   15
Estkdir   Gla     + 16      4    I
Estkdir   Gla     + 20      4    J
Eop    IADD
 0 0 0
Estack:
 2:DirVal        Gla     +   20  size: 4
 1:DirVal        Gla     +   16  size: 4
Estkaddr   Gla     + 16      4    I
Eop    ESTORE
-1 0 0
Estack:
 2:AddrDir       Gla     +   16  size: 4
 1:RegVal         1  size: 4
 Elinestart ++++++++++++++++++++++   16
Estkdir   Gla     + 16      4    I
Estkdir   Gla     + 20      4    J

==== ercs07/emas-2900/pt_readtest.txt ====
PROGRAM READTEST(INFILE,OUTPUT);
VAR NO:INTEGER;
    INFILE:TEXT;
PROCEDURE MYREAD(VAR F:TEXT;VAR I:INTEGER);
BEGIN
READ(F,I);
WRITELN(ORD(F^));
WRITELN(EOF(F));
WHILE(F^=' ') AND NOT EOF(F) DO
  BEGIN
  WRITELN('GETTING F');
  GET(F);
WRITELN('F^ IS ',ORD(F^));
WRITELN('EOF(F) IS ',EOF(F));
  END;
END;
BEGIN
RESET(INFILE);
WRITELN(ORD(INFILE^));
WRITELN(EOF(INFILE));
WHILE NOT EOF(INFILE) DO

==== ercs07/emas-2900/pptecodes_pptest7.txt ====
Einitialise 
Enextproc  1
Eproc PPTEST7    1    0    0
 Elinestart ++++++++++++++++++++++   13
 Elinestart ++++++++++++++++++++++   15
Estkdir   Gla     + 24      8    R1
Estkdir   Gla     + 32      8    R2
Eop    RADD
 0 0 0
Estack:
 2:DirVal        Gla     +   32  size: 8
 1:DirVal        Gla     +   24  size: 8
Estkaddr   Gla     + 24      4    R1
Eop    ESTORE
 0 0 0
Estack:
 2:AddrDir       Gla     +   24  size: 4
 1:FregVal        0  size: 8
 Elinestart ++++++++++++++++++++++   16
Estkdir   Gla     + 24      8    R1
Estkdir   Gla     + 32      8    R2

==== ercs07/emas-2900/slinkf_t18p2gfr.txt ====
    
      SUBROUTINE T18P2  
    
      INTEGER     ECODE 
      INTEGER     CMCHAN
      INTEGER     RBCHAN
      INTEGER     OBCHAN
      INTEGER     MPCHAN
      INTEGER     DBCHAN
      INTEGER     TTYIN 
      INTEGER     TTYOUT
      COMMON      /IODEFN/ ECODE
      COMMON      /IODEFN/ CMCHAN   
      COMMON      /IODEFN/ RBCHAN   
      COMMON      /IODEFN/ OBCHAN   
      COMMON      /IODEFN/ MPCHAN   
      COMMON      /IODEFN/ DBCHAN   
      COMMON      /IODEFN/ TTYIN
      COMMON      /IODEFN/ TTYOUT   
C     WRITE (DBCHAN, 1) 
C    1FORMAT (' ENTER T18P2')   

==== ercs07/emas-2900/mixedsrce1_booltestf.txt ====
      PROGRAM BOOLTEST
      EXTERNAL FLAGSET
      LOGICAL*4 FLAG
      WRITE(6,100)
  100 FORMAT(' CALLING FLAGSET')
      CALL FLAGSET(FLAG,.FALSE.)
      WRITE(6,200)FLAG
  200 FORMAT(' FLAG IS ',L2)
      WRITE(6,300)
  300 FORMAT(' DID IT WORK')
      STOP
      END

==== ercs07/emas-2900/pptecodes_pptest8.txt ====
Einitialise 
Enextproc  1
Eproc PPTEST8    1    0    0
 Elinestart ++++++++++++++++++++++   15
 Elinestart ++++++++++++++++++++++   17
Estkconst         4
Estkaddr   Gst     + 0      4    S1
Eop    ESTORE
 0 0 0
Estack:
 2:AddrDir       Gst     +    0  size: 4
 1:DirVal        Consts  +   56  size: 4
 Elinestart ++++++++++++++++++++++   18
Estkconst         4
Estkaddr   Gst     + 0      4    S1
Eop    ESTORE
 0 0 0
Estack:
 2:AddrDir       Gst     +    0  size: 4
 1:DirVal        Consts  +   60  size: 4
 Elinestart ++++++++++++++++++++++   19

==== ercs07/emas-2900/qdums_f77fdiag.txt ====
module f77fdiag;

exports

imports filedefs from filedefs;
imports f77init from f77init;

procedure dummyfdiag;
procedure qfdiag(lp,gp,pc,acb,adiags:fsbit32; ddisp,mode,diag,asize,first:long;
                  var newacb:long);
                  
private
procedure dummyfdiag;
begin
end;

procedure qfdiag;
begin
writeln(curout^,'entering dummy qfdiag');
end.

==== ercs07/emas-2900/pptecodes_pptest9.txt ====
Einitialise 
Enextproc  1
Eproc PPTEST9    1    0    0
 Elinestart ++++++++++++++++++++++   32
 Elinestart ++++++++++++++++++++++   36
Estklit        1
Estklit        1
Eop    CVTII
 0 0 0
Estack:
 2:LitVal            1  size: 4
 1:LitVal            1  size: 4
Estkaddr   Gst     +-1      4    A1
Estkdir   Gla     + 16      4    I
Eop    INDEX1
-1 0 0
Estack:
 3:DirVal        Gla     +   16  size: 4
 2:AddrDir       Gst     +   -1  size: 4
 1:RegVal         1  size: 4
Eop    ESTORE

==== ercs07/emas-2900/tstfiles_logt04lnkc.txt ====
ZREL=0000
CODE=1000
DATA=2000
NOUN=3000
LOGT04ZOB
ST04ZLIB

==== ercs07/emas-2900/genutils_fortcmdi.txt ====

      %EXTERNALROUTINE FPD(%STRING(63) FILE)
      %EXTERNALROUTINESPEC FORTE(%STRING(63) S)
      %UNLESS 0<LENGTH(FILE)<=7 %START
          PRINTSTRING("INVALID FILE NAME")
          NEWLINE
          %RETURN
      %FINISH
      FORTE("SFORF_".FILE."F,".FILE."Y,,.OUT")
      %END

      %ENDOFFILE

==== ercs07/emas-2900/inpds_darrayin.txt ====
C     EDIT DATE   08JUN78  08:00
C     SOURCE FILE DARRAYGAK.IN
C     AUTHOR      GARY A. KUDIS
C     DICTIONARY ARRAY
      INTEGER     DICT (400)
      INTEGER     ID, CID, DTSTRT, DTSTOP
      COMMON      /DARRAY/ DICT
      COMMON      /DARRAY/ ID, CID, DTSTRT, DTSTOP


==== ercs07/emas-2900/ctms_ttyram.txt ====
%CONSTINTEGER PLACEMENT = 130
%CONSTINTEGER CONAD = 133
%CONSTINTEGER CURRENT LENGTH = 134
%CONSTINTEGER NIL = -1
%CONSTINTEGER LENGTH MASK = X'00FFFFFF'
%CONSTLONGINTEGER ADDRESS MASK = X'00000000FFFFFFFF'
!
%OWNINTEGER FILE LENGTH, START ADR, END ADR, ADR, LAST BYTE, ICOMB
%OWNLONGINTEGER FILE ROUTE
%OWNLONGINTEGERARRAY A(0:31) = -1(32)
!
%EXTERNALROUTINESPEC TERMINATE
%EXTERNALROUTINESPEC PROMPT(%STRING(15) PMP)
%SYSTEMROUTINESPEC ETOI(%INTEGER ADDRESS, LENGTH)
%SYSTEMROUTINESPEC MOVE(%INTEGER BYTES, FROM, TO)
%SYSTEMROUTINESPEC ITOE(%INTEGER ADDRESS, LENGTH)
%SYSTEMROUTINESPEC CHANGE FILE SIZE(%STRING(31) FILE,  %C
      %INTEGER SIZE, %INTEGERNAME FLAG)
!
%EXTERNALROUTINESPEC ECTM INHIBIT
%EXTERNALROUTINESPEC ECTM ALLOW

==== ercs07/emas-2900/slogos_pass2afs.txt ====
'HEAD'  PASS 2
C     EDIT DATE   09DEC78  15:15
C     SOURCE FILE PASS2AJH.FS
C     AUTHOR      A. J. HOWARD
C     CLUSTER     4
      'OUTFILE'   PASS2AJH.FR
N     OVERLAY     OLPS2
      SUBROUTINE  PASS2
      'INCLUDE'   LOGOSAJH.IN,
      'INCLUDE'   NLISTCFTM.IN,
      'INCLUDE'   LCFUNCAJH.IN,
      'INCLUDE'   XNAMEAJH.IN,
      INTEGER     IERR
      EXTERNAL    DEFLIT, OLPNA, OLOBJ
      LOGICAL     NLTEST
      CALL RBOTH  (DATALC)
      CALL NLSCAN (DEFLIT, NLX)
      CALL RBOTH  (CODE)
      CALL WRBLOK
      XNX = XNX - 2
      'IF' (XNX .GT. 0)

==== ercs07/emas-2900/mixedsrce1_booltesti.txt ====
%BEGIN
%EXTERNALROUTINESPEC FLAGSET(%INTEGERNAME FLAG,%INTEGER VAL)
%INTEGER FLAG
PRINTSTRING('CALLING FLAGSET');NEWLINE
FLAGSET(FLAG,-1)
PRINTSTRING('FLAG IS')
WRITE(FLAG,4);NEWLINE
PRINTSTRING('DID IT WORK');NEWLINE
%ENDOFPROGRAM

==== ercs07/emas-2900/slinkf_t14p2gfr.txt ====
    
      SUBROUTINE T14P2  
    
      INTEGER     DICT (400)
      INTEGER     ID, CID, DTSTRT, DTSTOP   
      COMMON      /DARRAY/ DICT 
      COMMON      /DARRAY/ ID, CID, DTSTRT, DTSTOP  
    
      INTEGER     NSIZE,  NAME(16), NTITLE  
      INTEGER     NFLAGS (512)  
      INTEGER     NADDRS (512)  
      INTEGER     NPOSIT (512)  
      INTEGER     NDATA  (512)  
      INTEGER     NTEXTX (512)  
      INTEGER     NTEXT  (1000) 
      INTEGER     NLX, NLSTRT, NLSTOP   
      INTEGER     TXSTRT, TXSTOP
      INTEGER     NTXBTS
      INTEGER     USEBIT, COMBIT, OVLBIT, EPTBIT
      INTEGER     LDMBIT, MODBIT, MLTBIT, RLSBIT
      INTEGER     GDFBIT, TYPBTS

==== ercs07/emas-2900/strans_namcomfr.txt ====
    
      SUBROUTINE NAMCOM(BUF,SLEN)   
      INTEGER BUF(1),SLEN,PERIOD
      INTEGER GCHAR 
      LOGICAL BP
      DATA PERIOD/46/   
      BP=.TRUE. 
      DO 50 IK=1,8  
      IF(.NOT.BP.OR.IK.GT.6.OR.IK.GT.SLEN)GOTO 10   
      IF(GCHAR(BUF,IK).NE.PERIOD)GOTO 50
      IT=IK 
      GOTO 25   
   10 CONTINUE  
      IF(.NOT.BP)GOTO 30
      DO 20 IT=1,SLEN   
      IF(GCHAR(BUF,IT).EQ.PERIOD)GOTO 25
   20 CONTINUE  
      GOTO 60   
   25 CONTINUE  
      BP=.FALSE.
   30 CONTINUE  

==== ercs07/emas-2900/lpds_muxdemlrb.txt ====
MU
XD
EM
UX
SY
0:
MU
XD
EM
UX
.L
OS
16
-F
EB
-7
9
13
:3
4:
02

==== ercs07/emas-2900/strans_endlinfr.txt ====
    
      SUBROUTINE ENDLIN 
    
      INTEGER  INPTR
      INTEGER  OUTPTR   
      INTEGER  INMAX
      INTEGER  MAXTAB   
      INTEGER  MAXLIN   
      INTEGER  IFMAX
      INTEGER  MAXLEV   
      INTEGER  LINENO   
      INTEGER  PAGE 
      INTEGER  CLINE
      INTEGER  TLIMIT   
      INTEGER  LN   
      INTEGER  I, J, K  
      INTEGER  II, JJ, KK   
      INTEGER  LEXVAL   
      INTEGER  SLEN 
      INTEGER  LEVEL
      INTEGER  LEN  

==== ercs07/emas-2900/dptest.txt ====
      DOUBLE PRECISION D0,D1,D2,D3
      D0=1.0123+.456789D-4
      D1=1.0123D0+.456789D-4
      WRITE(6,4)D0,D1
   4  FORMAT(' D0=',F12.10,' D1=',F12.10)
      R=D0
      WRITE(6,5)R
    5 FORMAT(' R=',F14.10)
      STOP
      END

==== ercs07/emas-2900/slogos_atestain.txt ====
      LOGICAL     ATEST
      COMMON      /ATST/   ATEST





==== ercs07/emas-2900/oldqfiles_longimp.txt ====
%BEGIN
%INTEGER I
WRITE(I,2) %FOR I=1,1,1000 
NEWLINE
%ENDOFPROGRAM

==== ercs07/emas-2900/oldqfiles_f77comp3.txt ====
!* modified 22/03/82
!*
!*************************** EXPORTS **********************
!*
%ROUTINESPEC F77COMP(%HALFINTEGER A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,
   %INTEGER INFILE,ERRFILE,OUTFILE,
   %HALFINTEGER BLKS,BITS,ISN,
   %INTEGER MODE,
   %HALFINTEGER NUMIMPORTS,MEMSIZE)
%ROUTINESPEC SOURCE LINE(%INTEGER ABUFF)
%ROUTINESPEC OUTPUTFUL
%ROUTINESPEC NAMESFUL
%ROUTINESPEC DICFUL
%ROUTINESPEC EXTFUL
!*
!********************************************************************
!*
!***********************************************************************
!*
!*
!***********************************************************************

==== ercs07/emas-2900/pptests_sort.txt ====


program sort;

  const n = 1000;

  var
    i,
    j,
    k,
    m: integer;
    a: array [1 .. n] of integer;

  begin
    for k := 1 to n do a[k] := k;
    for i := 1 to n - 1 do
      begin
        k := i;
        m := a[i];
        for j := i + 1 to n do
          if a[j] > m

==== ercs07/emas-2900/qfiles_idiag1.txt ====
%SYSTEMROUTINESPEC PHEX(%INTEGER N)
!* PERQ IMP DIAGNOSTIC ROUTINE (ALAN 19/FEB/82)
!*
! LAYOUT OF DIAGNOSIC TABLES
!****** ** ********* ******
! THE BOUND FIELD OF PLT DESCRIPTOR STORED AT (LNB+3 & LNB+4) IF
! USED TO CONTAIN A DISPLACEMENT RELATIVE TO THE START OF SST OF THE
! DIAGNOSTIC TABLES FOR THE BLOCK OR ROUTINE BEING EXECUTED.
! A ZERO BOUND MEANS NO DIAGNOSTIC REQUESTED.(NB THIS MAY MEAN A DUMMY
! FIRST WORD IN THE SST).
! THE ABSOLUTE ADDRESS OF THE SST FOR THE CURRENT CODE SEGMENT WILL
! ALWAYS BE FOUND IN THE STANDARD 10 WORDS OF THE GLA/PLT
! FORM OF THE TABLES:-
! WORD 0    =   LINE OF RT IN SOURCE PROG <<16 ! LINE NO POSN(FROM LNB)
! WORD 1    =   (12 LANG DEPENDENT BITS)<<20 ! ENVIRONMENT
!               (TOP 2 BITS FOR ROUTINE TYPE.B'01'==SYSTEM ROUTINE)
!               (NEXT BIT SET FOR EBCDIC CHARS&STRINGS(ALGOLE ONLY))
! WORD 2    =   DISPLAY POSN (FROM LNB)<<16 ! RT TYPE INFO
! WORD 3    =   ZERO FOR BLKS OR STRING(<=11BYTES) BEING THE
!               RT NAME. THIS WILL TAKE WORDS 4 AND 5 IF NEEDED
! WORD 6    =  LANGUAGE DEPENDENT INFO . IMP ON CONDITIONS ETC

==== ercs07/emas-2900/slinkf_t10p2gfr.txt ====
    
      SUBROUTINE T10P2  
    
      LOGICAL     MPFLAG
      LOGICAL     OVMODE
      LOGICAL     LBMODE
      LOGICAL     LOADRB
      LOGICAL     SFLAG 
      INTEGER     VERS  
      INTEGER     LOADAD
      INTEGER     ZLOC, ZSTR, ZMAX, ZLIMIT  
      INTEGER     CLOC, CSTR, CMAX, CLIMIT  
      INTEGER     NLOC, NSTR, NMAX, NLIMIT  
      INTEGER     DLOC, DSTR, DMAX, DLIMIT  
      INTEGER     OLOC, OMAX, OSET  
      INTEGER     START 
      INTEGER     MODNLX
      INTEGER     CKSUM 
      INTEGER     KEY   
      INTEGER ICLP05
      COMMON      /LDATAX/ MPFLAG   

==== ercs07/emas-2900/oldqfiles_f77comp4.txt ====
!* modified 30/03/82
!*
!*************************** EXPORTS **********************
!*
%ROUTINESPEC F77COMP(%HALFINTEGER A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,
   %INTEGER INFILE,ERRFILE,OUTFILE,
   %HALFINTEGER BLKS,BITS,ISN,
   %INTEGER MODE,
   %HALFINTEGER NUMIMPORTS,MEMSIZE)
%ROUTINESPEC SOURCE LINE(%INTEGER ABUFF)
%ROUTINESPEC OUTPUTFUL
%ROUTINESPEC NAMESFUL
%ROUTINESPEC DICFUL
%ROUTINESPEC EXTFUL
!*
!********************************************************************
!*
!***********************************************************************
!*
!*
!***********************************************************************

==== ercs07/emas-2900/slogof_agenajfr.txt ====
 
      SUBROUTINE  AGEN 
 
      INTEGER  NI,     NJ,     NK 
      INTEGER  NSIZE 
      INTEGER  NLX,    FNLX,   REMNLX, OVNLX,  TNAME 
      INTEGER  NLSTRT, NLSTOP, NLSIZE, SRCHST 
      INTEGER  NTSTRT 
      INTEGER  NTSTOP 
      INTEGER  NTSIZE 
      INTEGER  PARFLG 
      INTEGER  SPARFL 
      INTEGER  NLWRDS 
      INTEGER  TX 
      INTEGER  NLENO 
      INTEGER  STDMD 
      INTEGER  MSHIFT 
      INTEGER  REGCNT 
      INTEGER  NULLX 
      INTEGER  STPTRX 
      INTEGER  SPMODE 

==== ercs07/emas-2900/optfmts1.txt ====
!*
!***********************************************************************
!* Optimiser record formats                                            *
!***********************************************************************
!*
%RECORDFORMAT BLRECF(%BYTEINTEGER FLAGS,DEPTH,%HALFINTEGER CHAIN,
                     %INTEGER FCON,
                     %INTEGER BCON,BDOM,BTARG,TEXT,
                     %INTEGER CORRUPT,BUB1,
                     %INTEGER USE,DEF,BOE)
!*
%RECORDFORMAT CONRECF((%INTEGER COUNT %OR %INTEGERARRAY BLOCK(0:1000)))
!*
%RECORDFORMAT LOOPRECF(%INTEGER BLOCK,DOWN,ACROSS,ST)
!*
%RECORDFORMAT CLOOPRECF(%INTEGER BLOCK,PDCHAIN,PDBACKCHAIN)
!*
%RECORDFORMAT PROPRECF(%HALFINTEGER DEFCT,TEXT,DEFN,
                       %BYTEINTEGER FLAGS,COORD2,
                       %RECORD(RESF) REPL)
!*

==== ercs07/emas-2900/rel5_exthelp3.txt ====


{30/apr - alan - Changed to disregard routine beginning F_ }
{ 10/5/82 - changes to verifyfile }
{  8/6/82 - convert modulename to upper case (in verify file) }

MODULE ExtHelp;

EXPORTS

IMPORTS FileUtils FROM FileUtils;
IMPORTS Code FROM Code;

CONST
      maxIdLength = 14;
      defIdLength = 8;
      longIdLength = 14;
      maxImports = 50;

TYPE
    Status = (allright,fileNotFound,alreadyImported,

==== ercs07/emas-2900/slogos_nlistcin.txt ====
C     EDIT DATE   09DEC78  14:13
C     SOURCE FILE NLISTCFTM.IN
C     AUTHOR      F. T. MICKEY

      INTEGER  NI,     NJ,     NK
      INTEGER  NSIZE
      INTEGER  NLX,    FNLX,   REMNLX, OVNLX,  TNAME
      INTEGER  NLSTRT, NLSTOP, NLSIZE, SRCHST
      INTEGER  NTSTRT
      INTEGER  NTSTOP
      INTEGER  NTSIZE
      INTEGER  PARFLG
      INTEGER  SPARFL
      INTEGER  NLWRDS
      INTEGER  TX
      INTEGER  NLENO
      INTEGER  STDMD
      INTEGER  MSHIFT
      INTEGER  REGCNT
      INTEGER  NULLX
      INTEGER  STPTRX

==== ercs07/emas-2900/ctms_fram.txt ====
%CONSTSTRING(31) RAM NAME = "Fixed record (direct serial)"
!
%CONSTINTEGER PLACEMENT = 130
%CONSTINTEGER CONAD = 133
%CONSTINTEGER ACTUAL FILE SIZE = 150
%CONSTINTEGER NIL = -1
%CONSTINTEGER LENGTH MASK = X'00FFFFFF'
%CONSTLONGINTEGER ADDRESS MASK = X'00000000FFFFFFFF'
!
%OWNINTEGER FILE LENGTH, START ADR, END ADR, ADR, LAST BYTE, ICOMB
%OWNINTEGER LABEL
%OWNINTEGER LRECL, KEY, LEN
%OWNINTEGER QBEFORE
%OWNLONGINTEGER FILE ROUTE
%OWNLONGINTEGERARRAY A(0:31) = -1(32)
!
%SYSTEMROUTINESPEC MOVE(%INTEGER BYTES, FROM, TO)
%SYSTEMROUTINESPEC CHANGE FILE SIZE(%STRING(31) FILE,  %C
      %INTEGER SIZE, %INTEGERNAME FLAG)
!
%EXTERNALROUTINESPEC ECTM SET DESC I(%LONGINTEGER FILE ROUTE,  %C

==== ercs07/emas-2900/slogof_decodefr.txt ====
    
      INTEGER  FUNCTION DECODE (ITYPE, INDEX)   
      INTEGER     ITYPE, INDEX  
      INTEGER     TABLE (2, 44), EXCEPT (2, 6, 4)   
    
      INTEGER  LEVELB, NLEVEL, LLEVEL, ILEVEL, CLEVEL   
      INTEGER ICLP04
      COMMON   /LEVELS/ LEVELB, NLEVEL, LLEVEL, ILEVEL, CLEVEL  
      COMMON   /LEVELS/ ICLP04  
      DATA  TABLE (1,  1) / 0/  
      DATA  TABLE (1,  2) / 4/  
      DATA  TABLE (1,  3) / 4/  
      DATA  TABLE (1,  4) / 4/  
      DATA  TABLE (1,  5) / 4/  
      DATA  TABLE (1,  6) /-6/  
      DATA  TABLE (1,  7) / 4/  
      DATA  TABLE (1,  8) / 4/  
      DATA  TABLE (1,  9) / 4/  
      DATA  TABLE (1, 10) / 4/  
      DATA  TABLE (1, 11) / 4/  
      DATA  TABLE (1, 12) / 4/  

==== ercs07/emas-2900/slinkf_sortajfr.txt ====
    
      SUBROUTINE SORT (LIST, COUNT, ARRAY, COMP)
      INTEGER     COUNT, LIST (1), ARRAY (1)
      INTEGER     CT, STEP, COMP
      INTEGER     I, J, K, L, M, N  
    
      K = COUNT 
      IF (K .LE. 1) RETURN  
      CT = K
      STEP = 1  
      CONTINUE  
13020 CONTINUE  
    
      K = ISHFT (K, -1) 
      IF (.NOT.(K .NE. 0))GO TO 13021   
    
      STEP = STEP + STEP
      GO TO 13020   
13021 CONTINUE  
    
      STEP = STEP - 1   

==== ercs07/emas-2900/pptecodes_pptest10.txt ====
Einitialise 
Enextproc  1
Eproc PPTEST3    1    0    0
 Elinestart ++++++++++++++++++++++   37
 Elinestart ++++++++++++++++++++++   39
 Elinestart ++++++++++++++++++++++   40
 Elinestart ++++++++++++++++++++++   41
Estkaddr   Gst     + 0      4    R1
Estkdir   Gla     + 20      4    I
Eop    INDEX8
 0 0 0
Estack:
 2:DirVal        Gla     +   20  size: 4
 1:AddrDir       Gst     +    0  size: 4
Epsave     1
Epdiscard     1
 Elinestart ++++++++++++++++++++++   42
Estkaddr   Gst     + 0      4    R1
Estkdir   Gla     + 20      4    I
Eop    INDEX8
 0 0 0

==== ercs07/emas-2900/bscmast20_bscbase20.txt ====
!
!***********************************************************************
!*
!*                EMAS 2900 INTERFACE FOR KENT BASIC
!*
!**********************************************************************
!
!***********************************************************************
!*
!*                             EXTERNALS
!*
!***********************************************************************
!
%EXTERNALSTRING(16) INPUTFILE,OUTPUTFILE
!
!
!**********************************************************************
!*
!*                            CONSTANTS
!*
!**********************************************************************

==== ercs07/emas-2900/slinkf_lemascfr.txt ====
      SUBROUTINE EMASLK(SA,LA,SB,LB)
      INTEGER*2 SA(1),LA,SB(1),LB
      INTEGER*4 DA(10),EA,DB(10),EB
      INTEGER*2 X(20),Y(20)
      EQUIVALENCE (X(1),DA(1)),(Y(1),DB(1))
      DO 10 I=1,12
      X(I)=SA(I)
      Y(I)=SB(I)
   10 CONTINUE
      EA=LA
      EB=LB
      CALL EMASFC(DA,EA,DB,EB)
      END
      INTEGER FUNCTION IAND*2(A,B)
      INTEGER*2 A,B
      INTEGER*4 DA,DB,XIAND
      DA=A
      DB=B
      IAND=XIAND(DA,DB)
      RETURN
      END

==== ercs07/emas-2900/slogof_generffr.txt ====
    
      SUBROUTINE GENER (FUNC)   
    
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      INTEGER     NEXT,   NUMBER, I,      IOTYPE
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT
      INTEGER ICLP05
      LOGICAL     ENDOK,CONEND  
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG   
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG  
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV  
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE  
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N   
      COMMON   /LOGOS/  PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE  

==== ercs07/emas-2900/slogof_genlaafr.txt ====
 
      SUBROUTINE  GENLA 
 
      INTEGER     OP, LEFT, RIGHT, LSTKX, RSTKX 
      INTEGER     TS, LOAD, BASE 
      INTEGER     THIS, OTHER, SIDE, HI, LOW 
      INTEGER     INTBR, ROW, COL, INREG, OUTREG 
      INTEGER     BCC, BNE 
      INTEGER     CLC, JMP, LDAABS, LDAI, LDAZP 
      INTEGER     SBCI, SEC, STAZP, TAX, TXA 
      LOGICAL     COMZER, EZSTA, MORE 
      COMMON      /GCOM/   OP, LEFT, RIGHT, LSTKX, RSTKX 
      COMMON      /GCOM/   TS, LOAD, BASE 
      COMMON      /GCOM/   THIS, OTHER, SIDE, HI, LOW 
      COMMON      /GCOM/   INTBR, ROW, COL, INREG, OUTREG 
      COMMON      /GCOM/   BCC, BNE 
      COMMON      /GCOM/   CLC, JMP, LDAABS, LDAI, LDAZP 
      COMMON      /GCOM/   SBCI, SEC, STAZP, TAX, TXA 
      COMMON      /GCOM/   COMZER, EZSTA, MORE 
 
      INTEGER  AREG,   XREG,   YREG,   NRREGS 

==== ercs07/emas-2900/pptecodes_pptest11.txt ====
Einitialise 
Enextproc  1
Eproc PPTEST11    1    0    0
 Elinestart ++++++++++++++++++++++   12
 Elinestart ++++++++++++++++++++++   14
Estkdir   Gla     + 16      4    B
Ejump JFALSE   -5
 Elinestart ++++++++++++++++++++++   15
Estklit        0
Estkaddr   Gla     + 20      4    I
Eop    ESTORE
 0 0 0
Estack:
 2:AddrDir       Gla     +   20  size: 4
 1:LitVal            0  size: 4
Ejump JUMP   -4
Elabel    -5
 Elinestart ++++++++++++++++++++++   17
Estkdir   Gla     + 20      4    I
Estklit        0
Eop    IEQ

==== ercs07/emas-2900/slogof_ioftmfr.txt ====
    
      SUBROUTINE IO 
    
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      INTEGER     NEXT,   NUMBER, I,      IOTYPE
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT
      INTEGER ICLP05
      LOGICAL     ENDOK,CONEND  
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG   
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG  
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV  
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE  
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N   
      COMMON   /LOGOS/  PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE  

==== ercs07/emas-2900/slinkf_t07p2gfr.txt ====
    
      SUBROUTINE T07P2  
    
      INTEGER     DICT (400)
      INTEGER     ID, CID, DTSTRT, DTSTOP   
      COMMON      /DARRAY/ DICT 
      COMMON      /DARRAY/ ID, CID, DTSTRT, DTSTOP  
    
      INTEGER     NSIZE,  NAME(16), NTITLE  
      INTEGER     NFLAGS (512)  
      INTEGER     NADDRS (512)  
      INTEGER     NPOSIT (512)  
      INTEGER     NDATA  (512)  
      INTEGER     NTEXTX (512)  
      INTEGER     NTEXT  (1000) 
      INTEGER     NLX, NLSTRT, NLSTOP   
      INTEGER     TXSTRT, TXSTOP
      INTEGER     NTXBTS
      INTEGER     USEBIT, COMBIT, OVLBIT, EPTBIT
      INTEGER     LDMBIT, MODBIT, MLTBIT, RLSBIT
      INTEGER     GDFBIT, TYPBTS

==== ercs07/emas-2900/slogosorg_logosain.txt ====
C     EDIT DATE   10NOV78  14:27
C     SOURCE FILE LOGOSAJH.IN
C     AUTHOR      A. J. HOWARD
C     GLOBAL PROGRAM DATA BASE
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      INTEGER     NEXT,   NUMBER, I,      IOTYPE
      INTEGER     J,      K,      L,      LABNLX, M,      N
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX
      INTEGER     DUMMY,  OVCHN,  PEEKS
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP
      LOGICAL     CONEND
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT
      LOGICAL     ENDOK
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N

==== ercs07/emas-2900/pptecodes_pptest12.txt ====
Einitialise 
Enextproc  1
Enextproc  2
Enextproc  3
Enextproc  4
Enextproc  5
Eproc P4    5    0    0
 Elinestart ++++++++++++++++++++++   16
Elabel    -5
Eprocend      16
Enextproc  6
Eproc P5    6    0    0
 Elinestart ++++++++++++++++++++++   20
 Elinestart ++++++++++++++++++++++   21
Eprecall     6
Ecall        6      0    0
 Elinestart ++++++++++++++++++++++   22
Eprecall     5
Ecall        5      0    0
 Elinestart ++++++++++++++++++++++   23
Eprecall     4

==== ercs07/emas-2900/genutils_testphexi.txt ====

%BEGIN
%EXTERNALROUTINESPEC PHEX(%INTEGER I)
%OWNINTEGERARRAY A(1:10)=0,X'F0F0F0F0',X'FFFF0000',X'0F0F0F0F',
         X'FF00FF00',X'00FF00FF',X'12345678',X'90ABCEEF',
         X'11111111',X'AAAAAAAA'
%INTEGER I,K
      %CYCLE K=1,1,10
         WRITE(A(K),22)
         PHEX(A(K))
         NEWLINE
      %REPEAT
%ENDOFPROGRAM

==== ercs07/emas-2900/pptecodes_pptest13.txt ====
Einitialise 
Enextproc  1
Eproc P1    2    6   24
 Elinestart ++++++++++++++++++++++   15
 Elinestart ++++++++++++++++++++++   16
Estkresult     0    1    4
Eprecall    -1
Estkpar    2 12      4    F1
Eop    ARGPROC
-1 0 0
Estack:
 2:DirVal        Stack   +   76  size: 4
 1:RegVal         1  size: 4
******* Unsupported Opcode ****** ARGPROC
Estkpaddr    2 0      4    I1
Eop    ESTORE
-1 0 0
Estack:
 2:AddrDir       Stack   +   64  size: 4
 1:RegVal         1  size: 4
 Elinestart ++++++++++++++++++++++   17

==== ercs07/emas-2900/pddemo_map1.txt ====
!* modified 30/01/82
!*
!***********************************************************************
!*
!*
!***********************************************************************
!* Formats for accessing dictionary records                            *
!***********************************************************************
!*
%RECORDFORMAT PRECF( %C
               %BYTEINTEGER CLASS,TYPE,X0,X1, %C
               %INTEGER LINK1, LINK2, LINK3, ADDR4,  %C
               %HALFINTEGER DISP,LEN,  %C
               %INTEGER IDEN,LINE,XREF,CMNLENGTH, CMNREFAD)
!*
%RECORDFORMAT SRECF(%INTEGER INF0, LINK1, INF2, INF3, INF4)
!*
%RECORDFORMAT RESF((%INTEGER W %OR %HALFINTEGER H0,
                      (%HALFINTEGER H1 %OR %BYTEINTEGER FORM,MODE)))
!*
%RECORDFORMAT DORECF( %C

==== ercs07/emas-2900/pptecodes_pptest14.txt ====
Einitialise 
Enextproc  1
Eproc PPTEST14    1    0    0
EXname  p_presetf    2    0    0
Eprecall     2
Estkaddr   Gst     + 0      4
Eop    PUSHVAL
 0 0 0
Estack:
 1:AddrDir       Gst     +    0  size: 4
Estklit        2
Eop    PUSHVAL
 0 0 0
Estack:
 1:LitVal            2  size: 4
Ecall        2      2    8
EXname  p_bindf    3    0    0
Eprecall     3
Estkaddr   Gst     + 0      4    INPUT
Eop    PUSHVAL
 0 0 0

==== ercs07/emas-2900/pptecodes_pptest15.txt ====
Einitialise 
Enextproc  1
Eproc PPTEST15    1    0    0
EXname  p_presetf    2    0    0
Eprecall     2
Estkaddr   Gst     + 0      4
Eop    PUSHVAL
 0 0 0
Estack:
 1:AddrDir       Gst     +    0  size: 4
Estklit        3
Eop    PUSHVAL
 0 0 0
Estack:
 1:LitVal            3  size: 4
Ecall        2      2    8
Eprecall     2
Estkaddr   Gst     + 96      4
Eop    PUSHVAL
 0 0 0
Estack:

==== ercs07/emas-2900/slinkf_t03p2gfr.txt ====
    
      SUBROUTINE T03P2  
    
      LOGICAL     MPFLAG
      LOGICAL     OVMODE
      LOGICAL     LBMODE
      LOGICAL     LOADRB
      LOGICAL     SFLAG 
      INTEGER     VERS  
      INTEGER     LOADAD
      INTEGER     ZLOC, ZSTR, ZMAX, ZLIMIT  
      INTEGER     CLOC, CSTR, CMAX, CLIMIT  
      INTEGER     NLOC, NSTR, NMAX, NLIMIT  
      INTEGER     DLOC, DSTR, DMAX, DLIMIT  
      INTEGER     OLOC, OMAX, OSET  
      INTEGER     START 
      INTEGER     MODNLX
      INTEGER     CKSUM 
      INTEGER     KEY   
      INTEGER ICLP05
      COMMON      /LDATAX/ MPFLAG   

==== ercs07/emas-2900/pptecodes_pptest16.txt ====
Einitialise 
Enextproc  1
Eproc PTEST16    1    0    0
 Elinestart ++++++++++++++++++++++   23
 Elinestart ++++++++++++++++++++++   24
Estklit        0
Estkaddr   Gla     + 16      4    B1
Eop    ESTORE
 0 0 0
Estack:
 2:AddrDir       Gla     +   16  size: 4
 1:LitVal            0  size: 4
 Elinestart ++++++++++++++++++++++   25
Estkdir   Gla     + 16      4    B1
Estkaddr   Gla     + 20      4    B2
Eop    ESTORE
 0 0 0
Estack:
 2:AddrDir       Gla     +   20  size: 4
 1:DirVal        Gla     +   16  size: 4
 Elinestart ++++++++++++++++++++++   26

==== ercs07/emas-2900/slogof_ppcomdfr.txt ====
 
      BLOCK DATA 
 
      INTEGER  PSTACK (12) 
      INTEGER  PX 
      INTEGER  PEND 
      COMMON   /PPCOM/  PSTACK 
      COMMON   /PPCOM/  PX 
      COMMON   /PPCOM/  PEND 
      DATA  PX    /1/ 
      DATA  PEND  /10/ 
      END 

==== ercs07/emas-2900/dsea20_coedebcdic.txt ====
T/CONST/
TS/BAR =/ I/   EBCDICTABCHAR = 5;///
T/PROCEDURE READSYMBOL ;   (*FORWARD/ TS/1: WHILE/
R/CH = ' '/(CH=' ') OR (CH=CHR(EBCDICTABCHAR))/
TELE

==== ercs07/emas-2900/pptecodes_pptest17.txt ====
Einitialise 
Enextproc  1
Enextproc  2
Eproc P2    2    2 1028
 Elinestart ++++++++++++++++++++++   22
 Elinestart ++++++++++++++++++++++   23
Estklit        1
Estkpaddr    2 0      4    S2
Eop    ESTORE
 0 0 0
Estack:
 2:AddrDir       Stack   +   64  size: 4
 1:LitVal            1  size: 4
 Elinestart ++++++++++++++++++++++   24
Estklit        0
Estkpaddr    2 1020      4    S2
Eop    ESTORE
 0 0 0
Estack:
 2:AddrDir       Stack   +  1084  size: 4
 1:LitVal            0  size: 4

==== ercs07/emas-2900/pptecodes_pptest18.txt ====
Einitialise 
Enextproc  1
Eproc QUAD    1    0    0
EXname  p_presetf    2    0    0
Eprecall     2
Estkaddr   Gst     + 0      4
Eop    PUSHVAL
 0 0 0
Estack:
 1:AddrDir       Gst     +    0  size: 4
Estklit        2
Eop    PUSHVAL
 0 0 0
Estack:
 1:LitVal            2  size: 4
Ecall        2      2    8
EXname  p_bindf    3    0    0
Eprecall     3
Estkaddr   Gst     + 0      4    INPUT
Eop    PUSHVAL
 0 0 0

==== ercs07/emas-2900/pptecodes_pptest19.txt ====
Einitialise 
Enextproc  1
Eproc ARRA    1    0    0
EXname  p_presetf    2    0    0
Eprecall     2
Estkaddr   Gst     + 0      4
Eop    PUSHVAL
 0 0 0
Estack:
 1:AddrDir       Gst     +    0  size: 4
Estklit        2
Eop    PUSHVAL
 0 0 0
Estack:
 1:LitVal            2  size: 4
Ecall        2      2    8
EXname  p_bindf    3    0    0
Eprecall     3
Estkaddr   Gst     + 0      4    INPUT
Eop    PUSHVAL
 0 0 0

==== ercs07/emas-2900/inpds_crucomin.txt ====
C     EDIT DATE   22MAR78  11:09
C     SOURCE FILE   CRUCOMJHP.IN
C     AUTHOR        J.H.PERINE
C     DEFINE OP CODE TABLES IN COMMON FOR CRUTCH & LIST
      INTEGER  GROUP1
      INTEGER  IMPLID
      INTEGER  NGROUP
      INTEGER  NIMPLI
      INTEGER  NOTHER
      INTEGER  NRELTI
      INTEGER  OTHERS
      INTEGER  RELTIV
      INTEGER  STAX
      INTEGER  CSOW
      INTEGER  CSWFA
      INTEGER  CSOFF
      INTEGER  CSNLX
      INTEGER  CSWFB
      COMMON   /CRUCH/  GROUP1 (24)
      COMMON   /CRUCH/  IMPLID (75)
      COMMON   /CRUCH/  NGROUP

==== ercs07/emas-2900/strans_getwrdfr.txt ====
    
      INTEGER FUNCTION GETWRD (BUFIN, INX, MAXIN, BUFOUT)   
    
      INTEGER  INPTR
      INTEGER  OUTPTR   
      INTEGER  INMAX
      INTEGER  MAXTAB   
      INTEGER  MAXLIN   
      INTEGER  IFMAX
      INTEGER  MAXLEV   
      INTEGER  LINENO   
      INTEGER  PAGE 
      INTEGER  CLINE
      INTEGER  TLIMIT   
      INTEGER  LN   
      INTEGER  I, J, K  
      INTEGER  II, JJ, KK   
      INTEGER  LEXVAL   
      INTEGER  SLEN 
      INTEGER  LEVEL
      INTEGER  LEN  

==== ercs07/emas-2900/qfiles_cmess4.txt ====
!* MODIFIED 23/03/82
!*
!*
%RECORDFORMAT COMFMT(%INTEGER CONTROL,OPTIONS,OPTIONS1,OPTIONS2,PTRACE,
      ADICT,ANAMES,ADOUTPUT,ADBLKDTAID,DICLEN,DPTR,
      MAXTRIADS,NEXTPLAB,ALABH,ADLHEAD,
      SUBPROGTYPE,SFPTR,EXTERNALS,CBNPTR,SCPTR,CHECKLIST,
      RESCOM1,RESCOM2,GLACA,FNO,FAULTY,LINEST,CMNIIN,SFMK,
      LISTL,LISTSTREAM,DIAGSTREAM,LISTPOINT,XREF,
      PACKCMN,ITSMODE,PATHANAL,CHARACTER CODE,SPACE CHAR,
      HEADINGS,ARRAYCHECKS,JBRMODE,MESSLEN,NAMESLEN,
      NEXTCH,FUNRESDISP,WARNCOUNT,INP,MAXINP,MESSCOUNT,
      UNASSPATTERN,LISTCODE,PI21INT,DOPTR,SUBPROGPTR,
      FNLST,LAB,NAMESFREE,ALGOLREF,FIRSTSTATNUM,CEXPDICT,
      COMMONBASE,FASTPROLOGUE,STATEMENT,IFPTR,
      CNSTCA,COMMENTCNT,ADIDENT,ADERRIDEN)
%EXTERNALROUTINE QCMESS
{dummy}
%END
!*
%EXTERNALROUTINE FAULTNUM(%INTEGER ER,COMAD,UPDATE)

==== ercs07/emas-2900/pnxrel01_oplistp44.txt ====
! 10/07/84 new version of targetpnx_fptos
! 05/07/84 insert switch SW(INTRIN) in FORMLINE
! 03/07/84 make FPTOS a string function & put in an include file
!          set up string REG1 in targ_target & substitute for "reg-1"
!          remove OPVALS for LOADB & STOREB
!          define INTRINFNS to output new INTRIN fns
! 21/03/84 amend arrays SW, RTOL, ENDS, OPVALS. Delete ST & SZTY & REG
! 19/03/84 add in ADICT on calls to FPTOS
! 08/03/84 change INTEGER mapping increments to W1 etc.
! 28/02/84 FPTOS inserted
! 01/10/1/83 copied from ERCS06.REL90_OPLISTB36
!*
%CONSTINTEGER OPSYS=1
!   =0  (Emas ISO)
!   =1  (VME  EBCDIC)
!*
%INCLUDE "host_host"
!*
%INCLUDE "targ_target"
!*
!%INCLUDE "pf_version"

==== ercs07/emas-2900/slinks_datadffsin.txt ====
'HEAD'  DATA DEFINITIONS FOR LINKER
C     EDIT DATE   16JAN79  15:17
C     SOURCE FILE DATADFGAK.FS
C     AUTHOR      GARY A. KUDIS
C     CLUSTER     0
C     0.00 /BITDFN/ BIT DEFINITIONS
C     0.01 /CHARAC/ CHARACTER DEFINITIONS
C     0.02 /DARRAY/ DICTIONARY ARRAY
C     0.03 /ERRDFN/ ERROR DEFINITIONS
C     0.04 /IODEFN/ IO CHANNEL DEFINITIONS
C     0.05 /LDATAX/ LINKER DATA
C     0.06 /MEMORY/ MEMORY USE MAP
C     0.07 /NTABLE/ NAME LIST TABLE
C     0.08 /PNAMES/ PRINT NAME LIST DATA STRUCTURES
C     0.09 /QUESTS/ QUESTIONS TO USER
C     0.10 /RECORD/ INPUT RECORD DEFINITIONS
C     0.11 /STACKS/ LINKER STACK AREAS
      'OUTFILE' BITDFNGAK.FR
      BLOCK DATA
      'INCLUDE' BITDFNGAK.IN,P
      DATA        BIT00 /1/

==== ercs07/emas-2900/slogof_emasiffr.txt ====
 
      SUBROUTINE  REW (CHAN, FILE) 
      INTEGER     CHAN, FILE (15) 
      REWIND CHAN 
      RETURN 
      END 
 
      SUBROUTINE  RDLIN (CHAN, BUFFER, MAX, ERROR) 
      INTEGER     CHAN, BUFFER (40), MAX, ERROR 
      INTEGER     WORDS 
      WORDS = (MAX + 1)/2 
      READ (CHAN, 1000, END = 100) (BUFFER (I), I = 1, WORDS) 
      ERROR = 1 
      RETURN 
  100 ERROR = 9 
      RETURN 
 1000 FORMAT (40A2) 
      END 
      SUBROUTINE  WRLIN (CHAN, BUFFER, CHARS) 
      INTEGER     CHAN, BUFFER (66), CHARS 
      INTEGER     WORDS 

==== ercs07/emas-2900/rel10opt_oplistb48.txt ====
! 22/10/84 - coorection to OUTPUTTEXT for continuation lines in OPT4
! 15/10/84 - define external routine RESET OPLIST
! 09/10/84 - change OUTPUTLINE to print global line number LINES
! 18/09/84 - insert switch for STFNID in GEN and delete array QUAL
! 24/07/84 set OPSYS 0
! 23/07/84 amend SW(CGT) in FORMLINE to print private labels
! 10/07/84 new version of targetpnx_fptos
! 05/07/84 insert switch SW(INTRIN) in FORMLINE
! 03/07/84 make FPTOS a string function & put in an include file
!          set up string REG1 in targ_target & substitute for "reg-1"
!          remove OPVALS for LOADB & STOREB
!          define INTRINFNS to output new INTRIN fns
! 21/03/84 amend arrays SW, RTOL, ENDS, OPVALS. Delete ST & SZTY & REG
! 19/03/84 add in ADICT on calls to FPTOS
! 08/03/84 change INTEGER mapping increments to W1 etc.
! 28/02/84 FPTOS inserted
! 01/10/1/83 copied from ERCS06.REL90_OPLISTB36
!*
%CONSTINTEGER OPSYS=0
!   =0  (Emas ISO)
!   =1  (VME  EBCDIC)

==== ercs07/emas-2900/pddemo_dctl10.txt ====
module  f77dctl;
exports
imports filedefs from filedefs;

procedure ndiag(raiseap,dumpc,err,extra:fsbit16);
procedure ssmess(i:integer);

function loadss:fsbit16;
function loadap:fsbit16;
procedure diags(raiseap,es,er,pstart,pend:fsbit16);

private

imports f77init from f77init;
imports f77idiag from f77idiag;
imports f77fdiag from f77fdiag;
imports f77rmess from f77rmess;
imports F77QCODE from F77QCODE;

imports system from system;
imports except from except;

==== ercs07/emas-2900/sforf_ctypef.txt ====
      INTEGER FUNCTION CTYPE (ICHAR)
      INTEGER  INPTR
      INTEGER  OUTPTR
      INTEGER  INMAX
      INTEGER  MAXTAB
      INTEGER  MAXLIN
      INTEGER  IFMAX
      INTEGER  MAXLEV
      INTEGER  LINENO
      INTEGER  PAGE
      INTEGER  CLINE
      INTEGER  TLIMIT
      INTEGER  LN
      INTEGER  I, J, K
      INTEGER  II, JJ, KK
      INTEGER  LEXVAL
      INTEGER  SLEN
      INTEGER  LEVEL
      INTEGER  LEN
      INTEGER  INCHAN
      INTEGER  OUTCHN

==== ercs07/emas-2900/dsea20_omfouted1.txt ====
I/%CONTROL X'0FFFFFFF'///
#INS 1
!!*************************************************************
!!
!!  OMFOUT
!!
!!  EDINBURGH'S IMP MODULE OMF8
!!  ADAPTED FOR USE IN BSV35/KSV17 PASCAL SYSTEM (PASCAL 20)
!!
!!  T.MOORE    MARCH '80
!!
!!*************************************************************
!!
#ALT 53-57
%EXTERNALINTEGERFNSPEC ICL9HNCREATEALIAS ( %C
          %INTEGER NAMEDRO,NAMEDR1,DUMDRO,DUMDR1)
%EXTERNALINTEGERFNSPEC ICL9HNOUTPUTRECORD(%INTEGER BUFFERDRO,BUFFERDR1)
#INS 63
%ROUTINESPEC MOVE (%INTEGER LENGTH,FROM,TO)
%ROUTINESPEC PHEX (%INTEGER N)
#INS 77

==== ercs07/emas-2900/basicmaster_tracegen.txt ====
IMP BASICMASTER_BSCBASE15,BSCBASE15X,.LP
PARM OPT
IMP BASICMASTER_FCONVS,FCOBJ,.LP
IMP BASICMASTER_XDUMPS,XDUMPY,.LP
PARM
LINK
BSCBASE15X
FCOBJ
BASICMASTER_BASIC4Y
XDUMPY
.END
TRBASIC
PERMIT TRBASIC
CHERISH TRBASIC
DESTROY FCOBJ,BSCBASE15X,XDUMPY

==== ercs07/emas-2900/library_bushjob.txt ====
J(:ERCS01.LIBJOB,TIM=60)
BEGIN
AF(LIBRARY.TPLIST,ICL9CE2,R)
IMP(LIBRARY.PROG)
END
EJ
****

==== ercs07/emas-2900/culmoldsce_libulms.txt ====
%BEGIN                                                                  00000100
%CONTROL 0
!    COMPILE TIME 18 ETU
!    RUN TIME 4WKS   99 ETU
!
!    PROGRAM TO PRODUCE THE MONTHLY BULLETIN OUTPUT FROM ANY            00000200
!    NUMBER OF FILES, SPECIFIED BY THE CONTROL CARDS.                   00000300
!                                                                       00000400
%INTEGER AL                            ;! LENGTH OF AUTHOR FIELD        00000500
%INTEGER AS                            ;! START OF AUTHOR FIELD         00000600
%INTEGER AUUNIT                        ;! AUTHOR LISTING UNIT
%INTEGER BLUNIT                         ;! BULLETIN I/P FILE
%INTEGER BLNK                          ;! BLANK WORD
%INTEGER BLOCK                          ;! CURRENT BLOCK NUMBER
%INTEGER BUL                          ;! FILE COUNT                     00001100
%INTEGER CDTYPE                        ;! INPUT CARD TYPE               00001200
%INTEGER CHECK                         ;! CHECKING INDICATOR            00001300
%INTEGER CNT                           ;! INPUT CARD COUNT              00001400
%INTEGER CONCST                       ;! MASTER CONC POINTER            00001500
%INTEGER CSECT                        ;! CURRENT RECORD SECTOR          00001600
%INTEGER DIAGNS                        ;! DIAGNOSTIC PRINT INDICATOR    00001700

==== ercs07/emas-2900/slinkf_lpass1fr.txt ====
    
      SUBROUTINE PASS1  
    
      INTEGER     RCOUNT
      INTEGER     RTYPE 
      INTEGER     RSTYPE
      INTEGER     RTMAX 
      INTEGER     RSZMAX
      INTEGER     RECORD (41)   
      INTEGER     RSIZE 
      INTEGER     RSIZES (20)   
      INTEGER ICLP02
      COMMON      /RECORD/ RCOUNT   
      COMMON      /RECORD/ RTYPE
      COMMON      /RECORD/ RSTYPE   
      COMMON      /RECORD/ RTMAX
      COMMON      /RECORD/ RSZMAX   
      COMMON      /RECORD/ RECORD   
      COMMON      /RECORD/ RSIZE
      COMMON      /RECORD/ RSIZES   
      COMMON     /RECORD/ ICLP02

==== ercs07/emas-2900/slinkf_gnamegfr.txt ====
    
      SUBROUTINE GNAME (I)  
      INTEGER     I 
      INTEGER     GCHAR, J  
    
      INTEGER     CHAR  
      INTEGER     CHMASK
      INTEGER     CR, LF
      INTEGER     CRLF  
      INTEGER     BLANK, PERIOD 
      INTEGER     BLANKS, DASHES, COLONS, SLASHS
      INTEGER     ACH, BCH, CCH, DCH, ECH, FCH  
      INTEGER     GCH, HCH, ICH, JCH, KCH, LCH  
      INTEGER     MCH, NCH, OCH, PCH, QCH, RCH  
      INTEGER     SCH, TCH, UCH, VCH, WCH, XCH  
      INTEGER     YCH, ZCH  
      INTEGER     LBRACE, RBRACE
      INTEGER     LBRACK, RBRACK
      INTEGER ICLP04
      COMMON      /CHARAC/ CHAR 
      COMMON      /CHARAC/ CHMASK   

==== ercs07/emas-2900/oldqfiles_f77qcode2.txt ====
%CONSTINTEGER EMAS=0,PERQ=1,SYS=PERQ
! %EXTERNALROUTINESPEC DUMP(%INTEGER A,B,C,D)
 %IF SYS=EMAS %START; %SYSTEMROUTINESPEC PHEX(%INTEGER N) ; %FINISH
!*TOP
!****************************************************************************
!*                                                                          *
!*             PERQ QCODE DISSASSEMBLER 
!*                                                                          *
!****************************************************************************
!*
%EXTERNALROUTINE QCODE(%INTEGER START,FINISH,CA,MODE)
!*
!*    MODE IS :-
!                 1  - ASCII EQUIVELANT IS PRINTED
!                 2  - NO HEX AD IS PRINTED
!                 4  - DECIMAL AD IS PRINTED
!                 8  - NO SEGMENT NUMBER IS GIVEN
!                 16  -  HEX EQUIVELANT IS PRINTED
!                 32  - LINES ARE PADDED TO COMMON END POINT

!*

==== ercs07/emas-2900/slogos_flist.txt ====

   ARGENAFS
   ATESTAIN
   BLDPOAIN
   BPOLSHFS
   BRACEFIN
   BRACESFS
   CDIAGAFS
   CGENAJFS
   CODE1FFS
   CODE1FIN
   CODE2AFS
   CONTFTFS
   CPAREAIN
   CRUCOMIN
   CRUTCHFS
   CTRLAJIN
   DDEFFTFS
   FAULTFFS
   FAULTSIN
   FLMSGAIN

==== ercs07/emas-2900/slogosorg_argenafs.txt ====
'HEAD'  STORE CODE GENERATION
C     EDIT DATE   05FEB79  16:11
C     SOURCE FILE ARGENAJH.FS
C     AUTHOR      A. J. HOWARD
C     CLUSTER     19
      'OUTFILE'   ARAGENAJH.FR
N     OVERLAY     OLARA
      SUBROUTINE  ARAGEN
C     OP          LOGOS OPERATOR
C     LEFT        STACK POINTER TO LEFT  OPERAND
C     RIGHT       STACK POINTER TO RIGHT OPERAND
      'INCLUDE'   LOGOSAJH.IN,
      'INCLUDE'   NLISTCFTM.IN,
      'INCLUDE'   REGSJHP.IN,
      'INCLUDE'   RMCODES.IN,
      'INCLUDE'   STKDEFA.IN,
      'INCLUDE'   STKDEFB.IN,
      'INCLUDE'   STKDEFE.IN,
      'INCLUDE'   WFLAGSJHP.IN,
      'INCLUDE'   GENCOMAJH.IN,
      INTEGER     RET, RET1, RET2

==== ercs07/emas-2900/dsea20_coedforci.txt ====
T/%CHARCODE/ R/ISO/EBCDIC/
T/%RANGE/ T+1
I$%DIAGLINEMAP=NO
%DIAGNAMETABLE=NO
$
T/(*#/ P+1
T/PROGRAM/ A/CO/MPILE/ P./ ;/
T/CONST/
TS/WITHTITLE/ PS/PAGEWIDTH/
T/ALFA16/ I/   /
TS/ORDLARGESTCHAR/ R/127/255/ R/ISO/EBCDIC/
T/TYPE/
TS/VADDRESS/ T+1 I/   TEXTPT = @TEXT ;///
TS/PROFILE,/ A/TRACE,/ NOCODEGEN,/
TS/BOOLOPT/
A/;/      (* ) THESE DEFINITIONS APPLY ONLY TO    *)/ T+1
  A/;/    (* ) OPTIONS FOR WHICH PASCAL-SPECIFIC  *)/
T+1 A/;/  (* ) DIRECTIVES ARE AVAILABLE.          *)/
T+1 I/   ALIENBOOLOPTIONTYPE = NOCODEGEN..NOCODEGEN;///
TS/OPTIONSCOPE =/ T+1
I$   DELAYEDLISTINGOPTIONREC =

==== ercs07/emas-2900/pfbits.txt ====
! 26/03/84 correction to CLEARBIT
!
!***********************************************************************
!*                                                                     *
!*       B I T   M A N I P U L A T I O N                               *
!*                                                                     *
!***********************************************************************
!*
%EXTERNALROUTINE SETARGBITS(%INTEGER BLIND)
%END
!*
%EXTERNALROUTINE SETCMNBITS(%INTEGER CUR)
!* OR common coordinates into bitstrip with address CUR
%INTEGERARRAYNAME BS
%INTEGERARRAYFORMAT BSFMT(0:100)
%INTEGER I
BS==ARRAY(CUR,BSFMT)
BS(I)=BS(I)!CMNCOORDS(I) %FOR I=0,1,BSWORDS-1
%END;! SETCMNBITS
!*
%EXTERNALROUTINE SETBIT(%INTEGER STRIPADDR,INDEX)

==== ercs07/emas-2900/npc1_interf.txt ====
{

                           MODULE 6
 
 
                  Object Program Generation
 
 
 
 
 
 Object  program  generation  is  embedded  within  the  syntactic-
 semantic analyser as a set of procedure calls. These calls and the
 types underlying  their  parameter  lists,  provide  a  generation
 interface  which  is  independent of the precise object code to be
 generated. Between calls, the analyser stores and  transmits  data
 of  these types but without any detailed knowledge of their inter-
 nal nature.
 
 Likewise,   the   generative   procedures   called   may   operate
 without   any   knowledge  of the analyser's functioning or of the

==== ercs07/emas-2900/lpds_overlamac.txt ====
.TITLE OVERLAY ROUTINES
.GLOBLOVLOD
.GLOBLOLLDS,OLLST,OLCRM,OLCD2,OLCRU
.GLOBLOLSLL,OLCTL,OLINI,OLIO
.GLOBLOLQOT,OLAGN,OLMGN,OLUGN,OLSGN
.GLOBLOLCGN,OLNLI,OLPNA,OLNOU,OLPVR,OLPV2
.GLOBLOLOBJ,OLLCO,OLPS2,OLDUM
.GLOBLOLLAB,OLRBR,OLPLO,OLSPL,OLSAV,OLARA,OLARB
        .GLOBL  OLFLT,OLREG,OLSCN,OLPSB,OLPLC
.PAGE
OLLDS:.RAD50/LDS   /
OLLST:.RAD50/LST   /
OLCRM:.RAD50/CRM   /
OLCD2:.RAD50/CD2   /
OLCRU:.RAD50/CRU   /
OLSLL:.RAD50/SLL   /
OLCTL:.RAD50/CTL   /
OLINI:.RAD50/NLI   /
OLIO:.RAD50/IO1   /
OLQOT:.RAD50/QOT   /
OLMGN:.RAD50/MGN   /

==== ercs07/emas-2900/slogos_stkdefin.txt ====
C     EDIT DATE   03DEC78  11:40
C     SOURCE FILE STKDEFA.IN
C     AUTHOR      A. J. HOWARD
      INTEGER     STK (20, 13)
C     COLUMN      ARRAY
C
C        1        NAMEX
C        2        SUBX
C        3        MODE
C        4        SUBXM
C        5        BIAS
C        6        SUBXB
C        7        LOCFLG
C        8        OSTACK
C        9        OPCODE
C        10       WFOP
C        11       WFOPND
C        12       SUBOP
C        13       WFSOP
      INTEGER     NAMEX (40)
      EQUIVALENCE (STK (1, 1), NAMEX (1))

==== ercs07/emas-2900/pffiles_eput.txt ====
{
  History
  -------

 17/10/85 - new proc ecall					
 21/10 85 - new proc epasop
 06/02/86 - new procedures egjump, estkpf, eprefer, epsave, etrap

                                                                    }

procedure estklit(Val:integer);
extern;

procedure estkdir(Area:DataArea; Offset,Adid,Bytes:integer);
extern;

procedure estkind(Area:DataArea; Offset,Adid,Bytes:integer);
extern;

procedure erefer(Offset,Bytes:integer);
extern;

==== ercs07/emas-2900/lpds_muxdemlst.txt ====
 PAGE    1         FRAME MULTIPLEX & DEMULTIPLEX                        MOS LOG
S (2.0G) 16-FEB-79       13:32:19
    2         0000 ''TITLE,MUXDEMUX
    3         0000 ''LIST
    4         0000  //***************************************************
    5         0000  //
    6         0000  //DESCRIPTION:SAMPLE INTRANODAL MULTIPLEXING AND DE-
    7         0000  //MULTIPLEXING PROGRAMS.
    8         0000  //
    9         0000  //LOCATION:MUXDEMUX.LOS
   10         0000  //
   11         0000  //DATE:NOVEMBER 9, 1978
   12         0000  //
   13         0000
 PAGE    2         FRAME MULTIPLEX & DEMULTIPLEX                        MOS LOG
S (2.0G) 16-FEB-79       13:32:20
   15         0000  //********************************
   16         0000  //*  *
   17         0000  //*     POINTER BLOCK FORMAT     *
   18         0000  //*  *
   19         0000  //********************************

==== ercs07/emas-2900/oldctld5s.txt ====
module f77ctl;

exports
imports impprocs from impprocs;
imports system from system;
imports stack from stack;
imports except from except;
imports memory from memory;
imports filesystem from filesystem;
imports runread from runread;
imports screen from screen;
imports stream from stream;

const {$Include acb.dfs}
      {$Include rd.dfs}
      {$Include except.dfs}

type pcharar=^charar;
     charar=packed array[0..511] of char;
     mybuf=record case integer of
                    1:(s:psegblock);

==== ercs07/emas-2900/testpd_testfs.txt ====

'HEAD'   TEST STRAN SOURCE FILE
      'OUTFILE' CTYPEFTM.FR
      INTEGER FUNCTION CTYPE (ICHAR)
      INTEGER ICHAR
      'IF' (ICHAR .GE. CHAR0 .AND. ICHAR .LE. CHAR9)
         CTYPE = DIGIT
         'ELSE'
         'IF' (ICHAR .GE. CHARA .AND. ICHAR .LE. CHARZ)
            CTYPE = LETTER
            'ELSE'
            CTYPE = ICHAR
            'ENDIF'
         'ENDIF'
      RETURN
      END
      'OUTFILE' LSTARTFTM.FR
      SUBROUTINE LSTART
      'IF' (OUTPTR .GT. 7)
         CALL PUTC (EOL)
         'ENDIF'

==== ercs07/emas-2900/slogosorg_gendoafs.txt ====
'HEAD'  BASE LEVEL CODE GENERATION
C     EDIT DATE   05FEB79  14:13
C     SOURCE FILE GENDOAJH.FS
C     AUTHOR      A. J. HOWARD
C     CLUSTER     19
      'OUTFILE'   GENDOAJH.FR
      SUBROUTINE  GENDO
      'INCLUDE'   NLISTCFTM.IN,
      'INCLUDE'   REGSJHP.IN,
      'INCLUDE'   RMCODES.IN,
      'INCLUDE'   STKDEFA.IN,
      'INCLUDE'   STKDEFB.IN,
      'INCLUDE'   STKDEFE.IN,
      'INCLUDE'   STKDEFF.IN,
      'INCLUDE'   WFLAGSJHP.IN,
      'INCLUDE'   GENCOMAJH.IN,
      INTEGER     OPTS,   WFTS,   BIASTS, TSUBX
      INTEGER     DUMMY,  TSUBXB, TSUBOP, TWFSOP
      INTEGER     NAMXTS
      INTEGER     MAGIC (28)
      INTEGER     NLOPS

==== ercs07/emas-2900/bscmast30_bscfile30.txt ====
!*
!/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
!
! DOCUMENTATION FOR THIS FILE HANDLING PACKAGE IS:-
!      "FILEHANDLING PACKAGE FOR BASIC ON EMAS"
!           LESLEY BREWIN    FEBRUARY 1979
!
!/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
!
!******************************************************************
!*
!*                         EXTERNAL REFERENCES
!*
!******************************************************************
!
%EXTERNALROUTINESPEC ABANDON(%INTEGER OPTION,%STRING(120) MSG)
%EXTERNALINTEGERFNSPEC INSTREAM
%EXTERNALINTEGERFNSPEC OUTSTREAM
%EXTERNALROUTINESPEC DEFINE(%STRING(255) PARMS)
%SYSTEMROUTINESPEC DESTROY(%STRING(31) FILENAME,%INTEGERNAME FLAG)
%EXTERNALINTEGERFNSPEC EXIST(%STRING(31) S)

==== ercs07/emas-2900/slinksorg_ntablein.txt ====
C     EDIT DATE   16JAN79  15:20
C     SOURCE FILE NTABLEGAK.IN
C     AUTHOR      GARY A. KUDIS
C     GLOBAL NAME TABLE
C
C     EACH ENTRY HAS THE FOLLOWING DATA ITEMS :
C        NFLAGS :: BIT STATUSES PER ENTRY
C        NADDRS :: ADDRESS OF THE ENTRY
C        NPOSIT :: CURRENT LOAD ADDRESS WITHIN A GROUP
C        NDATA  :: AREA DEFINITION SIZE
C        NTEXTX :: INDEX INTO NAME TEXT ARRAY (NTEXT)
C
C        HERE 'NFLAGS' HAS THE FOLLOWING BIT DEFINITIONS :
C           0-3 :: NUMBER OF WORDS IN TEXT NAME
C             4 :: = 1 = USED ENTRY SLOT        'USEBIT'
C             5 :: = 1 = COMMON NAME AREA       'COMBIT'
C             6 :: = 1 = OVERLAY ID             'OVLBIT'
C             7 :: = 1 = ENTRY POINT DEFINITION 'EPTBIT'
C             8 :: = 1 = LOAD MODULE ON 2ND PASS'LDMBIT'
C             9 :: = 1 = MODULE NAME ENTRY      'MODBIT'
C            10 :: = 1 = MULTIPLE ENTRY         'MLTBIT'

==== ercs07/emas-2900/dsa20_realio.txt ====
%RANGECHECKS=NO
%CHARCODE=EBCDIC
%DIAGLINEMAP=NO
%DIAGNAMETABLE=NO
PROGRAM ICL9LPREALIO ;
 
 
CONST
   MINDECIMALEXPONENT = -79 ;
   MAXDECIMALEXPONENT = 76 ;
   MAXNOOFDIGITS = 17 ;
   MINBINARYEXPONENT = -259 ;
   MAXBINARYEXPONENT = 252 ;
   MAXSIGFIGS = 16 ;
   MAXTENPOWER = 75 ;
   REALLENGTH = 63 ;
 
 
TYPE
   ONEORTWO = 1 .. 2 ;
   DIGITSINDEX = 0 .. MAXNOOFDIGITS ;

==== ercs07/emas-2900/slogos_lccontfs.txt ====
'HEAD'  LOCATION COUNTER CONTROL
C     EDIT DATE   10DEC78  19:03
C     SOURCE FILE LCCONTFTM.FS
C     AUTHOR      A. J. HOWARD
C     CLUSTER     16
      'OUTFILE' RLCIFTM.FR
C     SUBROUTINE RLCI
C
C     RESETS THE LOCATION COUNTER INDEX TO THE NEW VALUE IF
C     THE NEW VALUE AND OLD VALUE ARE NOT THE SAME.
C
      SUBROUTINE RLCI (NEWLCI)
      'INCLUDE' LOGOSAJH.IN,
      'INCLUDE' WFLAGSJHP.IN,
      'INCLUDE' LCFUNCAJH.IN,
      'INCLUDE' LCONSTAJH.IN,
      'INCLUDE' LISTCMAJH.IN,
      INTEGER NEWLCI
      'IF' (NEWLCI .NE. LCI)
         IF (LENTER) ^
            CALL LIST (LMOVEP, 0, 0)

==== ercs07/emas-2900/npc2_ctlstructs.txt ====
{

                          MODULE 23


                      Control Structures





 This chapter implements the interface procedures for  the  genera-
 tion of control structures as defined in Section 5.1O.

 22.1  Code Labels and Jumps

 The representation of code labels, the nature of jump instructions
 on the P-machine, and the fix-up mechanism used for forward jumps,
 were defined in Chapter 18.  Using these, the interface procedures
 that  bind  code  labels  to corresponding points in the generated
 code stream, and generate the conditional and unconditional  jumps

==== ercs07/emas-2900/rel5_gen25.txt ====
!* MODIFIED 01/07/82
!*************  IMP80 version  ******************
!*
!{2900C}%CONSTINTEGER W2=4
{PERQC}%CONSTINTEGER W2=2
!{2900C} %CONSTINTEGER W4=8
{PERQC} %CONSTINTEGER W4=4
!*
!**** SYNTAX ****
!*
!* Syntax tables generated from file SYNTAX48 on 28/01/82 at 23.55.35
!*
%CONSTBYTEINTEGERARRAY OS(0:1500)=  %C                     
   0,   0,  34,   1,   1,   2,  25,   1,   1,   3,
  10,   7,   2,   3,  29,  61,   0,  91,  92,   0,
  13,   1,   0,   1,   3,  20,   4,   1,   2,   1,
   4,  17,   1,   1,   0,   1,   2,  20,   4,   1,
   1,   1,   3,  17,   0,   1,   2,  87,   0,   1,
   1,   0,   1,   3,  20,   5,   1,   2,   1,   4,
  17,   1,   1,   0,   1,   2,  20,   5,   1,   1,
   1,   3,  17,   0,   1,   2,   1,   3,  17,   1,

==== ercs07/emas-2900/inpds_faultsin.txt ====
C     EDIT DATE   30AUG78  13:43
C     SOURCE FILE FAULTSFTM.IN
C     AUTHOR      F. T. MICKEY
C     CLUSTER     X
      INTEGER     EXFLT,   FLTNR
      COMMON      /FLTS/   EXFLT,   FLTNR


==== ercs07/emas-2900/lpds_fldefslo.txt ====
''HEAD, FLX DEFAULT DEFINITIONS
     // EDIT DATE   06OFL78  15:00
     // SOURCE FILE FLXDEFS.LO
     // AUTHOR      A. J. HOWARD
     // DEFAULT FLX DEFINITIONS ALLOCATED TO 'ZREL'
     'ZREL' 'LBR'
        FL0: FL0 [2],
        FL1: FL1 [2],
        FL2: FL2 [2],
        FL3: FL3 [2],
        FL4: FL4 [2],
        FL5: FL5 [2],
        'RBR'
 ;
 ;DEFAULT FLX:
     .....
''END


==== ercs07/emas-2900/slogof_reorgafr.txt ====
    
      SUBROUTINE  REORG 
    
      INTEGER  AREAID (15), BCARD (41)  
      INTEGER  RWORD1, RWORD2, RWORD3, RWORD (3)
      INTEGER  BTYPE
      INTEGER  EXTDX, ERRFLG
      INTEGER  NEWLCI   
      INTEGER  OFFSET, OW   
      INTEGER  RBITS, RCT   
      INTEGER  TWI  
      INTEGER  WF   
      COMMON   /OBJCOM/ AREAID, BCARD, RWORD
      COMMON   /OBJCOM/ BTYPE   
      COMMON   /OBJCOM/ EXTDX   
      COMMON   /OBJCOM/ OFFSET, OW  
      COMMON   /OBJCOM/ RBITS   
      COMMON   /OBJCOM/ TWI 
      COMMON   /OBJCOM/ WF  
      EQUIVALENCE (RWORD1, RWORD (1))   
      EQUIVALENCE (RWORD2, RWORD (2))   

==== ercs07/emas-2900/irout27s.txt ====
!* MODIFIED 10/08/78 AGK   (ADDED MLIBERR ROUTINE)
!* MODIFIED 20/02/78 ERROR MESSAGE VALUES
!* MODIFIED 29/09/78 LCG TO REMOVE MLIBERR
!* MODIFIED 17/2/77  LAB   (APPENDED SQ & DA FILE ROUTINES AND
!                           DATE AND TIME ROUTINES FOR IMP AND FORTE)
!* MODIFIED  16/12/76  GEM (RANDOM)
%SYSTEMROUTINESPEC MLIBERR(%INTEGER ERROR)
%SYSTEMROUTINESPEC IOCP(%INTEGER EP,N)
!******** MODIFIED 02:07:76 15.15  LCG    (ALGLRTS,MATHFNS CONCATONATED
!                                         ,COMPLEX ROUTINES
!                                         & DUPLICATES FOR FORTRAN)
%SYSTEMLONGREALFNSPEC ISIN(%LONGREAL X)
%SYSTEMLONGREALFNSPEC ICOS(%LONGREAL X)
%SYSTEMLONGREALFNSPEC IEXP(%LONGREAL X)
%SYSTEMLONGREALFNSPEC ISQRT(%LONGREAL X)
%SYSTEMLONGREALFNSPEC ILOG(%LONGREAL X)
%CONSTLONGREAL LOG10A=2.3025850929940456840179914546843642076011
%OWNLONGREAL PI=3.141592653589793238462643
%CONSTLONGREAL R1=R'41C98867F42983DF'
%CONSTLONGREAL R2=R'C2562FB2813C6014'
%CONSTLONGREAL R3=R'C1146D547FED8A3D'

==== ercs07/emas-2900/pt_bigdata.txt ====
"MONDAYS TO SATURDAYS"
"EDINBURGH" "PETERBOROUGH"
00.08 05.47
08.15 12.20
14.15 18.24
16.15 20.19
17.00 21.27
20.20 03.19
22.30 04.16
23.15 04.56
*
"MONDAYS TO SATURDAYS"
"EDINBURGH" "LONDON(KX)"
00.08 07.14
07.15 12.13
08.15 13.12
09.15 14.13
10.15 14.56
11.15 16.11
12.15 17.07
12.50 17.46

==== ercs07/emas-2900/slogof_crudatfr.txt ====
 
      BLOCK DATA 
 
      INTEGER  GROUP1 
      INTEGER  IMPLID 
      INTEGER  NGROUP 
      INTEGER  NIMPLI 
      INTEGER  NOTHER 
      INTEGER  NRELTI 
      INTEGER  OTHERS 
      INTEGER  RELTIV 
      INTEGER  STAX 
      INTEGER  CSOW 
      INTEGER  CSWFA 
      INTEGER  CSOFF 
      INTEGER  CSNLX 
      INTEGER  CSWFB 
      COMMON   /CRUCH/  GROUP1 (24) 
      COMMON   /CRUCH/  IMPLID (75) 
      COMMON   /CRUCH/  NGROUP 
      COMMON   /CRUCH/  NIMPLI 

==== ercs07/emas-2900/pt_margtest.txt ====
PROGRAM MARGTEST(INPUT,OUTPUT);
VAR I,J:INTEGER;
%RHMARGIN 20
BEGIN
READ(J);               WRITELN('I HOPE THIS IS IGNORED');
%RHMARGIN 50
WRITELN('J=',J);   WRITELN('THIS WONT BE IGNORED');
END.

==== ercs07/emas-2900/dsea20_libnucfinal.txt ====
T/CONST/
TS/DETPWDVC/ T+1
I/  DETPLWDVC = ?I 30000000;///
TS/EHIMPERROR/
I/  EHPASSYSERR = 1500;///
R/1900/10000/
TS/(* GENERAL VALUES/
I/  (* CDIAG PARAMETER VALUES *)
  EHCTMINOP = 0;
  EHCTHEXDUMP = 1;
  EHCTHLDUMP = 2;
  EHCTMACVALUES = 10;
  EHCTMINOPMAC = 10;
  EHCTHEXDUMPMAC = 11;
  EHCTHLDUMPMAC = 12;
 
/
TS/LOGCTDIAGTYPE/ R/4/5/
T/TYPE/
TS/EHDOCNMESSTYPE/
T+4 R/);/,//     MAINPROGBLKMESS, CODEAREAMESS, PASSUPSWERRMESS);/

==== ercs07/emas-2900/slogof_opinxdfr.txt ====
 
      BLOCK DATA 
 
      INTEGER  ADCINX 
      INTEGER  ANDINX 
      INTEGER  ASLINX 
      INTEGER  BITINX 
      INTEGER  CMPINX 
      INTEGER  CPXINX 
      INTEGER  CPYINX 
      INTEGER  DECINX 
      INTEGER  EORINX 
      INTEGER  INCINX 
      INTEGER  JMPINX 
      INTEGER  JSRINX 
      INTEGER  LDAINX 
      INTEGER  LDXINX 
      INTEGER  LDYINX 
      INTEGER  LSRINX 
      INTEGER  ORAINX 
      INTEGER  ROLINX 

==== ercs07/emas-2900/ecodelist_test2bl.txt ====
Einitialise 
Enextproc 
Edataentry  A    2   16    4
Edataentry  B    2   20    4
Eproc ONE    0    0
 Elinestart ++++++++++++++++++++++    7
 Elinestart ++++++++++++++++++++++    8
Estklit       -3
Estkaddr   Gla     + 16      4    A
Eop    ESTORE
 0 0 0
Estack:
 2:AddrDir       Gla     +   16  size: 4
 1:LitVal           -3  size: 4
Ed4   Consts  + 56    FFFFFFFD
 Elinestart ++++++++++++++++++++++    9
Estkglobal  2 4      4    REC1
Estkdir   Gla     + 16      4    A
Eop    IMULT
 0 0 0
Estack:

==== ercs07/emas-2900/slinksorg_finishfs.txt ====
'HEAD'  LINKER, FINISH UP
C     EDIT DATE   10JAN79  09:53
C     SOURCE FILE FINISHGAK.FS
C     AUTHOR      GARY A. KUDIS
C     CLUSTER     7
      'OUTFILE' FINISHGAK.FR
      SUBROUTINE FINISH
      'INCLUDE' IODEFNGAK.IN,
C FINISH ::
X     WRITE (DBCHAN, 1)
X1    FORMAT (' ENTER FINISH')
      CALL CLOSF (CMCHAN, ECODE)
      IF (ECODE.NE.1) CALL ERROR (3)
      CALL CLOSF (OBCHAN, ECODE)
      IF (ECODE.NE.1) CALL ERROR (3)
N     CALL CLOSF (MPCHAN, ECODE)
N     IF (ECODE.NE.1) CALL ERROR (3)
P     CALL SPOOL (MPCHAN, ECODE)
X     WRITE (DBCHAN, 2)
X2    FORMAT (' EXIT FINISH')
      RETURN

==== ercs07/emas-2900/pfctl1.txt ====
! 08/01/85 call F77ABORT instead of TABFAIL
    I=SAVIND
    SAVIND=SAVIND+W4
    %IF SAVIND>=COM_MAXANAL %THEN {TABFAIL("COM_SAVEANAL")} F77ABORT(5)
    SAVREC==RECORD(COM_SAVEANAL+I)
    SAVREC_PATH=PATH
    SAVREC_NUMCON=NUMCON
    SAVREC_ACON=ACON
    SAVREC_CURBL=CURBL

==== ercs07/emas-2900/ctms_ttyroute.txt ====
%EXTERNALINTEGERFN ROUTE(%LONGINTEGER ROUTE, %INTEGER OPERATION)
!
! Basic file route for STDAD.
!
! File route operation codes:
!
%CONSTINTEGER CREATE = 1, ASSIGN = 2, DELETE = 3, DEASSIGN = 4
%CONSTINTEGER CHOOSE RAM = 5
!
! File description parameter pair identifiers:
!
%CONSTINTEGER TEMP RAM = 141
!
%EXTERNALSTRINGFNSPEC ECTM DESC S(%LONGINTEGER ROUTE, %INTEGER ID)
%EXTERNALINTEGERFNSPEC ECTM DESC I(%LONGINTEGER ROUTE, %INTEGER ID)
%EXTERNALROUTINESPEC ECTM SET DESC I(%LONGINTEGER ROUTE,  %C
      %INTEGER ID, VALUE)
%EXTERNALINTEGERFNSPEC ECTM SET DESC S(%LONGINTEGER ROUTE,  %C
      %INTEGER ID, %STRING(255) VALUE)
!
%SWITCH CASE(1:5)

==== ercs07/emas-2900/slogos_stkdfbin.txt ====
C     EDIT DATE   03DEC78  11:45
C     SOURCE FILE STKDFB.IN
C     AUTHOR      A. J. HOWARD
      INTEGER     MODE (40),   SUBX (20),   SUBXM (20),  BIAS (40)
      EQUIVALENCE (STK (1, 3), MODE  (1))
      EQUIVALENCE (STK (1, 2), SUBX  (1))
      EQUIVALENCE (STK (1, 4), SUBXM (1))
      EQUIVALENCE (STK (1, 5), BIAS  (1))


==== ercs07/emas-2900/sforf_cparenf.txt ====
      SUBROUTINE CPAREN
      INTEGER  INPTR
      INTEGER  OUTPTR
      INTEGER  INMAX
      INTEGER  MAXTAB
      INTEGER  MAXLIN
      INTEGER  IFMAX
      INTEGER  MAXLEV
      INTEGER  LINENO
      INTEGER  PAGE
      INTEGER  CLINE
      INTEGER  TLIMIT
      INTEGER  LN
      INTEGER  I, J, K
      INTEGER  II, JJ, KK
      INTEGER  LEXVAL
      INTEGER  SLEN
      INTEGER  LEVEL
      INTEGER  LEN
      INTEGER  INCHAN
      INTEGER  OUTCHN

==== ercs07/emas-2900/inpds_bldpoain.txt ====
C     EDIT DATE   10MAR78  03:55
C     SOURCE FILE BLDPOAJH.IN
C     AUTHOR      A. J. HOWARD
      LOGICAL  MSEEN, SMSEEN, ZFLAG
      INTEGER  SMODE, TPFLAG, DEFMOD, LEVEL
      INTEGER  STOAC, OP
      COMMON   /BPO/ MSEEN, SMSEEN, ZFLAG
      COMMON   /BPO/ SMODE, TPFLAG, DEFMOD, LEVEL
      COMMON   /BPO/ STOAC, OP


==== ercs07/emas-2900/pptests_pptest1.txt ====


program ptest1;
{ test simple expression rearrangement }

  const
    zero = 0;
    one = 1;
    two = 2;
    bytelimit = 255;
    halflimit = 65535;

  type
    byte = 0 .. bytelimit;
    half = 0 .. halflimit;

  var
    b1,
    b2,
    b3: byte;
    h1,

==== ercs07/emas-2900/pffiles_dump.txt ====
procedure FlowPoint(SourceLine: Scalar);
  extern;

procedure FileAType(TheType: TypEntry);
  extern;

procedure FileId(Id, NextId: IdEntry);
  extern;

procedure InitDiagnostics;
  extern;

procedure EndDiagnostics;
  extern;

==== ercs07/emas-2900/hexdumpseg.txt ====
program prsegfile(inseg,input,output);
imports code from code;
type chrblock=packed array[0..511] of char;
var inseg:segfiletype;
    i,j,k:integer;
    byte:chrblock;
    objname,outname:fnstring;
{ *auto-}
begin
writeln('enter name of file to dump');
reset(input);
readln(objname);
writeln('enter name of dump file');
readln(outname);
reset(inseg,objname);
rewrite(output,outname);
write('modulename is ',inseg^.modulename);
writeln('  filename is ',inseg^.filename);
write('segblkfiller is ',inseg^.segblkfiller);
writeln('  qversion is ',inseg^.qversion);
write('numseg is ',inseg^.numseg);

==== ercs07/emas-2900/pptests_pptest2.txt ====


program pptest2;

  var
    a: array [0 .. 2] of integer;
    b: array [1 .. 2] of integer;
    c: array [-1 .. 2] of integer;
    d: array [32000 .. 32002] of integer;
    e,
    f: array [0 .. 2, 1 .. 2] of integer;
    i: integer;
    r1,
    r2: record
          firstfield: integer;
          secondfield: integer;
          a: array [0 .. 3] of
               record
                 firstfield: integer;
                 secondfield: integer
               end;

==== ercs07/emas-2900/mixedsrce_strsuba.txt ====
%PROCEDURE PASSTR(STR);
%VALUE STR;%STRING STR;
%BEGIN
PRINTSTRING(<ENTERING_ALGOL_PASSTR>);
NEWLINE;
PRINTSTRING(STR);
NEWLINE;
%END

==== ercs07/emas-2900/sforf_lstartf.txt ====
      SUBROUTINE LSTART
      INTEGER  INPTR
      INTEGER  OUTPTR
      INTEGER  INMAX
      INTEGER  MAXTAB
      INTEGER  MAXLIN
      INTEGER  IFMAX
      INTEGER  MAXLEV
      INTEGER  LINENO
      INTEGER  PAGE
      INTEGER  CLINE
      INTEGER  TLIMIT
      INTEGER  LN
      INTEGER  I, J, K
      INTEGER  II, JJ, KK
      INTEGER  LEXVAL
      INTEGER  SLEN
      INTEGER  LEVEL
      INTEGER  LEN
      INTEGER  INCHAN
      INTEGER  OUTCHN

==== ercs07/emas-2900/pptests_pptest3.txt ====


program pptest3;

  type
    pointer = ^arecord;
    arecord = record
                firstfield: pointer;
                secondfield: integer;
                a: array [1 .. 10] of pointer;
                p: pointer
              end;

  var
    p,
    q: pointer;
    i: integer;

  begin
  { basic operations }
    new(p);

==== ercs07/emas-2900/f77aux1.txt ====
!              
!                         EXPORT LIST
!
!
%ROUTINESPEC F77 STOP(%HALFINTEGER PTYPE,%INTEGER VAL)
%ROUTINESPEC F77 PAUSE (%HALFINTEGER PTYPE,%INTEGER VAL)
%ROUTINESPEC F77 RTERR(%HALFINTEGER ERRNO)
%ROUTINESPEC F77 IOERR(%HALFINTEGER ERRNO)
%ROUTINESPEC F77 CONCAT(%HALFINTEGER COUNT,%INTEGER ADRINDESCS,
OUTPUTBASE,%HALFINTEGER OUTPUTDISP,OUTPUTLEN)
%ROUTINESPEC F77COPY (%INTEGER SCE BASE,%HALFINTEGER SCE DISP,
SOURCE LEN,%INTEGER TARGET BASE,%HALFINTEGER TARGET DISP,TARGET LEN)
%INTEGERFNSPEC F77 INDEX (%INTEGER SEARCHBASE,
%HALFINTEGER SEARCHDISP,SEARCHLEN,%INTEGER KEYBASE,%HALFINTEGER KEYDISP,
KEYLEN)
%ROUTINESPEC F77 CMULTC(%INTEGER AD,%REAL R1,C1,R2,C2)
%ROUTINESPEC F77 CDIVC(%INTEGER AD,%REAL R1,C1,R2,C2)
%HALFINTEGERFNSPEC F77 CEQUC(%REAL R1,C1,R2,C2)
%HALFINTEGERFNSPEC F77 CNEQC(%REAL R1,C1,R2,C2)
%INTEGERFNSPEC F77 IABS(%INTEGERNAME I)
%REALFNSPEC F77 ABS(%REALNAME X)

==== ercs07/emas-2900/slogof_lcnstdfr.txt ====
 
      BLOCK DATA 
 
      INTEGER  LOWWF, LTLNA, LLPOOL, LLNAME, LMOVEP, LBSS 
      INTEGER  LEXEQU, LNLEQU 
      COMMON   /LCON/   LOWWF, LTLNA, LLPOOL, LLNAME, LMOVEP, LBSS 
      COMMON   /LCON/   LEXEQU, LNLEQU 
      DATA  LOWWF    / 1/ 
      DATA  LTLNA    / 2/ 
      DATA  LLPOOL   / 3/ 
      DATA  LLNAME   / 4/ 
      DATA  LMOVEP   / 5/ 
      DATA  LBSS     / 6/ 
      DATA  LEXEQU   / 7/ 
      DATA  LNLEQU   / 8/ 
      END 

==== ercs07/emas-2900/slogof_initbpfr.txt ====
    
      SUBROUTINE INITLO 
    
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      INTEGER     NEXT,   NUMBER, I,      IOTYPE
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT
      INTEGER ICLP05
      LOGICAL     ENDOK,CONEND  
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG   
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG  
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV  
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE  
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N   
      COMMON   /LOGOS/  PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE  

==== ercs07/emas-2900/slinks_linkerfs.txt ====
'HEAD'  LINKER FOR 6502 LOGOS
C     EDIT DATE   26JAN79  09:35
C     SOURCE FILE LINKERGAK.FS
C     AUTHOR      GARY A. KUDIS
C     CLUSTER     1
      'OUTFILE' LINKERGAK.FR
      PROGRAM LOLINK
      'INCLUDE' IODEFNGAK.IN,
      'INCLUDE' IOFILEGAK.IN,
N     EXTERNAL    OLPS0, OLPS1, OLPS2, OLPS3
C LINKER ::
X     CALL OPENN (DBCHAN, DBFILE, ECODE)
X     IF (ECODE.NE.1) STOP 99999
N     CALL OVOPN (OVCHAN, OVFILE)
N     CALL OVLOD (OLPS0)
      CALL INITLZ
X     WRITE (DBCHAN, 1)
X1    FORMAT (' LINKER INITIALIZATION COMPLETED')
      CALL ASKQES
X     WRITE (DBCHAN, 2)
X2    FORMAT (' LINKER ASK QUESTIONS COMPLETED')

==== ercs07/emas-2900/pptests_pptest4.txt ====


program pptest4;

  var
    i,
    j,
    k: integer;
    b: boolean;

  begin
  { basic operations }
    b := i = j;
    b := i <> j;
    b := i > j;
    b := i < j;
    b := i >= j;
    b := i <= j;

    { optimised zero operations }
    b := i = 0;

==== ercs07/emas-2900/slinks_darrayin.txt ====
C     EDIT DATE   08JUN78  08:00
C     SOURCE FILE DARRAYGAK.IN
C     AUTHOR      GARY A. KUDIS
C     DICTIONARY ARRAY
      INTEGER     DICT (400)
      INTEGER     ID, CID, DTSTRT, DTSTOP
      COMMON      /DARRAY/ DICT
      COMMON      /DARRAY/ ID, CID, DTSTRT, DTSTOP


==== ercs07/emas-2900/slogosorg_crucomin.txt ====
C     EDIT DATE   22MAR78  11:09
C     SOURCE FILE   CRUCOMJHP.IN
C     AUTHOR        J.H.PERINE
C     DEFINE OP CODE TABLES IN COMMON FOR CRUTCH & LIST
      INTEGER  GROUP1
      INTEGER  IMPLID
      INTEGER  NGROUP
      INTEGER  NIMPLI
      INTEGER  NOTHER
      INTEGER  NRELTI
      INTEGER  OTHERS
      INTEGER  RELTIV
      INTEGER  STAX
      INTEGER  CSOW
      INTEGER  CSWFA
      INTEGER  CSOFF
      INTEGER  CSNLX
      INTEGER  CSWFB
      COMMON   /CRUCH/  GROUP1 (24)
      COMMON   /CRUCH/  IMPLID (75)
      COMMON   /CRUCH/  NGROUP

==== ercs07/emas-2900/pptests_pptest5.txt ====



program pptest5;

  var
    s1,s2: packed array [1 .. 2] of char;
    s3,s4: packed array [1 .. 26] of char;
    i: integer;
    ch: char;
    b: boolean;

  begin
    s1 := 'AB';
    s3 := 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';

    { character extraction and insertion operations }

    ch := s1[1];
    ch := s1[i];
    s2[2] := ch;

==== ercs07/emas-2900/pptboot_sort.txt ====

==== ercs07/emas-2900/pptests_pptest6.txt ====


program pptest6;

  const base = 10;

  var
    i,j: integer;
    ch: char;
    b: boolean;
    a: array [1 .. 10] of integer;

  begin
  { simple operations }
    i := i + j;
    i := i - j;
    i := i mod j;
    i := i div j;
    i := i * j;

    { integer comparisons }

==== ercs07/emas-2900/pptests_pptest7.txt ====


program pptest7;

  var
    r,
    r1,
    r2: real;
    i: integer;
    b: boolean;
    a: array [1 .. 10] of real;

  begin
  { simple operations }
    r1 := r1 + r2;
    r1 := r1 - r2;
    r1 := r1 / r2;
    r1 := r1 * r2;

    { constant assignments }
    r1 := 0.0;

==== ercs07/emas-2900/mixedsrce_strsubf.txt ====
      SUBROUTINE PASSTR(ST)
      CHARACTER*28 STR,ST
      STR=ST
      WRITE(6,100)
  100 FORMAT(' ENTERING FORTRAN PASSTR')
      WRITE(6,200)STR
  200 FORMAT(1H ,A28)
      RETURN
      END

==== ercs07/emas-2900/pptecodes_sort.txt ====
Einitialise 
Enextproc  1
Eproc SORT    1    0    0
 Elinestart ++++++++++++++++++++++   14
 Elinestart ++++++++++++++++++++++   15
Estklit        1
Estkaddr   Gla     + 24      4    K
Eop    ESTORE
 0 0 0
Estack:
 2:AddrDir       Gla     +   24  size: 4
 1:LitVal            1  size: 4
Elabel    -3
Estkdir   Gla     + 24      4    K
Estkaddr   Gst     +-4      4    A
Estkdir   Gla     + 24      4    K
Eop    INDEX4
 0 0 0
Estack:
 3:DirVal        Gla     +   24  size: 4
 2:AddrDir       Gst     +   -4  size: 4

==== ercs07/emas-2900/pptests_pptest8.txt ====

program pptest8;
type
colour = (red,yellow,blue);
mix = set of colour;
charset = set of char;
var
s1,s2 : mix;
s3,s4 : charset;
s5 : set of 0 .. 239;
b : boolean;
c1,c2 : colour;
c3,c4 : char;

begin
{ set construction }
s1 := [];
s1 :=[red];
s1 :=[red .. blue];
s1 :=[blue .. red];
s1 :=[c1,c1 .. blue];

==== ercs07/emas-2900/rel10opt_oplistp45.txt ====
! 18/09/84 - insert switch for STFNID in GEN and delete array QUAL
! 10/07/84 new version of targetpnx_fptos
! 05/07/84 insert switch SW(INTRIN) in FORMLINE
! 03/07/84 make FPTOS a string function & put in an include file
!          set up string REG1 in targ_target & substitute for "reg-1"
!          remove OPVALS for LOADB & STOREB
!          define INTRINFNS to output new INTRIN fns
! 21/03/84 amend arrays SW, RTOL, ENDS, OPVALS. Delete ST & SZTY & REG
! 19/03/84 add in ADICT on calls to FPTOS
! 08/03/84 change INTEGER mapping increments to W1 etc.
! 28/02/84 FPTOS inserted
! 01/10/1/83 copied from ERCS06.REL90_OPLISTB36
!*
%CONSTINTEGER OPSYS=1
!   =0  (Emas ISO)
!   =1  (VME  EBCDIC)
!*
%INCLUDE "host_host"
!*
%INCLUDE "targ_target"
!*

==== ercs07/emas-2900/qfiles_init8.txt ====
module f77init;

{ updated 21/3/82 - function openfile defined }

exports
imports filedefs from filedefs;
imports filesystem from filesystem;
imports fileutils from fileutils;
imports memory from memory;
imports clock from clock;
imports filedir from filedir;


type buff84=packed array[1..84] of char;

procedure unsatref;
procedure initmain;
procedure INITGLA;
function iocp(ep,off,seg:integer):integer;
procedure stop;
procedure iwrite(val,place:long);

==== ercs07/emas-2900/bench_bench1.txt ====
C
C
      PROGRAM BNCH1
C
C  VAX750 RESULTS:
C
C  Process time        =   29780 msec.
C  Proc. CPU time      =   29590 msec.
C  Process Page faults = 47
C  Buffered I/O count  = 10
C  Direct I/O count    = 1
C  Working set peak    = 42
C  Page fault peak     = 0
C  Total elapsed time  =   30190 msec.
C  Creat CPU time      =     220 msec.
C  Creat page faults   = 55
C  Buffered I/O count  = 5
C  Direct I/O count    = 2
C
C
C

==== ercs07/emas-2900/pptests_pptest9.txt ====


program pptest9;

  type
    bit = 0 .. 1;
    fourbits = packed
                 record
                   onebit: bit;
                   twobits: packed array [bit] of bit;
                   anotherbit: bit
                 end;
    eightbits = (b1, b2, b3, b4, b5, b6, b7, b8);

  var
    a1: packed array [1 .. 10] of 0 .. 127; { 7 bits }
    r: fourbits;
    a2: packed array [1 .. 40] of fourbits;
    a3: packed
          record
            i: -1 .. 1;

==== ercs07/emas-2900/slinksorg_stacksin.txt ====
C     EDIT DATE   25MAY78  08:56
C     SOURCE FILE STACKSGAK.IN
C     AUTHOR      GARY A. KUDIS
C     LINKER STACK AREAS
      INTEGER     MSTACK(30), MX, MSTKSZ
      COMMON      /STACKS/ MSTACK, MX, MSTKSZ


==== ercs07/emas-2900/slogos_srcdfsin.txt ====
C     EDIT DATE   19AUG78  07:51
C     SOURCE FILE   SRCDFSFTM.IN
C     AUTHOR        F. T. MICKEY
C     DATA DEFINITIONS FOR SOURCEFTM.ST
      INTEGER  QUOTEX ///// NOT USED
      INTEGER  CONTF
      INTEGER  CONTRL
      INTEGER  HEAD
      INTEGER  EJECT
      INTEGER  BLANK
      INTEGER  SLASH
      INTEGER  CARDC
      INTEGER  FLINCT (8)
      INTEGER  EOCC
      INTEGER  ENDCRD (3)
      INTEGER  RECORD (66)
      INTEGER  RECPTR
      INTEGER  SOURCE (150)
      INTEGER  SRCEND
      INTEGER  SLEN
      INTEGER  TF (3)

==== ercs07/emas-2900/ecodelist_test2cl.txt ====
Einitialise 
Enextproc 
Edataref  A    2   16    4
Edataref  B    2   20    4
Eproc ONE    0    0
 Elinestart ++++++++++++++++++++++    6
 Elinestart ++++++++++++++++++++++    7
Estklit       -3
Estkdir   Gla     + 16      4    A
Erefer    0      0
Eop    EADDRESS
 0 0 0
Estack:
 2:IndDirVal     Gla     +   16  size: 0
 1:LitVal           -3  size: 4
Eop    ESTORE
 0 0 0
Estack:
 2:DirAddr       Gla     +   16  size: 4
 1:LitVal           -3  size: 4
Ed4   Consts  + 56    FFFFFFFD

==== ercs07/emas-2900/slogof_nlscanfr.txt ====
    
      SUBROUTINE NLSCAN (PROG, INDEX)   
    
      INTEGER  NI,     NJ,     NK   
      INTEGER  NSIZE
      INTEGER  NLX,    FNLX,   REMNLX, OVNLX,  TNAME
      INTEGER  NLSTRT, NLSTOP, NLSIZE, SRCHST   
      INTEGER  NTSTRT   
      INTEGER  NTSTOP   
      INTEGER  NTSIZE   
      INTEGER  PARFLG   
      INTEGER  SPARFL   
      INTEGER  NLWRDS   
      INTEGER  TX   
      INTEGER  NLENO
      INTEGER  STDMD
      INTEGER  MSHIFT   
      INTEGER  REGCNT   
      INTEGER  NULLX
      INTEGER  STPTRX   
      INTEGER  SPMODE   

==== ercs07/emas-2900/qfiles_init9.txt ====
module f77init;

{ updated 21/3/82 - function openfile defined }
{ updated 23/4/82 - real underflow dealt with in handler all }
{                   procedure movebee inserted }

exports
imports filedefs from filedefs;
imports filesystem from filesystem;
imports fileutils from fileutils;
imports memory from memory;
imports clock from clock;
imports filedir from filedir;


type buff84=packed array[1..84] of char;

procedure unsatref;
procedure initmain;
procedure INITGLA;
function iocp(ep,off,seg:integer):integer;

==== ercs07/emas-2900/mixedsrce_strsubi.txt ====
%EXTERNALROUTINE PASSTR(%STRING(28) STR)
PRINTSTRING('ENTERING IMP PASSTR')
NEWLINE
PRINTSTRING(STR)
NEWLINE
%END
%ENDOFFILE

==== ercs07/emas-2900/inpds_ctrlajin.txt ====
C     EDIT DATE   09OCT78  11:12
C     SOURCE FILE   CTRLAJH.IN
C     AUTHOR        A. J. HOWARD
C     CLUSTER       80
C     COMPILER CONTROL DIRECTIVE FLAGS
C
C
C     LISTF    EXPLODED LISTING        ''LIST
C     SNLPRT   SHORT NAME LIST PRINT   ''SHORT
C     SUMPRT   SUMMARY PRINT           ''SUMMARY
C     SYMFLG   SYMBOLS INCLUDED IN OBJECT
C                                      ''SYMBOLS
      INTEGER     LISTF,  SNLPRT, SUMPRT, SYMFLG
      INTEGER     PRINTF, SKIP,   COMPFL (2)
      INTEGER     LOCPRT, USFLGS, NEGFLG, SKNAME (8)
      INTEGER     ORGFLG, CTLUSE, CTLERR, TTL (8)
      INTEGER     DUMFLG
      COMMON      /CTLCOM/    LISTF,  SNLPRT, SUMPRT, SYMFLG
      COMMON      /CTLCOM/    PRINTF, SKIP,   COMPFL
      COMMON      /CTLCOM/    LOCPRT, USFLGS, NEGFLG, SKNAME
      COMMON      /CTLCOM/    ORGFLG, CTLUSE, CTLERR, TTL

==== ercs07/emas-2900/pptecodes_pptest1a.txt ====
Einitialise 
Enextproc  1
Eproc PTEST1    1    0    0
EXname  p_presetf    2    0    0
Eprecall     2
Estkaddr   Gst     + 0      4
Eop    PUSHVAL
 0 0 0
Estack:
 1:AddrDir       Gst     +    0  size: 4
Estklit        1
Eop    PUSHVAL
 0 0 0
Estack:
 1:LitVal            1  size: 4
Ecall        2      2    8
EXname  p_bindf    3    0    0
Eprecall     3
Estkaddr   Gst     + 0      4    OUTPUT
Eop    PUSHVAL
 0 0 0

==== ercs07/emas-2900/slogof_rdnumffr.txt ====
 
      SUBROUTINE  RDNUM 
      INTEGER     TS 
 
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG 
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV 
      INTEGER     NEXT,   NUMBER, I,      IOTYPE 
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE 
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP 
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT 
      INTEGER ICLP05 
      LOGICAL     ENDOK,CONEND 
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG 
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV 
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE 
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N 

==== ercs07/emas-2900/inpds_levelsin.txt ====
C     EDIT DATE   19FEB78  11:18
C     SOURCE FILE LEVELSAJH.IN
C     AUTHOR      A. J. HOWARD
      INTEGER  LEVELB, NLEVEL, LLEVEL, ILEVEL, CLEVEL
      COMMON   /LEVELS/ LEVELB, NLEVEL, LLEVEL, ILEVEL, CLEVEL


==== ercs07/emas-2900/bench_bench5.txt ====
c
c
c  THIS PROGRAM TESTS FOR SUPPORT OF 1024 BYTE RECORD UNFORMATTED
C  I/O.
C
      INTEGER BUFFER(256)
      OPEN(UNIT=1,FORM='UNFORMATTED',ACCESS='DIRECT',STATUS='NEW',
     .     FILE='DIRECTIO',
     .     RECL=1024)
      DO 1 I = 1,256
      BUFFER(I) = 0
1     CONTINUE
      DO 2 I = 1, 100
      BUFFER(I) = I
      WRITE(1,REC=I) BUFFER
2     CONTINUE
      DO 3 I = 1, 100
      J = 100+1 -I
      READ(1,REC=J) BUFFER
      IF (BUFFER(J) .NE. J) THEN
      PRINT *, ' ERROR ON READ. J=',J,' BUFFER(J)= ',BUFFER(J)

==== ercs07/emas-2900/pptboot_test1a.txt ====

==== ercs07/emas-2900/sforf_initf.txt ====
      SUBROUTINE INIT
      INTEGER  INPTR
      INTEGER  OUTPTR
      INTEGER  INMAX
      INTEGER  MAXTAB
      INTEGER  MAXLIN
      INTEGER  IFMAX
      INTEGER  MAXLEV
      INTEGER  LINENO
      INTEGER  PAGE
      INTEGER  CLINE
      INTEGER  TLIMIT
      INTEGER  LN
      INTEGER  I, J, K
      INTEGER  II, JJ, KK
      INTEGER  LEXVAL
      INTEGER  SLEN
      INTEGER  LEVEL
      INTEGER  LEN
      INTEGER  INCHAN
      INTEGER  OUTCHN

==== ercs07/emas-2900/npcpf_pfstat.txt ====
procedure StartManuals(var List: ManualList);
extern;

procedure OpenStackFrame;
extern;

procedure CloseStackframe;
extern;

procedure SaveStackFrame;
extern;
 
procedure ReclaimStackFrame;
extern;

procedure InitFrames;
extern;

procedure Acquire(Amount: WordRange; var Address: RuntimeAddress);
extern;


==== ercs07/emas-2900/bench_bench6.txt ====
c
c
c  THIS PROGRAM TESTS FOR SUPPORT OF 1024 BYTE RECORD UNFORMATTED
C  I/O.
C
      character*80 filnam,intfil
      INTEGER BUFFER(256)
C
C GENERATE NAMES FOR AND OPEN 10 DIRECT I/O FILES.
C
      DO 10 I = 10,19
      write(intfil,2000) i
2000  format('DIRT',i2)
      read(intfil,fmt='(A)') filnam
      OPEN(UNIT=I,FORM='UNFORMATTED',ACCESS='DIRECT',STATUS='NEW',
     .     FILE=FILNAM,
     .     RECL=1024)
10    CONTINUE
C
C ZERO THE BUFFER.
C

==== ercs07/emas-2900/slogof_fmsgdafr.txt ====
    
      BLOCK DATA
    
      INTEGER     MSGS(16,100)  
      INTEGER     MSG01(16,10)  
      INTEGER     MSG11(16,10)  
      INTEGER     MSG21(16,10)  
      INTEGER     MSG31(16,10)  
      INTEGER     MSG41(16,10)  
      INTEGER     MSG51(16,10)  
      INTEGER     MSG61(16,10)  
      INTEGER     MSG71(16,10)  
      INTEGER     MSG81(16,10)  
      COMMON      /FLTMSG/ MSGS 
      EQUIVALENCE (MSGS(1, 1),MSG01(1,1))   
      EQUIVALENCE (MSGS(1,11),MSG11(1,1))   
      EQUIVALENCE (MSGS(1,21),MSG21(1,1))   
      EQUIVALENCE (MSGS(1,31),MSG31(1,1))   
      EQUIVALENCE (MSGS(1,41),MSG41(1,1))   
      EQUIVALENCE (MSGS(1,51),MSG51(1,1))   
      EQUIVALENCE (MSGS(1,61),MSG61(1,1))   

==== ercs07/emas-2900/upr449.txt ====
      BLOCK DATA
C
C
C   BLOCK DATA AND
C   MAIN ROUTINE FOR STEADY STATE EDDY CURRENT PROGRAM
C
C   CONTAINS DIMENSIONS OF ALL COMMON BLOCKS
C
      DOUBLE PRECISION RS,T,WC,W,R
      INTEGER IRN,ITEST,NELD,MATE,IRNU
      COMMON/GENER/MGEN,ISOLN,NV,IVAL(50),AVAL(50)
      COMMON/INPUT$/IER,ICONT,NCHMAX,ICP,IPRINT,KLP,IGOTO
      COMMON/FEXT/HXEXT,HYEXT,FREQ
C   COMMON/INT/ CONTAINS SPACE FOR MATRIX AND LU DECOMPOSITION
      COMMON/INT/RS(6000,6,2)
C   COMMON/INT1/ CONTAINS SPACE FOR ROW NUMBER TABLES OF
C                MATRIX AND LU DECOMPOSITION
      COMMON/INT1/IRN(6000,6)
C   COMMON/INT2/ CONTAINS SPACE FOR RHS VECTOR/ SOLUTION VECTOR
      COMMON/INT2/T(6000,2)
C   COMMON/INT3/ CONTAINS SPACE FOR DIAGONAL POINTERS OF

==== ercs07/emas-2900/bench_bench7.txt ====
      IMPLICIT INTEGER (A-P)
      IMPLICIT INTEGER (Q-Z)
      COMMON MEM(32000)
      DO 1 I=1,32000
      MEM(I)=I
1     CONTINUE
      DO 2 I = 1,32000
      IF (MEM(I) .NE. I) THEN
          PRINT *,' ERROR IN MEM INIT. I= ',I,
     .           ' , MEM(I)= ',MEM(I)
      ENDIF
2     CONTINUE
      CALL SIMF
      STOP
      END
      SUBROUTINE SIMF
      IMPLICIT INTEGER (A-Z)
      COMMON MEM(32000)
      COMMON /TQ/ TQ(256)
      DATA UPDATE/100000/
      DATA MEMSIZ/32000/

==== ercs07/emas-2900/boot3b.txt ====
 1 14 56 28134 28124 0 50 1 51 3IN3 131072 0 0 34708 2 5 8 5 9 13 3 25 2 16 792 4 56 184 5 10 28-3 52 12 0 4 51 5THREE 65536 1 4 34564 3 5 12 5 13 13 2 25 2 20 796 4 56 184 5 14 45 2 46 2 0 0 5 15 15 2 16 792 4 27 2 0 812 4 56 184 5 16 28-2 52 4 0 0 60 28 51 5TEST3 65538 0 0 34308 1 5 18 5 19 45 3 15 2 24 800 4 56 186 46 3 1 4 5 20 28-1 52 0 0 0 2 0 28 0 0 0 0 0 0 0 0

==== ercs07/emas-2900/pcfiles_ctlstruct5.txt ====
{

 History
 -------

 12/09/85 - change procedure Jump to procedure JumpAbs.
 25/09/85 - include eput.pf, new procedure InitPlabels,
            define FutureCodeLabel & NxIsCodeLabel.
 04/11/85 - change calls of AccessArea and AddressArea to
            match new parameter lists. (agh)
 05/11/85 - add e-code calls supporting for-statements and
            statement-labels. (agh)
 15/11/85 - add EmitCondition to emit short-circuit code for
            compound-Boolean conditions. (agh)
 15/11/85 - implement case-statement with label-ranges and
            otherwise clause. (agh)
 18/11/85 - add warning(5) indicating case-limbs that can
            never be executed. (agh)
 26/11/85 - extend case-statement implementation to permit
            word-valued labels. (agh)
 26/11/85 - extend for-statement implementation to permit

==== ercs07/emas-2900/bench_bench8.txt ====
C
C
      PROGRAM BNCH8
C
C  VAX750 RESULTS:
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
      CHARACTER A

==== ercs07/emas-2900/perqrel3_qput5.txt ====
!MAY 26 - VSN 5   F77 1.3
!         MODULE NAMES ARE CONVERTED TO UPPER CASE
! MAY 25 - COMMON NAMES TRUNCATED TO 8 FOR LOADER TABLE.
!         VERSION STRING PADDED TO 80 FOR PATCHER
%CONSTINTEGER EMAS=0,PERQ=1,SYS=EMAS
%CONSTINTEGER NOTSYS=(SYS+1)&1
!********************************************
!*             PERQ LPUT                    *
!********************************************




        %ROUTINESPEC QPUT(%INTEGER A,B,C,D)  {ensure qput is routine number one}
{PERQ   %externalroutinespec MOVEBEE
{PERQ   %EXTERNALROUTINESPEC WRITE BLOCK(%HALFINTEGER FILEID,BLOCK, %INTEGER AD)
{PERQ   %EXTERNALROUTINESPEC READBLOCK(%HALFINTEGER FILEID,BLOCK,%INTEGER AD)
{PERQ   %EXTERNALROUTINESPEC NEWSEG(%INTEGER AD, %HALFINTEGER SIZE,INC,MAXSIZE)
{perq   %externalhalfintegerfnspec createfile(%integer adname)
{PERQ   %EXTERNALROUTINESPEC CLOSEFILE(%HALFINTEGER FILEID,BLOCKS,BITS)
        %DYNAMICROUTINESPEC QCODE(%INTEGER I,J,K,L)

==== ercs07/emas-2900/inpds_pnacomin.txt ====
C     EDIT DATE     07FEB78  13:29
C     SOURCE FILE   PNACOMAJH.IN
C     AUTHOR        A. J.HOWARD
C     CLUSTER       80
      INTEGER     LIST (499), NAMES (499), CT, BITS (6, 2)
      COMMON      /PNACOM / LIST, NAMES, CT, BITS


==== ercs07/emas-2900/stackd5s.txt ====
module  stack;
exports

imports perq_string from perq_string;
imports arith from arith;

type acb=record ep,rr,ra,rs,tl,gl,dl,lp,sl:fsbit16 end;
     acbptr=^acb;
     txtptr=^text;
var tin,tout,dfile,lfile:text;
    curout:txtptr;
    ss:fsbit16;
    dlist,listing:boolean;

procedure dumpseg(ssn,disp,len:fsbit16);
procedure dumpacb(ap:fsbit16);
function loadss:fsbit16;
function loadap:fsbit16;
function loadgp:fsbit16;
function topofstack:fsbit16;


==== ercs07/emas-2900/inpds_stkdfdin.txt ====
C     EDIT DATE   03DEC78  12:11
C     SOURCE FILE STKDEFD.IN
C     AUTHOR      A. J. HOWARD
      INTEGER     OSTACK (20)
      EQUIVALENCE (STK (1, 8), OSTACK (1))


==== ercs07/emas-2900/pt_filtest.txt ====
PROGRAM FILTEST(INPUT,FIL1);
TYPE MIXED=(INT,REAL);
      MF=RECORD V
         CASE V:MIXED OF
           INT:INTEGER;
           RL:REAL;
      END;
VAR FIL1:FILE OF MF;
    I:INTEGER;
    VS:MF;
BEGIN
RESET(FIL1);
FOR I:=1 TO 10 DO
  BEGIN
  READ(VS.MIXED);
  WRITELNIFIL1,VS.MIXED)
  END;
END.

==== ercs07/emas-2900/helpsa20_maaddjclct.txt ====
ADDITIONAL_NAME(PASCALCOMPILE,PASCAL)
ADDITIONAL_NAME(PASCALCOMPILE,PA)
PERFORM

==== ercs07/emas-2900/mixedsrce_callfunc2.txt ====
PROGRAM DEFCALLFUNC;
(*# E+ *)
PROCEDURE CALLFUNC(FUNCTION FUNC:INTEGER;PARAM:INTEGER;VAR RES:INTEGER);
BEGIN
RES:=FUNC(PARAM);
END;
BEGIN
END.

==== ercs07/emas-2900/slogos_sutilffs.txt ====
'HEAD'  STACK UTILITIES
C     EDIT DATE   10DEC78  20:26
C     SOURCE FILE SUTILFTM.FS
C     AUTHOR      A. J. HOWARD
C     CLUSTER     22
      'OUTFILE' MSTAKFTM.FR
      SUBROUTINE MSTAK (INROW, OUTROW)
      INTEGER     INROW, OUTROW
      INTEGER     I
      'INCLUDE'   STKDFA.IN,
      'DOLOOP' I = 1, 13
         STK (OUTROW, I) = STK (INROW, I)
         'END'
      RETURN
      END
      'OUTFILE' CLRSTKFTM.FR
      SUBROUTINE CLRSTK (ROW)
      INTEGER  ROW
      INTEGER     I
      'INCLUDE'   STKDFA.IN,
C     CLEAR A STACK ROW

==== ercs07/emas-2900/pffiles_objvalues.txt ====
procedure SetIval(Hostinteger : integer; var Value: ObjectValue);
  extern;

procedure SetBval(HostBoolean: Boolean; var Value: ObjectValue);
  extern;

procedure SetWval(HostValue: ICLWord; var Value: ObjectValue);
  extern;

procedure Evaluate(var SourceValue : ValueDetails);
  extern;

procedure MakeValue(Magnitude: integer; var Value: ObjectValue);
  extern;

procedure NegateValue(var Velue: Objectvalue);
  extern;

function SameValue(Value1,Value2 : Objectvalue): Boolean;
  extern;


==== ercs07/emas-2900/mixedsrce_callfunc3.txt ====
PROGRAM DEFCALLFUNC;
%KEYEDENTRY ON
PROCEDURE CALLFUNC(FUNCTION FUNC:INTEGER;PARAM:INTEGER;VAR RES:INTEGER);
BEGIN
RES:=FUNC(PARAM);
END;
FUNCTION SETVAL(VAL:INTEGER):INTEGER;
BEGIN
SETVAL:=VAL;
END;
BEGIN
END.

==== ercs07/emas-2900/slogosorg_faultsin.txt ====
C     EDIT DATE   30AUG78  13:43
C     SOURCE FILE FAULTSFTM.IN
C     AUTHOR      F. T. MICKEY
C     CLUSTER     X

      INTEGER     EXFLT,   FLTNR

      COMMON      /FLTS/   EXFLT,   FLTNR








==== ercs07/emas-2900/slinkf_keywdgfr.txt ====
    
      LOGICAL  FUNCTION KEYWD (DUMMY)   
      INTEGER DUMMY 
    
      LOGICAL     MPFLAG
      LOGICAL     OVMODE
      LOGICAL     LBMODE
      LOGICAL     LOADRB
      LOGICAL     SFLAG 
      INTEGER     VERS  
      INTEGER     LOADAD
      INTEGER     ZLOC, ZSTR, ZMAX, ZLIMIT  
      INTEGER     CLOC, CSTR, CMAX, CLIMIT  
      INTEGER     NLOC, NSTR, NMAX, NLIMIT  
      INTEGER     DLOC, DSTR, DMAX, DLIMIT  
      INTEGER     OLOC, OMAX, OSET  
      INTEGER     START 
      INTEGER     MODNLX
      INTEGER     CKSUM 
      INTEGER     KEY   
      INTEGER ICLP05

==== ercs07/emas-2900/mixedsrce_callfunc4.txt ====
PROGRAM DEFCALLFUNC;
%KEYEDENTRY ON
PROCEDURE CALLFUNC(FUNCTION FUNC:INTEGER;PARAM:INTEGER;VAR RES:INTEGER);
BEGIN
RES:=FUNC(PARAM);
END;
BEGIN
END.

==== ercs07/emas-2900/pptboot_test2a.txt ====

==== ercs07/emas-2900/lpds_tst12alos.txt ====
''TITLE, TEST12A
''HEAD, LINKER COMMON ALLOCATION TEST
''LIST
  /////////////////////////////////////////////////////////
  //                                                     //
  // DATE   : SEP 18,1978                                //
  //                                                     //
  // AUTHOR : T. CHENG                                   //
  //                                                     //
  // TEST # : TEST12A                                    //
  //                                                     //
  // PURPOSE :   TEST MEMORY ALLOCATION FOR BLANK        //
  //              AND NAMED COMMONS.                     //
  //                                                     //
  // NOTE :      LINK WITH TEST12B,TEST12C AND           //
  //              TEST12D FOR TESTING.                   //
  //                                                     //
  /////////////////////////////////////////////////////////
''EJECT
     'LBR' A, B[3], C 'RBR',                           // BLANK COMMON
     COM1 : 'LBR' FLAG1, BUFFER1[100], 'DP' BUFPTR1 'RBR',  // #1 NAMED COMMON

==== ercs07/emas-2900/strans_sttest.txt ====

CLEAR
COPY STRANS_BLOBFS,BLOBFS
COPY STRANS_INCLUD,INCLUD
COPY STRANS_STESTFS,STESTFS
RUN STRANZ 
STEST
SEND BLOBFS
SEND INCLUD
SEND STESTFS
SEND LPT
SEND STESTC
SEND STEST1FR
SEND STEST2FR
SEND BLOBFR

==== ercs07/emas-2900/perqrel3_map2.txt ====
!* modified 07/05/82
!*
!***********************************************************************
!***********************************************************************
!*
!*
!***********************************************************************
!* Formats for accessing dictionary records                            *
!***********************************************************************
!*
%RECORDFORMAT PRECF( %C
               %BYTEINTEGER CLASS,TYPE,X0,X1, %C
               %INTEGER LINK1, LINK2, LINK3, ADDR4,  %C
               %HALFINTEGER DISP,LEN,IDEN,IIN,  %C
               %INTEGER LINE,XREF,CMNLENGTH, CMNREFAD)
!*
%RECORDFORMAT SRECF(%INTEGER INF0, LINK1, INF2, INF3, INF4)
!*
%RECORDFORMAT RESF((%INTEGER W %OR %HALFINTEGER H0,
                      (%HALFINTEGER H1 %OR %BYTEINTEGER FORM,MODE)))
!*

==== ercs07/emas-2900/basicgen.txt ====
EDIT BSCBASE13,OPTBASE
(M/!?/D1)1000
E
PARM NOARRAY,NOCHECK
IMP OPTBASE,OPTOBJ,.LP
PARM OPT
IMP FCONVS,FCOBJ,.LP
PARM
LINK
OPTOBJ
ERCS04.OMFLOADY
FCOBJ
.END
BASIC
PERMIT BASIC
CHERISH BASIC
DESTROY OPTOBJ,FCOBJ

==== ercs07/emas-2900/pddemo_anal10.txt ====
!* 14/04/82   
!*
!************  IMP80 version  ************
!*
%CONSTINTEGER TESTVERSION=1;!  0  NO   1  YES
%CONSTINTEGER DICTVERSION=0;!  0  EMAS   1  VME
!*
!{2900C} %CONSTINTEGER W1=2
!{2900C} %CONSTINTEGER W2=4
!{2900C} %CONSTINTEGER W4=8
!{2900C} %CONSTINTEGER W6=12
{PERQC} %CONSTINTEGER W1=1
{PERQC} %CONSTINTEGER W2=2
{PERQC} %CONSTINTEGER W4=4
{PERQC} %CONSTINTEGER W6=6
!*
!*
!**** SYNTAX ****
!*
!* Syntax tables generated from file SYNTAX48 on 11/03/82 at 06.51.27
!*

==== ercs07/emas-2900/slinkf_bitdfnfr.txt ====
    
      BLOCK DATA
    
      INTEGER     BITS (16) 
      INTEGER     BIT00,BIT01,BIT02,BIT03,BIT04,BIT05,BIT06,BIT07   
      INTEGER     BIT08,BIT09,BIT10,BIT11,BIT12,BIT13,BIT14,BIT15   
      INTEGER     BIT, BITNO
      COMMON      /BITDFN/ BITS 
      COMMON      /BITDFN/ BIT, BITNO   
      EQUIVALENCE (BITS(1),BIT00),(BITS(2),BIT01),(BITS(3),BIT02)   
      EQUIVALENCE (BITS(4),BIT03),(BITS(5),BIT04),(BITS(6),BIT05)   
      EQUIVALENCE (BITS(7),BIT06),(BITS(8),BIT07),(BITS(9),BIT08)   
      EQUIVALENCE (BITS(10),BIT09),(BITS(11),BIT10) 
      EQUIVALENCE (BITS(12),BIT11),(BITS(13),BIT12) 
      EQUIVALENCE (BITS(14),BIT13),(BITS(15),BIT14) 
      EQUIVALENCE (BITS(16),BIT15)  
      DATA        BIT00 /1/ 
      DATA        BIT01 /2/ 
      DATA        BIT02 /4/ 
      DATA        BIT03 /8/ 
      DATA        BIT04 /16/

==== ercs07/emas-2900/perqrel3_map3.txt ====
!* modified 07/05/82
!*
!***********************************************************************
!***********************************************************************
!*
!*
!***********************************************************************
!* Formats for accessing dictionary records                            *
!***********************************************************************
!*
%RECORDFORMAT PRECF( %C
               %BYTEINTEGER CLASS,TYPE,X0,X1, %C
               %INTEGER LINK1, LINK2, LINK3, ADDR4,  %C
               %HALFINTEGER DISP,LEN,IDEN,IIN,  %C
               %INTEGER LINE,XREF,CMNLENGTH, CMNREFAD)
!*
%RECORDFORMAT SRECF(%INTEGER INF0, LINK1, INF2, INF3, INF4)
!*
%RECORDFORMAT RESF((%INTEGER W %OR %HALFINTEGER H0,
                      (%HALFINTEGER H1 %OR %BYTEINTEGER FORM,MODE)))
!*

==== ercs07/emas-2900/pcfiles_prologue1.txt ====

{

 History
 -------

 22/10/85 - First version for manual processing of files or structures
            containing file components. (agh)
 08/12/85 - Modify to perform explicit call to p_preset or p_postset.
            (agh)

                                                                        }
{

                          MODULE 26

                     Manual Preset and Postset
                         Code Generation

                                                                        }


==== ercs07/emas-2900/res.txt ====
% KEYEDENTRY ON
PROGRAM RESEARCH(INPUT,OUTPUT);


PROCEDURE ESSPJL;

CONST NST=150;
      MNC=10;
      LOGTEN=2.3025951;

TYPE  COMP=ARRAY[1..MNC] OF REAL;
      STREAMDATA=RECORD FLAG:INTEGER;
                        PRESS:REAL;
                        TEMP:REAL;
                        FLOW:ARRAY[0..13] OF REAL;
                        DESCRIPTION:ARRAY[1..15] OF CHAR
                 END;

VAR   STR:ARRAY[0..NST] OF STREAMDATA;
      COMPNAME:ARRAY[1..MNC,1..10] OF CHAR;
      HOLD:ARRAY[0..1,1..100] OF REAL;

==== ercs07/emas-2900/ctms_service.txt ====
%EXTRINSICINTEGER ECTM TRACE, ECTM CHECK, ECTM MONITOR
!
%SYSTEMROUTINESPEC MOVE(%INTEGER BYTES, FROM, TO)
%SYSTEMROUTINESPEC ETOI(%INTEGER ADDRESS, BYTES)
%SYSTEMROUTINESPEC ITOE(%INTEGER ADDRESS, BYTES)
%SYSTEMROUTINESPEC PHEX(%INTEGER I)
%EXTERNALINTEGERFNSPEC EXIST(%STRING(31) FILE)
%EXTERNALINTEGERFNSPEC ECTM GET ROUTE(%LONGINTEGER ROUTE)
!
%OWNINTEGER LENGTH MASK = X'00FFFFFF'
%OWNINTEGER STRING DESC = X'58000000'
%OWNINTEGER WORD DESC = X'28000000'
%OWNLONGINTEGER ADDRESS MASK = X'00000000FFFFFFFF'
%OWNLONGINTEGER NIL = -1
!
%RECORDFORMAT AFRFMT(%STRING(63) NAME, %INTEGER ASSIGN ID,  %C
      QAVAILABLE, QTEMP, %LONGINTEGER ROUTE, ACCESS1,  %C
      %INTEGER DESC DR0, DESC DR1, %LONGINTEGER AREA DESC,  %C
      %BYTEINTEGERARRAY DESC AREA(0:1023))
!
%EXTERNALSTRING(31)%FN HEX(%INTEGER I)

==== ercs07/emas-2900/perqsrce_scrounge.txt ====
Module Scrounge;

{////////////////////////} EXPORTS {\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\}

Procedure Scrounge(ES, ER, PStart, PEnd, ExcSeg, RaiseAP: Integer);

{////////////////////////} PRIVATE {\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\}

{$R-}

Const version = 'V0.14';

Const DoSysNamesFirst = true; {if true then reads the system run file so can
                               print out system procedure names at the top }                            
Imports Code        from Code;
Imports Memory      from Memory;
Imports Filesystem  from FileSystem;
Imports QCodes      from QCodes.Dfs;
Imports System      from System;
Imports PERQ_String from PERQ_String;
Imports IO_Unit     from IO_Unit;

==== ercs07/emas-2900/mixedsrce_arrdefa.txt ====
%PROCEDURE ARRTIM4(ARR1,ARR2);
%VALUE ARR1;
%INTEGERARRAY ARR1,ARR2;
%BEGIN
%INTEGER I;
I:=1/0;
PRINTSTRING(<ENTERING_ALGOL_ARRTIM4>);
NEWLINE;
%FOR I:=1 %STEP 1 %UNTIL 4 %DO ARR2[I]:=ARR1[I]*4;
%END

==== ercs07/emas-2900/slinkf_pcharfr.txt ====
    
      SUBROUTINE PCHAR (BUF, INDEX, CHAR)   
      INTEGER  BUF (66), INDEX, CHAR
      INTEGER  I
      I = ISHFT (INDEX+1, -1)   
      IF (.NOT. (IAND (INDEX, 1) .NE. 0))GO TO 13002
    
      BUF (I) = IAND (BUF (I), 255) + ISHFT (CHAR, 8)   
      GO TO 13003   
13002 CONTINUE  
    
      BUF (I) = IAND (BUF (I), -256) + IAND (CHAR, 255) 
13003 CONTINUE  
    
      RETURN
      END   

==== ercs07/emas-2900/npcpf_pfwith.txt ====
procedure OpenWith(WithBase: DispRange);
extern;

procedure WithReference(WithBase: DispRange);
extern;

procedure CloseWith;
extern;

procedure InitWith;
extern;

==== ercs07/emas-2900/pffiles_interface.txt ====

{

 History
 -------

 17/18/85 - remove StoreImp; add ArrayString,AlfaString.
 18/10/85 - history tidied. Reformatted. (agh)
 18/10/85 - Added specs for SetBdAddress, ForwardBlockLabel. (agh)
 21/10/85 - Change formal param name ArrayRep to ElementRep in spec
            for PassArrayBound. (agh)
 23/10/85 - Delete AlfaString and ArrayString. (agh)
 23/10/85 - Add specs for WriteLines and WritePage. (agh)
 25/10/85 - Change specs for StackActualBlock and StackFormalBlock
            to include ParamSpace parameter. Add spec for
            procedure SaveParamSpace. (agh)
 06/11/85 - Add spec for SizeOperation. (agh)
 06/11/85 - Modify spec for MaxMinFunction. (agh)
 11/11/85 - Add spec for CheckCAPBounds. (agh)
 01/12/85 - Add error code to spec of RangeCheck. (agh)
 04/12/85 - Add LastLevel parameter to PassArrayBounds for revised

==== ercs07/emas-2900/slogof_rmcdatfr.txt ====
 
      BLOCK DATA 
 
      INTEGER  CLRACV 
      INTEGER  CLRACX 
      INTEGER  CLRSTA 
      INTEGER  TRAREG 
      INTEGER  SAVREG 
      INTEGER  CTFREE 
      INTEGER  SETREG 
      INTEGER  ICLP11 
      COMMON   /RMCODE/ CLRACV, CLRACX, CLRSTA, TRAREG, SAVREG 
      COMMON   /RMCODE/ CTFREE, SETREG 
      COMMON   /RMCODE/ ICLP11 
      DATA  CLRACV   / 1 / 
      DATA  CLRACX   / 2 / 
      DATA  CLRSTA   / 3 / 
      DATA  TRAREG   / 4 / 
      DATA  SAVREG   / 5 / 
      DATA  CTFREE   / 6 / 
      DATA  SETREG   / 7 / 

==== ercs07/emas-2900/rel6_map4.txt ====
!* modified 21/06/82
!*
!***********************************************************************
!***********************************************************************
!*
!*
!***********************************************************************
!* Formats for accessing dictionary records                            *
!***********************************************************************
!*
%RECORDFORMAT PRECF( %C
               %BYTEINTEGER CLASS,TYPE,X0,X1, %C
               %INTEGER LINK1, LINK2, LINK3, ADDR4,  %C
               %HALFINTEGER DISP,LEN,IDEN,IIN,  %C
               %INTEGER LINE,XREF,CMNLENGTH, CMNREFAD)
!*
%RECORDFORMAT SRECF(%INTEGER INF0, LINK1, INF2, INF3, INF4)
!*
%RECORDFORMAT RESF((%INTEGER W %OR %HALFINTEGER H0,
                      (%HALFINTEGER H1 %OR %BYTEINTEGER FORM,MODE)))
!*

==== ercs07/emas-2900/slinkf_searchfr.txt ====
    
      INTEGER FUNCTION SEARCH (DUMMY)   
    
      INTEGER     NSIZE,  NAME(16), NTITLE  
      INTEGER     NFLAGS (512)  
      INTEGER     NADDRS (512)  
      INTEGER     NPOSIT (512)  
      INTEGER     NDATA  (512)  
      INTEGER     NTEXTX (512)  
      INTEGER     NTEXT  (1000) 
      INTEGER     NLX, NLSTRT, NLSTOP   
      INTEGER     TXSTRT, TXSTOP
      INTEGER     NTXBTS
      INTEGER     USEBIT, COMBIT, OVLBIT, EPTBIT
      INTEGER     LDMBIT, MODBIT, MLTBIT, RLSBIT
      INTEGER     GDFBIT, TYPBTS
      INTEGER     ATYPE 
      INTEGER      ICLP07   
      LOGICAL     OLDNAM
      COMMON      /NTABLE/ NSIZE, NAME, NTITLE  
      COMMON      /NTABLE/ NFLAGS, NADDRS, NPOSIT, NDATA, NTEXTX

==== ercs07/emas-2900/tstfiles_muxdemlos.txt ====
''HEAD,FRAME MULTIPLEX & DEMULTIPLEX
''TITLE,MUXDEMUX
''LIST
 //***************************************************
 //
 //DESCRIPTION:SAMPLE INTRANODAL MULTIPLEXING AND DE-
 //MULTIPLEXING PROGRAMS.
 //
 //LOCATION:MUXDEMUX.LOS
 //
 //DATE:NOVEMBER 9, 1978
 //
''EJECT
 //********************************
 //*  *
 //*     POINTER BLOCK FORMAT     *
 //*  *
 //********************************
 'TP' [0]:'LBR'
            OBP PAGE MAP,//OUTPUT BUFFER POINTER PAGE MAP
            'DP' OBP ADDRESS,//OUTPUT BUFFER ADDRESS

==== ercs07/emas-2900/pt_demo.txt ====
PROGRAM DEMO;
CONST MAGIC=402653440; (* =X'18000100' *)
TYPE STR7=PACKED ARRAY[1..7] OF CHAR;
     POINT7=^STR7;
VAR P7:POINT7;
PROCEDURE LIST(K:INTEGER;AD:POINT7);EXTERN;
BEGIN
NEW(P7);
P7^:=' FILES ';
P7^[1]:=CHR(5);
LIST(MAGIC,P7);
END.

==== ercs07/emas-2900/f77csm12.txt ====
!* MODIFIED 02/09/81
!*

%CONSTINTEGER ISO=0, EBCDIC=1
%CONSTINTEGER LISTFILE=0,DIAGFILE=1,LOGFILE=2,NOLIST=3
%CONSTINTEGER RTMARGIN=132
%CONSTINTEGER NL=10,NP=12

!*
%EXTERNALLONGINTEGER ICL9CEAUXST
!*
!*
%OWNINTEGER CURRENT OUTPUT
%OWNINTEGER CHAR CODE      ;!0 ISO
                            !1 EBCDIC
%OWNLONGINTEGER READ CARD,OUTPUT LINE,CSUPPORT;!DESCRIPTOR TO PROCEDURES
%OWNINTEGER AETOI,AITOE
%OWNINTEGER COMPILER LNB
%OWNINTEGER OUTPTR
%OWNBYTEINTEGERARRAY OUTBUFF(-2:131)
%OWNINTEGERARRAY SSCOMREG(0:63)

==== ercs07/emas-2900/sforf_ehxf.txt ====
      SUBROUTINE EHX (WORD, BUF, LEFT, RIGHT)
      INTEGER  WORD, BUF(1), LEFT, RIGHT
      INTEGER  WORK, CHAR, COL, XZERO, XLETA, MASK, BIAS
      DATA     XZERO / 48 /
      DATA     XLETA / 55 /
      DATA     MASK  / 15 /
      COL = RIGHT
      WORK = WORD
      CONTINUE
13262 CONTINUE
      IF (.NOT.(COL .GE. LEFT))GO TO 13263
      CHAR = IAND (WORK, MASK)
      IF (.NOT. (CHAR .GE. 10))GO TO 13264
      BIAS = XLETA
      GO TO 13265
13264 CONTINUE
      BIAS = XZERO
13265 CONTINUE
      CALL PCHAR (BUF, COL, CHAR + BIAS)
      WORK = ISHFT (WORK, -4)
      COL = COL - 1

==== ercs07/emas-2900/mixedsrce_arrdeff.txt ====
      SUBROUTINE ARRTIM4(ARR1,ARR2)
      INTEGER ARR1(4),ARR2(4)
      WRITE(6,100)
  100 FORMAT(' ENTERING FORTRAN ARRTIM4')
      DO 10 I=1,4
      ARR2(I)=ARR1(I)*4
   10 CONTINUE
      RETURN
      END

==== ercs07/emas-2900/slogosorg_bldpoain.txt ====
C     EDIT DATE   10MAR78  03:55
C     SOURCE FILE BLDPOAJH.IN
C     AUTHOR      A. J. HOWARD
      LOGICAL  MSEEN, SMSEEN, ZFLAG
      INTEGER  SMODE, TPFLAG, DEFMOD, LEVEL
      INTEGER  STOAC, OP

      COMMON   /BPO/ MSEEN, SMSEEN, ZFLAG
      COMMON   /BPO/ SMODE, TPFLAG, DEFMOD, LEVEL
      COMMON   /BPO/ STOAC, OP



==== ercs07/emas-2900/pnxrel01_eelimp42.txt ====
! 31/01/84 - UPDATE TRELIM FOR DCMPLX & INTRIN
! 18/01/84 - BIT STRIP ADDRESSES ARE NOW RELATIVE TO ABLOCKS
! 23/11/83 set up TRACE flag and EDUMPTRACE routine
! 27/10/83 - copied from ERCS06.REL8002_eelimb7
%INCLUDE "host_host"
%INCLUDE "targ_target"
%INCLUDE "pf_version"
!*
%INCLUDE "bits_fmts"
%INCLUDE "bits_optspecs"
%INCLUDE "bits_consts"
%INCLUDE "bits_optfmts"
!
%INCLUDE "bits_triadops"
!*
%OWNINTEGER TRACE=0
!
%OWNINTEGER ELFLAG,ELIMEND,RWFLAG,HVAL
%OWNINTEGER COORD1,COORD2,MODE,MATCH
!*
! ARRAY FOR TRIADS WHICH MAY BE ELIMINATION CANDIDATES

==== ercs07/emas-2900/pascalprogs_palindrome.txt ====
PROGRAM palindromes (input,output);

       {THis version reverses and adds by copying the number
       The command language is greatly simplified to:-
         = <N>     set starter
         * <n>     set (further) number of steps;
         =  ?      print current number
         *  ?      how many steps so far
         @         stop}

CONST  max=20;   {number of digits that can be accommodated}

    setch = '=';
    timesch = '*';
    query = '?';
    printch = '/';
    quietch = '\';    {used after * <n> to indicate intermediate printing}
    stopch= '@';

    undefined = -1;    {for crucial integer variables}


==== ercs07/emas-2900/pptboot_test3a.txt ====

==== ercs07/emas-2900/slinkf_updatefr.txt ====
    
      SUBROUTINE UPDATE (LOC, NBYTES, MAX)  
      INTEGER            LOC, NBYTES, MAX   
      INTEGER TS
      LOC = LOC + NBYTES
      TS = ISHFT (LOC, -1) - ISHFT (MAX, -1)
      IF (.NOT. (TS .GT. 0))GO TO 13094 
    
      MAX = LOC 
      GO TO 13095   
13094 CONTINUE  
    
      IF (.NOT. (TS .EQ. 0 .AND. IAND (LOC, 1) .NE. 0))GO TO 13096  
    
      MAX = LOC 
13096 CONTINUE  
    
13095 CONTINUE  
    
      RETURN
      END   

==== ercs07/emas-2900/mixedsrce_arrdefi.txt ====
%EXTERNALROUTINE SETARR(%INTEGERARRAYNAME ARR,%INTEGER BND)
%INTEGER I
PRINTSTRING('ENTERING IMP SETARR')
NEWLINE
%CYCLE I=1,1,BND
  ARR(I)=I+10
%REPEAT
%END
%ENDOFFILE

==== ercs07/emas-2900/sforf_flink.txt ====

LINK
SFORF_COPYLNY
SFORF_COPYTOY
SFORF_CPARENY
SFORF_CTYPEY
SFORF_DDUMPY
SFORF_EMASIFY
SFORF_ENDLINY
SFORF_ESPY
SFORF_ESTY
SFORF_GETCY
SFORF_GETLINY
SFORF_GETNUMY
SFORF_GETWRDY
SFORF_GOLNY
SFORF_IGNOREY
SFORF_INITOBY
SFORF_INITY
SFORF_LABGENY
SFORF_LEXY

==== ercs07/emas-2900/exptool.txt ====
@b(8 THE EXPERIMENTER TOOL)

The experimenter tool supports the design of experiments and their execution
using objects produced by modelling tools and producing outputs acceptable
to the reporter. In general terms it allows series of connected runs and 
analysis of results.

Modelling tools which have been implemented or modified in accordance with the
Simmer standards for shared objects, such as output specifications, will be
capable of inclusion in the experimenter's facilities.

Alien models and modelling tools may be used in limited ways, probably using
the provision for entering results from real world systems or something
similar.

Conceptual provision is also made for analysis of observations of real 
systems and of hybrid systems. This will not be fully implemented in the pilot,
although a limited formatting facility may be provided for real world data,
but will form a subject for an advanced study.

@b(8.1 Concepts)

==== ercs07/emas-2900/first.txt ====

PROGRAM ERROR (INPUT,OUTPUT);
(*IT FINDS THE QUOTIENT OF TWO NUMBERS AND CALCULATES ITS ERROR*)
CONST
     SPACE=' ';
     DOT='.';
TYPE
     DIGITS=PACKED ARRAY[1..30] OF CHAR;
     DF=ARRAY[1..16] OF INTEGER;
VAR 
     DIGITA,DIGIT:DIGITS;
     DMIN,DMAX:DF;
     X,Y,C1,C2, EC,EA,EB,A,B,C,RA,RB,RC:REAL;
     Q,P,K,N1,N2,M,N:INTEGER;
     CH1,CH2,CH3:CHAR;



PROCEDURE ROUNDOFNUMBER(VAR DIG:DIGITS;VAR R,E:REAL;VAR NOFDP:INTEGER);
    VAR
       Q,P,I,J,K,L:INTEGER;

==== ercs07/emas-2900/boot5b.txt ====
 1 14 56 28134 28124 0 50 1 44 0 8PRINTINT 2 60 24 51 5PRINT 65538 0 0 34308 1 5 5 5 6 45 2 15 2 16 792 4 56 186 46 2 1 4 5 7 28-1 52 0 0 0 2 0 24 0 0 0 0 0 0 0 0

==== ercs07/emas-2900/inpds_memoryin.txt ====
C     EDIT DATE   01JUN78  17:38
C     SOURCE FILE MEMORYGAK.IN
C     AUTHOR      GARY A. KUDIS
C     MEMORY USE MAP
C
C     ONE BIT PER MEMORY BYTE; THE BIT IS SETTO ONE (1) WHEN
C     IT IS USED. THERE ARE 4096 ENTRIES IN 'MEMORY'. EACH
C     ENTRY REPRESENTS THE STATUS OF 16 MEMORY BYTES - THUS
C     THE STATUS OF ALL 65636 BYTES.
C
C     ACCESS ALGORITHM TO STATUS OF MEMORY WITH ADDRESS = MEMLOC :
C        MEMX = MEMLOC/16 + 1
C        BITNO = MOD (MEMLOC, 16) + 1
C        BIT = BITS (BITNO)
C
C     ROM MEMORY MAP
C        ONE WORD PER 1K BYTES OF MEMORY; SET TO ZERO (0) WHEN
C        MEMORY IS 'ROM' AND SET TO ONE (1) WHEN 'RAM' MEMORY.
C
      INTEGER     MEMORY (4096)
      INTEGER     MEMX

==== ercs07/emas-2900/slinksorg_iodefnin.txt ====
C     EDIT DATE   09JAN79  17:26
C     SOURCE FILE IODEFNGAK.IN
C     AUTHOR      GARY A. KUDIS
C     I/O CHANNEL DEFINITIONS
      INTEGER     ECODE
      INTEGER     CMCHAN
      INTEGER     RBCHAN
      INTEGER     OBCHAN
      INTEGER     MPCHAN
      INTEGER     DBCHAN
      INTEGER     TTYIN
      INTEGER     TTYOUT
N     INTEGER     OVCHAN
      COMMON      /IODEFN/ ECODE
      COMMON      /IODEFN/ CMCHAN
      COMMON      /IODEFN/ RBCHAN
      COMMON      /IODEFN/ OBCHAN
      COMMON      /IODEFN/ MPCHAN
      COMMON      /IODEFN/ DBCHAN
      COMMON      /IODEFN/ TTYIN
      COMMON      /IODEFN/ TTYOUT

==== ercs07/emas-2900/ctl1.txt ====
! 08/01/85 call F77ABORT instead of TABFAIL
    I=SAVIND
    SAVIND=SAVIND+W4
    %IF SAVIND>=COM_MAXANAL %THEN {TABFAIL("COM_SAVEANAL")} F77ABORT(5)
    SAVREC==RECORD(COM_SAVEANAL+I)
    SAVREC_PATH=PATH
    SAVREC_NUMCON=NUMCON
    SAVREC_ACON=ACON
    SAVREC_CURBL=CURBL

==== ercs07/emas-2900/slogos_tempsfin.txt ====
C     EDIT DATE   06MAR78  12:41
C     SOURCE FILE TEMPSFTM.IN
C     AUTHOR      F. T. MICKEY
C     CLUSTER     X
      INTEGER  DTX
      INTEGER  STX
      COMMON   /STEMP/  DTX
      COMMON   /STEMP/  STX




==== ercs07/emas-2900/rpifile.txt ====
0 0
8 81
299.3
297.1
295.8
294.1
292.2
284.0
279.8
277.3
275.6
274.1
271.9
270.2
268.5
267.9
265.7
263.2
260.8
252.2
248.8

==== ercs07/emas-2900/ctl2.txt ====
    SAVIND=SAVIND-W4
    SAVREC==RECORD(COM_SAVEANAL+SAVIND)
    PATH=SAVREC_PATH
    NUMCON=SAVREC_NUMCON
    ACON=SAVREC_ACON
    CURBL=SAVREC_CURBL

==== ercs07/emas-2900/culhamsce_sqs.txt ====
%OWNINTEGER SQL
%RECORDFORMAT NRFDFMT(%INTEGER LINK,DSNUM,   %C
  %BYTEINTEGER STATUS, ACCESS ROUTE, VALIDACTION, CUR STATE,   %C
  %BYTEINTEGER MODEOFUSE, MODE, FILE ORG, DEV CLASS,   %C
  %BYTEINTEGER REC TYPE, FLAGS, LM, RM,   %C
  %INTEGER ASVAR,AREC,RECSIZE,MINREC,MAXREC, MAXSIZE,ROUTECCY,   %C
  %INTEGER C0, C1, C2, C3, TRANSFERS,   %C
  %INTEGER DARECNUM,SPARE1,SPARE2,   %C
  %STRING(31) IDEN)
%SYSTEMINTEGERFNSPEC FORTRANDF(%INTEGER DSNUM, NUMBLOCKS, BLKSIZE, %C
  ASVARD)
%SYSTEMROUTINESPEC DATIME(%STRINGNAME DATE,TIME)
%SYSTEMROUTINESPEC SSERR(%INTEGER ERROR)
%SYSTEMROUTINESPEC IOCP(%INTEGER EP,N)
%SYSTEMINTEGERFNSPEC NEWFILEOP(%INTEGER DSNUM,ACTION,TYPE,   %C
  %INTEGERNAME AFD)
%SYSTEMINTEGERFNSPEC INREC
%SYSTEMINTEGERFNSPEC OUTREC(%INTEGER LENGTH)
%SYSTEMROUTINESPEC SIGNAL(%INTEGER EP,P1,P2,%INTEGERNAME F)
%SYSTEMINTEGERMAPSPEC COMREG(%INTEGER I)
!

==== ercs07/emas-2900/pascalprogs_externals.txt ====
%KEYEDENTRY ON

PROGRAM ttexts;

   { The following decalrations specify the manner in which time tables
     are represented. They MUST be INCLUDED in any time table program.}

      {  C O N S T   D E C L A R A T I O N S }

CONST
   minsperday = 1440;    {minutes in one day }
   numberofstations = 7;
   maxstringlength=12;   {the length of the longest station string PETER....}
   maxwait = 240;        {longest time between any  connexions}


      { T Y P E    D E C L A R A T I O N S }

TYPE

   mintime = 0..minsperday;    {internal representation of all times}

==== ercs07/emas-2900/lpds_tst12alrb.txt ====
TE
ST
12
A
SY
0:
TE
ST
12
A.
LO
S
16
-F
EB
-7
9
14
:1
3:
24

==== ercs07/emas-2900/slogof_pnadatfr.txt ====
 
      BLOCK DATA 
 
      INTEGER     LIST (499), NAMES (499), CT, BITS (6, 2) 
      INTEGER ICLP08 
      COMMON      /PNACOM / LIST, NAMES, CT, BITS 
      COMMON      /PNACOM / ICLP08 
      END 

==== ercs07/emas-2900/mixedsrce_pwrtest.txt ====
PROGRAM PWRTEST(OUTPUT);
VAR EP:REAL;
FUNCTION POWER(X:REAL;Y:INTEGER):REAL;EXTERN;
BEGIN
WRITELN('CALLING POWER');
EP:=POWER(2.0,7);
WRITELN('2.0^7= ',EP);
END.

==== ercs07/emas-2900/slogof_code2afr.txt ====
    
      SUBROUTINE  CODE2 (OPTYPE)
    
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      INTEGER     NEXT,   NUMBER, I,      IOTYPE
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT
      INTEGER ICLP05
      LOGICAL     ENDOK,CONEND  
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG   
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG  
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV  
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE  
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N   
      COMMON   /LOGOS/  PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE  

==== ercs07/emas-2900/slogos_labcomin.txt ====
C     EDIT DATE   23AUG78  16:23
C     SOURCE FILE LABCOMFTM.IN
C     AUTHOR      F. T. MICKEY
      INTEGER     LTLI, LLX, LOCNLX (10), LOCTLI (10)
      COMMON      /LABCOM/ LTLI, LLX, LOCNLX, LOCTLI




==== ercs07/emas-2900/perqrel2_comp18.txt ====
{20/05/82 13:20 workseg now 40 blocks (8K bytes for names)                     }
{               MOVE BEE called on source block read                           }
{               NAMESFUL and DICFUL tidied                                     }
{13/05/82 14:30 increase workseg as below to 32 blocks                         }
{13/05/82   increase size of workseg to 24 blocks and reallocate space         }
{           to allow GENERATE to use a 4 block cycle for triad output          }
!*
!*************************** EXPORTS **********************
!*
%ROUTINESPEC F77COMP(%HALFINTEGER A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,
   %INTEGER INFILE,ERRFILE,OUTFILE,
   %HALFINTEGER BLKS,BITS,ISN,
   %INTEGER MODE,
   %HALFINTEGER NUMIMPORTS,MEMSIZE)
%ROUTINESPEC SOURCE LINE(%INTEGER ABUFF)
%ROUTINESPEC DICFUL
%ROUTINESPEC OUTPUTFUL
%ROUTINESPEC NAMESFUL
%ROUTINESPEC EXTFUL
!*
!********************************************************************

==== ercs07/emas-2900/genutils_findatai.txt ====
%EXTERNALROUTINE FINDDATA(%STRING(255)S)
%SYSTEMROUTINESPEC CONNECT(%STRING(31)FILE,%INTEGER MODE,HOLE,PROTECT,%C
%RECORDNAME R,%INTEGERNAME FLAG)
%RECORDFORMAT RF(%INTEGER CONAD,FILETYPE,DATASTART,DATAEND)
%INTEGER LINK,I,J,K,CONAD,FLAG
%RECORD RR(RF)
%RECORDFORMAT LD9F(%INTEGER LINK,REFARRAY,L,%STRING(31)IDEN)
%RECORDNAME L9(LD9F)
CONNECT(S,0,0,0,RR,FLAG)
%IF FLAG#0 %THENRETURN
PRINTSTRING(S)
CONAD=RR_CONAD
LINK=INTEGER(CONAD+INTEGER(CONAD+24)+36)
%WHILE LINK#0 %CYCLE
L9==RECORD(LINK+CONAD)
%IF L9_IDEN="BRACE" %START
WRITE(L9_L,5)
NEWLINE
%RETURN
%FINISH
LINK=L9_LINK

==== ercs07/emas-2900/lpds_enteralo.txt ====
''HEAD, 6502 OUTPUT CONVERSION
     // EDIT DATE   10OCT78  12:51
     // SOURCE FILE ENTERAJH.LO
     // AUTHOR      A. J. HOWARD
''USE, PACKET AJH.US; 1
     'TP' [0]:'LBR'
        BUFFER,
        'RBR'
     'DP' BUFFERX,
     'DP' DP VALUE,
     COUNT,
     MINUS FLAG,
     SP VALUE,
 ;;  .....
 ;
     HEX TAB [16] = "0123456789ABCDEF",
 ;ENTER SP:: 'LBR'           // (PKT, VAL, WIDTH)
     [FL1] -> DP VALUE,
     ENTER DP VALUE,
     'RBR'
  ENTER DP:: 'LBR'           // (PKT, VAL, WIDTH)

==== ercs07/emas-2900/slogosorg_ctrlajin.txt ====
C     EDIT DATE   09OCT78  11:12
C     SOURCE FILE   CTRLAJH.IN
C     AUTHOR        A. J. HOWARD
C     CLUSTER       80
C     COMPILER CONTROL DIRECTIVE FLAGS
C
C
C     LISTF    EXPLODED LISTING        ''LIST
C     SNLPRT   SHORT NAME LIST PRINT   ''SHORT
C     SUMPRT   SUMMARY PRINT           ''SUMMARY
C     SYMFLG   SYMBOLS INCLUDED IN OBJECT
C                                      ''SYMBOLS
      INTEGER     LISTF,  SNLPRT, SUMPRT, SYMFLG
      INTEGER     PRINTF, SKIP,   COMPFL (2)
      INTEGER     LOCPRT, USFLGS, NEGFLG, SKNAME (8)
      INTEGER     ORGFLG, CTLUSE, CTLERR, TTL (8)
      INTEGER     DUMFLG
      COMMON      /CTLCOM/    LISTF,  SNLPRT, SUMPRT, SYMFLG
      COMMON      /CTLCOM/    PRINTF, SKIP,   COMPFL
      COMMON      /CTLCOM/    LOCPRT, USFLGS, NEGFLG, SKNAME
      COMMON      /CTLCOM/    ORGFLG, CTLUSE, CTLERR, TTL

==== ercs07/emas-2900/slogosorg_levelsin.txt ====
C     EDIT DATE   19FEB78  11:18
C     SOURCE FILE LEVELSAJH.IN
C     AUTHOR      A. J. HOWARD
      INTEGER  LEVELB, NLEVEL, LLEVEL, ILEVEL, CLEVEL
      COMMON   /LEVELS/ LEVELB, NLEVEL, LLEVEL, ILEVEL, CLEVEL




==== ercs07/emas-2900/pptboot_test4a.txt ====

==== ercs07/emas-2900/rel5_alloc25.txt ====
!* modified 07/07/82
!*
!******************************** EXPORTS ******************************
!*
%ROUTINESPEC ALLOC(%INTEGER PTR)
%INTEGERFNSPEC ALLOC CHAR(%INTEGER L,AD,
        %HALFINTEGERNAME IIN,%INTEGERNAME DISP)
%ROUTINESPEC INIT ALLOC(%INTEGER ADCOM)
%ROUTINESPEC ADD DATA ITEM(%INTEGER AREA,PTR,COUNT,DISP,L,AD)
%INTEGERFNSPEC TIDY GLA(%HALFINTEGER EP,IIN,%INTEGER LEN)
%INTEGERFNSPEC PFORMAT(%INTEGER AINPUT,INP,J,
                       %STRINGNAME IDENTIFIER)
%INTEGERFNSPEC TO INTEGER(%INTEGER DATA AD,DATA LEN,
                                   TEXT AD,TEXT LEN,TEXT INC,MODE)
%INTEGERFNSPEC TO REAL(%INTEGER DATA AD,DATA LEN,TEXT ADDRESS,
                                INT LEN,INT PTR,DEC LEN,DEC PTR,
                                EXP LEN,EXP PTR,DECS,SCALE,MODE)
%INTEGERFNSPEC GLA SPACE(%INTEGER LEN)
!*
!* 25/03/82   
!*

==== ercs07/emas-2900/oldqfiles_f77aux2.txt ====
!              
!                         EXPORT LIST
!
!
%ROUTINESPEC F77 STOP(%HALFINTEGER PTYPE,%INTEGER VAL)
%ROUTINESPEC F77 PAUSE (%HALFINTEGER PTYPE,%INTEGER VAL)
%ROUTINESPEC F77 RTERR(%HALFINTEGER ERRNO)
%ROUTINESPEC F77 IOERR(%HALFINTEGER ERRNO)
%ROUTINESPEC F77 CONCAT(%HALFINTEGER COUNT,%INTEGER ADRINDESCS,
OUTPUTBASE,%HALFINTEGER OUTPUTDISP,OUTPUTLEN)
%ROUTINESPEC F77COPY (%INTEGER SCE BASE,%HALFINTEGER SCE DISP,
SOURCE LEN,%INTEGER TARGET BASE,%HALFINTEGER TARGET DISP,TARGET LEN)
%INTEGERFNSPEC F77 INDEX (%INTEGER SEARCHBASE,
%HALFINTEGER SEARCHDISP,SEARCHLEN,%INTEGER KEYBASE,%HALFINTEGER KEYDISP,
KEYLEN)
%ROUTINESPEC F77 CMULTC(%INTEGER AD,%REAL R1,C1,R2,C2)
%ROUTINESPEC F77 CDIVC(%INTEGER AD,%REAL R1,C1,R2,C2)
%HALFINTEGERFNSPEC F77 CEQUC(%REAL R1,C1,R2,C2)
%HALFINTEGERFNSPEC F77 CNEQC(%REAL R1,C1,R2,C2)
%INTEGERFNSPEC F77 IABS(%INTEGERNAME I)
%REALFNSPEC F77 ABS(%REALNAME X)

==== ercs07/emas-2900/rtpsclma_pmpack.txt ====
AREA(1)
ALTER(X03F2,X0040,X0020,NAME=LATEFIX1B)
AREA(1)
PATCH(X3E62,X180478AC,CODE
      LSS.L     X0E
      JZ        $A
      PRCL      X04
      LD.L      X2C
      RETURN    X04
$A    LD.L      X1E
      LD.D      X14
      STD.L     X2A
      LSS       X02
      LUH.P     $B
      LD.L      X2A
      PRCL      X04
      ST.T      
      STD.T
      RALN      X09
      CALL.IC   X26
      LCT.L     X04

==== ercs07/emas-2900/npcpf_pfinterf.txt ====

{+doc 5.1}

procedure AdjustRepresentationFor(TheType: TypEntry);
  extern;

{+doc 5.2.1}

{+doc 5.2.2}

{+doc 5.2.3.1}

{+doc 5.2.3.2}

procedure OpenPresetSpace(Representation: TypeRepresentation);
  extern;

procedure InxPreset(PackedArray: Boolean;
                        LowIndex, HighIndex, LowBound: ObjectValue;
                        Representation: TypeRepresentation);
  extern;

==== ercs07/emas-2900/rtsup10.txt ====
! MODIFIED 12/11/81 - VERSION 20.13
! RESET NOPDEFS IN INIT

!**********************************************************************
!*
!*                    RUN TIME PASCAL
!*
!**********************************************************************
!
!
!**********************************************************************
!*
!*                            CONSTANTS
!*
!**********************************************************************
!
%CONSTINTEGER NO=0,YES=1
%CONSTSTRING(1)%ARRAY HEX TAB(0:15)="0","1","2","3","4","5","6","7", %C
              "8","9","A","B","C","D","E","F"
!
!

==== ercs07/emas-2900/rtsup11.txt ====
! MODIFIED 12/11/81 - VERSION 20.13
! RESET NOPDEFS IN INIT

!**********************************************************************
!*
!*                    RUN TIME PASCAL
!*
!**********************************************************************
!
!
!**********************************************************************
!*
!*                            CONSTANTS
!*
!**********************************************************************
!
%CONSTINTEGER NO=0,YES=1
%CONSTSTRING(1)%ARRAY HEX TAB(0:15)="0","1","2","3","4","5","6","7", %C
              "8","9","A","B","C","D","E","F"
!
!

==== ercs07/emas-2900/dsea20_libnucdiags.txt ====
T/CONST/
TC/DETPBVC/
I/  NILDESC = ?D FFFFFFFFFFFFFFFF;
/
 
TS/CCDIAG/,R/JRNL/PASSUBSYS/
TS/CCTTICLISO/,T+10,I/
  CCTTEBCGRAPHICS = 
 
    ?X '4040404040404040404040404040404040404040404040404040404040404040'& 
       '4040404040404040404040404040404040404040404040404040404040404040'& 
       '404040404040404040404A4B4C4D4E4F504040404040404040405A5B5C5D5E5F'& 
       '606140404040404040406A6B6C6D6E6F404040404040404040797A7B7C7D7E7F'& 
       '4081828384858687888940404040404040919293949596979899404040404040'& 
       '40A1A2A3A4A5A6A7A8A940404040404040404040404040404040404040404040'& 
       'C0C1C2C3C4C5C6C7C8C9404040404040D0D1D2D3D4D5D6D7D8D9404040404040'& 
       'E040E2E3E4E5E6E7E8E9404040404040F0F1F2F3F4F5F6F7F8F9404040404040' ; 
/
 
TS/UCCONST =/,T+1,I/
 

==== ercs07/emas-2900/slogosorg_pnacomin.txt ====
C     EDIT DATE     07FEB78  13:29
C     SOURCE FILE   PNACOMAJH.IN
C     AUTHOR        A. J.HOWARD
C     CLUSTER       80
      INTEGER     LIST (499), NAMES (499), CT, BITS (6, 2)
      COMMON      /PNACOM / LIST, NAMES, CT, BITS




==== ercs07/emas-2900/slogos_crutchfs.txt ====
'HEAD'  CRUTCH SYMBOLIC
C     EDIT DATE   11DEC78  16:01
C     SOURCE FILE CRUTCHJHP.FS
C     AUTHOR      J.H.PERINE
C     CLUSTER     5
      'OUTFILE' CRDATAJHP.FR
      BLOCK DATA
      'INCLUDE' CRUCOMJHP.IN,P
C     IMPLIED ADDRESS INSTRUCTIONS
      DATA  IMPLID / 'BRK ',  0,'CLC ', 24,'CLD ',216,'CLI ', 88,^
                     'CLV ',184,'DEX ',202,'DEY ',136,'INX ',232,^
                     'INY ',200,'NOP ',234,'PHA ', 72,'PHP ',  8,^
                     'PLA ',104,'PLP ', 40,'RTI ', 64,'RTS ', 96,^
                     'SEC ', 56,'SED ',248,'SEI ',120,'TAX ',170,^
                     'TAY ',168,'TYA ',152,'TSX ',186,'TXA ',138,^
                     'TXS ',154 /
      DATA  NIMPLI / 75 /
C           RELATIVE ADDRESS INSTRUCTIONS (BRANCH)
      DATA  RELTIV / 'BCC ',144,'BCS ',176,'BEQ ',240,'BMI ', 48,^
                     'BNE ',208,'BPL ', 16,'BVC ', 80,'BVS ',112 /
      DATA  NRELTI / 24 /

==== ercs07/emas-2900/slogosorg_stkdfdin.txt ====
C     EDIT DATE   03DEC78  12:11
C     SOURCE FILE STKDEFD.IN
C     AUTHOR      A. J. HOWARD
      INTEGER     OSTACK (20)
      EQUIVALENCE (STK (1, 8), OSTACK (1))


==== ercs07/emas-2900/ds2a20_rtenv.txt ====
%CONTROL X'0FFFFFFF'
!* RTENV - FOR PASCAL 20 (RUN-TIME)
!*
!* MAINLY DIAGNOSTICS SIMPLIFICATIONS
!*
!* T.MOORE    APRIL 1980
!*
!* MODIFIED 07/06/79                                                            
!*                                                                              
%EXTERNALLONGINTEGER ICL9CEAUXST                                                
!*                                                                              
%EXTERNALINTEGER ICL9CECTM32=1                                                  
!*                                                                              
%OWNINTEGER DIAGROUTE;! 0  OPEH   1  LOG    2  JOBBER                           
%OWNINTEGER DIAGMODE=1;!  1  OPEH   0 OWN(STAND-ALONE)   -1  JOBBER             
%OWNINTEGER MONCPU;! 0  NO REPORT   1  REPORT                                   
%EXTERNALINTEGER CTMREPORT;! 0  NO REPORT   1  REPORT                           
%OWNINTEGER CETOLF;! 0  ICL9CE FILE TAG ONLY   1 ALLOW ICL9LF AS WELL           
%OWNINTEGER FACILITY=4                                                          
%OWNINTEGER INITLANG=0                                                          
%OWNINTEGER OUTSTREAM ACTIVE;! 0  NO   1  YES (TIDY CALL REQUIRED)              

==== ercs07/emas-2900/dsea20_ioedfor.txt ====
P+1
I$(*#T+
%RANGECHECKS=YES
*)
$
B/REALIO/ICL9LP/
TS/SPACE,/ A/,E,/LITTLEE,/
TS/PROCEDURE P77RRERR/
R/P77RRERR( /ICL9LPREADRERR(/ T+1 I/    /
T$(*#E+$ D/*)/ T+1
I$%KEYEDENTRY ON
*)
$
R/P78READR( /ICL9LPRIOREAD(/ T+1 I/     / T+1 I/      /
*2(TC/P77RRERR/, I/      /, R/P77RRERR/ICL9LPREADRERR/, T+1)
TC/P78READR/, R/P78READR/ICL9LPRIOREAD/, T+1
TS/IF CH = E/ R/CH = E/(CH=E) OR (CH=LITTLEE)/
TS/END (* P78/ R/P78READR/ICL9LPRIOREAD/
T$(*#E-$ D/*)/ T+1
I$%KEYEDENTRY OFF
*)

==== ercs07/emas-2900/pddemo_rmess5.txt ====
!Updated 14/04/82 - Fortran77 run time faults cleaned-up (Andy)
!Updated 29/03/82 - Imp run time faults added (Alan).
! UPDATED 24/03/82 - STRING ADDRESS PASSED TO QRMESS INSTEAD OF STRING NAME
!*
%EXTERNALROUTINE QRMESS (%INTEGER ERRNO, %INTEGERNAME FLAG, LEN, %INTEGER STRADDR)
   ! ERRNO - ERROR NUMBER
   ! FLAG  - PASSED AS -1 IF ERROR NUMBER OUT OF RANGE, ELSE PASSED AS 0
   ! LEN   - LENGTH OF ERROR MESSAGE RETURNED
   ! STR   - ERROR MESSAGE STRING RETURNED
   %SWITCH MESS1 (1:75)
   %SWITCH MESS2 (101:200)
  %STRINGNAME STR
   %SWITCH MESS3 (401:424)
  STR==STRING(STRADDR)
   %IF 1 <= ERRNO <= 9 %OR 50 <= ERRNO <= 75 %THEN -> MESS1(ERRNO)
   %IF 101 <= ERRNO <= 200 %THEN -> MESS2(ERRNO)
   %IF 401 <= ERRNO <= 424 %THEN -> MESS3(ERRNO)


    { IMP run time faults }


==== ercs07/emas-2900/mixedsrce_calltest.txt ====
PROGRAM CALLTEST(OUTPUT);
VAR FIVE:INTEGER;
FUNCTION SET5:INTEGER;
BEGIN
SET5:=5;
END;
FUNCTION CALLFUNC(FUNCTION FUNC:INTEGER):INTEGER;EXTERN;
BEGIN
WRITELN('CALLING CALLFUNC');
FIVE:=CALLFUNC(SET5);
WRITELN('FIVE=',FIVE);
WRITELN('DID IT WORK');
END.

==== ercs07/emas-2900/pcfiles_analyser5.txt ====
{

 History
 -------

 11/09/85 - change call of FutureBlockLabel, new function ImpHead,
            set LabelId.
	  - in CheckDirective, call Eintialise & Eterminate in 
            Programme.
	  - insert include files eput & impint.
 19/09/85 - in Selector, include ExternalVar in set in StackReference 
            call.
 07/10/85 - amend MapBound.
 08/10/85 - add warnings for pragmas. (agh)
 08/10/85 - re-structure declarationpart. (agh)
 08/10/85 - remove error(188). (agh)
 15/10/85 - modify reset/rewrite/append for file binding. (agh)
 18/10/85 - provide better error recovery from undeclared identifiers
            and move embedded variant files into fixed part of the
            record. (agh)
 18/10/85 - introduce refinements ForwardBlockLabel and SetBdAddress

==== ercs07/emas-2900/rel11opt_op146.txt ====
! 1/6/85  - increase size of LPPTR to 1000 & check POSLEB at SKIP3 in TOPOLOGY
! 31/10/84 - set NEWBLFLAG=1 at SWTR(IOSPEC)
! 08/10/84 - remove call to GENBLOCK
! 19/07/84 - GENBLOCK  corrected to insert a new label in 1st triad
!            of new block if required
!          - LPPTR now deals with LEBs for multiple loops
! 02/07/84 - at SWTR(ASMT) set USE bit for opd2 before DEF bit for opd1
!            set NEWBLFLAFG in IOSPEC switch
! 02/04/84 - new code in BLOCKS to deal with list-directed I/O
! 31/01/84 - UPDATE SETUSE FOR DCMPLX & INTRIN
! 31/01/84 - NEW TRIADS DCMPLX, INTRIN, (IFUN)
! 17/01/84 - REMAP ON TO A TABLE IF ITS FULL ROUTINE HAS BEEN CALLED
! 12/01/84 - MAKE BIT STRIP ADDRESSES RELATIVE IN A BLOCK ENTRY
! 31/10/83 COPIED FROM ERCS06.REL8002_OP1B15
!*
%INCLUDE "host_host"
!*
%INCLUDE "targ_target"
!*
!%INCLUDE "pf_version"
!*

==== ercs07/emas-2900/strans_lncontfr.txt ====
    
      SUBROUTINE LNCONT (/DUMMY/)   
    
      INTEGER  INPTR
      INTEGER  OUTPTR   
      INTEGER  INMAX
      INTEGER  MAXTAB   
      INTEGER  MAXLIN   
      INTEGER  IFMAX
      INTEGER  MAXLEV   
      INTEGER  LINENO   
      INTEGER  PAGE 
      INTEGER  CLINE
      INTEGER  TLIMIT   
      INTEGER  LN   
      INTEGER  I, J, K  
      INTEGER  II, JJ, KK   
      INTEGER  LEXVAL   
      INTEGER  SLEN 
      INTEGER  LEVEL
      INTEGER  LEN  

==== ercs07/emas-2900/slinkf_chckerfr.txt ====
    
      SUBROUTINE CHCKER 
    
      INTEGER     RCOUNT
      INTEGER     RTYPE 
      INTEGER     RSTYPE
      INTEGER     RTMAX 
      INTEGER     RSZMAX
      INTEGER     RECORD (41)   
      INTEGER     RSIZE 
      INTEGER     RSIZES (20)   
      INTEGER ICLP02
      COMMON      /RECORD/ RCOUNT   
      COMMON      /RECORD/ RTYPE
      COMMON      /RECORD/ RSTYPE   
      COMMON      /RECORD/ RTMAX
      COMMON      /RECORD/ RSZMAX   
      COMMON      /RECORD/ RECORD   
      COMMON      /RECORD/ RSIZE
      COMMON      /RECORD/ RSIZES   
      COMMON     /RECORD/ ICLP02

==== ercs07/emas-2900/slogosorg_cdiagafs.txt ====
'HEAD'  EXPLODED LIST ROUTINES
C     EDIT DATE   10DEC78  21:05
C     SOURCE FILE CDIAGAJH.FS
C     AUTHOR      A. J. HOWARD/J.H.PERINE
C     CLUSTER     27
      'OUTFILE'   LISTAJH.FR
      SUBROUTINE  LIST (FUNC, ARG1, ARG2)
      INTEGER     FUNC, ARG1, ARG2
      'INCLUDE'   CTRLAJH.IN,
      EXTERNAL    OLLST
      'IF' (LISTF .NE. 0 .AND. PRINTF .NE. 0)
         CALL OVLOD (OLLST)
         CALL OLIST (FUNC, ARG1, ARG2)
         'ENDIF'
      RETURN
      END
      'OUTFILE'   OLISTAJH.FR
N     OVERLAY     OLLST

      SUBROUTINE  OLIST (FUNC, ARG1, ARG2)
      INTEGER     FUNC, ARG1, ARG2

==== ercs07/emas-2900/slinks_listrbfs.txt ====
'HEAD'  LIST 6502 RB FILES
C     EDIT DATE   01FEB79  17:54
C     SOURCE FILE LISTRBGAK.FS
C     AUTHOR      GARY A. KUDIS
      'OUTFILE' LISTRBGAK.FR
      PROGRAM RBLIST
      INTEGER     GCHAR
      'INCLUDE' CHARACGAK.IN,
      'INCLUDE' IODEFNGAK.IN,
      'INCLUDE' IOFILEGAK.IN,
      INTEGER     RBQUES (7)
      INTEGER     LSQUES (4)
      INTEGER     ANSWER (16)
      INTEGER     DFAULT (5)
      DATA        RBQUES /'RB FILE NAME? '/
      DATA        LSQUES /'LS FILE?'/
      DATA        DFAULT /'RBLISTLST '/
      'EJECT'
C LISTRB ::
      'DO'
         CALL SET (BLANKS, ANSWER, 14)

==== ercs07/emas-2900/slogosorg_ioftmfs.txt ====
'HEAD'  INPUT/OUTPUT PROCESSING
C     EDIT DATE   12DEC78  10:53
C     SOURCE FILE IOFTM.FS
C     AUTHOR      F. T. MICKEY
C     CLUSTER     6
      'OUTFILE' IOFTM.FR
N     OVERLAY OLIO
      SUBROUTINE IO
      'INCLUDE' LOGOSAJH.IN,
      'INCLUDE' IOCONFTM.IN,
      'INCLUDE' NLISTCFTM.IN,
      'INCLUDE'   NLNAMEFTM.IN,
      'INCLUDE' SRCXDFFTM.IN,
      'INCLUDE' BLDPOAJH.IN,
      'INCLUDE'   STKDEFA.IN,
      'INCLUDE'   STKDEFB.IN,
      'INCLUDE'   STKDEFC.IN,
      'INCLUDE'   STKDEFD.IN,
      'INCLUDE' OPERSAJH.IN,
      'INCLUDE' LEVELSAJH.IN,
      'INCLUDE' CPAREAJH.IN,

==== ercs07/emas-2900/slinkf_characfr.txt ====
    
      BLOCK DATA
    
      INTEGER     CHAR  
      INTEGER     CHMASK
      INTEGER     CR, LF
      INTEGER     CRLF  
      INTEGER     BLANK, PERIOD 
      INTEGER     BLANKS, DASHES, COLONS, SLASHS
      INTEGER     ACH, BCH, CCH, DCH, ECH, FCH  
      INTEGER     GCH, HCH, ICH, JCH, KCH, LCH  
      INTEGER     MCH, NCH, OCH, PCH, QCH, RCH  
      INTEGER     SCH, TCH, UCH, VCH, WCH, XCH  
      INTEGER     YCH, ZCH  
      INTEGER     LBRACE, RBRACE
      INTEGER     LBRACK, RBRACK
      INTEGER ICLP04
      COMMON      /CHARAC/ CHAR 
      COMMON      /CHARAC/ CHMASK   
      COMMON      /CHARAC/ CR, LF   
      COMMON      /CHARAC/ CRLF 

==== ercs07/emas-2900/pptboot_test5a.txt ====
 1 14 56 28134 28124 0 50 1 44 0 4FIVE 2 60 24 51 5TEST5 65538 0 0 34308 1 5 5 5 6 45 2 25 2 16 792 4 56 186 25 2 20 796 4 56 186 46 2 2 8 5 7 28-1 52 0 0 0 2 0 24 0 0 0 0 0 0 0 0

==== ercs07/emas-2900/slogof_listcdfr.txt ====
 
      BLOCK DATA 
 
      INTEGER  LRET, OFFSET, LINEX, LTIME, LN 
      INTEGER  LINE (40) 
      INTEGER  INDXFL, LX, TABNR, TABX, LMODE 
      LOGICAL  LENTER 
      COMMON   /LCOM/   LRET, OFFSET, LINEX, LTIME, LN 
      COMMON   /LCOM/   LINE 
      COMMON   /LCOM/   INDXFL, LX, TABNR, TABX, LMODE 
      COMMON  /LCOM/   LENTER 
      DATA  LINE  /40*8224/ 
      DATA  OFFSET   / 0/ 
      DATA  LENTER   / .FALSE. / 
      END 

==== ercs07/emas-2900/l.txt ====
SUBFILE: MUXDEM.LOS @15:57 23-MAY-1979 <055> (1483)
''HEAD,FRAME MULTIPLEX & DEMULTIPLEX
''TITLE,MUXDEMUX
''LIST
 //***************************************************
 //
 //	DESCRIPTION:	SAMPLE INTRANODAL MULTIPLEXING AND DE-
 //			MULTIPLEXING PROGRAMS.
 //
 //	LOCATION:	MUXDEMUX.LOS
 //
 //	DATE:		NOVEMBER 9, 1978
 //

''EJECT
 //********************************
 //*				  *
 //*     POINTER BLOCK FORMAT     *
 //*				  *
 //********************************


==== ercs07/emas-2900/perqrel2_code19.txt ====
!* MODIFIED 20/05/82
!{2900C}%CONSTINTEGER W1=2;! 1 PERQ  2 EMAS
!{2900C}%CONSTINTEGER W2=4
!{2900C}%CONSTINTEGER W3=6
!{2900C}%CONSTINTEGER W4=8
!{2900C}%CONSTINTEGER W6=12
!{2900C}%CONSTINTEGER W8=16
!{2900C}%CONSTINTEGER W66=132
{PERQC}%CONSTINTEGER W1=1
{PERQC}%CONSTINTEGER W2=2
{PERQC}%CONSTINTEGER W3=3
{PERQC}%CONSTINTEGER W4=4
{PERQC}%CONSTINTEGER W6=6
{PERQC}%CONSTINTEGER W8=8
{PERQC}%CONSTINTEGER W66=66
%OWNINTEGER TRACETEMP
!*************  IMP80 version  ******************
!*
!***********************************************************************
!%INCLUDE "ERCS06.PERQ_TRIADOPS"                                        ;
!***********************************************************************

==== ercs07/emas-2900/pascalsce_passup01s.txt ====

%SYSTEMROUTINESPEC MOVE(%INTEGER L, F, T)
%EXTERNALROUTINESPEC CALL(%STRING (31) COM, %STRING (255) PARAM)
%EXTERNALROUTINESPEC PROMPT(%STRING (15) S)

%EXTERNALROUTINE PPROMPT(%INTEGER S1, S2, S3, S4)
%INTEGER I
%STRING (15) S
   MOVE(15,ADDR(S1),ADDR(S)+1)
   LENGTH(S) = 15
   %WHILE S # "" %AND CHARNO(S,LENGTH(S)) = ' ' %C
      %THEN LENGTH(S) = LENGTH(S)-1
!REMOVE TRAILING SPACES
   PROMPT(S)
%END;                                   !OF PPROMPT

%EXTERNALROUTINE PCALL(%INTEGER DUM1, ADE, DUM2, ADP)
%STRING (31) ENTRY
%STRING (255) PARAM
   ENTRY <- STRING(ADE+3)
   PARAM <- STRING(ADP+3)

==== ercs07/emas-2900/optctlp50b.txt ====
         TT == RECORD (ATRIADS + TR * TRIADLENGTH)
         TR = TR + 1
         TT = 0
         TT_CHAIN = TR
      %REPEAT
      TT_CHAIN = 0
      TR = LASTTRIAD + 1
      FREETRIADS = LASTTRIAD + 2
      LASTTRIAD = LASTTRIAD + 10
      %RESULT = TR
!
!
%END ;!  GETTRIAD
!*
!*
!***********************************************************************
!*                                                                     *
!*            A L L D E F                                             *
!*                                                                     *
!***********************************************************************
!*

==== ercs07/emas-2900/pcfiles_expeval5.txt ====

{

 History
 -------

 25/10/85 - Delete CheckCAPRange. Index checking for conformant
            arrays is performed intrinsically by the INDEXCAPC
            E-code. (agh)
 28/10/85 - Simplify TailoredFactorCheck by setting reference
            flag Class to PnterRef. (agh)
 04/11/85 - Modify SingletonSet, RangeSet, SetComparison to
            range-check member values. (agh)
 06/11/85 - Provide dummy MaxMinFunction. Provide WrdFunction. (agh)
 07/11/85 - Add ConvertInteger for integer-integer coversion.
            Add AdjustSet for empty-set length adjustment. (agh)
 08/11/85 - Record Boolean operator rather than jump in Binary-
            BooleanOperation. (agh)
 25/11/85 - Provide BinaryWordOperation plus range-checking for
            word-types. (agh)
 29/11/85 - Indentify p^ factors with Class = HeapRef in Tailored-

==== ercs07/emas-2900/slogosorg_regapbfs.txt ====
      'HEAD' REGISTER MANAGEMENT
C     EDIT DATE   10DEC78  20:16
C     SOURCE FILE REGAPB.FS
C     AUTHOR      A.P. BUCHALTER
C     CLUSTER     20
      'OUTFILE'   OREGAPB.FR
C     EDIT DATE   10DEC78  20:16
C     SOURCE FILE REGAPB.FS
C     AUTHOR      A.P. BUCHALTER
N     OVERLAY     OLREG
C     ROUTINES TO KEEP TRACK OF REGISTER CONTENTS
      SUBROUTINE OREGS(FUNC, OPND, OTYPE, SUBSC, STYPE, BIAS, REG)
      INTEGER     FUNC, OPND, OTYPE, SUBSC, STYPE, BIAS, REG
      'INCLUDE'   NLISTCFTM.IN,
      'INCLUDE'   LOGOSAJH.IN,
      'INCLUDE'   RMCOMJHP.IN,
      'INCLUDE'   WFLAGSJHP.IN,
      'INCLUDE'   REGSJHP.IN,
      INTEGER     MODE, SBIAS, DBIAS
      INTEGER     REGLO,  REGHI
      LOGICAL     NLTEST

==== ercs07/emas-2900/ctpsclma_sflctm.txt ====
AREA(ICL9LPCTMRMLD)
PATCH(XC2,X5D9C2038,CODE
      LSS.P   $A
      ST.L    XC
      STSF.L  XD
      ASF     X80
      RETURN  12
      ALIGN
$A    X30000040
      END,NO,PASC17)
#

==== ercs07/emas-2900/rel6_qput8.txt ====
!june 24 - vsn 7 better error messages
!june 24 watch for adjacency and repitition in data statements
!june 18 work segment limit raised to 128kb.
!june 16 - lmax  h -> I to avoid going negative in large compilations.
!JUNE 14 - VSN 6 F77 1.4
!          Avoid half(addr(x+1)) for IMP bug
!          Extend work are by 8 blocks at a time.
!          Patcher no longer needs size 80 strings.
!         Increment LMAX in areafrag: for bug.
!MAY 26 - VSN 5   F77 1.3
!         MODULE NAMES ARE CONVERTED TO UPPER CASE
! MAY 25 - COMMON NAMES TRUNCATED TO 8 FOR LOADER TABLE.
!         VERSION STRING PADDED TO 80 FOR PATCHER
%CONSTINTEGER EMAS=0,PERQ=1,SYS=PERQ
%CONSTINTEGER NOTSYS=(SYS+1)&1
!********************************************
!*             PERQ LPUT                    *
!********************************************




==== ercs07/emas-2900/optctl2.txt ====
!* modified 24/09/82
!*
%INCLUDE "ERCS06.OPT_CTLSPECS"
%INCLUDE "ERCS06.PERQ_COMFMT"
%INCLUDE "ERCS06.PERQ_TRIADOPS"
!*
%SYSTEMROUTINESPEC OUTFILE(%STRING(31) S,
                           %INTEGER SIZE,GAP,PROTECTION,
                           %INTEGERNAME CONADDR,FLAG)
%SYSTEMINTEGERMAPSPEC COMREG(%INTEGER N)
!*
%EXTERNALROUTINESPEC PRINT TR(%INTEGER INDEX,ADICT,ANAMES,
           LEVEL,%RECORD(TRIADF)%NAME TRIAD)
!*
%EXTERNALROUTINESPEC BLOCKS(%INTEGER GOTOLIST)
%EXTERNALROUTINESPEC OP2
%EXTERNALROUTINESPEC OPTSOURCE
!*
%ROUTINE PRINT TRIADS
%INTEGER I
%RECORD(TRIADF)%NAME TR

==== ercs07/emas-2900/dsea20_lputed1.txt ====
#ALT 1-21
%CONTROL X'0FFFFFFF'
!****************************************************
!*
!*  LPUT
!*
!*  EXTRACTED FROM EDINBURGH'S IMP MODULE FCSM10
!*  FOR USE IN BSV53/KSV17 PASCAL SYSTEM (PASCAL 20)
!*
!*  T.MOORE  FEB '80
!*
!****************************************************
!*
!*
#
T22,D/,AUXAREA/
DEL 23-27
DEL 31
DEL 34-691
#INS 694
%SYSTEMROUTINESPEC INITSERVICES

==== ercs07/emas-2900/slogos_bracefin.txt ====
C     EDIT DATE   09OCT78  11:11
C     SOURCE FILE BRACEFTM.IN
C     AUTHOR      F. T. MICKEY
C     CLUSTER     X
      INTEGER     BRACEX, SELX,    LSX,     SELXB
      INTEGER     FUNCNT, FSCNT,   FRCNT,   FUNVAL
      INTEGER     NRFLS,  ARGSIZ,  PARCNT
      INTEGER     BSTACK (10), SUBENT (40)
      INTEGER     FLS (6),     PARSAV,      FLSAVE (6)
C     EQUIVALENCES FOR LOOP AND WHILE STACK
      INTEGER     WHSTRT (30), WHLOW (10), WHHIGH (10)
      INTEGER     LOOPT  (10), LOOPE (10),  LOOPF (10)
      COMMON   /BRACE/  BRACEX, SELX,   LSX,    SELXB
      COMMON   /BRACE/  FUNCNT, FSCNT,  FRCNT,  FUNVAL
      COMMON   /BRACE/  NRFLS,  ARGSIZ, PARCNT
      COMMON   /BRACE/  WHSTRT, BSTACK, SUBENT
      COMMON   /BRACE/  FLS,    PARSAV, FLSAVE
      EQUIVALENCE (WHSTRT, LOOPT) 
      EQUIVALENCE (WHLOW,  LOOPE, WHSTRT (11)) 
      EQUIVALENCE (WHHIGH, LOOPF, WHSTRT (21)) 

==== ercs07/emas-2900/inpds_opinxjin.txt ====
C     EDIT DATE   31MAR78  13:00
C     SOURCE FILE OPINXJHP.IN
C     AUTHOR      J.H.PERINE
C     DEFINE COMMON BLOCK OF OP CODE INTERNAL REFERENCE VALUES.
C     ALL NAMES ARE 3 LETTER OP CODE PLUS 'INX' FOR INDEX.
C     NO IMPLIED OR RELATIVE ADDRESS OPS INCLUDED.
      INTEGER  ADCINX
      INTEGER  ANDINX
      INTEGER  ASLINX
      INTEGER  BITINX
      INTEGER  CMPINX
      INTEGER  CPXINX
      INTEGER  CPYINX
      INTEGER  DECINX
      INTEGER  EORINX
      INTEGER  INCINX
      INTEGER  JMPINX
      INTEGER  JSRINX
      INTEGER  LDAINX
      INTEGER  LDXINX
      INTEGER  LDYINX

==== ercs07/emas-2900/qfiles5apr_f77rmess1.txt ====
%EXTERNALROUTINE QRMESS (%INTEGER ERRNO, %INTEGERNAME FLAG, LEN, %STRINGNAME STR)
   ! ERRNO - ERROR NUMBER
   ! FLAG  - PASSED AS -1 IF ERROR NUMBER OUT OF RANGE, ELSE PASSED AS 0
   ! LEN   - LENGTH OF ERROR MESSAGE RETURNED
   ! STR   - ERROR MESSAGE STRING RETURNED
   %SWITCH MESS1 (1:75)
   %SWITCH MESS2 (101:200)
   %SWITCH MESS3 (401:424)
   %IF 1 <= ERRNO <= 9 %OR 50 <= ERRNO <= 75 %THEN -> MESS1(ERRNO)
   %IF 101 <= ERRNO <= 200 %THEN -> MESS2(ERRNO)
   %IF 401 <= ERRNO <= 424 %THEN -> MESS3(ERRNO)
   FLAG = -1
   %RETURN
   MESS1(1): STR = "Real overflow"     ; -> END
   MESS1(2): STR = "Real underflow"     ; -> END
   MESS1(3): STR = "Integer overflow"     ; -> END
   MESS1(4): STR = "Decimal overflow"     ; -> END
   MESS1(5): STR = "Zero divide"     ; -> END
   MESS1(6): STR = "Array bounds exceeded"     ; -> END
   MESS1(7): STR = "Capacity exceeded"     ; -> END
   MESS1(8): STR = "Illegal operation"     ; -> END

==== ercs07/emas-2900/helpsa20_bridgectld.txt ====
MACRO BRIDGECTLOAD20 IS (
     LITERAL (OMFLIB) %OMFLIB := 'DWO20' )
MACBEGIN
EXLB(%%OMFLIB)
SETLOADEROPTIONS(TOPDOWN)
LOAD(ICL9HNCENV&SFLGENERAL&SFLCTM&SFLFORCT&
     ICL9CEZLPUT&ICL9CEZINITSERVICES&ICL9CEZOMFOUT&ICL9CEZNCODE&
     ICL9LPJCLPROCS&ICL9LPLIBNUC&ICL9LPCTSYSIF&
     ICL9LPCTETXT&ICL9LPCOMPILE&BRIDGEINIT20, CASCADE=NO)
MACEND

==== ercs07/emas-2900/dsea20_rtocp1.txt ====
R/1/0/
E

==== ercs07/emas-2900/qfiles5apr_f77rmess2.txt ====
! UPDATED 24/03/82 - STRING ADDRESS PASSED TO QRMESS INSTEAD OF STRING NAME
!*
%EXTERNALROUTINE QRMESS (%INTEGER ERRNO, %INTEGERNAME FLAG, LEN, %INTEGER STRADDR)
   ! ERRNO - ERROR NUMBER
   ! FLAG  - PASSED AS -1 IF ERROR NUMBER OUT OF RANGE, ELSE PASSED AS 0
   ! LEN   - LENGTH OF ERROR MESSAGE RETURNED
   ! STR   - ERROR MESSAGE STRING RETURNED
   %SWITCH MESS1 (1:75)
   %SWITCH MESS2 (101:200)
  %STRINGNAME STR
   %SWITCH MESS3 (401:424)
  STR==STRING(STRADDR)
   %IF 1 <= ERRNO <= 9 %OR 50 <= ERRNO <= 75 %THEN -> MESS1(ERRNO)
   %IF 101 <= ERRNO <= 200 %THEN -> MESS2(ERRNO)
   %IF 401 <= ERRNO <= 424 %THEN -> MESS3(ERRNO)
   FLAG = -1
   %RETURN
   MESS1(1): STR = "Real overflow"     ; -> END
   MESS1(2): STR = "Real underflow"     ; -> END
   MESS1(3): STR = "Integer overflow"     ; -> END
   MESS1(4): STR = "Decimal overflow"     ; -> END

==== ercs07/emas-2900/pptboot_pptest1.txt ====

==== ercs07/emas-2900/qfiles5apr_f77rmess3.txt ====
!Updated 29/03/82 - Imp run time faults added (Alan).
! UPDATED 24/03/82 - STRING ADDRESS PASSED TO QRMESS INSTEAD OF STRING NAME
!*
%EXTERNALROUTINE QRMESS (%INTEGER ERRNO, %INTEGERNAME FLAG, LEN, %INTEGER STRADDR)
   ! ERRNO - ERROR NUMBER
   ! FLAG  - PASSED AS -1 IF ERROR NUMBER OUT OF RANGE, ELSE PASSED AS 0
   ! LEN   - LENGTH OF ERROR MESSAGE RETURNED
   ! STR   - ERROR MESSAGE STRING RETURNED
   %SWITCH MESS1 (1:75)
   %SWITCH MESS2 (101:200)
  %STRINGNAME STR
   %SWITCH MESS3 (401:424)
  STR==STRING(STRADDR)
   %IF 1 <= ERRNO <= 9 %OR 50 <= ERRNO <= 75 %THEN -> MESS1(ERRNO)
   %IF 101 <= ERRNO <= 200 %THEN -> MESS2(ERRNO)
   %IF 401 <= ERRNO <= 424 %THEN -> MESS3(ERRNO)


    { IMP run time faults }

   %if errno = 2049 %then str = "Unnassigned Variable"   ; ->end

==== ercs07/emas-2900/mixedsrce1_rprocdef.txt ====
PROGRAM PROCDEF;
(*# E+ *)
PROCEDURE SETR(VAR R:REAL;VAR V:REAL);
BEGIN
R:=V;
END;
BEGIN
END.

==== ercs07/emas-2900/slinkf_fmtrbgfr.txt ====
    
      SUBROUTINE FMTRB  
    
      INTEGER     RCOUNT
      INTEGER     RTYPE 
      INTEGER     RSTYPE
      INTEGER     RTMAX 
      INTEGER     RSZMAX
      INTEGER     RECORD (41)   
      INTEGER     RSIZE 
      INTEGER     RSIZES (20)   
      INTEGER ICLP02
      COMMON      /RECORD/ RCOUNT   
      COMMON      /RECORD/ RTYPE
      COMMON      /RECORD/ RSTYPE   
      COMMON      /RECORD/ RTMAX
      COMMON      /RECORD/ RSZMAX   
      COMMON      /RECORD/ RECORD   
      COMMON      /RECORD/ RSIZE
      COMMON      /RECORD/ RSIZES   
      COMMON     /RECORD/ ICLP02

==== ercs07/emas-2900/qfiles5apr_prstring.txt ====
%BEGIN
PRINTSTRING("HELLO")
NEWLINE
%ENDOFPROGRAM

==== ercs07/emas-2900/pptboot_pptest2.txt ====

==== ercs07/emas-2900/qfiles5apr_f77rmess4.txt ====
!Updated 29/03/82 - Imp run time faults added (Alan).
! UPDATED 24/03/82 - STRING ADDRESS PASSED TO QRMESS INSTEAD OF STRING NAME
!*
%EXTERNALROUTINE QRMESS (%INTEGER ERRNO, %INTEGERNAME FLAG, LEN, %INTEGER STRADDR)
   ! ERRNO - ERROR NUMBER
   ! FLAG  - PASSED AS -1 IF ERROR NUMBER OUT OF RANGE, ELSE PASSED AS 0
   ! LEN   - LENGTH OF ERROR MESSAGE RETURNED
   ! STR   - ERROR MESSAGE STRING RETURNED
   %SWITCH MESS1 (1:75)
   %SWITCH MESS2 (101:200)
  %STRINGNAME STR
   %SWITCH MESS3 (401:424)
  STR==STRING(STRADDR)
   %IF 1 <= ERRNO <= 9 %OR 50 <= ERRNO <= 75 %THEN -> MESS1(ERRNO)
   %IF 101 <= ERRNO <= 200 %THEN -> MESS2(ERRNO)
   %IF 401 <= ERRNO <= 424 %THEN -> MESS3(ERRNO)


    { IMP run time faults }

   %if errno = 2049 %then str = "Unnassigned Variable"   %AND  ->end

==== ercs07/emas-2900/dsea20_edncode3.txt ====
I$%CONTROL X'0FFFFFFF'$$$
T84 A/254 // P./%C/ T85 P86
TELE

==== ercs07/emas-2900/tpmans.txt ====
J(:ERCS01.PMANS)
SETOPTIONS(NOLREADS)
INPUT(,,TPLIST)
----


ICL 2900 S5RIES TECHNICAL PUBLICATIONS HELD AT E.R.C.C., KINGS BUILDINGS

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


THE LIST BELOW DETAILS THE CURRENT STATUS OF OFFICIAL ICL PUBLICATIONS
RELATING MAINLY TO SYSTEM B.  SOME ARE NOT UP-TO-DATE, MISSING OR NOT
EVEN REQUIRED.  THE COMMENTS SHOULD BE OF SOME HELP TO INDICATE THE
STATE OF EACH MANUAL.  IT IS SOMETIMES VERY IMPORTANT TO READ ANY
PUBLICATIONS NOTICES FILED AT THE FRONT OF THE MANUALS AND THE
APPENDICES GIVING THE AVAILABILITY OF FACILITIES AT EACH RELEASE OF
THE SYSTEM OR PRODUCT.

THE MANUALS ARE FILED UNDER THE FOLLOWING CLASSIFICATIONS.


==== ercs07/emas-2900/slogos_objectfs.txt ====
'HEAD'  RELOCATABLE OBJECT FORMATTING
C     EDIT DATE   18JAN79  21:55
C     SOURCE FILE OBJECTAJH.FS
C     AUTHOR      A. J. HOWARD
C     CLUSTER     10
      'OUTFILE'   OBJECTAJH.FR
C     EDIT DATE   18JAN79  21:55
C     SOURCE FILE OBJECTAJH.FR
C     AUTHOR      A. J. HOWARD
N     OVERLAY     OLOBJ
      SUBROUTINE  PNCHO
C     FORMAT THE RELOCATABLE OBJECT FILE FOR THE LOADER
      'INCLUDE'   OBJECTAJH.IN,P
C     END OF OBJECTAJH.IN
      'INCLUDE'   CODE1FTM.IN,
      'INCLUDE'   CTRLAJH.IN,
      'INCLUDE'   LCFUNCAJH.IN,
      'INCLUDE'   OBDATAJHP.IN,
      'INCLUDE'   LOGOSAJH.IN,
      'INCLUDE'   NLARAYFTM.IN,
      'INCLUDE'   NLISTCFTM.IN,

==== ercs07/emas-2900/pptboot_pptest3.txt ====

==== ercs07/emas-2900/slogosorg_lexftmfs.txt ====
'HEAD'  LEXICAL PROCESSING
C     EDIT DATE   14JAN79  09:26
C     SOURCE FILE LEXFTM.FS
C     AUTHOR      A. J. HOWARD
C     CLUSTER     14
      'OUTFILE'   ADVANFTM.FR
C
C     GET NEXT OPERAND-OPERATOR PAIR FROM INPUT STREAM
C
      SUBROUTINE  ADVAN
      EXTERNAL    OLQOT
      INTEGER     ENTNUM, SOPLST, SNMLST   // EXTERNAL FUNCTIONS
      'INCLUDE'   LOGOSAJH.IN,
      'INCLUDE'   SRCDFSFTM.IN,
      'INCLUDE'   OPERSAJH.IN,
      'INCLUDE'   STKDEFA.IN,
      'INCLUDE'   STUFFAJH.IN,
      'INCLUDE'   NLNAMEFTM.IN,
      CALL CLRSTK (OPX)
      'IF' (STUFFO .NE. 0)
         NEXTOP = STUFFO

==== ercs07/emas-2900/slogof_stuffafr.txt ====
    
      SUBROUTINE  STUFF 
    
      INTEGER     STUFFO, STUFFN
      COMMON      /CSTUFF/ STUFFO, STUFFN   
    
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      INTEGER     NEXT,   NUMBER, I,      IOTYPE
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT
      INTEGER ICLP05
      LOGICAL     ENDOK,CONEND  
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG   
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG  
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV  

==== ercs07/emas-2900/pptboot_pptest4.txt ====

==== ercs07/emas-2900/ctms_opeh.txt ====
%EXTERNALROUTINESPEC ECTM REPORT INT(%STRING(63) MESS, %INTEGER N)
!
%EXTERNALROUTINE ICL9HE COMPERR(%INTEGER LANGUAGE, ERROR)
!
SELECT OUTPUT(0)
PRINT STRING("COMPERR - LANGUAGE");  WRITE(LANGUAGE,0)
PRINT STRING(", ERROR");  WRITE(ERROR,0)
NEW LINE
%END
!
%EXTERNALINTEGERFN ICL9HE DIAGOUT
%RESULT = 0
%END
!
%EXTERNALINTEGERFN ICL9HE FILE TIDY PROC(%LONGINTEGER PROCEDURE)
%RESULT = 0
%END
!
%EXTERNALINTEGERFN ICL9HE NOMDESC(%INTEGER DR0, DR1,  %C
      %LONGLONGREAL PROCEDURE)
%RESULT = 0

==== ercs07/emas-2900/dsea20_servicesed.txt ====
I#%CONTROL X'0FFFFFFF'
!***********************************************************************
!*
!*  SERVICES
!*
!*  ADAPTED FROM EDINBURGH IMP MODULE FCSM10
!*  FOR USE IN BSV35/KSV17 PASCAL SYSTEM (PASCAL 20)
!*
!*  INCLUDES :- ITOE , IOCP/WRITE (LISTING FILE) , NDIAG (DUMMY)
!*  SUPPORTS :- LPUT , OMFOUT , NCODE .
!*
!*  T.MOORE    MARCH '80
!*
!***********************************************************************
!*
!*
#
P6 R/32/20/
T7.E I/,CR=12/G
I$%CONSTINTEGER FALSEBOOL=0,TRUEBOOL=1$$$
P19 G R/131/119/ G I/%OWNINTEGER LISTFILEWRITEFAILURE///

==== ercs07/emas-2900/ds20imp_rtndiag.txt ====
%CONTROL X'0FFFFFFF'
!* RTNDIAG - FOR PASCAL 20 (RUNTIME)
!*
!* SHORTENED VERSION OF NDIAG CONTAINING:-
!*      NDIAG
!*      NOMDESC
!*
!* T.MOORE    APRIL 1980
!*
%SYSTEMROUTINESPEC OPEHUSERERROR(%INTEGER ERRNO,ADDINF,LANG,STACK)
%EXTERNALINTEGERFNSPEC ICL9HENOMDESC(%LONGINTEGER NAMEDESC,  %C
                                     %INTEGER P0,P1,P2,P3)
  
%SYSTEMROUTINE NDIAG(%INTEGER PCOUNT,LNB,FAULT,INF)
 
      OPEHUSERERROR(FAULT,0,1,5)
 
%END; ! NDIAG
 
%SYSTEMINTEGERFN NOMDESC(%LONGINTEGER NAMEDESC, %INTEGER P0,P1,P2,P3)
 

==== ercs07/emas-2900/pptboot_pptest5.txt ====

==== ercs07/emas-2900/pptboot_pptest6.txt ====

==== ercs07/emas-2900/pptboot_pptest7.txt ====

==== ercs07/emas-2900/pt_demo2.txt ====
PROGRAM DEMO2(INFILE);
TYPE STRING15=PACKED ARRAY[1..15] OF CHAR;
VAR INFILE:TEXT;
PROCEDURE PPROMPT(S:STRING15);EXTERN;
BEGIN
PPROMPT('HELLO THERE    ');
RESET(INFILE);
END.

==== ercs07/emas-2900/slogos_ioftmfs.txt ====
'HEAD'  INPUT/OUTPUT PROCESSING
C     EDIT DATE   12DEC78  10:53
C     SOURCE FILE IOFTM.FS
C     AUTHOR      F. T. MICKEY
C     CLUSTER     6
      'OUTFILE' IOFTM.FR
N     OVERLAY OLIO
      SUBROUTINE IO
      'INCLUDE' LOGOSAJH.IN,
      'INCLUDE' IOCONFTM.IN,
      'INCLUDE' NLISTCFTM.IN,
      'INCLUDE'   NLNAMEFTM.IN,
      'INCLUDE' SRCXDFFTM.IN,
      'INCLUDE' BLDPOAJH.IN,
      'INCLUDE'   STKDFA.IN,
      'INCLUDE'   STKDFB.IN,
      'INCLUDE'   STKDFC.IN,
      'INCLUDE'   STKDFD.IN,
      'INCLUDE' OPERSAJH.IN,
      'INCLUDE' LEVELSAJH.IN,
      'INCLUDE' CPAREAJH.IN,

==== ercs07/emas-2900/pptboot_pptest8.txt ====

==== ercs07/emas-2900/slogof_odumsffr.txt ====
    
      SUBROUTINE  ODUMS (CALLER)
    
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      INTEGER     NEXT,   NUMBER, I,      IOTYPE
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT
      INTEGER ICLP05
      LOGICAL     ENDOK,CONEND  
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG   
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG  
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV  
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE  
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N   
      COMMON   /LOGOS/  PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE  

==== ercs07/emas-2900/pt_demo3.txt ====
PROGRAM DEMO3(INPUT,OUTPUT);
TYPE COMMANDREC=RECORD
     LENGTH:INTEGER;
     DATA:PACKED ARRAY[1..8] OF CHAR
     END;
     PARAMREC=RECORD
     LENGTH:INTEGER;
     DATA:PACKED ARRAY[1..12] OF CHAR
     END;
VAR COMMAND:COMMANDREC;
    PARAM:PARAMREC;
PROCEDURE PCALL(VAR CL,PL:INTEGER);EXTERN;
BEGIN
COMMAND.LENGTH:=6;
COMMAND.DATA:='DEFINE  ';
PARAM.LENGTH:=9;
PARAM.DATA:='3,POUTPUTXXX';
PCALL(COMMAND.LENGTH,PARAM.LENGTH);
END.

==== ercs07/emas-2900/pptboot_pptest9.txt ====

==== ercs07/emas-2900/slinksorg_iofilein.txt ====
C     EDIT DATE   09JAN79  17:22
C     SOURCE FILE IOFILEGAK.IN
C     AUTHOR      GARY A. KUDIS
C     I/O FILE DEFINITIONS
      INTEGER     CMFILE (16)
      INTEGER     RBFILE (16)
      INTEGER     OBFILE (16)
      INTEGER     MPFILE (16)
      INTEGER     DBFILE (16)
N     INTEGER     OVFILE (5)
N     INTEGER     TOFILE (3)
      INTEGER     TIFILE (3)
      COMMON      /FILES / CMFILE
      COMMON      /FILES / RBFILE
      COMMON      /FILES / OBFILE
      COMMON      /FILES / MPFILE
      COMMON      /FILES / DBFILE
N     COMMON      /FILES / OVFILE
N     COMMON      /FILES / TOFILE
      COMMON      /FILES / TIFILE


==== ercs07/emas-2900/pffiles_globalsx.txt ====
{

 History
 -------

 11/09/85 - ecodes inserted, const MaxImpstr & type ImpStr defined, 
            field Adid inserted in RuntimeAddress & BlockLabel.
 23/09/85 - Pascal specific ecodes inserted.
 25/09/85 - PlabelId,GlaOffset,StatOffset,GSTOffset defined.
 07/10/85 - insert Ecodes LOADCAP & INDEXCAP.
 08/10/85 - modify IdRecord to fix variant access error. (agh)
 15/10/85 - add InputSpelling, OutputSpelling for file binding. (agh)
 16/10/85 - History tidied. (agh)
 16/10/85 - Value ForChar added to Repkind, TypeRepresentation
            simplified for ForSelector. CAPList removed and 
            StackOffset, ParamOffset re-typed to ByteRange in 
            FrameRecord. (agh)
 17/10/85 - declared LastFlowLine for diagnostics module. (agh)
 18/10/85 - declare FirstChoice for better error recovery. (agh)
 22/10/85 - simplify FrameRecord and ManualList for file
            initialisations. Delete ItemShapes. (agh)

==== ercs07/emas-2900/slinkf_t20p1gfr.txt ====
    
      SUBROUTINE T20P1  
    
      LOGICAL     MPFLAG
      LOGICAL     OVMODE
      LOGICAL     LBMODE
      LOGICAL     LOADRB
      LOGICAL     SFLAG 
      INTEGER     VERS  
      INTEGER     LOADAD
      INTEGER     ZLOC, ZSTR, ZMAX, ZLIMIT  
      INTEGER     CLOC, CSTR, CMAX, CLIMIT  
      INTEGER     NLOC, NSTR, NMAX, NLIMIT  
      INTEGER     DLOC, DSTR, DMAX, DLIMIT  
      INTEGER     OLOC, OMAX, OSET  
      INTEGER     START 
      INTEGER     MODNLX
      INTEGER     CKSUM 
      INTEGER     KEY   
      INTEGER ICLP05
      COMMON      /LDATAX/ MPFLAG   

==== ercs07/emas-2900/pnxrel01_op2p43.txt ====
! 02/07/84 - change OPTSAB(CMPLX) entry to X'06'
! 11/04/84 - don't word align FREETABS in BMOVHECK
! 10/04/84 - scaling correction in bmovecheck
! 31/01/84 - UPDATE OPSTAB FOR DCMPLX & INTRIN
! 18/01/84 - ADJUST BIT STRIP ADDRESSES
! 17/01/84 - MAKE CALLS OF CREATETAB CONSISTTENT
! 23/11/83 call EDUMPTRACE in OP2A; set up LDUMPTRACE & BMTRACE
! 22/11/82 call CDUMPTRACE in OP2A
! 27/10/83 COPIED FROM ERCS06.REL90_OP2B13
!*
%INCLUDE "host_host"
%INCLUDE "targ_target"
%INCLUDE "pf_version"
!*
%INCLUDE "bits_fmts"
%INCLUDE "bits_optspecs"
%INCLUDE "bits_consts"
%INCLUDE "bits_optfmts"
!
%INCLUDE "bits_triadops"
!*

==== ercs07/emas-2900/frigld.txt ====
%SYSTEMROUTINESPEC MOVE(%INTEGER L,F,T)
%ROUTINE FAIL(%STRING (255) S)
SELECTOUTPUT(0)
   PRINTSTRING(S)
   NEWLINE
   %STOP
%END;                                   !OF FAIL
%ROUTINE READLINE(%STRINGNAME S)
   SKIPSYMBOL %WHILE NEXTSYMBOL = NL
   S = ''
   %UNTIL NEXTSYMBOL = NL %THEN S = S.TOSTRING(NEXTSYMBOL) %C
      %AND SKIPSYMBOL
   SKIPSYMBOL
%END;                                   !OF READLINE
%RECORDFORMAT RF(%INTEGER CONAD,FILETYPE,DATSTART,DATAEND)
%EXTERNALROUTINESPEC PROMPT(%STRING(15)S)
%SYSTEMROUTINESPEC DISCONNECT(%STRING(31)S,%INTEGERNAME FLAG)
%SYSTEMROUTINESPEC CONNECT(%STRING(31)FILE,%INTEGER MODE,HOLE,PROTECT,%C
%RECORDNAME R,%INTEGERNAME FLAG)
%EXTERNALROUTINE FRIGLD(%STRING (255) S)
%INTEGERARRAYFORMAT HEADAF(0 : 16)

==== ercs07/emas-2900/slinkf_recordfr.txt ====
    
      BLOCK DATA
    
      INTEGER     RCOUNT
      INTEGER     RTYPE 
      INTEGER     RSTYPE
      INTEGER     RTMAX 
      INTEGER     RSZMAX
      INTEGER     RECORD (41)   
      INTEGER     RSIZE 
      INTEGER     RSIZES (20)   
      INTEGER ICLP02
      COMMON      /RECORD/ RCOUNT   
      COMMON      /RECORD/ RTYPE
      COMMON      /RECORD/ RSTYPE   
      COMMON      /RECORD/ RTMAX
      COMMON      /RECORD/ RSZMAX   
      COMMON      /RECORD/ RECORD   
      COMMON      /RECORD/ RSIZE
      COMMON      /RECORD/ RSIZES   
      COMMON     /RECORD/ ICLP02

==== ercs07/emas-2900/slinks_maklibfs.txt ====
'HEAD'  MAKE LIBRARY BLOCKS
C     EDIT DATE   11JAN79  10:02
C     SOURCE FILE MAKLIBAJH.FS
C     AUTHOR      A. J. HOWARD
      'OUTFILE'   MAKLIBAJH.FR
      PROGRAM MAKLIB
      INTEGER     STFILE (16), ENFILE (16)
      INTEGER     LSTART, LSTOP, ERROR
      DATA        STFILE /'LIBSTRTZOB', 11*0/
      DATA        ENFILE /'LIBENDZOB ',   11*0/
      DATA        LSTART  /0/
      DATA        LSTOP   /0/
      CALL PCHAR  (LSTART, 1, 19)
      CALL PCHAR  (LSTOP,  1, 20)
P     CALL DEVICE (STFILE)
      CALL OPENN  (1, STFILE, ERROR)
      CALL WRSEQ  (1, LSTART, 2)
      CALL CLOSF  (1, ERROR)
P     CALL DEVICE (ENFILE)
      CALL OPENN  (1, ENFILE, ERROR)
      CALL WRSEQ  (1, LSTOP, 2)

==== ercs07/emas-2900/rel6_idiag2.txt ====
%SYSTEMROUTINESPEC PHEX(%INTEGER N)
!* PERQ IMP DIAGNOSTIC ROUTINE (ALAN 19/FEB/82)
!*
! LAYOUT OF DIAGNOSIC TABLES
!****** ** ********* ******
! THE BOUND FIELD OF PLT DESCRIPTOR STORED AT (LNB+3 & LNB+4) IF
! USED TO CONTAIN A DISPLACEMENT RELATIVE TO THE START OF SST OF THE
! DIAGNOSTIC TABLES FOR THE BLOCK OR ROUTINE BEING EXECUTED.
! A ZERO BOUND MEANS NO DIAGNOSTIC REQUESTED.(NB THIS MAY MEAN A DUMMY
! FIRST WORD IN THE SST).
! THE ABSOLUTE ADDRESS OF THE SST FOR THE CURRENT CODE SEGMENT WILL
! ALWAYS BE FOUND IN THE STANDARD 10 WORDS OF THE GLA/PLT
! FORM OF THE TABLES:-
! WORD 0    =   LINE OF RT IN SOURCE PROG <<16 ! LINE NO POSN(FROM LNB)
! WORD 1    =   (12 LANG DEPENDENT BITS)<<20 ! ENVIRONMENT
!               (TOP 2 BITS FOR ROUTINE TYPE.B'01'==SYSTEM ROUTINE)
!               (NEXT BIT SET FOR EBCDIC CHARS&STRINGS(ALGOLE ONLY))
! WORD 2    =   DISPLAY POSN (FROM LNB)<<16 ! RT TYPE INFO
! WORD 3    =   ZERO FOR BLKS OR STRING(<=11BYTES) BEING THE
!               RT NAME. THIS WILL TAKE WORDS 4 AND 5 IF NEEDED
! WORD 6    =  LANGUAGE DEPENDENT INFO . IMP ON CONDITIONS ETC

==== ercs07/emas-2900/slogosorg_faultffs.txt ====
'HEAD'  ERROR PROCESSING
C     EDIT DATE   18JAN79  21:02
C     SOURCE FILE FAULTFTM.FS
C     AUTHOR      F. T. MICKEY
C     CLUSTER     25
      'OUTFILE'   FAULTPFTM.FR
      SUBROUTINE  FAULTP (FAULT)
      'INCLUDE'   CTRLAJH.IN,
      'INCLUDE'   FAULTSFTM.IN,P
      INTEGER     FAULT
      EXTERNAL    OLFLT
      'IF' (CTLUSE .NE. 0)
         CTLERR = FAULT
         'ELSE'
         FLTNR = FAULT
         CALL OVLOD (OLFLT)
         CALL OFAULT
         EXFLT = 0
         'ENDIF'
      RETURN
      END

==== ercs07/emas-2900/slinkf_t17p1gfr.txt ====
    
      SUBROUTINE T17P1  
    
      INTEGER     ECODE 
      INTEGER     CMCHAN
      INTEGER     RBCHAN
      INTEGER     OBCHAN
      INTEGER     MPCHAN
      INTEGER     DBCHAN
      INTEGER     TTYIN 
      INTEGER     TTYOUT
      COMMON      /IODEFN/ ECODE
      COMMON      /IODEFN/ CMCHAN   
      COMMON      /IODEFN/ RBCHAN   
      COMMON      /IODEFN/ OBCHAN   
      COMMON      /IODEFN/ MPCHAN   
      COMMON      /IODEFN/ DBCHAN   
      COMMON      /IODEFN/ TTYIN
      COMMON      /IODEFN/ TTYOUT   
C     WRITE (DBCHAN, 1) 
C    1FORMAT (' ENTER T17P1')   

==== ercs07/emas-2900/inpds_rmcodein.txt ====
C     FUNCTION CODES FOR REGISTER MANAGEMENT (REGMAN) CALLS
      INTEGER  CLRACV      // ERASE ALL REGISTER CONTENTS
      INTEGER  CLRACX      // ERASE SPECIFIC REGISTER CONTENTS
      INTEGER  CLRSTA      // ERASE ACTIVE STATUS OF ALL REGISTERS
      INTEGER  TRAREG      // TRASNSFER REGISTER TO REGISTER
      INTEGER  SAVREG      // TEMP STORE IF REGISTER IS ACTIVE
      INTEGER  CTFREE      // FIND A FREE CT OF 1 OR 2 WORDS
      INTEGER  SETREG      // SET THE REGISTER CONTENTS FROM THE STACK
      COMMON   /RMCODE/ CLRACV, CLRACX, CLRSTA, TRAREG, SAVREG
      COMMON   /RMCODE/ CTFREE, SETREG


==== ercs07/emas-2900/slinkf_numergfr.txt ====
    
      SUBROUTINE NUMER  
      INTEGER     NCOMP 
      EXTERNAL    NCOMP 
      INTEGER     I 
    
      INTEGER     LIST (512)
      INTEGER     NAMES (512)   
      INTEGER     NCOUNT
      INTEGER     LSTOP 
      COMMON      /PNAMES/    LIST  
      COMMON      /PNAMES/    NAMES 
      COMMON      /PNAMES/    NCOUNT
      COMMON      /PNAMES/    LSTOP 
    
      INTEGER     ECODE 
      INTEGER     CMCHAN
      INTEGER     RBCHAN
      INTEGER     OBCHAN
      INTEGER     MPCHAN
      INTEGER     DBCHAN

==== ercs07/emas-2900/pascalsce_ctanal.txt ====
ANALYSE CTPASCALX
ANALYSE CTPASCALX_ICL9CENCODE,*
ANALYSE CTPASCALX_ICL9CESERV,*
ANALYSE CTPASCALX_ICL9LPCOMP,*
ANALYSE CTPASCALX_ICL9LPCTET,*
ANALYSE CTPASCALX_ICL9LPCTSYS,*
ANALYSE CTPASCALX_ICL9LPEHMTM,*
ANALYSE CTPASCALX_ICL9LPJCLPR,*
ANALYSE CTPASCALX_ICL9LPLIBNC,*
ANALYSE CTPASCALX_SFLCTM,*
ANALYSE CTPASCALX_SFLFORCT,*
ANALYSE CTPASCALX_SFLGENERAL,*
ANALYSE CTPASCALX_MYLPUT,*
ANALYSE CTPASCALX_MYOMFOUT,*
ANALYSE CTPASCALX_CTPASCAL2,*
ANALYSE CTPASCALX_CTSUP7,*

==== ercs07/emas-2900/culhamsce_libsdis.txt ====
%BEGIN
%CONTROL 0
!
%INTEGERARRAY STJNUM(1:256)            ;! JOURNAL NUMS IN CURRENT SDI   00000300
!?? ; %OWNHALFINTEGERARRAY STIPCT(1:256) ;! NO OF I/P ITEMS PER JOURNAL 00000400
!?? ; %OWNHALFINTEGERARRAY STOPCT(1:256) ;! NO OF THESE ITEMS DISTRD.   00000500
!?? ; %OWNHALFINTEGERARRAY STUSCT(1:256) ;! NO OF USERS RECEIVING ITEMS 00000600
%OWNBYTEINTEGERARRAY STUSMK(1:256)     ;! MARKER ARRAY                  00000650
!
%INTEGER CSUNIT                        ;! STATS CUMULATION FILE UNIT NO
%INTEGER MXSTJN                        ;! NO OF DIFF JOURNAL NUMS I/P
%INTEGER NEWSTS                        ;! NEW STATS FILE INDICATOR
%INTEGER WEEKNO                        ;! WEEK NUMBER
!
%OWNINTEGER MXNUMB=1024                ;! MAX SIZE OF JOURN NO ARRAY    00001300
%OWNINTEGER STUSOP                     ;! TOTAL NO OF COPIES DISTRIB    00001350
%OWNINTEGER STUSSV                     ;! NO OF USERS RECEIVING ITEMS
%OWNINTEGER STUSTL                     ;! NO OF USERS IN SYSTEM
%OWNINTEGER YES=1                      ;! CONSTANT
!
%BEGIN                                                                  00001800

==== ercs07/emas-2900/pffiles_syntax.txt ====
function Missing(Symbol: SymbolType): integer;
  extern;

procedure AcceptSymbol;
  extern;

procedure Accept(SymbolExpected: SymbolType);
  extern;

procedure AcceptEquals;
  extern;

procedure CheckContext(ContextExpected: SetOfSymbols);
  extern;

procedure CheckNextOrContext(SymbolsExpected, DefaultContext:
                               SetOfSymbols);
  extern;

procedure SkipToContext(ContextNeeded: SetOfSymbols);
  extern;

==== ercs07/emas-2900/slinkf_t13p1gfr.txt ====
    
      SUBROUTINE T13P1  
    
      INTEGER     RCOUNT
      INTEGER     RTYPE 
      INTEGER     RSTYPE
      INTEGER     RTMAX 
      INTEGER     RSZMAX
      INTEGER     RECORD (41)   
      INTEGER     RSIZE 
      INTEGER     RSIZES (20)   
      INTEGER ICLP02
      COMMON      /RECORD/ RCOUNT   
      COMMON      /RECORD/ RTYPE
      COMMON      /RECORD/ RSTYPE   
      COMMON      /RECORD/ RTMAX
      COMMON      /RECORD/ RSZMAX   
      COMMON      /RECORD/ RECORD   
      COMMON      /RECORD/ RSIZE
      COMMON      /RECORD/ RSIZES   
      COMMON     /RECORD/ ICLP02

==== ercs07/emas-2900/slinkf_txtcomfr.txt ====
    
      BLOCK DATA
    
      INTEGER     TEXT (27), LEFT (4), RIGHT (4)
      INTEGER ICLP01
      COMMON      /TEXTC/ TEXT, LEFT, RIGHT,ICLP01  
      DATA  TEXT  /'  ','  ','NO','UN',' =',' X','XX','X,',' D','AT','A 
     1','= ','XX','XX',', ','ZR','EL',' =',' X','XX','X,',' C','OD','E '
     1,'= ','XX','XX'/  
      DATA  LEFT  / 12, 25, 38, 51/ 
      DATA  RIGHT / 15, 28, 41, 54/ 
      END   

==== ercs07/emas-2900/pascalprogs_trainsdata.txt ====
EDINBURGH  PETERBOROUGH
00.08 05.47
08.15 12.20
14.15 18.24
16.15 20.19
17.00 21.27
20.20 03.19
22.30 04.16
23.15 04.56
*

EDINBURGH   LONDON(KX)
00.08 07.14
07.15 12.13
08.15 13.12
09.15 14.13
10.15 14.56
11.15 16.11
12.15 17.07
12.50 17.46
13.15 18.11

==== ercs07/emas-2900/slogof_dimenafr.txt ====
    
      SUBROUTINE  DIMEN 
      INTEGER     TS, IERR  
      INTEGER     NBX, NBSTK (20)   
      INTEGER     IOTS, IOTS1, INITLC   
      INTEGER     MODETS, MTS1  
      INTEGER     OLDMOD, OLDTPL
      INTEGER     REDEF 
      INTEGER     FIRST, LAST, COUNT
      INTEGER     NLOPS, CQVAL, SNMLST  
      LOGICAL     NLTEST
      EXTERNAL    OLCRU 
    
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      INTEGER     NEXT,   NUMBER, I,      IOTYPE
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 

==== ercs07/emas-2900/slinks_memoryin.txt ====
C     EDIT DATE   01JUN78  17:38
C     SOURCE FILE MEMORYGAK.IN
C     AUTHOR      GARY A. KUDIS
C     MEMORY USE MAP
C
C     ONE BIT PER MEMORY BYTE; THE BIT IS SETTO ONE (1) WHEN
C     IT IS USED. THERE ARE 4096 ENTRIES IN 'MEMORY'. EACH
C     ENTRY REPRESENTS THE STATUS OF 16 MEMORY BYTES - THUS
C     THE STATUS OF ALL 65636 BYTES.
C
C     ACCESS ALGORITHM TO STATUS OF MEMORY WITH ADDRESS = MEMLOC :
C        MEMX = MEMLOC/16 + 1
C        BITNO = MOD (MEMLOC, 16) + 1
C        BIT = BITS (BITNO)
C
C     ROM MEMORY MAP
C        ONE WORD PER 1K BYTES OF MEMORY; SET TO ZERO (0) WHEN
C        MEMORY IS 'ROM' AND SET TO ONE (1) WHEN 'RAM' MEMORY.
C
      INTEGER     MEMORY (4096)
      INTEGER     MEMX

==== ercs07/emas-2900/slogof_ploadffr.txt ====
    
      SUBROUTINE  PLOAD (INDEX, INMODE, LOAD, PARNO)
    
      INTEGER  NI,     NJ,     NK   
      INTEGER  NSIZE
      INTEGER  NLX,    FNLX,   REMNLX, OVNLX,  TNAME
      INTEGER  NLSTRT, NLSTOP, NLSIZE, SRCHST   
      INTEGER  NTSTRT   
      INTEGER  NTSTOP   
      INTEGER  NTSIZE   
      INTEGER  PARFLG   
      INTEGER  SPARFL   
      INTEGER  NLWRDS   
      INTEGER  TX   
      INTEGER  NLENO
      INTEGER  STDMD
      INTEGER  MSHIFT   
      INTEGER  REGCNT   
      INTEGER  NULLX
      INTEGER  STPTRX   
      INTEGER  SPMODE   

==== ercs07/emas-2900/cobrun.txt ====
%RECORDFORMAT JSVFORMAT( %LONGINTEGER IVALUE, %C
%INTEGER SIZE,KPOS,MAXREC, %C
%STRING(32) LNAME, %STRING(48) NAME, %C
%BYTEINTEGER FORMAT,ORG,KLEN,ACCESS,PACKING,DUM1)
%OWNRECORDARRAYFORMAT JSVAF(0:20)(JSVFORMAT)
%OWNRECORDARRAYNAME JSV(JSVFORMAT)
%OWNLONGINTEGERNAME JSN
%OWNINTEGER JSMAX=20
%OWNINTEGER QUITLNB,QUITCTB,QUITXNB,CREG34,CREG36
%RECORDFORMAT RF(%INTEGER CONAD,FILETYPE,DATASTART,DATAEND)
!
!    GLOBAL DECLARATIONS
!
%OWNSTRING(16) LIBFILNAME="COBLIB"
%OWNSTRING(16) COBRUNFN="COBRUNY"
%CONSTINTEGER FCMAX=10; !  MAXIMUM NUMBER OF FILE CONTROL BLOCKS
%CONSTINTEGER EBCDICSPACE=64
%OWNINTEGER FCN

!
!    FILE CONTROL BLOCKS ETC.

==== ercs07/emas-2900/pt_defmult.txt ====
%KEYEDENTRY ON
PROGRAM DEFMULT;
PROCEDURE MULTINT(I:INTEGER);
BEGIN
I:=I*I;
END;
BEGIN
END.

==== ercs07/emas-2900/slinkf_setfr.txt ====
    
      SUBROUTINE SET (VALUE, BUFFER, COUNT) 
      INTEGER VALUE, COUNT, BUFFER (1), I   
      DO  13004 I = 1, COUNT
      BUFFER (I) = VALUE
13004 CONTINUE  
    
      RETURN
      END   

==== ercs07/emas-2900/slogos_destin.txt ====

DESTROY ATESTAIN
DESTROY BLDPOAIN
DESTROY BRACEFIN
DESTROY CODE1FIN
DESTROY CPAREAIN
DESTROY CRUCOMIN
DESTROY CTRLAJIN
DESTROY FAULTSIN
DESTROY FLMSGAIN
DESTROY GENCMAIN
DESTROY GENCMBIN
DESTROY GENLXYIN
DESTROY IOCONFIN
DESTROY LABCOMIN
DESTROY LSDATAIN
DESTROY LCFUNCIN
DESTROY LCONSTIN
DESTROY LEVELSIN
DESTROY LISTCMIN
DESTROY LOGOSAIN

==== ercs07/emas-2900/slogof_nlopsffr.txt ====
    
      INTEGER FUNCTION NLOPS (FUNC, INDEX)  
    
      INTEGER  NI,     NJ,     NK   
      INTEGER  NSIZE
      INTEGER  NLX,    FNLX,   REMNLX, OVNLX,  TNAME
      INTEGER  NLSTRT, NLSTOP, NLSIZE, SRCHST   
      INTEGER  NTSTRT   
      INTEGER  NTSTOP   
      INTEGER  NTSIZE   
      INTEGER  PARFLG   
      INTEGER  SPARFL   
      INTEGER  NLWRDS   
      INTEGER  TX   
      INTEGER  NLENO
      INTEGER  STDMD
      INTEGER  MSHIFT   
      INTEGER  REGCNT   
      INTEGER  NULLX
      INTEGER  STPTRX   
      INTEGER  SPMODE   

==== ercs07/emas-2900/culmoldsce_libulws.txt ====
%BEGIN
%CONTROL 0
!    PROGRAM TO PRODUCE THE WEEKLY BULLETIN OUTPUT FROM A SINGLE
!    WEEK'S BULLETIN FILE ONLY.
!
%INTEGER BLUNIT                        ;! BULLETIN I/P LOGICAL UNIT NO
%INTEGER BLNK                          ;! BLANK WORD
%INTEGER BLOCK                         ;! CURRENT BLOCK NUMBER
%INTEGER CDTYPE                        ;! INPUT CARD TYPE               00000750
%INTEGER CHECK                         ;! CHECKING INDICATOR
%INTEGER CNT                           ;! INPUT CARD COUNT              00000850
%INTEGER DIAGNS                        ;! DIAGNOSTIC PRINT INDICATOR    00000830
%INTEGER DNUM                          ;! DIAGNOSTIC PRINT VARIABLE     00000860
%INTEGER ENDAUT                        ;! AUTHOR S/NAME TERMINATOR
%INTEGER I                             ;! LOOP VARIABLE
%INTEGER IC                            ;! POINTER TO CONCORDANCE
%INTEGER IN                            ;! POINTER TO NUMBER,POINTF
%INTEGER J                             ;! LOOP VARIABLE                 00001450
%INTEGER LIM                           ;! LOOP LIMIT                    00001650
%INTEGER LSUNIT                        ;! LISTING DEVICE LUN
%INTEGER MAXC                          ;! NUMBER OF CONCORDED ITEMS     00001350

==== ercs07/emas-2900/ctms_croute.txt ====
%EXTERNALINTEGERFN ROUTE(%LONGINTEGER ROUTE, %INTEGER OPERATION)
!
! Basic file route for EMAS character files.
!
! File route operation codes:
!
%CONSTINTEGER CREATE = 1, ASSIGN = 2, DELETE = 3, DEASSIGN = 4
%CONSTINTEGER CHOOSE RAM = 5
!
! File description parameter pair identifiers:
!
%CONSTINTEGER ACTUAL FILE SIZE = 150
%CONSTINTEGER MAXIMUM FILE SIZE = 151
%CONSTINTEGER PLACEMENT = 130
%CONSTINTEGER EMAS CONAD = 133
%CONSTINTEGER INITIAL FILE SIZE = 137
%CONSTINTEGER ACCESS TYPE = 138
%CONSTINTEGER TEMP RAM = 141
!
%SYSTEMROUTINESPEC CONNECT(%STRING(31) FILE, %INTEGER A, B, C,  %C
      %RECORDNAME R, %INTEGERNAME FLAG)

==== ercs07/emas-2900/pascalsce_pscltxt206.txt ====

PASCAL on EMAS
--------------

CONTENTS

1.  INTRODUCTION

2.  COMPILATION
2.1 Compilation Options
2.2 Compilation Listings

3.  EXECUTION
3.1 Use of Input and Output Media
3.2 The Standard PASCAL Files INPUT and OUTPUT
3.3 Separate Compilation of PASCAL Procedures and Functions
3.4 Mixed Language Programming
3.5 Interfacing to EMAS 2900

4.  BASIC ERROR ACTION
4.1 Error Reporting

==== ercs07/emas-2900/slinkf_t06p1gfr.txt ====
    
      SUBROUTINE T06P1  
    
      INTEGER     NSIZE,  NAME(16), NTITLE  
      INTEGER     NFLAGS (512)  
      INTEGER     NADDRS (512)  
      INTEGER     NPOSIT (512)  
      INTEGER     NDATA  (512)  
      INTEGER     NTEXTX (512)  
      INTEGER     NTEXT  (1000) 
      INTEGER     NLX, NLSTRT, NLSTOP   
      INTEGER     TXSTRT, TXSTOP
      INTEGER     NTXBTS
      INTEGER     USEBIT, COMBIT, OVLBIT, EPTBIT
      INTEGER     LDMBIT, MODBIT, MLTBIT, RLSBIT
      INTEGER     GDFBIT, TYPBTS
      INTEGER     ATYPE 
      INTEGER      ICLP07   
      LOGICAL     OLDNAM
      COMMON      /NTABLE/ NSIZE, NAME, NTITLE  
      COMMON      /NTABLE/ NFLAGS, NADDRS, NPOSIT, NDATA, NTEXTX

==== ercs07/emas-2900/dsea20_lnedicl9lp.txt ====
TC/MESSAGE TEXT BASE NUMBERS/
TC/EHDOCNMESSBASE = 1000/
R/(IE ERRORLINE,ROUTE,ETC*)//,T+1
I/                                 (I.E. ERRORLINE,ROUTE,ETC *)///
TC/P79/,R/P79INITDIAGTABLES/ICL9LPPMINITTABS/
T+1,R/ O/O/
T+1,R/ U/U/
T+1,R/ F/F/
T+1,R/V/  V/
TC/P79/,R/P79GETLINENO/ICL9LPPMLINENO/
T+1,R/V/      V/
TC/P79/,R/P79GETROUTINEID/ICL9LPPMBLOCKID/
*2(T+1,R/V/  V/)
TC/P79/,R/P79DUMPNAMESPACE/ICL9LPPMDMPSPACE/
R/     C/C/
T+1,R/     F/F/
T+1,R/     G/G/
T+1,R/     F/F/
T+1,R/ V/V/
TC/P78/,R/P78READR/ICL9LPRIOREAD/
T+1,R/V/     V/

==== ercs07/emas-2900/pcfiles_stdprocs5.txt ====
{

 History
 -------

 23/10/85 - many changes to specify i/o operations for 
            E-machine. (agh)
 24/10/85 - many changes to specify pack and unpack  
            operations for E-machine. (agh)
 25/10/85 - many changes to specify new and dispose heap
            operations for the E-machine. (agh)
 04/11/85 - Change calls to AccessArea and AddressArea to match
            new parameter lists. (agh)
 06/11/85 - Add bodies for SizeOfCAP, SizeRequest, SizeOperation
            StampProcedure. (agh)
 08/11/85 - Add body for WriteCAPString. (agh)
 03/12/85 - Changes to pack and unpack to support bit-level
            packing. (agh)
 04/12/85 - Changes to SizeOfCAP to use CAPSize operation. (agh)
 05/12/85 - Changes to pack and unpack procedures to improve
            bound-checking for constant and non-constant bounds. (agh)

==== ercs07/emas-2900/npcpf_pfstdprocs.txt ====
procedure SelectFile(FType: TypEntry);
extern;

procedure RestoreFile(IOFile: IOFileEntry);
extern;

procedure DiscardFile;
extern;

procedure InitIO;
extern;

procedure LoadFileDescriptor;
extern;

procedure PostsetBuffer(FileOp: StdProcFuncs);
extern;

procedure DoFileChecks(FileOP: StdProcFuncs);
extern;


==== ercs07/emas-2900/inpds_srcxdfin.txt ====
C     EDIT DATE   16SEP78  10:58
C     SOURCE FILE   SRCXDFFTM.IN
C     AUTHOR        F. T. MICKEY
C     SOURCE EXTERNAL COMMUNICATION DATA AREA
      INTEGER  FCHRTS
      INTEGER  SCFLAG
      INTEGER  QMODE
      LOGICAL  NOTINQ
      INTEGER  LBIAS
      INTEGER  SCOUNT
      INTEGER  QINDEX
      COMMON   /SRCEX/  FCHRTS
      COMMON   /SRCEX/  SCFLAG
      COMMON   /SRCEX/  QMODE
      COMMON   /SRCEX/  NOTINQ
      COMMON   /SRCEX/  LBIAS
      COMMON   /SRCEX/  SCOUNT
      COMMON   /SRCEX/  QINDEX


==== ercs07/emas-2900/inpds_ntablein.txt ====
C     EDIT DATE   16JAN79  15:20
C     SOURCE FILE NTABLEGAK.IN
C     AUTHOR      GARY A. KUDIS
C     GLOBAL NAME TABLE
C
C     EACH ENTRY HAS THE FOLLOWING DATA ITEMS :
C        NFLAGS :: BIT STATUSES PER ENTRY
C        NADDRS :: ADDRESS OF THE ENTRY
C        NPOSIT :: CURRENT LOAD ADDRESS WITHIN A GROUP
C        NDATA  :: AREA DEFINITION SIZE
C        NTEXTX :: INDEX INTO NAME TEXT ARRAY (NTEXT)
C
C        HERE 'NFLAGS' HAS THE FOLLOWING BIT DEFINITIONS :
C           0-3 :: NUMBER OF WORDS IN TEXT NAME
C             4 :: = 1 = USED ENTRY SLOT        'USEBIT'
C             5 :: = 1 = COMMON NAME AREA       'COMBIT'
C             6 :: = 1 = OVERLAY ID             'OVLBIT'
C             7 :: = 1 = ENTRY POINT DEFINITION 'EPTBIT'
C             8 :: = 1 = LOAD MODULE ON 2ND PASS'LDMBIT'
C             9 :: = 1 = MODULE NAME ENTRY      'MODBIT'
C            10 :: = 1 = MULTIPLE ENTRY         'MLTBIT'

==== ercs07/emas-2900/qfiles5apr_impsup1.txt ====
module impsup;
exports

procedure dummsup;
procedure printfl(val,place:long);

private
imports f77init from f77init;

procedure dummsup;
begin
end;

procedure printfl;
begin
write(curout^,val:shrink(place)+1);
end. { printfl }

==== ercs07/emas-2900/qdums_f77aux.txt ====
module f77aux;
exports
procedure f77ioerr(i:integer);
private
imports f77init from f77init;

procedure f77ioerr;
begin
writeln(curout^,'dummy f77ioerr');
end. { f77ioerr }

==== ercs07/emas-2900/slinkf_t02p1gfr.txt ====
    
      SUBROUTINE T02P1  
    
      INTEGER     ECODE 
      INTEGER     CMCHAN
      INTEGER     RBCHAN
      INTEGER     OBCHAN
      INTEGER     MPCHAN
      INTEGER     DBCHAN
      INTEGER     TTYIN 
      INTEGER     TTYOUT
      COMMON      /IODEFN/ ECODE
      COMMON      /IODEFN/ CMCHAN   
      COMMON      /IODEFN/ RBCHAN   
      COMMON      /IODEFN/ OBCHAN   
      COMMON      /IODEFN/ MPCHAN   
      COMMON      /IODEFN/ DBCHAN   
      COMMON      /IODEFN/ TTYIN
      COMMON      /IODEFN/ TTYOUT   
    
      LOGICAL     MPFLAG

==== ercs07/emas-2900/slogosorg_opinxjin.txt ====
C     EDIT DATE   31MAR78  13:00
C     SOURCE FILE OPINXJHP.IN
C     AUTHOR      J.H.PERINE
C     DEFINE COMMON BLOCK OF OP CODE INTERNAL REFERENCE VALUES.
C     ALL NAMES ARE 3 LETTER OP CODE PLUS 'INX' FOR INDEX.
C     NO IMPLIED OR RELATIVE ADDRESS OPS INCLUDED.
      INTEGER  ADCINX
      INTEGER  ANDINX
      INTEGER  ASLINX
      INTEGER  BITINX
      INTEGER  CMPINX
      INTEGER  CPXINX
      INTEGER  CPYINX
      INTEGER  DECINX
      INTEGER  EORINX
      INTEGER  INCINX
      INTEGER  JMPINX
      INTEGER  JSRINX
      INTEGER  LDAINX
      INTEGER  LDXINX
      INTEGER  LDYINX

==== ercs07/emas-2900/slogos_objectin.txt ====
C     EDIT DATE   19AUG78  08:07
C     SOURCE FILE OBJECTAJH.IN
C     AUTHOR      A. J. HOWARD
C     CLUSTER     90
      INTEGER  AREAID (15), BCARD (41)
      INTEGER  RWORD1, RWORD2, RWORD3, RWORD (3)
      INTEGER  BTYPE
      INTEGER  EXTDX, ERRFLG
      INTEGER  NEWLCI
      INTEGER  OFFSET, OW
      INTEGER  RBITS, RCT
      INTEGER  TWI
      INTEGER  WF
      COMMON   /OBJCOM/ AREAID, BCARD, RWORD
      COMMON   /OBJCOM/ BTYPE
      COMMON   /OBJCOM/ EXTDX
      COMMON   /OBJCOM/ OFFSET, OW
      COMMON   /OBJCOM/ RBITS
      COMMON   /OBJCOM/ TWI
      COMMON   /OBJCOM/ WF
      EQUIVALENCE (RWORD1, RWORD (1))

==== ercs07/emas-2900/slinkf_askgakfr.txt ====
    
      SUBROUTINE ASK (QUEST)
    
      INTEGER     CMQUES (10)   
      INTEGER     OBQUES (10)   
      INTEGER     MPQUES (10)   
      INTEGER     ANSWER (14)   
      COMMON      /QUESTS/ CMQUES   
      COMMON      /QUESTS/ OBQUES   
      COMMON      /QUESTS/ MPQUES   
      COMMON      /QUESTS/ ANSWER   
    
      INTEGER     ECODE 
      INTEGER     CMCHAN
      INTEGER     RBCHAN
      INTEGER     OBCHAN
      INTEGER     MPCHAN
      INTEGER     DBCHAN
      INTEGER     TTYIN 
      INTEGER     TTYOUT
      COMMON      /IODEFN/ ECODE

==== ercs07/emas-2900/rel6_cmess8.txt ====
!* MODIFIED 26/06/82
!*
!*
%RECORDFORMAT COMFMT(%INTEGER CONTROL,OPTIONS,OPTIONS1,OPTIONS2,PTRACE,
      ADICT,ANAMES,ADOUTPUT,ADBLKDTAID,DICLEN,DPTR,
      MAXTRIADS,NEXTPLAB,ALABH,ADLHEAD,
      SUBPROGTYPE,SFPTR,EXTERNALS,CBNPTR,SCPTR,CHECKLIST,
      RESCOM1,RESCOM2,GLACA,FNO,FAULTY,LINEST,CMNIIN,SFMK,
      LISTL,LISTSTREAM,DIAGSTREAM,LISTPOINT,XREF,
      PACKCMN,ITSMODE,PATHANAL,CHARACTER CODE,SPACE CHAR,
      HEADINGS,ARRAYCHECKS,JBRMODE,MESSLEN,NAMESLEN,
      NEXTCH,FUNRESDISP,WARNCOUNT,INP,MAXINP,MESSCOUNT,
      UNASSPATTERN,LISTCODE,PI21INT,DOPTR,SUBPROGPTR,
      FNLST,LAB,NAMESFREE,ALGOLREF,FIRSTSTATNUM,CEXPDICT,
      COMMONBASE,FASTPROLOGUE,STATEMENT,IFPTR,
      CNSTCA,COMMENTCNT,ADIDENT,ADERRIDEN)
%EXTERNALROUTINE QCMESS
{dummy}
%END
!*
%EXTERNALROUTINE FAULTNUM(%INTEGER ER,COMAD,UPDATE)

==== ercs07/emas-2900/slogosorg_labelffs.txt ====
'HEAD'  LABEL PROCESSING
C     EDIT DATE   09DEC78  15:43
C     SOURCE FILE LABELFTM.FS
C     AUTHOR      F. T. MICKEY
C     CLUSTER     7
      'OUTFILE'   LABELDATA.FR
      BLOCK DATA
      'INCLUDE'   LABCOMFTM.IN,P
      DATA         LTLI /0/
      END
      'OUTFILE'   LABELFTM.FR
N     OVERLAY     OLLAB
      SUBROUTINE  LABEL
C
C     PROCESSES LABEL DEFINITIONS, CHECKING FOR "LABEL::"
C     ENTRY POINT DEFINITIONS
C
      'INCLUDE' LOGOSAJH.IN,
      'INCLUDE' OPERSAJH.IN,
      'INCLUDE' NLISTCFTM.IN,
      'INCLUDE' BLDPOAJH.IN,

==== ercs07/emas-2900/mixedsrce_arrdef.txt ====
PROGRAM ARRDEF;
%KEYEDENTRY ON
TYPE INTARR=ARRAY[1..4] OF INTEGER;
PROCEDURE ARRTIM4(ARR1:INTARR;VAR ARR2:INTARR);
VAR I:INTEGER;
BEGIN
FOR I:=1 TO 4 DO ARR2[I]:=ARR1[I]*4;
END;
BEGIN
END.

==== ercs07/emas-2900/psclsce2011_opeh3.txt ====
! PASCAL OPEH ROUTINES RELEASE 2
! Mike Brown - February 1981
!
%SYSTEMROUTINESPEC DUMP (%INTEGER S, F)
%SYSTEMROUTINESPEC NCODE (%INTEGER S, F, A)
%SYSTEMROUTINESPEC NDIAG (%INTEGER PCOUNT, LNB, FAULT, INF)
%EXTRINSICBYTEINTEGER FLAGABORT
!
%CONSTBYTEINTEGERARRAY HEX (0:15) = %C
   '0', '1', '2', '3', '4', '5', '6', '7', %C
   '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'
!
%ROUTINE PHEX (%INTEGER VALUE, PLACES)
%INTEGER Z
   %CYCLE Z = PLACES << 2 - 4, -4, 0
      PRINTSYMBOL(HEX(VALUE >> Z & 15))
   %REPEAT
%END
!
%ROUTINE ABORT (%INTEGER CODE, PC, LNB)
%INTEGER W

==== ercs07/emas-2900/helpsa20_brtamlibnuc.txt ====
AREA(2)
ALTER(15,X4,X2)
REDIRECT(
ICL9LPCTNOMINATEERRPROC&
ICL9LPCTGETVSAREA&
ICL9LPCTDATEANDTIME&
ICL9LPCTABORT&
ICL9HNLOG&
ICL9HNOUTPUTLINE&
ICL9HNNEWLINE&
ICL9HNNEWPAGE&
ICL9HNDUMP,ICL9LPSYSERR)

==== ercs07/emas-2900/slogosorg_setupjfs.txt ====
'HEAD'  SETUP
C     EDIT DATE   26JAN79  11:13
C     SOURCE FILE SETUPJHP.FS
C     AUTHOR      J.H.PERINE
C     CLUSTER     18
      'OUTFILE'   SETUPJHP.FR
C     NAME     SETUP
C     MODULE#
C     PURPOSE  GENERATE SETUP CODE AND PROPER INSTRUCTION TO
C              PERFORM THE REQUESTED OPERATION.
C     CALL     SETUP (FUNC, INDX)
C                 FUNC = OPERATION DESCRIPTOR (FROM OPINXJHP.IN)
C                 INDX = STACK INDEX
C     OUTPUT   1. SETUP CODE AS REQUIRED THROUGH 'GEN' & 'BLDBLK'
C              2. STACK ENTRIES MAY BE MODIFIED

C                 ALSO 'SUBOP' AND 'WFSOP'
      SUBROUTINE  SETUP (FUNC, INDX)
      INTEGER     FUNC, INDX
      'INCLUDE'   LOGOSAJH.IN,
      'INCLUDE'   NLISTCFTM.IN,

==== ercs07/emas-2900/pddemo_file3.txt ====
   !Modified     14/ 4/82   14.00





!**********************************************************************!
!**********************************************************************!
         !                                               !
         !                                               !
         !     Skeleton FILE INPUT/OUTPUT Procedures     !
         !                                               !
         !          for FORTRAN77 Programs               !
         !                                               !
         !           on ICL  PERQ Machines               !
         !                                               !
         !                                               !
!**********************************************************************!
!**********************************************************************!



==== ercs07/emas-2900/strans_estjhpfr.txt ====
    
      SUBROUTINE EST (STR, BUF, LEFT, RIGHT)
      INTEGER  STR(1), BUF(1), LEFT, RIGHT  
      INTEGER  GETX, PUTX   
      INTEGER  GCHAR
      GETX = 1  
      PUTX = LEFT   
      CONTINUE  
13006 CONTINUE  
    
      IF (.NOT.(PUTX .LE. RIGHT))GO TO 13007
    
      CALL PCHAR (BUF, PUTX, GCHAR (STR, GETX)) 
      GETX = GETX + 1   
      PUTX = PUTX + 1   
      GO TO 13006   
13007 CONTINUE  
    
      RETURN
      END   

==== ercs07/emas-2900/slinkf_lpass2fr.txt ====
    
      SUBROUTINE PASS2  
    
      INTEGER     RCOUNT
      INTEGER     RTYPE 
      INTEGER     RSTYPE
      INTEGER     RTMAX 
      INTEGER     RSZMAX
      INTEGER     RECORD (41)   
      INTEGER     RSIZE 
      INTEGER     RSIZES (20)   
      INTEGER ICLP02
      COMMON      /RECORD/ RCOUNT   
      COMMON      /RECORD/ RTYPE
      COMMON      /RECORD/ RSTYPE   
      COMMON      /RECORD/ RTMAX
      COMMON      /RECORD/ RSZMAX   
      COMMON      /RECORD/ RECORD   
      COMMON      /RECORD/ RSIZE
      COMMON      /RECORD/ RSIZES   
      COMMON     /RECORD/ ICLP02

==== ercs07/emas-2900/slogof_nltestfr.txt ====
    
      LOGICAL FUNCTION NLTEST (INDEX, FLAG) 
      INTEGER     INDEX, FLAG   
    
      INTEGER     NLIST (500)   
      INTEGER     NLOC  (500)   
      INTEGER     NTEXT (1500)  
      INTEGER     NTEXTX (500)  
      COMMON   /NARAY/  NLIST   
      COMMON   /NARAY/  NLOC
      COMMON   /NARAY/  NTEXT   
      COMMON   /NARAY/  NTEXTX  
      NLTEST = IAND (NLIST (INDEX), FLAG) .NE. 0
      RETURN
      END   

==== ercs07/emas-2900/slogof_rlciftfr.txt ====
 
      SUBROUTINE RLCI (NEWLCI) 
 
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG 
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV 
      INTEGER     NEXT,   NUMBER, I,      IOTYPE 
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE 
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP 
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT 
      INTEGER ICLP05 
      LOGICAL     ENDOK,CONEND 
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG 
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV 
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE 
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N 
      COMMON   /LOGOS/  PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE 

==== ercs07/emas-2900/perqsrce_memory.txt ====
   157   9   -1:D     0 const SATSeg = 1;              { SAT segment }
   158   9   -1:D     0       SITSeg = 2;              { SIT segement }
   159   9   -1:D     0       FontSeg = 3;             { font segment }
   160   9   -1:D     0       ScreenSeg = 4;           { screen segment }
   161   9   -1:D     0       CursorSeg = 5;           { cursor segment }
   162   9   -1:D     0       IOSeg = 6;               { IO segment }
   163   9   -1:D     0       SysNameSeg = 7;          { system segment names }
   164   9   -1:D     0       
   165   9   -1:D     0       BootedMemoryInBlocks = #1000;    { memory in blocks at boot time }
   166   9   -1:D     0       MaxSegment = #137;       { should be 2**16 - 1 }
   167   9   -1:D     0 
   168   9   -1:D     0       SetStkBase = #60;
   169   9   -1:D     0       SetStkLimit = #120;
   170   9   -1:D     0 
   171   9   -1:D     0 {$ifc Ether3MBaud then}
   172   9   -1:D     0       IOSegSize = 6;           { number of blocks in the IOSeg }
   173   9   -1:D     0 {$elsec}
   174   9   -1:D     0 {$ifc Ether10MBaud then}
   175   9   -1:D     0       IOSegSize = 3;           { number of blocks in the IOSeg }
   176   9   -1:D     0 {$elsec}
   177   9   -1:D     0       IOSegSize = 3;           { number of blocks in the IOSeg }

==== ercs07/emas-2900/slogof_xnamedfr.txt ====
 
      BLOCK DATA 
 
      INTEGER     XNX, XNXMAX, XNAME (100) 
      COMMON      /XNAMC/  XNX, XNXMAX, XNAME 
      DATA     XNX      /    1/ 
      DATA     XNXMAX   /   99/ 
      DATA     XNAME    /100*0/ 
      END 

==== ercs07/emas-2900/pt_calltest.txt ====
PROGRAM TEST;
TYPE STR=PACKED ARRAY[1..40] OF CHAR;
     PSTR=^STR;
PROCEDURE LIST(DESC:INTEGER;ADDR:PSTR);EXTERN;
PROCEDURE CALL(PROCEDURE COMMAND;PARAMS:STR);EXTERN;
BEGIN
CALL(LIST,' FILEC                                  ');
END.

==== ercs07/emas-2900/strans_espjhpfr.txt ====
    
      SUBROUTINE ESP (WORD, BUF, LEFT, RIGHT)   
      INTEGER  WORD, BUF(1), LEFT, RIGHT
      INTEGER  CHAR, MFLAG, WORK, XMINUS, XZERO, COL
      DATA     XMINUS / 45 /
      DATA     XZERO  / 48 /
      IF (.NOT. (WORD .LT. 0))GO TO 13000   
    
      WORK = - WORD 
      MFLAG = 1 
      GO TO 13001   
13000 CONTINUE  
    
      WORK = WORD   
      MFLAG = 0 
13001 CONTINUE  
    
      COL = RIGHT   
      CONTINUE  
13002 CONTINUE  
    

==== ercs07/emas-2900/slogosorg_flist.txt ====

   ARGENAFS
   ATESTAIN
   BLDPOAIN
   BPOLSHFS
   BRACEFIN
   BRACESFS
   CDIAGAFS
   CGENAJFS
   CODE1FFS
   CODE1FIN
   CODE2AFS
   CONTFTFS
   CPAREAIN
   CRUCOMIN
   CRUTCHFS
   CTRLAJIN
   DDEFFTFS
   FAULTFFS
   FAULTSIN
   FLMSGAIN

==== ercs07/emas-2900/pt_pdeffill.txt ====
PDEFINE ONE,F1
PDEFINE TWO,F2
PDEFINE THREE,F3
PDEFINE FOUR,F4
PDEFINE FIVE,F5
PDEFINE SIX,F6
PDEFINE SEVEN,F7
PDEFINE EIGHT,F8
PDEFINE NINE,F9
PDEFINE TEN,F10
PDEFINE ELVEN,F11
PDEFINE TWELVE,F12
PDEFINE THIRTEEN,F13
PDEFINE FOURTEEN,F14
PDEFINE FIFTEEN,F15
PDEFINE SIXTEEN,F16
PDEFINE SEVENTEEN,F17
PDEFINE EIGHTEEN,F18
PDEFINE NINETEEN,F19
PDEFINE TWNTY,F20
PDEFINE TWENTY1,F21

==== ercs07/emas-2900/slogosorg_nlistffs.txt ====
'HEAD'  NAME LIST PROCESSING
C     EDIT DATE   11DEC78  16:29
C     SOURCE FILE NLISTFTM.FS
C     AUTHOR      F. T. MICKEY
C     CLUSTER     23
      'OUTFILE' SNMLSTFTM.FR
C     INTEGER FUNCTION SNMLST
C
C     SEARCH THE NAMELIST FOR AN ENTRY MATCHING THE CONTENTS
C     OF 'NAME';  IF FOUND, RETURN INDEX TO ENTRIES IN NLX.
C     IF NOT FOUND, RETURN INDEX OF EMPTY LIST ENTRY FOR USE
C     IN DEFINING NEW ENTRY.
C
      INTEGER FUNCTION SNMLST (DUM)
      'INCLUDE'     NLNAMEFTM.IN,
      'INCLUDE' NLISTCFTM.IN,
      'INCLUDE' NLARAYFTM.IN,
      'INCLUDE' LOGOSAJH.IN,
      INTEGER  GETTX, ENTNUM, GCHAR, NLOPS
      INTEGER  TS, DUM
      CALL SEARCH

==== ercs07/emas-2900/slogof_sglprtfr.txt ====
    
      SUBROUTINE  SGLPRT
    
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      INTEGER     NEXT,   NUMBER, I,      IOTYPE
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT
      INTEGER ICLP05
      LOGICAL     ENDOK,CONEND  
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG   
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG  
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV  
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE  
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N   
      COMMON   /LOGOS/  PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE  

==== ercs07/emas-2900/rel4_f77patch3.txt ====
{ update 28 may 82 - Recast blkbuff to patches }
{ f77patch3 18/6/82 - change checksum calculation }
{           22/6/82 - change patch no. recording mechanism }

program f77patch;

imports        Perq_string from Perq_string;
imports        Fileutils from Fileutils;
imports        Filesystem from Filesystem;
imports        Code from Code;
imports        filetypes from filetypes;
        
        
label 10,11,20,30,40,90,99,100,101,900,905,910,912,915,920,925,930,935,940,945,
      950,960,990,999;
      
type dbleword=record msw,lsw:integer end;
     altrec=record
            oval,disp,blkno:integer;
            nval:array[0..17] of integer
            end;

==== ercs07/emas-2900/strans_golnftfr.txt ====
    
      SUBROUTINE GOLN (/DUMMY/) 
    
      INTEGER  INPTR
      INTEGER  OUTPTR   
      INTEGER  INMAX
      INTEGER  MAXTAB   
      INTEGER  MAXLIN   
      INTEGER  IFMAX
      INTEGER  MAXLEV   
      INTEGER  LINENO   
      INTEGER  PAGE 
      INTEGER  CLINE
      INTEGER  TLIMIT   
      INTEGER  LN   
      INTEGER  I, J, K  
      INTEGER  II, JJ, KK   
      INTEGER  LEXVAL   
      INTEGER  SLEN 
      INTEGER  LEVEL
      INTEGER  LEN  

==== ercs07/emas-2900/strans_initobfr.txt ====
    
      SUBROUTINE INITOB 
    
      INTEGER  INPTR
      INTEGER  OUTPTR   
      INTEGER  INMAX
      INTEGER  MAXTAB   
      INTEGER  MAXLIN   
      INTEGER  IFMAX
      INTEGER  MAXLEV   
      INTEGER  LINENO   
      INTEGER  PAGE 
      INTEGER  CLINE
      INTEGER  TLIMIT   
      INTEGER  LN   
      INTEGER  I, J, K  
      INTEGER  II, JJ, KK   
      INTEGER  LEXVAL   
      INTEGER  SLEN 
      INTEGER  LEVEL
      INTEGER  LEN  

==== ercs07/emas-2900/rel4_sup2.txt ====
!Modified    5/May/82   16.30



!********************** EXPORT LIST
              !
              !
%STRING(83) %FNSPEC ACCEPT INPUT
 %HALFINTEGERFNSPEC PROMPT FILE DEFIN{ITION} (%INTEGER DSNUM ,
                                          %HALFINTEGER ACTION,FILE TYPE,
                                          %INTEGERNAME    FD TABLE ADDR)


!********************** IMPORT LIST
              !
              !
%EXTERNALHALFINTEGERFNSPEC   OPEN FD       (%INTEGER     DSNUM , RECL,
                                            %HALFINTEGER ACCESS, FORM, STATUS,
                                            %HALFINTEGER ACCESS ROUTE, BLANKS,
                                            %INTEGERNAME   ADDR OF FD TABLE  ,
                                             %STRINGNAME   FULL FILENAME     )

==== ercs07/emas-2900/strans_ctypeffr.txt ====
    
      INTEGER FUNCTION CTYPE (ICHAR)
    
      INTEGER  INPTR
      INTEGER  OUTPTR   
      INTEGER  INMAX
      INTEGER  MAXTAB   
      INTEGER  MAXLIN   
      INTEGER  IFMAX
      INTEGER  MAXLEV   
      INTEGER  LINENO   
      INTEGER  PAGE 
      INTEGER  CLINE
      INTEGER  TLIMIT   
      INTEGER  LN   
      INTEGER  I, J, K  
      INTEGER  II, JJ, KK   
      INTEGER  LEXVAL   
      INTEGER  SLEN 
      INTEGER  LEVEL
      INTEGER  LEN  

==== ercs07/emas-2900/inpds_setequin.txt ====
C     EDIT DATE   14SEP78  13:22
C     SOURCE FILE SETEQUAJH.IN
C     AUTHOR      A. J. HOWARD
      INTEGER     LNAMEX, LMODE, LOPC, LWFOP, LWFOPN
      INTEGER     RNAMEX, RMODE, ROPC, RWFOP, RWFOPN
      EQUIVALENCE (LNAMEX, NAMEX  (19))
      EQUIVALENCE (LMODE,  MODE   (19))
      EQUIVALENCE (LOPC,   OPCODE (19))
      EQUIVALENCE (LWFOP,  WFOP   (19))
      EQUIVALENCE (LWFOPN, WFOPND (19))
      EQUIVALENCE (RNAMEX, NAMEX  (20))
      EQUIVALENCE (RMODE,  MODE   (20))
      EQUIVALENCE (ROPC,   OPCODE (20))
      EQUIVALENCE (RWFOP,  WFOP   (20))
      EQUIVALENCE (RWFOPN, WFOPND (20))


==== ercs07/emas-2900/slogof_chekcofr.txt ====
 
      SUBROUTINE  CHEKCO (SYM, INDEX) 
 
      INTEGER  QUOTEX 
      INTEGER  CONTF 
      INTEGER  CONTRL 
      INTEGER  HEAD 
      INTEGER  EJECT 
      INTEGER  BLANK 
      INTEGER  SLASH 
      INTEGER  CARDC 
      INTEGER  FLINCT (8) 
      INTEGER  EOCC 
      INTEGER  ENDCRD (3) 
      INTEGER  RECORD (66) 
      INTEGER  RECPTR 
      INTEGER  SOURCE (150) 
      INTEGER  SRCEND 
      INTEGER  SLEN 
      INTEGER  TF (3) 
      COMMON   /SRCE/   QUOTEX 

==== ercs07/emas-2900/ecode1b.txt ====
 1 14 56 26974 26996 0 50 54 2 16 4 1A 54 2 20 4 1B 54 5 0 8 4REC1 54 2 24 8 2R1 54 2 32 8 2R2 54 2 40 4 2B1 54 2 44 4 2B2 60 48 51 5TEST1 65538 0 0 32648 0 5 6 5 7 13-3 25 2 16 412 4 56 184 5 8 15 5 4 420 4 15 2 16 412 4 56 3 25 2 20 416 4 56 184 5 9 15 2 16 412 4 15 2 20 416 4 56 3 15 2 20 416 4 56 1 13 8 56 137 25 2 24 428 4 56 184 5 10 15 2 24 428 8 56 117 25 2 32 432 4 56 184 5 11 15 2 20 416 4 15 2 16 412 4 56 17 25 2 40 436 4 56 184 5 12 15 2 40 436 4 30 164-3 15 2 24 428 8 15 2 32 432 8 56 145 25 2 44 440 4 56 184 28-3 28-2 28-1 52 0 0 0 2 0 0 48 0 0 8 0 0 0 0 0

==== ercs07/emas-2900/psclsce205_pscltxt202.txt ====

PASCAL on EMAS
--------------

CONTENTS

1.  INTRODUCTION

2.  COMPILATION
2.1 Compilation Options
2.2 Compilation Listings

3.  EXECUTION
3.1 Use of Input and Output Media
3.2 The Standard PASCAL Files INPUT and OUTPUT
3.3 Separate Compilation of PASCAL Procedures and Functions
3.4 Mixed Language Programming
4.  BASIC ERROR ACTION
4.1 Compiler-detected Errors
4.2 Hardware Errors
4.3 Errors in Mathematical Libraries

==== ercs07/emas-2900/ds20imp_omfout.txt ====
%CONTROL X'0FFFFFFF'
!!*************************************************************
!!
!!  OMFOUT
!!
!!  EDINBURGH'S IMP MODULE OMF8
!!  ADAPTED FOR USE IN BSV35/KSV17 PASCAL SYSTEM (PASCAL 20)
!!
!!  T.MOORE    MARCH '80
!!
!!*************************************************************
!!
                                                                                
!!******************************************                                    
!!                                         *                                    
!!  OMF CONVERTER : ERCC TYPE OBJECT       *                                    
!!  FILE INTO ICL TYPE OBJECT FILE.        *                                    
!!                                         *                                    
!!******************************************                                    
!!                                         *                                    
!! PRODUCES A SQ FILE OF MAX RECORD SIZE 4K.                                    

==== ercs07/emas-2900/slogosorg_lcompafs.txt ====
'HEAD'  COMPARISON ROUTINES
C     EDIT DATE   09DEC78  15:43
C     SOURCE FILE LCOMPAJH.FS
C     AUTHOR      A.  J. HOWARD
C     CLUSTER     8
      'OUTFILE'   LCOMPAJH.FR
C     EDIT DATE   09DEC78  15:43
C     SOURCE FILE LCOMPAJH.FS
C     AUTHOR      A.  J. HOWARD
N     OVERLAY     OLLCO
      SUBROUTINE  LCOMP (FUNC)
      INTEGER     FUNC
C
C     1 PROCESS RELATIONAL OPERATOR  = # < <= >= >
C     2 FINISH CONDITIONAL STATEMENT NEXT OP :
C     3 CLOSE SIDE  NEXT OP . OR ;
C
      INTEGER     ILBRET, SCRET     // INTERNAL SUBROUTINE RETURNS
      INTEGER     OPTS1,  LDROP
      INTEGER     TS, BROKTS
      INTEGER     COMPOP (6)

==== ercs07/emas-2900/matests_pasc14.txt ====
PROGRAM PASC14(INPUT,OUTPUT,BIN1);
TYPE RFILE=FILE OF INTEGER;
VAR NUMBER:INTEGER;
    BIN1:RFILE;
PROCEDURE PUTINT(VAR F:RFILE);
VAR I:INTEGER;
BEGIN
I:=F^+6;
WRITELN(I);
END;
BEGIN
REWRITE(BIN1);
READ(NUMBER);
WHILE NUMBER <>0 DO
  BEGIN
  BIN1^:=NUMBER;
  PUT(BIN1);
  PUTINT(BIN1);
  READ(NUMBER);
  END;
WRITELN('FINISHED');

==== ercs07/emas-2900/slogosorg_rmcodein.txt ====
C     FUNCTION CODES FOR REGISTER MANAGEMENT (REGMAN) CALLS
      INTEGER  CLRACV      // ERASE ALL REGISTER CONTENTS
      INTEGER  CLRACX      // ERASE SPECIFIC REGISTER CONTENTS
      INTEGER  CLRSTA      // ERASE ACTIVE STATUS OF ALL REGISTERS
      INTEGER  TRAREG      // TRASNSFER REGISTER TO REGISTER
      INTEGER  SAVREG      // TEMP STORE IF REGISTER IS ACTIVE
      INTEGER  CTFREE      // FIND A FREE CT OF 1 OR 2 WORDS
      INTEGER  SETREG      // SET THE REGISTER CONTENTS FROM THE STACK
      COMMON   /RMCODE/ CLRACV, CLRACX, CLRSTA, TRAREG, SAVREG
      COMMON   /RMCODE/ CTFREE, SETREG


==== ercs07/emas-2900/ds2a20_rtnewctm.txt ====
%CONTROL X'0FFFFFFF'
!* MODIFIED 14/06/79                                                            
!                                                                               
!++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++           
!                                                                               
!    NEW CTM INTERFACE FOR 5X32 RELEASE OF SYSTEM B.                            
!    FLAG ICL9CECTM32 DETERMINES WHETHER CALLS ARE MADE ON THE NEW              
!    CTM PROCEDURES OR ON THE OLD TUM PROCEDURES                                
!    ICL9CECTM32=1        NEW CTM                                               
!    ICL9CECTM32=0        OLD TUM                                               
!                                                                               
!++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++           
!                                                                               
!  FILE DESCRIPTION RECORD FORMAT                                               
%RECORDFORMAT AFDFORM(%INTEGER LINK,DSNUM,                           %C         
                      %BYTEINTEGER STATUS,ACCESSROUTE,VALIDACTION,%C            
                        CURSTATE,MODEOFUSE,ACCESSMODE,FILEORG,    %C            
                        DEVCLASS,RECTYPE,FLAGS,LM,RM,             %C            
                      %INTEGER ASVAR,AREC,RECSIZE,MINREC,MAXREC,  %C            
                        MAXSIZE,ROUTECCY,C0,C1,C2,C3,TRANSFERS,   %C            
                         DARECNUM,%LONGINTEGER RECCCY,NEWCCY,SPARE,   %C        

==== ercs07/emas-2900/psclsce2010_rtsup8.txt ====
! MODIFIED 08/06/81 - VERSION 20.10
! GIVEPROCESSTIME CORRECTED
! T#PFILES LOOKED AT IN NEWFILEOP INSTEAD OF INIT, TO ALLOW FILES TO
! BE DEFINED/PDEFINED WITHIN A PASCAL PROGRAM

!**********************************************************************
!*
!*                    RUN TIME PASCAL
!*
!**********************************************************************
!
!
!**********************************************************************
!*
!*                            CONSTANTS
!*
!**********************************************************************
!
%CONSTINTEGER NO=0,YES=1
%CONSTSTRING(1)%ARRAY HEX TAB(0:15)="0","1","2","3","4","5","6","7", %C
              "8","9","A","B","C","D","E","F"

==== ercs07/emas-2900/matests_pasc15.txt ====
PROGRAM PASC15(INPUT,OUTPUT);
LABEL 1;
VAR NUM:INTEGER;
PROCEDURE ERROR;
BEGIN
WRITELN('ERROR');
GOTO 1;
END;
BEGIN
READ(NUM);
WHILE NUM <>-1 DO
  BEGIN
  IF NUM>20 THEN ERROR;
  WRITELN(NUM);
 1:READ(NUM);
  END;
WRITELN('FINISHED');
END.

==== ercs07/emas-2900/tstfiles_tst12alos.txt ====
''TITLE, TEST12A
''HEAD, LINKER COMMON ALLOCATION TEST
''LIST
  /////////////////////////////////////////////////////////
  //                                                     //
  // DATE   : SEP 18,1978                                //
  //                                                     //
  // AUTHOR : T. CHENG                                   //
  //                                                     //
  // TEST # : TEST12A                                    //
  //                                                     //
  // PURPOSE :   TEST MEMORY ALLOCATION FOR BLANK        //
  //              AND NAMED COMMONS.                     //
  //                                                     //
  // NOTE :      LINK WITH TEST12B,TEST12C AND           //
  //              TEST12D FOR TESTING.                   //
  //                                                     //
  /////////////////////////////////////////////////////////
''EJECT
     'LBR' A, B[3], C 'RBR',                           // BLANK COMMON
     COM1 : 'LBR' FLAG1, BUFFER1[100], 'DP' BUFPTR1 'RBR',  // #1 NAMED COMMON

==== ercs07/emas-2900/ctsup13.txt ====
! MODIFIED 12/11/81 -  VERSION 20.13
! COPY OF CTSUP12 - UPDATED VERSION NUMBER FOR NEW RTSUP
!
!**********************************************************************
!*
!*                         P A S C A L
!*
!*                COMPILER ENVIRONMENT ROUTINES
!*
!**********************************************************************
!
!
!**********************************************************************
!*
!*                            CONSTANTS
!*
!**********************************************************************
!
%CONSTINTEGER SEGMENTK=256,SEGMENT=262144
%CONSTINTEGER NIL=-1
%CONSTINTEGER NO=0,YES=1

==== ercs07/emas-2900/mixedsrce_functesta.txt ====
%BEGIN
%INTEGER %PROCEDURE TWO;
%EXTERNAL TWO;
%INTEGER ITWO;
PRINTSTRING(<CALLING_TWO>);
NEWLINE;
ITWO:=TWO;
PRINTSTRING(<TWO_=>);
PRINT(TWO,4,0);
NEWLINE;
PRINTSTRING(<DID_IT_WORK>);
NEWLINE
%END;

==== ercs07/emas-2900/slogof_rstk00fr.txt ====
    
      SUBROUTINE STKREG(LEVEL,SAVTYP)   
      INTEGER LEVEL,SAVTYP  
    
      INTEGER     ACADDR (11), ACTYPE (11), ACSUBS (11) 
      INTEGER     ACSBTY (11), ACBIAS (11)  
      INTEGER     REGSTK(120)   
      COMMON      /RMCOM/  ACADDR, ACTYPE, ACSUBS, ACSBTY, ACBIAS   
      COMMON      /RMCOM/  REGSTK   
    
      INTEGER     LISTF,  SNLPRT, SUMPRT, SYMFLG
      INTEGER     PRINTF, SKIP,   COMPFL (2)
      INTEGER     LOCPRT, USFLGS, NEGFLG, SKNAME (8)
      INTEGER     ORGFLG, CTLUSE, CTLERR, TTL (8)   
      INTEGER     DUMFLG
      INTEGER ICLP01
      COMMON      /CTLCOM/    LISTF,  SNLPRT, SUMPRT, SYMFLG
      COMMON      /CTLCOM/    PRINTF, SKIP,   COMPFL
      COMMON      /CTLCOM/    LOCPRT, USFLGS, NEGFLG, SKNAME
      COMMON      /CTLCOM/    ORGFLG, CTLUSE, CTLERR, TTL   
      COMMON      /CTLCOM/    DUMFLG

==== ercs07/emas-2900/inpds_stacksin.txt ====
C     EDIT DATE   25MAY78  08:56
C     SOURCE FILE STACKSGAK.IN
C     AUTHOR      GARY A. KUDIS
C     LINKER STACK AREAS
      INTEGER     MSTACK(30), MX, MSTKSZ
      COMMON      /STACKS/ MSTACK, MX, MSTKSZ


==== ercs07/emas-2900/ctsup14.txt ====
! MODIFIED 03/12/81 -  VERSION 20.14
! ICL9HNCREATEVS ALTERED TO CREAT SMALLER T#HEAP
!
!**********************************************************************
!*
!*                         P A S C A L
!*
!*                COMPILER ENVIRONMENT ROUTINES
!*
!**********************************************************************
!
!
!**********************************************************************
!*
!*                            CONSTANTS
!*
!**********************************************************************
!
%CONSTINTEGER SIXTY4K=65536,SEGMENTK=256,SEGMENT=262144
%CONSTINTEGER NIL=-1
%CONSTINTEGER NO=0,YES=1

==== ercs07/emas-2900/matests_pasc17.txt ====
PROGRAM LONGREAL(OUTPUT);
VAR LR:REAL;
BEGIN
LR:=1234567898765432123456789876543212345678987654321111111111111111111111111112222222222222222;
WRITELN('LR=',LR);
END.

==== ercs07/emas-2900/imptests_parmtest.txt ====
%BEGIN
%ROUTINESPEC INTPROC (%INTEGERNAME FRED)
%ROUTINESPEC STRPROC(%STRING(64) JIM)
%INTEGER INTFRED
%STRING(63) STRJIM
INTFRED=4
STRJIM=" A STRING "
INTPROC(INTFRED)
STRPROC(STRJIM)
%ROUTINE INTPROC(%INTEGERNAME INT)
WRITE(INT,4)
NEWLINE
%END
%ROUTINE STRPROC(%STRING(64) STR)
PRINTSTRING(STR)
NEWLINE
%END
%ENDOFPROGRAM

==== ercs07/emas-2900/ctsup15.txt ====
! UPDATED 3/9/82 - VERSION 20.15
! COPY OF CTSUP13 - UPDATED VERSION NUMBER FOR NEW RUNTIME SYSTEM
! UPDATED 2/6/82 - VERSION 20.14
! COPY OF CTSUP13
! MODIFIED 12/11/81 -  VERSION 20.13
! COPY OF CTSUP12 - UPDATED VERSION NUMBER FOR NEW RTSUP
!
!**********************************************************************
!*
!*                         P A S C A L
!*
!*                COMPILER ENVIRONMENT ROUTINES
!*
!**********************************************************************
!
!
!**********************************************************************
!*
!*                            CONSTANTS
!*
!**********************************************************************

==== ercs07/emas-2900/lpds_dividelo.txt ====
''HEAD, MUL DIVIDE FOR 6502
     // EDIT DATE   09OCT78  11:04
     // SOURCE FILE DIVIDEFTM.LO
     // AUTHOR      F. T. MICKEY
     'DP' 'LBR'
        MULTIPLICAND: REMAINDER: REMAINDER,
        DIVISOR: MULTIPLIER,
        QUOTIENT: QUOTIENT: PRODUCT:   PRODUCT,
        MASK,
        'RBR'
     RESULT SIGN,
     REMAINDER SIGN,
''EJECT
 ;;SS DIVIDE:: 'LBR'
     0 -> 'SP' REMAINDER [1],
   DS DIVIDE::
     0 -> 'SP' DIVISOR [1],
     DD DIVIDE.
   SD DIVIDE::
     0 -> 'SP' REMAINDER [1],
   DD DIVIDE::

==== ercs07/emas-2900/perqrel2_parsecmd.txt ====
{-------------------------------------------------------------
{
{ File: ParseCmd.pas
{
{ Abstract:
{
{    Parse the command line, interpreting switches, for the fortran 
{    consolidator. 
{
{------------------------------------------------------------}




PROCEDURE ParseCommandLine(VAR ins : PArgRec);
{-------------------------------------------------------------
{
{ Abstract:
{
{    Parse the command line, interpreting switches 
{

==== ercs07/emas-2900/strans_parseffr.txt ====
    
      SUBROUTINE PARSE  
    
      INTEGER  INPTR
      INTEGER  OUTPTR   
      INTEGER  INMAX
      INTEGER  MAXTAB   
      INTEGER  MAXLIN   
      INTEGER  IFMAX
      INTEGER  MAXLEV   
      INTEGER  LINENO   
      INTEGER  PAGE 
      INTEGER  CLINE
      INTEGER  TLIMIT   
      INTEGER  LN   
      INTEGER  I, J, K  
      INTEGER  II, JJ, KK   
      INTEGER  LEXVAL   
      INTEGER  SLEN 
      INTEGER  LEVEL
      INTEGER  LEN  

==== ercs07/emas-2900/matests_pasc19.txt ====
PROGRAM THISPROGRAMNAMEIS33CHARACTERSLONG(OUTPUT);
BEGIN
WRITELN('NOTHING');
END.

==== ercs07/emas-2900/ecodelist_test3bl.txt ====
Einitialise 
Enextproc 
Edataentry  G1    2   16    4
Edataentry  G2    2   20    4
Edataentry  I1    2   24    4
Eproc IN3    0    0
 Elinestart ++++++++++++++++++++++    8
 Elinestart ++++++++++++++++++++++    9
Estklit        3
Estkaddr   Gla     + 16      4    G1
Eop    ESTORE
 0 0 0
Estack:
 2:AddrDir       Gla     +   16  size: 4
 1:LitVal            3  size: 4
 Elinestart ++++++++++++++++++++++   10
Elabel    -3
Eprocend       4
Eproc THREE    1    4
 Elinestart ++++++++++++++++++++++   12
 Elinestart ++++++++++++++++++++++   13

==== ercs07/emas-2900/slogof_prbrftfr.txt ====
 
      SUBROUTINE  PRBR 
 
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG 
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV 
      INTEGER     NEXT,   NUMBER, I,      IOTYPE 
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE 
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP 
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT 
      INTEGER ICLP05 
      LOGICAL     ENDOK,CONEND 
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG 
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV 
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE 
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N 
      COMMON   /LOGOS/  PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE 

==== ercs07/emas-2900/qfiles_f77init9.txt ====
module f77init;

{ updated 21/3/82 - function openfile defined }
{ updated 23/4/82 - real underflow dealt with in handler all }

exports
imports filedefs from filedefs;
imports filesystem from filesystem;
imports fileutils from fileutils;
imports memory from memory;
imports clock from clock;
imports filedir from filedir;


type buff84=packed array[1..84] of char;

procedure unsatref;
procedure initmain;
procedure INITGLA;
function iocp(ep,off,seg:integer):integer;
procedure stop;

==== ercs07/emas-2900/slogosorg_nounsafs.txt ====
'HEAD'  NOUN LIST PROCESSING
C     EDIT DATE   14JAN79  09:51
C     SOURCE FILE NOUNSAJH.FS
C     AUTHOR      A. J. HOWARD
C     CLUSTER     2
      'OUTFILE'   DIMENAJH.FR
N     OVERLAY     OLNOU
      SUBROUTINE  DIMEN
C     EDIT DATE   14JAN79  09:51
C     SOURCE FILE NOUNSAJH.FS
C     AUTHOR      A. J. HOWARD
      INTEGER     TS, IERR
      INTEGER     NBX, NBSTK (20)
      INTEGER     IOTS, IOTS1, INITLC
      INTEGER     MODETS, MTS1
      INTEGER     OLDMOD, OLDTPL
      INTEGER     REDEF
      INTEGER     FIRST, LAST, COUNT
      INTEGER     NLOPS, CQVAL, SNMLST
      LOGICAL     NLTEST
      EXTERNAL    OLCRU

==== ercs07/emas-2900/slogos_stkdfcin.txt ====
C     EDIT DATE   03DEC78  12:11
C     SOURCE FILE STKDFC.IN
C     AUTHOR      A. J. HOWARD
      INTEGER     LOCFLG (20)
      EQUIVALENCE (STK (1, 7), LOCFLG (1))


==== ercs07/emas-2900/mixedsrce_functestf.txt ====
      PROGRAM FUNCTEST
      INTEGER TWO
      WRITE(6,100)
  100 FORMAT(' CALLING TWO')
      ITWO=TWO(IDUMMY)
      WRITE(6,200)ITWO
  200 FORMAT(' ITWO= ',I4)
      WRITE(6,400)
  400 FORMAT(' DID IT WORK')
      STOP
      END

==== ercs07/emas-2900/slogof_logosdfr.txt ====
 
      BLOCK DATA 
 
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG 
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV 
      INTEGER     NEXT,   NUMBER, I,      IOTYPE 
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE 
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP 
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT 
      INTEGER ICLP05 
      LOGICAL     ENDOK,CONEND 
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG 
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV 
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE 
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N 
      COMMON   /LOGOS/  PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE 

==== ercs07/emas-2900/slogos_pnlajhfs.txt ====
      'HEAD'  PRINT NAME LIST
C     EDIT DATE   14JAN79  08:57
C     SOURCE FILE PNLAJH.FS
C     AUTHOR      A. J.HOWARD
C     CLUSTER     9
      'OUTFILE'      PNLAJH.FR
N     OVERLAY OLPNA
      SUBROUTINE  PNAMEL
C     EDIT DATE   14JAN79  08:57
C     SOURCE FILE PNLAJH.FR
C     AUTHOR      A. J.HOWARD
      'INCLUDE'   PNACOMAJH.IN,
      'INCLUDE'   LOGOSAJH.IN,
      'INCLUDE'   CPAREAJH.IN,
      'INCLUDE'   CTRLAJH.IN,
      'INCLUDE'   NLISTCFTM.IN,
      'INCLUDE'   NLNAMEFTM.IN,
      'INCLUDE'   LCFUNCAJH.IN,
      'INCLUDE'   PRTCOMFTM.IN,
      INTEGER     HEAD1 (17), HEAD2 (2), HEAD3 (6), HEAD4 (6)
      INTEGER     HEAD5 (12), HEAD6 (6), HEAD7 (16), HEAD8 (17)

==== ercs07/emas-2900/strans_ehxjhpfr.txt ====
    
      SUBROUTINE EHX (WORD, BUF, LEFT, RIGHT)   
      INTEGER  WORD, BUF(1), LEFT, RIGHT
      INTEGER  WORK, CHAR, COL, XZERO, XLETA, MASK, BIAS
      DATA     XZERO / 48 / 
      DATA     XLETA / 55 / 
      DATA     MASK  / 15 / 
      COL = RIGHT   
      WORK = WORD   
      CONTINUE  
13008 CONTINUE  
    
      IF (.NOT.(COL .GE. LEFT))GO TO 13009  
    
      CHAR = IAND (WORK, MASK)  
      IF (.NOT. (CHAR .GE. 10))GO TO 13010  
    
      BIAS = XLETA  
      GO TO 13011   
13010 CONTINUE  
    

==== ercs07/emas-2900/strans_xstranzl.txt ====

LINK
STRANS_FNAMESY
STRANS_XSTRANY
STRANS_STDATAY
STRANS_STRANY
STRANS_EMASIAY
STRANS_EMASIBY
.END
TEMPOBJ
RESOLVE TEMPOBJ,XSTRANZ,,.LP
Y
SUPPRESS()
RETAIN(XSTRAN)
.
DESTROY TEMPOBJ

==== ercs07/emas-2900/slogosorg_printffs.txt ====
'HEAD'  PRINT ROUTINES
C     EDIT DATE   12DEC78  13:10
C     SOURCE FILE PRINTFTM.FS
C     AUTHOR      F. T. MICKEY
C     CLUSTER     24
      'OUTFILE'   SGLPRTFTM.FR
C
C     PRINT THE CONTENTS OF LBUF TO THE PRINTER, SINGLE-SPACED
C
      SUBROUTINE  SGLPRT
      'INCLUDE'   LOGOSAJH.IN,
      'INCLUDE'   CTRLAJH.IN,
      'INCLUDE'   PRTCOMFTM.IN,
      INTEGER     II, MAXLIN
      DATA        MAXLIN   /58/
      'IF' (PRINTF .NE. 0)
         'FOR' (II = 66; II .GT. 1; II = II - 1)
            'IF' (LBUF (II) .EQ. XBBL)    // STRIP OFF TRAILING SPACES
               'END'
            'ENDIF'
         CALL WRLIN (LO, LBUF, 2*II)

==== ercs07/emas-2900/testpd_logosafs.txt ====
'HEAD'  COMPILER CONTROL
C     EDIT DATE   05FEB79  14:02
C     SOURCE FILE LOGOSAJH.FS
C     AUTHOR      A. J. HOWARD
C     CLUSTER     1
C     INSTALLATION DATES
C
C        2.0C     31OCT78
C        2.0D     21NOV78
C        2.0E     13DEC78
C        2.0F     19JAN79/26JAN79
C        2.0G     06FEB79
      'OUTFILE'   LOGOSAJH.FR
      'INCLUDE'   LOGOSAJH.IN,
      CALL INITLO
      CONEND = .FALSE.
      'DO'
         CALL DIMEN
         'WHILE' (.NOT. CONEND)
            CALL PVERBL
            'END'

==== ercs07/emas-2900/perqrel2_file9.txt ====
   !Modified     20/May/82   17.30





!**********************************************************************!
!**********************************************************************!
         !                                               !
         !                                               !
         !     Complete FILE INPUT/OUTPUT Procedures     !
         !                                               !
         !          for FORTRAN77 Programs               !
         !                                               !
         !           on ICL  PERQ Machines               !
         !                                               !
         !                                               !
!**********************************************************************!
!**********************************************************************!



==== ercs07/emas-2900/ecode2b.txt ====
 1 14 56 26974 26996 0 50 54 2 16 4 1A 54 2 20 4 1B 51 3ONE 65536 0 0 32856-1 5 7 5 8 13-3 25 2 16 412 4 56 184 5 9 17 2 4 424 4 15 2 16 412 4 56 3 25 2 20 416 4 56 184 5 10 15 2 16 412 4 15 2 20 416 4 56 3 15 2 20 416 4 56 1 13 8 56 137 26 2 8 432 4 56 184 5 11 17 2 8 432 8 56 117 26 2 16 436 4 56 184 5 12 15 2 20 416 4 15 2 16 412 4 56 17 26 2 24 440 4 56 184 5 13 17 2 24 440 4 30 164-4 17 2 8 432 8 17 2 16 436 8 56 145 26 2 28 444 4 56 184 28-4 28-3 28-2 52 32 0 0 60 24 51 5TEST1 65538 0 0 32648 0 5 16 5 17 45-1 46-1 0 0 5 18 28-1 52 0 0 0 2 0 0 24 0 0 0 0 0 0 0 0

==== ercs07/emas-2900/mixedsrce_functesti.txt ====
%BEGIN
%EXTERNALINTEGERFNSPEC TWO
PRINTSTRING('CALLING TWO')
NEWLINE
WRITE(TWO,4)
NEWLINE
PRINTSTRING('DID IT WORK')
%ENDOFPROGRAM

==== ercs07/emas-2900/ecode2c.txt ====
 1 14 56 26974 26996 0 50 55 2 16 4 1A 55 2 20 4 1B 51 3ONE 65536 0 0 32856-1 5 6 5 7 13-3 15 2 16 412 4 22 0 0 56 190 56 184 5 8 17 2 4 424 4 15 2 16 412 4 22 0 4 56 3 15 2 20 416 4 22 0 0 56 190 56 184 5 9 15 2 16 412 4 22 0 4 15 2 20 416 4 22 0 4 56 3 15 2 20 416 4 22 0 4 56 1 13 8 56 137 26 2 8 432 4 56 184 5 10 17 2 8 432 8 56 117 26 2 16 436 4 56 184 5 11 28-2 52 24 0 0 60 24 51 6TEST2C 65538 0 0 32648 0 5 13 5 14 45-1 46-1 0 0 5 15 28-1 52 0 0 0 2 0 0 24 0 0 0 0 0 0 0 0

==== ercs07/emas-2900/slogos_logosafs.txt ====
'HEAD'  COMPILER CONTROL
C     EDIT DATE   05FEB79  14:02
C     SOURCE FILE LOGOSAJH.FS
C     AUTHOR      A. J. HOWARD
C     CLUSTER     1
C     INSTALLATION DATES
C
C        2.0C     31OCT78
C        2.0D     21NOV78
C        2.0E     13DEC78
C        2.0F     19JAN79/26JAN79
C        2.0G     06FEB79
      'OUTFILE'   LOGOSAJH.FR
      PROGRAM PLOGOS
      'INCLUDE'   LOGOSAJH.IN,
      CALL INITLO
      CONEND = .FALSE.
      'DO'
         CALL DIMEN
         'WHILE' (.NOT. CONEND)
            CALL PVERBL

==== ercs07/emas-2900/pffiles_fielio.txt ====
{ visible procedures exported by the unix file i/o handler }

procedure Terminate(var String: ArgString);
  extern;

function HeadsMatch(var Name: ArgString;
                    Prefix: packed array[l..u: integer] of char): Boolean;
  extern;


function Accessible(var FileName: ArgString; Mode: FileMode): Boolean;
  extern;

procedure ResetFile (var TheFile: UnixFile; var FileName: ArgString);
  extern;

procedure RewriteFile (var TheFile: UnixFile; var FileName: ArgString);
  extern;

procedure ReadFileLine(var TheFile: UnixFile);
  extern;

==== ercs07/emas-2900/psclsce2010_ctsup10.txt ====
! MODIFIED 18/06/81 -  VERSION 20.10
! MOD AMENDS APPLIED TO COMPILE & JCLPR - NEW CTPASCAL
!**********************************************************************
!*
!*                         P A S C A L
!*
!*                COMPILER ENVIRONMENT ROUTINES
!*
!**********************************************************************
!
!
!**********************************************************************
!*
!*                            CONSTANTS
!*
!**********************************************************************
!
%CONSTINTEGER SEGMENTK=256,SEGMENT=262144
%CONSTINTEGER NIL=-1
%CONSTINTEGER NO=0,YES=1
%CONSTSTRING(1)%ARRAY HEX TAB(0:15)="0","1","2","3","4","5","6","7", %C

==== ercs07/emas-2900/slogosorg_srcxdfin.txt ====
C     EDIT DATE   16SEP78  10:58
C     SOURCE FILE   SRCXDFFTM.IN
C     AUTHOR        F. T. MICKEY
C     SOURCE EXTERNAL COMMUNICATION DATA AREA
      INTEGER  FCHRTS
      INTEGER  SCFLAG
      INTEGER  QMODE
      LOGICAL  NOTINQ
      INTEGER  LBIAS
      INTEGER  SCOUNT
      INTEGER  QINDEX
      COMMON   /SRCEX/  FCHRTS
      COMMON   /SRCEX/  SCFLAG
      COMMON   /SRCEX/  QMODE
      COMMON   /SRCEX/  NOTINQ
      COMMON   /SRCEX/  LBIAS
      COMMON   /SRCEX/  SCOUNT
      COMMON   /SRCEX/  QINDEX


==== ercs07/emas-2900/slogof_popftmfr.txt ====
    
      SUBROUTINE POP (A, B, C)  
    
      INTEGER  PSTACK (12)  
      INTEGER  PX   
      INTEGER  PEND 
      COMMON   /PPCOM/  PSTACK  
      COMMON   /PPCOM/  PX  
      COMMON   /PPCOM/  PEND
      INTEGER A, B, C   
      PX = PX - 3   
      IF (PX .LE. 0) CALL FATAL (46)
      A = PSTACK (PX)   
      B = PSTACK (PX+1) 
      C = PSTACK (PX+2) 
      RETURN
      END   

==== ercs07/emas-2900/slogos_nlarayin.txt ====
C     EDIT DATE   09DEC78  14:11
C     SOURCE FILE   NLARAYFTM.IN
C     AUTHOR        F. T. MICKEY
      INTEGER     NLIST (500)
      INTEGER     NLOC  (500)
      INTEGER     NTEXT (1500)
      INTEGER     NTEXTX (500)
      COMMON   /NARAY/  NLIST
      COMMON   /NARAY/  NLOC
      COMMON   /NARAY/  NTEXT
      COMMON   /NARAY/  NTEXTX



==== ercs07/emas-2900/sforf_plnf.txt ====
      SUBROUTINE PLN (/DUMMY/)
      INTEGER  INPTR
      INTEGER  OUTPTR
      INTEGER  INMAX
      INTEGER  MAXTAB
      INTEGER  MAXLIN
      INTEGER  IFMAX
      INTEGER  MAXLEV
      INTEGER  LINENO
      INTEGER  PAGE
      INTEGER  CLINE
      INTEGER  TLIMIT
      INTEGER  LN
      INTEGER  I, J, K
      INTEGER  II, JJ, KK
      INTEGER  LEXVAL
      INTEGER  SLEN
      INTEGER  LEVEL
      INTEGER  LEN
      INTEGER  INCHAN
      INTEGER  OUTCHN

==== ercs07/emas-2900/npc2_objvalues.txt ====

{

                          MODULE 15


                  Object Value Manipulation





 This chapter implements the interface procedures for creating  and
 manipulating  literal object values at compile-time, as defined in
 Section 5.3.

 The overriding consideration in determining how these  are  imple-
 mented  is the distinction between the representation of primitive
 values such as integers, reals etc. on the host compiling  machine
 and  that  to be used on the target machine on which compiled pro-
 grams are run.  For many compilers the host  and  target  machines

==== ercs07/emas-2900/constfns.txt ====
!*************************************************************************
! include in OPTCTL 
!*************************************************************************
!*
%OWNINTEGER COMAD,CHEAD0,CHEAD1,CHEAD2,CHEAD3
!*
%EXTERNALINTEGERFNSPEC COERCE CONST(%INTEGER A,OLDMODE,NEWMODE,
                                        ADICT,%INTEGERNAME DPTR)
%EXTERNALINTEGERFNSPEC CONST EVAL(%INTEGER RESL,OP,RESR,
       %RECORD(RESF)%NAME RES,%INTEGER ADICT,%INTEGERNAME DPTR)
%EXTERNALINTEGERFNSPEC SETCONREC(%RECORD(RESF) R)
%EXTERNALINTEGERFNSPEC CONIN(%INTEGER VAL)
!*
!***********************************************************************
! end include targ_constfns
!************************************************************************

==== ercs07/emas-2900/slinkf_iswapgfr.txt ====
    
      INTEGER FUNCTION ISWAP (WORD) 
      INTEGER WORD  
      INTEGER GCHAR, BYTEA, BYTEB, TEMP 
      BYTEA = GCHAR (WORD, 1)   
      BYTEB = GCHAR (WORD, 2)   
      CALL PCHAR (TEMP, 1, BYTEB)   
      CALL PCHAR (TEMP, 2, BYTEA)   
      ISWAP = TEMP  
      RETURN
      END   

==== ercs07/emas-2900/rel4_fmt6.txt ====
!PFMTQ4 IS EQUIVALENT TO F77FMT1 ON PERQ
!
!*     RUNCOMP=0 FOR COMPILE TIME FORMAT
!*     RUNCOMP=1 FOR RUN TIME FORMAT

!*                                                                      FORMATCD
!*

%EXTERNALINTEGERFN FORMATCD(%INTEGER INSTART,DISP,ARYADR,INLEN,OUTLEN,  
    LEVEL,RUNCOMP, %INTEGERNAME TABLEN, ACTFMTLEN)
!*
!*
%SWITCH SW(0 : 122)
%HALFINTEGER PTR, CODE, BRACK, FLAG, I, CHAR, BOTHZERO
%HALFINTEGER NXTCHAR, OUTPTR, FMTPTR, TEXTPTR, HOLLEN, QUOTE CNT,ITEMPTR
%HALFINTEGER COPYCODE, ERR,LINELEN
%INTEGER LARGESTINT, COUNT, NUMBER,FMTAD,INLENGTH
%HALFINTEGER NOCOMMA, J, K,COMMAREQD
%HALFINTEGERARRAY LOOP(0 : 8)
%BYTEINTEGERARRAYNAME FORMAT
%BYTEINTEGERARRAYFORMAT AF(0 : 1320)

==== ercs07/emas-2900/ds20imp_rtnewctm.txt ====
%CONTROL X'0FFFFFFF'
!* MODIFIED 14/06/79                                                            
!                                                                               
!++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++           
!                                                                               
!    NEW CTM INTERFACE FOR 5X32 RELEASE OF SYSTEM B.                            
!    FLAG ICL9CECTM32 DETERMINES WHETHER CALLS ARE MADE ON THE NEW              
!    CTM PROCEDURES OR ON THE OLD TUM PROCEDURES                                
!    ICL9CECTM32=1        NEW CTM                                               
!    ICL9CECTM32=0        OLD TUM                                               
!                                                                               
!++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++           
!                                                                               
!  FILE DESCRIPTION RECORD FORMAT                                               
%RECORDFORMAT AFDFORM(%INTEGER LINK,DSNUM,                           %C         
                      %BYTEINTEGER STATUS,ACCESSROUTE,VALIDACTION,%C            
                        CURSTATE,MODEOFUSE,ACCESSMODE,FILEORG,    %C            
                        DEVCLASS,RECTYPE,FLAGS,LM,RM,             %C            
                      %INTEGER ASVAR,AREC,RECSIZE,MINREC,MAXREC,  %C            
                        MAXSIZE,ROUTECCY,C0,C1,C2,C3,TRANSFERS,   %C            
                         DARECNUM,%LONGINTEGER RECCCY,NEWCCY,SPARE,   %C        

==== ercs07/emas-2900/mixedsrce_extern3.txt ====
PROGRAM EXTERN3(OUTPUT);
(*# E+ *)
PROCEDURE FUNC;
VAR N:INTEGER;
    INPUT,OUTPUT:TEXT;
BEGIN
READLN(INPUT,N);
WRITELN(OUTPUT,'FROM FUNC,N= ',N:4)
END;
BEGIN
WRITELN('CALLING FUNC');
FUNC;
WRITELN('DID IT WORK');
END.

==== ercs07/emas-2900/psclsce209_pscltxt203.txt ====

PASCAL on EMAS
--------------

CONTENTS

1.  INTRODUCTION

2.  COMPILATION
2.1 Compilation Options
2.2 Compilation Listings

3.  EXECUTION
3.1 Use of Input and Output Media
3.2 The Standard PASCAL Files INPUT and OUTPUT
3.3 Separate Compilation of PASCAL Procedures and Functions
3.4 Mixed Language Programming
4.  BASIC ERROR ACTION
4.1 Compiler-detected Errors
4.2 Hardware Errors
4.3 Errors in Mathematical Libraries

==== ercs07/emas-2900/bscmast30_fconvs.txt ====
%EXTERNALROUTINESPEC DEFINE (%STRING(255) PARMS)
%EXTERNALINTEGERFNSPEC OUT STREAM
%SYSTEMROUTINESPEC ETOI(%INTEGER ADDRESS,LEN)
%SYSTEMROUTINESPEC ITOE(%INTEGER ADDRESS,LENGTH)
%EXTERNALROUTINESPEC OPENSQ(%INTEGER CHAN)
%EXTERNALROUTINESPEC  READSQ (%INTEGER CHAN,%NAME START,END)
%EXTERNALROUTINESPEC WRITESQ (%INTEGER CHAN,%NAME START,END)
%EXTERNALROUTINESPEC CLOSESQ(%INTEGER CHAN)
!
%EXTERNALROUTINE CTES (%STRING(255) PARMS)
!
!       CONVERT TO EBCDIC SEQUENTIAL (FROM ISO CHARACTER FILE)
!
%INTEGER INPUT,OUTPUT,I,COUNT
%STRING(32) BEFORE,AFTER
%BYTEINTEGERARRAY BUFF (0:132)
%STRINGNAME LINE
%ON %EVENT 9 %START
    CLOSESQ(OUTPUT)
    WRITE(COUNT,0)
    PRINTSTRING(" LINES PROCESSED") ; NEWLINE

==== ercs07/emas-2900/npc2_lexical.txt ====
{

                           MODULE 8
 
 
                       Lexical Analysis
 
 
 
 
 
 Lexical analysis is carried out by the procedure NextSymbol.  When
 called,  NextSymbol  scans  the next language symbol in the source
 stream and returns a representation of it in the following  global
 variables:-
 
 Symbol        in all cases Symbol represents the  symbol  scanned,
               as defined by the type SymbolType.
 
 Operator      when  Symbol  =  addop,  mulop  or  relop,  Operator
               represents   the  particular  operator  scanned,  as

==== ercs07/emas-2900/inpds_opersain.txt ====
C     EDIT DATE   23FEB78  09:29
C     SOURCE FILE   OPERSAJH.IN
C     AUTHOR        A. J. HOWARD
      INTEGER  NINE
      INTEGER  COMMA, SEMIC, PERIOD, COLON, FOR, DOOP, WHILE
      INTEGER  RBRACE, LBRACE, RETOP, CRUTCH
      INTEGER  LPAREN, RPAREN, LBK, RBK
      INTEGER  EQUAL, NEQUAL, GTR, GEQ, LESS, LESSEQ, ARROW
      INTEGER  PLUS, MINUS, MULT, DIVIDE, MODOP
      INTEGER  OROP, ANDOP, AOROP, XOROP, AANDOP
      INTEGER  LSHIFT, RSHIFT, LCYCLE, RCYCLE, ALSHFT, ARSHFT
      INTEGER  NEG, UPARO, DNARO, COM
      INTEGER  LOC, GIZZY, QUOTE, ZRL, TEMPL
      INTEGER  SP, DP, ST, HEX
      INTEGER  ATSIGN
      COMMON /OPERS/     NINE
      COMMON /OPERS/     COMMA, SEMIC, PERIOD, COLON, FOR, DOOP, WHILE
      COMMON /OPERS/     RBRACE, LBRACE, RETOP, CRUTCH
      COMMON /OPERS/     LPAREN, RPAREN, LBK, RBK
      COMMON /OPERS/     EQUAL, NEQUAL, GTR, GEQ, LESS, LESSEQ, ARROW
      COMMON /OPERS/     PLUS, MINUS, MULT, DIVIDE, MODOP

==== ercs07/emas-2900/psclsce209_pscltxt204.txt ====

PASCAL on EMAS
--------------

CONTENTS

1.  INTRODUCTION

2.  COMPILATION
2.1 Compilation Options
2.2 Compilation Listings

3.  EXECUTION
3.1 Use of Input and Output Media
3.2 The Standard PASCAL Files INPUT and OUTPUT
3.3 Separate Compilation of PASCAL Procedures and Functions
3.4 Mixed Language Programming

4.  BASIC ERROR ACTION
4.1 Error Reporting
4.2 Compile-time Control

==== ercs07/emas-2900/testpd_golnftfr.txt ====
    
      SUBROUTINE GOLN (/DUMMY/) 
      INTEGER DUMMY, GOMSG (2), GCHAR   
      DATA     GOMSG    /'GO',' T','O ','/'/
      CALL PSTR (GOMSG) 
      CALL SET (BBLANK, NAME, 3)
      CALL ESP (LN, NAME, 1, 5) 
      DO  13014 II = 1, 5   
      CALL PUTC (GCHAR (NAME, II))  
13014 CONTINUE  
    
      CALL PUTC (EOL)   
      RETURN
      END   

==== ercs07/emas-2900/testpd_ctypeffr.txt ====
    
      INTEGER FUNCTION CTYPE (ICHAR)
      INTEGER ICHAR 
      IF (.NOT. (ICHAR .GE. CHAR0 .AND. ICHAR .LE. CHAR9))GO TO 13000   
    
      CTYPE = DIGIT 
      GO TO 13001   
13000 CONTINUE  
    
      IF (.NOT. (ICHAR .GE. CHARA .AND. ICHAR .LE. CHARZ))GO TO 13002   
    
      CTYPE = LETTER
      GO TO 13003   
13002 CONTINUE  
    
      CTYPE = ICHAR 
13003 CONTINUE  
    
13001 CONTINUE  
    
      RETURN

==== ercs07/emas-2900/ecode3b.txt ====
 1 14 56 26974 26996 0 50 54 2 16 4 2G1 54 2 20 4 2G2 54 2 24 4 2I1 51 3IN3 131072 0 0 33048-1 5 8 5 9 13 3 25 2 16 412 4 56 184 5 10 28-3 52 4 0 0 51 5THREE 65536 1 4 32904-1 5 12 5 13 13 2 25 2 20 416 4 56 184 5 14 45-1 46-1 0 0 5 15 15 2 16 412 4 27 2 0 432 4 56 184 5 16 28-2 52 0 0 0 60 28 51 5TEST3 65538 0 0 32648 0 5 18 5 19 45-1 15 2 24 420 4 56 186 46-1 1 4 5 20 28-1 52 0 0 0 2 0 0 28 0 0 0 0 0 0 0 0

==== ercs07/emas-2900/pffiles_prologue.txt ====
procedure ProcessManuals(ManualScope: DispRange; List: ManualList;
                         PresetAction: Boolean);
  extern;

==== ercs07/emas-2900/slogof_sortajfr.txt ====
    
      SUBROUTINE SORT (LIST, COUNT, ARRAY, COMP)
      INTEGER     COUNT, LIST (1), ARRAY (1)
      INTEGER     CT, STEP, COMP
      INTEGER     I, J, K, L, M, N  
    
      K = COUNT 
      IF (K .LE. 1) RETURN  
      CT = K
      STEP = 1  
      CONTINUE  
13020 CONTINUE  
    
      K = ISHFT (K, -1) 
      IF (.NOT.(K .NE. 0))GO TO 13021   
    
      STEP = STEP + STEP
      GO TO 13020   
13021 CONTINUE  
    
      STEP = STEP - 1   

==== ercs07/emas-2900/ctms_cram.txt ====
%OWNSTRING(63) RAM NAME = "Character file (ISO)"
%CONSTINTEGER PLACEMENT = 130
%CONSTINTEGER CONAD = 133
%CONSTLONGINTEGER NIL = -1
%CONSTINTEGER STRING DESC = X'58000000'
%CONSTINTEGER LENGTH MASK = X'00FFFFFF'
%CONSTLONGINTEGER ADDRESS MASK = X'00000000FFFFFFFF'
!
%OWNINTEGER DATA LENGTH, FILE LENGTH, ICOMB, LABEL, START ADR, END ADR
%OWNINTEGER LAST BYTE
!
! Descriptors to the entire file (FDESC, FADDR), the current
! record (CDESC, CADDR), the rest of the file (RDESC, RADDR) and
! the caller's buffer (BDESC, BADDR).  These must be declared
! in pairs.
!
%OWNINTEGER FDESC, FADDR, RDESC, RADDR, CDESC, CADDR, BDESC, BADDR
%OWNINTEGER QBEFORE
%OWNLONGINTEGER FILE ROUTE
%OWNLONGINTEGERARRAY A(0:31) = -1(32)
!

==== ercs07/emas-2900/tstfiles_logt05lnk.txt ====
ZREL=0000
NOUN=1000
DATA=2000
CODE=3000
TZOBJ

==== ercs07/emas-2900/rel11opt_fctl13.txt ====
! 08/01/85 include N=5 in F77abort
!* modified 14/12/84
!*
%CONSTINTEGER DICTVERSION=0;! 0 EMAS  1 VME
!*
%CONSTSTRING(5) LOCAL VERSION="1.4"
!*
%include "host_host"
!*
%include "bits_fmts"
!*
%include "bits_com"
!*
%RECORDFORMAT OBJFMT(%STRING(35) MODULE,%INTEGER MAINEP,I,J,K,
                     ADATE,ATIME,OPTIONS2,EXTPROCS,ATRIADS,MAXTRIADS,
                     ABLOCKS,MAXBLOCKS,ALOOP,MAXLOOP,ATABS,MAXTABS,
                     SRFLAGS,INHIBMASK,OPT,OPTFLAGS,OPTDESC0,OPTDESC1,
                     D1,D2,D3,D4)
!*
%OWNRECORD(OBJFMT) OBJ
%OWNRECORD(COMFMT)%NAME COM

==== ercs07/emas-2900/strans_setfr.txt ====
    
      SUBROUTINE SET(VALUE,BUF,COUNT)   
      INTEGER VALUE,COUNT,BUF(COUNT)
      INTEGER DVALUE,MASK   
      DATA MASK/Z0000FFFF/  
      IDX=ISHFT(COUNT,-1)   
      IF(IDX.LE.0)GOTO 20   
      DVALUE=ISHFT(VALUE,16)+VALUE  
      DO 10 I=1,IDX 
      BUF(I)=DVALUE 
   10 CONTINUE  
   20 CONTINUE  
      IF(IAND(COUNT,1).EQ.0)GOTO 30 
      BUF(IDX+1)=IAND(BUF(IDX+1),MASK)+ISHFT(VALUE,-16) 
   30 CONTINUE  
      RETURN
      END   

==== ercs07/emas-2900/helpsa20_bctamjclpr.txt ====
AREA(2)
ALTER(15,X04,X02)
REDIRECT(ICL9HNRUNSUPPORT,ICL9LPSYSERR)

==== ercs07/emas-2900/slogof_lemascfr.txt ====
      SUBROUTINE EMASLK(SA,LA,SB,LB)
      INTEGER*2 SA(1),LA,SB(1),LB
      INTEGER*4 DA(10),EA,DB(10),EB
      INTEGER*2 X(20),Y(20)
      EQUIVALENCE (X(1),DA(1)),(Y(1),DB(1))
      DO 10 I=1,12
      X(I)=SA(I)
      Y(I)=SB(I)
   10 CONTINUE
      EA=LA
      EB=LB
      CALL EMASFC(DA,EA,DB,EB)
      END
      INTEGER FUNCTION IAND*2(A,B)
      INTEGER*2 A,B
      INTEGER*4 DA,DB,XIAND
      DA=A
      DB=B
      IAND=XIAND(DA,DB)
      RETURN
      END

==== ercs07/emas-2900/perqrel2_init15.txt ====
module f77init;

{ updated 21/3/82 - function openfile defined }
{ updated 23/4/82 - real underflow dealt with in handler all }
{                   procedure movebee inserted }
{ updated 3 may  -  div 2 inserted in dblelen , local areas}
{ updated 4 may  -  localrec string dispensed with}
{         5 may -  size of area and common tables increased to 32}
{         7 may -  remove newline after x chars from iocp}


exports
imports filedefs from filedefs;
imports filesystem from filesystem;
imports fileutils from fileutils;
imports memory from memory;
imports clock from clock;
imports filedir from filedir;


type buff84=packed array[1..84] of char;

==== ercs07/emas-2900/slogos_xnameain.txt ====
C     EDIT DATE   14JAN79  09:50
C     SOURCE FILE XNAMEAJH.IN
C     AUTHOR      A. J. HOWARD
      INTEGER     XNX, XNXMAX, XNAME (100)
      COMMON      /XNAMC/  XNX, XNXMAX, XNAME




==== ercs07/emas-2900/inpds_lsobjjin.txt ====
C     EDIT DATE   17AUG78  12:38
C     SOURCE FILE LSOBJJHP.IN
C     AUTHOR      J.H.PERINE
C     STRUCTURE OF 'LINSTR' TABLE
C        256 ENTRIES - 1 FOR EACH POSSIBLE OP CODE
C        2 WORDS PER ENTRY
C        FIRST WORD:
C           LEFT HALF:  IDENTIFIES CRUTCH TABLE
C                       1 (256)   IMPLID
C                       2 (512)   RELTIV
C                       3 (768)   GROUP1
C                       4 (1024)  OTHERS
C           RIGHT HALF: INDEX INTO TABLE FOR ASCII TEXT
C        SECOND WORD (ATTRIBUTES):
C           LEFT HALF:  ADDRESSING MODE COMPONENTS
C                       BIT    MEANING
C                       0      NOT USED
C                       1      AREG       16384
C                       2      IMMEDIATE   8192
C                       3      ZP          4096
C                       4      ABS         2048

==== ercs07/emas-2900/npc2_interface.txt ====
{

                           MODULE 6
 
 
                  Object Program Generation
 
 
 
 
 
 Object  program  generation  is  embedded  within  the  syntactic-
 semantic analyser as a set of procedure calls. These calls and the
 types underlying  their  parameter  lists,  provide  a  generation
 interface  which  is  independent of the precise object code to be
 generated. Between calls, the analyser stores and  transmits  data
 of  these types but without any detailed knowledge of their inter-
 nal nature.
 
 Likewise,   the   generative   procedures   called   may   operate
 without   any   knowledge  of the analyser's functioning or of the

==== ercs07/emas-2900/perqrel3_comp20.txt ====
{20/05/82 13:20 workseg now 40 blocks (8K bytes for names)                     }
{               MOVE BEE called on source block read                           }
{               NAMESFUL and DICFUL tidied                                     }
{13/05/82 14:30 increase workseg as below to 32 blocks                         }
{13/05/82   increase size of workseg to 24 blocks and reallocate space         }
{           to allow GENERATE to use a 4 block cycle for triad output          }
!*
!*************************** EXPORTS **********************
!*
%ROUTINESPEC F77COMP(%HALFINTEGER A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,
   %INTEGER INFILE,ERRFILE,OUTFILE,
   %HALFINTEGER BLKS,BITS,ISN,
   %INTEGER MODE,
   %HALFINTEGER NUMIMPORTS,MEMSIZE)
%ROUTINESPEC SOURCE LINE(%INTEGER ABUFF)
%ROUTINESPEC DICFUL
%ROUTINESPEC OUTPUTFUL
%ROUTINESPEC NAMESFUL
%ROUTINESPEC EXTFUL
!*
!********************************************************************

==== ercs07/emas-2900/slogof_getcftfr.txt ====
    
      SUBROUTINE GETC (I, K)
    
      INTEGER  QUOTEX   
      INTEGER  CONTF
      INTEGER  CONTRL   
      INTEGER  HEAD 
      INTEGER  EJECT
      INTEGER  BLANK
      INTEGER  SLASH
      INTEGER  CARDC
      INTEGER  FLINCT (8)   
      INTEGER  EOCC 
      INTEGER  ENDCRD (3)   
      INTEGER  RECORD (66)  
      INTEGER  RECPTR   
      INTEGER  SOURCE (150) 
      INTEGER  SRCEND   
      INTEGER  SLEN 
      INTEGER  TF (3)   
      COMMON   /SRCE/   QUOTEX  

==== ercs07/emas-2900/slinkf_orangefr.txt ====
    
      SUBROUTINE  REW (CHAN, FILE)  
      INTEGER     CHAN, FILE (1)
      REWIND CHAN   
      RETURN
      END   
    
      SUBROUTINE  RDLIN (CHAN, BUFFER, MAX, ERROR)  
      INTEGER     CHAN, BUFFER (40), MAX, ERROR 
      INTEGER     WORDS 
      WORDS = (MAX + 1)/2   
      READ (CHAN, 1000, END = 100) (BUFFER (I), I = 1, WORDS)   
      ERROR = 1 
      RETURN
  100 ERROR = 9 
      RETURN
 1000 FORMAT (40A2) 
      END   
      SUBROUTINE WRLIN(CHAN,BUFFER,CHARS)   
      INTEGER CHAN,BUFFER(1),CHARS  
      INTEGER WORDS,PNTR,FMT(6),BBBB,Z100,Z3030 

==== ercs07/emas-2900/slogof_deflitfr.txt ====
    
      SUBROUTINE  DEFLIT
    
      INTEGER  NI,     NJ,     NK   
      INTEGER  NSIZE
      INTEGER  NLX,    FNLX,   REMNLX, OVNLX,  TNAME
      INTEGER  NLSTRT, NLSTOP, NLSIZE, SRCHST   
      INTEGER  NTSTRT   
      INTEGER  NTSTOP   
      INTEGER  NTSIZE   
      INTEGER  PARFLG   
      INTEGER  SPARFL   
      INTEGER  NLWRDS   
      INTEGER  TX   
      INTEGER  NLENO
      INTEGER  STDMD
      INTEGER  MSHIFT   
      INTEGER  REGCNT   
      INTEGER  NULLX
      INTEGER  STPTRX   
      INTEGER  SPMODE   

==== ercs07/emas-2900/inpds_stkdfein.txt ====
C     EDIT DATE   03DEC78  12:12
C     SOURCE FILE STKDEFE.IN
C     AUTHOR      A. J. HOWARD
      INTEGER     OPCODE (20)
      EQUIVALENCE (STK (1, 9), OPCODE (1))


==== ercs07/emas-2900/qfiles5apr_f77qput0.txt ====
!*
%EXTERNALROUTINE QPUT(%INTEGER I,J,K,L)
      PRINTSTRING("QPUT")
      WRITE(I,4)
      WRITE(J,4)
      WRITE(K,4)
      WRITE(L,4)
      NEWLINE
%END;! dummy QPUT
!*
%ENDOFFILE

==== ercs07/emas-2900/slogof_arbgenfr.txt ====
    
      SUBROUTINE  ARBGEN
    
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      INTEGER     NEXT,   NUMBER, I,      IOTYPE
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT
      INTEGER ICLP05
      LOGICAL     ENDOK,CONEND  
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG   
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG  
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV  
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE  
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N   
      COMMON   /LOGOS/  PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE  

==== ercs07/emas-2900/slogosorg_setequin.txt ====
C     EDIT DATE   14SEP78  13:22
C     SOURCE FILE SETEQUAJH.IN
C     AUTHOR      A. J. HOWARD
      INTEGER     LNAMEX, LMODE, LOPC, LWFOP, LWFOPN
      INTEGER     RNAMEX, RMODE, ROPC, RWFOP, RWFOPN
      EQUIVALENCE (LNAMEX, NAMEX  (19))
      EQUIVALENCE (LMODE,  MODE   (19))
      EQUIVALENCE (LOPC,   OPCODE (19))
      EQUIVALENCE (LWFOP,  WFOP   (19))
      EQUIVALENCE (LWFOPN, WFOPND (19))
      EQUIVALENCE (RNAMEX, NAMEX  (20))
      EQUIVALENCE (RMODE,  MODE   (20))
      EQUIVALENCE (ROPC,   OPCODE (20))
      EQUIVALENCE (RWFOP,  WFOP   (20))
      EQUIVALENCE (RWFOPN, WFOPND (20))


==== ercs07/emas-2900/char1.txt ====
      subroutine chars(c1,c2)
      character*(*) c1,c2,c3*10
      l=len(c1)
      write(*,10)l
   10 format(1h ,10hlength c1=,i3)
      c3=c1//c2
      write(*,20)c3
      c2=c3
   20 format(1h ,a20)
      return
      end
      character*10 mess
      mess=' you'
      call chars('hello',mess)
      write(*,30)mess
   30 format(1h ,a20)
      stop
      end

==== ercs07/emas-2900/slogof_genjmpfr.txt ====
 
      SUBROUTINE  GENJMP (CSIDE, OPTS, WFTS) 
      INTEGER     CSIDE, OPTS, WFTS, TFSIDE 
 
      INTEGER     WOPTR,  WO (64), TLI,     TL (128) 
      INTEGER     BO,     SS,      SS2,     NRFCH 
      COMMON      /SCR1/  WOPTR,   WO,      TLI,    TL 
      COMMON      /SCR1/  BO,      SS,      SS2,    NRFCH 
 
      INTEGER  PLEVEL, STOPS (20) 
      INTEGER  CNLSID (9), CNLTLI (9), CNLEND (9) 
      INTEGER  CLX, CPLOC (30) 
      INTEGER  NESTX, PNESTX 
      INTEGER  RELLEV, RELCNT, TRUEF 
      LOGICAL  RELPAS 
      INTEGER  CMPFLG 
      INTEGER  ILB 
      INTEGER  BRCT, BROK, TNESTX 
      COMMON   /COMP/   PLEVEL, STOPS 
      COMMON   /COMP/   CNLSID, CNLTLI, CNLEND 
      COMMON   /COMP/   CLX, CPLOC 

==== ercs07/emas-2900/slinks_ntablein.txt ====
C     EDIT DATE   16JAN79  15:20
C     SOURCE FILE NTABLEGAK.IN
C     AUTHOR      GARY A. KUDIS
C     GLOBAL NAME TABLE
C
C     EACH ENTRY HAS THE FOLLOWING DATA ITEMS :
C        NFLAGS :: BIT STATUSES PER ENTRY
C        NADDRS :: ADDRESS OF THE ENTRY
C        NPOSIT :: CURRENT LOAD ADDRESS WITHIN A GROUP
C        NDATA  :: AREA DEFINITION SIZE
C        NTEXTX :: INDEX INTO NAME TEXT ARRAY (NTEXT)
C
C        HERE 'NFLAGS' HAS THE FOLLOWING BIT DEFINITIONS :
C           0-3 :: NUMBER OF WORDS IN TEXT NAME
C             4 :: = 1 = USED ENTRY SLOT        'USEBIT'
C             5 :: = 1 = COMMON NAME AREA       'COMBIT'
C             6 :: = 1 = OVERLAY ID             'OVLBIT'
C             7 :: = 1 = ENTRY POINT DEFINITION 'EPTBIT'
C             8 :: = 1 = LOAD MODULE ON 2ND PASS'LDMBIT'
C             9 :: = 1 = MODULE NAME ENTRY      'MODBIT'
C            10 :: = 1 = MULTIPLE ENTRY         'MLTBIT'

==== ercs07/emas-2900/qfiles_impsup0.txt ====
module impsup;
exports

procedure dummsup;
procedure printfl(val,place:long);

private
imports f77init from f77init;

procedure dummsup;
begin
end;

procedure printfl;
begin
write(curout^,val:shrink(place)+1);
end. { printfl }

==== ercs07/emas-2900/slogos_llogici.txt ====

%EXTERNALINTEGERFN XIAND(%INTEGERNAME A,B)
      %RESULT=(A&B)&X'0000FFFF'
      %END
%EXTERNALINTEGERFN XIOR(%INTEGERNAME A,B)
      %RESULT=(A!B)&X'0000FFFF'
      %END
%EXTERNALINTEGERFN XIEOR(%INTEGERNAME A,B)
      %RESULT=(A!!B)&X'0000FFFF'
      %END
%EXTERNALINTEGERFN XNOT(%INTEGERNAME A)
      %RESULT=(\A)&X'0000FFFF'
      %END
%EXTERNALINTEGERFN XISHFT(%INTEGERNAME A,B)
      %IF B>0 %THEN %RESULT =(A<<B)&X'0000FFFF'   %C
              %ELSE %RESULT =((A&X'0000FFFF')>>(-B))&X'0000FFFF'
      %END
%ENDOFFILE

==== ercs07/emas-2900/dsa20_compiler.txt ====
 
%COMPILER=YES
%CHARCODE=EBCDIC
%RANGECHECKS=NO
%DIAGLINEMAP=NO
%DIAGNAMETABLE=NO
 
 
 
 
PROGRAM ICL9LPCOMPILE ;
 
 
 
 
 
 
 
 
 
 

==== ercs07/emas-2900/char2.txt ====
      subroutine chars(c1,c2)
      character*(*) c1,c2
      l=len(c1)
      write(*,10)l
   10 format(1h ,10hlength c1=,i3)
      c2=c1//c2
      write(*,20)c2
   20 format(1h ,a20)
      return
      end
      character*10 mess
      mess=' you'
      call chars('hello',mess)
      write(*,30)mess
   30 format(1h ,a20)
      stop
      end

==== ercs07/emas-2900/interprinc.txt ====
@b(3 USER INTERFACE PRINCIPLES)

This section attempts to outline the unifying principles to be used in designing the 
user or man/machine interfaces to Pilot tools.  By consistent application
of these principles in all parts of Pilot, it is hoped that users will find
the penalty of learning to manipulate Pilot objects as small as possible.

All designs for user interfaces to SIMMER tools must attempt to follow the
principles outlined here.  Deviations must be noted explicitly  and justified
to the S.A.G. and T.R.B.

@b(3.1 Influences)

No new concepts have consciously been introduced in this document.  An amalgam
of ideas has been made, borrowing and modifying as appropriate.  In particular
the following systems were influential.

      1. The Jade window management system

      2. The ICL Perq window management system


==== ercs07/emas-2900/oldqfiles_f77gen2.txt ====
!* MODIFIED 22/03/82
!*************  IMP80 version  ******************
!*
!**** SYNTAX ****
!*
!* Syntax tables generated from file SYNTAX48 on 28/01/82 at 23.55.35
!*
%CONSTBYTEINTEGERARRAY OS(0:1500)=  %C                     
   0,   0,  34,   1,   1,   2,  25,   1,   1,   3,
  10,   7,   2,   3,  29,  61,   0,   1,   1,   0,
  13,   1,   0,   1,   3,  20,   4,   1,   2,   1,
   4,  17,   1,   1,   0,   1,   2,  20,   4,   1,
   1,   1,   3,  17,   0,   1,   2,  87,   0,   1,
   1,   0,   1,   3,  20,   5,   1,   2,   1,   4,
  17,   1,   1,   0,   1,   2,  20,   5,   1,   1,
   1,   3,  17,   0,   1,   2,   1,   3,  17,   1,
   1,   0,   1,   1,   1,   2,  17,   0,  20,   2,
   1,   1,   0,  20,   3,   1,   1,   0,  22,   1,
   1,   0,  23,   1,   1,   0,  24,   1,   1,   0,
  88,   1,   1,  89,   0,   0,  88,   1,   1,  89,
   1,   0,  12,   4,   1,   3,  20,   4,   1,   2,

==== ercs07/emas-2900/char3.txt ====
      subroutine chars(c1,c2,c3)
      character*(*) c1,c2,c3
      l=len(c1)
      write(*,10)l
   10 format(1h ,10hlength c1=,i3)
      c3=c1//c2
      write(*,20)c3
   20 format(1h ,a20)
      return
      end
      character*10 mess
      call chars('hello','there',mess)
      write(*,30)mess
   30 format(1h ,a20)
      stop
      end

==== ercs07/emas-2900/oldqfiles_f77gen3.txt ====
!* MODIFIED 25/03/82
!*************  IMP80 version  ******************
!*
!**** SYNTAX ****
!*
!* Syntax tables generated from file SYNTAX48 on 28/01/82 at 23.55.35
!*
%CONSTBYTEINTEGERARRAY OS(0:1500)=  %C                     
   0,   0,  34,   1,   1,   2,  25,   1,   1,   3,
  10,   7,   2,   3,  29,  61,   0,   1,   1,   0,
  13,   1,   0,   1,   3,  20,   4,   1,   2,   1,
   4,  17,   1,   1,   0,   1,   2,  20,   4,   1,
   1,   1,   3,  17,   0,   1,   2,  87,   0,   1,
   1,   0,   1,   3,  20,   5,   1,   2,   1,   4,
  17,   1,   1,   0,   1,   2,  20,   5,   1,   1,
   1,   3,  17,   0,   1,   2,   1,   3,  17,   1,
   1,   0,   1,   1,   1,   2,  17,   0,  20,   2,
   1,   1,   0,  20,   3,   1,   1,   0,  22,   1,
   1,   0,  23,   1,   1,   0,  24,   1,   1,   0,
  88,   1,   1,  89,   0,   0,  88,   1,   1,  89,
   1,   0,  12,   4,   1,   3,  20,   4,   1,   2,

==== ercs07/emas-2900/inpds_iodefnin.txt ====
C     EDIT DATE   09JAN79  17:26
C     SOURCE FILE IODEFNGAK.IN
C     AUTHOR      GARY A. KUDIS
C     I/O CHANNEL DEFINITIONS
      INTEGER     ECODE
      INTEGER     CMCHAN
      INTEGER     RBCHAN
      INTEGER     OBCHAN
      INTEGER     MPCHAN
      INTEGER     DBCHAN
      INTEGER     TTYIN
      INTEGER     TTYOUT
N     INTEGER     OVCHAN
      COMMON      /IODEFN/ ECODE
      COMMON      /IODEFN/ CMCHAN
      COMMON      /IODEFN/ RBCHAN
      COMMON      /IODEFN/ OBCHAN
      COMMON      /IODEFN/ MPCHAN
      COMMON      /IODEFN/ DBCHAN
      COMMON      /IODEFN/ TTYIN
      COMMON      /IODEFN/ TTYOUT

==== ercs07/emas-2900/devlog99.txt ====
! UPDATED 19/12/80
%BEGIN
!
!
!*********************************************************************
!
! MORE COMMENTS AND SWITCH SYSFUN(232) - SYSFUN(280) TIDIED UP
!
!*********************************************************************
!
! CHANNEL USAGE
! ST01 - T#DUMP
! ST02 - LOGNAM
! ST03 - T#TEMP
! SM04 - LOGOFILE
! SM06 - T#LOGOSTK
! SM07 - LOGOMON
! SM08 - BFILE
! SM10 - JUNK FILE
!
!*****************************************

==== ercs07/emas-2900/qfiles5apr_f77qput5.txt ====
%CONSTINTEGER EMAS=0,PERQ=1,SYS=PERQ
%CONSTINTEGER NOTSYS=(SYS+1)&1
!********************************************
!*             PERQ LPUT                    *
!********************************************




%ROUTINESPEC QPUT(%INTEGER A,B,C,D)
{PERQ}   %EXTERNALROUTINESPEC WRITE BLOCK(%HALFINTEGER FILEID,BLOCK, %INTEGER AD)
{PERQ}   %EXTERNALROUTINESPEC READBLOCK(%HALFINTEGER FILEID,BLOCK,%INTEGER AD)
{PERQ}   %EXTERNALROUTINESPEC NEWSEG(%INTEGER AD, %HALFINTEGER SIZE,INC,MAXSIZE)
{PERQ}   %EXTERNALROUTINESPEC CLOSEFILE(%HALFINTEGER FILEID,BLOCKS,BITS)
%DYNAMICROUTINESPEC QCODE(%INTEGER I,J,K,L)
{EMAS     %SYSTEMSTRINGFNSPEC FAILUREMESSAGE(%INTEGER MESS)
{EMAS     %EXTERNALSTRINGFNSPEC UINFS(%INTEGER N)
{EMAS    %SYSTEMSTRINGFNSPEC SPAR(%INTEGER N)
{EMAS    %SYSTEMROUTINESPEC SETFNAME(%STRING(63) S)
{EMAS    %EXTERNALROUTINESPEC CHANGECONTEXT
{EMAS    %SYSTEMINTEGERMAPSPEC COMREG(%INTEGER I)

==== ercs07/emas-2900/slinksorg_questsin.txt ====
C     EDIT DATE   08MAY78  17:45
C     SOURCE FILE QUESTSGAK.IN
C     AUTHOR      GARY A. KUDIS
C     QUESTIONS ASKED OF USER
      INTEGER     CMQUES (10)
      INTEGER     OBQUES (10)
      INTEGER     MPQUES (10)
      INTEGER     ANSWER (14)
      COMMON      /QUESTS/ CMQUES
      COMMON      /QUESTS/ OBQUES
      COMMON      /QUESTS/ MPQUES
      COMMON      /QUESTS/ ANSWER


==== ercs07/emas-2900/pt_dattim.txt ====
PROGRAM DATTIM(INPUT,OUTPUT);
VAR DAT,TIM:PACKED ARRAY[1..8] OF CHAR;
BEGIN
WRITELN('CALLING DATE AND TIME');
DATEANDTIME(DAT,TIM);
WRITELN('DATE IS ',DAT);
WRITELN('TIME IS ',TIM);
END.

==== ercs07/emas-2900/kbscscec_pusc.txt ====
PRINTUSING MODULE
 INCLUDE SMACS
 INCLUDE XMACS
 INCLUDE DBMACS
 UNLISTG
*DEFINE CURRENCY CHARACTER
&CURRENCYCH EQU C'#'
 CDATA FILEDATA
RESTOFFORMAT LWORD  *DR TO REMAINDER OF FORMAT
FORMAT LWORD  *DR TO WHOLE FORMAT
 DATA
 AREAPROPS AREATYPE=DATA,PUBLIC=1
SPECCHARS CHS(8) C'*',C'+',C'-',C'.',C'^',
-C'<',C'>',&CURRENCYCH
&PUBUFLEN AWORD 160  *MAX LENGTH OF FORMAT STRING
 SUBTITLE 2
      *CALLED TO INITIALISE THE PRINT USING ROUTINES. THE PARAMETER IS
      *A DESCRIPTOR TO THE FORMAT STRING
 CHAPTER
 AREAPROPS AREATYPE=CODE,PUBLIC=1
PUSTART PROC

==== ercs07/emas-2900/oldqfiles_f77intrin1.txt ====
module f77intrin;
exports

imports complexfunctions from complexfunctions;

exception R2LOvrFlow(Arg : Real);
{-----------------------------------------------------------------------------
{
{ Abstract:
{       R2LOvrFlow is raised when RoundLong or TruncLong is called with Arg
{       exceeding the range for Longs (-2147483648 .. +2147483647).
{       You may resume from this exception in which
{       case RoundLong or TruncLong returns -2147483648 or +2147483647.
{
{ Parameters:
{       Arg - Argument of RoundLong or TruncLong.
{
{-----------------------------------------------------------------------------}

function floatlong(arg:long):real;
function trunclong(arg:real):long;

==== ercs07/emas-2900/slogof_gendatfr.txt ====
 
      BLOCK DATA 
 
      INTEGER     OP, LEFT, RIGHT, LSTKX, RSTKX 
      INTEGER     TS, LOAD, BASE 
      INTEGER     THIS, OTHER, SIDE, HI, LOW 
      INTEGER     INTBR, ROW, COL, INREG, OUTREG 
      INTEGER     BCC, BNE 
      INTEGER     CLC, JMP, LDAABS, LDAI, LDAZP 
      INTEGER     SBCI, SEC, STAZP, TAX, TXA 
      LOGICAL     COMZER, EZSTA, MORE 
      COMMON      /GCOM/   OP, LEFT, RIGHT, LSTKX, RSTKX 
      COMMON      /GCOM/   TS, LOAD, BASE 
      COMMON      /GCOM/   THIS, OTHER, SIDE, HI, LOW 
      COMMON      /GCOM/   INTBR, ROW, COL, INREG, OUTREG 
      COMMON      /GCOM/   BCC, BNE 
      COMMON      /GCOM/   CLC, JMP, LDAABS, LDAI, LDAZP 
      COMMON      /GCOM/   SBCI, SEC, STAZP, TAX, TXA 
      COMMON      /GCOM/   COMZER, EZSTA, MORE 
      DATA  BCC   / 144/ 
      DATA  BNE   / 208/ 

==== ercs07/emas-2900/oldqfiles_f77intrin2.txt ====
module f77intrin;
exports

imports complexfunctions from complexfunctions;

exception R2LOvrFlow(Arg : Real);
{-----------------------------------------------------------------------------
{
{ Abstract:
{       R2LOvrFlow is raised when RoundLong or TruncLong is called with Arg
{       exceeding the range for Longs (-2147483648 .. +2147483647).
{       You may resume from this exception in which
{       case RoundLong or TruncLong returns -2147483648 or +2147483647.
{
{ Parameters:
{       Arg - Argument of RoundLong or TruncLong.
{
{-----------------------------------------------------------------------------}

function floatlong(arg:long):real;
function trunclong(arg:real):long;

==== ercs07/emas-2900/culhamsce_prbuls.txt ====
%BEGIN
!
!    ROUTINE TO TEST THE ROUTINE RDBUL AND THE CONCORDED FILE CREATED
!    BY THE BULLETIN OUTPUT ROUTINE WRBUL.
!
%ROUTINESPEC RDBUL (%INTEGERNAME UNIT,BLOCK,POSN,NO)
!
%INTEGERARRAY NUMBER (1:200)                     ;! JOURNAL NOS
!?? ; %HALFINTEGERARRAY CONC1,CONC2,CONC3(1:500) ;! CONCORDANCE ARRAYS
!?? ; %HALFINTEGERARRAY POINTF,POINTL(1:200)    ;! PTRS TO CONCORDANCE
!?? ; %HALFINTEGERARRAY IRDIRC (1:32)                 ;! REC DIRECTORY
%BYTEINTEGERARRAY IRTEXT (1:500)                 ;! RECORD TEXT
!
%INTEGER BLOCK                         ;! BLOCK CONTAINING REC
%INTEGER CHECK
%INTEGER I                             ;! LOOP VARIABLE
%INTEGER IC                            ;! CONCORDANCE POINTER
%INTEGER IND                           ;! RDBUL ENTRY NUMBER
%INTEGER J                             ;! LOOP VARIABLE
%INTEGER MAXC                          ;! NO OF ITEMS IN CONCORDANCE
%INTEGER MAXN                          ;! NO OF DIFFERENT JOURN NOS

==== ercs07/emas-2900/slogof_cgenajfr.txt ====
 
      SUBROUTINE  CGEN 
 
      LOGICAL     ATEST 
      COMMON      /ATST/   ATEST 
 
      INTEGER  PLEVEL, STOPS (20) 
      INTEGER  CNLSID (9), CNLTLI (9), CNLEND (9) 
      INTEGER  CLX, CPLOC (30) 
      INTEGER  NESTX, PNESTX 
      INTEGER  RELLEV, RELCNT, TRUEF 
      LOGICAL  RELPAS 
      INTEGER  CMPFLG 
      INTEGER  ILB 
      INTEGER  BRCT, BROK, TNESTX 
      COMMON   /COMP/   PLEVEL, STOPS 
      COMMON   /COMP/   CNLSID, CNLTLI, CNLEND 
      COMMON   /COMP/   CLX, CPLOC 
      COMMON   /COMP/   NESTX, PNESTX 
      COMMON   /COMP/   RELLEV, RELCNT, TRUEF 
      COMMON   /COMP/   RELPAS 

==== ercs07/emas-2900/oldcalliocp.txt ====
pROGRAM IOCP;
{ * auto- }
IMPORTS F77CTL FROM F77CTL;
VAR I:INTEGER;
    SYM,CC:PINT;
    STR1,STR2:PSTR;
    FILENAME:STRING;
BEGIN
outptr:=0;
REWRITE(OUTPUT,'CONSOLE:');
WRITELN('NAME OF LISTING FILE?');
CLOSE(OUTPUT);
RESET(INPUT,'CONSOLE:');
READLN(FILENAME);
REWRITE(OUTPUT,FILENAME);
NEW(SYM);
SYM^:=42;
i:=IOCP(3,SYM);
new(cc);
CC^:=10;
i:=IOCP(5,CC);

==== ercs07/emas-2900/slogof_pnextafr.txt ====
    
      SUBROUTINE  PNEXT 
    
      INTEGER  NI,     NJ,     NK   
      INTEGER  NSIZE
      INTEGER  NLX,    FNLX,   REMNLX, OVNLX,  TNAME
      INTEGER  NLSTRT, NLSTOP, NLSIZE, SRCHST   
      INTEGER  NTSTRT   
      INTEGER  NTSTOP   
      INTEGER  NTSIZE   
      INTEGER  PARFLG   
      INTEGER  SPARFL   
      INTEGER  NLWRDS   
      INTEGER  TX   
      INTEGER  NLENO
      INTEGER  STDMD
      INTEGER  MSHIFT   
      INTEGER  REGCNT   
      INTEGER  NULLX
      INTEGER  STPTRX   
      INTEGER  SPMODE   

==== ercs07/emas-2900/dsea20_pmedlate1.txt ====
T/%LINE/ B/LINE/DIAG/ T+1 R/DUMP/DIAGNAMETABLE/
T/PROGRAM DIAGNOSTICS/ R/DIAGNOSTICS/ICL9LPPMPACKAGE/
T/CONST/
TS/MODEWORDOFFSET/ R/20/12/ T+1 R/24/16/ T+1 R/76/60/ T+1
I/   PAGEFLAGOFFSET = 228;///
T/TYPE/
TS/SYMBOLTYPE =/ TC/PERIOD,/ A/PERIOD,/DOTDOT,/
T/FUNCTION SPACELEFT :/
I$FUNCTION ATLEFTMARGIN : BOOLEAN;
    
    BEGIN
    ATLEFTMARGIN := COLUMNINDEX=TOTALINDENT;
    END (* ATLEFTMARGIN *);
   
FUNCTION SPACEINFRESHLINE : COLUMNRANGE;
   
    BEGIN
    SPACEINFRESHLINE := MAXCOLUMN-TOTALINDENT+1;
    END (* SPACEINFRESHLINE *);
    
$

==== ercs07/emas-2900/mixedsrce_calltst3a.txt ====
%BEGIN
%PROCEDURE CALLFUNC(FUNC,PARAM,RES);
%VALUE PARAM;%INTEGER PARAM,RES;
%INTEGER %PROCEDURE FUNC;%COMMENT(VAL):%VALUE VAL:%INTEGER VAL;
%EXTERNAL CALLFUNC;
%INTEGER FIVE;
%INTEGER %PROCEDURE SETVAL(VAL);
%VALUE VAL;%INTEGER VAL;
%EXTERNAL SETVAL;
PRINTSTRING(<CALLING_CALLFUNC>);
NEWLINE;
CALLFUNC(SETVAL,5,FIVE);
PRINTSTRING(<FIVE_=>);
PRINT(FIVE,4,0);NEWLINE;
PRINTSTRING(<DID_IT_WORK>);NEWLINE;
%END;

==== ercs07/emas-2900/dsa20_rtedindums.txt ====
%CONTROL X'0FFFFFFF'
!* RTEDINDUMS - FOR PASCAL 20 (RUNTIME)
!*
!* CONTAINS DUMMIES FOR :-
!*      DUMP
!*      SSMESS
!*      ONTRAPACT
!*      ONTRAPB
!*      INDIAG
!*      OPEHMESS
!*      NOMTIDYDESC
!*
!* T.MOORE    APRIL 1980
!*
%SYSTEMROUTINE DUMP
%END
 
%SYSTEMROUTINE SSMESS
%END
 
%SYSTEMROUTINE ONTRAPACT

==== ercs07/emas-2900/slogos_logosain.txt ====
C     EDIT DATE   10NOV78  14:27
C     SOURCE FILE LOGOSAJH.IN
C     AUTHOR      A. J. HOWARD
C     GLOBAL PROGRAM DATA BASE
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      INTEGER     NEXT,   NUMBER, I,      IOTYPE
      INTEGER     J,      K,      L,      LABNLX, M,      N
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX
      INTEGER     DUMMY,  OVCHN,  PEEKS
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT
I     INTEGER ICLP05
      LOGICAL     ENDOK,CONEND
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N

==== ercs07/emas-2900/inpds_rstdefin.txt ====
C     EDIT DATE     15NOV78 13:00
C     SOURCE FILE   RSTDEFAPB.IN
C     AUTHOR        A.P. BUCHALTER
C     SOME CONSTANTS FOR REGSAVEAPB.FS (REGISTER STACK)
C     SAVSIZ= NUMBER OF ITEMS SAVED FOR EACH LEVEL
      INTEGER SAVSIZ
C     MAXLEV(1)=# LEVELS FOR BOOLEAN, (2)=# LEVELS CONDITIONAL
      INTEGER MAXLEV(2)
C     SCRLEV= LEVEL NUMBER FOR SCRATCH LEVEL
      INTEGER SCRLEV
C     LEVST= SEE REGSAVEAPB.FS
      INTEGER LEVST(2)
      DATA  SAVSIZ/15/
C     BOOLEAN STARTS AT 2
      DATA  MAXLEV/6,2/
      DATA  SCRLEV/7/
      DATA  LEVST/-2,4/


==== ercs07/emas-2900/rsutils.txt ====
%EXTERNALROUTINESPEC DESTROY(%STRING(63) S)
%EXTERNALROUTINESPEC COPY(%STRING(63) S)
%EXTERNALROUTINESPEC OPTION(%STRING(63) S)
%EXTERNALROUTINESPEC IMP80(%STRING(63) S)
%EXTERNALROUTINESPEC PNXIMP(%STRING(63) S)
!
%EXTERNALROUTINE ADDDIR(%STRING(63) S)
      OPTION("SEARCHDIR=".S)
%END
%EXTERNALROUTINE REMDIR(%STRING(63) S)
      OPTION("REMOVEDIR=".S)
%END
!
%EXTERNALROUTINE I80(%STRING(63)S)
%STRING(63) S2,S1
%UNLESS S->S1.(".").S2 %THEN S2=S
%UNLESS S2->S1.("_").S2 %THEN S2=S2
%IF LENGTH(S2)>10 %THEN LENGTH(S2)=10
IMP80(S.",".S2."Y,".S2."L")
%END
!

==== ercs07/emas-2900/pptests_sorta.txt ====
program sort(output);

  const n = 1000;

  var i,j,k,m: integer;
      a: array [1 .. n] of integer;

  begin
    for k := 1 to n do a[k] := k;
    for i := 1 to n - 1 do
      begin
        k := i;
        m := a[i];
        for j := i + 1 to n do
          if a[j] > m
          then
            begin
              k := j;
              m := a[j]
            end;
        a[k] := a[i];

==== ercs07/emas-2900/slinks_finishfs.txt ====
'HEAD'  LINKER, FINISH UP
C     EDIT DATE   10JAN79  09:53
C     SOURCE FILE FINISHGAK.FS
C     AUTHOR      GARY A. KUDIS
C     CLUSTER     7
      'OUTFILE' FINISHGAK.FR
      SUBROUTINE FINISH
      'INCLUDE' IODEFNGAK.IN,
C FINISH ::
X     WRITE (DBCHAN, 1)
X1    FORMAT (' ENTER FINISH')
      CALL CLOSF (CMCHAN, ECODE)
      IF (ECODE.NE.1) CALL ERROR (3)
      CALL CLOSF (OBCHAN, ECODE)
      IF (ECODE.NE.1) CALL ERROR (3)
N     CALL CLOSF (MPCHAN, ECODE)
N     IF (ECODE.NE.1) CALL ERROR (3)
P     CALL SPOOL (MPCHAN, ECODE)
X     WRITE (DBCHAN, 2)
X2    FORMAT (' EXIT FINISH')
      RETURN

==== ercs07/emas-2900/perqrel3_alloc20.txt ====
!* modified 25/05/82
!*
!******************************** EXPORTS ******************************
!*
%ROUTINESPEC ALLOC(%INTEGER PTR)
%INTEGERFNSPEC ALLOC CHAR(%INTEGER L,AD,
        %HALFINTEGERNAME IIN,%INTEGERNAME DISP)
%ROUTINESPEC INIT ALLOC(%INTEGER ADCOM)
%ROUTINESPEC ADD DATA ITEM(%INTEGER AREA,PTR,COUNT,DISP,L,AD)
%INTEGERFNSPEC TIDY GLA(%HALFINTEGER EP,IIN,%INTEGER LEN)
%INTEGERFNSPEC PFORMAT(%INTEGER AINPUT,INP,J,
                       %STRINGNAME IDENTIFIER)
%INTEGERFNSPEC TO INTEGER(%INTEGER DATA AD,DATA LEN,
                                   TEXT AD,TEXT LEN,TEXT INC,MODE)
%INTEGERFNSPEC TO REAL(%INTEGER DATA AD,DATA LEN,TEXT ADDRESS,
                                INT LEN,INT PTR,DEC LEN,DEC PTR,
                                EXP LEN,EXP PTR,DECS,SCALE,MODE)
%INTEGERFNSPEC GLA SPACE(%INTEGER LEN)
!*
!* 25/03/82   
!*

==== ercs07/emas-2900/pffiles_generator.txt ====
{

 History
 -------

 16/10/85 - new functions AlfaString, ArrayString.
 17/10/85 - History tidied. (agh)
 03/01/86 - Add MCgGetByte and MCAddress. (agh)

                                                                       }

function MCAddress(PtrValue: Pointer): integer;
  extern;

procedure MCSetBit(var Word: MCWordform; BitIndex: MCBitIndex);
  extern;

procedure MCGetBit(word: MCWordForm; BitIndex: MCBitIndex;
                   var ResultBit: MCBit);
  extern;


==== ercs07/emas-2900/perqrel3_code20.txt ====
!* MODIFIED 26/05/82
!{2900C}%CONSTINTEGER W1=2;! 1 PERQ  2 EMAS
!{2900C}%CONSTINTEGER W2=4
!{2900C}%CONSTINTEGER W3=6
!{2900C}%CONSTINTEGER W4=8
!{2900C}%CONSTINTEGER W6=12
!{2900C}%CONSTINTEGER W8=16
!{2900C}%CONSTINTEGER W66=132
{PERQC}%CONSTINTEGER W1=1
{PERQC}%CONSTINTEGER W2=2
{PERQC}%CONSTINTEGER W3=3
{PERQC}%CONSTINTEGER W4=4
{PERQC}%CONSTINTEGER W6=6
{PERQC}%CONSTINTEGER W8=8
{PERQC}%CONSTINTEGER W66=66
%OWNINTEGER TRACETEMP
!*************  IMP80 version  ******************
!*
!***********************************************************************
!%INCLUDE "ERCS06.PERQ_TRIADOPS"                                        ;
!***********************************************************************

==== ercs07/emas-2900/ecode5b.txt ====
 1 14 56 26974 26996 0 50 54 2 16 4 1A 54 2 20 4 1B 44 0 8PRINTINT 60 40 51 5PRINT 65538 0 0 32648 0 5 5 5 6 45 24 15 2 16 412 4 56 186 46 24 1 4 5 7 28-1 52 0 0 0 2 0 0 40 0 0 0 0 0 0 0 0

==== ercs07/emas-2900/helpsa20_brtamfinal.txt ====
REDIRECT(
ICL9HNRUNSUPPORT&
ICL9HERRADDR&
ICL9HEDIAGOUT&
ICL9HEFATALCOMPERR&
ICL9HERESET&
ICL9HEPROLOG&
ICL9HEFILETIDYPROC&
ICL9HETIDYUP&
ICL9HENOMDESC&
ICL9CM2SIN&
ICL9CM2COS&
ICL9CM2ATAN&
ICL9CM2LOG&
ICL9CM2EXP&
ICL9CM2SQRT,ICLSTDSW.)

==== ercs07/emas-2900/mixedsrce_calltst3f.txt ====
      PROGRAM CALLTEST
      INTEGER FIVE, T5
      EXTERNAL SETVAL
      WRITE(6,100)
  100 FORMAT (' CALLING CALLFUNC')
      T5=5
      CALL CALLFUNC(SETVAL,T5,FIVE)
       WRITE(6,200)FIVE
  200 FORMAT(' FIVE =',I4)
       WRITE(6,300)
  300 FORMAT('DID IT WORK')
       STOP
      END

==== ercs07/emas-2900/slogof_adjlocfr.txt ====
    
      SUBROUTINE  ADJLOC (ADJUST)   
    
      INTEGER  LOWWF, LTLNA, LLPOOL, LLNAME, LMOVEP, LBSS   
      INTEGER  LEXEQU, LNLEQU   
      COMMON   /LCON/   LOWWF, LTLNA, LLPOOL, LLNAME, LMOVEP, LBSS  
      COMMON   /LCON/   LEXEQU, LNLEQU  
      INTEGER     ADJUST
      IF (.NOT. (ADJUST .NE. 0))GO TO 13074 
    
      CALL LIST (LBSS, ADJUST, 0)   
      CALL SETLCI   
13074 CONTINUE  
    
      RETURN
      END   

==== ercs07/emas-2900/pascalsce_myomfout.txt ====
%EXTERNALINTEGERFN PAOMFOUT(%INTEGER OPSYS,ATEMP,AWORK,CONTROL, %C
          LANGCODE,ADATE,ATIME,%STRING(7) SUBNAME,%STRING(4) VSN, %C
          %STRING(32) MODNAME,MRTPREFIX,CEPREFIX)
!?1 %EXTERNALINTEGERFNSPEC OUT STREAM
!?1 %INTEGER OS
!?1 OS=OUTSTREAM
!?1 SELECTOUTPUT(0)
!?1 PRINTSTRING("OMFOUT ENTERED");NEWLINE
!?1 SELECTOUTPUT(OS)
%RESULT=0
%END
%ENDOFFILE

==== ercs07/emas-2900/slinkf_t19p2gfr.txt ====
    
      SUBROUTINE T19P2  
    
      LOGICAL     MPFLAG
      LOGICAL     OVMODE
      LOGICAL     LBMODE
      LOGICAL     LOADRB
      LOGICAL     SFLAG 
      INTEGER     VERS  
      INTEGER     LOADAD
      INTEGER     ZLOC, ZSTR, ZMAX, ZLIMIT  
      INTEGER     CLOC, CSTR, CMAX, CLIMIT  
      INTEGER     NLOC, NSTR, NMAX, NLIMIT  
      INTEGER     DLOC, DSTR, DMAX, DLIMIT  
      INTEGER     OLOC, OMAX, OSET  
      INTEGER     START 
      INTEGER     MODNLX
      INTEGER     CKSUM 
      INTEGER     KEY   
      INTEGER ICLP05
      COMMON      /LDATAX/ MPFLAG   

==== ercs07/emas-2900/slogosorg_gencomin.txt ====
C     EDIT DATE   07SEP78  11:28
C     SOURCE FILE GENCOMAJH.IN
C     AUTHOR      A.  J. HOWARD
      INTEGER     OP, LEFT, RIGHT, LSTKX, RSTKX
      INTEGER     TS, LOAD, BASE
      INTEGER     THIS, OTHER, SIDE, HI, LOW
      INTEGER     INTBR, ROW, COL, INREG, OUTREG
      INTEGER     BCC, BNE
      INTEGER     CLC, JMP, LDAABS, LDAI, LDAZP
      INTEGER     SBCI, SEC, STAZP, TAX, TXA
      LOGICAL     COMZER, EZSTA, MORE
      COMMON      /GCOM/   OP, LEFT, RIGHT, LSTKX, RSTKX
      COMMON      /GCOM/   TS, LOAD, BASE
      COMMON      /GCOM/   THIS, OTHER, SIDE, HI, LOW
      COMMON      /GCOM/   INTBR, ROW, COL, INREG, OUTREG
      COMMON      /GCOM/   BCC, BNE
      COMMON      /GCOM/   CLC, JMP, LDAABS, LDAI, LDAZP
      COMMON      /GCOM/   SBCI, SEC, STAZP, TAX, TXA
      COMMON      /GCOM/   COMZER, EZSTA, MORE

C     EDIT DATE   09OCT78  11:13

==== ercs07/emas-2900/mixedsrce_calltst3i.txt ====
%BEGIN
%EXTERNALROUTINESPEC CALLFUNC(%INTEGERFN FUNC,%INTEGER PARAM, %C
            %INTEGERNAME RES)
%EXTERNALINTEGERFNSPEC SETVAL(%INTEGER VAL)
%INTEGER FIVE
PRINTSTRING('CALLING CALLFUNC')
NEWLINE
CALLFUNC(SETVAL,5,FIVE)
PRINTSTRING('FIVE=')
WRITE(FIVE,4)
NEWLINE
%ENDOFPROGRAM

==== ercs07/emas-2900/pt_sets.txt ====
PROGRAM SETS;
VAR SIX:SET OF 1..6;
    PART:BOOLEAN;
BEGIN
SIX:=[6];
SIX:=SIX*[1..4];
PART:=SIX<>[];
PART:=SIX*[1..6]<>[];
END.

==== ercs07/emas-2900/slogof_parlocfr.txt ====
    
      SUBROUTINE  PARLOC
    
      INTEGER  NI,     NJ,     NK   
      INTEGER  NSIZE
      INTEGER  NLX,    FNLX,   REMNLX, OVNLX,  TNAME
      INTEGER  NLSTRT, NLSTOP, NLSIZE, SRCHST   
      INTEGER  NTSTRT   
      INTEGER  NTSTOP   
      INTEGER  NTSIZE   
      INTEGER  PARFLG   
      INTEGER  SPARFL   
      INTEGER  NLWRDS   
      INTEGER  TX   
      INTEGER  NLENO
      INTEGER  STDMD
      INTEGER  MSHIFT   
      INTEGER  REGCNT   
      INTEGER  NULLX
      INTEGER  STPTRX   
      INTEGER  SPMODE   

==== ercs07/emas-2900/npc1_syntax.txt ====
{

                           MODULE 9
 
 
                       Syntax Analysis
                             and
                    Syntax Error Recovery
 
 
 
 
 
 9.1 Syntax analysis.
 
 Syntax analysis is implemented as a set of recursive descent  pro-
 cedures  based  on  syntax  rules given in the ISO definition. The
 order, names, and nesting of the procedures is as follows:
 
    Programme
       ProgramHeading

==== ercs07/emas-2900/slinkf_t15p2gfr.txt ====
    
      SUBROUTINE T15P2  
    
      LOGICAL     MPFLAG
      LOGICAL     OVMODE
      LOGICAL     LBMODE
      LOGICAL     LOADRB
      LOGICAL     SFLAG 
      INTEGER     VERS  
      INTEGER     LOADAD
      INTEGER     ZLOC, ZSTR, ZMAX, ZLIMIT  
      INTEGER     CLOC, CSTR, CMAX, CLIMIT  
      INTEGER     NLOC, NSTR, NMAX, NLIMIT  
      INTEGER     DLOC, DSTR, DMAX, DLIMIT  
      INTEGER     OLOC, OMAX, OSET  
      INTEGER     START 
      INTEGER     MODNLX
      INTEGER     CKSUM 
      INTEGER     KEY   
      INTEGER ICLP05
      COMMON      /LDATAX/ MPFLAG   

==== ercs07/emas-2900/slogosorg_ddefftfs.txt ====
'HEAD'  INITIAL DATA VALUE DEFINITIONS
C     EDIT DATE   14JAN79  09:50
C     SOURCE FILE DDEFFTM.FS
C     AUTHOR      F. T. MICKEY
      'OUTFILE' BRACEDATA.FR
      BLOCK DATA
      'INCLUDE' BRACEFTM.IN,P
      DATA  BRACEX   /1/
      DATA  SELX     /1/
      DATA  LSX      /2/   WHSTRT   /30*0/
      DATA  SELXB    /1/
      DATA  NRFLS    /6/
      END
      'OUTFILE'   BLDPODATA.FR
      BLOCK DATA
      'INCLUDE'   BLDPOAJH.IN,P
      END
      'OUTFILE' CODE1DATA.FR
      BLOCK DATA
      'INCLUDE' CODE1FTM.IN,P
      DATA  WOPTR    /1/

==== ercs07/emas-2900/slinkf_pnamesfr.txt ====
    
      BLOCK DATA
    
      INTEGER     LIST (512)
      INTEGER     NAMES (512)   
      INTEGER     NCOUNT
      INTEGER     LSTOP 
      COMMON      /PNAMES/    LIST  
      COMMON      /PNAMES/    NAMES 
      COMMON      /PNAMES/    NCOUNT
      COMMON      /PNAMES/    LSTOP 
      DATA        LSTOP    /512/
      END   

==== ercs07/emas-2900/inpds_rmcomjin.txt ====
C     COMMON STORAGE FOR REGISTER MANAGEMENT ROUTINES
      INTEGER     ACADDR (11), ACTYPE (11), ACSUBS (11)
      INTEGER     ACSBTY (11), ACBIAS (11)
C     SAVE AREA FOR BOOLEAN AND CONDITIONAL EVALUTAION
C     5 LEVELS+ 1 SCRATCH LEVEL - APB
      INTEGER     REGSTK(120)
      COMMON      /RMCOM/  ACADDR, ACTYPE, ACSUBS, ACSBTY, ACBIAS
      COMMON      /RMCOM/  REGSTK


==== ercs07/emas-2900/slinks_stacksin.txt ====
C     EDIT DATE   25MAY78  08:56
C     SOURCE FILE STACKSGAK.IN
C     AUTHOR      GARY A. KUDIS
C     LINKER STACK AREAS
      INTEGER     MSTACK(30), MX, MSTKSZ
      COMMON      /STACKS/ MSTACK, MX, MSTKSZ


==== ercs07/emas-2900/cenv14.txt ====
!**********************************************************************
!*
!
!*
!*                COMPILER ENVIRONMENT ROUTINES
!*
!**********************************************************************
!
!
!**********************************************************************
!*
!*                            CONSTANTS
!*
!**********************************************************************
!
%CONSTSTRING(4) VERSION = "1.1"
%CONSTINTEGER SEGMENT=262144,   %C
              SEGMENTK=256
%CONSTINTEGER PAGELEN=60
%CONSTINTEGER NO = 0,         %C
              YES = 1

==== ercs07/emas-2900/slogosorg_opersain.txt ====
C     EDIT DATE   23FEB78  09:29
C     SOURCE FILE   OPERSAJH.IN
C     AUTHOR        A. J. HOWARD
      INTEGER  NINE
      INTEGER  COMMA, SEMIC, PERIOD, COLON, FOR, DOOP, WHILE
      INTEGER  RBRACE, LBRACE, RETOP, CRUTCH
      INTEGER  LPAREN, RPAREN, LBK, RBK
      INTEGER  EQUAL, NEQUAL, GTR, GEQ, LESS, LESSEQ, ARROW
      INTEGER  PLUS, MINUS, MULT, DIVIDE, MODOP
      INTEGER  OROP, ANDOP, AOROP, XOROP, AANDOP
      INTEGER  LSHIFT, RSHIFT, LCYCLE, RCYCLE, ALSHFT, ARSHFT
      INTEGER  NEG, UPARO, DNARO, COM
      INTEGER  LOC, GIZZY, QUOTE, ZRL, TEMPL
      INTEGER  SP, DP, ST, HEX
      INTEGER  ATSIGN
      COMMON /OPERS/     NINE
      COMMON /OPERS/     COMMA, SEMIC, PERIOD, COLON, FOR, DOOP, WHILE
      COMMON /OPERS/     RBRACE, LBRACE, RETOP, CRUTCH
      COMMON /OPERS/     LPAREN, RPAREN, LBK, RBK
      COMMON /OPERS/     EQUAL, NEQUAL, GTR, GEQ, LESS, LESSEQ, ARROW
      COMMON /OPERS/     PLUS, MINUS, MULT, DIVIDE, MODOP

==== ercs07/emas-2900/op246.txt ====
! 26/06/85 - line 976 0f LOOPBUILD, map on to next AR block
! 19/09/84 - clear relevant bit in CLOOPDEF if ASMT/ASGN triad backward moved
!          - line 1510 corrected to VAL1=1, line 1515 moved back 7 lines
! 28/08/84 - correction to BTBITS for CMNCOORDS(1)
! 02/07/84 - change OPTSAB(CMPLX) entry to X'06'
! 11/04/84 - don't word align FREETABS in BMOVHECK
! 10/04/84 - scaling correction in bmovecheck
! 31/01/84 - UPDATE OPSTAB FOR DCMPLX & INTRIN
! 18/01/84 - ADJUST BIT STRIP ADDRESSES
! 17/01/84 - MAKE CALLS OF CREATETAB CONSISTTENT
! 23/11/83 call EDUMPTRACE in OP2A; set up LDUMPTRACE & BMTRACE
! 22/11/82 call CDUMPTRACE in OP2A
! 27/10/83 COPIED FROM ERCS06.REL90_OP2B13
!*
%INCLUDE "host_host"
%INCLUDE "targ_target"
%INCLUDE "pf_version"
!*
%INCLUDE "bits_fmts"
%INCLUDE "bits_optspecs"
%INCLUDE "bits_consts"

==== ercs07/emas-2900/helpsa20_bctamlibnuc.txt ====
AREA(2)
ALTER(15,X04,X02)
REDIRECT(ICL9LPRTTIDYPROCDESC,ICL9LPSYSERR)
REDIRECT(ICL9LPRTGETICL9HERRADDR,ICL9LPSYSERR)
REDIRECT(ICL9CEZTIDY,ICL9LPSYSERR)
REDIRECT(ICL9CEZINIT,ICL9LPSYSERR)
REDIRECT(ICL9CEZSTOP,ICL9LPSYSERR)
REDIRECT(ICL9CEZREADJSVAR,ICL9LPSYSERR)
REDIRECT(ICL9CEZWRITEJSVAR,ICL9LPSYSERR)
REDIRECT(ICL9CEZOUTFILE,ICL9LPSYSERR)
REDIRECT(ICL9CEZNEWFILEOP,ICL9LPSYSERR)
REDIRECT(ICL9CEZINREC,ICL9LPSYSERR)
REDIRECT(ICL9CEZOUTREC,ICL9LPSYSERR)
REDIRECT(ICL9CEZDATEANDTIME,ICL9LPSYSERR)
REDIRECT(ICL9CEZREADCPUTIME,ICL9LPSYSERR)
REDIRECT(ICL9LPPMINITTABS,ICL9LPSYSERR)
REDIRECT(ICL9LPPMLINENO,ICL9LPSYSERR)
REDIRECT(ICL9LPPMBLOCKID,ICL9LPSYSERR)
REDIRECT(ICL9LPPMDMPSPACE,ICL9LPSYSERR)
REDIRECT(ICL9HEDIAGOUT,ICL9LPSYSERR)
REDIRECT(ICL9HEFATALCOMPERR,ICL9LPSYSERR)

==== ercs07/emas-2900/mixedsrce_pwrdefa.txt ====
%REAL %PROCEDURE POWER(X,Y);
%VALUE X,Y;%REAL X;%INTEGER Y;
%BEGIN
%INTEGER DUM;
%REAL Z;
PRINTSTRING(<ENTERING ALGOL_POWER>);NEWLINE;
Z:=1;
%FOR DUM:=1 %WHILE Y>0 %DO
  %BEGIN
  %FOR DUM:=2 %WHILE Y-(Y %DIV 2)*2=0 %DO
    %BEGIN
    Y:=Y %DIV 2;
    X:=X^2;
    %END;
  Y:=Y-1;Z:=X*Z
  %END;
POWER:=Z
%END;

==== ercs07/emas-2900/slinkf_t11p2gfr.txt ====
    
      SUBROUTINE T11P2  
    
      INTEGER     DICT (400)
      INTEGER     ID, CID, DTSTRT, DTSTOP   
      COMMON      /DARRAY/ DICT 
      COMMON      /DARRAY/ ID, CID, DTSTRT, DTSTOP  
    
      INTEGER     NSIZE,  NAME(16), NTITLE  
      INTEGER     NFLAGS (512)  
      INTEGER     NADDRS (512)  
      INTEGER     NPOSIT (512)  
      INTEGER     NDATA  (512)  
      INTEGER     NTEXTX (512)  
      INTEGER     NTEXT  (1000) 
      INTEGER     NLX, NLSTRT, NLSTOP   
      INTEGER     TXSTRT, TXSTOP
      INTEGER     NTXBTS
      INTEGER     USEBIT, COMBIT, OVLBIT, EPTBIT
      INTEGER     LDMBIT, MODBIT, MLTBIT, RLSBIT
      INTEGER     GDFBIT, TYPBTS

==== ercs07/emas-2900/impprocs.txt ====
module impprocs;

exports

imports arith from arith;
imports stack from stack;

procedure dummy;
procedure qindiag(lp,gp,acb,adiags:fsbit32;DDISP,mode,diag,asize,first:long;
                  var newacb:fsbit32);
                  
private
procedure dummy;
begin
end;

procedure qindiag;
begin
writeln(curout^,'entering dummy qindiag');
end.

==== ercs07/emas-2900/oldqfiles_f77map1.txt ====
!* modified 30/01/82
!*
!***********************************************************************
!*
!*
!***********************************************************************
!* Formats for accessing dictionary records                            *
!***********************************************************************
!*
%RECORDFORMAT PRECF( %C
               %BYTEINTEGER CLASS,TYPE,X0,X1, %C
               %INTEGER LINK1, LINK2, LINK3, ADDR4,  %C
               %HALFINTEGER DISP,LEN,  %C
               %INTEGER IDEN,LINE,XREF,CMNLENGTH, CMNREFAD)
!*
%RECORDFORMAT SRECF(%INTEGER INF0, LINK1, INF2, INF3, INF4)
!*
%RECORDFORMAT RESF((%INTEGER W %OR %HALFINTEGER H0,
                      (%HALFINTEGER H1 %OR %BYTEINTEGER FORM,MODE)))
!*
%RECORDFORMAT DORECF( %C

==== ercs07/emas-2900/slogof_stsetffr.txt ====
    
      SUBROUTINE STSET (ROW, SNAMEX, SMODE, SBIAST, SOPCOD, SWFOP, SWFOP
     1N)
    
      INTEGER     STK (20, 13)  
      INTEGER     NAMEX (40)
      INTEGER     OPX,    STKSIZ, OCBIT,  FUNBIT, SBIAS 
      INTEGER ICLP14
      COMMON      /SDEFS/ STK,    OPX,    STKSIZ, OCBIT,  FUNBIT, SBIAS 
      COMMON      /SDEFS/ ICLP14
      EQUIVALENCE (STK (1,1), NAMEX (1))
    
      INTEGER     MODE (40),   SUBX (20),   SUBXM (20),  BIAS (40)  
      EQUIVALENCE (STK (1, 3), MODE  (1))   
      EQUIVALENCE (STK (1, 2), SUBX  (1))   
      EQUIVALENCE (STK (1, 4), SUBXM (1))   
      EQUIVALENCE (STK (1, 5), BIAS  (1))   
    
      INTEGER     OPCODE (20)   
      EQUIVALENCE (STK (1, 9), OPCODE (1))  
    

==== ercs07/emas-2900/qfiles_cops1.txt ====
module F77COPS;

{************************************************}
{*     Constant Compile Time Operations.        *}
{************************************************}
 

exports

function realop(op:integer;lhs,rhs:real;var res:real):long;
function intop(op:integer;lhs,rhs:long;var res:long):long;
function coop(Pold,Pnew:pointer;oldmode,newmode:integer):integer;

function floatlong(arg:long):real;
function trunclong(arg:real):long;
function roundlong(arg:real):long;


exception R2LOvrFlow(Arg : Real);
{-----------------------------------------------------------------------------
{

==== ercs07/emas-2900/qfiles5apr_f77comp3.txt ====
!* modified 22/03/82
!*
!*************************** EXPORTS **********************
!*
%ROUTINESPEC F77COMP(%HALFINTEGER A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,
   %INTEGER INFILE,ERRFILE,OUTFILE,
   %HALFINTEGER BLKS,BITS,ISN,
   %INTEGER MODE,
   %HALFINTEGER NUMIMPORTS,MEMSIZE)
%ROUTINESPEC SOURCE LINE(%INTEGER ABUFF)
%ROUTINESPEC OUTPUTFUL
%ROUTINESPEC NAMESFUL
%ROUTINESPEC DICFUL
%ROUTINESPEC EXTFUL
!*
!********************************************************************
!*
!***********************************************************************
!*
!*
!***********************************************************************

==== ercs07/emas-2900/qfiles5apr_f77comp4.txt ====
!* modified 30/03/82
!*
!*************************** EXPORTS **********************
!*
%ROUTINESPEC F77COMP(%HALFINTEGER A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,
   %INTEGER INFILE,ERRFILE,OUTFILE,
   %HALFINTEGER BLKS,BITS,ISN,
   %INTEGER MODE,
   %HALFINTEGER NUMIMPORTS,MEMSIZE)
%ROUTINESPEC SOURCE LINE(%INTEGER ABUFF)
%ROUTINESPEC OUTPUTFUL
%ROUTINESPEC NAMESFUL
%ROUTINESPEC DICFUL
%ROUTINESPEC EXTFUL
!*
!********************************************************************
!*
!***********************************************************************
!*
!*
!***********************************************************************

==== ercs07/emas-2900/pffiles_progparams.txt ====

procedure OpenProgParameterList;
  extern;

procedure AcceptProgParameter(ParamId: IdEntry);
  extern;

procedure ReturnProgParameter(ParamId: IdEntry);
  extern;

procedure ClsProgParameterList;
  extern;


==== ercs07/emas-2900/slogosorg_lsobjjin.txt ====
C     EDIT DATE   17AUG78  12:38
C     SOURCE FILE LSOBJJHP.IN
C     AUTHOR      J.H.PERINE
C     STRUCTURE OF 'LINSTR' TABLE
C        256 ENTRIES - 1 FOR EACH POSSIBLE OP CODE
C        2 WORDS PER ENTRY
C        FIRST WORD:
C           LEFT HALF:  IDENTIFIES CRUTCH TABLE
C                       1 (256)   IMPLID
C                       2 (512)   RELTIV
C                       3 (768)   GROUP1
C                       4 (1024)  OTHERS
C           RIGHT HALF: INDEX INTO TABLE FOR ASCII TEXT
C        SECOND WORD (ATTRIBUTES):
C           LEFT HALF:  ADDRESSING MODE COMPONENTS
C                       BIT    MEANING
C                       0      NOT USED
C                       1      AREG       16384
C                       2      IMMEDIATE   8192
C                       3      ZP          4096
C                       4      ABS         2048

==== ercs07/emas-2900/mixedsrce_pwrtest2.txt ====
PROGRAM PWRTEST(OUTPUT);
VAR EP,TWO:REAL;
    SEVEN:INTEGER;
    OUTFILE:TEXT;
FUNCTION POWER(VAR X:REAL;VAR Y:INTEGER):REAL;EXTERN;
BEGIN
WRITELN('CALLING POWER');
TWO:=2.0;
SEVEN:=7;
EP:=POWER(TWO,SEVEN);
WRITELN('RETURNED FROM POWER');
WRITELN('2.0^7= ',EP);
WRITELN('CALLING POWER AGAIN');
EP:=POWER(TWO,SEVEN);
WRITELN('RETURNED FROM 2ND CALL');
END.

==== ercs07/emas-2900/slinkf_t08p2gfr.txt ====
    
      SUBROUTINE T08P2  
    
      INTEGER     DICT (400)
      INTEGER     ID, CID, DTSTRT, DTSTOP   
      COMMON      /DARRAY/ DICT 
      COMMON      /DARRAY/ ID, CID, DTSTRT, DTSTOP  
    
      INTEGER     NSIZE,  NAME(16), NTITLE  
      INTEGER     NFLAGS (512)  
      INTEGER     NADDRS (512)  
      INTEGER     NPOSIT (512)  
      INTEGER     NDATA  (512)  
      INTEGER     NTEXTX (512)  
      INTEGER     NTEXT  (1000) 
      INTEGER     NLX, NLSTRT, NLSTOP   
      INTEGER     TXSTRT, TXSTOP
      INTEGER     NTXBTS
      INTEGER     USEBIT, COMBIT, OVLBIT, EPTBIT
      INTEGER     LDMBIT, MODBIT, MLTBIT, RLSBIT
      INTEGER     GDFBIT, TYPBTS

==== ercs07/emas-2900/pcfiles_codeutils8.txt ====


{

 History
 -------

 11/09/85 - new include file eput.pf, expand AccessArea, AddressArea,
	  - LoadIndirect, AdjustAddress, LoadAccess, AdjustLoad
	  - amend LoadAddress, Load
 23/09/85 - new include file impint.pf, expand InLineNumber,
            InLineReal, InLineMutipleConst, JumpTo;
            amend AccessArea, Addressarea, DoUnaryOp, DoBinaryOp
 07/10/85 - amend LoadAddress for CAPIndex & AConstant,
            amend SaveAddress, DoCAPLoad, SaveValue & LoadValue
 21/10/85 - pascal specific opcodes called by Epasop
 23/10/85 - DoReadOp completed with calls to i/o E-codes. (agh)
 25/10/85 - All outstanding Pascal specific E-codes added. (agh)
 28/10/85 - Remove all references to ancillary checklist. Add
            calls to special E-codes to perform lazy i/o checks
            and tailored-factor check. (agh)

==== ercs07/emas-2900/slogos_argenafs.txt ====
'HEAD'  STORE CODE GENERATION
C     EDIT DATE   05FEB79  16:11
C     SOURCE FILE ARGENAJH.FS
C     AUTHOR      A. J. HOWARD
C     CLUSTER     19
      'OUTFILE'   ARAGENAJH.FR
N     OVERLAY     OLARA
      SUBROUTINE  ARAGEN
C     OP          LOGOS OPERATOR
C     LEFT        STACK POINTER TO LEFT  OPERAND
C     RIGHT       STACK POINTER TO RIGHT OPERAND
      'INCLUDE'   LOGOSAJH.IN,
      'INCLUDE'   NLISTCFTM.IN,
      'INCLUDE'   REGSJHP.IN,
      'INCLUDE'   RMCODES.IN,
      'INCLUDE'   STKDFA.IN,
      'INCLUDE'   STKDFB.IN,
      'INCLUDE'   STKDFE.IN,
      'INCLUDE'   WFLAGSJHP.IN,
      'INCLUDE'   GENCMA.IN,
      INTEGER     RET, RET1, RET2

==== ercs07/emas-2900/mixedsrce_pwrdeff.txt ====
      REAL FUNCTION POWER(X,Y)
      INTEGER Y
      REAL*8 Z, X
      WRITE(6,100)
  100 FORMAT(' ENTERING FORTRAN POWER')
      Z=1
  30  IF(Y.EQ.0)GO TO 10
      IF((Y-(Y/2)*2).GT.0)GO TO 20
      Y=Y/2
      X=X**2
  20  Y=Y-1
      Z=X*Z
      GOTO 30
  10  POWER=Z
      RETURN
      END

==== ercs07/emas-2900/dsa20_sflforct.txt ====
SFLFORCT MODULE
*
*
 INCLUDE SMACS
*
*
 PROC ICL9LPCTDATEAD
 CDATA ICL9HNDATE
DATE BYTE(10)
 CODE
 LSS V'DATE
 EXIT
*
*
 PROC ICL9LPCTTIMEAD
 CDATA ICL9HNTIME
TIME BYTE(8)
 CODE
 LSS V'TIME
 EXIT
*

==== ercs07/emas-2900/dsa20_sflctm.txt ====
SFLCTM MODULE
*
*
 INCLUDE SMACS
 EXTSIP CTMJSBEGIN,CTMJSEND,CTMJSWRITE
 EXTSIP SENDMESSAGE,CTMASSIGNFILE,GIVEPROCESSTIME
 EXTSIP CTMRMLD
 EXTSIP CTMDUMP
*
*
&BINWD EQU 4
&NIL EQU -1
&LWDTB EQU X'30000001'
*
*
 PROC ICL9LPCTMJSBEGIN
 CODE
 PRCL 4
 LSD &NIL/&NIL  * FOR 5X32 COMPATIBILITY
 ST.T
 RALN 7

==== ercs07/emas-2900/slogosorg_stkdfein.txt ====
C     EDIT DATE   03DEC78  12:12
C     SOURCE FILE STKDEFE.IN
C     AUTHOR      A. J. HOWARD
      INTEGER     OPCODE (20)
      EQUIVALENCE (STK (1, 9), OPCODE (1))


==== ercs07/emas-2900/slinkf_t04p2gfr.txt ====
    
      SUBROUTINE  T04P2 
    
      INTEGER     RCOUNT
      INTEGER     RTYPE 
      INTEGER     RSTYPE
      INTEGER     RTMAX 
      INTEGER     RSZMAX
      INTEGER     RECORD (41)   
      INTEGER     RSIZE 
      INTEGER     RSIZES (20)   
      INTEGER ICLP02
      COMMON      /RECORD/ RCOUNT   
      COMMON      /RECORD/ RTYPE
      COMMON      /RECORD/ RSTYPE   
      COMMON      /RECORD/ RTMAX
      COMMON      /RECORD/ RSZMAX   
      COMMON      /RECORD/ RECORD   
      COMMON      /RECORD/ RSIZE
      COMMON      /RECORD/ RSIZES   
      COMMON     /RECORD/ ICLP02

==== ercs07/emas-2900/mixedsrce_pwrdefi.txt ====
%EXTERNALREALFN POWER(%LONGREAL X,%INTEGER Y)
%LONGREAL Z;
PRINTSTRING('ENTERING IMP POWER');NEWLINE
Z=1
%WHILE Y>0 %CYCLE
  %WHILE Y&1=0 %CYCLE
    Y=Y//2
    X=X**2
  %REPEAT
  Y=Y-1;Z=X*Z
%REPEAT
%RESULT=Z
%END
%ENDOFFILE

==== ercs07/emas-2900/rel11opt_op246.txt ====
! 26/06/85 - line 976 0f LOOPBUILD, map on to next AR block
!          - line 812 of LOOPBUILD, map on to current CL block
! 19/09/84 - clear relevant bit in CLOOPDEF if ASMT/ASGN triad backward moved
!          - line 1510 corrected to VAL1=1, line 1515 moved back 7 lines
! 28/08/84 - correction to BTBITS for CMNCOORDS(1)
! 02/07/84 - change OPTSAB(CMPLX) entry to X'06'
! 11/04/84 - don't word align FREETABS in BMOVHECK
! 10/04/84 - scaling correction in bmovecheck
! 31/01/84 - UPDATE OPSTAB FOR DCMPLX & INTRIN
! 18/01/84 - ADJUST BIT STRIP ADDRESSES
! 17/01/84 - MAKE CALLS OF CREATETAB CONSISTTENT
! 23/11/83 call EDUMPTRACE in OP2A; set up LDUMPTRACE & BMTRACE
! 22/11/82 call CDUMPTRACE in OP2A
! 27/10/83 COPIED FROM ERCS06.REL90_OP2B13
!*
%INCLUDE "host_host"
%INCLUDE "targ_target"
%INCLUDE "pf_version"
!*
%INCLUDE "bits_fmts"
%INCLUDE "bits_optspecs"

==== ercs07/emas-2900/slogof_indnamfr.txt ====
    
      INTEGER FUNCTION INDNAM (INDEX, DEFLC, SIZE)  
    
      INTEGER  NI,     NJ,     NK   
      INTEGER  NSIZE
      INTEGER  NLX,    FNLX,   REMNLX, OVNLX,  TNAME
      INTEGER  NLSTRT, NLSTOP, NLSIZE, SRCHST   
      INTEGER  NTSTRT   
      INTEGER  NTSTOP   
      INTEGER  NTSIZE   
      INTEGER  PARFLG   
      INTEGER  SPARFL   
      INTEGER  NLWRDS   
      INTEGER  TX   
      INTEGER  NLENO
      INTEGER  STDMD
      INTEGER  MSHIFT   
      INTEGER  REGCNT   
      INTEGER  NULLX
      INTEGER  STPTRX   
      INTEGER  SPMODE   

==== ercs07/emas-2900/slogos_gendoafs.txt ====
'HEAD'  BASE LEVEL CODE GENERATION
C     EDIT DATE   05FEB79  14:13
C     SOURCE FILE GENDOAJH.FS
C     AUTHOR      A. J. HOWARD
C     CLUSTER     19
      'OUTFILE'   GENDOAJH.FR
      SUBROUTINE  GENDO
      'INCLUDE'   NLISTCFTM.IN,
      'INCLUDE'   REGSJHP.IN,
      'INCLUDE'   RMCODES.IN,
      'INCLUDE'   STKDFA.IN,
      'INCLUDE'   STKDFB.IN,
      'INCLUDE'   STKDFE.IN,
      'INCLUDE'   STKDFF.IN,
      'INCLUDE'   WFLAGSJHP.IN,
      'INCLUDE'   GENCMA.IN,
      INTEGER     OPTS,   WFTS,   BIASTS, TSUBX
      INTEGER     DUMMY,  TSUBXB, TSUBOP, TWFSOP
      INTEGER     NAMXTS
      INTEGER     MAGIC (28)
      INTEGER     NLOPS

==== ercs07/emas-2900/oldqfiles_writeint.txt ====
%BEGIN
%INTEGER I,J;
I=1024
WRITE(I,5)
NEWLINE
J=-1024
WRITE(J,5)
NEWLINE
%ENDOFPROGRAM

==== ercs07/emas-2900/psclsce205_opeh2.txt ====
! PASCAL OPEH ROUTINES RELEASE 1
! Mike Brown - September 1980
!
%SYSTEMROUTINESPEC DUMP (%INTEGER S, F)
%SYSTEMROUTINESPEC NCODE (%INTEGER S, F, A)
%SYSTEMROUTINESPEC NDIAG (%INTEGER PCOUNT, LNB, FAULT, INF)
%EXTRINSICBYTEINTEGER FLAGABORT
!
%CONSTBYTEINTEGERARRAY HEX (0:15) = %C
   '0', '1', '2', '3', '4', '5', '6', '7', %C
   '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'
!
%ROUTINE PHEX (%INTEGER VALUE, PLACES)
%INTEGER Z
   %CYCLE Z = PLACES << 2 - 4, -4, 0
      PRINTSYMBOL(HEX(VALUE >> Z & 15))
   %REPEAT
%END
!
%ROUTINE ABORT (%INTEGER CODE, PC, LNB)
%INTEGER W

==== ercs07/emas-2900/qfiles_fdiag7.txt ====
! MODIFIED   15/ 4/82   10.00




%EXTERNALROUTINE QFDIAG (%INTEGER      LOCAL POINTER       ,
                         %INTEGER     GLOBAL POINTER       ,
                         %INTEGER     PCOUNT               ,
                         %INTEGER   ACTIVITY CONTROL BLOCK ,
                         %INTEGER   SYMTABLE BASE          ,
                         %INTEGER   SYMTABLE DISP          ,
                         %INTEGER       MODE,DIAG          ,
                         %INTEGER      ASIZE,FIRST         ,
                         %INTEGERNAME         NEXT         )
                         !
                         !
                         !
!
!*********************************************************************%C
!*********************************************************************%C
                                                                      %C

==== ercs07/emas-2900/pt_fail1.txt ====
PROGRAM TST3;
VAR X, Y:INTEGER;
BEGIN X:=2;
  Y:=0;
  X:=X DIV Y
END.

==== ercs07/emas-2900/pt_rngchks.txt ====
%RANGECHECKS ON
PROGRAM RNGCHKS(INPUT,OUTPUT);
VAR I,J:INTEGER;
BEGIN
READ(I);
WRITELN('I=',I);
END.

==== ercs07/emas-2900/pt_fail2.txt ====
PROGRAM TST4;
VAR X, Y:REAL;
BEGIN X:=2;
  Y:=SQRT(-1)
END.

==== ercs07/emas-2900/inpds_gencmain.txt ====
C     EDIT DATE   07SEP78  11:28
C     SOURCE FILE GENCOMAJH.IN
C     AUTHOR      A.  J. HOWARD
      INTEGER     OP, LEFT, RIGHT, LSTKX, RSTKX
      INTEGER     TS, LOAD, BASE
      INTEGER     THIS, OTHER, SIDE, HI, LOW
      INTEGER     INTBR, ROW, COL, INREG, OUTREG
      INTEGER     BCC, BNE
      INTEGER     CLC, JMP, LDAABS, LDAI, LDAZP
      INTEGER     SBCI, SEC, STAZP, TAX, TXA
      LOGICAL     COMZER, EZSTA, MORE
      COMMON      /GCOM/   OP, LEFT, RIGHT, LSTKX, RSTKX
      COMMON      /GCOM/   TS, LOAD, BASE
      COMMON      /GCOM/   THIS, OTHER, SIDE, HI, LOW
      COMMON      /GCOM/   INTBR, ROW, COL, INREG, OUTREG
      COMMON      /GCOM/   BCC, BNE
      COMMON      /GCOM/   CLC, JMP, LDAABS, LDAI, LDAZP
      COMMON      /GCOM/   SBCI, SEC, STAZP, TAX, TXA
      COMMON      /GCOM/   COMZER, EZSTA, MORE


==== ercs07/emas-2900/pt_fail3.txt ====
PROGRAM FAIL3(INPUT,OUTPUT)
BEGIN 
END.

==== ercs07/emas-2900/ecode0.txt ====
 1 14 56 26974 26996 0 50 54 2 16 4 1A 60 20 51 5TEST1 65538 0 0 32648 0 5 3 5 4 13-3 25 2 16 412 4 56 184 5 5 28-1 52 0 0 2 2 0 0 20 0 0 0 0 0 0 0 0

==== ercs07/emas-2900/slinkf_initlzfr.txt ====
    
      SUBROUTINE INITLZ 
    
      INTEGER     BITS (16) 
      INTEGER     BIT00,BIT01,BIT02,BIT03,BIT04,BIT05,BIT06,BIT07   
      INTEGER     BIT08,BIT09,BIT10,BIT11,BIT12,BIT13,BIT14,BIT15   
      INTEGER     BIT, BITNO
      COMMON      /BITDFN/ BITS 
      COMMON      /BITDFN/ BIT, BITNO   
      EQUIVALENCE (BITS(1),BIT00),(BITS(2),BIT01),(BITS(3),BIT02)   
      EQUIVALENCE (BITS(4),BIT03),(BITS(5),BIT04),(BITS(6),BIT05)   
      EQUIVALENCE (BITS(7),BIT06),(BITS(8),BIT07),(BITS(9),BIT08)   
      EQUIVALENCE (BITS(10),BIT09),(BITS(11),BIT10) 
      EQUIVALENCE (BITS(12),BIT11),(BITS(13),BIT12) 
      EQUIVALENCE (BITS(14),BIT13),(BITS(15),BIT14) 
      EQUIVALENCE (BITS(16),BIT15)  
    
      INTEGER     ECODE 
      INTEGER     CMCHAN
      INTEGER     RBCHAN
      INTEGER     OBCHAN

==== ercs07/emas-2900/ecode1.txt ====
Einitialise 
Enextproc  1
Eproc TEST1    1    0    0
EXname  p_presetf    0    0
Eprecall 
Estkaddr   Gst     + 0      4
Eop    PUSHVAL
 0 0 0
Estack:
 1:AddrDir       Gst     +    0  size: 4
Estklit        1
Eop    PUSHVAL
 0 0 0
Estack:
 1:LitVal            1  size: 4
Ecall          2    8
EXname  p_bindf    0    0
Eprecall 
Estkaddr   Gst     + 0      4    OUTPUT
Eop    PUSHVAL
 0 0 0

==== ercs07/emas-2900/ecode2.txt ====
Einitialise 
Enextproc  1
Eproc ONE    2    0    0
 Elinestart ++++++++++++++++++++++    7
 Elinestart ++++++++++++++++++++++    8
Estklit       -3
Estkaddr   Gla     + 16      4    A
Eop    ESTORE
 0 0 0
Estack:
 2:AddrDir       Gla     +   16  size: 4
 1:LitVal           -3  size: 4
 Elinestart ++++++++++++++++++++++    9
Estkglobal  2 8      4    REC1
Estkdir   Gla     + 16      4    A
Eop    IMULT
 0 0 0
Estack:
 2:DirVal        Gla     +   16  size: 4
 1:DirVal        Stack   +   72  size: 4
Estkaddr   Gla     + 20      4    B

==== ercs07/emas-2900/inpds_iofilein.txt ====
C     EDIT DATE   09JAN79  17:22
C     SOURCE FILE IOFILEGAK.IN
C     AUTHOR      GARY A. KUDIS
C     I/O FILE DEFINITIONS
      INTEGER     CMFILE (16)
      INTEGER     RBFILE (16)
      INTEGER     OBFILE (16)
      INTEGER     MPFILE (16)
      INTEGER     DBFILE (16)
N     INTEGER     OVFILE (5)
N     INTEGER     TOFILE (3)
      INTEGER     TIFILE (3)
      COMMON      /FILES / CMFILE
      COMMON      /FILES / RBFILE
      COMMON      /FILES / OBFILE
      COMMON      /FILES / MPFILE
      COMMON      /FILES / DBFILE
N     COMMON      /FILES / OVFILE
N     COMMON      /FILES / TOFILE
      COMMON      /FILES / TIFILE


==== ercs07/emas-2900/ecode3.txt ====
Einitialise 
Enextproc  1
Eproc ONE    2    1    4
 Elinestart ++++++++++++++++++++++    5
 Elinestart ++++++++++++++++++++++    6
Eprecall    -1
Estkpar    2 0      4    A
Eop    ARGPROC
 0 0 0
Estack:
 1:DirVal        Stack   +   64  size: 4
******* Unsupported Opcode ****** ARGPROC
 Elinestart ++++++++++++++++++++++    7
Elabel    -2
Eprocend       4
Eproc TWO    3    1    4
 Elinestart ++++++++++++++++++++++   10
 Elinestart ++++++++++++++++++++++   11
Eprecall     2
Estkpar    2 0      4    B
Eop    PUSHVAL

==== ercs07/emas-2900/inpds_ioconfin.txt ====
C     EDIT DATE   26JUL78  11:17
C     SOURCE FILE IOCONFTM.IN
C     AUTHOR      F. T. MICKEY
C     CLUSTER     X
C     INPUT/OUTPUT CONSTANTS AND DATA
      INTEGER  IOSTEP
      INTEGER  IONX
      INTEGER  PACKET
      INTEGER  IOFLAG
      INTEGER  IOINDX
      INTEGER  IONAME (6)
      COMMON   /IOC/    IOSTEP
      COMMON   /IOC/    IONX
      COMMON   /IOC/    PACKET
      COMMON   /IOC/    IOFLAG
      COMMON   /IOC/    IOINDX
      COMMON   /IOC/    IONAME


==== ercs07/emas-2900/ecode4.txt ====
Einitialise 
Enextproc  1
Eproc ONE    2    2   16
 Elinestart ++++++++++++++++++++++    5
 Elinestart ++++++++++++++++++++++    6
Estkpar    2 4      4    U
Estkpar    2 12      4    A
Erefer    0      0
Eop    EADDRESS
 0 0 0
Estack:
 2:IndDirVal     Stack   +   76  size: 0
 1:DirVal        Stack   +   68  size: 4
Estkpar    2 0      4    L
Estkpar    2 0      4    L
Eop    ISUB
 0 0 0
Estack:
 4:DirVal        Stack   +   64  size: 4
 3:DirVal        Stack   +   64  size: 4
 2:DirAddr       Stack   +   76  size: 4

==== ercs07/emas-2900/lpds_tst12clos.txt ====
''TITLE, TEST12C
''HEAD, LINKER COMMON ALLOCATION TEST
''LIST
  /////////////////////////////////////////////////////////
  //                                                     //
  // DATE   : SEP 19,1978                                //
  //                                                     //
  // AUTHOR : T. CHENG                                   //
  //                                                     //
  // TEST # : TEST12C                                    //
  //                                                     //
  // PURPOSE :   TEST MEMORY ALLOCATION FOR BLANK        //
  //              AND NAMED COMMONS.                     //
  //                                                     //
  // NOTE :      LINK WITH TEST12A,TEST12B AND           //
  //              TEST12D FOR TESTING.                   //
  //                                                     //
  /////////////////////////////////////////////////////////
''EJECT
     'LBR' CA, CB[3], CC 'RBR',                           // BLANK COMMON
     COM4 : 'LBR' CFLAG4, BUF4[100], 'DP' BPTR4 'RBR',    // #4 NAMED COMMON

==== ercs07/emas-2900/slogosorg_rstdefin.txt ====
C     EDIT DATE     15NOV78 13:00
C     SOURCE FILE   RSTDEFAPB.IN
C     AUTHOR        A.P. BUCHALTER
C     SOME CONSTANTS FOR REGSAVEAPB.FS (REGISTER STACK)
C     SAVSIZ= NUMBER OF ITEMS SAVED FOR EACH LEVEL
      INTEGER SAVSIZ
C     MAXLEV(1)=# LEVELS FOR BOOLEAN, (2)=# LEVELS CONDITIONAL
      INTEGER MAXLEV(2)
C     SCRLEV= LEVEL NUMBER FOR SCRATCH LEVEL
      INTEGER SCRLEV
C     LEVST= SEE REGSAVEAPB.FS
      INTEGER LEVST(2)
      DATA  SAVSIZ/15/
C     BOOLEAN STARTS AT 2
      DATA  MAXLEV/6,2/
      DATA  SCRLEV/7/
      DATA  LEVST/-2,4/


==== ercs07/emas-2900/helpsa20_maaddjclrt.txt ====
ADDITIONAL_NAME(PASCALRUN,PARUN)
PERFORM

==== ercs07/emas-2900/ecode5.txt ====
 1 14 56 26974 26996 0 50 54 2 16 4 1A 54 2 20 4 1B 44 0 4FIVE 60 40 51 5TEST5 65538 0 0 32648 0 5 5 5 6 45 24 25 2 16 412 4 56 186 25 2 20 416 4 56 186 46 24 2 8 5 7 28-1 52 0 0 0 2 0 0 40 0 0 0 0 0 0 0 0

==== ercs07/emas-2900/fconvs.txt ====
%EXTERNALROUTINESPEC DEFINE (%STRING(255) PARMS)
%EXTERNALINTEGERFNSPEC OUT STREAM
%SYSTEMROUTINESPEC ETOI(%INTEGER ADDRESS,LEN)
%SYSTEMROUTINESPEC ITOE(%INTEGER ADDRESS,LENGTH)
%EXTERNALROUTINESPEC OPENSQ(%INTEGER CHAN)
%EXTERNALROUTINESPEC  READSQ (%INTEGER CHAN,%NAME START,END)
%EXTERNALROUTINESPEC WRITESQ (%INTEGER CHAN,%NAME START,END)
%EXTERNALROUTINESPEC CLOSESQ(%INTEGER CHAN)
!
%EXTERNALROUTINE CTES (%STRING(255) PARMS)
!
!       CONVERT TO EBCDIC SEQUENTIAL (FROM ISO CHARACTER FILE)
!
%INTEGER INPUT,OUTPUT,I,COUNT
%STRING(32) BEFORE,AFTER
%BYTEINTEGERARRAY BUFF (0:132)
%STRINGNAME LINE
%ON %EVENT 9 %START
    CLOSESQ(OUTPUT)
    WRITE(COUNT,0)
    PRINTSTRING(" LINES PROCESSED") ; NEWLINE

==== ercs07/emas-2900/pascalsce_rtobey1.txt ====
LINK
RTPASCALX_ICL9LPEHMTM
RTPASCALX_LIBNUC2
RTPASCALX_PMPACK3
RTPASCALX_ICL9LPRLIO
RTPASCALX_SFLCTM
RTPASCALX_SFLGENERAL
.END
RTPASCAL5
MODIFY RTPASCAL5
SATISFY REFS
.ALL
SATISFY DATA
.ALL
REDIRECT
S#OUTFILE,MYOUTFILE
S#NEWFILEOP,MYNEWFILEOP
S#INREC,MYINREC
S#OUTREC,MYOUTREC
.END
SUPPRESS

==== ercs07/emas-2900/pffiles_system.txt ====
function access(var Name: ArgString; Mode: integer): integer;
  extern;

function open(var Name: ArgString; Mode: integer): integer;
  extern;

function read(Descriptor: integer; var Buffer: FileBuffer;
              NBytes: integer): integer;
  extern;

function write(Descriptor: integer; var Buffer: FileBuffer;
               NBytes: integer): integer;
  extern;

function lseek(Descriptor: integer; Offset: integer;
               Whence: integer): integer;
  extern;

function close(Descriptor: integer): integer;
  extern;


==== ercs07/emas-2900/sforf_skipblf.txt ====
      SUBROUTINE SKIPBL
      INTEGER  INPTR
      INTEGER  OUTPTR
      INTEGER  INMAX
      INTEGER  MAXTAB
      INTEGER  MAXLIN
      INTEGER  IFMAX
      INTEGER  MAXLEV
      INTEGER  LINENO
      INTEGER  PAGE
      INTEGER  CLINE
      INTEGER  TLIMIT
      INTEGER  LN
      INTEGER  I, J, K
      INTEGER  II, JJ, KK
      INTEGER  LEXVAL
      INTEGER  SLEN
      INTEGER  LEVEL
      INTEGER  LEN
      INTEGER  INCHAN
      INTEGER  OUTCHN

==== ercs07/emas-2900/pascalsce_rtobey2.txt ====
CLINK
RTPASCALX_SFLFORRT
RTPASCALX_RTSUP10
RTPASCALX_OPEH4
RTPASCALX_PDIAGS4
RTPASCALX_RTPASCAL5
RTPASCALX_PDEFINE2
RTPASCALX_PASSUP01
.END
PSCLRUN2013
MODIFY PSCLRUN2013
SATISFY REFS
.ALL
SATISFY DATA
.ALL
SUPPRESS
CTMASSIGNFILE,CTMDUMP,CTMJSBEGIN,CTMJSEND,CTMJSWRITE,CTMRMLD
SUPPRESS
GIVEPROCESSTIME,SENDMESSAGE
SUPPRESS
ICL9HECOMPERR,ICL9HEDIAGOUT,ICL9HEFILETIDYPROC,

==== ercs07/emas-2900/pcfiles_objvaules3.txt ====

{

 History
 -------

 12/11/85 - Add bodies for ConstIntFunction and ConstRealFunction.
            (agh)
 22/11/85 - Complete bodies for ConstWordFunction and ConstIntFunction.
            Add HostInt for mapping word-types onto host-integers.
            (agh)
 25/11/85 - Add HostVal for recasting word values as host integers.
            (agh)

                                                                    }
{

                          MODULE 15


                  Object Value Manipulation

==== ercs07/emas-2900/slogof_bldpodfr.txt ====
 
      BLOCK DATA 
 
      LOGICAL  MSEEN, SMSEEN, ZFLAG 
      INTEGER  SMODE, TPFLAG, DEFMOD, LEVEL 
      INTEGER  STOAC, OP 
      COMMON   /BPO/ MSEEN, SMSEEN, ZFLAG 
      COMMON   /BPO/ SMODE, TPFLAG, DEFMOD, LEVEL 
      COMMON   /BPO/ STOAC, OP 
      END 

==== ercs07/emas-2900/bconvs.txt ====
!
%EXTERNALROUTINE BCONV(%STRING(255) PARMS)
!
!  This routine is used to convert files read from VME/B tapes
!  into character files performing the deblocking of blocks
!  read from the tape and the necessary character code conversions.
!  The files required should be read down from the tape into
!  DATA files in an EMAS process.  This can be conveniently
!  done using the FROMTAPE utility specifying physical
!  files on the tape.  For a single file this is quite simple, eg.
!         FROMTAPE(VMEBTP,P5(U3000,3000),OUTFILE(DATA))
!  For several files it is necessary to process them one at a time
!  or use the more complex facility in FROMTAPE to 
!  process a series of files but skipping the VME/B file
!  labels, eg.
!        FROMTAPE(VMEBTP,P(5-29*3)(U3000,3000),OUTFILE(DATA))
!  This would produce the files OUTFILE, OUTFILE2, , ,OUTFILE9
!
!  The use of the figure 3000 in the examples above is 
!  normally sufficient to accomodate VME/B files which
!  seldom have blocksizes graeter than 2054 bytes.

==== ercs07/emas-2900/perqrel2_anal18.txt ====
!* 20/05/82   
!*
!************  IMP80 version  ************
!*
%CONSTINTEGER TESTVERSION=1;!  0  NO   1  YES
%CONSTINTEGER DICTVERSION=0;!  0  EMAS   1  VME
!*
!{2900C} %CONSTINTEGER W1=2
!{2900C} %CONSTINTEGER W2=4
!{2900C} %CONSTINTEGER W4=8
!{2900C} %CONSTINTEGER W6=12
{PERQC} %CONSTINTEGER W1=1
{PERQC} %CONSTINTEGER W2=2
{PERQC} %CONSTINTEGER W4=4
{PERQC} %CONSTINTEGER W6=6
!*
!*
!**** SYNTAX ****
!*
!* Syntax tables generated from file SYNTAX48 on 11/03/82 at 06.51.27
!*

==== ercs07/emas-2900/strans_fnamesfr.txt ====
    
      BLOCK DATA
    
      INTEGER SRCEFS(10,4),CMDF(10),LISTF(10),OUTF(10)  
      COMMON /FNAMES/SRCEFS,CMDF,LISTF,OUTF 
      DATA SRCEFS,CMDF,LISTF,OUTF/70*0/ 
      END   

==== ercs07/emas-2900/slinksorg_lpass1fs.txt ====
'HEAD'  LINKER, PASS 1
C     EDIT DATE   01FEB79  17:26
C     SOURCE FILE LPASS1GAK.FS
C     AUTHOR      GARY A. KUDIS
C     CLUSTER     4
      'OUTFILE' LPASS1GAK.FR
      SUBROUTINE PASS1
      'INCLUDE' RECORDGAK.IN,
      'INCLUDE' IODEFNGAK.IN,
      'INCLUDE' IOFILEGAK.IN,
      LOGICAL     ERX, EOF, KEYWD
      INTEGER     I, DUMMY
C PASS1 ::
X     WRITE (DBCHAN, 1)
X1    FORMAT (' ENTER PASS1')
      'DO'
         CALL GETFL (ERX, EOF)
         IF (ERX) GO TO 9998
         IF (EOF) GO TO 9999
         'IF' (KEYWD(DUMMY))
            CALL SETKEY

==== ercs07/emas-2900/slogos_crucomin.txt ====
C     EDIT DATE   22MAR78  11:09
C     SOURCE FILE   CRUCOMJHP.IN
C     AUTHOR        J.H.PERINE
C     DEFINE OP CODE TABLES IN COMMON FOR CRUTCH & LIST
      INTEGER  GROUP1
      INTEGER  IMPLID
      INTEGER  NGROUP
      INTEGER  NIMPLI
      INTEGER  NOTHER
      INTEGER  NRELTI
      INTEGER  OTHERS
      INTEGER  RELTIV
      INTEGER  STAX
      INTEGER  CSOW
      INTEGER  CSWFA
      INTEGER  CSOFF
      INTEGER  CSNLX
      INTEGER  CSWFB
      COMMON   /CRUCH/  GROUP1 (24)
      COMMON   /CRUCH/  IMPLID (75)
      COMMON   /CRUCH/  NGROUP

==== ercs07/emas-2900/ds20imp_rtenv.txt ====
%CONTROL X'0FFFFFFF'
!* RTENV - FOR PASCAL 20 (RUN-TIME)
!*
!* MAINLY DIAGNOSTICS SIMPLIFICATIONS
!*
!* T.MOORE    APRIL 1980
!*
!* MODIFIED 07/06/79                                                            
!*                                                                              
%EXTERNALLONGINTEGER ICL9CEAUXST                                                
!*                                                                              
%EXTERNALINTEGER ICL9CECTM32=1                                                  
!*                                                                              
%OWNINTEGER DIAGROUTE;! 0  OPEH   1  LOG    2  JOBBER                           
%OWNINTEGER DIAGMODE=1;!  1  OPEH   0 OWN(STAND-ALONE)   -1  JOBBER             
%OWNINTEGER MONCPU;! 0  NO REPORT   1  REPORT                                   
%EXTERNALINTEGER CTMREPORT;! 0  NO REPORT   1  REPORT                           
%OWNINTEGER CETOLF;! 0  ICL9CE FILE TAG ONLY   1 ALLOW ICL9LF AS WELL           
%OWNINTEGER FACILITY=4                                                          
%OWNINTEGER INITLANG=0                                                          
%OWNINTEGER OUTSTREAM ACTIVE;! 0  NO   1  YES (TIDY CALL REQUIRED)              

==== ercs07/emas-2900/slinks_iodefnin.txt ====
C     EDIT DATE   09JAN79  17:26
C     SOURCE FILE IODEFNGAK.IN
C     AUTHOR      GARY A. KUDIS
C     I/O CHANNEL DEFINITIONS
      INTEGER     ECODE
      INTEGER     CMCHAN
      INTEGER     RBCHAN
      INTEGER     OBCHAN
      INTEGER     MPCHAN
      INTEGER     DBCHAN
      INTEGER     TTYIN
      INTEGER     TTYOUT
N     INTEGER     OVCHAN
      COMMON      /IODEFN/ ECODE
      COMMON      /IODEFN/ CMCHAN
      COMMON      /IODEFN/ RBCHAN
      COMMON      /IODEFN/ OBCHAN
      COMMON      /IODEFN/ MPCHAN
      COMMON      /IODEFN/ DBCHAN
      COMMON      /IODEFN/ TTYIN
      COMMON      /IODEFN/ TTYOUT

==== ercs07/emas-2900/slogof_nlcompfr.txt ====
    
      INTEGER FUNCTION  NLCOMP (NAME1X, NAME2X) 
      INTEGER     GETTX, GCHAR  
      INTEGER     NAME1X, NAME2X
      INTEGER     SCX, TS, L1, L2   
    
      INTEGER  NI,     NJ,     NK   
      INTEGER  NSIZE
      INTEGER  NLX,    FNLX,   REMNLX, OVNLX,  TNAME
      INTEGER  NLSTRT, NLSTOP, NLSIZE, SRCHST   
      INTEGER  NTSTRT   
      INTEGER  NTSTOP   
      INTEGER  NTSIZE   
      INTEGER  PARFLG   
      INTEGER  SPARFL   
      INTEGER  NLWRDS   
      INTEGER  TX   
      INTEGER  NLENO
      INTEGER  STDMD
      INTEGER  MSHIFT   
      INTEGER  REGCNT   

==== ercs07/emas-2900/slogof_rbothffr.txt ====
 
      SUBROUTINE RBOTH (NEWLCI) 
 
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG 
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV 
      INTEGER     NEXT,   NUMBER, I,      IOTYPE 
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE 
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP 
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT 
      INTEGER ICLP05 
      LOGICAL     ENDOK,CONEND 
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG 
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV 
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE 
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N 
      COMMON   /LOGOS/  PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE 

==== ercs07/emas-2900/slinks_pppall.txt ====
PARM PARMY,OPT,NOCHECK
XSTRAN SLINKS_ASKQESFS,SLINKF,SLINKY,L
XSTRAN SLINKS_DATADFFS,SLINKF,SLINKY,L
XSTRAN SLINKS_FINISHFS,SLINKF,SLINKY,L
PARM PARMY,NOCHECK,OPT
XSTRAN SLINKS_INITLZFS,SLINKF,SLINKY,L
XSTRAN SLINKS_LINKERFS,SLINKF,SLINKY,L
XSTRAN SLINKS_LISTRBFS,SLINKF,SLINKY,L
PARM PARMY,OPT,NOCHECK
XSTRAN SLINKS_LPASS1FS,SLINKF,SLINKY,L
XSTRAN SLINKS_LPASS2FS,SLINKF,SLINKY,L
XSTRAN SLINKS_MAKLIBFS,SLINKF,SLINKY,L
PARM PARMY,OPT,NOCHECK
XSTRAN SLINKS_MAPPERFS,SLINKF,SLINKY,L
XSTRAN SLINKS_UTILITFS,SLINKF,SLINKY,L

==== ercs07/emas-2900/slogof_psrentfr.txt ====
    
      SUBROUTINE PSRENT 
      EXTERNAL OLLDS
    
      INTEGER  QUOTEX   
      INTEGER  CONTF
      INTEGER  CONTRL   
      INTEGER  HEAD 
      INTEGER  EJECT
      INTEGER  BLANK
      INTEGER  SLASH
      INTEGER  CARDC
      INTEGER  FLINCT (8)   
      INTEGER  EOCC 
      INTEGER  ENDCRD (3)   
      INTEGER  RECORD (66)  
      INTEGER  RECPTR   
      INTEGER  SOURCE (150) 
      INTEGER  SRCEND   
      INTEGER  SLEN 
      INTEGER  TF (3)   

==== ercs07/emas-2900/npcpf_pfexp.txt ====
procedure DeReference(Representation: TypeRepresentation);
extern;

procedure CAPDeReference(PackedSchema: Boolean;
			 LowBound,HighBound: CAPBound;
			 BoundPairRepresentation,
			 ComponentRepresentation:
				TypeRepresentation);
extern;

procedure StackConstant(ConstValue: ObjectValue);
extern;

procedure UndefinedVariableCheck;
extern;

procedure TailoredFactorCheck(Representation: TypeRepresentation);
extern;

procedure CheckRange(Min,Max: MCIntegerForm; CheckNumber: Scalar);
extern;

==== ercs07/emas-2900/oldqfiles_f77init4.txt ====
module f77init;

{ updated 21/3/82 - function openfile defined }

exports
imports filedefs from filedefs;
imports filesystem from filesystem;
imports fileutils from fileutils;
imports memory from memory;

type buff84=packed array[1..84] of char;

procedure unsatref;
procedure initmain;
procedure INITGLA;
function iocp(ep,off,seg:integer):integer;
procedure stop;
procedure iwrite(val,place:long);
procedure newseg(var s:segmentnumber;fsize,fincr,fmax:mmextsize);
procedure extendseg(s:segmentnumber;fsize:mmextsize);
procedure decrefseg(s:segmentnumber);

==== ercs07/emas-2900/pddemo_idiag1.txt ====
%SYSTEMROUTINESPEC PHEX(%INTEGER N)
!* PERQ IMP DIAGNOSTIC ROUTINE (ALAN 19/FEB/82)
!*
! LAYOUT OF DIAGNOSIC TABLES
!****** ** ********* ******
! THE BOUND FIELD OF PLT DESCRIPTOR STORED AT (LNB+3 & LNB+4) IF
! USED TO CONTAIN A DISPLACEMENT RELATIVE TO THE START OF SST OF THE
! DIAGNOSTIC TABLES FOR THE BLOCK OR ROUTINE BEING EXECUTED.
! A ZERO BOUND MEANS NO DIAGNOSTIC REQUESTED.(NB THIS MAY MEAN A DUMMY
! FIRST WORD IN THE SST).
! THE ABSOLUTE ADDRESS OF THE SST FOR THE CURRENT CODE SEGMENT WILL
! ALWAYS BE FOUND IN THE STANDARD 10 WORDS OF THE GLA/PLT
! FORM OF THE TABLES:-
! WORD 0    =   LINE OF RT IN SOURCE PROG <<16 ! LINE NO POSN(FROM LNB)
! WORD 1    =   (12 LANG DEPENDENT BITS)<<20 ! ENVIRONMENT
!               (TOP 2 BITS FOR ROUTINE TYPE.B'01'==SYSTEM ROUTINE)
!               (NEXT BIT SET FOR EBCDIC CHARS&STRINGS(ALGOLE ONLY))
! WORD 2    =   DISPLAY POSN (FROM LNB)<<16 ! RT TYPE INFO
! WORD 3    =   ZERO FOR BLKS OR STRING(<=11BYTES) BEING THE
!               RT NAME. THIS WILL TAKE WORDS 4 AND 5 IF NEEDED
! WORD 6    =  LANGUAGE DEPENDENT INFO . IMP ON CONDITIONS ETC

==== ercs07/emas-2900/slogosorg_rmcomjin.txt ====
C     COMMON STORAGE FOR REGISTER MANAGEMENT ROUTINES
      INTEGER     ACADDR (11), ACTYPE (11), ACSUBS (11)
      INTEGER     ACSBTY (11), ACBIAS (11)
C     SAVE AREA FOR BOOLEAN AND CONDITIONAL EVALUTAION
C     5 LEVELS+ 1 SCRATCH LEVEL - APB
      INTEGER     REGSTK(120)
      COMMON      /RMCOM/  ACADDR, ACTYPE, ACSUBS, ACSBTY, ACBIAS
      COMMON      /RMCOM/  REGSTK



==== ercs07/emas-2900/d208.txt ====
      SUBROUTINE SCMR3(C0,C1,C2,C3,C4,C5,C6,C7,C8
     1      ,NTYPES,SC,ESP,F,SOUR,VOL,NTYPH)
      SAVE FM2,FM4
      DOUBLE PRECISION    WRK,SUM
      COMMON /C6/ I,J,K,G,NI,NJ,NK,NG,IH,JH,KH,GH,NIH,NJH,NKH,NGH,LENA
     1   ,J1,J2,J1H,J2H,MILYH,GD,GDH,GJH,JSM,NS,NSIDEH,NSIDRH,HEXAG
     2   ,MAXI,ICOR(202),JCOR(202),KCOR(202)       ,MAXNG
     3   ,GCOR(201),NSC1(200),NSC2(200),NSC3(200),NSC1H(200),NSC2H(200)
     4   ,NSC3H(200),NSC4H(200),OMEGA(200)
     5   ,ISTAR,JSTAR,KSTAR,GSTAR,IEND,JEND,KEND,GEND,CYCLIC(8),SOURCE
     6   ,EFF,NTHERH,NDOWNH,NUPH,NGHESP,NGHFIS
     7   ,NSH,NSIDE,NSIDER,TITLE(20),JEOM,NOR,ADJOIN,NREB,NORM
     8   ,NTCOFU,NTCOFN,NTCFH,NTCFNH,NTPHI,NTPHIS,NPHISH,NTPHIB,NTMESH
     9   ,NTFIX2,NTFIXH,NGJ,NGJH,NGJK,NFJKH
     A   ,NSJSM,NGJSM,NGJSOU,NSJH,NMGJH,NGJSOH,NGFIS,IS,NOTRHS
      LOGICAL ISTAR,JSTAR,KSTAR,GSTAR,IEND,JEND,KEND,GEND,CYCLIC
     1   ,ADJOIN,      HEXAG,SOURCE,NOTRHS
      INTEGER   G,GD,GH,GDH,GJH,GCOR
      DIMENSION C0(NG,9),C1(NG,9),C2(NG,9),C3(NG,9),C4(NG,9)
     1          ,C5(NG,9),C6(NG,9),C7(NG,9),C8(NG,9)
     2   ,NTYPES(9),SC(9),ESP(NG,9),F(NG,9),SOUR(NG,9),VOL(9),NTYPH(9)

==== ercs07/emas-2900/ds20imp_rtedindums.txt ====
%CONTROL X'0FFFFFFF'
!* RTEDINDUMS - FOR PASCAL 20 (RUNTIME)
!*
!* CONTAINS DUMMIES FOR :-
!*      DUMP
!*      SSMESS
!*      ONTRAPACT
!*      ONTRAPB
!*      INDIAG
!*      OPEHMESS
!*      NOMTIDYDESC
!*
!* T.MOORE    APRIL 1980
!*
%SYSTEMROUTINE DUMP
%END
 
%SYSTEMROUTINE SSMESS
%END
 
%SYSTEMROUTINE ONTRAPACT

==== ercs07/emas-2900/lpds_tst12clrb.txt ====
TE
ST
12
C
SY
0:
TE
ST
12
C.
LO
S
16
-F
EB
-7
9
14
:2
6:
58

==== ercs07/emas-2900/pnxrel01_conelimp41.txt ====
! 13/06/84 - delete use of RSUB as op to CONOP
! 12/03/84 only generate MOO triad if target is 2900
! 22/11/83 set up TRACE flag and CDUMPTRACE routine
! 27/10/83 copied from ERCS06.REL90_CONELIMB12
!*
%INCLUDE "host_host"
!*
%INCLUDE "targ_target"
!*
%INCLUDE "pf_version"
!*
%INCLUDE "bits_fmts"
!*
%INCLUDE "bits_optspecs"
!*
%INCLUDE "bits_optfmts"
!
%INCLUDE "bits_consts"
!*
%INCLUDE "bits_triadops"
!*

==== ercs07/emas-2900/rel5_fdiag8.txt ====
! MODIFIED    7/May/82   11.00




%EXTERNALROUTINE QFDIAG (%INTEGER      LOCAL POINTER       ,
                         %INTEGER     GLOBAL POINTER       ,
                         %INTEGER     PCOUNT               ,
                         %INTEGER   ACTIVITY CONTROL BLOCK ,
                         %INTEGER   SYMTABLE BASE          ,
                         %INTEGER   SYMTABLE DISP          ,
                         %INTEGER       MODE,DIAG          ,
                         %INTEGER      ASIZE,FIRST         ,
                         %INTEGERNAME         NEXT         )
                         !
                         !
                         !
!
!*********************************************************************%C
!*********************************************************************%C
                                                                      %C

==== ercs07/emas-2900/pcfiles_varref5.txt ====

{

 History
 -------

 18/10/85 - CheckUntaggedVariant modified to remove explicit
            reference to SelectorRep.CheckCode. InxReference
            and InxCAPReference modified to ensure char elements
            are treated as packed. (agh) 
 24/10/85 - Adjust FieldReference to preserve access record only
            when access-checks are required. Adjust BufferReference
            to make all such references indirect. Adjust 
            IndirectReference to set Vulnerable flag only when
            HChecks enabled. (agh)
 25/10/85 - Delete call to CheckCAPRange in InxCAPreference. (agh)
 28/10/85 - Remove all references to ancillary check-list. Simplify
            access-list generation accordingly. (agh)
 07/11/85 - Add function RefSize. (agh)
 29/11/85 - Add Class = PnterRef to IndirectReference to distinguish
            pointer references from normal indirect references. 

==== ercs07/emas-2900/slogosorg_pshpopfs.txt ====
'HEAD'  PUSH AND POP ROUTINES
C     EDIT DATE   10DEC78  21:04
C     SOURCE FILE PSHPOPFTM.FS
C     AUTHOR      F. T. MICKEY
C     CLUSTER     26
      'OUTFILE' PUSHFTM.FR
C     SUBROUTINE PUSH
C
C     SAVES THREE VALUES ON A LIFO STACK, TO BE RETRIEVED
C     LATER BY POP.  PARAMETERS FOR PUSH AND POP MUST BE
C     IN THE SAME ORDER.
C
      SUBROUTINE PUSH (A, B, C)
      'INCLUDE' PSHCOMFTM.IN,
      INTEGER A, B, C
      IF (PX .GT. PEND) CALL FATAL (45)
      PSTACK (PX) = A
      PSTACK (PX+1) = B
      PSTACK (PX+2) = C
      PX = PX + 3
      RETURN

==== ercs07/emas-2900/slogof_searchfr.txt ====
    
      SUBROUTINE SEARCH 
    
      INTEGER     NAME (9)  
      COMMON      /NLNAME/ NAME 
    
      INTEGER  NI,     NJ,     NK   
      INTEGER  NSIZE
      INTEGER  NLX,    FNLX,   REMNLX, OVNLX,  TNAME
      INTEGER  NLSTRT, NLSTOP, NLSIZE, SRCHST   
      INTEGER  NTSTRT   
      INTEGER  NTSTOP   
      INTEGER  NTSIZE   
      INTEGER  PARFLG   
      INTEGER  SPARFL   
      INTEGER  NLWRDS   
      INTEGER  TX   
      INTEGER  NLENO
      INTEGER  STDMD
      INTEGER  MSHIFT   
      INTEGER  REGCNT   

==== ercs07/emas-2900/slinkf_dconcatfr.txt ====
      PROGRAM DCONCAT
      INTEGER A(15),B,END
      DATA END/'.E'/
   10 CONTINUE
      WRITE(6,100)
      READ(5,200)A
      CALL OPENF(2,A,IERR)
      IF(IERR.NE.1)GOTO 10
      WRITE(6,101)
      GOTO 20
   15 CONTINUE
      WRITE(6,102)
   20 CONTINUE
      READ(5,200)A
      IF(A(1).EQ.END)GOTO 50
      CALL OPENF(1,A,IERR)
      IF(IERR.NE.1)GOTO 20
   30 CONTINUE
      CALL RDSEQ(1,B,2,IERR)
      IF(IERR.NE.1)GOTO 40
      CALL WRSEQ(2,B,2)

==== ercs07/emas-2900/rel4_gen24.txt ====
!* MODIFIED 26/06/82
!*************  IMP80 version  ******************
!*
!{2900C}%CONSTINTEGER W2=4
{PERQC}%CONSTINTEGER W2=2
!{2900C} %CONSTINTEGER W4=8
{PERQC} %CONSTINTEGER W4=4
!*
!**** SYNTAX ****
!*
!* Syntax tables generated from file SYNTAX48 on 28/01/82 at 23.55.35
!*
%CONSTBYTEINTEGERARRAY OS(0:1500)=  %C                     
   0,   0,  34,   1,   1,   2,  25,   1,   1,   3,
  10,   7,   2,   3,  29,  61,   0,   1,   1,   0,
  13,   1,   0,   1,   3,  20,   4,   1,   2,   1,
   4,  17,   1,   1,   0,   1,   2,  20,   4,   1,
   1,   1,   3,  17,   0,   1,   2,  87,   0,   1,
   1,   0,   1,   3,  20,   5,   1,   2,   1,   4,
  17,   1,   1,   0,   1,   2,  20,   5,   1,   1,
   1,   3,  17,   0,   1,   2,   1,   3,  17,   1,

==== ercs07/emas-2900/helpsa20_jclrtfrill.txt ====
MACRO JCLRTFRILLS20 IS (
     LITERAL (OMFLIB) %OMFLIB:= "O20",
     LITERAL (DELETE) %DELETE:= 'YES')
MACBEGIN
STRING %DELFILE := %OMFLIB+'.ICL9LPJCLPROCS(-1)'
BEGIN
ADDJCLRTSYN20(%%OMFLIB)
SETUPRTTEMPL20(%%OMFLIB)
IF %DELETE = 'YES' THEN
SMSG('DELETE COMMENCES')
SMSG('***************:')
FI
IF %DELETE = 'YES' THEN ENTER XF(%%DELFILE) FI
END
MACEND

==== ercs07/emas-2900/slogof_setmaxfr.txt ====
    
      SUBROUTINE  SMLCV 
    
      LOGICAL  MSEEN, SMSEEN, ZFLAG 
      INTEGER  SMODE, TPFLAG, DEFMOD, LEVEL 
      INTEGER  STOAC, OP
      COMMON   /BPO/ MSEEN, SMSEEN, ZFLAG   
      COMMON   /BPO/ SMODE, TPFLAG, DEFMOD, LEVEL   
      COMMON   /BPO/ STOAC, OP  
    
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      INTEGER     NEXT,   NUMBER, I,      IOTYPE
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT
      INTEGER ICLP05

==== ercs07/emas-2900/sforf_fcfpd.txt ====


COPY SFORF_COPYLNY,COPYLNY
COPY SFORF_COPYTOY,COPYTOY
COPY SFORF_CPARENY,CPARENY
COPY SFORF_CTYPEY,CTYPEY
COPY SFORF_DDUMPY,DDUMPY
COPY SFORF_EMASIFY,EMASIFY
COPY SFORF_ENDLINY,ENDLINY
COPY SFORF_ESPY,ESPY
COPY SFORF_ESTY,ESTY
COPY SFORF_GETCY,GETCY
COPY SFORF_GETLINY,GETLINY
COPY SFORF_GETNUMY,GETNUMY
COPY SFORF_GETWRDY,GETWRDY
COPY SFORF_GOLNY,GOLNY
COPY SFORF_IGNOREY,IGNOREY
COPY SFORF_INITOBY,INITOBY
COPY SFORF_INITY,INITY
COPY SFORF_LABGENY,LABGENY
COPY SFORF_LEXY,LEXY

==== ercs07/emas-2900/pddemo_cmess4.txt ====
!* MODIFIED 23/03/82
!*
!*
%RECORDFORMAT COMFMT(%INTEGER CONTROL,OPTIONS,OPTIONS1,OPTIONS2,PTRACE,
      ADICT,ANAMES,ADOUTPUT,ADBLKDTAID,DICLEN,DPTR,
      MAXTRIADS,NEXTPLAB,ALABH,ADLHEAD,
      SUBPROGTYPE,SFPTR,EXTERNALS,CBNPTR,SCPTR,CHECKLIST,
      RESCOM1,RESCOM2,GLACA,FNO,FAULTY,LINEST,CMNIIN,SFMK,
      LISTL,LISTSTREAM,DIAGSTREAM,LISTPOINT,XREF,
      PACKCMN,ITSMODE,PATHANAL,CHARACTER CODE,SPACE CHAR,
      HEADINGS,ARRAYCHECKS,JBRMODE,MESSLEN,NAMESLEN,
      NEXTCH,FUNRESDISP,WARNCOUNT,INP,MAXINP,MESSCOUNT,
      UNASSPATTERN,LISTCODE,PI21INT,DOPTR,SUBPROGPTR,
      FNLST,LAB,NAMESFREE,ALGOLREF,FIRSTSTATNUM,CEXPDICT,
      COMMONBASE,FASTPROLOGUE,STATEMENT,IFPTR,
      CNSTCA,COMMENTCNT,ADIDENT,ADERRIDEN)
%EXTERNALROUTINE QCMESS
{dummy}
%END
!*
%EXTERNALROUTINE FAULTNUM(%INTEGER ER,COMAD,UPDATE)

==== ercs07/emas-2900/slogos_faultsin.txt ====
C     EDIT DATE   30AUG78  13:43
C     SOURCE FILE FAULTSFTM.IN
C     AUTHOR      F. T. MICKEY
C     CLUSTER     X

      INTEGER     EXFLT,   FLTNR

      COMMON      /FLTS/   EXFLT,   FLTNR








==== ercs07/emas-2900/qfiles5apr_f77idiag1.txt ====
%SYSTEMROUTINESPEC PHEX(%INTEGER N)
!* PERQ IMP DIAGNOSTIC ROUTINE (ALAN 19/FEB/82)
!*
! LAYOUT OF DIAGNOSIC TABLES
!****** ** ********* ******
! THE BOUND FIELD OF PLT DESCRIPTOR STORED AT (LNB+3 & LNB+4) IF
! USED TO CONTAIN A DISPLACEMENT RELATIVE TO THE START OF SST OF THE
! DIAGNOSTIC TABLES FOR THE BLOCK OR ROUTINE BEING EXECUTED.
! A ZERO BOUND MEANS NO DIAGNOSTIC REQUESTED.(NB THIS MAY MEAN A DUMMY
! FIRST WORD IN THE SST).
! THE ABSOLUTE ADDRESS OF THE SST FOR THE CURRENT CODE SEGMENT WILL
! ALWAYS BE FOUND IN THE STANDARD 10 WORDS OF THE GLA/PLT
! FORM OF THE TABLES:-
! WORD 0    =   LINE OF RT IN SOURCE PROG <<16 ! LINE NO POSN(FROM LNB)
! WORD 1    =   (12 LANG DEPENDENT BITS)<<20 ! ENVIRONMENT
!               (TOP 2 BITS FOR ROUTINE TYPE.B'01'==SYSTEM ROUTINE)
!               (NEXT BIT SET FOR EBCDIC CHARS&STRINGS(ALGOLE ONLY))
! WORD 2    =   DISPLAY POSN (FROM LNB)<<16 ! RT TYPE INFO
! WORD 3    =   ZERO FOR BLKS OR STRING(<=11BYTES) BEING THE
!               RT NAME. THIS WILL TAKE WORDS 4 AND 5 IF NEEDED
! WORD 6    =  LANGUAGE DEPENDENT INFO . IMP ON CONDITIONS ETC

==== ercs07/emas-2900/npc1_makefile.txt ====
#
# Makefile for ICL Static Checker
#
OBJS = options.o fileio.o source.o interface.o diags.o \
       lexical.o syntax.o semantics.o analyser.o

.SUFFIXES: .pas .o

.pas.o:
	ipc  -G -c -m -R0 $*.pas

npc.b:  $(OBJS)
	ipc -G -s -o npc.b main.pas $(OBJS)

options.o:      globals.x source.pf options.pf

fileio.o:       globals.x fileio.pf

source.o:       globals.x fileio.pf source.pf

interface.o:    globals.x interface.pf

==== ercs07/emas-2900/slogosorg_gencmain.txt ====
C     EDIT DATE   07SEP78  11:28
C     SOURCE FILE GENCOMAJH.IN
C     AUTHOR      A.  J. HOWARD
      INTEGER     OP, LEFT, RIGHT, LSTKX, RSTKX
      INTEGER     TS, LOAD, BASE
      INTEGER     THIS, OTHER, SIDE, HI, LOW
      INTEGER     INTBR, ROW, COL, INREG, OUTREG
      INTEGER     BCC, BNE
      INTEGER     CLC, JMP, LDAABS, LDAI, LDAZP
      INTEGER     SBCI, SEC, STAZP, TAX, TXA
      LOGICAL     COMZER, EZSTA, MORE
      COMMON      /GCOM/   OP, LEFT, RIGHT, LSTKX, RSTKX
      COMMON      /GCOM/   TS, LOAD, BASE
      COMMON      /GCOM/   THIS, OTHER, SIDE, HI, LOW
      COMMON      /GCOM/   INTBR, ROW, COL, INREG, OUTREG
      COMMON      /GCOM/   BCC, BNE
      COMMON      /GCOM/   CLC, JMP, LDAABS, LDAI, LDAZP
      COMMON      /GCOM/   SBCI, SEC, STAZP, TAX, TXA
      COMMON      /GCOM/   COMZER, EZSTA, MORE


==== ercs07/emas-2900/inpds_lconstin.txt ====
      INTEGER  LOWWF, LTLNA, LLPOOL, LLNAME, LMOVEP, LBSS
      INTEGER  LEXEQU, LNLEQU
      COMMON   /LCON/   LOWWF, LTLNA, LLPOOL, LLNAME, LMOVEP, LBSS
      COMMON   /LCON/   LEXEQU, LNLEQU


==== ercs07/emas-2900/culmoldsce_crprofs.txt ====
%BEGIN
!
!    THIS PROGRAM PERFORMS A COMBINATION OF TWO ACTIONS DEPENDING ON
!    THE VALUE OF THE CONTROL ARGUMENT ACT.
!
!    ACT=1  CREATES A NEW PROFILE FILE FROM THE INPUT STREAM SPECIFIED
!    AS THE SECOND ARGUMENT AND WRITES IT TO THE SEQUENTIAL FILE
!    SPECIFIED ON LUN 20.
!
!    ACT=2  THE SAME AS FOR ACT=1, BUTN THE PROFILE FILE CREATED IS
!    PRINTED FOR REFERENCE PURPOSES.
!
!    ACT=3  THE PROFILE FILE IS READ FROM THE SEQUENTIAL FILE SPECIFIED
!    AS LUN 20 AND THE CONTENTS ARE PRINTED.
!
%ROUTINESPEC CREATE PROFILES (%INTEGERNAME PISTRM,MAX,               %C 00001600
                             %BYTEINTEGERARRAYNAME PROFIL)
%ROUTINESPEC READ PROFILES (%INTEGERNAME UNIT,MAX,                   %C 00001800
                           %BYTEINTEGERARRAYNAME PROF)
%ROUTINESPEC SORT(%BYTEINTEGERARRAYNAME AX, %INTEGERARRAYNAME PTR,N, %C
                  %INTEGER P1,P2)

==== ercs07/emas-2900/slogos_docum1.txt ====
LDSRCEFTM.FR
         SRCDFSFTM.IN
         SRCXDFFTM.IN
         LOGOSAJH.IN
         CTRLAJH.IN                    ***
         PRTCOMFTM.IN
         CPAREAJH.IN
LCVSETFTM.FR
         SRCXDFFTM.IN
         LOGOSAJH.IN
         CTRLAJH.IN                    ***
         LCFUNCAJH.IN
         PRTCOMFTM.IN
SETCFFTM.FR
         SRCDFSFTM.IN
PRNEWSFTM.FR
         SRCDFSFTM.IN
         LOGOSAJH.IN
         SRCXDFFTM.IN
GETCFTM.FR
         SRCDFSFTM.IN

==== ercs07/emas-2900/slinksorg_utilitfs.txt ====
'HEAD'  LINKER, UTILITY ROUTINES
C     EDIT DATE   26JAN79  09:35
C     SOURCE FILE UTILITGAK.FS
C     AUTHOR      GARY A. KUDIS
C     CLUSTER     10
C     THIS CLUSTER CONTAINS THE FOLLOWING ROUTINES :
C        AREADF - AREA DEFINITION ADDRESS RESOLUTION
C        CHCKER - CHECKSUM CURRENT RECORD
C        DNAMES - DELETE NAMES FROM 'NTABLE'
C        ENPTDF - ENTRY POINT ADDRESS RESOLUTION
C        ENTER - ENTER 'NAME' INTO 'NTABLE'
C        ERROR (N) - ERROR MSG FORMAT AND OUTPUT
C        GETFL (ERX, EOF) - GET NEXT RB FILE NAME
C        GRCORD (ERX, EOF) - GET NEXT RB RECORD
C        GWORD (ERX, EOF) - GET NEXT RB WORD
C        GNAME (I) - GET NAME
C        HASH (NAME, NRWDS) - CALCULATE NAME HASH CODE
C        ISWAP (DATA) - SWAP HALFS OF INPUT DATA
C        KEYWD (DUMMY) - TEST FOR KEY WORD IN RB FILENAME
C        LNAMES - LOAD NAMES IN 'NTABLE'
C        PUNCH (DATA, ADDR, NBYTES) - OUTPUT OBJECT DATA

==== ercs07/emas-2900/strans_stmainfr.txt ====
    
      PROGRAM STRAN 
      CALL INIT 
      CALL PARSE
      STOP  
      END   
    

==== ercs07/emas-2900/pcfiles_generator2.txt ====
{

 History
 -------

 16/10/85 - new functions AlfaString, ArrayString.
 17/10/85 - History tidied. Reformatted. (agh)
 27/11/85 - Make PredictedError dependent on RChecks and Warnings.
            Code-generation is continued to trap error anyway. (agh)
 -------------------------------------------------------------------
 12/12/85 - Fix bug in AlfaString to aviod overwriting string
            length. (agh)
 03/01/86 - Add MCGetByte and general MCAddress function. (agh)

                                                                      }
{

                          MODULE 12


                   Code Generator Overview

==== ercs07/emas-2900/strans_stmainfs.txt ====
'HEAD' MAIN PROCESSING LOOP
C     EDIT DATE 18JUN79
C     SOURCE FILE STMAINFS
C     AUTHOR   B.P. ADLEY
C     CLUSTER 100,100
      'OUTFILE' STMAIN.FR
      PROGRAM STRAN
      CALL INIT
      CALL PARSE
      STOP
      END
'HEAD'  STRAN INCLUDE FILE PRINT
      'OUTFILE' STDATA.FR
      BLOCK DATA
      'INCLUDE' STRAN.IN,P
      'EJECT'
      DATA  MAXTAB   /10/
      DATA  MAXLIN   /55/
      DATA  IFMAX    /10/
      DATA  MAXLEV   /5/
      DATA  TABS     / 7, 10, 13, 16, 19, 22, 25, 28, 31, 72/

==== ercs07/emas-2900/kbscsce_basicfiles.txt ====
!*
!/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
!
! DOCUMENTATION FOR THIS FILE HANDLING PACKAGE IS:-
!      "FILEHANDLING PACKAGE FOR BASIC ON EMAS"
!           LESLEY BREWIN    FEBRUARY 1979
!
!/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
!
!******************************************************************
!*
!*                         EXTERNAL REFERENCES
!*
!******************************************************************
!
%EXTERNALINTEGERFNSPEC INSTREAM
%EXTERNALINTEGERFNSPEC OUTSTREAM
%EXTERNALROUTINESPEC DEFINE(%STRING(255) PARMS)
%EXTERNALINTEGERFNSPEC EXIST(%STRING(31) S)
%EXTERNALINTEGERFNSPEC UINFI(%INTEGER I)
%EXTERNALROUTINESPEC XDUMP(%STRING(120) COMMENT,%INTEGER ADDR,LEN)

==== ercs07/emas-2900/pddemo_qput1.txt ====
%CONSTINTEGER EMAS=0,PERQ=1,SYS=PERQ
%CONSTINTEGER NOTSYS=(SYS+1)&1
!********************************************
!*             PERQ LPUT                    *
!********************************************




        %ROUTINESPEC QPUT(%INTEGER A,B,C,D)  {ensure qput is routine number one}
{PERQ}  %EXTERNALROUTINESPEC WRITE BLOCK(%HALFINTEGER FILEID,BLOCK, %INTEGER AD)
{PERQ}  %EXTERNALROUTINESPEC READBLOCK(%HALFINTEGER FILEID,BLOCK,%INTEGER AD)
{PERQ}  %EXTERNALROUTINESPEC NEWSEG(%INTEGER AD, %HALFINTEGER SIZE,INC,MAXSIZE)
{PERQ}  %EXTERNALROUTINESPEC CLOSEFILE(%HALFINTEGER FILEID,BLOCKS,BITS)
        %DYNAMICROUTINESPEC QCODE(%INTEGER I,J,K,L)
{EMAS   %SYSTEMSTRINGFNSPEC FAILUREMESSAGE(%INTEGER MESS)
{EMAS   %EXTERNALSTRINGFNSPEC UINFS(%INTEGER N)
{EMAS   %SYSTEMSTRINGFNSPEC SPAR(%INTEGER N)
{EMAS   %SYSTEMROUTINESPEC SETFNAME(%STRING(63) S)
{EMAS   %EXTERNALROUTINESPEC CHANGECONTEXT
{EMAS   %SYSTEMINTEGERMAPSPEC COMREG(%INTEGER I)

==== ercs07/emas-2900/slogosorg_ioconfin.txt ====
C     EDIT DATE   26JUL78  11:17
C     SOURCE FILE IOCONFTM.IN
C     AUTHOR      F. T. MICKEY
C     CLUSTER     X
C     INPUT/OUTPUT CONSTANTS AND DATA
      INTEGER  IOSTEP
      INTEGER  IONX
      INTEGER  PACKET
      INTEGER  IOFLAG
      INTEGER  IOINDX
      INTEGER  IONAME (6)
      COMMON   /IOC/    IOSTEP
      COMMON   /IOC/    IONX
      COMMON   /IOC/    PACKET
      COMMON   /IOC/    IOFLAG
      COMMON   /IOC/    IOINDX
      COMMON   /IOC/    IONAME



==== ercs07/emas-2900/strans_remarkfr.txt ====
    
      SUBROUTINE REMARK (STRING)
    
      INTEGER  INPTR
      INTEGER  OUTPTR   
      INTEGER  INMAX
      INTEGER  MAXTAB   
      INTEGER  MAXLIN   
      INTEGER  IFMAX
      INTEGER  MAXLEV   
      INTEGER  LINENO   
      INTEGER  PAGE 
      INTEGER  CLINE
      INTEGER  TLIMIT   
      INTEGER  LN   
      INTEGER  I, J, K  
      INTEGER  II, JJ, KK   
      INTEGER  LEXVAL   
      INTEGER  SLEN 
      INTEGER  LEVEL
      INTEGER  LEN  

==== ercs07/emas-2900/mixedsrce_pwrtesta.txt ====
%BEGIN
%REAL %PROCEDURE POWER(X,Y);
%VALUE X,Y;%REAL X;%INTEGER Y; %EXTERNAL POWER;
%REAL EP;
PRINTSTRING(<CALLING_POWER>);NEWLINE;
EP:=POWER(2.0,7);
PRINTSTRING(<2.0^7=_>);
PRINT(EP,3,4);NEWLINE;
%END;

==== ercs07/emas-2900/dsea20_ioedbugfix.txt ====
T/TYPE/
T+1 I/   ONEORTWO = 1 .. 2 ;///
T/FUNCTION BITSTOREAL (/ TS/CASE TAG/ R/1 .. 2/ONEORTWO/
TELE

==== ercs07/emas-2900/dsea20_coedicl9lpf.txt ====
T/PROCEDURE OPENSUPPORTTASKCONTROL ;/
T+1 TC/P77/ R/P77INIT         /ICL9LPINITRUN   /
T+1 TC/P77/ R/P77FINSH        /ICL9LPFINISHRUN /
T+1 TC/P77/ R/P77SIN          /ICL9LPSIN       /
T+1 TC/P77/ R/P77COS          /ICL9LPCOS       /
T+1 TC/P77/ R/P77EXP          /ICL9LPEXP       /
T+1 TC/P77/ R/P77LN           /ICL9LPLN        /
T+1 TC/P77/ R/P77SQRT         /ICL9LPSQRT      /
T+1 TC/P77/ R/P77ARCTN        /ICL9LPARCTAN    /
T+1 TC/P77/ R/P77FDEC         /ICL9LPFILEDECL  /
T+1 TC/P77/ R/P77FCLSE        /ICL9LPFILECLOSE /
T+1 TC/P77/ R/P77RESET        /ICL9LPRESET     /
T+1 TC/P77/ R/P77REWRT        /ICL9LPREWRITE   /
T+1 TC/P77/ R/P77GREC         /ICL9LPGETRECORD /
T+1 TC/P77/ R/P77PREC         /ICL9LPPUTRECORD /
T+1 TC/P77/ R/P77RDINT        /ICL9LPREADINT   /
T+1 TC/P77/ R/P77RDRL         /ICL9LPREADREAL  /
T+1 TC/P77/ R/P77WRINT        /ICL9LPWRITEINT  /
T+1 TC/P77/ R/P77WBOOL        /ICL9LPWRITEBOOL /
T+1 TC/P77/ R/P77WRRL         /ICL9LPWRITEREAL /
T+1 TC/P77/ R/P77WRFCH        /ICL9LPWRITECHAR /

==== ercs07/emas-2900/mixedsrce_stringdemo.txt ====
PROGRAM STRINGTEST(OUTPUT);
CONST MAGICN=402653440;
TYPE POINT7 =^ALFA8;
VAR P7:POINT7;
PROCEDURE LIST(K:INTEGER;AD:POINT7);EXTERN;
BEGIN
NEW(P7);
P7^:=' FILE1  ';
P7^[1]:=CHR(5);
LIST(MAGICN,P7);
END.

==== ercs07/emas-2900/slogosorg_code2afs.txt ====
'HEAD'  CODE GENERATORS
C     EDIT DATE   14JAN79  09:01
C     SOURCE FILE CODE2AJH.FS
C     AUTHOR      A. J. HOWARD
C     CLUSTER     12
      'OUTFILE'      CODE2AJH.FR
N     OVERLAY     OLCD2
      SUBROUTINE  CODE2 (OPTYPE)
      'INCLUDE'      LOGOSAJH.IN,
      'INCLUDE'      ATESTAJH.IN,
      'INCLUDE'      BLDPOAJH.IN,
      'INCLUDE'      NLISTCFTM.IN,
      'INCLUDE'      OPERSAJH.IN,
      'INCLUDE'      REGSJHP.IN,
      'INCLUDE'   STKDEFA.IN,
      'INCLUDE'   STKDEFB.IN,
      'INCLUDE'   STKDEFC.IN,
      'INCLUDE'   STKDEFD.IN,
      'INCLUDE'      WFLAGSJHP.IN,
      'INCLUDE'      OPINXJHP.IN,
      'INCLUDE'      GENCOMFTM.IN,

==== ercs07/emas-2900/qfiles_ioa3.txt ====
   !Modified  13/ 4/82   15.00





!**********************************************************************!
!**********************************************************************!
     !                                                            !
     !                                                            !
     !     This Module is designed to provide Formatted Input     !
     !                                                            !
     !                for FORTRAN77  Programs                     !
     !                                                            !
     !                 on ICL  PERQ  Machines                     !
     !                                                            !
     !                                                            !
!**********************************************************************!
!**********************************************************************!



==== ercs07/emas-2900/pdiags4.txt ====
! PASCAL DIAGNOSTICS RELEASE 4
! Mike Brown
! RELEASE 2 - February 1981
! RELEASE 3 - DOES NOT EXIST AS ROSEMARYS AND MY NUMBERING GOT OUT OF PHASE
! RELEASE 4 - NOVEMBER 1981
!
%SYSTEMROUTINESPEC ITOE (%INTEGER ADDR, LEN)
%SYSTEMROUTINESPEC DUMP (%INTEGER S, F)
%SYSTEMROUTINESPEC FINFO (%STRING (31) FILE, %INTEGER MODE, %C
   %RECORDNAME R, %INTEGERNAME FLAG)
%SYSTEMROUTINESPEC NCODE (%INTEGER S, F, A)
%SYSTEMSTRINGFNSPEC ITOS (%INTEGER INT)
%SYSTEMSTRINGFNSPEC CONFILE (%INTEGER AD)
%SYSTEMSTRINGFNSPEC FAILUREMESSAGE (%INTEGER ERROR)
!
%EXTERNALINTEGERFNSPEC ICL9LPPMPROCL (%INTEGER ERRNO, PROCNO, GROUP, %LONGINTEGER EMESS, %C
   %INTEGER LANG0, LANG1, DISPLACEMENT, %LONGINTEGER DIAGREC, %INTEGER MODCHAINENTRY0, %C
   MODCHAINENTRY1, AREAENTRY0, AREAENTRY1,STACKFRAME0, STACKFRAME1)
%EXTERNALINTEGERFNSPEC ICL9LPPMPROCR (%INTEGER DIAGNOSTICS, ARRAYSIZE, DISPLACEMENT, %C
   STACKFRAME0, STACKFRAME1, %LONGINTEGER DIAGREC, %INTEGER MODCHAINENTRY0, %C
   MODCHAINENTRY1, AREAENTRY0, AREAENTRY1, AREASOFENTRY0, AREASOFENTRY1)

==== ercs07/emas-2900/rel11opt_op3b45.txt ====
! 29/11/84 - set Opcat for PAUSE to 21
! 24/10/84 - line 2345, also test for OP=MOO
!          - line 2785, scaling factor corrected to SRSCALE
! 23/10/84 - call ADDCODE at line 1153
! 02/10/84 - remove error message at PASS1(0) & PASS2(0)
! 05/07/84 - put routine ARRTR in include file targ_arrtr
! 06/06/84 - extend array OPCAT for INTRIN & DCMPLX
! 05/06/84 - do not optimise arrays with constant subscripts (ARRTR)
! 13/03/84 - correct TYPES and LENGTHS in routine DESC
! 19/01/84 - CTSIZE & EXTNSIZE NOW IN HOST
! 18/01/84 - BLOCK BIT STRIP ADDRESSES ARE NOW RELATIVE TO ABLOCKS
! 07/11/83 COPIED FROM ERCS06.REL8002_OP3B23
!*
%include "host_host"
!
%include "targ_target"
!
%include "pf_version"
!*
%include "bits_fmts"
!*

==== ercs07/emas-2900/slogof_iodatafr.txt ====
 
      BLOCK DATA 
 
      INTEGER  IOSTEP 
      INTEGER  IONX 
      INTEGER  PACKET 
      INTEGER  IOFLAG 
      INTEGER  IOINDX 
      INTEGER  IONAME (6) 
      INTEGER ICLP03 
      COMMON   /IOC/    IOSTEP 
      COMMON   /IOC/    IONX 
      COMMON   /IOC/    PACKET 
      COMMON   /IOC/    IOFLAG 
      COMMON   /IOC/    IOINDX 
      COMMON   /IOC/    IONAME 
      COMMON   /IOC/    ICLP03 
      DATA  IOFLAG   /0/ 
      DATA  IOINDX   /1/ 
      DATA  IONAME   / 1861, 'NT','ER',  1865, 'NT','RP'/ 
      END 

==== ercs07/emas-2900/strans_fnamesin.txt ====

      INTEGER SRCEFS(10,4),CMDF(10),LISTF(10),OUTF(10)
      COMMON /FNAMES/SRCEFS,CMDF,LISTF,OUTF

==== ercs07/emas-2900/pdiags5.txt ====
! PASCAL DIAGNOSTICS
! Mike Brown
! RELEASE 2 - February 1981
! RELEASE 3 - DOES NOT EXIST AS ROSEMARYS AND MY NUMBERING GOT OUT OF PHASE
! RELEASE 4 - NOVEMBER 1981
! RELEASE 5 - NOVEMBER 1982
!
%SYSTEMROUTINESPEC ITOE (%INTEGER ADDR, LEN)
%SYSTEMROUTINESPEC DUMP (%INTEGER S, F)
%SYSTEMROUTINESPEC NCODE (%INTEGER S, F, A)
%SYSTEMROUTINESPEC FINFO (%STRING (31) FILE, %INTEGER MODE, %RECORDNAME R, %INTEGERNAME FLAG)
%SYSTEMSTRINGFNSPEC ITOS (%INTEGER INT)
%SYSTEMSTRINGFNSPEC CONFILE (%INTEGER AD)
%SYSTEMSTRINGFNSPEC UNPACKDATE (%INTEGER DT)
%SYSTEMSTRINGFNSPEC UNPACKTIME (%INTEGER DT)
%SYSTEMSTRINGFNSPEC FAILUREMESSAGE (%INTEGER ERROR)
%EXTERNALINTEGERFNSPEC ICL9LPPMPROCL (%INTEGER ERRNO, PROCNO, GROUP, %LONGINTEGER EMESS, %C
   %INTEGER LANG0, LANG1, DISPLACEMENT, %LONGINTEGER DIAGREC, %INTEGER MODCHAINENTRY0, %C
   MODCHAINENTRY1, AREAENTRY0, AREAENTRY1,STACKFRAME0, STACKFRAME1)
%EXTERNALINTEGERFNSPEC ICL9LPPMPROCR (%INTEGER DIAGNOSTICS, ARRAYSIZE, DISPLACEMENT, %C
   STACKFRAME0, STACKFRAME1, %LONGINTEGER DIAGREC, %INTEGER MODCHAINENTRY0, %C

==== ercs07/emas-2900/slogos_bldpoain.txt ====
C     EDIT DATE   10MAR78  03:55
C     SOURCE FILE BLDPOAJH.IN
C     AUTHOR      A. J. HOWARD
      LOGICAL  MSEEN, SMSEEN, ZFLAG
      INTEGER  SMODE, TPFLAG, DEFMOD, LEVEL
      INTEGER  STOAC, OP

      COMMON   /BPO/ MSEEN, SMSEEN, ZFLAG
      COMMON   /BPO/ SMODE, TPFLAG, DEFMOD, LEVEL
      COMMON   /BPO/ STOAC, OP



==== ercs07/emas-2900/slogof_setfr.txt ====
    
      SUBROUTINE SET (VALUE, BUFFER, COUNT) 
      INTEGER VALUE, COUNT, BUFFER (1), I   
      DO  13004 I = 1, COUNT
      BUFFER (I) = VALUE
13004 CONTINUE  
    
      RETURN
      END   

==== ercs07/emas-2900/npc2_globalsh.txt ====
{

                           MODULE 2
 
 
                      Global Definitions
                       and Declarations
 
 
 
 
 
 Because of the rigid order of definitions and declarations imposed
 by  Pascal, this module contains all of the global definitions and
 declarations on which the procedures  in  the  subsequent  modules
 depend.  In  this  module,  only a brief indication of the overall
 nature of the constants, types and variables introduced is  given,
 together  with a reference to the module in which they are used. A
 more detailed explanation of the nature and  purpose  of  each  is
 given in the referenced module itself.


==== ercs07/emas-2900/lpds_defipklo.txt ====
''HEAD, DEFAULT INPUT PACKET
     // EDIT DATE   21AUG78  17:28
     // SOURCE FILE DEFIPKT.LO
     // AUTHOR      A. J. HOWARD
     DEF I PKT: [I.BUF],
     BUFFER SIZE: 72,
     DEF I PKT: DEF I PKT =
        'LOC' BUFFER,
        1,
        BUFFER SIZE,
        1,
        'LOC' TTY INPUT,
        0,
     BUFFER [BUFFER SIZE] =
        'FOR' BUFFER SIZE 'LBR' " " 'RBR'
 ;
 ;DEFAULT INPUT PACKET:
     .....
''END


==== ercs07/emas-2900/mixedsrce_pwrtestf.txt ====
      PROGRAM PWRTEST
      REAL*8 TWO
      WRITE(6,100)
  100 FORMAT(' CALLING POWER')
      TWO=2.0
      EP=POWER(TWO,7)
      WRITE(6,200)EP
  200 FORMAT(' 2.0^7= ',F9.4)
      STOP
      END

==== ercs07/emas-2900/qfiles5apr_f77cmess2.txt ====
!* MODIFIED 23/03/82
!*
!*
%RECORDFORMAT COMFMT(%INTEGER CONTROL,OPTIONS,OPTIONS1,OPTIONS2,PTRACE,
      ADICT,ANAMES,ADOUTPUT,ADBLKDTAID,DICLEN,DPTR,
      MAXTRIADS,NEXTPLAB,ALABH,ADLHEAD,
      SUBPROGTYPE,SFPTR,EXTERNALS,CBNPTR,SCPTR,CHECKLIST,
      RESCOM1,RESCOM2,GLACA,FNO,FAULTY,LINEST,CMNIIN,SFMK,
      LISTL,LISTSTREAM,DIAGSTREAM,LISTPOINT,XREF,
      PACKCMN,ITSMODE,PATHANAL,CHARACTER CODE,SPACE CHAR,
      HEADINGS,ARRAYCHECKS,JBRMODE,MESSLEN,NAMESLEN,
      NEXTCH,FUNRESDISP,WARNCOUNT,INP,MAXINP,MESSCOUNT,
      UNASSPATTERN,LISTCODE,PI21INT,DOPTR,SUBPROGPTR,
      FNLST,LAB,NAMESFREE,ALGOLREF,FIRSTSTATNUM,CEXPDICT,
      COMMONBASE,FASTPROLOGUE,STATEMENT,IFPTR,
      CNSTCA,COMMENTCNT,ADIDENT,ADERRIDEN)
%EXTERNALROUTINE QCMESS
{dummy}
%END
!*
%EXTERNALROUTINE FAULTNUM(%INTEGER ER,COMAD,UPDATE)

==== ercs07/emas-2900/inpds_stranin.txt ====
      INTEGER  INPTR
      INTEGER  OUTPTR
      INTEGER  INMAX
      INTEGER  MAXTAB
      INTEGER  MAXLIN
      INTEGER  IFMAX
      INTEGER  MAXLEV
      INTEGER  LINENO
      INTEGER  PAGE
      INTEGER  CLINE
      INTEGER  TLIMIT
      INTEGER  LN
      INTEGER  I, J, K
      INTEGER  II, JJ, KK
      INTEGER  LEXVAL
      INTEGER  SLEN
      INTEGER  LEVEL
      INTEGER  LEN
      INTEGER  INCHAN
      INTEGER  OUTCHN
      INTEGER  LPTCHN

==== ercs07/emas-2900/diags.txt ====
module  diags;
exports

imports impprocs from impprocs;

imports system from system;
imports except from except;
imports scrounge from scrounge;
imports perq_string from perq_string;
imports memory from memory;
imports filesystem from filesystem;
imports runread from runread;
imports screen from screen;
imports io_others from io_others;


exception reseterror(filename:pathname); { also defined in module stream }


const {$Include acb.dfs}
      {$Include rd.dfs}

==== ercs07/emas-2900/mixedsrce_pwrtesti.txt ====
%BEGIN
%EXTERNALLONGREALFNSPEC POWER(%LONGREAL X,%INTEGER Y)
%LONGREAL EP
PRINTSTRING('CALLING POWER');NEWLINE
EP=POWER(2.0,7)
PRINTSTRING('2.0^7= ')
PRINT(EP,3,4)
NEWLINE
%ENDOFPROGRAM

==== ercs07/emas-2900/dsea20_edomfoutl1.txt ====
TS/%ROUTINE FIXUP(%INTEGER AREACODE/
TS/%IF BASECODE/ R/ = 5/=5 %AND MAXAREAIIN>=5/
TELE

==== ercs07/emas-2900/slogof_dumstffr.txt ====
    
      SUBROUTINE  DUMST (CALLER)
    
      INTEGER     LISTF,  SNLPRT, SUMPRT, SYMFLG
      INTEGER     PRINTF, SKIP,   COMPFL (2)
      INTEGER     LOCPRT, USFLGS, NEGFLG, SKNAME (8)
      INTEGER     ORGFLG, CTLUSE, CTLERR, TTL (8)   
      INTEGER     DUMFLG
      INTEGER ICLP01
      COMMON      /CTLCOM/    LISTF,  SNLPRT, SUMPRT, SYMFLG
      COMMON      /CTLCOM/    PRINTF, SKIP,   COMPFL
      COMMON      /CTLCOM/    LOCPRT, USFLGS, NEGFLG, SKNAME
      COMMON      /CTLCOM/    ORGFLG, CTLUSE, CTLERR, TTL   
      COMMON      /CTLCOM/    DUMFLG
      COMMON      /CTLCOM/ ICLP01   
      INTEGER     CALLER (2)
      EXTERNAL    OLDUM 
      IF (DUMFLG .EQ. 0 .OR. CTLUSE .NE. 0) RETURN  
      CALL ODUMS (CALLER)   
      RETURN
      END   

==== ercs07/emas-2900/genutils_tovmekpdi.txt ====

%EXTERNALROUTINE TOVMEKPD(%STRING(63) S)
%EXTERNALROUTINESPEC COBJ(%STRING(63) SA)
%EXTERNALROUTINESPEC COPY(%STRING(63) SB)
%EXTERNALROUTINESPEC DEFINE(%STRING(63) SC)
%EXTERNALROUTINESPEC PROMPT(%STRING(15) SD)
%STRING(20) B,C,OUTPDS,SIN
%INTEGER I
%BYTEINTEGERARRAY  BUF(1:80)

DEFINE("ST05,.IN")
DEFINE("ST06,.OUT")
SELECTOUTPUT(6)
SELECTINPUT(5)
%IF S#"" %THEN S<-S."_"
OUTPDS<-"VMEK_"
SIN<-""
PROMPT("FILE: ")
%WHILE SIN # ".END" %THEN %CYCLE
      STRING(ADDR(BUF(1)))<-""
      %CYCLE I=2,1,80

==== ercs07/emas-2900/npcpf_pfgen.txt ====
procedure MCSetBit(var Word:MCWordform;BitIndex:MCBitIndex);
extern;

procedure MCGetBit(word:MCWordForm;BitIndex:MCBitIndex;
                   var ResultBit:MCBit);
extern;

procedure MCSetByte(var Word:MCWordForm;ByteIndex:MCByteIndex;
                    DataByte:MCByte);
extern;

procedure PredictedError(Code:Scalar);
extern;

==== ercs07/emas-2900/pascalsce_opeh4.txt ====
! PASCAL OPEH ROUTINES RELEASE 4
! Mike Brown
! RELEASE 2 - February 1981
! RELEASE 3 - DOES NOT EXIST AS ROSEMARYS AND MY NUMBERING GOT OUT OF PHASE
! RELEASE 4 - NOVEMBER 1981
!
%SYSTEMROUTINESPEC DUMP (%INTEGER S, F)
%SYSTEMROUTINESPEC NCODE (%INTEGER S, F, A)
%SYSTEMROUTINESPEC NDIAG (%INTEGER PCOUNT, LNB, FAULT, INF)
%EXTRINSICBYTEINTEGER FLAGABORT
%EXTRINSICINTEGER LOOPCOUNT
!
%CONSTBYTEINTEGERARRAY HEX (0:15) = %C
   '0', '1', '2', '3', '4', '5', '6', '7', %C
   '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'
!
%ROUTINE PHEX (%INTEGER VALUE, PLACES)
   %INTEGER Z
   %CYCLE Z = PLACES << 2 - 4, -4, 0
      PRINTSYMBOL(HEX(VALUE >> Z & 15))
   %REPEAT

==== ercs07/emas-2900/pcfiles_options2.txt ====
{

 History
 -------

 01/12/85 - History added. (agh)
 01/12/85 - Options BitsPacked and Single added. (agh)
 -----------------------------------------------------------------
 12/12/85 - Improve option-handling for real-precision. (agh)

                                                                   }
 
{

                           MODULE 3
 
 
                       Option Handling
 
 
 

==== ercs07/emas-2900/pptecodes_test1a.txt ====
Einitialise 
Enextproc  1
Eproc TEST1    1    0    0
EXname  p_presetf    2    0    0
Eprecall     2
Estkaddr   Gst     + 0      4
Eop    PUSHVAL
 0 0 0
Estack:
 1:AddrDir       Gst     +    0  size: 4
Estklit        1
Eop    PUSHVAL
 0 0 0
Estack:
 1:LitVal            1  size: 4
Ecall        2      2    8
EXname  p_bindf    3    0    0
Eprecall     3
Estkaddr   Gst     + 0      4    OUTPUT
Eop    PUSHVAL
 0 0 0

==== ercs07/emas-2900/malist.txt ====
          FORTRAN Patch Utility Version 1.0

M(MATEST,1)
A(1,1,X0002,X4)
 ** New value invalid
A(1,200,X0,X1111 2222 3333)
 ** New value invalid
A(1,208,X0000,X999)
 ** New value invalid
CHE()
Checksum is XF34

M(MATEST,1)
A(1,1,X02,X0004)
A(1,200,X0,X1111222233334444)
A(1,208,X0000,X99999999)
CHE(X1111)
Checksum is X1111

Module sys:user>rosemary>MATEST.seg being updated with patch no.   1


==== ercs07/emas-2900/psclsce205_rtsup5.txt ====
! MODIFIED 15/01/81 - DATA FILES I/O BUFFER FAULT
! MODIFIED 26/11/80 - VERSION 20.5 - I/O BUFFER FAULT
!**********************************************************************
!*
!*                    RUN TIME PASCAL
!*
!**********************************************************************
!
!
!**********************************************************************
!*
!*                            CONSTANTS
!*
!**********************************************************************
!
%CONSTINTEGER NO=0,YES=1
%CONSTSTRING(1)%ARRAY HEX TAB(0:15)="0","1","2","3","4","5","6","7", %C
              "8","9","A","B","C","D","E","F"
!
!
!**********************************************************************

==== ercs07/emas-2900/strans_lexftmfr.txt ====
    
      INTEGER FUNCTION LEX (ICHAR)  
    
      INTEGER  INPTR
      INTEGER  OUTPTR   
      INTEGER  INMAX
      INTEGER  MAXTAB   
      INTEGER  MAXLIN   
      INTEGER  IFMAX
      INTEGER  MAXLEV   
      INTEGER  LINENO   
      INTEGER  PAGE 
      INTEGER  CLINE
      INTEGER  TLIMIT   
      INTEGER  LN   
      INTEGER  I, J, K  
      INTEGER  II, JJ, KK   
      INTEGER  LEXVAL   
      INTEGER  SLEN 
      INTEGER  LEVEL
      INTEGER  LEN  

==== ercs07/emas-2900/library_tplist.txt ====

ICL 2900 SERIES TECHNICAL PUBLICATIONS HELD AT E.R.C.C., KINGS BUILDINGS

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


THE LIST BELOW DETAILS THE CURRENT STATUS OF OFFICIAL ICL PUBLICATIONS
RELATING MAINLY TO SYSTEM B.  SOME ARE NOT UP-TO-DATE, MISSING OR NOT
EVEN REQUIRED.  THE COMMENTS SHOULD BE OF SOME HELP TO INDICATE THE
STATE OF EACH MANUAL.  IT IS SOMETIMES VERY IMPORTANT TO READ ANY
PUBLICATIONS NOTICES FILED AT THE FRONT OF THE MANUALS AND THE
APPENDICES GIVING THE AVAILABILITY OF FACILITIES AT EACH RELEASE OF
THE SYSTEM OR PRODUCT.

THE MANUALS ARE FILED UNDER THE FOLLOWING CLASSIFICATIONS.

    0   BIBLIOGRAPHY
    1   INTRODUCTORY
    2   PLANNING
    3   SCL
    4   COLLECTING AND EDITING

==== ercs07/emas-2900/qfiles_iob3.txt ====
   !Modified  14/ 4/82   18.00





!**********************************************************************!
!**********************************************************************!
    !                                                           !
    !                                                           !
    !     This Module is designed to provide Formatted Output   !
    !                                                           !
    !                for FORTRAN77  Programs                    !
    !                                                           !
    !                 on ICL  PERQ  Machines                    !
    !                                                           !
    !                                                           !
!**********************************************************************!
!**********************************************************************!



==== ercs07/emas-2900/slinks_iofilein.txt ====
C     EDIT DATE   09JAN79  17:22
C     SOURCE FILE IOFILEGAK.IN
C     AUTHOR      GARY A. KUDIS
C     I/O FILE DEFINITIONS
      INTEGER     CMFILE (16)
      INTEGER     RBFILE (16)
      INTEGER     OBFILE (16)
      INTEGER     MPFILE (16)
      INTEGER     DBFILE (16)
N     INTEGER     OVFILE (5)
N     INTEGER     TOFILE (3)
      INTEGER     TIFILE (3)
      INTEGER ICLP03
      COMMON      /FILES / CMFILE
      COMMON      /FILES / RBFILE
      COMMON      /FILES / OBFILE
      COMMON      /FILES / MPFILE
      COMMON      /FILES / DBFILE
N     COMMON      /FILES / OVFILE
N     COMMON      /FILES / TOFILE
      COMMON      /FILES / TIFILE

==== ercs07/emas-2900/dsea20_coedlate1.txt ====
T/CONST/
TS/STARTOFGLOBALSPACE/ R/6/8/
TS/GLOBALLNBDESCOFFSET/ P+1 T+1 P-2 T+1 P+1
I/   JLKSUPPORTLINKOFFSET = 6 ;///
T/TYPE/
TS/COUNTERADDRRANGE/
I/   KINDOFBLOCK = (PROGBLOCK, PROCBLOCK, FUNCBLOCK, UNKNOWNBLOCK);///
T/PROCEDURE MAPTHISBLOCK (/ TS/BEGIN/
I/   VAR
      BLOCKKIND : KINDOFBLOCK;
      I, NAMELENGTH : 0..ALFALENGTH;
/
TS/IF/ D/ AND REQD[DUMP]/ TS/BEGIN/ PS/END (* MAPTHISBLOCK/
I$      BEGIN
      PUTMAPBYTE(0);
      PUTMAPBYTE(0);
      IF REQD[DUMP] THEN
         BEGIN
         PUTMAPBYTE(BLOCK@.SERIAL DIV 256);
         PUTMAPBYTE(BLOCK@.SERIAL MOD 256);
         END

==== ercs07/emas-2900/slogos_ctrlajin.txt ====
C     EDIT DATE   09OCT78  11:12
C     SOURCE FILE   CTRLAJH.IN
C     AUTHOR        A. J. HOWARD
C     CLUSTER       80
C     COMPILER CONTROL DIRECTIVE FLAGS
C
C
C     LISTF    EXPLODED LISTING        ''LIST
C     SNLPRT   SHORT NAME LIST PRINT   ''SHORT
C     SUMPRT   SUMMARY PRINT           ''SUMMARY
C     SYMFLG   SYMBOLS INCLUDED IN OBJECT
C                                      ''SYMBOLS
      INTEGER     LISTF,  SNLPRT, SUMPRT, SYMFLG
      INTEGER     PRINTF, SKIP,   COMPFL (2)
      INTEGER     LOCPRT, USFLGS, NEGFLG, SKNAME (8)
      INTEGER     ORGFLG, CTLUSE, CTLERR, TTL (8)
      INTEGER     DUMFLG
I     INTEGER ICLP01
      COMMON      /CTLCOM/    LISTF,  SNLPRT, SUMPRT, SYMFLG
      COMMON      /CTLCOM/    PRINTF, SKIP,   COMPFL
      COMMON      /CTLCOM/    LOCPRT, USFLGS, NEGFLG, SKNAME

==== ercs07/emas-2900/perqrel3_init16.txt ====
module f77init;
{ updated 21/3/82 - function openfile defined }
{ updated 23/4/82 - real underflow dealt with in handler all }
{                   procedure movebee inserted }
{ updated 3 may  -  div 2 inserted in dblelen , local areas}
{ updated 4 may  -  localrec string dispensed with}
{         5 may -  size of area and common tables increased to 32}
{         7 may -  remove newline after x chars from iocp}
{        25 may - increase size of comarea & startad }
{                 set initial values of locind & comind to 0 }
{                 define constant maximum values for them }
{                 check against these values before creating new area  }
{                 reduce length of name in comrec & list6rec }
{                 set bc flag false if named common }
{                 set startad[areaind] if blank common already exists }
{                 set data to startad[areaind] if preinitialising }
{                 comment out any references to locarea }
{                 comment out any references to rootnam }
{       28/may/82 - fault in initialisation of arrays greater then 32kw fixed
{                   in routine fill.}


==== ercs07/emas-2900/perqrel3_dctl13.txt ====
module  f77dctl;
exports
imports filedefs from filedefs;

procedure ndiag(raiseap,dumpc,err,extra:fsbit16);
procedure ssmess(i:integer);

function loadss:fsbit16;
function loadap:fsbit16;
procedure diags(raiseap,es,er,pstart,pend:fsbit16);

private

imports f77init from f77init;
imports f77idiag from f77idiag;
imports f77fdiag from f77fdiag;
imports f77rmess from f77rmess;
imports F77QCODE from F77QCODE;

imports system from system;
imports except from except;

==== ercs07/emas-2900/slogof_objextfr.txt ====
    
      SUBROUTINE  OBJEXT
    
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      INTEGER     NEXT,   NUMBER, I,      IOTYPE
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT
      INTEGER ICLP05
      LOGICAL     ENDOK,CONEND  
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG   
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG  
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV  
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE  
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N   
      COMMON   /LOGOS/  PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE  

==== ercs07/emas-2900/pptests_test1a.txt ====
program test1(output);
var a,b:integer;
    rec1: record a,b:integer; end;
    r1,r2:real;
    b1,b2:boolean;
begin
a:=-3;
rec1.b:=2;
b:=rec1.b*a;
r1:=a*b+b;
r2:=-r1;
b1:=a>b;
if b1 then b2:=r1<r2;
writeln(a,b);
writeln(r1,r2);
writeln(b1,b2)
end.

==== ercs07/emas-2900/slogos_levelsin.txt ====
C     EDIT DATE   19FEB78  11:18
C     SOURCE FILE LEVELSAJH.IN
C     AUTHOR      A. J. HOWARD
      INTEGER  LEVELB, NLEVEL, LLEVEL, ILEVEL, CLEVEL
I     INTEGER ICLP04
      COMMON   /LEVELS/ LEVELB, NLEVEL, LLEVEL, ILEVEL, CLEVEL
I     COMMON   /LEVELS/ ICLP04




==== ercs07/emas-2900/slogof_pverblfr.txt ====
    
      SUBROUTINE  PVERBL
    
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      INTEGER     NEXT,   NUMBER, I,      IOTYPE
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT
      INTEGER ICLP05
      LOGICAL     ENDOK,CONEND  
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG   
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG  
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV  
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE  
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N   
      COMMON   /LOGOS/  PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE  

==== ercs07/emas-2900/slogof_tempsdfr.txt ====
 
      BLOCK DATA 
 
      INTEGER  DTX 
      INTEGER  STX 
      COMMON   /STEMP/  DTX 
      COMMON   /STEMP/  STX 
      DATA     DTX    /0/ 
      DATA     STX    /0/ 
      END 

==== ercs07/emas-2900/perqrel2_qput4.txt ====
%CONSTINTEGER EMAS=0,PERQ=1,SYS=PERQ
%CONSTINTEGER NOTSYS=(SYS+1)&1
!********************************************
!*             PERQ LPUT                    *
!********************************************




        %ROUTINESPEC QPUT(%INTEGER A,B,C,D)  {ensure qput is routine number one}
{PERQ}  %externalroutinespec MOVEBEE
{PERQ}  %EXTERNALROUTINESPEC WRITE BLOCK(%HALFINTEGER FILEID,BLOCK, %INTEGER AD)
{PERQ}  %EXTERNALROUTINESPEC READBLOCK(%HALFINTEGER FILEID,BLOCK,%INTEGER AD)
{PERQ}  %EXTERNALROUTINESPEC NEWSEG(%INTEGER AD, %HALFINTEGER SIZE,INC,MAXSIZE)
{PERQ}  %externalhalfintegerfnspec createfile(%integer adname)
{PERQ}  %EXTERNALROUTINESPEC CLOSEFILE(%HALFINTEGER FILEID,BLOCKS,BITS)
        %DYNAMICROUTINESPEC QCODE(%INTEGER I,J,K,L)
{EMAS   %SYSTEMSTRINGFNSPEC FAILUREMESSAGE(%INTEGER MESS)
{EMAS   %EXTERNALSTRINGFNSPEC UINFS(%INTEGER N)
{EMAS   %SYSTEMSTRINGFNSPEC SPAR(%INTEGER N)
{EMAS   %SYSTEMROUTINESPEC SETFNAME(%STRING(63) S)

==== ercs07/emas-2900/slogof_genlxyfr.txt ====
 
      SUBROUTINE  GENLXY (OREG) 
 
      INTEGER     OREG 
 
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG 
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV 
      INTEGER     NEXT,   NUMBER, I,      IOTYPE 
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE 
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP 
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT 
      INTEGER ICLP05 
      LOGICAL     ENDOK,CONEND 
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG 
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV 
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE 

==== ercs07/emas-2900/passup01s.txt ====

%SYSTEMROUTINESPEC MOVE(%INTEGER L, F, T)
%EXTERNALROUTINESPEC CALL(%STRING (31) COM, %STRING (255) PARAM)
%EXTERNALROUTINESPEC PROMPT(%STRING (15) S)

%EXTERNALROUTINE PPROMPT(%INTEGER S1, S2, S3, S4)
%INTEGER I
%STRING (15) S
   MOVE(15,ADDR(S1),ADDR(S)+1)
   LENGTH(S) = 15
   %WHILE S # "" %AND CHARNO(S,LENGTH(S)) = ' ' %C
      %THEN LENGTH(S) = LENGTH(S)-1
!REMOVE TRAILING SPACES
   PROMPT(S)
%END;                                   !OF PPROMPT

%EXTERNALROUTINE PCALL(%INTEGER DUM1, ADE, DUM2, ADP)
%STRING (31) ENTRY
%STRING (255) PARAM
   ENTRY <- STRING(ADE+3)
   PARAM <- STRING(ADP+3)

==== ercs07/emas-2900/mixedsrce1_ioproctest.txt ====
PROGRAM IOPROCTEST(OUTPUT);
PROCEDURE IOPROC(VAR OP:TEXT);EXTERN;
BEGIN
WRITELN('CALLING IOPROC');
IOPROC(OUTPUT)
END.

==== ercs07/emas-2900/dsea20_rtenv.txt ====
I/%CONTROL X'1FFFFFFF'///
I/!* RTENV - FOR PASCAL 20 (RUN-TIME)
!*
!* MAINLY DIAGNOSTICS SIMPLIFICATIONS
!*
!* T.MOORE    APRIL 1980
!*
/
TC/PROCL=E"ICL9CERRPROCL"/
I/%CONSTSTRING(40) SWERRMESS=E"ERROR IN PASCAL ENVIRONMENT"///
T/%ROUTINESPEC ICL9CETIDYUP/ I/!    /
T/%SYSTEMROUTINE DATIME/ R/DATIME/DATEANDTIME/
T/%EXTERNALINTEGERFN ICL9CENVINIT/ R/NV/Z/
T/!      %UNLESS LANG=2/ G
*9(R/ /!/ G)
TS/%IF DIAGMODE=1/
I/      SSCOMREG(36)=LNB///
TS/SKIP:/ R/SKIP:/     / G I/!/
G R/     /SKIP:/
T/%SYSTEMROUTINE STOP/
T+2 I/      -> SKIP///

==== ercs07/emas-2900/qcode1.txt ====
rogram qcode1(outfile);
type charr2=packed array[1..2]of char;
     chptr=^charr2;
     iptr=^integer;
var i1:iptr;
    mess1:chptr;
    outfile:text;
    seg,off:integer;
begin
rewrite(outfile,'qcode1.lst');
new(i1);
i1^:=16688; {* 'a0' *}
loadadr(i1^);
storexpr(off);
storexpr(seg);
writeln(outfile,'seg is',seg,'  offset is',off);
mess1:=makeptr(seg,off,chptr);
writeln(outfile,mess1^);
close(outfile);
end.

==== ercs07/emas-2900/slogof_rstk01fr.txt ====
    
      SUBROUTINE MRGREG(LEVEL,SAVTYP)   
      INTEGER LEVEL,SAVTYP  
    
      INTEGER     ACADDR (11), ACTYPE (11), ACSUBS (11) 
      INTEGER     ACSBTY (11), ACBIAS (11)  
      INTEGER     REGSTK(120)   
      COMMON      /RMCOM/  ACADDR, ACTYPE, ACSUBS, ACSBTY, ACBIAS   
      COMMON      /RMCOM/  REGSTK   
    
      INTEGER  CLRACV   
      INTEGER  CLRACX   
      INTEGER  CLRSTA   
      INTEGER  TRAREG   
      INTEGER  SAVREG   
      INTEGER  CTFREE   
      INTEGER  SETREG   
      INTEGER  ICLP11   
      COMMON   /RMCODE/ CLRACV, CLRACX, CLRSTA, TRAREG, SAVREG  
      COMMON   /RMCODE/ CTFREE, SETREG  
      COMMON   /RMCODE/ ICLP11  

==== ercs07/emas-2900/qcode2.txt ====
program qcode2(outfile);
type charr2=packed array[1..2]of char;
     chptr=^charr2;
var i1:integer;
    mess1:chptr;
    outfile:text;
    seg,off:integer;
begin
rewrite(outfile,'qcode2.lst');
i1:=16688; {* 'a0' *}
loadadr(i1);
storexpr(off);
storexpr(seg);
writeln(outfile,'seg is',seg,'  offset is',off);
mess1:=makeptr(seg,off,chptr);
writeln(outfile,mess1^);
close(outfile);
end.

==== ercs07/emas-2900/qfiles_alloc8.txt ====
!* modified 14/04/82
!*
!******************************** EXPORTS ******************************
!*
%ROUTINESPEC ALLOC(%INTEGER PTR)
%INTEGERFNSPEC ALLOC CHAR(%INTEGER L,AD,
        %HALFINTEGERNAME IIN,%INTEGERNAME DISP)
%ROUTINESPEC INIT ALLOC(%INTEGER ADCOM)
%ROUTINESPEC ADD DATA ITEM(%INTEGER AREA,PTR,COUNT,DISP,L,AD)
%INTEGERFNSPEC TIDY GLA(%HALFINTEGER EP,IIN,%INTEGER LEN)
%INTEGERFNSPEC PFORMAT(%INTEGER AINPUT,INP,J,
                       %STRINGNAME IDENTIFIER)
%INTEGERFNSPEC TO INTEGER(%INTEGER DATA AD,DATA LEN,
                                   TEXT AD,TEXT LEN,TEXT INC,MODE)
%INTEGERFNSPEC TO REAL(%INTEGER DATA AD,DATA LEN,TEXT ADDRESS,
                                INT LEN,INT PTR,DEC LEN,DEC PTR,
                                EXP LEN,EXP PTR,DECS,SCALE,MODE)
%INTEGERFNSPEC GLA SPACE(%INTEGER LEN)
!*
!* 25/03/82   
!*

==== ercs07/emas-2900/mixedsrce1_proctest.txt ====
PROGRAM PROCTEST(OUTPUT);
VAR INT1,INT2:INTEGER;
PROCEDURE SET2(VAR I1,I2:INTEGER);EXTERN;
BEGIN
WRITELN('CALLING SET2');
SET2(INT1,INT2);
WRITELN('INT1= ',INT1,'  INT2= ',INT2);
WRITELN('DID IT WORK');
END.

==== ercs07/emas-2900/rel10opt_op48.txt ====
!
%OWNINTEGER TRACE=0
%INCLUDE "host_host"
!
%INCLUDE "targ_target"
!
%INCLUDE  "bits_fmts"
!
%include "bits_subfmt"
!
%INCLUDE "bits_consts"
!
%INCLUDE "bits_triadops"
!
%INCLUDE "bits_com"
!
%EXTERNALROUTINESPEC OP4 RESTORE(%INTEGER ASUBINFO)
%EXTERNALROUTINESPEC OP4 RESTORETR
%EXTERNALROUTINESPEC OP4 SETUP(%INTEGER ASUBINFO)
%EXTERNALINTEGERFNSPEC OP4 NEWRD(%INTEGER ARGID)
%EXTERNALINTEGERFNSPEC GET PLAB

==== ercs07/emas-2900/npc1_pfmain.txt ====
procedure Abort;
  extern;

==== ercs07/emas-2900/culmoldsce_prcums.txt ====
%BEGIN
!
!    ROUTINE TO TEST CREATION OF THE CUMULATION FILE FROM LIBPIP
!
%ROUTINESPEC RDCUM(%INTEGER UNT,IND)
!
!?? SHORT; %INTEGERARRAY IRDIRC (1:32)
%BYTEINTEGERARRAY IRTEXT(1:500)
%INTEGERARRAY IDENT(1:13)
!
%INTEGER I
%INTEGER UNIT
!
     UNIT=10                           ;! SET UNIT NUMBER
!
     RDCUM(UNIT,1)
     NEWPAGE
     PRINTSTRING('CUMULATIVE FILE DETAILS')
     NEWLINE
     PRINTSTRING('***********************')
     NEWLINES(2)

==== ercs07/emas-2900/qcode4.txt ====
program qcode4(outfile);
type charr2=packed array[1..2]of char;
     chptr=^charr2;
var outfile:text;
    i1:integer;
    mess1:chptr;
procedure myrecast(var i:integer;ptr:chptr);
var seg,off:integer;
begin
loadadr(i);
storexpr(off);
storexpr(seg);
writeln(outfile,'seg is ',seg,'  offset is ',off);
ptr:=makeptr(seg,off,chptr);
end;
begin
rewrite(outfile,'qcode4.lst');
i1:=16688; {* 'a0' *}
myrecast(i1,mess1);
writeln(outfile,mess1^);
close(outfile);

==== ercs07/emas-2900/mixedsrce_set5.txt ====
PROGRAM DEFSET5;
%KEYEDENTRY ON
FUNCTION SET5:INTEGER;
BEGIN
SET5:=5;
END;
BEGIN
END.

==== ercs07/emas-2900/pptecodes_test2a.txt ====
Einitialise 
Enextproc  1
Enextproc  2
Eproc ONE    2    0    0
 Elinestart ++++++++++++++++++++++    7
 Elinestart ++++++++++++++++++++++    8
Estklit       -3
Estkaddr   Gla     + 16      4    A
Eop    ESTORE
 0 0 0
Estack:
 2:AddrDir       Gla     +   16  size: 4
 1:LitVal           -3  size: 4
 Elinestart ++++++++++++++++++++++    9
Estkglobal  2 8      4    REC1
Estkdir   Gla     + 16      4    A
Eop    IMULT
 0 0 0
Estack:
 2:DirVal        Gla     +   16  size: 4
 1:DirVal        Stack   +   72  size: 4

==== ercs07/emas-2900/slogos_pnacomin.txt ====
C     EDIT DATE     07FEB78  13:29
C     SOURCE FILE   PNACOMAJH.IN
C     AUTHOR        A. J.HOWARD
C     CLUSTER       80
      INTEGER     LIST (499), NAMES (499), CT, BITS (6, 2)
I     INTEGER ICLP08
      COMMON      /PNACOM / LIST, NAMES, CT, BITS
I     COMMON      /PNACOM / ICLP08




==== ercs07/emas-2900/oldpsclsce_rtsup2.txt ====
! MODIFIED 09/10/80 - VERSION 20.2
!**********************************************************************
!*
!*                    RUN TIME PASCAL
!*
!**********************************************************************
!
!
!**********************************************************************
!*
!*                            CONSTANTS
!*
!**********************************************************************
!
%CONSTINTEGER NO=0,YES=1
%CONSTSTRING(1)%ARRAY HEX TAB(0:15)="0","1","2","3","4","5","6","7", %C
              "8","9","A","B","C","D","E","F"
!
!
!**********************************************************************
!*

==== ercs07/emas-2900/slogof_ctrldafr.txt ====
 
      BLOCK DATA 
 
      INTEGER     LISTF,  SNLPRT, SUMPRT, SYMFLG 
      INTEGER     PRINTF, SKIP,   COMPFL (2) 
      INTEGER     LOCPRT, USFLGS, NEGFLG, SKNAME (8) 
      INTEGER     ORGFLG, CTLUSE, CTLERR, TTL (8) 
      INTEGER     DUMFLG 
      INTEGER ICLP01 
      COMMON      /CTLCOM/    LISTF,  SNLPRT, SUMPRT, SYMFLG 
      COMMON      /CTLCOM/    PRINTF, SKIP,   COMPFL 
      COMMON      /CTLCOM/    LOCPRT, USFLGS, NEGFLG, SKNAME 
      COMMON      /CTLCOM/    ORGFLG, CTLUSE, CTLERR, TTL 
      COMMON      /CTLCOM/    DUMFLG 
      COMMON      /CTLCOM/ ICLP01 
      DATA  LISTF, SNLPRT / 0, 1/ 
      DATA  SUMPRT   /0/ 
      DATA  SYMFLG   /0/ 
      DATA  PRINTF   /1/ 
      DATA  SKIP     /0/ 
      DATA  COMPFL   /2*0/ 

==== ercs07/emas-2900/slogof_clocnffr.txt ====
    
      INTEGER FUNCTION CLOCN (INDEX)
    
      INTEGER  NI,     NJ,     NK   
      INTEGER  NSIZE
      INTEGER  NLX,    FNLX,   REMNLX, OVNLX,  TNAME
      INTEGER  NLSTRT, NLSTOP, NLSIZE, SRCHST   
      INTEGER  NTSTRT   
      INTEGER  NTSTOP   
      INTEGER  NTSIZE   
      INTEGER  PARFLG   
      INTEGER  SPARFL   
      INTEGER  NLWRDS   
      INTEGER  TX   
      INTEGER  NLENO
      INTEGER  STDMD
      INTEGER  MSHIFT   
      INTEGER  REGCNT   
      INTEGER  NULLX
      INTEGER  STPTRX   
      INTEGER  SPMODE   

==== ercs07/emas-2900/slogos_stkdfdin.txt ====
C     EDIT DATE   03DEC78  12:11
C     SOURCE FILE STKDFC.IN
C     AUTHOR      A. J. HOWARD
      INTEGER     OSTACK (20)
      EQUIVALENCE (STK (1, 8), OSTACK (1))


==== ercs07/emas-2900/slinkf_mapperfr.txt ====
    
      SUBROUTINE MAPPER 
    
      LOGICAL     MPFLAG
      LOGICAL     OVMODE
      LOGICAL     LBMODE
      LOGICAL     LOADRB
      LOGICAL     SFLAG 
      INTEGER     VERS  
      INTEGER     LOADAD
      INTEGER     ZLOC, ZSTR, ZMAX, ZLIMIT  
      INTEGER     CLOC, CSTR, CMAX, CLIMIT  
      INTEGER     NLOC, NSTR, NMAX, NLIMIT  
      INTEGER     DLOC, DSTR, DMAX, DLIMIT  
      INTEGER     OLOC, OMAX, OSET  
      INTEGER     START 
      INTEGER     MODNLX
      INTEGER     CKSUM 
      INTEGER     KEY   
      INTEGER ICLP05
      COMMON      /LDATAX/ MPFLAG   

==== ercs07/emas-2900/pt_iotest1.txt ====
PROGRAM EXPONZ(OUTFILE);
VAR PI, SPI :REAL; OUTFILE:PACKED FILE OF CHAR;
BEGIN
PI:=3.14159;
REWRITE(OUTFILE);
WRITELN(OUTFILE,PI);
END.

==== ercs07/emas-2900/qfiles_ioc3.txt ====
   !Modified  13/ 4/82   15.00





!**********************************************************************!
!**********************************************************************!
     !                                                            !
     !                                                            !
     !   This Module is designed to provide List-Directed Input   !
     !                                                            !
     !              for FORTRAN77  Programs                       !
     !                                                            !
     !               on ICL  PERQ  Machines                       !
     !                                                            !
     !                                                            !
!**********************************************************************!
!**********************************************************************!



==== ercs07/emas-2900/inpds_stuffain.txt ====
      INTEGER     STUFFO, STUFFN
      COMMON      /CSTUFF/ STUFFO, STUFFN


==== ercs07/emas-2900/pt_iotest2.txt ====
PROGRAM EXPONZ(OUTPUT);
VAR PI, SPI :REAL;
FUNCTION POWER(X:REAL; Y:INTEGER):REAL;
VAR Z:REAL;
BEGIN Z:=1;
  WHILE Y>0 DO
  BEGIN
    WHILE NOT ODD(Y) DO
    BEGIN Y:=Y DIV 2;; X:=SQR(X)
    END;
    Y:=Y-1;Z:=X*Z
  END;
  POWER:=Z
END;
BEGIN
PI:=3.14159;
WRITELN(2.0,7,POWER(2.0,7));
SPI:=POWER(PI,2);
WRITELN(PI,2,SPI);
WRITELN(SPI,2,POWER(SPI,2));
WRITELN(PI,4,POWER(PI,4));

==== ercs07/emas-2900/dsa20_omfout.txt ====
%CONTROL X'0FFFFFFF'
!!*************************************************************
!!
!!  OMFOUT
!!
!!  EDINBURGH'S IMP MODULE OMF8
!!  ADAPTED FOR USE IN BSV35/KSV17 PASCAL SYSTEM (PASCAL 20)
!!
!!  T.MOORE    MARCH '80
!!
!!*************************************************************
!!
                                                                                
!!******************************************                                    
!!                                         *                                    
!!  OMF CONVERTER : ERCC TYPE OBJECT       *                                    
!!  FILE INTO ICL TYPE OBJECT FILE.        *                                    
!!                                         *                                    
!!******************************************                                    
!!                                         *                                    
!! PRODUCES A SQ FILE OF MAX RECORD SIZE 4K.                                    

==== ercs07/emas-2900/mixedsrce1_booltest.txt ====
PROGRAM BOOLTEST(OUTPUT);
VAR FLAG,VAL:BOOLEAN;
PROCEDURE FLAGSET(VAR FLAG:BOOLEAN;VAL :BOOLEAN);
EXTERN;
BEGIN
WRITELN('CALLING FLAGSET');
VAL:=TRUE;
FLAGSET(FLAG,VAL);
WRITELN('FLAG IS ',FLAG);
WRITELN('DID IT WORK');
END.

==== ercs07/emas-2900/pt_iotest3.txt ====
PROGRAM EXPONZ(INPUT,OUTPUT);
VAR PI, SPI :REAL;
BEGIN
READ(PI);
WRITELN(PI);
END.

==== ercs07/emas-2900/pptests_test2a.txt ====
program test1(output);
var a,b:integer;
procedure one;
var rec1: record a,b:integer; end;
    r1,r2:real;
    b1,b2:boolean;
begin
a:=-3;
b:=rec1.b*a;
r1:=a*b+b;
r2:=-r1;
b1:=a>b;
if b1 then b2:=r1<r2;
writeln(a,b);
writeln(r1,r2);
writeln(b1,b2);
end;

begin
one;
end.

==== ercs07/emas-2900/slogos_cdiagafs.txt ====
'HEAD'  EXPLODED LIST ROUTINES
C     EDIT DATE   10DEC78  21:05
C     SOURCE FILE CDIAGAJH.FS
C     AUTHOR      A. J. HOWARD/J.H.PERINE
C     CLUSTER     27
      'OUTFILE'   LISTAJH.FR
      SUBROUTINE  LIST (FUNC, ARG1, ARG2)
      INTEGER     FUNC, ARG1, ARG2
      'INCLUDE'   CTRLAJH.IN,
      EXTERNAL    OLLST
      'IF' (LISTF .NE. 0 .AND. PRINTF .NE. 0)
C         CALL OVLOD (OLLST)
         CALL OLIST (FUNC, ARG1, ARG2)
         'ENDIF'
      RETURN
      END
      'OUTFILE'   OLISTAJH.FR
N     OVERLAY     OLLST

      SUBROUTINE  OLIST (FUNC, ARG1, ARG2)
      INTEGER     FUNC, ARG1, ARG2

==== ercs07/emas-2900/pt_iotest4.txt ====
PROGRAM EXPONZ;
VAR PI, SPI :REAL;
BEGIN
READ(PI);
WRITELN(PI);
END.

==== ercs07/emas-2900/strans_stparsfs.txt ====
'HEAD'  PARSING AND STRAN FUNCTIONS
C     EDIT DATE   15JAN79  10:14
C     SOURCE FILE STPARSE.FS
C     AUTHOR      F. T. MICKEY
      'OUTFILE' CTYPEFTM.FR
      INTEGER FUNCTION CTYPE (ICHAR)
      'INCLUDE' STRAN.IN,
      INTEGER ICHAR
      'IF' (ICHAR .GE. CHAR0 .AND. ICHAR .LE. CHAR9)
         CTYPE = DIGIT
         'ELSE'
         'IF' (ICHAR .GE. CHARA .AND. ICHAR .LE. CHARZ)
            CTYPE = LETTER
            'ELSE'
            CTYPE = ICHAR
            'ENDIF'
         'ENDIF'
      RETURN
      END
      'OUTFILE' LSTARTFTM.FR
      SUBROUTINE LSTART

==== ercs07/emas-2900/pt_iotest5.txt ====
PROGRAM EXPONZ(INFILE,OUTFILE);
VAR PI, SPI :REAL;INFILE,OUTFILE:TEXT;
BEGIN
RESET(INFILE);
REWRITE(OUTFILE);
READ(INFILE,PI);
WRITELN(OUTFILE,PI);
END.

==== ercs07/emas-2900/slogosorg_lconstin.txt ====
      INTEGER  LOWWF, LTLNA, LLPOOL, LLNAME, LMOVEP, LBSS
      INTEGER  LEXEQU, LNLEQU
      COMMON   /LCON/   LOWWF, LTLNA, LLPOOL, LLNAME, LMOVEP, LBSS
      COMMON   /LCON/   LEXEQU, LNLEQU




==== ercs07/emas-2900/pt_iotest6.txt ====
PROGRAM TST10(OUTPUT);
VAR X : ARRAY[1..10] OF INTEGER;
    I : INTEGER;
BEGIN
I:=1;
WHILE I<12 DO
  BEGIN
  X[I]:=I*2;
  WRITELN(OUTPUT,X[I]);
  I:=I+1
  END;
END.

==== ercs07/emas-2900/slinkf_lnamesfr.txt ====
    
      SUBROUTINE LNAMES 
    
      INTEGER     NSIZE,  NAME(16), NTITLE  
      INTEGER     NFLAGS (512)  
      INTEGER     NADDRS (512)  
      INTEGER     NPOSIT (512)  
      INTEGER     NDATA  (512)  
      INTEGER     NTEXTX (512)  
      INTEGER     NTEXT  (1000) 
      INTEGER     NLX, NLSTRT, NLSTOP   
      INTEGER     TXSTRT, TXSTOP
      INTEGER     NTXBTS
      INTEGER     USEBIT, COMBIT, OVLBIT, EPTBIT
      INTEGER     LDMBIT, MODBIT, MLTBIT, RLSBIT
      INTEGER     GDFBIT, TYPBTS
      INTEGER     ATYPE 
      INTEGER      ICLP07   
      LOGICAL     OLDNAM
      COMMON      /NTABLE/ NSIZE, NAME, NTITLE  
      COMMON      /NTABLE/ NFLAGS, NADDRS, NPOSIT, NDATA, NTEXTX

==== ercs07/emas-2900/pt_iotest7.txt ====
PROGRAM EXPONZ(INPUT,OUTPUT);
VAR PI, SPI :REAL;
BEGIN
WHILE NOT EOF DO
  BEGIN
  READ(PI);
  WRITELN(PI);
  END
END.

==== ercs07/emas-2900/pt_iotest8.txt ====
PROGRAM TESTIP(INPUT,OUTPUT);
VAR N:CHAR;
BEGIN
WHILE NOT EOF DO
  BEGIN
  READ(N);
  WRITELN(N);
  END;
END.

==== ercs07/emas-2900/npcpf_globalsx.txt ====

const

   IndexedFromLeft = true ;             { for host Pascal compiler }

   { constants used by pnx-dependent code in modules 3 and 4 }

   MaxArgString   = 60 ;                { maximum size of argument string }
   MaxArgs        = 6 ;                 { maximum number of arguments }
   BufferSize     = 512 ;               { disk buffer size in bytes }
   Null           = 0 ;                 { ASCII null character }
   BackSpace      = 8 ;                 { ASCII back-space character }
   Tab            = 9 ;                 { ASCII tab character }
   NewLine        = 10 ;                { ASCII new line character }
   FormFeed       = 12 ;                { ASCII form-feed character }
   CarriageReturn = 13 ;                { ASCII carriage-return character }
   BackSlash      = 92 ;                { ASCII  back-slash character }

   { constants used by the option-handler, module 3 }

   Level0         = 0 ;                 { conform to ISO 7185, level 0 }

==== ercs07/emas-2900/f77io1.txt ====
   !Modified   5/ 3/82   11.30





!**********************************************************************!
!**********************************************************************!
     !                                                         !
     !                                                         !
     !   This  Module  is  designed  to  provide  I/0  support !
     !                                                         !
     !                for  FORTRAN77  Programs                 !
     !                                                         !
     !                 on  ICL  PERQ  Machines                 !
     !                                                         !
     !                                                         !
!**********************************************************************!
!**********************************************************************!
                                    !
                                    ! compile either PARM(STACK,NOCHECK)

==== ercs07/emas-2900/pddemo_impsup0.txt ====
module impsup;
exports

procedure dummsup;
procedure printfl(val,place:long);

private
imports f77init from f77init;

procedure dummsup;
begin
end;

procedure printfl;
begin
write(curout^,val:shrink(place)+1);
end. { printfl }

==== ercs07/emas-2900/pt_iotest9.txt ====
PROGRAM TESTIP(INPUT,OUTPUT);
VAR N:INTEGER;
BEGIN
WHILE NOT EOF DO
  BEGIN
  WRITELN(INPUT^);
  GET(INPUT)
  END;
END.

==== ercs07/emas-2900/strans_initfr.txt ====
    
      SUBROUTINE INIT   
    
      INTEGER  INPTR
      INTEGER  OUTPTR   
      INTEGER  INMAX
      INTEGER  MAXTAB   
      INTEGER  MAXLIN   
      INTEGER  IFMAX
      INTEGER  MAXLEV   
      INTEGER  LINENO   
      INTEGER  PAGE 
      INTEGER  CLINE
      INTEGER  TLIMIT   
      INTEGER  LN   
      INTEGER  I, J, K  
      INTEGER  II, JJ, KK   
      INTEGER  LEXVAL   
      INTEGER  SLEN 
      INTEGER  LEVEL
      INTEGER  LEN  

==== ercs07/emas-2900/slogos_regapbfs.txt ====
      'HEAD' REGISTER MANAGEMENT
C     EDIT DATE   10DEC78  20:16
C     SOURCE FILE REGAPB.FS
C     AUTHOR      A.P. BUCHALTER
C     CLUSTER     20
      'OUTFILE'   OREGAPB.FR
C     EDIT DATE   10DEC78  20:16
C     SOURCE FILE REGAPB.FS
C     AUTHOR      A.P. BUCHALTER
N     OVERLAY     OLREG
C     ROUTINES TO KEEP TRACK OF REGISTER CONTENTS
      SUBROUTINE OREGS(FUNC, OPND, OTYPE, SUBSC, STYPE, BIAS, REG)
      INTEGER     FUNC, OPND, OTYPE, SUBSC, STYPE, BIAS, REG
      'INCLUDE'   NLISTCFTM.IN,
      'INCLUDE'   LOGOSAJH.IN,
      'INCLUDE'   RMCOMJHP.IN,
      'INCLUDE'   WFLAGSJHP.IN,
      'INCLUDE'   REGSJHP.IN,
      INTEGER     MODE, SBIAS, DBIAS
      INTEGER     REGLO,  REGHI
      LOGICAL     NLTEST

==== ercs07/emas-2900/mixedsrce_stringtst.txt ====
PROGRAM STRINGTEST(OUTPUT);
CONST BVDESC=402653190;
TYPE STR10=PACKED ARRAY[1..10] OF CHAR;
     PSTR10=^STR10;
VAR PNTSTR:PSTR10;
PROCEDURE PASSTR(I:INTEGER;AD:PSTR10;INT:INTEGER);EXTERN;
BEGIN
NEW(PNTSTR);
WRITELN('PASSING STRING AND INTEGER');
PNTSTR^:=' 123456789';
PNTSTR^[1]:=CHR(4);
PASSTR(BVDESC,PNTSTR,100);
WRITELN('DID IT WORK');
WRITELN(' NEW STRING IS ',PNTSTR^);
END.

==== ercs07/emas-2900/pptecodes_test3a.txt ====
Einitialise 
Enextproc  1
Enextproc  2
Enextproc  3
Eproc ONE    2    1    4
 Elinestart ++++++++++++++++++++++    5
 Elinestart ++++++++++++++++++++++    6
EXname  p_wrst    4    0    0
Eprecall     4
Estkaddr   Gst     + 0      4    OUTPUT
Eop    PUSHVAL
 0 0 0
Estack:
 1:AddrDir       Gst     +    0  size: 4
Estkconst         8
Eop    PUSHVAL
 0 0 0
Estack:
 1:DirVal        Consts  +   56  size: 8
Estklit        8
Eop    PUSHVAL

==== ercs07/emas-2900/slogof_nlvalafr.txt ====
    
      SUBROUTINE  NLVAL (INDEX, VALUE, MASK)
      INTEGER     INDEX, VALUE, MASK
    
      INTEGER     NLIST (500)   
      INTEGER     NLOC  (500)   
      INTEGER     NTEXT (1500)  
      INTEGER     NTEXTX (500)  
      COMMON   /NARAY/  NLIST   
      COMMON   /NARAY/  NLOC
      COMMON   /NARAY/  NTEXT   
      COMMON   /NARAY/  NTEXTX  
      IF (INDEX .NE. 0) NLIST (INDEX) = IOR (IAND (NLIST (INDEX), NOT (M
     1ASK) ), VALUE)
      RETURN
      END   

==== ercs07/emas-2900/slogof_olistafr.txt ====
    
      SUBROUTINE  OLIST (FUNC, ARG1, ARG2)  
      INTEGER     FUNC, ARG1, ARG2  
      INTEGER     CONST (2), LISTA (2), LISTX (3), LISTY (3)
      INTEGER     FCEND (2), RREF (2)   
      INTEGER     CLOCN, NLOPS  
      EXTERNAL    CLOCN, NLOPS  
    
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      INTEGER     NEXT,   NUMBER, I,      IOTYPE
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT
      INTEGER ICLP05
      LOGICAL     ENDOK,CONEND  
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG   

==== ercs07/emas-2900/npc1_pfinterf.txt ====

{+doc 5.1}

procedure SetRepresentationFor(TheType: TypEntry);
  extern;

procedure AdjustRepresentationFor(TheType: TypEntry);
  extern;

{+doc 5.2.1}

procedure OpenStackFrame;
  extern;

procedure CloseStackFrame;
  extern;

procedure SaveStackFrame;
  extern;

procedure ReclaimStackFrame;

==== ercs07/emas-2900/pascalsce_ctobey1.txt ====
LINK
CTPASCALX_ICL9CENCODE
CTPASCALX_ICL9CESERV
CTPASCALX_COMPILE4
CTPASCALX_ICL9LPCTET
CTPASCALX_CTSYSIF2
CTPASCALX_ICL9LPEHMTM
CTPASCALX_JCLPR4
CTPASCALX_ICL9LPLIBNC
CTPASCALX_MYLPUT
CTPASCALX_MYOMFOUT
CTPASCALX_SFLCTM2
CTPASCALX_SFLGENERAL
.END
CTPASCAL5
MODIFY CTPASCAL5
REDIRECT
S#GIVELPUTITEMS,PAGIVELPUTITEMS
S#INITLPUT,PAINITLPUT
S#OMFOUT,PAOMFOUT
.END

==== ercs07/emas-2900/npc1_pfdiags.txt ====
procedure FlowPoint(SourceLine: Scalar);
  extern;

procedure ISerialise(Id: IdEntry);
  extern;

procedure TSerialise(Typ: TypEntry);
  extern;

procedure FileScope(BlockId: IdEntry);
  extern;

procedure InitDiagnostics;
  extern;

procedure FileStdTypes;
  extern;

procedure EndDiagnostics;
  extern;

==== ercs07/emas-2900/pascalsce_ctobey2.txt ====
CLINK
CTPASCALX_SFLFORCT
CTPASCALX_CTSUP13
CTPASCALX_CTPASCAL5
.END
PSCLCMP2013
MODIFY PSCLCMP2013
SATISFY REFS
.ALL
SATISFY DATA
.ALL
SUPPRESS
.ALL
RETAIN
PASCAL,PACSM
SUPPRESS DATA
.ALL
CLOSE
LIST T#MODLIST
ANALYSE PSCLCMP2013,*
COPY PSCLCMP2013,CTPASCALX_PSCLCMP2013

==== ercs07/emas-2900/slogof_gdictafr.txt ====
    
      INTEGER FUNCTION GDICT (INDEX)
    
      INTEGER  AREAID (15), BCARD (41)  
      INTEGER  RWORD1, RWORD2, RWORD3, RWORD (3)
      INTEGER  BTYPE
      INTEGER  EXTDX, ERRFLG
      INTEGER  NEWLCI   
      INTEGER  OFFSET, OW   
      INTEGER  RBITS, RCT   
      INTEGER  TWI  
      INTEGER  WF   
      COMMON   /OBJCOM/ AREAID, BCARD, RWORD
      COMMON   /OBJCOM/ BTYPE   
      COMMON   /OBJCOM/ EXTDX   
      COMMON   /OBJCOM/ OFFSET, OW  
      COMMON   /OBJCOM/ RBITS   
      COMMON   /OBJCOM/ TWI 
      COMMON   /OBJCOM/ WF  
      EQUIVALENCE (RWORD1, RWORD (1))   
      EQUIVALENCE (RWORD2, RWORD (2))   

==== ercs07/emas-2900/helpsa20_bctamplt15.txt ====
AREA(2)
ALTER(15,X04,X02)

==== ercs07/emas-2900/inpds_questsin.txt ====
C     EDIT DATE   08MAY78  17:45
C     SOURCE FILE QUESTSGAK.IN
C     AUTHOR      GARY A. KUDIS
C     QUESTIONS ASKED OF USER
      INTEGER     CMQUES (10)
      INTEGER     OBQUES (10)
      INTEGER     MPQUES (10)
      INTEGER     ANSWER (14)
      COMMON      /QUESTS/ CMQUES
      COMMON      /QUESTS/ OBQUES
      COMMON      /QUESTS/ MPQUES
      COMMON      /QUESTS/ ANSWER


==== ercs07/emas-2900/pptests_test3a.txt ====
program test3(output);
var g1:integer;

procedure one(procedure a);
begin
writeln('proc one');
a;
end;

procedure two(procedure b);
begin
writeln('proc two');
one(b);
end;

procedure three;
begin
writeln('proc three');
g1:=3;
end;


==== ercs07/emas-2900/oldqfiles_f77rmess1.txt ====
%EXTERNALROUTINE QRMESS (%INTEGER ERRNO, %INTEGERNAME FLAG, LEN, %STRINGNAME STR)
   ! ERRNO - ERROR NUMBER
   ! FLAG  - PASSED AS -1 IF ERROR NUMBER OUT OF RANGE, ELSE PASSED AS 0
   ! LEN   - LENGTH OF ERROR MESSAGE RETURNED
   ! STR   - ERROR MESSAGE STRING RETURNED
   %SWITCH MESS1 (1:75)
   %SWITCH MESS2 (101:200)
   %SWITCH MESS3 (401:424)
   %IF 1 <= ERRNO <= 9 %OR 50 <= ERRNO <= 75 %THEN -> MESS1(ERRNO)
   %IF 101 <= ERRNO <= 200 %THEN -> MESS2(ERRNO)
   %IF 401 <= ERRNO <= 424 %THEN -> MESS3(ERRNO)
   FLAG = -1
   %RETURN
   MESS1(1): STR = "Real overflow"     ; -> END
   MESS1(2): STR = "Real underflow"     ; -> END
   MESS1(3): STR = "Integer overflow"     ; -> END
   MESS1(4): STR = "Decimal overflow"     ; -> END
   MESS1(5): STR = "Zero divide"     ; -> END
   MESS1(6): STR = "Array bounds exceeded"     ; -> END
   MESS1(7): STR = "Capacity exceeded"     ; -> END
   MESS1(8): STR = "Illegal operation"     ; -> END

==== ercs07/emas-2900/sforf_putbakf.txt ====
      SUBROUTINE PUTBAK (ICHAR)
      INTEGER  INPTR
      INTEGER  OUTPTR
      INTEGER  INMAX
      INTEGER  MAXTAB
      INTEGER  MAXLIN
      INTEGER  IFMAX
      INTEGER  MAXLEV
      INTEGER  LINENO
      INTEGER  PAGE
      INTEGER  CLINE
      INTEGER  TLIMIT
      INTEGER  LN
      INTEGER  I, J, K
      INTEGER  II, JJ, KK
      INTEGER  LEXVAL
      INTEGER  SLEN
      INTEGER  LEVEL
      INTEGER  LEN
      INTEGER  INCHAN
      INTEGER  OUTCHN

==== ercs07/emas-2900/oldqfiles_f77rmess2.txt ====
! UPDATED 24/03/82 - STRING ADDRESS PASSED TO QRMESS INSTEAD OF STRING NAME
!*
%EXTERNALROUTINE QRMESS (%INTEGER ERRNO, %INTEGERNAME FLAG, LEN, %INTEGER STRADDR)
   ! ERRNO - ERROR NUMBER
   ! FLAG  - PASSED AS -1 IF ERROR NUMBER OUT OF RANGE, ELSE PASSED AS 0
   ! LEN   - LENGTH OF ERROR MESSAGE RETURNED
   ! STR   - ERROR MESSAGE STRING RETURNED
   %SWITCH MESS1 (1:75)
   %SWITCH MESS2 (101:200)
  %STRINGNAME STR
   %SWITCH MESS3 (401:424)
  STR==STRING(STRADDR)
   %IF 1 <= ERRNO <= 9 %OR 50 <= ERRNO <= 75 %THEN -> MESS1(ERRNO)
   %IF 101 <= ERRNO <= 200 %THEN -> MESS2(ERRNO)
   %IF 401 <= ERRNO <= 424 %THEN -> MESS3(ERRNO)
   FLAG = -1
   %RETURN
   MESS1(1): STR = "Real overflow"     ; -> END
   MESS1(2): STR = "Real underflow"     ; -> END
   MESS1(3): STR = "Integer overflow"     ; -> END
   MESS1(4): STR = "Decimal overflow"     ; -> END

==== ercs07/emas-2900/slogos_lexftmfs.txt ====
'HEAD'  LEXICAL PROCESSING
C     EDIT DATE   14JAN79  09:26
C     SOURCE FILE LEXFTM.FS
C     AUTHOR      A. J. HOWARD
C     CLUSTER     14
      'OUTFILE'   ADVANFTM.FR
C
C     GET NEXT OPERAND-OPERATOR PAIR FROM INPUT STREAM
C
      SUBROUTINE  ADVAN
      EXTERNAL    OLQOT
      INTEGER     ENTNUM, SOPLST, SNMLST   // EXTERNAL FUNCTIONS
      'INCLUDE'   LOGOSAJH.IN,
      'INCLUDE'   SRCDFSFTM.IN,
      'INCLUDE'   OPERSAJH.IN,
      'INCLUDE'   STKDFA.IN,
      'INCLUDE'   STUFFAJH.IN,
      'INCLUDE'   NLNAMEFTM.IN,
      CALL CLRSTK (OPX)
      'IF' (STUFFO .NE. 0)
         NEXTOP = STUFFO

==== ercs07/emas-2900/oldqfiles_dctl8.txt ====
{ Updated 24/03/82 - tracing }

module  f77dctl;
exports
imports filedefs from filedefs;

procedure ndiag(raiseap,dumpc,err,extra:fsbit16);
procedure ssmess(i:integer);

function loadss:fsbit16;
function loadap:fsbit16;
procedure diags(raiseap,es,er,pstart,pend:fsbit16);

private

imports f77init from f77init;
imports f77idiag from f77idiag;
imports f77fdiag from f77fdiag;
imports f77rmess from f77rmess;
imports F77QCODE from F77QCODE;


==== ercs07/emas-2900/oldqfiles_f77rmess3.txt ====
!Updated 29/03/82 - Imp run time faults added (Alan).
! UPDATED 24/03/82 - STRING ADDRESS PASSED TO QRMESS INSTEAD OF STRING NAME
!*
%EXTERNALROUTINE QRMESS (%INTEGER ERRNO, %INTEGERNAME FLAG, LEN, %INTEGER STRADDR)
   ! ERRNO - ERROR NUMBER
   ! FLAG  - PASSED AS -1 IF ERROR NUMBER OUT OF RANGE, ELSE PASSED AS 0
   ! LEN   - LENGTH OF ERROR MESSAGE RETURNED
   ! STR   - ERROR MESSAGE STRING RETURNED
   %SWITCH MESS1 (1:75)
   %SWITCH MESS2 (101:200)
  %STRINGNAME STR
   %SWITCH MESS3 (401:424)
  STR==STRING(STRADDR)
   %IF 1 <= ERRNO <= 9 %OR 50 <= ERRNO <= 75 %THEN -> MESS1(ERRNO)
   %IF 101 <= ERRNO <= 200 %THEN -> MESS2(ERRNO)
   %IF 401 <= ERRNO <= 424 %THEN -> MESS3(ERRNO)


    { IMP run time faults }

   %if errno = 2049 %then str = "Unnassigned Variable"   ; ->end

==== ercs07/emas-2900/slogosorg_genajhfs.txt ====
'HEAD'  INTERFACE TO CODE GENERATION
C     EDIT DATE   05FEB79  16:57
C     SOURCE FILE GENAJH.FS
C     AUTHOR      A. J. HOWARD
C     CLUSTER     19
      'OUTFILE'   GENDATA.FR
      BLOCK DATA
      'INCLUDE'   GENCOMAJH.IN,P
      DATA  BCC   / 144/   // 090
      DATA  BNE   / 208/   // 0D0
      DATA  CLC   /  24/   // 018
      DATA  JMP   /  76/   // 04C
      DATA  LDAABS/ 173/   // 0AD
      DATA  LDAI  / 169/   // 0A9
      DATA  LDAZP / 165/   // 0A5
      DATA  SBCI  / 233/   // 0E9
      DATA  SEC   /  56/   // 038
      DATA  STAZP / 133/   // 085
      DATA  TAX   / 170/   // 0AA
      DATA  TXA   / 138/   // 08A
      DATA  LOW   / 1/

==== ercs07/emas-2900/inpds_pshcomin.txt ====
C     EDIT DATE   14APR78  10:21
C     SOURCE FILE PSHCOMFTM.IN
C     AUTHOR      F. T. MICKEY
C     CLUSTER     X
      INTEGER  PSTACK (12)
      INTEGER  PX
      INTEGER  PEND
      COMMON   /PPCOM/  PSTACK
      COMMON   /PPCOM/  PX
      COMMON   /PPCOM/  PEND


==== ercs07/emas-2900/slogof_bracedfr.txt ====
 
      BLOCK DATA 
 
      INTEGER     BRACEX, SELX,    LSX,     SELXB 
      INTEGER     FUNCNT, FSCNT,   FRCNT,   FUNVAL 
      INTEGER     NRFLS,  ARGSIZ,  PARCNT 
      INTEGER     BSTACK (10), SUBENT (40) 
      INTEGER     FLS (6),     PARSAV,      FLSAVE (6) 
      INTEGER     WHSTRT (30), WHLOW (10), WHHIGH (10) 
      INTEGER     LOOPT  (10), LOOPE (10),  LOOPF (10) 
      COMMON   /BRACE/  BRACEX, SELX,   LSX,    SELXB 
      COMMON   /BRACE/  FUNCNT, FSCNT,  FRCNT,  FUNVAL 
      COMMON   /BRACE/  NRFLS,  ARGSIZ, PARCNT 
      COMMON   /BRACE/  WHSTRT, BSTACK, SUBENT 
      COMMON   /BRACE/  FLS,    PARSAV, FLSAVE 
      EQUIVALENCE (WHSTRT, LOOPT) 
      EQUIVALENCE (WHLOW,  LOOPE, WHSTRT (11)) 
      EQUIVALENCE (WHHIGH, LOOPF, WHSTRT (21)) 
      DATA  BRACEX   /1/ 
      DATA  SELX     /1/ 
      DATA  LSX      /2/ , WHSTRT   /30*0/ 

==== ercs07/emas-2900/oldqfiles_f77rmess4.txt ====
!Updated 29/03/82 - Imp run time faults added (Alan).
! UPDATED 24/03/82 - STRING ADDRESS PASSED TO QRMESS INSTEAD OF STRING NAME
!*
%EXTERNALROUTINE QRMESS (%INTEGER ERRNO, %INTEGERNAME FLAG, LEN, %INTEGER STRADDR)
   ! ERRNO - ERROR NUMBER
   ! FLAG  - PASSED AS -1 IF ERROR NUMBER OUT OF RANGE, ELSE PASSED AS 0
   ! LEN   - LENGTH OF ERROR MESSAGE RETURNED
   ! STR   - ERROR MESSAGE STRING RETURNED
   %SWITCH MESS1 (1:75)
   %SWITCH MESS2 (101:200)
  %STRINGNAME STR
   %SWITCH MESS3 (401:424)
  STR==STRING(STRADDR)
   %IF 1 <= ERRNO <= 9 %OR 50 <= ERRNO <= 75 %THEN -> MESS1(ERRNO)
   %IF 101 <= ERRNO <= 200 %THEN -> MESS2(ERRNO)
   %IF 401 <= ERRNO <= 424 %THEN -> MESS3(ERRNO)


    { IMP run time faults }

   %if errno = 2049 %then str = "Unnassigned Variable"   %AND  ->end

==== ercs07/emas-2900/inpds_stkdffin.txt ====
C     EDIT DATE   03DEC78  12:13
C     SOURCE FILE STKDEFF.IN
C     AUTHOR      A. J. HOWARD
      INTEGER     SUBXB (20),  WFOP (20),   WFOPND (20)
      INTEGER     SUBOP (20),  WFSOP (20)
      EQUIVALENCE (STK (1,  6), SUBXB  (1))
      EQUIVALENCE (STK (1, 10), WFOP   (1))
      EQUIVALENCE (STK (1, 11), WFOPND (1))
      EQUIVALENCE (STK (1, 12), SUBOP  (1))
      EQUIVALENCE (STK (1, 13), WFSOP  (1))


==== ercs07/emas-2900/pptecodes_test4a.txt ====
Einitialise 
Enextproc  1
Enextproc  2
Eproc ONE    2    2   16
 Elinestart ++++++++++++++++++++++    5
 Elinestart ++++++++++++++++++++++    6
Estkpar    2 4      4    U
Estkpar    2 12      4    A
Erefer    0      4
Eop    EADDRESS
 0 0 0
Estack:
 2:IndDirVal     Stack   +   76  size: 4
 1:DirVal        Stack   +   68  size: 4
Estkpar    2 0      4    L
Estkpar    2 0      4    L
Eop    ISUB
 0 0 0
Estack:
 4:DirVal        Stack   +   64  size: 4
 3:DirVal        Stack   +   64  size: 4

==== ercs07/emas-2900/pffiles_source.txt ====
procedure Error(Code: ErrorSpan; Position: TextPosition);
  extern;

procedure StartError(Position: TextPosition);
  extern;

procedure WarningError(Code: Scalar);
  extern;

procedure PragmaticError(Code: Scalar);
  extern;

procedure SystemError(Code: Scalar);
  extern;

procedure FatalError(Code: Scalar);
  extern;

procedure ReportId(Id, BlockId: IdEntry);
  extern;


==== ercs07/emas-2900/slogof_mgenajfr.txt ====
 
      SUBROUTINE  MGEN 
 
      INTEGER  NI,     NJ,     NK 
      INTEGER  NSIZE 
      INTEGER  NLX,    FNLX,   REMNLX, OVNLX,  TNAME 
      INTEGER  NLSTRT, NLSTOP, NLSIZE, SRCHST 
      INTEGER  NTSTRT 
      INTEGER  NTSTOP 
      INTEGER  NTSIZE 
      INTEGER  PARFLG 
      INTEGER  SPARFL 
      INTEGER  NLWRDS 
      INTEGER  TX 
      INTEGER  NLENO 
      INTEGER  STDMD 
      INTEGER  MSHIFT 
      INTEGER  REGCNT 
      INTEGER  NULLX 
      INTEGER  STPTRX 
      INTEGER  SPMODE 

==== ercs07/emas-2900/qfiles5apr_dctl8.txt ====
{ Updated 24/03/82 - tracing }

module  f77dctl;
exports
imports filedefs from filedefs;

procedure ndiag(raiseap,dumpc,err,extra:fsbit16);
procedure ssmess(i:integer);

function loadss:fsbit16;
function loadap:fsbit16;
procedure diags(raiseap,es,er,pstart,pend:fsbit16);

private

imports f77init from f77init;
imports f77idiag from f77idiag;
imports f77fdiag from f77fdiag;
imports f77rmess from f77rmess;
imports F77QCODE from F77QCODE;


==== ercs07/emas-2900/opeh4.txt ====
! PASCAL OPEH ROUTINES RELEASE 4
! Mike Brown
! RELEASE 2 - February 1981
! RELEASE 3 - DOES NOT EXIST AS ROSEMARYS AND MY NUMBERING GOT OUT OF PHASE
! RELEASE 4 - NOVEMBER 1981
!
%SYSTEMROUTINESPEC DUMP (%INTEGER S, F)
%SYSTEMROUTINESPEC NCODE (%INTEGER S, F, A)
%SYSTEMROUTINESPEC NDIAG (%INTEGER PCOUNT, LNB, FAULT, INF)
%EXTRINSICBYTEINTEGER FLAGABORT
%EXTRINSICINTEGER LOOPCOUNT
!
%CONSTBYTEINTEGERARRAY HEX (0:15) = %C
   '0', '1', '2', '3', '4', '5', '6', '7', %C
   '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'
!
%ROUTINE PHEX (%INTEGER VALUE, PLACES)
   %INTEGER Z
   %CYCLE Z = PLACES << 2 - 4, -4, 0
      PRINTSYMBOL(HEX(VALUE >> Z & 15))
   %REPEAT

==== ercs07/emas-2900/npc2_generator.txt ====
{

                      MODULE 12


                   Code Generator Overview





 The code generator transforms the set of code-generation interface
 calls  made  during  program  analyis  into a code-byte stream for
 direct execution on the P-machine. This transformation is achieved
 by  simulating  all  operations  defined   at interface level on a
 compile-time evaluation stack, and delaying actual   code  genera-
 tion   until  the  context  of an expression or reference is fully
 known. Such a 'delayed' code-generation strategy  is  both  useful
 for  a wide variety of target machine architectures, and necessary
 for the implementation of the more complex runtime checks.


==== ercs07/emas-2900/slinksorg_bitdfnin.txt ====
C     EDIT DATE   01JUN78  22:23
C     SOURCE FILE BITDFNGAK.IN
C     AUTHOR      GARY A. KUDIS
C     BIT DEFINITIONS
C
C     BIT00 IS THE LEAST SIGNIFICANT; BIT15 IS MOST SIGNIFICANT.
C
      INTEGER     BITS (16)
      INTEGER     BIT00,BIT01,BIT02,BIT03,BIT04,BIT05,BIT06,BIT07
      INTEGER     BIT08,BIT09,BIT10,BIT11,BIT12,BIT13,BIT14,BIT15
      EQUIVALENCE (BITS(1),BIT00),(BITS(2),BIT01),(BITS(3),BIT02)
      EQUIVALENCE (BITS(4),BIT03),(BITS(5),BIT04),(BITS(6),BIT05)
      EQUIVALENCE (BITS(7),BIT06),(BITS(8),BIT07),(BITS(9),BIT08)
      EQUIVALENCE (BITS(10),BIT09),(BITS(11),BIT10)
      EQUIVALENCE (BITS(12),BIT11),(BITS(13),BIT12)
      EQUIVALENCE (BITS(14),BIT13),(BITS(15),BIT14)
      EQUIVALENCE (BITS(16),BIT15)
      INTEGER     BIT, BITNO
      COMMON      /BITDFN/ BITS
      COMMON      /BITDFN/ BIT, BITNO


==== ercs07/emas-2900/pcfiles_semantics5.txt ====
{

 History
 -------

 11/09/85 - change call of FutureBlocklabel in CreateId
 08/10/85 - modified to fix dispose error and initialise 
            FormalScope.                                 (agh)
 15/10/85 - initialise InputSpelling and OutputSpelling. (agh)
 16/10/85 - history tidied.                              (agh)
 18/10/85 - modify MostLikelyOf for better error recovery. (agh)
 25/10/85 - initialise FSpace field of IdRecord with DftSpace. (agh)
 25/11/85 - Modify WithSchema to pass WordIndex parameter. (agh)
 01/12/85 - Add error code to call of RangeCheck. (agh)
 04/12/85 - Change spec of WithSchema. (agh)
 12/12/85 - Complete initialisation of FileType and NaturalType.
            (agh)
----------------------------------------------------------------------
 12/02/86 - Remove call of FutureBlockLabel from CreateId and call in
	    EnterProcFunc


==== ercs07/emas-2900/pptests_test4a.txt ====
program test4(output);
var a1:array[2..10,1..5] of integer;

procedure one(var a:array[l..u:integer]of integer);
begin
a[l]:=u;
a[u]:=l;
writeln(a[l],a[u]);
end;

procedure two(var b:array[l1..u1:integer;l2..u2:integer]of integer);
begin
one(b[l1]);
end;

begin
two(a1);
writeln(a1[2,1],a1[2,5])
end.

==== ercs07/emas-2900/dsea20_coedlnifch.txt ====
T/CONST/
TS/STARTOFGLOBALSPACE/ R/100/6/ T+1 P+1
TS/GLOBALLNBDESCOFFSET/ R/60/4/ T+1 R/64/0/ T+1 P+1
T/TYPE/
TS/STDPROCFUNCS =/ TS/DATEP,/ R/P,TIME/ANDTIME/
TS/SUPPORTTASK =/ TS/READDATE/
R/READDATE,READTIME/SETDATEANDTIMEVARS/
T/VAR/
TS/TIMEPIECE :/ P+2
T/PROCEDURE REFORMNAME (/
P/FUNCTION/
T/PROCEDURE INITCODEGENERATION ;/
TS/CURRENTLINE := 1/ P+1
TS/TIMEPIECE[/ PS/WHICHMODE/
T/PROCEDURE OPENSUPPORTTASKCONTROL/
TC/[PROGPRELUDE]/ TS/WORDSPASSED/ R/10/8/
TC/[OPENFILE]/ TS/WORDSPASSED/ R/14/20/
TC/[READTIME]/ R/READTIME/SETDATEANDTIMEVARS/
TS/WORDSPASSED/ R/5/9/
TS/EXTCALL/ R/TIME    /DATETIME/
TC/[READDATE]/ PC/[HALTSYSTEM]/

==== ercs07/emas-2900/qfiles_intrin3.txt ====
module f77intrin;
exports

imports complexfunctions from complexfunctions;
function floatlong(arg:long):real;
function trunclong(arg:real):long;
function roundlong(arg:real):long;
function f77sqrt(var x,dum:real):real;
function f77exp(var x,dum:real):real;
function f77log(var x,dum:real):real;
function f77log10(var x,dum:real):real;
function f77sin(var x,dum:real):real;
function f77cos(var x,dum:real):real;
function f77tan(var x,dum:real):real;
function f77asin(var x,dum:real):real;
function f77acos(var x,dum:real):real;
function f77atan(var x,dum:real):real;
function f77atan2(var x,dum1,y,dum2:real):real;
function f77sinh(var x,dum:real):real;
function f77cosh(var x,dum:real):real;
function f77tanh(var x,dum:real):real;

==== ercs07/emas-2900/rel10opt_op145.txt ====
! 31/10/84 - set NEWBLFLAG=1 at SWTR(IOSPEC)
! 08/10/84 - remove call to GENBLOCK
! 19/07/84 - GENBLOCK  corrected to insert a new label in 1st triad
!            of new block if required
!          - LPPTR now deals with LEBs for multiple loops
! 02/07/84 - at SWTR(ASMT) set USE bit for opd2 before DEF bit for opd1
!            set NEWBLFLAFG in IOSPEC switch
! 02/04/84 - new code in BLOCKS to deal with list-directed I/O
! 31/01/84 - UPDATE SETUSE FOR DCMPLX & INTRIN
! 31/01/84 - NEW TRIADS DCMPLX, INTRIN, (IFUN)
! 17/01/84 - REMAP ON TO A TABLE IF ITS FULL ROUTINE HAS BEEN CALLED
! 12/01/84 - MAKE BIT STRIP ADDRESSES RELATIVE IN A BLOCK ENTRY
! 31/10/83 COPIED FROM ERCS06.REL8002_OP1B15
!*
%INCLUDE "host_host"
!*
%INCLUDE "targ_target"
!*
!%INCLUDE "pf_version"
!*
%INCLUDE "bits_fmts"

==== ercs07/emas-2900/qfiles_intrin4.txt ====
module f77intrin;

{ updated 27/4/82 - parameters to f77power, f77pwri changed }

exports

imports complexfunctions from complexfunctions;
function floatlong(arg:long):real;
function trunclong(arg:real):long;
function roundlong(arg:real):long;
function f77sqrt(var x,dum:real):real;
function f77exp(var x,dum:real):real;
function f77log(var x,dum:real):real;
function f77log10(var x,dum:real):real;
function f77sin(var x,dum:real):real;
function f77cos(var x,dum:real):real;
function f77tan(var x,dum:real):real;
function f77asin(var x,dum:real):real;
function f77acos(var x,dum:real):real;
function f77atan(var x,dum:real):real;
function f77atan2(var x,dum1,y,dum2:real):real;

==== ercs07/emas-2900/culhamsce_librips.txt ====
%BEGIN
%CONTROL 0
!    COMPILE TIME  19 ETU
!
!
!    ROUTINE SPECIFICATIONS
!
%EXTERNALROUTINESPEC OPENSQ(%INTEGER M)
%ROUTINESPEC INITIALISE PROFILES
%ROUTINESPEC INITIALISE VARIABLES                                       00000550
%ROUTINESPEC NEXTREC (%INTEGERNAME NO, %INTEGERARRAYNAME ANUM)
%ROUTINESPEC BULLETIN OUTPUT (%INTEGER NO, %INTEGERARRAYNAME ANUM)
%ROUTINESPEC SDICUMUL OUTPUT(%INTEGER NUM)
%ROUTINESPEC CHECK FAILURE (%INTEGER CHECKNO, %INTEGERNAME A1,A2)
%ROUTINESPEC SET (%BYTEINTEGERARRAYNAME A, %INTEGER START,END,VAL)
%INTEGERFNSPEC CONV(%BYTEINTEGERARRAYNAME A,%INTEGER IA,L)
!
!    ARRAY DECLARATIONS
!
%BYTEINTEGERARRAY IRPROF,PROF2,PROF3 (1:20)      ;! INT REC PROFILE     00001500
!?? ; %INTEGERARRAY IRMARK (1:20)                  ;! INT REC PROF MARKER 00001600

==== ercs07/emas-2900/slogos_faultffs.txt ====
'HEAD'  ERROR PROCESSING
C     EDIT DATE   18JAN79  21:02
C     SOURCE FILE FAULTFTM.FS
C     AUTHOR      F. T. MICKEY
C     CLUSTER     25
      'OUTFILE'   FAULTPFTM.FR
      SUBROUTINE  FAULTP (FAULT)
      'INCLUDE'   CTRLAJH.IN,
      'INCLUDE'   FAULTSFTM.IN,P
      INTEGER     FAULT
      EXTERNAL    OLFLT
      'IF' (CTLUSE .NE. 0)
         CTLERR = FAULT
         'ELSE'
         FLTNR = FAULT
C         CALL OVLOD (OLFLT)
         CALL OFAULT
         EXFLT = 0
         'ENDIF'
      RETURN
      END

==== ercs07/emas-2900/mixedsrce1_iproctesta.txt ====
%BEGIN
%PROCEDURE ADDINT(I,NO);
%VALUE I;%INTEGER I,NO;
%EXTERNAL ADDINT;
%INTEGER NUM;
PRINTSTRING(<CALLING_ADDINT>);
NEWLINE;
ADDINT(20,NUM);
PRINTSTRING(<NUM=>);
PRINT(NUM,4,0);
NEWLINE;
PRINTSTRING(<DID_IT_WORK>);
NEWLINE;
%END;

==== ercs07/emas-2900/slinks_rblistyl.txt ====
LINK
SLINKY_LISTRBY
SLINKY_FMTRBGY
SLINKY_LLOGICY
SLINKY_GCHARY
SLINKY_PCHARY
SLINKY_MOVEY
SLINKY_SETY
SLINKY_ORANGEY
SLINKY_ESPJHPY
SLINKY_ESTJHPY
SLINKY_EHXJHPY
SLINKY_ERRORGY
SLINKY_GRCORDY
SLINKY_ERRDFNY
SLINKY_IODEFNY
SLINKY_IOFILEY
SLINKY_LDATAXY
SLINKY_RECORDY
SLINKY_CHARACY
SLINKY_NTABLEY

==== ercs07/emas-2900/dsea20_lnedifch.txt ====
T/(*T-/ P+1
T/CONST/
TS/GLOBALAREAMINLENWD/ R/100/6/
TS/UCCONST/ R/E,*/Ee,*/
T/TYPE/ TS/GLOBALAREA =/ TS/JUNKA/ R/59/3/ TS/BASELNBAD/ D/  ;/ T+1 PS/END/
TS/UC =/ A/POINT,// P.E T+1 P-1 R/UC = (/      / P./UCEXPON/
R/EXPON/LETTERE, UCSMALLLETTERE/
T/VAR/ TC/POSTMORTEM/ T+1 D/  /
T/PROCEDURE ICL9LPLONGISB (/
I$PROCEDURE ICL9LPMASKUFLOW ;
 
  EXTERN ;
 
 
$
T/PROCEDURE  ICL9LPPMDMPSPACE/ TS/GLOBALBASEAD/
P-1 B/F// P.E I/GLOBALBASEAD,/ T+1
P-1 B/F// P.E I/HEAPBASEAD,/ T+1
P-1 B/F// P.E I/HEAPLASTUSEDAD : ADDRESS;/ T+1 P+1 TS/ARRAY/ D/    /
T/PROCEDURE  ICL9LPFILEDECL (/ R/BALFA8/ALFA/
T/PROCEDURE  INITCTLISTFILE ;/ TS/BEGIN/

==== ercs07/emas-2900/r1_comp17.txt ====
{13/05/82 14:30 increase workseg as below to 32 blocks}
!* modified 13/05/82
{13/05/82   increase size of workseg to 24 blocks and reallocate space         }
{           to allow GENERATE to use a 4 block cycle for triad output          }
!*
!*************************** EXPORTS **********************
!*
%ROUTINESPEC F77COMP(%HALFINTEGER A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,
   %INTEGER INFILE,ERRFILE,OUTFILE,
   %HALFINTEGER BLKS,BITS,ISN,
   %INTEGER MODE,
   %HALFINTEGER NUMIMPORTS,MEMSIZE)
%ROUTINESPEC SOURCE LINE(%INTEGER ABUFF)
%ROUTINESPEC DICFUL
%ROUTINESPEC OUTPUTFUL
%ROUTINESPEC NAMESFUL
%ROUTINESPEC EXTFUL
!*
!********************************************************************
!*
!***********************************************************************

==== ercs07/emas-2900/slinks_dconcatyl.txt ====
LINK
SLINKY_DCONCATY
SLINKY_PCHARY
SLINKY_GCHARY
SLINKY_LLOGICY
SLINKY_ORANGEY
SLINKY_EHXJHPY
SLINKY_ESPJHPY
SLINKY_ESTJHPY
.END
DCONCATYY

==== ercs07/emas-2900/mixedsrce1_iproctest.txt ====
PROGRAM PROCTEST(OUTPUT);
VAR NUM,I:INTEGER;
PROCEDURE ADDINT(VAR I:INTEGER;VAR NO:INTEGER);EXTERN;
BEGIN
WRITELN('CALLING ADDINT');
I:=20;
ADDINT(I,NUM);
WRITELN('NUM=',NUM);
WRITELN('DID IT WORK');
END.

==== ercs07/emas-2900/helpsa20_jclctfrill.txt ====
MACRO JCLCTFRILLS20 IS (
     LITERAL (OMFLIB) %OMFLIB:= "O20",
     LITERAL (DELETE) %DELETE:= 'YES')
MACBEGIN
STRING %DELFILE := %OMFLIB+'.ICL9LPJCLPROCS(-1)'
BEGIN
ADDJCLCTSYN20(%%OMFLIB)
SETUPCTTEMPL20(%%OMFLIB)
IF %DELETE = 'YES' THEN
SMSG('DELETE COMMENCES')
SMSG('***************:')
FI
IF %DELETE = 'YES' THEN ENTER XF(%%DELFILE) FI
END
MACEND

==== ercs07/emas-2900/pptecodes_test5a.txt ====
Einitialise 
Enextproc  1
Enextproc  2
EXname  FIVE    3    0    0
Eproc TEST5    1    0    0
EXname  p_presetf    4    0    0
Eprecall     4
Estkaddr   Gst     + 0      4
Eop    PUSHVAL
 0 0 0
Estack:
 1:AddrDir       Gst     +    0  size: 4
Estklit        1
Eop    PUSHVAL
 0 0 0
Estack:
 1:LitVal            1  size: 4
Ecall        4      2    8
EXname  p_bindf    5    0    0
Eprecall     5
Estkaddr   Gst     + 0      4    OUTPUT

==== ercs07/emas-2900/oldqfiles_f77dctl5.txt ====
{ Updated 15/03/82 - diags modified for recursive entry }
{                    COMMENT facility added             }

module  f77dctl;
exports
imports filedefs from filedefs;

procedure ndiag(raiseap,dumpc,err,extra:fsbit16);
procedure ssmess(i:integer);

function loadss:fsbit16;
function loadap:fsbit16;
procedure diags(raiseap,es,er,pstart,pend:fsbit16);

private

imports f77init from f77init;
imports f77idiag from f77idiag;
imports f77fdiag from f77fdiag;
imports f77rmess from f77rmess;
imports f77qcode from f77qcode;

==== ercs07/emas-2900/qfiles_iof1.txt ====
   !Modified  13/ 4/82   15.30





!**********************************************************************!
!**********************************************************************!
     !                                                         !
     !                                                         !
     !   This  Module  is  designed  to  provide  I/0  support !
     !                                                         !
     !           for  OPEN    CLOSE    INQUIRE                 !
     !                                                         !
     !           and REWIND  ENDFILE  BACKSPACE  statements    !
     !                                                         !
     !                for  FORTRAN77  Programs                 !
     !                                                         !
     !                 on  ICL  PERQ  Machines                 !
     !                                                         !
     !                                                         !

==== ercs07/emas-2900/qfiles_gen10.txt ====
!* MODIFIED 12/04/82
!*************  IMP80 version  ******************
!*
!{2900C}%CONSTINTEGER W2=4
{PERQC}%CONSTINTEGER W2=2
!*
!**** SYNTAX ****
!*
!* Syntax tables generated from file SYNTAX48 on 28/01/82 at 23.55.35
!*
%CONSTBYTEINTEGERARRAY OS(0:1500)=  %C                     
   0,   0,  34,   1,   1,   2,  25,   1,   1,   3,
  10,   7,   2,   3,  29,  61,   0,   1,   1,   0,
  13,   1,   0,   1,   3,  20,   4,   1,   2,   1,
   4,  17,   1,   1,   0,   1,   2,  20,   4,   1,
   1,   1,   3,  17,   0,   1,   2,  87,   0,   1,
   1,   0,   1,   3,  20,   5,   1,   2,   1,   4,
  17,   1,   1,   0,   1,   2,  20,   5,   1,   1,
   1,   3,  17,   0,   1,   2,   1,   3,  17,   1,
   1,   0,   1,   1,   1,   2,  17,   0,  20,   2,
   1,   1,   0,  20,   3,   1,   1,   0,  22,   1,

==== ercs07/emas-2900/oldqfiles_f77dctl6.txt ====
{ Updated 24/03/82 - tracing }

module  f77dctl;
exports
imports filedefs from filedefs;

procedure ndiag(raiseap,dumpc,err,extra:fsbit16);
procedure ssmess(i:integer);

function loadss:fsbit16;
function loadap:fsbit16;
procedure diags(raiseap,es,er,pstart,pend:fsbit16);

private

imports f77init from f77init;
imports f77idiag from f77idiag;
imports f77fdiag from f77fdiag;
imports f77rmess from f77rmess;
imports f77qcode from f77qcode;


==== ercs07/emas-2900/mixedsrce1_iproctestf.txt ====
      PROGRAM PROCTEST
      EXTERNAL ADDINT
      WRITE(6,100)
  100 FORMAT(' CALLING ADDINT')
      CALL ADDINT(20,NUM)
      WRITE(6,200)NUM
  200 FORMAT(' NUM=',I4)
      WRITE(6,300)
  300 FORMAT(' DID IT WORK')
      STOP
      END

==== ercs07/emas-2900/fortsys.txt ====
!__________________________________________________________________________________
!
!    COBOLE COMMAND IS EQUIVALENT TO ICLMACRO COBOLCOMPILE.  IT PASSES
!     THE PARAMETERS ON TO COBCOLCOMPILE, WHICH IS AN ENTRY IN THE
!      COMPILER MODULE, COBOLY.  THIS THEN CALLS ICL9HNCOMPILESUPPORT WHICH
!     PROCESSES THE OPTIONS AND CALLS THE COMPILER VIA A LINK
!      DESCRIPTOR.   AFTER COMPLETION OF THE COMPILATION THE
!     UTILITY  COMF  IS CALLED TO CONVERT THE OMF FILE TO EMAS
!     OBJECT FORMAT, MARKING THE PROGRAM I.D. AS THE MAIN ENTRY.
!
!_____________________________________________________________________________
  
!**********************************************************************
!*
!*                         C O B O L
!*
!*                COMPILER ENVIRONMENT ROUTINES
!*                  AND CTM RUN TIME SUPPORT
!*
!**********************************************************************
!

==== ercs07/emas-2900/slogof_soplstfr.txt ====
    
      INTEGER FUNCTION SOPLST (DUM) 
    
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      INTEGER     NEXT,   NUMBER, I,      IOTYPE
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT
      INTEGER ICLP05
      LOGICAL     ENDOK,CONEND  
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG   
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG  
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV  
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE  
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N   
      COMMON   /LOGOS/  PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE  

==== ercs07/emas-2900/slogosorg_stuffain.txt ====
      INTEGER     STUFFO, STUFFN
      COMMON      /CSTUFF/ STUFFO, STUFFN





==== ercs07/emas-2900/tstfiles_tst12clos.txt ====
''TITLE, TEST12C
''HEAD, LINKER COMMON ALLOCATION TEST
''LIST
  /////////////////////////////////////////////////////////
  //                                                     //
  // DATE   : SEP 19,1978                                //
  //                                                     //
  // AUTHOR : T. CHENG                                   //
  //                                                     //
  // TEST # : TEST12C                                    //
  //                                                     //
  // PURPOSE :   TEST MEMORY ALLOCATION FOR BLANK        //
  //              AND NAMED COMMONS.                     //
  //                                                     //
  // NOTE :      LINK WITH TEST12A,TEST12B AND           //
  //              TEST12D FOR TESTING.                   //
  //                                                     //
  /////////////////////////////////////////////////////////
''EJECT
     'LBR' CA, CB[3], CC 'RBR',                           // BLANK COMMON
     COM4 : 'LBR' CFLAG4, BUF4[100], 'DP' BPTR4 'RBR',    // #4 NAMED COMMON

==== ercs07/emas-2900/slogof_writwofr.txt ====
 
      SUBROUTINE WRITWO 
 
      INTEGER     WOPTR,  WO (64), TLI,     TL (128) 
      INTEGER     BO,     SS,      SS2,     NRFCH 
      COMMON      /SCR1/  WOPTR,   WO,      TLI,    TL 
      COMMON      /SCR1/  BO,      SS,      SS2,    NRFCH 
      CALL WRSEQ (SS2, WO, 128) 
      WOPTR = 1 
      RETURN 
      END 

==== ercs07/emas-2900/mixedsrce1_iproctesti.txt ====
%BEGIN
%EXTERNALROUTINESPEC ADDINT(%INTEGER I,%INTEGERNAME NO)
%INTEGER NUM
PRINTSTRING('CALLING ADDINT')
NEWLINE
ADDINT(20,NUM)
PRINTSTRING('NUM=')
PRINT(NUM,4,0)
NEWLINE
PRINTSTRING('DID IT WORK')
NEWLINE
%ENDOFPROGRAM

==== ercs07/emas-2900/pptests_test5a.txt ====
program test5(output);
var a,b:integer;
procedure five(var a,b:integer);extern;

begin
writeln('calling proc five');
five(a,b);
end.


==== ercs07/emas-2900/slinkf_ldataxfr.txt ====
    
      BLOCK DATA
    
      LOGICAL     MPFLAG
      LOGICAL     OVMODE
      LOGICAL     LBMODE
      LOGICAL     LOADRB
      LOGICAL     SFLAG 
      INTEGER     VERS  
      INTEGER     LOADAD
      INTEGER     ZLOC, ZSTR, ZMAX, ZLIMIT  
      INTEGER     CLOC, CSTR, CMAX, CLIMIT  
      INTEGER     NLOC, NSTR, NMAX, NLIMIT  
      INTEGER     DLOC, DSTR, DMAX, DLIMIT  
      INTEGER     OLOC, OMAX, OSET  
      INTEGER     START 
      INTEGER     MODNLX
      INTEGER     CKSUM 
      INTEGER     KEY   
      INTEGER ICLP05
      COMMON      /LDATAX/ MPFLAG   

==== ercs07/emas-2900/qfiles_exthelp2.txt ====


{30/apr - alan - Changed to disregard routine beginning F_ }
{ 10/5/82 - changes to verifyfile }

MODULE ExtHelp;

EXPORTS

IMPORTS FileUtils FROM FileUtils;
IMPORTS Code FROM Code;

CONST
      maxIdLength = 14;
      defIdLength = 8;
      longIdLength = 14;
      maxImports = 50;

TYPE
    Status = (allright,fileNotFound,alreadyImported,
              multiplyDeclaredRoutine,routNotFound);

==== ercs07/emas-2900/slinkf_acompgfr.txt ====
    
      INTEGER FUNCTION ACOMP (NXX1, NXX2)   
      INTEGER     NXX1, NXX2
    
      INTEGER     NSIZE,  NAME(16), NTITLE  
      INTEGER     NFLAGS (512)  
      INTEGER     NADDRS (512)  
      INTEGER     NPOSIT (512)  
      INTEGER     NDATA  (512)  
      INTEGER     NTEXTX (512)  
      INTEGER     NTEXT  (1000) 
      INTEGER     NLX, NLSTRT, NLSTOP   
      INTEGER     TXSTRT, TXSTOP
      INTEGER     NTXBTS
      INTEGER     USEBIT, COMBIT, OVLBIT, EPTBIT
      INTEGER     LDMBIT, MODBIT, MLTBIT, RLSBIT
      INTEGER     GDFBIT, TYPBTS
      INTEGER     ATYPE 
      INTEGER      ICLP07   
      LOGICAL     OLDNAM
      COMMON      /NTABLE/ NSIZE, NAME, NTITLE  

==== ercs07/emas-2900/slinks_maklibyl.txt ====
LINK
SLINKY_MAKLIBY
SLINKY_ESTJHPY
SLINKY_GCHARY
SLINKY_PCHARY
SLINKY_ORANGEY
SLINKY_LLOGICY
.END
MAKLIBYY

==== ercs07/emas-2900/slogosorg_nltestfs.txt ====
'HEAD'  NAME LIST FLAG TEST
C     EDIT DATE   14JAN79  09:16
C     SOURCE FILE NLTESTAJH.FS
C     AUTHOR      A. J. HOWARD
C     CLUSTER     23
      'OUTFILE'   NLTESTAJH.FR
      LOGICAL FUNCTION NLTEST (INDEX, FLAG)
      INTEGER     INDEX, FLAG
      'INCLUDE'   NLARAYFTM.IN,
      NLTEST = IAND (NLIST (INDEX), FLAG) .NE. 0
      RETURN
      END
      'OUTFILE'   NLSETAJH.FR
      SUBROUTINE  NLSET (INDEX, FLAG)
      INTEGER     INDEX, FLAG
      'INCLUDE'   NLARAYFTM.IN,
      IF (INDEX .NE. 0) ^
         NLIST (INDEX) = IOR (NLIST (INDEX), FLAG)
      RETURN
      END
      'OUTFILE'   NLVALAJH.FR

==== ercs07/emas-2900/slinks_rblistzl.txt ====
LINK
RBLISTY
SLINKY_LEMASAY
SLINKY_LEMASCY
SLINKY_XSUCESY
.END
RBLISTZ
DESTROY RBLISTY

==== ercs07/emas-2900/slinks_dconcatzl.txt ====
LINK
DCONCATYY
SLINKY_XSUCESY
SLINKY_LEMASAY
SLINKY_LEMASCY
.END
DCONCATZ
DESTROY DCONCATYY

==== ercs07/emas-2900/strans_printffr.txt ====
    
      SUBROUTINE PRINT  
    
      INTEGER  INPTR
      INTEGER  OUTPTR   
      INTEGER  INMAX
      INTEGER  MAXTAB   
      INTEGER  MAXLIN   
      INTEGER  IFMAX
      INTEGER  MAXLEV   
      INTEGER  LINENO   
      INTEGER  PAGE 
      INTEGER  CLINE
      INTEGER  TLIMIT   
      INTEGER  LN   
      INTEGER  I, J, K  
      INTEGER  II, JJ, KK   
      INTEGER  LEXVAL   
      INTEGER  SLEN 
      INTEGER  LEVEL
      INTEGER  LEN  

==== ercs07/emas-2900/slogof_peekaffr.txt ====
    
      SUBROUTINE  PEEKA 
    
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      INTEGER     NEXT,   NUMBER, I,      IOTYPE
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT
      INTEGER ICLP05
      LOGICAL     ENDOK,CONEND  
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG   
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG  
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV  
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE  
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N   
      COMMON   /LOGOS/  PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE  

==== ercs07/emas-2900/inpds_cpareain.txt ====
C     EDIT DATE   16NOV78  10:36
C     SOURCE FILE CPAREAJH.IN
C     AUTHOR      A. J. HOWARD
      INTEGER  PLEVEL, STOPS (20)
      INTEGER  CNLSID (9), CNLTLI (9), CNLEND (9)
      INTEGER  CLX, CPLOC (30)
      INTEGER  NESTX, PNESTX
      INTEGER  RELLEV, RELCNT, TRUEF
      LOGICAL  RELPAS
      INTEGER  CMPFLG
      INTEGER  ILB
      INTEGER  BRCT, BROK, TNESTX
      COMMON   /COMP/   PLEVEL, STOPS
      COMMON   /COMP/   CNLSID, CNLTLI, CNLEND
      COMMON   /COMP/   CLX, CPLOC
      COMMON   /COMP/   NESTX, PNESTX
      COMMON   /COMP/   RELLEV, RELCNT, TRUEF
      COMMON   /COMP/   RELPAS
      COMMON   /COMP/   CMPFLG
      COMMON   /COMP/   ILB
      COMMON   /COMP/   BRCT, BROK, TNESTX

==== ercs07/emas-2900/slogos_opinxjin.txt ====
C     EDIT DATE   31MAR78  13:00
C     SOURCE FILE OPINXJHP.IN
C     AUTHOR      J.H.PERINE
C     DEFINE COMMON BLOCK OF OP CODE INTERNAL REFERENCE VALUES.
C     ALL NAMES ARE 3 LETTER OP CODE PLUS 'INX' FOR INDEX.
C     NO IMPLIED OR RELATIVE ADDRESS OPS INCLUDED.
      INTEGER  ADCINX
      INTEGER  ANDINX
      INTEGER  ASLINX
      INTEGER  BITINX
      INTEGER  CMPINX
      INTEGER  CPXINX
      INTEGER  CPYINX
      INTEGER  DECINX
      INTEGER  EORINX
      INTEGER  INCINX
      INTEGER  JMPINX
      INTEGER  JSRINX
      INTEGER  LDAINX
      INTEGER  LDXINX
      INTEGER  LDYINX

==== ercs07/emas-2900/sforf_includ.txt ====

      INTEGER ARRAY(10)
      LOGICAL FRED

==== ercs07/emas-2900/slogof_faultpfr.txt ====
 
      SUBROUTINE  FAULTP (FAULT) 
 
      INTEGER     LISTF,  SNLPRT, SUMPRT, SYMFLG 
      INTEGER     PRINTF, SKIP,   COMPFL (2) 
      INTEGER     LOCPRT, USFLGS, NEGFLG, SKNAME (8) 
      INTEGER     ORGFLG, CTLUSE, CTLERR, TTL (8) 
      INTEGER     DUMFLG 
      INTEGER ICLP01 
      COMMON      /CTLCOM/    LISTF,  SNLPRT, SUMPRT, SYMFLG 
      COMMON      /CTLCOM/    PRINTF, SKIP,   COMPFL 
      COMMON      /CTLCOM/    LOCPRT, USFLGS, NEGFLG, SKNAME 
      COMMON      /CTLCOM/    ORGFLG, CTLUSE, CTLERR, TTL 
      COMMON      /CTLCOM/    DUMFLG 
      COMMON      /CTLCOM/ ICLP01 
 
      INTEGER     EXFLT,   FLTNR 
      COMMON      /FLTS/   EXFLT,   FLTNR 
      INTEGER     FAULT 
      EXTERNAL    OLFLT 
      IF (.NOT. (CTLUSE .NE. 0))GO TO 13000 

==== ercs07/emas-2900/pffiles_varref.txt ====
{
 History
 -------

 28/10/85 - Remove StartAncillaries, AppendEntry. (agh)
 07/11/85 - Add spec for RefSize. (agh)
 04/12/85 - Modify specs for InxReference and InxWReference. (agh)
                                                                      }

procedure GetEntry(var Entry: StackEntry);
  extern;

procedure FreeEntry(Entry: StackEntry);
  extern;

procedure Push(Entry: StackEntry);
  extern;

procedure Pop(var Entry: StackEntry);
  extern;


==== ercs07/emas-2900/slogos_labelffs.txt ====
'HEAD'  LABEL PROCESSING
C     EDIT DATE   09DEC78  15:43
C     SOURCE FILE LABELFTM.FS
C     AUTHOR      F. T. MICKEY
C     CLUSTER     7
      'OUTFILE'   LABELDATA.FR
      BLOCK DATA
      'INCLUDE'   LABCOMFTM.IN,P
      DATA         LTLI /0/
      END
      'OUTFILE'   LABELFTM.FR
N     OVERLAY     OLLAB
      SUBROUTINE  LABEL
C
C     PROCESSES LABEL DEFINITIONS, CHECKING FOR "LABEL::"
C     ENTRY POINT DEFINITIONS
C
      'INCLUDE' LOGOSAJH.IN,
      'INCLUDE' OPERSAJH.IN,
      'INCLUDE' NLISTCFTM.IN,
      'INCLUDE' BLDPOAJH.IN,

==== ercs07/emas-2900/testpd_setupjfs.txt ====
'HEAD'  SETUP
C     EDIT DATE   26JAN79  11:13
C     SOURCE FILE SETUPJHP.FS
C     AUTHOR      J.H.PERINE
C     CLUSTER     18
      'OUTFILE'   SETUPJHP.FR
C     NAME     SETUP
C     MODULE#
C     PURPOSE  GENERATE SETUP CODE AND PROPER INSTRUCTION TO
C              PERFORM THE REQUESTED OPERATION.
C     CALL     SETUP (FUNC, INDX)
C                 FUNC = OPERATION DESCRIPTOR (FROM OPINXJHP.IN)
C                 INDX = STACK INDEX
C     OUTPUT   1. SETUP CODE AS REQUIRED THROUGH 'GEN' & 'BLDBLK'
C              2. STACK ENTRIES MAY BE MODIFIED

C                 ALSO 'SUBOP' AND 'WFSOP'
      SUBROUTINE  SETUP (FUNC, INDX)
      INTEGER     FUNC, INDX
      'INCLUDE'   LOGOSAJH.IN,
      'INCLUDE'   NLISTCFTM.IN,

==== ercs07/emas-2900/pffiles_analyser.txt ====
procedure Programme;
  extern;

==== ercs07/emas-2900/pffiles_expeval.txt ====
{

 History
 -------

 25/10/85 - Delete spec for CheckCAPRange. (agh)
 07/11/85 - Add specs for ConvertInteger and AdjustSet. (agh)
 04/12/85 - Simplify spec for CAPDeReference. Add equivalent
            spec for CAPWDeReference. (agh)
 05/12/85 - Add specs for CAPRangeCheck and CAPWRangeCheck. (agh)

                                                                    }

procedure DeReference(Representation: TypeRepresentation);
  extern;

procedure CAPDeReference(PackedSchema, InnerMost: Boolean;
                         LowBound, HighBound: CAPBound;
                         Component: TypeRepresentation);
  extern;


==== ercs07/emas-2900/slinkf_t18p1gfr.txt ====
    
      SUBROUTINE T18P1  
    
      INTEGER     ECODE 
      INTEGER     CMCHAN
      INTEGER     RBCHAN
      INTEGER     OBCHAN
      INTEGER     MPCHAN
      INTEGER     DBCHAN
      INTEGER     TTYIN 
      INTEGER     TTYOUT
      COMMON      /IODEFN/ ECODE
      COMMON      /IODEFN/ CMCHAN   
      COMMON      /IODEFN/ RBCHAN   
      COMMON      /IODEFN/ OBCHAN   
      COMMON      /IODEFN/ MPCHAN   
      COMMON      /IODEFN/ DBCHAN   
      COMMON      /IODEFN/ TTYIN
      COMMON      /IODEFN/ TTYOUT   
C     WRITE (DBCHAN, 1) 
C    1FORMAT (' ENTER T18P1')   

==== ercs07/emas-2900/perqrel3_anal20.txt ====
!* 25/05/82   
!*
!************  IMP80 version  ************
!*
%CONSTINTEGER TESTVERSION=1;!  0  NO   1  YES
%CONSTINTEGER DICTVERSION=0;!  0  EMAS   1  VME
!*
!{2900C} %CONSTINTEGER W1=2
!{2900C} %CONSTINTEGER W2=4
!{2900C} %CONSTINTEGER W4=8
!{2900C} %CONSTINTEGER W6=12
{PERQC} %CONSTINTEGER W1=1
{PERQC} %CONSTINTEGER W2=2
{PERQC} %CONSTINTEGER W4=4
{PERQC} %CONSTINTEGER W6=6
!*
!*
!**** SYNTAX ****
!*
!* Syntax tables generated from file SYNTAX48 on 11/03/82 at 06.51.27
!*

==== ercs07/emas-2900/sforf_ddumpf.txt ====
      SUBROUTINE DDUMP(IUNIT,LEV,ITEXT)
      INTEGER  INPTR
      INTEGER  OUTPTR
      INTEGER  INMAX
      INTEGER  MAXTAB
      INTEGER  MAXLIN
      INTEGER  IFMAX
      INTEGER  MAXLEV
      INTEGER  LINENO
      INTEGER  PAGE
      INTEGER  CLINE
      INTEGER  TLIMIT
      INTEGER  LN
      INTEGER  I, J, K
      INTEGER  II, JJ, KK
      INTEGER  LEXVAL
      INTEGER  SLEN
      INTEGER  LEVEL
      INTEGER  LEN
      INTEGER  INCHAN
      INTEGER  OUTCHN

==== ercs07/emas-2900/r1_code18.txt ====
!* MODIFIED 13/05/82
!{2900C}%CONSTINTEGER W1=2;! 1 PERQ  2 EMAS
!{2900C}%CONSTINTEGER W2=4
!{2900C}%CONSTINTEGER W3=6
!{2900C}%CONSTINTEGER W4=8
!{2900C}%CONSTINTEGER W6=12
!{2900C}%CONSTINTEGER W8=16
!{2900C}%CONSTINTEGER W66=132
{PERQC}%CONSTINTEGER W1=1
{PERQC}%CONSTINTEGER W2=2
{PERQC}%CONSTINTEGER W3=3
{PERQC}%CONSTINTEGER W4=4
{PERQC}%CONSTINTEGER W6=6
{PERQC}%CONSTINTEGER W8=8
{PERQC}%CONSTINTEGER W66=66
%OWNINTEGER TRACETEMP
!*************  IMP80 version  ******************
!*
!***********************************************************************
!%INCLUDE "ERCS06.PERQ_TRIADOPS"                                        ;
!***********************************************************************

==== ercs07/emas-2900/slogof_symdatfr.txt ====
 
      BLOCK DATA 
 
      INTEGER  SYMTBL (65) 
      INTEGER ICLP15 
      COMMON   /SYMB/   SYMTBL 
      COMMON   /SYMB/   ICLP15 
      DATA  SYMTBL   /0, 29, 46, 18, 12, -1, 30, 45, 13, 14, 26, 24,  2,
     1 25,  4, 27, 1,  1,  1,  1,  1,  1,  1,  1, 1,  1,  5,  3, 21, 17,
     1 19, -1, 53,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0,  0,  0,  0
     1,0, 0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0, 15, -1, 16, 41, -1, 
     19/ 
      END 

==== ercs07/emas-2900/mixedsrce_funcdef.txt ====
PROGRAM FUNCDEF;
(*# E+ *)
FUNCTION TWO:INTEGER;
BEGIN
TWO:=2;
END;
BEGIN
END.

==== ercs07/emas-2900/slogof_lcvsetfr.txt ====
    
      SUBROUTINE LCVSET 
    
      INTEGER  FCHRTS   
      INTEGER  SCFLAG   
      INTEGER  QMODE
      INTEGER  LBIAS
      INTEGER  SCOUNT   
      INTEGER  QINDEX   
      LOGICAL  NOTINQ   
      COMMON   /SRCEX/  FCHRTS  
      COMMON   /SRCEX/  SCFLAG  
      COMMON   /SRCEX/  QMODE   
      COMMON   /SRCEX/  LBIAS   
      COMMON   /SRCEX/  SCOUNT  
      COMMON   /SRCEX/  QINDEX  
      COMMON   /SRCEX/  NOTINQ  
    
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV

==== ercs07/emas-2900/imptests_lenchar.txt ====
%BEGIN
%STRING(255) S, T
%INTEGER I
S="FIRST LINE
SECOND LINE"
T=S
!
!  S WILL BE TRUNCATED AT THE FIRST NEW LINE
!
%CYCLE I=1, 1, LENGTH(S)
  %IF CHARNO(S,I) = NL %THEN %START
    LENGTH(S) = I-1
    %EXIT
  %FINISH
%REPEAT
!
!  EACH NEWLINE CHARACTER IN T IS REPLACED BY A SPACE
!
%CYCLE I = 1, 1, LENGTH(T)
  %IF CHARNO(T,I) = NL %THEN CHARNO(T,I) = ' '
%REPEAT

==== ercs07/emas-2900/slogos_setupjfs.txt ====
'HEAD'  SETUP
C     EDIT DATE   26JAN79  11:13
C     SOURCE FILE SETUPJHP.FS
C     AUTHOR      J.H.PERINE
C     CLUSTER     18
      'OUTFILE'   SETUPJHP.FR
C     NAME     SETUP
C     MODULE#
C     PURPOSE  GENERATE SETUP CODE AND PROPER INSTRUCTION TO
C              PERFORM THE REQUESTED OPERATION.
C     CALL     SETUP (FUNC, INDX)
C                 FUNC = OPERATION DESCRIPTOR (FROM OPINXJHP.IN)
C                 INDX = STACK INDEX
C     OUTPUT   1. SETUP CODE AS REQUIRED THROUGH 'GEN' & 'BLDBLK'
C              2. STACK ENTRIES MAY BE MODIFIED

C                 ALSO 'SUBOP' AND 'WFSOP'
      SUBROUTINE  SETUP (FUNC, INDX)
      INTEGER     FUNC, INDX
      'INCLUDE'   LOGOSAJH.IN,
      'INCLUDE'   NLISTCFTM.IN,

==== ercs07/emas-2900/slogof_srcdfdfr.txt ====
 
      BLOCK DATA 
 
      INTEGER  QUOTEX 
      INTEGER  CONTF 
      INTEGER  CONTRL 
      INTEGER  HEAD 
      INTEGER  EJECT 
      INTEGER  BLANK 
      INTEGER  SLASH 
      INTEGER  CARDC 
      INTEGER  FLINCT (8) 
      INTEGER  EOCC 
      INTEGER  ENDCRD (3) 
      INTEGER  RECORD (66) 
      INTEGER  RECPTR 
      INTEGER  SOURCE (150) 
      INTEGER  SRCEND 
      INTEGER  SLEN 
      INTEGER  TF (3) 
      COMMON   /SRCE/   QUOTEX 

==== ercs07/emas-2900/slinkf_getflgfr.txt ====
    
      SUBROUTINE GETFL (ERX, EOF)   
      LOGICAL     ERX, EOF  
      LOGICAL     EOFFLG
      INTEGER     CMLINE (40),  CMX 
      INTEGER     RBX   
      INTEGER     GCHAR 
    
      INTEGER     ECODE 
      INTEGER     CMCHAN
      INTEGER     RBCHAN
      INTEGER     OBCHAN
      INTEGER     MPCHAN
      INTEGER     DBCHAN
      INTEGER     TTYIN 
      INTEGER     TTYOUT
      COMMON      /IODEFN/ ECODE
      COMMON      /IODEFN/ CMCHAN   
      COMMON      /IODEFN/ RBCHAN   
      COMMON      /IODEFN/ OBCHAN   
      COMMON      /IODEFN/ MPCHAN   

==== ercs07/emas-2900/slinkf_t14p1gfr.txt ====
    
      SUBROUTINE T14P1  
      RETURN
      END   

==== ercs07/emas-2900/slogof_nlinitfr.txt ====
    
      SUBROUTINE NLINIT 
    
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      INTEGER     NEXT,   NUMBER, I,      IOTYPE
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT
      INTEGER ICLP05
      LOGICAL     ENDOK,CONEND  
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG   
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG  
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV  
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE  
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N   
      COMMON   /LOGOS/  PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE  

==== ercs07/emas-2900/slogosorg_pshcomin.txt ====
C     EDIT DATE   14APR78  10:21
C     SOURCE FILE PSHCOMFTM.IN
C     AUTHOR      F. T. MICKEY
C     CLUSTER     X

      INTEGER  PSTACK (12)
      INTEGER  PX
      INTEGER  PEND
      COMMON   /PPCOM/  PSTACK
      COMMON   /PPCOM/  PX
      COMMON   /PPCOM/  PEND




==== ercs07/emas-2900/culmoldsce_crmjns.txt ====
%BEGIN
%CONTROL 0
!
!    THIS PROGRAM PERFORMS ONE OF TWO ACTIONS DEPENDING ON THE VALUE
!    OF THE INPUT INDICATOR, WHICH MAY BE 1 OR 2.
!
!    IND=1 THE PROGRAM CREATES A NEW MASTER JOURNAL FILE FROM INPUT
!    IN THE FORM SPECIFIED IN THE ROUTINE 'GET TITLE'
!    INPUT MAY BE FROM ANY MEDIUM IF AN APPROPRIATE VERSION OF THE
!    ROUTINE GET TITLE IS PROVIDED.
!
!    IND=2 THE EXISTING MASTER JOURNAL FILE IS READ FROM DISC AND
!    DETAILS ARE PRINTED.
!
!    IN BOTH CASES THE DISC FILE IS EXPECTED ON UNIT 10.
!
%INTEGER MXBUFS                        ;! SIZE OF DISC BUFFER ARRAY
%INTEGER MXNUMB                        ;! MAX SIZE OF TITLE ARRAY
!
MXNUMB = 1024                          ;! SET TITLE ARRAY MAXIMUM       00001200
MXBUFS = 1000                          ;! SET BUFFER ARRAY MAXIMUM

==== ercs07/emas-2900/slinks_maklibzl.txt ====
LINK
MAKLIBYY
SLINKY_LEMASAY
SLINKY_LEMASCY
SLINKY_XSUCESY
.END
MAKLIBZ
DESTROY MAKLIBYY

==== ercs07/emas-2900/dsea20_libnucomni.txt ====
I/(*#CO*)
(*T-*)    (* DO NOT PUT T+ UNTIL AFTER UTILITY ROUTINES *)
     
/
B/LIBNUC/ICL9LP/
T/CONST/
TC/CHARACTER CODE /
TS/CCPASSUBSYS/ R/ISO/EBC/
TC/HEAP MANAGEMENT /
TS/HEAPMXSZWD/ I/  HEAPMINSZB = 1024;///
T+1 I/  HEAPMXSZB = MXBINSGMT;///
T/TYPE/
TS/ADDRESS = /
I/  LONGINT = RECORD UH, LH : INTEGER END;///
T/VAR/
TC/JOURNAL ACCESS/
I/    (****  GLOBAL VARIABLES FOR COMPILER LISTING FILE :-  ****)
    (****  ---------------------------------------------  ****)
 
  CTLISTFV : FVAR;
  CTLISTFP : TEXTPT;

==== ercs07/emas-2900/slogosorg_stkdffin.txt ====
C     EDIT DATE   03DEC78  12:13
C     SOURCE FILE STKDEFF.IN
C     AUTHOR      A. J. HOWARD
      INTEGER     SUBXB (20),  WFOP (20),   WFOPND (20)
      INTEGER     SUBOP (20),  WFSOP (20)
      EQUIVALENCE (STK (1,  6), SUBXB  (1))
      EQUIVALENCE (STK (1, 10), WFOP   (1))
      EQUIVALENCE (STK (1, 11), WFOPND (1))
      EQUIVALENCE (STK (1, 12), SUBOP  (1))
      EQUIVALENCE (STK (1, 13), WFSOP  (1))


==== ercs07/emas-2900/slogof_reglevfr.txt ====
    
      SUBROUTINE  REGLEV (FUNC) 
      INTEGER     FUNC  
      EXTERNAL    OLREG, OLCRM  
    
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      INTEGER     NEXT,   NUMBER, I,      IOTYPE
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT
      INTEGER ICLP05
      LOGICAL     ENDOK,CONEND  
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG   
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG  
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV  
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE  

==== ercs07/emas-2900/slinkf_t10p1gfr.txt ====
    
      SUBROUTINE T10P1  
    
      INTEGER     ECODE 
      INTEGER     CMCHAN
      INTEGER     RBCHAN
      INTEGER     OBCHAN
      INTEGER     MPCHAN
      INTEGER     DBCHAN
      INTEGER     TTYIN 
      INTEGER     TTYOUT
      COMMON      /IODEFN/ ECODE
      COMMON      /IODEFN/ CMCHAN   
      COMMON      /IODEFN/ RBCHAN   
      COMMON      /IODEFN/ OBCHAN   
      COMMON      /IODEFN/ MPCHAN   
      COMMON      /IODEFN/ DBCHAN   
      COMMON      /IODEFN/ TTYIN
      COMMON      /IODEFN/ TTYOUT   
C     WRITE (DBCHAN, 1) 
C    1FORMAT (' ENTER T10P1')   

==== ercs07/emas-2900/slinksorg_characin.txt ====
C     EDIT DATE   06JUN78  07:40
C     SOURCE FILE CHARACGAK.IN
C     AUTHOR      GARY A. KUDIS
C     ASCII CHARACTER DEFINITIONS
      INTEGER     CHAR
      INTEGER     CHMASK
      INTEGER     CR, LF
      INTEGER     CRLF
      INTEGER     BLANK, PERIOD
      INTEGER     BLANKS, DASHES, COLONS, SLASHS
      INTEGER     ACH, BCH, CCH, DCH, ECH, FCH
      INTEGER     GCH, HCH, ICH, JCH, KCH, LCH
      INTEGER     MCH, NCH, OCH, PCH, QCH, RCH
      INTEGER     SCH, TCH, UCH, VCH, WCH, XCH
      INTEGER     YCH, ZCH
      INTEGER     LBRACE, RBRACE
      INTEGER     LBRACK, RBRACK
      COMMON      /CHARAC/ CHAR
      COMMON      /CHARAC/ CHMASK
      COMMON      /CHARAC/ CR, LF
      COMMON      /CHARAC/ CRLF

==== ercs07/emas-2900/slogos_nlistffs.txt ====
'HEAD'  NAME LIST PROCESSING
C     EDIT DATE   11DEC78  16:29
C     SOURCE FILE NLISTFTM.FS
C     AUTHOR      F. T. MICKEY
C     CLUSTER     23
      'OUTFILE' SNMLSTFTM.FR
C     INTEGER FUNCTION SNMLST
C
C     SEARCH THE NAMELIST FOR AN ENTRY MATCHING THE CONTENTS
C     OF 'NAME';  IF FOUND, RETURN INDEX TO ENTRIES IN NLX.
C     IF NOT FOUND, RETURN INDEX OF EMPTY LIST ENTRY FOR USE
C     IN DEFINING NEW ENTRY.
C
      INTEGER FUNCTION SNMLST (DUM)
      'INCLUDE'     NLNAMEFTM.IN,
      'INCLUDE' NLISTCFTM.IN,
      'INCLUDE' NLARAYFTM.IN,
      'INCLUDE' LOGOSAJH.IN,
      INTEGER  GETTX, ENTNUM, GCHAR, NLOPS
      INTEGER  TS, DUM
      CALL SEARCH

==== ercs07/emas-2900/rel11opt_eelimp44.txt ====
! 21/08/95 - alter TRELIM to inhibit expression elimination of ARR triads
! 29/11/84 - correct TRELIM for TOCHAR and CONJG
! 31/01/84 - UPDATE TRELIM FOR DCMPLX & INTRIN
! 18/01/84 - BIT STRIP ADDRESSES ARE NOW RELATIVE TO ABLOCKS
! 23/11/83 set up TRACE flag and EDUMPTRACE routine
! 27/10/83 - copied from ERCS06.REL8002_eelimb7
%INCLUDE "host_host"
%INCLUDE "targ_target"
%INCLUDE "pf_version"
!*
%INCLUDE "bits_fmts"
%INCLUDE "bits_optspecs"
%INCLUDE "bits_consts"
%INCLUDE "bits_optfmts"
!
%INCLUDE "bits_triadops"
!*
%OWNINTEGER TRACE=0
!
%OWNINTEGER ELFLAG,ELIMEND,RWFLAG,HVAL
%OWNINTEGER COORD1,COORD2,MODE,MATCH

==== ercs07/emas-2900/slogof_gensxyfr.txt ====
 
      SUBROUTINE  GENSXY (IREG, TRANS) 
      INTEGER     IREG, TRANS 
 
      INTEGER  AREG,   XREG,   YREG,   NRREGS 
      INTEGER  STATUS (10),    STAREG, STXREG, STYREG 
      INTEGER  REGS (10) 
      INTEGER  ACTREG (2),      ACTLO,  ACTHI 
      INTEGER  NZREG 
      INTEGER ICLP10 
      COMMON   / REGS / AREG,   XREG,   YREG,   NRREGS 
      COMMON   / REGS / STATUS, REGS,   ACTREG, NZREG 
      COMMON   / REGS / ICLP10 
      EQUIVALENCE    (ACTLO,  ACTREG (1)) 
      EQUIVALENCE    (ACTHI,  ACTREG (2)) 
      EQUIVALENCE    (STAREG, STATUS (1)) 
      EQUIVALENCE    (STXREG, STATUS (2)) 
      EQUIVALENCE    (STYREG, STATUS (3)) 
 
      INTEGER     STK (20, 13) 
      INTEGER     NAMEX (40) 

==== ercs07/emas-2900/rel6_fdiag9.txt ====
! MODIFIED   23/July/82   15.00




%EXTERNALROUTINE QFDIAG (%INTEGER      LOCAL POINTER       ,
                         %INTEGER     GLOBAL POINTER       ,
                         %INTEGER     PCOUNT               ,
                         %INTEGER   ACTIVITY CONTROL BLOCK ,
                         %INTEGER   SYMTABLE BASE          ,
                         %INTEGER   SYMTABLE DISP          ,
                         %INTEGER       MODE,DIAG          ,
                         %INTEGER      ASIZE,FIRST         ,
                         %INTEGERNAME         NEXT         )
                         !
                         !
                         !
!
!*********************************************************************%C
!*********************************************************************%C
                                                                      %C

==== ercs07/emas-2900/slogof_obdatafr.txt ====
    
      BLOCK DATA
    
      INTEGER  LINSTR (512) 
      COMMON   /OBJD/   LINSTR  
    
      INTEGER  L0INS (32), L1INS (32), L2INS (32), L3INS (32)   
      INTEGER  L4INS (32), L5INS (32), L6INS (32), L7INS (32)   
      INTEGER  L8INS (32), L9INS (32), LAINS (32), LBINS (32)   
      INTEGER  LCINS (32), LDINS (32), LEINS (32), LFINS (32)   
      EQUIVALENCE ( L0INS (1), LINSTR (  1) )   
      EQUIVALENCE ( L1INS (1), LINSTR ( 33) )   
      EQUIVALENCE ( L2INS (1), LINSTR ( 65) )   
      EQUIVALENCE ( L3INS (1), LINSTR ( 97) )   
      EQUIVALENCE ( L4INS (1), LINSTR (129) )   
      EQUIVALENCE ( L5INS (1), LINSTR (161) )   
      EQUIVALENCE ( L6INS (1), LINSTR (193) )   
      EQUIVALENCE ( L7INS (1), LINSTR (225) )   
      EQUIVALENCE ( L8INS (1), LINSTR (257) )   
      EQUIVALENCE ( L9INS (1), LINSTR (289) )   
      EQUIVALENCE ( LAINS (1), LINSTR (321) )   

==== ercs07/emas-2900/slinkf_t07p1gfr.txt ====
    
      SUBROUTINE T07P1  
    
      INTEGER     NSIZE,  NAME(16), NTITLE  
      INTEGER     NFLAGS (512)  
      INTEGER     NADDRS (512)  
      INTEGER     NPOSIT (512)  
      INTEGER     NDATA  (512)  
      INTEGER     NTEXTX (512)  
      INTEGER     NTEXT  (1000) 
      INTEGER     NLX, NLSTRT, NLSTOP   
      INTEGER     TXSTRT, TXSTOP
      INTEGER     NTXBTS
      INTEGER     USEBIT, COMBIT, OVLBIT, EPTBIT
      INTEGER     LDMBIT, MODBIT, MLTBIT, RLSBIT
      INTEGER     GDFBIT, TYPBTS
      INTEGER     ATYPE 
      INTEGER      ICLP07   
      LOGICAL     OLDNAM
      COMMON      /NTABLE/ NSIZE, NAME, NTITLE  
      COMMON      /NTABLE/ NFLAGS, NADDRS, NPOSIT, NDATA, NTEXTX

==== ercs07/emas-2900/dsea20_pmedfnldir.txt ====
I$%RANGECHECKS=NO
%CHARCODE=EBCDIC
$
TELE

==== ercs07/emas-2900/inpds_gencmbin.txt ====
C     EDIT DATE   09OCT78  11:13
C     SOURCE FILE GENCOMFTM.IN
C     AUTHOR      F. T. MICKEY
C     CLUSTER     X
      INTEGER GENRET
      INTEGER MODEX
      INTEGER RAWMDX
      INTEGER SPTR
C     GENER FUNCTIONS
      INTEGER TSTSTK    // TEST STACK
      INTEGER SWAP
      INTEGER TOPDP     // CONVERT (TOPX) TO DP
      INTEGER NEXTDP    // CONVERT (NEXTX) TO DP
      INTEGER TOPSP     // CONVERT (TOPX) TO SP
      INTEGER NEXTSP    // CONVERT (NEXTX) TO SP
      INTEGER SAVCAL    // SAVE ANY ACTIVE REGISTERS
      INTEGER OUT
      INTEGER GETSP     // GET STACK POINTER
      INTEGER SMODEX    // SET MODEX
      INTEGER SETX
      COMMON   /GENC/   GENRET

==== ercs07/emas-2900/perqrel3_aux11.txt ====
!* MODIFIED 08/04/82  02.00
!*
!              
!                         EXPORT LIST
!
!
%ROUTINESPEC F77 STOP(%HALFINTEGER PTYPE,%INTEGER VAL)
%ROUTINESPEC F77 PAUSE (%HALFINTEGER PTYPE,%INTEGER VAL)
%ROUTINESPEC F77 RTERR(%HALFINTEGER ERRNO)
%ROUTINESPEC F77 IOERR(%HALFINTEGER ERRNO)
%HALFINTEGERFNSPEC F77 CONCAT(%INTEGER OUTPUTBASE,
      %HALFINTEGER OUTPUT DISP,OUTPUT LEN,%INTEGER COUNT,
ADDRINPUTDESCS,%HALFINTEGER SPACEFILL)
%ROUTINESPEC F77COPY (%INTEGER SCE BASE,%HALFINTEGER SCE DISP,
SOURCE LEN,%INTEGER TARGET BASE,%HALFINTEGER TARGET DISP,TARGET LEN)
%INTEGERFNSPEC F77 INDEX (%INTEGER SEARCHBASE,
%HALFINTEGER SEARCHDISP,SEARCHLEN,%INTEGER KEYBASE,%HALFINTEGER KEYDISP,
KEYLEN)
%ROUTINESPEC F77 CMULTC(%INTEGER AD,%REAL R1,C1,R2,C2)
%ROUTINESPEC F77 CDIVC(%INTEGER AD,%REAL R1,C1,R2,C2)
%INTEGERFNSPEC F77 CXREL(%REAL R1,C1,R2,C2)

==== ercs07/emas-2900/slogos_lcompafs.txt ====
'HEAD'  COMPARISON ROUTINES
C     EDIT DATE   09DEC78  15:43
C     SOURCE FILE LCOMPAJH.FS
C     AUTHOR      A.  J. HOWARD
C     CLUSTER     8
      'OUTFILE'   LCOMPAJH.FR
C     EDIT DATE   09DEC78  15:43
C     SOURCE FILE LCOMPAJH.FS
C     AUTHOR      A.  J. HOWARD
N     OVERLAY     OLLCO
      SUBROUTINE  LCOMP (FUNC)
      INTEGER     FUNC
C
C     1 PROCESS RELATIONAL OPERATOR  = # < <= >= >
C     2 FINISH CONDITIONAL STATEMENT NEXT OP :
C     3 CLOSE SIDE  NEXT OP . OR ;
C
      INTEGER     ILBRET, SCRET     // INTERNAL SUBROUTINE RETURNS
      INTEGER     OPTS1,  LDROP
      INTEGER     TS, BROKTS
      INTEGER     COMPOP (6)

==== ercs07/emas-2900/slogof_regmanfr.txt ====
    
      SUBROUTINE  REGMAN (FUNC, REG, AUX)   
    
      INTEGER  NI,     NJ,     NK   
      INTEGER  NSIZE
      INTEGER  NLX,    FNLX,   REMNLX, OVNLX,  TNAME
      INTEGER  NLSTRT, NLSTOP, NLSIZE, SRCHST   
      INTEGER  NTSTRT   
      INTEGER  NTSTOP   
      INTEGER  NTSIZE   
      INTEGER  PARFLG   
      INTEGER  SPARFL   
      INTEGER  NLWRDS   
      INTEGER  TX   
      INTEGER  NLENO
      INTEGER  STDMD
      INTEGER  MSHIFT   
      INTEGER  REGCNT   
      INTEGER  NULLX
      INTEGER  STPTRX   
      INTEGER  SPMODE   

==== ercs07/emas-2900/slogos_rmcodein.txt ====
C     FUNCTION CODES FOR REGISTER MANAGEMENT (REGMAN) CALLS
      INTEGER  CLRACV      // ERASE ALL REGISTER CONTENTS
      INTEGER  CLRACX      // ERASE SPECIFIC REGISTER CONTENTS
      INTEGER  CLRSTA      // ERASE ACTIVE STATUS OF ALL REGISTERS
      INTEGER  TRAREG      // TRASNSFER REGISTER TO REGISTER
      INTEGER  SAVREG      // TEMP STORE IF REGISTER IS ACTIVE
      INTEGER  CTFREE      // FIND A FREE CT OF 1 OR 2 WORDS
      INTEGER  SETREG      // SET THE REGISTER CONTENTS FROM THE STACK
I     INTEGER  ICLP11
      COMMON   /RMCODE/ CLRACV, CLRACX, CLRSTA, TRAREG, SAVREG
      COMMON   /RMCODE/ CTFREE, SETREG
I     COMMON   /RMCODE/ ICLP11


==== ercs07/emas-2900/strans_stran4yl.txt ====

LINK
STRANS_LOGICY
STRANS_INITY
STRANS_INITOBY
STRANS_CPARENY
STRANS_CTYPEFY
STRANS_ENDLIN4Y
STRANS_GOLNFTY
STRANS_LABGENY
STRANS_LEXFTMY
STRANS_LNCONTY
STRANS_LSTARTY
STRANS_PARSEFY
STRANS_PLNFTMY
STRANS_PSTRFTY
STRANS_COPYLNY
STRANS_COPYTOY
STRANS_GETCY
STRANS_GETLINY
STRANS_GETNUMY

==== ercs07/emas-2900/genutils_submonfr.txt ====

      SUBROUTINE SUBMON(A,LEN)
      INTEGER A(1),LEN,K,I
      K=(LEN+1)/2
      WRITE(20,100)(A(I),I=1,K)
  100 FORMAT(1X,5A2)
      RETURN
      END

==== ercs07/emas-2900/slinkf_t03p1gfr.txt ====
    
      SUBROUTINE T03P1  
    
      LOGICAL     MPFLAG
      LOGICAL     OVMODE
      LOGICAL     LBMODE
      LOGICAL     LOADRB
      LOGICAL     SFLAG 
      INTEGER     VERS  
      INTEGER     LOADAD
      INTEGER     ZLOC, ZSTR, ZMAX, ZLIMIT  
      INTEGER     CLOC, CSTR, CMAX, CLIMIT  
      INTEGER     NLOC, NSTR, NMAX, NLIMIT  
      INTEGER     DLOC, DSTR, DMAX, DLIMIT  
      INTEGER     OLOC, OMAX, OSET  
      INTEGER     START 
      INTEGER     MODNLX
      INTEGER     CKSUM 
      INTEGER     KEY   
      INTEGER ICLP05
      COMMON      /LDATAX/ MPFLAG   

==== ercs07/emas-2900/slinks_questsin.txt ====
C     EDIT DATE   08MAY78  17:45
C     SOURCE FILE QUESTSGAK.IN
C     AUTHOR      GARY A. KUDIS
C     QUESTIONS ASKED OF USER
      INTEGER     CMQUES (10)
      INTEGER     OBQUES (10)
      INTEGER     MPQUES (10)
      INTEGER     ANSWER (14)
      COMMON      /QUESTS/ CMQUES
      COMMON      /QUESTS/ OBQUES
      COMMON      /QUESTS/ MPQUES
      COMMON      /QUESTS/ ANSWER


==== ercs07/emas-2900/psclsce2012_rtsup9.txt ====
! MODIFIED 14/10/81 - VERSION 20.11
! DEFINE EXTERNALS ICL9LPGICL9LPLIBNUC,ICL9LPGLICL9LPREALIO,
! ICL9LPGLICL9LPPMPACKAGE

!**********************************************************************
!*
!*                    RUN TIME PASCAL
!*
!**********************************************************************
!
!
!**********************************************************************
!*
!*                            CONSTANTS
!*
!**********************************************************************
!
%CONSTINTEGER NO=0,YES=1
%CONSTSTRING(1)%ARRAY HEX TAB(0:15)="0","1","2","3","4","5","6","7", %C
              "8","9","A","B","C","D","E","F"
!

==== ercs07/emas-2900/dsea20_libnucfile.txt ====
T/CONST/
TS/(*  FILE HANDLING /
TS/EDSIMRD/
PS/EDNFORD/
TS/EDNFOPASSQF/ D/SQ/
G I/  EDNFOPASRCF  = 11 ;///
TS/(*  ERROR HANDLING/ P+4
TS/(*  CHARACTER CODE IDENT/
TS/CCJRNL/ PS/(*  TRANSLATION/
TS/(*  EDINBURGH CHANNEL NO/
TS/EDCHNMX/ R/108/99/
TS/EDCTSRCEIPCHN/ PS/EDSIMCHEOF/ P+1
TS/CTBASECHN/ P+2
TS/TXBFMXIX/ PS/TXOPBFDATALENB/ P+1
I/  TXBFMXDATALENB = 160 ;
  TXBFMXIX = 159 ;
  TXIPBFMXDATALENB = TXBFMXDATALENB ;
  TXOPBFLENB = TXBFMXDATALENB ;
  TXOPBFDATALENB = TXOPBFLENB ;
 
    (*  CTMLOG 'MESSAGETYPE' VALUES  *)

==== ercs07/emas-2900/rtpsclma_libnuc.txt ====
AREA(1)
ALTER(X3DF4,X0114,X0088,NAME=LATEFIX1A)
AREA(1)
PATCH(X47A0,X18046285,CODE
      X18046285&X42874998&X6C07
      CALL    X46D0
      X18046285
      RETURN   X04
      END,RETURN=NO,NAME=PASC15)
AREA(1)
PATCH(X18B8,X488A628A,X488A6200&X498C0007&X628A,NAME=PASC18A)
PATCH(X2DDC,X18046287,X6201&X498C0007&X18046287,NAME=PASC18B)
PATCH(X3C9A,X58877887,CODE
      LSS     X07
      JNZ     X3CB6
      STD.L   X07
      RETURN  X04
      END,RETURN=NO,NAME=PASC18C)
#

==== ercs07/emas-2900/slogof_peekftfr.txt ====
    
      SUBROUTINE PEEK   
      CALL SSBUF
      CALL PEEKA
      RETURN
      END   

==== ercs07/emas-2900/slinkf_errdfnfr.txt ====
    
      BLOCK DATA
    
      INTEGER     EPROC (20)
      INTEGER     ECOUNT (20)   
      INTEGER     ELIMIT (20)   
      INTEGER     EMSG (200)
      INTEGER     EMSG1(10),EMSG2(10),EMSG3(10),EMSG4(10)   
      INTEGER     EMSG5(10),EMSG6(10),EMSG7(10),EMSG8(10)   
      INTEGER     EMSG9(10),EMSG10(10),EMSG11(10),EMSG12(10)
      INTEGER     EMSG13(10),EMSG14(10),EMSG15(10),EMSG16(10)   
      INTEGER     EMSG17(10),EMSG18(10),EMSG19(10),EMSG20(20)   
      INTEGER     EMAX,ICLP06   
      COMMON      /ERRDFN/ EPROC
      COMMON      /ERRDFN/ ECOUNT   
      COMMON      /ERRDFN/ ELIMIT   
      COMMON      /ERRDFN/ EMSG 
      COMMON      /ERRDFN/ EMAX 
      COMMON      /ERRDFN/ ICLP06   
      EQUIVALENCE (EMSG1,EMSG(1)),   (EMSG2,EMSG(11))   
      EQUIVALENCE (EMSG3,EMSG(21)),  (EMSG4,EMSG(31))   

==== ercs07/emas-2900/pt_bisect.txt ====
PROGRAM BISECT(INPUT,OUTPUT);
CONST EPS =1E-14;
VAR X,Y:REAL;
FUNCTION ZERO(FUNCTION F:REAL;A,B:REAL):REAL;
VAR X,Z:REAL;S:BOOLEAN;
BEGIN
S:=F(A)<0;
  REPEAT X:=(A+B)/2.0;
  Z:=F(X);
  IF (Z<0)=S THEN A:=X ELSE B:=X
  UNTIL ABS(A-B)<EPS;
ZERO:=X
END;
BEGIN
READ(X,Y);
WRITELN(X,Y,ZERO(SIN,X,Y));
READ(X,Y);
WRITELN(X,Y,ZERO(COS,X,Y))
END.

==== ercs07/emas-2900/slogos_nounsafs.txt ====
'HEAD'  NOUN LIST PROCESSING
C     EDIT DATE   14JAN79  09:51
C     SOURCE FILE NOUNSAJH.FS
C     AUTHOR      A. J. HOWARD
C     CLUSTER     2
      'OUTFILE'   DIMENAJH.FR
N     OVERLAY     OLNOU
      SUBROUTINE  DIMEN
C     EDIT DATE   14JAN79  09:51
C     SOURCE FILE NOUNSAJH.FS
C     AUTHOR      A. J. HOWARD
      INTEGER     TS, IERR
      INTEGER     NBX, NBSTK (20)
      INTEGER     IOTS, IOTS1, INITLC
      INTEGER     MODETS, MTS1
      INTEGER     OLDMOD, OLDTPL
      INTEGER     REDEF
      INTEGER     FIRST, LAST, COUNT
      INTEGER     NLOPS, CQVAL, SNMLST
      LOGICAL     NLTEST
      EXTERNAL    OLCRU

==== ercs07/emas-2900/rel6_impsup.txt ====
module impsup;
exports

procedure dummsup;
procedure printfl(val,place:long);

private
imports f77init from f77init;

procedure dummsup;
begin
end;

procedure printfl;
begin
write(curout^,val:shrink(place)+1);
end. { printfl }

==== ercs07/emas-2900/slogof_fnzsftfr.txt ====
 
      SUBROUTINE  FNZS 
 
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG 
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV 
      INTEGER     NEXT,   NUMBER, I,      IOTYPE 
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE 
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP 
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT 
      INTEGER ICLP05 
      LOGICAL     ENDOK,CONEND 
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG 
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV 
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE 
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N 
      COMMON   /LOGOS/  PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE 

==== ercs07/emas-2900/slogos_printffs.txt ====
'HEAD'  PRINT ROUTINES
C     EDIT DATE   12DEC78  13:10
C     SOURCE FILE PRINTFTM.FS
C     AUTHOR      F. T. MICKEY
C     CLUSTER     24
      'OUTFILE'   SGLPRTFTM.FR
C
C     PRINT THE CONTENTS OF LBUF TO THE PRINTER, SINGLE-SPACED
C
      SUBROUTINE  SGLPRT
      'INCLUDE'   LOGOSAJH.IN,
      'INCLUDE'   CTRLAJH.IN,
      'INCLUDE'   PRTCOMFTM.IN,
      INTEGER     II, MAXLIN
      DATA        MAXLIN   /58/
      'IF' (PRINTF .NE. 0)
         'FOR' (II = 66; II .GT. 1; II = II - 1)
            'IF' (LBUF (II) .EQ. XBBL)    // STRIP OFF TRAILING SPACES
               'END'
            'ENDIF'
         CALL WRLIN (LO, LBUF, 2*II)

==== ercs07/emas-2900/slogof_orangefr.txt ====
    
      SUBROUTINE  REW (CHAN, FILE)  
      INTEGER     CHAN, FILE (1)
      REWIND CHAN   
      RETURN
      END   
    
      SUBROUTINE  RDLIN (CHAN, BUFFER, MAX, ERROR)  
      INTEGER     CHAN, BUFFER (40), MAX, ERROR 
      INTEGER     WORDS 
      WORDS = (MAX + 1)/2   
      READ (CHAN, 1000, END = 100) (BUFFER (I), I = 1, WORDS)   
      ERROR = 1 
      RETURN
  100 ERROR = 9 
      RETURN
 1000 FORMAT (40A2) 
      END   
      SUBROUTINE WRLIN(CHAN,BUFFER,CHARS)   
      INTEGER CHAN,BUFFER(1),CHARS  
      INTEGER WORDS,PNTR,FMT(6),BBBB,Z100,Z3030 

==== ercs07/emas-2900/slinksorg_lpass2fs.txt ====
'HEAD'  LINKER, PASS 2
C     EDIT DATE   26JAN79  09:29
C     SOURCE FILE LPASS2GAK.FS
C     AUTHOR      GARY A. KUDIS
C     CLUSTER     5
      'OUTFILE' LPASS2GAK.FR
      SUBROUTINE PASS2
      'INCLUDE' RECORDGAK.IN,
      'INCLUDE' LDATAXGAK.IN,
      'INCLUDE' IODEFNGAK.IN,
      'INCLUDE' IOFILEGAK.IN,
      LOGICAL     ERX, EOF, KEYWD
      INTEGER     I, DUMMY
C PASS2 ::
X     WRITE (DBCHAN, 1)
X1    FORMAT (' ENTER PASS2')
      CALL I2PASS
      'DO'
         CALL GETFL (ERX, EOF)
         IF (ERX) GO TO 9998
         IF (EOF) GO TO 9999

==== ercs07/emas-2900/culhamsce_prstss.txt ====
%BEGIN
!
!    PROGRAM TO TEST THE PRODUCTION OF THE STATISTICS FILE BY LIBRIP
!
%EXTERNALROUTINESPEC READDA (%INTEGER CHANNEL,%INTEGERNAME SECT,    %C
                             %NAME BEGIN,END)
%EXTERNALROUTINESPEC OPENDA (%INTEGER CHANNEL)
%EXTERNALROUTINESPEC CLOSEDA(%INTEGER CHANNEL)
!
%INTEGERARRAY NUMBER(1:200)
!??; %HALFINTEGERARRAY NUMTOT(1:200)
%INTEGERARRAY CMDETS(1:3)
!
%INTEGER BLOCK
%INTEGER I
%INTEGER J
%INTEGER MAX
%INTEGER N1
%INTEGER N2
%INTEGER UNIT
!

==== ercs07/emas-2900/topsl.txt ====
TOPoSL
4 0 0
10 81
3 81 15410
10 80 14959
4 80 12920
10 79 11853
10 78 10097
10 77 8730
10 76 7951
10 75 7743
10 74 7346
9 74 5642
8 74 5621
7 74 5600
6 74 5559
10 73 5496
10 72 5247
10 71 4734
10 70 4401
10 69 4000

==== ercs07/emas-2900/rel11opt_optctlp49.txt ====

! 08/01/85 - comment out routine TABFAIL, call F77abort in pf_ctl1
! 07/01/85 - Substituted F77abort call for tabfail.
! 29/08/84 - correction to SETBITS for CMNCOORDS(1)
! 27/08/84 - insert function GET PLABDICT
! 16/07/84 - put name of OPTCTL routine in an include file
! 04/07/84 - put SPECS to constant operations in include file "targ_constfns"
! 03/07/84 - replace scaling factor in OPTCTL by BSCALE
! 04/06/84 - correction to BUSYONX
! 02/04/84 - changes in SUBSUM for DIOITEM(list-directed)
! 15/03/84 - further changes of 4 to W1 in CONOP
! 21/02/84 - Replace increments of 4 by W1 in BUSYONX & CONOP
! 17/01/84 - CORRECT CREATETAB; MAKE BLOCKPOINT RELATIVE IN SETBITS
! 08/11/83 COPIED FROM ERCS06.REL90_OPTCTLB31
!*
%INCLUDE "host_host"
!*
%INCLUDE "targ_target"
!*
%INCLUDE "pf_version"
!*

==== ercs07/emas-2900/sforf_ignoref.txt ====
      SUBROUTINE IGNORE
      INTEGER  INPTR
      INTEGER  OUTPTR
      INTEGER  INMAX
      INTEGER  MAXTAB
      INTEGER  MAXLIN
      INTEGER  IFMAX
      INTEGER  MAXLEV
      INTEGER  LINENO
      INTEGER  PAGE
      INTEGER  CLINE
      INTEGER  TLIMIT
      INTEGER  LN
      INTEGER  I, J, K
      INTEGER  II, JJ, KK
      INTEGER  LEXVAL
      INTEGER  SLEN
      INTEGER  LEVEL
      INTEGER  LEN
      INTEGER  INCHAN
      INTEGER  OUTCHN

==== ercs07/emas-2900/slogos_srcxdfin.txt ====
C     EDIT DATE   16SEP78  10:58
C     SOURCE FILE   SRCXDFFTM.IN
C     AUTHOR        F. T. MICKEY
C     SOURCE EXTERNAL COMMUNICATION DATA AREA
      INTEGER  FCHRTS
      INTEGER  SCFLAG
      INTEGER  QMODE
      INTEGER  LBIAS
      INTEGER  SCOUNT
      INTEGER  QINDEX
      LOGICAL  NOTINQ
      COMMON   /SRCEX/  FCHRTS
      COMMON   /SRCEX/  SCFLAG
      COMMON   /SRCEX/  QMODE
      COMMON   /SRCEX/  LBIAS
      COMMON   /SRCEX/  SCOUNT
      COMMON   /SRCEX/  QINDEX

      COMMON   /SRCEX/  NOTINQ

==== ercs07/emas-2900/strans_initftfr.txt ====
                                                                        
      SUBROUTINE INIT                                                   
                                                                        
      INTEGER  INPTR                                                    
      INTEGER  OUTPTR                                                   
      INTEGER  INMAX                                                    
      INTEGER  MAXTAB                                                   
      INTEGER  MAXLIN                                                   
      INTEGER  IFMAX                                                    
      INTEGER  MAXLEV                                                   
      INTEGER  LINENO                                                   
      INTEGER  PAGE                                                     
      INTEGER  CLINE                                                    
      INTEGER  TLIMIT                                                   
      INTEGER  LN                                                       
      INTEGER  I, J, K                                                  
      INTEGER  II, JJ, KK                                               
      INTEGER  LEXVAL                                                   
      INTEGER  SLEN                                                     
      INTEGER  LEVEL                                                    
      INTEGER  LEN                                                      

==== ercs07/emas-2900/slogosorg_cpareain.txt ====
C     EDIT DATE   16NOV78  10:36
C     SOURCE FILE CPAREAJH.IN
C     AUTHOR      A. J. HOWARD
      INTEGER  PLEVEL, STOPS (20)
      INTEGER  CNLSID (9), CNLTLI (9), CNLEND (9)
      INTEGER  CLX, CPLOC (30)
      INTEGER  NESTX, PNESTX
      INTEGER  RELLEV, RELCNT, TRUEF
      LOGICAL  RELPAS
      INTEGER  CMPFLG
      INTEGER  ILB
      INTEGER  BRCT, BROK, TNESTX
      COMMON   /COMP/   PLEVEL, STOPS
      COMMON   /COMP/   CNLSID, CNLTLI, CNLEND
      COMMON   /COMP/   CLX, CPLOC
      COMMON   /COMP/   NESTX, PNESTX
      COMMON   /COMP/   RELLEV, RELCNT, TRUEF
      COMMON   /COMP/   RELPAS
      COMMON   /COMP/   CMPFLG
      COMMON   /COMP/   ILB
      COMMON   /COMP/   BRCT, BROK, TNESTX

==== ercs07/emas-2900/rel11opt_optctlp50.txt ====
! 04/04/85 - Globsubs,Subsum - ignore I2 or L2
! 01/04/85 - Convertmode - %result=1 for any I2
! 28/03/85 - Conop - stop evaluating I2 exprs. {AA}
! 08/01/85 - comment out routine TABFAIL, call F77abort in pf_ctl1
! 07/01/85 - Substituted F77abort call for tabfail.
! 29/08/84 - correction to SETBITS for CMNCOORDS(1)
! 27/08/84 - insert function GET PLABDICT
! 16/07/84 - put name of OPTCTL routine in an include file
! 04/07/84 - put SPECS to constant operations in include file "targ_constfns"
! 03/07/84 - replace scaling factor in OPTCTL by BSCALE
! 04/06/84 - correction to BUSYONX
! 02/04/84 - changes in SUBSUM for DIOITEM(list-directed)
! 15/03/84 - further changes of 4 to W1 in CONOP
! 21/02/84 - Replace increments of 4 by W1 in BUSYONX & CONOP
! 17/01/84 - CORRECT CREATETAB; MAKE BLOCKPOINT RELATIVE IN SETBITS
! 08/11/83 COPIED FROM ERCS06.REL90_OPTCTLB31
!*
%INCLUDE "host_host"
!*
%INCLUDE "targ_target"
!*

==== ercs07/emas-2900/slinksorg_recordin.txt ====
C     EDIT DATE   11MAY78  11:13
C     SOURCE FILE RECORDGAK.IN
C     AUTHOR      GARY A. KUDIS
C     INPUT RECORD DEFINTION
      INTEGER     RCOUNT
      INTEGER     RTYPE
      INTEGER     RSTYPE
      INTEGER     RTMAX
      INTEGER     RSZMAX
      INTEGER     RECORD (41)
      INTEGER     RSIZE
      INTEGER     RSIZES (20)
      COMMON      /RECORD/ RCOUNT
      COMMON      /RECORD/ RTYPE
      COMMON      /RECORD/ RSTYPE
      COMMON      /RECORD/ RTMAX
      COMMON      /RECORD/ RSZMAX
      COMMON      /RECORD/ RECORD
      COMMON      /RECORD/ RSIZE
      COMMON      /RECORD/ RSIZES


==== ercs07/emas-2900/strans_blobfs.txt ====
      'OUTFILE' BLOB.FR
      'HEAD'  TEST OF STRAN PREPROCESSOR
      'INCLUDE' INCLUD,P
      'EJECT'
      DATA ARRAY/'HUMPTY DUMPTY SAT ON A WALL'/
      I=1
      'DO'
         CALL INIT
         CALL PARSE
         'END'
      END

==== ercs07/emas-2900/mixedsrce_calltest2.txt ====
PROGRAM CALLTEST(OUTPUT);
VAR FIVE:INTEGER;
FUNCTION SET5:INTEGER;EXTERN;
FUNCTION CALLFUNC(FUNCTION FUNC:INTEGER):INTEGER;EXTERN;
BEGIN
WRITELN('CALLING CALLFUNC');
FIVE:=CALLFUNC(SET5);
WRITELN('FIVE=',FIVE);
WRITELN('DID IT WORK');
END.

==== ercs07/emas-2900/test3b.txt ====
program test3;
var g1,g2,i1:integer;

procedure three(p1:integer);

  procedure in3;
  var i2:integer;
  begin
  g1:=3;
  end;

begin
g2:=2;
in3;
p1:=g1;
end;

begin
three(i1);
end.

==== ercs07/emas-2900/mixedsrce_calltest3.txt ====
PROGRAM CALLTEST(OUTPUT);
VAR FIVE:INTEGER;
FUNCTION SETVAL(VAL:INTEGER):INTEGER;EXTERN;
PROCEDURE CALLFUNC(FUNCTION FUNC:INTEGER;PARAM:INTEGER;VAR RES:INTEGER);
EXTERN;
BEGIN
WRITELN('CALLING CALLFUNC');
CALLFUNC(SETVAL,5,FIVE);
WRITELN('FIVE=',FIVE);
WRITELN('DID IT WORK');
END.

==== ercs07/emas-2900/f77comp1.txt ====
!* modified 10/03/82
!*
!*************************** EXPORTS **********************
!*
%ROUTINESPEC F77COMP(%INTEGER A,B,
   %HALFINTEGER C,D,E,F,G,H,I,J,K,L,M,N,
   %INTEGER INFILE,ERRFILE,OUTFILE,
   %HALFINTEGER ISN,
   %INTEGER MODE,
   %HALFINTEGER NUMIMPORTS,MEMSIZE)
%ROUTINESPEC SOURCE LINE(%INTEGER ABUFF)
%ROUTINESPEC DICFUL
!*
!********************************************************************
!*
!***********************************************************************
!*
!*
!***********************************************************************
!* Formats for accessing dictionary records                            *
!***********************************************************************

==== ercs07/emas-2900/mixedsrce_calltest4.txt ====
PROGRAM CALLTEST(OUTPUT);
VAR FIVE:INTEGER;
FUNCTION SETVAL(VAL:INTEGER):INTEGER;
BEGIN
SETVAL:=VAL;
END;
PROCEDURE CALLFUNC(FUNCTION FUNC:INTEGER;PARAM:INTEGER;VAR RES:INTEGER);
EXTERN;
BEGIN
WRITELN('CALLING CALLFUNC');
CALLFUNC(SETVAL,5,FIVE);
WRITELN('FIVE=',FIVE);
WRITELN('DID IT WORK');
END.

==== ercs07/emas-2900/perqrel3_parsecmd2.txt ====
{-------------------------------------------------------------
{
{ File: ParseCmd.pas
{
{ Abstract:
{
{    Parse the command line, interpreting switches, for the fortran 
{    consolidator. 
{
{------------------------------------------------------------}




{-------------------------------------------------------------}
{
{ Change Log:
{
{ 26 may 82  Rosemary
{ Allow /LIBRARY switch in consolidator
{

==== ercs07/emas-2900/f77comp2.txt ====
!* modified 17/03/82
!*
!*************************** EXPORTS **********************
!*
%ROUTINESPEC F77COMP(%HALFINTEGER A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,
   %INTEGER INFILE,ERRFILE,OUTFILE,
   %HALFINTEGER BLKS,BITS,ISN,
   %INTEGER MODE,
   %HALFINTEGER NUMIMPORTS,MEMSIZE)
%ROUTINESPEC SOURCE LINE(%INTEGER ABUFF)
%ROUTINESPEC DICFUL
!*
!********************************************************************
!*
!***********************************************************************
!*
!*
!***********************************************************************
!* Formats for accessing dictionary records                            *
!***********************************************************************
!*

==== ercs07/emas-2900/fs1.txt ====
SUBFILE: STINIT.FS @16:3 23-MAY-1979 <055> (623)
'HEAD'  INITIALIZATION FOR STRAN
C     EDIT DATE   17JAN79  12:31
C     SOURCE FILE STINIT.FS
C     AUTHOR      F. T. MICKEY
C     CLUSTER     100.100
      'OUTFILE' INITFTM.FR


      SUBROUTINE INIT

      'INCLUDE' STRAN.IN,

      INTEGER GETWRD, GCHAR
      INTEGER INMES (7)

      DATA  INMES /'INPUT FILE:',0/

      INCHAN = 10
      'IF' (FFILE .EQ. 0)
         OUTCHN = -1

==== ercs07/emas-2900/inpds_code1fin.txt ====
C     EDIT DATE   28AUG78  19:40
C     SOURCE FILE CODE1FTM.IN
C     AUTHOR      F. T. MICKEY
C     CLUSTER     X
      INTEGER     WOPTR,  WO (64), TLI,     TL (128)
      INTEGER     BO,     SS,      SS2,     NRFCH
      COMMON      /SCR1/  WOPTR,   WO,      TLI,    TL
      COMMON      /SCR1/  BO,      SS,      SS2,    NRFCH


==== ercs07/emas-2900/slogof_opersdfr.txt ====
 
      BLOCK DATA 
 
      INTEGER  NINE 
      INTEGER  COMMA, SEMIC, PERIOD, COLON, FOR, DOOP, WHILE 
      INTEGER  RBRACE, LBRACE, RETOP, CRUTCH 
      INTEGER  LPAREN, RPAREN, LBK, RBK 
      INTEGER  EQUAL, NEQUAL, GTR, GEQ, LESS, LESSEQ, ARROW 
      INTEGER  PLUS, MINUS, MULT, DIVIDE, MODOP 
      INTEGER  OROP, ANDOP, AOROP, XOROP, AANDOP 
      INTEGER  LSHIFT, RSHIFT, LCYCLE, RCYCLE, ALSHFT, ARSHFT 
      INTEGER  NEG, UPARO, DNARO, COM 
      INTEGER  LOC, GIZZY, QUOTE, ZRL, TEMPL 
      INTEGER  SP, DP, ST, HEX 
      INTEGER  ATSIGN 
      INTEGER  ICLP06 
      COMMON /OPERS/     NINE 
      COMMON /OPERS/     COMMA, SEMIC, PERIOD, COLON, FOR, DOOP, WHILE 
      COMMON /OPERS/     RBRACE, LBRACE, RETOP, CRUTCH 
      COMMON /OPERS/     LPAREN, RPAREN, LBK, RBK 
      COMMON /OPERS/     EQUAL, NEQUAL, GTR, GEQ, LESS, LESSEQ, ARROW 

==== ercs07/emas-2900/fs2.txt ====
SUBFILE: CODE1F.FS @15:59 23-MAY-1979 <055> (679)
'HEAD'  PASS 1 CODE GENERATION
C     EDIT DATE   18JAN79  21:41
C     SOURCE FILE CODE1FTM.FS
C     AUTHOR      F. T. MICKEY
C     CLUSTER     21

      'OUTFILE' BLDBLKFTM.FR
      SUBROUTINE BLDBLK (OBWORD, WFLAG)

      'INCLUDE' LOGOSAJH.IN,
      'INCLUDE' WFLAGSJHP.IN,
      'INCLUDE' CODE1FTM.IN,
      'INCLUDE' NLISTCFTM.IN,
      'INCLUDE' LCONSTAJH.IN,

      INTEGER OBWORD, OW, WFLAG, WF, PRIORS
      INTEGER WFSTEP (17)
      LOGICAL     NLTEST
C                                     1 1 1 1 1 1 1 1
C                   1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7

==== ercs07/emas-2900/slinks_lolinkyl.txt ====
LINK
SLINKY_ACOMPGY     
SLINKY_ALPHAGY     
SLINKY_AREADFY     
SLINKY_ASKGAKY     
SLINKY_ASKQESY     
SLINKY_BITDFNY     
SLINKY_CHARACY     
SLINKY_CHCKERY     
SLINKY_DARRAYY     
SLINKY_DFAULTY     
SLINKY_DNAMESY     
SLINKY_EHXJHPY     
SLINKY_ENPTDFY     
SLINKY_ENTERGY     
SLINKY_ERRDFNY     
SLINKY_ERRORGY     
SLINKY_ESPJHPY     
SLINKY_ESTJHPY     
SLINKY_FINISHY     
SLINKY_FMTRBGY     

==== ercs07/emas-2900/helpsa20_brtamrealio.txt ====
AREA(2)
ALTER(11,X5,X2)
ALTER(15,X4,X2)

==== ercs07/emas-2900/npcpf_pfobj.txt ====
procedure InitValues;
extern;

procedure SetIval(Hostinteger : integer; var Value: ObjectValue);
extern;

procedure SetBval(HostBoolean: Boolean; var Value: ObjectValue);
extern;

procedure Evaluate(var SourceValue : ValueDetails);
extern;

procedure NegateValue(var Velue:Objectvalue);
extern;

function SameValue(Value1,Value2 : Objectvalue):Boolean;
extern;

function OrderedValues(Value1,Value2 : ObjectValue):Boolean;
extern;


==== ercs07/emas-2900/slinkf_dnamesfr.txt ====
    
      SUBROUTINE DNAMES 
    
      INTEGER     NSIZE,  NAME(16), NTITLE  
      INTEGER     NFLAGS (512)  
      INTEGER     NADDRS (512)  
      INTEGER     NPOSIT (512)  
      INTEGER     NDATA  (512)  
      INTEGER     NTEXTX (512)  
      INTEGER     NTEXT  (1000) 
      INTEGER     NLX, NLSTRT, NLSTOP   
      INTEGER     TXSTRT, TXSTOP
      INTEGER     NTXBTS
      INTEGER     USEBIT, COMBIT, OVLBIT, EPTBIT
      INTEGER     LDMBIT, MODBIT, MLTBIT, RLSBIT
      INTEGER     GDFBIT, TYPBTS
      INTEGER     ATYPE 
      INTEGER      ICLP07   
      LOGICAL     OLDNAM
      COMMON      /NTABLE/ NSIZE, NAME, NTITLE  
      COMMON      /NTABLE/ NFLAGS, NADDRS, NPOSIT, NDATA, NTEXTX

==== ercs07/emas-2900/slinksorg_txtcomin.txt ====
C     EDIT DATE   16JAN79  15:23
C     SOURCE FILE TXTCOMGAK.IN
C     AUTHOR      GARY A. KUDIS
      INTEGER     TEXT (27), LEFT (4), RIGHT (4)
      COMMON      /TEXTC/ TEXT, LEFT, RIGHT


==== ercs07/emas-2900/psclsce206_rtsup5.txt ====
! MODIFIED 15/01/81 - DATA FILES I/O BUFFER FAULT
! MODIFIED 26/11/80 - VERSION 20.5 - I/O BUFFER FAULT
!**********************************************************************
!*
!*                    RUN TIME PASCAL
!*
!**********************************************************************
!
!
!**********************************************************************
!*
!*                            CONSTANTS
!*
!**********************************************************************
!
%CONSTINTEGER NO=0,YES=1
%CONSTSTRING(1)%ARRAY HEX TAB(0:15)="0","1","2","3","4","5","6","7", %C
              "8","9","A","B","C","D","E","F"
!
!
!**********************************************************************

==== ercs07/emas-2900/slogof_ldsrcefr.txt ====
    
      SUBROUTINE LDSRCE 
      INTEGER GCHAR 
    
      INTEGER  QUOTEX   
      INTEGER  CONTF
      INTEGER  CONTRL   
      INTEGER  HEAD 
      INTEGER  EJECT
      INTEGER  BLANK
      INTEGER  SLASH
      INTEGER  CARDC
      INTEGER  FLINCT (8)   
      INTEGER  EOCC 
      INTEGER  ENDCRD (3)   
      INTEGER  RECORD (66)  
      INTEGER  RECPTR   
      INTEGER  SOURCE (150) 
      INTEGER  SRCEND   
      INTEGER  SLEN 
      INTEGER  TF (3)   

==== ercs07/emas-2900/slogosorg_code1ffs.txt ====
'HEAD'  PASS 1 CODE GENERATION
C     EDIT DATE   18JAN79  21:41
C     SOURCE FILE CODE1FTM.FS
C     AUTHOR      F. T. MICKEY
C     CLUSTER     21
      'OUTFILE' BLDBLKFTM.FR
      SUBROUTINE BLDBLK (OBWORD, WFLAG)
      'INCLUDE' LOGOSAJH.IN,
      'INCLUDE' WFLAGSJHP.IN,
      'INCLUDE' CODE1FTM.IN,
      'INCLUDE' NLISTCFTM.IN,
      'INCLUDE' LCONSTAJH.IN,
      INTEGER OBWORD, OW, WFLAG, WF, PRIORS
      INTEGER WFSTEP (17)
      LOGICAL     NLTEST
C                                     1 1 1 1 1 1 1 1
C                   1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7
      DATA WFSTEP / 1,0,0,1,2,0,0,3,0,0,0,0,0,0,0,0,0 /
      DATA PRIORS / 0/
      OW = OBWORD
      WF = WFLAG

==== ercs07/emas-2900/slogosorg_cgenajfs.txt ====
'HEAD'  COMPARISON CODE GENERATION
C     EDIT DATE   26JAN79  10:16
C     SOURCE FILE CGENAJH.FS
C     AUTHOR      A. J. HOWARD
C     CLUSTER     19
      'OUTFILE'   CGENAJH.FR
N     OVERLAY     OLCGN
      SUBROUTINE  CGEN
C     GENERATE CODE FOR COMPARISONS
      'INCLUDE'   ATESTAJH.IN,
      'INCLUDE'   CPAREAJH.IN,
      'INCLUDE'   NLISTCFTM.IN,
      'INCLUDE'   OPERSAJH.IN,
      'INCLUDE'   REGSJHP.IN,
      'INCLUDE'   RMCODES.IN,
      'INCLUDE'   STKDEFA.IN,
      'INCLUDE'   STKDEFB.IN,
      'INCLUDE'   STKDEFE.IN,
      'INCLUDE'   WFLAGSJHP.IN,
      'INCLUDE'   GENCOMAJH.IN,
      INTEGER     NLOPS

==== ercs07/emas-2900/sforf_printf.txt ====
      SUBROUTINE PRINT
      INTEGER  INPTR
      INTEGER  OUTPTR
      INTEGER  INMAX
      INTEGER  MAXTAB
      INTEGER  MAXLIN
      INTEGER  IFMAX
      INTEGER  MAXLEV
      INTEGER  LINENO
      INTEGER  PAGE
      INTEGER  CLINE
      INTEGER  TLIMIT
      INTEGER  LN
      INTEGER  I, J, K
      INTEGER  II, JJ, KK
      INTEGER  LEXVAL
      INTEGER  SLEN
      INTEGER  LEVEL
      INTEGER  LEN
      INTEGER  INCHAN
      INTEGER  OUTCHN

==== ercs07/emas-2900/slinkf_popmdgfr.txt ====
    
      SUBROUTINE POPMD  
    
      LOGICAL     MPFLAG
      LOGICAL     OVMODE
      LOGICAL     LBMODE
      LOGICAL     LOADRB
      LOGICAL     SFLAG 
      INTEGER     VERS  
      INTEGER     LOADAD
      INTEGER     ZLOC, ZSTR, ZMAX, ZLIMIT  
      INTEGER     CLOC, CSTR, CMAX, CLIMIT  
      INTEGER     NLOC, NSTR, NMAX, NLIMIT  
      INTEGER     DLOC, DSTR, DMAX, DLIMIT  
      INTEGER     OLOC, OMAX, OSET  
      INTEGER     START 
      INTEGER     MODNLX
      INTEGER     CKSUM 
      INTEGER     KEY   
      INTEGER ICLP05
      COMMON      /LDATAX/ MPFLAG   

==== ercs07/emas-2900/kbscscec_fmacsc.txt ====
 SUBTITLE 1
      *FORNAT OF FILE BLOCK
&FILENUMBER AWORD 0
&FILENAME AWORD 1
&FILEUS AWORD (&FILENAME+4)
&FILESTATUS AWORD (&FILEUS+2)
&FILEMARGIN AWORD (&FILESTATUS+1)
&FILEROUTE AWORD (&FILEMARGIN+1)
&FILECURR AWORD (&FILEROUTE+1)
&FILEBUFFER AWORD (&FILECURR+2)
&FILEBUFDR AWORD (&FILEBUFFER+2)  *ACTUAL BUFFER DESC
&FILEENDGOTO AWORD (&FILEBUFDR+2)
&FILERECNUMB AWORD (&FILEENDGOTO+1)
&FILEHDLENG AWORD (&FILERECNUMB+1)
 SUBTITLE 1
      *STATUS BITS FOR FILE STATUS
&NULLSTATUS AWORD 0
&FILEMODEIN AWORD 1
&FILEMODEOUT AWORD 2
&FILEMODEDEL AWORD 32
&ASSDSTATUS AWORD 4

==== ercs07/emas-2900/slogos_setequin.txt ====
C     EDIT DATE   14SEP78  13:22
C     SOURCE FILE SETEQUAJH.IN
C     AUTHOR      A. J. HOWARD
      INTEGER     LNAMEX, LMODE, LOPC, LWFOP, LWFOPN
      INTEGER     RNAMEX, RMODE, ROPC, RWFOP, RWFOPN
      EQUIVALENCE (LNAMEX, NAMEX  (19))
      EQUIVALENCE (LMODE,  MODE   (19))
      EQUIVALENCE (LOPC,   OPCODE (19))
      EQUIVALENCE (LWFOP,  WFOP   (19))
      EQUIVALENCE (LWFOPN, WFOPND (19))
      EQUIVALENCE (RNAMEX, NAMEX  (20))
      EQUIVALENCE (RMODE,  MODE   (20))
      EQUIVALENCE (ROPC,   OPCODE (20))
      EQUIVALENCE (RWFOP,  WFOP   (20))
      EQUIVALENCE (RWFOPN, WFOPND (20))


==== ercs07/emas-2900/lpds_ctxdeflo.txt ====
''HEAD, CTX DEFAULT DEFINITIONS
     // EDIT DATE   06OCT78  15:00
     // SOURCE FILE CTXDEFS.LO
     // AUTHOR      A. J. HOWARD
     // DEFAULT CTX DEFINITIONS ALLOCATED TO 'ZREL'
     'ZREL' 'LBR'
        CT0: CT0 [2],
        CT1: CT1 [2],
        CT2: CT2 [2],
        CT3: CT3 [2],
        CT4: CT4 [2],
        CT5: CT5 [2],
        CT6: CT6 [2],
        'RBR'
 ;
 ;DEFAULT CTX:
     .....
''END


==== ercs07/emas-2900/slinks_lolinkzl.txt ====
LINK
LOLINKY
SLINKY_XSUCESY
SLINKY_LEMASAY
SLINKY_LEMASCY
.END
LOLINKZ
DESTROY LOLINKY

==== ercs07/emas-2900/op2v10.txt ====
! 10.02.83 - OP2V10 - CHECK FOR NO LOOPS BEFORE CALLING LOOPBUILD IN OP2
{09/02/83  suppress BACKMOVE of ASGN, DEFARR if LOOPCON1 = 0}
{24/01/83  ensure no code after column 80}
{19/01/83  mask top bit in _FCON}
{13/01/83  test for IFUN in OP2A}
{06/01/83  correct ATABS mappings in BMOVCHECK}
{30/12/82  update triads for intrinsics}
{20/12/82  FUN triad param chaining corrected}
{13/12/82  include BACKMOVE }
{29/11/82  perform optimisations unless inhibited by bit settings in INHIBMASK}
!*
%INCLUDE "ERCS06.OPT_SPECS"
%INCLUDE "ERCS06.PERQ_TRIADOPS"
!
%ROUTINESPEC BACKMOVE
!
!
%EXTERNALROUTINE OP2
!
!
%EXTERNALROUTINESPEC GLOBSUBS

==== ercs07/emas-2900/slogosorg_gencmbin.txt ====
C     EDIT DATE   09OCT78  11:13
C     SOURCE FILE GENCOMFTM.IN
C     AUTHOR      F. T. MICKEY
C     CLUSTER     X
      INTEGER GENRET
      INTEGER MODEX
      INTEGER RAWMDX
      INTEGER SPTR
C     GENER FUNCTIONS
      INTEGER TSTSTK    // TEST STACK
      INTEGER SWAP
      INTEGER TOPDP     // CONVERT (TOPX) TO DP
      INTEGER NEXTDP    // CONVERT (NEXTX) TO DP
      INTEGER TOPSP     // CONVERT (TOPX) TO SP
      INTEGER NEXTSP    // CONVERT (NEXTX) TO SP
      INTEGER SAVCAL    // SAVE ANY ACTIVE REGISTERS
      INTEGER OUT
      INTEGER GETSP     // GET STACK POINTER
      INTEGER SMODEX    // SET MODEX
      INTEGER SETX
      COMMON   /GENC/   GENRET

==== ercs07/emas-2900/f77dumcomp1.txt ====
MODULE F77Comp;


EXPORTS

IMPORTS FortranCompiler FROM Fortran;

procedure dumcomp;
PROCEDURE F77Com(
                  NumOutFile,         { FileID of output (.SEG or .PSG) file } 
                  InFileNum : FileID; { FileID of input file } 
      
                  Extern,          { TRUE if /EXTERN switch to be in effect }
                  Range,           { TRUE if /RANGE switch to be in effect }
                  Check,           { TRUE if /CHECK switch to be in effect }
                  List,            { TRUE if /LIST switch to be in effect }
                  Code,            { TRUE if /CODE switch to be in effect }
                  XRef,            { TRUE if /XREF switch to be in effect }
                  Attr,            { TRUE if /ATTRIBUTE switch to be in effect}
                  Noisy,           { TRUE if /NOISY switch to be in effect }
                  Query,           { TRUE if /QUERY switch to be in effect }

==== ercs07/emas-2900/mixedsrce_functest.txt ====
PROGRAM FUNCTEST(OUTPUT);
VAR T2,D:INTEGER;
FUNCTION TWO(VAR DUMMY:INTEGER):INTEGER;EXTERN;
BEGIN
WRITELN('CALLING TWO');
T2:=TWO(D);
WRITELN('TWO =',T2);
WRITELN('DID IT WORK');
END.

==== ercs07/emas-2900/slogof_bldblkfr.txt ====
 
      SUBROUTINE BLDBLK (OBWORD, WFLAG) 
 
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG 
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV 
      INTEGER     NEXT,   NUMBER, I,      IOTYPE 
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE 
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP 
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT 
      INTEGER ICLP05 
      LOGICAL     ENDOK,CONEND 
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG 
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV 
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE 
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N 
      COMMON   /LOGOS/  PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE 

==== ercs07/emas-2900/slogof_pnentafr.txt ====
    
      SUBROUTINE  PNENT 
    
      INTEGER  NI,     NJ,     NK   
      INTEGER  NSIZE
      INTEGER  NLX,    FNLX,   REMNLX, OVNLX,  TNAME
      INTEGER  NLSTRT, NLSTOP, NLSIZE, SRCHST   
      INTEGER  NTSTRT   
      INTEGER  NTSTOP   
      INTEGER  NTSIZE   
      INTEGER  PARFLG   
      INTEGER  SPARFL   
      INTEGER  NLWRDS   
      INTEGER  TX   
      INTEGER  NLENO
      INTEGER  STDMD
      INTEGER  MSHIFT   
      INTEGER  REGCNT   
      INTEGER  NULLX
      INTEGER  STPTRX   
      INTEGER  SPMODE   

==== ercs07/emas-2900/psclsce2011_ctsup11.txt ====
! MODIFIED 14/10/81 -  VERSION 20.11
! ADJUSTMENTS TO OWN VARIABLES IN PACSM TO MAKE CODE REENTRANT
! DEFINE EXTERNALS ICL9LPGLICL9LPLIBNUC,ICL9LPGLICL9LPJCLPROCS,
! ICL9LPGICL9LPCOMPILE,ICL9LPGICL9LPCTSYSIF
! IN PASCAL ROUTINE, CHECK COMREG(24) ON EXIT FROM COMPILE
!**********************************************************************
!*
!*                         P A S C A L
!*
!*                COMPILER ENVIRONMENT ROUTINES
!*
!**********************************************************************
!
!
!**********************************************************************
!*
!*                            CONSTANTS
!*
!**********************************************************************
!
%CONSTINTEGER SEGMENTK=256,SEGMENT=262144

==== ercs07/emas-2900/bscbase16.txt ====
!
!***********************************************************************
!
!***********************************************************************
!*
!* DIRECTOR ROUTINES DCONNECT & DDISCONNECT REPLACED BY SUBSYSTEM
!* ROUTINES CONNECT & DISCONNECT 
!* 14/11/78  --  L.A.B.
!*
!**********************************************************************
!
!
!*
!*                EMAS 2900 INTERFACE FOR KENT BASIC
!*
!**********************************************************************
!
!
!**********************************************************************
!*
!*                            CONSTANTS

==== ercs07/emas-2900/slinkf_alphagfr.txt ====
    
      SUBROUTINE ALPHA  
      INTEGER     ACOMP 
      EXTERNAL    ACOMP 
    
      INTEGER     LIST (512)
      INTEGER     NAMES (512)   
      INTEGER     NCOUNT
      INTEGER     LSTOP 
      COMMON      /PNAMES/    LIST  
      COMMON      /PNAMES/    NAMES 
      COMMON      /PNAMES/    NCOUNT
      COMMON      /PNAMES/    LSTOP 
    
      INTEGER     NSIZE,  NAME(16), NTITLE  
      INTEGER     NFLAGS (512)  
      INTEGER     NADDRS (512)  
      INTEGER     NPOSIT (512)  
      INTEGER     NDATA  (512)  
      INTEGER     NTEXTX (512)  
      INTEGER     NTEXT  (1000) 

==== ercs07/emas-2900/rel4_intrin6.txt ====
module f77intrin;

{ updated 27/04/82 - parameters to f77power,f77pwri changed }

exports

imports complexfunctions from f77complexfunctions2;
function floatlong(arg:long):real;
function trunclong(arg:real):long;
function roundlong(arg:real):long;
function f77sqrt(var x,dum:real):real;
function f77exp(var x,dum:real):real;
function f77log(var x,dum:real):real;
function f77log10(var x,dum:real):real;
function f77sin(var x,dum:real):real;
function f77cos(var x,dum:real):real;
function f77tan(var x,dum:real):real;
function f77asin(var x,dum:real):real;
function f77acos(var x,dum:real):real;
function f77atan(var x,dum:real):real;
function f77atan2(var x,dum1,y,dum2:real):real;

==== ercs07/emas-2900/dsa20_sflforrt.txt ====
SFLFORRT MODULE
*
*
 INCLUDE SMACS
*
*
 CHAPTER
*
*
 PROC ICL9LPRTTIDYPROCDESC
*
 EXT .ICL9LPRTTIDY
 CODE
 LSD D'.ICL9LPRTTIDY
 EXIT
*
*
 PROC ICL9LPRTGETICL9HERRADDR
 CDATA ICL9HERRADDR
HERRADDR W
 CODE

==== ercs07/emas-2900/pffiles_main.txt ====
procedure Abort;
  extern;

==== ercs07/emas-2900/pddemo_ioa3.txt ====
   !Modified  13/ 4/82   15.00





!**********************************************************************!
!**********************************************************************!
     !                                                            !
     !                                                            !
     !     This Module is designed to provide Formatted Input     !
     !                                                            !
     !                for FORTRAN77  Programs                     !
     !                                                            !
     !                 on ICL  PERQ  Machines                     !
     !                                                            !
     !                                                            !
!**********************************************************************!
!**********************************************************************!



==== ercs07/emas-2900/dsa20_pmpack.txt ====
%RANGECHECKS=NO
%CHARCODE=EBCDIC
%DIAGLINEMAP=NO
%DIAGNAMETABLE=NO
(*
 ***********************************************************************
 *                                                                     *
 *  GLASGOW UNIVERSITY PASCAL DIAGNOSTICS PACKAGE                      *
 *                                            VERSION : APRIL 1980     *
 *                                                                     *
 *  AUTHOR:        D.A. WATT                                           *
 *                 COMPUTING SCIENCE DEPARTMENT                        *
 *                 UNIVERSITY OF GLASGOW                               *
 *                                                                     *
 *  ADAPTED FOR                                                        *
 *  2900 OPEH:     W. FINDLAY                                          *
 *                 COMPUTING SCIENCE DEPARTMENT                        *
 *                 UNIVERSITY OF GLASGOW                               *
 *                                                                     *
 ***********************************************************************
 

==== ercs07/emas-2900/helpsa20_addjclrtsyn.txt ====
MACRO ADDJCLRTSYN20 IS (
   LITERAL (OMFLIB) %OMFLIB)
MACBEGIN
STRING %OMFFILE := %OMFLIB + '.ICL9LPJCLPROCS'
BEGIN
AMENDMODULE(%%OMFFILE,,HELPSOURCE.MAADDJCLRTSYN20)
SMSG('RETURN FROM MOD AMENDER')
END
MACEND

==== ercs07/emas-2900/dsea20_lnedlate1.txt ====
T/CONST/
TS/GLOBALAREAMINLENWD/ R/6/8/
T/TYPE/
TS/GLOBALAREA =/ TS/BASELNBAD/ A/ADDRESS/ ;/ T+1
I/      JLKLINKREF : ADDRESS ;
      SPARE : WORD
/
TS/KINDOFBLOCK =/ T+2
I/  JLKDIAGDATAREC =
    RECORD
      ADATTOPOFSTACKFRAME,
      ADOFGLOBALAREA : ADDRESS
    END;
   
/
TC/TIME ROUTINES/ PC/MATHS./
T/VAR/
TS/COMPILERSTACKBASEAD/ T+1
I/  TEMPJLKDIAGDATA : JLKDIAGDATAREC ;///
T/PROCEDURE  JRNLFINISHMSG/
TC/HEAP BYTES/ R/USED:/USED : / R/7/1/

==== ercs07/emas-2900/npc1_fileio.txt ====
{

                           MODULE 4
 
 
                       UNIX i/o Support
 
 
 
 
 
 This module provides a low-level interface to the UNIX  file  sys-
 tem.   Whilst  the module contains procedures for both reading and
 writing, in practice, only the read procedures are currently used.
 
 The details of a file are represented by the type UnixFile,  whose
 fields  include an i/o buffer, a descriptor, and a file mode flag.
 Files can be opened for reading  or  writing,  but  not  both.  To
 minimise  disk  transfers,  i/o  is  performed on a block-by-block
 basis. The block-size is in turn determined by  the  disk  format,
 and in this implementation is 512 bytes.

==== ercs07/emas-2900/dsa20_ctsysyif.txt ====
(*#T-,C0
%RANGECHECKS=NO
%CHARCODE=EBCDIC
*)
 
PROGRAM ICL9LPCTSYSIF ;
 
 
CONST
 
      (* GENERAL, HARDWARE:- *)
  
   MAXINTFORBYTE = 255 ;
   BYTESINWORD = 4 ;
   BITSINBYTE = 8 ;
   SEGBSIZE = ?I 40000 ;
   MAXBIXINSEG = ?I 3FFFF ;
   SEGWDSIZE = ?I 10000 ;
   MAXWDIXINSEG = ?I FFFF ;
   NILDESC=?D FFFFFFFFFFFFFFFF;
   NILAD=0;

==== ercs07/emas-2900/slogof_rdnamefr.txt ====
 
      SUBROUTINE  RDNAME (ACHAR) 
 
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG 
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV 
      INTEGER     NEXT,   NUMBER, I,      IOTYPE 
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE 
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP 
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT 
      INTEGER ICLP05 
      LOGICAL     ENDOK,CONEND 
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG 
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV 
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE 
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N 
      COMMON   /LOGOS/  PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE 

==== ercs07/emas-2900/npc1_source.txt ====
{

                           MODULE 5
 
 
                         Source Input
                             and
                      Listing Generation
 
 
 
 
 
 Source input and listing generation are implemented by the follow-
 ing procedures:-
 
 Nextch     This procedure reads the next source character from the
            source  file, copies it to the listing file, and leaves
            its value in the global variable Ch.   A  corresponding
            value representing the position of the character in the
            source text is left in  the  variable  Source.Position.

==== ercs07/emas-2900/culmoldsce_prsdis.txt ====
%BEGIN
!
!    TEST PROGRAM FOR RDSDI AND CHECK ON SDI FILE PRODUCED BY LIBRIP
!
%ROUTINESPEC RDSDI(%INTEGERNAME UNIT,BLOCK,POSN,NO)
!
!?? SHORT; %INTEGERARRAY IRDIRC(1:32)        ;! RECORD DIRECTORY
%BYTEINTEGERARRAY IRTEXT(1:500)        ;! RECORD TEXT
!
%INTEGER CHECK                         ;! CJECK INDICATOR
%INTEGER YES                           ;! CONSTANT
%INTEGER MXDIRC                        ;! DIRECTORY SIZE
%INTEGER MXBUFS                        ;! I/O BUFFER SIZE
%INTEGER MXCNTB                        ;! CONTROL BUFFER SIZE           00001350
%INTEGER I                             ;! LOOP VARIABLE
%INTEGER BLOCK                         ;! BLOCK CONTAINING START OF REC
%INTEGER POSN                          ;! POSITION IN BLOCK
%INTEGER NO                            ;! ENTRY NUMBER INDICATOR
%INTEGER UNIT                          ;! SDI UNIT NUMBER
%INTEGER IN                            ;! NEXT ACTION INDIC
%INTEGER WEEKNO                        ;! CURRENT WEEK NUMBER

==== ercs07/emas-2900/test5b.txt ====
program print;
var a,b:integer;
procedure printint (a:integer);extern;

begin
printint(a);
end.


==== ercs07/emas-2900/cobolsce_cobtext.txt ====


                    C O B O L
                   -----------

 THE ICL COBOL COMPILER HAS BEEN TRANSFERRED TO EMAS TOGETHER
WITH A SUBSET OF THE RUN TIME SUPPORT. ONLY EMAS DATA FILES CAN
BE PROCESSED IN THIS FIRST VERSION AND ONLY SEQUENTIAL ACCESS IS
AVAILABLE. THE SORTING FACILITIES ARE NOT AVAILABLE.
   THE FOLLOWING COMMANDS ARE USED
   COBOL   COBRUN   COBDEFINE  AND COBJSVAR

  THE FOLLWING DIRECTIVES SHOULD BE ISSUED
    EXTENDSESSIONDIRECTORY(1500,5000)
     OPTION(SEARCHDIR=ERCS10.COBDIR)

COBOL

======
  THIS IS USED TO COMPILE A PROGRAM. THE SIMPLEST FORM IS
     COBOL(SOURCEFILE,OBJECTFILE)


==== ercs07/emas-2900/pcfiles_dump2.txt ====

{

 History
 -------

 17/10/85 - this module created.
 18/10/85 - history tidied. (agh)
 21/10/85 - reformatted. (agh)
 21/10/85 - DiagnosticFile changed to DiagFile to avoid clash
            with DiagnosticHandler in module 6. (agh)

                                                                  }
{

			MODULE 29


		Diagnostic File Generation

								  }

==== ercs07/emas-2900/strans_gcharfr.txt ====
    
      INTEGER FUNCTION GCHAR(BUF,INDEX) 
      INTEGER BUF(1),INDEX  
      INTEGER SHIFT(4),MASK(4),IPOS 
      DATA  MASK/ZFF000000,Z00FF0000,Z0000FF00,Z000000FF/   
      DATA SHIFT/      -24,      -16,       -8,        0/   
      I=ISHFT(INDEX+3,-2)   
      IPOS=IAND(INDEX-1,3)+1
      GCHAR=ISHFT(IAND(BUF(I),MASK(IPOS)),SHIFT(IPOS))  
      RETURN
      END   

==== ercs07/emas-2900/rel6_aux13.txt ====
!* MODIFIED 08/04/82  02.00
!*
!              
!                         EXPORT LIST
!
!
%ROUTINESPEC F77 STOP(%HALFINTEGER PTYPE,%INTEGER VAL)
%ROUTINESPEC F77 PAUSE (%HALFINTEGER PTYPE,%INTEGER VAL)
%ROUTINESPEC F77 RTERR(%HALFINTEGER ERRNO)
%ROUTINESPEC F77 IOERR(%HALFINTEGER ERRNO)
%HALFINTEGERFNSPEC F77 CONCAT(%INTEGER OUTPUTBASE,
      %HALFINTEGER OUTPUT DISP,OUTPUT LEN,%INTEGER COUNT,
ADDRINPUTDESCS,%HALFINTEGER SPACEFILL)
%ROUTINESPEC F77COPY (%INTEGER SCE BASE,%HALFINTEGER SCE DISP,
SOURCE LEN,%INTEGER TARGET BASE,%HALFINTEGER TARGET DISP,TARGET LEN)
%INTEGERFNSPEC F77 INDEX (%INTEGER SEARCHBASE,
%HALFINTEGER SEARCHDISP,SEARCHLEN,%INTEGER KEYBASE,%HALFINTEGER KEYDISP,
KEYLEN)
%ROUTINESPEC F77 CMULTC(%INTEGER AD,%REAL R1,C1,R2,C2)
%ROUTINESPEC F77 CDIVC(%INTEGER AD,%REAL R1,C1,R2,C2)
%INTEGERFNSPEC F77 CXREL(%REAL R1,C1,R2,C2)

==== ercs07/emas-2900/slogof_lsdatafr.txt ====
    
      BLOCK DATA
    
      INTEGER  LINSTR (512) 
      COMMON   /LSTD/   LINSTR  
    
      INTEGER  L0INS (32), L1INS (32), L2INS (32), L3INS (32)   
      INTEGER  L4INS (32), L5INS (32), L6INS (32), L7INS (32)   
      INTEGER  L8INS (32), L9INS (32), LAINS (32), LBINS (32)   
      INTEGER  LCINS (32), LDINS (32), LEINS (32), LFINS (32)   
      EQUIVALENCE ( L0INS (1), LINSTR (  1) )   
      EQUIVALENCE ( L1INS (1), LINSTR ( 33) )   
      EQUIVALENCE ( L2INS (1), LINSTR ( 65) )   
      EQUIVALENCE ( L3INS (1), LINSTR ( 97) )   
      EQUIVALENCE ( L4INS (1), LINSTR (129) )   
      EQUIVALENCE ( L5INS (1), LINSTR (161) )   
      EQUIVALENCE ( L6INS (1), LINSTR (193) )   
      EQUIVALENCE ( L7INS (1), LINSTR (225) )   
      EQUIVALENCE ( L8INS (1), LINSTR (257) )   
      EQUIVALENCE ( L9INS (1), LINSTR (289) )   
      EQUIVALENCE ( LAINS (1), LINSTR (321) )   

==== ercs07/emas-2900/rel11opt_oplistp46.txt ====
! 21/10/84 replace calls on OPVALS at SW(LOADB) & SW(STOREB) in FORMLINE
!          new SW(GLALIT) at SW(STKLIT) in GEN
! 18/09/84 - insert switch for STFNID in GEN and delete array QUAL
! 10/07/84 new version of targ_fptos
! 05/07/84 new switch SW(INTRIN) in FORMLINE
! 03/07/84 make FPTOS a string function and put in an include file
!          set up string REG1 in targ_target & substitute for "reg-1"
!          remove OPVALS for LOADB & STOREB
!          define INTRINFNS to output new INTRIN fns
! 21/03/84 amend arrays SW, RTOL, ENDS, OPVALS. Delete ST & SZTY & REG
! 19/03/84 add in ADICT on calls to FPTOS
! 08/03/84 change INTEGER mapping increments to W1 etc.
! 28/02/84 FPTOS inserted
! 01/10/1/83 copied from ERCS06.REL90_OPLISTB36
!*
%CONSTINTEGER OPSYS=1
!   =0  (Emas ISO)
!   =1  (VME  EBCDIC)
!*
%INCLUDE "host_host"
!*

==== ercs07/emas-2900/slogof_pcharfr.txt ====
    
      SUBROUTINE PCHAR (BUF, INDEX, CHAR)   
      INTEGER  BUF (66), INDEX, CHAR
      INTEGER  I
      I = ISHFT (INDEX+1, -1)   
      IF (.NOT. (IAND (INDEX, 1) .NE. 0))GO TO 13002
    
      BUF (I) = IAND (BUF (I), 255) + ISHFT (CHAR, 8)   
      GO TO 13003   
13002 CONTINUE  
    
      BUF (I) = IAND (BUF (I), -256) + IAND (CHAR, 255) 
13003 CONTINUE  
    
      RETURN
      END   

==== ercs07/emas-2900/slogof_oregapfr.txt ====
    
      SUBROUTINE OREGS(FUNC, OPND, OTYPE, SUBSC, STYPE, BIAS, REG)  
      INTEGER     FUNC, OPND, OTYPE, SUBSC, STYPE, BIAS, REG
    
      INTEGER  NI,     NJ,     NK   
      INTEGER  NSIZE
      INTEGER  NLX,    FNLX,   REMNLX, OVNLX,  TNAME
      INTEGER  NLSTRT, NLSTOP, NLSIZE, SRCHST   
      INTEGER  NTSTRT   
      INTEGER  NTSTOP   
      INTEGER  NTSIZE   
      INTEGER  PARFLG   
      INTEGER  SPARFL   
      INTEGER  NLWRDS   
      INTEGER  TX   
      INTEGER  NLENO
      INTEGER  STDMD
      INTEGER  MSHIFT   
      INTEGER  REGCNT   
      INTEGER  NULLX
      INTEGER  STPTRX   

==== ercs07/emas-2900/slinks_lpass1fs.txt ====
'HEAD'  LINKER, PASS 1
C     EDIT DATE   01FEB79  17:26
C     SOURCE FILE LPASS1GAK.FS
C     AUTHOR      GARY A. KUDIS
C     CLUSTER     4
      'OUTFILE' LPASS1GAK.FR
      SUBROUTINE PASS1
      'INCLUDE' RECORDGAK.IN,
      'INCLUDE' IODEFNGAK.IN,
      'INCLUDE' IOFILEGAK.IN,
      LOGICAL     ERX, EOF, KEYWD
      INTEGER     I, DUMMY
C PASS1 ::
X     WRITE (DBCHAN, 1)
X1    FORMAT (' ENTER PASS1')
      'DO'
         CALL GETFL (ERX, EOF)
         IF (ERX) GO TO 9998
         IF (EOF) GO TO 9999
         'IF' (KEYWD(DUMMY))
            CALL SETKEY

==== ercs07/emas-2900/slogos_gencomin.txt ====
C     EDIT DATE   07SEP78  11:28
C     SOURCE FILE GENCOMAJH.IN
C     AUTHOR      A.  J. HOWARD
      INTEGER     OP, LEFT, RIGHT, LSTKX, RSTKX
      INTEGER     TS, LOAD, BASE
      INTEGER     THIS, OTHER, SIDE, HI, LOW
      INTEGER     INTBR, ROW, COL, INREG, OUTREG
      INTEGER     BCC, BNE
      INTEGER     CLC, JMP, LDAABS, LDAI, LDAZP
      INTEGER     SBCI, SEC, STAZP, TAX, TXA
      LOGICAL     COMZER, EZSTA, MORE
      COMMON      /GCOM/   OP, LEFT, RIGHT, LSTKX, RSTKX
      COMMON      /GCOM/   TS, LOAD, BASE
      COMMON      /GCOM/   THIS, OTHER, SIDE, HI, LOW
      COMMON      /GCOM/   INTBR, ROW, COL, INREG, OUTREG
      COMMON      /GCOM/   BCC, BNE
      COMMON      /GCOM/   CLC, JMP, LDAABS, LDAI, LDAZP
      COMMON      /GCOM/   SBCI, SEC, STAZP, TAX, TXA
      COMMON      /GCOM/   COMZER, EZSTA, MORE

C     EDIT DATE   09OCT78  11:13

==== ercs07/emas-2900/npcpf_pfcodeinit.txt ====
procedure InitCodeGeneration;
extern;

procedure EndCodeGeneration;
extern;

==== ercs07/emas-2900/dsea20_coedfnldir.txt ====
T/%RANGECHECKS/ R/YES/NO/ TELE

==== ercs07/emas-2900/oldqfiles_f77anal2.txt ====
!* 23/03/82   
!*
!************  IMP80 version  ************
!*
%CONSTINTEGER TESTVERSION=1;!  0  NO   1  YES
%CONSTINTEGER DICTVERSION=0;!  0  EMAS   1  VME
!*
!{2900C} %CONSTINTEGER W1=2
!{2900C} %CONSTINTEGER W2=4
!{2900C} %CONSTINTEGER W4=8
!{2900C} %CONSTINTEGER W6=12
{PERQC} %CONSTINTEGER W1=1
{PERQC} %CONSTINTEGER W2=2
{PERQC} %CONSTINTEGER W4=4
{PERQC} %CONSTINTEGER W6=6
!*
!*
!**** SYNTAX ****
!*
!* Syntax tables generated from file SYNTAX48 on 11/03/82 at 06.51.27
!*

==== ercs07/emas-2900/pddemo_iob3.txt ====
   !Modified  14/ 4/82   18.00





!**********************************************************************!
!**********************************************************************!
    !                                                           !
    !                                                           !
    !     This Module is designed to provide Formatted Output   !
    !                                                           !
    !                for FORTRAN77  Programs                    !
    !                                                           !
    !                 on ICL  PERQ  Machines                    !
    !                                                           !
    !                                                           !
!**********************************************************************!
!**********************************************************************!



==== ercs07/emas-2900/npcpf_pfdata.txt ====
function WordsFor(Units,UnitsPerWord: Scalar): Scalar;
extern;

procedure SetCheckValue(var Representation: TypeRepresentation);
extern;

function Cardinality(OrdinalType: TypeForm): integer;
extern;

procedure AugmentRepresentationFor(TheType: TypEntry);
extern;

procedure SetRepresentationFor(TheType: TypEntry);
extern;

function APartWord(Representation: TypeRepresentation): Boolean;
extern;

function StructuredWord(Representation: TypeRepresentation): Boolean;
extern;


==== ercs07/emas-2900/slogof_regoutfr.txt ====
    
      SUBROUTINE  REGDMP (FLAG) 
    
      INTEGER     NAME (9)  
      COMMON      /NLNAME/ NAME 
    
      INTEGER     ACADDR (11), ACTYPE (11), ACSUBS (11) 
      INTEGER     ACSBTY (11), ACBIAS (11)  
      INTEGER     REGSTK(120)   
      COMMON      /RMCOM/  ACADDR, ACTYPE, ACSUBS, ACSBTY, ACBIAS   
      COMMON      /RMCOM/  REGSTK   
    
      INTEGER     LISTF,  SNLPRT, SUMPRT, SYMFLG
      INTEGER     PRINTF, SKIP,   COMPFL (2)
      INTEGER     LOCPRT, USFLGS, NEGFLG, SKNAME (8)
      INTEGER     ORGFLG, CTLUSE, CTLERR, TTL (8)   
      INTEGER     DUMFLG
      INTEGER ICLP01
      COMMON      /CTLCOM/    LISTF,  SNLPRT, SUMPRT, SYMFLG
      COMMON      /CTLCOM/    PRINTF, SKIP,   COMPFL
      COMMON      /CTLCOM/    LOCPRT, USFLGS, NEGFLG, SKNAME

==== ercs07/emas-2900/oldqfiles_f77anal3.txt ====
!* 25/03/82   
!*
!************  IMP80 version  ************
!*
%CONSTINTEGER TESTVERSION=1;!  0  NO   1  YES
%CONSTINTEGER DICTVERSION=0;!  0  EMAS   1  VME
!*
!{2900C} %CONSTINTEGER W1=2
!{2900C} %CONSTINTEGER W2=4
!{2900C} %CONSTINTEGER W4=8
!{2900C} %CONSTINTEGER W6=12
{PERQC} %CONSTINTEGER W1=1
{PERQC} %CONSTINTEGER W2=2
{PERQC} %CONSTINTEGER W4=4
{PERQC} %CONSTINTEGER W6=6
!*
!*
!**** SYNTAX ****
!*
!* Syntax tables generated from file SYNTAX48 on 11/03/82 at 06.51.27
!*

==== ercs07/emas-2900/slogos_ddefftfs.txt ====
'HEAD'  INITIAL DATA VALUE DEFINITIONS
C     EDIT DATE   14JAN79  09:50
C     SOURCE FILE DDEFFTM.FS
C     AUTHOR      F. T. MICKEY
      'OUTFILE' BRACEDATA.FR
      BLOCK DATA
      'INCLUDE' BRACEFTM.IN,P
      DATA  BRACEX   /1/
      DATA  SELX     /1/
      DATA  LSX      /2/ , WHSTRT   /30*0/
      DATA  SELXB    /1/
      DATA  NRFLS    /6/
      END
      'OUTFILE'   BLDPODATA.FR
      BLOCK DATA
      'INCLUDE'   BLDPOAJH.IN,P
      DATA STOAC   /0/
      END
      'OUTFILE' CODE1DATA.FR
      BLOCK DATA
      'INCLUDE' CODE1FTM.IN,P

==== ercs07/emas-2900/slogos_opersain.txt ====
C     EDIT DATE   23FEB78  09:29
C     SOURCE FILE   OPERSAJH.IN
C     AUTHOR        A. J. HOWARD
      INTEGER  NINE
      INTEGER  COMMA, SEMIC, PERIOD, COLON, FOR, DOOP, WHILE
      INTEGER  RBRACE, LBRACE, RETOP, CRUTCH
      INTEGER  LPAREN, RPAREN, LBK, RBK
      INTEGER  EQUAL, NEQUAL, GTR, GEQ, LESS, LESSEQ, ARROW
      INTEGER  PLUS, MINUS, MULT, DIVIDE, MODOP
      INTEGER  OROP, ANDOP, AOROP, XOROP, AANDOP
      INTEGER  LSHIFT, RSHIFT, LCYCLE, RCYCLE, ALSHFT, ARSHFT
      INTEGER  NEG, UPARO, DNARO, COM
      INTEGER  LOC, GIZZY, QUOTE, ZRL, TEMPL
      INTEGER  SP, DP, ST, HEX
      INTEGER  ATSIGN
I     INTEGER  ICLP06
      COMMON /OPERS/     NINE
      COMMON /OPERS/     COMMA, SEMIC, PERIOD, COLON, FOR, DOOP, WHILE
      COMMON /OPERS/     RBRACE, LBRACE, RETOP, CRUTCH
      COMMON /OPERS/     LPAREN, RPAREN, LBK, RBK
      COMMON /OPERS/     EQUAL, NEQUAL, GTR, GEQ, LESS, LESSEQ, ARROW

==== ercs07/emas-2900/mixedsrce_arrtesta.txt ====
%BEGIN
%PROCEDURE ARRTIM4(ARR1,ARR2);
%VALUE ARR1;
%INTEGERARRAY ARR1,ARR2;
%EXTERNAL ARRTIM4;
%INTEGER I;
%INTEGERARRAY ARR1[1:4],ARR2[1:4];
PRINTSTRING(<CALLING_ARRTIM4>);
NEWLINE;
%FOR I:=1 %STEP 1 %UNTIL 4 %DO ARR1[I]:=I;
ARRTIM4(ARR1,ARR2);
%FOR I:=1 %STEP 1 %UNTIL 4 %DO
  %BEGIN
  PRINTSTRING(<ARR2(>);
  PRINT(I,1,0);
PRINTSTRING(<)=>);
  PRINT(ARR2[I],4,0);
NEWLINE;
  %END;
PRINTSTRING(<DID_IT_WORK>);
NEWLINE;

==== ercs07/emas-2900/slogosorg_code1fin.txt ====
C     EDIT DATE   28AUG78  19:40
C     SOURCE FILE CODE1FTM.IN
C     AUTHOR      F. T. MICKEY
C     CLUSTER     X

      INTEGER     WOPTR,  WO (64), TLI,     TL (128)
      INTEGER     BO,     SS,      SS2,     NRFCH
      COMMON      /SCR1/  WOPTR,   WO,      TLI,    TL
      COMMON      /SCR1/  BO,      SS,      SS2,    NRFCH



==== ercs07/emas-2900/slinkf_usememfr.txt ====
    
      SUBROUTINE USEMEM (ADDR, NBYTES)  
      INTEGER     ADDR, NBYTES  
    
      INTEGER     BITS (16) 
      INTEGER     BIT00,BIT01,BIT02,BIT03,BIT04,BIT05,BIT06,BIT07   
      INTEGER     BIT08,BIT09,BIT10,BIT11,BIT12,BIT13,BIT14,BIT15   
      INTEGER     BIT, BITNO
      COMMON      /BITDFN/ BITS 
      COMMON      /BITDFN/ BIT, BITNO   
      EQUIVALENCE (BITS(1),BIT00),(BITS(2),BIT01),(BITS(3),BIT02)   
      EQUIVALENCE (BITS(4),BIT03),(BITS(5),BIT04),(BITS(6),BIT05)   
      EQUIVALENCE (BITS(7),BIT06),(BITS(8),BIT07),(BITS(9),BIT08)   
      EQUIVALENCE (BITS(10),BIT09),(BITS(11),BIT10) 
      EQUIVALENCE (BITS(12),BIT11),(BITS(13),BIT12) 
      EQUIVALENCE (BITS(14),BIT13),(BITS(15),BIT14) 
      EQUIVALENCE (BITS(16),BIT15)  
    
      INTEGER     DICT (400)
      INTEGER     ID, CID, DTSTRT, DTSTOP   
      COMMON      /DARRAY/ DICT 

==== ercs07/emas-2900/f77patch.txt ====
program f77patch;

imports        Perq_string from Perq_string;
imports        Fileutils from Fileutils;
imports        Filesystem from Filesystem;
imports        Code from Code;
imports        filetypes from filetypes;
        
        
label 10,11,20,30,90,99,100,101,900,905,910,912,915,920,925,930,935,940,945,950,
      960,990,999;
      
type dbleword=record msw,lsw:integer end;
     altrec=record
            oval,disp,blkno:integer;
            nval:array[0..17] of integer
            end;
            
var cfile,lfile:text;
    cline,cname,lname,mname,segname,fullname,tname,nostr:string;
    ok,applyma:boolean;

==== ercs07/emas-2900/fr.txt ====
SUBFILE: INITFT.FR @16:1 23-MAY-1979 <055> (1371)

      SUBROUTINE INIT

      INTEGER  INPTR
      INTEGER  OUTPTR
      INTEGER  INMAX
      INTEGER  MAXTAB
      INTEGER  MAXLIN
      INTEGER  IFMAX
      INTEGER  MAXLEV
      INTEGER  LINENO
      INTEGER  PAGE
      INTEGER  CLINE
      INTEGER  TLIMIT
      INTEGER  LN
      INTEGER  I, J, K
      INTEGER  II, JJ, KK
      INTEGER  LEXVAL
      INTEGER  SLEN
      INTEGER  LEVEL

==== ercs07/emas-2900/strans_cparenfr.txt ====
    
      SUBROUTINE CPAREN 
    
      INTEGER  INPTR
      INTEGER  OUTPTR   
      INTEGER  INMAX
      INTEGER  MAXTAB   
      INTEGER  MAXLIN   
      INTEGER  IFMAX
      INTEGER  MAXLEV   
      INTEGER  LINENO   
      INTEGER  PAGE 
      INTEGER  CLINE
      INTEGER  TLIMIT   
      INTEGER  LN   
      INTEGER  I, J, K  
      INTEGER  II, JJ, KK   
      INTEGER  LEXVAL   
      INTEGER  SLEN 
      INTEGER  LEVEL
      INTEGER  LEN  

==== ercs07/emas-2900/slogof_rstk02fr.txt ====
    
      SUBROUTINE EXRGLV(LEVEL,SAVTYP)   
      INTEGER LEVEL,SAVTYP  
    
      INTEGER     ACADDR (11), ACTYPE (11), ACSUBS (11) 
      INTEGER     ACSBTY (11), ACBIAS (11)  
      INTEGER     REGSTK(120)   
      COMMON      /RMCOM/  ACADDR, ACTYPE, ACSUBS, ACSBTY, ACBIAS   
      COMMON      /RMCOM/  REGSTK   
    
      INTEGER  CLRACV   
      INTEGER  CLRACX   
      INTEGER  CLRSTA   
      INTEGER  TRAREG   
      INTEGER  SAVREG   
      INTEGER  CTFREE   
      INTEGER  SETREG   
      INTEGER  ICLP11   
      COMMON   /RMCODE/ CLRACV, CLRACX, CLRSTA, TRAREG, SAVREG  
      COMMON   /RMCODE/ CTFREE, SETREG  
      COMMON   /RMCODE/ ICLP11  

==== ercs07/emas-2900/strans_labgenfr.txt ====
    
      INTEGER FUNCTION LABGEN (NUM) 
    
      INTEGER  INPTR
      INTEGER  OUTPTR   
      INTEGER  INMAX
      INTEGER  MAXTAB   
      INTEGER  MAXLIN   
      INTEGER  IFMAX
      INTEGER  MAXLEV   
      INTEGER  LINENO   
      INTEGER  PAGE 
      INTEGER  CLINE
      INTEGER  TLIMIT   
      INTEGER  LN   
      INTEGER  I, J, K  
      INTEGER  II, JJ, KK   
      INTEGER  LEXVAL   
      INTEGER  SLEN 
      INTEGER  LEVEL
      INTEGER  LEN  

==== ercs07/emas-2900/oldqfiles_exthelp1.txt ====
MODULE ExtHelp;

EXPORTS

IMPORTS FileUtils FROM FileUtils;
IMPORTS Code FROM Code;

CONST
      maxIdLength = 14;
      defIdLength = 8;
      longIdLength = 14;
      maxImports = 50;

TYPE
    Status = (allright,fileNotFound,alreadyImported,
              multiplyDeclaredRoutine,routNotFound);
      
    Name = STRING[maxIdLength];
      
    IsnType = 0..maxImports;


==== ercs07/emas-2900/mixedsrce_arrtestf.txt ====
      PROGRAM ARRTEST
      EXTERNAL ARRTIM4
      INTEGER ARR1(4),ARR2(4)
      DO 20 I=1,4
      ARR1(I)=I
   20 CONTINUE
      WRITE(6,100)
  100 FORMAT(' CALLING ARRTIM4')
      CALL ARRTIM4(ARR1,ARR2)
      DO 10 I=1,4
      WRITE(6,200)I,ARR2(I)
  200 FORMAT(' ARR2(',I,')=',I4)
   10 CONTINUE
      WRITE(6,300)
  300 FORMAT(' DID IT WORK')
      STOP
      END

==== ercs07/emas-2900/slogos_lsobjjin.txt ====
C     EDIT DATE   17AUG78  12:38
C     SOURCE FILE LSOBJJHP.IN
C     AUTHOR      J.H.PERINE
C     STRUCTURE OF 'LINSTR' TABLE
C        256 ENTRIES - 1 FOR EACH POSSIBLE OP CODE
C        2 WORDS PER ENTRY
C        FIRST WORD:
C           LEFT HALF:  IDENTIFIES CRUTCH TABLE
C                       1 (256)   IMPLID
C                       2 (512)   RELTIV
C                       3 (768)   GROUP1
C                       4 (1024)  OTHERS
C           RIGHT HALF: INDEX INTO TABLE FOR ASCII TEXT
C        SECOND WORD (ATTRIBUTES):
C           LEFT HALF:  ADDRESSING MODE COMPONENTS
C                       BIT    MEANING
C                       0      NOT USED
C                       1      AREG       16384
C                       2      IMMEDIATE   8192
C                       3      ZP          4096
C                       4      ABS         2048

==== ercs07/emas-2900/imptests_algimp3.txt ====
%BEGIN
%REALSLONG
%INTEGER I,N
%REALARRAY A(1:5)
%CONSTSTRING(20) S='IMP CALLS ALGOL'
%EXTERNALROUTINESPEC CALGOL(%LONGREALARRAYNAME C,%STRINGNAME S,    %C
%INTEGERFN F,%INTEGERNAME N)
%EXTERNALINTEGERFNSPEC G(%INTEGERNAME N)
N=3
CALGOL(A,S,G,N)
%CYCLE I=1,1,5
PRINT(A(I),2,2);SPACES(2)
NEWLINE
%REPEAT
%ENDOFPROGRAM

==== ercs07/emas-2900/pt_extern1.txt ====
PROGRAM EXTERN1;
%KEYEDENTRY ON
PROCEDURE EXFUNC(VAR OP:TEXT);
BEGIN
WRITELN(OP,'OUTPUT FROM FUNC')
END;
BEGIN
END.

==== ercs07/emas-2900/imptests_algimp4.txt ====
%BEGIN
%EXTERNALINTEGERFNSPEC G(%INTEGER X)
%INTEGER I,J
J=6
I=G(J)
WRITE(I,4); NEWLINE
%ENDOFPROGRAM

==== ercs07/emas-2900/ecodelist_test5bl.txt ====
Einitialise 
Enextproc 
Edataentry  A    2   16    4
Edataentry  B    2   20    4
EXname  PRINTINT    0    0
Eproc PRINT    0    0
 Elinestart ++++++++++++++++++++++    5
 Elinestart ++++++++++++++++++++++    6
Eprecall 
Estkdir   Gla     + 16      4    A
Eop    PUSHVAL
 0 0 0
Estack:
 1:DirVal        Gla     +   16  size: 4
Ecall          1    4
 Elinestart ++++++++++++++++++++++    7
Elabel    -1
Eprocend       0
Eterminate 

==== ercs07/emas-2900/pddemo_ioc3.txt ====
   !Modified  13/ 4/82   15.00





!**********************************************************************!
!**********************************************************************!
     !                                                            !
     !                                                            !
     !   This Module is designed to provide List-Directed Input   !
     !                                                            !
     !              for FORTRAN77  Programs                       !
     !                                                            !
     !               on ICL  PERQ  Machines                       !
     !                                                            !
     !                                                            !
!**********************************************************************!
!**********************************************************************!



==== ercs07/emas-2900/pt_extern2.txt ====
PROGRAM EXTERN2;
%KEYEDENTRY ON
PROCEDURE FUNC(VAR INP,OUT:TEXT);
VAR N:INTEGER;
BEGIN
READLN(INP,N);
WRITELN(OUT,'FROM FUNC, N= ',N:4)
END;
BEGIN
END.

==== ercs07/emas-2900/mixedsrce_arrtesti.txt ====
%BEGIN
%EXTERNALROUTINESPEC SETARR(%INTEGERARRAYNAME ARR,%INTEGER BND)
%INTEGER I
%INTEGERARRAY ARR(1:5)
PRINTSTRING('CALLING SETARR')
NEWLINE
SETARR(ARR,5)
%CYCLE I=1,1,5
 PRINTSTRING('ARR(')
  WRITE(I,1)
  PRINTSTRING(')=')
WRITE(ARR(I),4)
  NEWLINE
%REPEAT
PRINTSTRING('DID IT WORK')
NEWLINE
%ENDOFPROGRAM

==== ercs07/emas-2900/slogos_stkdfein.txt ====
C     EDIT DATE   03DEC78  12:12
C     SOURCE FILE STKDFE.IN
C     AUTHOR      A. J. HOWARD
      INTEGER     OPCODE (20)
      EQUIVALENCE (STK (1, 9), OPCODE (1))


==== ercs07/emas-2900/pt_extern3.txt ====
PROGRAM EXTERN3(OUTPUT);
VAR I:INTEGER;
%KEYEDENTRY ON
PROCEDURE EXFUNC(VAR OP:TEXT);
BEGIN
WRITELN(OP,'OUTPUT FROM FUNC');
WRITELN(OP,'I =',I);
END;
BEGIN
I:=1;
WRITELN('I = ',I);
END.

==== ercs07/emas-2900/ctms_consts.txt ====
!
! File route operation codes:
!
%CONSTINTEGER CREATE = 1, ASSIGN = 2, DESTROY = 3, DEASSIGN = 4
!
! File description parameter pair identifiers:
!
%CONSTINTEGER MINIMUM RECORD SIZE = 105
%CONSTINTEGER MAXIMUM RECORD SIZE = 104
%CONSTINTEGER KEY POSITION = 106
%CONSTINTEGER KEY LENGTH = 107
%CONSTINTEGER ACTUAL FILE SIZE = 150
%CONSTINTEGER SYSTEM FILE DETAILS = 115
%CONSTINTEGER RECORD VIEW = 126
%CONSTINTEGER CONTROL DATA HEADER = 152
%CONSTINTEGER CONTROL DATA TRAILER = 153
%CONSTINTEGER MAXIMUM FILE SIZE = 151
%CONSTINTEGER FILE ORGANISATION = 101
%CONSTINTEGER BLOCK SIZE = 111
%CONSTINTEGER FORM LENGTH = 155
%CONSTINTEGER LINE WIDTH = 154

==== ercs07/emas-2900/pt_ordtest.txt ====
PROGRAM ORDTEST(INPUT,OUTPUT);
VAR I,J,A1,B1:INTEGER;
    A,B:ARRAY[1..3] OF INTEGER;
BEGIN
%RANGECHECKS OFF
READ(A1);
FOR I:=1 TO A1 DO
  BEGIN
  WRITE(I);
  A[I]:=I;
  END;
WRITELN;
%RANGECHECKS ON
READ(B1);
FOR J:=1 TO B1 DO
  BEGIN
  WRITE(J);
  B[J]:=J;
  END;
WRITELN;
END.

==== ercs07/emas-2900/pscltxt207.txt ====

PASCAL on EMAS
--------------

CONTENTS

1.  INTRODUCTION

2.  COMPILATION
2.1 Compilation Options
2.2 Compilation Listings

3.  EXECUTION
3.1 Use of Input and Output Media
3.2 The Standard PASCAL Files INPUT and OUTPUT
3.3 Separate Compilation of PASCAL Procedures and Functions
3.4 Mixed Language Programming
3.5 Interfacing to EMAS 2900

4.  BASIC ERROR ACTION
4.1 Error Reporting

==== ercs07/emas-2900/mixedsrce1_procdefa.txt ====
%PROCEDURE SET2(I1,I2);
%INTEGER I1,I2;
%BEGIN
PRINTSTRING(<ENTERING_ALGOL_SET2>);
NEWLINE;
I1:=2;I2:=2;
%END

==== ercs07/emas-2900/culhamsce_setmarg.txt ====
%SYSTEMROUTINESPEC IOCP(%INTEGER EP,N)
%SYSTEMINTEGERMAPSPEC COMREG(%INTEGER I)
%EXTERNALROUTINE SETMARGINS(%INTEGER STREAM,L,R)
%INTEGER I
%IF STREAM=COMREG(22) %THEN I=12 %ELSESTART
  %IF STREAM=COMREG(23) %THEN I=13 %ELSESTART
    PRINTSTRING('
*** INVALID STREAM
')
    %MONITOR
    %STOP
  %FINISH
%FINISH
IOCP(I,L<<16!R)
%END
%ENDOFFILE

==== ercs07/emas-2900/qfiles_fmt6.txt ====
!PFMTQ4 IS EQUIVALENT TO F77FMT1 ON PERQ
!
!*     RUNCOMP=0 FOR COMPILE TIME FORMAT
!*     RUNCOMP=1 FOR RUN TIME FORMAT

!*                                                                      FORMATCD
!*

%EXTERNALINTEGERFN FORMATCD(%INTEGER INSTART,DISP,ARYADR,INLEN,OUTLEN,  
    LEVEL,RUNCOMP, %INTEGERNAME TABLEN, ACTFMTLEN)
!*
!*
%SWITCH SW(0 : 122)
%HALFINTEGER PTR, CODE, BRACK, FLAG, I, CHAR, BOTHZERO
%HALFINTEGER NXTCHAR, OUTPTR, FMTPTR, TEXTPTR, HOLLEN, QUOTE CNT,ITEMPTR
%HALFINTEGER COPYCODE, ERR,LINELEN
%INTEGER LARGESTINT, COUNT, NUMBER,FMTAD,INLENGTH
%HALFINTEGER NOCOMMA, J, K,COMMAREQD
%HALFINTEGERARRAY LOOP(0 : 8)
%BYTEINTEGERARRAYNAME FORMAT
%BYTEINTEGERARRAYFORMAT AF(0 : 1320)

==== ercs07/emas-2900/COPYRIGHT.LIST ====
./cmdparse.txt:{ Copyright (C) 1980 - Three Rivers Computer Corporation
./convert.txt:{ Copyright (C) Three Rivers Computer Corporation, 1981.
./fortran1.txt:{ Copyright (C) 1981 - Three Rivers Computer Corporation
./newpasc.txt: Copyright  (C)     University of Manchester
./npc1_main.txt: Copyright (c) University of Manchester
./npc1_shell.txt:HEADING='Copyright (C) UMIST/EPCL'
./npc2_main.txt: Copyright (c) University of Manchester
./oldqfiles_fortran2.txt:{ Copyright (C) 1981 - Three Rivers Computer Corporation
./pcfiles_main2.txt:   Copyright (c) University of Manchester
./pddemo_fortran4.txt:{ Copyright (C) 1981 - Three Rivers Computer Corporation
./perqrel2_consol2.txt:{ Copyright (C) 1982 - Three Rivers Computer Corporation
./perqrel2_fortran6.txt:{ Copyright (C) 1981 - Three Rivers Computer Corporation
./perqrel3_consol4.txt:{ Copyright (C) 1982 - Three Rivers Computer Corporation
./perqrel3_fortran8.txt:{ Copyright (C) 1982 - Three Rivers Computer Corporation
./perqsrce_complexfns.txt:{ Copyright (C) Three Rivers Computer Corporation 1982.
./perqsrce_copy.txt:  Copyright (C) 1981 - Three Rivers Computer Corporation
./perqsrce_except.txt:     6   8   -1:D     0 { Copyright (C) Three Rivers Computer Corporation, 1980.
./perqsrce_loader.txt:{       Copyright (C) Three Rivers Computer Corporation, 1981.
./perqsrce_realfns.txt:{ Copyright (C) Three Rivers Computer Corporation, 1981.
./perqsrce_system.txt:{     Copyright (C) Three Rivers Computer Corporation, 1980, 1981.
./popcmdprse.txt:{ Copyright (C) 1981 Three Rivers Computer Corperation

==== ercs07/emas-2900/mixedsrce_calltesta.txt ====
%BEGIN
%PROCEDURE CALLFUNC(FUNC,PARAM,RES);
%VALUE PARAM;%INTEGER PARAM,RES;
%INTEGER %PROCEDURE FUNC;%COMMENT(VAL):%VALUE VAL:%INTEGER VAL;
%EXTERNAL CALLFUNC;
%INTEGER FIVE;
%INTEGER %PROCEDURE SETVAL(VAL);
%VALUE VAL;%INTEGER VAL;
%BEGIN
PRINTSTRING(<ENTERING_SETVAL>);NEWLINE;
SETVAL:=VAL;
%END;
PRINTSTRING(<CALLING_CALLFUNC>);
NEWLINE;
CALLFUNC(SETVAL,5,FIVE);
PRINTSTRING(<FIVE_=>);
PRINT(FIVE,4,0);NEWLINE;
PRINTSTRING(<DID_IT_WORK>);NEWLINE;
%END;

==== ercs07/emas-2900/slinkf_setkeyfr.txt ====
    
      SUBROUTINE SETKEY 
    
      INTEGER     CHAR  
      INTEGER     CHMASK
      INTEGER     CR, LF
      INTEGER     CRLF  
      INTEGER     BLANK, PERIOD 
      INTEGER     BLANKS, DASHES, COLONS, SLASHS
      INTEGER     ACH, BCH, CCH, DCH, ECH, FCH  
      INTEGER     GCH, HCH, ICH, JCH, KCH, LCH  
      INTEGER     MCH, NCH, OCH, PCH, QCH, RCH  
      INTEGER     SCH, TCH, UCH, VCH, WCH, XCH  
      INTEGER     YCH, ZCH  
      INTEGER     LBRACE, RBRACE
      INTEGER     LBRACK, RBRACK
      INTEGER ICLP04
      COMMON      /CHARAC/ CHAR 
      COMMON      /CHARAC/ CHMASK   
      COMMON      /CHARAC/ CR, LF   
      COMMON      /CHARAC/ CRLF 

==== ercs07/emas-2900/pffiles_stdprocs.txt ====
{

 History
 -------

 06/11/85 - Added spec for SizeOperation. (agh)
 04/12/85 - Add specs for SizeOfCAP, SizeOfWCAP, and SizeOfUCAP. (agh)

                                                                   }

procedure SelectFile(FType: TypEntry);
  extern;

procedure RstoreFile(IOFile: IOFileEntry);
  extern;

procedure DiscardFile;
  extern;

procedure InitIO;
  extern;

==== ercs07/emas-2900/slogof_nexpftfr.txt ====
    
      SUBROUTINE NEXP   
    
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      INTEGER     NEXT,   NUMBER, I,      IOTYPE
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT
      INTEGER ICLP05
      LOGICAL     ENDOK,CONEND  
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG   
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG  
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV  
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE  
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N   
      COMMON   /LOGOS/  PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE  

==== ercs07/emas-2900/slogof_sgenajfr.txt ====
 
      SUBROUTINE  SGEN 
 
      INTEGER     WOPTR,  WO (64), TLI,     TL (128) 
      INTEGER     BO,     SS,      SS2,     NRFCH 
      COMMON      /SCR1/  WOPTR,   WO,      TLI,    TL 
      COMMON      /SCR1/  BO,      SS,      SS2,    NRFCH 
 
      INTEGER  NI,     NJ,     NK 
      INTEGER  NSIZE 
      INTEGER  NLX,    FNLX,   REMNLX, OVNLX,  TNAME 
      INTEGER  NLSTRT, NLSTOP, NLSIZE, SRCHST 
      INTEGER  NTSTRT 
      INTEGER  NTSTOP 
      INTEGER  NTSIZE 
      INTEGER  PARFLG 
      INTEGER  SPARFL 
      INTEGER  NLWRDS 
      INTEGER  TX 
      INTEGER  NLENO 
      INTEGER  STDMD 

==== ercs07/emas-2900/pt_diags1.txt ====
%DIAGLINEMAP=YES
PROGRAM DIAGS(INPUT,OUTPUT);
VAR I,J:INTEGER;
BEGIN
READ(I);
WRITELN('I=',I);
END.

==== ercs07/emas-2900/mixedsrce1_procdeff.txt ====
      SUBROUTINE SET2(I1,I2)
      WRITE(6,100)
  100 FORMAT(' ENTERING FORTRAN SET2')
      I1=2
      I2=2
      RETURN
      END

==== ercs07/emas-2900/pt_diags2.txt ====
%DIAGLINEMAP=YES
%DIAGNAMETABLE=NO
PROGRAM DIAGS(INPUT,OUTPUT);
VAR I,J:INTEGER;
BEGIN
READ(I);
WRITELN('I=',I);
END.

==== ercs07/emas-2900/mixedsrce1_booldefa.txt ====
%PROCEDURE FLAGSET(FLAG,VAL);
%VALUE VAL;%BOOLEAN FLAG,VAL;
%BEGIN
PRINTSTRING(<ENTERING_ALGOL_FLAGSET>);NEWLINE;
FLAG:=VAL;
%END;

==== ercs07/emas-2900/perqrel2_cmess5.txt ====
!* MODIFIED 08/05/82
!*
!*
%RECORDFORMAT COMFMT(%INTEGER CONTROL,OPTIONS,OPTIONS1,OPTIONS2,PTRACE,
      ADICT,ANAMES,ADOUTPUT,ADBLKDTAID,DICLEN,DPTR,
      MAXTRIADS,NEXTPLAB,ALABH,ADLHEAD,
      SUBPROGTYPE,SFPTR,EXTERNALS,CBNPTR,SCPTR,CHECKLIST,
      RESCOM1,RESCOM2,GLACA,FNO,FAULTY,LINEST,CMNIIN,SFMK,
      LISTL,LISTSTREAM,DIAGSTREAM,LISTPOINT,XREF,
      PACKCMN,ITSMODE,PATHANAL,CHARACTER CODE,SPACE CHAR,
      HEADINGS,ARRAYCHECKS,JBRMODE,MESSLEN,NAMESLEN,
      NEXTCH,FUNRESDISP,WARNCOUNT,INP,MAXINP,MESSCOUNT,
      UNASSPATTERN,LISTCODE,PI21INT,DOPTR,SUBPROGPTR,
      FNLST,LAB,NAMESFREE,ALGOLREF,FIRSTSTATNUM,CEXPDICT,
      COMMONBASE,FASTPROLOGUE,STATEMENT,IFPTR,
      CNSTCA,COMMENTCNT,ADIDENT,ADERRIDEN)
%EXTERNALROUTINE QCMESS
{dummy}
%END
!*
%EXTERNALROUTINE FAULTNUM(%INTEGER ER,COMAD,UPDATE)

==== ercs07/emas-2900/slinkf_t16p2gfr.txt ====
    
      SUBROUTINE  T16P2 
    
      INTEGER     DICT (400)
      INTEGER     ID, CID, DTSTRT, DTSTOP   
      COMMON      /DARRAY/ DICT 
      COMMON      /DARRAY/ ID, CID, DTSTRT, DTSTOP  
    
      INTEGER     NSIZE,  NAME(16), NTITLE  
      INTEGER     NFLAGS (512)  
      INTEGER     NADDRS (512)  
      INTEGER     NPOSIT (512)  
      INTEGER     NDATA  (512)  
      INTEGER     NTEXTX (512)  
      INTEGER     NTEXT  (1000) 
      INTEGER     NLX, NLSTRT, NLSTOP   
      INTEGER     TXSTRT, TXSTOP
      INTEGER     NTXBTS
      INTEGER     USEBIT, COMBIT, OVLBIT, EPTBIT
      INTEGER     LDMBIT, MODBIT, MLTBIT, RLSBIT
      INTEGER     GDFBIT, TYPBTS

==== ercs07/emas-2900/npc1_pflexical.txt ====
procedure InitWords;
  extern;

procedure InitAlfa(var AlfaSpelling: Alfa);
  extern;

function RankedTails(Tail1, Tail2: AlfaEntry): Boolean;
  extern;

function SameAlfa(Name1, Name2: Alfa): Boolean;
  extern;

procedure DispAlfa(LongIdent: Alfa);
  extern;

procedure CopySpelling(var Copy: Alfa);
  extern;

procedure RestoreSpelling(Copy: Alfa);
  extern;


==== ercs07/emas-2900/slinks_utilitfs.txt ====
'HEAD'  LINKER, UTILITY ROUTINES
C     EDIT DATE   26JAN79  09:35
C     SOURCE FILE UTILITGAK.FS
C     AUTHOR      GARY A. KUDIS
C     CLUSTER     10
C     THIS CLUSTER CONTAINS THE FOLLOWING ROUTINES :
C        AREADF - AREA DEFINITION ADDRESS RESOLUTION
C        CHCKER - CHECKSUM CURRENT RECORD
C        DNAMES - DELETE NAMES FROM 'NTABLE'
C        ENPTDF - ENTRY POINT ADDRESS RESOLUTION
C        ENTER - ENTER 'NAME' INTO 'NTABLE'
C        ERROR (N) - ERROR MSG FORMAT AND OUTPUT
C        GETFL (ERX, EOF) - GET NEXT RB FILE NAME
C        GRCORD (ERX, EOF) - GET NEXT RB RECORD
C        GWORD (ERX, EOF) - GET NEXT RB WORD
C        GNAME (I) - GET NAME
C        HASH (NAME, NRWDS) - CALCULATE NAME HASH CODE
C        ISWAP (DATA) - SWAP HALFS OF INPUT DATA
C        KEYWD (DUMMY) - TEST FOR KEY WORD IN RB FILENAME
C        LNAMES - LOAD NAMES IN 'NTABLE'
C        PUNCH (DATA, ADDR, NBYTES) - OUTPUT OBJECT DATA

==== ercs07/emas-2900/qfiles_qcode2.txt ====
%CONSTINTEGER EMAS=0,PERQ=1,SYS=perq
%EXTERNALROUTINE QCODE(%INTEGER START,FINISH,CA,MODE)
! %EXTERNALROUTINESPEC DUMP(%INTEGER A,B,C,D)
 %IF SYS=EMAS %START; %SYSTEMROUTINESPEC PHEX(%INTEGER N) ; %FINISHELSESTART

%ROUTINE PHEX(%INTEGER N)

%CONSTBYTEINTEGERARRAY K(0:15)='0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'
%HALFINTEGER I,J
%CYCLE J=1,-1,0
   %CYCLE I=12,-4,0
       PRINTSYMBOL(K((HALFINTEGER(ADDR(N)+J)>>I)&15))
   %REPEAT
%REPEAT
%END
%FINISH
!*TOP
!****************************************************************************
!*                                                                          *
!*             PERQ QCODE DISSASSEMBLER 
!*                                                                          *

==== ercs07/emas-2900/mixedsrce_calltestf.txt ====
      PROGRAM CALLTEST
      INTEGER FIVE, T5
      EXTERNAL SETVAL
      T5=5
      WRITE(6,100)
  100 FORMAT (' CALLING CALLFUNC')
      CALL CALLFUNC(SETVAL,T5,FIVE)
       WRITE(6,200)FIVE
  200 FORMAT(' FIVE =',I4)
       WRITE(6,300)
  300 FORMAT('DID IT WORK')
       STOP
      END
      INTEGER FUNCTION SETVAL(VAL)
      INTEGER VAL
      WRITE(6,100)
  100 FORMAT(' ENTERING SETVAL')
      SETVAL=VAL
      RETURN
      END

==== ercs07/emas-2900/inpds_bitdfnin.txt ====
C     EDIT DATE   01JUN78  22:23
C     SOURCE FILE BITDFNGAK.IN
C     AUTHOR      GARY A. KUDIS
C     BIT DEFINITIONS
C
C     BIT00 IS THE LEAST SIGNIFICANT; BIT15 IS MOST SIGNIFICANT.
C
      INTEGER     BITS (16)
      INTEGER     BIT00,BIT01,BIT02,BIT03,BIT04,BIT05,BIT06,BIT07
      INTEGER     BIT08,BIT09,BIT10,BIT11,BIT12,BIT13,BIT14,BIT15
      EQUIVALENCE (BITS(1),BIT00),(BITS(2),BIT01),(BITS(3),BIT02)
      EQUIVALENCE (BITS(4),BIT03),(BITS(5),BIT04),(BITS(6),BIT05)
      EQUIVALENCE (BITS(7),BIT06),(BITS(8),BIT07),(BITS(9),BIT08)
      EQUIVALENCE (BITS(10),BIT09),(BITS(11),BIT10)
      EQUIVALENCE (BITS(12),BIT11),(BITS(13),BIT12)
      EQUIVALENCE (BITS(14),BIT13),(BITS(15),BIT14)
      EQUIVALENCE (BITS(16),BIT15)
      INTEGER     BIT, BITNO
      COMMON      /BITDFN/ BITS
      COMMON      /BITDFN/ BIT, BITNO


==== ercs07/emas-2900/mixedsrce1_procdefi.txt ====
%EXTERNALROUTINE SET2(%INTEGERNAME I1,I2)
PRINTSTRING('ENTERING IMP SET2')
NEWLINE
I1=2
I2=2
%END
%ENDOFFILE

==== ercs07/emas-2900/tstfiles_logtstlo.txt ====

 
 
 
 
 
 
 
 

O
T
T
S
 
 
 
 
 
 
 

==== ercs07/emas-2900/npcpf_pfassgn.txt ====
procedure Assign(VarRep: TypeRepresentation);
extern;

procedure AssignTag(SelectorRep: TypeRepresentation);
extern;

==== ercs07/emas-2900/oldqfiles_imperr.txt ====
%BEGIN
%INTEGER I
I=10//0
%ENDOFPROGRAM

==== ercs07/emas-2900/pptboot_mmult.txt ====

==== ercs07/emas-2900/pddemo_intrin3.txt ====
module f77intrin;
exports

imports complexfunctions from complexfunctions;
function floatlong(arg:long):real;
function trunclong(arg:real):long;
function roundlong(arg:real):long;
function f77sqrt(var x,dum:real):real;
function f77exp(var x,dum:real):real;
function f77log(var x,dum:real):real;
function f77log10(var x,dum:real):real;
function f77sin(var x,dum:real):real;
function f77cos(var x,dum:real):real;
function f77tan(var x,dum:real):real;
function f77asin(var x,dum:real):real;
function f77acos(var x,dum:real):real;
function f77atan(var x,dum:real):real;
function f77atan2(var x,dum1,y,dum2:real):real;
function f77sinh(var x,dum:real):real;
function f77cosh(var x,dum:real):real;
function f77tanh(var x,dum:real):real;

==== ercs07/emas-2900/mixedsrce_calltesti.txt ====
%BEGIN
%EXTERNALROUTINESPEC CALLFUNC(%INTEGERFN FUNC,%INTEGER PARAM, %C
            %INTEGERNAME RES)
%INTEGERFN SETVAL(%INTEGER VAL)
%RESULT=VAL
%END
%INTEGER FIVE
PRINTSTRING('CALLING CALLFUNC')
NEWLINE
CALLFUNC(SETVAL,5,FIVE)
PRINTSTRING('FIVE=')
WRITE(FIVE,4)
NEWLINE
%ENDOFPROGRAM

==== ercs07/emas-2900/mixedsrce1_booldeff.txt ====
      SUBROUTINE FLAGSET(FLAG,VAL)
      LOGICAL FLAG,VAL
      WRITE(6,100)VAL
  100 FORMAT(' ENTERING FORTRAN FLAGSET, VAL IS ',L6)
      FLAG=VAL
      RETURN
      END

==== ercs07/emas-2900/slinkf_t12p2gfr.txt ====
    
      SUBROUTINE T12P2  
    
      INTEGER     DICT (400)
      INTEGER     ID, CID, DTSTRT, DTSTOP   
      COMMON      /DARRAY/ DICT 
      COMMON      /DARRAY/ ID, CID, DTSTRT, DTSTOP  
    
      INTEGER     NSIZE,  NAME(16), NTITLE  
      INTEGER     NFLAGS (512)  
      INTEGER     NADDRS (512)  
      INTEGER     NPOSIT (512)  
      INTEGER     NDATA  (512)  
      INTEGER     NTEXTX (512)  
      INTEGER     NTEXT  (1000) 
      INTEGER     NLX, NLSTRT, NLSTOP   
      INTEGER     TXSTRT, TXSTOP
      INTEGER     NTXBTS
      INTEGER     USEBIT, COMBIT, OVLBIT, EPTBIT
      INTEGER     LDMBIT, MODBIT, MLTBIT, RLSBIT
      INTEGER     GDFBIT, TYPBTS

==== ercs07/emas-2900/slogos_rstdefin.txt ====
C     EDIT DATE     15NOV78 13:00
C     SOURCE FILE   RSTDEFAPB.IN
C     AUTHOR        A.P. BUCHALTER
C     SOME CONSTANTS FOR REGSAVEAPB.FS (REGISTER STACK)
C     SAVSIZ= NUMBER OF ITEMS SAVED FOR EACH LEVEL
      INTEGER SAVSIZ
C     MAXLEV(1)=# LEVELS FOR BOOLEAN, (2)=# LEVELS CONDITIONAL
      INTEGER MAXLEV(2)
C     SCRLEV= LEVEL NUMBER FOR SCRATCH LEVEL
      INTEGER SCRLEV
C     LEVST= SEE REGSAVEAPB.FS
      INTEGER LEVST(2)
      DATA  SAVSIZ/15/
C     BOOLEAN STARTS AT 2
      DATA  MAXLEV/6,2/
      DATA  SCRLEV/7/
      DATA  LEVST/-2,4/


==== ercs07/emas-2900/perqrel3_exthelp2.txt ====


{30/apr - alan - Changed to disregard routine beginning F_ }
{ 10/5/82 - changes to verifyfile }

MODULE ExtHelp;

EXPORTS

IMPORTS FileUtils FROM FileUtils;
IMPORTS Code FROM Code;

CONST
      maxIdLength = 14;
      defIdLength = 8;
      longIdLength = 14;
      maxImports = 50;

TYPE
    Status = (allright,fileNotFound,alreadyImported,
              multiplyDeclaredRoutine,routNotFound);

==== ercs07/emas-2900/strans_termfr.txt ====
    
      SUBROUTINE TERM   
    
      INTEGER  INPTR
      INTEGER  OUTPTR   
      INTEGER  INMAX
      INTEGER  MAXTAB   
      INTEGER  MAXLIN   
      INTEGER  IFMAX
      INTEGER  MAXLEV   
      INTEGER  LINENO   
      INTEGER  PAGE 
      INTEGER  CLINE
      INTEGER  TLIMIT   
      INTEGER  LN   
      INTEGER  I, J, K  
      INTEGER  II, JJ, KK   
      INTEGER  LEXVAL   
      INTEGER  SLEN 
      INTEGER  LEVEL
      INTEGER  LEN  

==== ercs07/emas-2900/mixedsrce1_booldefi.txt ====
%EXTERNALROUTINE FLAGSET(%INTEGERNAME FLAG,%INTEGER VAL)
PRINTSTRING('ENTERING IMP FLAGSET');NEWLINE
FLAG=VAL
PRINTSTRING('FLAG IS ')
WRITE(FLAG,4);NEWLINE
%END
%ENDOFFILE

==== ercs07/emas-2900/slinkf_askqesfr.txt ====
    
      SUBROUTINE ASKQES 
    
      INTEGER     CMQUES (10)   
      INTEGER     OBQUES (10)   
      INTEGER     MPQUES (10)   
      INTEGER     ANSWER (14)   
      COMMON      /QUESTS/ CMQUES   
      COMMON      /QUESTS/ OBQUES   
      COMMON      /QUESTS/ MPQUES   
      COMMON      /QUESTS/ ANSWER   
    
      LOGICAL     MPFLAG
      LOGICAL     OVMODE
      LOGICAL     LBMODE
      LOGICAL     LOADRB
      LOGICAL     SFLAG 
      INTEGER     VERS  
      INTEGER     LOADAD
      INTEGER     ZLOC, ZSTR, ZMAX, ZLIMIT  
      INTEGER     CLOC, CSTR, CMAX, CLIMIT  

==== ercs07/emas-2900/faults.txt ====
      COMPLEX C0
      DOUBLE PRECISION D0
      C0=(-0.6,1.1)
      D0=DBLE(C0)
      STOP
      END

==== ercs07/emas-2900/helpsa20_go20.txt ====
MACRO GO20 IS (LITERAL %OMFLIB := "DO20")
MACBEGIN
SETLOADEROPTIONS(TOPDOWN)
EXLB(ICLSTDSW)
EXLB(%%OMFLIB)
MACEND

==== ercs07/emas-2900/slinkf_t09p2gfr.txt ====
    
      SUBROUTINE T09P2  
    
      INTEGER     DICT (400)
      INTEGER     ID, CID, DTSTRT, DTSTOP   
      COMMON      /DARRAY/ DICT 
      COMMON      /DARRAY/ ID, CID, DTSTRT, DTSTOP  
    
      INTEGER     NSIZE,  NAME(16), NTITLE  
      INTEGER     NFLAGS (512)  
      INTEGER     NADDRS (512)  
      INTEGER     NPOSIT (512)  
      INTEGER     NDATA  (512)  
      INTEGER     NTEXTX (512)  
      INTEGER     NTEXT  (1000) 
      INTEGER     NLX, NLSTRT, NLSTOP   
      INTEGER     TXSTRT, TXSTOP
      INTEGER     NTXBTS
      INTEGER     USEBIT, COMBIT, OVLBIT, EPTBIT
      INTEGER     LDMBIT, MODBIT, MLTBIT, RLSBIT
      INTEGER     GDFBIT, TYPBTS

==== ercs07/emas-2900/pffiles_codeutils.txt ====
{

 History
 -------

 28/10/85 - Correct specs to AccessArea and AddressArea to
            include Adid field. (agh)
 04/11/85 - Correct specs to AccessArea and AddressArea for
            reduced parameter list. (agh)
 06/12/85 - Add specs for PushValue, PushAddress, PushLiteral,
            StartCall, and CallStdrd. (agh)

                                                                 }

procedure InlineNumber(Number: MCIntegerForm);
  extern;

procedure JumpTo(var TheLabel: CodeLabel; Condition: JumpType);
  extern;

procedure AccessArea(Address: RuntimeAddress; Adjustment: ByteOffsets;

==== ercs07/emas-2900/dsea20_rtnewctm1.txt ====
R/1/0/
TC/ NEWCTM QUIT/
R/QUIT/STOP(%LONGINTEGER RESULT1,RESULT2,  %C /
G I/                                 %INTEGER RESPVAL)///
TC/ROUTINE QUIT/
TC/NEWCTM QUIT/
R/QUIT/STOP(0,0,-1)/
E

==== ercs07/emas-2900/slogosorg_sourcefs.txt ====
'HEAD'  SOURCE PROCESSING
C     EDIT DATE   14JAN79  09:09
C     SOURCE FILE SOURCEFTM.FS
C     AUTHOR      F. T. MICKEY
C     CLUSTER     17
      'OUTFILE' LDSRCEFTM.FR
C     SUBROUTINE LDSRCE
C
C     GETS A NEW LINE FROM INPUT, PREPARES IT FOR SCANNING,
C     AND PRINTS THE SOURCE LINE IF NOT INHIBITED
C
N     OVERLAY OLLDS
      SUBROUTINE LDSRCE
      INTEGER GCHAR
      'INCLUDE' SRCDFSFTM.IN,
      'INCLUDE' SRCXDFFTM.IN,
      'INCLUDE' LOGOSAJH.IN,
      'INCLUDE' CTRLAJH.IN,
      'INCLUDE' PRTCOMFTM.IN,
      'INCLUDE' CPAREAJH.IN,
      INTEGER  ESMSG (4), NCMSG (4), TS, TS1, IERR

==== ercs07/emas-2900/oldqfiles_impsup1.txt ====
module impsup;
exports

procedure dummsup;
procedure printfl(val,place:long);

private
imports f77init from f77init;

procedure dummsup;
begin
end;

procedure printfl;
begin
write(curout^,val:shrink(place)+1);
end. { printfl }

==== ercs07/emas-2900/slinkf_dfaultfr.txt ====
    
      SUBROUTINE DFAULT (APPEND)
      INTEGER     APPEND
    
      INTEGER     CMQUES (10)   
      INTEGER     OBQUES (10)   
      INTEGER     MPQUES (10)   
      INTEGER     ANSWER (14)   
      COMMON      /QUESTS/ CMQUES   
      COMMON      /QUESTS/ OBQUES   
      COMMON      /QUESTS/ MPQUES   
      COMMON      /QUESTS/ ANSWER   
      INTEGER     GCHAR 
      INTEGER     I 
      INTEGER OB,MP,OBFILE(14),MPFILE(14)   
      DATA OB,MP/'OB','MP'/ 
      DATA OBFILE /'LO','LI','NK','RB','  ',9*0/
      DATA MPFILE /'LO','LI','NK','MA','P ',9*0/
      IF (.NOT. (APPEND .EQ. OB))GO TO 13004
    
      DO  13006 I=1,14  

==== ercs07/emas-2900/slogosorg_utilsffs.txt ====
'HEAD'  GENERAL UTILITIES
C     EDIT DATE   18JAN79  21:27
C     SOURCE FILE UTILSFTM.FS
C     AUTHOR      F. T. MICKEYM
C     CLUSTER     28
      'OUTFILE' GCHAR.FR
C     SUBROUTINE GCHAR (BUFFER, CHARACTER INDEX)
C
C     RETURNS AS INTEGER FUNCTION VALUE THE CHARACTER POINTED
C     TO BY CHARACTER INDEX, WITH THE LEFT-HAND CHARACTER OF
C     BUFFER (1) DEFINED AS CHARACTER 1.  CHARACTERS ARE RIGHT ADJUS-
C     TED, WITH A LEADING NULL BYTE.
C
C     ***************
C     PDP-11/70 ONLY*
C     ***************
      INTEGER FUNCTION GCHAR (BUF, INDEX)
      INTEGER  BUF (66), I, INDEX
      I = ISHFT (INDEX+1, -1)
      'IF' (IAND (INDEX, 1) .EQ. 0)
         GCHAR = ISHFT (BUF (I), -8)

==== ercs07/emas-2900/pcfiles_storage7.txt ====
{

 History
 -------

 11/09/85 - new function StoreImp, set Adid -1 in Acquire, call StoreImp
	  - in SetAddressFor, include file impint.pf.
 24/09/85 - amend Allocate, AreaFor, SetAddressFor; define InitAreas.
 17/10/85 - Tidy history.  Remove outdated documentation. (agh)
 17/10/85 - Many changes to provide correct data alignment, area
            assignment, and storage allocation. (agh)
 18/10/85 - add SetBdAddress to hide call to AlfaString from
            analyser. (agh)
 21/10/85 - change declaration of Amount in SetAddressFor to have
            type ByteRange. (agh)
 21/10/85 - make Acquire visible. (agh)
 22/10/85 - simplify Manual list processing for file initialisations
            only. (agh)
 23/10/85 - add ParamCount field in StackFrame for proc declaration/
            call consistency check. (agh)
 25/10/85 - Add procedure SaveParamSpace. (agh)

==== ercs07/emas-2900/strans_lstartfr.txt ====
    
      SUBROUTINE LSTART 
    
      INTEGER  INPTR
      INTEGER  OUTPTR   
      INTEGER  INMAX
      INTEGER  MAXTAB   
      INTEGER  MAXLIN   
      INTEGER  IFMAX
      INTEGER  MAXLEV   
      INTEGER  LINENO   
      INTEGER  PAGE 
      INTEGER  CLINE
      INTEGER  TLIMIT   
      INTEGER  LN   
      INTEGER  I, J, K  
      INTEGER  II, JJ, KK   
      INTEGER  LEXVAL   
      INTEGER  SLEN 
      INTEGER  LEVEL
      INTEGER  LEN  

==== ercs07/emas-2900/npc1_diags.txt ====
{

                           MODULE 7
 
 
                    Postmortem Diagnostics
 
 
 
 
 
 In principle, the production of source-related diagnostics entails
 the  construction  of a 'data map' containing a description of all
 types, emumeration constants, variables,  parameters,  and  blocks
 declared  in the program, together with a 'code map' that allows a
 source-program line number to be deduced from  an  object  program
 address.
 
 The data map is constructed by procedure Filescope which systemat-
 ically  traverses  the  identifier and type sub-tables making each
 entry available to the  procedures  Fileid  and  Filetype  respec-

==== ercs07/emas-2900/slinkf_t05p2gfr.txt ====
    
      SUBROUTINE T05P2  
    
      INTEGER     DICT (400)
      INTEGER     ID, CID, DTSTRT, DTSTOP   
      COMMON      /DARRAY/ DICT 
      COMMON      /DARRAY/ ID, CID, DTSTRT, DTSTOP  
    
      INTEGER     NSIZE,  NAME(16), NTITLE  
      INTEGER     NFLAGS (512)  
      INTEGER     NADDRS (512)  
      INTEGER     NPOSIT (512)  
      INTEGER     NDATA  (512)  
      INTEGER     NTEXTX (512)  
      INTEGER     NTEXT  (1000) 
      INTEGER     NLX, NLSTRT, NLSTOP   
      INTEGER     TXSTRT, TXSTOP
      INTEGER     NTXBTS
      INTEGER     USEBIT, COMBIT, OVLBIT, EPTBIT
      INTEGER     LDMBIT, MODBIT, MLTBIT, RLSBIT
      INTEGER     GDFBIT, TYPBTS

==== ercs07/emas-2900/imptests_recmap1.txt ====
%BEGIN
%RECORDFORMAT RF(%INTEGER I,J,K)
%RECORD REC1(RF)
RECORD(RECA)=REC
%ENDOFPROGRAM

==== ercs07/emas-2900/imptests_recmap2.txt ====
%BEGIN
%INTEGER I
%RECORDFORMAT F(%INTEGER X,Y)
%RECORDFORMAT G(%BYTEINTEGERARRAY B(0:7))
%RECORD R1(F)
%RECORD R2(G)
R1=0
%CYCLE I = 0,1,7
  R2_B(I)=I
%REPEAT
RECORD(ADDR(R1))=REC
WRITE(R1_X,10); WRITE(R1_Y,10)
NEWLINE
%ENDOFPROGRAM

==== ercs07/emas-2900/npcpf_pfpfcalls.txt ====
procedure StackActualBlock(var Body: BlockLabel);
extern;

procedure StackFormalBlock(FAddress: RuntimeAddress);
extern;

procedure OpenParameterList(ClassOfCall: IdClass);
extern;

procedure PassValue(RepRequired: TypeRepresentation);
extern;

procedure PassReference(RefStatus: RefSecurity);
extern;

procedure PassBlock;
extern;

procedure CloseParameterList;
extern;


==== ercs07/emas-2900/mixedsrce1_rproctest.txt ====
PROGRAM PROCTEST(OUTPUT);
VAR R1,V1:REAL;
PROCEDURE SETR(VAR R:REAL;VAR V:REAL);EXTERN;
BEGIN
WRITELN('CALLING SETR');
V1:=5.12;
SETR(R1,V1);
WRITELN('R1=',R1);
WRITELN('DID IT WORK');
END.

==== ercs07/emas-2900/in.txt ====
SUBFILE: STRAN.IN @16:3 23-MAY-1979 <055> (1089)
      INTEGER  INPTR
      INTEGER  OUTPTR
      INTEGER  INMAX
      INTEGER  MAXTAB
      INTEGER  MAXLIN
      INTEGER  IFMAX
      INTEGER  MAXLEV
      INTEGER  LINENO
      INTEGER  PAGE
      INTEGER  CLINE
      INTEGER  TLIMIT
      INTEGER  LN
      INTEGER  I, J, K
      INTEGER  II, JJ, KK
      INTEGER  LEXVAL
      INTEGER  SLEN
      INTEGER  LEVEL
      INTEGER  LEN
      INTEGER  INCHAN
      INTEGER  OUTCHN

==== ercs07/emas-2900/library_emasjob.txt ====
IMP LIBRARY_PROG,LIBY
DEFINE 2,LIBRARY_TPLIST
DEFINE 3,LIBLIST
RUN LIBY
COPY LIBLIST,LIBRARY_LIBLIST
LIST LIBRARY_LIBLIST,.LP

==== ercs07/emas-2900/qfiles5apr_writeint.txt ====
%BEGIN
%INTEGER I,J;
I=1024
WRITE(I,5)
NEWLINE
J=-1024
WRITE(J,5)
NEWLINE
%ENDOFPROGRAM

==== ercs07/emas-2900/slinkf_t01p2gfr.txt ====
    
      SUBROUTINE T01P2  
    
      INTEGER     ECODE 
      INTEGER     CMCHAN
      INTEGER     RBCHAN
      INTEGER     OBCHAN
      INTEGER     MPCHAN
      INTEGER     DBCHAN
      INTEGER     TTYIN 
      INTEGER     TTYOUT
      COMMON      /IODEFN/ ECODE
      COMMON      /IODEFN/ CMCHAN   
      COMMON      /IODEFN/ RBCHAN   
      COMMON      /IODEFN/ OBCHAN   
      COMMON      /IODEFN/ MPCHAN   
      COMMON      /IODEFN/ DBCHAN   
      COMMON      /IODEFN/ TTYIN
      COMMON      /IODEFN/ TTYOUT   
    
      INTEGER     DICT (400)

==== ercs07/emas-2900/slogos_rmcomjin.txt ====
C     COMMON STORAGE FOR REGISTER MANAGEMENT ROUTINES
      INTEGER     ACADDR (11), ACTYPE (11), ACSUBS (11)
      INTEGER     ACSBTY (11), ACBIAS (11)
C     SAVE AREA FOR BOOLEAN AND CONDITIONAL EVALUTAION
C     5 LEVELS+ 1 SCRATCH LEVEL - APB
      INTEGER     REGSTK(120)
      COMMON      /RMCOM/  ACADDR, ACTYPE, ACSUBS, ACSBTY, ACBIAS
      COMMON      /RMCOM/  REGSTK



==== ercs07/emas-2900/psclsce205_ctsup5.txt ====
! MODIFIED 15/01/81 - OBJECT FILE DISCONNECTED AT END OF COMPILATION
! MODIFIED 7/1/81 - BUG IN ICL9HNREADCARD CORRECTED
! MODIFIED 5/12/80 - CALL ON ICL9HEPROLOG INSERTED TO LOAD DIAGNOSTICS
!**********************************************************************
!*
!*                         P A S C A L
!*
!*                COMPILER ENVIRONMENT ROUTINES
!*
!**********************************************************************
!
!
!**********************************************************************
!*
!*                            CONSTANTS
!*
!**********************************************************************
!
%CONSTINTEGER SEGMENTK=256,SEGMENT=262144
%CONSTINTEGER NIL=-1
%CONSTINTEGER NO=0,YES=1

==== ercs07/emas-2900/rel10opt_op245.txt ====
! 19/09/84 - clear relevant bit in CLOOPDEF if ASMT/ASGN triad backward moved
!          - line 1510 corrected to VAL1=1, line 1515 moved back 7 lines
! 28/08/84 - correction to BTBITS for CMNCOORDS(1)
! 02/07/84 - change OPTSAB(CMPLX) entry to X'06'
! 11/04/84 - don't word align FREETABS in BMOVHECK
! 10/04/84 - scaling correction in bmovecheck
! 31/01/84 - UPDATE OPSTAB FOR DCMPLX & INTRIN
! 18/01/84 - ADJUST BIT STRIP ADDRESSES
! 17/01/84 - MAKE CALLS OF CREATETAB CONSISTTENT
! 23/11/83 call EDUMPTRACE in OP2A; set up LDUMPTRACE & BMTRACE
! 22/11/82 call CDUMPTRACE in OP2A
! 27/10/83 COPIED FROM ERCS06.REL90_OP2B13
!*
%INCLUDE "host_host"
%INCLUDE "targ_target"
%INCLUDE "pf_version"
!*
%INCLUDE "bits_fmts"
%INCLUDE "bits_optspecs"
%INCLUDE "bits_consts"
%INCLUDE "bits_optfmts"

==== ercs07/emas-2900/loop1.txt ====
      do 20 i=1,10
   50 write(6,100)i
  100 format(' in loop:i=',i4)
      if(i.gt.4.and.i.lt.8)go to 30
c      i=6
c      write(6,150)i
c  150 format(' in loop,setting i to:',i4)
   20 continue
      stop
   30 write(6,200)i
  200 format(' outside loop:i=',i4)
c      i=8
c      go to 50
c      write(6,300)i
c  300 format(' setting i to:',i4)
      stop
      END

==== ercs07/emas-2900/dsa20_ctemtm.txt ====
MODULE   ICL9LPCTETXT
 
STATIC INT
   EMTLEN      IS 80         ,
   ERRCNT      IS        120 ,
   MAXENO      IS        398 ,
   ERRCNT1     IS ERRCNT+1   ,
   MAXENO1     IS MAXENO+1     ;
 
STATIC WORD
   BVDTB       IS X'18000000'  ;
 
MODE
   DESC        IS LONG WORD STRUCT (WORD TB, AD)  ,
   EMTEXT      IS (EMTLEN)  BYTE     ,
   EMTLIST     IS (ERRCNT1) EMTEXT   ,
   ENOMAPROW   IS (MAXENO1) INT        ;
 
STATIC EMTLIST
 
   EMTEXTS     IS

==== ercs07/emas-2900/pddemo_iof1.txt ====
   !Modified  13/ 4/82   15.30





!**********************************************************************!
!**********************************************************************!
     !                                                         !
     !                                                         !
     !   This  Module  is  designed  to  provide  I/0  support !
     !                                                         !
     !           for  OPEN    CLOSE    INQUIRE                 !
     !                                                         !
     !           and REWIND  ENDFILE  BACKSPACE  statements    !
     !                                                         !
     !                for  FORTRAN77  Programs                 !
     !                                                         !
     !                 on  ICL  PERQ  Machines                 !
     !                                                         !
     !                                                         !

==== ercs07/emas-2900/pptecodes_mmult.txt ====
Einitialise 
Enextproc  1
Eproc MATRIX    1    0    0
 Elinestart ++++++++++++++++++++++   15
 Elinestart ++++++++++++++++++++++   16
Estklit        1
Estkaddr   Gla     + 16      4    I
Eop    ESTORE
 0 0 0
Estack:
 2:AddrDir       Gla     +   16  size: 4
 1:LitVal            1  size: 4
Elabel    -3
 Elinestart ++++++++++++++++++++++   17
Estklit        1
Estkaddr   Gla     + 20      4    J
Eop    ESTORE
 0 0 0
Estack:
 2:AddrDir       Gla     +   20  size: 4
 1:LitVal            1  size: 4

==== ercs07/emas-2900/loop2.txt ====
      do 20 i=1,10
   50 write(6,100)i
  100 format(' in loop:i=',i4)
      if(i.gt.4.and.i.lt.8)go to 30
c      i=6
c      write(6,150)i
  150 format(' in loop, setting i to:',i4)
   20 continue
      stop
   30 write(6,200)i
  200 format(' outside loop:i=',i4)
      i=8
      write(6,300)i
  300 format(' setting i to:',i4)
      go to 50
      stop
      END

==== ercs07/emas-2900/slogos_pshpopfs.txt ====
'HEAD'  PUSH AND POP ROUTINES
C     EDIT DATE   10DEC78  21:04
C     SOURCE FILE PSHPOPFTM.FS
C     AUTHOR      F. T. MICKEY
C     CLUSTER     26
      'OUTFILE' PUSHFTM.FR
C     SUBROUTINE PUSH
C
C     SAVES THREE VALUES ON A LIFO STACK, TO BE RETRIEVED
C     LATER BY POP.  PARAMETERS FOR PUSH AND POP MUST BE
C     IN THE SAME ORDER.
C
      SUBROUTINE PUSH (A, B, C)
      'INCLUDE' PSHCOMFTM.IN,
      INTEGER A, B, C
      IF (PX .GT. PEND) CALL FATAL (45)
      PSTACK (PX) = A
      PSTACK (PX+1) = B
      PSTACK (PX+2) = C
      PX = PX + 3
      RETURN

==== ercs07/emas-2900/slinksorg_initlzfs.txt ====
'HEAD'  LINKER, INITIALIZATION
C     EDIT DATE   11JAN79  09:33
C     SOURCE FILE INITLZGAK.FS
C     AUTHOR      GARY A. KUDIS
C     CLUSTER     2
      'OUTFILE' INITLZGAK.FR
      SUBROUTINE INITLZ
      'INCLUDE' BITDFNGAK.IN,
      'INCLUDE' IODEFNGAK.IN,
      'INCLUDE' IOFILEGAK.IN,
      'INCLUDE' NTABLEGAK.IN,
C INITLZ ::
X     WRITE (DBCHAN, 1)
X1    FORMAT (' ENTER INITLZ')
      BIT15 = ISHFT (BIT14,1)
      TYPBTS = BIT15 + BIT14 + BIT13
      CALL OPENF (TTYIN, TIFILE, ECODE)
N     CALL OPENF (TTYOUT, TOFILE, ECODE)
X     WRITE (DBCHAN, 2)
X2    FORMAT (' EXIT INITLZ')
      RETURN

==== ercs07/emas-2900/loop3.txt ====
      do 20 i=1,10
   50 write(6,100)i
  100 format(' in loop:i=',i4)
      if(i.gt.4.and.i.lt.8)go to 30
      i=6
      write(6,150)i
  150 format(' in loop, setting i to:',i4)
   20 continue
      stop
   30 write(6,200)i
  200 format(' outside loop:i=',i4)
c      i=8
c      go to 50
c      write(6,300)i
c  300 format(' setting i to:',i4)
      stop
      END

==== ercs07/emas-2900/slogos_copyin.txt ====

COPYFMPD SLOGOS_ATESTAIN
COPYFMPD SLOGOS_BLDPOAIN
COPYFMPD SLOGOS_BRACEFIN
COPYFMPD SLOGOS_CODE1FIN
COPYFMPD SLOGOS_CPAREAIN
COPYFMPD SLOGOS_CRUCOMIN
COPYFMPD SLOGOS_CTRLAJIN
COPYFMPD SLOGOS_FAULTSIN
COPYFMPD SLOGOS_FLMSGAIN
COPYFMPD SLOGOS_GENCMAIN
COPYFMPD SLOGOS_GENCMBIN
COPYFMPD SLOGOS_GENLXYIN
COPYFMPD SLOGOS_IOCONFIN
COPYFMPD SLOGOS_LABCOMIN
COPYFMPD SLOGOS_LSDATAIN
COPYFMPD SLOGOS_LCFUNCIN
COPYFMPD SLOGOS_LCONSTIN
COPYFMPD SLOGOS_LEVELSIN
COPYFMPD SLOGOS_LISTCMIN
COPYFMPD SLOGOS_LOGOSAIN

==== ercs07/emas-2900/pffiles_impint.txt ====

{

 History
 -------

 17/10/85 - new proc. elinestart	
 21/10/85 - add eprocref.
 21/10/85 - in paseprc, change type of Stacklen from WordRange
            to ByteRange. (agh)
 23/10/85 - additional parameters to paseprc
 28/10/85 - new procedure writename
 28/11/85 - modify params to einitialise, eterminate, eprocend
	  - remove param to pasenpr
 17/12/85 - modify parameters of einitialise and eterminate to 
            integer. (agh)
 03/01/86 - simplify parameters to estkconst to make address
            integer. (agh)
 --------------------------------------------------------------------
 10/01/86 - simplify parameters to einitialise and eterminate to
            make all parameters integer. (agh)

==== ercs07/emas-2900/slinks_utilsffs.txt ====
'HEAD'  GENERAL UTILITIES
C     EDIT DATE   18JAN79  21:27
C     SOURCE FILE UTILSFTM.FS
C     AUTHOR      F. T. MICKEYM
C     CLUSTER     28
      'OUTFILE' GCHAR.FR
C     SUBROUTINE GCHAR (BUFFER, CHARACTER INDEX)
C
C     RETURNS AS INTEGER FUNCTION VALUE THE CHARACTER POINTED
C     TO BY CHARACTER INDEX, WITH THE LEFT-HAND CHARACTER OF
C     BUFFER (1) DEFINED AS CHARACTER 1.  CHARACTERS ARE RIGHT ADJUS-
C     TED, WITH A LEADING NULL BYTE.
C
      INTEGER FUNCTION GCHAR (BUF, INDEX)
      INTEGER  BUF (66), I, INDEX
      I = ISHFT (INDEX+1, -1)
      'IF' (IAND (INDEX, 1) .NE. 0)
         GCHAR = ISHFT (BUF (I), -8)
         'ELSE'
         GCHAR = IAND (BUF (I), 255)
         'ENDIF'

==== ercs07/emas-2900/slogof_glxyajfr.txt ====
 
      SUBROUTINE  GLXY (OREG) 
 
      INTEGER     OREG 
 
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG 
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV 
      INTEGER     NEXT,   NUMBER, I,      IOTYPE 
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE 
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP 
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT 
      INTEGER ICLP05 
      LOGICAL     ENDOK,CONEND 
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG 
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV 
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE 

==== ercs07/emas-2900/genutils_extra2i.txt ====

      %BEGIN
      %BYTEINTEGERARRAY BUF(1:255)
      %INTEGER I,J
      %STRING(80) A,B,C,D
      %EXTERNALROUTINESPEC DEFINE(%STRING(63) S)
      DEFINE("ST02,.NULL")
      DEFINE("ST03,COPYCMD")
      SELECTINPUT(1)
      SELECTOUTPUT(2)
      %CYCLE
         %WHILE NEXTSYMBOL=10 %OR NEXTSYMBOL=13 %THEN SKIPSYMBOL
         STRING(ADDR(BUF(1)))<-""
         %CYCLE I=2,1,81
            %WHILE NEXTSYMBOL=92 %THEN SKIPSYMBOL
            %IF NEXTSYMBOL=10 %OR NEXTSYMBOL=13 %THEN %EXIT
            READSYMBOL(BUF(I))
         %REPEAT
         BUF(1)<-I-2
         %IF STRING(ADDR(BUF(1)))->A.("SUBFILE: ").B.(".").C.(" @").D %C
            %THEN %START

==== ercs07/emas-2900/oldpsclsce_ctsup2.txt ====
! MODIFIED 08/10/80
!
!**********************************************************************
!*
!*                         P A S C A L
!*
!*                COMPILER ENVIRONMENT ROUTINES
!*
!**********************************************************************
!
!
!**********************************************************************
!*
!*                            CONSTANTS
!*
!**********************************************************************
!
%CONSTINTEGER SEGMENTK=256,SEGMENT=262144
%CONSTINTEGER NIL=-1
%CONSTINTEGER NO=0,YES=1
%CONSTSTRING(1)%ARRAY HEX TAB(0:15)="0","1","2","3","4","5","6","7", %C

==== ercs07/emas-2900/genutils_editai.txt ====

%EXTERNALROUTINE EDITA(%STRING(63) S)
%EXTERNALROUTINESPEC DEFINE(%STRING(63) SA)
%EXTERNALROUTINESPEC COPY(%STRING(63) SB)
%EXTERNALROUTINESPEC EDIT(%STRING(63) SC)
%EXTERNALROUTINESPEC DESTROY(%STRING(63) SD)
%EXTERNALINTEGERFNSPEC RETURNCODE
%STRING(20) PDS,FILE
      DEFINE("FT05,INFILEMD")
      %IF S->PDS.("_").FILE %THEN %START
         SELECTINPUT(5)
         EDIT(S.",".FILE)
         COPY(FILE.",".S)
         %IF RETURNCODE=0 %THEN DESTROY(FILE)
         SELECTINPUT(0)
         CLOSESTREAM(5)
      %FINISH %ELSE %START
         SELECTOUTPUT(6)
         PRINTSTRING("EDITA - BAD PARAMETERS")
      %FINISH
%END

==== ercs07/emas-2900/npc1_man.txt ====
npc - new icl pascal compiler (front-end) [ options ] file  is  a
program  analyser  that checks the syntax and static semantics of
programs written in ICL Pascal. To run type

            npc filename

where contains the program source text. Note that the  file  name
must  end  in a .pas suffix. Further control over is exercised by
the following options.  Control the generation of a listing file.
is a key-word chosen from 'short', 'normal', or 'full'. The first
lists only those lines in error, the second lists the source text
together with errors, and the third lists both primary and secon-
dary source text together with errors. If the key-word is  ommit-
ted,  'normal'  is selected by default. In each case, the listing
file is written to standard output.  Control the  langauge  level
against  which  checking  is performed.  is a single digit in the
range 0 to 2. The effect of each setting is as follows.

s        Level

0        ISO Level 0 (no conformant arrays)

==== ercs07/emas-2900/mixedsrce1_iprocdefa.txt ====
%PROCEDURE ADDINT(I,NO);
%VALUE I;%INTEGER I,NO;
%BEGIN
PRINTSTRING(<ENTERING_ALGOL_ADDINT>);
NEWLINE;
NO:=20+I;
%END;

==== ercs07/emas-2900/qfiles5apr_f77fmt4.txt ====
!PFMTQ4 IS EQUIVALENT TO F77FMT1 ON PERQ
!
!*     RUNCOMP=0 FOR COMPILE TIME FORMAT
!*     RUNCOMP=1 FOR RUN TIME FORMAT

!*                                                                      FORMATCD
!*

%EXTERNALINTEGERFN FORMATCD(%INTEGER INSTART,DISP,ARYADR,INLEN,OUTLEN,  
    LEVEL,RUNCOMP, %INTEGERNAME TABLEN, ACTFMTLEN)
!*
!*
%SWITCH SW(0 : 122)
%HALFINTEGER PTR, CODE, BRACK, FLAG, I, CHAR, BOTHZERO
%HALFINTEGER NXTCHAR, OUTPTR, FMTPTR, TEXTPTR, HOLLEN, QUOTE CNT,ITEMPTR
%HALFINTEGER COPYCODE, ERR,LINELEN
%INTEGER LARGESTINT, COUNT, NUMBER,FMTAD,INLENGTH
%HALFINTEGER NOCOMMA, J, K,COMMAREQD
%HALFINTEGERARRAY LOOP(0 : 8)
%BYTEINTEGERARRAYNAME FORMAT
%BYTEINTEGERARRAYFORMAT AF(0 : 1320)

==== ercs07/emas-2900/pcfiles_codeinit4.txt ====
{

 History
 -------

 12/09/85 - amend InitDefaults, call InitImp from InitCodeGeneration,
	  - new include file impint.pf.
 23/09/85 - set up Ecode arrays.
 17/10/85 - History tidied. Documentation updated. Some redundant
            code removed from InitEcodes. (agh)
 25/10/85 - Add range-check operations to InitEcodes. Initialise
            DftSpace in InitOthers. (agh)
 06/11/85 - Initialise WordFns. (agh)
 08/11/85 - Change BufferVarOfset to MCBufferOffset. (agh)
 23/11/85 - Add initialisation of WordOps, UCheckOps, and CAPIndexOps.
            (agh)
 04/12/85 - Remove references to CHKLWD, CHKUPD from BoundChecks.
            (agh)
 04/12/85 - Remove CAPIndexOps. (agh)
 09/12/85 - Initialise SystemRoutine. (agh)
 ---------------------------------------------------------------------

==== ercs07/emas-2900/cobolsce_cobconv.txt ====
%EXTERNALROUTINE COBCONV(%STRING(63) S)
%EXTERNALROUTINESPEC DEFINE(%STRING(255) S)
%EXTERNALROUTINESPEC RUN(%STRING(255) S)
%STRING(31)P1,P2
%UNLESS S->P1.(",").P2 %THEN %START
PRINTSTRING("PARAMS ?")
NEWLINE
%STOP
%FINISH
DEFINE("1,".P1)
DEFINE("2,".P2)
RUN("EXPL02.COBLIB_CONVCTODY")
PRINTSTRING("CHAR FILE ".P1." CONVERTED TO DATA FILE ".P2)
NEWLINE
%STOP
%END
%ENDOFFILE

==== ercs07/emas-2900/slogos_gencmain.txt ====
C     EDIT DATE   07SEP78  11:28
C     SOURCE FILE GENCMA.IN
C     AUTHOR      A.  J. HOWARD
      INTEGER     OP, LEFT, RIGHT, LSTKX, RSTKX
      INTEGER     TS, LOAD, BASE
      INTEGER     THIS, OTHER, SIDE, HI, LOW
      INTEGER     INTBR, ROW, COL, INREG, OUTREG
      INTEGER     BCC, BNE
      INTEGER     CLC, JMP, LDAABS, LDAI, LDAZP
      INTEGER     SBCI, SEC, STAZP, TAX, TXA
      LOGICAL     COMZER, EZSTA, MORE
      COMMON      /GCOM/   OP, LEFT, RIGHT, LSTKX, RSTKX
      COMMON      /GCOM/   TS, LOAD, BASE
      COMMON      /GCOM/   THIS, OTHER, SIDE, HI, LOW
      COMMON      /GCOM/   INTBR, ROW, COL, INREG, OUTREG
      COMMON      /GCOM/   BCC, BNE
      COMMON      /GCOM/   CLC, JMP, LDAABS, LDAI, LDAZP
      COMMON      /GCOM/   SBCI, SEC, STAZP, TAX, TXA
      COMMON      /GCOM/   COMZER, EZSTA, MORE


==== ercs07/emas-2900/slogof_bpajhfr.txt ====
    
      SUBROUTINE  BP
    
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      INTEGER     NEXT,   NUMBER, I,      IOTYPE
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT
      INTEGER ICLP05
      LOGICAL     ENDOK,CONEND  
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG   
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG  
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV  
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE  
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N   
      COMMON   /LOGOS/  PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE  

==== ercs07/emas-2900/rel6_ioa5.txt ====
   !Modified   8/ 5/82    9.30





!**********************************************************************!
!**********************************************************************!
     !                                                            !
     !                                                            !
     !     This Module is designed to provide Formatted Input     !
     !                                                            !
     !                for FORTRAN77  Programs                     !
     !                                                            !
     !                 on ICL  PERQ  Machines                     !
     !                                                            !
     !                                                            !
!**********************************************************************!
!**********************************************************************!



==== ercs07/emas-2900/slinksorg_pnamesin.txt ====
C     EDIT DATE   13MAY78  11:46
C     SOURCE FILE PNAMESGAK.IN
C     AUTHOR      GARY A. KUDIS
C     PRINT NAME LIST DATA STRUCTURES
      INTEGER     LIST (512)
      INTEGER     NAMES (512)
C     'LIST' IS USED BY 'SORT' ROUTINE TO BUILD AN ARRAY OF
C     SORTED INDEXES TO ITEMS IN NAME LIST TABLE (NTABLE).
C     'NAMES' CONTAINS POINTERS TO USED ENTRIES IN 'NTABLE'.
      INTEGER     NCOUNT
      INTEGER     LSTOP
      COMMON      /PNAMES/    LIST
      COMMON      /PNAMES/    NAMES
      COMMON      /PNAMES/    NCOUNT
      COMMON      /PNAMES/    LSTOP


==== ercs07/emas-2900/dsa20_services.txt ====
%CONTROL X'0FFFFFFF'
!***********************************************************************
!*
!*  SERVICES
!*
!*  ADAPTED FROM EDINBURGH IMP MODULE FCSM10
!*  FOR USE IN BSV35/KSV17 PASCAL SYSTEM (PASCAL 20)
!*
!*  INCLUDES :- ITOE , IOCP/WRITE (LISTING FILE) , NDIAG (DUMMY)
!*  SUPPORTS :- LPUT , OMFOUT , NCODE .
!*
!*  T.MOORE    MARCH '80
!*
!***********************************************************************
!*
!*
%CONSTINTEGER RTMARGIN=120                                                      
%CONSTINTEGER NL=10,NP=12,CR=12                                                       
%CONSTINTEGER FALSEBOOL=0,TRUEBOOL=1
%OWNINTEGER OUTPTR                                                              
%OWNBYTEINTEGERARRAY OUTBUFF(-2:119)                                            

==== ercs07/emas-2900/inpds_characin.txt ====
C     EDIT DATE   06JUN78  07:40
C     SOURCE FILE CHARACGAK.IN
C     AUTHOR      GARY A. KUDIS
C     ASCII CHARACTER DEFINITIONS
      INTEGER     CHAR
      INTEGER     CHMASK
      INTEGER     CR, LF
      INTEGER     CRLF
      INTEGER     BLANK, PERIOD
      INTEGER     BLANKS, DASHES, COLONS, SLASHS
      INTEGER     ACH, BCH, CCH, DCH, ECH, FCH
      INTEGER     GCH, HCH, ICH, JCH, KCH, LCH
      INTEGER     MCH, NCH, OCH, PCH, QCH, RCH
      INTEGER     SCH, TCH, UCH, VCH, WCH, XCH
      INTEGER     YCH, ZCH
      INTEGER     LBRACE, RBRACE
      INTEGER     LBRACK, RBRACK
      COMMON      /CHARAC/ CHAR
      COMMON      /CHARAC/ CHMASK
      COMMON      /CHARAC/ CR, LF
      COMMON      /CHARAC/ CRLF

==== ercs07/emas-2900/oldqfiles_f77idiag1.txt ====
%SYSTEMROUTINESPEC PHEX(%INTEGER N)
!* PERQ IMP DIAGNOSTIC ROUTINE (ALAN 19/FEB/82)
!*
! LAYOUT OF DIAGNOSIC TABLES
!****** ** ********* ******
! THE BOUND FIELD OF PLT DESCRIPTOR STORED AT (LNB+3 & LNB+4) IF
! USED TO CONTAIN A DISPLACEMENT RELATIVE TO THE START OF SST OF THE
! DIAGNOSTIC TABLES FOR THE BLOCK OR ROUTINE BEING EXECUTED.
! A ZERO BOUND MEANS NO DIAGNOSTIC REQUESTED.(NB THIS MAY MEAN A DUMMY
! FIRST WORD IN THE SST).
! THE ABSOLUTE ADDRESS OF THE SST FOR THE CURRENT CODE SEGMENT WILL
! ALWAYS BE FOUND IN THE STANDARD 10 WORDS OF THE GLA/PLT
! FORM OF THE TABLES:-
! WORD 0    =   LINE OF RT IN SOURCE PROG <<16 ! LINE NO POSN(FROM LNB)
! WORD 1    =   (12 LANG DEPENDENT BITS)<<20 ! ENVIRONMENT
!               (TOP 2 BITS FOR ROUTINE TYPE.B'01'==SYSTEM ROUTINE)
!               (NEXT BIT SET FOR EBCDIC CHARS&STRINGS(ALGOLE ONLY))
! WORD 2    =   DISPLAY POSN (FROM LNB)<<16 ! RT TYPE INFO
! WORD 3    =   ZERO FOR BLKS OR STRING(<=11BYTES) BEING THE
!               RT NAME. THIS WILL TAKE WORDS 4 AND 5 IF NEEDED
! WORD 6    =  LANGUAGE DEPENDENT INFO . IMP ON CONDITIONS ETC

==== ercs07/emas-2900/mixedsrce1_iprocdeff.txt ====
      SUBROUTINE ADDINT(I,NO)
      WRITE(6,100)
  100 FORMAT(' ENTERING FORTRAN ADDINT')
      NO=20+I
      RETURN
      END

==== ercs07/emas-2900/testpd_lstartfr.txt ====
    
      SUBROUTINE LSTART 
      IF (.NOT. (OUTPTR .GT. 7))GO TO 13004 
    
      CALL PUTC (EOL)   
13004 CONTINUE  
    
      OUTPTR = 7
      RETURN
      END   

==== ercs07/emas-2900/strans_endln4fr.txt ====
                                                                        
      SUBROUTINE ENDLIN                                                 
                                                                        
      INTEGER  INPTR                                                    
      INTEGER  OUTPTR                                                   
      INTEGER  INMAX                                                    
      INTEGER  MAXTAB                                                   
      INTEGER  MAXLIN                                                   
      INTEGER  IFMAX                                                    
      INTEGER  MAXLEV                                                   
      INTEGER  LINENO                                                   
      INTEGER  PAGE                                                     
      INTEGER  CLINE                                                    
      INTEGER  TLIMIT                                                   
      INTEGER  LN                                                       
      INTEGER  I, J, K                                                  
      INTEGER  II, JJ, KK                                               
      INTEGER  LEXVAL                                                   
      INTEGER  SLEN                                                     
      INTEGER  LEVEL                                                    
      INTEGER  LEN                                                      

==== ercs07/emas-2900/slogosorg_contftfs.txt ====
'HEAD'  CONTROL CARD PROCESSING
C     EDIT DATE   14DEC78  13:29
C     SOURCE FILE CONTFTM.FS
C     AUTHOR      F. T. MICKEY
C     CLUSTER     13
      'OUTFILE'   PCONTFTM.FR
N     OVERLAY     OLCTL
      SUBROUTINE  PCONT
      'INCLUDE'   LOGOSAJH.IN,
      'INCLUDE'   BLDPOAJH.IN,
      'INCLUDE'   LCFUNCAJH.IN,
      'INCLUDE'   SRCDFSFTM.IN,
      'INCLUDE'   NLISTCFTM.IN,
      'INCLUDE'   NLNAMEFTM.IN,
      'INCLUDE'   OPERSAJH.IN,
      'INCLUDE'   CTRLAJH.IN,
      'INCLUDE'   SRCXDFFTM.IN,
      'INCLUDE'   STKDEFA.IN,
      'INCLUDE'   STKDEFB.IN,
      'INCLUDE'   PRTCOMFTM.IN,
      'INCLUDE'   WFLAGSJHP.IN,

==== ercs07/emas-2900/qfiles5apr_f77init4.txt ====
module f77init;

{ updated 21/3/82 - function openfile defined }

exports
imports filedefs from filedefs;
imports filesystem from filesystem;
imports fileutils from fileutils;
imports memory from memory;

type buff84=packed array[1..84] of char;

procedure unsatref;
procedure initmain;
procedure INITGLA;
function iocp(ep,off,seg:integer):integer;
procedure stop;
procedure iwrite(val,place:long);
procedure newseg(var s:segmentnumber;fsize,fincr,fmax:mmextsize);
procedure extendseg(s:segmentnumber;fsize:mmextsize);
procedure decrefseg(s:segmentnumber);

==== ercs07/emas-2900/genutils_orangefr.txt ====
    
      SUBROUTINE  REW (CHAN, FILE)  
      INTEGER     CHAN, FILE (1)
      CALL CLOSF(CHAN,IERR)
      CALL OPENF(CHAN,FILE,IERR)
      IF(IERR.NE.1)STOP 2222
      RETURN
      END   
    
      SUBROUTINE  RDLIN (CHAN, BUFFER, MAX, ERROR)  
      INTEGER     CHAN, BUFFER (40), MAX, ERROR 
      INTEGER     WORDS 
      WORDS = (MAX + 1)/2   
      READ (CHAN, 1000, END = 100) (BUFFER (I), I = 1, WORDS)   
      ERROR = 1 
      RETURN
  100 ERROR = 9 
      RETURN
 1000 FORMAT (40A2) 
      END   
      SUBROUTINE WRLIN(CHAN,BUFFER,CHARS)   

==== ercs07/emas-2900/slogos_ioconfin.txt ====
C     EDIT DATE   26JUL78  11:17
C     SOURCE FILE IOCONFTM.IN
C     AUTHOR      F. T. MICKEY
C     CLUSTER     X
C     INPUT/OUTPUT CONSTANTS AND DATA
      INTEGER  IOSTEP
      INTEGER  IONX
      INTEGER  PACKET
      INTEGER  IOFLAG
      INTEGER  IOINDX
      INTEGER  IONAME (6)
I     INTEGER ICLP03
      COMMON   /IOC/    IOSTEP
      COMMON   /IOC/    IONX
      COMMON   /IOC/    PACKET
      COMMON   /IOC/    IOFLAG
      COMMON   /IOC/    IOINDX
      COMMON   /IOC/    IONAME
I     COMMON   /IOC/    ICLP03



==== ercs07/emas-2900/sforf_copylnf.txt ====
      SUBROUTINE COPYLN
      INTEGER  INPTR
      INTEGER  OUTPTR
      INTEGER  INMAX
      INTEGER  MAXTAB
      INTEGER  MAXLIN
      INTEGER  IFMAX
      INTEGER  MAXLEV
      INTEGER  LINENO
      INTEGER  PAGE
      INTEGER  CLINE
      INTEGER  TLIMIT
      INTEGER  LN
      INTEGER  I, J, K
      INTEGER  II, JJ, KK
      INTEGER  LEXVAL
      INTEGER  SLEN
      INTEGER  LEVEL
      INTEGER  LEN
      INTEGER  INCHAN
      INTEGER  OUTCHN

==== ercs07/emas-2900/mixedsrce1_iprocdefi.txt ====
%EXTERNALROUTINE ADDINT(%INTEGER I,%INTEGERNAME NO)
PRINTSTRING('ENTERING IMP ADDINT')
NEWLINE
NO=20+I
%END
%ENDOFFILE

==== ercs07/emas-2900/pt_readdef.txt ====
PROGRAM READDEF(INPUT,OUTPUT);
TYPE VARTYPE=(INT,RL,CHR,BOOL);
     READREC=RECORD
          CASE T:VARTYPE OF
            INT:INTEGER;
            RL:REAL;
            CHR:CHAR;
            BOOL:BOOLEAN;
          END;
PROCEDURE MYREAD(VAR F:TEXT;VAR R:READREC);
BEGIN
VAR I:INTEGER;
BEGIN
END;
BEGIN
END.

==== ercs07/emas-2900/genutils_lovmekfr.txt ====

      INTEGER FUNCTION IAND*2(A,B)
      INTEGER*2 A,B
      INTEGER*4 DA,DB,XIAND
      DA=A
      DB=B
      IAND=XIAND(DA,DB)
      RETURN
      END
      INTEGER FUNCTION IOR*2(A,B)
      INTEGER*2 A,B
      INTEGER*4 DA,DB,XIOR
      DA=A
      DB=B
      IOR=XIOR(DA,DB)
      RETURN
      END
      INTEGER FUNCTION IEOR*2(A,B)
      INTEGER*2 A,B
      INTEGER*4 DA,DB,XIEOR
      DA=A

==== ercs07/emas-2900/slogof_wrblokfr.txt ====
 
      SUBROUTINE WRBLOK 
 
      INTEGER  WF1,WF2,WF3,WF4,WF5,WF6,WF7,WF8,WF9,WF10,WF11,WF12,WF13,W
     1F14,WF15,WF16,WF17 
      INTEGER  ICLP16 
      COMMON   / WF / WF1,WF2,WF3,WF4,WF5,WF6,WF7,WF8,WF9,WF10,WF11,WF12
     1,WF13,WF14,WF15,WF16,WF17 
      COMMON   / WF / ICLP16 
 
      INTEGER     WOPTR,  WO (64), TLI,     TL (128) 
      INTEGER     BO,     SS,      SS2,     NRFCH 
      COMMON      /SCR1/  WOPTR,   WO,      TLI,    TL 
      COMMON      /SCR1/  BO,      SS,      SS2,    NRFCH 
      NRFCH = NRFCH + 1 
      CALL BLDBLK (0, WF3) 
      IF (WOPTR .NE. 1) CALL WRITWO 
      CALL WRSEQ (SS, TL, 256) 
      TLI = 1 
      RETURN 
      END 

==== ercs07/emas-2900/slogos_code2afs.txt ====
'HEAD'  CODE GENERATORS
C     EDIT DATE   14JAN79  09:01
C     SOURCE FILE CODE2AJH.FS
C     AUTHOR      A. J. HOWARD
C     CLUSTER     12
      'OUTFILE'      CODE2AJH.FR
N     OVERLAY     OLCD2
      SUBROUTINE  CODE2 (OPTYPE)
      'INCLUDE'      LOGOSAJH.IN,
      'INCLUDE'      ATESTAJH.IN,
      'INCLUDE'      BLDPOAJH.IN,
      'INCLUDE'      NLISTCFTM.IN,
      'INCLUDE'      OPERSAJH.IN,
      'INCLUDE'      REGSJHP.IN,
      'INCLUDE'   STKDFA.IN,
      'INCLUDE'   STKDFB.IN,
      'INCLUDE'   STKDFC.IN,
      'INCLUDE'   STKDFD.IN,
      'INCLUDE'      WFLAGSJHP.IN,
      'INCLUDE'      OPINXJHP.IN,
      'INCLUDE'      GENCMB.IN,

==== ercs07/emas-2900/inpds_genlxyin.txt ====
      INTEGER     OREG
      'INCLUDE'   LOGOSAJH.IN,
      'INCLUDE'   REGSJHP.IN,
      'INCLUDE'   RMCODES.IN,
      'INCLUDE'   STKDEFA.IN,
      'INCLUDE'   STKDEFE.IN,
      'INCLUDE'   GENCOMAJH.IN,
      INTEGER     BCODE (3, 3)
      DATA        BCODE / 169, 173, 165, ^ // LDAI LDAABS LDAZP
                          162, 174, 166, ^ // LDXI LDXABS LDXZP
                          160, 172, 164/   // LDYI LDYABS LDYZP
C     CHECK FOR DIRECT LOAD
C
      TS = OPCODE (SIDE)
      'DOLOOP' I = 1, 3
         'IF' (BCODE (I, 1) .EQ. TS)
C           CORE TO X OR Y DIRECTLY
C
            OPCODE (SIDE) = BCODE (I, OREG)
            CALL REGMAN (SAVREG, OREG, DUMMY)
            CALL GENDO

==== ercs07/emas-2900/bscmast20_xdumps.txt ====
%CONSTINTEGER YES = 1,      %C
               NO = 0
%STRING(15)%FN SFROMI (%INTEGER X)
%INTEGER REM,NUMB,NF
%STRING(15) ANS
ANS = ''
%IF X < 0 %THEN %START
    NF = YES
    X = X*(-1)
%FINISH %ELSE NF = NO
%CYCLE
NUMB = X
X = X//10
REM = NUMB - X*10
ANS = TOSTRING(REM+'0').ANS
%EXIT %IF X = 0
%REPEAT
%IF NF = YES %THEN ANS = "-".ANS
%RESULT = ANS
%END     ;!  OF SFROMI
%STRING(8)%FN HEXOF (%INTEGER X)

==== ercs07/emas-2900/slogosorg_pverblfs.txt ====
'HEAD'  PROCESS VERB LIST
C     EDIT DATE   31JAN79  07:33
C     SOURCE FILE PVERBLFTM.FS
C     AUTHOR      F. T. MICKEY
C     CLUSTER     3
      'OUTFILE'   PVERBLFTM.FR
N     OVERLAY     OLPVR
C
C     THE BASIC VERB LIST PROCESSING LOOP -- THE TRANSFERS
C     DECK HAS BEEN INCLUDED TO SIMPLIFY CONTROL TRANSFER.
C
      SUBROUTINE  PVERBL
      'INCLUDE'   LOGOSAJH.IN,
      'INCLUDE'   OPERSAJH.IN,
      'INCLUDE'   LEVELSAJH.IN,
      'INCLUDE'   PSHCOMFTM.IN,
      'INCLUDE'   STKDEFA.IN,
      'INCLUDE'   STKDEFD.IN,
      'INCLUDE'   NLISTCFTM.IN,
      'INCLUDE'   CPAREAJH.IN,
      'INCLUDE'   BLDPOAJH.IN,

==== ercs07/emas-2900/rel6_iob4.txt ====
   !Modified  26/ 4/82   12.00





!**********************************************************************!
!**********************************************************************!
    !                                                           !
    !                                                           !
    !     This Module is designed to provide Formatted Output   !
    !                                                           !
    !                for FORTRAN77  Programs                    !
    !                                                           !
    !                 on ICL  PERQ  Machines                    !
    !                                                           !
    !                                                           !
!**********************************************************************!
!**********************************************************************!



==== ercs07/emas-2900/stack.txt ====
module  stack;
exports

imports perq_string from perq_string;
imports arith from arith;

type acb=record ep,rr,ra,rs,tl,gl,dl,lp,sl:fsbit16 end;
     acbptr=^acb;
     txtptr=^text;
var tin,tout,dfile,lfile:text;
    curout:txtptr;
    ss:fsbit16;
    dlist,listing:boolean;

procedure dumpseg(ssn,disp,len:fsbit16);
procedure dumpacb(ap:fsbit16);
function loadss:fsbit16;
function loadap:fsbit16;
function loadgp:fsbit16;
function topofstack:fsbit16;


==== ercs07/emas-2900/r1_gen16.txt ====
!* MODIFIED 07/05/82
!*************  IMP80 version  ******************
!*
!{2900C}%CONSTINTEGER W2=4
{PERQC}%CONSTINTEGER W2=2
!*
!**** SYNTAX ****
!*
!* Syntax tables generated from file SYNTAX48 on 28/01/82 at 23.55.35
!*
%CONSTBYTEINTEGERARRAY OS(0:1500)=  %C                     
   0,   0,  34,   1,   1,   2,  25,   1,   1,   3,
  10,   7,   2,   3,  29,  61,   0,   1,   1,   0,
  13,   1,   0,   1,   3,  20,   4,   1,   2,   1,
   4,  17,   1,   1,   0,   1,   2,  20,   4,   1,
   1,   1,   3,  17,   0,   1,   2,  87,   0,   1,
   1,   0,   1,   3,  20,   5,   1,   2,   1,   4,
  17,   1,   1,   0,   1,   2,  20,   5,   1,   1,
   1,   3,  17,   0,   1,   2,   1,   3,  17,   1,
   1,   0,   1,   1,   1,   2,  17,   0,  20,   2,
   1,   1,   0,  20,   3,   1,   1,   0,  22,   1,

==== ercs07/emas-2900/slogof_scanajfr.txt ====
 
      SUBROUTINE  SCAN (MATCH, LOW, HIGH) 
      INTEGER     MATCH,  LOW,    HIGH 
      EXTERNAL    OLSCN 
      CALL OSCAN (MATCH, LOW, HIGH) 
      RETURN 
      END 

==== ercs07/emas-2900/pnxrel01_op1p43.txt ====
! 02/07/84 - at SWTR(ASMT) set USE bit for opd2 before DEF bit for opd1
!            set NEWBLFLAFG in IOSPEC switch
! 02/04/84 - new code in BLOCKS to deal with list-directed I/O
! 31/01/84 - UPDATE SETUSE FOR DCMPLX & INTRIN
! 31/01/84 - NEW TRIADS DCMPLX, INTRIN, (IFUN)
! 17/01/84 - REMAP ON TO A TABLE IF ITS FULL ROUTINE HAS BEEN CALLED
! 12/01/84 - MAKE BIT STRIP ADDRESSES RELATIVE IN A BLOCK ENTRY
! 31/10/83 COPIED FROM ERCS06.REL8002_OP1B15
!*
%INCLUDE "host_host"
!*
%INCLUDE "targ_target"
!*
!%INCLUDE "pf_version"
!*
%INCLUDE "bits_fmts"
!*
%INCLUDE "bits_optspecs"
!*
%INCLUDE "bits_optfmts"
!

==== ercs07/emas-2900/pddemo_fdiag7.txt ====
! MODIFIED   15/ 4/82   10.00




%EXTERNALROUTINE QFDIAG (%INTEGER      LOCAL POINTER       ,
                         %INTEGER     GLOBAL POINTER       ,
                         %INTEGER     PCOUNT               ,
                         %INTEGER   ACTIVITY CONTROL BLOCK ,
                         %INTEGER   SYMTABLE BASE          ,
                         %INTEGER   SYMTABLE DISP          ,
                         %INTEGER       MODE,DIAG          ,
                         %INTEGER      ASIZE,FIRST         ,
                         %INTEGERNAME         NEXT         )
                         !
                         !
                         !
!
!*********************************************************************%C
!*********************************************************************%C
                                                                      %C

==== ercs07/emas-2900/oldqfiles_f77code2.txt ====
!* MODIFIED 20/03/82
!{2900C}%CONSTINTEGER W1=2;! 1 PERQ  2 EMAS
!{2900C}%CONSTINTEGER W2=4
!{2900C}%CONSTINTEGER W4=8
!{2900C}%CONSTINTEGER W8=16
!{2900C}%CONSTINTEGER W66=132
{PERQC}%CONSTINTEGER W1=1
{PERQC}%CONSTINTEGER W2=2
{PERQC}%CONSTINTEGER W4=4
{PERQC}%CONSTINTEGER W8=8
{PERQC}%CONSTINTEGER W66=66
%OWNINTEGER TRACETEMP
!*************  IMP80 version  ******************
!*
!***********************************************************************
!***********************************************************************
!*
!*
!*********************** TRIAD operator values *************************
!*
%CONSTINTEGER ADD    = X'02'

==== ercs07/emas-2900/op2b18.txt ====
! 08.07.85 - line 646 of LOOPBUILD, map on to current CL block
!          - line 810 of LOOPBUILD, map on to next AR block
! 11/10/84 - clear relevant bit in CLOOPDEF if ASMT/ASGN triad backward moved
!          - line 1342 corrected to VAL1: line 1316 moved back 7 lines
! 21/06/84 - change OPSTAB(CMPLX) ENTRY TO X'06'
{04/01/84 suspend backmove of character comparisons}
{21/11/83 correct tracing in BREAKOUT}
{04/10/83  insert backward movement tracing; call TREVERSE in SWAP to clear bug D15}
{24/05/83  suppress backmove of TOCHAR}
{28/04/83  correct cycle limit (BSWORDS-1) in OP2A}{09/02/83  suppress BACKMOVE of ASGN, DEFARR if LOOPCON1 = 0}
{24/01/83  ensure no code after column 80}
{19/01/83  mask top bit in _FCON}
{13/01/83  test for IFUN in OP2A}
{06/01/83  correct ATABS mappings in BMOVCHECK}
{30/12/82  update triads for intrinsics}
{20/12/82  FUN triad param chaining corrected}
{13/12/82  include BACKMOVE }
{29/11/82  perform optimisations unless inhibited by bit settings in INHIBMASK}
!*
!%INCLUDE "ERCS06.OPT_SPECS"
!*

==== ercs07/emas-2900/oldqfiles_f77code3.txt ====
!* MODIFIED 30/03/82
!{2900C}%CONSTINTEGER W1=2;! 1 PERQ  2 EMAS
!{2900C}%CONSTINTEGER W2=4
!{2900C}%CONSTINTEGER W3=6
!{2900C}%CONSTINTEGER W4=8
!{2900C}%CONSTINTEGER W8=16
!{2900C}%CONSTINTEGER W66=132
{PERQC}%CONSTINTEGER W1=1
{PERQC}%CONSTINTEGER W2=2
{PERQC}%CONSTINTEGER W3=3
{PERQC}%CONSTINTEGER W4=4
{PERQC}%CONSTINTEGER W8=8
{PERQC}%CONSTINTEGER W66=66
%OWNINTEGER TRACETEMP
!*************  IMP80 version  ******************
!*
!***********************************************************************
!%INCLUDE "ERCS06.PERQ_TRIADOPS"                                        ;
!***********************************************************************
!*
!*

==== ercs07/emas-2900/oldqfiles_f77cmess2.txt ====
!* MODIFIED 23/03/82
!*
!*
%RECORDFORMAT COMFMT(%INTEGER CONTROL,OPTIONS,OPTIONS1,OPTIONS2,PTRACE,
      ADICT,ANAMES,ADOUTPUT,ADBLKDTAID,DICLEN,DPTR,
      MAXTRIADS,NEXTPLAB,ALABH,ADLHEAD,
      SUBPROGTYPE,SFPTR,EXTERNALS,CBNPTR,SCPTR,CHECKLIST,
      RESCOM1,RESCOM2,GLACA,FNO,FAULTY,LINEST,CMNIIN,SFMK,
      LISTL,LISTSTREAM,DIAGSTREAM,LISTPOINT,XREF,
      PACKCMN,ITSMODE,PATHANAL,CHARACTER CODE,SPACE CHAR,
      HEADINGS,ARRAYCHECKS,JBRMODE,MESSLEN,NAMESLEN,
      NEXTCH,FUNRESDISP,WARNCOUNT,INP,MAXINP,MESSCOUNT,
      UNASSPATTERN,LISTCODE,PI21INT,DOPTR,SUBPROGPTR,
      FNLST,LAB,NAMESFREE,ALGOLREF,FIRSTSTATNUM,CEXPDICT,
      COMMONBASE,FASTPROLOGUE,STATEMENT,IFPTR,
      CNSTCA,COMMENTCNT,ADIDENT,ADERRIDEN)
%EXTERNALROUTINE QCMESS
{dummy}
%END
!*
%EXTERNALROUTINE FAULTNUM(%INTEGER ER,COMAD,UPDATE)

==== ercs07/emas-2900/rel4_comp24.txt ====
{15/06/82 17:30 LCG}
{08/06/82 09:50 provide for variable areas on a switch                         }
{03/06/82 06:10 allow 128 blocks in DICT seg                                   }
{20/05/82 13:20 workseg now 40 blocks (8K bytes for names)                     }
{               MOVE BEE called on source block read                           }
{               NAMESFUL and DICFUL tidied                                     }
{13/05/82 14:30 increase workseg as below to 32 blocks                         }
{13/05/82   increase size of workseg to 24 blocks and reallocate space         }
{           to allow GENERATE to use a 4 block cycle for triad output          }
!*
!*************************** EXPORTS **********************
!*
%ROUTINESPEC F77COMP(%HALFINTEGER A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,
   %INTEGER INFILE,ERRFILE,OUTFILE,
   %HALFINTEGER BLKS,BITS,ISN,
   %INTEGER MODE,
   %HALFINTEGER NUMIMPORTS,MEMSIZE)
%ROUTINESPEC SOURCE LINE(%INTEGER ABUFF)
%ROUTINESPEC DICFUL
%ROUTINESPEC NAMESFUL
%ROUTINESPEC EXTFUL

==== ercs07/emas-2900/sforf_namcomf.txt ====
      SUBROUTINE NAMCOM(BUF,SLEN)
      INTEGER BUF(1),SLEN,PERIOD
      INTEGER GCHAR
      LOGICAL BP
      DATA PERIOD/46/
      BP=.TRUE.
      DO 50 IK=1,8
      IF(.NOT.BP.OR.IK.GT.6.OR.IK.GT.SLEN)GOTO 10
      IF(GCHAR(BUF,IK).NE.PERIOD)GOTO 50
      IT=IK
      GOTO 25
   10 CONTINUE
      IF(.NOT.BP)GOTO 30
      DO 20 IT=1,SLEN
      IF(GCHAR(BUF,IT).EQ.PERIOD)GOTO 25
   20 CONTINUE
      GOTO 60
   25 CONTINUE
      BP=.FALSE.
   30 CONTINUE
      IT=IT+1

==== ercs07/emas-2900/dsa20_rtjsvar.txt ====
%CONTROL X'0FFFFFFF'
%SYSTEMROUTINESPEC MOVE(%INTEGER L,FROM,TO) 
%SYSTEMROUTINESPEC ETOI(%INTEGER AD,L) 
%SYSTEMROUTINESPEC ITOE(%INTEGER AD,L) 
%SYSTEMINTEGERFNSPEC JSREAD    (%INTEGER                     %C 
                                        NAME DR0,NAME DR1,            %C 
                                        INT DR0,INT DR1,              %C 
                                        STR DR0,STR DR1,              %C 
                                        BOOL DR0,BOOL DR1) 
%SYSTEMINTEGERFNSPEC JS WRITE (%INTEGER NAME DR0,NAME DR1,   %C 
                                                 INT DR0,INT DR1,     %C 
                                                 STR DR0,STR DR1,     %C 
                                                 BOOL DR0,BOOL DR1) 
!********************************************************************** 
! 
!                       WRITE JS VAR 
! 
!********************************************************************** 
! 
%SYSTEMINTEGERFN WRITE JS VAR (%STRING(32) NAME,    %C 
                               %INTEGER    OPTION,  %C 

==== ercs07/emas-2900/sforf_endlinf.txt ====
      SUBROUTINE ENDLIN
      INTEGER  INPTR
      INTEGER  OUTPTR
      INTEGER  INMAX
      INTEGER  MAXTAB
      INTEGER  MAXLIN
      INTEGER  IFMAX
      INTEGER  MAXLEV
      INTEGER  LINENO
      INTEGER  PAGE
      INTEGER  CLINE
      INTEGER  TLIMIT
      INTEGER  LN
      INTEGER  I, J, K
      INTEGER  II, JJ, KK
      INTEGER  LEXVAL
      INTEGER  SLEN
      INTEGER  LEVEL
      INTEGER  LEN
      INTEGER  INCHAN
      INTEGER  OUTCHN

==== ercs07/emas-2900/pnxrel01_optctl45.txt ====
! 16/07/84 - put name of OPTCTL routine in an include file
! 04/07/84 - put SPECS to constant operations in include file "targ_constfns"
! 03/07/84 - replace scaling factor in OPTCTL by BSCALE
!04/06/84 - correction to BUSYONX
! 02/04/84 - changes in SUBSUM for DIOITEM(list-directed)
! 15/03/84 - further changes of 4 to W1 in CONOP
! 21/02/84 - Replace increments of 4 by W1 in BUSYONX & CONOP
! 17/01/84 - CORRECT CREATETAB; MAKE BLOCKPOINT RELATIVE IN SETBITS
! 08/11/83 COPIED FROM ERCS06.REL90_OPTCTLB31
!*
%INCLUDE "host_host"
!*
%INCLUDE "targ_target"
!*
%INCLUDE "pf_version"
!*
%INCLUDE "bits_fmts"
!*
%INCLUDE "bits_ctlspecs"
!*
%INCLUDE "bits_optfmts"

==== ercs07/emas-2900/slogof_pcontffr.txt ====
    
      SUBROUTINE  PCONT 
    
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      INTEGER     NEXT,   NUMBER, I,      IOTYPE
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT
      INTEGER ICLP05
      LOGICAL     ENDOK,CONEND  
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG   
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG  
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV  
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE  
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N   
      COMMON   /LOGOS/  PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE  

==== ercs07/emas-2900/r1_anal16.txt ====
!* 06/05/82   
!*
!************  IMP80 version  ************
!*
%CONSTINTEGER TESTVERSION=1;!  0  NO   1  YES
%CONSTINTEGER DICTVERSION=0;!  0  EMAS   1  VME
!*
!{2900C} %CONSTINTEGER W1=2
!{2900C} %CONSTINTEGER W2=4
!{2900C} %CONSTINTEGER W4=8
!{2900C} %CONSTINTEGER W6=12
{PERQC} %CONSTINTEGER W1=1
{PERQC} %CONSTINTEGER W2=2
{PERQC} %CONSTINTEGER W4=4
{PERQC} %CONSTINTEGER W6=6
!*
!*
!**** SYNTAX ****
!*
!* Syntax tables generated from file SYNTAX48 on 11/03/82 at 06.51.27
!*

==== ercs07/emas-2900/slinks_bitdfnin.txt ====
C     EDIT DATE   01JUN78  22:23
C     SOURCE FILE BITDFNGAK.IN
C     AUTHOR      GARY A. KUDIS
C     BIT DEFINITIONS
C
C     BIT00 IS THE LEAST SIGNIFICANT; BIT15 IS MOST SIGNIFICANT.
C
      INTEGER     BITS (16)
      INTEGER     BIT00,BIT01,BIT02,BIT03,BIT04,BIT05,BIT06,BIT07
      INTEGER     BIT08,BIT09,BIT10,BIT11,BIT12,BIT13,BIT14,BIT15
      INTEGER     BIT, BITNO
      COMMON      /BITDFN/ BITS
      COMMON      /BITDFN/ BIT, BITNO
      EQUIVALENCE (BITS(1),BIT00),(BITS(2),BIT01),(BITS(3),BIT02)
      EQUIVALENCE (BITS(4),BIT03),(BITS(5),BIT04),(BITS(6),BIT05)
      EQUIVALENCE (BITS(7),BIT06),(BITS(8),BIT07),(BITS(9),BIT08)
      EQUIVALENCE (BITS(10),BIT09),(BITS(11),BIT10)
      EQUIVALENCE (BITS(12),BIT11),(BITS(13),BIT12)
      EQUIVALENCE (BITS(14),BIT13),(BITS(15),BIT14)
      EQUIVALENCE (BITS(16),BIT15)


==== ercs07/emas-2900/perqrel3_ioc6.txt ====
   !Modified  10/ 5/82   12.00





!**********************************************************************!
!**********************************************************************!
     !                                                            !
     !                                                            !
     !   This Module is designed to provide List-Directed Input   !
     !                                                            !
     !              for FORTRAN77  Programs                       !
     !                                                            !
     !               on ICL  PERQ  Machines                       !
     !                                                            !
     !                                                            !
!**********************************************************************!
!**********************************************************************!



==== ercs07/emas-2900/slogof_pass2afr.txt ====
    
      SUBROUTINE  PASS2 
    
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      INTEGER     NEXT,   NUMBER, I,      IOTYPE
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT
      INTEGER ICLP05
      LOGICAL     ENDOK,CONEND  
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG   
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG  
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV  
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE  
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N   
      COMMON   /LOGOS/  PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE  

==== ercs07/emas-2900/qdums_objanal.txt ====
program objanal(inseg,input,output);
imports memory from memory;
imports qobjanal from qobjanal;
var inseg:segfiletype;
    i,j,k,block:integer;
    byte:chrblock;
    ch:char;
    objname,outname:fnstring;
begin
writeln('enter name of file to analyse');
reset(input);
readln(objname);
writeln('enter name of output file');
readln(outname);
rewrite(output,outname);

close(output);
end.

==== ercs07/emas-2900/slinkf_estjhpfr.txt ====
    
      SUBROUTINE EST (STR, BUF, LEFT, RIGHT)
      INTEGER  STR(1), BUF(1), LEFT, RIGHT  
      INTEGER  GETX, PUTX   
      INTEGER  GCHAR
      GETX = 1  
      PUTX = LEFT   
      CONTINUE  
13014 CONTINUE  
    
      IF (.NOT.(PUTX .LE. RIGHT))GO TO 13015
    
      CALL PCHAR (BUF, PUTX, GCHAR (STR, GETX)) 
      GETX = GETX + 1   
      PUTX = PUTX + 1   
      GO TO 13014   
13015 CONTINUE  
    
      RETURN
      END   

==== ercs07/emas-2900/qfiles5apr_imperr.txt ====
%BEGIN
%INTEGER I
I=10//0
%ENDOFPROGRAM

==== ercs07/emas-2900/qfiles5apr_f77fdiag1.txt ====
! MODIFIED   25/ 2/82   16.00




%EXTERNALROUTINE QFDIAG (%INTEGER      LOCAL POINTER       ,
                         %INTEGER     GLOBAL POINTER       ,
                         %INTEGER     PCOUNT               ,
                         %INTEGER   ACTIVITY CONTROL BLOCK ,
                         %INTEGER   SYMTABLE BASE          ,
                         %INTEGER   SYMTABLE DISP          ,
                         %INTEGER       MODE,DIAG          ,
                         %INTEGER      ASIZE,FIRST         ,
                         %INTEGERNAME         NEXT         )
                         !
                         !
                         !
!
!*********************************************************************%C
!*********************************************************************%C
                                                                      %C

==== ercs07/emas-2900/slogof_encnamfr.txt ====
    
      INTEGER FUNCTION ENCNAM (INDEX)   
      INTEGER     INDEX, NTS, NRCHAR
      INTEGER     CLOCN 
    
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      INTEGER     NEXT,   NUMBER, I,      IOTYPE
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT
      INTEGER ICLP05
      LOGICAL     ENDOK,CONEND  
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG   
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG  
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV  
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE  

==== ercs07/emas-2900/rel10opt_optctl47.txt ====
! 29/08/84 - correction to SETBITS for CMNCOORDS(1)
! 27/08/84 - insert function GET PLABDICT
! 16/07/84 - put name of OPTCTL routine in an include file
! 04/07/84 - put SPECS to constant operations in include file "targ_constfns"
! 03/07/84 - replace scaling factor in OPTCTL by BSCALE
!04/06/84 - correction to BUSYONX
! 02/04/84 - changes in SUBSUM for DIOITEM(list-directed)
! 15/03/84 - further changes of 4 to W1 in CONOP
! 21/02/84 - Replace increments of 4 by W1 in BUSYONX & CONOP
! 17/01/84 - CORRECT CREATETAB; MAKE BLOCKPOINT RELATIVE IN SETBITS
! 08/11/83 COPIED FROM ERCS06.REL90_OPTCTLB31
!*
%INCLUDE "host_host"
!*
%INCLUDE "targ_target"
!*
%INCLUDE "pf_version"
!*
%INCLUDE "bits_fmts"
!*
%INCLUDE "bits_ctlspecs"

==== ercs07/emas-2900/helpsa20_setuprttmpl.txt ====
MACRO SETUPRTTEMPL20 IS (
   LITERAL (OMFLIB) %OMFLIB)
MACBEGIN
STRING %OMFFILE := %OMFLIB + '.ICL9LPJCLPROCS'
BEGIN
DECLAREPARAMETERDEFINERS
EXT PROC PASCALRUNTEMPL IS(
LITERAL PROCEDURE,
INT HEAPSIZE := 10,
LITERAL RTINPUT :="*STDAD",
LITERAL RTOUTPUT := "*STDAD",
SUPERLITERAL FLOWANALYSES := "NONE",
INT RETROBUFSIZE := 50,
INT STARTFORWARD := 1,
INT STOPFORWARD := 2,
LITERAL ERRORCLASS := NIL,
LITERAL IGNORE := NIL,
LITERAL CATCH := NIL,
LITERAL EMESS := NIL,
LITERAL ROUTE := NIL,
LITERAL REPORT := NIL,

==== ercs07/emas-2900/slogof_fatalffr.txt ====
 
      SUBROUTINE  FATAL (ERROR) 
      INTEGER     ERROR 
 
      INTEGER     LISTF,  SNLPRT, SUMPRT, SYMFLG 
      INTEGER     PRINTF, SKIP,   COMPFL (2) 
      INTEGER     LOCPRT, USFLGS, NEGFLG, SKNAME (8) 
      INTEGER     ORGFLG, CTLUSE, CTLERR, TTL (8) 
      INTEGER     DUMFLG 
      INTEGER ICLP01 
      COMMON      /CTLCOM/    LISTF,  SNLPRT, SUMPRT, SYMFLG 
      COMMON      /CTLCOM/    PRINTF, SKIP,   COMPFL 
      COMMON      /CTLCOM/    LOCPRT, USFLGS, NEGFLG, SKNAME 
      COMMON      /CTLCOM/    ORGFLG, CTLUSE, CTLERR, TTL 
      COMMON      /CTLCOM/    DUMFLG 
      COMMON      /CTLCOM/ ICLP01 
      EXTERNAL    OLPS2 
      CTLUSE = 0 
      CALL FAULTP (ERROR) 
      CALL QUIT 
      STOP 

==== ercs07/emas-2900/culmoldsce_newlibsdis.txt ====
%BEGIN
%CONTROL 0
!
%INTEGERARRAY STJNUM(1:256)            ;! JOURNAL NUMS IN CURRENT SDI   00000300
!?? SHORT; %OWNINTEGERARRAY STIPCT(1:256);! NO OF I/P ITEMS PER JOURNAL 00000400
!?? SHORT; %OWNINTEGERARRAY STOPCT(1:256);! NO OF THESE ITEMS DISTRD.   00000500
!?? SHORT; %OWNINTEGERARRAY STUSCT(1:256);! NO OF USERS RECEIVING ITEMS 00000600
%OWNBYTEINTEGERARRAY STUSMK(1:256)     ;! MARKER ARRAY                  00000650
!
%INTEGER CSUNIT                        ;! STATS CUMULATION FILE UNIT NO
%INTEGER MXSTJN                        ;! NO OF DIFF JOURNAL NUMS I/P
%INTEGER NEWSTS                        ;! NEW STATS FILE INDICATOR
%INTEGER WEEKNO                        ;! WEEK NUMBER
!
%OWNINTEGER MXNUMB=1024                ;! MAX SIZE OF JOURN NO ARRAY    00001300
%OWNINTEGER STUSOP                     ;! TOTAL NO OF COPIES DISTRIB    00001350
%OWNINTEGER STUSSV                     ;! NO OF USERS RECEIVING ITEMS
%OWNINTEGER STUSTL                     ;! NO OF USERS IN SYSTEM
%OWNINTEGER YES=1                      ;! CONSTANT
!
%BEGIN                                                                  00001800

==== ercs07/emas-2900/culhamsce_libulms.txt ====
%BEGIN                                                                  00000100
%CONTROL 0
!    COMPILE TIME 18 ETU
!    RUN TIME 4WKS   99 ETU
!
!    PROGRAM TO PRODUCE THE MONTHLY BULLETIN OUTPUT FROM ANY            00000200
!    NUMBER OF FILES, SPECIFIED BY THE CONTROL CARDS.                   00000300
!                                                                       00000400
%INTEGER AL                            ;! LENGTH OF AUTHOR FIELD        00000500
%INTEGER AS                            ;! START OF AUTHOR FIELD         00000600
%INTEGER AUUNIT                        ;! AUTHOR LISTING UNIT
%INTEGER BLUNIT                         ;! BULLETIN I/P FILE
%INTEGER BLNK                          ;! BLANK WORD
%INTEGER BLOCK                          ;! CURRENT BLOCK NUMBER
%INTEGER BUL                          ;! FILE COUNT                     00001100
%INTEGER CDTYPE                        ;! INPUT CARD TYPE               00001200
%INTEGER CHECK                         ;! CHECKING INDICATOR            00001300
%INTEGER CNT                           ;! INPUT CARD COUNT              00001400
%INTEGER CONCST                       ;! MASTER CONC POINTER            00001500
%INTEGER CSECT                        ;! CURRENT RECORD SECTOR          00001600
%INTEGER DIAGNS                        ;! DIAGNOSTIC PRINT INDICATOR    00001700

==== ercs07/emas-2900/inpds_recordin.txt ====
C     EDIT DATE   11MAY78  11:13
C     SOURCE FILE RECORDGAK.IN
C     AUTHOR      GARY A. KUDIS
C     INPUT RECORD DEFINTION
      INTEGER     RCOUNT
      INTEGER     RTYPE
      INTEGER     RSTYPE
      INTEGER     RTMAX
      INTEGER     RSZMAX
      INTEGER     RECORD (41)
      INTEGER     RSIZE
      INTEGER     RSIZES (20)
      COMMON      /RECORD/ RCOUNT
      COMMON      /RECORD/ RTYPE
      COMMON      /RECORD/ RSTYPE
      COMMON      /RECORD/ RTMAX
      COMMON      /RECORD/ RSZMAX
      COMMON      /RECORD/ RECORD
      COMMON      /RECORD/ RSIZE
      COMMON      /RECORD/ RSIZES


==== ercs07/emas-2900/slinkf_espjhpfr.txt ====
    
      SUBROUTINE ESP (WORD, BUF, LEFT, RIGHT)   
      INTEGER  WORD, BUF(1), LEFT, RIGHT
      INTEGER  CHAR, MFLAG, WORK, XMINUS, XZERO, COL
      INTEGER QQMOD 
      DATA     XMINUS / 45 /
      DATA     XZERO  / 48 /
      IF (.NOT. (WORD .LT. 0))GO TO 13008   
    
      WORK = - WORD 
      MFLAG = 1 
      GO TO 13009   
13008 CONTINUE  
    
      WORK = WORD   
      MFLAG = 0 
13009 CONTINUE  
    
      COL = RIGHT   
      CONTINUE  
13010 CONTINUE  

==== ercs07/emas-2900/rel6_ioc7.txt ====
   !Modified  14/ 6/82   16.00





!**********************************************************************!
!**********************************************************************!
     !                                                            !
     !                                                            !
     !   This Module is designed to provide List-Directed Input   !
     !                                                            !
     !              for FORTRAN77  Programs                       !
     !                                                            !
     !               on ICL  PERQ  Machines                       !
     !                                                            !
     !                                                            !
!**********************************************************************!
!**********************************************************************!



==== ercs07/emas-2900/cobolsce_cobrun.txt ====
%RECORDFORMAT JSVFORMAT( %LONGINTEGER IVALUE, %C
%INTEGER SIZE,KPOS,MAXREC, %C
%STRING(32) LNAME, %STRING(48) NAME, %C
%BYTEINTEGER FORMAT,ORG,KLEN,ACCESS,PACKING,DUM1)
%OWNRECORDARRAYFORMAT JSVAF(0:20)(JSVFORMAT)
%OWNRECORDARRAYNAME JSV(JSVFORMAT)
%OWNLONGINTEGERNAME JSN
%OWNINTEGER JSMAX=20
%OWNINTEGER QUITLNB,QUITCTB,QUITXNB,CREG34,CREG36
%RECORDFORMAT RF(%INTEGER CONAD,FILETYPE,DATASTART,DATAEND)
!
!    GLOBAL DECLARATIONS
!
%OWNSTRING(16) LIBFILNAME="COBLIB"
%OWNSTRING(16) COBRUNFN="COBRUNY"
%CONSTINTEGER FCMAX=10; !  MAXIMUM NUMBER OF FILE CONTROL BLOCKS
%CONSTINTEGER EBCDICSPACE=64
%OWNINTEGER FCN

!
!    FILE CONTROL BLOCKS ETC.

==== ercs07/emas-2900/npcpf_pfvarref.txt ====
procedure StartAncillaries(var List: AncillaryList);
extern;
procedure AppendEntry(var List: AncillaryList;
                      NewEntry: AncillaryEntry);
extern;

function CheckCount(List: AncillaryList): Scalar;
extern;

procedure GetEntry(var Entry: StackEntry);
extern;
 
procedure FreeEntry(Entry: StackEntry);
extern;

procedure Push(Entry: StackEntry);
extern;

procedure Pop(var Entry: StackEntry);
extern;


==== ercs07/emas-2900/f77ctl31.txt ====
%OWNINTEGER LAST WARNING
%OWNINTEGER OMFRESULT
%OWNSTRING(40) %ARRAY OMFERRORS(0:3)=  %C
E" *** ERROR CREATE OMF MODULE FAILS ***",
E" *** ERROR WRITE OMF RECORD FAILS ***",
E" *** ERROR SET ALIAS FAILS ***",
E" *** ERROR END OMF MODULE FAILS ***"
!* MODIFIED  21/07/81
!*
%OWNSTRING(4) CSUBNAME=E"F77 "
%CONSTSTRING(4) CVERSION=E"  70"
%CONSTSTRING(23)    CIDENT=E"FORTRAN77/B.70.01      "
%CONSTINTEGER CFLAG=C'G   '
%OWNINTEGER CLANGCODE=C'G'
%EXTERNALINTEGERFNSPEC  %C
                        ICL9CEF77CSM(%INTEGERFN INPUT,OUTPUT,SUPPORT,%C
                                     %INTEGER WORK,TEMP,AUX,OBJREC,%C
                                     SYSTEM,CODE,OPTIONS0,OPTIONS1,%C
                                     COM46,SPARE)
!*
%EXTERNALINTEGERFNSPEC ICL9HNCREATEMODULE(%INTEGER NAME DR0,NAME DR1,%C

==== ercs07/emas-2900/npc1_pfsyntax.txt ====
function Missing(Symbol: SymbolType): integer;
  extern;

procedure AcceptSymbol;
  extern;

procedure Accept(SymbolExpected: SymbolType);
  extern;

procedure AcceptEquals;
  extern;

procedure CheckContext(ContextExpected: SetOfSymbols);
  extern;

procedure CheckNextOrContext(SymbolsExpected, DefaultContext:
                               SetOfSymbols);
  extern;

procedure SkipToContext(ContextNeeded: SetOfSymbols);
  extern;

==== ercs07/emas-2900/basicmaster_xdumps.txt ====
%CONSTINTEGER YES = 1,      %C
               NO = 0
%STRING(15)%FN SFROMI (%INTEGER X)
%INTEGER REM,NUMB,NF
%STRING(15) ANS
ANS = ''
%IF X < 0 %THEN %START
    NF = YES
    X = X*(-1)
%FINISH %ELSE NF = NO
%CYCLE
NUMB = X
X = X//10
REM = NUMB - X*10
ANS = TOSTRING(REM+'0').ANS
%EXIT %IF X = 0
%REPEAT
%IF NF = YES %THEN ANS = "-".ANS
%RESULT = ANS
%END     ;!  OF SFROMI
%STRING(8)%FN HEXOF (%INTEGER X)

==== ercs07/emas-2900/pascalsce_pdefine2.txt ====
%SYSTEMROUTINESPEC CONNECT(%STRING(31) FILE,%INTEGER MODE,HOLE,PROT, %C
  %RECORDNAME R,%INTEGERNAME FLAG)
%EXTERNALROUTINESPEC DESTROY(%STRING(255)S )
%EXTERNALROUTINESPEC CLEAR(%STRING(255) S)
%EXTERNALROUTINESPEC NEWSMFILE(%STRING(63) S)
%SYSTEMROUTINESPEC PSYSMES(%INTEGER ROOT,FLAG)
%EXTERNALINTEGERFNSPEC SEARCHFILE(%STRINGARRAYNAME DEFFILES, %C
                   %STRING(32) FILE)
%EXTERNALROUTINE PCLEAR(%STRING(255) S)
%INTEGER FLAG
%RECORDFORMAT RF(%INTEGER CONAD,TYPE,START,END)
%RECORD PFILES(RF)
CONNECT('T#PFILES',2,0,0,PFILES,FLAG)
%IF FLAG=0 %THEN DESTROY ('T#PFILES')
CLEAR("")
%END
!
%EXTERNALROUTINE PDEFINE(%STRING(255) S)
%RECORDFORMAT RF(%INTEGER CONAD,TYPE,START,END)
%RECORD PFILES(RF)
%STRING(32) %ARRAYFORMAT FILFMT(1:64)

==== ercs07/emas-2900/inpds_txtcomin.txt ====
C     EDIT DATE   16JAN79  15:23
C     SOURCE FILE TXTCOMGAK.IN
C     AUTHOR      GARY A. KUDIS
      INTEGER     TEXT (27), LEFT (4), RIGHT (4)
      COMMON      /TEXTC/ TEXT, LEFT, RIGHT


==== ercs07/emas-2900/rel4_code23.txt ====
!* MODIFIED 25/06/82
!{2900C}%CONSTINTEGER W1=2;! 1 PERQ  2 EMAS
!{2900C}%CONSTINTEGER W2=4
!{2900C}%CONSTINTEGER W3=6
!{2900C}%CONSTINTEGER W4=8
!{2900C}%CONSTINTEGER W6=12
!{2900C}%CONSTINTEGER W8=16
!{2900C}%CONSTINTEGER W66=132
{PERQC}%CONSTINTEGER W1=1
{PERQC}%CONSTINTEGER W2=2
{PERQC}%CONSTINTEGER W3=3
{PERQC}%CONSTINTEGER W4=4
{PERQC}%CONSTINTEGER W6=6
{PERQC}%CONSTINTEGER W8=8
{PERQC}%CONSTINTEGER W66=66
%OWNINTEGER TRACETEMP
!*************  IMP80 version  ******************
!*
!***********************************************************************
!%INCLUDE "ERCS06.PERQ_TRIADOPS"                                        ;
!***********************************************************************

==== ercs07/emas-2900/mixedsrce1_procdef.txt ====
PROGRAM PROCDEF;
(*# E+ *)
PROCEDURE SET2(VAR I1,I2:INTEGER);
BEGIN
I1:=2;
I2:=2
END;
BEGIN
END.

==== ercs07/emas-2900/listf77bits.txt ====
ANALYSE ERCS06.F77BITS,F
LIST ERCS06.F77BITS_ANALFMTS
LIST ERCS06.F77BITS_ANALSYNTABS
LIST ERCS06.F77BITS_CCODES
LIST ERCS06.F77BITS_COM
LIST ERCS06.F77BITS_CONSTS
LIST ERCS06.F77BITS_CTLSPECS
LIST ERCS06.F77BITS_FMTS
LIST ERCS06.F77BITS_GENSYNTABS
LIST ERCS06.F77BITS_LINKBF77Y
LIST ERCS06.F77BITS_OPTSPECS
LIST ERCS06.F77BITS_SIZES
LIST ERCS06.F77BITS_TRIADOPS
ANALYSE ERCS06.F77BITS_BF77Y

==== ercs07/emas-2900/rel6_iod5.txt ====
   !Modified     7/ 5/82   11.00





!**********************************************************************!
!**********************************************************************!
    !                                                            !
    !                                                            !
    !     This Module is designed to handle List-Directed Output !
    !                                                            !
    !                for FORTRAN77 Programs                      !
    !                                                            !
    !                 on ICL  PERQ Machines                      !
    !                                                            !
    !                                                            !
!**********************************************************************!
!**********************************************************************!



==== ercs07/emas-2900/slogos_lconstin.txt ====
      INTEGER  LOWWF, LTLNA, LLPOOL, LLNAME, LMOVEP, LBSS
      INTEGER  LEXEQU, LNLEQU
      COMMON   /LCON/   LOWWF, LTLNA, LLPOOL, LLNAME, LMOVEP, LBSS
      COMMON   /LCON/   LEXEQU, LNLEQU




==== ercs07/emas-2900/pnxrel11_eelim43.txt ====
! 29/11/84 - correct TRELIM for TOCHAR and CONJG
! 31/01/84 - UPDATE TRELIM FOR DCMPLX & INTRIN
! 18/01/84 - BIT STRIP ADDRESSES ARE NOW RELATIVE TO ABLOCKS
! 23/11/83 set up TRACE flag and EDUMPTRACE routine
! 27/10/83 - copied from ERCS06.REL8002_eelimb7
%INCLUDE "host_host"
%INCLUDE "targ_target"
%INCLUDE "pf_version"
!*
%INCLUDE "bits_fmts"
%INCLUDE "bits_optspecs"
%INCLUDE "bits_consts"
%INCLUDE "bits_optfmts"
!
%INCLUDE "bits_triadops"
!*
%OWNINTEGER TRACE=0
!
%OWNINTEGER ELFLAG,ELIMEND,RWFLAG,HVAL
%OWNINTEGER COORD1,COORD2,MODE,MATCH
!*

==== ercs07/emas-2900/qdums_f77comp3.txt ====
MODULE F77Comp;

{ updated 22/3/82 - add procedures namesful, outputful }


EXPORTS

imports filedefs from filedefs;
IMPORTS FortranCompiler FROM Fortran;

procedure dumcomp;
PROCEDURE F77Com(
                  NumOutFile,         { FileID of output (.SEG or .PSG) file } 
                  InFileNum,          { FileID of input file }
                  Wkfilenum : FileID; { Fileid of workfile }                   
      
                  Extern,          { TRUE if /EXTERN switch to be in effect }
                  Range,           { TRUE if /RANGE switch to be in effect }
                  Check,           { TRUE if /CHECK switch to be in effect }
                  List,            { TRUE if /LIST switch to be in effect }
                  Code,            { TRUE if /CODE switch to be in effect }

==== ercs07/emas-2900/npc1_globalsh.txt ====
{

                           MODULE 2
 
 
                      Global Definitions
                       and Declarations
 
 
 
 
 
 Because of the rigid order of definitions and declarations imposed
 by  Pascal, this module contains all of the global definitions and
 declarations on which the procedures  in  the  subsequent  modules
 depend.  In  this  module,  only a brief indication of the overall
 nature of the constants, types and variables introduced is  given,
 together  with a reference to the module in which they are used. A
 more detailed explanation of the nature and  purpose  of  each  is
 given in the referenced module itself.


==== ercs07/emas-2900/slinkf_pushmdfr.txt ====
    
      SUBROUTINE PUSHMD 
    
      LOGICAL     MPFLAG
      LOGICAL     OVMODE
      LOGICAL     LBMODE
      LOGICAL     LOADRB
      LOGICAL     SFLAG 
      INTEGER     VERS  
      INTEGER     LOADAD
      INTEGER     ZLOC, ZSTR, ZMAX, ZLIMIT  
      INTEGER     CLOC, CSTR, CMAX, CLIMIT  
      INTEGER     NLOC, NSTR, NMAX, NLIMIT  
      INTEGER     DLOC, DSTR, DMAX, DLIMIT  
      INTEGER     OLOC, OMAX, OSET  
      INTEGER     START 
      INTEGER     MODNLX
      INTEGER     CKSUM 
      INTEGER     KEY   
      INTEGER ICLP05
      COMMON      /LDATAX/ MPFLAG   

==== ercs07/emas-2900/ds20imp_services.txt ====
%CONTROL X'0FFFFFFF'
!***********************************************************************
!*
!*  SERVICES
!*
!*  ADAPTED FROM EDINBURGH IMP MODULE FCSM10
!*  FOR USE IN BSV35/KSV17 PASCAL SYSTEM (PASCAL 20)
!*
!*  INCLUDES :- ITOE , IOCP/WRITE (LISTING FILE) , NDIAG (DUMMY)
!*  SUPPORTS :- LPUT , OMFOUT , NCODE .
!*
!*  T.MOORE    MARCH '80
!*
!***********************************************************************
!*
!*
%CONSTINTEGER RTMARGIN=120                                                      
%CONSTINTEGER NL=10,NP=12,CR=12                                                       
%CONSTINTEGER FALSEBOOL=0,TRUEBOOL=1
%OWNINTEGER OUTPTR                                                              
%OWNBYTEINTEGERARRAY OUTBUFF(-2:119)                                            

==== ercs07/emas-2900/part13l.txt ====
Source: ERCS07.PART13         Compiled: 24/03/83   16.54.45
Object: PART13Y

Parms set: FIXED


OPT level 2          flags 10

     EDINBURGH FORTRAN77 COMPILER VERSION 80.01

     1     *****    PART13    ****************************************************H0006000
     2     C*****                                                                  H0006005
     3     C*****    ANSI FORTRAN   (X3.9-1966)     TEST PROGRAMS                  H0006010
     4     C*****                                                                  H0006015
     5     C*****    PREPARED BY THE NATIONAL BUREAU OF STANDARDS      VERSION 3   H0006020
     6     C*****                                                                  H0006025
     7     C*****    JUNE 1974                                                     H0006030
     8     C*****                                                                  H0006035
     9     C*****    PART 13 OF 14 PARTS                                           H0006040
    10     C*****                                                                  H0006045
    11     C*****    SEGMENTS INCLUDED                                             H0006050

==== ercs07/emas-2900/ctlspecs.txt ====
!*
!***********************************************************************
!*  data items                                                 *
!***********************************************************************
!*
%EXTERNALINTEGER ADICT     ;! @ of dictionary area
%EXTERNALINTEGER MAXDICT   ;! currect available length of dictionary
%EXTERNALINTEGER ANAMES    ;! @ of name table
%EXTERNALINTEGER ABLOCKS   ;! @ of block table
%EXTERNALINTEGER MAXBLOCKS ;! current available length of block table area
%EXTERNALINTEGER NEXTBLOCK ;! next available block index
%EXTERNALINTEGER FREEBLOCKS
%EXTERNALINTEGER CBNPTR    ;! listhead of common block records
%EXTERNALINTEGER SCPTR     ;! listhead of local identifiers
%EXTERNALINTEGER ATABS     ;! @ of area for assorted optimiser tables
%EXTERNALINTEGER MAXTABS   ;! curent available length of opt table area
%EXTERNALINTEGER FREETABS  ;! next free location in opt table area
%EXTERNALINTEGER EXBPTR    ;! exit block table
%EXTERNALINTEGER ENTBPTR   ;! entry block table
%EXTERNALINTEGER ALOOPS    ;! @ loop table area
%EXTERNALINTEGER MAXLOOPS  ;! current available length of loop table area

==== ercs07/emas-2900/slogof_ctnumffr.txt ====
    
      SUBROUTINE  CTNUM 
    
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      INTEGER     NEXT,   NUMBER, I,      IOTYPE
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT
      INTEGER ICLP05
      LOGICAL     ENDOK,CONEND  
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG   
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG  
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV  
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE  
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N   
      COMMON   /LOGOS/  PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE  

==== ercs07/emas-2900/ctms_loader.txt ====
%EXTERNALROUTINESPEC ECTM REPORT LONG(%STRING(63) MESS,  %C
      %INTEGER DR0, DR1)
%EXTERNALROUTINESPEC ECTM REPORT INT(%STRING(63) MESS, %INTEGER I)
%EXTERNALSTRING(31)%FNSPEC ECTM NEXT TEMP
!
%SYSTEMROUTINESPEC MOD DIR FILE(%INTEGER EP,  %C
      %STRING(31) DIR FILE, ENTRY, FILENAME,  %C
      %INTEGER TYPE, DR0, DR1, %INTEGERNAME FLAG)
%SYSTEMROUTINESPEC FIND ENTRY(%STRING(31) ENTRY,  %C
      %INTEGER TYPE, DAD, %STRINGNAME FILE,  %C
      %INTEGERNAME DR0, DR1, FLAG)
%EXTERNALROUTINESPEC COPY(%STRING(255) S)
%EXTERNALINTEGERFNSPEC EXIST(%STRING(31) FILE)
%SYSTEMROUTINESPEC LOAD FILE(%STRING(31) S, %INTEGER MODE,  %C
      %INTEGERNAME FLAG)
%SYSTEMINTEGERMAPSPEC COMREG(%INTEGER I)
!
%EXTERNALLONGINTEGERFN ROUTE DESCRIPTOR(%STRING(31) FILE,  %C
      %STRINGNAME TEMP)
!
! Loads the named file, returns a descriptor to the entry 'ROUTE'

==== ercs07/emas-2900/oldpsclsce_pascaltext.txt ====

PASCAL on EMAS
--------------

CONTENTS
1.  Introduction
2.  Compilation
2.1 Compilation Listings
2.2 Compiler Directives
3.  Execution
3.1 Files for Input and Output
3.2 Connection of INPUT and OUTPUT
3.3 Error Action
4.  EMAS 2900 PASCAL
4.1 Source program format
4.2 Language restrictions
4.3 Language extensins
4.4 The program heading and external files
4.5 Hardware representation
4.6 The standard procedure WRITE
Appendix 1 Compilation error messages 

==== ercs07/emas-2900/inpds_lcfuncin.txt ====
C     EDIT DATE   30APR78  14:33
C     SOURCE FILE LCFNCAJH.IN
C     AUTHOR      A. J. HOWARD
C     BASIC LOCATION COUNTER FUNCTIONS
      INTEGER     CODE
      INTEGER     NOUNLC
      INTEGER     DATALC
      INTEGER     COMLOC
      INTEGER     FBLOCK
      INTEGER     ZREL
      INTEGER     ABSLC
      INTEGER     CBTAB (15)
      INTEGER     CBX
      INTEGER     LCTAB (15)
      COMMON      /LCFUNC/ CODE
      COMMON      /LCFUNC/ NOUNLC
      COMMON      /LCFUNC/ DATALC
      COMMON      /LCFUNC/ COMLOC
      COMMON      /LCFUNC/ FBLOCK
      COMMON      /LCFUNC/ ZREL
      COMMON      /LCFUNC/ ABSLC

==== ercs07/emas-2900/tstfiles_logt04a.txt ====
''HEAD, LOGT04A - EXTERNAL SUBS A
''TITLE, LOGT04A
''LIST
;;SUB1:: 'LBR'
      0-> [100],
      'RBR'
  SUB2:: (XA,XB,XC)'LBR'
      XA+XB -> XC,
      'RBR'
      ....
''END

==== ercs07/emas-2900/slogosorg_genlxyin.txt ====

      INTEGER     OREG
      'INCLUDE'   LOGOSAJH.IN,
      'INCLUDE'   REGSJHP.IN,
      'INCLUDE'   RMCODES.IN,
      'INCLUDE'   STKDEFA.IN,
      'INCLUDE'   STKDEFE.IN,
      'INCLUDE'   GENCOMAJH.IN,
      INTEGER     BCODE (3, 3)
      DATA        BCODE / 169, 173, 165, ^ // LDAI LDAABS LDAZP
                          162, 174, 166, ^ // LDXI LDXABS LDXZP
                          160, 172, 164/   // LDYI LDYABS LDYZP
C     CHECK FOR DIRECT LOAD
C
      TS = OPCODE (SIDE)
      'DOLOOP' I = 1, 3
         'IF' (BCODE (I, 1) .EQ. TS)
C           CORE TO X OR Y DIRECTLY
C
            OPCODE (SIDE) = BCODE (I, OREG)
            CALL REGMAN (SAVREG, OREG, DUMMY)

==== ercs07/emas-2900/sforf_remarkf.txt ====

      SUBROUTINE REMARK (STRING)
      INTEGER  INPTR
      INTEGER  OUTPTR
      INTEGER  INMAX
      INTEGER  MAXTAB
      INTEGER  MAXLIN
      INTEGER  IFMAX
      INTEGER  MAXLEV
      INTEGER  LINENO
      INTEGER  PAGE
      INTEGER  CLINE
      INTEGER  TLIMIT
      INTEGER  LN
      INTEGER  I, J, K
      INTEGER  II, JJ, KK
      INTEGER  LEXVAL
      INTEGER  SLEN
      INTEGER  LEVEL
      INTEGER  LEN
      INTEGER  INCHAN

==== ercs07/emas-2900/slinkf_darrayfr.txt ====
    
      BLOCK DATA
    
      INTEGER     DICT (400)
      INTEGER     ID, CID, DTSTRT, DTSTOP   
      COMMON      /DARRAY/ DICT 
      COMMON      /DARRAY/ ID, CID, DTSTRT, DTSTOP  
      DATA     DTSTOP   /400/   
      END   

==== ercs07/emas-2900/strans_stinitfs.txt ====

C     EDIT DATE  19JUL79
C     SOURCE FILE STINIT.FS
C     AUTHOR   B. P. ADLEY
      'HEAD' INITIALISATION FOR STRAN
      'OUTFILE' INIT.FR
      SUBROUTINE INIT
      'INCLUDE'  STRAN.IN,
      'INCLUDE' FNAMES.IN,
      INTEGER GETWRD,GCHAR
      INTEGER CHARC
      DATA CHARC/67/
C
C
C     ASSIGN CHANNEL NUMBERS
      INCHAN = 10                       //STRAN SOURCE FILE
      OUTCHN = -1                       //FILE DEFINED BY 'OUTFILE'
      TTOCHN =  6                       //INTERACTIVE OUTPUT
      TTICHN = 5                        //INTERACTIVE INPUT
      COMCHN =  5                       //INTERACTIVE INPUT
      PROCCN =  4                       //COMMAND FILE

==== ercs07/emas-2900/slinkf_ehxjhpfr.txt ====
    
      SUBROUTINE EHX (WORD, BUF, LEFT, RIGHT)   
      INTEGER  WORD, BUF(1), LEFT, RIGHT
      INTEGER  WORK, CHAR, COL, XZERO, XLETA, MASK, BIAS
      DATA     XZERO / 48 / 
      DATA     XLETA / 55 / 
      DATA     MASK  / 15 / 
      COL = RIGHT   
      WORK = WORD   
      CONTINUE  
13016 CONTINUE  
    
      IF (.NOT.(COL .GE. LEFT))GO TO 13017  
    
      CHAR = IAND (WORK, MASK)  
      IF (.NOT. (CHAR .GE. 10))GO TO 13018  
    
      BIAS = XLETA  
      GO TO 13019   
13018 CONTINUE  
    

==== ercs07/emas-2900/psclsce2011_pdiags3.txt ====
! PASCAL DIAGNOSTICS RELEASE 2
! Mike Brown - February 1981
!
%SYSTEMROUTINESPEC ITOE (%INTEGER ADDR, LEN)
%SYSTEMROUTINESPEC DUMP (%INTEGER S, F)
%SYSTEMROUTINESPEC FINFO (%STRING (31) FILE, %INTEGER MODE, %C
   %RECORDNAME R, %INTEGERNAME FLAG)
%SYSTEMROUTINESPEC NCODE (%INTEGER S, F, A)
%SYSTEMSTRINGFNSPEC ITOS (%INTEGER INT)
%SYSTEMSTRINGFNSPEC CONFILE (%INTEGER AD)
%SYSTEMSTRINGFNSPEC FAILUREMESSAGE (%INTEGER ERROR)
!
%EXTERNALINTEGERFNSPEC ICL9LPPMPROCL (%INTEGER ERRNO, PROCNO, GROUP, %LONGINTEGER EMESS, %C
   %INTEGER LANG0, LANG1, DISPLACEMENT, %LONGINTEGER DIAGREC, %INTEGER MODCHAINENTRY0, %C
   MODCHAINENTRY1, AREAENTRY0, AREAENTRY1,STACKFRAME0, STACKFRAME1)
%EXTERNALINTEGERFNSPEC ICL9LPPMPROCR (%INTEGER DIAGNOSTICS, ARRAYSIZE, DISPLACEMENT, %C
   STACKFRAME0, STACKFRAME1, %LONGINTEGER DIAGREC, %INTEGER MODCHAINENTRY0, %C
   MODCHAINENTRY1, AREAENTRY0, AREAENTRY1, AREASOFENTRY0, AREASOFENTRY1)
%EXTERNALINTEGERFNSPEC ICL9HERRMESSP (%INTEGER ERRNO0, ERRNO1, %LONGINTEGERNAME EMESS)
!
%RECORDFORMAT RF (%INTEGER CONAD, FILETYPE, DATASTART, DATAEND, %C

==== ercs07/emas-2900/tstfiles_logt04b.txt ====
''HEAD, LOGT04 - EXTERNAL SUBS B
''TITLE, LOGT04B
''LIST
;;SUB3:: 'LBR'
      1 -> [100],
      1 -> [101],
      'RBR'
      ....
''END

==== ercs07/emas-2900/rel6_ioe1.txt ====
   !Modified  26/ 4/82   10.00





!**********************************************************************!
!**********************************************************************!
     !                                                         !
     !                                                         !
     !   This Module is designed to provide unformatted I/O    !
     !                                                         !
     !             for  FORTRAN77   Programs                   !
     !                                                         !
     !              on  ICL  PERQ   Machines                   !
     !                                                         !
     !                                                         !
!**********************************************************************!
!**********************************************************************!



==== ercs07/emas-2900/helpsa20_bctamplt.txt ====
AREA(2)
ALTER(11,X05,X02)
ALTER(15,X04,X02)

==== ercs07/emas-2900/inpds_setcomin.txt ====
C     EDIT DATE   14SEP78  15:09
C     SOURCE FILE SETCOMJHP.IN
C     AUTHOR      J H P
C     CLUSTER     X
      INTEGER     LDAZP, LDAABS, LDAIMM
      INTEGER     LDAABY, LDAINY
      INTEGER     LDYZP, LDYABS, LDYIMM
      INTEGER     SETNLX
      INTEGER     TS1, TS2
      INTEGER     SOPC, SWF, SWFOPN
      INTEGER     SETSTX, SSUBX, STBIAS
      INTEGER     STMODE, SSUBXB, SSUBXM
      INTEGER     SSUBOP, SWFSUB
      INTEGER     SLEFT, SRIGHT, SCTN
      LOGICAL     ZPFLAG, STLOC
      COMMON   /SCOM/   LDAZP, LDAABS, LDAIMM
      COMMON   /SCOM/   LDAABY, LDAINY
      COMMON   /SCOM/   LDYZP, LDYABS, LDYIMM
      COMMON   /SCOM/   SETNLX
      COMMON   /SCOM/   TS1, TS2
      COMMON   /SCOM/   SOPC, SWF, SWFOPN

==== ercs07/emas-2900/ds20imp_rtocp.txt ====
%CONTROL X'0FFFFFFF'
!* MODIFIED 20/03/79                                                            
!*                                                                              
%EXTERNALROUTINESPEC ICL9CEDIAGOUT(%INTEGER AD,LEN)                             
!*                                                                              
%SYSTEMINTEGERFN IOCP(%INTEGER EP, N)                                           
%CONSTINTEGER OUTMARG2=132                                                      
%OWNBYTEINTEGERARRAY OUTPUTBUFF(0:132)=10,0(132)                                
%OWNINTEGER OUTPTR=1                                                            
%ROUTINESPEC OUTPUTRECORD                                                       
%INTEGER I, X, L, CH                                                            
%SWITCH SW(1:22)                                                                
            ->SW(EP)                                                            
SW(3):                                  ! PRINT SYMBOL(N)                       
SW(5):                                  ! PRINT CH(N)                           
            %IF (N=10 %OR N=12 %OR N=13) %THEN %START                           
               OUTPUTBUFF(OUTPTR)=N                                             
               OUTPUTRECORD;  OUTPUTBUFF(0)=N                                   
               ->END2                                                           
            %FINISH                                                             
            OUTPUTBUFF(OUTPTR)=N                                                

==== ercs07/emas-2900/basicmaster_bscbase15.txt ====
!
!***********************************************************************
!
!***********************************************************************
!*
!* DIRECTOR ROUTINES DCONNECT & DDISCONNECT REPLACED BY SUBSYSTEM
!* ROUTINES CONNECT & DISCONNECT 
!* 14/11/78  --  L.A.B.
!*
!**********************************************************************
!
!
!*
!*                EMAS 2900 INTERFACE FOR KENT BASIC
!*
!**********************************************************************
!
!
!**********************************************************************
!*
!*                            CONSTANTS

==== ercs07/emas-2900/slinkf_topagefr.txt ====
    
      SUBROUTINE TOPAGE 
    
      INTEGER     ECODE 
      INTEGER     CMCHAN
      INTEGER     RBCHAN
      INTEGER     OBCHAN
      INTEGER     MPCHAN
      INTEGER     DBCHAN
      INTEGER     TTYIN 
      INTEGER     TTYOUT
      COMMON      /IODEFN/ ECODE
      COMMON      /IODEFN/ CMCHAN   
      COMMON      /IODEFN/ RBCHAN   
      COMMON      /IODEFN/ OBCHAN   
      COMMON      /IODEFN/ MPCHAN   
      COMMON      /IODEFN/ DBCHAN   
      COMMON      /IODEFN/ TTYIN
      COMMON      /IODEFN/ TTYOUT   
      INTEGER     FORM  
      DATA        FORM  / 3072/ 

==== ercs07/emas-2900/library_pmans.txt ====
J(:ERCS01.PMANS)
SETOPTIONS(NOLREADS)
INPUT(,,TPLIST)
----


ICL 2900 S5RIES TECHNICAL PUBLICATIONS HELD AT E.R.C.C., KINGS BUILDINGS

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


THE LIST BELOW DETAILS THE CURRENT STATUS OF OFFICIAL ICL PUBLICATIONS
RELATING MAINLY TO SYSTEM B.  SOME ARE NOT UP-TO-DATE, MISSING OR NOT
EVEN REQUIRED.  THE COMMENTS SHOULD BE OF SOME HELP TO INDICATE THE
STATE OF EACH MANUAL.  IT IS SOMETIMES VERY IMPORTANT TO READ ANY
PUBLICATIONS NOTICES FILED AT THE FRONT OF THE MANUALS AND THE
APPENDICES GIVING THE AVAILABILITY OF FACILITIES AT EACH RELEASE OF
THE SYSTEM OR PRODUCT.

THE MANUALS ARE FILED UNDER THE FOLLOWING CLASSIFICATIONS.


==== ercs07/emas-2900/pdefine1.txt ====
%SYSTEMROUTINESPEC CONNECT(%STRING(31) FILE,%INTEGER MODE,HOLE,PROT, %C
  %RECORDNAME R,%INTEGERNAME FLAG)
%EXTERNALROUTINESPEC DESTROY(%STRING(255)S )
%EXTERNALROUTINESPEC CLEAR(%STRING(255) S)
%EXTERNALROUTINESPEC NEWSMFILE(%STRING(63) S)
%SYSTEMROUTINESPEC PSYSMES(%INTEGER ROOT,FLAG)
%EXTERNALINTEGERFNSPEC SEARCHFILE(%STRINGARRAYNAME DEFFILES, %C
                   %STRING(32) FILE)
%EXTERNALROUTINE PCLEAR(%STRING(255) S)
%INTEGER FLAG
%RECORDFORMAT RF(%INTEGER CONAD,TYPE,START,END)
%RECORD PFILES(RF)
CONNECT('T#PFILES',2,0,0,PFILES,FLAG)
%IF FLAG=0 %THEN DESTROY ('T#PFILES')
CLEAR("")
%END
!
%EXTERNALROUTINE PDEFINE(%STRING(255) S)
%RECORDFORMAT RF(%INTEGER CONAD,TYPE,START,END)
%RECORD PFILES(RF)
%STRING(32) %ARRAYFORMAT FILFMT(1:64)

==== ercs07/emas-2900/slogof_nvaluefr.txt ====
    
      SUBROUTINE  NVALUE
    
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      INTEGER     NEXT,   NUMBER, I,      IOTYPE
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT
      INTEGER ICLP05
      LOGICAL     ENDOK,CONEND  
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG   
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG  
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV  
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE  
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N   
      COMMON   /LOGOS/  PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE  

==== ercs07/emas-2900/pdefine2.txt ====
%SYSTEMROUTINESPEC CONNECT(%STRING(31) FILE,%INTEGER MODE,HOLE,PROT, %C
  %RECORDNAME R,%INTEGERNAME FLAG)
%EXTERNALROUTINESPEC DESTROY(%STRING(255)S )
%EXTERNALROUTINESPEC CLEAR(%STRING(255) S)
%EXTERNALROUTINESPEC NEWSMFILE(%STRING(63) S)
%SYSTEMROUTINESPEC PSYSMES(%INTEGER ROOT,FLAG)
%EXTERNALINTEGERFNSPEC SEARCHFILE(%STRINGARRAYNAME DEFFILES, %C
                   %STRING(32) FILE)
%EXTERNALROUTINE PCLEAR(%STRING(255) S)
%INTEGER FLAG
%RECORDFORMAT RF(%INTEGER CONAD,TYPE,START,END)
%RECORD PFILES(RF)
CONNECT('T#PFILES',2,0,0,PFILES,FLAG)
%IF FLAG=0 %THEN DESTROY ('T#PFILES')
CLEAR("")
%END
!
%EXTERNALROUTINE PDEFINE(%STRING(255) S)
%RECORDFORMAT RF(%INTEGER CONAD,TYPE,START,END)
%RECORD PFILES(RF)
%STRING(32) %ARRAYFORMAT FILFMT(1:64)

==== ercs07/emas-2900/slogos_genajhfs.txt ====
'HEAD'  INTERFACE TO CODE GENERATION
C     EDIT DATE   05FEB79  16:57
C     SOURCE FILE GENAJH.FS
C     AUTHOR      A. J. HOWARD
C     CLUSTER     19
      'OUTFILE'   GENDATA.FR
      BLOCK DATA
      'INCLUDE'   GENCMA.IN,P
      DATA  BCC   / 144/   // 090
      DATA  BNE   / 208/   // 0D0
      DATA  CLC   /  24/   // 018
      DATA  JMP   /  76/   // 04C
      DATA  LDAABS/ 173/   // 0AD
      DATA  LDAI  / 169/   // 0A9
      DATA  LDAZP / 165/   // 0A5
      DATA  SBCI  / 233/   // 0E9
      DATA  SEC   /  56/   // 038
      DATA  STAZP / 133/   // 085
      DATA  TAX   / 170/   // 0AA
      DATA  TXA   / 138/   // 08A
      DATA  LOW   / 1/

==== ercs07/emas-2900/npc1_semant.txt ====
{

                          MODULE 10
 
 
                      Semantic Analysis
                             and
                   Semantic Error Recovery
 
 
 
 
 
 Semantic analysis and semantic error recovery are  implemented  by
 'enrichment'  of  the  syntax  analyser  with semantic interludes.
 These semantic interludes depend on the following globally-defined
 data structures and manipulative procedures.

                                                                     }

program Support;

==== ercs07/emas-2900/slinkf_gcharfr.txt ====
    
      INTEGER FUNCTION GCHAR (BUF, INDEX)   
      INTEGER  BUF (66), I, INDEX   
      I = ISHFT (INDEX+1, -1)   
      IF (.NOT. (IAND (INDEX, 1) .NE. 0))GO TO 13000
    
      GCHAR = ISHFT (BUF (I), -8)   
      GO TO 13001   
13000 CONTINUE  
    
      GCHAR = IAND (BUF (I), 255)   
13001 CONTINUE  
    
      RETURN
      END   

==== ercs07/emas-2900/rel11opt_eelim43.txt ====
! 29/11/84 - correct TRELIM for TOCHAR and CONJG
! 31/01/84 - UPDATE TRELIM FOR DCMPLX & INTRIN
! 18/01/84 - BIT STRIP ADDRESSES ARE NOW RELATIVE TO ABLOCKS
! 23/11/83 set up TRACE flag and EDUMPTRACE routine
! 27/10/83 - copied from ERCS06.REL8002_eelimb7
%INCLUDE "host_host"
%INCLUDE "targ_target"
%INCLUDE "pf_version"
!*
%INCLUDE "bits_fmts"
%INCLUDE "bits_optspecs"
%INCLUDE "bits_consts"
%INCLUDE "bits_optfmts"
!
%INCLUDE "bits_triadops"
!*
%OWNINTEGER TRACE=0
!
%OWNINTEGER ELFLAG,ELIMEND,RWFLAG,HVAL
%OWNINTEGER COORD1,COORD2,MODE,MATCH
!*

==== ercs07/emas-2900/strans_movefr.txt ====
    
      SUBROUTINE MOVE(FROMB,TOB,COUNT)  
      INTEGER COUNT,FROMB(COUNT),TOB(COUNT) 
      INTEGER MASK  
      DATA MASK /ZFFFF0000/ 
      IDX=ISHFT(COUNT,-1)   
      IF(IDX.LE.0)GOTO 20   
      DO 10 I=1,IDX 
      TOB(I)=FROMB(I)   
   10 CONTINUE  
   20 CONTINUE  
      IF(IAND(COUNT,1).EQ.0)GOTO 30 
      TOB(IDX+1)=IAND(TOB(IDX+1),NOT(MASK))+IAND(FROMB(IDX+1),MASK) 
   30 CONTINUE  
      RETURN
      END   
    

==== ercs07/emas-2900/npc2_analyser.txt ====
{

                          MODULE 11
 
 
                       Program Analysis
 
 
 
 
 
 As indicated in Modules 9 and 10, program analysis is  implemented
 by  a recursive-descent parser enriched  with semantic interludes.
 It is carried out therefore by a procedure Programme  whose  logic
 is  derived directly from the syntax and semantic rules of the ISO
 and ICL defining documents. The principal aspects of this analysis
 are explained in the comments introducing corresponding sections.

                                                                     }

program Analyser;

==== ercs07/emas-2900/sforf_espf.txt ====
      SUBROUTINE ESP (WORD, BUF, LEFT, RIGHT)
      INTEGER  WORD, BUF(1), LEFT, RIGHT
      INTEGER  CHAR, MFLAG, WORK, XMINUS, XZERO, COL
      DATA     XMINUS / 45 /
      DATA     XZERO  / 48 /
      IF (.NOT. (WORD .LT. 0))GO TO 13254
      WORK = - WORD
      MFLAG = 1
      GO TO 13255
13254 CONTINUE
      WORK = WORD
      MFLAG = 0
13255 CONTINUE
      COL = RIGHT
      CONTINUE
13256 CONTINUE
      IF (.NOT.(COL .GE. LEFT))GO TO 13257
      CHAR = MOD (WORK, 10) + XZERO
      WORK = WORK / 10
      CALL PCHAR (BUF, COL, CHAR)
      COL = COL - 1

==== ercs07/emas-2900/pt_ex7.txt ====
PROGRAM EX7(INPUT,OUTPUT);
VAR OPERATOR:CHAR;
    ANS,NEWNO:REAL;
PROCEDURE SKIPBLANKS(VAR F:TEXT);
BEGIN
WHILE (F^ =' ') AND NOT EOF(F) DO GET(F)
END;
BEGIN
ANS:=0;
OPERATOR:='+';
REPEAT
READ(NEWNO);
SKIPBLANKS(INPUT);
WRITELN('NEWNO IS ',NEWNO);
WRITELN('BUFFER IS ',ORD(INPUT^));
CASE OPERATOR OF
'+':ANS:=ANS+NEWNO;
'-':ANS:=ANS-NEWNO
END (*OF CASE*);
READ(OPERATOR);
SKIPBLANKS(INPUT);

==== ercs07/emas-2900/slinks_characin.txt ====
C     EDIT DATE   06JUN78  07:40
C     SOURCE FILE CHARACGAK.IN
C     AUTHOR      GARY A. KUDIS
C     ASCII CHARACTER DEFINITIONS
      INTEGER     CHAR
      INTEGER     CHMASK
      INTEGER     CR, LF
      INTEGER     CRLF
      INTEGER     BLANK, PERIOD
      INTEGER     BLANKS, DASHES, COLONS, SLASHS
      INTEGER     ACH, BCH, CCH, DCH, ECH, FCH
      INTEGER     GCH, HCH, ICH, JCH, KCH, LCH
      INTEGER     MCH, NCH, OCH, PCH, QCH, RCH
      INTEGER     SCH, TCH, UCH, VCH, WCH, XCH
      INTEGER     YCH, ZCH
      INTEGER     LBRACE, RBRACE
      INTEGER     LBRACK, RBRACK
      INTEGER ICLP04
      COMMON      /CHARAC/ CHAR
      COMMON      /CHARAC/ CHMASK
      COMMON      /CHARAC/ CR, LF

==== ercs07/emas-2900/slinkf_areadffr.txt ====
    
      SUBROUTINE AREADF 
    
      INTEGER     RCOUNT
      INTEGER     RTYPE 
      INTEGER     RSTYPE
      INTEGER     RTMAX 
      INTEGER     RSZMAX
      INTEGER     RECORD (41)   
      INTEGER     RSIZE 
      INTEGER     RSIZES (20)   
      INTEGER ICLP02
      COMMON      /RECORD/ RCOUNT   
      COMMON      /RECORD/ RTYPE
      COMMON      /RECORD/ RSTYPE   
      COMMON      /RECORD/ RTMAX
      COMMON      /RECORD/ RSZMAX   
      COMMON      /RECORD/ RECORD   
      COMMON      /RECORD/ RSIZE
      COMMON      /RECORD/ RSIZES   
      COMMON     /RECORD/ ICLP02

==== ercs07/emas-2900/slinkf_hashgafr.txt ====
    
      INTEGER FUNCTION HASH (DUMMY) 
    
      INTEGER     NSIZE,  NAME(16), NTITLE  
      INTEGER     NFLAGS (512)  
      INTEGER     NADDRS (512)  
      INTEGER     NPOSIT (512)  
      INTEGER     NDATA  (512)  
      INTEGER     NTEXTX (512)  
      INTEGER     NTEXT  (1000) 
      INTEGER     NLX, NLSTRT, NLSTOP   
      INTEGER     TXSTRT, TXSTOP
      INTEGER     NTXBTS
      INTEGER     USEBIT, COMBIT, OVLBIT, EPTBIT
      INTEGER     LDMBIT, MODBIT, MLTBIT, RLSBIT
      INTEGER     GDFBIT, TYPBTS
      INTEGER     ATYPE 
      INTEGER      ICLP07   
      LOGICAL     OLDNAM
      COMMON      /NTABLE/ NSIZE, NAME, NTITLE  
      COMMON      /NTABLE/ NFLAGS, NADDRS, NPOSIT, NDATA, NTEXTX

==== ercs07/emas-2900/npc1_globalsx.txt ====

const


   { constants used by pnx-dependent code in modules 3 and 4 }

   MaxArgString   = 60 ;                { maximum size of argument string }
   MaxArgs        = 6 ;                 { maximum number of arguments }
   BufferSize     = 512 ;               { disk buffer size in bytes }
   Null           = 0 ;                 { ASCII null character }
   BackSpace      = 8 ;                 { ASCII back-space character }
   Tab            = 9 ;                 { ASCII tab character }
   NewLine        = 10 ;                { ASCII new line character }
   FormFeed       = 12 ;                { ASCII form-feed character }
   CarriageReturn = 13 ;                { ASCII carriage-return character }
   BackSlash      = 92 ;                { ASCII  back-slash character }

   { constants used by the option-handler, module 3 }

   Level0         = 0 ;                 { conform to ISO 7185, level 0 }
   Level1         = 1 ;                 { conform to ISO 7185, level 1 }

==== ercs07/emas-2900/slinksorg_mapperfs.txt ====
'HEAD'  LINKER, CROSS REFERENCE MAP
C     EDIT DATE   26JAN79  09:33
C     SOURCE FILE MAPPERGAK.FS
C     AUTHOR      GARY A. KUDIS
C     CLUSTER     6
      'OUTFILE' MAPPERGAK.FR
      SUBROUTINE MAPPER
      'INCLUDE' LDATAXGAK.IN,
      'INCLUDE' IODEFNGAK.IN,
      INTEGER     SMSGS (12)
      INTEGER     NMSGS (12)
      DATA        SMSGS /'STARTING ADDRESS IS 0000'/
      DATA        NMSGS /'NO STARTING ADDRESS ????'/
C MAPPER ::
X     WRITE (DBCHAN, 1)
X1    FORMAT (' ENTER MAPPER')
      CALL WRLIN (MPCHAN, '  ', 2)
      CALL WRLIN (MPCHAN, '  ', 2)
      CALL WRLIN (MPCHAN, '  ', 2)
      'IF' (SFLAG)
         CALL EHX (START, SMSGS, 21, 24)

==== ercs07/emas-2900/genutils_copyfmpdi.txt ====

%EXTERNALROUTINE COPYFMPD(%STRING(63) S)
%EXTERNALROUTINESPEC COPY(%STRING(63) SA)
%STRING(20) PDS,FILE
%IF S-> PDS.("_").FILE %THEN        %C
       COPY(S.",".FILE)              %C
       %ELSE %START
            SELECTOUTPUT(0)
            PRINTSTRING(" COPYFMPD - BAD PARAMETERS")
            %FINISH
      %END
%ENDOFFILE

==== ercs07/emas-2900/ds20imp_lput.txt ====
%CONTROL X'0FFFFFFF'
!****************************************************
!*
!*  LPUT
!*
!*  EXTRACTED FROM EDINBURGH'S IMP MODULE FCSM10
!*  FOR USE IN BSV53/KSV17 PASCAL SYSTEM (PASCAL 20)
!*
!*  T.MOORE  FEB '80
!*
!****************************************************
!*
!*
%OWNINTEGER WRKAREA,TMPAREA                                             
%OWNINTEGER NULLOBJ;! 0  OBJECT FILE REQUIRED                                   
                   ! !  NO OBJECT FILE REQUIRED - DUMMY LPUT ACTIVITY           
%OWNINTEGER MAINEPSET                                                           
%OWNINTEGER LPUTERROR                                                           
%OWNSTRING(32) MAINEPNAME                                                       
!*                                                                              
!*                                                                              

==== ercs07/emas-2900/pffiles_options.txt ====
procedure SetLocalOptions(NewOptions: SetOfOptions);
  extern;

procedure InitOptions;
  extern;

==== ercs07/emas-2900/pptboot_pptest10.txt ====
 1 14 56 28704 28694 0 50 1 60 24 51 7PPTEST3 65538 0 0 34572 1 5 37 5 39 5 40 5 41 25 5 0 792 4 15 2 20 808 4 56 54 66 1 68 1 5 42 25 5 0 792 4 15 2 20 808 4 56 54 66 1 68 1 5 43 25 5 0 792 4 15 2 20 808 4 56 54 66 1 67 1 22 4 4 67 1 22 0 4 56 190 56 184 68 1 5 46 15 2 16 796 4 22 0 4 56 190 66 1 67 1 22 0 4 67 1 22 4 4 56 190 56 184 68 1 5 47 15 2 16 796 4 22 8 4 56 190 22 0 4 22 0 4 56 190 66 1 68 1 5 48 15 2 16 796 4 22 4 4 56 190 15 2 20 808 4 56 53 22 0 4 22 48 4 56 190 22 0 4 22 0 4 56 190 66 1 68 1 5 51 15 5 88 800 1 25 5 96 800 4 56 184 5 52 13 1 13 1 56 136 25 5 116 804 4 15 2 20 808 4 56 51 56 184 5 53 25 5 88 804 4 15 2 20 808 4 13 12 56 55 66 1 13 1 13 1 56 136 67 1 22 4 4 56 190 15 2 20 808 4 56 51 56 184 68 1 28-1 52 0 0 0 2 0 24 0 0 580 0 0 0 0 0

==== ercs07/emas-2900/rel6_iof3.txt ====
   !Modified   8/ 5/82    9.30





!**********************************************************************!
!**********************************************************************!
     !                                                         !
     !                                                         !
     !   This  Module  is  designed  to  provide  I/0  support !
     !                                                         !
     !           for  OPEN    CLOSE    INQUIRE                 !
     !                                                         !
     !           and REWIND  ENDFILE  BACKSPACE  statements    !
     !                                                         !
     !                for  FORTRAN77  Programs                 !
     !                                                         !
     !                 on  ICL  PERQ  Machines                 !
     !                                                         !
     !                                                         !

==== ercs07/emas-2900/pptboot_pptest11.txt ====

==== ercs07/emas-2900/intrin0.txt ====
      COMPLEX C0,C1,C2,C3,C4,C5,C6
      DOUBLE PRECISION D0,D1,D2,D3,D4
      CHARACTER*4 CHR0,CHR1
      I=4
      J=-6
      WRITE(6,2)I,J
    2 FORMAT(' I=',I6,'  J=',I6)
      X=2.4
      XX=0.0
      Y=-5.8
      WRITE(6,3)X,Y,XX
    3 FORMAT(' X=',F6.2,'  Y=',F6.2,' XX=',F6.2)
C      D0=1.0123+.456789D-4
      D0=1.0123D0+.456789D-4
      D1=D0-2
      WRITE(6,4)D0,D1
    4 FORMAT(' D0=',F13.10,' D1=',F13.10)
      CHR0='456'
      WRITE(6,5)CHR0
    5 FORMAT(' CHR0=',A4)
      C0=(-0.6,1.1)

==== ercs07/emas-2900/pptboot_pptest12.txt ====

==== ercs07/emas-2900/slogof_bldopffr.txt ====
 
      SUBROUTINE BLDOP (OPIN, WF, BIAS, NLX, NLXWF) 
 
      INTEGER  WF1,WF2,WF3,WF4,WF5,WF6,WF7,WF8,WF9,WF10,WF11,WF12,WF13,W
     1F14,WF15,WF16,WF17 
      INTEGER  ICLP16 
      COMMON   / WF / WF1,WF2,WF3,WF4,WF5,WF6,WF7,WF8,WF9,WF10,WF11,WF12
     1,WF13,WF14,WF15,WF16,WF17 
      COMMON   / WF / ICLP16 
      INTEGER     OPIN, WF, BIAS, NLX, NLXWF 
      CALL BLDBLK (BIAS, WF6) 
      CALL BLDBLK (OPIN, WF) 
      IF (WF .NE. WF4) CALL BLDBLK (NLX, NLXWF) 
      RETURN 
      END 

==== ercs07/emas-2900/intrin1.txt ====
      COMPLEX C0,C1,C2,C3,C4,C5,C6
      LOGICAL F,G,H
      DOUBLE PRECISION D0,D1,D2,D3,D4,D5
      CHARACTER*4 CHR0,CHR1
      CHARACTER*10 C
      I=4
      J=-6
      WRITE(6,2)I,J
    2 FORMAT(' I=',I6,'  J=',I6)
      X=2.4
      XX=0.0
      Y=-5.8
      WRITE(6,3)X,Y,XX
    3 FORMAT(' X=',F6.2,'  Y=',F6.2,' XX=',F6.2)
      D0=1.0123D0+.456789D-4
      D1=D0-2
      WRITE(6,4)D0,D1
   4  FORMAT(' D0=',F13.10,' D1=',F13.10)
      CHR0='4567'
      C='1234567890'
      WRITE(6,5)CHR0,C

==== ercs07/emas-2900/pptboot_pptest13.txt ====

==== ercs07/emas-2900/slinksorg_datadffs.txt ====
'HEAD'  DATA DEFINITIONS FOR LINKER
C     EDIT DATE   16JAN79  15:17
C     SOURCE FILE DATADFGAK.FS
C     AUTHOR      GARY A. KUDIS
C     CLUSTER     0
C     0.00 /BITDFN/ BIT DEFINITIONS
C     0.01 /CHARAC/ CHARACTER DEFINITIONS
C     0.02 /DARRAY/ DICTIONARY ARRAY
C     0.03 /ERRDFN/ ERROR DEFINITIONS
C     0.04 /IODEFN/ IO CHANNEL DEFINITIONS
C     0.05 /LDATAX/ LINKER DATA
C     0.06 /MEMORY/ MEMORY USE MAP
C     0.07 /NTABLE/ NAME LIST TABLE
C     0.08 /PNAMES/ PRINT NAME LIST DATA STRUCTURES
C     0.09 /QUESTS/ QUESTIONS TO USER
C     0.10 /RECORD/ INPUT RECORD DEFINITIONS
C     0.11 /STACKS/ LINKER STACK AREAS
      'OUTFILE' BITDFNGAK.FR
      BLOCK DATA
      'INCLUDE' BITDFNGAK.IN,P
      DATA        BIT00 /1/

==== ercs07/emas-2900/intrin2.txt ====
      INTRINSIC AINT,DINT,ANINT,DNINT,NINT,IDNINT,IABS,ABS,DABS
      INTRINSIC CABS,MOD,AMOD,DMOD,ISIGN,SIGN,DSIGN,IDIM,DIM,DDIM,DPROD
      INTRINSIC LEN,INDEX,AIMAG,CONJG
      CALL SUB(AINT,DINT,ANINT,DNINT,NINT,IDNINT,IABS,ABS,DABS,CABS,MOD,
     1 AMOD,DMOD,ISIGN,SIGN,DSIGN,IDIM,DIM,DDIM,DPROD,LEN,
     2 CONJG)
      STOP 'MAIN'
      END
      SUBROUTINE SUB(ZAINT,ZDINT,ZANINT,ZDNINT,MNINT,MIDNINT,MIABS,ZABS,
     1 ZDABS,ZCABS,MMOD,ZAMOD,ZDMOD,MISIGN,ZSIGN,ZDSIGN,MIDIM,ZDIM,
     2 ZDDIM,ZDPROD,MLEN,CCONJG)
      CHARACTER C*10
      COMPLEX C0,C1,C2,C3,C4,C5,C6,CCONJG
      CHARACTER*4 CHAR1,CS
      DOUBLEPRECISION XX,YY,ZZ,ZDINT,ZDNINT,ZDABS,ZDMOD,ZDSIGN,ZDDIM
      DOUBLEPRECISION ZDPROD
      C0=(-0.6,1.1)
      C1=(2.4,-3.6)
      I=4
      J=-6
      X=2.4

==== ercs07/emas-2900/npc1_anal.txt ====
{

                          MODULE 11
 
 
                       Program Analysis
 
 
 
 
 
 As indicated in Modules 9 and 10, program analysis is  implemented
 by  a recursive-descent parser enriched  with semantic interludes.
 It is carried out therefore by a procedure Programme  whose  logic
 is  derived directly from the syntax and semantic rules of the ISO
 and ICL defining documents. The principal aspects of this analysis
 are explained in the comments introducing corresponding sections.

                                                                     }

program Analyser;

==== ercs07/emas-2900/pptboot_pptest14.txt ====

==== ercs07/emas-2900/qfiles_file3.txt ====
   !Modified     14/ 4/82   14.00





!**********************************************************************!
!**********************************************************************!
         !                                               !
         !                                               !
         !     Skeleton FILE INPUT/OUTPUT Procedures     !
         !                                               !
         !          for FORTRAN77 Programs               !
         !                                               !
         !           on ICL  PERQ Machines               !
         !                                               !
         !                                               !
!**********************************************************************!
!**********************************************************************!



==== ercs07/emas-2900/dsa20_sflgeneral.txt ====
SFLGENERAL MODULE
*
*
 INCLUDE SMACS
*
*
 PROC ICL9LPCURRENTPLTAD
  *
  * N.B. ASSUME THIS MODULE IS
  *      COMPILED WITH PLT=XNB
  *
 CODE
 STCT.B
 LSS.B
 EXIT
*
*
 PROC ICL9LPCURRENTGLOBALAD
  *
  * N.B. ASSUME THIS MODULE IS
  *      COMPILED WITH PLT=XNB

==== ercs07/emas-2900/pptboot_pptest15.txt ====

==== ercs07/emas-2900/mixedsrce_funcdefa.txt ====
%INTEGER %PROCEDURE TWO;
%BEGIN
PRINTSTRING(<ENTERING_ALGOL_TWO>);NEWLINE;
TWO:=2;
%END;

==== ercs07/emas-2900/pasc11.txt ====
{

                      CHAPTER 11


                   Code Generator Overview





 The code generator transforms the set of code-generation interface
 calls  made  during  program  analyis  into a code-byte stream for
 direct execution on the P-machine. This transformation is achieved
 by  simulating  all  operations  defined   at interface level on a
 compile-time evaluation stack, and delaying actual   code  genera-
 tion   until  the  context  of an expression or reference is fully
 known. Such a 'delayed' code-generation strategy  is  both  useful
 for  a wide variety of target machine architectures, and necessary
 for the implementation of the more complex runtime checks.


==== ercs07/emas-2900/npc2_varref.txt ====


{

                          MODULE 17


                Variable Reference Generation





 16.1  A Delayed Code Generation Strategy

 The analyser uses the code  generation  interface  to  signal  the
 required  program  actions as a sequence of 'post fix' operations.
 With a simple stack machine as target, these calls  can  output  a
 corresponding  sequence of stack manipulation code directly.  With
 this simple strategy, however, difficulties arise in  the  genera-
 tion of efficient code for optimised P-machines, and in the imple-

==== ercs07/emas-2900/pptboot_pptest16.txt ====
 1 14 56 28134 28124 0 50 1 60 68 51 7PTEST16 65538 0 0 34308 1 5 23 5 24 13 0 25 2 16 792 4 56 184 5 25 15 2 16 792 4 25 2 20 796 4 56 184 5 26 13 0 25 2 24 800 4 56 184 5 27 15 2 24 800 4 25 2 28 804 4 56 184 5 28 13 32 13 1 56 136 25 2 32 808 4 56 184 5 29 15 2 32 808 1 25 2 33 812 4 56 184 5 30 13 1 25 2 36 816 4 56 184 5 31 15 2 36 816 4 25 2 40 820 4 56 184 5 32 13 0 13 8 56 137 25 2 44 824 4 56 184 5 33 15 2 44 824 8 25 2 52 828 4 56 184 5 34 13 0 25 2 60 832 4 56 184 5 35 15 2 60 832 4 25 2 64 836 4 56 184 5 36 28-1 52 0 0 0 2 0 68 0 0 0 0 0 0 0 0

==== ercs07/emas-2900/pasc12.txt ====
{

                          CHAPTER 12


                     Data Representations





 Data representations are specified by the Representation field  of
 the  TypeRecord.   This itself is a record of type TypeRepresenta-
 tion whose fields are used as follows:

 (1)  WordSize is a word-measure of the storage requirement for the
      type.   BitSize  is  an equivalent bit-measure for types that
      can be packed.

 (2)  Kind provides an alternative data classification, relevant to
      various needs of the code-generator.

==== ercs07/emas-2900/pptboot_pptest17.txt ====
 1 14 56 28704 28694 0 50 1 50 2 51 2P2 65536 2 1028 35060 2 5 22 5 23 13 1 27 2 0 812 4 56 184 5 24 13 0 27 2 1020 812 4 56 184 5 25 19 2 1024 816 4 26 2 262144 824 4 56 184 5 26 13 0 26 2 262140 820 4 56 184 5 27 15 2 16 792 4 27 2 1024 816 4 56 184 5 28 19 2 0 812 1024 25 5 0 800 4 56 184 28-2 52 262148 0 0 50 3 50 4 51 2P4 131072 1 4 35140 4 5 43 5 44 19 2 0 832 1024 26 3 8 856 4 56 184 5 45 15 5 0 800 1024 26 3 8 856 4 56 184 5 46 17 2 262144 844 4 26 3 1032 860 4 56 184 5 47 15 2 16 792 4 19 3 0 852 4 22 0 4 56 190 56 184 5 48 15 5 1024 804 262140 26 2 4 840 4 56 184 5 49 45 4 26 2 262144 844 4 56 186 46 4 1 4 28-4 52 1036 0 262148 51 2P3 65536 2 1028 35268 3 5 52 45 4 26 2 262144 844 4 56 186 46 4 1 4 28-3 52 262148 0 0 60 24 51 7PTEST17 65538 0 0 34572 1 5 54 28-1 52 0 0 0 2 0 24 0 0 263164 0 0 0 0 0

==== ercs07/emas-2900/pffiles_blocks.txt ====
{17/10/85 - new proc ForwardBlockLabel				}

procedure FutureBlockLabel( BlockId: IdEntry );
  extern;

procedure ExternalBlockLabel( BlockId: IdEntry );
  extern;

procedure ForwardBlockLabel( BlockId: IdEntry );
  extern;

procedure OpenCodeSpace(var L : BlockLabel);
  extern;

procedure CloseCodeSpace;
  extern;

procedure InitEmitter;
  extern;

procedure InitRtSystem;

==== ercs07/emas-2900/pasc13.txt ====
{

                          CHAPTER 13


                  Static Storage Management





 The static storage required by a procedure,  function  or  program
 block is calculated at compile-time by recording:

 (1)  the storage required by local variables,  formal  parameters,
      and function results;

 (2)  the storage required by temporaries used  internally  by  the
      generated code;

 (3)  the storage required to preserve 'extended references';

==== ercs07/emas-2900/pascalprogs_numbersdata.txt ====
     2402 
     2374 
     3430 
     6888 
    12381 
    46376 
     1624 
     9467 
     2264 
    68968 
     1680 
     5424 
    12482 
    40602 
    54621 
    10530 
      853 
     2230 
      907 
     2765 
   114132 

==== ercs07/emas-2900/pptboot_pptest18.txt ====

==== ercs07/emas-2900/pasc14.txt ====

{

                          CHAPTER 14


                  Object Value Manipulation





 This chapter implements the interface procedures for creating  and
 manipulating  literal object values at compile-time, as defined in
 Section 5.3.

 The overriding consideration in determining how these  are  imple-
 mented  is the distinction between the representation of primitive
 values such as integers, reals etc. on the host compiling  machine
 and  that  to be used on the target machine on which compiled pro-
 grams are run.  For many compilers the host  and  target  machines

==== ercs07/emas-2900/pptboot_pptest19.txt ====

==== ercs07/emas-2900/pcfiles_blocks6.txt ====


{

 History
 -------

 11/09/85 - new include files impint.pf, storage.pf,
            expand FutureBlockLabel & ExternalBlockLabel.
 17/10/85 - expand InitEmitter, EndEmitter;
            new proc ForwardBlockLabel.
 18/10/85 - history tidied. (agh)
 21/10/85 - Reformatted. Minor cleanup to ExternalBlockLabel by
            removing nested with-statements. (agh)
 06/12/85 - Fill Areas array and pass to MC-Generator. (agh)
 09/12/85 - Initialise runtime system. (agh)
 17/12/85 - Remove parametrer from calls to enpr. (agh)
 ---------------------------------------------------------------------
 09/01/86 - Remove call to pasexnm in InitRtSystem. Make the call
            prior to first actual call to the routine in procedure
            StartCall (in codeutils.pas). (agh)

==== ercs07/emas-2900/slogos_stuffain.txt ====
      INTEGER     STUFFO, STUFFN
      COMMON      /CSTUFF/ STUFFO, STUFFN





==== ercs07/emas-2900/genutils_phexi.txt ====

%EXTERNALROUTINE PHEX(%INTEGER A)
%INTEGER I
%BYTEINTEGERARRAY HEXITS(0:8)
%OWNBYTEINTEGERARRAY HEXTAB(0:15)='0','1','2','3','4','5','6',
         '7','8','9','A','B','C','D','E','F'
      %CYCLE I=0,4,28
         HEXITS(I//4+1)=HEXTAB(A>>(28-I)&X'F')
      %REPEAT
      HEXITS(0)=8
      PRINTSTRING(STRING(ADDR(HEXITS(0))))
%END
%ENDOFFILE

==== ercs07/emas-2900/pasc15.txt ====
{

                          CHAPTER 15


                      Code File Emission





 This chapter implements the creation  and  maintenance  of  'code-
 spaces', as defined in Section 5.4, together with the final output
 of the codefile which these create.

 The 'code-spaces' which correspond to blocks in the source program
 compiled,  have  nested  lifetimes. A record of the currently open
 code-spaces is maintained as a code-space stack pointed to by  the
 variable CurrentSpace.  This stack is maintained by the procedures
 OpenCodeSpace and CloseCodeSpace defined below.


==== ercs07/emas-2900/slogof_setdatfr.txt ====
 
      BLOCK DATA 
 
      INTEGER     LDAZP, LDAABS, LDAIMM 
      INTEGER     LDAABY, LDAINY 
      INTEGER     LDYZP, LDYABS, LDYIMM 
      INTEGER     SETNLX 
      INTEGER     TS1, TS2 
      INTEGER     SOPC, SWF, SWFOPN 
      INTEGER     SETSTX, SSUBX, STBIAS 
      INTEGER     STMODE, SSUBXB, SSUBXM 
      INTEGER     SSUBOP, SWFSUB 
      INTEGER     SLEFT, SRIGHT, SCTN 
      INTEGER     ICLP12 
      LOGICAL     ZPFLAG, STLOC 
      COMMON   /SCOM/   LDAZP, LDAABS, LDAIMM 
      COMMON   /SCOM/   LDAABY, LDAINY 
      COMMON   /SCOM/   LDYZP, LDYABS, LDYIMM 
      COMMON   /SCOM/   SETNLX 
      COMMON   /SCOM/   TS1, TS2 
      COMMON   /SCOM/   SOPC, SWF, SWFOPN 

==== ercs07/emas-2900/helpsa20_bctamfinal.txt ====
REDIRECT(ICL9HNCOMPILESUPPORT&
ICL9HNLOG&
ICL9HNOUTPUTLINE&
ICL9HNNEWLINE&
ICL9HNNEWPAGE&
ICL9HNCREATEVS&
ICL9HNMONITOR&
ICL9HNCREATEMODULE&
ICL9HNENDMODULE&
ICL9HNCREATEALIAS&
ICL9HNSUBHEAD&
ICL9HNREADCARD&
ICL9HNDATE&
ICL9HNTIME&
ICL9HNSETDUMPER&
ICL9HNOUTPUTRECORD,ICLSTDSW.)

==== ercs07/emas-2900/slogof_pnnamefr.txt ====
    
      SUBROUTINE  PNNAME
      INTEGER     ENBUF (20), XBLNKS, TS, NLTEMP, LTS   
      INTEGER     CLOCN, NLOPS  
      LOGICAL     NLTEST
    
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      INTEGER     NEXT,   NUMBER, I,      IOTYPE
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT
      INTEGER ICLP05
      LOGICAL     ENDOK,CONEND  
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG   
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG  
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV  

==== ercs07/emas-2900/pffiles_ctlstructs.txt ====

procedure NewCodeLabel(var L: CodeLabel);
  extern;

procedure FutureCodeLabel(var L: CodeLabel);
  extern;

procedure NxIsCodeLabel(var L: CodeLabel);
  extern;

procedure InitPlabels;
  extern;

procedure JumpOnFalse(var Destination: CodeLabel);
  extern;

procedure JumpAbs(var Destination: CodeLabel);
  extern;

procedure OpenCase;
  extern;

==== ercs07/emas-2900/perqrel3_cmess6.txt ====
!* MODIFIED 28/05/82
!*
!*
%RECORDFORMAT COMFMT(%INTEGER CONTROL,OPTIONS,OPTIONS1,OPTIONS2,PTRACE,
      ADICT,ANAMES,ADOUTPUT,ADBLKDTAID,DICLEN,DPTR,
      MAXTRIADS,NEXTPLAB,ALABH,ADLHEAD,
      SUBPROGTYPE,SFPTR,EXTERNALS,CBNPTR,SCPTR,CHECKLIST,
      RESCOM1,RESCOM2,GLACA,FNO,FAULTY,LINEST,CMNIIN,SFMK,
      LISTL,LISTSTREAM,DIAGSTREAM,LISTPOINT,XREF,
      PACKCMN,ITSMODE,PATHANAL,CHARACTER CODE,SPACE CHAR,
      HEADINGS,ARRAYCHECKS,JBRMODE,MESSLEN,NAMESLEN,
      NEXTCH,FUNRESDISP,WARNCOUNT,INP,MAXINP,MESSCOUNT,
      UNASSPATTERN,LISTCODE,PI21INT,DOPTR,SUBPROGPTR,
      FNLST,LAB,NAMESFREE,ALGOLREF,FIRSTSTATNUM,CEXPDICT,
      COMMONBASE,FASTPROLOGUE,STATEMENT,IFPTR,
      CNSTCA,COMMENTCNT,ADIDENT,ADERRIDEN)
%EXTERNALROUTINE QCMESS
{dummy}
%END
!*
%EXTERNALROUTINE FAULTNUM(%INTEGER ER,COMAD,UPDATE)

==== ercs07/emas-2900/mixedsrce_funcdeff.txt ====
      INTEGER FUNCTION TWO(IDUMMY)
      WRITE(6,100)
  100 FORMAT(' ENTERING FORTRAN TWO')
      TWO=2
      RETURN
      END

==== ercs07/emas-2900/pasc16.txt ====


{

                          CHAPTER 16


                Variable Reference Generation





 16.1  A Delayed Code Generation Strategy

 The analyser uses the code  generation  interface  to  signal  the
 required  program  actions as a sequence of 'post fix' operations.
 With a simple stack machine as target, these calls  can  output  a
 corresponding  sequence of stack manipulation code directly.  With
 this simple strategy, however, difficulties arise in  the  genera-
 tion of efficient code for optimised P-machines, and in the imple-

==== ercs07/emas-2900/pcfiles_syntax1.txt ====
{

                           MODULE 9
 
 
                       Syntax Analysis
                             and
                    Syntax Error Recovery
 
 
 
 
 
 9.1 Syntax analysis.
 
 Syntax analysis is implemented as a set of recursive descent  pro-
 cedures  based  on  syntax  rules given in the ISO definition. The
 order, names, and nesting of the procedures is as follows:
 
    Programme
       ProgramHeading

==== ercs07/emas-2900/fptos.txt ====

%string(36) %fn FPTOS (%integer REAL ADDR{ess}, REAL MODE {3 for REAL* 4})
!                                                         {4 for REAL* 8}
!
!
!     A Procedure to print the value of either a single
!
!          or double or extended precision Real
!
!          for the FORTRAN77 Optimising Compiler.
!
!
!Note:  This version does not handle extended precision (REAL*16) reals
!
!
%longrealfnspec into range (%longreal a)

%routine copy (%integer length, from adr, from inc, to adr, to inc)
   !
   !
   from adr=from adr<< 1 %andc

==== ercs07/emas-2900/pasc17.txt ====

{

                          CHAPTER 17


                    Expression Evaluation





 This chapter defines the procedures used to construct the tree  of
 stack nodes that represents an expression evaluation.

 17.1  Primary Operands

 The primary operands in expression trees are

 (a)  variable values obtained from variable accesses, and


==== ercs07/emas-2900/pt_haltstr.txt ====
PROGRAM HALTING;
BEGIN
HALT('STRING7');
END.

==== ercs07/emas-2900/slogof_deftlffr.txt ====
 
      SUBROUTINE DEFTL (TLX) 
 
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG 
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV 
      INTEGER     NEXT,   NUMBER, I,      IOTYPE 
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE 
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP 
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT 
      INTEGER ICLP05 
      LOGICAL     ENDOK,CONEND 
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG 
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV 
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE 
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N 
      COMMON   /LOGOS/  PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE 

==== ercs07/emas-2900/pasc18.txt ====
{

                          CHAPTER 18


                       P-Code Assembly
                             and
                 Data Access Code Generation





 This chapter defines the code generation utilities on which subse-
 quent  code generation procedures depend.  The facilities provided
 include:

 (a)  basic P-code instruction assembly and storage;

 (b)  generation and fix-up of jump instructions;


==== ercs07/emas-2900/mixedsrce_funcdefi.txt ====
%EXTERNALINTEGERFN TWO
PRINTSTRING('ENTERING IMP TWO');NEWLINE
%RESULT=2
%END
%ENDOFFILE

==== ercs07/emas-2900/pasc19.txt ====
{

                          CHAPTER 19


                  Assignment Code Generation





 Assignment  code  is  generated   by  the  procedures  Assign  and
 AssignTag.   For  normal  assignments the procedure Assign distin-
 guishes the following cases:

 (a)  assignment of entire conformant arrays is carried out by  the
      special  P-code  MoveCAP,  using  the  conformant array value
      representation generated by the LoadCAP operation within  the
      expression tree;

 (b)  assignment of addressable multiword values is carried out  by

==== ercs07/emas-2900/slinkf_linkerfr.txt ====
    
      PROGRAM LOLINK
    
      INTEGER     ECODE 
      INTEGER     CMCHAN
      INTEGER     RBCHAN
      INTEGER     OBCHAN
      INTEGER     MPCHAN
      INTEGER     DBCHAN
      INTEGER     TTYIN 
      INTEGER     TTYOUT
      COMMON      /IODEFN/ ECODE
      COMMON      /IODEFN/ CMCHAN   
      COMMON      /IODEFN/ RBCHAN   
      COMMON      /IODEFN/ OBCHAN   
      COMMON      /IODEFN/ MPCHAN   
      COMMON      /IODEFN/ DBCHAN   
      COMMON      /IODEFN/ TTYIN
      COMMON      /IODEFN/ TTYOUT   
    
      INTEGER     CMFILE (16)   

==== ercs07/emas-2900/basicprogs.txt ====
10    LET O$ = "BUT"
20    LET N$ = "MAIS"
30    FILE *1: "ENGLISH"
40    FILE *2: "FRENCH"
50    GOATEND *1: 500
60    LINPUT *1: L$
70    LET X = POS(L$,O$)
80    IF X = 0 THEN 200
90    PRINT *2: SEG$(L$,1,X-1);N$;
100   LET L$ = SEG$(L$,X+LEN(O$),999)
110   GOTO 70
200   PRINT *2: L$
210   GOTO 60
500   END

==== ercs07/emas-2900/slinks_lpass2fs.txt ====
'HEAD'  LINKER, PASS 2
C     EDIT DATE   26JAN79  09:29
C     SOURCE FILE LPASS2GAK.FS
C     AUTHOR      GARY A. KUDIS
C     CLUSTER     5
      'OUTFILE' LPASS2GAK.FR
      SUBROUTINE PASS2
      'INCLUDE' RECORDGAK.IN,
      'INCLUDE' LDATAXGAK.IN,
      'INCLUDE' IODEFNGAK.IN,
      'INCLUDE' IOFILEGAK.IN,
      LOGICAL     ERX, EOF, KEYWD
      INTEGER     I, DUMMY
C PASS2 ::
X     WRITE (DBCHAN, 1)
X1    FORMAT (' ENTER PASS2')
      CALL I2PASS
      'DO'
         CALL GETFL (ERX, EOF)
         IF (ERX) GO TO 9998
         IF (EOF) GO TO 9999

==== ercs07/emas-2900/slogosorg_nlinitfs.txt ====
'HEAD'  NAME LIST INITIALIZATION
C     EDIT DATE   10DEC78  20:42
C     SOURCE FILE NLINITFTM.FS
C     AUTHOR      F. T. MICKEY
C     CLUSTER     23
      'OUTFILE' NLINITFTM.FR
N     OVERLAY OLNLI
C     SUBROUTINE NLINIT
C
C     INITIALIZE THE NAME LIST WITH REGISTER AND
C     OPERATOR DEFINITIONS.
C
      SUBROUTINE NLINIT
      'INCLUDE' LOGOSAJH.IN,
      'INCLUDE' BRACEFTM.IN,
      'INCLUDE' REGSJHP.IN,
      'INCLUDE' NLISTCFTM.IN,
      'INCLUDE' NLARAYFTM.IN,
      'INCLUDE' NLNAMEFTM.IN,
      INTEGER GCHAR, SNMLST
      INTEGER TS, PTR, COUNT, OP, REG, II, RETRN

==== ercs07/emas-2900/ctpsclma_ctsysif.txt ====
AREA(1)
PATCH(X0294,X6290490D,CODE
      X6290E620&X02E00004&X621F4890&X490D
      RETURN  X04
      END,RETURN=NO,NAME=PASC19A)
PATCH(X02F4,X6290490D,CODE
      X6290E620&X02E00004&X621F4890&X490D
      RETURN X04
      END,RETURN=NO,NAME=PASC19B)
#

==== ercs07/emas-2900/pasc20.txt ====


{

                         CHAPTER 20


                       With Statements





 The set of records addressed by currently open with-statements  is
 held  as  a 'with-stack', pointed to by the variable TopWithEntry,
 and maintained by the procedures OpenWith and CloseWith.

 OpenWith creates an extended reference  to  the  record  variable,
 generates  code  if  necessary  to  save  its address in temporary
 storage, and pushes a new entry onto the  with-stack  holding  the
 variable  reference  and a unique 'with-base' key generated by the

==== ercs07/emas-2900/slogos_nltestfs.txt ====
'HEAD'  NAME LIST FLAG TEST
C     EDIT DATE   14JAN79  09:16
C     SOURCE FILE NLTESTAJH.FS
C     AUTHOR      A. J. HOWARD
C     CLUSTER     23
      'OUTFILE'   NLTESTAJH.FR
      LOGICAL FUNCTION NLTEST (INDEX, FLAG)
      INTEGER     INDEX, FLAG
      'INCLUDE'   NLARAYFTM.IN,
      NLTEST = IAND (NLIST (INDEX), FLAG) .NE. 0
      RETURN
      END
      'OUTFILE'   NLSETAJH.FR
      SUBROUTINE  NLSET (INDEX, FLAG)
      INTEGER     INDEX, FLAG
      'INCLUDE'   NLARAYFTM.IN,
      IF (INDEX .NE. 0) ^
         NLIST (INDEX) = IOR (NLIST (INDEX), FLAG)
      RETURN
      END
      'OUTFILE'   NLVALAJH.FR

==== ercs07/emas-2900/helpsa20_dwo20ctld.txt ====
MACRO DWO20CTLOAD IS (
     LITERAL (OMFLIB) %OMFLIB := 'DWO20' )
MACBEGIN
EXLB(%%OMFLIB)
SETLOADEROPTIONS(TOPDOWN)
LOAD(ICL9HNCENV&SFLGENERAL&SFLCTM&SFLFORCT&
     ICL9CEZLPUT&ICL9CEZINITSERVICES&ICL9CEZOMFOUT&ICL9CEZNCODE&
     ICL9LPJCLPROCS&ICL9LPLIBNUC&ICL9LPCTSYSIF&
     ICL9LPCTETXT&ICL9LPCOMPILE, CASCADE=NO)
MACEND

==== ercs07/emas-2900/pasc21.txt ====
{

                          CHAPTER 21


                   The Standard Procedures





 This chapter contains the code generation procedures for the stan-
 dard input/output procedures, for pack and unpack, and for new and
 dispose.  The remaining arithmetic functions  are  implemented  by
 dedicated P-codes.

 21.1  File Selection

 All input/output operations are performed with respect to an argu-
 ment  file  'selected'  as  appropriate  from Input, Output or the
 standard procedure parameter list.  Details of the  selected  file

==== ercs07/emas-2900/f77ctl.txt ====
module f77ctl;

exports
imports impprocs from impprocs;
imports system from system;
imports stack from stack;
imports except from except;
imports memory from memory;
imports filesystem from filesystem;
imports runread from runread;
imports screen from screen;
imports stream from stream;

const {$Include acb.dfs}
      {$Include rd.dfs}
      {$Include except.dfs}

type pcharar=^charar;
     charar=packed array[0..511] of char;
     mybuf=record case integer of
                    1:(s:psegblock);

==== ercs07/emas-2900/culmoldsce_libsdis.txt ====
%BEGIN
%CONTROL 0
!
%INTEGERARRAY STJNUM(1:256)            ;! JOURNAL NUMS IN CURRENT SDI   00000300
!?? SHORT; %OWNINTEGERARRAY STIPCT(1:256);! NO OF I/P ITEMS PER JOURNAL 00000400
!?? SHORT; %OWNINTEGERARRAY STOPCT(1:256);! NO OF THESE ITEMS DISTRD.   00000500
!?? SHORT; %OWNINTEGERARRAY STUSCT(1:256);! NO OF USERS RECEIVING ITEMS 00000600
%OWNBYTEINTEGERARRAY STUSMK(1:256)     ;! MARKER ARRAY                  00000650
!
%INTEGER CSUNIT                        ;! STATS CUMULATION FILE UNIT NO
%INTEGER MXSTJN                        ;! NO OF DIFF JOURNAL NUMS I/P
%INTEGER NEWSTS                        ;! NEW STATS FILE INDICATOR
%INTEGER WEEKNO                        ;! WEEK NUMBER
!
%OWNINTEGER MXNUMB=1024                ;! MAX SIZE OF JOURN NO ARRAY    00001300
%OWNINTEGER STUSOP                     ;! TOTAL NO OF COPIES DISTRIB    00001350
%OWNINTEGER STUSSV                     ;! NO OF USERS RECEIVING ITEMS
%OWNINTEGER STUSTL                     ;! NO OF USERS IN SYSTEM
%OWNINTEGER YES=1                      ;! CONSTANT
!
%BEGIN                                                                  00001800

==== ercs07/emas-2900/inpds_obdatain.txt ====
C     EDIT DATE   17AUG78  12:37
C     SOURCE FILE OBDATAJHP.IN
C     AUTHOR      J.H.PERINE
C     DECODE TABLES FOR OBJECT VERIFICATION
      INTEGER  LINSTR (512)
      COMMON   /OBJD/   LINSTR


==== ercs07/emas-2900/slogof_setdiafr.txt ====
    
      SUBROUTINE  SETDI (LC, AREA)  
    
      INTEGER  AREAID (15), BCARD (41)  
      INTEGER  RWORD1, RWORD2, RWORD3, RWORD (3)
      INTEGER  BTYPE
      INTEGER  EXTDX, ERRFLG
      INTEGER  NEWLCI   
      INTEGER  OFFSET, OW   
      INTEGER  RBITS, RCT   
      INTEGER  TWI  
      INTEGER  WF   
      COMMON   /OBJCOM/ AREAID, BCARD, RWORD
      COMMON   /OBJCOM/ BTYPE   
      COMMON   /OBJCOM/ EXTDX   
      COMMON   /OBJCOM/ OFFSET, OW  
      COMMON   /OBJCOM/ RBITS   
      COMMON   /OBJCOM/ TWI 
      COMMON   /OBJCOM/ WF  
      EQUIVALENCE (RWORD1, RWORD (1))   
      EQUIVALENCE (RWORD2, RWORD (2))   

==== ercs07/emas-2900/pasc22.txt ====
{

                          CHAPTER 22


                      Control Structures





 This chapter implements the interface procedures for  the  genera-
 tion of control structures as defined in Section 5.1O.

 22.1  Code Labels and Jumps

 The representation of code labels, the nature of jump instructions
 on the P-machine, and the fix-up mechanism used for forward jumps,
 were defined in Chapter 18.  Using these, the interface procedures
 that  bind  code  labels  to corresponding points in the generated
 code stream, and generate the conditional and unconditional  jumps

==== ercs07/emas-2900/slogof_stslxffr.txt ====
 
      SUBROUTINE STSLX (FUNC) 
      INTEGER FUNC 
 
      INTEGER     BRACEX, SELX,    LSX,     SELXB 
      INTEGER     FUNCNT, FSCNT,   FRCNT,   FUNVAL 
      INTEGER     NRFLS,  ARGSIZ,  PARCNT 
      INTEGER     BSTACK (10), SUBENT (40) 
      INTEGER     FLS (6),     PARSAV,      FLSAVE (6) 
      INTEGER     WHSTRT (30), WHLOW (10), WHHIGH (10) 
      INTEGER     LOOPT  (10), LOOPE (10),  LOOPF (10) 
      COMMON   /BRACE/  BRACEX, SELX,   LSX,    SELXB 
      COMMON   /BRACE/  FUNCNT, FSCNT,  FRCNT,  FUNVAL 
      COMMON   /BRACE/  NRFLS,  ARGSIZ, PARCNT 
      COMMON   /BRACE/  WHSTRT, BSTACK, SUBENT 
      COMMON   /BRACE/  FLS,    PARSAV, FLSAVE 
      EQUIVALENCE (WHSTRT, LOOPT) 
      EQUIVALENCE (WHLOW,  LOOPE, WHSTRT (11)) 
      EQUIVALENCE (WHHIGH, LOOPF, WHSTRT (21)) 
 
      INTEGER  NI,     NJ,     NK 

==== ercs07/emas-2900/slogosorg_reglevfs.txt ====
'HEAD'  REGISTER FOR CONDITIONAL
C     EDIT DATE   10DEC78  20:16
C     SOURCE FILE REGLEVAJH.FS
C     AUTHOR      A. J. HOWARD
C     CLUSTER     20
      'OUTFILE'   REGLEVAJH.FR
      SUBROUTINE  REGLEV (FUNC)
      INTEGER     FUNC
      EXTERNAL    OLREG, OLCRM
N     EXTERNAL    OLRDM
      'INCLUDE'   LOGOSAJH.IN,
      'INCLUDE'   CPAREAJH.IN,
      CALL OVLOD (OLREG)
      CALL REGDMP (8)
      CALL OVLOD (OLCRM)
N     CALL OVLOD (OLRDM)
      GO TO (100, 200, 300, 400, 500), FUNC
100   CALL STKREG (NESTX, 2)
      RETURN
200   CALL EXRGLV (TNESTX, 2)
      GO TO 310

==== ercs07/emas-2900/slogosorg_lcfuncin.txt ====
C     EDIT DATE   30APR78  14:33
C     SOURCE FILE LCFNCAJH.IN
C     AUTHOR      A. J. HOWARD
C     BASIC LOCATION COUNTER FUNCTIONS
      INTEGER     CODE
      INTEGER     NOUNLC
      INTEGER     DATALC
      INTEGER     COMLOC
      INTEGER     FBLOCK
      INTEGER     ZREL
      INTEGER     ABSLC
      INTEGER     CBTAB (15)
      INTEGER     CBX
      INTEGER     LCTAB (15)
      COMMON      /LCFUNC/ CODE
      COMMON      /LCFUNC/ NOUNLC
      COMMON      /LCFUNC/ DATALC
      COMMON      /LCFUNC/ COMLOC
      COMMON      /LCFUNC/ FBLOCK
      COMMON      /LCFUNC/ ZREL
      COMMON      /LCFUNC/ ABSLC

==== ercs07/emas-2900/pasc23.txt ====
{

                          CHAPTER 23


                     Generating Code For
                 Procedure and Function Calls





 23.1  Delayed Code Generation in Procedure Function Calls

 In the implementation of procedure and function calls delayed code
 generation is used at two levels:

 (a)  generation  of  parameter-passing  code  is  delayed   during
      analysis  of the actual parameter list for both procedure and
      function calls, and


==== ercs07/emas-2900/slinks_recordin.txt ====
C     EDIT DATE   11MAY78  11:13
C     SOURCE FILE RECORDGAK.IN
C     AUTHOR      GARY A. KUDIS
C     INPUT RECORD DEFINTION
      INTEGER     RCOUNT
      INTEGER     RTYPE
      INTEGER     RSTYPE
      INTEGER     RTMAX
      INTEGER     RSZMAX
      INTEGER     RECORD (41)
      INTEGER     RSIZE
      INTEGER     RSIZES (20)
      INTEGER ICLP02
      COMMON      /RECORD/ RCOUNT
      COMMON      /RECORD/ RTYPE
      COMMON      /RECORD/ RSTYPE
      COMMON      /RECORD/ RTMAX
      COMMON      /RECORD/ RSZMAX
      COMMON      /RECORD/ RECORD
      COMMON      /RECORD/ RSIZE
      COMMON      /RECORD/ RSIZES

==== ercs07/emas-2900/mixedsrce_callfnc3a.txt ====
%INTEGER %PROCEDURE SETVAL(VAL);
%VALUE VAL;%INTEGER VAL;
%BEGIN
PRINTSTRING(<ENTERING_SETVAL>);NEWLINE;
SETVAL:=VAL;
%END;
%PROCEDURE CALLFUNC(FUNC,PARAM,RES);
%VALUE PARAM;%INTEGER PARAM,RES;
%INTEGER %PROCEDURE FUNC;
%COMMENT (VAL):%VALUE VAL:%INTEGER VAL;
%BEGIN
PRINTSTRING(<ENTERING CALLFUNC>);NEWLINE;
RES:=FUNC(PARAM);
%END;

==== ercs07/emas-2900/pddemo_alloc8.txt ====
!* modified 14/04/82
!*
!******************************** EXPORTS ******************************
!*
%ROUTINESPEC ALLOC(%INTEGER PTR)
%INTEGERFNSPEC ALLOC CHAR(%INTEGER L,AD,
        %HALFINTEGERNAME IIN,%INTEGERNAME DISP)
%ROUTINESPEC INIT ALLOC(%INTEGER ADCOM)
%ROUTINESPEC ADD DATA ITEM(%INTEGER AREA,PTR,COUNT,DISP,L,AD)
%INTEGERFNSPEC TIDY GLA(%HALFINTEGER EP,IIN,%INTEGER LEN)
%INTEGERFNSPEC PFORMAT(%INTEGER AINPUT,INP,J,
                       %STRINGNAME IDENTIFIER)
%INTEGERFNSPEC TO INTEGER(%INTEGER DATA AD,DATA LEN,
                                   TEXT AD,TEXT LEN,TEXT INC,MODE)
%INTEGERFNSPEC TO REAL(%INTEGER DATA AD,DATA LEN,TEXT ADDRESS,
                                INT LEN,INT PTR,DEC LEN,DEC PTR,
                                EXP LEN,EXP PTR,DECS,SCALE,MODE)
%INTEGERFNSPEC GLA SPACE(%INTEGER LEN)
!*
!* 25/03/82   
!*

==== ercs07/emas-2900/strans_sortajfr.txt ====
    
      SUBROUTINE SORT (LIST, COUNT, ARRAY, COMP)
      INTEGER     COUNT, LIST (COUNT), ARRAY (COUNT)
      INTEGER     CT, STEP, COMP
      INTEGER     I, J, K, L, M, N  
    
      K = COUNT 
      IF (K .LE. 1) RETURN  
      CT = K
      STEP = 1  
      CONTINUE  
13012 CONTINUE  
    
      K = ISHFT (K, -1) 
      IF (.NOT.(K .NE. 0))GO TO 13013   
    
      STEP = STEP + STEP
      GO TO 13012   
13013 CONTINUE  
    
      STEP = STEP - 1   

==== ercs07/emas-2900/pasc24.txt ====
{

                          CHAPTER 24


                      Program Parameters





 Pascal contains provision for the exchange of information  between
 a program and its run time environment by means of program parame-
 ters.  In  practice  most  implementations  (including  the  model
 implementation) provide only a skeleton frame work which is suffi-
 cient to map actual data files onto their respective program  file
 variables.   The  P-machine  contains a special P-code to enable a
 mapping  between  a  named  program  parameter  variable   and   a
 corresponding   external entity to be established.  No restriction
 on the parameter type is enforced but the P-code operates  on  the
 assumption that the entities involved are data files.

==== ercs07/emas-2900/qfiles_comp13.txt ====
!* modified 14/04/82
!*
!*************************** EXPORTS **********************
!*
%ROUTINESPEC F77COMP(%HALFINTEGER A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,
   %INTEGER INFILE,ERRFILE,OUTFILE,
   %HALFINTEGER BLKS,BITS,ISN,
   %INTEGER MODE,
   %HALFINTEGER NUMIMPORTS,MEMSIZE)
%ROUTINESPEC SOURCE LINE(%INTEGER ABUFF)
%ROUTINESPEC OUTPUTFUL
%ROUTINESPEC NAMESFUL
%ROUTINESPEC DICFUL
%ROUTINESPEC EXTFUL
!*
!********************************************************************
!*
!***********************************************************************
!*
!*
!***********************************************************************

==== ercs07/emas-2900/pascalsce_mylput.txt ====
%SYSTEMROUTINESPEC INITSERVICES
!?1  %EXTERNALINTEGERFNSPEC OUTSTREAM
%EXTERNALROUTINE PAINITLPUT(%INTEGER WRK,TEMP)
!?1  %INTEGER OS
!?1  OS=OUTSTREAM
!?1  SELECTOUTPUT(0)
!?1  PRINTSTRING('ENTERING INITLPUT')
!?1  NEWLINE
!?1  SELECTOUTPUT(OS)
!
INITSERVICES
%END
!
%EXTERNALROUTINE PAGIVELPUTITEMS(%INTEGERNAME ERRORFLAG, %C
            %STRINGNAME MAINENTRYNAME)
!?1  %INTEGER OS
!?1  OS=OUTSTREAM
!?1  SELECTOUTPUT(0)
!?1  PRINTSTRING('ENTERINGGIVELPUTITEMS')
!?1  SELECTOUTPUT(OS)
!

==== ercs07/emas-2900/slogosorg_setcomin.txt ====
C     EDIT DATE   14SEP78  15:09
C     SOURCE FILE SETCOMJHP.IN
C     AUTHOR      J H P
C     CLUSTER     X
      INTEGER     LDAZP, LDAABS, LDAIMM
      INTEGER     LDAABY, LDAINY
      INTEGER     LDYZP, LDYABS, LDYIMM
      INTEGER     SETNLX
      INTEGER     TS1, TS2
      INTEGER     SOPC, SWF, SWFOPN
      INTEGER     SETSTX, SSUBX, STBIAS
      INTEGER     STMODE, SSUBXB, SSUBXM
      INTEGER     SSUBOP, SWFSUB
      INTEGER     SLEFT, SRIGHT, SCTN
      LOGICAL     ZPFLAG, STLOC
      COMMON   /SCOM/   LDAZP, LDAABS, LDAIMM
      COMMON   /SCOM/   LDAABY, LDAINY
      COMMON   /SCOM/   LDYZP, LDYABS, LDYIMM
      COMMON   /SCOM/   SETNLX
      COMMON   /SCOM/   TS1, TS2
      COMMON   /SCOM/   SOPC, SWF, SWFOPN

==== ercs07/emas-2900/bscmast20_basicgen20.txt ====
EDIT BSCMAST20_BSCBASE20,OPTBASE
(M/!?/D1)1000
E
EDIT BSCMAST20_BASICFILES,OPTFILES
(M/!?/D1)1000
E
PARM OPT
IMP OPTBASE,OPTOBJ,.LP
IMP OPTFILES,OPTFILEY,.LP
IMP BSCMAST20_FCONVS,FCOBJ,.LP
PARM
LINK
BSCMAST20_BASIC5AC
BSCMAST20_COLLFNSC
BSCMAST20_FPIOC
BSCMAST20_MATPACKC
BSCMAST20_USINGC
OPTFILEY
OPTOBJ
FCOBJ
.END

==== ercs07/emas-2900/pnxrel01_optextp44.txt ====
! 10/07/84 - new version of targetpnx_fptos
! 03/07/84 - put FPTOS in an include file
!          - set up string REG1 in targ_target & substitute for "reg-1"
! 21/03/84 - amend arrays OPVALS, ST, SZTY & REG
! 19/03/84 - change some address increments to W! etc.
! 08.03.84 - change INTEGER mapping increments to W1
! 28/02/84 - FPTOS inserted
!* modified 14/11/83
!*
! 01/11/83 copied from ercs06.rel90_optextb15
!*
%CONSTINTEGER OPSYS=0
!  =0  (Emas  ISO)
!  =1  (VME  EBCDIC)
!*
%INCLUDE "host_host"
!* 
%INCLUDE "targ_target"
!*
%INCLUDE "pf_version"
!*

==== ercs07/emas-2900/op1fmts.txt ====
%RECORDFORMAT BLRECF(%INTEGER BLFCON,BLBCON,B
                           %HALFINTEGER BLBDOM,BLBTARG,BLCHAIN,BLTEXT,BLDEPTH,
                           (%HALFINTEGER BLCORRUPT,BLUB1 %OR %INTEGER BCLIST),
                           %INTEGER BLUSE,BLDEF,BLBOE)
%RECORDFORMAT SRECF(%INTEGER INFO,LINK)
%RECORDFORMAT CNCRECF(%HALFINTEGER CNCOUNT,%HALFINTEGERARRAY CNBLOCK(1:1000))
%RECORDFORMAT LOOPRECF(%HALFINTEGER LOBLOCK,LODOWN,LOACROSS,LOST)
%RECORDFORMAT PROPRECF(%HALFINTEGER PRDEFCT,PRTEXT,PRDEFN,
                       %BYTEINTEGER PRCOORD2,PRQREPL,%HALFINTEGER PRREPL)


{2900} %CONSTINTEGER TABSCALE=1
{2900} %CONSTINTEGER BLENTLEN=36;     ! BLOCK TABLE ENTRY LENGTH IN BYTES
{2900} %CONSTINTEGER FRSIZE=8;        ! FREE LIST ENTRY SIZE IN BYTES
{2900} %CONSTINTEGER INTLEN=4;        ! INTEGER LEN IN BYTES

%CONSTINTEGER FUNCBIT=1
%CONSTINTEGER RETBIT=4

==== ercs07/emas-2900/pasc28.txt ====
{

                          CHAPTER 28


                        Code Generator
                        Initialisation





 The code-generator is initialised systematically on  a  module  by
 module  basis  by a call to procedure InitCodeGeneration made from
 the compiler program body. However, a number  of  generator  vari-
 ables not associated with any module in particular are initialised
 here by procedures InitPCodes, InitDefaults, and InitOthers.


                                                                     }


==== ercs07/emas-2900/slogof_rstk03fr.txt ====
    
      SUBROUTINE RSTDMP(BASE)   
      INTEGER BASE  
    
      INTEGER     ACADDR (11), ACTYPE (11), ACSUBS (11) 
      INTEGER     ACSBTY (11), ACBIAS (11)  
      INTEGER     REGSTK(120)   
      COMMON      /RMCOM/  ACADDR, ACTYPE, ACSUBS, ACSBTY, ACBIAS   
      COMMON      /RMCOM/  REGSTK   
    
      INTEGER  AREG,   XREG,   YREG,   NRREGS   
      INTEGER  STATUS (10),    STAREG, STXREG, STYREG   
      INTEGER  REGS (10)
      INTEGER  ACTREG (2),      ACTLO,  ACTHI   
      INTEGER  NZREG
      INTEGER ICLP10
      COMMON   / REGS / AREG,   XREG,   YREG,   NRREGS  
      COMMON   / REGS / STATUS, REGS,   ACTREG, NZREG   
      COMMON   / REGS / ICLP10  
      EQUIVALENCE    (ACTLO,  ACTREG (1))   
      EQUIVALENCE    (ACTHI,  ACTREG (2))   

==== ercs07/emas-2900/rel10opt_optextb47.txt ====
! 18/09/84 - insert switch for STFNID in ANAL and set QUAL(24) TO "STFNID"
! 27/08/84 - change PRINT TR for type 4 STMT triads
! 10/07/84 - new version of targetpnx_fptos
! 03/07/84 - put FPTOS in an include file
!          - set up string REG1 in targ_target & substitute for "reg-1"
! 21/03/84 - amend arrays OPVALS, ST, SZTY & REG
! 19/03/84 - change some address increments to W! etc.
! 08.03.84 - change INTEGER mapping increments to W1
! 28/02/84 - FPTOS inserted
!* modified 14/11/83
!*
! 01/11/83 copied from ercs06.rel90_optextb15
!*
%CONSTINTEGER OPSYS=0
!  =0  (Emas  ISO)
!  =1  (VME  EBCDIC)
!*
%INCLUDE "host_host"
!* 
%INCLUDE "targ_target"
!*

==== ercs07/emas-2900/devtr99.txt ====
! UPDATED 2/12/80 - BUG IN ABBREV
%BEGIN
!
!
!*********************************************************************
!
! MORE COMMENTS AND SWITCH SYSFUN(232) - SYSFUN(280) TIDIED UP
!
!*********************************************************************
!
! CHANNEL USAGE
! ST01 - T#DUMP
! ST02 - LOGNAM
! ST03 - T#TEMP
! SM04 - LOGOFILE
! SM06 - T#LOGOSTK
! SM07 - LOGOMON
! SM08 - BFILE
! SM10 - JUNK FILE
!
!*****************************************

==== ercs07/emas-2900/simple_loop1.txt ====
      INTEGER U(10)
      DO 10 K=1,6
      LLK=K
      LIM=K
      DO 10 I=1,LIM
      J=I
   10 U(J)=K
      END

==== ercs07/emas-2900/slinks_txtcomin.txt ====
C     EDIT DATE   16JAN79  15:23
C     SOURCE FILE TXTCOMGAK.IN
C     AUTHOR      GARY A. KUDIS
      INTEGER     TEXT (27), LEFT (4), RIGHT (4)
      INTEGER ICLP01
      COMMON      /TEXTC/ TEXT, LEFT, RIGHT,ICLP01


==== ercs07/emas-2900/simple_loop2.txt ====
      DO 10 K=1,6
      LLK=K
      LIM=K
      DO 10 I=1,LIM
      J=I
   10 L=K
      END

==== ercs07/emas-2900/slogosorg_regmanfs.txt ====
'HEAD'  REGISTER MANAGEMENT
C     EDIT DATE   14JAN79  09:14
C     SOURCE FILE REGMANJHP.FS
C     AUTHOR      J.H.PERINE
C     CLUSTER     20
      'OUTFILE'   REGMANJHP.FR
      SUBROUTINE  REGMAN (FUNC, REG, AUX)
      'INCLUDE'   NLISTCFTM.IN,
      'INCLUDE'   WFLAGSJHP.IN,
      'INCLUDE'   REGSJHP.IN,
      'INCLUDE'   STKDEFA.IN,
      'INCLUDE'   STKDEFB.IN,
      'INCLUDE'   RMCOMJHP.IN,P
      INTEGER     FUNC,   REG,    AUX
      INTEGER     SRREG,  SRX,    CREG,   CTREG,  FREECT, MAXCT
      INTEGER     RET,    SRRET,  ACX,    PASS
      INTEGER     STINS (3),      AC (11, 5)
      EQUIVALENCE (ACADDR, AC)
      DATA        STINS / 133, ^     // STA ZP
                          134, ^     // STX ZP
                          132 /      // STY ZP

==== ercs07/emas-2900/genutils_dostopdi.txt ====

%EXTERNALROUTINE DOSTOPD(%STRING(63) SA)
      %EXTERNALROUTINESPEC COPY(%STRING(63) SB)
      %EXTERNALROUTINESPEC DESTROY(%STRING(63) SC)
      %EXTERNALROUTINESPEC DEFINE(%STRING(63) SD)
      %EXTERNALINTEGERFNSPEC RETURNCODE
      %BYTEINTEGERARRAY BUF(1:255)
      %INTEGER I
      %STRING(80) A,B,C,D,FNAME,PDS
      %ON %EVENT 9 %START
         SELECTOUTPUT(3)
         CLOSESTREAM(2)
         %IF FNAME # "" %THEN COPY("SCRATCH,".PDS."_".FNAME)
         DESTROY("SCRATCH")
         %STOP
         %FINISH
      %IF SA -> A.(",").PDS     %C
      %THEN %START
         DEFINE("ST01,".A)
         DEFINE("ST02,SCRATCH")
         SELECTINPUT(1)

==== ercs07/emas-2900/slogos_pshcomin.txt ====
C     EDIT DATE   14APR78  10:21
C     SOURCE FILE PSHCOMFTM.IN
C     AUTHOR      F. T. MICKEY
C     CLUSTER     X

      INTEGER  PSTACK (12)
      INTEGER  PX
      INTEGER  PEND
      COMMON   /PPCOM/  PSTACK
      COMMON   /PPCOM/  PX
      COMMON   /PPCOM/  PEND




==== ercs07/emas-2900/sforf_files.txt ====


  COPYLNY
  COPYTOY
  CPARENY
  CTYPEY
  DDUMPY
  EMASIFY
  ENDLINY
  ESPY
  ESTY
  GETCY
  GETLINY
  GETNUMY
  GETWRDY
  GOLNY
  IGNOREY
  INITOBY
  INITY
  LABGENY
  LEXY

==== ercs07/emas-2900/errors.txt ====
   1 :  The digit sequence is invalid: an unsigned number is badly
        formed.
   2 :  A string-quote was expected: a string is not permitted to
        extend over more than one physical line.
   3 :  One or more characters were expected: an empty string is
        not permitted.
   4 :  A token-separator (comment, space, or line-separator) is
        required between numbers and word-symbols.


   6 :  The base of a based-number must lie in the range
        2 to 16.
   7 :  The octal constant does not specify a character value.

   8 :  A string-quote must follow an '&' in a multi-element
        string constant.
   9 :  A '\' in a string must be followed by an 'n', 't', 'b',
        'r', 'f' or octal denotation of a character value.
  10 :  An identifier symbol was expected.

  11 :  An integer-constant was expected.

==== ercs07/emas-2900/slinkf_i2passfr.txt ====
    
      SUBROUTINE I2PASS 
    
      INTEGER     ECODE 
      INTEGER     CMCHAN
      INTEGER     RBCHAN
      INTEGER     OBCHAN
      INTEGER     MPCHAN
      INTEGER     DBCHAN
      INTEGER     TTYIN 
      INTEGER     TTYOUT
      COMMON      /IODEFN/ ECODE
      COMMON      /IODEFN/ CMCHAN   
      COMMON      /IODEFN/ RBCHAN   
      COMMON      /IODEFN/ OBCHAN   
      COMMON      /IODEFN/ MPCHAN   
      COMMON      /IODEFN/ DBCHAN   
      COMMON      /IODEFN/ TTYIN
      COMMON      /IODEFN/ TTYOUT   
    
      INTEGER     CMFILE (16)   

==== ercs07/emas-2900/qfiles5apr_f77alloc1.txt ====
!* modified 22/03/82
!*
!******************************** EXPORTS ******************************
!*
%ROUTINESPEC ALLOC(%INTEGER PTR)
%INTEGERFNSPEC ALLOC CHAR(%INTEGER L,AD,
        %HALFINTEGERNAME IIN,%INTEGERNAME DISP)
%ROUTINESPEC INIT ALLOC(%INTEGER ADCOM)
%ROUTINESPEC ADD DATA ITEM(%INTEGER AREA,PTR,COUNT,DISP,L,AD)
%INTEGERFNSPEC TIDY GLA
%INTEGERFNSPEC PFORMAT(%INTEGER AINPUT,INP,J,
                       %STRINGNAME IDENTIFIER)
%INTEGERFNSPEC TO INTEGER(%INTEGER DATA AD,DATA LEN,
                                   TEXT AD,TEXT LEN,TEXT INC,MODE)
%INTEGERFNSPEC TO REAL(%INTEGER DATA AD,DATA LEN,TEXT ADDRESS,
                                INT LEN,INT PTR,DEC LEN,DEC PTR,
                                EXP LEN,EXP PTR,DECS,SCALE,MODE)
!*
!***********************************************************************
!*
!***********************************************************************

==== ercs07/emas-2900/mixedsrce_callfnc3i.txt ====
%EXTERNALINTEGERFN SETVAL(%INTEGER VAL)
PRINTSTRING('ENTERING SETVAL');NEWLINE
%RESULT=VAL
%END
%EXTERNALROUTINE CALLFUNC(%INTEGERFN FUNC,%INTEGER PARAM, %C
          %INTEGERNAME RES)
%SPEC FUNC(%INTEGER VAL)
PRINTSTRING('ENTERING CALLFUNC');NEWLINE
RES=FUNC(PARAM)
%END
%ENDOFFILE

==== ercs07/emas-2900/psclsce206_ctsup6.txt ====
! MODIFIED 04/02/81 -  HEADING CHANGED TO VERSION 20.6
!**********************************************************************
!*
!*                         P A S C A L
!*
!*                COMPILER ENVIRONMENT ROUTINES
!*
!**********************************************************************
!
!
!**********************************************************************
!*
!*                            CONSTANTS
!*
!**********************************************************************
!
%CONSTINTEGER SEGMENTK=256,SEGMENT=262144
%CONSTINTEGER NIL=-1
%CONSTINTEGER NO=0,YES=1
%CONSTSTRING(1)%ARRAY HEX TAB(0:15)="0","1","2","3","4","5","6","7", %C
              "8","9","A","B","C","D","E","F"

==== ercs07/emas-2900/qfiles5apr_f77dctl5.txt ====
{ Updated 15/03/82 - diags modified for recursive entry }
{                    COMMENT facility added             }

module  f77dctl;
exports
imports filedefs from filedefs;

procedure ndiag(raiseap,dumpc,err,extra:fsbit16);
procedure ssmess(i:integer);

function loadss:fsbit16;
function loadap:fsbit16;
procedure diags(raiseap,es,er,pstart,pend:fsbit16);

private

imports f77init from f77init;
imports f77idiag from f77idiag;
imports f77fdiag from f77fdiag;
imports f77rmess from f77rmess;
imports f77qcode from f77qcode;

==== ercs07/emas-2900/npc1_pfoption.txt ====
procedure SetLocalOptions(NewOptions: SetOfOptions);
  extern;

procedure InitOptions;
  extern;

==== ercs07/emas-2900/qfiles5apr_f77alloc2.txt ====
!* modified 23/03/82
!*
!******************************** EXPORTS ******************************
!*
%ROUTINESPEC ALLOC(%INTEGER PTR)
%INTEGERFNSPEC ALLOC CHAR(%INTEGER L,AD,
        %HALFINTEGERNAME IIN,%INTEGERNAME DISP)
%ROUTINESPEC INIT ALLOC(%INTEGER ADCOM)
%ROUTINESPEC ADD DATA ITEM(%INTEGER AREA,PTR,COUNT,DISP,L,AD)
%INTEGERFNSPEC TIDY GLA
%INTEGERFNSPEC PFORMAT(%INTEGER AINPUT,INP,J,
                       %STRINGNAME IDENTIFIER)
%INTEGERFNSPEC TO INTEGER(%INTEGER DATA AD,DATA LEN,
                                   TEXT AD,TEXT LEN,TEXT INC,MODE)
%INTEGERFNSPEC TO REAL(%INTEGER DATA AD,DATA LEN,TEXT ADDRESS,
                                INT LEN,INT PTR,DEC LEN,DEC PTR,
                                EXP LEN,EXP PTR,DECS,SCALE,MODE)
!*
!***********************************************************************
!*
!%INCLUDE "ERCS06.PERQ_PDICTFMTS"

==== ercs07/emas-2900/slogos_stkdffin.txt ====
C     EDIT DATE   03DEC78  12:13
C     SOURCE FILE STKDFF.IN
C     AUTHOR      A. J. HOWARD
      INTEGER     SUBXB (20),  WFOP (20),   WFOPND (20)
      INTEGER     SUBOP (20),  WFSOP (20)
      EQUIVALENCE (STK (1,  6), SUBXB  (1))
      EQUIVALENCE (STK (1, 10), WFOP   (1))
      EQUIVALENCE (STK (1, 11), WFOPND (1))
      EQUIVALENCE (STK (1, 12), SUBOP  (1))
      EQUIVALENCE (STK (1, 13), WFSOP  (1))


==== ercs07/emas-2900/inpds_regsjhin.txt ====
C     EDIT DATE   30AUG78  08:28
C     SOURCE FILE REGSJHP.IN
C     AUTHOR      J.H.PERINE
C     PURPOSE  DEFINE NAME LIST VALUES FOR RESERVED REGISTER NAMES
      INTEGER  AREG,   XREG,   YREG,   NRREGS
      INTEGER  STATUS (10),    STAREG, STXREG, STYREG
      INTEGER  REGS (10)
      INTEGER  ACTREG (2),      ACTLO,  ACTHI
      INTEGER  NZREG
      EQUIVALENCE    (ACTLO,  ACTREG (1))
      EQUIVALENCE    (ACTHI,  ACTREG (2))
      EQUIVALENCE    (STAREG, STATUS (1))
      EQUIVALENCE    (STXREG, STATUS (2))
      EQUIVALENCE    (STYREG, STATUS (3))
      COMMON   / REGS / AREG,   XREG,   YREG,   NRREGS
      COMMON   / REGS / STATUS, REGS,   ACTREG, NZREG


==== ercs07/emas-2900/rel6_cops2.txt ====
module F77COPS;

{************************************************}
{*     Constant Compile Time Operations.        *}
{************************************************}
 

exports

procedure dummy;
function realop(op:integer;lhs,rhs:real;var res:real):long;
function intop(op:integer;lhs,rhs:long;var res:long):long;
function coop(Pold,
              Pnew:pointer;
              oldmode,
              newmode:integer):integer;

function floatlong(arg:long):real;
function trunclong(arg:real):long;
function roundlong(arg:real):long;


==== ercs07/emas-2900/pddemo_fmt6.txt ====
!PFMTQ4 IS EQUIVALENT TO F77FMT1 ON PERQ
!
!*     RUNCOMP=0 FOR COMPILE TIME FORMAT
!*     RUNCOMP=1 FOR RUN TIME FORMAT

!*                                                                      FORMATCD
!*

%EXTERNALINTEGERFN FORMATCD(%INTEGER INSTART,DISP,ARYADR,INLEN,OUTLEN,  
    LEVEL,RUNCOMP, %INTEGERNAME TABLEN, ACTFMTLEN)
!*
!*
%SWITCH SW(0 : 122)
%HALFINTEGER PTR, CODE, BRACK, FLAG, I, CHAR, BOTHZERO
%HALFINTEGER NXTCHAR, OUTPTR, FMTPTR, TEXTPTR, HOLLEN, QUOTE CNT,ITEMPTR
%HALFINTEGER COPYCODE, ERR,LINELEN
%INTEGER LARGESTINT, COUNT, NUMBER,FMTAD,INLENGTH
%HALFINTEGER NOCOMMA, J, K,COMMAREQD
%HALFINTEGERARRAY LOOP(0 : 8)
%BYTEINTEGERARRAYNAME FORMAT
%BYTEINTEGERARRAYFORMAT AF(0 : 1320)

==== ercs07/emas-2900/mafile.txt ====
m(matest,1)
a(1,1,x0002,x4)
a(1,200,x0,x1111 2222 3333)
a(1,208,x0000,x999)
che()
m(matest,1)
a(1,1,x02,x0004)
a(1,200,x0,x1111222233334444)
a(1,208,x0000,x99999999)
che(x1111)
m(matest,2)
a(2,2,x2d,x000a000b000c)
a(2,248,x0,x0020)
a(1,248,x00,x0010)
c()

m(matest2,41)
a(13,0,x0,x0001)

a(12,260,x0,x0000)
a(-1,2,x0,x0)

==== ercs07/emas-2900/pffiles_datareps.txt ====
{

 History
 -------

 16/10/85 - Add specs for DataBytes and Align. (agh)
 17/10/85 - Add spec for CheckRepresentation. (agh)
 21/10/85 - Remove spec for AugmentSchema. (agh)
 22/10/85 - Change formal param type of Cardinality from TypeForm
            to TypEntry. (agh)
 22/10/85 - Remove PresetByCall, PostsetByCall, and EnvelopeUsed. (agh)
 01/12/85 - Add specs for DataSize, IndexUnit. (agh)
 09/12/85 - Add specs for PrintField and PrintRep (agh).

                                                                         }

function WordsFor(Units, UnitsPerWord: Scalar): Scalar;
  extern;

function DataBytes(Representation: TypeRepresentation): ByteRange;
  extern;

==== ercs07/emas-2900/qfiles5apr_f77dctl6.txt ====
{ Updated 24/03/82 - tracing }

module  f77dctl;
exports
imports filedefs from filedefs;

procedure ndiag(raiseap,dumpc,err,extra:fsbit16);
procedure ssmess(i:integer);

function loadss:fsbit16;
function loadap:fsbit16;
procedure diags(raiseap,es,er,pstart,pend:fsbit16);

private

imports f77init from f77init;
imports f77idiag from f77idiag;
imports f77fdiag from f77fdiag;
imports f77rmess from f77rmess;
imports f77qcode from f77qcode;


==== ercs07/emas-2900/pffiles_pfcalls.txt ====

procedure StackActualBlock(var Body: BlockLabel);
  extern;

procedure StackFormalBlock(FAddress: RuntimeAddress);
  extern;

procedure OpenParameterList(ClassOfCall: IdClass);
  extern;

procedure PassValue(RepRequired: TypeRepresentation);
  extern;

procedure PassReference(RefStatus: RefSecurity);
  extern;

procedure PassBlock;
  extern;

procedure CloseParameterList;
  extern;

==== ercs07/emas-2900/pddemo_init8.txt ====
module f77init;

{ updated 21/3/82 - function openfile defined }

exports
imports filedefs from filedefs;
imports filesystem from filesystem;
imports fileutils from fileutils;
imports memory from memory;
imports clock from clock;
imports filedir from filedir;


type buff84=packed array[1..84] of char;

procedure unsatref;
procedure initmain;
procedure INITGLA;
function iocp(ep,off,seg:integer):integer;
procedure stop;
procedure iwrite(val,place:long);

==== ercs07/emas-2900/slogosorg_peekftfs.txt ====
'HEAD'  PEEK PROCESSING
C     EDIT DATE   14JAN79  09:06
C     SOURCE FILE PEEKFTM.FS
C     AUTHOR      A. J. HOWARD
C     CLUSTER     15
      'OUTFILE' PEEKFTM.FR
C     SUBROUTINE PEEK
C
C     COMPACTS THE SOURCE BUFFER, THEN PEEKS AHEAD IN
C     THE INPUT STREAM AT THE NEXT CHARACTER
C
      SUBROUTINE PEEK
      CALL SSBUF
      CALL PEEKA
      RETURN
      END
      'OUTFILE' SSBUFFTM.FR
      SUBROUTINE SSBUF
      'INCLUDE' LOGOSAJH.IN,
      'INCLUDE' SRCDFSFTM.IN,
      SRCEND = SRCEND - J + 2

==== ercs07/emas-2900/mixedsrce_callfnc4a.txt ====
%PROCEDURE CALLFUNC(FUNC,PARAM,RES);
%VALUE PARAM;%INTEGER PARAM,RES;
%INTEGER %PROCEDURE FUNC;
%COMMENT (VAL):%VALUE VAL:%INTEGER VAL;
%BEGIN
PRINTSTRING(<ENTERING CALLFUNC>);NEWLINE;
RES:=FUNC(PARAM);
%END;

==== ercs07/emas-2900/dsea20_rtocp.txt ====
I/%CONTROL X'1FFFFFFF'///
E

==== ercs07/emas-2900/slogof_objfltfr.txt ====
 
      SUBROUTINE  OBJFLT (FAULT) 
 
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG 
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV 
      INTEGER     NEXT,   NUMBER, I,      IOTYPE 
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE 
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP 
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT 
      INTEGER ICLP05 
      LOGICAL     ENDOK,CONEND 
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG 
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV 
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE 
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N 
      COMMON   /LOGOS/  PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE 

==== ercs07/emas-2900/inpds_listcmin.txt ====
      INTEGER  LRET, OFFSET, LINEX, LTIME, LN
      INTEGER  LINE (40)
      INTEGER  INDXFL, LX, TABNR, TABX, LMODE
      LOGICAL  LENTER
      COMMON   /LCOM/   LRET, OFFSET, LINEX, LTIME, LN, LENTER
      COMMON   /LCOM/   LINE
      COMMON   /LCOM/   INDXFL, LX, TABNR, TABX, LMODE


==== ercs07/emas-2900/npc2_codeutils.txt ====
{

                          MODULE 19


                       P-Code Assembly
                             and
                 Data Access Code Generation





 This chapter defines the code generation utilities on which subse-
 quent  code generation procedures depend.  The facilities provided
 include:

 (a)  basic P-code instruction assembly and storage;

 (b)  generation and fix-up of jump instructions;


==== ercs07/emas-2900/slogof_nowajhfr.txt ====
    
      SUBROUTINE  NOW   
    
      INTEGER  AREAID (15), BCARD (41)  
      INTEGER  RWORD1, RWORD2, RWORD3, RWORD (3)
      INTEGER  BTYPE
      INTEGER  EXTDX, ERRFLG
      INTEGER  NEWLCI   
      INTEGER  OFFSET, OW   
      INTEGER  RBITS, RCT   
      INTEGER  TWI  
      INTEGER  WF   
      COMMON   /OBJCOM/ AREAID, BCARD, RWORD
      COMMON   /OBJCOM/ BTYPE   
      COMMON   /OBJCOM/ EXTDX   
      COMMON   /OBJCOM/ OFFSET, OW  
      COMMON   /OBJCOM/ RBITS   
      COMMON   /OBJCOM/ TWI 
      COMMON   /OBJCOM/ WF  
      EQUIVALENCE (RWORD1, RWORD (1))   
      EQUIVALENCE (RWORD2, RWORD (2))   

==== ercs07/emas-2900/helpsa20_brtcoll.txt ====
INPUT(*INLIB.ICL9LPLIBNUC&.ICL9CERTENV&.ICL9CERTNEWCTM&.SFLCTM&
    .ICL9LPPMPACKAGE&.ICL9LPEHMTM&.ICL9CERTNDIAG&
    .ICL9LPJCLPROCS&.SFLGENERAL&.SFLFORRT&.ICL9CERTOCP&.ICL9CERTEDINDUMS&
.ICL9CERTJSVAR&
    .ICL9LPREALIO)
NEWMODULE(*OUTLIB.ICL9LPRTSUPPORT(2000))
ASSOCIATEMODULES(ICL9LPLIBNUC&ICL9CERTENV&ICL9CERTNEWCTM&SFLCTM)
ASSOCIATEMODULES(ICL9LPPMPACKAGE&ICL9LPEHMTM&ICL9CERTNDIAG)
ISOLATEOBJECTS(ICL9LPREALIO)
RETAIN(PASCALRUN&PARUN&
ICL9HERRMESSP&
ICL9LPPMPROCL&
ICL9LPPMPROCR&
ICL9LPWRITELINE&
ICL9LPFILEDECL&
ICL9LPWRITEBSTR&
ICL9LPCHARCODEIS&
ICL9LPGETCHARTAB&
ICL9LPRANGEERROR&
ICL9LPCASEERROR&
ICL9LPCLOCK&

==== ercs07/emas-2900/qfiles_code10.txt ====
!* MODIFIED 12/04/82
!{2900C}%CONSTINTEGER W1=2;! 1 PERQ  2 EMAS
!{2900C}%CONSTINTEGER W2=4
!{2900C}%CONSTINTEGER W3=6
!{2900C}%CONSTINTEGER W4=8
!{2900C}%CONSTINTEGER W8=16
!{2900C}%CONSTINTEGER W66=132
{PERQC}%CONSTINTEGER W1=1
{PERQC}%CONSTINTEGER W2=2
{PERQC}%CONSTINTEGER W3=3
{PERQC}%CONSTINTEGER W4=4
{PERQC}%CONSTINTEGER W8=8
{PERQC}%CONSTINTEGER W66=66
%OWNINTEGER TRACETEMP
!*************  IMP80 version  ******************
!*
!***********************************************************************
!%INCLUDE "ERCS06.PERQ_TRIADOPS"                                        ;
!***********************************************************************
!*
!*

==== ercs07/emas-2900/npc1_options.txt ====
{

                           MODULE 3
 
 
                       Option Handling
 
 
 
 
 
 A number of features of the Static Checker can be controlled as  a
 set of options modelled by the type OptionType. The set of options
 for this implementation is relatively small, being concerned  only
 with  language level, source input margin setting, listing genera-
 tion, directive recognition, secondary source input, runtime check
 generation and postmortem dump generation.
 
 Values of the type  OptionType  are  sub-classified  into  options
 which,  by being essentially 'on' or 'off', are Boolean by nature,
 and options which by possessing an associated  integer-value,  are

==== ercs07/emas-2900/inpds_stkdfain.txt ====
C     EDIT DATE   03DEC78  11:40
C     SOURCE FILE STKDEFA.IN
C     AUTHOR      A. J. HOWARD
      INTEGER     STK (20, 13)
C     COLUMN      ARRAY
C
C        1        NAMEX
C        2        SUBX
C        3        MODE
C        4        SUBXM
C        5        BIAS
C        6        SUBXB
C        7        LOCFLG
C        8        OSTACK
C        9        OPCODE
C        10       WFOP
C        11       WFOPND
C        12       SUBOP
C        13       WFSOP
      INTEGER     NAMEX (40)
      EQUIVALENCE (STK (1, 1), NAMEX (1))

==== ercs07/emas-2900/mixedsrce_callfnc4f.txt ====
      SUBROUTINE CALLFUNC(FUNC,PARAM,RES)
      INTEGER FUNC,PARAM RES
      WRITE(6,100)
  100 FORMAT(' ENTERING CALLFUNC')
      RES=FUNC(PARAM)
      RETURN
      END

==== ercs07/emas-2900/prperqobj.txt ====
PROGRAM PROBJ(INOBJ,OUTPUT);
LABEL 10;
VAR INOBJ:TEXT;
    I,J,NUM:INTEGER;
BEGIN
RESET(INOBJ,'OBJFILE.SEG');
WHILE NOT EOF(INOBJ) DO BEGIN
  FOR J:=1 TO 8 DO BEGIN
    NUM:=0;
    FOR I:=1 DOWNTO 0 DO BEGIN
      NUM:=LOR(SHIFT(ORD(INOBJ^),I*8,NUM);
      GET(INOBJ);
      IF EOF(INOBJ) THEN BEGIN
        WRITE(NUM:4:-16);
        GOTO 10;
      END;
      WRITE(NUM:4:-16);
    END;
  10:
  WRITELN;
END;

==== ercs07/emas-2900/slogos_exinc.txt ====
EDIT SLOGOS_ARGENAFS,A
(M/'OUTFILE'/M0I/##/
M1)*
I/##/T(M/'INCLUDE'/M0I/##/M1)*
T(D/##/M1)*
T(R/'OUTFILE'/)*
T(R/ /)*
T(R/,/)*
T(R/'INCLUDE'/I/         /)*
E

CONCAT
A
B
.END
C
DESTROY B
RENAME C,B
EDIT SLOGOS_BPOLSHFS,A
(M/'OUTFILE'/M0I/##/
M1)*

==== ercs07/emas-2900/dumptext.txt ====
program dumptext(intext,input,output);
label 10,20;
var intext:text;
    i,j,k,intch2:integer;
    byte:packed array[0..7] of char;
        objname,outname:string;
{ *auto-}
begin
writeln('enter name of file to dump');
reset(input);
readln(objname);
writeln('enter name of dump file');
readln(outname);
reset(intext,objname);
rewrite(output,outname);
while true do begin
  for i:=0 to 7 do begin
          byte[i]:=intext^;
          write(ord(byte[i]):2:-16);
          write(' ');
          if eof(intext) then goto 10;

==== ercs07/emas-2900/rel6_qcode3.txt ====
%CONSTINTEGER EMAS=0,PERQ=1,SYS=perq
%EXTERNALROUTINE QCODE(%INTEGER START,FINISH,CA,MODE)
! %EXTERNALROUTINESPEC DUMP(%INTEGER A,B,C,D)
 %IF SYS=EMAS %START; %SYSTEMROUTINESPEC PHEX(%INTEGER N) ; %FINISHELSESTART

%ROUTINE PHEX(%INTEGER N)

%CONSTBYTEINTEGERARRAY K(0:15)='0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'
%HALFINTEGER I,J
%CYCLE J=1,-1,0
   %CYCLE I=12,-4,0
       PRINTSYMBOL(K((HALFINTEGER(ADDR(N)+J)>>I)&15))
   %REPEAT
%REPEAT
%END
%FINISH
!*TOP
!****************************************************************************
!*                                                                          *
!*             PERQ QCODE DISSASSEMBLER 
!*                                                                          *

==== ercs07/emas-2900/rel6_files13.txt ====
   !Modified      2/July/82   14.00





!**********************************************************************!
!**********************************************************************!
         !                                               !
         !                                               !
         !     Complete FILE INPUT/OUTPUT Procedures     !
         !                                               !
         !          for FORTRAN77 Programs               !
         !                                               !
         !           on ICL  PERQ Machines               !
         !                                               !
         !                                               !
!**********************************************************************!
!**********************************************************************!



==== ercs07/emas-2900/mixedsrce_callfnc4i.txt ====
%EXTERNALROUTINE CALLFUNC(%INTEGERFN FUNC,%INTEGER PARAM, %C
          %INTEGERNAME RES)
%SPEC FUNC(%INTEGER VAL)
PRINTSTRING('ENTERING CALLFUNC');NEWLINE
RES=FUNC(PARAM)
%END
%ENDOFFILE

==== ercs07/emas-2900/sforf_estf.txt ====
      SUBROUTINE EST (STR, BUF, LEFT, RIGHT)
      INTEGER  STR(1), BUF(1), LEFT, RIGHT
      INTEGER  GETX, PUTX
      INTEGER  GCHAR
      GETX = 1
      PUTX = LEFT
      CONTINUE
13260 CONTINUE
      IF (.NOT.(PUTX .LE. RIGHT))GO TO 13261
      CALL PCHAR (BUF, PUTX, GCHAR (STR, GETX))
      GETX = GETX + 1
      PUTX = PUTX + 1
      GO TO 13260
13261 CONTINUE
      RETURN
      END

==== ercs07/emas-2900/slinkf_t19p1gfr.txt ====
    
      SUBROUTINE T19P1  
    
      LOGICAL     MPFLAG
      LOGICAL     OVMODE
      LOGICAL     LBMODE
      LOGICAL     LOADRB
      LOGICAL     SFLAG 
      INTEGER     VERS  
      INTEGER     LOADAD
      INTEGER     ZLOC, ZSTR, ZMAX, ZLIMIT  
      INTEGER     CLOC, CSTR, CMAX, CLIMIT  
      INTEGER     NLOC, NSTR, NMAX, NLIMIT  
      INTEGER     DLOC, DSTR, DMAX, DLIMIT  
      INTEGER     OLOC, OMAX, OSET  
      INTEGER     START 
      INTEGER     MODNLX
      INTEGER     CKSUM 
      INTEGER     KEY   
      INTEGER ICLP05
      COMMON      /LDATAX/ MPFLAG   

==== ercs07/emas-2900/dsea20_ciedlate1.txt ====
TS/PROCEDURE FINALMESSAGES(/
TC/TOTAL OCP/ R/DIAG/JOURNAL/ B/SECS/MILLI/
TS/((CLOCK/ I/   / D/(/ D/ DIV 1000)/
TS/(*.../ P+1
TELE

==== ercs07/emas-2900/dsea20_ciedlate2.txt ====
T/FUNCTION ICL9HNSUBHEAD (/
I$FUNCTION ICL9HNCREATEALIAS (ALIASNAMEDESC, DUMMYDESC: DESC) : RESPONSE;
   EXTERN;
 
$
T/PROCEDURE GENERATEOMFMODULE(/
TS/CERESPINIT,/ B/:/, MAINKEYRESP/
TS/BEGIN/
I$
   PROCEDURE ADDOMFKEY(KEYNAME: ALFA; VAR KEYRESPONSE: RESPONSE);
      BEGIN
      KEYRESPONSE:=ICL9HNCREATEALIAS(SIGALFADESC(KEYNAME),NILDESC);
      END (*ADDOMFKEY*);
 
$
TS/ALFATOIMP(OMFFILENAME/ R/OMFFILENAME/MAINENTRYNAME/
TS/EDINRESP:=0/ T+1 P-1 R/EDIN/MAINKEY/
TS/EDINRESP:=ICL9CEZOMFOUT/ I$      BEGIN$$$
TS/IF EDINRESP/
I$      IF (EDINRESP=0) AND (OMFFILENAME<>MAINENTRYNAME) THEN
         ADDOMFKEY(MAINENTRYNAME,MAINKEYRESP);

==== ercs07/emas-2900/rel4_qput7.txt ====
!june 24 - vsn 7 better error messages
!june 24 watch for adjacency and repitition in data statements
!june 18 work segment limit raised to 128kb.
!june 16 - lmax  h -> I to avoid going negative in large compilations.
!JUNE 14 - VSN 6 F77 1.4
!          Avoid half(addr(x+1)) for IMP bug
!          Extend work are by 8 blocks at a time.
!          Patcher no longer needs size 80 strings.
!         Increment LMAX in areafrag: for bug.
!MAY 26 - VSN 5   F77 1.3
!         MODULE NAMES ARE CONVERTED TO UPPER CASE
! MAY 25 - COMMON NAMES TRUNCATED TO 8 FOR LOADER TABLE.
!         VERSION STRING PADDED TO 80 FOR PATCHER
%CONSTINTEGER EMAS=0,PERQ=1,SYS=PERQ
%CONSTINTEGER NOTSYS=(SYS+1)&1
!********************************************
!*             PERQ LPUT                    *
!********************************************




==== ercs07/emas-2900/strans_getlinfr.txt ====
    
      INTEGER FUNCTION GETLIN (BUFFER, CHAN)
    
      INTEGER  INPTR
      INTEGER  OUTPTR   
      INTEGER  INMAX
      INTEGER  MAXTAB   
      INTEGER  MAXLIN   
      INTEGER  IFMAX
      INTEGER  MAXLEV   
      INTEGER  LINENO   
      INTEGER  PAGE 
      INTEGER  CLINE
      INTEGER  TLIMIT   
      INTEGER  LN   
      INTEGER  I, J, K  
      INTEGER  II, JJ, KK   
      INTEGER  LEXVAL   
      INTEGER  SLEN 
      INTEGER  LEVEL
      INTEGER  LEN  

==== ercs07/emas-2900/slinkf_t15p1gfr.txt ====
    
      SUBROUTINE T15P1  
    
      INTEGER     ECODE 
      INTEGER     CMCHAN
      INTEGER     RBCHAN
      INTEGER     OBCHAN
      INTEGER     MPCHAN
      INTEGER     DBCHAN
      INTEGER     TTYIN 
      INTEGER     TTYOUT
      COMMON      /IODEFN/ ECODE
      COMMON      /IODEFN/ CMCHAN   
      COMMON      /IODEFN/ RBCHAN   
      COMMON      /IODEFN/ OBCHAN   
      COMMON      /IODEFN/ MPCHAN   
      COMMON      /IODEFN/ DBCHAN   
      COMMON      /IODEFN/ TTYIN
      COMMON      /IODEFN/ TTYOUT   
C     WRITE (DBCHAN, 1) 
C    1FORMAT (' ENTER T15P1')   

==== ercs07/emas-2900/slogof_cqvalafr.txt ====
    
      INTEGER  FUNCTION CQVAL (VAL) 
      INTEGER     VAL   
    
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      INTEGER     NEXT,   NUMBER, I,      IOTYPE
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT
      INTEGER ICLP05
      LOGICAL     ENDOK,CONEND  
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG   
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG  
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV  
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE  
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N   

==== ercs07/emas-2900/strans_ignorefr.txt ====
    
      SUBROUTINE IGNORE 
    
      INTEGER  INPTR
      INTEGER  OUTPTR   
      INTEGER  INMAX
      INTEGER  MAXTAB   
      INTEGER  MAXLIN   
      INTEGER  IFMAX
      INTEGER  MAXLEV   
      INTEGER  LINENO   
      INTEGER  PAGE 
      INTEGER  CLINE
      INTEGER  TLIMIT   
      INTEGER  LN   
      INTEGER  I, J, K  
      INTEGER  II, JJ, KK   
      INTEGER  LEXVAL   
      INTEGER  SLEN 
      INTEGER  LEVEL
      INTEGER  LEN  

==== ercs07/emas-2900/qdums_f77qcode.txt ====
module f77qcode;

exports

imports filedefs from filedefs;
imports f77init from f77init;

procedure dummyqcode;
procedure qcode(startad,finad:fsbit32;base,mode:long);
                  
private
procedure dummyqcode;
begin
end;

procedure qcode;
begin
writeln(curout^,'calling dummy qcode');
end.

==== ercs07/emas-2900/slinkf_t11p1gfr.txt ====
    
      SUBROUTINE T11P1  
    
      INTEGER     RCOUNT
      INTEGER     RTYPE 
      INTEGER     RSTYPE
      INTEGER     RTMAX 
      INTEGER     RSZMAX
      INTEGER     RECORD (41)   
      INTEGER     RSIZE 
      INTEGER     RSIZES (20)   
      INTEGER ICLP02
      COMMON      /RECORD/ RCOUNT   
      COMMON      /RECORD/ RTYPE
      COMMON      /RECORD/ RSTYPE   
      COMMON      /RECORD/ RTMAX
      COMMON      /RECORD/ RSZMAX   
      COMMON      /RECORD/ RECORD   
      COMMON      /RECORD/ RSIZE
      COMMON      /RECORD/ RSIZES   
      COMMON     /RECORD/ ICLP02

==== ercs07/emas-2900/pptboot_pptest1a.txt ====

==== ercs07/emas-2900/slogosorg_obdatain.txt ====
C     EDIT DATE   17AUG78  12:37
C     SOURCE FILE OBDATAJHP.IN
C     AUTHOR      J.H.PERINE
C     DECODE TABLES FOR OBJECT VERIFICATION
      INTEGER  LINSTR (512)
      COMMON   /OBJD/   LINSTR




==== ercs07/emas-2900/pffiles_withstmts.txt ====

procedure OpenWith(WithBase: DispRange);
  extern;

procedure WithReference(WithBase: DispRange);
  extern;

procedure CloseWith;
  extern;

procedure InitWith;
  extern;


==== ercs07/emas-2900/cobolsce_indexseq.txt ====
%INTEGERFN ADDQ(%INTEGER ADD,N,POSITION)
!
!  A FREE POSITION SET POSITION = 1, CHECK 0 FIRST
!
%LONGINTEGER II,JJ,KK
%INTEGER I,J,K
%IF POSITION > N %THEN %RESULT = -1
     K = (POSITION -1) >>6
     J = ADD + 8 * K
    II = LONGINTEGER(J)
     I = POSITION - (K<<6)
    JJ = X'8000000000000000'>>(I-1)
    KK = II & JJ
%IF KK # 0 %THEN %RESULT = -1     !CHECK IF USED
    II = II ! JJ                  !RETURN IF FREE
     LONGINTEGER(J) = II
%RESULT = 0
%END
!
!
%INTEGERFN SETQ (%INTEGER ADD,N,POSITION)

==== ercs07/emas-2900/slogos_cpareain.txt ====
C     EDIT DATE   16NOV78  10:36
C     SOURCE FILE CPAREAJH.IN
C     AUTHOR      A. J. HOWARD
      INTEGER  PLEVEL, STOPS (20)
      INTEGER  CNLSID (9), CNLTLI (9), CNLEND (9)
      INTEGER  CLX, CPLOC (30)
      INTEGER  NESTX, PNESTX
      INTEGER  RELLEV, RELCNT, TRUEF
      LOGICAL  RELPAS
      INTEGER  CMPFLG
      INTEGER  ILB
      INTEGER  BRCT, BROK, TNESTX
      COMMON   /COMP/   PLEVEL, STOPS
      COMMON   /COMP/   CNLSID, CNLTLI, CNLEND
      COMMON   /COMP/   CLX, CPLOC
      COMMON   /COMP/   NESTX, PNESTX
      COMMON   /COMP/   RELLEV, RELCNT, TRUEF
      COMMON   /COMP/   RELPAS
      COMMON   /COMP/   CMPFLG
      COMMON   /COMP/   ILB
      COMMON   /COMP/   BRCT, BROK, TNESTX

==== ercs07/emas-2900/slinkf_t08p1gfr.txt ====
    
      SUBROUTINE T08P1  
    
      INTEGER     NSIZE,  NAME(16), NTITLE  
      INTEGER     NFLAGS (512)  
      INTEGER     NADDRS (512)  
      INTEGER     NPOSIT (512)  
      INTEGER     NDATA  (512)  
      INTEGER     NTEXTX (512)  
      INTEGER     NTEXT  (1000) 
      INTEGER     NLX, NLSTRT, NLSTOP   
      INTEGER     TXSTRT, TXSTOP
      INTEGER     NTXBTS
      INTEGER     USEBIT, COMBIT, OVLBIT, EPTBIT
      INTEGER     LDMBIT, MODBIT, MLTBIT, RLSBIT
      INTEGER     GDFBIT, TYPBTS
      INTEGER     ATYPE 
      INTEGER      ICLP07   
      LOGICAL     OLDNAM
      COMMON      /NTABLE/ NSIZE, NAME, NTITLE  
      COMMON      /NTABLE/ NFLAGS, NADDRS, NPOSIT, NDATA, NTEXTX

==== ercs07/emas-2900/inpds_symbolin.txt ====
C     EDIT DATE   10MAR78  03:57
C     SOURCE FILE SYMBOLFTM.IN
C     AUTHOR      F. T. MICKEY
C     CLUSTER     120.X
      INTEGER  SYMTBL (65)
      COMMON   /SYMB/   SYMTBL


==== ercs07/emas-2900/qfiles5apr_longimp.txt ====
%BEGIN
%INTEGER I
WRITE(I,2) %FOR I=1,1,1000 
NEWLINE
%ENDOFPROGRAM

==== ercs07/emas-2900/rel4_dctl15.txt ====
{ f77dctl15:
{           15/6/82 - Proceed from Ctl-shiftC }
{           17/6/82 - corrupt stack error message }
{           21/6/82 - recognition of diagnostic responses in f77diags changed }
{           24/6/82 - scrounge info o/p with /help }

module  f77dctl;
exports
imports filedefs from filedefs;

procedure ndiag(raiseap,dumpc,err,extra:fsbit16);
procedure ssmess(i:integer);

function loadss:fsbit16;
function loadap:fsbit16;
procedure diags(raiseap,es,er,pstart,pend:fsbit16);

private

imports f77init from f77init;
imports f77idiag from f77idiag;

==== ercs07/emas-2900/helpsa20_bctamedin.txt ====
CHANGEPROPERTIES(1,SEPARATE=NO,USEMODE=DENSE)
CHANGEPROPERTIES(2,SEPARATE=NO,USEMODE=DENSE)
CHANGEPROPERTIES(4,SEPARATE=NO,USEMODE=DENSE)

==== ercs07/emas-2900/pt_dir1.txt ====
%SOURCE =YES
%SOURCE OFF
%KEYEDENTRY ON
PROGRAM EXPONZ(OUTPUT);
VAR PI, SPI :REAL;
%SOURCE ON
FUNCTION POWER(X:REAL; Y:INTEGER):REAL;
VAR Z:REAL;
BEGIN Z:=1;
  WHILE Y>0 DO
  BEGIN
    WHILE NOT ODD(Y) DO
    BEGIN Y:=Y DIV 2;; X:=SQR(X)
    END;
    Y:=Y-1;Z:=X*Z
  END;
  POWER:=Z
END;
%SOURCE OFF
BEGIN
PI:=3.14159;

==== ercs07/emas-2900/rel10opt_op344.txt ====
! 24/10/84 - line 2345, also test for OP=MOO
!          - line 2785, scaling factor corrected to SRSCALE
! 23/10/84 - call ADDCODE at line 1153
! 02/10/84 - remove error message at PASS1(0) & PASS2(0)
! 05/07/84 - put routine ARRTR in include file targ_arrtr
! 06/06/84 - extend array OPCAT for INTRIN & DCMPLX
! 05/06/84 - do not optimise arrays with constant subscripts (ARRTR)
! 13/03/84 - correct TYPES and LENGTHS in routine DESC
! 19/01/84 - CTSIZE & EXTNSIZE NOW IN HOST
! 18/01/84 - BLOCK BIT STRIP ADDRESSES ARE NOW RELATIVE TO ABLOCKS
!    ?     - perform REDUSE on CHHEAD & CONCAT
! 07/11/83 COPIED FROM ERCS06.REL8002_OP3B23
!*
%include "host_host"
!
%include "targ_target"
!
%include "pf_version"
!*
%include "bits_fmts"
!*

==== ercs07/emas-2900/pt_dir2.txt ====
%SOURCE = NO
PROGRAM EXPONZ(OUTPUT);
VAR PI, SPI :REAL;
BEGIN
%SOURCE ON
PI:=3.14159;
WRITE(PI);
%SOURCE OFF
END.

==== ercs07/emas-2900/mixedsrce1_rprocdefa.txt ====
%PROCEDURE SETR(R1,V);
%VALUE V;
%REAL R1,V;
%BEGIN
PRINTSTRING(<ENTERING_ALGOLG_SETR>);
R1:=V;
%END

==== ercs07/emas-2900/inpds_pnamesin.txt ====
C     EDIT DATE   13MAY78  11:46
C     SOURCE FILE PNAMESGAK.IN
C     AUTHOR      GARY A. KUDIS
C     PRINT NAME LIST DATA STRUCTURES
      INTEGER     LIST (512)
      INTEGER     NAMES (512)
C     'LIST' IS USED BY 'SORT' ROUTINE TO BUILD AN ARRAY OF
C     SORTED INDEXES TO ITEMS IN NAME LIST TABLE (NTABLE).
C     'NAMES' CONTAINS POINTERS TO USED ENTRIES IN 'NTABLE'.
      INTEGER     NCOUNT
      INTEGER     LSTOP
      COMMON      /PNAMES/    LIST
      COMMON      /PNAMES/    NAMES
      COMMON      /PNAMES/    NCOUNT
      COMMON      /PNAMES/    LSTOP


==== ercs07/emas-2900/slinkf_t04p1gfr.txt ====
    
      SUBROUTINE T04P1  
    
      INTEGER     ECODE 
      INTEGER     CMCHAN
      INTEGER     RBCHAN
      INTEGER     OBCHAN
      INTEGER     MPCHAN
      INTEGER     DBCHAN
      INTEGER     TTYIN 
      INTEGER     TTYOUT
      COMMON      /IODEFN/ ECODE
      COMMON      /IODEFN/ CMCHAN   
      COMMON      /IODEFN/ RBCHAN   
      COMMON      /IODEFN/ OBCHAN   
      COMMON      /IODEFN/ MPCHAN   
      COMMON      /IODEFN/ DBCHAN   
      COMMON      /IODEFN/ TTYIN
      COMMON      /IODEFN/ TTYOUT   
C     WRITE (DBCHAN, 1) 
C    1FORMAT (' ENTER T04P1')   

==== ercs07/emas-2900/ctltest1.txt ====
program ctltest;
imports f77ctl from spectl;
procedure glawds;
begin
inlineword(4);
inlineword(2);
inlineword(999);
inlineword(1000);
end;
var flag1,flag2:integer;
    i:integer;
begin
initflag:=0;
writeln('flag1=',flag1);
if flag1<>1000 then
  begin
  writeln('calling initmain');
  initmain;
  exit(ctltest);
  writeln('back from initmain');
end;

==== ercs07/emas-2900/pt_dir3.txt ====
%OBJECT = YES
PROGRAM EXPONZ(OUTPUT);
VAR PI, SPI :REAL;
BEGIN
PI:=3.14159;
%OBJECT OFF
WRITE(PI);
%OBJECT ON
END.

==== ercs07/emas-2900/slogof_labeldfr.txt ====
 
      BLOCK DATA 
 
      INTEGER     LTLI, LLX, LOCNLX (10), LOCTLI (10) 
      COMMON      /LABCOM/ LTLI, LLX, LOCNLX, LOCTLI 
      DATA         LTLI /0/ 
      END 

==== ercs07/emas-2900/mixedsrce1_iprocdef.txt ====
PROGRAM PROCDEF;
(*# E+ *)
PROCEDURE ADDINT(I:INTEGER;VAR NO:INTEGER);
BEGIN
NO:=10+I;
END;
BEGIN
END.

==== ercs07/emas-2900/rel10opt_optextp45.txt ====
! 18/09/84 - insert switch for STFNID in ANAL and set QUAL(24) to "STFNID"
! 10/07/84 - new version of targetpnx_fptos
! 03/07/84 - put FPTOS in an include file
!          - set up string REG1 in targ_target & substitute for "reg-1"
! 21/03/84 - amend arrays OPVALS, ST, SZTY & REG
! 19/03/84 - change some address increments to W! etc.
! 08.03.84 - change INTEGER mapping increments to W1
! 28/02/84 - FPTOS inserted
!* modified 14/11/83
!*
! 01/11/83 copied from ercs06.rel90_optextb15
!*
%CONSTINTEGER OPSYS=0
!  =0  (Emas  ISO)
!  =1  (VME  EBCDIC)
!*
%INCLUDE "host_host"
!* 
%INCLUDE "targ_target"
!*
%INCLUDE "pf_version"

==== ercs07/emas-2900/ctltest2.txt ====
program ctltest;
imports f77ctl from spectl;
procedure glawds;
begin
{ 2 } inlineword(4); { offset of areamap }
      inlineword(35);
      inlineword(0);
      inlineword(0);
      inlineword(0);
      inlineword(0);
      inlineword(0);
      inlineword(0);
      inlineword(0);
      inlineword(0);
{ 12 } inlineword(0); { start of area[2] }
       inlineword(28);
       inlineword(3);
       inlineword(0);
       inlineword(0);
       inlineword(0);
       inlineword(0);

==== ercs07/emas-2900/pt_dir4.txt ====
PROGRAM EXPONZ(OUTPUT);
VAR PI, SPI :REAL;
%OBJECT ON
FUNCTION POWER(X:REAL; Y:INTEGER):REAL;
VAR Z:REAL;
BEGIN Z:=1;
  WHILE Y>0 DO
  BEGIN
    WHILE NOT ODD(Y) DO
    BEGIN Y:=Y DIV 2;; X:=SQR(X)
    END;
    Y:=Y-1;Z:=X*Z
  END;
  POWER:=Z
END;
BEGIN
PI:=3.14159;
WRITELN(2.0,7,POWER(2.0,7));
SPI:=POWER(PI,2);
WRITELN(PI,2,SPI);
WRITELN(SPI,2,POWER(SPI,2));

==== ercs07/emas-2900/slogof_srcxddfr.txt ====
 
      BLOCK DATA 
 
      INTEGER  FCHRTS 
      INTEGER  SCFLAG 
      INTEGER  QMODE 
      INTEGER  LBIAS 
      INTEGER  SCOUNT 
      INTEGER  QINDEX 
      LOGICAL  NOTINQ 
      COMMON   /SRCEX/  FCHRTS 
      COMMON   /SRCEX/  SCFLAG 
      COMMON   /SRCEX/  QMODE 
      COMMON   /SRCEX/  LBIAS 
      COMMON   /SRCEX/  SCOUNT 
      COMMON   /SRCEX/  QINDEX 
      COMMON   /SRCEX/  NOTINQ 
      DATA     FCHRTS   /1/ 
      DATA     SCFLAG   /0/ 
      DATA     QMODE    /0/ 
      DATA     NOTINQ   /.TRUE./ 

==== ercs07/emas-2900/probj.txt ====
PROGRAM PROBJ(INOBJ,OUTPUT);
LABEL 10;
VAR INOBJ:TEXT;
    I,NUM:INTEGER;
    HEXTAB:ARRAY[0..15] OF CHAR;
    HEX:ALFA8;
BEGIN
FOR I:= 0 TO 9 DO HEXTAB[I]:=CHR(I+48);
FOR I:=10 TO 15 DO HEXTAB[I]:=CHR(I+55);
RESET(INOBJ);
WHILE NOT EOF(INOBJ) DO BEGIN
  HEX:='00000000';
  FOR I:=1 TO 4 DO BEGIN
    NUM:=ORD(INOBJ^);
    HEX[I*2-1]:=HEXTAB[NUM DIV 16];
    HEX[I*2]:=HEXTAB[NUM MOD 16];
    GET(INOBJ);
    IF EOF(INOBJ) THEN GOTO 10;
  END;
10:
  FOR I:=1 TO 8 DO WRITE(HEX[I]);

==== ercs07/emas-2900/rel5_comp25.txt ====
{30/06/82 13.00  Varaiable areas as standard}
{15/06/82 17:30 LCG}
{08/06/82 09:50 provide for variable areas on a switch                         }
{03/06/82 06:10 allow 128 blocks in DICT seg                                   }
{20/05/82 13:20 workseg now 40 blocks (8K bytes for names)                     }
{               MOVE BEE called on source block read                           }
{               NAMESFUL and DICFUL tidied                                     }
{13/05/82 14:30 increase workseg as below to 32 blocks                         }
{13/05/82   increase size of workseg to 24 blocks and reallocate space         }
{           to allow GENERATE to use a 4 block cycle for triad output          }
!*
!*************************** EXPORTS **********************
!*
%ROUTINESPEC F77COMP(%HALFINTEGER A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,
   %INTEGER INFILE,ERRFILE,OUTFILE,
   %HALFINTEGER BLKS,BITS,ISN,
   %INTEGER MODE,
   %HALFINTEGER NUMIMPORTS,MEMSIZE)
%ROUTINESPEC SOURCE LINE(%INTEGER ABUFF)
%ROUTINESPEC DICFUL
%ROUTINESPEC NAMESFUL

==== ercs07/emas-2900/ctltest3.txt ====
program ctltest;
imports f77ctl from spectl;
procedure glawds;
begin
{ 2 } inlineword(4); { offset of areamap }
      inlineword(35);
      inlineword(0);
      inlineword(0);
      inlineword(0);
      inlineword(0);
      inlineword(0);
      inlineword(0);
      inlineword(0);
      inlineword(0);
{ 12 } inlineword(0); { start of area[2] }
       inlineword(28);
       inlineword(3);
       inlineword(0);
       inlineword(0);
       inlineword(0);
       inlineword(0);

==== ercs07/emas-2900/pt_dir5.txt ====
PROGRAM TST11(OUTPUT);
VAR X : ARRAY[1..5] OF INTEGER;
    I : INTEGER;
(*# L-,T-*)
BEGIN
I:=1;
WHILE I<7 DO
  BEGIN
  X[I]:=I*2;
  WRITELN(OUTPUT,X[I]);
  I:=I+1
  END;
END.

==== ercs07/emas-2900/mixedsrce_passtra.txt ====
%BEGIN
%PROCEDURE PASSTR(STR);
%STRING STR;
%FORTRAN PASSTR;
PRINTSTRING(<CALLING_PASSTR>);
NEWLINE;
PASSTR(<TESTING_A_STRING_PARAM>);
PRINTSTRING(<DID_IT_WORK>);
NEWLINE;
%END;

==== ercs07/emas-2900/psclsce208_rtsup6.txt ====
! MODIFIED 05/03/81 - VERSION 20.7 - CALL OF IOCP FROM MYOUTREC CHANGED

!**********************************************************************
!*
!*                    RUN TIME PASCAL
!*
!**********************************************************************
!
!
!**********************************************************************
!*
!*                            CONSTANTS
!*
!**********************************************************************
!
%CONSTINTEGER NO=0,YES=1
%CONSTSTRING(1)%ARRAY HEX TAB(0:15)="0","1","2","3","4","5","6","7", %C
              "8","9","A","B","C","D","E","F"
!
!
!**********************************************************************

==== ercs07/emas-2900/mixedsrce1_rprocdeff.txt ====
      SUBROUTINE SETR(LR,V)
      REAL*8 LR,V
      WRITE(6,100)
  100 FORMAT(' ENTERING FORTRAN SETR')
      LR=V
      RETURN
      END

==== ercs07/emas-2900/rel4_file11.txt ====
   !Modified      8/June/82   11.00





!**********************************************************************!
!**********************************************************************!
         !                                               !
         !                                               !
         !     Complete FILE INPUT/OUTPUT Procedures     !
         !                                               !
         !          for FORTRAN77 Programs               !
         !                                               !
         !           on ICL  PERQ Machines               !
         !                                               !
         !                                               !
!**********************************************************************!
!**********************************************************************!



==== ercs07/emas-2900/slogos_code1ffs.txt ====
'HEAD'  PASS 1 CODE GENERATION
C     EDIT DATE   18JAN79  21:41
C     SOURCE FILE CODE1FTM.FS
C     AUTHOR      F. T. MICKEY
C     CLUSTER     21
      'OUTFILE' BLDBLKFTM.FR
      SUBROUTINE BLDBLK (OBWORD, WFLAG)
      'INCLUDE' LOGOSAJH.IN,
      'INCLUDE' WFLAGSJHP.IN,
      'INCLUDE' CODE1FTM.IN,
      'INCLUDE' NLISTCFTM.IN,
      'INCLUDE' LCONSTAJH.IN,
      INTEGER OBWORD, OW, WFLAG, WF, PRIORS
      INTEGER WFSTEP (17)
      LOGICAL     NLTEST
C                                     1 1 1 1 1 1 1 1
C                   1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7
      DATA WFSTEP / 1,0,0,1,2,0,0,3,0,0,0,0,0,0,0,0,0 /
      DATA PRIORS / 0/
      OW = OBWORD
      WF = WFLAG

==== ercs07/emas-2900/inpds_nlnamein.txt ====
C     EDIT DATE   09DEC78  15:40
C     SOURCE FILE NLNAMEFTM.IN
C     AUTHOR      F. T. MICKEY
      INTEGER     NAME (9)
      COMMON      /NLNAME/ NAME


==== ercs07/emas-2900/slogosorg_regsjhin.txt ====
C     EDIT DATE   30AUG78  08:28
C     SOURCE FILE REGSJHP.IN
C     AUTHOR      J.H.PERINE
C     PURPOSE  DEFINE NAME LIST VALUES FOR RESERVED REGISTER NAMES
      INTEGER  AREG,   XREG,   YREG,   NRREGS
      INTEGER  STATUS (10),    STAREG, STXREG, STYREG
      INTEGER  REGS (10)
      INTEGER  ACTREG (2),      ACTLO,  ACTHI
      INTEGER  NZREG
      EQUIVALENCE    (ACTLO,  ACTREG (1))
      EQUIVALENCE    (ACTHI,  ACTREG (2))
      EQUIVALENCE    (STAREG, STATUS (1))
      EQUIVALENCE    (STXREG, STATUS (2))
      EQUIVALENCE    (STYREG, STATUS (3))
      COMMON   / REGS / AREG,   XREG,   YREG,   NRREGS
      COMMON   / REGS / STATUS, REGS,   ACTREG, NZREG

==== ercs07/emas-2900/f77ctld5s.txt ====
module f77ctl;

exports
imports impprocs from impprocs;
imports system from system;
imports stack from stack;
imports except from except;
imports memory from memory;
imports filesystem from filesystem;
imports runread from runread;
imports screen from screen;
imports stream from stream;

const {$Include acb.dfs}
      {$Include rd.dfs}
      {$Include except.dfs}

type pcharar=^charar;
     charar=packed array[0..511] of char;
     mybuf=record case integer of
                    1:(s:psegblock);

==== ercs07/emas-2900/slogof_leveldfr.txt ====
 
      BLOCK DATA 
 
      INTEGER  LEVELB, NLEVEL, LLEVEL, ILEVEL, CLEVEL 
      INTEGER ICLP04 
      COMMON   /LEVELS/ LEVELB, NLEVEL, LLEVEL, ILEVEL, CLEVEL 
      COMMON   /LEVELS/ ICLP04 
      DATA  NLEVEL   /1/ 
      DATA  LLEVEL   /2/ 
      DATA  ILEVEL   /3/ 
      DATA  CLEVEL   /4/ 
      END 

==== ercs07/emas-2900/ctms_conts.txt ====
!
%SYSTEMROUTINESPEC CONSOLE(%INTEGER EP, %INTEGERNAME ADR, LEN)
%SYSTEMROUTINESPEC MOVE(%INTEGER BYTES, FROM, TO)
%SYSTEMROUTINESPEC REROUTE CONTINGENCY(%INTEGER CLASS, SUBCLASS,  %C
      %LONGINTEGER MASK, %ROUTINENAME RR, %INTEGERNAME FLAG)
%EXTERNALINTEGERFNSPEC READ ID(%INTEGER ADR)
%EXTERNALROUTINESPEC DRESUME(%INTEGER LNB, PC, ADR)
%EXTERNALINTEGERFNSPEC DISC ID
%SYSTEMROUTINESPEC ITOE(%INTEGER ADDR, LEN)
%SYSTEMSTRINGFNSPEC ITOS(%INTEGER I)
%EXTERNALROUTINESPEC ECTM ENTER(%STRING(31) NAME)
%EXTERNALROUTINESPEC ECTM RESULT(%INTEGER RC)
!
! Contingency handling routines
!
%OWNLONGINTEGER NIL = -1
%OWNINTEGER LONG DESC = X'30000000'
%OWNINTEGER LENGTH MASK = X'00FFFFFF'
!
%OWNINTEGER CONTINUE = 0, QOUTSTANDING = 0, SAVE TYPE, SAVE SUBTYPE
%OWNINTEGER QINHIBIT

==== ercs07/emas-2900/slogos_cgenajfs.txt ====
'HEAD'  COMPARISON CODE GENERATION
C     EDIT DATE   26JAN79  10:16
C     SOURCE FILE CGENAJH.FS
C     AUTHOR      A. J. HOWARD
C     CLUSTER     19
      'OUTFILE'   CGENAJH.FR
N     OVERLAY     OLCGN
      SUBROUTINE  CGEN
C     GENERATE CODE FOR COMPARISONS
      'INCLUDE'   ATESTAJH.IN,
      'INCLUDE'   CPAREAJH.IN,
      'INCLUDE'   NLISTCFTM.IN,
      'INCLUDE'   OPERSAJH.IN,
      'INCLUDE'   REGSJHP.IN,
      'INCLUDE'   RMCODES.IN,
      'INCLUDE'   STKDFA.IN,
      'INCLUDE'   STKDFB.IN,
      'INCLUDE'   STKDFE.IN,
      'INCLUDE'   WFLAGSJHP.IN,
      'INCLUDE'   GENCMA.IN,
      INTEGER     NLOPS

==== ercs07/emas-2900/slogof_nlaradfr.txt ====
 
      BLOCK DATA 
 
      INTEGER     NLIST (500) 
      INTEGER     NLOC  (500) 
      INTEGER     NTEXT (1500) 
      INTEGER     NTEXTX (500) 
      COMMON   /NARAY/  NLIST 
      COMMON   /NARAY/  NLOC 
      COMMON   /NARAY/  NTEXT 
      COMMON   /NARAY/  NTEXTX 
      DATA     NLIST /500*0/,NTEXTX /500*0/,NLOC /500*0/ 
      END 

==== ercs07/emas-2900/slinksorg_ldataxin.txt ====
C     EDIT DATE   13MAY78  06:57
C     SOURCE FILE LDATAXGAK.IN
C     AUTHOR      GARY A. KUDIS
C     GENERAL LINKER DATA
      LOGICAL     MPFLAG
      LOGICAL     OVMODE
      LOGICAL     LBMODE
      LOGICAL     LOADRB
      LOGICAL     SFLAG
      INTEGER     VERS
      INTEGER     LOADAD
      INTEGER     ZLOC, ZSTR, ZMAX, ZLIMIT
      INTEGER     CLOC, CSTR, CMAX, CLIMIT
      INTEGER     NLOC, NSTR, NMAX, NLIMIT
      INTEGER     DLOC, DSTR, DMAX, DLIMIT
      INTEGER     OLOC, OMAX, OSET
      INTEGER     START
      INTEGER     MODNLX
      INTEGER     CKSUM
      INTEGER     KEY
      COMMON      /LDATAX/ MPFLAG

==== ercs07/emas-2900/inpds_wflagsin.txt ====
C     EDIT DATE   15MAR78  14:02
C     SOURCE FILE    WFLAGSJHP.IN
C     AUTHOR      J.H.PERINE
C     PURPOSE  DEFINE WORD FLAGS
C     WF1      CONSTANT
C     WF2      SET LOCATION COUNTER VALUE
C     WF3      FLOWCHART END
C     WF4      ABSOLUTE CODE (NO ADDRESS)
C     WF5      RELOCATABLE CODE (1 BYTE ADDRESS)
C     WF6      ADDRESS OFFSET
C     WF7      NAME LIST INDEX
C     WF8      RELOCATABLE CODE (2 BYTE ADDRESS)
C     WF9      TRANSFER LIST ENTRY
C     WF10     SET LOCATION COUNTER NUMBER
C     WF11     NOT USED
C     WF12     NAME LIST INDEX, RIGHT HALF ADDR
C     WF13     NAME LIST INDEX, LEFT HALF ADDR
C     WF14     SET LOAD LOCATION COUNTER
C     WF15     SET LOAD LOCATION COUNTER VALUE
C     WF16     NEGATIVE OFFSET FROM NAME LIST
C     WF17     ADJUST LOCATION COUNTER

==== ercs07/emas-2900/inpds_flmsgain.txt ====
C     EDIT DATE   30AUG78  13:42
C     SOURCE FILE FLMSGAPB.IN
C     AUTHOR      A. P. BUCHALTER
C     CLUSTER     XX
      INTEGER     MSGS(16,100)
      INTEGER     MSG01(16,10)
      INTEGER     MSG11(16,10)
      INTEGER     MSG21(16,10)
      INTEGER     MSG31(16,10)
      INTEGER     MSG41(16,10)
      INTEGER     MSG51(16,10)
      INTEGER     MSG61(16,10)
      INTEGER     MSG71(16,10)
      INTEGER     MSG81(16,10)
      COMMON      /FLTMSG/ MSGS
      EQUIVALENCE (MSGS(1, 1),MSG01(1,1))
      EQUIVALENCE (MSGS(1,11),MSG11(1,1))
      EQUIVALENCE (MSGS(1,21),MSG21(1,1))
      EQUIVALENCE (MSGS(1,31),MSG31(1,1))
      EQUIVALENCE (MSGS(1,41),MSG41(1,1))
      EQUIVALENCE (MSGS(1,51),MSG51(1,1))

==== ercs07/emas-2900/mixedsrce1_rprocdefi.txt ====
%EXTERNALROUTINE SETR(%LONGREALNAME LR,%LONGREAL VAL)
PRINTSTRING('ENTERING IMP SETR')
NEWLINE
LR=VAL
%END
%ENDOFFILE

==== ercs07/emas-2900/slogof_crutchfr.txt ====
    
      SUBROUTINE  CRUSYM
    
      INTEGER  GROUP1   
      INTEGER  IMPLID   
      INTEGER  NGROUP   
      INTEGER  NIMPLI   
      INTEGER  NOTHER   
      INTEGER  NRELTI   
      INTEGER  OTHERS   
      INTEGER  RELTIV   
      INTEGER  STAX 
      INTEGER  CSOW 
      INTEGER  CSWFA
      INTEGER  CSOFF
      INTEGER  CSNLX
      INTEGER  CSWFB
      COMMON   /CRUCH/  GROUP1 (24) 
      COMMON   /CRUCH/  IMPLID (75) 
      COMMON   /CRUCH/  NGROUP  
      COMMON   /CRUCH/  NIMPLI  

==== ercs07/emas-2900/slogosorg_listcmin.txt ====
      INTEGER  LRET, OFFSET, LINEX, LTIME, LN
      INTEGER  LINE (40)
      INTEGER  INDXFL, LX, TABNR, TABX, LMODE
      LOGICAL  LENTER
      COMMON   /LCOM/   LRET, OFFSET, LINEX, LTIME, LN, LENTER
      COMMON   /LCOM/   LINE
      COMMON   /LCOM/   INDXFL, LX, TABNR, TABX, LMODE




==== ercs07/emas-2900/perqrel2_aux10.txt ====
!* MODIFIED 08/04/82  02.00
!*
!              
!                         EXPORT LIST
!
!
%ROUTINESPEC F77 STOP(%HALFINTEGER PTYPE,%INTEGER VAL)
%ROUTINESPEC F77 PAUSE (%HALFINTEGER PTYPE,%INTEGER VAL)
%ROUTINESPEC F77 RTERR(%HALFINTEGER ERRNO)
%ROUTINESPEC F77 IOERR(%HALFINTEGER ERRNO)
%HALFINTEGERFNSPEC F77 CONCAT(%INTEGER OUTPUTBASE,
      %HALFINTEGER OUTPUT DISP,OUTPUT LEN,%INTEGER COUNT,
ADDRINPUTDESCS,%HALFINTEGER SPACEFILL)
%ROUTINESPEC F77COPY (%INTEGER SCE BASE,%HALFINTEGER SCE DISP,
SOURCE LEN,%INTEGER TARGET BASE,%HALFINTEGER TARGET DISP,TARGET LEN)
%INTEGERFNSPEC F77 INDEX (%INTEGER SEARCHBASE,
%HALFINTEGER SEARCHDISP,SEARCHLEN,%INTEGER KEYBASE,%HALFINTEGER KEYDISP,
KEYLEN)
%ROUTINESPEC F77 CMULTC(%INTEGER AD,%REAL R1,C1,R2,C2)
%ROUTINESPEC F77 CDIVC(%INTEGER AD,%REAL R1,C1,R2,C2)
%INTEGERFNSPEC F77 CXREL(%REAL R1,C1,R2,C2)

==== ercs07/emas-2900/mixedsrce_passtrf.txt ====
      PROGRAM PASSTEST
      EXTERNAL PASSTR
      WRITE(6,100)
  100 FORMAT(' CALLING PASSTR')
      CALL PASSTR('TESTING A STRING PARAM')
      WRITE(6,200)
  200 FORMAT(' DID IT WORK')
      STOP
      END

==== ercs07/emas-2900/inpds_lsdatain.txt ====
C     EDIT DATE   17APR78  13:12
C     SOURCE FILE LSDATAJHP.IN
C     AUTHOR      J.H.PERINE
C     DECODE TABLES FOR LIST OUTPUT
      INTEGER  LINSTR (512)
      COMMON   /LSTD/   LINSTR


==== ercs07/emas-2900/slogof_nlistdfr.txt ====
 
      BLOCK DATA 
 
      INTEGER  NI,     NJ,     NK 
      INTEGER  NSIZE 
      INTEGER  NLX,    FNLX,   REMNLX, OVNLX,  TNAME 
      INTEGER  NLSTRT, NLSTOP, NLSIZE, SRCHST 
      INTEGER  NTSTRT 
      INTEGER  NTSTOP 
      INTEGER  NTSIZE 
      INTEGER  PARFLG 
      INTEGER  SPARFL 
      INTEGER  NLWRDS 
      INTEGER  TX 
      INTEGER  NLENO 
      INTEGER  STDMD 
      INTEGER  MSHIFT 
      INTEGER  REGCNT 
      INTEGER  NULLX 
      INTEGER  STPTRX 
      INTEGER  SPMODE 

==== ercs07/emas-2900/lpds_tst12blos.txt ====
''TITLE, TEST12B
''HEAD, LINKER COMMON ALLOCATION TEST
''LIST
  /////////////////////////////////////////////////////////
  //                                                     //
  // DATE   : SEP 18,1978                                //
  //                                                     //
  // AUTHOR : T. CHENG                                   //
  //                                                     //
  // TEST # : TEST12B                                    //
  //                                                     //
  // PURPOSE :   TEST MEMORY ALLOCATION FOR BLANK        //
  //              AND NAMED COMMONS.                     //
  //                                                     //
  // NOTE :      LINK WITH TEST12A,TEST12C AND           //
  //              TEST12D FOR TESTING.                   //
  //                                                     //
  /////////////////////////////////////////////////////////
''EJECT
     'LBR' BA, BB[3], BC 'RBR',                           // BLANK COMMON
     COM1 : 'LBR' BFLAG1, BUF1[100], 'DP' BPTR1 'RBR',    // #1 NAMED COMMON

==== ercs07/emas-2900/slinkf_listrbfr.txt ====
    
      PROGRAM RBLIST
      INTEGER     GCHAR 
    
      INTEGER     CHAR  
      INTEGER     CHMASK
      INTEGER     CR, LF
      INTEGER     CRLF  
      INTEGER     BLANK, PERIOD 
      INTEGER     BLANKS, DASHES, COLONS, SLASHS
      INTEGER     ACH, BCH, CCH, DCH, ECH, FCH  
      INTEGER     GCH, HCH, ICH, JCH, KCH, LCH  
      INTEGER     MCH, NCH, OCH, PCH, QCH, RCH  
      INTEGER     SCH, TCH, UCH, VCH, WCH, XCH  
      INTEGER     YCH, ZCH  
      INTEGER     LBRACE, RBRACE
      INTEGER     LBRACK, RBRACK
      INTEGER ICLP04
      COMMON      /CHARAC/ CHAR 
      COMMON      /CHARAC/ CHMASK   
      COMMON      /CHARAC/ CR, LF   

==== ercs07/emas-2900/slogosorg_stkdfain.txt ====
C     EDIT DATE   03DEC78  11:40
C     SOURCE FILE STKDEFA.IN
C     AUTHOR      A. J. HOWARD
      INTEGER     STK (20, 13)
C     COLUMN      ARRAY
C
C        1        NAMEX
C        2        SUBX
C        3        MODE
C        4        SUBXM
C        5        BIAS
C        6        SUBXB
C        7        LOCFLG
C        8        OSTACK
C        9        OPCODE
C        10       WFOP
C        11       WFOPND
C        12       SUBOP
C        13       WFSOP
      INTEGER     NAMEX (40)
      EQUIVALENCE (STK (1, 1), NAMEX (1))

==== ercs07/emas-2900/slogos_gencmbin.txt ====
C     EDIT DATE   09OCT78  11:13
C     SOURCE FILE GENCMB.IN
C     AUTHOR      F. T. MICKEY
C     CLUSTER     X
      INTEGER GENRET
      INTEGER MODEX
      INTEGER RAWMDX
      INTEGER SPTR
C     GENER FUNCTIONS
      INTEGER TSTSTK    // TEST STACK
      INTEGER SWAP
      INTEGER TOPDP     // CONVERT (TOPX) TO DP
      INTEGER NEXTDP    // CONVERT (NEXTX) TO DP
      INTEGER TOPSP     // CONVERT (TOPX) TO SP
      INTEGER NEXTSP    // CONVERT (NEXTX) TO SP
      INTEGER SAVCAL    // SAVE ANY ACTIVE REGISTERS
      INTEGER OUT
      INTEGER GETSP     // GET STACK POINTER
      INTEGER SMODEX    // SET MODEX
      INTEGER SETX
I     INTEGER ICLP02

==== ercs07/emas-2900/slinkf_memoryfr.txt ====
    
      BLOCK DATA
    
      INTEGER     MEMORY (4096) 
      INTEGER     MEMX  
      INTEGER     MEMLOC
      INTEGER     ROM (64)  
      INTEGER     ONEK, ENDK
      COMMON      /MEMORY/ MEMORY   
      COMMON      /MEMORY/ MEMX 
      COMMON      /MEMORY/ MEMLOC   
      COMMON      /MEMORY/ ROM  
      COMMON      /MEMORY/ ONEK, ENDK   
      DATA     MEMORY /4096*0/  
      DATA     ROM    /64*0/
      END   

==== ercs07/emas-2900/slogof_setllffr.txt ====
 
      SUBROUTINE  SETLL 
 
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG 
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV 
      INTEGER     NEXT,   NUMBER, I,      IOTYPE 
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE 
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP 
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT 
      INTEGER ICLP05 
      LOGICAL     ENDOK,CONEND 
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG 
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV 
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE 
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N 
      COMMON   /LOGOS/  PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE 

==== ercs07/emas-2900/npc1_errors.txt ====
   1 :  The digit sequence is invalid: an unsigned number is badly
        formed.
   2 :  A string-quote was expected: a string is not permitted to
        extend over more than one physical line.
   3 :  One or more characters were expected: an empty string is
        not permitted.
   4 :  A token-separator (comment, space, or line-separator) is
        required between numbers and word-symbols.


   6 :  The base of a based-number must lie in the range
        2 to 16.
   7 :  The octal constant does not specify a character value.

   8 :  A string-quote must follow an '&' in a multi-element
        string constant.
   9 :  A '\' in a string must be followed by an 'n', 't', 'b',
        'r', 'f' or octal denotation of a character value.
  10 :  An identifier symbol was expected.

  11 :  An integer-constant was expected.

==== ercs07/emas-2900/slogosorg_lsdatafs.txt ====
'HEAD'  DATA FOR LIST OUTPUT
C     EDIT DATE   17AUG78  12:40
C     SOURCE FILE LSDATAJHP.FS
C     AUTHOR      J.H.PERINE
      'OUTFILE' LSDATAJHP.FR
      BLOCK DATA
      'INCLUDE' LSDATAJHP.IN,P
      'INCLUDE' LSOBJJHP.IN,P
      END
      'OUTFILE' OBDATAJHP.FR
      BLOCK DATA
      'INCLUDE' OBDATAJHP.IN,P
      'INCLUDE' LSOBJJHP.IN,
      END



==== ercs07/emas-2900/pffiles_diags.txt ====
{17/10/85 - delete FlowPoint					}

procedure ISerialise(Id: IdEntry);
  extern;

procedure TSerialise(Typ: TypEntry);
  extern;

procedure FileScope(BlockId: IdEntry);
  extern;

procedure FileStdTypes;
  extern;

==== ercs07/emas-2900/rel6_sup3.txt ====
!Modified    2/July/82   12.30



!********************** EXPORT LIST
              !
              !
%STRING(83) %FNSPEC ACCEPT INPUT
 %HALFINTEGERFNSPEC PROMPT FILE DEFIN{ITION} (%INTEGER DSNUM ,
                                          %HALFINTEGER ACTION,FILE TYPE,
                                          %INTEGERNAME    FD TABLE ADDR)


!********************** IMPORT LIST
              !
              !
%EXTERNALHALFINTEGERFNSPEC   OPEN FD       (%INTEGER     DSNUM , RECL,
                                            %HALFINTEGER ACCESS, FORM, STATUS,
                                            %HALFINTEGER ACCESS ROUTE, BLANKS,
                                            %INTEGERNAME   ADDR OF FD TABLE  ,
                                             %STRINGNAME   FULL FILENAME     )

==== ercs07/emas-2900/slogosorg_rgsavefs.txt ====
      'HEAD' REGISTER STACK MANAGEMENT
C     EDIT DATE   16NOV78  15:08
C     SOURCE FILE RGSAVEAPB.FS
C     AUTHOR      A.P.BUCHALTER
C     CLUSTER       20

C     ROUTINES TO SAVE REGISTER CONTENTS FOR OPTIMIZATION
C     DURING THE EVALUATION OF BOOLEAN EXPRESSIONS AND
C     CODE GENERATION OF ALTERNATIVE PATHS THROUGH CONDITIONALS
C     AT VARIOUS POINTS, THE CURRENT REGISTER CONTENTS AS STORED
C     IN THE ARRAYS ACADDR,ACTYPE,ACSUBS,ETC. WILL BE SAVED
C     IN A REGISTER STACK AREA.
C     TO ALLOW MORE REGISTER LEVELS TO BE SAVED, ONLY A SUBSET
C     OF THE REGISTERS WILL BE SAVED. NAMELY:
C        AREG- ALL 5 PARAMETERS
C        YREG- ONLY YREG OF FORM: 'LOC'X[0+K] OR 'SP'X[0]+K
C              ONLY THE THREE PARAMETERS 'MODE',X, AND K SAVED
C        CTS - ONLY CT REGISTERS OF FORM: 'LOC'0['SP'X+0]
C              ONLY X WILL BE SAVED
C     THEREFORE, 15 ITEMS WILL BE SAVED FOR EACH REGISTER LEVEL
C     EACH LEVEL IN REGSTK WILL BE ORGANIZED AS:

==== ercs07/emas-2900/npc2_progparams.txt ====
{

                          Module 25


                      Program Parameters





 Pascal contains provision for the exchange of information  between
 a program and its run time environment by means of program parame-
 ters.  In  practice  most  implementations  (including  the  model
 implementation) provide only a skeleton frame work which is suffi-
 cient to map actual data files onto their respective program  file
 variables.   The  P-machine  contains a special P-code to enable a
 mapping  between  a  named  program  parameter  variable   and   a
 corresponding   external entity to be established.  No restriction
 on the parameter type is enforced but the P-code operates  on  the
 assumption that the entities involved are data files.

==== ercs07/emas-2900/slogof_peekfofr.txt ====
    
      SUBROUTINE  PEEKFO
    
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      INTEGER     NEXT,   NUMBER, I,      IOTYPE
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT
      INTEGER ICLP05
      LOGICAL     ENDOK,CONEND  
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG   
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG  
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV  
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE  
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N   
      COMMON   /LOGOS/  PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE  

==== ercs07/emas-2900/slinksorg_qdataxin.txt ====
C     EDIT DATE   04MAY78  20:21
C     SOURCE FILE QDATAXGAK.IN
C     AUTHOR      GARY A. KUDIS
C     CLUSTER     0.07
      INTEGER     CMQUES (10)
      INTEGER     OBQUES (10)
      INTEGER     MPQUES (10)
      INTEGER     ANSWER (10)


==== ercs07/emas-2900/npc2_stdprocs.txt ====
{

                          MODULE 22


                   The Standard Procedures





 This chapter contains the code generation procedures for the stan-
 dard input/output procedures, for pack and unpack, and for new and
 dispose.  The remaining arithmetic functions  are  implemented  by
 dedicated P-codes.

 21.1  File Selection

 All input/output operations are performed with respect to an argu-
 ment  file  'selected'  as  appropriate  from Input, Output or the
 standard procedure parameter list.  Details of the  selected  file

==== ercs07/emas-2900/slogof_gencdafr.txt ====
 
      BLOCK DATA 
 
      INTEGER GENRET 
      INTEGER MODEX 
      INTEGER RAWMDX 
      INTEGER SPTR 
      INTEGER TSTSTK 
      INTEGER SWAP 
      INTEGER TOPDP 
      INTEGER NEXTDP 
      INTEGER TOPSP 
      INTEGER NEXTSP 
      INTEGER SAVCAL 
      INTEGER OUT 
      INTEGER GETSP 
      INTEGER SMODEX 
      INTEGER SETX 
      INTEGER ICLP02 
      COMMON   /GENC/   GENRET 
      COMMON   /GENC/   MODEX 

==== ercs07/emas-2900/rel5_code25.txt ====
!* MODIFIED 07/07/82
!{2900C}%CONSTINTEGER W1=2;! 1 PERQ  2 EMAS
!{2900C}%CONSTINTEGER W2=4
!{2900C}%CONSTINTEGER W3=6
!{2900C}%CONSTINTEGER W4=8
!{2900C}%CONSTINTEGER W6=12
!{2900C}%CONSTINTEGER W8=16
!{2900C}%CONSTINTEGER W66=132
{PERQC}%CONSTINTEGER W1=1
{PERQC}%CONSTINTEGER W2=2
{PERQC}%CONSTINTEGER W3=3
{PERQC}%CONSTINTEGER W4=4
{PERQC}%CONSTINTEGER W6=6
{PERQC}%CONSTINTEGER W8=8
{PERQC}%CONSTINTEGER W66=66
%OWNINTEGER TRACETEMP
!*************  IMP80 version  ******************
!*
!***********************************************************************
!%INCLUDE "ERCS06.PERQ_TRIADOPS"                                        ;
!***********************************************************************

==== ercs07/emas-2900/npc2_expeval.txt ====

{

                          MODULE 18


                    Expression Evaluation





 This chapter defines the procedures used to construct the tree  of
 stack nodes that represents an expression evaluation.

 17.1  Primary Operands

 The primary operands in expression trees are

 (a)  variable values obtained from variable accesses, and


==== ercs07/emas-2900/inpds_prtcomin.txt ====
C     EDIT DATE   11DEC78  15:55
C     SOURCE FILE   PRTCOMFTM.IN
C     AUTHOR        F. T. MICKEY
C     CLUSTER       X
      INTEGER  LBUF (66)
      INTEGER  LCOUNT
      INTEGER  PGECNT
      INTEGER  UHEAD (15)
      INTEGER  CHEAD (8)
      COMMON   /PRT/    LBUF
      COMMON   /PRT/    LCOUNT
      COMMON   /PRT/    PGECNT
      COMMON   /PRT/    UHEAD
      COMMON   /PRT/    CHEAD


==== ercs07/emas-2900/strans_stiofs.txt ====
'HEAD'  INPUT/OUTPUT PRIMITIVES
C     EDIT DATE   15JAN79  08:35
C     SOURCE FILE STIO.FS
C     AUTHOR      F. T. MICKEY
C     CLUSTER     1
      'OUTFILE' REMARKFTM.FR
      SUBROUTINE REMARK (STRING)
      'INCLUDE' STRAN.IN,
      INTEGER STRING (66)
      INTEGER TS, GCHAR
      'DOLOOP' I = 1, 4
         CALL PCHAR (BUF, I, AST)
         'END'
      'DOLOOP' I = 5, 80
         TS = GCHAR (STRING, I-4)
         'IF' (TS .NE. PERIOD)
            CALL PCHAR (BUF, I, TS)
            'END'
         'ENDIF'
      CALL PCHAR (BUF, I, EOL)
      CALL WRLIN (TTOCHN, BUF, I)

==== ercs07/emas-2900/slogof_objectfr.txt ====
    
      SUBROUTINE  PNCHO 
    
      INTEGER  AREAID (15), BCARD (41)  
      INTEGER  RWORD1, RWORD2, RWORD3, RWORD (3)
      INTEGER  BTYPE
      INTEGER  EXTDX, ERRFLG
      INTEGER  NEWLCI   
      INTEGER  OFFSET, OW   
      INTEGER  RBITS, RCT   
      INTEGER  TWI  
      INTEGER  WF   
      COMMON   /OBJCOM/ AREAID, BCARD, RWORD
      COMMON   /OBJCOM/ BTYPE   
      COMMON   /OBJCOM/ EXTDX   
      COMMON   /OBJCOM/ OFFSET, OW  
      COMMON   /OBJCOM/ RBITS   
      COMMON   /OBJCOM/ TWI 
      COMMON   /OBJCOM/ WF  
      EQUIVALENCE (RWORD1, RWORD (1))   
      EQUIVALENCE (RWORD2, RWORD (2))   

==== ercs07/emas-2900/diags2.txt ====
{

 History
 -------

 17/10/85 - move procs. FlowPoint, FileAType, FileId, InitDiagnostics &
	    EndDiagnostics to module 29;
            new include file dump.pf.

                                                                     }
{



                           MODULE 7
 
 
                    Postmortem Diagnostics
 
 
 

==== ercs07/emas-2900/culhamsce_libulws.txt ====
%BEGIN
%CONTROL 0
!    PROGRAM TO PRODUCE THE WEEKLY BULLETIN OUTPUT FROM A SINGLE
!    WEEK'S BULLETIN FILE ONLY.
!
%INTEGER BLUNIT                        ;! BULLETIN I/P LOGICAL UNIT NO
%INTEGER BLNK                          ;! BLANK WORD
%INTEGER BLOCK                         ;! CURRENT BLOCK NUMBER
%INTEGER CDTYPE                        ;! INPUT CARD TYPE               00000750
%INTEGER CHECK                         ;! CHECKING INDICATOR
%INTEGER CNT                           ;! INPUT CARD COUNT              00000850
%INTEGER DIAGNS                        ;! DIAGNOSTIC PRINT INDICATOR    00000830
%INTEGER DNUM                          ;! DIAGNOSTIC PRINT VARIABLE     00000860
%INTEGER ENDAUT                        ;! AUTHOR S/NAME TERMINATOR
%INTEGER I                             ;! LOOP VARIABLE
%INTEGER IC                            ;! POINTER TO CONCORDANCE
%INTEGER IN                            ;! POINTER TO NUMBER,POINTF
%INTEGER J                             ;! LOOP VARIABLE                 00001450
%INTEGER LIM                           ;! LOOP LIMIT                    00001650
%INTEGER LSUNIT                        ;! LISTING DEVICE LUN
%INTEGER MAXC                          ;! NUMBER OF CONCORDED ITEMS     00001350

==== ercs07/emas-2900/sforf_sttest.txt ====

CLEAR
COPY SFORF_BLOB,BLOB
COPY SFORF_INCLUD,INCLUD
COPY SFORF_STEST,STEST
RUN STRANF
STEST
SEND BLOB
SEND INCLUD
SEND STEST
SEND LPT
SEND STESTC
SEND STEST1FR
SEND STEST2FR
SEND BLOBFR

==== ercs07/emas-2900/qfiles5apr_f77intrin1.txt ====
module f77intrin;
exports

imports complexfunctions from complexfunctions;

exception R2LOvrFlow(Arg : Real);
{-----------------------------------------------------------------------------
{
{ Abstract:
{       R2LOvrFlow is raised when RoundLong or TruncLong is called with Arg
{       exceeding the range for Longs (-2147483648 .. +2147483647).
{       You may resume from this exception in which
{       case RoundLong or TruncLong returns -2147483648 or +2147483647.
{
{ Parameters:
{       Arg - Argument of RoundLong or TruncLong.
{
{-----------------------------------------------------------------------------}

function floatlong(arg:long):real;
function trunclong(arg:real):long;

==== ercs07/emas-2900/qfiles5apr_f77intrin2.txt ====
module f77intrin;
exports

imports complexfunctions from complexfunctions;

exception R2LOvrFlow(Arg : Real);
{-----------------------------------------------------------------------------
{
{ Abstract:
{       R2LOvrFlow is raised when RoundLong or TruncLong is called with Arg
{       exceeding the range for Longs (-2147483648 .. +2147483647).
{       You may resume from this exception in which
{       case RoundLong or TruncLong returns -2147483648 or +2147483647.
{
{ Parameters:
{       Arg - Argument of RoundLong or TruncLong.
{
{-----------------------------------------------------------------------------}

function floatlong(arg:long):real;
function trunclong(arg:real):long;

==== ercs07/emas-2900/slogof_objcomfr.txt ====
      BLOCK DATA
C     EDIT DATE   19AUG78  08:07
C     SOURCE FILE OBJECTAJH.IN
C     AUTHOR      A. J. HOWARD
C     CLUSTER     90
      INTEGER  AREAID (15), BCARD (41)
      INTEGER  RWORD1, RWORD2, RWORD3, RWORD (3)
      INTEGER  BTYPE
      INTEGER  EXTDX, ERRFLG
      INTEGER  NEWLCI
      INTEGER  OFFSET, OW
      INTEGER  RBITS, RCT
      INTEGER  TWI
      INTEGER  WF
      COMMON   /OBJCOM/ AREAID, BCARD, RWORD
      COMMON   /OBJCOM/ BTYPE
      COMMON   /OBJCOM/ EXTDX
      COMMON   /OBJCOM/ OFFSET, OW
      COMMON   /OBJCOM/ RBITS
      COMMON   /OBJCOM/ TWI
      COMMON   /OBJCOM/ WF

==== ercs07/emas-2900/lpds_tst12blrb.txt ====
TE
ST
12
B
SY
0:
TE
ST
12
B.
LO
S
16
-F
EB
-7
9
14
:1
3:
53

==== ercs07/emas-2900/pffiles_semantics.txt ====
procedure SemanticError(Code: Scalar);
  extern;

procedure StartList(var List: IdList);
  extern;

procedure AppendId(var List: IdList; var Id: IdEntry);
  extern;

procedure ForAll(List: IdList; procedure Action(Id: IdEntry));
  extern;

procedure DsposeList(List: IdList);
  extern;

procedure StartSet(var s: IdSet);
  extern;

function InSet(s: IdSet; Id: IdEntry): Boolean;
  extern;


==== ercs07/emas-2900/slogosorg_symbolin.txt ====
C     EDIT DATE   10MAR78  03:57
C     SOURCE FILE SYMBOLFTM.IN
C     AUTHOR      F. T. MICKEY
C     CLUSTER     120.X
      INTEGER  SYMTBL (65)
      COMMON   /SYMB/   SYMTBL




==== ercs07/emas-2900/qdums_f77idiag.txt ====
module f77idiag;

exports

imports filedefs from filedefs;
imports f77init from f77init;

procedure dummyidiag;
procedure qidiag(lp,gp,acb,adiags:fsbit32; ddisp,mode,diag,asize,first:long;
                  var newacb:long);
                  
private
procedure dummyidiag;
begin
end;

procedure qidiag;
begin
writeln(curout^,'entering dummy qidiag');
end.

==== ercs07/emas-2900/sforf_parsef.txt ====
      SUBROUTINE PARSE
      INTEGER  INPTR
      INTEGER  OUTPTR
      INTEGER  INMAX
      INTEGER  MAXTAB
      INTEGER  MAXLIN
      INTEGER  IFMAX
      INTEGER  MAXLEV
      INTEGER  LINENO
      INTEGER  PAGE
      INTEGER  CLINE
      INTEGER  TLIMIT
      INTEGER  LN
      INTEGER  I, J, K
      INTEGER  II, JJ, KK
      INTEGER  LEXVAL
      INTEGER  SLEN
      INTEGER  LEVEL
      INTEGER  LEN
      INTEGER  INCHAN
      INTEGER  OUTCHN

==== ercs07/emas-2900/strans_utilsffs.txt ====
'HEAD'  GENERAL UTILITIES
C     EDIT DATE 18JUN79
C     SOURCE FILE UTILSFFS
C     AUTHOR    B. P. ADLEY
C     CLUSTER     28
      'OUTFILE' GCHAR.FR
      INTEGER FUNCTION GCHAR(BUF,INDEX)
      INTEGER BUF(1),INDEX
      INTEGER SHIFT(4),MASK(4),IPOS
      DATA  MASK/ZFF000000,Z00FF0000,Z0000FF00,Z000000FF/
      DATA SHIFT/      -24,      -16,       -8,        0/
      I=ISHFT(INDEX+3,-2)

      IPOS=IAND(INDEX-1,3)+1
      GCHAR=ISHFT(IAND(BUF(I),MASK(IPOS)),SHIFT(IPOS))
      RETURN
      END
C
C
C
      'OUTFILE' PCHAR.FR

==== ercs07/emas-2900/pptboot_mmulta.txt ====

==== ercs07/emas-2900/perqsrce_modpatch.txt ====
program modpatch;


imports        Perq_string from Perq_string;
imports        Fileutils from Fileutils;
imports        Filesystem from Filesystem;
imports        Code from Code;
imports        filetypes from filetypes;
        
        
label 10,11,20,30,40,90,99,100,101,900,905,910,912,915,920,925,930,935,940,942,
      945,950,960,990,999;
      
type dbleword=record msw,lsw:integer end;
     altrec=record
            oval,disp,blkno:integer;
            nval:array[0..17] of integer
            end;
            
var cfile,lfile:text;
    cline,cname,lname,mname,segname,fullname,tname,nostr,extname,savename:string;

==== ercs07/emas-2900/slogos_code1fin.txt ====
C     EDIT DATE   28AUG78  19:40
C     SOURCE FILE CODE1FTM.IN
C     AUTHOR      F. T. MICKEY
C     CLUSTER     X

      INTEGER     WOPTR,  WO (64), TLI,     TL (128)
      INTEGER     BO,     SS,      SS2,     NRFCH
      COMMON      /SCR1/  WOPTR,   WO,      TLI,    TL
      COMMON      /SCR1/  BO,      SS,      SS2,    NRFCH



==== ercs07/emas-2900/strans_emasiafr.txt ====
    
      SUBROUTINE OPENF(CHAN,FILE,ERROR) 
      INTEGER CHAN,FILE(1),ERROR
      INTEGER STRING(10)
      INTEGER CHARF,CHART,COMMA,ZERO,BLANK  
      INTEGER SUCESS,GCHAR  
      DATA CHARF,CHART,COMMA,ZERO,BLANK/70,84,44,48,32/ 
      DATA STRING/10*0/ 
      ERROR=1   
      IF(CHAN.GT.99.OR.CHAN.LE.0)GOTO 30
      CALL PCHAR(STRING,1,CHARF)
      CALL PCHAR(STRING,2,CHART)
      CALL PCHAR(STRING,3,CHAN/10+ZERO) 
      CALL PCHAR(STRING,4,MOD(CHAN,10)+ZERO)
      CALL PCHAR(STRING,5,COMMA)
      DO 10 IK=1,32 
      I=GCHAR(FILE,IK)  
      IF(I.EQ.0.OR.I.EQ.32)GOTO 20  
      CALL PCHAR(STRING,IK+5,I) 
   10 CONTINUE  
      GOTO 30   

==== ercs07/emas-2900/strans_xstrani.txt ====

%EXTERNALROUTINE XSTRAN(%STRING(63) S)
%EXTERNALROUTINESPEC DEFINE(%STRING(63) SA)
%EXTERNALROUTINESPEC COPY(%STRING(63) SB)
%EXTERNALROUTINESPEC FORTE(%STRING(63) SD)
%EXTERNALROUTINESPEC DESTROY(%STRING(63) SE)
%EXTERNALROUTINESPEC CLEAR(%STRING(63) SF)
%EXTERNALROUTINESPEC SEND(%STRING(63) SG)
%EXTERNALROUTINESPEC CLOSEF(%INTEGERNAME PX)
%EXTERNALROUTINESPEC INIT
%EXTERNALROUTINESPEC PARSE
%EXTERNALROUTINESPEC TERM
%ROUTINESPEC ANALYSE (%STRING(20) XA,XB,XC,XD)
%STRING(20) A,B,C,D,NULL
%STRING(20) STRANPD,STRANMBR,FORTPD
%STRING(20) OBJECTPD,BASENAME,PARMS,FORLIST
%STRING(80) SIN
%INTEGER I,ERROR,NL,FPARM
      %ON %EVENT 9 %START
         SELECTINPUT(0)
         CLOSESTREAM(20)

==== ercs07/emas-2900/inpds_ssnamein.txt ====
      INTEGER     SCR1 (6), SCR2 (6)
N     DATA  SCR1     /'LOGOS.S1    '/
N     DATA  SCR2     /'LOGOS.S2    '/
P     DATA  SCR1     /'SY:LOGOS.S1 '/
P     DATA  SCR2     /'SY:LOGOS.S2 '/


==== ercs07/emas-2900/psclsce2012_ctsup12.txt ====
! MODIFIED 05/11/81 -  VERSION 20.12
! PDEFINE ALTERED SO THAT MORE THAN ONE EMAS FILE CAN BE
! ASSOCIATED WITH THE SAME PASCAL FILE.
! OPEH, PDIAGS ADJUSTED TO MAKE CODE REENTRANT
!
!**********************************************************************
!*
!*                         P A S C A L
!*
!*                COMPILER ENVIRONMENT ROUTINES
!*
!**********************************************************************
!
!
!**********************************************************************
!*
!*                            CONSTANTS
!*
!**********************************************************************
!
%CONSTINTEGER SEGMENTK=256,SEGMENT=262144

==== ercs07/emas-2900/except1.txt ====
PROGRAM EXCEPT1;
imports system from system;
imports except from except;
var i:integer;
handler divzero;
begin
writeln('division by zero');
raise exitprogram;
end;
begin
writeln('hello');
i:=10 div 0;
writeln('bye');
end.

==== ercs07/emas-2900/slinkf_maklibfr.txt ====
    
      PROGRAM MAKLIB
      INTEGER     STFILE (16), ENFILE (16)  
      INTEGER     LSTART, LSTOP, ERROR  
      DATA        STFILE /'LI','BS','TR','TZ','OB', 11*0/   
      DATA        ENFILE /'LI','BE','ND','ZO','B ',   11*0/ 
      DATA        LSTART  /0/   
      DATA        LSTOP   /0/   
      CALL PCHAR  (LSTART, 1, 19)   
      CALL PCHAR  (LSTOP,  1, 20)   
      CALL OPENN  (1, STFILE, ERROR)
      CALL WRSEQ  (1, LSTART, 2)
      CALL CLOSF  (1, ERROR)
      CALL OPENN  (1, ENFILE, ERROR)
      CALL WRSEQ  (1, LSTOP, 2) 
      CALL CLOSF  (1, ERROR)
      STOP  
      END   

==== ercs07/emas-2900/pcfiles_datareps4.txt ====
{

 History
 -------

 17/10/85 - Many changes: byte and half-word alignment for record
            fields allocated by AllocateLevel, canonical representation
            for set-types, AdjustRepresentationFor for ICL sub-types,
            CheckRepresentation for ICL cast variables, field allocation
            for record default variants, removal of redunant procedures
            and variables. (agh)
 17/10/85 - Outdated documentation removed. Reformatted. (agh)
 21/10/85 - Remove redundant procedure AugmentSchema. (agh)
 22/10/85 - Remove AugmentRepresentationFor and associated calls.
            Remove dependency on envelope.pf. (agh)
 24/10/85 - Correct storage allocation for arrays to handle arrays of
            char.
 20/11/85 - Fix bug to ensure unpacked record fields are correctly
            aligned. (agh)
 22/11/85 - Modify set and subrange representation logic to handle
            base and host-types that are word-types. (agh) 

==== ercs07/emas-2900/strans_stranin.txt ====
      INTEGER  INPTR
      INTEGER  OUTPTR
      INTEGER  INMAX
      INTEGER  MAXTAB
      INTEGER  MAXLIN
      INTEGER  IFMAX
      INTEGER  MAXLEV
      INTEGER  LINENO
      INTEGER  PAGE
      INTEGER  CLINE
      INTEGER  TLIMIT
      INTEGER  LN
      INTEGER  I, J, K
      INTEGER  II, JJ, KK
      INTEGER  LEXVAL
      INTEGER  SLEN
      INTEGER  LEVEL
      INTEGER  LEN
      INTEGER  INCHAN
      INTEGER  OUTCHN
      INTEGER  LPTCHN

==== ercs07/emas-2900/rel6_fmt7.txt ====
!PFMTQ4 IS EQUIVALENT TO F77FMT1 ON PERQ
!
!*     RUNCOMP=0 FOR COMPILE TIME FORMAT
!*     RUNCOMP=1 FOR RUN TIME FORMAT

!*                                                                      FORMATCD
!*

%EXTERNALINTEGERFN FORMATCD(%INTEGER INSTART,DISP,ARYADR,INLEN,OUTLEN,  
    LEVEL,RUNCOMP, %INTEGERNAME TABLEN, ACTFMTLEN)
!*
!*
%SWITCH SW(0 : 122)
%HALFINTEGER PTR, CODE, BRACK, FLAG, I, CHAR, BOTHZERO
%HALFINTEGER NXTCHAR, OUTPTR, FMTPTR, TEXTPTR, HOLLEN, QUOTE CNT,ITEMPTR
%HALFINTEGER COPYCODE, ERR,LINELEN
%INTEGER LARGESTINT, COUNT, NUMBER,FMTAD,INLENGTH
%HALFINTEGER NOCOMMA, J, K,COMMAREQD
%HALFINTEGERARRAY LOOP(0 : 8)
%BYTEINTEGERARRAYNAME FORMAT
%BYTEINTEGERARRAYFORMAT AF(0 : 1320)

==== ercs07/emas-2900/slogof_crdatafr.txt ====
    
      BLOCK DATA
    
      INTEGER  GROUP1   
      INTEGER  IMPLID   
      INTEGER  NGROUP   
      INTEGER  NIMPLI   
      INTEGER  NOTHER   
      INTEGER  NRELTI   
      INTEGER  OTHERS   
      INTEGER  RELTIV   
      INTEGER  STAX 
      INTEGER  CSOW 
      INTEGER  CSWFA
      INTEGER  CSOFF
      INTEGER  CSNLX
      INTEGER  CSWFB
      COMMON   /CRUCH/  GROUP1 (24) 
      COMMON   /CRUCH/  IMPLID (75) 
      COMMON   /CRUCH/  NGROUP  
      COMMON   /CRUCH/  NIMPLI  

==== ercs07/emas-2900/geneva_spascal.txt ====
PROGRAM PASCALS(INPUT,OUTPUT);        (*$U+,T-,P-*)
(*AUTHOR: N.WIRTH, E.T.H. CH-8092 ZURICH, 1.3.76*)
(*MODIFIED: L.ZAFFALON, CUI, GENEVE, 31.7.80*)
LABEL 99;
CONST NKW = 29;     (*NO. OF KEY WORDS*)
    ALNG =  12;     (*NO. OF SIGNIFICANT CHARS IN IDENTIFIERS*)
    LLNG = 81;     (*INPUT ,LINE LENGTH*)
    EMAX = 38;     (*MAX EXPONENT OF REAL NUMBERS*)
    EMIN =-38;     (*MIN EXPONENT*)
    KMAX =  12;     (*MAX NO. OF SIGNIFICANT DIGITS*)
    TMAX = 100;     (*SIZE OF TABLE*)
    BMAX =  20;     (*SIZE OF BLOCK-TABLE*)
    AMAX =  30;     (*SIZE OF ARRAY-TABLE*)
    C2MAX = 20;     (*SIZE OF REAL CONSTANT TABLE*)
    CSMAX = 30;     (*MAX NO. OF CASES*)
    CMAX = 850;     (*SIZE OF CODE*)
    LMAX =   7;     (*MAXIMUM LEVEL*)
    SMAX = 600;     (*SIZE OF STRING-TABLE*)
    ERMAX = 58;     (*MAX ERROR NO.*)
    OMAX =  63;     (*HIGHEST ORDER CODE*)
    XMAX = 32767;  (*2**15 - 1*)

==== ercs07/emas-2900/slinksorg_errdfnin.txt ====
C     EDIT DATE   13MAY78  06:49
C     SOURCE FILE ERRDFNGAK.IN
C     AUTHOR      GARY A. KUDIS
C     ERROR MESSAGE DEFINTION TABLE
      INTEGER     EPROC (20)
      INTEGER     ECOUNT (20)
      INTEGER     ELIMIT (20)
      INTEGER     EMSG (200)
      INTEGER     EMSG1(10),EMSG2(10),EMSG3(10),EMSG4(10)
      INTEGER     EMSG5(10),EMSG6(10),EMSG7(10),EMSG8(10)
      INTEGER     EMSG9(10),EMSG10(10),EMSG11(10),EMSG12(10)
      INTEGER     EMSG13(10),EMSG14(10),EMSG15(10),EMSG16(10)
      INTEGER     EMSG17(10),EMSG18(10),EMSG19(10),EMSG20(20)
      EQUIVALENCE (EMSG1,EMSG(1)),   (EMSG2,EMSG(11))
      EQUIVALENCE (EMSG3,EMSG(21)),  (EMSG4,EMSG(31))
      EQUIVALENCE (EMSG5,EMSG(41)),  (EMSG6,EMSG(51))
      EQUIVALENCE (EMSG7,EMSG(61)),  (EMSG8,EMSG(71))
      EQUIVALENCE (EMSG9,EMSG(81)),  (EMSG10,EMSG(91))
      EQUIVALENCE (EMSG11,EMSG(101)),(EMSG12,EMSG(111))
      EQUIVALENCE (EMSG13,EMSG(121)),(EMSG14,EMSG(131))
      EQUIVALENCE (EMSG15,EMSG(141)),(EMSG16,EMSG(151))

==== ercs07/emas-2900/except4.txt ====
program except4;
imports except from except;
var i:integer;
    str:string;
handler divzero;
begin
writeln('division by zero');
end;
handler all(es,er,pstart,pend:integer);
var i:integer;
begin
writeln('exception',er:4,' in ssn',es:6);
i:=pend-pstart;
writeln('no. of original params =',i:4);
if i<>0 then
  begin
  end;
end;
begin
writeln('hello');
i:=10 div 0;

==== ercs07/emas-2900/pt_extest1.txt ====
PROGRAM EXTEST(OUTPUT);
PROCEDURE EXFUNC(VAR OP:TEXT);EXTERN;
BEGIN
WRITELN('CALLING EXFUNC');
EXFUNC(OUTPUT)
END.

==== ercs07/emas-2900/slogosorg_nlnamein.txt ====
C     EDIT DATE   09DEC78  15:40
C     SOURCE FILE NLNAMEFTM.IN
C     AUTHOR      F. T. MICKEY
      INTEGER     NAME (9)
      COMMON      /NLNAME/ NAME





==== ercs07/emas-2900/slinks_initlzfs.txt ====
'HEAD'  LINKER, INITIALIZATION
C     EDIT DATE   11JAN79  09:33
C     SOURCE FILE INITLZGAK.FS
C     AUTHOR      GARY A. KUDIS
C     CLUSTER     2
      'OUTFILE' INITLZGAK.FR
      SUBROUTINE INITLZ
      'INCLUDE' BITDFNGAK.IN,
      'INCLUDE' IODEFNGAK.IN,
      'INCLUDE' IOFILEGAK.IN,
      'INCLUDE' NTABLEGAK.IN,
C INITLZ ::
X     WRITE (DBCHAN, 1)
X1    FORMAT (' ENTER INITLZ')
      BIT15 = ISHFT (BIT14,1)
      TYPBTS = BIT15 + BIT14 + BIT13
X     WRITE (DBCHAN, 2)
X2    FORMAT (' EXIT INITLZ')
      RETURN
      END


==== ercs07/emas-2900/pt_extest2.txt ====
PROGRAM EXTEST2(INPUT,OUTPUT);
PROCEDURE FUNC(VAR INPUT,OUTPUT:TEXT);
EXTERN;
BEGIN
WRITELN('CALLING FUNC');
FUNC(INPUT,OUTPUT)
END.

==== ercs07/emas-2900/pcfiles_progparam1.txt ====
{

 History
 -------

 04/11/85 - Delete outdated documentation. First 
            implementation. (agh)

                                                                     }
{

                          Module 25


                      Program Parameters



                                                                     }

program ProgParams;

==== ercs07/emas-2900/slogosorg_wflagsin.txt ====
C     EDIT DATE   15MAR78  14:02
C     SOURCE FILE    WFLAGSJHP.IN
C     AUTHOR      J.H.PERINE
C     PURPOSE  DEFINE WORD FLAGS
C     WF1      CONSTANT
C     WF2      SET LOCATION COUNTER VALUE
C     WF3      FLOWCHART END
C     WF4      ABSOLUTE CODE (NO ADDRESS)
C     WF5      RELOCATABLE CODE (1 BYTE ADDRESS)
C     WF6      ADDRESS OFFSET
C     WF7      NAME LIST INDEX
C     WF8      RELOCATABLE CODE (2 BYTE ADDRESS)
C     WF9      TRANSFER LIST ENTRY
C     WF10     SET LOCATION COUNTER NUMBER
C     WF11     NOT USED
C     WF12     NAME LIST INDEX, RIGHT HALF ADDR
C     WF13     NAME LIST INDEX, LEFT HALF ADDR
C     WF14     SET LOAD LOCATION COUNTER
C     WF15     SET LOAD LOCATION COUNTER VALUE
C     WF16     NEGATIVE OFFSET FROM NAME LIST
C     WF17     ADJUST LOCATION COUNTER

==== ercs07/emas-2900/slogosorg_flmsgain.txt ====
C     EDIT DATE   30AUG78  13:42
C     SOURCE FILE FLMSGAPB.IN
C     AUTHOR      A. P. BUCHALTER
C     CLUSTER     XX
      INTEGER     MSGS(16,100)
      INTEGER     MSG01(16,10)
      INTEGER     MSG11(16,10)
      INTEGER     MSG21(16,10)
      INTEGER     MSG31(16,10)
      INTEGER     MSG41(16,10)
      INTEGER     MSG51(16,10)
      INTEGER     MSG61(16,10)
      INTEGER     MSG71(16,10)
      INTEGER     MSG81(16,10)
      COMMON      /FLTMSG/ MSGS
      EQUIVALENCE (MSGS(1, 1),MSG01(1,1))
      EQUIVALENCE (MSGS(1,11),MSG11(1,1))
      EQUIVALENCE (MSGS(1,21),MSG21(1,1))
      EQUIVALENCE (MSGS(1,31),MSG31(1,1))
      EQUIVALENCE (MSGS(1,41),MSG41(1,1))
      EQUIVALENCE (MSGS(1,51),MSG51(1,1))

==== ercs07/emas-2900/buildpcl.txt ====
Bulding pascal compiler.
Undefined:
                         _iclp84
                         _iclp57
                         _iclp27
                         _iclp99
                          _iclp8
                         _iclp13
                         _iclp16
                         _iclp95
                         _iclp12
                         _iclp10
                         _iclp37
                         _iclp34
                         _iclp98
                         _iclp33
                         _iclp36
                         _iclp48
                         _iclp78
                          _pargv
                         _iclp35

==== ercs07/emas-2900/slogof_wfdatafr.txt ====
 
      BLOCK DATA 
 
      INTEGER  WF1,WF2,WF3,WF4,WF5,WF6,WF7,WF8,WF9,WF10,WF11,WF12,WF13,W
     1F14,WF15,WF16,WF17 
      INTEGER  ICLP16 
      COMMON   / WF / WF1,WF2,WF3,WF4,WF5,WF6,WF7,WF8,WF9,WF10,WF11,WF12
     1,WF13,WF14,WF15,WF16,WF17 
      COMMON   / WF / ICLP16 
 
      DATA  WF1   /  1 / 
      DATA  WF2   /  2 / 
      DATA  WF3   /  3 / 
      DATA  WF4   /  4 / 
      DATA  WF5   /  5 / 
      DATA  WF6   /  6 / 
      DATA  WF7   /  7 / 
      DATA  WF8   /  8 / 
      DATA  WF9   /  9 / 
      DATA  WF10  / 10 / 
      DATA  WF11  / 11 / 

==== ercs07/emas-2900/slogosorg_lsdatain.txt ====
C     EDIT DATE   17APR78  13:12
C     SOURCE FILE LSDATAJHP.IN
C     AUTHOR      J.H.PERINE
C     DECODE TABLES FOR LIST OUTPUT
      INTEGER  LINSTR (512)
      COMMON   /LSTD/   LINSTR




==== ercs07/emas-2900/sforf_fins.txt ====


INSERT  COPYLNY
INSERT  COPYTOY
INSERT  CPARENY
INSERT  CTYPEY
INSERT  DDUMPY
INSERT  EMASIFY
INSERT  ENDLINY
INSERT  ESPY
INSERT  ESTY
INSERT  GETCY
INSERT  GETLINY
INSERT  GETNUMY
INSERT  GETWRDY
INSERT  GOLNY
INSERT  IGNOREY
INSERT  INITOBY
INSERT  INITY
INSERT  LABGENY
INSERT  LEXY

==== ercs07/emas-2900/slinkf_lemasafr.txt ====
      SUBROUTINE OPENF(CHAN,FILE,ERROR) 
      INTEGER CHAN,FILE(1),ERROR 
      INTEGER STRING(10) 
      INTEGER CHARF,CHART,COMMA,ZERO,BLANK,CHARZ 
      INTEGER SUCESS,GCHAR,QQMOD 
      LOGICAL DFILE
      DATA CHARF,CHART,COMMA,ZERO,BLANK/70,84,44,48,32/ 
      DATA CHARZ/90/,DFILE/.FALSE./
      DATA STRING/10*0/ 
      DFILE=.FALSE.
      ERROR=1 
      IF(CHAN.GT.99.OR.CHAN.LE.0)GOTO 30 
      CALL PCHAR(STRING,1,CHARF) 
      CALL PCHAR(STRING,2,CHART) 
      CALL PCHAR(STRING,3,CHAN/10+ZERO) 
      CALL PCHAR(STRING,4,QQMOD(CHAN,10)+ZERO) 
      CALL PCHAR(STRING,5,COMMA) 
      DO 10 IK=1,32
      I=GCHAR(FILE,IK)
      IF(I.EQ.0.OR.I.EQ.32)GOTO 20 
      IF(I.EQ.CHARZ)DFILE=.TRUE.

==== ercs07/emas-2900/npcpf_pfparams.txt ====
procedure OpenProgParameterList;
  extern;

procedure AcceptProgParameter(ParamId: IdEntry);
  extern;

procedure ReturnProgParameter(ParamId: IdEntry);
  extern;

procedure ClsProgParameterList;
  extern;

==== ercs07/emas-2900/dsea20_ciedvsn20.txt ====
P+1
I/(*#T+,C0
%RANGECHECKS=YES
%CHARCODE=EBCDIC
*)
/
TC/HARDWARE/ P+1
I/      (* GENERAL, HARDWARE:- *)
/
-S/BITSINBYTE/(I/ /,T+1) I/ / T+1 P+1
-S/MAXWDIXINSEG/(I/ /,T+1) I/ / T+1 P+1
I/   NILDESC=?D FFFFFFFFFFFFFFFF;
   NILAD=0;
   ALFALENGTH=32;
   ALFA8LENGTH=8;
   LONGSTRINGLENGTH=64;
   BLANK=' ';
   BLANKALFA='                                ';
 
      (* GENERAL EDINBURGH DEFINITIONS:- *)
 

==== ercs07/emas-2900/pcfiles_pfcalls6.txt ====
{

 History
 -------

 12/09/85 - new include files impint.pf & eput.pf, amend procedures
	  - EnterProgram, EnterPfBody, ExitProgram, LeaveProcedure &
	  - LeaveFunction.
 17/10/85 - amend PassArrayBounds, PassCAPBounds, LoadActuals, 
            CallBlock.
 21/10/85 - reformatted. (agh)
 21/10/85 - removed calls to AugmentSchema from EnterPfBody.
            remove include text datareps.pas (agh)
 21/10/85 - modify body of PassArrayBounds to take account of 
            permanently packed character arrays. (agh)
 25/10/85 - Modify StackActualBlock and StackFormalBlock to
            record Parameter-Space. Simplify LoadActuals and
            CallBlock accordingly. (agh)
 28/10/85 - Restructure ActualList and conformant-array parameter
            passing to take account of positive and negative
            stacks. (agh)

==== ercs07/emas-2900/f77init1.txt ====
module f77init;

exports
imports filedefs from filedefs;
imports filesystem from filesystem;
imports memory from memory;

type buff84=packed array[1..84] of char;

procedure unsatref;
procedure initmain;
procedure INITGLA;
function iocp(ep,off,seg:integer):integer;
procedure stop;
procedure iwrite(val,place:long);
procedure newseg(var s:segmentnumber;fsize,fincr,fmax:mmextsize);
procedure extendseg(s:segmentnumber;fsize:mmextsize);
procedure decrefseg(s:segmentnumber);
procedure readblock(idfile,block:integer;buff:pdirblk);
procedure writeblock(idfile,block:integer;buff:pdirblk);
procedure closefile(idfile,blks,bits:integer);

==== ercs07/emas-2900/perqrel3_gen20.txt ====
!* MODIFIED 28/05/82
!*************  IMP80 version  ******************
!*
!{2900C}%CONSTINTEGER W2=4
{PERQC}%CONSTINTEGER W2=2
!*
!**** SYNTAX ****
!*
!* Syntax tables generated from file SYNTAX48 on 28/01/82 at 23.55.35
!*
%CONSTBYTEINTEGERARRAY OS(0:1500)=  %C                     
   0,   0,  34,   1,   1,   2,  25,   1,   1,   3,
  10,   7,   2,   3,  29,  61,   0,   1,   1,   0,
  13,   1,   0,   1,   3,  20,   4,   1,   2,   1,
   4,  17,   1,   1,   0,   1,   2,  20,   4,   1,
   1,   1,   3,  17,   0,   1,   2,  87,   0,   1,
   1,   0,   1,   3,  20,   5,   1,   2,   1,   4,
  17,   1,   1,   0,   1,   2,  20,   5,   1,   1,
   1,   3,  17,   0,   1,   2,   1,   3,  17,   1,
   1,   0,   1,   1,   1,   2,  17,   0,  20,   2,
   1,   1,   0,  20,   3,   1,   1,   0,  22,   1,

==== ercs07/emas-2900/slogof_ugenajfr.txt ====
 
      SUBROUTINE  UGEN 
 
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG 
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV 
      INTEGER     NEXT,   NUMBER, I,      IOTYPE 
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE 
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP 
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT 
      INTEGER ICLP05 
      LOGICAL     ENDOK,CONEND 
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG 
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV 
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE 
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N 
      COMMON   /LOGOS/  PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE 

==== ercs07/emas-2900/pt_dispose.txt ====
PROGRAM T6P6P5P3D4(OUTPUT);
TYPE
   REKORD = RECORD
             A : INTEGER;
             B : BOOLEAN
            END;
VAR
   PTR : REKORD;
BEGIN
   DISPOSE(PTR);
   WRITELN(' ERROR NOT DETECTED...6.6.5.3-4')
END.

==== ercs07/emas-2900/pcfiles_diags2.txt ====
{

 History
 -------

 17/10/85 - move procs. FlowPoint, FileAType, FileId, InitDiagnostics &
	    EndDiagnostics to module 29;
            new include file dump.pf.

                                                                     }
{



                           MODULE 7
 
 
                    Postmortem Diagnostics
 
 
 

==== ercs07/emas-2900/pascalprogs_numbers.txt ====
PROGRAM analysedata (input,output);
     {This program accepts a sequence of numbers, stores them,
      finds their maximum and sets up a horizontal scale for them
      it then goes on to do a bincount.}
CONST
  max = 5000;

TYPE
  onefive = (i,ii,iiv,v);  {1, 2, 2.5, 5}
  tentwenty = 10..20;
  datarray  = array[1..max]of real;
  datax = 0..max;    {an index into the data array}
  countarray = array[1..20] of integer;    {holds initial counts}

VAR
  data :datarray;
  ndata :0..max;

  binsize :onefive;
  binexp :integer;
  binnumber :tentwenty;

==== ercs07/emas-2900/f77init2.txt ====
module f77init;

exports
imports filedefs from filedefs;
imports filesystem from filesystem;
imports memory from memory;

type buff84=packed array[1..84] of char;

procedure unsatref;
procedure initmain;
procedure INITGLA;
function iocp(ep,off,seg:integer):integer;
procedure stop;
procedure iwrite(val,place:long);
procedure newseg(var s:segmentnumber;fsize,fincr,fmax:mmextsize);
procedure extendseg(s:segmentnumber;fsize:mmextsize);
procedure decrefseg(s:segmentnumber);
procedure readblock(idfile,block:integer;buff:pdirblk);
procedure writeblock(idfile,block:integer;buff:pdirblk);
procedure closefile(idfile,blks,bits:integer);

==== ercs07/emas-2900/pcfiles_impint9.txt ====
{17/10/85 - new routines elinestart, eprecall			}		{21/10/85 - new routine eprocref				}
{23/10/85 - additional parameters to paseprc & Eproc		}
{28/10/85 - new routine writename				}
{28/11/85 - make Namesaddr & Names external			}
{	  - remove param form call to Enextproc			}
{29.01.86 - call settrap from InitImp				}
{---------------------------------------------------------------}
{06/02/86 - new routines EcaseJump, EcaseEntry, EpRestore,	}
{	    EpDiscard, Estkrconst & EprocLevel				}

%externalinteger Namesaddr ; ! address of name table area
%owninteger Namesptr ;  ! index into first free location in name table area
%externalintegerarray Names(0:1000) ; ! Name table area

%externalroutine InitImp
%externalroutinespec settrap
settrap
Namesaddr=addr(Names(0))
Namesptr=0
%end


==== ercs07/emas-2900/rectestl.txt ====
program rectest;
type irec=record
          e2,e1:integer;
          e3:integer;
          e4:integer
         end;
     irecptr=^irec;
     crec=packed record
           b,a:char;
           c:char;
           d:char;
           d2,c2,b2,a2:char;
           end;
     crecptr=^crec;
     iptr=^integer;
     carr8=packed array[1..8] of char;
     carr8ptr=^carr8;
var rec1:irecptr;
    rec2:crecptr;
    abcd:carr8ptr;
    one,two,three,four:iptr;

==== ercs07/emas-2900/f77init3.txt ====
module f77init;

{ updated 21/3/82 - function openfile defined }

exports
imports filedefs from filedefs;
imports filesystem from filesystem;
imports fileutils from fileutils;
imports memory from memory;

type buff84=packed array[1..84] of char;

procedure unsatref;
procedure initmain;
procedure INITGLA;
function iocp(ep,off,seg:integer):integer;
procedure stop;
procedure iwrite(val,place:long);
procedure newseg(var s:segmentnumber;fsize,fincr,fmax:mmextsize);
procedure extendseg(s:segmentnumber;fsize:mmextsize);
procedure decrefseg(s:segmentnumber);

==== ercs07/emas-2900/slinks_pnamesin.txt ====
C     EDIT DATE   13MAY78  11:46
C     SOURCE FILE PNAMESGAK.IN
C     AUTHOR      GARY A. KUDIS
C     PRINT NAME LIST DATA STRUCTURES
      INTEGER     LIST (512)
      INTEGER     NAMES (512)
C     'LIST' IS USED BY 'SORT' ROUTINE TO BUILD AN ARRAY OF
C     SORTED INDEXES TO ITEMS IN NAME LIST TABLE (NTABLE).
C     'NAMES' CONTAINS POINTERS TO USED ENTRIES IN 'NTABLE'.
      INTEGER     NCOUNT
      INTEGER     LSTOP
      COMMON      /PNAMES/    LIST
      COMMON      /PNAMES/    NAMES
      COMMON      /PNAMES/    NCOUNT
      COMMON      /PNAMES/    LSTOP


==== ercs07/emas-2900/dsa20_lput.txt ====
%CONTROL X'0FFFFFFF'
!****************************************************
!*
!*  LPUT
!*
!*  EXTRACTED FROM EDINBURGH'S IMP MODULE FCSM10
!*  FOR USE IN BSV53/KSV17 PASCAL SYSTEM (PASCAL 20)
!*
!*  T.MOORE  FEB '80
!*
!****************************************************
!*
!*
%OWNINTEGER WRKAREA,TMPAREA                                             
%OWNINTEGER NULLOBJ;! 0  OBJECT FILE REQUIRED                                   
                   ! !  NO OBJECT FILE REQUIRED - DUMMY LPUT ACTIVITY           
%OWNINTEGER MAINEPSET                                                           
%OWNINTEGER LPUTERROR                                                           
%OWNSTRING(32) MAINEPNAME                                                       
!*                                                                              
!*                                                                              

==== ercs07/emas-2900/pt_syscall.txt ====
          PROGRAM DEMO;
          CONST MAGIC=402653440; (* =x'18000100' *)
          TYPE POINT7=^ALFA8;
          VAR P7:POINT7;
          PROCEDURE LIST(K:INTEGER;AD:POINT7);EXTERN;
          BEGIN
          NEW(P7);
          P7^:=' FILEC  ';
          P7^[1]:=CHR(5);
          LIST(MAGIC,P7);
          END.


==== ercs07/emas-2900/sforf_copytof.txt ====
      SUBROUTINE COPYTO (BUFOUT, OUTX, ICHAR)
      INTEGER  INPTR
      INTEGER  OUTPTR
      INTEGER  INMAX
      INTEGER  MAXTAB
      INTEGER  MAXLIN
      INTEGER  IFMAX
      INTEGER  MAXLEV
      INTEGER  LINENO
      INTEGER  PAGE
      INTEGER  CLINE
      INTEGER  TLIMIT
      INTEGER  LN
      INTEGER  I, J, K
      INTEGER  II, JJ, KK
      INTEGER  LEXVAL
      INTEGER  SLEN
      INTEGER  LEVEL
      INTEGER  LEN
      INTEGER  INCHAN
      INTEGER  OUTCHN

==== ercs07/emas-2900/qfiles5apr_f77anal2.txt ====
!* 23/03/82   
!*
!************  IMP80 version  ************
!*
%CONSTINTEGER TESTVERSION=1;!  0  NO   1  YES
%CONSTINTEGER DICTVERSION=0;!  0  EMAS   1  VME
!*
!{2900C} %CONSTINTEGER W1=2
!{2900C} %CONSTINTEGER W2=4
!{2900C} %CONSTINTEGER W4=8
!{2900C} %CONSTINTEGER W6=12
{PERQC} %CONSTINTEGER W1=1
{PERQC} %CONSTINTEGER W2=2
{PERQC} %CONSTINTEGER W4=4
{PERQC} %CONSTINTEGER W6=6
!*
!*
!**** SYNTAX ****
!*
!* Syntax tables generated from file SYNTAX48 on 11/03/82 at 06.51.27
!*

==== ercs07/emas-2900/pcfiles_globalsh.txt ====
{

 History
 -------

 11/09/85 - ecodes inserted, const MaxImpstr & type ImpStr defined, 
            field Adid inserted in RuntimeAddress & BlockLabel.
 23/09/85 - Pascal specific ecodes inserted.
 25/09/85 - PlabelId,GlaOffset,StatOffset,GSTOffset defined.
 07/10/85 - insert Ecodes LOADCAP & INDEXCAP.
 08/10/85 - modify IdRecord to fix variant access error. (agh)
 15/10/85 - add InputSpelling, OutputSpelling for file binding. (agh)
 16/10/85 - History tidied. (agh)
 16/10/85 - Value ForChar added to Repkind, TypeRepresentation
            simplified for ForSelector. CAPList removed and 
            StackOffset, ParamOffset re-typed to ByteRange in 
            FrameRecord. (agh)
 17/10/85 - declared LastFlowLine for diagnostics module. (agh)
 18/10/85 - declare FirstChoice for better error recovery. (agh)
 22/10/85 - simplify FrameRecord and ManualList for file
            initialisations. Delete ItemShapes. (agh)

==== ercs07/emas-2900/pptests_pptest10.txt ====



program pptest3;

  type
    pointer = ^arecord;
    arecord = record
                firstfield: integer;
                secondfield: integer;
                a: array [1 .. 10] of pointer;
                p: pointer
              end;
    bit = 0 .. 1;
    fourbits = packed
                 record
                   onebit: bit;
                   twobits: packed array [bit] of bit;
                   anotherbit: bit
                 end;


==== ercs07/emas-2900/pt_new.txt ====
PROGRAM T6P6P5P3D1(OUTPUT);
TYPE
   TWO      = (A,B);
   RECONE   = RECORD
               I : INTEGER;
               J : BOOLEAN
              END;
   RECTWO   = RECORD
               C : INTEGER;
               CASE TAGFIELD : TWO OF
                  A : (M : INTEGER);
                  B : (N : BOOLEAN)
              END;
   RECTHREE = RECORD
               C : INTEGER;
               CASE TAGFIELD : TWO OF
                  A : (CASE TAGFEELD : TWO OF
                           A : (O : REAL);
                           B : (P : CHAR));
                  B : (Q : INTEGER)
              END;

==== ercs07/emas-2900/qfiles5apr_f77anal3.txt ====
!* 25/03/82   
!*
!************  IMP80 version  ************
!*
%CONSTINTEGER TESTVERSION=1;!  0  NO   1  YES
%CONSTINTEGER DICTVERSION=0;!  0  EMAS   1  VME
!*
!{2900C} %CONSTINTEGER W1=2
!{2900C} %CONSTINTEGER W2=4
!{2900C} %CONSTINTEGER W4=8
!{2900C} %CONSTINTEGER W6=12
{PERQC} %CONSTINTEGER W1=1
{PERQC} %CONSTINTEGER W2=2
{PERQC} %CONSTINTEGER W4=4
{PERQC} %CONSTINTEGER W6=6
!*
!*
!**** SYNTAX ****
!*
!* Syntax tables generated from file SYNTAX48 on 11/03/82 at 06.51.27
!*

==== ercs07/emas-2900/pptests_pptest11.txt ====



program pptest11;

  label 1, 2;

  var
    b: boolean;
    i: integer;

  begin
  { if ... then ... else }
    if b
    then i := 0
    else
      if (i = 0) or (i = 1) then i := 2 else i := 3;

    { goto statements }
    1: i := 0;
    goto 2;

==== ercs07/emas-2900/slogof_pselajfr.txt ====
    
      SUBROUTINE  PSEL (SELECT, HEADER) 
    
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      INTEGER     NEXT,   NUMBER, I,      IOTYPE
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT
      INTEGER ICLP05
      LOGICAL     ENDOK,CONEND  
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG   
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG  
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV  
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE  
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N   
      COMMON   /LOGOS/  PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE  

==== ercs07/emas-2900/qfiles_aux5.txt ====
!* MODIFIED 08/04/82  02.00
!*
!              
!                         EXPORT LIST
!
!
%ROUTINESPEC F77 STOP(%HALFINTEGER PTYPE,%INTEGER VAL)
%ROUTINESPEC F77 PAUSE (%HALFINTEGER PTYPE,%INTEGER VAL)
%ROUTINESPEC F77 RTERR(%HALFINTEGER ERRNO)
%ROUTINESPEC F77 IOERR(%HALFINTEGER ERRNO)
%ROUTINESPEC F77 CONCAT(%INTEGER COUNT,%INTEGER ADRINDESCS,
OUTPUTBASE,%HALFINTEGER OUTPUTDISP,OUTPUTLEN)
%ROUTINESPEC F77COPY (%INTEGER SCE BASE,%HALFINTEGER SCE DISP,
SOURCE LEN,%INTEGER TARGET BASE,%HALFINTEGER TARGET DISP,TARGET LEN)
%INTEGERFNSPEC F77 INDEX (%INTEGER SEARCHBASE,
%HALFINTEGER SEARCHDISP,SEARCHLEN,%INTEGER KEYBASE,%HALFINTEGER KEYDISP,
KEYLEN)
%ROUTINESPEC F77 CMULTC(%INTEGER AD,%REAL R1,C1,R2,C2)
%ROUTINESPEC F77 CDIVC(%INTEGER AD,%REAL R1,C1,R2,C2)
%INTEGERFNSPEC F77 CXREL(%REAL R1,C1,R2,C2)
%INTEGERFNSPEC F77 CHREL(%HALFINTEGER OP,%INTEGER LBASE,

==== ercs07/emas-2900/pptests_pptest12.txt ====

program pptest12;

{ procedures/funcs }

  var i: integer;

  procedure p1;

    procedure p2;

      procedure p3;

        procedure p4;

          begin { p4 }  end;

        procedure p5;

          begin
            p5; { recursive call }

==== ercs07/emas-2900/lpds_defopklo.txt ====
''HEAD, DEFAULT OUTPUT PACKET
     // EDIT DATE   21AUG78  17:24
     // SOURCE FILE DEFOPKT.LO
     // AUTHOR      A. J. HOWARD
     DEF O PKT: [E.BUF],
     BUFFER SIZE: 72,
     DEF O PKT: DEF O PKT =
        'LOC' BUFFER,
        1,
        BUFFER SIZE,
        1,
        'LOC' TTY OUTPUT,
        0,
     BUFFER [BUFFER SIZE] =
        'FOR' BUFFER SIZE 'LBR' " " 'RBR'
 ;
 ;DEFAULT OUTPUT PACKET:
     .....
''END


==== ercs07/emas-2900/mixedsrce_strdefi.txt ====
%EXTERNALROUTINE PASSTR(%STRING(9) MESS,%INTEGER INT)
PRINTSTRING('ENTERING PASSTR')
NEWLINE
PRINTSTRING(MESS.'   ')
WRITE(INT,4)
NEWLINE
MESS='BYE'
%END
%ENDOFFILE

==== ercs07/emas-2900/slogof_movefr.txt ====
    
      SUBROUTINE MOVE (FROMB, TOB, COUNT)   
      INTEGER COUNT, FROMB (1), TOB (1), I  
      DO  13006 I = 1, COUNT
      TOB (I) = FROMB (I)   
13006 CONTINUE  
    
      RETURN
      END   
    

==== ercs07/emas-2900/culmoldsce_prbuls.txt ====
%BEGIN
!
!    ROUTINE TO TEST THE ROUTINE RDBUL AND THE CONCORDED FILE CREATED
!    BY THE BULLETIN OUTPUT ROUTINE WRBUL.
!
%ROUTINESPEC RDBUL (%INTEGERNAME UNIT,BLOCK,POSN,NO)
!
%INTEGERARRAY NUMBER (1:200)                     ;! JOURNAL NOS
!?? SHORT; %INTEGERARRAY CONC1,CONC2,CONC3(1:500) ;! CONCORDANCE ARRAYS
!?? SHORT; %INTEGERARRAY POINTF,POINTL(1:200)    ;! PTRS TO CONCORDANCE
!?? SHORT; %INTEGERARRAY IRDIRC (1:32)                 ;! REC DIRECTORY
%BYTEINTEGERARRAY IRTEXT (1:500)                 ;! RECORD TEXT
!
%INTEGER BLOCK                         ;! BLOCK CONTAINING REC
%INTEGER CHECK
%INTEGER I                             ;! LOOP VARIABLE
%INTEGER IC                            ;! CONCORDANCE POINTER
%INTEGER IND                           ;! RDBUL ENTRY NUMBER
%INTEGER J                             ;! LOOP VARIABLE
%INTEGER MAXC                          ;! NO OF ITEMS IN CONCORDANCE
%INTEGER MAXN                          ;! NO OF DIFFERENT JOURN NOS

==== ercs07/emas-2900/pptests_pptest13.txt ====





program pptest13;
{ procedure parameters }

  procedure p1
              (i1: integer; var j1: integer; procedure p2;
               function f1: integer;
               procedure p3(i2: integer; var j2: integer);
               function f2(i2: integer): integer);

    begin
      i1 := f1;
      j1 := f1;
      p2;
      p3(i1, j1);
      i1 := f2(f1)
    end { p1 };

==== ercs07/emas-2900/pptests_pptest14.txt ====



program pptest14(input, output);

  const
    one = 12;
    two = 'TWO';

  var
    ch: char;
    i: integer;
    x: real;
    b: boolean;
    name: packed array [1 .. 10] of char;

  begin
  { read, readln }
    read(ch);
    read(i);
    read(x);

==== ercs07/emas-2900/slogosorg_prtcomin.txt ====
C     EDIT DATE   11DEC78  15:55
C     SOURCE FILE   PRTCOMFTM.IN
C     AUTHOR        F. T. MICKEY
C     CLUSTER       X

      INTEGER  LBUF (66)
      INTEGER  LCOUNT
      INTEGER  PGECNT
      INTEGER  UHEAD (15)
      INTEGER  CHEAD (8)
      COMMON   /PRT/    LBUF
      COMMON   /PRT/    LCOUNT
      COMMON   /PRT/    PGECNT
      COMMON   /PRT/    UHEAD
      COMMON   /PRT/    CHEAD



==== ercs07/emas-2900/pptests_pptest15.txt ====


program pptest15(input, output, f);

  type coord = record x, y: real end;

  var
    t: text;
    f: file of coord;
    ch: char;
    i: integer;
    x: real;
    b: boolean;
    pt: coord;

  begin
  { reset , rewrite }
    reset(f);
    rewrite(f);
    reset(t);
    rewrite(t);

==== ercs07/emas-2900/rel4_anal24.txt ====
!* 26/06/82   
!*
!************  IMP80 version  ************
!*
%CONSTINTEGER TESTVERSION=1;!  0  NO   1  YES
%CONSTINTEGER DICTVERSION=0;!  0  EMAS   1  VME
!*
!{2900C} %CONSTINTEGER W1=2
!{2900C} %CONSTINTEGER W2=4
!{2900C} %CONSTINTEGER W4=8
!{2900C} %CONSTINTEGER W6=12
!{2900C} %CONSTINTEGER W8=16
{PERQC} %CONSTINTEGER W1=1
{PERQC} %CONSTINTEGER W2=2
{PERQC} %CONSTINTEGER W4=4
{PERQC} %CONSTINTEGER W6=6
{PERQC} %CONSTINTEGER W8=8
!*
!*
!**** SYNTAX ****
!*

==== ercs07/emas-2900/pptests_pptest16.txt ====



program ptest16;
{ test variable access }

  const
    bytelimit = 255;
    halflimit = 65535;

  type
    byte = 0 .. bytelimit;
    half = 0 .. halflimit;

  var
    b1,b2 : byte;
    h1,h2 : half;
    c1,c2 : char;
    bb1,bb2 : boolean;
    r1,r2 : real;
    i1,i2 : integer;

==== ercs07/emas-2900/simple_t1.txt ====
      J=7
      K=10-J
      L=-6+J
      J=0
      DO 10 I=1,10
      J=J+I*10
   10 CONTINUE
      WRITE(6,100)J
  100 FORMAT(1H ,I6)
      END

==== ercs07/emas-2900/psclsce2010_pscltxt205.txt ====

PASCAL on EMAS
--------------

CONTENTS

1.  INTRODUCTION

2.  COMPILATION
2.1 Compilation Options
2.2 Compilation Listings

3.  EXECUTION
3.1 Use of Input and Output Media
3.2 The Standard PASCAL Files INPUT and OUTPUT
3.3 Separate Compilation of PASCAL Procedures and Functions
3.4 Mixed Language Programming

4.  BASIC ERROR ACTION
4.1 Error Reporting
4.2 Compile-time Control

==== ercs07/emas-2900/pptests_pptest17.txt ====


program ptest17;
{ test local and global accesses }

  type
    small = array [1 .. 256] of integer;
    big = array [1 .. 65535] of integer;

  var
    g1,
    g2: integer;
    s1: small;
    b1: big;

  procedure p2(s2: small; t2: integer);

    var
      b2: big;
      v2: integer;


==== ercs07/emas-2900/simple_t2.txt ====
      J=10
      DO 10 I=1,12,2
      DO 10 K=1,4,2
      J=J+I+K
   10 CONTINUE
      WRITE(6,100)J
  100 FORMAT(1H ,I6)
      END

==== ercs07/emas-2900/slogos_sourcefs.txt ====
'HEAD'  SOURCE PROCESSING
C     EDIT DATE   14JAN79  09:09
C     SOURCE FILE SOURCEFTM.FS
C     AUTHOR      F. T. MICKEY
C     CLUSTER     17
      'OUTFILE' LDSRCEFTM.FR
C     SUBROUTINE LDSRCE
C
C     GETS A NEW LINE FROM INPUT, PREPARES IT FOR SCANNING,
C     AND PRINTS THE SOURCE LINE IF NOT INHIBITED
C
N     OVERLAY OLLDS
      SUBROUTINE LDSRCE
      INTEGER GCHAR
      'INCLUDE' SRCDFSFTM.IN,
      'INCLUDE' SRCXDFFTM.IN,
      'INCLUDE' LOGOSAJH.IN,
      'INCLUDE' CTRLAJH.IN,
      'INCLUDE' PRTCOMFTM.IN,
      'INCLUDE' CPAREAJH.IN,
      INTEGER  ESMSG (4), NCMSG (4), TS, TS1, IERR

==== ercs07/emas-2900/slogof_pquotefr.txt ====
 
      SUBROUTINE  PQUOTE 
 
      INTEGER  WF1,WF2,WF3,WF4,WF5,WF6,WF7,WF8,WF9,WF10,WF11,WF12,WF13,W
     1F14,WF15,WF16,WF17 
      INTEGER  ICLP16 
      COMMON   / WF / WF1,WF2,WF3,WF4,WF5,WF6,WF7,WF8,WF9,WF10,WF11,WF12
     1,WF13,WF14,WF15,WF16,WF17 
      COMMON   / WF / ICLP16 
 
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG 
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV 
      INTEGER     NEXT,   NUMBER, I,      IOTYPE 
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE 
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP 
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT 
      INTEGER ICLP05 

==== ercs07/emas-2900/pptests_pptest18.txt ====
PROGRAM QUAD(input,output);   { ===== Quadratic Equation ===== }
VAR a, b, c, d, x, x1, x2, rp, ip:  REAL;
BEGIN
 WHILE NOT(EOF) DO BEGIN
   READ (a, b, c);
   WRITELN (a:8:1, b:8:1, c:8:1);
   IF a <> 0 THEN
    BEGIN
       d := SQR(b) - 4*a*c;
       IF d >= 0 THEN
           BEGIN  { Real Roots }
           d := SQRT (d);
           x1 := (-b+d)/(2*a);
           x2 := (-b-d)/(2*a);
           WRITELN ('REAL ROOTS', x1:8:4, x2:8:4)   END
         ELSE
           BEGIN  { Complex Roots }
           rp := -b/(2*a);
           ip := SQRT(-d)/(2*a);
           WRITELN ('COMPLEX ROOTS', rp:8:4, ip:8:4)   END;
       END ELSE

==== ercs07/emas-2900/qfiles5apr_exthelp1.txt ====
MODULE ExtHelp;

EXPORTS

IMPORTS FileUtils FROM FileUtils;
IMPORTS Code FROM Code;

CONST
      maxIdLength = 14;
      defIdLength = 8;
      longIdLength = 14;
      maxImports = 50;

TYPE
    Status = (allright,fileNotFound,alreadyImported,
              multiplyDeclaredRoutine,routNotFound);
      
    Name = STRING[maxIdLength];
      
    IsnType = 0..maxImports;


==== ercs07/emas-2900/simple_t3.txt ====
      DO 10 I=2,10,2
      J=I+4
      DO 20 K=2,10,1
      J=J+K
   20 CONTINUE
      J=J+I
   10 CONTINUE
      WRITE(6,100)J
  100 FORMAT(1H ,I5)
      END

==== ercs07/emas-2900/slogos_utilsffs.txt ====
'HEAD'  GENERAL UTILITIES
C     EDIT DATE   18JAN79  21:27
C     SOURCE FILE UTILSFTM.FS
C     AUTHOR      F. T. MICKEYM
C     CLUSTER     28
      'OUTFILE' GCHAR.FR
C     SUBROUTINE GCHAR (BUFFER, CHARACTER INDEX)
C
C     RETURNS AS INTEGER FUNCTION VALUE THE CHARACTER POINTED
C     TO BY CHARACTER INDEX, WITH THE LEFT-HAND CHARACTER OF
C     BUFFER (1) DEFINED AS CHARACTER 1.  CHARACTERS ARE RIGHT ADJUS-
C     TED, WITH A LEADING NULL BYTE.
C
      INTEGER FUNCTION GCHAR (BUF, INDEX)
      INTEGER  BUF (66), I, INDEX
      I = ISHFT (INDEX+1, -1)
      'IF' (IAND (INDEX, 1) .NE. 0)
         GCHAR = ISHFT (BUF (I), -8)
         'ELSE'
         GCHAR = IAND (BUF (I), 255)
         'ENDIF'

==== ercs07/emas-2900/pptests_pptest19.txt ====
PROGRAM ARRA(input,output); 
const m=100; n=100;
TYPE  arr = array [1..m,1..n] of real;
VAR i,j:integer;
a : arr;
BEGIN
for i := 1 to n do
for j := 1 to m do
 a[i,j] := i+j;
writeln('initialised');
for i := 1 to n do
for j := 1 to m do
 a[i,j] := a[j,i];
writeln('transposed');
for i := 1 to n do
for j := 1 to m do
 a[i,j] := a[i,j]+1.0;
writeln('done')
END.



==== ercs07/emas-2900/qfiles_init10.txt ====
module f77init;

{ updated 21/3/82 - function openfile defined }
{ updated 23/4/82 - real underflow dealt with in handler all }
{                   procedure movebee inserted }
{ updated 28/4/82 - form feed output by iocp }

exports
imports filedefs from filedefs;
imports filesystem from filesystem;
imports fileutils from fileutils;
imports memory from memory;
imports clock from clock;
imports filedir from filedir;


type buff84=packed array[1..84] of char;

procedure unsatref;
procedure initmain;
procedure INITGLA;

==== ercs07/emas-2900/imptests_cycle.txt ====
%BEGIN
%INTEGER I
%CYCLE I=1,1,2
%REPEAT
%ENDOFPROGRAM

==== ercs07/emas-2900/simple_t4.txt ====
      DO 10 I=2,10,2
      J=I+4
      DO 20 K=2,10,1
      J=J+K
  20  CONTINUE
      DO 30 K=10,20,2
      J=J+K
  30  CONTINUE
      J=J+I
  10  CONTINUE
      WRITE(6,100)J
  100 FORMAT(1H ,I5)
      END

==== ercs07/emas-2900/inpds_atestain.txt ====
      LOGICAL     ATEST
      COMMON      /ATST/   ATEST


==== ercs07/emas-2900/simple_t5.txt ====
      REAL A(10)
      DATA A/10*1/
      I=1
      J=2
      L=3
      WRITE(6,100)I,J,(K,A(K),K=1,I),L
  100 FORMAT(I4)
      END

==== ercs07/emas-2900/simple_t6.txt ====
      DO 10 I=1,10,2
      K=I+2
      IF(I+2.GT.10) K=10
  10  CONTINUE
      WRITE(6,100)K
  100 FORMAT(1H ,I5)
      END

==== ercs07/emas-2900/slogosorg_bpolshfs.txt ====
'HEAD'  BUILD POLISH
C     EDIT DATE   07FEB79  08:23
C     SOURCE FILE BPOLSHAJH.FS
C     AUTHOR      A. J. HOWARD
C     CLUSTER     12
      'OUTFILE'   BLDPOAJH.FR
C     EDIT DATE   07FEB79  08:23
C     SOURCE FILE BLDPOAJH.FR
C     AUTHOR      A.J. HOWARD
C     CLUSTER     11
      SUBROUTINE  BLDPO
      'INCLUDE'   LOGOSAJH.IN,
      'INCLUDE'   CTRLAJH.IN,
      'INCLUDE'   SRCDFSFTM.IN,
      EXTERNAL    OLCTL
      'DO'
         CALL BP
         'WHILE' (NEXTOP .EQ. CONTRL)
            CALL OVLOD (OLCTL)
            CTLUSE = 1
            CTLERR = 0

==== ercs07/emas-2900/inpds_nlistcin.txt ====
C     EDIT DATE   09DEC78  14:13
C     SOURCE FILE NLISTCFTM.IN
C     AUTHOR      F. T. MICKEY
      INTEGER  NI,     NJ,     NK
      INTEGER  NSIZE
      INTEGER  NLX,    FNLX,   REMNLX, OVNLX,  TNAME
      INTEGER  NLSTRT, NLSTOP, NLSIZE, SRCHST
      INTEGER  NTSTRT
      INTEGER  NTSTOP
      INTEGER  NTSIZE
      INTEGER  PARFLG
      INTEGER  SPARFL
      INTEGER  NLWRDS
      INTEGER  TX
      INTEGER  NLENO
      INTEGER  STDMD
      INTEGER  MSHIFT
      INTEGER  REGCNT
      INTEGER  NULLX
      INTEGER  STPTRX
      INTEGER  SPMODE

==== ercs07/emas-2900/pnxrel11_optctlp49.txt ====

! 08/01/85 - comment out routine TABFAIL, call F77abort in pf_ctl1
! 07/01/85 - Substituted F77abort call for tabfail.
! 29/08/84 - correction to SETBITS for CMNCOORDS(1)
! 27/08/84 - insert function GET PLABDICT
! 16/07/84 - put name of OPTCTL routine in an include file
! 04/07/84 - put SPECS to constant operations in include file "targ_constfns"
! 03/07/84 - replace scaling factor in OPTCTL by BSCALE
! 04/06/84 - correction to BUSYONX
! 02/04/84 - changes in SUBSUM for DIOITEM(list-directed)
! 15/03/84 - further changes of 4 to W1 in CONOP
! 21/02/84 - Replace increments of 4 by W1 in BUSYONX & CONOP
! 17/01/84 - CORRECT CREATETAB; MAKE BLOCKPOINT RELATIVE IN SETBITS
! 08/11/83 COPIED FROM ERCS06.REL90_OPTCTLB31
!*
%INCLUDE "host_host"
!*
%INCLUDE "targ_target"
!*
%INCLUDE "pf_version"
!*

==== ercs07/emas-2900/simple_t7.txt ====
      J=4
      DO 10 I=1,10,2
      K=I+J
      DO 20 J=1,10,I
      L=I+J
  20  CONTINUE
      L=L+I+J
  10  CONTINUE
      I=I+2
      WRITE(6,100)I,L
  100 FORMAT(2I5)
      END

==== ercs07/emas-2900/qfiles_dctl10.txt ====
module  f77dctl;
exports
imports filedefs from filedefs;

procedure ndiag(raiseap,dumpc,err,extra:fsbit16);
procedure ssmess(i:integer);

function loadss:fsbit16;
function loadap:fsbit16;
procedure diags(raiseap,es,er,pstart,pend:fsbit16);

private

imports f77init from f77init;
imports f77idiag from f77idiag;
imports f77fdiag from f77fdiag;
imports f77rmess from f77rmess;
imports F77QCODE from F77QCODE;

imports system from system;
imports except from except;

==== ercs07/emas-2900/qfiles_dctl11.txt ====
module  f77dctl;
exports
imports filedefs from filedefs;

procedure ndiag(raiseap,dumpc,err,extra:fsbit16);
procedure ssmess(i:integer);

function loadss:fsbit16;
function loadap:fsbit16;
procedure diags(raiseap,es,er,pstart,pend:fsbit16);

private

imports f77init from f77init;
imports f77idiag from f77idiag;
imports f77fdiag from f77fdiag;
imports f77rmess from f77rmess;
imports F77QCODE from F77QCODE;

imports system from system;
imports except from except;

==== ercs07/emas-2900/slinkf_t20p2gfr.txt ====
    
      SUBROUTINE T20P2  
    
      LOGICAL     MPFLAG
      LOGICAL     OVMODE
      LOGICAL     LBMODE
      LOGICAL     LOADRB
      LOGICAL     SFLAG 
      INTEGER     VERS  
      INTEGER     LOADAD
      INTEGER     ZLOC, ZSTR, ZMAX, ZLIMIT  
      INTEGER     CLOC, CSTR, CMAX, CLIMIT  
      INTEGER     NLOC, NSTR, NMAX, NLIMIT  
      INTEGER     DLOC, DSTR, DMAX, DLIMIT  
      INTEGER     OLOC, OMAX, OSET  
      INTEGER     START 
      INTEGER     MODNLX
      INTEGER     CKSUM 
      INTEGER     KEY   
      INTEGER ICLP05
      COMMON      /LDATAX/ MPFLAG   

==== ercs07/emas-2900/qfiles_qput1.txt ====
%CONSTINTEGER EMAS=0,PERQ=1,SYS=PERQ
%CONSTINTEGER NOTSYS=(SYS+1)&1
!********************************************
!*             PERQ LPUT                    *
!********************************************




        %ROUTINESPEC QPUT(%INTEGER A,B,C,D)  {ensure qput is routine number one}
{PERQ}  %EXTERNALROUTINESPEC WRITE BLOCK(%HALFINTEGER FILEID,BLOCK, %INTEGER AD)
{PERQ}  %EXTERNALROUTINESPEC READBLOCK(%HALFINTEGER FILEID,BLOCK,%INTEGER AD)
{PERQ}  %EXTERNALROUTINESPEC NEWSEG(%INTEGER AD, %HALFINTEGER SIZE,INC,MAXSIZE)
{PERQ}  %EXTERNALROUTINESPEC CLOSEFILE(%HALFINTEGER FILEID,BLOCKS,BITS)
        %DYNAMICROUTINESPEC QCODE(%INTEGER I,J,K,L)
{EMAS   %SYSTEMSTRINGFNSPEC FAILUREMESSAGE(%INTEGER MESS)
{EMAS   %EXTERNALSTRINGFNSPEC UINFS(%INTEGER N)
{EMAS   %SYSTEMSTRINGFNSPEC SPAR(%INTEGER N)
{EMAS   %SYSTEMROUTINESPEC SETFNAME(%STRING(63) S)
{EMAS   %EXTERNALROUTINESPEC CHANGECONTEXT
{EMAS   %SYSTEMINTEGERMAPSPEC COMREG(%INTEGER I)

==== ercs07/emas-2900/pnxrel11_optctlp50.txt ====
! 04/04/85 - Globsubs,Subsum - ignore I2 or L2
! 01/04/85 - Convertmode - %result=1 for any I2
! 28/03/85 - Conop - stop evaluating I2 exprs. {AA}
! 08/01/85 - comment out routine TABFAIL, call F77abort in pf_ctl1
! 07/01/85 - Substituted F77abort call for tabfail.
! 29/08/84 - correction to SETBITS for CMNCOORDS(1)
! 27/08/84 - insert function GET PLABDICT
! 16/07/84 - put name of OPTCTL routine in an include file
! 04/07/84 - put SPECS to constant operations in include file "targ_constfns"
! 03/07/84 - replace scaling factor in OPTCTL by BSCALE
! 04/06/84 - correction to BUSYONX
! 02/04/84 - changes in SUBSUM for DIOITEM(list-directed)
! 15/03/84 - further changes of 4 to W1 in CONOP
! 21/02/84 - Replace increments of 4 by W1 in BUSYONX & CONOP
! 17/01/84 - CORRECT CREATETAB; MAKE BLOCKPOINT RELATIVE IN SETBITS
! 08/11/83 COPIED FROM ERCS06.REL90_OPTCTLB31
!*
%INCLUDE "host_host"
!*
%INCLUDE "targ_target"
!*

==== ercs07/emas-2900/slogof_setlcifr.txt ====
 
      SUBROUTINE SETLCI 
 
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG 
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV 
      INTEGER     NEXT,   NUMBER, I,      IOTYPE 
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE 
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP 
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT 
      INTEGER ICLP05 
      LOGICAL     ENDOK,CONEND 
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG 
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV 
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE 
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N 
      COMMON   /LOGOS/  PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE 

==== ercs07/emas-2900/pnxrel01_op3p43.txt ====
! 05/07/84 - put routine ARRTR in include file targ_arrtr
! 06/06/84 - extend array OPCAT for INTRIN & DCMPLX
! 05/06/84 - do not optimise arrays with constant subscripts (ARRTR)
! 13/03/84 - correct TYPES and LENGTHS in routine DESC
! 19/01/84 - CTSIZE & EXTNSIZE NOW IN HOST
! 18/01/84 - BLOCK BIT STRIP ADDRESSES ARE NOW RELATIVE TO ABLOCKS
! 07/11/83 COPIED FROM ERCS06.REL8002_OP3B23
!*
%include "host_host"
!
%include "targ_target"
!
%include "pf_version"
!*
%include "bits_fmts"
!*
%include "bits_optspecs"
!*
%include "bits_optfmts"
!*
%include "bits_consts"

==== ercs07/emas-2900/pascalsce_rtsup10.txt ====
! MODIFIED 12/11/81 - VERSION 20.13
! RESET NOPDEFS IN INIT

!**********************************************************************
!*
!*                    RUN TIME PASCAL
!*
!**********************************************************************
!
!
!**********************************************************************
!*
!*                            CONSTANTS
!*
!**********************************************************************
!
%CONSTINTEGER NO=0,YES=1
%CONSTSTRING(1)%ARRAY HEX TAB(0:15)="0","1","2","3","4","5","6","7", %C
              "8","9","A","B","C","D","E","F"
!
!

==== ercs07/emas-2900/ds20imp_ncode3.txt ====
%CONTROL X'0FFFFFFF'
 
!********************************************* 
!*                                           * 
!* THIS ROUTINE RECODES FROM HEX INTO NEW    * 
!* RANGE ASSEMBLY CODE.                      * 
!*                                           * 
!********************************************* 
 
 
%SYSTEMROUTINE NCODE(%INTEGER START, FINISH, CA) 
%ROUTINESPEC PRIMARY DECODE 
%ROUTINESPEC SECONDARY DECODE 
%ROUTINESPEC TERTIARY DECODE 
%ROUTINESPEC DECOMPILE 
%CONSTSTRING (5) %ARRAY OPS(0 : 127) =       %C 
'     ','JCC  ','JAT  ','JAF  ','     ','     ','     ','     ', 
'VAL  ','CYD  ','INCA ','MODD ','PRCL ','J    ','JLK  ','CALL ', 
'ADB  ','SBB  ','DEBJ ','CPB  ','SIG  ','MYB  ','VMY  ','CPIB ', 
'LCT  ','MPSR ','CPSR ','STCT ','EXIT ','ESEX ','OUT  ','ACT  ', 
'SL   ','SLSS ','SLSD ','SLSQ ','ST   ','STUH ','STXN ','IDLE ', 

==== ercs07/emas-2900/slogosorg_ssnamein.txt ====
      INTEGER     SCR1 (6), SCR2 (6)
N     DATA  SCR1     /'LOGOS.S1    '/
N     DATA  SCR2     /'LOGOS.S2    '/
P     DATA  SCR1     /'SY:LOGOS.S1 '/
P     DATA  SCR2     /'SY:LOGOS.S2 '/




==== ercs07/emas-2900/slinkf_t17p2gfr.txt ====
    
      SUBROUTINE T17P2  
    
      INTEGER     DICT (400)
      INTEGER     ID, CID, DTSTRT, DTSTOP   
      COMMON      /DARRAY/ DICT 
      COMMON      /DARRAY/ ID, CID, DTSTRT, DTSTOP  
    
      LOGICAL     MPFLAG
      LOGICAL     OVMODE
      LOGICAL     LBMODE
      LOGICAL     LOADRB
      LOGICAL     SFLAG 
      INTEGER     VERS  
      INTEGER     LOADAD
      INTEGER     ZLOC, ZSTR, ZMAX, ZLIMIT  
      INTEGER     CLOC, CSTR, CMAX, CLIMIT  
      INTEGER     NLOC, NSTR, NMAX, NLIMIT  
      INTEGER     DLOC, DSTR, DMAX, DLIMIT  
      INTEGER     OLOC, OMAX, OSET  
      INTEGER     START 

==== ercs07/emas-2900/psclsce207_ctsup7.txt ====
! MODIFIED 02/03/81 -  HEADING CHANGED TO VERSION 20.7
!**********************************************************************
!*
!*                         P A S C A L
!*
!*                COMPILER ENVIRONMENT ROUTINES
!*
!**********************************************************************
!
!
!**********************************************************************
!*
!*                            CONSTANTS
!*
!**********************************************************************
!
%CONSTINTEGER SEGMENTK=256,SEGMENT=262144
%CONSTINTEGER NIL=-1
%CONSTINTEGER NO=0,YES=1
%CONSTSTRING(1)%ARRAY HEX TAB(0:15)="0","1","2","3","4","5","6","7", %C
              "8","9","A","B","C","D","E","F"

==== ercs07/emas-2900/sforf_lncontf.txt ====
      SUBROUTINE LNCONT (/DUMMY/)
      INTEGER  INPTR
      INTEGER  OUTPTR
      INTEGER  INMAX
      INTEGER  MAXTAB
      INTEGER  MAXLIN
      INTEGER  IFMAX
      INTEGER  MAXLEV
      INTEGER  LINENO
      INTEGER  PAGE
      INTEGER  CLINE
      INTEGER  TLIMIT
      INTEGER  LN
      INTEGER  I, J, K
      INTEGER  II, JJ, KK
      INTEGER  LEXVAL
      INTEGER  SLEN
      INTEGER  LEVEL
      INTEGER  LEN
      INTEGER  INCHAN
      INTEGER  OUTCHN

==== ercs07/emas-2900/rel6_exthelp4.txt ====


{30/apr - alan - Changed to disregard routine beginning F_ }
{ 10/5/82 - changes to verifyfile }
{  8/6/82 - convert modulename to upper case (in verify file) }
{ 16/7/82 - comment out check for duplicate routines in library,
            since its catching Handlers)}
            

MODULE ExtHelp;

EXPORTS

IMPORTS FileUtils FROM FileUtils;
IMPORTS Code FROM Code;

CONST
      maxIdLength = 14;
      defIdLength = 8;
      longIdLength = 14;
      maxImports = 50;

==== ercs07/emas-2900/helpsa20_setupcttmpl.txt ====
MACRO SETUPCTTEMPL20 IS (
   LITERAL (OMFLIB) %OMFLIB)
MACBEGIN
STRING %OMFFILE := %OMFLIB + '.ICL9LPJCLPROCS'
BEGIN
DECLAREPARAMETERDEFINERS
EXT PROC PASCALCOMP IS (
SUPERLITERAL INPUT := "*STDAD",
LITERAL OMF := NIL,
LITERAL RUN := NIL,
SUPERLITERAL LISTINGS := NIL,
LITERAL SAVELIST :=NIL,
LITERAL RANGECHECKS := "YES",
LITERAL CHARCODE := "EBCDIC",
LITERAL CODE_ := NIL,
LITERAL LIBPROC := NIL,
INT GENERATIONSKEPT := -1,
INT HEAPSIZE := 10,
LITERAL RTINPUT := "*STDAD",
LITERAL RTOUTPUT := "*STDAD",
SUPERLITERAL FLOWANALYSES := "NONE",

==== ercs07/emas-2900/slinkf_ntablefr.txt ====
    
      BLOCK DATA
    
      INTEGER     NSIZE,  NAME(16), NTITLE  
      INTEGER     NFLAGS (512)  
      INTEGER     NADDRS (512)  
      INTEGER     NPOSIT (512)  
      INTEGER     NDATA  (512)  
      INTEGER     NTEXTX (512)  
      INTEGER     NTEXT  (1000) 
      INTEGER     NLX, NLSTRT, NLSTOP   
      INTEGER     TXSTRT, TXSTOP
      INTEGER     NTXBTS
      INTEGER     USEBIT, COMBIT, OVLBIT, EPTBIT
      INTEGER     LDMBIT, MODBIT, MLTBIT, RLSBIT
      INTEGER     GDFBIT, TYPBTS
      INTEGER     ATYPE 
      INTEGER      ICLP07   
      LOGICAL     OLDNAM
      COMMON      /NTABLE/ NSIZE, NAME, NTITLE  
      COMMON      /NTABLE/ NFLAGS, NADDRS, NPOSIT, NDATA, NTEXTX

==== ercs07/emas-2900/pffiles_assgncode.txt ====

procedure Assign(VarRep: TypeRepresentation);
  extern;

procedure AssignTag(SelectorRep: TypeRepresentation);
  extern;


==== ercs07/emas-2900/slinkf_t13p2gfr.txt ====
    
      SUBROUTINE T13P2  
    
      INTEGER     DICT (400)
      INTEGER     ID, CID, DTSTRT, DTSTOP   
      COMMON      /DARRAY/ DICT 
      COMMON      /DARRAY/ ID, CID, DTSTRT, DTSTOP  
    
      INTEGER     NSIZE,  NAME(16), NTITLE  
      INTEGER     NFLAGS (512)  
      INTEGER     NADDRS (512)  
      INTEGER     NPOSIT (512)  
      INTEGER     NDATA  (512)  
      INTEGER     NTEXTX (512)  
      INTEGER     NTEXT  (1000) 
      INTEGER     NLX, NLSTRT, NLSTOP   
      INTEGER     TXSTRT, TXSTOP
      INTEGER     NTXBTS
      INTEGER     USEBIT, COMBIT, OVLBIT, EPTBIT
      INTEGER     LDMBIT, MODBIT, MLTBIT, RLSBIT
      INTEGER     GDFBIT, TYPBTS

==== ercs07/emas-2900/strans_putcftfr.txt ====
    
      SUBROUTINE PUTC (ICHAR)   
    
      INTEGER  INPTR
      INTEGER  OUTPTR   
      INTEGER  INMAX
      INTEGER  MAXTAB   
      INTEGER  MAXLIN   
      INTEGER  IFMAX
      INTEGER  MAXLEV   
      INTEGER  LINENO   
      INTEGER  PAGE 
      INTEGER  CLINE
      INTEGER  TLIMIT   
      INTEGER  LN   
      INTEGER  I, J, K  
      INTEGER  II, JJ, KK   
      INTEGER  LEXVAL   
      INTEGER  SLEN 
      INTEGER  LEVEL
      INTEGER  LEN  

==== ercs07/emas-2900/imptests_state.txt ====
PRINTSTRING("BEFORE BEGIN")
%BEGIN
%ENDOFPROGRAM

==== ercs07/emas-2900/bench_bnch8a.txt ====
C
C
      PROGRAM BNCH8
C
C  VAX750 RESULTS:
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
      CHARACTER A

==== ercs07/emas-2900/bench_bnch8b.txt ====
C
C
      PROGRAM BNCH8
C
C  VAX750 RESULTS:
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
      CHARACTER A

==== ercs07/emas-2900/sforf_blob.txt ====
      'OUTFILE' BLOB.FR
      'HEAD'  TEST OF STRAN PREPROCESSOR
      'INCLUDE' INCLUD,P
      'EJECT'
      DATA ARRAY/'HUMPTY DUMPTY SAT ON A WALL'/
      I=1
      'DO'
         CALL INIT
         CALL PARSE
         'END'
      END

==== ercs07/emas-2900/slogof_pnlajhfr.txt ====
    
      SUBROUTINE  PNAMEL
    
      INTEGER     LIST (499), NAMES (499), CT, BITS (6, 2)  
      INTEGER ICLP08
      COMMON      /PNACOM / LIST, NAMES, CT, BITS   
      COMMON      /PNACOM / ICLP08  
    
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      INTEGER     NEXT,   NUMBER, I,      IOTYPE
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT
      INTEGER ICLP05
      LOGICAL     ENDOK,CONEND  
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG   

==== ercs07/emas-2900/slogof_nlsetafr.txt ====
    
      SUBROUTINE  NLSET (INDEX, FLAG)   
      INTEGER     INDEX, FLAG   
    
      INTEGER     NLIST (500)   
      INTEGER     NLOC  (500)   
      INTEGER     NTEXT (1500)  
      INTEGER     NTEXTX (500)  
      COMMON   /NARAY/  NLIST   
      COMMON   /NARAY/  NLOC
      COMMON   /NARAY/  NTEXT   
      COMMON   /NARAY/  NTEXTX  
      IF (INDEX .NE. 0) NLIST (INDEX) = IOR (NLIST (INDEX), FLAG)   
      RETURN
      END   

==== ercs07/emas-2900/tstfiles_logt01.txt ====
''LOC
''LIST
''SYMBOL
      'SP' A,B,C,
;;TEST01:: 'LBR'
      1->A,
      'RBR'
....
;;TEST02:'LBR'
      1->A,
      2->B,
      A+B->C,
      'RBR'
.....
      'SP' D=1,E=2,
;;TEST03:'LBR'
      D+E->C,
      'RBR'
.....
;;TEST04::'LBR'
      A=1: 1->C; 2->C;

==== ercs07/emas-2900/tstfiles_logt02.txt ====
      'DP' OW,
      WF,
;
      WF STEP =
         1,0,0,1,2,0,0,3,
         'FOR' 9 'LBR' 0 'RBR'
;BUILD BLOCK:: ('DP' OBJECT WORD , WORD FLAG)'LBR'
      OBJECTWORD  -> OW,
      WORD FLAG -> WF = WF7 'OR' WF = WF12 'OR' WF = WF13:
         OW # 0:
            OW & 07FFF -> N,
            NAMELIST [N] & REGBIT # 0:
               FAULTPRINT(35);;
            NAMELIST [N] 'OR' USE BIT -> NAMELIST [N];
            FAULTPRINT(10),
            NULLX -> OW;    ;;
      WF # WF6 'OR' OW # 0:
         WF -> WO [WO PTR],
         OW -> 'DP' WO [WO PTR+1],
         WO PTR + 3 -> WO PTR>=WO SIZE:
            WRITE WO;;

==== ercs07/emas-2900/slinkf_t06p2gfr.txt ====
    
      SUBROUTINE T06P2  
    
      INTEGER     DICT (400)
      INTEGER     ID, CID, DTSTRT, DTSTOP   
      COMMON      /DARRAY/ DICT 
      COMMON      /DARRAY/ ID, CID, DTSTRT, DTSTOP  
    
      INTEGER     NSIZE,  NAME(16), NTITLE  
      INTEGER     NFLAGS (512)  
      INTEGER     NADDRS (512)  
      INTEGER     NPOSIT (512)  
      INTEGER     NDATA  (512)  
      INTEGER     NTEXTX (512)  
      INTEGER     NTEXT  (1000) 
      INTEGER     NLX, NLSTRT, NLSTOP   
      INTEGER     TXSTRT, TXSTOP
      INTEGER     NTXBTS
      INTEGER     USEBIT, COMBIT, OVLBIT, EPTBIT
      INTEGER     LDMBIT, MODBIT, MLTBIT, RLSBIT
      INTEGER     GDFBIT, TYPBTS

==== ercs07/emas-2900/slinksorg_askqesfs.txt ====
'HEAD'  LINKER, ASK QUESTIONS
C     EDIT DATE   16JAN79  07:31
C     SOURCE FILE ASKQESGAK.FS
C     AUTHOR      GARY A. KUDIS
C     CLUSTER     3
      'OUTFILE' ASKQESGAK.FR
      SUBROUTINE ASKQES
      'INCLUDE' QUESTSGAK.IN,
      'INCLUDE' LDATAXGAK.IN,
      'INCLUDE' IODEFNGAK.IN,
      'INCLUDE' IOFILEGAK.IN,
      'INCLUDE' CHARACGAK.IN,
      INTEGER     GCHAR
      INTEGER     OBEND, MPEND
      DATA        OBEND /'OB'/, MPEND /'MP'/
C ASKQES ::
X     WRITE (DBCHAN, 1)
X1    FORMAT (' ENTER ASKQES')
      CALL ASK (CMQUES)
      CALL MOVE (ANSWER, CMFILE, 14)
P     CALL DEVICE (CMFILE)

==== ercs07/emas-2900/tstfiles_logt03.txt ====
''LIST
''TITLE, LOGT03
''HEAD, LOGT03  -  TEST OF USE DIRECTIVE
''USE,USEFILE1;1
;;LOGT03:: 'LBR'
      0 -> A,
      1 -> B,
      0FF -> E,
      0AAAA -> F,
''USE,USEFILE2;0
      0 -> C,
      0 -> F,
''USE,USEFILE2;1
      'RBR'
      ....
''END

==== ercs07/emas-2900/slogof_logosafr.txt ====
    
      PROGRAM PLOGOS
    
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      INTEGER     NEXT,   NUMBER, I,      IOTYPE
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT
      INTEGER ICLP05
      LOGICAL     ENDOK,CONEND  
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG   
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG  
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV  
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE  
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N   
      COMMON   /LOGOS/  PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE  

==== ercs07/emas-2900/slogof_clrstkfr.txt ====
    
      SUBROUTINE CLRSTK (ROW)   
      INTEGER  ROW  
      INTEGER     I 
    
      INTEGER     STK (20, 13)  
      INTEGER     NAMEX (40)
      INTEGER     OPX,    STKSIZ, OCBIT,  FUNBIT, SBIAS 
      INTEGER ICLP14
      COMMON      /SDEFS/ STK,    OPX,    STKSIZ, OCBIT,  FUNBIT, SBIAS 
      COMMON      /SDEFS/ ICLP14
      EQUIVALENCE (STK (1,1), NAMEX (1))
      DO  13002 I = 1, 13   
      STK (ROW, I) = 0  
13002 CONTINUE  
    
      RETURN
      END   

==== ercs07/emas-2900/tstfiles_logt04.txt ====
''HEAD, LOGT04 - EXTERNAL SUB TEST
''TITLE, LOGT04
''LIST
      A,B,C,
;;LOGT04:: 'LBR'
      SUB1,
      SUB2(A,B,C),
      SUB3,
      'RBR'
      ....
''END

==== ercs07/emas-2900/tstfiles_logt05.txt ====
''TITLE,LOGT05
''LIST
      A[5],B,C,D
;;LOGT05:: 'LBR'
''DSTACK
''EJECT
      [A] & 0F -> C,
''-DSTACK
      'RBR'
      ....
;;LOGT05A:: 'LBR'
''DSTACK
''EJECT
      0F & [B] -> C,
''-DSTACK
      'RBR'
      ....
''END

==== ercs07/emas-2900/slinks_copyin.txt ====
COPYFMPD SLINKS_BITDFNIN
COPYFMPD SLINKS_CHARACIN
COPYFMPD SLINKS_DARRAYIN
COPYFMPD SLINKS_ERRDFNIN
COPYFMPD SLINKS_IODEFNIN
COPYFMPD SLINKS_IOFILEIN
COPYFMPD SLINKS_LDATAXIN
COPYFMPD SLINKS_MEMORYIN
COPYFMPD SLINKS_NTABLEIN
COPYFMPD SLINKS_PNAMESIN
COPYFMPD SLINKS_QDATAXIN
COPYFMPD SLINKS_QUESTSIN
COPYFMPD SLINKS_RECORDIN
COPYFMPD SLINKS_STACKSIN
COPYFMPD SLINKS_TXTCOMIN

==== ercs07/emas-2900/genutils_fortalli.txt ====

%EXTERNALROUTINE FORTALL(%STRING(63) S)
      %EXTERNALROUTINESPEC COPY(%STRING(63) SA)
      %EXTERNALROUTINESPEC DESTROY(%STRING(63) SB)
      %EXTERNALROUTINESPEC FORTE(%STRING(63) SC)
      %EXTERNALINTEGERFNSPEC RETURNCODE
      %STRING(63) A,B,C,INPD
      %CONSTSTRING(63) OUTPD="SLOGOY_"

      %INTEGER SLEN
      SLEN=LENGTH(S)
      %IF SLEN>2 %AND FROMSTRING(S,SLEN-1,SLEN)="FR" %THEN %START
         A=FROMSTRING(S,1,SLEN-2)

         %UNLESS A -> B.("_").C %THEN C=A
         FORTE(S.",".C."Y")
         COPY (C."Y,".OUTPD.C."Y")
         %IF RETURNCODE = 0 %THEN DESTROY(C."Y")
         %FINISH
      %END
%ENDOFFILE

==== ercs07/emas-2900/tstfiles_logt06.txt ====
''HEAD, ASSEMBLER INSERT TEST
''TITLE, LOGT06
''LIST
      'DP' SUM,
;;DECIMAL ADD:: ('DP'ADD1,'DP'ADD2) 'LBR'
      $SED;
      ADD1 + ADD2 -> SUM,
      $CLD;
      'RETURN' SUM,
      'RBR'
      ....
''END

==== ercs07/emas-2900/slinkf_t02p2gfr.txt ====
    
      SUBROUTINE T02P2  
    
      LOGICAL     MPFLAG
      LOGICAL     OVMODE
      LOGICAL     LBMODE
      LOGICAL     LOADRB
      LOGICAL     SFLAG 
      INTEGER     VERS  
      INTEGER     LOADAD
      INTEGER     ZLOC, ZSTR, ZMAX, ZLIMIT  
      INTEGER     CLOC, CSTR, CMAX, CLIMIT  
      INTEGER     NLOC, NSTR, NMAX, NLIMIT  
      INTEGER     DLOC, DSTR, DMAX, DLIMIT  
      INTEGER     OLOC, OMAX, OSET  
      INTEGER     START 
      INTEGER     MODNLX
      INTEGER     CKSUM 
      INTEGER     KEY   
      INTEGER ICLP05
      COMMON      /LDATAX/ MPFLAG   

==== ercs07/emas-2900/slogosorg_bracesfs.txt ====
'HEAD'  BRACE PROCESSING SUBROUTINES
C     EDIT DATE   09DEC78  16:43
C     SOURCE FILE BRACESFTM.FS
C     AUTHOR      F. T. MICKEY
C     CLUSTER     11
      'OUTFILE'   SETLLFTM.FR
N     OVERLAY     OLSLL
C
C     SET LIMITS FOR LOOP AND WHILE CONSTRUCTIONS
C
      SUBROUTINE  SETLL
      'INCLUDE' LOGOSAJH.IN,
      'INCLUDE' BRACEFTM.IN,
      'INCLUDE' CODE1FTM.IN,
      'INCLUDE'   STKDEFA.IN,
      'INCLUDE'   STKDEFB.IN,
      'INCLUDE' GENCOMFTM.IN,
      'INCLUDE' WFLAGSJHP.IN,
      'INCLUDE' NLISTCFTM.IN,
      'INCLUDE' OPERSAJH.IN,
      'INCLUDE' RMCODES.IN,

==== ercs07/emas-2900/rel11opt_op2p47.txt ====
! 07/08/85 - include test for CHARMODE in ARR/DEFARR triad in BMOVECHECK
! 26/06/85 - line 976 0f LOOPBUILD, map on to next AR block
!          - line 812 of LOOPBUILD, map on to current CL block
! 19/09/84 - clear relevant bit in CLOOPDEF if ASMT/ASGN triad backward moved
!          - line 1510 corrected to VAL1=1, line 1515 moved back 7 lines
! 28/08/84 - correction to BTBITS for CMNCOORDS(1)
! 02/07/84 - change OPTSAB(CMPLX) entry to X'06'
! 11/04/84 - don't word align FREETABS in BMOVHECK
! 10/04/84 - scaling correction in bmovecheck
! 31/01/84 - UPDATE OPSTAB FOR DCMPLX & INTRIN
! 18/01/84 - ADJUST BIT STRIP ADDRESSES
! 17/01/84 - MAKE CALLS OF CREATETAB CONSISTTENT
! 23/11/83 call EDUMPTRACE in OP2A; set up LDUMPTRACE & BMTRACE
! 22/11/82 call CDUMPTRACE in OP2A
! 27/10/83 COPIED FROM ERCS06.REL90_OP2B13
!*
%INCLUDE "host_host"
%INCLUDE "targ_target"
%INCLUDE "pf_version"
!*
%INCLUDE "bits_fmts"

==== ercs07/emas-2900/tstfiles_logt07.txt ====
''TITLE, LOGT07
''LIST
''DSTACK
      A,
;;LOGT07S:: 'LBR'
      0 -> A
      'RBR'
      ....
''END

==== ercs07/emas-2900/slogos_contftfs.txt ====
'HEAD'  CONTROL CARD PROCESSING
C     EDIT DATE   14DEC78  13:29
C     SOURCE FILE CONTFTM.FS
C     AUTHOR      F. T. MICKEY
C     CLUSTER     13
      'OUTFILE'   PCONTFTM.FR
N     OVERLAY     OLCTL
      SUBROUTINE  PCONT
      'INCLUDE'   LOGOSAJH.IN,
      'INCLUDE'   BLDPOAJH.IN,
      'INCLUDE'   LCFUNCAJH.IN,
      'INCLUDE'   SRCDFSFTM.IN,
      'INCLUDE'   NLISTCFTM.IN,
      'INCLUDE'   NLNAMEFTM.IN,
      'INCLUDE'   OPERSAJH.IN,
      'INCLUDE'   CTRLAJH.IN,
      'INCLUDE'   SRCXDFFTM.IN,
      'INCLUDE'   STKDFA.IN,
      'INCLUDE'   STKDFB.IN,
      'INCLUDE'   PRTCOMFTM.IN,
      'INCLUDE'   WFLAGSJHP.IN,

==== ercs07/emas-2900/tplist.txt ====

ICL 2900 SERIES TECHNICAL PUBLICATIONS HELD AT E.R.C.C., KINGS BUILDINGS

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


THE LIST BELOW DETAILS THE CURRENT STATUS OF OFFICIAL ICL PUBLICATIONS
RELATING MAINLY TO SYSTEM B.  SOME ARE NOT UP-TO-DATE, MISSING OR NOT
EVEN REQUIRED.  THE COMMENTS SHOULD BE OF SOME HELP TO INDICATE THE
STATE OF EACH MANUAL.  IT IS SOMETIMES VERY IMPORTANT TO READ ANY
PUBLICATIONS NOTICES FILED AT THE FRONT OF THE MANUALS AND THE
APPENDICES GIVING THE AVAILABILITY OF FACILITIES AT EACH RELEASE OF
THE SYSTEM OR PRODUCT.

THE MANUALS ARE FILED UNDER THE FOLLOWING CLASSIFICATIONS.

    0   BIBLIOGRAPHY
    1   INTRODUCTORY
    2   PLANNING
    3   SCL
    4   COLLECTING AND EDITING

==== ercs07/emas-2900/qfiles5apr_f77aux2.txt ====
!              
!                         EXPORT LIST
!
!
%ROUTINESPEC F77 STOP(%HALFINTEGER PTYPE,%INTEGER VAL)
%ROUTINESPEC F77 PAUSE (%HALFINTEGER PTYPE,%INTEGER VAL)
%ROUTINESPEC F77 RTERR(%HALFINTEGER ERRNO)
%ROUTINESPEC F77 IOERR(%HALFINTEGER ERRNO)
%ROUTINESPEC F77 CONCAT(%HALFINTEGER COUNT,%INTEGER ADRINDESCS,
OUTPUTBASE,%HALFINTEGER OUTPUTDISP,OUTPUTLEN)
%ROUTINESPEC F77COPY (%INTEGER SCE BASE,%HALFINTEGER SCE DISP,
SOURCE LEN,%INTEGER TARGET BASE,%HALFINTEGER TARGET DISP,TARGET LEN)
%INTEGERFNSPEC F77 INDEX (%INTEGER SEARCHBASE,
%HALFINTEGER SEARCHDISP,SEARCHLEN,%INTEGER KEYBASE,%HALFINTEGER KEYDISP,
KEYLEN)
%ROUTINESPEC F77 CMULTC(%INTEGER AD,%REAL R1,C1,R2,C2)
%ROUTINESPEC F77 CDIVC(%INTEGER AD,%REAL R1,C1,R2,C2)
%HALFINTEGERFNSPEC F77 CEQUC(%REAL R1,C1,R2,C2)
%HALFINTEGERFNSPEC F77 CNEQC(%REAL R1,C1,R2,C2)
%INTEGERFNSPEC F77 IABS(%INTEGERNAME I)
%REALFNSPEC F77 ABS(%REALNAME X)

==== ercs07/emas-2900/r1_file7.txt ====
   !Modified     10/May/82   12.00





!**********************************************************************!
!**********************************************************************!
         !                                               !
         !                                               !
         !     Complete FILE INPUT/OUTPUT Procedures     !
         !                                               !
         !          for FORTRAN77 Programs               !
         !                                               !
         !           on ICL  PERQ Machines               !
         !                                               !
         !                                               !
!**********************************************************************!
!**********************************************************************!



==== ercs07/emas-2900/slogof_estjhpfr.txt ====
    
      SUBROUTINE EST (STR, BUF, LEFT, RIGHT)
      INTEGER  STR(1), BUF(1), LEFT, RIGHT  
      INTEGER  GETX, PUTX   
      INTEGER  GCHAR
      GETX = 1  
      PUTX = LEFT   
      CONTINUE  
13014 CONTINUE  
    
      IF (.NOT.(PUTX .LE. RIGHT))GO TO 13015
    
      CALL PCHAR (BUF, PUTX, GCHAR (STR, GETX)) 
      GETX = GETX + 1   
      PUTX = PUTX + 1   
      GO TO 13014   
13015 CONTINUE  
    
      RETURN
      END   

==== ercs07/emas-2900/slogos_fslook.txt ====
LOOK SLOGOS_ARGENAFS
*
LOOK SLOGOS_BPOLSHFS
*
LOOK SLOGOS_BRACESFS
*
LOOK SLOGOS_CDIAGAFS
*
LOOK SLOGOS_CGENAJFS
*
LOOK SLOGOS_CODE1FFS
*
LOOK SLOGOS_CODE2AFS
*
LOOK SLOGOS_CONTFTFS
*
LOOK SLOGOS_CRUTCHFS
*
LOOK SLOGOS_DDEFFTFS
*
LOOK SLOGOS_ESPFS

==== ercs07/emas-2900/kbscscec_fpiosc.txt ====
CFPIO MODULE                                                                 INC
C'-'                                                                        VALP
 NR1                                                                         JNN
NR31  *USE E FORMAT                                                          SBB
T                                                                            SUB
 FP10                                                                        J L
 LLREAL  *10.0                                                              CHAR
NUMBER  *NUMBER:=NUMBER+FRACTION                                             LSS
NENT INCH  *SKIP 'E'                                                         ICP

==== ercs07/emas-2900/dsa20_libnuc.txt ====
(*#C0,T-*)
     
PROGRAM  ICL9LPLIBNUC  ;
 
 
 
CONST
 
 
    (****  CONSTANT DEFINITIONS FOR INTERFACE TO EDINBURGH ROUTINES :-  ****)
    (****  -----------------------------------------------------------  ****)
 
    (*  GENERAL :-  *)
 
  EDRSPOK = 0  ;
 
    (*  JOB SPACE VARIABLE HANDLING :-  *)
 
  EDJSVMDINT = 1  ;
  EDJSVMDSTR = 2  ;
 

==== ercs07/emas-2900/cobolsce_cobsys.txt ====
!__________________________________________________________________________________
!
!    COBOLE COMMAND IS EQUIVALENT TO ICLMACRO COBOLCOMPILE.  IT PASSES
!     THE PARAMETERS ON TO COBCOLCOMPILE, WHICH IS AN ENTRY IN THE
!      COMPILER MODULE, COBOLY.  THIS THEN CALLS ICL9HNCOMPILESUPPORT WHICH
!     PROCESSES THE OPTIONS AND CALLS THE COMPILER VIA A LINK
!      DESCRIPTOR.   AFTER COMPLETION OF THE COMPILATION THE
!     UTILITY  COMF  IS CALLED TO CONVERT THE OMF FILE TO EMAS
!     OBJECT FORMAT, MARKING THE PROGRAM I.D. AS THE MAIN ENTRY.
!
!_____________________________________________________________________________
  
!**********************************************************************
!*
!*                         C O B O L
!*
!*                COMPILER ENVIRONMENT ROUTINES
!*                  AND CTM RUN TIME SUPPORT
!*
!**********************************************************************
!

==== ercs07/emas-2900/slogof_rstk04fr.txt ====
    
      SUBROUTINE STKOUT(ADDR,ATYPE,SUBS,SBTY,BIAS)  
      INTEGER ADDR,ATYPE,SUBS,SBTY,BIAS 
    
      INTEGER     NAME (9)  
      COMMON      /NLNAME/ NAME 
    
      INTEGER  LBUF (66)
      INTEGER  LCOUNT   
      INTEGER  PGECNT   
      INTEGER  UHEAD (15)   
      INTEGER  CHEAD (8)
      INTEGER ICLP09
      COMMON   /PRT/    LBUF
      COMMON   /PRT/    LCOUNT  
      COMMON   /PRT/    PGECNT  
      COMMON   /PRT/    UHEAD   
      COMMON   /PRT/    CHEAD   
      COMMON   /PRT/    ICLP09  
      INTEGER CLOCN,L   
      IF (.NOT. (ADDR .NE. 0))GO TO 13028   

==== ercs07/emas-2900/slogof_espjhpfr.txt ====
    
      SUBROUTINE ESP (WORD, BUF, LEFT, RIGHT)   
      INTEGER  WORD, BUF(1), LEFT, RIGHT
      INTEGER  CHAR, MFLAG, WORK, XMINUS, XZERO, COL
      INTEGER QQMOD 
      DATA     XMINUS / 45 /
      DATA     XZERO  / 48 /
      IF (.NOT. (WORD .LT. 0))GO TO 13008   
    
      WORK = - WORD 
      MFLAG = 1 
      GO TO 13009   
13008 CONTINUE  
    
      WORK = WORD   
      MFLAG = 0 
13009 CONTINUE  
    
      COL = RIGHT   
      CONTINUE  
13010 CONTINUE  

==== ercs07/emas-2900/slogosorg_pass2afs.txt ====
'HEAD'  PASS 2
C     EDIT DATE   09DEC78  15:15
C     SOURCE FILE PASS2AJH.FS
C     AUTHOR      A. J. HOWARD
C     CLUSTER     4
      'OUTFILE'   PASS2AJH.FR
N     OVERLAY     OLPS2
      SUBROUTINE  PASS2
      'INCLUDE'   LOGOSAJH.IN,
      'INCLUDE'   NLISTCFTM.IN,
      'INCLUDE'   LCFUNCAJH.IN,
      'INCLUDE'   XNAMEAJH.IN,
      INTEGER     IERR
      EXTERNAL    DEFLIT, OLPNA, OLOBJ
      LOGICAL     NLTEST
      CALL RBOTH  (DATALC)
      CALL NLSCAN (DEFLIT, NLX)
      CALL RBOTH  (CODE)
      CALL WRBLOK
      XNX = XNX - 2
      'IF' (XNX .GT. 0)

==== ercs07/emas-2900/pt_bufftest.txt ====
PROGRAM BUFFTEST(OUTPUT);
VAR I:INTEGER;
BEGIN
WRITELN('TESTING O/P OF >160 CHARACTERS');
FOR I:=1 TO 180 DO WRITE('A');
WRITELN;
END.

==== ercs07/emas-2900/slogos_pverblfs.txt ====
'HEAD'  PROCESS VERB LIST
C     EDIT DATE   31JAN79  07:33
C     SOURCE FILE PVERBLFTM.FS
C     AUTHOR      F. T. MICKEY
C     CLUSTER     3
      'OUTFILE'   PVERBLFTM.FR
N     OVERLAY     OLPVR
C
C     THE BASIC VERB LIST PROCESSING LOOP -- THE TRANSFERS
C     DECK HAS BEEN INCLUDED TO SIMPLIFY CONTROL TRANSFER.
C
      SUBROUTINE  PVERBL
      'INCLUDE'   LOGOSAJH.IN,
      'INCLUDE'   OPERSAJH.IN,
      'INCLUDE'   LEVELSAJH.IN,
      'INCLUDE'   PSHCOMFTM.IN,
      'INCLUDE'   STKDFA.IN,
      'INCLUDE'   STKDFD.IN,
      'INCLUDE'   NLISTCFTM.IN,
      'INCLUDE'   CPAREAJH.IN,
      'INCLUDE'   BLDPOAJH.IN,

==== ercs07/emas-2900/sforf_emasiff.txt ====

      SUBROUTINE RDLIN(CHAN,BUFFER,MAX,ERROR)
      INTEGER CHAN,BUFFER(1),MAX,ERROR
      INTEGER WORDS
      WORDS=(MAX+3)/4
      READ(CHAN,1000,END=100)(BUFFER(I),I=1,WORDS)
      ERROR=1
      RETURN
  100 ERROR=9
      RETURN
 1000 FORMAT(20A4)
      END
C
C
      SUBROUTINE WRLIN(CHAN,BUFFER,CHARS)
      INTEGER CHAN,BUFFER(1),CHARS
      INTEGER WORDS
      WORDS=(CHARS+3)/4
      WRITE(CHAN,1000)(BUFFER(I),I=1,WORDS)
      RETURN
 1000 FORMAT(1X,33A4)

==== ercs07/emas-2900/slinkf_stacksfr.txt ====
    
      BLOCK DATA
    
      INTEGER     MSTACK(30), MX, MSTKSZ
      COMMON      /STACKS/ MSTACK, MX, MSTKSZ   
      DATA     MX /1/   
      DATA     MSTKSZ /30/  
      END   

==== ercs07/emas-2900/optdfmt.txt ====
!*
%RECORDFORMAT OPTDFMT(     %C
%INTEGER ADICT     ,{ @ of dictionary area}
%INTEGER MAXDICT   ,{ currect available length of dictionary}
%INTEGER ANAMES    ,{ @ of name table}
%INTEGER ABLOCKS   ,{ @ of block table}
%INTEGER MAXBLOCKS ,{ current available length of block table area}
%INTEGER NEXTBLOCK ,{ next available block index}
%INTEGER FREEBLOCKS,
%INTEGER CBNPTR    ,{ listhead of common block records}
%INTEGER SCPTR     ,{ listhead of local identifiers}
%INTEGER ATABS     ,{ @ of area for assorted optimiser tables}
%INTEGER MAXTABS   ,{ curent available length of opt table area}
%INTEGER FREETABS  ,{ next free location in opt table area}
%INTEGER EXBPTR    ,{ exit block table}
%INTEGER ENTBPTR   ,{ entry block table}
%INTEGER ALOOPS    ,{ @ loop table area}
%INTEGER MAXLOOPS  ,{ current available length of loop table area}
%INTEGER FREELOOPS ,{ next free location in loop table area}
%INTEGER ATRIADS   ,{ @ of triad area}
%INTEGER LASTTRIAD ,{ last allocated triad index}

==== ercs07/emas-2900/slogosorg_atestain.txt ====
      LOGICAL     ATEST
      COMMON      /ATST/   ATEST





==== ercs07/emas-2900/bscmast30_bscbase30.txt ====
!
!***********************************************************************
!*
!*                EMAS 2900 INTERFACE FOR KENT BASIC
!*
!**********************************************************************
!
!***********************************************************************
!*
!*                             EXTERNALS
!*
!***********************************************************************
!
%EXTERNALSTRING(16) INPUTFILE,OUTPUTFILE
!
!
!**********************************************************************
!*
!*                            CONSTANTS
!*
!**********************************************************************

==== ercs07/emas-2900/rel5_init19.txt ====
module f77init;
{ updated 21/3/82 - function openfile defined }
{ updated 23/4/82 - real underflow dealt with in handler all }
{                   procedure movebee inserted }
{ updated 3 may  -  div 2 inserted in dblelen , local areas}
{ updated 4 may  -  localrec string dispensed with}
{         5 may -  size of area and common tables increased to 32}
{         7 may -  remove newline after x chars from iocp}
{        25 may - increase size of comarea & startad }
{                 set initial values of locind & comind to 0 }
{                 define constant maximum values for them }
{                 check against these values before creating new area  }
{                 reduce length of name in comrec & list6rec }
{                 set bc flag false if named common }
{                 set startad[areaind] if blank common already exists }
{                 set data to startad[areaind] if preinitialising }
{                 comment out any references to locarea }
{                 comment out any references to rootnam }
{       28/may/82 - fault in initialisation of arrays greater then 32kw fixed
{                   in routine fill.}
{        3/6/82 - Correct calculation of segment size(fsize) so that 64K word

==== ercs07/emas-2900/pt_bigheap.txt ====
PROGRAM NEWTTS (INPUT,OUTPUT);
  (*Complete version using the heap to the full*)
CONST
  MINSPERDAY = 1440;
  STREND = '@';  (*Marks the end of variable length string in array of char
                                            *)
  MAXSTL=30;  (*30 includes the strend!!*)

TYPE
  MINTIME = 0..MINSPERDAY; (*all times represented internally thus *)
  DAYTIME = PACKED ARRAY [1..5] OF CHAR; (*transput representation*)

  STRING = PACKED ARRAY [1..MAXSTL] OF CHAR;
                      (*for titles and transput of stations*)
  STATION = (EDINB,PETERB,ELY,CAMB,LONDX,LONDL,ROYST); (*no ordering*)

  REFCHANGE = ^CHANGE;
  CHANGE = RECORD
      AT :STATION;
      ARRT :MINTIME;
      WAIT :INTEGER;

==== ercs07/emas-2900/pnxrel11_oplistp46.txt ====
! 21/10/84 replace calls on OPVALS at SW(LOADB) & SW(STOREB) in FORMLINE
!          new SW(GLALIT) at SW(STKLIT) in GEN
! 18/09/84 - insert switch for STFNID in GEN and delete array QUAL
! 10/07/84 new version of targ_fptos
! 05/07/84 new switch SW(INTRIN) in FORMLINE
! 03/07/84 make FPTOS a string function and put in an include file
!          set up string REG1 in targ_target & substitute for "reg-1"
!          remove OPVALS for LOADB & STOREB
!          define INTRINFNS to output new INTRIN fns
! 21/03/84 amend arrays SW, RTOL, ENDS, OPVALS. Delete ST & SZTY & REG
! 19/03/84 add in ADICT on calls to FPTOS
! 08/03/84 change INTEGER mapping increments to W1 etc.
! 28/02/84 FPTOS inserted
! 01/10/1/83 copied from ERCS06.REL90_OPLISTB36
!*
%CONSTINTEGER OPSYS=1
!   =0  (Emas ISO)
!   =1  (VME  EBCDIC)
!*
%INCLUDE "host_host"
!*

==== ercs07/emas-2900/slogosorg_nlistcin.txt ====
C     EDIT DATE   09DEC78  14:13
C     SOURCE FILE NLISTCFTM.IN
C     AUTHOR      F. T. MICKEY

      INTEGER  NI,     NJ,     NK
      INTEGER  NSIZE
      INTEGER  NLX,    FNLX,   REMNLX, OVNLX,  TNAME
      INTEGER  NLSTRT, NLSTOP, NLSIZE, SRCHST
      INTEGER  NTSTRT
      INTEGER  NTSTOP
      INTEGER  NTSIZE
      INTEGER  PARFLG
      INTEGER  SPARFL
      INTEGER  NLWRDS
      INTEGER  TX
      INTEGER  NLENO
      INTEGER  STDMD
      INTEGER  MSHIFT
      INTEGER  REGCNT
      INTEGER  NULLX
      INTEGER  STPTRX

==== ercs07/emas-2900/sforf_labgenf.txt ====
      INTEGER FUNCTION LABGEN (NUM)
      INTEGER  INPTR
      INTEGER  OUTPTR
      INTEGER  INMAX
      INTEGER  MAXTAB
      INTEGER  MAXLIN
      INTEGER  IFMAX
      INTEGER  MAXLEV
      INTEGER  LINENO
      INTEGER  PAGE
      INTEGER  CLINE
      INTEGER  TLIMIT
      INTEGER  LN
      INTEGER  I, J, K
      INTEGER  II, JJ, KK
      INTEGER  LEXVAL
      INTEGER  SLEN
      INTEGER  LEVEL
      INTEGER  LEN
      INTEGER  INCHAN
      INTEGER  OUTCHN

==== ercs07/emas-2900/slogof_gettxffr.txt ====
    
      INTEGER FUNCTION GETTX (INDEX)
    
      INTEGER  NI,     NJ,     NK   
      INTEGER  NSIZE
      INTEGER  NLX,    FNLX,   REMNLX, OVNLX,  TNAME
      INTEGER  NLSTRT, NLSTOP, NLSIZE, SRCHST   
      INTEGER  NTSTRT   
      INTEGER  NTSTOP   
      INTEGER  NTSIZE   
      INTEGER  PARFLG   
      INTEGER  SPARFL   
      INTEGER  NLWRDS   
      INTEGER  TX   
      INTEGER  NLENO
      INTEGER  STDMD
      INTEGER  MSHIFT   
      INTEGER  REGCNT   
      INTEGER  NULLX
      INTEGER  STPTRX   
      INTEGER  SPMODE   

==== ercs07/emas-2900/strans_includ.txt ====

      INTEGER ARRAY(10)
      LOGICAL FRED

==== ercs07/emas-2900/pddemo_qcode2.txt ====
%CONSTINTEGER EMAS=0,PERQ=1,SYS=perq
%EXTERNALROUTINE QCODE(%INTEGER START,FINISH,CA,MODE)
! %EXTERNALROUTINESPEC DUMP(%INTEGER A,B,C,D)
 %IF SYS=EMAS %START; %SYSTEMROUTINESPEC PHEX(%INTEGER N) ; %FINISHELSESTART

%ROUTINE PHEX(%INTEGER N)

%CONSTBYTEINTEGERARRAY K(0:15)='0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'
%HALFINTEGER I,J
%CYCLE J=1,-1,0
   %CYCLE I=12,-4,0
       PRINTSYMBOL(K((HALFINTEGER(ADDR(N)+J)>>I)&15))
   %REPEAT
%REPEAT
%END
%FINISH
!*TOP
!****************************************************************************
!*                                                                          *
!*             PERQ QCODE DISSASSEMBLER 
!*                                                                          *

==== ercs07/emas-2900/npc1_pffileio.txt ====
{ visible procedures exported by the unix file i/o handler }

procedure Terminate(var String: ArgString);
  extern;

function HeadsMatch(var Name: ArgString;
                    Prefix: packed array[l..u: integer] of char): Boolean;
  extern;


function Accessible(var FileName: ArgString; Mode: FileMode): Boolean;
  extern;

procedure ResetFile (var TheFile: UnixFile; var FileName: ArgString);
  extern;

procedure RewriteFile (var TheFile: UnixFile; var FileName: ArgString);
  extern;

procedure ReadFileLine(var TheFile: UnixFile);
  extern;

==== ercs07/emas-2900/npc1_pfsource.txt ====
procedure Error(Code: ErrorSpan; Position: TextPosition);
  extern;

procedure StartError(Position: TextPosition);
  extern;

procedure PragmaticError(Code: Scalar);
  extern;

procedure SystemError(Code: Scalar);
  extern;

procedure FatalError(Code: Scalar);
  extern;

procedure NextCh;
  extern;

function LineEnded: Boolean;
  extern;


==== ercs07/emas-2900/slinks_mapperfs.txt ====
'HEAD'  LINKER, CROSS REFERENCE MAP
C     EDIT DATE   26JAN79  09:33
C     SOURCE FILE MAPPERGAK.FS
C     AUTHOR      GARY A. KUDIS
C     CLUSTER     6
      'OUTFILE' MAPPERGAK.FR
      SUBROUTINE MAPPER
      'INCLUDE' LDATAXGAK.IN,
      'INCLUDE' IODEFNGAK.IN,
      INTEGER     SMSGS (12)
      INTEGER     NMSGS (12)
      DATA        SMSGS /'STARTING ADDRESS IS 0000'/
      DATA        NMSGS /'NO STARTING ADDRESS ????'/
C MAPPER ::
X     WRITE (DBCHAN, 1)
X1    FORMAT (' ENTER MAPPER')
      CALL WRLIN (MPCHAN, '  ', 2)
      CALL WRLIN (MPCHAN, '  ', 2)
      CALL WRLIN (MPCHAN, '  ', 2)
      'IF' (SFLAG)
         CALL EHX (START, SMSGS, 21, 24)

==== ercs07/emas-2900/pptests_pptest1a.txt ====
program ptest1(output);
{ test simple expression rearrangement }

  const
    zero = 0;
    one = 1;
    two = 2;
    bytelimit = 255;
    halflimit = 65535;

  type
    byte = 0 .. bytelimit;
    half = 0 .. halflimit;

  var
    b1,  b2,  b3: byte;
    h1,  h2,  h3: half;
    i1,  i2,  i3: integer;

  begin
    b1 := 0;

==== ercs07/emas-2900/psclsce209_rtsup7.txt ====
! MODIFIED 14/04/81 - VERSION 20.9
! MYOUTREC CALLS S#OUTREC
! INTERMEDIATE BUFFERS FOR DATA FILES TAKEN FROM T#WRK

!**********************************************************************
!*
!*                    RUN TIME PASCAL
!*
!**********************************************************************
!
!
!**********************************************************************
!*
!*                            CONSTANTS
!*
!**********************************************************************
!
%CONSTINTEGER NO=0,YES=1
%CONSTSTRING(1)%ARRAY HEX TAB(0:15)="0","1","2","3","4","5","6","7", %C
              "8","9","A","B","C","D","E","F"
!

==== ercs07/emas-2900/inpds_stkdfbin.txt ====
C     EDIT DATE   03DEC78  11:45
C     SOURCE FILE STKDEFB.IN
C     AUTHOR      A. J. HOWARD
      INTEGER     MODE (40),   SUBX (20),   SUBXM (20),  BIAS (40)
      EQUIVALENCE (STK (1, 3), MODE  (1))
      EQUIVALENCE (STK (1, 2), SUBX  (1))
      EQUIVALENCE (STK (1, 4), SUBXM (1))
      EQUIVALENCE (STK (1, 5), BIAS  (1))


==== ercs07/emas-2900/tstfiles_tst12blos.txt ====
''TITLE, TEST12B
''HEAD, LINKER COMMON ALLOCATION TEST
''LIST
  /////////////////////////////////////////////////////////
  //                                                     //
  // DATE   : SEP 18,1978                                //
  //                                                     //
  // AUTHOR : T. CHENG                                   //
  //                                                     //
  // TEST # : TEST12B                                    //
  //                                                     //
  // PURPOSE :   TEST MEMORY ALLOCATION FOR BLANK        //
  //              AND NAMED COMMONS.                     //
  //                                                     //
  // NOTE :      LINK WITH TEST12A,TEST12C AND           //
  //              TEST12D FOR TESTING.                   //
  //                                                     //
  /////////////////////////////////////////////////////////
''EJECT
     'LBR' BA, BB[3], BC 'RBR',                           // BLANK COMMON
     COM1 : 'LBR' BFLAG1, BUF1[100], 'DP' BPTR1 'RBR',    // #1 NAMED COMMON

==== ercs07/emas-2900/npc2_withstmts.txt ====


{

                         MODULE 21


                       With Statements





 The set of records addressed by currently open with-statements  is
 held  as  a 'with-stack', pointed to by the variable TopWithEntry,
 and maintained by the procedures OpenWith and CloseWith.

 OpenWith creates an extended reference  to  the  record  variable,
 generates  code  if  necessary  to  save  its address in temporary
 storage, and pushes a new entry onto the  with-stack  holding  the
 variable  reference  and a unique 'with-base' key generated by the

==== ercs07/emas-2900/ecodelist_test0l.txt ====
Einitialise 
Enextproc 
Edataentry  A    2    0    4
Eproc TEST1    0    0
 Elinestart ++++++++++++++++++++++    3
 Elinestart ++++++++++++++++++++++    4
Estklit       -3
Estkaddr   Gla     + 0      4    A
Eop    ESTORE
 0 0 0
Estack:
 2:AddrDir       Gla     +    0  size: 4
 1:LitVal           -3  size: 4
Ed4   Consts  + 56    FFFFFFFD
 Elinestart ++++++++++++++++++++++    5
Elabel    -1
Eprocend       0
Eterminate 

==== ercs07/emas-2900/slinks_datadffs.txt ====
'HEAD'  DATA DEFINITIONS FOR LINKER
C     EDIT DATE   16JAN79  15:17
C     SOURCE FILE DATADFGAK.FS
C     AUTHOR      GARY A. KUDIS
C     CLUSTER     0
C     0.00 /BITDFN/ BIT DEFINITIONS
C     0.01 /CHARAC/ CHARACTER DEFINITIONS
C     0.02 /DARRAY/ DICTIONARY ARRAY
C     0.03 /ERRDFN/ ERROR DEFINITIONS
C     0.04 /IODEFN/ IO CHANNEL DEFINITIONS
C     0.05 /LDATAX/ LINKER DATA
C     0.06 /MEMORY/ MEMORY USE MAP
C     0.07 /NTABLE/ NAME LIST TABLE
C     0.08 /PNAMES/ PRINT NAME LIST DATA STRUCTURES
C     0.09 /QUESTS/ QUESTIONS TO USER
C     0.10 /RECORD/ INPUT RECORD DEFINITIONS
C     0.11 /STACKS/ LINKER STACK AREAS
      'OUTFILE' BITDFNGAK.FR
      BLOCK DATA
      'INCLUDE' BITDFNGAK.IN,P
      DATA        BIT00 /1/

==== ercs07/emas-2900/oldqfiles_f77fdiag1.txt ====
! MODIFIED   25/ 2/82   16.00




%EXTERNALROUTINE QFDIAG (%INTEGER      LOCAL POINTER       ,
                         %INTEGER     GLOBAL POINTER       ,
                         %INTEGER     PCOUNT               ,
                         %INTEGER   ACTIVITY CONTROL BLOCK ,
                         %INTEGER   SYMTABLE BASE          ,
                         %INTEGER   SYMTABLE DISP          ,
                         %INTEGER       MODE,DIAG          ,
                         %INTEGER      ASIZE,FIRST         ,
                         %INTEGERNAME         NEXT         )
                         !
                         !
                         !
!
!*********************************************************************%C
!*********************************************************************%C
                                                                      %C

==== ercs07/emas-2900/slogof_ehxjhpfr.txt ====
    
      SUBROUTINE EHX (WORD, BUF, LEFT, RIGHT)   
      INTEGER  WORD, BUF(1), LEFT, RIGHT
      INTEGER  WORK, CHAR, COL, XZERO, XLETA, MASK, BIAS
      DATA     XZERO / 48 / 
      DATA     XLETA / 55 / 
      DATA     MASK  / 15 / 
      COL = RIGHT   
      WORK = WORD   
      CONTINUE  
13016 CONTINUE  
    
      IF (.NOT.(COL .GE. LEFT))GO TO 13017  
    
      CHAR = IAND (WORK, MASK)  
      IF (.NOT. (CHAR .GE. 10))GO TO 13018  
    
      BIAS = XLETA  
      GO TO 13019   
13018 CONTINUE  
    

==== ercs07/emas-2900/pt_paramtest.txt ====
PROGRAM PARAMTEST(OUTPUT);
VAR I:INTEGER;
PROCEDURE MULTINT(VAR I:INTEGER);EXTERN;
BEGIN
I:=10;
WRITELN('CALLING MULTINT');
MULTINT(I);
WRITELN(I);
END.

==== ercs07/emas-2900/bscmast30_xdumps.txt ====
%CONSTINTEGER YES = 1,      %C
               NO = 0
%STRING(15)%FN SFROMI (%INTEGER X)
%INTEGER REM,NUMB,NF
%STRING(15) ANS
ANS = ''
%IF X < 0 %THEN %START
    NF = YES
    X = X*(-1)
%FINISH %ELSE NF = NO
%CYCLE
NUMB = X
X = X//10
REM = NUMB - X*10
ANS = TOSTRING(REM+'0').ANS
%EXIT %IF X = 0
%REPEAT
%IF NF = YES %THEN ANS = "-".ANS
%RESULT = ANS
%END     ;!  OF SFROMI
%STRING(8)%FN HEXOF (%INTEGER X)

==== ercs07/emas-2900/pffiles_storage.txt ====
{

 History
 -------

 17/10/85 - delete StoreImp.
 22/10/85 - change type of Amount in spec for Acquire from WordRange
            to ByteRange. (agh)
 22/10/85 - redefine specs for MakeItem, SelectManual following
            simplification of file initialisation. Change
            AppendManual to AppendItem. (agh)
 25/10/85 - Add spec for SaveParamSpace. (agh) 
 09/12/85 - Add spec for PrintAddress. (agh)

                                                                       }

procedure OpenStackFrame;
  extern;

procedure CloseStackFrame;
  extern;

==== ercs07/emas-2900/slinkf_finishfr.txt ====
    
      SUBROUTINE FINISH 
    
      INTEGER     ECODE 
      INTEGER     CMCHAN
      INTEGER     RBCHAN
      INTEGER     OBCHAN
      INTEGER     MPCHAN
      INTEGER     DBCHAN
      INTEGER     TTYIN 
      INTEGER     TTYOUT
      COMMON      /IODEFN/ ECODE
      COMMON      /IODEFN/ CMCHAN   
      COMMON      /IODEFN/ RBCHAN   
      COMMON      /IODEFN/ OBCHAN   
      COMMON      /IODEFN/ MPCHAN   
      COMMON      /IODEFN/ DBCHAN   
      COMMON      /IODEFN/ TTYIN
      COMMON      /IODEFN/ TTYOUT   
C     WRITE (DBCHAN, 1) 
C    1FORMAT (' ENTER FINISH')  

==== ercs07/emas-2900/slogof_stackdfr.txt ====
 
      BLOCK DATA 
 
      INTEGER     STK (20, 13) 
      INTEGER     NAMEX (40) 
      INTEGER     OPX,    STKSIZ, OCBIT,  FUNBIT, SBIAS 
      INTEGER ICLP14 
      COMMON      /SDEFS/ STK,    OPX,    STKSIZ, OCBIT,  FUNBIT, SBIAS 
      COMMON      /SDEFS/ ICLP14 
      EQUIVALENCE (STK (1, 1), NAMEX (1)) 
 
      INTEGER     MODE (40),   SUBX (20),   SUBXM (20),  BIAS (40) 
      EQUIVALENCE (STK (1, 3), MODE  (1)) 
      EQUIVALENCE (STK (1, 2), SUBX  (1)) 
      EQUIVALENCE (STK (1, 4), SUBXM (1)) 
      EQUIVALENCE (STK (1, 5), BIAS  (1)) 
 
      INTEGER     LOCFLG (20) 
      EQUIVALENCE (STK (1, 7), LOCFLG (1)) 
 
      INTEGER     OSTACK (20) 

==== ercs07/emas-2900/inpds_srcdfsin.txt ====
C     EDIT DATE   19AUG78  07:51
C     SOURCE FILE   SRCDFSFTM.IN
C     AUTHOR        F. T. MICKEY
C     DATA DEFINITIONS FOR SOURCEFTM.ST
      INTEGER  QUOTEX ///// NOT USED
      INTEGER  CONTF
      INTEGER  CONTRL
      INTEGER  HEAD
      INTEGER  EJECT
      INTEGER  BLANK
      INTEGER  SLASH
      INTEGER  CARDC
      INTEGER  FLINCT (8)
      INTEGER  EOCC
      INTEGER  ENDCRD (3)
      INTEGER  RECORD (66)
      INTEGER  RECPTR
      INTEGER  SOURCE (150)
      INTEGER  SRCEND
      INTEGER  SLEN
      INTEGER  TF (3)

==== ercs07/emas-2900/imptests_events.txt ====
%BEGIN
%EXTERNALINTEGERFNSPEC EVENTINF
%INTEGER INFO,FLAG
%INTEGERARRAY ARR(1:10)
%STRING(6) STR
%ONEVENT 6 %START
INFO=EVENTINF
%MONITOR
FLAG=FLAG+1
%IF FLAG = 0 %THEN -> FIRST %ELSE -> SEC
%FINISH
FLAG=-1
STR="THIS ISA STRING"
FIRST:
ARR(11)=4
SEC:
%ENDOFPROGRAM

==== ercs07/emas-2900/qfiles_anal10.txt ====
!* 14/04/82   
!*
!************  IMP80 version  ************
!*
%CONSTINTEGER TESTVERSION=1;!  0  NO   1  YES
%CONSTINTEGER DICTVERSION=0;!  0  EMAS   1  VME
!*
!{2900C} %CONSTINTEGER W1=2
!{2900C} %CONSTINTEGER W2=4
!{2900C} %CONSTINTEGER W4=8
!{2900C} %CONSTINTEGER W6=12
{PERQC} %CONSTINTEGER W1=1
{PERQC} %CONSTINTEGER W2=2
{PERQC} %CONSTINTEGER W4=4
{PERQC} %CONSTINTEGER W6=6
!*
!*
!**** SYNTAX ****
!*
!* Syntax tables generated from file SYNTAX48 on 11/03/82 at 06.51.27
!*

==== ercs07/emas-2900/tests_test1b.txt ====
program test1;
var a,b:integer;
    rec1: record a,b:integer; end;
    r1,r2:real;
    b1,b2:boolean;
begin
a:=-3;
b:=rec1.b*a;
r1:=a*b+b;
r2:=-r1;
b1:=a>b;
if b1 then b2:=r1<r2
end.

==== ercs07/emas-2900/slogof_listajfr.txt ====
    
      SUBROUTINE  LIST (FUNC, ARG1, ARG2)   
      INTEGER     FUNC, ARG1, ARG2  
    
      INTEGER     LISTF,  SNLPRT, SUMPRT, SYMFLG
      INTEGER     PRINTF, SKIP,   COMPFL (2)
      INTEGER     LOCPRT, USFLGS, NEGFLG, SKNAME (8)
      INTEGER     ORGFLG, CTLUSE, CTLERR, TTL (8)   
      INTEGER     DUMFLG
      INTEGER ICLP01
      COMMON      /CTLCOM/    LISTF,  SNLPRT, SUMPRT, SYMFLG
      COMMON      /CTLCOM/    PRINTF, SKIP,   COMPFL
      COMMON      /CTLCOM/    LOCPRT, USFLGS, NEGFLG, SKNAME
      COMMON      /CTLCOM/    ORGFLG, CTLUSE, CTLERR, TTL   
      COMMON      /CTLCOM/    DUMFLG
      COMMON      /CTLCOM/ ICLP01   
      EXTERNAL    OLLST 
      IF (.NOT. (LISTF .NE. 0 .AND. PRINTF .NE. 0))GO TO 13000  
    
      CALL OLIST (FUNC, ARG1, ARG2) 
13000 CONTINUE  

==== ercs07/emas-2900/sforf_rsxintf.txt ====
SUBFILE: PLNFTM.FR @16:2 23-MAY-1979 <055> (1052)
      SUBROUTINE PLN (DUMMY)
      INTEGER  INPTR
      INTEGER  OUTPTR
      INTEGER  INMAX
      INTEGER  MAXTAB
      INTEGER  MAXLIN
      INTEGER  IFMAX
      INTEGER  MAXLEV
      INTEGER  LINENO
      INTEGER  PAGE
      INTEGER  CLINE
      INTEGER  TLIMIT
      INTEGER  LN
      INTEGER  I, J, K
      INTEGER  II, JJ, KK
      INTEGER  LEXVAL
      INTEGER  SLEN
      INTEGER  LEVEL
      INTEGER  LEN
      INTEGER  INCHAN

==== ercs07/emas-2900/strans_endlin4fr.txt ====
    
      SUBROUTINE ENDLIN 
    
      INTEGER  INPTR
      INTEGER  OUTPTR   
      INTEGER  INMAX
      INTEGER  MAXTAB   
      INTEGER  MAXLIN   
      INTEGER  IFMAX
      INTEGER  MAXLEV   
      INTEGER  LINENO   
      INTEGER  PAGE 
      INTEGER  CLINE
      INTEGER  TLIMIT   
      INTEGER  LN   
      INTEGER  I, J, K  
      INTEGER  II, JJ, KK   
      INTEGER  LEXVAL   
      INTEGER  SLEN 
      INTEGER  LEVEL
      INTEGER  LEN  

==== ercs07/emas-2900/pffiles_codeinit.txt ====
procedure InitCodeGeneration;
  extern;

procedure EndCodeGeneration;
  extern;

==== ercs07/emas-2900/calliocp.txt ====
pROGRAM IOCP;
{ * auto- }
IMPORTS F77CTL FROM F77CTL;
VAR I,sym,cc,dum,seg1,off1,seg2,off2:INTEGER;
    STR1,STR2:PSTR;
    FILENAME:STRING;
BEGIN
dum:=0;
outptr:=0;
REWRITE(OUTPUT,'CONSOLE:');
WRITELN('NAME OF LISTING FILE?');
CLOSE(OUTPUT);
RESET(INPUT,'CONSOLE:');
READLN(FILENAME);
REWRITE(OUTPUT,FILENAME);
SYM:=42;
i:=IOCP(3,dum,SYM);
CC:=10;
i:=IOCP(5,dum,CC);
SYM:=37;
i:=IOCP(3,dum,SYM);

==== ercs07/emas-2900/optspecs1.txt ====
!*
!***********************************************************************
!* External data items                                                 *
!***********************************************************************
!*
%EXTRINSICINTEGER ADICT     ;! @ of dictionary area
%EXTRINSICINTEGER MAXDICT   ;! currect available length of dictionary
%EXTRINSICINTEGER ANAMES    ;! @ of name table
%EXTRINSICINTEGER ABLOCKS   ;! @ of block table
%EXTRINSICINTEGER MAXBLOCKS ;! current available length of block table area
%EXTRINSICINTEGER NEXTBLOCK ;! next available block index
%EXTRINSICINTEGER FREEBLOCKS
%EXTRINSICINTEGER CBNPTR    ;! listhead of common block records
%EXTRINSICINTEGER SCPTR     ;! listhead of local identifiers
%EXTRINSICINTEGER ATABS     ;! @ of area for assorted optimiser tables
%EXTRINSICINTEGER MAXTABS   ;! curent available length of opt table area
%EXTRINSICINTEGER FREETABS  ;! next free location in opt table area
%EXTRINSICINTEGER EXBPTR    ;! exit block table
%EXTRINSICINTEGER ENTBPTR   ;! entry block table
%EXTRINSICINTEGER ALOOPS    ;! @ loop table area
%EXTRINSICINTEGER MAXLOOPS  ;! current available length of loop table area

==== ercs07/emas-2900/qfiles5apr_f77qcode2.txt ====
%CONSTINTEGER EMAS=0,PERQ=1,SYS=PERQ
! %EXTERNALROUTINESPEC DUMP(%INTEGER A,B,C,D)
 %IF SYS=EMAS %START; %SYSTEMROUTINESPEC PHEX(%INTEGER N) ; %FINISH
!*TOP
!****************************************************************************
!*                                                                          *
!*             PERQ QCODE DISSASSEMBLER 
!*                                                                          *
!****************************************************************************
!*
%EXTERNALROUTINE QCODE(%INTEGER START,FINISH,CA,MODE)
!*
!*    MODE IS :-
!                 1  - ASCII EQUIVELANT IS PRINTED
!                 2  - NO HEX AD IS PRINTED
!                 4  - DECIMAL AD IS PRINTED
!                 8  - NO SEGMENT NUMBER IS GIVEN
!                 16  -  HEX EQUIVELANT IS PRINTED
!                 32  - LINES ARE PADDED TO COMMON END POINT

!*

==== ercs07/emas-2900/mixedsrce1_ioproc.txt ====
PROGRAM IOPROCDEF;
(*# E+*)
PROCEDURE IOPROC(VAR OP:TEXT);
BEGIN
WRITELN(OP,'OUTPUT FROM FUNC')
END;
BEGIN
END.

==== ercs07/emas-2900/qfiles5apr_f77code2.txt ====
!* MODIFIED 20/03/82
!{2900C}%CONSTINTEGER W1=2;! 1 PERQ  2 EMAS
!{2900C}%CONSTINTEGER W2=4
!{2900C}%CONSTINTEGER W4=8
!{2900C}%CONSTINTEGER W8=16
!{2900C}%CONSTINTEGER W66=132
{PERQC}%CONSTINTEGER W1=1
{PERQC}%CONSTINTEGER W2=2
{PERQC}%CONSTINTEGER W4=4
{PERQC}%CONSTINTEGER W8=8
{PERQC}%CONSTINTEGER W66=66
%OWNINTEGER TRACETEMP
!*************  IMP80 version  ******************
!*
!***********************************************************************
!***********************************************************************
!*
!*
!*********************** TRIAD operator values *************************
!*
%CONSTINTEGER ADD    = X'02'

==== ercs07/emas-2900/inpds_ldataxin.txt ====
C     EDIT DATE   13MAY78  06:57
C     SOURCE FILE LDATAXGAK.IN
C     AUTHOR      GARY A. KUDIS
C     GENERAL LINKER DATA
      LOGICAL     MPFLAG
      LOGICAL     OVMODE
      LOGICAL     LBMODE
      LOGICAL     LOADRB
      LOGICAL     SFLAG
      INTEGER     VERS
      INTEGER     LOADAD
      INTEGER     ZLOC, ZSTR, ZMAX, ZLIMIT
      INTEGER     CLOC, CSTR, CMAX, CLIMIT
      INTEGER     NLOC, NSTR, NMAX, NLIMIT
      INTEGER     DLOC, DSTR, DMAX, DLIMIT
      INTEGER     OLOC, OMAX, OSET
      INTEGER     START
      INTEGER     MODNLX
      INTEGER     CKSUM
      INTEGER     KEY
      COMMON      /LDATAX/ MPFLAG

==== ercs07/emas-2900/qfiles5apr_f77code3.txt ====
!* MODIFIED 30/03/82
!{2900C}%CONSTINTEGER W1=2;! 1 PERQ  2 EMAS
!{2900C}%CONSTINTEGER W2=4
!{2900C}%CONSTINTEGER W3=6
!{2900C}%CONSTINTEGER W4=8
!{2900C}%CONSTINTEGER W8=16
!{2900C}%CONSTINTEGER W66=132
{PERQC}%CONSTINTEGER W1=1
{PERQC}%CONSTINTEGER W2=2
{PERQC}%CONSTINTEGER W3=3
{PERQC}%CONSTINTEGER W4=4
{PERQC}%CONSTINTEGER W8=8
{PERQC}%CONSTINTEGER W66=66
%OWNINTEGER TRACETEMP
!*************  IMP80 version  ******************
!*
!***********************************************************************
!%INCLUDE "ERCS06.PERQ_TRIADOPS"                                        ;
!***********************************************************************
!*
!*

==== ercs07/emas-2900/sforf_putcf.txt ====
      SUBROUTINE PUTC (ICHAR)
      INTEGER  INPTR
      INTEGER  OUTPTR
      INTEGER  INMAX
      INTEGER  MAXTAB
      INTEGER  MAXLIN
      INTEGER  IFMAX
      INTEGER  MAXLEV
      INTEGER  LINENO
      INTEGER  PAGE
      INTEGER  CLINE
      INTEGER  TLIMIT
      INTEGER  LN
      INTEGER  I, J, K
      INTEGER  II, JJ, KK
      INTEGER  LEXVAL
      INTEGER  SLEN
      INTEGER  LEVEL
      INTEGER  LEN
      INTEGER  INCHAN
      INTEGER  OUTCHN

==== ercs07/emas-2900/rel10opt_conelim43.txt ====
! 24/09/84 - check for PROCID line 780 of OPTNEG
! 09/08/84 - correction to OPTDIV, line 672 moved to line 681
! copied from pnxrel01_conelimp41
! 13/06/84 - delete use of RSUB as op to CONOP
! 12/03/84 only generate MOO triad if target is 2900
! 22/11/83 set up TRACE flag and CDUMPTRACE routine
! 27/10/83 copied from ERCS06.REL90_CONELIMB12
!*
%INCLUDE "host_host"
!*
%INCLUDE "targ_target"
!*
%INCLUDE "pf_version"
!*
%INCLUDE "bits_fmts"
!*
%INCLUDE "bits_optspecs"
!*
%INCLUDE "bits_optfmts"
!
%INCLUDE "bits_consts"

==== ercs07/emas-2900/dsa20_jclprocs.txt ====
(*#T-,C0   
%RANGECHECKS=NO
%CHARCODE=EBCDIC
*)   
  
  
PROGRAM ICL9LPJCLPROCS;
 
 
CONST
 
      (* GENERAL:- *)
 
   NILDESC= ?D FFFFFFFFFFFFFFFF;
   MAXINTFORBYTE=255;
   BLANK=' ';
   OPSYSLETTER='B';
 
      (* OPTIONS PROCESSING:- *)
 
   MAXLITIX=16;

==== ercs07/emas-2900/slogof_prnewsfr.txt ====
    
      SUBROUTINE PRNEWS 
    
      INTEGER  QUOTEX   
      INTEGER  CONTF
      INTEGER  CONTRL   
      INTEGER  HEAD 
      INTEGER  EJECT
      INTEGER  BLANK
      INTEGER  SLASH
      INTEGER  CARDC
      INTEGER  FLINCT (8)   
      INTEGER  EOCC 
      INTEGER  ENDCRD (3)   
      INTEGER  RECORD (66)  
      INTEGER  RECPTR   
      INTEGER  SOURCE (150) 
      INTEGER  SRCEND   
      INTEGER  SLEN 
      INTEGER  TF (3)   
      COMMON   /SRCE/   QUOTEX  

==== ercs07/emas-2900/dsea20_jpedfnldir.txt ====
R/T+/T-/ T/%RANGECHECKS/ R/YES/NO/ TELE

==== ercs07/emas-2900/genutils_comprsi.txt ====

%EXTERNALROUTINE COMPRS(%STRING(63) S)
%EXTERNALROUTINESPEC COPY(%STRING(63) SA)
%EXTERNALROUTINESPEC DESTROY(%STRING(63) SB)
%EXTERNALROUTINESPEC DEFINE(%STRING(63) SC)
%EXTERNALROUTINESPEC CLEAR(%STRING(63) SD)
%EXTERNALINTEGERFNSPEC RETURNCODE
%BYTEINTEGERARRAY BUF(1:255)
%OWNINTEGER NL=10,CR=13
%INTEGER I
%ON %EVENT 9  %START
      SELECTOUTPUT(0)
      SELECTINPUT(0)
      CLOSESTREAM(1)
      CLOSESTREAM(2)
      CLEAR("1")
      CLEAR("2")
      DESTROY(S)
      COPY("XTEMP,".S)
      %IF RETURNCODE=0 %THEN DESTROY("XTEMP")
      %STOP

==== ercs07/emas-2900/sforf_pstrf.txt ====
      SUBROUTINE PSTR (STR)
      INTEGER  INPTR
      INTEGER  OUTPTR
      INTEGER  INMAX
      INTEGER  MAXTAB
      INTEGER  MAXLIN
      INTEGER  IFMAX
      INTEGER  MAXLEV
      INTEGER  LINENO
      INTEGER  PAGE
      INTEGER  CLINE
      INTEGER  TLIMIT
      INTEGER  LN
      INTEGER  I, J, K
      INTEGER  II, JJ, KK
      INTEGER  LEXVAL
      INTEGER  SLEN
      INTEGER  LEVEL
      INTEGER  LEN
      INTEGER  INCHAN
      INTEGER  OUTCHN

==== ercs07/emas-2900/slogosorg_stkdefin.txt ====
C     EDIT DATE   03DEC78  11:40
C     SOURCE FILE STKDEFA.IN
C     AUTHOR      A. J. HOWARD
      INTEGER     STK (20, 13)
C     COLUMN      ARRAY
C
C        1        NAMEX
C        2        SUBX
C        3        MODE
C        4        SUBXM
C        5        BIAS
C        6        SUBXB
C        7        LOCFLG
C        8        OSTACK
C        9        OPCODE
C        10       WFOP
C        11       WFOPND
C        12       SUBOP
C        13       WFSOP
      INTEGER     NAMEX (40)
      EQUIVALENCE (STK (1, 1), NAMEX (1))

==== ercs07/emas-2900/rel10opt_sred42.txt ====
! 05/06/84 reject sr vars which have neglits floating around (EXAMINE)
! 04/06/84 change format of USEF & size of TINITSZ
!          local variables inserted in print routines
! 22/01/84 BIT STRIP ADDRESSES NOW RELATIVE TO ABLOCKS
! 30/10/83 COPIED FROM ERCS06.REL90_SREDB12
!*
%INCLUDE "host_host"
!*
%INCLUDE "targ_target"
!* 
%INCLUDE "pf_version"
!*
%INCLUDE "bits_fmts"
!*
%INCLUDE "bits_optspecs"
!*
%INCLUDE "bits_optfmts"
!
%INCLUDE "bits_consts"
!*
%INCLUDE "bits_triadops"

==== ercs07/emas-2900/slogos_genlxyin.txt ====

      INTEGER     OREG
      'INCLUDE'   LOGOSAJH.IN,
      'INCLUDE'   REGSJHP.IN,
      'INCLUDE'   RMCODES.IN,
      'INCLUDE'   STKDFA.IN,
      'INCLUDE'   STKDFE.IN,
      'INCLUDE'   GENCMA.IN,
      INTEGER     BCODE (3, 3)
      DATA        BCODE / 169, 173, 165, ^ // LDAI LDAABS LDAZP
                          162, 174, 166, ^ // LDXI LDXABS LDXZP
                          160, 172, 164/   // LDYI LDYABS LDYZP
C     CHECK FOR DIRECT LOAD
C
      TS = OPCODE (SIDE)
      'DOLOOP' I = 1, 3
         'IF' (BCODE (I, 1) .EQ. TS)
C           CORE TO X OR Y DIRECTLY
C
            OPCODE (SIDE) = BCODE (I, OREG)
            CALL REGMAN (SAVREG, OREG, DUMMY)

==== ercs07/emas-2900/basicmaster_index.txt ====
BASIC          ----------      LINKED BASIC OBJECT FILE
BSCBASE15      ----------      SOURCE OF BASIC INTERFACE
BASIC4Y        ----------      KENT BASIC VERSION K.10 (EMAS OBJ.FILE)
FCONVS         ----------      SOURCE OF FILE CONVERSION ROUTINES
XDUMPS         ----------      SOURCE OF DUMP ROUTINES FOR TRACING
BASICGEN      ----------       OBEYFILE FOR GENERATING OPTIMISED BASIC
TRACEGEN      ----------       OBEYFILE FOR GENERATING TRACING VERSION 
                               OF BASIC

==== ercs07/emas-2900/helpsa20_brtamedin.txt ====
CHANGEPROPERTIES(1,SEPARATE=NO,USEMODE=DENSE)
CHANGEPROPERTIES(2,SEPARATE=NO,USEMODE=DENSE)
CHANGEPROPERTIES(4,SEPARATE=NO,USEMODE=DENSE)

==== ercs07/emas-2900/slinkf_iodefnfr.txt ====
    
      BLOCK DATA
    
      INTEGER     ECODE 
      INTEGER     CMCHAN
      INTEGER     RBCHAN
      INTEGER     OBCHAN
      INTEGER     MPCHAN
      INTEGER     DBCHAN
      INTEGER     TTYIN 
      INTEGER     TTYOUT
      COMMON      /IODEFN/ ECODE
      COMMON      /IODEFN/ CMCHAN   
      COMMON      /IODEFN/ RBCHAN   
      COMMON      /IODEFN/ OBCHAN   
      COMMON      /IODEFN/ MPCHAN   
      COMMON      /IODEFN/ DBCHAN   
      COMMON      /IODEFN/ TTYIN
      COMMON      /IODEFN/ TTYOUT   
      DATA     CMCHAN      /1/  
      DATA     RBCHAN      /2/  

==== ercs07/emas-2900/slogosorg_lccontfs.txt ====
'HEAD'  LOCATION COUNTER CONTROL
C     EDIT DATE   10DEC78  19:03
C     SOURCE FILE LCCONTFTM.FS
C     AUTHOR      A. J. HOWARD
C     CLUSTER     16
      'OUTFILE' RLCIFTM.FR
C     SUBROUTINE RLCI
C
C     RESETS THE LOCATION COUNTER INDEX TO THE NEW VALUE IF
C     THE NEW VALUE AND OLD VALUE ARE NOT THE SAME.
C
      SUBROUTINE RLCI (NEWLCI)
      'INCLUDE' LOGOSAJH.IN,
      'INCLUDE' WFLAGSJHP.IN,
      'INCLUDE' LCFUNCAJH.IN,
      'INCLUDE' LCONSTAJH.IN,
      'INCLUDE' LISTCMAJH.IN,
      INTEGER NEWLCI
      'IF' (NEWLCI .NE. LCI)
         IF (LENTER) ^
            CALL LIST (LMOVEP, 0, 0)

==== ercs07/emas-2900/f77dctl1.txt ====
module  f77dctl;
exports
imports filedefs from filedefs;

procedure ndiag(raiseap,dumpc,err,extra:fsbit16);
procedure ssmess(i:integer);

function loadss:fsbit16;
function loadap:fsbit16;
procedure diags(raiseap,es,er,pstart,pend:fsbit16);

private

imports f77init from f77init;
imports f77idiag from f77idiag;
imports f77fdiag from f77fdiag;
imports f77rmess from f77rmess;
imports f77qcode from f77qcode;

imports system from system;
imports except from except;

==== ercs07/emas-2900/oldqfiles_f77io2.txt ====
   !Modified  19/ 3/82   14.00





!**********************************************************************!
!**********************************************************************!
     !                                                         !
     !                                                         !
     !   This  Module  is  designed  to  provide  I/0  support !
     !                                                         !
     !                for  FORTRAN77  Programs                 !
     !                                                         !
     !                 on  ICL  PERQ  Machines                 !
     !                                                         !
     !                                                         !
!**********************************************************************!
!**********************************************************************!
                                    !
                                    ! compile either PARM(STACK,NOCHECK)

==== ercs07/emas-2900/f77dctl2.txt ====
module  f77dctl;
exports
imports filedefs from filedefs;

procedure ndiag(raiseap,dumpc,err,extra:fsbit16);
procedure ssmess(i:integer);

function loadss:fsbit16;
function loadap:fsbit16;
procedure diags(raiseap,es,er,pstart,pend:fsbit16);

private

imports f77init from f77init;
imports f77idiag from f77idiag;
imports f77fdiag from f77fdiag;
imports f77rmess from f77rmess;
imports f77qcode from f77qcode;

imports system from system;
imports except from except;

==== ercs07/emas-2900/oldqfiles_f77io3.txt ====
   !Modified  26/ 3/82   13.30





!**********************************************************************!
!**********************************************************************!
     !                                                         !
     !                                                         !
     !   This  Module  is  designed  to  provide  I/0  support !
     !                                                         !
     !                for  FORTRAN77  Programs                 !
     !                                                         !
     !                 on  ICL  PERQ  Machines                 !
     !                                                         !
     !                                                         !
!**********************************************************************!
!**********************************************************************!
                                    !
                                    ! compile either PARM(STACK,NOCHECK)

==== ercs07/emas-2900/slogof_npageffr.txt ====
    
      SUBROUTINE  NPAGE 
    
      INTEGER     LISTF,  SNLPRT, SUMPRT, SYMFLG
      INTEGER     PRINTF, SKIP,   COMPFL (2)
      INTEGER     LOCPRT, USFLGS, NEGFLG, SKNAME (8)
      INTEGER     ORGFLG, CTLUSE, CTLERR, TTL (8)   
      INTEGER     DUMFLG
      INTEGER ICLP01
      COMMON      /CTLCOM/    LISTF,  SNLPRT, SUMPRT, SYMFLG
      COMMON      /CTLCOM/    PRINTF, SKIP,   COMPFL
      COMMON      /CTLCOM/    LOCPRT, USFLGS, NEGFLG, SKNAME
      COMMON      /CTLCOM/    ORGFLG, CTLUSE, CTLERR, TTL   
      COMMON      /CTLCOM/    DUMFLG
      COMMON      /CTLCOM/ ICLP01   
    
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      INTEGER     NEXT,   NUMBER, I,      IOTYPE
      INTEGER     J,      K,      L,      LABNLX, M,      N 

==== ercs07/emas-2900/f77dctl3.txt ====
module  f77dctl;
exports
imports filedefs from filedefs;

procedure ndiag(raiseap,dumpc,err,extra:fsbit16);
procedure ssmess(i:integer);

function loadss:fsbit16;
function loadap:fsbit16;
procedure diags(raiseap,es,er,pstart,pend:fsbit16);

private

imports f77init from f77init;
imports f77idiag from f77idiag;
imports f77fdiag from f77fdiag;
imports f77rmess from f77rmess;
imports f77qcode from f77qcode;

imports system from system;
imports except from except;

==== ercs07/emas-2900/inpds_qdataxin.txt ====
C     EDIT DATE   04MAY78  20:21
C     SOURCE FILE QDATAXGAK.IN
C     AUTHOR      GARY A. KUDIS
C     CLUSTER     0.07
      INTEGER     CMQUES (10)
      INTEGER     OBQUES (10)
      INTEGER     MPQUES (10)
      INTEGER     ANSWER (10)


==== ercs07/emas-2900/pnxrel01_sredp42.txt ====
! 05/06/84 reject sr vars which have neglits floating around (EXAMINE)
! 04/06/84 change format of USEF & size of TINITSZ
!          local variables inserted in print routines
! 22/01/84 BIT STRIP ADDRESSES NOW RELATIVE TO ABLOCKS
! 30/10/83 COPIED FROM ERCS06.REL90_SREDB12
!*
%INCLUDE "host_host"
!*
%INCLUDE "targ_target"
!* 
%INCLUDE "pf_version"
!*
%INCLUDE "bits_fmts"
!*
%INCLUDE "bits_optspecs"
!*
%INCLUDE "bits_optfmts"
!
%INCLUDE "bits_consts"
!*
%INCLUDE "bits_triadops"

==== ercs07/emas-2900/ctms_main.txt ====
%CONSTSTRING(31) DEFAULT ROUTE = "PLULB1.CTMY_ROUTE"
%CONSTSTRING(31)%ARRAY STD ROUTE(1:4) =  %C
      "PLULB1.CTMY_CROUTE",
      "PLULB1.CTMY_VROUTE",
      "PLULB1.CTMY_FROUTE",
      "PLULB1.CTMY_TTYROUTE"
%CONSTSTRING(31) DEFAULT RAM = "PLULB1.RAMY"
!
%EXTERNALSTRING(255)%FNSPEC ETOS(%INTEGER DR0, DR1)
%EXTERNALSTRINGFNSPEC HEX(%INTEGER I)
%EXTERNALROUTINESPEC ECTM SET TRAP
%EXTERNALROUTINESPEC ECTM REPORT INT(%STRING(63) MESS, %INTEGER I)
%EXTERNALROUTINESPEC ECTM REPORT STRING(%STRING(63) MESS,  %C
      %INTEGER DR0, DR1)
%EXTERNALROUTINESPEC ECTM REPORT LONG(%STRING(63) MESS,  %C
      %INTEGER DR0, DR1)
%EXTERNALROUTINESPEC ECTM DUMP PPAIRS(%INTEGER LEN, ADR)
%EXTERNALSTRING(255)%FNSPEC ETON(%INTEGER DR0, DR1)
%EXTERNALSTRINGFNSPEC EMAS NAME(%STRING(255) CTM NAME, %INTEGER QNEW)
%EXTERNALSTRING(63)%FNSPEC NEXT NAME(%STRING(63) NAME)
%EXTERNALINTEGERFNSPEC CE CHAN(%STRING(31) NAME)

==== ercs07/emas-2900/f77dctl4.txt ====
{ Updated 15/03/82 - diags modified for recursive entry }
{                    COMMENT facility added             }

module  f77dctl;
exports
imports filedefs from filedefs;

procedure ndiag(raiseap,dumpc,err,extra:fsbit16);
procedure ssmess(i:integer);

function loadss:fsbit16;
function loadap:fsbit16;
procedure diags(raiseap,es,er,pstart,pend:fsbit16);

private

imports f77init from f77init;
imports f77idiag from f77idiag;
imports f77fdiag from f77fdiag;
imports f77rmess from f77rmess;
imports f77qcode from f77qcode;

==== ercs07/emas-2900/ctms_test.txt ====
%OWNINTEGER NIL = -1
%OWNINTEGER STRING DESC = X'58000000'
%OWNINTEGER LONG DESC = X'30000000'
!
%SYSTEMROUTINESPEC ITOE(%INTEGER AD, LEN)
!
%EXTERNALINTEGERFNSPEC CTM JS BEGIN(%LONGINTEGER DUMMY)
%EXTERNALINTEGERFNSPEC CTM JS END(%LONGINTEGER DUMMY)
%EXTERNALINTEGERFNSPEC CTM JS WRITE(%INTEGER NAME0, NAME1,  %C
      INT0, INT1, STR0, STR1, BOOL0, BOOL1)
%EXTERNALINTEGERFNSPEC CTM JS READ(%INTEGER NAME0, NAME1,  %C
      INT0, INT1, STR0, STR1, BOOL0, BOOL1)
%EXTERNALINTEGERFNSPEC CTM ASSIGN FILE(%INTEGER ROUTE0, ROUTE1,  %C
      LOCAL0, LOCAL1, NAME0, NAME1, ACC, LOCK, A,B,C,D,E,  %C
      %LONGINTEGER F,G, %INTEGER H,I,J,K)
%EXTERNALROUTINESPEC CTM DUMP
!
%ROUTINE ERROR(%INTEGER I)
SELECT OUTPUT(0)
NEW LINE
PRINT STRING(" CTM error code:");  WRITE(I,0);  NEW LINE

==== ercs07/emas-2900/tstfiles_usefile1.txt ====
      'SP' A,B,C,
      'DP' E,F,G,

==== ercs07/emas-2900/f77fmt1.txt ====
!PFMTQ4 IS EQUIVALENT TO F77FMT1 ON PERQ
!
!*     RUNCOMP=0 FOR COMPILE TIME FORMAT
!*     RUNCOMP=1 FOR RUN TIME FORMAT

!*                                                                      FORMATCD
!*

%EXTERNALINTEGERFN FORMATCD(%INTEGER INSTART,DISP,ARYADR,INLEN,OUTLEN,  
    LEVEL,RUNCOMP, %INTEGERNAME TABLEN, ACTFMTLEN)
!*
!*
%SWITCH SW(0 : 122)
%HALFINTEGER PTR, CODE, BRACK, FLAG, I, CHAR, BOTHZERO
%HALFINTEGER NXTCHAR, OUTPTR, FMTPTR, TEXTPTR, HOLLEN, QUOTE CNT,ITEMPTR
%HALFINTEGER COPYCODE, ERR,LINELEN
%INTEGER LARGESTINT, COUNT, NUMBER,FMTAD,INLENGTH
%HALFINTEGER NOCOMMA, J, K,COMMAREQD
%HALFINTEGERARRAY LOOP(0 : 8)
%BYTEINTEGERARRAYNAME FORMAT
%BYTEINTEGERARRAYFORMAT AF(0 : INLEN)

==== ercs07/emas-2900/tstfiles_usefile2.txt ====
''USE,USEFILE3;1
      3 -> C,
      4 -> F,

==== ercs07/emas-2900/tstfiles_usefile3.txt ====
      O -> A,

==== ercs07/emas-2900/slogof_modtxtfr.txt ====
    
      INTEGER FUNCTION MODTXT (INDEX)   
    
      INTEGER  NI,     NJ,     NK   
      INTEGER  NSIZE
      INTEGER  NLX,    FNLX,   REMNLX, OVNLX,  TNAME
      INTEGER  NLSTRT, NLSTOP, NLSIZE, SRCHST   
      INTEGER  NTSTRT   
      INTEGER  NTSTOP   
      INTEGER  NTSIZE   
      INTEGER  PARFLG   
      INTEGER  SPARFL   
      INTEGER  NLWRDS   
      INTEGER  TX   
      INTEGER  NLENO
      INTEGER  STDMD
      INTEGER  MSHIFT   
      INTEGER  REGCNT   
      INTEGER  NULLX
      INTEGER  STPTRX   
      INTEGER  SPMODE   

==== ercs07/emas-2900/slogof_snmlstfr.txt ====
    
      INTEGER FUNCTION SNMLST (DUM) 
    
      INTEGER     NAME (9)  
      COMMON      /NLNAME/ NAME 
    
      INTEGER  NI,     NJ,     NK   
      INTEGER  NSIZE
      INTEGER  NLX,    FNLX,   REMNLX, OVNLX,  TNAME
      INTEGER  NLSTRT, NLSTOP, NLSIZE, SRCHST   
      INTEGER  NTSTRT   
      INTEGER  NTSTOP   
      INTEGER  NTSIZE   
      INTEGER  PARFLG   
      INTEGER  SPARFL   
      INTEGER  NLWRDS   
      INTEGER  TX   
      INTEGER  NLENO
      INTEGER  STDMD
      INTEGER  MSHIFT   
      INTEGER  REGCNT   

==== ercs07/emas-2900/mixedsrce_pwrdef.txt ====
PROGRAM POWERDEF(OUTPUT);
(*# E+ *)
FUNCTION POWER(VAR X:REAL;VAR Y:INTEGER):REAL;
VAR Z:REAL;
BEGIN
Z:=1;
WHILE Y>0 DO
 BEGIN
  WHILE NOT ODD(Y) DO
    BEGIN
    Y:=Y DIV 2;
    X:=SQR(X)
    END;
  Y:=Y-1;Z:=X*Z
  END;
POWER:=Z
END;
BEGIN
END.

==== ercs07/emas-2900/slogof_gendoafr.txt ====
 
      SUBROUTINE  GENDO 
 
      INTEGER  NI,     NJ,     NK 
      INTEGER  NSIZE 
      INTEGER  NLX,    FNLX,   REMNLX, OVNLX,  TNAME 
      INTEGER  NLSTRT, NLSTOP, NLSIZE, SRCHST 
      INTEGER  NTSTRT 
      INTEGER  NTSTOP 
      INTEGER  NTSIZE 
      INTEGER  PARFLG 
      INTEGER  SPARFL 
      INTEGER  NLWRDS 
      INTEGER  TX 
      INTEGER  NLENO 
      INTEGER  STDMD 
      INTEGER  MSHIFT 
      INTEGER  REGCNT 
      INTEGER  NULLX 
      INTEGER  STPTRX 
      INTEGER  SPMODE 

==== ercs07/emas-2900/helpsa20_macop77tolp.txt ====
REDIRECT(P77NEW,ICL9LPNEW)
REDIRECT(P77DISP,ICL9LPDISPOSE)
REDIRECT(P77WRWST,ICL9LPWRITEWDSTR)
REDIRECT(P77WRLN,ICL9LPWRITELINE)
REDIRECT(P77WRSTR,ICL9LPWRITESTR)
REDIRECT(P77HALT,ICL9LPHALT)
REDIRECT(P77WRFCH,ICL9LPWRITECHAR)
REDIRECT(P77WRINT,ICL9LPWRITEINT)
REDIRECT(P77PAGE,ICL9LPPAGE)
REDIRECT(P77CLOCK,ICL9LPCLOCK)
REDIRECT(P77FINSH,ICL9LPFINISHRUN)
REDIRECT(P77CODE,ICL9LPCHARCODEIS)
REDIRECT(P77CASER,ICL9LPCASEERROR)
PERFORM

==== ercs07/emas-2900/strans_plnftmfr.txt ====
    
      SUBROUTINE PLN (/DUMMY/)  
    
      INTEGER  INPTR
      INTEGER  OUTPTR   
      INTEGER  INMAX
      INTEGER  MAXTAB   
      INTEGER  MAXLIN   
      INTEGER  IFMAX
      INTEGER  MAXLEV   
      INTEGER  LINENO   
      INTEGER  PAGE 
      INTEGER  CLINE
      INTEGER  TLIMIT   
      INTEGER  LN   
      INTEGER  I, J, K  
      INTEGER  II, JJ, KK   
      INTEGER  LEXVAL   
      INTEGER  SLEN 
      INTEGER  LEVEL
      INTEGER  LEN  

==== ercs07/emas-2900/expeval5.txt ====

{

 History
 -------

 25/10/85 - Delete CheckCAPRange. Index checking for conformant
            arrays is performed intrinsically by the INDEXCAPC
            E-code. (agh)
 28/10/85 - Simplify TailoredFactorCheck by setting reference
            flag Class to PnterRef. (agh)
 04/11/85 - Modify SingletonSet, RangeSet, SetComparison to
            range-check member values. (agh)
 06/11/85 - Provide dummy MaxMinFunction. Provide WrdFunction. (agh)
 07/11/85 - Add ConvertInteger for integer-integer coversion.
            Add AdjustSet for empty-set length adjustment. (agh)
 08/11/85 - Record Boolean operator rather than jump in Binary-
            BooleanOperation. (agh)
 25/11/85 - Provide BinaryWordOperation plus range-checking for
            word-types. (agh)
 29/11/85 - Indentify p^ factors with Class = HeapRef in Tailored-

==== ercs07/emas-2900/dsa20_bridgeinit.txt ====
PROGRAM BRIDGEINIT20;
PROCEDURE ICL9LPINITRUN(W1,W2,W3: INTEGER);
   EXTERN;
%KEYEDENTRY ON
PROCEDURE P77INIT(X1,X2,W1,W2,W3: INTEGER);
   BEGIN
   ICL9LPINITRUN(W1,W2,W3);
   END;
BEGIN
END.

==== ercs07/emas-2900/slogosorg_stkdfbin.txt ====
C     EDIT DATE   03DEC78  11:45
C     SOURCE FILE STKDEFB.IN
C     AUTHOR      A. J. HOWARD
      INTEGER     MODE (40),   SUBX (20),   SUBXM (20),  BIAS (40)
      EQUIVALENCE (STK (1, 3), MODE  (1))
      EQUIVALENCE (STK (1, 2), SUBX  (1))
      EQUIVALENCE (STK (1, 4), SUBXM (1))
      EQUIVALENCE (STK (1, 5), BIAS  (1))


==== ercs07/emas-2900/pascalsce_ctsup13.txt ====
! MODIFIED 12/11/81 -  VERSION 20.13
! COPY OF CTSUP12 - UPDATED VERSION NUMBER FOR NEW RTSUP
!
!**********************************************************************
!*
!*                         P A S C A L
!*
!*                COMPILER ENVIRONMENT ROUTINES
!*
!**********************************************************************
!
!
!**********************************************************************
!*
!*                            CONSTANTS
!*
!**********************************************************************
!
%CONSTINTEGER SEGMENTK=256,SEGMENT=262144
%CONSTINTEGER NIL=-1
%CONSTINTEGER NO=0,YES=1

==== ercs07/emas-2900/slogof_regsdafr.txt ====
 
      BLOCK DATA 
 
      INTEGER  AREG,   XREG,   YREG,   NRREGS 
      INTEGER  STATUS (10),    STAREG, STXREG, STYREG 
      INTEGER  REGS (10) 
      INTEGER  ACTREG (2),      ACTLO,  ACTHI 
      INTEGER  NZREG 
      INTEGER ICLP10 
      COMMON   / REGS / AREG,   XREG,   YREG,   NRREGS 
      COMMON   / REGS / STATUS, REGS,   ACTREG, NZREG 
      COMMON   / REGS / ICLP10 
      EQUIVALENCE    (ACTLO,  ACTREG (1)) 
      EQUIVALENCE    (ACTHI,  ACTREG (2)) 
      EQUIVALENCE    (STAREG, STATUS (1)) 
      EQUIVALENCE    (STXREG, STATUS (2)) 
      EQUIVALENCE    (STYREG, STATUS (3)) 
      DATA  AREG  / 1 / 
      DATA  XREG  / 2 / 
      DATA  YREG  / 3 / 
      DATA  NZREG /11/ 

==== ercs07/emas-2900/pddemo_cops1.txt ====
module F77COPS;

{************************************************}
{*     Constant Compile Time Operations.        *}
{************************************************}
 

exports

function realop(op:integer;lhs,rhs:real;var res:real):long;
function intop(op:integer;lhs,rhs:long;var res:long):long;
function coop(Pold,Pnew:pointer;oldmode,newmode:integer):integer;

function floatlong(arg:long):real;
function trunclong(arg:real):long;
function roundlong(arg:real):long;


exception R2LOvrFlow(Arg : Real);
{-----------------------------------------------------------------------------
{

==== ercs07/emas-2900/npc2_datareps.txt ====
{

                          MODULE 13


                     Data Representations





 Data representations are specified by the Representation field  of
 the  TypeRecord.   This itself is a record of type TypeRepresenta-
 tion whose fields are used as follows:

 (1)  WordSize is a word-measure of the storage requirement for the
      type.   BitSize  is  an equivalent bit-measure for types that
      can be packed.

 (2)  Kind provides an alternative data classification, relevant to
      various needs of the code-generator.

==== ercs07/emas-2900/helpsa20_bctcoll.txt ====
INPUT(*INLIB.ICL9LPCOMPILE&.ICL9LPCTSYSIF&.ICL9LPLIBNUC&
    .ICL9LPJCLPROCS&.SFLCTM&.SFLGENERAL&.SFLFORCT&
    .ICL9CELPUT&.ICL9CEOMFOUT&.ICL9CESERVICES&.ICL9CENCODE3&
    .ICL9LPCTETXT&.ICL9LPEHMTM)
NEWMODULE(*OUTLIB.ICL9LPCOMPILER(2000))
ASSOCIATEMODULES(ICL9LPCOMPILE&ICL9LPCTSYSIF&ICL9LPLIBNUC&ICL9CELPUT)
ISOLATEOBJECTS(ICL9CEZOMFOUT)
RETAIN(PASCALCOMPILE&PASCAL&PA)
SUPPRESS
PERFORM

==== ercs07/emas-2900/sforf_getwrdf.txt ====
      INTEGER FUNCTION GETWRD (BUFIN, INX, MAXIN, BUFOUT)
      INTEGER  INPTR
      INTEGER  OUTPTR
      INTEGER  INMAX
      INTEGER  MAXTAB
      INTEGER  MAXLIN
      INTEGER  IFMAX
      INTEGER  MAXLEV
      INTEGER  LINENO
      INTEGER  PAGE
      INTEGER  CLINE
      INTEGER  TLIMIT
      INTEGER  LN
      INTEGER  I, J, K
      INTEGER  II, JJ, KK
      INTEGER  LEXVAL
      INTEGER  SLEN
      INTEGER  LEVEL
      INTEGER  LEN
      INTEGER  INCHAN
      INTEGER  OUTCHN

==== ercs07/emas-2900/npc2_semantics.txt ====
{

                          MODULE 10
 
 
                      Semantic Analysis
                             and
                   Semantic Error Recovery
 
 
 
 
 
 Semantic analysis and semantic error recovery are  implemented  by
 'enrichment'  of  the  syntax  analyser  with semantic interludes.
 These semantic interludes depend on the following globally-defined
 data structures and manipulative procedures.

                                                                     }

program Support;

==== ercs07/emas-2900/perqrel3_f77patch1.txt ====
program f77patch;

imports        Perq_string from Perq_string;
imports        Fileutils from Fileutils;
imports        Filesystem from Filesystem;
imports        Code from Code;
imports        filetypes from filetypes;
        
        
label 10,11,20,30,90,99,100,101,900,905,910,912,915,920,925,930,935,940,945,950,
      960,990,999;
      
type dbleword=record msw,lsw:integer end;
     altrec=record
            oval,disp,blkno:integer;
            nval:array[0..17] of integer
            end;
            
var cfile,lfile:text;
    cline,cname,lname,mname,segname,fullname,tname,nostr:string;
    ok,applyma:boolean;

==== ercs07/emas-2900/ds20imp_rtjsvar.txt ====
%CONTROL X'0FFFFFFF'
%SYSTEMROUTINESPEC MOVE(%INTEGER L,FROM,TO) 
%SYSTEMROUTINESPEC ETOI(%INTEGER AD,L) 
%SYSTEMROUTINESPEC ITOE(%INTEGER AD,L) 
%SYSTEMINTEGERFNSPEC JSREAD    (%INTEGER                     %C 
                                        NAME DR0,NAME DR1,            %C 
                                        INT DR0,INT DR1,              %C 
                                        STR DR0,STR DR1,              %C 
                                        BOOL DR0,BOOL DR1) 
%SYSTEMINTEGERFNSPEC JS WRITE (%INTEGER NAME DR0,NAME DR1,   %C 
                                                 INT DR0,INT DR1,     %C 
                                                 STR DR0,STR DR1,     %C 
                                                 BOOL DR0,BOOL DR1) 
!********************************************************************** 
! 
!                       WRITE JS VAR 
! 
!********************************************************************** 
! 
%SYSTEMINTEGERFN WRITE JS VAR (%STRING(32) NAME,    %C 
                               %INTEGER    OPTION,  %C 

==== ercs07/emas-2900/inpds_tempsfin.txt ====
C     EDIT DATE   06MAR78  12:41
C     SOURCE FILE TEMPSFTM.IN
C     AUTHOR      F. T. MICKEY
C     CLUSTER     X
      INTEGER  DTX
      INTEGER  STX
      COMMON   /STEMP/  DTX
      COMMON   /STEMP/  STX


==== ercs07/emas-2900/qfiles_rmess5.txt ====
!Updated 14/04/82 - Fortran77 run time faults cleaned-up (Andy)
!Updated 29/03/82 - Imp run time faults added (Alan).
! UPDATED 24/03/82 - STRING ADDRESS PASSED TO QRMESS INSTEAD OF STRING NAME
!*
%EXTERNALROUTINE QRMESS (%INTEGER ERRNO, %INTEGERNAME FLAG, LEN, %INTEGER STRADDR)
   ! ERRNO - ERROR NUMBER
   ! FLAG  - PASSED AS -1 IF ERROR NUMBER OUT OF RANGE, ELSE PASSED AS 0
   ! LEN   - LENGTH OF ERROR MESSAGE RETURNED
   ! STR   - ERROR MESSAGE STRING RETURNED
   %SWITCH MESS1 (1:75)
   %SWITCH MESS2 (101:200)
  %STRINGNAME STR
   %SWITCH MESS3 (401:424)
  STR==STRING(STRADDR)
   %IF 1 <= ERRNO <= 9 %OR 50 <= ERRNO <= 75 %THEN -> MESS1(ERRNO)
   %IF 101 <= ERRNO <= 200 %THEN -> MESS2(ERRNO)
   %IF 401 <= ERRNO <= 424 %THEN -> MESS3(ERRNO)


    { IMP run time faults }


==== ercs07/emas-2900/tstfiles_tst12cmd.txt ====
DEFINE FT10,.IN
DEFINE FT11,.OUT
RUN LOGOSZ
TST12ALOS
TST12ALST
TST12AZOB
SEND TST12ALST
RUN LOGOSZ
TST12BLOS
TST12BLST
TST12BZOB
SEND TST12BLST
RUN LOGOSZ
TST12CLOS
TST12CLST
TST12CZOB
SEND TST12CLST
RUN LOGOSZ
TST12DLOS
TST12DLST
TST12DZOB

==== ercs07/emas-2900/qfiles_rmess6.txt ====
{ 5/MAY   - NEWLINE BEFORE MESSAGE
!Updated 14/04/82 - Fortran77 run time faults cleaned-up (Andy)
!Updated 29/03/82 - Imp run time faults added (Alan).
! UPDATED 24/03/82 - STRING ADDRESS PASSED TO QRMESS INSTEAD OF STRING NAME
!*
%EXTERNALROUTINE QRMESS (%INTEGER ERRNO, %INTEGERNAME FLAG, LEN, %INTEGER STRADDR)
   ! ERRNO - ERROR NUMBER
   ! FLAG  - PASSED AS -1 IF ERROR NUMBER OUT OF RANGE, ELSE PASSED AS 0
   ! LEN   - LENGTH OF ERROR MESSAGE RETURNED
   ! STR   - ERROR MESSAGE STRING RETURNED
   %SWITCH MESS1 (1:75)
   %SWITCH MESS2 (101:200)
  %STRINGNAME STR
   %SWITCH MESS3 (401:424)
  STR==STRING(STRADDR)
   NEWLINE
PRINTSTRING("** ")
   %IF 1 <= ERRNO <= 9 %OR 50 <= ERRNO <= 75 %THEN -> MESS1(ERRNO)
   %IF 101 <= ERRNO <= 200 %THEN -> MESS2(ERRNO)
   %IF 401 <= ERRNO <= 424 %THEN -> MESS3(ERRNO)


==== ercs07/emas-2900/rel10opt_eelim42.txt ====
! 31/01/84 - UPDATE TRELIM FOR DCMPLX & INTRIN
! 18/01/84 - BIT STRIP ADDRESSES ARE NOW RELATIVE TO ABLOCKS
! 23/11/83 set up TRACE flag and EDUMPTRACE routine
! 27/10/83 - copied from ERCS06.REL8002_eelimb7
%INCLUDE "host_host"
%INCLUDE "targ_target"
%INCLUDE "pf_version"
!*
%INCLUDE "bits_fmts"
%INCLUDE "bits_optspecs"
%INCLUDE "bits_consts"
%INCLUDE "bits_optfmts"
!
%INCLUDE "bits_triadops"
!*
%OWNINTEGER TRACE=0
!
%OWNINTEGER ELFLAG,ELIMEND,RWFLAG,HVAL
%OWNINTEGER COORD1,COORD2,MODE,MATCH
!*
! ARRAY FOR TRIADS WHICH MAY BE ELIMINATION CANDIDATES

==== ercs07/emas-2900/sforf_lexf.txt ====
      INTEGER FUNCTION LEX (ICHAR)
      INTEGER  INPTR
      INTEGER  OUTPTR
      INTEGER  INMAX
      INTEGER  MAXTAB
      INTEGER  MAXLIN
      INTEGER  IFMAX
      INTEGER  MAXLEV
      INTEGER  LINENO
      INTEGER  PAGE
      INTEGER  CLINE
      INTEGER  TLIMIT
      INTEGER  LN
      INTEGER  I, J, K
      INTEGER  II, JJ, KK
      INTEGER  LEXVAL
      INTEGER  SLEN
      INTEGER  LEVEL
      INTEGER  LEN
      INTEGER  INCHAN
      INTEGER  OUTCHN

==== ercs07/emas-2900/test0.txt ====
program test1;
var a:integer;
begin
a:=-3;
end.

==== ercs07/emas-2900/inpds_labcomin.txt ====
C     EDIT DATE   23AUG78  16:23
C     SOURCE FILE LABCOMFTM.IN
C     AUTHOR      F. T. MICKEY
      INTEGER     LTLI, LLX, LOCNLX (10), LOCTLI (10)
      COMMON      /LABCOM/ LTLI, LLX, LOCNLX, LOCTLI


==== ercs07/emas-2900/dsea20_rtenv1.txt ====
R/1/0/
TC/SWERRMESS/
P+1
I/%CONSTINTEGER IMPERROR = 10000
%CONSTSTRING(64) SWERRMESS=E"FAILURE OF PASCAL SUPPORT SOFTWARE"
/
TC/PROCR=/ R/CERR/LPCE/
TC/ICL9HECOMPERR/ A/HE/FATAL/
TC/ DATEANDTIME/
R/ROUTINE/INTEGERFN/
TC/%IF D ->/ P+2
G I/         %RESULT=0///
TC/ICL9CEZINIT/
TC/->SKIP/ P+1
TC/ STOP/
TC/I=SSCOMREG(36)/ I/          QUIT///
TC/FN OPEN(/
T+5
I/%STRING(31) FILENAME///
TC/%IF F_IDEN#""/ G
I/            %IF F_DSNUM=INDEFAULT %THENSTART

==== ercs07/emas-2900/slogosorg_srcdfsin.txt ====
C     EDIT DATE   19AUG78  07:51
C     SOURCE FILE   SRCDFSFTM.IN
C     AUTHOR        F. T. MICKEY
C     DATA DEFINITIONS FOR SOURCEFTM.ST
      INTEGER  QUOTEX ///// NOT USED
      INTEGER  CONTF
      INTEGER  CONTRL
      INTEGER  HEAD
      INTEGER  EJECT
      INTEGER  BLANK
      INTEGER  SLASH
      INTEGER  CARDC
      INTEGER  FLINCT (8)
      INTEGER  EOCC
      INTEGER  ENDCRD (3)
      INTEGER  RECORD (66)
      INTEGER  RECPTR
      INTEGER  SOURCE (150)
      INTEGER  SRCEND
      INTEGER  SLEN
      INTEGER  TF (3)

==== ercs07/emas-2900/test1.txt ====
program test1(output);
var a,b:integer;
    rec1: record a,b:integer; end;
    r1,r2:real;
    b1,b2:boolean;
begin
a:=-3;
b:=rec1.b*a;
r1:=a*b+b;
r2:=-r1;
b1:=a>b;
if b1 then b2:=r1<r2
end.

==== ercs07/emas-2900/j190.txt ====
      character xx(2),c
      logical ovr
      xx(1)=char(13)
      do 10 j=1,2
      if (xx(j).eq.char(13)) then
        print *,'ok'
      endif
      if (ovr) then
        c=xx(j)
      endif
  10  continue
      end

==== ercs07/emas-2900/test2.txt ====
program test1(output);
var a,b:integer;
procedure one;
var rec1: record a,b:integer; end;
    r1,r2:real;
    b1,b2:boolean;
begin
a:=-3;
b:=rec1.b*a;
r1:=a*b+b;
r2:=-r1;
b1:=a>b;
if b1 then b2:=r1<r2
end;

begin
one;
end.


==== ercs07/emas-2900/inpds_errdfnin.txt ====
C     EDIT DATE   13MAY78  06:49
C     SOURCE FILE ERRDFNGAK.IN
C     AUTHOR      GARY A. KUDIS
C     ERROR MESSAGE DEFINTION TABLE
      INTEGER     EPROC (20)
      INTEGER     ECOUNT (20)
      INTEGER     ELIMIT (20)
      INTEGER     EMSG (200)
      INTEGER     EMSG1(10),EMSG2(10),EMSG3(10),EMSG4(10)
      INTEGER     EMSG5(10),EMSG6(10),EMSG7(10),EMSG8(10)
      INTEGER     EMSG9(10),EMSG10(10),EMSG11(10),EMSG12(10)
      INTEGER     EMSG13(10),EMSG14(10),EMSG15(10),EMSG16(10)
      INTEGER     EMSG17(10),EMSG18(10),EMSG19(10),EMSG20(20)
      EQUIVALENCE (EMSG1,EMSG(1)),   (EMSG2,EMSG(11))
      EQUIVALENCE (EMSG3,EMSG(21)),  (EMSG4,EMSG(31))
      EQUIVALENCE (EMSG5,EMSG(41)),  (EMSG6,EMSG(51))
      EQUIVALENCE (EMSG7,EMSG(61)),  (EMSG8,EMSG(71))
      EQUIVALENCE (EMSG9,EMSG(81)),  (EMSG10,EMSG(91))
      EQUIVALENCE (EMSG11,EMSG(101)),(EMSG12,EMSG(111))
      EQUIVALENCE (EMSG13,EMSG(121)),(EMSG14,EMSG(131))
      EQUIVALENCE (EMSG15,EMSG(141)),(EMSG16,EMSG(151))

==== ercs07/emas-2900/test3.txt ====
program test3;
var g1:integer;

procedure one(procedure a);
begin
a;
end;

procedure two(procedure b);
begin
one(b);
end;

procedure three;
begin
g1:=3;
end;

begin
two(three)
end.

==== ercs07/emas-2900/test4.txt ====
program test4;
var a1:array[2..10,1..5] of integer;

procedure one(var a:array[l..u:integer]of integer);
begin
a[l]:=u;
a[u]:=l;
end;

procedure two(var b:array[l1..u1:integer;l2..u2:integer]of integer);
begin
one(b[l1]);
end;

begin
two(a1)
end.

==== ercs07/emas-2900/slinks_lolistyl.txt ====
LINK
SLINKY_ACOMPGY     
SLINKY_ALPHAGY     
SLINKY_AREADFY     
SLINKY_ASKGAKY     
SLINKY_ASKQESY     
SLINKY_BITDFNY     
SLINKY_CHARACY     
SLINKY_CHCKERY     
SLINKY_DARRAYY     
SLINKY_DFAULTY     
SLINKY_DNAMESY     
SLINKY_EHXJHPY     
SLINKY_ENPTDFY     
SLINKY_ENTERGY     
SLINKY_ERRDFNY     
SLINKY_ERRORGY     
SLINKY_ESPJHPY     
SLINKY_ESTJHPY     
SLINKY_FINISHY     
SLINKY_FMTRBGY     

==== ercs07/emas-2900/culmoldsce_librips.txt ====
%BEGIN
%CONTROL 0
!    COMPILE TIME  19 ETU
!
!
!    ROUTINE SPECIFICATIONS
!
%ROUTINESPEC INITIALISE PROFILES
%ROUTINESPEC INITIALISE VARIABLES                                       00000550
%ROUTINESPEC NEXTREC (%INTEGERNAME NO, %INTEGERARRAYNAME ANUM)
%ROUTINESPEC BULLETIN OUTPUT (%INTEGER NO, %INTEGERARRAYNAME ANUM)
%ROUTINESPEC SDICUMUL OUTPUT(%INTEGER NUM)
%ROUTINESPEC CHECK FAILURE (%INTEGER CHECKNO, %INTEGERNAME A1,A2)
%ROUTINESPEC SET (%BYTEINTEGERARRAYNAME A, %INTEGER START,END,VAL)
%INTEGERFNSPEC CONV(%BYTEINTEGERARRAYNAME A,%INTEGER IA,L)
!
!    ARRAY DECLARATIONS
!
%BYTEINTEGERARRAY IRPROF,PROF2,PROF3 (1:20)      ;! INT REC PROFILE     00001500
!?? SHORT; %INTEGERARRAY IRMARK (1:20)                 ;! INT REC PROF MARKER 00001600
!?? SHORT; %INTEGERARRAY ZITA (1:12,-1:10)             ;! I/P REC PROF        00001700

==== ercs07/emas-2900/helpsa20_addjclctsyn.txt ====
MACRO ADDJCLCTSYN20 IS (
   LITERAL (OMFLIB) %OMFLIB)
MACBEGIN
STRING %OMFFILE := %OMFLIB + '.ICL9LPJCLPROCS'
BEGIN
AMENDMODULE(%%OMFFILE,,HELPSOURCE.MAADDJCLCTSYN20)
SMSG('RETURN FROM MOD AMENDER')
END
MACEND

==== ercs07/emas-2900/culhamsce_prcums.txt ====
%BEGIN
!
!    ROUTINE TO TEST CREATION OF THE CUMULATION FILE FROM LIBPIP
!
%ROUTINESPEC RDCUM(%INTEGER UNT,IND)
!
!?? ; %HALFINTEGERARRAY IRDIRC (1:32)
%BYTEINTEGERARRAY IRTEXT(1:500)
%INTEGERARRAY IDENT(1:13)
!
%INTEGER I
%INTEGER UNIT
!
     UNIT=10                           ;! SET UNIT NUMBER
!
     RDCUM(UNIT,1)
     NEWPAGE
     PRINTSTRING('CUMULATIVE FILE DETAILS')
     NEWLINE
     PRINTSTRING('***********************')
     NEWLINES(2)

==== ercs07/emas-2900/test5.txt ====
program test5;
var a,b:integer;
procedure five(var a,b:integer);extern;

begin
five(a,b);
end.


==== ercs07/emas-2900/slinks_llogici.txt ====

%EXTERNALINTEGERFN XIAND(%INTEGERNAME A,B)
      %RESULT=(A&B)&X'0000FFFF'
      %END
%EXTERNALINTEGERFN XIOR(%INTEGERNAME A,B)
      %RESULT=(A!B)&X'0000FFFF'
      %END
%EXTERNALINTEGERFN XIEOR(%INTEGERNAME A,B)
      %RESULT=(A!!B)&X'0000FFFF'
      %END
%EXTERNALINTEGERFN XNOT(%INTEGERNAME A)
      %RESULT=(\A)&X'0000FFFF'
      %END
%EXTERNALINTEGERFN XISHFT(%INTEGERNAME A,B)
      %IF B>0 %THEN %RESULT =(A<<B)&X'0000FFFF'   %C
              %ELSE %RESULT =((A&X'0000FFFF')>>(-B))&X'0000FFFF'
      %END
%ENDOFFILE

==== ercs07/emas-2900/slogof_compdafr.txt ====
 
      BLOCK DATA 
 
      INTEGER  PLEVEL, STOPS (20) 
      INTEGER  CNLSID (9), CNLTLI (9), CNLEND (9) 
      INTEGER  CLX, CPLOC (30) 
      INTEGER  NESTX, PNESTX 
      INTEGER  RELLEV, RELCNT, TRUEF 
      LOGICAL  RELPAS 
      INTEGER  CMPFLG 
      INTEGER  ILB 
      INTEGER  BRCT, BROK, TNESTX 
      COMMON   /COMP/   PLEVEL, STOPS 
      COMMON   /COMP/   CNLSID, CNLTLI, CNLEND 
      COMMON   /COMP/   CLX, CPLOC 
      COMMON   /COMP/   NESTX, PNESTX 
      COMMON   /COMP/   RELLEV, RELCNT, TRUEF 
      COMMON   /COMP/   RELPAS 
      COMMON   /COMP/   CMPFLG 
      COMMON   /COMP/   ILB 
      COMMON   /COMP/   BRCT, BROK, TNESTX 

==== ercs07/emas-2900/genutils_copytopdi.txt ====

      %EXTERNALROUTINE COPYTOPD(%STRING(12) PD)
         %EXTERNALROUTINESPEC COPY(%STRING(63) SA)
         %EXTERNALROUTINESPEC DESTROY(%STRING(63) SB)
         %EXTERNALINTEGERFNSPEC RETURNCODE
         %BYTEINTEGERARRAY BUF(1:12)
         %INTEGER I
         %STRING(12) S
         %ON %EVENT 9  %START
                     %STOP
                       %FINISH
         SELECTINPUT(1)
         %CYCLE
            %WHILE NEXTSYMBOL = 10 %OR NEXTSYMBOL = 32 %THEN SKIPSYMBOL
            STRING(ADDR(BUF(1)))=""
            %CYCLE I=2,1,11
               %IF NEXTSYMBOL =10 %OR NEXTSYMBOL = 32  %C
                                        %THEN %EXIT
               READSYMBOL(BUF(I))
               %REPEAT
            BUF(1)<-I-2

==== ercs07/emas-2900/slogos_nlinitfs.txt ====
'HEAD'  NAME LIST INITIALIZATION
C     EDIT DATE   10DEC78  20:42
C     SOURCE FILE NLINITFTM.FS
C     AUTHOR      F. T. MICKEY
C     CLUSTER     23
      'OUTFILE' NLINITFTM.FR
N     OVERLAY OLNLI
C     SUBROUTINE NLINIT
C
C     INITIALIZE THE NAME LIST WITH REGISTER AND
C     OPERATOR DEFINITIONS.
C
      SUBROUTINE NLINIT
      'INCLUDE' LOGOSAJH.IN,
      'INCLUDE' BRACEFTM.IN,
      'INCLUDE' REGSJHP.IN,
      'INCLUDE' NLISTCFTM.IN,
      'INCLUDE' NLARAYFTM.IN,
      'INCLUDE' NLNAMEFTM.IN,
      INTEGER GCHAR, SNMLST
      INTEGER TS, PTR, COUNT, OP, REG, II, RETRN

==== ercs07/emas-2900/culhamsce_crprofs.txt ====
%BEGIN
!
!    THIS PROGRAM PERFORMS A COMBINATION OF TWO ACTIONS DEPENDING ON
!    THE VALUE OF THE CONTROL ARGUMENT ACT.
!
!    ACT=1  CREATES A NEW PROFILE FILE FROM THE INPUT STREAM SPECIFIED
!    AS THE SECOND ARGUMENT AND WRITES IT TO THE SEQUENTIAL FILE
!    SPECIFIED ON LUN 20.
!
!    ACT=2  THE SAME AS FOR ACT=1, BUTN THE PROFILE FILE CREATED IS
!    PRINTED FOR REFERENCE PURPOSES.
!
!    ACT=3  THE PROFILE FILE IS READ FROM THE SEQUENTIAL FILE SPECIFIED
!    AS LUN 20 AND THE CONTENTS ARE PRINTED.
!
%ROUTINESPEC CREATE PROFILES (%INTEGERNAME PISTRM,MAX,               %C 00001600
                             %BYTEINTEGERARRAYNAME PROFIL)
%ROUTINESPEC READ PROFILES (%INTEGERNAME UNIT,MAX,                   %C 00001800
                           %BYTEINTEGERARRAYNAME PROF)
%ROUTINESPEC SORT(%BYTEINTEGERARRAYNAME AX, %INTEGERARRAYNAME PTR,N, %C
                  %INTEGER P1,P2)

==== ercs07/emas-2900/slogof_bldpoafr.txt ====
    
      SUBROUTINE  BLDPO 
    
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      INTEGER     NEXT,   NUMBER, I,      IOTYPE
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT
      INTEGER ICLP05
      LOGICAL     ENDOK,CONEND  
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG   
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG  
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV  
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE  
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N   
      COMMON   /LOGOS/  PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE  

==== ercs07/emas-2900/helpsa20_brtamjclpr.txt ====
AREA(2)
ALTER(15,X4,X2)
REDIRECT(ICL9LPCTCONTROLENTRYDESC,ICL9LPSYSERR)
REDIRECT(ICL9HNCOMPILESUPPORT,ICL9LPSYSERR)

==== ercs07/emas-2900/rel5_anal25.txt ====
!* 02/07/82   
!*
!************  IMP80 version  ************
!*
%CONSTINTEGER TESTVERSION=1;!  0  NO   1  YES
%CONSTINTEGER DICTVERSION=0;!  0  EMAS   1  VME
!*
!{2900C} %CONSTINTEGER W1=2
!{2900C} %CONSTINTEGER W2=4
!{2900C} %CONSTINTEGER W4=8
!{2900C} %CONSTINTEGER W6=12
!{2900C} %CONSTINTEGER W8=16
{PERQC} %CONSTINTEGER W1=1
{PERQC} %CONSTINTEGER W2=2
{PERQC} %CONSTINTEGER W4=4
{PERQC} %CONSTINTEGER W6=6
{PERQC} %CONSTINTEGER W8=8
!*
!*
!**** SYNTAX ****
!*

==== ercs07/emas-2900/lpds_intrpalo.txt ====
''HEAD, 6502 INPUT CONVERSION
     // EDIT DATE   10OCT78  12:45
     // SOURCE FILE INTRPAJH.LO
     // AUTHOR      A. J. HOWARD
''USE, PACKET AJH.US; 1
     'TP' [0]:'LBR'
        BUFFER,
        'RBR'
     'DP' BUFFERX,
     'DP' DP VALUE,
     CHAR,
     COUNT,
     MINUS FLAG,
 ;;  .....
     BASE,
 ;
 ;INTRP SP:: 'LBR'           // (PKT, VAL, WIDTH)
     10 -> BASE,
     INTRP DP VALUE,
     DP VALUE -> [FL1],
     'RBR'

==== ercs07/emas-2900/slogos_reglevfs.txt ====
'HEAD'  REGISTER FOR CONDITIONAL
C     EDIT DATE   10DEC78  20:16
C     SOURCE FILE REGLEVAJH.FS
C     AUTHOR      A. J. HOWARD
C     CLUSTER     20
      'OUTFILE'   REGLEVAJH.FR
      SUBROUTINE  REGLEV (FUNC)
      INTEGER     FUNC
      EXTERNAL    OLREG, OLCRM
N     EXTERNAL    OLRDM
      'INCLUDE'   LOGOSAJH.IN,
      'INCLUDE'   CPAREAJH.IN,
      CONTINUE   //CALL OVLOD (OLREG)
      CALL REGDMP (8)
      CONTINUE   //CALL OVLOD (OLCRM)
N     CONTINUE   //CALL OVLOD (OLRDM)
      GO TO (100, 200, 300, 400, 500), FUNC
100   CALL STKREG (NESTX, 2)
      RETURN
200   CALL EXRGLV (TNESTX, 2)
      GO TO 310

==== ercs07/emas-2900/slogos_lcfuncin.txt ====
C     EDIT DATE   30APR78  14:33
C     SOURCE FILE LCFNCAJH.IN
C     AUTHOR      A. J. HOWARD
C     BASIC LOCATION COUNTER FUNCTIONS
      INTEGER     CODE
      INTEGER     NOUNLC
      INTEGER     DATALC
      INTEGER     COMLOC
      INTEGER     FBLOCK
      INTEGER     ZREL
      INTEGER     ABSLC
      INTEGER     CBTAB (15)
      INTEGER     CBX
      INTEGER     LCTAB (15)
      COMMON      /LCFUNC/ CODE
      COMMON      /LCFUNC/ NOUNLC
      COMMON      /LCFUNC/ DATALC
      COMMON      /LCFUNC/ COMLOC
      COMMON      /LCFUNC/ FBLOCK
      COMMON      /LCFUNC/ ZREL
      COMMON      /LCFUNC/ ABSLC

==== ercs07/emas-2900/mixedsrce1_rproctesta.txt ====
%BEGIN
%PROCEDURE SETR(R,V);
%VALUE V;
%REAL R,V;
%EXTERNAL SETR;
%REAL R1;
PRINTSTRING(<CALLING_SETR>);
NEWLINE;
SETR(R1,5.12);
PRINTSTRING(<R1=>);
PRINT(R1,2,4);
NEWLINE;
PRINTSTRING(<DID_IT_WORK>);
NEWLINE;
%END;

==== ercs07/emas-2900/pptboot_sorta.txt ====

==== ercs07/emas-2900/slogos_setcomin.txt ====
C     EDIT DATE   14SEP78  15:09
C     SOURCE FILE SETCOMJHP.IN
C     AUTHOR      J H P
C     CLUSTER     X
      INTEGER     LDAZP, LDAABS, LDAIMM
      INTEGER     LDAABY, LDAINY
      INTEGER     LDYZP, LDYABS, LDYIMM
      INTEGER     SETNLX
      INTEGER     TS1, TS2
      INTEGER     SOPC, SWF, SWFOPN
      INTEGER     SETSTX, SSUBX, STBIAS
      INTEGER     STMODE, SSUBXB, SSUBXM
      INTEGER     SSUBOP, SWFSUB
      INTEGER     SLEFT, SRIGHT, SCTN
I     INTEGER     ICLP12
      LOGICAL     ZPFLAG, STLOC
      COMMON   /SCOM/   LDAZP, LDAABS, LDAIMM
      COMMON   /SCOM/   LDAABY, LDAINY
      COMMON   /SCOM/   LDYZP, LDYABS, LDYIMM
      COMMON   /SCOM/   SETNLX
      COMMON   /SCOM/   TS1, TS2

==== ercs07/emas-2900/strans_emasibfr.txt ====
    
      SUBROUTINE REW(CHAN,FILE) 
      INTEGER CHAN,FILE(1)  
      REWIND CHAN   
      RETURN
      END   
    
      SUBROUTINE  RDLIN (CHAN, BUFFER, MAX, ERROR)  
      INTEGER     CHAN, BUFFER (1), MAX, ERROR  
      INTEGER     WORDS 
      WORDS = (MAX + 3)/4   
      READ (CHAN, 1000, END = 100) (BUFFER (I), I = 1, WORDS)   
      ERROR = 1 
      RETURN
  100 ERROR = 9 
      RETURN
 1000 FORMAT (20A4) 
      END   
      SUBROUTINE WRLIN(CHAN,BUFFER,CHARS)   
      INTEGER CHAN,BUFFER(1),CHARS  
      INTEGER WORDS,PNTR,FMT(6),BBBB,Z100,Z3030 

==== ercs07/emas-2900/pnxrel11_fctl13.txt ====
! 08/01/85 include N=5 in F77abort
!* modified 14/12/84
!*
%CONSTINTEGER DICTVERSION=0;! 0 EMAS  1 VME
!*
%CONSTSTRING(5) LOCAL VERSION="1.4"
!*
%include "host_host"
!*
%include "bits_fmts"
!*
%include "bits_com"
!*
%RECORDFORMAT OBJFMT(%STRING(35) MODULE,%INTEGER MAINEP,I,J,K,
                     ADATE,ATIME,OPTIONS2,EXTPROCS,ATRIADS,MAXTRIADS,
                     ABLOCKS,MAXBLOCKS,ALOOP,MAXLOOP,ATABS,MAXTABS,
                     SRFLAGS,INHIBMASK,OPT,OPTFLAGS,OPTDESC0,OPTDESC1,
                     D1,D2,D3,D4)
!*
%OWNRECORD(OBJFMT) OBJ
%OWNRECORD(COMFMT)%NAME COM

==== ercs07/emas-2900/slogosorg_sutilffs.txt ====
'HEAD'  STACK UTILITIES
C     EDIT DATE   10DEC78  20:26
C     SOURCE FILE SUTILFTM.FS
C     AUTHOR      A. J. HOWARD
C     CLUSTER     22
      'OUTFILE' MSTAKFTM.FR
      SUBROUTINE MSTAK (INROW, OUTROW)
      INTEGER     INROW, OUTROW
      INTEGER     I
      'INCLUDE'   STKDEFA.IN,
      'DOLOOP' I = 1, 13
         STK (OUTROW, I) = STK (INROW, I)
         'END'
      RETURN
      END
      'OUTFILE' CLRSTKFTM.FR
      SUBROUTINE CLRSTK (ROW)
      INTEGER  ROW
      INTEGER     I
      'INCLUDE'   STKDEFA.IN,
C     CLEAR A STACK ROW

==== ercs07/emas-2900/slogof_gsaveffr.txt ====
    
      SUBROUTINE  GSAVE 
    
      INTEGER     STK (20, 13)  
      INTEGER     NAMEX (40)
      INTEGER     OPX,    STKSIZ, OCBIT,  FUNBIT, SBIAS 
      INTEGER ICLP14
      COMMON      /SDEFS/ STK,    OPX,    STKSIZ, OCBIT,  FUNBIT, SBIAS 
      COMMON      /SDEFS/ ICLP14
      EQUIVALENCE (STK (1,1), NAMEX (1))
    
      INTEGER     MODE (40),   SUBX (20),   SUBXM (20),  BIAS (40)  
      EQUIVALENCE (STK (1, 3), MODE  (1))   
      EQUIVALENCE (STK (1, 2), SUBX  (1))   
      EQUIVALENCE (STK (1, 4), SUBXM (1))   
      EQUIVALENCE (STK (1, 5), BIAS  (1))   
    
      INTEGER     CODE  
      INTEGER     NOUNLC
      INTEGER     DATALC
      INTEGER     COMLOC

==== ercs07/emas-2900/dsea20_rtnewctm.txt ====
I/%CONTROL X'1FFFFFFF'///
E

==== ercs07/emas-2900/strans_copylnfr.txt ====
    
      SUBROUTINE COPYLN 
    
      INTEGER  INPTR
      INTEGER  OUTPTR   
      INTEGER  INMAX
      INTEGER  MAXTAB   
      INTEGER  MAXLIN   
      INTEGER  IFMAX
      INTEGER  MAXLEV   
      INTEGER  LINENO   
      INTEGER  PAGE 
      INTEGER  CLINE
      INTEGER  TLIMIT   
      INTEGER  LN   
      INTEGER  I, J, K  
      INTEGER  II, JJ, KK   
      INTEGER  LEXVAL   
      INTEGER  SLEN 
      INTEGER  LEVEL
      INTEGER  LEN  

==== ercs07/emas-2900/strans_stdatafr.txt ====
    
      BLOCK DATA
    
      INTEGER  INPTR
      INTEGER  OUTPTR   
      INTEGER  INMAX
      INTEGER  MAXTAB   
      INTEGER  MAXLIN   
      INTEGER  IFMAX
      INTEGER  MAXLEV   
      INTEGER  LINENO   
      INTEGER  PAGE 
      INTEGER  CLINE
      INTEGER  TLIMIT   
      INTEGER  LN   
      INTEGER  I, J, K  
      INTEGER  II, JJ, KK   
      INTEGER  LEXVAL   
      INTEGER  SLEN 
      INTEGER  LEVEL
      INTEGER  LEN  

==== ercs07/emas-2900/testpd_plnftmfr.txt ====
    
      SUBROUTINE PLN (/DUMMY/)  
      INTEGER DUMMY, TS, GCHAR  
      IF (OUTPTR .GT. 7) CALL PUTC (EOL)
      CALL SET (BBLANK, NAME, 3)
      CALL ESP (LN, NAME, 1, 5) 
      DO  13006 TS = 1, 5   
      CALL PUTC (GCHAR (NAME, TS))  
13006 CONTINUE  
    
      OUTPTR = 7
      RETURN
      END   

==== ercs07/emas-2900/slogof_pnequafr.txt ====
    
      LOGICAL FUNCTION PNEQU (DUMMY)
      INTEGER     DUMMY, L, I   
    
      INTEGER  NI,     NJ,     NK   
      INTEGER  NSIZE
      INTEGER  NLX,    FNLX,   REMNLX, OVNLX,  TNAME
      INTEGER  NLSTRT, NLSTOP, NLSIZE, SRCHST   
      INTEGER  NTSTRT   
      INTEGER  NTSTOP   
      INTEGER  NTSIZE   
      INTEGER  PARFLG   
      INTEGER  SPARFL   
      INTEGER  NLWRDS   
      INTEGER  TX   
      INTEGER  NLENO
      INTEGER  STDMD
      INTEGER  MSHIFT   
      INTEGER  REGCNT   
      INTEGER  NULLX
      INTEGER  STPTRX   

==== ercs07/emas-2900/library_prog.txt ====
%BEGIN
%EXTERNALROUTINESPEC ISO CARD (%BYTEINTEGERARRAYNAME K)
%EXTERNALSTRINGFNSPEC DATE
%INTEGER CARD COUNT,MANUAL COUNT,FAULT COUNT
%INTEGER I
%BYTEINTEGERARRAY CARD(0:80)
%STRING (7) MANUAL,LAST MANUAL
%ON %EVENT 9 %START
    NEWLINES(5)
    PRINTSTRING ("NUMBER OF MANUALS LISTED =")
    WRITE (MANUAL COUNT,3)
    NEWPAGE
NEWLINE
    %STOP
%FINISH
SELECTOUTPUT(3)
NEWPAGE
SELECTINPUT(2)
%CYCLE
    %CYCLE I=1,1,80 ; CARD(I) = ' '  ;  %REPEAT
    ISO CARD(CARD)

==== ercs07/emas-2900/mixedsrce1_rproctestf.txt ====
      PROGRAM PROCTEST
      EXTERNAL SETR
      REAL*8 LR,V
      WRITE(6,100)
  100 FORMAT(' CALLING SETR')
      V=5.12
      CALL SETR(LR,V)
      WRITE(6,200)LR
  200 FORMAT('LR=',F7.4)
      WRITE(6,300)
  300 FORMAT(' DID IT WORK')
      STOP
      END

==== ercs07/emas-2900/ecodelist_test5l.txt ====
Einitialise 
Enextproc 
Edataentry  A    2   16    4
Edataentry  B    2   20    4
EXname  FIVE    0    0
Eproc TEST5    0    0
 Elinestart ++++++++++++++++++++++    5
 Elinestart ++++++++++++++++++++++    6
Eprecall 
Estkaddr   Gla     + 16      4    A
Eop    PUSHVAL
 0 0 0
Estack:
 1:AddrDir       Gla     +   16  size: 4
Estkaddr   Gla     + 20      4    B
Eop    PUSHVAL
 0 0 0
Estack:
 1:AddrDir       Gla     +   20  size: 4
Ecall          2    8
 Elinestart ++++++++++++++++++++++    7

==== ercs07/emas-2900/sforf_stmainf.txt ====

      PROGRAM STRAN

   10 CONTINUE
      CALL INIT
      CALL PARSE
      STOP
      END
      BLOCK DATA
      INTEGER  INPTR
      INTEGER  OUTPTR
      INTEGER  INMAX
      INTEGER  MAXTAB
      INTEGER  MAXLIN
      INTEGER  IFMAX
      INTEGER  MAXLEV
      INTEGER  LINENO
      INTEGER  PAGE
      INTEGER  CLINE
      INTEGER  TLIMIT
      INTEGER  LN

==== ercs07/emas-2900/slogos_regmanfs.txt ====
'HEAD'  REGISTER MANAGEMENT
C     EDIT DATE   14JAN79  09:14
C     SOURCE FILE REGMANJHP.FS
C     AUTHOR      J.H.PERINE
C     CLUSTER     20
      'OUTFILE'   REGMANJHP.FR
      SUBROUTINE  REGMAN (FUNC, REG, AUX)
      'INCLUDE'   NLISTCFTM.IN,
      'INCLUDE'   WFLAGSJHP.IN,
      'INCLUDE'   REGSJHP.IN,
      'INCLUDE'   STKDFA.IN,
      'INCLUDE'   STKDFB.IN,
      'INCLUDE'   RMCOMJHP.IN,P
      INTEGER     FUNC,   REG,    AUX
      INTEGER     SRREG,  SRX,    CREG,   CTREG,  FREECT, MAXCT
      INTEGER     RET,    SRRET,  ACX,    PASS
      INTEGER     STINS (3),      AC (11, 5)
      EQUIVALENCE (ACADDR, AC)
      DATA        STINS / 133, ^     // STA ZP
                          134, ^     // STX ZP
                          132 /      // STY ZP

==== ercs07/emas-2900/slinkf_iofilefr.txt ====
    
      BLOCK DATA
    
      INTEGER     CMFILE (16)   
      INTEGER     RBFILE (16)   
      INTEGER     OBFILE (16)   
      INTEGER     MPFILE (16)   
      INTEGER     DBFILE (16)   
      INTEGER     TIFILE (3)
      INTEGER ICLP03
      COMMON      /FILES / CMFILE   
      COMMON      /FILES / RBFILE   
      COMMON      /FILES / OBFILE   
      COMMON      /FILES / MPFILE   
      COMMON      /FILES / DBFILE   
      COMMON      /FILES / TIFILE   
      COMMON      /FILES / ICLP03   
      DATA     DBFILE      /'DE','BU','GL','ST','  ', 11*0/ 
      END   

==== ercs07/emas-2900/rel4_alloc24.txt ====
!* modified 25/06/82
!*
!******************************** EXPORTS ******************************
!*
%ROUTINESPEC ALLOC(%INTEGER PTR)
%INTEGERFNSPEC ALLOC CHAR(%INTEGER L,AD,
        %HALFINTEGERNAME IIN,%INTEGERNAME DISP)
%ROUTINESPEC INIT ALLOC(%INTEGER ADCOM)
%ROUTINESPEC ADD DATA ITEM(%INTEGER AREA,PTR,COUNT,DISP,L,AD)
%INTEGERFNSPEC TIDY GLA(%HALFINTEGER EP,IIN,%INTEGER LEN)
%INTEGERFNSPEC PFORMAT(%INTEGER AINPUT,INP,J,
                       %STRINGNAME IDENTIFIER)
%INTEGERFNSPEC TO INTEGER(%INTEGER DATA AD,DATA LEN,
                                   TEXT AD,TEXT LEN,TEXT INC,MODE)
%INTEGERFNSPEC TO REAL(%INTEGER DATA AD,DATA LEN,TEXT ADDRESS,
                                INT LEN,INT PTR,DEC LEN,DEC PTR,
                                EXP LEN,EXP PTR,DECS,SCALE,MODE)
%INTEGERFNSPEC GLA SPACE(%INTEGER LEN)
!*
!* 25/03/82   
!*

==== ercs07/emas-2900/slogof_wcardafr.txt ====
    
      SUBROUTINE  WRC   
    
      INTEGER  AREAID (15), BCARD (41)  
      INTEGER  RWORD1, RWORD2, RWORD3, RWORD (3)
      INTEGER  BTYPE
      INTEGER  EXTDX, ERRFLG
      INTEGER  NEWLCI   
      INTEGER  OFFSET, OW   
      INTEGER  RBITS, RCT   
      INTEGER  TWI  
      INTEGER  WF   
      COMMON   /OBJCOM/ AREAID, BCARD, RWORD
      COMMON   /OBJCOM/ BTYPE   
      COMMON   /OBJCOM/ EXTDX   
      COMMON   /OBJCOM/ OFFSET, OW  
      COMMON   /OBJCOM/ RBITS   
      COMMON   /OBJCOM/ TWI 
      COMMON   /OBJCOM/ WF  
      EQUIVALENCE (RWORD1, RWORD (1))   
      EQUIVALENCE (RWORD2, RWORD (2))   

==== ercs07/emas-2900/mixedsrce1_rproctesti.txt ====
%BEGIN
%EXTERNALROUTINESPEC SETR(%LONGREALNAME LR,%LONGREAL V)
%LONGREAL R1
PRINTSTRING('CALLING SETR')
NEWLINE
SETR(R1,5.12)
PRINTSTRING('R1=')
PRINT(R1,2,4)
NEWLINE
PRINTSTRING('DID IT WORK')
NEWLINE
%ENDOFPROGRAM

==== ercs07/emas-2900/slogof_parsubfr.txt ====
    
      SUBROUTINE  PARSUB
    
      INTEGER  NI,     NJ,     NK   
      INTEGER  NSIZE
      INTEGER  NLX,    FNLX,   REMNLX, OVNLX,  TNAME
      INTEGER  NLSTRT, NLSTOP, NLSIZE, SRCHST   
      INTEGER  NTSTRT   
      INTEGER  NTSTOP   
      INTEGER  NTSIZE   
      INTEGER  PARFLG   
      INTEGER  SPARFL   
      INTEGER  NLWRDS   
      INTEGER  TX   
      INTEGER  NLENO
      INTEGER  STDMD
      INTEGER  MSHIFT   
      INTEGER  REGCNT   
      INTEGER  NULLX
      INTEGER  STPTRX   
      INTEGER  SPMODE   

==== ercs07/emas-2900/slinks_ldataxin.txt ====
C     EDIT DATE   13MAY78  06:57
C     SOURCE FILE LDATAXGAK.IN
C     AUTHOR      GARY A. KUDIS
C     GENERAL LINKER DATA
      LOGICAL     MPFLAG
      LOGICAL     OVMODE
      LOGICAL     LBMODE
      LOGICAL     LOADRB
      LOGICAL     SFLAG
      INTEGER     VERS
      INTEGER     LOADAD
      INTEGER     ZLOC, ZSTR, ZMAX, ZLIMIT
      INTEGER     CLOC, CSTR, CMAX, CLIMIT
      INTEGER     NLOC, NSTR, NMAX, NLIMIT
      INTEGER     DLOC, DSTR, DMAX, DLIMIT
      INTEGER     OLOC, OMAX, OSET
      INTEGER     START
      INTEGER     MODNLX
      INTEGER     CKSUM
      INTEGER     KEY
      INTEGER ICLP05

==== ercs07/emas-2900/dsa20_rtndiag.txt ====
%CONTROL X'0FFFFFFF'
!* RTNDIAG - FOR PASCAL 20 (RUNTIME)
!*
!* SHORTENED VERSION OF NDIAG CONTAINING:-
!*      NDIAG
!*      NOMDESC
!*
!* T.MOORE    APRIL 1980
!*
%SYSTEMROUTINESPEC OPEHUSERERROR(%INTEGER ERRNO,ADDINF,LANG,STACK)
%EXTERNALINTEGERFNSPEC ICL9HENOMDESC(%LONGINTEGER NAMEDESC,  %C
                                     %INTEGER P0,P1,P2,P3)
  
%SYSTEMROUTINE NDIAG(%INTEGER PCOUNT,LNB,FAULT,INF)
 
      OPEHUSERERROR(FAULT,0,1,5)
 
%END; ! NDIAG
 
%SYSTEMINTEGERFN NOMDESC(%LONGINTEGER NAMEDESC, %INTEGER P0,P1,P2,P3)
 

==== ercs07/emas-2900/xdumps.txt ====
%CONSTINTEGER YES = 1,      %C
               NO = 0
%STRING(15)%FN SFROMI (%INTEGER X)
%INTEGER REM,NUMB,NF
%STRING(15) ANS
ANS = ''
%IF X < 0 %THEN %START
    NF = YES
    X = X*(-1)
%FINISH %ELSE NF = NO
%CYCLE
NUMB = X
X = X//10
REM = NUMB - X*10
ANS = TOSTRING(REM+'0').ANS
%EXIT %IF X = 0
%REPEAT
%IF NF = YES %THEN ANS = "-".ANS
%RESULT = ANS
%END     ;!  OF SFROMI
%STRING(8)%FN HEXOF (%INTEGER X)

==== ercs07/emas-2900/slogos_peekftfs.txt ====
'HEAD'  PEEK PROCESSING
C     EDIT DATE   14JAN79  09:06
C     SOURCE FILE PEEKFTM.FS
C     AUTHOR      A. J. HOWARD
C     CLUSTER     15
      'OUTFILE' PEEKFTM.FR
C     SUBROUTINE PEEK
C
C     COMPACTS THE SOURCE BUFFER, THEN PEEKS AHEAD IN
C     THE INPUT STREAM AT THE NEXT CHARACTER
C
      SUBROUTINE PEEK
      CALL SSBUF
      CALL PEEKA
      RETURN
      END
      'OUTFILE' SSBUFFTM.FR
      SUBROUTINE SSBUF
      'INCLUDE' LOGOSAJH.IN,
      'INCLUDE' SRCDFSFTM.IN,
      SRCEND = SRCEND - J + 2

==== ercs07/emas-2900/psclsce208_ctsup8.txt ====
! MODIFIED 09/03/81 -  HEADING CHANGED TO VERSION 20.8
!**********************************************************************
!*
!*                         P A S C A L
!*
!*                COMPILER ENVIRONMENT ROUTINES
!*
!**********************************************************************
!
!
!**********************************************************************
!*
!*                            CONSTANTS
!*
!**********************************************************************
!
%CONSTINTEGER SEGMENTK=256,SEGMENT=262144
%CONSTINTEGER NIL=-1
%CONSTINTEGER NO=0,YES=1
%CONSTSTRING(1)%ARRAY HEX TAB(0:15)="0","1","2","3","4","5","6","7", %C
              "8","9","A","B","C","D","E","F"

==== ercs07/emas-2900/oldqfiles_f77alloc1.txt ====
!* modified 22/03/82
!*
!******************************** EXPORTS ******************************
!*
%ROUTINESPEC ALLOC(%INTEGER PTR)
%INTEGERFNSPEC ALLOC CHAR(%INTEGER L,AD,
        %HALFINTEGERNAME IIN,%INTEGERNAME DISP)
%ROUTINESPEC INIT ALLOC(%INTEGER ADCOM)
%ROUTINESPEC ADD DATA ITEM(%INTEGER AREA,PTR,COUNT,DISP,L,AD)
%INTEGERFNSPEC TIDY GLA
%INTEGERFNSPEC PFORMAT(%INTEGER AINPUT,INP,J,
                       %STRINGNAME IDENTIFIER)
%INTEGERFNSPEC TO INTEGER(%INTEGER DATA AD,DATA LEN,
                                   TEXT AD,TEXT LEN,TEXT INC,MODE)
%INTEGERFNSPEC TO REAL(%INTEGER DATA AD,DATA LEN,TEXT ADDRESS,
                                INT LEN,INT PTR,DEC LEN,DEC PTR,
                                EXP LEN,EXP PTR,DECS,SCALE,MODE)
!*
!***********************************************************************
!*
!***********************************************************************

==== ercs07/emas-2900/pcfiles_lexical1.txt ====
{
 
 History
 -------

 20/12/85 - Assign Constant.Kind in MakeStringConst. (agh)

                                                                    }
{

                           MODULE 8
 
 
                       Lexical Analysis
 
 
 
 
 
 Lexical analysis is carried out by the procedure NextSymbol.  When
 called,  NextSymbol  scans  the next language symbol in the source

==== ercs07/emas-2900/inpds_bracefin.txt ====
C     EDIT DATE   09OCT78  11:11
C     SOURCE FILE BRACEFTM.IN
C     AUTHOR      F. T. MICKEY
C     CLUSTER     X
      INTEGER     BRACEX, SELX,    LSX,     SELXB
      INTEGER     FUNCNT, FSCNT,   FRCNT,   FUNVAL
      INTEGER     NRFLS,  ARGSIZ,  PARCNT
      INTEGER     BSTACK (10), SUBENT (40)
      INTEGER     FLS (6),     PARSAV,      FLSAVE (6)
C     EQUIVALENCES FOR LOOP AND WHILE STACK
      INTEGER     WHSTRT (30), WHLOW (10), WHHIGH (10)
      INTEGER     LOOPT  (10), LOOPE (10),  LOOPF (10)
      EQUIVALENCE (WHSTRT, LOOPT)
      EQUIVALENCE (WHLOW,  LOOPE, WHSTRT (11))
      EQUIVALENCE (WHHIGH, LOOPF, WHSTRT (21))
      COMMON   /BRACE/  BRACEX, SELX,   LSX,    SELXB
      COMMON   /BRACE/  FUNCNT, FSCNT,  FRCNT,  FUNVAL
      COMMON   /BRACE/  NRFLS,  ARGSIZ, PARCNT
      COMMON   /BRACE/  WHSTRT, BSTACK, SUBENT
      COMMON   /BRACE/  FLS,    PARSAV, FLSAVE


==== ercs07/emas-2900/pascalprogs_trains1.txt ====
PROGRAM identify (input,output);

   { The following declarations specify the manner in which time tables
     are represented. They MUST be INCLUDED in any time table program.}

      {  C O N S T   D E C L A R A T I O N S }

CONST
   minsperday = 1440;    {minutes in one day }
   numberofstations = 7;
   maxstringlength=12;   {the length of the longest station string PETER....}
   maxwait = 240;        {longest time between any  connexions}


      { T Y P E    D E C L A R A T I O N S }

TYPE

   mintime = 0..minsperday;    {internal representation of all times}
   hourtime = packed array[1..5] of char;
                               {external representation HH.MM }

==== ercs07/emas-2900/oldqfiles_f77alloc2.txt ====
!* modified 23/03/82
!*
!******************************** EXPORTS ******************************
!*
%ROUTINESPEC ALLOC(%INTEGER PTR)
%INTEGERFNSPEC ALLOC CHAR(%INTEGER L,AD,
        %HALFINTEGERNAME IIN,%INTEGERNAME DISP)
%ROUTINESPEC INIT ALLOC(%INTEGER ADCOM)
%ROUTINESPEC ADD DATA ITEM(%INTEGER AREA,PTR,COUNT,DISP,L,AD)
%INTEGERFNSPEC TIDY GLA
%INTEGERFNSPEC PFORMAT(%INTEGER AINPUT,INP,J,
                       %STRINGNAME IDENTIFIER)
%INTEGERFNSPEC TO INTEGER(%INTEGER DATA AD,DATA LEN,
                                   TEXT AD,TEXT LEN,TEXT INC,MODE)
%INTEGERFNSPEC TO REAL(%INTEGER DATA AD,DATA LEN,TEXT ADDRESS,
                                INT LEN,INT PTR,DEC LEN,DEC PTR,
                                EXP LEN,EXP PTR,DECS,SCALE,MODE)
!*
!***********************************************************************
!*
!%INCLUDE "ERCS06.PERQ_PDICTFMTS"

==== ercs07/emas-2900/pascalprogs_trains2.txt ====
PROGRAM ttables(input,output);

   { The following declarations specify the manner in which time tables
     are represented. They MUST be INCLUDED in any time table program.}

      {  C O N S T   D E C L A R A T I O N S }

CONST
   minsperday = 1440;    {minutes in one day }
   numberofstations = 7;
   maxstringlength=12;   {the length of the longest station string PETER....}
   maxwait = 240;        {longest time between any  connexions}


      { T Y P E    D E C L A R A T I O N S }

TYPE

   mintime = 0..minsperday;    {internal representation of all times}
   hourtime = packed array[1..5] of char;
                               {external representation HH.MM }

==== ercs07/emas-2900/slinkf_ncompgfr.txt ====
    
      INTEGER FUNCTION NCOMP (NXX1, NXX2)   
      INTEGER     NXX1, NXX2
    
      INTEGER     NSIZE,  NAME(16), NTITLE  
      INTEGER     NFLAGS (512)  
      INTEGER     NADDRS (512)  
      INTEGER     NPOSIT (512)  
      INTEGER     NDATA  (512)  
      INTEGER     NTEXTX (512)  
      INTEGER     NTEXT  (1000) 
      INTEGER     NLX, NLSTRT, NLSTOP   
      INTEGER     TXSTRT, TXSTOP
      INTEGER     NTXBTS
      INTEGER     USEBIT, COMBIT, OVLBIT, EPTBIT
      INTEGER     LDMBIT, MODBIT, MLTBIT, RLSBIT
      INTEGER     GDFBIT, TYPBTS
      INTEGER     ATYPE 
      INTEGER      ICLP07   
      LOGICAL     OLDNAM
      COMMON      /NTABLE/ NSIZE, NAME, NTITLE  

==== ercs07/emas-2900/rectest.txt ====
program rectest;
type irec=record
          e2,e1:integer;
          e3:integer;
          e4:integer
         end;
     irecptr=^irec;
     crec=packed record
           a,b:char;
           d:char;
           c:char
           end;
     crecptr=^crec;
     iptr=^integer;
var rec1:irecptr;
    rec2:crecptr;
    one,two,three,four:iptr;
    ab,cd:iptr;
    off,ss:integer;
begin
rewrite(output,'rectest.dat');

==== ercs07/emas-2900/slinkf_punchgfr.txt ====
    
      SUBROUTINE PUNCH (CODE, ADDR, NBYTES) 
      INTEGER     CODE, ADDR, NBYTES
    
      INTEGER     CHAR  
      INTEGER     CHMASK
      INTEGER     CR, LF
      INTEGER     CRLF  
      INTEGER     BLANK, PERIOD 
      INTEGER     BLANKS, DASHES, COLONS, SLASHS
      INTEGER     ACH, BCH, CCH, DCH, ECH, FCH  
      INTEGER     GCH, HCH, ICH, JCH, KCH, LCH  
      INTEGER     MCH, NCH, OCH, PCH, QCH, RCH  
      INTEGER     SCH, TCH, UCH, VCH, WCH, XCH  
      INTEGER     YCH, ZCH  
      INTEGER     LBRACE, RBRACE
      INTEGER     LBRACK, RBRACK
      INTEGER ICLP04
      COMMON      /CHARAC/ CHAR 
      COMMON      /CHARAC/ CHMASK   
      COMMON      /CHARAC/ CR, LF   

==== ercs07/emas-2900/slogof_pnloopfr.txt ====
    
      SUBROUTINE  PNLOOP
    
      INTEGER     LIST (499), NAMES (499), CT, BITS (6, 2)  
      INTEGER ICLP08
      COMMON      /PNACOM / LIST, NAMES, CT, BITS   
      COMMON      /PNACOM / ICLP08  
    
      INTEGER  NI,     NJ,     NK   
      INTEGER  NSIZE
      INTEGER  NLX,    FNLX,   REMNLX, OVNLX,  TNAME
      INTEGER  NLSTRT, NLSTOP, NLSIZE, SRCHST   
      INTEGER  NTSTRT   
      INTEGER  NTSTOP   
      INTEGER  NTSIZE   
      INTEGER  PARFLG   
      INTEGER  SPARFL   
      INTEGER  NLWRDS   
      INTEGER  TX   
      INTEGER  NLENO
      INTEGER  STDMD

==== ercs07/emas-2900/pascalinfo.txt ====

PASCAL on EMAS
--------------

CONTENTS

1.  INTRODUCTION

2.  COMPILATION
2.1 Compilation Options
2.2 Compilation Listings

3.  EXECUTION
3.1 Use of Input and Output Media
3.2 The Standard PASCAL Files INPUT and OUTPUT
3.3 Separate Compilation of PASCAL Procedures and Functions
3.4 Mixed Language Programming
4.  BASIC ERROR ACTION
4.1 Compiler-detected Errors
4.2 Hardware Errors
4.3 Errors in Mathematical Libraries

==== ercs07/emas-2900/qfiles_map1.txt ====
!* modified 30/01/82
!*
!***********************************************************************
!*
!*
!***********************************************************************
!* Formats for accessing dictionary records                            *
!***********************************************************************
!*
%RECORDFORMAT PRECF( %C
               %BYTEINTEGER CLASS,TYPE,X0,X1, %C
               %INTEGER LINK1, LINK2, LINK3, ADDR4,  %C
               %HALFINTEGER DISP,LEN,  %C
               %INTEGER IDEN,LINE,XREF,CMNLENGTH, CMNREFAD)
!*
%RECORDFORMAT SRECF(%INTEGER INF0, LINK1, INF2, INF3, INF4)
!*
%RECORDFORMAT RESF((%INTEGER W %OR %HALFINTEGER H0,
                      (%HALFINTEGER H1 %OR %BYTEINTEGER FORM,MODE)))
!*
%RECORDFORMAT DORECF( %C

==== ercs07/emas-2900/ctms_areas.txt ====
!
%EXTERNALROUTINESPEC ECTM ENTER(%STRING(31) NAME)
%EXTERNALROUTINESPEC ECTM RESULT(%INTEGER RC)
!
%EXTERNALINTEGERFNSPEC ECTM PPI(%INTEGER DR0, DR1, ID)
%EXTERNALSTRINGFNSPEC ECTM NEXT TEMP
!
%CONSTINTEGER BYTE DESC = X'18000000'
!
%EXTERNALINTEGERFN CTM WORK AREA(  %C
      %INTEGER NOT RANGE DR0, NOT RANGE DR1,  %C
      PP DR0, PP DR1, DESC DR0, DESC DR1)
%INTEGER RC
!
%SYSTEMROUTINESPEC OUTFILE(%STRING(31) FILE,  %C
      %INTEGER SIZE, HOLE, PROT, %INTEGERNAME CONAD, FLAG)
%SYSTEMROUTINESPEC FILL(%INTEGER LENGTH, FROM, FILLER)
!
%INTEGER SIZE, MAX, FLAG, CONAD
%STRING(31) NAME
!

==== ercs07/emas-2900/slinksorg_linkerfs.txt ====
'HEAD'  LINKER FOR 6502 LOGOS
C     EDIT DATE   26JAN79  09:35
C     SOURCE FILE LINKERGAK.FS
C     AUTHOR      GARY A. KUDIS
C     CLUSTER     1
      'OUTFILE' LINKERGAK.FR
      'INCLUDE' IODEFNGAK.IN,
      'INCLUDE' IOFILEGAK.IN,
N     EXTERNAL    OLPS0, OLPS1, OLPS2, OLPS3
C LINKER ::
X     CALL OPEN (DBCHAN, DBFILE, 0, ECODE)
X     IF (ECODE.NE.1) STOP 99999
N     CALL OVOPN (OVCHAN, OVFILE)
N     CALL OVLOD (OLPS0)
      CALL INITLZ
X     WRITE (DBCHAN, 1)
X1    FORMAT (' LINKER INITIALIZATION COMPLETED')
      CALL ASKQES
X     WRITE (DBCHAN, 2)
X2    FORMAT (' LINKER ASK QUESTIONS COMPLETED')
      CALL TOPAGE

==== ercs07/emas-2900/slinksorg_darrayin.txt ====
C     EDIT DATE   08JUN78  08:00
C     SOURCE FILE DARRAYGAK.IN
C     AUTHOR      GARY A. KUDIS
C     DICTIONARY ARRAY
      INTEGER     DICT (400)
      INTEGER     ID, CID, DTSTRT, DTSTOP
      COMMON      /DARRAY/ DICT
      COMMON      /DARRAY/ ID, CID, DTSTRT, DTSTOP


==== ercs07/emas-2900/pddemo_aux5.txt ====
!* MODIFIED 08/04/82  02.00
!*
!              
!                         EXPORT LIST
!
!
%ROUTINESPEC F77 STOP(%HALFINTEGER PTYPE,%INTEGER VAL)
%ROUTINESPEC F77 PAUSE (%HALFINTEGER PTYPE,%INTEGER VAL)
%ROUTINESPEC F77 RTERR(%HALFINTEGER ERRNO)
%ROUTINESPEC F77 IOERR(%HALFINTEGER ERRNO)
%ROUTINESPEC F77 CONCAT(%INTEGER COUNT,%INTEGER ADRINDESCS,
OUTPUTBASE,%HALFINTEGER OUTPUTDISP,OUTPUTLEN)
%ROUTINESPEC F77COPY (%INTEGER SCE BASE,%HALFINTEGER SCE DISP,
SOURCE LEN,%INTEGER TARGET BASE,%HALFINTEGER TARGET DISP,TARGET LEN)
%INTEGERFNSPEC F77 INDEX (%INTEGER SEARCHBASE,
%HALFINTEGER SEARCHDISP,SEARCHLEN,%INTEGER KEYBASE,%HALFINTEGER KEYDISP,
KEYLEN)
%ROUTINESPEC F77 CMULTC(%INTEGER AD,%REAL R1,C1,R2,C2)
%ROUTINESPEC F77 CDIVC(%INTEGER AD,%REAL R1,C1,R2,C2)
%INTEGERFNSPEC F77 CXREL(%REAL R1,C1,R2,C2)
%INTEGERFNSPEC F77 CHREL(%HALFINTEGER OP,%INTEGER LBASE,

==== ercs07/emas-2900/slogosorg_tempsfin.txt ====
C     EDIT DATE   06MAR78  12:41
C     SOURCE FILE TEMPSFTM.IN
C     AUTHOR      F. T. MICKEY
C     CLUSTER     X
      INTEGER  DTX
      INTEGER  STX
      COMMON   /STEMP/  DTX
      COMMON   /STEMP/  STX




==== ercs07/emas-2900/sforf_fdes.txt ====


DESTROY  COPYLNY
DESTROY  COPYTOY
DESTROY  CPARENY
DESTROY  CTYPEY
DESTROY  DDUMPY
DESTROY  EMASIFY
DESTROY  ENDLINY
DESTROY  ESPY
DESTROY  ESTY
DESTROY  GETCY
DESTROY  GETLINY
DESTROY  GETNUMY
DESTROY  GETWRDY
DESTROY  GOLNY
DESTROY  IGNOREY
DESTROY  INITOBY
DESTROY  INITY
DESTROY  LABGENY
DESTROY  LEXY

==== ercs07/emas-2900/qfiles5apr_f77io2.txt ====
   !Modified  19/ 3/82   14.00





!**********************************************************************!
!**********************************************************************!
     !                                                         !
     !                                                         !
     !   This  Module  is  designed  to  provide  I/0  support !
     !                                                         !
     !                for  FORTRAN77  Programs                 !
     !                                                         !
     !                 on  ICL  PERQ  Machines                 !
     !                                                         !
     !                                                         !
!**********************************************************************!
!**********************************************************************!
                                    !
                                    ! compile either PARM(STACK,NOCHECK)

==== ercs07/emas-2900/lpds_tst12dlos.txt ====
''TITLE, TEST12D
''HEAD, LINKER COMMON ALLOCATION TEST
''LIST
  /////////////////////////////////////////////////////////
  //                                                     //
  // DATE   : SEP 19,1978                                //
  //                                                     //
  // AUTHOR : T. CHENG                                   //
  //                                                     //
  // TEST # : TEST12D                                    //
  //                                                     //
  // PURPOSE :   TEST MEMORY ALLOCATION FOR BLANK        //
  //              AND NAMED COMMONS.                     //
  //                                                     //
  // NOTE :      LINK WITH TEST12A,TEST12B AND           //
  //              TEST12C FOR TESTING.                   //
  //                                                     //
  /////////////////////////////////////////////////////////
''EJECT
     'LBR' DA, DB[3], DD 'RBR',                           // BLANK COMMON
     COM4 : 'LBR' DFLAG4, BUF4[100], 'DP' BPTR4 'RBR',    // #4 NAMED COMMON

==== ercs07/emas-2900/dumpseg.txt ====
program prsegfile(inseg,input,output);
imports code from code;
type chrblock=packed array[0..511] of char;
var inseg:segfiletype;
    i,j,k,block:integer;
    byte:chrblock;
    ch:char;
    objname,outname:fnstring;
{ *auto-}
begin
writeln('enter name of file to dump');
reset(input);
readln(objname);
writeln('enter name of dump file');
readln(outname);
reset(inseg,objname);
rewrite(output,outname);
write('modulename is ',inseg^.modulename);
writeln('  filename is ',inseg^.filename);
write('segblkfiller is ',inseg^.segblkfiller);
writeln('  qversion is ',inseg^.qversion);

==== ercs07/emas-2900/pptecodes_sorta.txt ====
Einitialise 
Enextproc  1
Eproc SORT    1    0    0
EXname  p_presetf    2    0    0
Eprecall     2
Estkaddr   Gst     + 0      4
Eop    PUSHVAL
 0 0 0
Estack:
 1:AddrDir       Gst     +    0  size: 4
Estklit        1
Eop    PUSHVAL
 0 0 0
Estack:
 1:LitVal            1  size: 4
Ecall        2      2    8
EXname  p_bindf    3    0    0
Eprecall     3
Estkaddr   Gst     + 0      4    OUTPUT
Eop    PUSHVAL
 0 0 0

==== ercs07/emas-2900/oldqfiles_f77fmt4.txt ====
!PFMTQ4 IS EQUIVALENT TO F77FMT1 ON PERQ
!
!*     RUNCOMP=0 FOR COMPILE TIME FORMAT
!*     RUNCOMP=1 FOR RUN TIME FORMAT

!*                                                                      FORMATCD
!*

%EXTERNALINTEGERFN FORMATCD(%INTEGER INSTART,DISP,ARYADR,INLEN,OUTLEN,  
    LEVEL,RUNCOMP, %INTEGERNAME TABLEN, ACTFMTLEN)
!*
!*
%SWITCH SW(0 : 122)
%HALFINTEGER PTR, CODE, BRACK, FLAG, I, CHAR, BOTHZERO
%HALFINTEGER NXTCHAR, OUTPTR, FMTPTR, TEXTPTR, HOLLEN, QUOTE CNT,ITEMPTR
%HALFINTEGER COPYCODE, ERR,LINELEN
%INTEGER LARGESTINT, COUNT, NUMBER,FMTAD,INLENGTH
%HALFINTEGER NOCOMMA, J, K,COMMAREQD
%HALFINTEGERARRAY LOOP(0 : 8)
%BYTEINTEGERARRAYNAME FORMAT
%BYTEINTEGERARRAYFORMAT AF(0 : 1320)

==== ercs07/emas-2900/slinks_qdataxin.txt ====
C     EDIT DATE   04MAY78  20:21
C     SOURCE FILE QDATAXGAK.IN
C     AUTHOR      GARY A. KUDIS
C     CLUSTER     0.07
      INTEGER     CMQUES (10)
      INTEGER     OBQUES (10)
      INTEGER     MPQUES (10)
      INTEGER     ANSWER (10)


==== ercs07/emas-2900/strans_copytofr.txt ====
    
      SUBROUTINE COPYTO (BUFOUT, OUTX, ICHAR)   
    
      INTEGER  INPTR
      INTEGER  OUTPTR   
      INTEGER  INMAX
      INTEGER  MAXTAB   
      INTEGER  MAXLIN   
      INTEGER  IFMAX
      INTEGER  MAXLEV   
      INTEGER  LINENO   
      INTEGER  PAGE 
      INTEGER  CLINE
      INTEGER  TLIMIT   
      INTEGER  LN   
      INTEGER  I, J, K  
      INTEGER  II, JJ, KK   
      INTEGER  LEXVAL   
      INTEGER  SLEN 
      INTEGER  LEVEL
      INTEGER  LEN  

==== ercs07/emas-2900/qfiles5apr_f77io3.txt ====
   !Modified  26/ 3/82   13.30





!**********************************************************************!
!**********************************************************************!
     !                                                         !
     !                                                         !
     !   This  Module  is  designed  to  provide  I/0  support !
     !                                                         !
     !                for  FORTRAN77  Programs                 !
     !                                                         !
     !                 on  ICL  PERQ  Machines                 !
     !                                                         !
     !                                                         !
!**********************************************************************!
!**********************************************************************!
                                    !
                                    ! compile either PARM(STACK,NOCHECK)

==== ercs07/emas-2900/slinkf_ltimegfr.txt ====
    
      SUBROUTINE LTIME  
    
      INTEGER     ECODE 
      INTEGER     CMCHAN
      INTEGER     RBCHAN
      INTEGER     OBCHAN
      INTEGER     MPCHAN
      INTEGER     DBCHAN
      INTEGER     TTYIN 
      INTEGER     TTYOUT
      COMMON      /IODEFN/ ECODE
      COMMON      /IODEFN/ CMCHAN   
      COMMON      /IODEFN/ RBCHAN   
      COMMON      /IODEFN/ OBCHAN   
      COMMON      /IODEFN/ MPCHAN   
      COMMON      /IODEFN/ DBCHAN   
      COMMON      /IODEFN/ TTYIN
      COMMON      /IODEFN/ TTYOUT   
    
      LOGICAL     MPFLAG

==== ercs07/emas-2900/helpsa20_brtampmpk.txt ====
AREA(2)
ALTER(11,X5,X2)
ALTER(15,X4,X2)

==== ercs07/emas-2900/slogosorg_labcomin.txt ====
C     EDIT DATE   23AUG78  16:23
C     SOURCE FILE LABCOMFTM.IN
C     AUTHOR      F. T. MICKEY
      INTEGER     LTLI, LLX, LOCNLX (10), LOCTLI (10)
      COMMON      /LABCOM/ LTLI, LLX, LOCNLX, LOCTLI




==== ercs07/emas-2900/slogof_lcfncdfr.txt ====
 
      BLOCK DATA 
 
      INTEGER     CODE 
      INTEGER     NOUNLC 
      INTEGER     DATALC 
      INTEGER     COMLOC 
      INTEGER     FBLOCK 
      INTEGER     ZREL 
      INTEGER     ABSLC 
      INTEGER     CBTAB (15) 
      INTEGER     CBX 
      INTEGER     LCTAB (15) 
      COMMON      /LCFUNC/ CODE 
      COMMON      /LCFUNC/ NOUNLC 
      COMMON      /LCFUNC/ DATALC 
      COMMON      /LCFUNC/ COMLOC 
      COMMON      /LCFUNC/ FBLOCK 
      COMMON      /LCFUNC/ ZREL 
      COMMON      /LCFUNC/ ABSLC 
      COMMON      /LCFUNC/ CBTAB 

==== ercs07/emas-2900/imptests_rtspecp1.txt ====
%BEGIN
%EXTERNALROUTINESPEC OUT(%INTEGERNAME X)
%ROUTINE CALL(%ROUTINE DUMMY,%INTEGERNAME Q)
%SPEC DUMMY(%INTEGERNAME X)
  DUMMY(Q)
%END
%INTEGER P
P=19
CALL(OUT,P)
%ENDOFPROGRAM

==== ercs07/emas-2900/slogof_oscanafr.txt ====
 
      SUBROUTINE  OSCAN (MATCH, LOW, HIGH) 
      INTEGER     MATCH, LOW, HIGH 
 
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG 
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV 
      INTEGER     NEXT,   NUMBER, I,      IOTYPE 
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE 
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP 
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT 
      INTEGER ICLP05 
      LOGICAL     ENDOK,CONEND 
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG 
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV 
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE 
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N 

==== ercs07/emas-2900/imptests_rtspecp2.txt ====
%BEGIN
%EXTERNALROUTINESPEC OUT(%INTEGERNAME X)
%ROUTINE CALL(%ROUTINE DUMMY,%INTEGERNAME Q)
%SPEC DUMMY(%INTEGERNAME X)
  DUMMY(Q)
%END
%INTEGER P
! ***** DELETING THIS ASSIGNMENT AGAIN:P=19 *****
CALL(OUT,P)
%ENDOFPROGRAM

==== ercs07/emas-2900/imptests_rtspecp3.txt ====
%EXTERNALROUTINE OUT(%INTEGERNAME X)
WRITE(X,2)
%END
%ENDOFFILE

==== ercs07/emas-2900/npc2_assgncode.txt ====
{

                          MODULE 20


                  Assignment Code Generation





 Assignment  code  is  generated   by  the  procedures  Assign  and
 AssignTag.   For  normal  assignments the procedure Assign distin-
 guishes the following cases:

 (a)  assignment of entire conformant arrays is carried out by  the
      special  P-code  MoveCAP,  using  the  conformant array value
      representation generated by the LoadCAP operation within  the
      expression tree;

 (b)  assignment of addressable multiword values is carried out  by

==== ercs07/emas-2900/pt_accs.txt ====
PROGRAM ACCS(INPUT,ACCFILE,OUTPUT);
LABEL 1;
TYPE ACCOUNTS=RECORD
                NAME:PACKED ARRAY[1..12] OF CHAR;
                AMOUNT:INTEGER
               END;
VAR ACCFILE:FILE OF ACCOUNTS;
    PERSON:ACCOUNTS;
    I:INTEGER;
BEGIN
REWRITE(ACCFILE);
FOR I:=1 TO 12 DO PERSON.NAME[I]:=' ';
PERSON.NAME[1]:=INPUT^;
WHILE PERSON.NAME[1]<>'Z' DO
  BEGIN
  FOR I:=2 TO 162 DO
    BEGIN
    GET(INPUT);
    IF INPUT^=' ' THEN GOTO 1;
    PERSON.NAME[I]:=INPUT^;
    END;

==== ercs07/emas-2900/oldqfiles_prstring.txt ====
%BEGIN
PRINTSTRING("HELLO")
NEWLINE
%ENDOFPROGRAM

==== ercs07/emas-2900/sforf_golnf.txt ====
      SUBROUTINE GOLN (/DUMMY/)
      INTEGER  INPTR
      INTEGER  OUTPTR
      INTEGER  INMAX
      INTEGER  MAXTAB
      INTEGER  MAXLIN
      INTEGER  IFMAX
      INTEGER  MAXLEV
      INTEGER  LINENO
      INTEGER  PAGE
      INTEGER  CLINE
      INTEGER  TLIMIT
      INTEGER  LN
      INTEGER  I, J, K
      INTEGER  II, JJ, KK
      INTEGER  LEXVAL
      INTEGER  SLEN
      INTEGER  LEVEL
      INTEGER  LEN
      INTEGER  INCHAN
      INTEGER  OUTCHN

==== ercs07/emas-2900/strans_putbakfr.txt ====
    
      SUBROUTINE PUTBAK (ICHAR) 
    
      INTEGER  INPTR
      INTEGER  OUTPTR   
      INTEGER  INMAX
      INTEGER  MAXTAB   
      INTEGER  MAXLIN   
      INTEGER  IFMAX
      INTEGER  MAXLEV   
      INTEGER  LINENO   
      INTEGER  PAGE 
      INTEGER  CLINE
      INTEGER  TLIMIT   
      INTEGER  LN   
      INTEGER  I, J, K  
      INTEGER  II, JJ, KK   
      INTEGER  LEXVAL   
      INTEGER  SLEN 
      INTEGER  LEVEL
      INTEGER  LEN  

==== ercs07/emas-2900/qfiles5apr_f77gen2.txt ====
!* MODIFIED 22/03/82
!*************  IMP80 version  ******************
!*
!**** SYNTAX ****
!*
!* Syntax tables generated from file SYNTAX48 on 28/01/82 at 23.55.35
!*
%CONSTBYTEINTEGERARRAY OS(0:1500)=  %C                     
   0,   0,  34,   1,   1,   2,  25,   1,   1,   3,
  10,   7,   2,   3,  29,  61,   0,   1,   1,   0,
  13,   1,   0,   1,   3,  20,   4,   1,   2,   1,
   4,  17,   1,   1,   0,   1,   2,  20,   4,   1,
   1,   1,   3,  17,   0,   1,   2,  87,   0,   1,
   1,   0,   1,   3,  20,   5,   1,   2,   1,   4,
  17,   1,   1,   0,   1,   2,  20,   5,   1,   1,
   1,   3,  17,   0,   1,   2,   1,   3,  17,   1,
   1,   0,   1,   1,   1,   2,  17,   0,  20,   2,
   1,   1,   0,  20,   3,   1,   1,   0,  22,   1,
   1,   0,  23,   1,   1,   0,  24,   1,   1,   0,
  88,   1,   1,  89,   0,   0,  88,   1,   1,  89,
   1,   0,  12,   4,   1,   3,  20,   4,   1,   2,

==== ercs07/emas-2900/slogof_pverb2fr.txt ====
    
      SUBROUTINE  PVR2 (INDEX, FLAG)
      INTEGER     INDEX, FLAG   
    
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      INTEGER     NEXT,   NUMBER, I,      IOTYPE
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT
      INTEGER ICLP05
      LOGICAL     ENDOK,CONEND  
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG   
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG  
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV  
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE  
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N   

==== ercs07/emas-2900/slogos_obdatain.txt ====
C     EDIT DATE   17AUG78  12:37
C     SOURCE FILE OBDATAJHP.IN
C     AUTHOR      J.H.PERINE
C     DECODE TABLES FOR OBJECT VERIFICATION
      INTEGER  LINSTR (512)
      COMMON   /OBJD/   LINSTR




==== ercs07/emas-2900/qfiles5apr_f77gen3.txt ====
!* MODIFIED 25/03/82
!*************  IMP80 version  ******************
!*
!**** SYNTAX ****
!*
!* Syntax tables generated from file SYNTAX48 on 28/01/82 at 23.55.35
!*
%CONSTBYTEINTEGERARRAY OS(0:1500)=  %C                     
   0,   0,  34,   1,   1,   2,  25,   1,   1,   3,
  10,   7,   2,   3,  29,  61,   0,   1,   1,   0,
  13,   1,   0,   1,   3,  20,   4,   1,   2,   1,
   4,  17,   1,   1,   0,   1,   2,  20,   4,   1,
   1,   1,   3,  17,   0,   1,   2,  87,   0,   1,
   1,   0,   1,   3,  20,   5,   1,   2,   1,   4,
  17,   1,   1,   0,   1,   2,  20,   5,   1,   1,
   1,   3,  17,   0,   1,   2,   1,   3,  17,   1,
   1,   0,   1,   1,   1,   2,  17,   0,  20,   2,
   1,   1,   0,  20,   3,   1,   1,   0,  22,   1,
   1,   0,  23,   1,   1,   0,  24,   1,   1,   0,
  88,   1,   1,  89,   0,   0,  88,   1,   1,  89,
   1,   0,  12,   4,   1,   3,  20,   4,   1,   2,

==== ercs07/emas-2900/ctpsclma_jclpr.txt ====
AREA(1,X148C)
ALTER(0,X0,X1)
AREA(1,X148C)
ALTER(1,X0,X1,NAME=PASC19MAL)
#

==== ercs07/emas-2900/pptests_mmult.txt ====


program matrix;

  const n = 50;

  var
    i,
    j,
    k: integer;
    s: real;
    a,
    b: array [1 .. n,1 .. n] of real;

  begin
    for i := 1 to n do
      for j := 1 to n do a[i, j] := 1.0;
    for i := 1 to n do
      for j := 1 to n do
        begin
          s := 0;

==== ercs07/emas-2900/slogosorg_crutchfs.txt ====
'HEAD'  CRUTCH SYMBOLIC
C     EDIT DATE   11DEC78  16:01
C     SOURCE FILE CRUTCHJHP.FS
C     AUTHOR      J.H.PERINE
C     CLUSTER     5
      'OUTFILE' CRDATAJHP.FR
      BLOCK DATA
      'INCLUDE' CRUCOMJHP.IN,P
C     IMPLIED ADDRESS INSTRUCTIONS
      DATA  IMPLID / 'BRK ',  0,'CLC ', 24,'CLD ',216,'CLI ', 88,^
                     'CLV ',184,'DEX ',202,'DEY ',136,'INX ',232,^
                     'INY ',200,'NOP ',234,'PHA ', 72,'PHP ',  8,^
                     'PLA ',104,'PLP ', 40,'RTI ', 64,'RTS ', 96,^
                     'SEC ', 56,'SED ',248,'SEI ',120,'TAX ',170,^
                     'TAY ',168,'TYA ',152,'TSX ',186,'TXA ',138,^
                     'TXS ',154 /
      DATA  NIMPLI / 75 /
C           RELATIVE ADDRESS INSTRUCTIONS (BRANCH)
      DATA  RELTIV / 'BCC ',144,'BCS ',176,'BEQ ',240,'BMI ', 48,^
                     'BNE ',208,'BPL ', 16,'BVC ', 80,'BVS ',112 /
      DATA  NRELTI / 24 /

==== ercs07/emas-2900/helpsa20_brtamrtnew.txt ====
CHANGEPROPERTIES(1,SEPARATE=NO,USEMODE=DENSE)
CHANGEPROPERTIES(2,SEPARATE=NO,USEMODE=DENSE)
CHANGEPROPERTIES(4,SEPARATE=NO,USEMODE=DENSE)
REDIRECT(NEWCTMREADID,ICLCTM.CTMREADID)
REDIRECT(NEWCTMDISCARDID,ICLCTM.CTMDISCARDID)
REDIRECT(NEWCTMDATETIME,ICLCTM.CTMDATETIME)
REDIRECT(NEWCTMJSREAD,ICLCTM.CTMJSREAD)
REDIRECT(NEWCTMJSWRITE,ICLCTM.CTMJSWRITE)
REDIRECT(NEWCTMSTOP,ICLCTM.CTMSTOP)
REDIRECT(NEWCTMJSBEGIN,ICLCTM.CTMJSBEGIN)
REDIRECT(NEWCTMJSEND,ICLCTM.CTMJSEND)
REDIRECT(NEWCTMSELECTRAM,ICLCTM.CTMSELECTRAM)
REDIRECT(NEWCTMREADDESC,ICLCTM.CTMREADDESC)
REDIRECT(NEWCTMWORKAREA,ICLCTM.CTMWORKAREA)
REDIRECT(NEWCTMSETVSATT,ICLCTM.CTMSETVSATT)
REDIRECT(NEWCTMWORKFILE,ICLCTM.CTMWORKFILE)

==== ercs07/emas-2900/rel6_dctl16.txt ====
{
{ f77dctl16:
{            2/7/82 - close diagnostic file on subsequent 'file' commands.
{                   - discard everdlist.
{
{ f77dctl15:
{           15/6/82 - Proceed from Ctl-shiftC }
{           17/6/82 - corrupt stack error message }
{           21/6/82 - recognition of diagnostic responses in f77diags changed }
{           24/6/82 - scrounge info o/p with /help }

module  f77dctl;
exports
imports filedefs from filedefs;

procedure ndiag(raiseap,dumpc,err,extra:fsbit16);
procedure ssmess(i:integer);

function loadss:fsbit16;
function loadap:fsbit16;
procedure diags(raiseap,es,er,pstart,pend:fsbit16);

==== ercs07/emas-2900/xput15.txt ====
!* modified 07/10/85
!* 21/10/85 - new ecodes PUSHBYTES, ARGPROC, update Eopname
!*          - new Pascal specific ecodes, update routine pasop, new array
!*          - Epasopname, update cfort_ecodes
!*
%ownstring(31) Versiontext="Fortran77 Compiler Version 0.1"
%owninteger Report=1
%owninteger Decode
%owninteger Language
!*
%constinteger IMP      =  1
%constinteger FORTRAN  =  2
%constinteger CCOMP    = 11
%constinteger PASCAL   = 14
!*
!***********************************************************************
!* Exports                                                             *
!***********************************************************************
!*
%routinespec Einitialise(%integer Lang, Avertext, Astackca,
                                                    Aglaca, Options)

==== ercs07/emas-2900/lpds_tst12dlrb.txt ====
TE
ST
12
D
SY
0:
TE
ST
12
D.
LR
B
29
-D
EC
-7
8
13
:2
6:
09

==== ercs07/emas-2900/rel6_init20.txt ====
module f77init;
{ updated 21/3/82 - function openfile defined }
{ updated 23/4/82 - real underflow dealt with in handler all }
{                   procedure movebee inserted }
{ updated 3 may  -  div 2 inserted in dblelen , local areas}
{ updated 4 may  -  localrec string dispensed with}
{         5 may -  size of area and common tables increased to 32}
{         7 may -  remove newline after x chars from iocp}
{        25 may - increase size of comarea & startad }
{                 set initial values of locind & comind to 0 }
{                 define constant maximum values for them }
{                 check against these values before creating new area  }
{                 reduce length of name in comrec & list6rec }
{                 set bc flag false if named common }
{                 set startad[areaind] if blank common already exists }
{                 set data to startad[areaind] if preinitialising }
{                 comment out any references to locarea }
{                 comment out any references to rootnam }
{       28/may/82 - fault in initialisation of arrays greater then 32kw fixed
{                   in routine fill.}
{        3/6/82 - Correct calculation of segment size(fsize) so that 64K word

==== ercs07/emas-2900/boot0.txt ====
 1 14 56 28134 28124 0 50 1 60 20 51 5TEST1 65538 0 0 34308 1 5 3 5 4 13-3 25 2 16 792 4 56 184 5 5 28-1 52 0 0 0 2 0 20 0 0 0 0 0 0 0 0

==== ercs07/emas-2900/slogof_mstakffr.txt ====
    
      SUBROUTINE MSTAK (INROW, OUTROW)  
      INTEGER     INROW, OUTROW 
      INTEGER     I 
    
      INTEGER     STK (20, 13)  
      INTEGER     NAMEX (40)
      INTEGER     OPX,    STKSIZ, OCBIT,  FUNBIT, SBIAS 
      INTEGER ICLP14
      COMMON      /SDEFS/ STK,    OPX,    STKSIZ, OCBIT,  FUNBIT, SBIAS 
      COMMON      /SDEFS/ ICLP14
      EQUIVALENCE (STK (1,1), NAMEX (1))
      DO  13000 I = 1, 13   
      STK (OUTROW, I) = STK (INROW, I)  
13000 CONTINUE  
    
      RETURN
      END   

==== ercs07/emas-2900/boot1.txt ====
 1 14 56 28134 28124 0 50 1 60 48 51 5TEST1 65538 0 0 34308 1 44 0 9p_presetf 2 45 2 25 5 0 0 4 56 186 13 1 56 186 46 2 2 8 44 0 7p_bindf 3 45 3 25 5 0 792 4 56 186 46 3 1 4 44 0 10p_rewritef 4 45 4 25 5 0 792 4 56 186 13 1 56 186 13 1 56 186 14 7 6 115 116 100 111 117 116 56 190 56 186 13 0 56 186 46 4 5 20 5 6 5 7 13-3 25 2 16 800 4 56 184 5 8 15 5 36 808 4 15 2 16 800 4 56 3 25 2 20 804 4 56 184 5 9 15 2 16 800 4 15 2 20 804 4 56 3 15 2 20 804 4 56 1 13 8 56 137 25 2 24 816 4 56 184 5 10 15 2 24 816 8 56 117 25 2 32 820 4 56 184 5 11 15 2 20 804 4 15 2 16 800 4 56 17 25 2 40 824 4 56 184 5 12 15 2 40 824 4 30 164-3 15 2 24 816 8 15 2 32 820 8 56 145 25 2 44 828 4 56 184 28-3 28-2 28-1 44 0 10p_postsetf 5 45 5 25 5 0 0 4 56 186 13 1 56 186 46 5 2 8 52 0 0 0 2 0 48 0 0 40 0 0 0 0 0

==== ercs07/emas-2900/ctms_tum.txt ====
%EXTERNALROUTINESPEC ECTM INHIBIT
%EXTERNALROUTINESPEC ECTM ALLOW
%EXTERNALROUTINESPEC ECTM ENTER(%STRING(31) NAME)
%EXTERNALROUTINESPEC ECTM RESULT(%INTEGER RC)
%EXTERNALROUTINESPEC ECTM REPORT STRING(%STRING(63) MESS,  %C
      %INTEGER DR0, DR1)
!
%EXTERNALINTEGERFN GIVE PROCESS TIME(%INTEGER OPTION, DR0, DR1)
ECTM ENTER("(TUM) GIVE PROCESS TIME")
ECTM RESULT(0)
%RESULT = 0
%END
!
%EXTERNALINTEGERFN INFORM
ECTM ENTER("(TUM) INFORM")
ECTM RESULT(0)
%RESULT = 0
%END
!
%EXTERNALINTEGERFN LOGMESSAGE
ECTM ENTER("(TUM) LOG MESSAGE")

==== ercs07/emas-2900/uss2.txt ====
Program Bestpension (input,output,rpifile) ;

type  realarray = array[0..300] of real ;
      intarray  = array[0..300] of integer ;

var   rpifile    : text ;
      persno     : alfa8 ;
      month      : intarray ;
      year       : intarray ;
      p          : array[1..40] of integer ;
      periodno,q   : 0..40 ;
      i,m,n       :  0..300 ;
      r         : 0..300 ;
      endbestyear :  1..25 ;
      endbest3   :  1..121 ;
      mlastrpi    :  1..12 ;
      ylastrpi    :  75..90 ;                                     
      mrpi        :  0..12 ;
      yrpi        :  0..90 ;
      nonewrpi    :  -80..20 ;
      retmon      :  1..12 ;

==== ercs07/emas-2900/boot2.txt ====
 1 14 56 28134 28124 0 50 1 51 3ONE 65536 0 0 34600 2 5 7 5 8 13-3 25 2 16 800 4 56 184 5 9 17 2 8 812 4 15 2 16 800 4 56 3 25 2 20 804 4 56 184 5 10 15 2 16 800 4 15 2 20 804 4 56 3 15 2 20 804 4 56 1 13 8 56 137 26 2 12 820 4 56 184 5 11 17 2 12 820 8 56 117 26 2 20 824 4 56 184 5 12 15 2 20 804 4 15 2 16 800 4 56 17 26 2 28 828 4 56 184 5 13 17 2 28 828 4 30 164-4 17 2 12 820 8 17 2 20 824 8 56 145 26 2 32 832 4 56 184 28-4 28-3 28-2 52 36 0 0 60 24 51 5TEST1 65538 0 0 34308 1 44 0 9p_presetf 3 45 3 25 5 0 0 4 56 186 13 1 56 186 46 3 2 8 44 0 7p_bindf 4 45 4 25 5 0 792 4 56 186 46 4 1 4 44 0 10p_rewritef 5 45 5 25 5 0 792 4 56 186 13 1 56 186 13 1 56 186 14 7 6 115 116 100 111 117 116 56 190 56 186 13 0 56 186 46 5 5 20 5 16 5 17 45 2 46 2 0 0 5 18 28-1 44 0 10p_postsetf 6 45 6 25 5 0 0 4 56 186 13 1 56 186 46 6 2 8 52 0 0 0 2 0 24 0 0 32 0 0 0 0 0

==== ercs07/emas-2900/slinks_errdfnin.txt ====
C     EDIT DATE   13MAY78  06:49
C     SOURCE FILE ERRDFNGAK.IN
C     AUTHOR      GARY A. KUDIS
C     ERROR MESSAGE DEFINTION TABLE
      INTEGER     EPROC (20)
      INTEGER     ECOUNT (20)
      INTEGER     ELIMIT (20)
      INTEGER     EMSG (200)
      INTEGER     EMSG1(10),EMSG2(10),EMSG3(10),EMSG4(10)
      INTEGER     EMSG5(10),EMSG6(10),EMSG7(10),EMSG8(10)
      INTEGER     EMSG9(10),EMSG10(10),EMSG11(10),EMSG12(10)
      INTEGER     EMSG13(10),EMSG14(10),EMSG15(10),EMSG16(10)
      INTEGER     EMSG17(10),EMSG18(10),EMSG19(10),EMSG20(20)
      INTEGER     EMAX,ICLP06
      COMMON      /ERRDFN/ EPROC
      COMMON      /ERRDFN/ ECOUNT
      COMMON      /ERRDFN/ ELIMIT
      COMMON      /ERRDFN/ EMSG
      COMMON      /ERRDFN/ EMAX
      COMMON      /ERRDFN/ ICLP06
      EQUIVALENCE (EMSG1,EMSG(1)),   (EMSG2,EMSG(11))

==== ercs07/emas-2900/boot3.txt ====
 1 14 56 28134 28124 0 50 1 51 3ONE 65536 1 4 34468 2 5 5 5 6 45-1 19 2 0 804 4 56 196 5 7 28-2 52 4 0 0 51 3TWO 65536 1 4 34564 3 5 10 5 11 45 2 19 2 0 816 4 56 186 46 2 1 4 5 12 28-3 52 4 0 0 51 5THREE 65536 0 0 34660 4 5 15 5 16 13 3 25 2 16 792 4 56 184 5 17 28-4 52 4 0 0 60 20 51 5TEST3 65538 0 0 34308 1 5 19 5 20 45 3 47 4 1 56 186 46 3 1 4 28-1 52 0 0 0 2 0 20 0 0 0 0 0 0 0 0

==== ercs07/emas-2900/slogof_advanffr.txt ====
 
      SUBROUTINE  ADVAN 
      EXTERNAL    OLQOT 
      INTEGER     ENTNUM, SOPLST, SNMLST 
 
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG 
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV 
      INTEGER     NEXT,   NUMBER, I,      IOTYPE 
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE 
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP 
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT 
      INTEGER ICLP05 
      LOGICAL     ENDOK,CONEND 
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG 
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV 
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE 

==== ercs07/emas-2900/strans_pstrftfr.txt ====
    
      SUBROUTINE PSTR (STR) 
    
      INTEGER  INPTR
      INTEGER  OUTPTR   
      INTEGER  INMAX
      INTEGER  MAXTAB   
      INTEGER  MAXLIN   
      INTEGER  IFMAX
      INTEGER  MAXLEV   
      INTEGER  LINENO   
      INTEGER  PAGE 
      INTEGER  CLINE
      INTEGER  TLIMIT   
      INTEGER  LN   
      INTEGER  I, J, K  
      INTEGER  II, JJ, KK   
      INTEGER  LEXVAL   
      INTEGER  SLEN 
      INTEGER  LEVEL
      INTEGER  LEN  

==== ercs07/emas-2900/boot4.txt ====
 1 14 56 28134 28124 0 50 1 51 3ONE 65536 2 16 34612 2 5 5 5 6 19 2 4 804 4 19 2 12 808 4 22 0 0 56 190 19 2 0 800 4 19 2 0 800 4 56 2 56 53 56 184 5 7 19 2 0 800 4 19 2 12 808 4 22 0 0 56 190 19 2 4 804 4 19 2 0 800 4 56 2 56 53 56 184 5 8 28-2 52 4 0 0 51 3TWO 65536 3 28 34692 3 5 11 5 12 45 2 27 2 12 824 4 13 12 56 197 19 2 24 832 4 22 0 0 56 190 19 2 0 816 4 19 2 0 816 4 56 2 19 2 8 816 4 56 55 56 186 46 2 2 16 5 13 28-3 52 4 0 0 60 16 51 5TEST4 65538 0 0 34308 1 5 15 5 16 45 3 25 5 0 792 4 56 186 46 3 3 28 28-1 52 0 0 0 2 0 16 0 0 180 0 0 0 0 0

==== ercs07/emas-2900/slogos_regsjhin.txt ====
C     EDIT DATE   30AUG78  08:28
C     SOURCE FILE REGSJHP.IN
C     AUTHOR      J.H.PERINE
C     PURPOSE  DEFINE NAME LIST VALUES FOR RESERVED REGISTER NAMES
      INTEGER  AREG,   XREG,   YREG,   NRREGS
      INTEGER  STATUS (10),    STAREG, STXREG, STYREG
      INTEGER  REGS (10)
      INTEGER  ACTREG (2),      ACTLO,  ACTHI
      INTEGER  NZREG
I     INTEGER ICLP10
      COMMON   / REGS / AREG,   XREG,   YREG,   NRREGS
      COMMON   / REGS / STATUS, REGS,   ACTREG, NZREG
I     COMMON   / REGS / ICLP10
      EQUIVALENCE    (ACTLO,  ACTREG (1))
      EQUIVALENCE    (ACTHI,  ACTREG (2))
      EQUIVALENCE    (STAREG, STATUS (1))
      EQUIVALENCE    (STXREG, STATUS (2))
      EQUIVALENCE    (STYREG, STATUS (3))

==== ercs07/emas-2900/boot5.txt ====
 1 14 56 28134 28124 0 50 1 44 0 4FIVE 2 60 24 51 5TEST5 65538 0 0 34308 1 5 5 5 6 45 2 25 2 16 792 4 56 186 25 2 20 796 4 56 186 46 2 2 8 5 7 28-1 52 0 0 0 2 0 24 0 0 0 0 0 0 0 0

==== ercs07/emas-2900/slinkf_grcordfr.txt ====
    
      SUBROUTINE GRCORD (ERX, EOF)  
      LOGICAL     ERX, EOF  
      LOGICAL     ERX2, EOF2
      INTEGER     GCHAR 
    
      INTEGER     RCOUNT
      INTEGER     RTYPE 
      INTEGER     RSTYPE
      INTEGER     RTMAX 
      INTEGER     RSZMAX
      INTEGER     RECORD (41)   
      INTEGER     RSIZE 
      INTEGER     RSIZES (20)   
      INTEGER ICLP02
      COMMON      /RECORD/ RCOUNT   
      COMMON      /RECORD/ RTYPE
      COMMON      /RECORD/ RSTYPE   
      COMMON      /RECORD/ RTMAX
      COMMON      /RECORD/ RSZMAX   
      COMMON      /RECORD/ RECORD   

==== ercs07/emas-2900/slinkf_t16p1gfr.txt ====
    
      SUBROUTINE T16P1  
    
      INTEGER     ECODE 
      INTEGER     CMCHAN
      INTEGER     RBCHAN
      INTEGER     OBCHAN
      INTEGER     MPCHAN
      INTEGER     DBCHAN
      INTEGER     TTYIN 
      INTEGER     TTYOUT
      COMMON      /IODEFN/ ECODE
      COMMON      /IODEFN/ CMCHAN   
      COMMON      /IODEFN/ RBCHAN   
      COMMON      /IODEFN/ OBCHAN   
      COMMON      /IODEFN/ MPCHAN   
      COMMON      /IODEFN/ DBCHAN   
      COMMON      /IODEFN/ TTYIN
      COMMON      /IODEFN/ TTYOUT   
C     WRITE (DBCHAN, 1) 
C    1FORMAT (' ENTER T16P1')   

==== ercs07/emas-2900/rel6_file13.txt ====
   !Modified      2/July/82   14.00





!**********************************************************************!
!**********************************************************************!
         !                                               !
         !                                               !
         !     Complete FILE INPUT/OUTPUT Procedures     !
         !                                               !
         !          for FORTRAN77 Programs               !
         !                                               !
         !           on ICL  PERQ Machines               !
         !                                               !
         !                                               !
!**********************************************************************!
!**********************************************************************!



==== ercs07/emas-2900/npcpf_pfcodeutils.txt ====
procedure JumpTo(var TheLabel: CodeLabel; Condition: JumpType);
extern;

procedure ExtendReferences(Entry: StackEntry);
extern;

procedure DiscardReferences(OldDepth: Scalar);
extern;

procedure AccessWord(WordLevel: AddressLevel; Delta: Offsets;
		     Operation: AccessOps);
extern;

procedure EmitCall(BlockBase: BlockLabel);
extern;

procedure Load(Entry: StackEntry);
extern;

procedure LOadAddress(Entry: StackEntry);
extern;

==== ercs07/emas-2900/dsa20_ncode3.txt ====
%CONTROL X'0FFFFFFF'
 
!********************************************* 
!*                                           * 
!* THIS ROUTINE RECODES FROM HEX INTO NEW    * 
!* RANGE ASSEMBLY CODE.                      * 
!*                                           * 
!********************************************* 
 
 
%SYSTEMROUTINE NCODE(%INTEGER START, FINISH, CA) 
%ROUTINESPEC PRIMARY DECODE 
%ROUTINESPEC SECONDARY DECODE 
%ROUTINESPEC TERTIARY DECODE 
%ROUTINESPEC DECOMPILE 
%CONSTSTRING (5) %ARRAY OPS(0 : 127) =       %C 
'     ','JCC  ','JAT  ','JAF  ','     ','     ','     ','     ', 
'VAL  ','CYD  ','INCA ','MODD ','PRCL ','J    ','JLK  ','CALL ', 
'ADB  ','SBB  ','DEBJ ','CPB  ','SIG  ','MYB  ','VMY  ','CPIB ', 
'LCT  ','MPSR ','CPSR ','STCT ','EXIT ','ESEX ','OUT  ','ACT  ', 
'SL   ','SLSS ','SLSD ','SLSQ ','ST   ','STUH ','STXN ','IDLE ', 

==== ercs07/emas-2900/slogof_gentrafr.txt ====
 
      SUBROUTINE  GENTRA (INREG, OUTREG) 
      INTEGER     INREG, OUTREG 
 
      INTEGER  AREG,   XREG,   YREG,   NRREGS 
      INTEGER  STATUS (10),    STAREG, STXREG, STYREG 
      INTEGER  REGS (10) 
      INTEGER  ACTREG (2),      ACTLO,  ACTHI 
      INTEGER  NZREG 
      INTEGER ICLP10 
      COMMON   / REGS / AREG,   XREG,   YREG,   NRREGS 
      COMMON   / REGS / STATUS, REGS,   ACTREG, NZREG 
      COMMON   / REGS / ICLP10 
      EQUIVALENCE    (ACTLO,  ACTREG (1)) 
      EQUIVALENCE    (ACTHI,  ACTREG (2)) 
      EQUIVALENCE    (STAREG, STATUS (1)) 
      EQUIVALENCE    (STXREG, STATUS (2)) 
      EQUIVALENCE    (STYREG, STATUS (3)) 
 
      INTEGER  CLRACV 
      INTEGER  CLRACX 

==== ercs07/emas-2900/slogosorg_bracefin.txt ====
C     EDIT DATE   09OCT78  11:11
C     SOURCE FILE BRACEFTM.IN
C     AUTHOR      F. T. MICKEY
C     CLUSTER     X
      INTEGER     BRACEX, SELX,    LSX,     SELXB
      INTEGER     FUNCNT, FSCNT,   FRCNT,   FUNVAL
      INTEGER     NRFLS,  ARGSIZ,  PARCNT
      INTEGER     BSTACK (10), SUBENT (40)
      INTEGER     FLS (6),     PARSAV,      FLSAVE (6)
C     EQUIVALENCES FOR LOOP AND WHILE STACK
      INTEGER     WHSTRT (30), WHLOW (10), WHHIGH (10)
      INTEGER     LOOPT  (10), LOOPE (10),  LOOPF (10)
      EQUIVALENCE (WHSTRT, LOOPT)
      EQUIVALENCE (WHLOW,  LOOPE, WHSTRT (11))
      EQUIVALENCE (WHHIGH, LOOPF, WHSTRT (21))
      COMMON   /BRACE/  BRACEX, SELX,   LSX,    SELXB
      COMMON   /BRACE/  FUNCNT, FSCNT,  FRCNT,  FUNVAL
      COMMON   /BRACE/  NRFLS,  ARGSIZ, PARCNT
      COMMON   /BRACE/  WHSTRT, BSTACK, SUBENT
      COMMON   /BRACE/  FLS,    PARSAV, FLSAVE


==== ercs07/emas-2900/library_liblist.txt ====

                                                                                
ICL 2900 SERIES TECHNICAL PUBLICATIONS HELD AT E.R.C.C., KINGS BUILDINGS        
                                                                                
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *       
                                                                                
                                                                                
THE LIST BELOW DETAILS THE CURRENT STATUS OF OFFICIAL ICL PUBLICATIONS          
RELATING MAINLY TO SYSTEM B.  SOME ARE NOT UP-TO-DATE, MISSING OR NOT           
EVEN REQUIRED.  THE COMMENTS SHOULD BE OF SOME HELP TO INDICATE THE             
STATE OF EACH MANUAL.  IT IS SOMETIMES VERY IMPORTANT TO READ ANY               
PUBLICATIONS NOTICES FILED AT THE FRONT OF THE MANUALS AND THE                  
APPENDICES GIVING THE AVAILABILITY OF FACILITIES AT EACH RELEASE OF             
THE SYSTEM OR PRODUCT.                                                          
                                                                                
THE MANUALS ARE FILED UNDER THE FOLLOWING CLASSIFICATIONS.                      
                                                                                
    0   BIBLIOGRAPHY                                                            
    1   INTRODUCTORY                                                            
    2   PLANNING                                                                
    3   SCL                                                                     

==== ercs07/emas-2900/inpds_objectin.txt ====
C     EDIT DATE   19AUG78  08:07
C     SOURCE FILE OBJECTAJH.IN
C     AUTHOR      A. J. HOWARD
C     CLUSTER     90
      INTEGER  AREAID (15), BCARD (41)
      INTEGER  RWORD1, RWORD2, RWORD3, RWORD (3)
      INTEGER  BTYPE
      INTEGER  EXTDX, ERRFLG
      INTEGER  NEWLCI
      INTEGER  OFFSET, OW
      INTEGER  RBITS, RCT
      INTEGER  TWI
      INTEGER  WF
      EQUIVALENCE (RWORD1, RWORD (1))
      EQUIVALENCE (RWORD2, RWORD (2))
      EQUIVALENCE (RWORD3, RWORD (3))
      COMMON   /OBJCOM/ AREAID, BCARD, RWORD
      COMMON   /OBJCOM/ BTYPE
      COMMON   /OBJCOM/ EXTDX
      COMMON   /OBJCOM/ OFFSET, OW
      COMMON   /OBJCOM/ RBITS

==== ercs07/emas-2900/slogos_listcmin.txt ====
      INTEGER  LRET, OFFSET, LINEX, LTIME, LN
      INTEGER  LINE (40)
      INTEGER  INDXFL, LX, TABNR, TABX, LMODE
      LOGICAL  LENTER
      COMMON   /LCOM/   LRET, OFFSET, LINEX, LTIME, LN
      COMMON   /LCOM/   LINE
      COMMON   /LCOM/   INDXFL, LX, TABNR, TABX, LMODE
      COMMON  /LCOM/   LENTER




==== ercs07/emas-2900/mixedsrce_callfunc.txt ====
PROGRAM DEFCALLFUNC;
%KEYEDENTRY ON
FUNCTION CALLFUNC(FUNCTION FUNC:INTEGER):INTEGER;
VAR VAL:INTEGER;
BEGIN
CALLFUNC:=FUNC;
END;
BEGIN
END.

==== ercs07/emas-2900/psclsce205_pdiags2.txt ====
! PASCAL DIAGNOSTICS RELEASE 1
! Mike Brown - September 1980
!
%SYSTEMROUTINESPEC ITOE (%INTEGER ADDR, LEN)
%SYSTEMROUTINESPEC DUMP (%INTEGER S, F)
%SYSTEMROUTINESPEC FINFO (%STRING (31) FILE, %INTEGER MODE, %C
   %RECORDNAME R, %INTEGERNAME FLAG)
%SYSTEMROUTINESPEC NCODE (%INTEGER S, F, A)
%SYSTEMSTRINGFNSPEC ITOS (%INTEGER INT)
%SYSTEMSTRINGFNSPEC CONFILE (%INTEGER AD)
%SYSTEMSTRINGFNSPEC FAILUREMESSAGE (%INTEGER ERROR)
!
%EXTERNALINTEGERFNSPEC ICL9LPPMPROCL (%INTEGER ERRNO, PROCNO, GROUP, %LONGINTEGER EMESS, %C
   %INTEGER LANG0, LANG1, DISPLACEMENT, %LONGINTEGER DIAGREC, %INTEGER MODCHAINENTRY0, %C
   MODCHAINENTRY1, AREAENTRY0, AREAENTRY1,STACKFRAME0, STACKFRAME1)
%EXTERNALINTEGERFNSPEC ICL9LPPMPROCR (%INTEGER DIAGNOSTICS, ARRAYSIZE, DISPLACEMENT, %C
   STACKFRAME0, STACKFRAME1, %LONGINTEGER DIAGREC, %INTEGER MODCHAINENTRY0, %C
   MODCHAINENTRY1, AREAENTRY0, AREAENTRY1, AREASOFENTRY0, AREASOFENTRY1)
%EXTERNALINTEGERFNSPEC ICL9HERRMESSP (%INTEGER ERRNO0, ERRNO1, %LONGINTEGERNAME EMESS)
!
%RECORDFORMAT RF (%INTEGER CONAD, FILETYPE, DATASTART, DATAEND, %C

==== ercs07/emas-2900/mixedsrce1_ioproctesti.txt ====
%BEGIN
%EXTERNALROUTINESPEC IOPROC;
SELECTOUTPUT(1);
PRINTSTRING(' CALLING IOPROC');
NEWLINE;
IOPROC;
PRINTSTRING(' DID IT WORK');
NEWLINE;
%ENDOFPROGRAM

==== ercs07/emas-2900/ecodelist_test1bl.txt ====
Einitialise 
Enextproc 
Edataentry  A    2    0    4
Edataentry  B    2    4    4
Edataentry  REC1    5    0    8
Edataentry  R1    2    8    8
Edataentry  R2    2   16    8
Edataentry  B1    2   24    4
Edataentry  B2    2   28    4
Eproc TEST1    0    0
 Elinestart ++++++++++++++++++++++    6
 Elinestart ++++++++++++++++++++++    7
Estklit       -3
Estkaddr   Gla     + 0      4    A
Eop    ESTORE
 0 0 0
Estack:
 2:AddrDir       Gla     +    0  size: 4
 1:LitVal           -3  size: 4
Ed4   Consts  + 56    FFFFFFFD
 Elinestart ++++++++++++++++++++++    8

==== ercs07/emas-2900/slinkf_t12p1gfr.txt ====
    
      SUBROUTINE T12P1  
    
      INTEGER     RCOUNT
      INTEGER     RTYPE 
      INTEGER     RSTYPE
      INTEGER     RTMAX 
      INTEGER     RSZMAX
      INTEGER     RECORD (41)   
      INTEGER     RSIZE 
      INTEGER     RSIZES (20)   
      INTEGER ICLP02
      COMMON      /RECORD/ RCOUNT   
      COMMON      /RECORD/ RTYPE
      COMMON      /RECORD/ RSTYPE   
      COMMON      /RECORD/ RTMAX
      COMMON      /RECORD/ RSZMAX   
      COMMON      /RECORD/ RECORD   
      COMMON      /RECORD/ RSIZE
      COMMON      /RECORD/ RSIZES   
      COMMON     /RECORD/ ICLP02

==== ercs07/emas-2900/temp2.txt ====
%INCLUDE "ERCS06.OPT_SPECS"
%INCLUDE "ERCS06.PERQ_TRIADOPS"

{2900} %CONSTINTEGER FRSIZE=8; ! FREELIST ENTRY SIZE IN BYTES

%CONSTINTEGER FUNCBIT=1;
%CONSTINTEGER RETBIT=4
%CONSTINTEGER LPEBIT=8

%ROUTINE PUSHFREE(%INTEGER VAL,%INTEGERNAME LINK)
%RECORD(SRECF)%NAME FREE
FREE==RECORD(ADICT+DPTR)
FREE_INF0=VAL
FREE_LINK1=LINK
LINK=DPTR
DPTR=DPTR+FRSIZE
%END

%ROUTINE PRBLHEAD(%RECORD(BLRECF)%NAME BL,%INTEGER BLIND)
BL==RECORD(ABLOCKS+BLIND*BLSIZE)
PRINTSTRING("BLOCK")

==== ercs07/emas-2900/slogof_ndefnffr.txt ====
    
      SUBROUTINE NDEFN  
    
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      INTEGER     NEXT,   NUMBER, I,      IOTYPE
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT
      INTEGER ICLP05
      LOGICAL     ENDOK,CONEND  
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG   
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG  
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV  
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE  
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N   
      COMMON   /LOGOS/  PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE  

==== ercs07/emas-2900/culhamsce_crmjns.txt ====
%BEGIN
%CONTROL X'1FFFFFFF'
!
!    THIS PROGRAM PERFORMS ONE OF TWO ACTIONS DEPENDING ON THE VALUE
!    OF THE INPUT INDICATOR, WHICH MAY BE 1 OR 2.
!
!    IND=1 THE PROGRAM CREATES A NEW MASTER JOURNAL FILE FROM INPUT
!    IN THE FORM SPECIFIED IN THE ROUTINE 'GET TITLE'
!    INPUT MAY BE FROM ANY MEDIUM IF AN APPROPRIATE VERSION OF THE
!    ROUTINE GET TITLE IS PROVIDED.
!
!    IND=2 THE EXISTING MASTER JOURNAL FILE IS READ FROM DISC AND
!    DETAILS ARE PRINTED.
!
!    IN BOTH CASES THE DISC FILE IS EXPECTED ON UNIT 10.
!
%INTEGER MXBUFS                        ;! SIZE OF DISC BUFFER ARRAY
%INTEGER MXNUMB                        ;! MAX SIZE OF TITLE ARRAY
!
MXNUMB = 1024                          ;! SET TITLE ARRAY MAXIMUM       00001200
MXBUFS = 1000                          ;! SET BUFFER ARRAY MAXIMUM

==== ercs07/emas-2900/pddemo_comp13.txt ====
!* modified 14/04/82
!*
!*************************** EXPORTS **********************
!*
%ROUTINESPEC F77COMP(%HALFINTEGER A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,
   %INTEGER INFILE,ERRFILE,OUTFILE,
   %HALFINTEGER BLKS,BITS,ISN,
   %INTEGER MODE,
   %HALFINTEGER NUMIMPORTS,MEMSIZE)
%ROUTINESPEC SOURCE LINE(%INTEGER ABUFF)
%ROUTINESPEC OUTPUTFUL
%ROUTINESPEC NAMESFUL
%ROUTINESPEC DICFUL
%ROUTINESPEC EXTFUL
!*
!********************************************************************
!*
!***********************************************************************
!*
!*
!***********************************************************************

==== ercs07/emas-2900/sforf_frem.txt ====


REMOVE  COPYLNY
REMOVE  COPYTOY
REMOVE  CPARENY
REMOVE  CTYPEY
REMOVE  DDUMPY
REMOVE  EMASIFY
REMOVE  ENDLINY
REMOVE  ESPY
REMOVE  ESTY
REMOVE  GETCY
REMOVE  GETLINY
REMOVE  GETNUMY
REMOVE  GETWRDY
REMOVE  GOLNY
REMOVE  IGNOREY
REMOVE  INITOBY
REMOVE  INITY
REMOVE  LABGENY
REMOVE  LEXY

==== ercs07/emas-2900/slogos_stkdfain.txt ====
C     EDIT DATE   03DEC78  11:40
C     SOURCE FILE STKDFA.IN
C     AUTHOR      A. J. HOWARD
      INTEGER     STK (20, 13)
C     COLUMN      ARRAY
C
C        1        NAMEX
C        2        SUBX
C        3        MODE
C        4        SUBXM
C        5        BIAS
C        6        SUBXB
C        7        LOCFLG
C        8        OSTACK
C        9        OPCODE
C        10       WFOP
C        11       WFOPND
C        12       SUBOP
C        13       WFSOP
      INTEGER     NAMEX (40)
      INTEGER     OPX,    STKSIZ, OCBIT,  FUNBIT, SBIAS

==== ercs07/emas-2900/strans_getnumfr.txt ====
    
      INTEGER FUNCTION GETNUM (/DUMMY/) 
    
      INTEGER  INPTR
      INTEGER  OUTPTR   
      INTEGER  INMAX
      INTEGER  MAXTAB   
      INTEGER  MAXLIN   
      INTEGER  IFMAX
      INTEGER  MAXLEV   
      INTEGER  LINENO   
      INTEGER  PAGE 
      INTEGER  CLINE
      INTEGER  TLIMIT   
      INTEGER  LN   
      INTEGER  I, J, K  
      INTEGER  II, JJ, KK   
      INTEGER  LEXVAL   
      INTEGER  SLEN 
      INTEGER  LEVEL
      INTEGER  LEN  

==== ercs07/emas-2900/ctms_froute.txt ====
%EXTERNALINTEGERFN ROUTE(%LONGINTEGER ROUTE, %INTEGER OPERATION)
!
! Basic file route for EMAS fixed record length data files.
!
! File route operation codes:
!
%CONSTINTEGER CREATE = 1, ASSIGN = 2, DELETE = 3, DEASSIGN = 4
%CONSTINTEGER CHOOSE RAM = 5
!
! File description parameter pair identifiers:
!
%CONSTINTEGER ACTUAL FILE SIZE = 150
%CONSTINTEGER MAXIMUM RECORD SIZE = 104
%CONSTINTEGER MAXIMUM FILE SIZE = 151
%CONSTINTEGER PLACEMENT = 130
%CONSTINTEGER EMAS CONAD = 133
%CONSTINTEGER INITIAL FILE SIZE = 137
%CONSTINTEGER ACCESS TYPE = 138
%CONSTINTEGER TEMP RAM = 141
!
%SYSTEMROUTINESPEC CONNECT(%STRING(31) FILE, %INTEGER A, B, C,  %C

==== ercs07/emas-2900/slogosorg_objectfs.txt ====
'HEAD'  RELOCATABLE OBJECT FORMATTING
C     EDIT DATE   18JAN79  21:55
C     SOURCE FILE OBJECTAJH.FS
C     AUTHOR      A. J. HOWARD
C     CLUSTER     10
      'OUTFILE'   OBJECTAJH.FR
C     EDIT DATE   18JAN79  21:55
C     SOURCE FILE OBJECTAJH.FR
C     AUTHOR      A. J. HOWARD
N     OVERLAY     OLOBJ
      SUBROUTINE  PNCHO
C     FORMAT THE RELOCATABLE OBJECT FILE FOR THE LOADER
      'INCLUDE'   OBJECTAJH.IN,P
C     END OF OBJECTAJH.IN
      'INCLUDE'   CODE1FTM.IN,
      'INCLUDE'   CTRLAJH.IN,
      'INCLUDE'   LCFUNCAJH.IN,
      'INCLUDE'   OBDATAJHP.IN,
      'INCLUDE'   LOGOSAJH.IN,
      'INCLUDE'   NLARAYFTM.IN,
      'INCLUDE'   NLISTCFTM.IN,

==== ercs07/emas-2900/slogos_lsdatafs.txt ====
'HEAD'  DATA FOR LIST OUTPUT
C     EDIT DATE   17AUG78  12:40
C     SOURCE FILE LSDATAJHP.FS
C     AUTHOR      J.H.PERINE
      'OUTFILE' LSDATAJHP.FR
      BLOCK DATA
      'INCLUDE' LSDATAJHP.IN,P
      'INCLUDE' LSOBJJHP.IN,P
      END
      'OUTFILE' OBDATAJHP.FR
      BLOCK DATA
      'INCLUDE' OBDATAJHP.IN,P
      'INCLUDE' LSOBJJHP.IN,
      END



==== ercs07/emas-2900/sforf_getnumf.txt ====
      INTEGER FUNCTION GETNUM (/DUMMY/)
      INTEGER  INPTR
      INTEGER  OUTPTR
      INTEGER  INMAX
      INTEGER  MAXTAB
      INTEGER  MAXLIN
      INTEGER  IFMAX
      INTEGER  MAXLEV
      INTEGER  LINENO
      INTEGER  PAGE
      INTEGER  CLINE
      INTEGER  TLIMIT
      INTEGER  LN
      INTEGER  I, J, K
      INTEGER  II, JJ, KK
      INTEGER  LEXVAL
      INTEGER  SLEN
      INTEGER  LEVEL
      INTEGER  LEN
      INTEGER  INCHAN
      INTEGER  OUTCHN

==== ercs07/emas-2900/slinkf_t09p1gfr.txt ====
    
      SUBROUTINE T09P1  
    
      INTEGER     NSIZE,  NAME(16), NTITLE  
      INTEGER     NFLAGS (512)  
      INTEGER     NADDRS (512)  
      INTEGER     NPOSIT (512)  
      INTEGER     NDATA  (512)  
      INTEGER     NTEXTX (512)  
      INTEGER     NTEXT  (1000) 
      INTEGER     NLX, NLSTRT, NLSTOP   
      INTEGER     TXSTRT, TXSTOP
      INTEGER     NTXBTS
      INTEGER     USEBIT, COMBIT, OVLBIT, EPTBIT
      INTEGER     LDMBIT, MODBIT, MLTBIT, RLSBIT
      INTEGER     GDFBIT, TYPBTS
      INTEGER     ATYPE 
      INTEGER      ICLP07   
      LOGICAL     OLDNAM
      COMMON      /NTABLE/ NSIZE, NAME, NTITLE  
      COMMON      /NTABLE/ NFLAGS, NADDRS, NPOSIT, NDATA, NTEXTX

==== ercs07/emas-2900/slogof_entnumfr.txt ====
    
      INTEGER FUNCTION ENTNUM (DUM) 
    
      INTEGER  NI,     NJ,     NK   
      INTEGER  NSIZE
      INTEGER  NLX,    FNLX,   REMNLX, OVNLX,  TNAME
      INTEGER  NLSTRT, NLSTOP, NLSIZE, SRCHST   
      INTEGER  NTSTRT   
      INTEGER  NTSTOP   
      INTEGER  NTSIZE   
      INTEGER  PARFLG   
      INTEGER  SPARFL   
      INTEGER  NLWRDS   
      INTEGER  TX   
      INTEGER  NLENO
      INTEGER  STDMD
      INTEGER  MSHIFT   
      INTEGER  REGCNT   
      INTEGER  NULLX
      INTEGER  STPTRX   
      INTEGER  SPMODE   

==== ercs07/emas-2900/slogos_rgsavefs.txt ====
      'HEAD' REGISTER STACK MANAGEMENT
C     EDIT DATE   16NOV78  15:08
C     SOURCE FILE RGSAVEAPB.FS
C     AUTHOR      A.P.BUCHALTER
C     CLUSTER       20

C     ROUTINES TO SAVE REGISTER CONTENTS FOR OPTIMIZATION
C     DURING THE EVALUATION OF BOOLEAN EXPRESSIONS AND
C     CODE GENERATION OF ALTERNATIVE PATHS THROUGH CONDITIONALS
C     AT VARIOUS POINTS, THE CURRENT REGISTER CONTENTS AS STORED
C     IN THE ARRAYS ACADDR,ACTYPE,ACSUBS,ETC. WILL BE SAVED
C     IN A REGISTER STACK AREA.
C     TO ALLOW MORE REGISTER LEVELS TO BE SAVED, ONLY A SUBSET
C     OF THE REGISTERS WILL BE SAVED. NAMELY:
C        AREG- ALL 5 PARAMETERS
C        YREG- ONLY YREG OF FORM: 'LOC'X[0+K] OR 'SP'X[0]+K
C              ONLY THE THREE PARAMETERS 'MODE',X, AND K SAVED
C        CTS - ONLY CT REGISTERS OF FORM: 'LOC'0['SP'X+0]
C              ONLY X WILL BE SAVED
C     THEREFORE, 15 ITEMS WILL BE SAVED FOR EACH REGISTER LEVEL
C     EACH LEVEL IN REGSTK WILL BE ORGANIZED AS:

==== ercs07/emas-2900/bscmast20_basicfiles.txt ====
!*
!/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
!
! DOCUMENTATION FOR THIS FILE HANDLING PACKAGE IS:-
!      "FILEHANDLING PACKAGE FOR BASIC ON EMAS"
!           LESLEY BREWIN    FEBRUARY 1979
!
!/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
!
!******************************************************************
!*
!*                         EXTERNAL REFERENCES
!*
!******************************************************************
!
%EXTERNALINTEGERFNSPEC INSTREAM
%EXTERNALINTEGERFNSPEC OUTSTREAM
%EXTERNALROUTINESPEC DEFINE(%STRING(255) PARMS)
%EXTERNALINTEGERFNSPEC EXIST(%STRING(31) S)
%SYSTEMROUTINESPEC DISCONNECT(%STRING(31) FILENAME,%INTEGERNAME FLAG)
%EXTERNALINTEGERFNSPEC UINFI(%INTEGER I)

==== ercs07/emas-2900/slogof_plbrftfr.txt ====
 
      SUBROUTINE PLBR 
 
      INTEGER     BRACEX, SELX,    LSX,     SELXB 
      INTEGER     FUNCNT, FSCNT,   FRCNT,   FUNVAL 
      INTEGER     NRFLS,  ARGSIZ,  PARCNT 
      INTEGER     BSTACK (10), SUBENT (40) 
      INTEGER     FLS (6),     PARSAV,      FLSAVE (6) 
      INTEGER     WHSTRT (30), WHLOW (10), WHHIGH (10) 
      INTEGER     LOOPT  (10), LOOPE (10),  LOOPF (10) 
      EQUIVALENCE (WHSTRT, LOOPT) 
      EQUIVALENCE (WHLOW,  LOOPE, WHSTRT (11)) 
      EQUIVALENCE (WHHIGH, LOOPF, WHSTRT (21)) 
      COMMON   /BRACE/  BRACEX, SELX,   LSX,    SELXB 
      COMMON   /BRACE/  FUNCNT, FSCNT,  FRCNT,  FUNVAL 
      COMMON   /BRACE/  NRFLS,  ARGSIZ, PARCNT 
      COMMON   /BRACE/  WHSTRT, BSTACK, SUBENT 
      COMMON   /BRACE/  FLS,    PARSAV, FLSAVE 
 
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG 

==== ercs07/emas-2900/npc1_pfsemant.txt ====
procedure SemanticError(Code: Scalar);
  extern;

procedure StartList(var List: IdList);
  extern;

procedure AppendId(var List: IdList; var Id: IdEntry);
  extern;

procedure ForAll(List: IdList; procedure Action(Id: IdEntry));
  extern;

procedure DsposeList(List: IdList);
  extern;

procedure StartSet(var s: IdSet);
  extern;

function InSet(s: IdSet; Id: IdEntry): Boolean;
  extern;


==== ercs07/emas-2900/basicmaster_basicgen.txt ====
EDIT BASICMASTER_BSCBASE15,OPTBASE
(M/!?/D1)1000
E
PARM NOARRAY,NOCHECK
IMP OPTBASE,OPTOBJ,.LP
PARM OPT
IMP BASICMASTER_FCONVS,FCOBJ,.LP
PARM
LINK
OPTOBJ
FCOBJ
BASICMASTER_BASIC4Y
.END
BASIC
PERMIT BASIC
CHERISH BASIC
DESTROY OPTOBJ,FCOBJ,OPTBASE,

==== ercs07/emas-2900/pt_iotest10.txt ====
PROGRAM TESTIP(INPUT,OUTPUT);
VAR N:INTEGER;
BEGIN
WHILE NOT EOF DO
  BEGIN
  OUTPUT^:=INPUT^;
  PUT(OUTPUT);
  GET(INPUT)
  END;
WRITELN('BYE');
END.

==== ercs07/emas-2900/slogof_regapbfr.txt ====
    
      SUBROUTINE REGSRC(FUNC, OPND, OTYPE, SUBSC, STYPE, BIAS, REG) 
      EXTERNAL  OLREG   
      INTEGER FUNC, OPND, OTYPE, SUBSC, STYPE, BIAS, REG
      CALL OREGS(FUNC, OPND, OTYPE, SUBSC, STYPE, BIAS, REG)
      RETURN
      END   

==== ercs07/emas-2900/qfiles5apr_f77map1.txt ====
!* modified 30/01/82
!*
!***********************************************************************
!*
!*
!***********************************************************************
!* Formats for accessing dictionary records                            *
!***********************************************************************
!*
%RECORDFORMAT PRECF( %C
               %BYTEINTEGER CLASS,TYPE,X0,X1, %C
               %INTEGER LINK1, LINK2, LINK3, ADDR4,  %C
               %HALFINTEGER DISP,LEN,  %C
               %INTEGER IDEN,LINE,XREF,CMNLENGTH, CMNREFAD)
!*
%RECORDFORMAT SRECF(%INTEGER INF0, LINK1, INF2, INF3, INF4)
!*
%RECORDFORMAT RESF((%INTEGER W %OR %HALFINTEGER H0,
                      (%HALFINTEGER H1 %OR %BYTEINTEGER FORM,MODE)))
!*
%RECORDFORMAT DORECF( %C

==== ercs07/emas-2900/pt_iotest11.txt ====
PROGRAM TESTIP(INPUT,OUTPUT);
VAR N:CHAR;
BEGIN
WHILE NOT EOF DO
  BEGIN
  OUTPUT^:=INPUT^;
  PUT(OUTPUT);
  GET(INPUT)
  END;
WRITELN('BYE');
END.

==== ercs07/emas-2900/slogof_igenajfr.txt ====
 
      SUBROUTINE  GEN (OPIN, LEFTIN, RIN) 
      INTEGER     OPIN, LEFTIN, RIN 
 
      INTEGER     OP, LEFT, RIGHT, LSTKX, RSTKX 
      INTEGER     TS, LOAD, BASE 
      INTEGER     THIS, OTHER, SIDE, HI, LOW 
      INTEGER     INTBR, ROW, COL, INREG, OUTREG 
      INTEGER     BCC, BNE 
      INTEGER     CLC, JMP, LDAABS, LDAI, LDAZP 
      INTEGER     SBCI, SEC, STAZP, TAX, TXA 
      LOGICAL     COMZER, EZSTA, MORE 
      COMMON      /GCOM/   OP, LEFT, RIGHT, LSTKX, RSTKX 
      COMMON      /GCOM/   TS, LOAD, BASE 
      COMMON      /GCOM/   THIS, OTHER, SIDE, HI, LOW 
      COMMON      /GCOM/   INTBR, ROW, COL, INREG, OUTREG 
      COMMON      /GCOM/   BCC, BNE 
      COMMON      /GCOM/   CLC, JMP, LDAABS, LDAI, LDAZP 
      COMMON      /GCOM/   SBCI, SEC, STAZP, TAX, TXA 
      COMMON      /GCOM/   COMZER, EZSTA, MORE 
 

==== ercs07/emas-2900/slinkf_t05p1gfr.txt ====
    
      SUBROUTINE T05P1  
    
      INTEGER     NSIZE,  NAME(16), NTITLE  
      INTEGER     NFLAGS (512)  
      INTEGER     NADDRS (512)  
      INTEGER     NPOSIT (512)  
      INTEGER     NDATA  (512)  
      INTEGER     NTEXTX (512)  
      INTEGER     NTEXT  (1000) 
      INTEGER     NLX, NLSTRT, NLSTOP   
      INTEGER     TXSTRT, TXSTOP
      INTEGER     NTXBTS
      INTEGER     USEBIT, COMBIT, OVLBIT, EPTBIT
      INTEGER     LDMBIT, MODBIT, MLTBIT, RLSBIT
      INTEGER     GDFBIT, TYPBTS
      INTEGER     ATYPE 
      INTEGER      ICLP07   
      LOGICAL     OLDNAM
      COMMON      /NTABLE/ NSIZE, NAME, NTITLE  
      COMMON      /NTABLE/ NFLAGS, NADDRS, NPOSIT, NDATA, NTEXTX

==== ercs07/emas-2900/pt_iotest12.txt ====
PROGRAM CONV(INPUT,OUTPUT,BINOUT);
VAR BINOUT:FILE OF INTEGER;
    NUMBER,COUNT:INTEGER;
BEGIN
  REWRITE(BINOUT);
  COUNT:=0;
  READ(NUMBER);
  WHILE NUMBER <> -1 DO
  BEGIN
    BINOUT^:=NUMBER;
    PUT(BINOUT);
    COUNT:=COUNT+1;
    READ(NUMBER);
  END;
  WRITELN(COUNT,' NUMBERS COPIED')
END.

==== ercs07/emas-2900/mixedsrce1_proctesta.txt ====
%BEGIN
%PROCEDURE SET2(I1,I2);
%INTEGER I1,I2;
%EXTERNAL SET2;
%INTEGER INT1,INT2;
PRINTSTRING(<CALLING_SET2>);
NEWLINE;
SET2(INT1,INT2);
PRINTSTRING(<INT1 =>);
PRINT(INT1,4,0);
PRINTSTRING(<__INT2=>);
PRINT(INT2,4,0);
NEWLINE;
PRINTSTRING(<DID_IT_WORK>);
NEWLINE
%END;

==== ercs07/emas-2900/pt_iotest13.txt ====
PROGRAM PRINT(INFILE,OUTPUT);
VAR INFILE:FILE OF INTEGER;
BEGIN
  RESET(INFILE);
  WHILE NOT EOF(INFILE) DO
  BEGIN
    WRITELN(INFILE^);
    GET(INFILE)
  END;
END.

==== ercs07/emas-2900/strans_stranyl.txt ====

LINK
STRANS_LOGICY
STRANS_INITY
STRANS_INITOBY
STRANS_CPARENY
STRANS_CTYPEFY
STRANS_ENDLINY
STRANS_GOLNFTY
STRANS_LABGENY
STRANS_LEXFTMY
STRANS_LNCONTY
STRANS_LSTARTY
STRANS_PARSEFY
STRANS_PLNFTMY
STRANS_PSTRFTY
STRANS_COPYLNY
STRANS_COPYTOY
STRANS_GETCY
STRANS_GETLINY
STRANS_GETNUMY

==== ercs07/emas-2900/pt_iotest14.txt ====
PROGRAM EXPONZ(INPUT,OUTPUT,INFILE,OUTFILE);
VAR PI, SPI :CHAR;INFILE,OUTFILE:TEXT;
BEGIN
RESET(INFILE);
REWRITE(OUTFILE);
WHILE NOT EOF(INFILE) DO
  BEGIN
READ(INFILE,PI);
WRITELN(OUTFILE,PI);
  END
END.

==== ercs07/emas-2900/pt_iotest15.txt ====
PROGRAM EXPONZ(INPUT,OUTPUT,INFILE,OUTFILE);
VAR PI, SPI :INTEGER;INFILE,OUTFILE:TEXT;
BEGIN
RESET(INFILE);
REWRITE(OUTFILE);
WHILE NOT EOF(INFILE) DO
  BEGIN
READ(INFILE,PI);
WRITELN(OUTFILE,PI);
  END
END.

==== ercs07/emas-2900/strans_stestfs.txt ====


C  THIS IS A SAMPLE PROGRAM
C  TO TEST THE STRAN PREPROCESSOR
C
C      DATE :   15/6/79
      'INCLUDE'  BLOBFS,P
      'OUTFILE' STEST1.FR
I        INTEGER ICL
N        INTEGER NOVA
P        INTEGER PDP
C *** TEST1
  100 CONTINUE
      I=1
      'DO'
         I=2
         'WHILE' (A.GE.0)
            K=1
            'END'
      J=2
C ***TEST2

==== ercs07/emas-2900/slinkf_t01p1gfr.txt ====
    
      SUBROUTINE T01P1  
    
      INTEGER     NSIZE,  NAME(16), NTITLE  
      INTEGER     NFLAGS (512)  
      INTEGER     NADDRS (512)  
      INTEGER     NPOSIT (512)  
      INTEGER     NDATA  (512)  
      INTEGER     NTEXTX (512)  
      INTEGER     NTEXT  (1000) 
      INTEGER     NLX, NLSTRT, NLSTOP   
      INTEGER     TXSTRT, TXSTOP
      INTEGER     NTXBTS
      INTEGER     USEBIT, COMBIT, OVLBIT, EPTBIT
      INTEGER     LDMBIT, MODBIT, MLTBIT, RLSBIT
      INTEGER     GDFBIT, TYPBTS
      INTEGER     ATYPE 
      INTEGER      ICLP07   
      LOGICAL     OLDNAM
      COMMON      /NTABLE/ NSIZE, NAME, NTITLE  
      COMMON      /NTABLE/ NFLAGS, NADDRS, NPOSIT, NDATA, NTEXTX

==== ercs07/emas-2900/pt_iotest16.txt ====
PROGRAM EXPONZ(INPUT,OUTPUT,INFILE,OUTFILE);
VAR PI, SPI :CHAR;INFILE,OUTFILE:TEXT;
 R1 :REAL;
BEGIN
RESET(INFILE);
REWRITE(OUTFILE);
WHILE NOT EOF(INFILE) DO
  BEGIN
READ(INFILE,PI);
WRITELN(OUTFILE,'  CHAR IS ',PI);
  END;
READ(R1);
WRITELN(R1);
END.

==== ercs07/emas-2900/slinkf_errorgfr.txt ====
    
      SUBROUTINE ERROR (N)  
      INTEGER     N 
      INTEGER     PROC  
      INTEGER     NSAVE 
      INTEGER     ETEXT (36)
    
      INTEGER     EPROC (20)
      INTEGER     ECOUNT (20)   
      INTEGER     ELIMIT (20)   
      INTEGER     EMSG (200)
      INTEGER     EMSG1(10),EMSG2(10),EMSG3(10),EMSG4(10)   
      INTEGER     EMSG5(10),EMSG6(10),EMSG7(10),EMSG8(10)   
      INTEGER     EMSG9(10),EMSG10(10),EMSG11(10),EMSG12(10)
      INTEGER     EMSG13(10),EMSG14(10),EMSG15(10),EMSG16(10)   
      INTEGER     EMSG17(10),EMSG18(10),EMSG19(10),EMSG20(20)   
      INTEGER     EMAX,ICLP06   
      COMMON      /ERRDFN/ EPROC
      COMMON      /ERRDFN/ ECOUNT   
      COMMON      /ERRDFN/ ELIMIT   
      COMMON      /ERRDFN/ EMSG 

==== ercs07/emas-2900/pffiles_lexical.txt ====
procedure InitWords;
  extern;

procedure InitAlfa(var AlfaSpelling: Alfa);
  extern;

function RankedTails(Tail1, Tail2: AlfaEntry): Boolean;
  extern;

function SameAlfa(Name1, Name2: Alfa): Boolean;
  extern;

function EquivAlfa(Name1, Name2: Alfa): Boolean;
  extern;

procedure DispAlfa(LongIdent: Alfa);
  extern;

procedure CopySpelling(var Copy: Alfa);
  extern;


==== ercs07/emas-2900/imptests_cnstiarr.txt ====
%BEGIN
%ROUTINE ONE (%INTEGERNAME INT)
INT=9
%END
%CONSTINTEGERARRAY ARR(1:2)=1,2
ONE(ARR(1))
%ENDOFPROGRAM

==== ercs07/emas-2900/pt_iotest17.txt ====
PROGRAM TEST17(INPUT,OUTPUT);
VAR I:INTEGER;
    X:CHAR;
BEGIN
FOR I:=1 TO 15 DO BEGIN
  READ(X);
  WRITELN(X);
  IF EOLN THEN WRITELN('**');
END;
END.

==== ercs07/emas-2900/dsea20_rtjsvar1.txt ====
R/1/0/
E

==== ercs07/emas-2900/mixedsrce1_proctestf.txt ====
      PROGRAM PROCTEST
      EXTERNAL SET2
      WRITE(6,100)
  100 FORMAT(' CALLING SET2')
      CALL SET2(INT1,INT2)
      WRITE(6,200)INT1,INT2
  200 FORMAT(' INT1 =',I4,'  INT2=',I4)
      WRITE(6,300)
  300 FORMAT(' DID IT WORK')
     STOP
      END

==== ercs07/emas-2900/pt_iotest18.txt ====
PROGRAM CONV(IN1,IN2,OUTPUT,BIN1,BIN2);
VAR BIN1,BIN2:FILE OF INTEGER;
    IN1,IN2:TEXT;
    NUMB1,NUMB2,CNT1,CNT2:INTEGER;
BEGIN
  REWRITE(BIN1);
  REWRITE(BIN2);
  RESET(IN1);
  RESET(IN2);
  CNT1:=0;
  CNT2:=0;
  READ(IN1,NUMB1);
  WHILE NUMB1 <> -1 DO
  BEGIN
    READ(IN2,NUMB2);
    BIN1^:=NUMB1;
    BIN2^:=NUMB2;
    PUT(BIN1);
    CNT1:=CNT1+1;
    PUT(BIN2);
    CNT2:=CNT2+1;

==== ercs07/emas-2900/conelimv8.txt ====
! 09/02/83 - CONELIMV8 -REMOVE TEST ON CTR_MODE2 IN OPTNEG
! 08/02/83 - CONELIMV7 - SET CURROP TO TABADD LINE 1024
! CONELIMV6 - OPTNEG - OP SET TO NEG INSTEAD OF SUB
! 24/01/83 - REMOVE REDUNDANT TRACING
! CONELIMV5 - MOVE CTR_RES1=CTR_RES2 TO BEFORE LABEL CEN10:
! 21/01/83 - FACTORISE - SWAP FSTIND & SCNDIND LINES 1542-1546
! 17/01/83 - CE80:, CORRECT TEST FOR ID
! 11/01/83 - FACTORISE &LINEARISE, SWAP TRFST& TRSCND CORRECTLY
! 07/01/83 - CHANGE COORDS 60,61,62,63 OF CETAB1
%INCLUDE "ERCS06.OPT_SPECS"
%INCLUDE "ERCS06.PERQ_TRIADOPS"

%EXTERNALROUTINESPEC PRINT TR(%INTEGER INDEX,ADICT,ANAMES,
          LEVEL,%RECORD(TRIADF)%NAME TRIAD)
%EXTERNALINTEGERFNSPEC CONRES(%INTEGER CONST,MODE)
%EXTERNALINTEGERFNSPEC CONCHECK(%RECORD(RESF) RES)
%EXTERNALINTEGERFNSPEC CONVERTMODE(%RECORD(RESF)%NAME RES,%INTEGER MODE)
%EXTERNALINTEGERFNSPEC CONINVERT(%RECORD(RESF) RES1,
                                 %RECORD(RESF)%NAME RES)

%OWNRECORD(RESF) RNULL

==== ercs07/emas-2900/pcfiles_withstmts2.txt ====
{
History
-------

 13/02/86 - Add call to EpDiscard to dispose address descriptor in
	    Closewtih. New include file impint.pf
									}

{

                          MODULE 21


                       With Statements





 The set of records addressed by currently open with-statements  is
 held  as  a 'with-stack', pointed to by the variable TopWithEntry,

==== ercs07/emas-2900/pddemo_code10.txt ====
!* MODIFIED 12/04/82
!{2900C}%CONSTINTEGER W1=2;! 1 PERQ  2 EMAS
!{2900C}%CONSTINTEGER W2=4
!{2900C}%CONSTINTEGER W3=6
!{2900C}%CONSTINTEGER W4=8
!{2900C}%CONSTINTEGER W8=16
!{2900C}%CONSTINTEGER W66=132
{PERQC}%CONSTINTEGER W1=1
{PERQC}%CONSTINTEGER W2=2
{PERQC}%CONSTINTEGER W3=3
{PERQC}%CONSTINTEGER W4=4
{PERQC}%CONSTINTEGER W8=8
{PERQC}%CONSTINTEGER W66=66
%OWNINTEGER TRACETEMP
!*************  IMP80 version  ******************
!*
!***********************************************************************
!%INCLUDE "ERCS06.PERQ_TRIADOPS"                                        ;
!***********************************************************************
!*
!*

==== ercs07/emas-2900/pt_iotest19.txt ====
PROGRAM PRINT(IN1,IN2,OUT1,OUT2,OUTPUT);
VAR IN1,IN2:FILE OF INTEGER;
    OUT1,OUT2:TEXT;
BEGIN
  RESET(IN1);
  REWRITE(OUT1);
REWRITE(OUT2);
  RESET(IN2);
  WRITELN('ENTERING LOOP');
  WHILE NOT EOF(IN1) DO
  BEGIN
    WRITELN(OUT1,IN1^);
    WRITELN(OUT2,IN2^);
    GET(IN1);
    GET(IN2)
  END;
END.

==== ercs07/emas-2900/dsea20_ioedfnldir.txt ====
TS$(*#$ P+1 R/YES/NO/ T+1 P+1
I$%CHARCODE=EBCDIC
%DIAGLINEMAP=NO
%DIAGNAMETABLE=NO
$
TELE

==== ercs07/emas-2900/conelimv9.txt ====
! 14/02/83 - CONELIMV9 - REMOVE REDUDNDANT TRACING
! 09/02/83 - CONELIMV8 -REMOVE TEST ON CTR_MODE2 IN OPTNEG
! 08/02/83 - CONELIMV7 - SET CURROP TO TABADD LINE 1024
! CONELIMV6 - OPTNEG - OP SET TO NEG INSTEAD OF SUB
! 24/01/83 - REMOVE REDUNDANT TRACING
! CONELIMV5 - MOVE CTR_RES1=CTR_RES2 TO BEFORE LABEL CEN10:
! 21/01/83 - FACTORISE - SWAP FSTIND & SCNDIND LINES 1542-1546
! 17/01/83 - CE80:, CORRECT TEST FOR ID
! 11/01/83 - FACTORISE &LINEARISE, SWAP TRFST& TRSCND CORRECTLY
! 07/01/83 - CHANGE COORDS 60,61,62,63 OF CETAB1
%INCLUDE "ERCS06.OPT_SPECS"
%INCLUDE "ERCS06.PERQ_TRIADOPS"

%EXTERNALROUTINESPEC PRINT TR(%INTEGER INDEX,ADICT,ANAMES,
          LEVEL,%RECORD(TRIADF)%NAME TRIAD)
%EXTERNALINTEGERFNSPEC CONRES(%INTEGER CONST,MODE)
%EXTERNALINTEGERFNSPEC CONCHECK(%RECORD(RESF) RES)
%EXTERNALINTEGERFNSPEC CONVERTMODE(%RECORD(RESF)%NAME RES,%INTEGER MODE)
%EXTERNALINTEGERFNSPEC CONINVERT(%RECORD(RESF) RES1,
                                 %RECORD(RESF)%NAME RES)


==== ercs07/emas-2900/npc2_statstore.txt ====
{

                          MODULE 14


                  Static Storage Management





 The static storage required by a procedure,  function  or  program
 block is calculated at compile-time by recording:

 (1)  the storage required by local variables,  formal  parameters,
      and function results;

 (2)  the storage required by temporaries used  internally  by  the
      generated code;

 (3)  the storage required to preserve 'extended references';

==== ercs07/emas-2900/npc2_pfcalls.txt ====
{

                          MODULE 24


                     Generating Code For
                 Procedure and Function Calls





 23.1  Delayed Code Generation in Procedure Function Calls

 In the implementation of procedure and function calls delayed code
 generation is used at two levels:

 (a)  generation  of  parameter-passing  code  is  delayed   during
      analysis  of the actual parameter list for both procedure and
      function calls, and


==== ercs07/emas-2900/mixedsrce1_proctesti.txt ====
%BEGIN
%EXTERNALROUTINESPEC SET2(%INTEGERNAME I1,I2)
%INTEGER INT1,INT2
PRINTSTRING('CALLING SET2')
NEWLINE
SET2(INT1,INT2)
PRINTSTRING('INT1 =')
WRITE(INT1,4)
PRINTSTRING('  INT2 =')
WRITE(INT2,4)
NEWLINE
PRINTSTRING('DID IT WORK')
NEWLINE
%ENDOFPROGRAM

==== ercs07/emas-2900/slogof_lemasafr.txt ====
      SUBROUTINE OPENF(CHAN,FILE,ERROR) 
      INTEGER CHAN,FILE(1),ERROR 
      INTEGER STRING(10) 
      INTEGER CHARF,CHART,COMMA,ZERO,BLANK,CHARZ 
      INTEGER SUCESS,GCHAR,QQMOD 
      LOGICAL DFILE
      DATA CHARF,CHART,COMMA,ZERO,BLANK/70,84,44,48,32/ 
      DATA CHARZ/90/,DFILE/.FALSE./
      DATA STRING/10*0/ 
      DFILE=.FALSE.
      ERROR=1 
      IF(CHAN.GT.99.OR.CHAN.LE.0)GOTO 30 
      CALL PCHAR(STRING,1,CHARF) 
      CALL PCHAR(STRING,2,CHART) 
      CALL PCHAR(STRING,3,CHAN/10+ZERO) 
      CALL PCHAR(STRING,4,QQMOD(CHAN,10)+ZERO) 
      CALL PCHAR(STRING,5,COMMA) 
      DO 10 IK=1,32
      I=GCHAR(FILE,IK)
      IF(I.EQ.0.OR.I.EQ.32)GOTO 20 
      IF(I.EQ.CHARZ)DFILE=.TRUE.

==== ercs07/emas-2900/testpd_pstrftfr.txt ====
    
      SUBROUTINE PSTR (STR) 
      INTEGER STR(80), III, GCHAR   
      DO  13008 III = 1, 80 
      CHAR = GCHAR (STR, III)   
      IF (.NOT. (CHAR .NE. SLASH))GO TO 13010   
    
      IF (.NOT. (CHAR .EQ. SEMI))GO TO 13012
    
      CALL PUTC (EOL)   
      GO TO 13013   
13012 CONTINUE  
    
      CALL PUTC (CHAR)  
13013 CONTINUE  
    
13008 CONTINUE  
    
13010 CONTINUE  
    
      RETURN

==== ercs07/emas-2900/culmoldsce_prstss.txt ====
%BEGIN
!
!    PROGRAM TO TEST THE PRODUCTION OF THE STATISTICS FILE BY LIBRIP
!
%EXTERNALROUTINESPEC READDA (%INTEGER CHANNEL,%INTEGERNAME SECT,    %C
                             %NAME BEGIN,END)
%EXTERNALROUTINESPEC OPENDA (%INTEGER CHANNEL)
%EXTERNALROUTINESPEC CLOSEDA(%INTEGER CHANNEL)
!
%INTEGERARRAY NUMBER(1:200)
!??SHORT; %INTEGERARRAY NUMTOT(1:200)
%INTEGERARRAY CMDETS(1:3)
!
%INTEGER BLOCK
%INTEGER I
%INTEGER J
%INTEGER MAX
%INTEGER N1
%INTEGER N2
%INTEGER UNIT
!

==== ercs07/emas-2900/slogos_symbolin.txt ====
C     EDIT DATE   10MAR78  03:57
C     SOURCE FILE SYMBOLFTM.IN
C     AUTHOR      F. T. MICKEY
C     CLUSTER     120.X
      INTEGER  SYMTBL (65)
I     INTEGER ICLP15
      COMMON   /SYMB/   SYMTBL
I     COMMON   /SYMB/   ICLP15




==== ercs07/emas-2900/slinkf_entergfr.txt ====
    
      SUBROUTINE ENTER  
    
      INTEGER     NSIZE,  NAME(16), NTITLE  
      INTEGER     NFLAGS (512)  
      INTEGER     NADDRS (512)  
      INTEGER     NPOSIT (512)  
      INTEGER     NDATA  (512)  
      INTEGER     NTEXTX (512)  
      INTEGER     NTEXT  (1000) 
      INTEGER     NLX, NLSTRT, NLSTOP   
      INTEGER     TXSTRT, TXSTOP
      INTEGER     NTXBTS
      INTEGER     USEBIT, COMBIT, OVLBIT, EPTBIT
      INTEGER     LDMBIT, MODBIT, MLTBIT, RLSBIT
      INTEGER     GDFBIT, TYPBTS
      INTEGER     ATYPE 
      INTEGER      ICLP07   
      LOGICAL     OLDNAM
      COMMON      /NTABLE/ NSIZE, NAME, NTITLE  
      COMMON      /NTABLE/ NFLAGS, NADDRS, NPOSIT, NDATA, NTEXTX

==== ercs07/emas-2900/slogof_opsrchfr.txt ====
    
      INTEGER FUNCTION OPSRCH (NAME, TABLE, SIZE, STEP) 
      INTEGER  NAME(2), SIZE, TABLE(1), STEP, I 
      OPSRCH = 0
      DO 10 I=1,SIZE,STEP   
      IF (NAME(1) .EQ. TABLE(I) .AND. NAME(2) .EQ. TABLE(I+1))GOTO 20   
   10 CONTINUE  
      RETURN
   20 OPSRCH = I
      RETURN
      END   

==== ercs07/emas-2900/kbscscec_fprocssc.txt ====
FILEPROCS MODULE
 INCLUDE SMACS
 AREAPROPS AREATYPE=PLT,PUBLIC=0
 INCLUDE XMACS
 INCLUDE DBMACS
&OPTIONE AWORD B'27'  *AS PUT INTO OPTIONMASK BY SETOPTIONS
*CTVS AND MACROS FOR FILE PACKAGE
 UNLISTG
 SUBTITLE 1
      *FORNAT OF FILE BLOCK
&FILENUMBER AWORD 0
&FILENAME AWORD 1
&FILEUS AWORD (&FILENAME+4)
&FILESTATUS AWORD (&FILEUS+2)
&FILEMARGIN AWORD (&FILESTATUS+1)
&FILEROUTE AWORD (&FILEMARGIN+1)
&FILECURR AWORD (&FILEROUTE+1)
&FILEBUFFER AWORD (&FILECURR+2)
&FILEBUFDR AWORD (&FILEBUFFER+2)  *ACTUAL BUFFER DESC
&FILEENDGOTO AWORD (&FILEBUFDR+2)
&FILERECNUMB AWORD (&FILEENDGOTO+1)

==== ercs07/emas-2900/strans_stranzl.txt ====

LINK
STRANS_STMAINY
STRANS_STDATAY
STRANS_FNAMESY
STRANS_STRANY
STRANS_EMASIAY
STRANS_EMASIBY
.END
TEMPOBJ
RESOLVE TEMPOBJ,STRANZ,,.LP
Y
SUPPRESS()
RETAIN(STRAN)
.
DESTROY TEMPOBJ

==== ercs07/emas-2900/inpds_stkdfcin.txt ====
C     EDIT DATE   03DEC78  12:11
C     SOURCE FILE STKDEFC.IN
C     AUTHOR      A. J. HOWARD
      INTEGER     LOCFLG (20)
      EQUIVALENCE (STK (1, 7), LOCFLG (1))


==== ercs07/emas-2900/pcfiles_xput24.txt ====
!* modified 07/10/85
!* 21/10/85 - new ecodes PUSHBYTES, ARGPROC, update Eopname
!*          - new Pascal specific ecodes, update routine pasop, new array
!*          - Epasopname, update cfort_ecodes
!* 30/10/85 - changes to routines pasop & Unsupported Opcode
!* 13/11/85 - new Pascal Specific ecodes, update cfort_ecodes
!* 20/11/85 - changes for codefile boot to Amdhal
!* 28/11/85 - further changes for boot
!* 16/12/85 - update cfort_ecodes and Epasopnames. (agh)
!* 08/01/86 - Eterminate, output from Area(1) for boot
!* 14/01/86 - new include files ebits_ecodes2 & ebits_enames2
!*            new eops, jumpops & pasops. Set up Nextproc to generate Id
!*            number for procedure calls & modify Exname, Enextproc, Eproc
!* 15/01/86 - modify Estkconst
!*            correct stack level for ops INDEX, ARGPROC, PUSHBYTES
!* 16/01/86 - write Id in Report for Exname,Eprecall & Ecall!*
!*            correct stack level for Eprocref
!* 22/01/86 - inhibit printing in Unsupported Opcode if Codefile set
!* 29/01/86 - correct stack level for Eop IREM
!* 03/02/86 - remove body of LoadModifier & OpRX, modify Refer at F(RegVal)
!* 10/02/86 - modify Stkfmt, new ecode routines  added

==== ercs07/emas-2900/rel6_objanal2a.txt ====
%CONSTINTEGER EMAS=1,PERQ=0,SYS=EMAS
%CONSTINTEGER NOTSYS = (SYS+1)&1
!
!***********************************************************
!*                                                         *
!*    PROGRAM TO ANALYSE A PERQ OBJECT                     *
!***********************************************************


!
!
! Procedures which will be specially interpreted:
!
! 
!
{PERQ   %EXTERNALHALFINTEGERFNSPEC OPENFILE(%INTEGER FILE, %HALFINTEGERNAME BLOCKS,BITS)
{PERQ   %EXTERNALROUTINESPEC NEWSEG(%INTEGER AD,%HALFINTEGER SIZE,INC,MAXSIZE)
{PERQ   %EXTERNALROUTINESPEC READBLOCK(%HALFINTEGER FILEID,BLOCK,%INTEGER AD)
{EMAS} %DYNAMICINTEGERFNSPEC RDFILEAD(%STRING(63) S)
{EMAS} %DYNAMICINTEGERFNSPEC NWFILEAD(%STRING(15) S,%INTEGER PGS)
{EMAS} %SYSTEMROUTINESPEC PHEX(%INTEGER I)

==== ercs07/emas-2900/pcfiles_xput25.txt ====
!* modified 07/10/85
!* 21/10/85 - new ecodes PUSHBYTES, ARGPROC, update Eopname
!*          - new Pascal specific ecodes, update routine pasop, new array
!*          - Epasopname, update cfort_ecodes
!* 30/10/85 - changes to routines pasop & Unsupported Opcode
!* 13/11/85 - new Pascal Specific ecodes, update cfort_ecodes
!* 20/11/85 - changes for codefile boot to Amdhal
!* 28/11/85 - further changes for boot
!* 16/12/85 - update cfort_ecodes and Epasopnames. (agh)
!* 08/01/86 - Eterminate, output from Area(1) for boot
!* 14/01/86 - new include files ebits_ecodes2 & ebits_enames2
!*            new eops, jumpops & pasops. Set up Nextproc to generate Id
!*            number for procedure calls & modify Exname, Enextproc, Eproc
!* 15/01/86 - modify Estkconst
!*            correct stack level for ops INDEX, ARGPROC, PUSHBYTES
!* 16/01/86 - write Id in Report for Exname,Eprecall & Ecall!*
!*            correct stack level for Eprocref
!* 22/01/86 - inhibit printing in Unsupported Opcode if Codefile set
!* 29/01/86 - correct stack level for Eop IREM
!* 03/02/86 - remove body of LoadModifier & OpRX, modify Refer at F(RegVal)
!* 10/02/86 - modify Stkfmt, new ecode routines  added

==== ercs07/emas-2900/strans_getcfr.txt ====
    
      INTEGER FUNCTION GETC (/DUMMY/)   
    
      INTEGER  INPTR
      INTEGER  OUTPTR   
      INTEGER  INMAX
      INTEGER  MAXTAB   
      INTEGER  MAXLIN   
      INTEGER  IFMAX
      INTEGER  MAXLEV   
      INTEGER  LINENO   
      INTEGER  PAGE 
      INTEGER  CLINE
      INTEGER  TLIMIT   
      INTEGER  LN   
      INTEGER  I, J, K  
      INTEGER  II, JJ, KK   
      INTEGER  LEXVAL   
      INTEGER  SLEN 
      INTEGER  LEVEL
      INTEGER  LEN  

==== ercs07/emas-2900/goto.txt ====
	goto(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,
     c	     21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,
     c	     41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,
     c	     61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,
     c       81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,
     c	     100,101,102,103,104,105,106,107,108,109,110)i
    1	goto 111
    2	goto 111
    3	goto 111
    4	goto 111
    5	goto 111
    6	goto 111
    7	goto 111
    8	goto 111
    9	goto 111
   10	goto 111
   11	goto 111
   12	goto 111
   13	goto 111
   14	goto 111
   15	goto 111

==== ercs07/emas-2900/slinksorg_listrbfs.txt ====
'HEAD'  LIST 6502 RB FILES
C     EDIT DATE   01FEB79  17:54
C     SOURCE FILE LISTRBGAK.FS
C     AUTHOR      GARY A. KUDIS
      'OUTFILE' LISTRBGAK.FR
      INTEGER     GCHAR
      'INCLUDE' CHARACGAK.IN,
      'INCLUDE' IODEFNGAK.IN,
      'INCLUDE' IOFILEGAK.IN,
      INTEGER     RBQUES (7)
      INTEGER     LSQUES (4)
      INTEGER     ANSWER (16)
      INTEGER     DFAULT (5)
      DATA        RBQUES /'RB FILE NAME? '/
      DATA        LSQUES /'LS FILE?'/
      DATA        DFAULT /'LISTRB.LST'/
      'EJECT'
C LISTRB ::
      CALL OPENF (TTYIN, TIFILE, ECODE)
N     CALL OPENF (TTYOUT, TOFILE, ECODE)
      'DO'

==== ercs07/emas-2900/mixedsrce_arrtest.txt ====
PROGRAM ARRTEST(OUTPUT);
TYPE INTARR=ARRAY[1..4] OF INTEGER;
VAR ARR1,ARR2:INTARR;
    I:INTEGER;
PROCEDURE ARRTIM4(ARR1:INTARR;VAR ARR2:INTARR);EXTERN;
BEGIN
FOR I:=1 TO 4 DO ARR1[I]:=I;
WRITELN('CALLING ARRTIM4');
ARRTIM4(ARR1,ARR2);
FOR I:=1 TO 4 DO WRITE(ARR2[I]);
WRITELN;
END.

==== ercs07/emas-2900/sforf_initobf.txt ====
      SUBROUTINE INITOB
      INTEGER  INPTR
      INTEGER  OUTPTR
      INTEGER  INMAX
      INTEGER  MAXTAB
      INTEGER  MAXLIN
      INTEGER  IFMAX
      INTEGER  MAXLEV
      INTEGER  LINENO
      INTEGER  PAGE
      INTEGER  CLINE
      INTEGER  TLIMIT
      INTEGER  LN
      INTEGER  I, J, K
      INTEGER  II, JJ, KK
      INTEGER  LEXVAL
      INTEGER  SLEN
      INTEGER  LEVEL
      INTEGER  LEN
      INTEGER  INCHAN
      INTEGER  OUTCHN

==== ercs07/emas-2900/mixedsrce1_booldef.txt ====
PROGRAM BOOLDEF;
(*# E+ *)
PROCEDURE FLAGSET(VAR FLAG:BOOLEAN;VAR VAL:BOOLEAN);
BEGIN
FLAG:=VAL;
END;
BEGIN END.

==== ercs07/emas-2900/slogof_ssbufffr.txt ====
    
      SUBROUTINE SSBUF  
    
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      INTEGER     NEXT,   NUMBER, I,      IOTYPE
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT
      INTEGER ICLP05
      LOGICAL     ENDOK,CONEND  
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG   
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG  
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV  
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE  
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N   
      COMMON   /LOGOS/  PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE  

==== ercs07/emas-2900/slogof_ocruchfr.txt ====
    
      SUBROUTINE OCRUSY 
    
      INTEGER  GROUP1   
      INTEGER  IMPLID   
      INTEGER  NGROUP   
      INTEGER  NIMPLI   
      INTEGER  NOTHER   
      INTEGER  NRELTI   
      INTEGER  OTHERS   
      INTEGER  RELTIV   
      INTEGER  STAX 
      INTEGER  CSOW 
      INTEGER  CSWFA
      INTEGER  CSOFF
      INTEGER  CSNLX
      INTEGER  CSWFB
      COMMON   /CRUCH/  GROUP1 (24) 
      COMMON   /CRUCH/  IMPLID (75) 
      COMMON   /CRUCH/  NGROUP  
      COMMON   /CRUCH/  NIMPLI  

==== ercs07/emas-2900/perqrel3_file9.txt ====
   !Modified     20/May/82   17.30





!**********************************************************************!
!**********************************************************************!
         !                                               !
         !                                               !
         !     Complete FILE INPUT/OUTPUT Procedures     !
         !                                               !
         !          for FORTRAN77 Programs               !
         !                                               !
         !           on ICL  PERQ Machines               !
         !                                               !
         !                                               !
!**********************************************************************!
!**********************************************************************!



==== ercs07/emas-2900/dsea20_lnedfinldir.txt ====
R/CO/C0,T-/ TELE

==== ercs07/emas-2900/slogos_nlnamein.txt ====
C     EDIT DATE   09DEC78  15:40
C     SOURCE FILE NLNAMEFTM.IN
C     AUTHOR      F. T. MICKEY
      INTEGER     NAME (9)
      COMMON      /NLNAME/ NAME





==== ercs07/emas-2900/slinkf_printnfr.txt ====
    
      SUBROUTINE PRINTN (NX)
      INTEGER     NX
    
      INTEGER     ECODE 
      INTEGER     CMCHAN
      INTEGER     RBCHAN
      INTEGER     OBCHAN
      INTEGER     MPCHAN
      INTEGER     DBCHAN
      INTEGER     TTYIN 
      INTEGER     TTYOUT
      COMMON      /IODEFN/ ECODE
      COMMON      /IODEFN/ CMCHAN   
      COMMON      /IODEFN/ RBCHAN   
      COMMON      /IODEFN/ OBCHAN   
      COMMON      /IODEFN/ MPCHAN   
      COMMON      /IODEFN/ DBCHAN   
      COMMON      /IODEFN/ TTYIN
      COMMON      /IODEFN/ TTYOUT   
    

==== ercs07/emas-2900/slogof_pushftfr.txt ====
    
      SUBROUTINE PUSH (A, B, C) 
    
      INTEGER  PSTACK (12)  
      INTEGER  PX   
      INTEGER  PEND 
      COMMON   /PPCOM/  PSTACK  
      COMMON   /PPCOM/  PX  
      COMMON   /PPCOM/  PEND
      INTEGER A, B, C   
      IF (PX .GT. PEND) CALL FATAL (45) 
      PSTACK (PX) = A   
      PSTACK (PX+1) = B 
      PSTACK (PX+2) = C 
      PX = PX + 3   
      RETURN
      END   

==== ercs07/emas-2900/sforf_getcf.txt ====
      INTEGER FUNCTION GETC (/DUMMY/)
      INTEGER  INPTR
      INTEGER  OUTPTR
      INTEGER  INMAX
      INTEGER  MAXTAB
      INTEGER  MAXLIN
      INTEGER  IFMAX
      INTEGER  MAXLEV
      INTEGER  LINENO
      INTEGER  PAGE
      INTEGER  CLINE
      INTEGER  TLIMIT
      INTEGER  LN
      INTEGER  I, J, K
      INTEGER  II, JJ, KK
      INTEGER  LEXVAL
      INTEGER  SLEN
      INTEGER  LEVEL
      INTEGER  LEN
      INTEGER  INCHAN
      INTEGER  OUTCHN

==== ercs07/emas-2900/inpds_nlarayin.txt ====
C     EDIT DATE   09DEC78  14:11
C     SOURCE FILE   NLARAYFTM.IN
C     AUTHOR        F. T. MICKEY
      INTEGER     NLIST (500)
      INTEGER     NLOC  (500)
      INTEGER     NTEXT (1500)
      INTEGER     NTEXTX (500)
      COMMON   /NARAY/  NLIST
      COMMON   /NARAY/  NLOC
      COMMON   /NARAY/  NTEXT
      COMMON   /NARAY/  NTEXTX


==== ercs07/emas-2900/npcpf_pfctl.txt ====
procedure NewCodeLabel(var L: CodeLabel);
extern;

procedure FutureCodeLabel(var L: CodeLabel);
extern;

procedure NxIsCodeLabel(var L: CodeLabel);
extern;

procedure JumpOnFalse(var Destination: CodeLabel);
extern;

procedure Jump(var Destination: CodeLabel);
extern;

procedure OpenCase;
extern;

procedure NxIsCase(CaseConst: ObjectValue);
extern;


==== ercs07/emas-2900/slogof_code1dfr.txt ====
 
      BLOCK DATA 
 
      INTEGER     WOPTR,  WO (64), TLI,     TL (128) 
      INTEGER     BO,     SS,      SS2,     NRFCH 
      COMMON      /SCR1/  WOPTR,   WO,      TLI,    TL 
      COMMON      /SCR1/  BO,      SS,      SS2,    NRFCH 
      DATA  WOPTR    /1/ 
      DATA  TLI      /1/ 
      DATA  BO       /3/ 
      DATA  SS       / 9/ 
      DATA  SS2      / 8/ 
      DATA  NRFCH    / 0/ 
      END 

==== ercs07/emas-2900/slogos_wflagsin.txt ====
C     EDIT DATE   15MAR78  14:02
C     SOURCE FILE    WFLAGSJHP.IN
C     AUTHOR      J.H.PERINE
C     PURPOSE  DEFINE WORD FLAGS
C     WF1      CONSTANT
C     WF2      SET LOCATION COUNTER VALUE
C     WF3      FLOWCHART END
C     WF4      ABSOLUTE CODE (NO ADDRESS)
C     WF5      RELOCATABLE CODE (1 BYTE ADDRESS)
C     WF6      ADDRESS OFFSET
C     WF7      NAME LIST INDEX
C     WF8      RELOCATABLE CODE (2 BYTE ADDRESS)
C     WF9      TRANSFER LIST ENTRY
C     WF10     SET LOCATION COUNTER NUMBER
C     WF11     NOT USED
C     WF12     NAME LIST INDEX, RIGHT HALF ADDR
C     WF13     NAME LIST INDEX, LEFT HALF ADDR
C     WF14     SET LOAD LOCATION COUNTER
C     WF15     SET LOAD LOCATION COUNTER VALUE
C     WF16     NEGATIVE OFFSET FROM NAME LIST
C     WF17     ADJUST LOCATION COUNTER

==== ercs07/emas-2900/pcfiles_assgncode4.txt ====
{

 History
 -------

 12/09/85 - include file eput.pf, simplify procedure Assign.
 07/10/85 - simplify procedure Assign.
 18/10/85 - tidy history. (agh)
 18/10/85 - AssignTag simplified. (agh)
 25/10/85 - Ensure empty-set constants are expanded to the correct
            word-size. Delet outdated documentation. (agh)
 07/11/85 - Refine above modification using AdjustSet. Adjust
            expression size if LHS is packed. (agh)
 03/12/85 - Further modifications to Assign to handle bit
            packing. (agh)
 04/12/85 - Further modifications to Assign to improve CAP assignment.
            (agh)
 -------------------------------------------------------------------
 04/02/86 - Call ConvertInteger if LHS size <> RHS size for scalars.
	    This covers cases such as pf := i (compression), and
	    i :+ pf (expansion) when pf is packed and i is unpacked.

==== ercs07/emas-2900/tty1200.txt ====

(* S+*) (*SWAPPING MODE FOR MORE SYMBOL TABLE SPACE*)

PROGRAM TTY;

(*PROGRAM TO ALLOW MICRO TO ACT AS A TERMINAL TO A REMOTE*)
(*AND TO TRANSFER FILES BETWEEN THE MICRO AND THE REMOTE *)

(*********************************************************)
(*                                                       *)
(*        ERCC Microcomputer Support Unit                *)
(*                                                       *)
(*        Contributors     Austin Tate                   *)
(*                         Stephen Hayes                 *)
(*                                                       *)
(*********************************************************)

CONST SPACE=' ';
      NUL=0;
      CTRLA=1;
      EOT=4;

==== ercs07/emas-2900/slogos_flmsgain.txt ====
C     EDIT DATE   30AUG78  13:42
C     SOURCE FILE FLMSGAPB.IN
C     AUTHOR      A. P. BUCHALTER
C     CLUSTER     XX
      INTEGER     MSGS(16,100)
      INTEGER     MSG01(16,10)
      INTEGER     MSG11(16,10)
      INTEGER     MSG21(16,10)
      INTEGER     MSG31(16,10)
      INTEGER     MSG41(16,10)
      INTEGER     MSG51(16,10)
      INTEGER     MSG61(16,10)
      INTEGER     MSG71(16,10)
      INTEGER     MSG81(16,10)
      COMMON      /FLTMSG/ MSGS
      EQUIVALENCE (MSGS(1, 1),MSG01(1,1))
      EQUIVALENCE (MSGS(1,11),MSG11(1,1))
      EQUIVALENCE (MSGS(1,21),MSG21(1,1))
      EQUIVALENCE (MSGS(1,31),MSG31(1,1))
      EQUIVALENCE (MSGS(1,41),MSG41(1,1))
      EQUIVALENCE (MSGS(1,51),MSG51(1,1))

==== ercs07/emas-2900/rel4_cmess7.txt ====
!* MODIFIED 26/06/82
!*
!*
%RECORDFORMAT COMFMT(%INTEGER CONTROL,OPTIONS,OPTIONS1,OPTIONS2,PTRACE,
      ADICT,ANAMES,ADOUTPUT,ADBLKDTAID,DICLEN,DPTR,
      MAXTRIADS,NEXTPLAB,ALABH,ADLHEAD,
      SUBPROGTYPE,SFPTR,EXTERNALS,CBNPTR,SCPTR,CHECKLIST,
      RESCOM1,RESCOM2,GLACA,FNO,FAULTY,LINEST,CMNIIN,SFMK,
      LISTL,LISTSTREAM,DIAGSTREAM,LISTPOINT,XREF,
      PACKCMN,ITSMODE,PATHANAL,CHARACTER CODE,SPACE CHAR,
      HEADINGS,ARRAYCHECKS,JBRMODE,MESSLEN,NAMESLEN,
      NEXTCH,FUNRESDISP,WARNCOUNT,INP,MAXINP,MESSCOUNT,
      UNASSPATTERN,LISTCODE,PI21INT,DOPTR,SUBPROGPTR,
      FNLST,LAB,NAMESFREE,ALGOLREF,FIRSTSTATNUM,CEXPDICT,
      COMMONBASE,FASTPROLOGUE,STATEMENT,IFPTR,
      CNSTCA,COMMENTCNT,ADIDENT,ADERRIDEN)
%EXTERNALROUTINE QCMESS
{dummy}
%END
!*
%EXTERNALROUTINE FAULTNUM(%INTEGER ER,COMAD,UPDATE)

==== ercs07/emas-2900/slogosorg_objectin.txt ====
C     EDIT DATE   19AUG78  08:07
C     SOURCE FILE OBJECTAJH.IN
C     AUTHOR      A. J. HOWARD
C     CLUSTER     90
      INTEGER  AREAID (15), BCARD (41)
      INTEGER  RWORD1, RWORD2, RWORD3, RWORD (3)
      INTEGER  BTYPE
      INTEGER  EXTDX, ERRFLG
      INTEGER  NEWLCI
      INTEGER  OFFSET, OW
      INTEGER  RBITS, RCT
      INTEGER  TWI
      INTEGER  WF
      EQUIVALENCE (RWORD1, RWORD (1))
      EQUIVALENCE (RWORD2, RWORD (2))
      EQUIVALENCE (RWORD3, RWORD (3))
      COMMON   /OBJCOM/ AREAID, BCARD, RWORD
      COMMON   /OBJCOM/ BTYPE
      COMMON   /OBJCOM/ EXTDX
      COMMON   /OBJCOM/ OFFSET, OW
      COMMON   /OBJCOM/ RBITS

==== ercs07/emas-2900/slinkf_questsfr.txt ====
    
      BLOCK DATA
    
      INTEGER     CMQUES (10)   
      INTEGER     OBQUES (10)   
      INTEGER     MPQUES (10)   
      INTEGER     ANSWER (14)   
      COMMON      /QUESTS/ CMQUES   
      COMMON      /QUESTS/ OBQUES   
      COMMON      /QUESTS/ MPQUES   
      COMMON      /QUESTS/ ANSWER   
      DATA     CMQUES /'IN','PU','T ','CO','MM','AN','D ','FI','LE','? '
     1/ 
      DATA     OBQUES /'OU','TP','UT',' O','BJ','EC','T ','FI','LE','? '
     1/ 
      DATA     MPQUES /'OU','TP','UT',' X','R-','MA','P ','FI','LE','? '
     1/ 
      END   

==== ercs07/emas-2900/slogos_lsdatain.txt ====
C     EDIT DATE   17APR78  13:12
C     SOURCE FILE LSDATAJHP.IN
C     AUTHOR      J.H.PERINE
C     DECODE TABLES FOR LIST OUTPUT
      INTEGER  LINSTR (512)
      COMMON   /LSTD/   LINSTR




==== ercs07/emas-2900/pt_halt0.txt ====
PROGRAM HALTING;
BEGIN
HALT(0);
END.

==== ercs07/emas-2900/qdums_f77qput.txt ====
module f77qput;

exports

imports f77init from f77init;

procedure dummyqput;
procedure qput(a,b,c,d:long);                  
private
procedure dummyqput;
begin
end;

procedure qput;
begin
writeln(curout^,'entering dummy lput');
end.

==== ercs07/emas-2900/geneva_spascal1.txt ====
PROGRAM PASCALS(INPUT,OUTPUT,CONTINGENCY);        (*$U+,T-,P-*)
(*AUTHOR: N.WIRTH, E.T.H. CH-8092 ZURICH, 1.3.76*)
LABEL 99;
CONST NKW = 27;     (*NO. OF KEY WORDS*)
    ALNG =  12;     (*NO. OF SIGNIFICANT CHARS IN IDENTIFIERS*)
    LLNG = 72;     (*INPUT ,LINE LENGTH*)
    EMAX = 38;     (*MAX EXPONENT OF REAL NUMBERS*)
    EMIN =-38;     (*MIN EXPONENT*)
    KMAX =  12;     (*MAX NO. OF SIGNIFICANT DIGITS*)
    TMAX = 100;     (*SIZE OF TABLE*)
    BMAX =  20;     (*SIZE OF BLOCK-TABLE*)
    AMAX =  30;     (*SIZE OF ARRAY-TABLE*)
    C2MAX = 20;     (*SIZE OF REAL CONSTANT TABLE*)
    CSMAX = 30;     (*MAX NO. OF CASES*)
    CMAX = 850;     (*SIZE OF CODE*)
    LMAX =   7;     (*MAXIMUM LEVEL*)
    SMAX = 600;     (*SIZE OF STRING-TABLE*)
    ERMAX = 58;     (*MAX ERROR NO.*)
    OMAX =  63;     (*HIGHEST ORDER CODE*)
    XMAX = 131071;  (*2**17 - 1*)
    NMAX = 34359738367;   (*2**35-1  *)

==== ercs07/emas-2900/slinkf_enptdffr.txt ====
    
      SUBROUTINE ENPTDF 
    
      INTEGER     DICT (400)
      INTEGER     ID, CID, DTSTRT, DTSTOP   
      COMMON      /DARRAY/ DICT 
      COMMON      /DARRAY/ ID, CID, DTSTRT, DTSTOP  
    
      INTEGER     NSIZE,  NAME(16), NTITLE  
      INTEGER     NFLAGS (512)  
      INTEGER     NADDRS (512)  
      INTEGER     NPOSIT (512)  
      INTEGER     NDATA  (512)  
      INTEGER     NTEXTX (512)  
      INTEGER     NTEXT  (1000) 
      INTEGER     NLX, NLSTRT, NLSTOP   
      INTEGER     TXSTRT, TXSTOP
      INTEGER     NTXBTS
      INTEGER     USEBIT, COMBIT, OVLBIT, EPTBIT
      INTEGER     LDMBIT, MODBIT, MLTBIT, RLSBIT
      INTEGER     GDFBIT, TYPBTS

==== ercs07/emas-2900/slinks_askqesfs.txt ====
'HEAD'  LINKER, ASK QUESTIONS
C     EDIT DATE   16JAN79  07:31
C     SOURCE FILE ASKQESGAK.FS
C     AUTHOR      GARY A. KUDIS
C     CLUSTER     3
      'OUTFILE' ASKQESGAK.FR
      SUBROUTINE ASKQES
      'INCLUDE' QUESTSGAK.IN,
      'INCLUDE' LDATAXGAK.IN,
      'INCLUDE' IODEFNGAK.IN,
      'INCLUDE' IOFILEGAK.IN,
      'INCLUDE' CHARACGAK.IN,
      INTEGER     GCHAR
      INTEGER     OBEND, MPEND
      DATA        OBEND /'OB'/, MPEND /'MP'/
C ASKQES ::
X     WRITE (DBCHAN, 1)
X1    FORMAT (' ENTER ASKQES')
      CALL ASK (CMQUES)
      CALL MOVE (ANSWER, CMFILE, 14)
P     CALL DEVICE (CMFILE)

==== ercs07/emas-2900/geneva_spascal2.txt ====
PROGRAM PASCALS(INPUT,OUTPUT,CONTINGENCY);        (*$U+,T-,P-*)
(*AUTHOR: N.WIRTH, E.T.H. CH-8092 ZURICH, 1.3.76*)
(*MODIFIED: L.ZAFFALON, CUI, GENEVE, 31.7.80*)
LABEL 99;
CONST NKW = 29;     (*NO. OF KEY WORDS*)
    ALNG =  12;     (*NO. OF SIGNIFICANT CHARS IN IDENTIFIERS*)
    LLNG = 81;     (*INPUT ,LINE LENGTH*)
    EMAX = 38;     (*MAX EXPONENT OF REAL NUMBERS*)
    EMIN =-38;     (*MIN EXPONENT*)
    KMAX =  12;     (*MAX NO. OF SIGNIFICANT DIGITS*)
    TMAX = 100;     (*SIZE OF TABLE*)
    BMAX =  20;     (*SIZE OF BLOCK-TABLE*)
    AMAX =  30;     (*SIZE OF ARRAY-TABLE*)
    C2MAX = 20;     (*SIZE OF REAL CONSTANT TABLE*)
    CSMAX = 30;     (*MAX NO. OF CASES*)
    CMAX = 850;     (*SIZE OF CODE*)
    LMAX =   7;     (*MAXIMUM LEVEL*)
    SMAX = 600;     (*SIZE OF STRING-TABLE*)
    ERMAX = 58;     (*MAX ERROR NO.*)
    OMAX =  63;     (*HIGHEST ORDER CODE*)
    XMAX = 32767;  (*2**15 - 1*)

==== ercs07/emas-2900/bscmast30_basicgen30.txt ====
EDIT BSCMAST30_BSCBASE30,OPTBASE
(M/!?/D1)1000
E
EDIT BSCMAST30_BASICFILES,OPTFILES
(M/!?/D1)1000
E
PARM OPT
IMP OPTBASE,OPTOBJ,.LP
IMP OPTFILES,OPTFILEY,.LP
IMP BSCMAST30_FCONVS,FCOBJ,.LP
PARM
LINK
BSCMAST30_BASIC5AC
BSCMAST30_COLLFNSC
BSCMAST30_FPIOC
BSCMAST30_MATPACKC
BSCMAST30_USINGC
OPTFILEY
OPTOBJ
FCOBJ
.END

==== ercs07/emas-2900/pascalsce_pdefine.txt ====
%SYSTEMROUTINESPEC CONNECT(%STRING(31) FILE,%INTEGER MODE,HOLE,PROT, %C
  %RECORDNAME R,%INTEGERNAME FLAG)
%EXTERNALROUTINESPEC DESTROY(%STRING(255)S )
%EXTERNALROUTINESPEC CLEAR(%STRING(255) S)
%EXTERNALROUTINESPEC NEWSMFILE(%STRING(63) S)
%SYSTEMROUTINESPEC PSYSMES(%INTEGER ROOT,FLAG)
%EXTERNALINTEGERFNSPEC SEARCHFILE(%STRINGARRAYNAME DEFFILES, %C
                   %STRING(32) FILE)
%EXTERNALROUTINE PCLEAR(%STRING(255) S)
%INTEGER FLAG
%RECORDFORMAT RF(%INTEGER CONAD,TYPE,START,END)
%RECORD PFILES(RF)
CONNECT('T#PFILES',2,0,0,PFILES,FLAG)
%IF FLAG=0 %THEN DESTROY ('T#PFILES')
CLEAR("")
%END
!
%EXTERNALROUTINE PDEFINE(%STRING(255) S)
%RECORDFORMAT RF(%INTEGER CONAD,TYPE,START,END)
%RECORD PFILES(RF)
%STRING(32) %ARRAYFORMAT FILFMT(1:64)

==== ercs07/emas-2900/rel5_parsecmd3.txt ====
{-------------------------------------------------------------
{
{ File: ParseCmd.pas
{
{ Abstract:
{
{    Parse the command line, interpreting switches, for the fortran 
{    consolidator. 
{
{------------------------------------------------------------}




{-------------------------------------------------------------}
{
{ Change Log:
{
{ 3 june 82 Rosemary
{ Remove QUIET/VERBOSE information from Writehelpmessage
{

==== ercs07/emas-2900/sforf_logicim.txt ====

      %EXTERNALINTEGERFN IAND(%INTEGERNAME A,B)
      %RESULT=A&B
      %END
      %EXTERNALINTEGERFN IOR(%INTEGERNAME A,B)
      %RESULT=A!B
      %END
      %EXTERNALINTEGERFN IEOR(%INTEGERNAME A,B)
      %RESULT=A!!B
      %END
      %EXTERNALINTEGERFN NOT(%INTEGERNAME A)
      %RESULT=\A
      %END
      %EXTERNALINTEGERFN ISHFT(%INTEGERNAME A,B)
      %IF B>0 %THEN %RESULT=A<<B %ELSE %RESULT=A>>(-B)
      %END
      %EXTERNALINTEGERFNSPEC RETURNCODE
      %EXTERNALINTEGERFN SUCESS(%INTEGERNAME DUMMY)
      %RESULT=RETURNCODE
      %END
      %ENDOFFILE

==== ercs07/emas-2900/inpds_xnameain.txt ====
C     EDIT DATE   14JAN79  09:50
C     SOURCE FILE XNAMEAJH.IN
C     AUTHOR      A. J. HOWARD
      INTEGER     XNX, XNXMAX, XNAME (100)
      COMMON      /XNAMC/  XNX, XNXMAX, XNAME


==== ercs07/emas-2900/sforf_stest.txt ====


C  THIS IS A SAMPLE PROGRAM
C  TO TEST THE STRAN PREPROCESSOR
C
C      DATE :   15/6/79
      'INCLUDE'  BLOB,P
      'OUTFILE' STEST1.FR
I        INTEGER ICL
N        INTEGER NOVA
P        INTEGER PDP
C *** TEST1
  100 CONTINUE
      I=1
      'DO'
         I=2
         'WHILE' (A.GE.0)
            K=1
            'END'
      J=2
C ***TEST2

==== ercs07/emas-2900/pascalsce_pdiags4.txt ====
! PASCAL DIAGNOSTICS RELEASE 4
! Mike Brown
! RELEASE 2 - February 1981
! RELEASE 3 - DOES NOT EXIST AS ROSEMARYS AND MY NUMBERING GOT OUT OF PHASE
! RELEASE 4 - NOVEMBER 1981
!
%SYSTEMROUTINESPEC ITOE (%INTEGER ADDR, LEN)
%SYSTEMROUTINESPEC DUMP (%INTEGER S, F)
%SYSTEMROUTINESPEC FINFO (%STRING (31) FILE, %INTEGER MODE, %C
   %RECORDNAME R, %INTEGERNAME FLAG)
%SYSTEMROUTINESPEC NCODE (%INTEGER S, F, A)
%SYSTEMSTRINGFNSPEC ITOS (%INTEGER INT)
%SYSTEMSTRINGFNSPEC CONFILE (%INTEGER AD)
%SYSTEMSTRINGFNSPEC FAILUREMESSAGE (%INTEGER ERROR)
!
%EXTERNALINTEGERFNSPEC ICL9LPPMPROCL (%INTEGER ERRNO, PROCNO, GROUP, %LONGINTEGER EMESS, %C
   %INTEGER LANG0, LANG1, DISPLACEMENT, %LONGINTEGER DIAGREC, %INTEGER MODCHAINENTRY0, %C
   MODCHAINENTRY1, AREAENTRY0, AREAENTRY1,STACKFRAME0, STACKFRAME1)
%EXTERNALINTEGERFNSPEC ICL9LPPMPROCR (%INTEGER DIAGNOSTICS, ARRAYSIZE, DISPLACEMENT, %C
   STACKFRAME0, STACKFRAME1, %LONGINTEGER DIAGREC, %INTEGER MODCHAINENTRY0, %C
   MODCHAINENTRY1, AREAENTRY0, AREAENTRY1, AREASOFENTRY0, AREASOFENTRY1)

==== ercs07/emas-2900/pasc2.txt ====
{

                          CHAPTER 2


                      Global Definitions
                       and Declarations





 Because of the rigid order of definitions and declarations imposed
 by Pascal, this chapter contains all of the global definitions and
 declarations on which the procedures in  the  subsequent  chapters
 depend.  In  this  chapter, only a brief indication of the overall
 nature of the constants, types and variables introduced is  given,
 together with a reference to the chapter in which they are used. A
 more detailed explanation of the nature and  purpose  of  each  is
 given in the referenced chapter itself.


==== ercs07/emas-2900/pddemo_gen10.txt ====
!* MODIFIED 12/04/82
!*************  IMP80 version  ******************
!*
!{2900C}%CONSTINTEGER W2=4
{PERQC}%CONSTINTEGER W2=2
!*
!**** SYNTAX ****
!*
!* Syntax tables generated from file SYNTAX48 on 28/01/82 at 23.55.35
!*
%CONSTBYTEINTEGERARRAY OS(0:1500)=  %C                     
   0,   0,  34,   1,   1,   2,  25,   1,   1,   3,
  10,   7,   2,   3,  29,  61,   0,   1,   1,   0,
  13,   1,   0,   1,   3,  20,   4,   1,   2,   1,
   4,  17,   1,   1,   0,   1,   2,  20,   4,   1,
   1,   1,   3,  17,   0,   1,   2,  87,   0,   1,
   1,   0,   1,   3,  20,   5,   1,   2,   1,   4,
  17,   1,   1,   0,   1,   2,  20,   5,   1,   1,
   1,   3,  17,   0,   1,   2,   1,   3,  17,   1,
   1,   0,   1,   1,   1,   2,  17,   0,  20,   2,
   1,   1,   0,  20,   3,   1,   1,   0,  22,   1,

==== ercs07/emas-2900/npc1_pfanal.txt ====
procedure Programme;
  extern;

==== ercs07/emas-2900/pcfiles_fileio1.txt ====

{

                           MODULE 4


                       UNIX i/o Support





 This module provides a low-level interface to the UNIX  file  sys-
 tem.   Whilst  the module contains procedures for both reading and
 writing, in practice, only the read procedures are currently used.

 The details of a file are represented by the type UnixFile,  whose
 fields  include an i/o buffer, a descriptor, and a file mode flag.
 Files can be opened for reading  or  writing,  but  not  both.  To
 minimise  disk  transfers,  i/o  is  performed on a block-by-block
 basis. The block-size is in turn determined by  the  disk  format,

==== ercs07/emas-2900/slogof_quitajfr.txt ====
    
      SUBROUTINE  QUIT  
    
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      INTEGER     NEXT,   NUMBER, I,      IOTYPE
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT
      INTEGER ICLP05
      LOGICAL     ENDOK,CONEND  
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG   
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG  
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV  
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE  
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N   
      COMMON   /LOGOS/  PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE  

==== ercs07/emas-2900/slogof_objsymfr.txt ====
    
      SUBROUTINE  OBJSYM
    
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      INTEGER     NEXT,   NUMBER, I,      IOTYPE
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT
      INTEGER ICLP05
      LOGICAL     ENDOK,CONEND  
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG   
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG  
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV  
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE  
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N   
      COMMON   /LOGOS/  PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE  

==== ercs07/emas-2900/slogof_labelffr.txt ====
 
      SUBROUTINE  LABEL 
 
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG 
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV 
      INTEGER     NEXT,   NUMBER, I,      IOTYPE 
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE 
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP 
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT 
      INTEGER ICLP05 
      LOGICAL     ENDOK,CONEND 
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG 
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV 
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE 
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N 
      COMMON   /LOGOS/  PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE 

==== ercs07/emas-2900/rel6_intrin7.txt ====
module f77intrin;
{
{ updated 2/jul/82 - alan - added dummy param to F77cabs }
{
{ updated 27/04/82 - parameters to f77power,f77pwri changed }

exports

imports complexfunctions from f77complexfunctions2;
function floatlong(arg:long):real;
function trunclong(arg:real):long;
function roundlong(arg:real):long;
function f77sqrt(var x,dum:real):real;
function f77exp(var x,dum:real):real;
function f77log(var x,dum:real):real;
function f77log10(var x,dum:real):real;
function f77sin(var x,dum:real):real;
function f77cos(var x,dum:real):real;
function f77tan(var x,dum:real):real;
function f77asin(var x,dum:real):real;
function f77acos(var x,dum:real):real;

==== ercs07/emas-2900/slogos_prtcomin.txt ====
C     EDIT DATE   11DEC78  15:55
C     SOURCE FILE   PRTCOMFTM.IN
C     AUTHOR        F. T. MICKEY
C     CLUSTER       X

      INTEGER  LBUF (66)
      INTEGER  LCOUNT
      INTEGER  PGECNT
      INTEGER  UHEAD (15)
      INTEGER  CHEAD (8)
I     INTEGER ICLP09
      COMMON   /PRT/    LBUF
      COMMON   /PRT/    LCOUNT
      COMMON   /PRT/    PGECNT
      COMMON   /PRT/    UHEAD
      COMMON   /PRT/    CHEAD
I     COMMON   /PRT/    ICLP09



==== ercs07/emas-2900/qdums_f77rmess.txt ====
module f77rmess;

exports

imports f77init from f77init;

procedure dummyrmess;
procedure qrmess(i:long;var flag,len:long;var errmess:string);
                  
private
procedure dummyrmess;
begin
end;

procedure qrmess;
begin
writeln(curout^,'calling ssmess',i:4);
end.

==== ercs07/emas-2900/slogof_gentajfr.txt ====
    
      SUBROUTINE  GENT (FUNC)   
    
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      INTEGER     NEXT,   NUMBER, I,      IOTYPE
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT
      INTEGER ICLP05
      LOGICAL     ENDOK,CONEND  
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG   
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG  
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV  
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE  
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N   
      COMMON   /LOGOS/  PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE  

==== ercs07/emas-2900/bryanc.txt ====




00002 REM            BATHOS
00004 REM OPTICAL DESIGN PROGRAMME * SEPTEMBER 1978
00006 REM BRIAN BLANDFORD, 25 NEW QUEBEC ST, LONDON W.1.
00010 DIM P$(11),P(11,7),V(3,10),Q(4,12),X(13,10),F(13)
00012 DATA C,D,N,V,H,U,L,HBAR,UBAR,LBAR,S,SBAR
00014 FOR J1=0 TO 11
00016 READ P$(J1)
00020 NEXT J1
00022 READ N$,K9,P9,P(2,0),P(3,0)
00024 FOR J9=1 TO K9
00026 FOR I9=0 TO 3
00028 READ P(I9,J9)
00030 NEXT I9
00032 NEXT J9
00034 READ P(4,1),P(5,0),P(7,1),P(8,0)
00035 REM LENS DATA LINES 35 TO 50
00036 REM FORMAT:

==== ercs07/emas-2900/slinks_vmekl.txt ====
TOVMEKPD SLOGOY
ADJLOCY
ADVANFY
AGENAJY
ARAGENY
ARBGENY
BLDBLKY
BLDOPFY
BLDPOAY
BLDPODY
BLDPOY
BPAJHY
BRACEDY
CGENAJY
CHEKCOY
CLOCNFY
CLRSTKY
CODE1DY
CODE2AY
COMPDAY
CQVALAY

==== ercs07/emas-2900/slogos_logosyl.txt ====
LINK
SLOGOY_OBJCOMY
SLOGOY_ADJLOCY
SLOGOY_ADVANFY
SLOGOY_AGENAJY
SLOGOY_ARAGENY
SLOGOY_ARBGENY
SLOGOY_BLDBLKY
SLOGOY_BLDOPFY
SLOGOY_BLDPOAY
SLOGOY_BLDPODY
SLOGOY_BPAJHY
SLOGOY_BRACEDY
SLOGOY_CGENAJY
SLOGOY_CHEKCOY
SLOGOY_CLOCNFY
SLOGOY_CLRSTKY
SLOGOY_CODE1DY
SLOGOY_CODE2AY
SLOGOY_COMPDAY
SLOGOY_CQVALAY

==== ercs07/emas-2900/slinksorg_maklibfs.txt ====
'HEAD'  MAKE LIBRARY BLOCKS
C     EDIT DATE   11JAN79  10:02
C     SOURCE FILE MAKLIBAJH.FS
C     AUTHOR      A. J. HOWARD
      'OUTFILE'   MAKLIBAJH.FR
      INTEGER     STFILE (16), ENFILE (16)
      INTEGER     LSTART, LSTOP, ERROR
      DATA        STFILE /'LIBSTART.OBJ', 10*0/
      DATA        ENFILE /'LIBEND.OBJ',   11*0/
      DATA        LSTART  /0/
      DATA        LSTOP   /0/
      CALL PCHAR  (LSTART, 1, 19)
      CALL PCHAR  (LSTOP,  1, 20)
P     CALL DEVICE (STFILE)
      CALL OPENN  (1, STFILE, ERROR)
      CALL WRSEQ  (1, LSTART, 2)
      CALL CLOSF  (1, ERROR)
P     CALL DEVICE (ENFILE)
      CALL OPENN  (1, ENFILE, ERROR)
      CALL WRSEQ  (1, LSTOP, 2)
      CALL CLOSF  (1, ERROR)

==== ercs07/emas-2900/slogof_setupjfr.txt ====
    
      SUBROUTINE  SETUP (FUNC, INDX)
      INTEGER     FUNC, INDX
    
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      INTEGER     NEXT,   NUMBER, I,      IOTYPE
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT
      INTEGER ICLP05
      LOGICAL     ENDOK,CONEND  
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG   
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG  
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV  
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE  
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N   

==== ercs07/emas-2900/bscmast20_fconvs.txt ====
%EXTERNALROUTINESPEC DEFINE (%STRING(255) PARMS)
%EXTERNALINTEGERFNSPEC OUT STREAM
%SYSTEMROUTINESPEC ETOI(%INTEGER ADDRESS,LEN)
%SYSTEMROUTINESPEC ITOE(%INTEGER ADDRESS,LENGTH)
%EXTERNALROUTINESPEC OPENSQ(%INTEGER CHAN)
%EXTERNALROUTINESPEC  READSQ (%INTEGER CHAN,%NAME START,END)
%EXTERNALROUTINESPEC WRITESQ (%INTEGER CHAN,%NAME START,END)
%EXTERNALROUTINESPEC CLOSESQ(%INTEGER CHAN)
!
%EXTERNALROUTINE CTES (%STRING(255) PARMS)
!
!       CONVERT TO EBCDIC SEQUENTIAL (FROM ISO CHARACTER FILE)
!
%INTEGER INPUT,OUTPUT,I,COUNT
%STRING(32) BEFORE,AFTER
%BYTEINTEGERARRAY BUFF (0:132)
%STRINGNAME LINE
%ON %EVENT 9 %START
    CLOSESQ(OUTPUT)
    WRITE(COUNT,0)
    PRINTSTRING(" LINES PROCESSED") ; NEWLINE

==== ercs07/emas-2900/npc1_lexical.txt ====
{

                           MODULE 8
 
 
                       Lexical Analysis
 
 
 
 
 
 Lexical analysis is carried out by the procedure NextSymbol.  When
 called,  NextSymbol  scans  the next language symbol in the source
 stream and returns a representation of it in the following  global
 variables:-
 
 Symbol        in all cases Symbol represents the  symbol  scanned,
               as defined by the type SymbolType.
 
 Operator      when  Symbol  =  addop,  mulop  or  relop,  Operator
               represents   the  particular  operator  scanned,  as

==== ercs07/emas-2900/strans_pcharfr.txt ====
    
      SUBROUTINE PCHAR(BUF,IDX,CHAR)
      INTEGER BUF(1),IDX,CHAR,SHIFT(4),MASK(4)  
      INTEGER IPOS  
      DATA  MASK/Z00FFFFFF,ZFF00FFFF,ZFFFF00FF,ZFFFFFF00/   
      DATA SHIFT/       24,       16,        8,        0/   
      I=ISHFT(IDX+3,-2) 
      IPOS=IAND(IDX-1,3)+1  
      BUF(I)=IAND(BUF(I),MASK(IPOS))+ISHFT(IAND(CHAR,255),SHIFT(IPOS))  
      RETURN
      END   

==== ercs07/emas-2900/ctms_renames.txt ====
S#ALLDIAGS,ICL9CEZALLDIAGS
S#ASSDUMP   ,ICL9CEZASSDUMP
S#CHANGEAREAPROPERTIES, ICL9CEZCHANGEAREAPROPERTIES
S#CHANGEUSE,ICL9CEZCHANGEUSE
S#CLOSE,ICL9CEZCLOSE
S#CLOSEDA,ICL9CEZCLOSEDA
S#CLOSESQ,ICL9CEZCLOSESQ
S#COMREG,ICL9CEZCOMREG
S#CONNECT,ICL9CEZCONNECT
S#CPUTIME,ICL9CEZCPUTIME
S#DAFILEOP,ICL9CEZDAFILEOP
S#DATETIME,ICL9CEZDATETIME
S#DATIME,ICL9CEZDATIME
S#DISCARDID,ICL9CEZDISCARDID
S#DUMP,ICL9CEZDUMP
S#ETOI,ICL9CEZETOI
S#EXTENDAREA,ICL9CEZEXTENDAREA
S#FAUX,ICL9CEZFAUX
S#FDIAG,ICL9CEZFDIAG
S#FDMAP,ICL9CEZFDMAP
S#FILEACT,ICL9CEZFILEACT

==== ercs07/emas-2900/dsa20_rtocp.txt ====
%CONTROL X'0FFFFFFF'
!* MODIFIED 20/03/79                                                            
!*                                                                              
%EXTERNALROUTINESPEC ICL9CEDIAGOUT(%INTEGER AD,LEN)                             
!*                                                                              
%SYSTEMINTEGERFN IOCP(%INTEGER EP, N)                                           
%CONSTINTEGER OUTMARG2=132                                                      
%OWNBYTEINTEGERARRAY OUTPUTBUFF(0:132)=10,0(132)                                
%OWNINTEGER OUTPTR=1                                                            
%ROUTINESPEC OUTPUTRECORD                                                       
%INTEGER I, X, L, CH                                                            
%SWITCH SW(1:22)                                                                
            ->SW(EP)                                                            
SW(3):                                  ! PRINT SYMBOL(N)                       
SW(5):                                  ! PRINT CH(N)                           
            %IF (N=10 %OR N=12 %OR N=13) %THEN %START                           
               OUTPUTBUFF(OUTPTR)=N                                             
               OUTPUTRECORD;  OUTPUTBUFF(0)=N                                   
               ->END2                                                           
            %FINISH                                                             
            OUTPUTBUFF(OUTPTR)=N                                                

==== ercs07/emas-2900/pptecodes_mmulta.txt ====
Einitialise 
Enextproc  1
Eproc MATRIX    1    0    0
EXname  p_presetf    2    0    0
Eprecall     2
Estkaddr   Gst     + 0      4
Eop    PUSHVAL
 0 0 0
Estack:
 1:AddrDir       Gst     +    0  size: 4
Estklit        1
Eop    PUSHVAL
 0 0 0
Estack:
 1:LitVal            1  size: 4
Ecall        2      2    8
EXname  p_bindf    3    0    0
Eprecall     3
Estkaddr   Gst     + 0      4    OUTPUT
Eop    PUSHVAL
 0 0 0

==== ercs07/emas-2900/pascalsce_rtanal.txt ====
ANALYSE RTPASCALX
ANALYSE RTPASCALX_ICL9LPEHMTM,*
ANALYSE RTPASCALX_ICL9LPLIBNC,*
ANALYSE RTPASCALX_ICL9LPPMPAK,*
ANALYSE RTPASCALX_ICL9LPRLIO,*
ANALYSE RTPASCALX_SFLCTM,*
ANALYSE RTPASCALX_SFLFORRT,*
ANALYSE RTPASCALX_SFLGENERAL,*
ANALYSE RTPASCALX_RTPASCAL3,*
ANALYSE RTPASCAL_RTSUP5,*
ANALYSE RTPASCALX_OPEH3,*
ANALYSE RTPASCALX_PDEFINE,*
ANALYSE RTPASCALX_PDIAGS3,*

==== ercs07/emas-2900/pcfiles_source2.txt ====
{

 History
 -------

 02/12/85 - Modify listing of Boolean Options. (agh)
 09/12/85 - Provide MapId for storage-map option. (agh)
 -------------------------------------------------------------------
 12/12/85 - Improve banner-heading description of RealSize. (agh)

                                                                   }

{

                           MODULE 5


                         Source Input
                             and
                      Listing Generation


==== ercs07/emas-2900/culhamsce_prsdis.txt ====
%BEGIN
!
!    TEST PROGRAM FOR RDSDI AND CHECK ON SDI FILE PRODUCED BY LIBRIP
!
%ROUTINESPEC RDSDI(%INTEGERNAME UNIT,BLOCK,POSN,NO)
!
!?? ; %HALFINTEGERARRAY IRDIRC(1:32)   ;! RECORD DIRECTORY
%BYTEINTEGERARRAY IRTEXT(1:500)        ;! RECORD TEXT
!
%INTEGER CHECK                         ;! CJECK INDICATOR
%INTEGER YES                           ;! CONSTANT
%INTEGER MXDIRC                        ;! DIRECTORY SIZE
%INTEGER MXBUFS                        ;! I/O BUFFER SIZE
%INTEGER MXCNTB                        ;! CONTROL BUFFER SIZE           00001350
%INTEGER I                             ;! LOOP VARIABLE
%INTEGER BLOCK                         ;! BLOCK CONTAINING START OF REC
%INTEGER POSN                          ;! POSITION IN BLOCK
%INTEGER NO                            ;! ENTRY NUMBER INDICATOR
%INTEGER UNIT                          ;! SDI UNIT NUMBER
%INTEGER IN                            ;! NEXT ACTION INDIC
%INTEGER WEEKNO                        ;! CURRENT WEEK NUMBER

==== ercs07/emas-2900/slogos_bpolshfs.txt ====
'HEAD'  BUILD POLISH
C     EDIT DATE   07FEB79  08:23
C     SOURCE FILE BPOLSHAJH.FS
C     AUTHOR      A. J. HOWARD
C     CLUSTER     12
      'OUTFILE'   BLDPOAJH.FR
C     EDIT DATE   07FEB79  08:23
C     SOURCE FILE BLDPOAJH.FR
C     AUTHOR      A.J. HOWARD
C     CLUSTER     11
      SUBROUTINE  BLDPO
      'INCLUDE'   LOGOSAJH.IN,
      'INCLUDE'   CTRLAJH.IN,
      'INCLUDE'   SRCDFSFTM.IN,
CC      EXTERNAL    OLCTL
      'DO'
         CALL BP
         'WHILE' (NEXTOP .EQ. CONTRL)
C            CALL OVLOD (OLCTL)
            CTLUSE = 1
            CTLERR = 0

==== ercs07/emas-2900/slinkf_movefr.txt ====
    
      SUBROUTINE MOVE (FROMB, TOB, COUNT)   
      INTEGER COUNT, FROMB (1), TOB (1), I  
      DO  13006 I = 1, COUNT
      TOB (I) = FROMB (I)   
13006 CONTINUE  
    
      RETURN
      END   
    

==== ercs07/emas-2900/ctms_vroute.txt ====
%EXTERNALINTEGERFN ROUTE(%LONGINTEGER ROUTE, %INTEGER OPERATION)
!
! Basic file route for EMAS variable record length data files.
!
! File route operation codes:
!
%CONSTINTEGER CREATE = 1, ASSIGN = 2, DELETE = 3, DEASSIGN = 4
%CONSTINTEGER CHOOSE RAM = 5
!
! File description parameter pair identifiers:
!
%CONSTINTEGER MINIMUM RECORD SIZE = 105
%CONSTINTEGER MAXIMUM RECORD SIZE = 104
%CONSTINTEGER KEY POSITION = 106
%CONSTINTEGER KEY LENGTH = 107
%CONSTINTEGER ACTUAL FILE SIZE = 150
%CONSTINTEGER SYSTEM FILE DETAILS = 115
%CONSTINTEGER RECORD VIEW = 126
%CONSTINTEGER CONTROL DATA HEADER = 152
%CONSTINTEGER CONTROL DATA TRAILER = 153
%CONSTINTEGER MAXIMUM FILE SIZE = 151

==== ercs07/emas-2900/slinksorg_memoryin.txt ====
C     EDIT DATE   01JUN78  17:38
C     SOURCE FILE MEMORYGAK.IN
C     AUTHOR      GARY A. KUDIS
C     MEMORY USE MAP
C
C     ONE BIT PER MEMORY BYTE; THE BIT IS SETTO ONE (1) WHEN
C     IT IS USED. THERE ARE 4096 ENTRIES IN 'MEMORY'. EACH
C     ENTRY REPRESENTS THE STATUS OF 16 MEMORY BYTES - THUS
C     THE STATUS OF ALL 65636 BYTES.
C
C     ACCESS ALGORITHM TO STATUS OF MEMORY WITH ADDRESS = MEMLOC :
C        MEMX = MEMLOC/16 + 1
C        BITNO = MOD (MEMLOC, 16) + 1
C        BIT = BITS (BITNO)
C
C     ROM MEMORY MAP
C        ONE WORD PER 1K BYTES OF MEMORY; SET TO ZERO (0) WHEN
C        MEMORY IS 'ROM' AND SET TO ONE (1) WHEN 'RAM' MEMORY.
C
      INTEGER     MEMORY (4096)
      INTEGER     MEMX

==== ercs07/emas-2900/strans_skipblfr.txt ====
    
      SUBROUTINE SKIPBL 
    
      INTEGER  INPTR
      INTEGER  OUTPTR   
      INTEGER  INMAX
      INTEGER  MAXTAB   
      INTEGER  MAXLIN   
      INTEGER  IFMAX
      INTEGER  MAXLEV   
      INTEGER  LINENO   
      INTEGER  PAGE 
      INTEGER  CLINE
      INTEGER  TLIMIT   
      INTEGER  LN   
      INTEGER  I, J, K  
      INTEGER  II, JJ, KK   
      INTEGER  LEXVAL   
      INTEGER  SLEN 
      INTEGER  LEVEL
      INTEGER  LEN  

==== ercs07/emas-2900/pptests_mmulta.txt ====
program matrix(output);

  const n = 20;

  var i, j, k: integer;
    s: real;
    a,  b: array [1 .. n,1 .. n] of real;

  begin
    for i := 1 to n do
      for j := 1 to n do a[i, j] := 1.0;
    for i := 1 to n do
      for j := 1 to n do
        begin
          s := 0;
          for k := 1 to n do s := a[i, k] * a[k, j] + s;
          b[i, j] := s
        end;
    for i := 1 to n do
      begin
        for j := 1 to n do write(a[i,j]);

==== ercs07/emas-2900/inpds_logosain.txt ====
C     EDIT DATE   10NOV78  14:27
C     SOURCE FILE LOGOSAJH.IN
C     AUTHOR      A. J. HOWARD
C     GLOBAL PROGRAM DATA BASE
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      INTEGER     NEXT,   NUMBER, I,      IOTYPE
      INTEGER     J,      K,      L,      LABNLX, M,      N
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX
      INTEGER     DUMMY,  OVCHN,  PEEKS
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP
      LOGICAL     CONEND
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT
      LOGICAL     ENDOK
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N

==== ercs07/emas-2900/textptr1.txt ====
program textptr;
imports stack from stack;
type tptr=^text;
var toutptr,foutptr:tptr;
    fout:text;
    i:integer;
    ss,toutadr:fsbit16;
begin
ss:=loadss;
loadadr(tout);
storexpr(toutadr);
toutptr:=makeptr(ss,toutadr,tptr);
rewrite(toutptr^,'console:');
writeln(toutptr^,'did it work');
loadadr(fout);
storexpr(toutadr);
foutptr:=makeptr(ss,toutadr,tptr);
rewrite(foutptr^,'textptr.dat');
writeln(foutptr^,'output to textptr.dat');
close(foutptr^);
i:=10 div 0;

==== ercs07/emas-2900/slogosorg_stkdfcin.txt ====
C     EDIT DATE   03DEC78  12:11
C     SOURCE FILE STKDEFC.IN
C     AUTHOR      A. J. HOWARD
      INTEGER     LOCFLG (20)
      EQUIVALENCE (STK (1, 7), LOCFLG (1))


==== ercs07/emas-2900/pt_readtst2.txt ====
PROGRAM READTEST(INFILE,OUTPUT);
VAR INFILE:TEXT;
    I:INTEGER;
BEGIN
RESET(INFILE);
WHILE NOT EOF(INFILE) DO
  BEGIN
  WHILE NOT EOLN(INFILE) DO
    BEGIN
    READ(INFILE,I);
    WRITELN(I);
    END;
  READLN(INFILE);
  END;
END.

==== ercs07/emas-2900/slogosorg_pnlajhfs.txt ====
      'HEAD'  PRINT NAME LIST
C     EDIT DATE   14JAN79  08:57
C     SOURCE FILE PNLAJH.FS
C     AUTHOR      A. J.HOWARD
C     CLUSTER     9
      'OUTFILE'      PNLAJH.FR
N     OVERLAY OLPNA
      SUBROUTINE  PNAMEL
C     EDIT DATE   14JAN79  08:57
C     SOURCE FILE PNLAJH.FR
C     AUTHOR      A. J.HOWARD
      'INCLUDE'   PNACOMAJH.IN,
      'INCLUDE'   LOGOSAJH.IN,
      'INCLUDE'   CPAREAJH.IN,
      'INCLUDE'   CTRLAJH.IN,
      'INCLUDE'   NLISTCFTM.IN,
      'INCLUDE'   NLNAMEFTM.IN,
      'INCLUDE'   LCFUNCAJH.IN,
      'INCLUDE'   PRTCOMFTM.IN,
      INTEGER     HEAD1 (17), HEAD2 (2), HEAD3 (6), HEAD4 (6)
      INTEGER     HEAD5 (12), HEAD6 (6), HEAD7 (16), HEAD8 (17)

==== ercs07/emas-2900/textptr2.txt ====
program textptr;
imports stack from stack;
type tptr=^text;
var toutptr,foutptr:tptr;
    fout:text;
    i:integer;
    ss:fsbit16;
procedure settext(var outfile:text;var outptr:tptr);
var outadr,ss:fsbit16;
begin
loadadr(outfile);
storexpr(outadr);
storexpr(ss);
writeln('ss is',ss,' offset is ',outadr);
outptr:=makeptr(ss,outadr,tptr);
end;
begin
ss:=loadss;
writeln('ss is ',ss);
settext(tout,toutptr);
rewrite(toutptr^,'console:');

==== ercs07/emas-2900/oldqfiles_f77qput0.txt ====
!*
%EXTERNALROUTINE QPUT(%INTEGER I,J,K,L)
      PRINTSTRING("QPUT")
      WRITE(I,4)
      WRITE(J,4)
      WRITE(K,4)
      WRITE(L,4)
      NEWLINE
%END;! dummy QPUT
!*
%ENDOFFILE

==== ercs07/emas-2900/slogos_ssnamein.txt ====
      INTEGER     SCR1 (6), SCR2 (6)
I     DATA  SCR1     /'LOGOSZ01    '/
I     DATA  SCR2     /'LOGOSZ02    '/
N     DATA  SCR1     /'LOGOS.S1    '/
N     DATA  SCR2     /'LOGOS.S2    '/
P     DATA  SCR1     /'SY:LOGOS.S1 '/
P     DATA  SCR2     /'SY:LOGOS.S2 '/




==== ercs07/emas-2900/slogos_logoszl.txt ====
LINK
LOGOSY
SLOGOY_LEMASAY
SLOGOY_XSUCESY
SLOGOY_LEMASCY
.END
TEMP#OBJ
DESTROY LOGOSY
RESOLVE TEMP#OBJ,LOGOSZ,,TEMP
Y
RETAIN(PLOGOS)
SUPPRESS()
.
DESTROY TEMP#OBJ==== ercs07/emas-2900/slogof_gcharfr.txt ====
    
      INTEGER FUNCTION GCHAR (BUF, INDEX)   
      INTEGER  BUF (66), I, INDEX   
      I = ISHFT (INDEX+1, -1)   
      IF (.NOT. (IAND (INDEX, 1) .NE. 0))GO TO 13000
    
      GCHAR = ISHFT (BUF (I), -8)   
      GO TO 13001   
13000 CONTINUE  
    
      GCHAR = IAND (BUF (I), 255)   
13001 CONTINUE  
    
      RETURN
      END   

==== ercs07/emas-2900/slogof_ctnamefr.txt ====
    
      SUBROUTINE  CTNAME
    
      INTEGER     LISTF,  SNLPRT, SUMPRT, SYMFLG
      INTEGER     PRINTF, SKIP,   COMPFL (2)
      INTEGER     LOCPRT, USFLGS, NEGFLG, SKNAME (8)
      INTEGER     ORGFLG, CTLUSE, CTLERR, TTL (8)   
      INTEGER     DUMFLG
      INTEGER ICLP01
      COMMON      /CTLCOM/    LISTF,  SNLPRT, SUMPRT, SYMFLG
      COMMON      /CTLCOM/    PRINTF, SKIP,   COMPFL
      COMMON      /CTLCOM/    LOCPRT, USFLGS, NEGFLG, SKNAME
      COMMON      /CTLCOM/    ORGFLG, CTLUSE, CTLERR, TTL   
      COMMON      /CTLCOM/    DUMFLG
      COMMON      /CTLCOM/ ICLP01   
      INTEGER     SKIPTS
      SKIPTS = SKIP 
      SKIP = -1 
      CALL CTNUM
      SKIP = SKIPTS 
      RETURN

==== ercs07/emas-2900/slogof_lcompafr.txt ====
    
      SUBROUTINE  LCOMP (FUNC)  
      INTEGER     FUNC  
      INTEGER     ILBRET, SCRET 
      INTEGER     OPTS1,  LDROP 
      INTEGER     TS, BROKTS
      INTEGER     COMPOP (6)
      INTEGER     JMP   
    
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      INTEGER     NEXT,   NUMBER, I,      IOTYPE
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT
      INTEGER ICLP05
      LOGICAL     ENDOK,CONEND  

==== ercs07/emas-2900/slogof_aragenfr.txt ====
    
      SUBROUTINE  ARAGEN
    
      INTEGER     ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG 
      INTEGER     PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG
      INTEGER     LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV
      INTEGER     NEXT,   NUMBER, I,      IOTYPE
      INTEGER     J,      K,      L,      LABNLX, M,      N 
      INTEGER     PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE
      INTEGER     OPTOPX, OPNXTX, TOPX,   NEXTX 
      INTEGER     DUMMY,  OVCHN,  PEEKS 
      INTEGER     LO,     CI,     CO,     LOGICF, LOCSUP
      INTEGER     VAREF,  INPUTJ, LCTS,   CRUCNT, FLTCNT
      INTEGER ICLP05
      LOGICAL     ENDOK,CONEND  
      COMMON   /LOGOS/  ADDR,   ADRFLG, CUROP,  NEXTOP, CFLAG   
      COMMON   /LOGOS/  PI,     XBBL,   XA,     XF,     XZERO,  DPVFLG  
      COMMON   /LOGOS/  LC,     LCI,    LODLCI, LODLCV, LDLCVO, MAXLCV  
      COMMON   /LOGOS/  NEXT,   NUMBER, I,      IOTYPE  
      COMMON   /LOGOS/  J,      K,      L,      LABNLX, M,      N   
      COMMON   /LOGOS/  PSYMB,  SYMBOL, TOP,    VALFLG, QVALUE  

==== ercs07/emas-2900/slogosorg_logosafs.txt ====
'HEAD'  COMPILER CONTROL
C     EDIT DATE   05FEB79  14:02
C     SOURCE FILE LOGOSAJH.FS
C     AUTHOR      A. J. HOWARD
C     CLUSTER     1
C     INSTALLATION DATES
C
C        2.0C     31OCT78
C        2.0D     21NOV78
C        2.0E     13DEC78
C        2.0F     19JAN79/26JAN79
C        2.0G     06FEB79
      'OUTFILE'   LOGOSAJH.FR
      'INCLUDE'   LOGOSAJH.IN,
      CALL INITLO
      CONEND = .FALSE.
      'DO'
         CALL DIMEN
         'WHILE' (.NOT. CONEND)
            CALL PVERBL
            'END'

==== ercs07/emas-2900/psclsce209_ctsup9.txt ====
! MODIFIED 02/04/81 -  HEADING CHANGED TO VERSION 20.9
!**********************************************************************
!*
!*                         P A S C A L
!*
!*                COMPILER ENVIRONMENT ROUTINES
!*
!**********************************************************************
!
!
!**********************************************************************
!*
!*                            CONSTANTS
!*
!**********************************************************************
!
%CONSTINTEGER SEGMENTK=256,SEGMENT=262144
%CONSTINTEGER NIL=-1
%CONSTINTEGER NO=0,YES=1
%CONSTSTRING(1)%ARRAY HEX TAB(0:15)="0","1","2","3","4","5","6","7", %C
              "8","9","A","B","C","D","E","F"

==== ercs07/emas-2900/sforf_getlinf.txt ====
      INTEGER FUNCTION GETLIN (BUFFER, CHAN)
      INTEGER  INPTR
      INTEGER  OUTPTR
      INTEGER  INMAX
      INTEGER  MAXTAB
      INTEGER  MAXLIN
      INTEGER  IFMAX
      INTEGER  MAXLEV
      INTEGER  LINENO
      INTEGER  PAGE
      INTEGER  CLINE
      INTEGER  TLIMIT
      INTEGER  LN
      INTEGER  I, J, K
      INTEGER  II, JJ, KK
      INTEGER  LEXVAL
      INTEGER  SLEN
      INTEGER  LEVEL
      INTEGER  LEN
      INTEGER  INCHAN
      INTEGER  OUTCHN

==== ercs07/emas-2900/pt_niltest.txt ====
PROGRAM LISTS(INPUT,OUTPUT);
TYPE 
     PERSON=RECORD
              NO:INTEGER;
              NEXT:^PERSON
     END;
VAR FIRST,P,PT:^PERSON;
    B:BOOLEAN;
    I,S:INTEGER;
BEGIN
FIRST:=NIL;
FOR I:=1 TO 5 DO
  BEGIN
  READ(S);NEW(P);
  P^.NEXT:=FIRST;
  P^.NO:=S;
  FIRST:=P;
  END;
PT:=FIRST;
B:=TRUE;
WHILE (PT<>NIL) AND B DO

==== ercs07/emas-2900/dsea20_ciedfnldir.txt ====
R/T+/T-/ T/%RANGECHECKS/ R/YES/NO/ TELE

==== ercs07/emas-2900/oldqfiles_f77qput5.txt ====
%CONSTINTEGER EMAS=0,PERQ=1,SYS=PERQ
%CONSTINTEGER NOTSYS=(SYS+1)&1
!********************************************
!*             PERQ LPUT                    *
!********************************************




%ROUTINESPEC QPUT(%INTEGER A,B,C,D)
{PERQ}   %EXTERNALROUTINESPEC WRITE BLOCK(%HALFINTEGER FILEID,BLOCK, %INTEGER AD)
{PERQ}   %EXTERNALROUTINESPEC READBLOCK(%HALFINTEGER FILEID,BLOCK,%INTEGER AD)
{PERQ}   %EXTERNALROUTINESPEC NEWSEG(%INTEGER AD, %HALFINTEGER SIZE,INC,MAXSIZE)
{PERQ}   %EXTERNALROUTINESPEC CLOSEFILE(%HALFINTEGER FILEID,BLOCKS,BITS)
%DYNAMICROUTINESPEC QCODE(%INTEGER I,J,K,L)
{EMAS     %SYSTEMSTRINGFNSPEC FAILUREMESSAGE(%INTEGER MESS)
{EMAS     %EXTERNALSTRINGFNSPEC UINFS(%INTEGER N)
{EMAS    %SYSTEMSTRINGFNSPEC SPAR(%INTEGER N)
{EMAS    %SYSTEMROUTINESPEC SETFNAME(%STRING(63) S)
{EMAS    %EXTERNALROUTINESPEC CHANGECONTEXT
{EMAS    %SYSTEMINTEGERMAPSPEC COMREG(%INTEGER I)

==== ercs07/emas-2900/rel6_rmess6.txt ====
{ 5/MAY   - NEWLINE BEFORE MESSAGE
!Updated 14/04/82 - Fortran77 run time faults cleaned-up (Andy)
!Updated 29/03/82 - Imp run time faults added (Alan).
! UPDATED 24/03/82 - STRING ADDRESS PASSED TO QRMESS INSTEAD OF STRING NAME
!*
%EXTERNALROUTINE QRMESS (%INTEGER ERRNO, %INTEGERNAME FLAG, LEN, %INTEGER STRADDR)
   ! ERRNO - ERROR NUMBER
   ! FLAG  - PASSED AS -1 IF ERROR NUMBER OUT OF RANGE, ELSE PASSED AS 0
   ! LEN   - LENGTH OF ERROR MESSAGE RETURNED
   ! STR   - ERROR MESSAGE STRING RETURNED
   %SWITCH MESS1 (1:75)
   %SWITCH MESS2 (101:200)
  %STRINGNAME STR
   %SWITCH MESS3 (401:424)
  STR==STRING(STRADDR)
   NEWLINE
PRINTSTRING("** ")
   %IF 1 <= ERRNO <= 9 %OR 50 <= ERRNO <= 75 %THEN -> MESS1(ERRNO)
   %IF 101 <= ERRNO <= 200 %THEN -> MESS2(ERRNO)
   %IF 401 <= ERRNO <= 424 %THEN -> MESS3(ERRNO)


==== ercs07/emas-2900/pnxrel01_optctlp44.txt ====
! 04/07/84 - put SPECS to constant operations in include file "targ_constfns"
! 03/07/84 - replace scaling factor in OPTCTL by BSCALE
!04/06/84 - correction to BUSYONX
! 02/04/84 - changes in SUBSUM for DIOITEM(list-directed)
! 15/03/84 - further changes of 4 to W1 in CONOP
! 21/02/84 - Replace increments of 4 by W1 in BUSYONX & CONOP
! 17/01/84 - CORRECT CREATETAB; MAKE BLOCKPOINT RELATIVE IN SETBITS
! 08/11/83 COPIED FROM ERCS06.REL90_OPTCTLB31
!*
%INCLUDE "host_host"
!*
%INCLUDE "targ_target"
!*
%INCLUDE "pf_version"
!*
%INCLUDE "bits_fmts"
!*
%INCLUDE "bits_ctlspecs"
!*
%INCLUDE "bits_optfmts"
!

==== ercs07/emas-2900/slogosorg_nlarayin.txt ====
C     EDIT DATE   09DEC78  14:11
C     SOURCE FILE   NLARAYFTM.IN
C     AUTHOR        F. T. MICKEY
      INTEGER     NLIST (500)
      INTEGER     NLOC  (500)
      INTEGER     NTEXT (1500)
      INTEGER     NTEXTX (500)
      COMMON   /NARAY/  NLIST
      COMMON   /NARAY/  NLOC
      COMMON   /NARAY/  NTEXT
      COMMON   /NARAY/  NTEXTX



==== ercs07/emas-2900/perqrel2_gen18.txt ====
!* MODIFIED 20/05/82
!*************  IMP80 version  ******************
!*
!{2900C}%CONSTINTEGER W2=4
{PERQC}%CONSTINTEGER W2=2
!*
!**** SYNTAX ****
!*
!* Syntax tables generated from file SYNTAX48 on 28/01/82 at 23.55.35
!*
%CONSTBYTEINTEGERARRAY OS(0:1500)=  %C                     
   0,   0,  34,   1,   1,   2,  25,   1,   1,   3,
  10,   7,   2,   3,  29,  61,   0,   1,   1,   0,
  13,   1,   0,   1,   3,  20,   4,   1,   2,   1,
   4,  17,   1,   1,   0,   1,   2,  20,   4,   1,
   1,   1,   3,  17,   0,   1,   2,  87,   0,   1,
   1,   0,   1,   3,  20,   5,   1,   2,   1,   4,
  17,   1,   1,   0,   1,   2,  20,   5,   1,   1,
   1,   3,  17,   0,   1,   2,   1,   3,  17,   1,
   1,   0,   1,   1,   1,   2,  17,   0,  20,   2,
   1,   1,   0,  20,   3,   1,   1,   0,  22,   1,

==== ercs07/emas-2900/slogof_slistffr.txt ====
    
      SUBROUTINE SLIST  
    
      INTEGER     NAME (9)  
      COMMON      /NLNAME/ NAME 
    
      INTEGER  NI,     NJ,     NK   
      INTEGER  NSIZE
      INTEGER  NLX,    FNLX,   REMNLX, OVNLX,  TNAME
      INTEGER  NLSTRT, NLSTOP, NLSIZE, SRCHST   
      INTEGER  NTSTRT   
      INTEGER  NTSTOP   
      INTEGER  NTSIZE   
      INTEGER  PARFLG   
      INTEGER  SPARFL   
      INTEGER  NLWRDS   
      INTEGER  TX   
      INTEGER  NLENO
      INTEGER  STDMD
      INTEGER  MSHIFT   
      INTEGER  REGCNT   

==== ercs07/emas-2900/dsea20_rtjsvar.txt ====
I/%CONTROL X'1FFFFFFF'///
E

==== ercs07/emas-2900/slogof_zptstjfr.txt ====
    
      LOGICAL FUNCTION ZPTST (ZNLX, ZBIAS)  
    
      INTEGER     CODE  
      INTEGER     NOUNLC
      INTEGER     DATALC
      INTEGER     COMLOC
      INTEGER     FBLOCK
      INTEGER     ZREL  
      INTEGER     ABSLC 
      INTEGER     CBTAB (15)
      INTEGER     CBX   
      INTEGER     LCTAB (15)
      COMMON      /LCFUNC/ CODE 
      COMMON      /LCFUNC/ NOUNLC   
      COMMON      /LCFUNC/ DATALC   
      COMMON      /LCFUNC/ COMLOC   
      COMMON      /LCFUNC/ FBLOCK   
      COMMON      /LCFUNC/ ZREL 
      COMMON      /LCFUNC/ ABSLC
      COMMON      /LCFUNC/ CBTAB

==== ercs07/emas-2900/lpds_muxdemlos.txt ====
''HEAD,FRAME MULTIPLEX & DEMULTIPLEX
''TITLE,MUXDEMUX
''LIST
 //***************************************************
 //
 //DESCRIPTION:SAMPLE INTRANODAL MULTIPLEXING AND DE-
 //MULTIPLEXING PROGRAMS.
 //
 //LOCATION:MUXDEMUX.LOS
 //
 //DATE:NOVEMBER 9, 1978
 //
''EJECT
 //********************************
 //*  *
 //*     POINTER BLOCK FORMAT     *
 //*  *
 //********************************
 'TP' [0]:'LBR'
OBP PAGE MAP,//OUTPUT BUFFER POINTER PAGE MAP
'DP' OBP ADDRESS,//OUTPUT BUFFER ADDRESS

==== ercs07/emas-2900/tstfiles_tst12dlos.txt ====
''TITLE, TEST12D
''HEAD, LINKER COMMON ALLOCATION TEST
''LIST
  /////////////////////////////////////////////////////////
  //                                                     //
  // DATE   : SEP 19,1978                                //
  //                                                     //
  // AUTHOR : T. CHENG                                   //
  //                                                     //
  // TEST # : TEST12D                                    //
  //                                                     //
  // PURPOSE :   TEST MEMORY ALLOCATION FOR BLANK        //
  //              AND NAMED COMMONS.                     //
  //                                                     //
  // NOTE :      LINK WITH TEST12A,TEST12B AND           //
  //              TEST12C FOR TESTING.                   //
  //                                                     //
  /////////////////////////////////////////////////////////
''EJECT
     'LBR' DA, DB[3], DD 'RBR',                           // BLANK COMMON
     COM4 : 'LBR' DFLAG4, BUF4[100], 'DP' BPTR4 'RBR',    // #4 NAMED COMMON

==== ercs07/emas-2900/slogof_prtcmdfr.txt ====
 
      BLOCK DATA 
 
      INTEGER  LBUF (66) 
      INTEGER  LCOUNT 
      INTEGER  PGECNT 
      INTEGER  UHEAD (15) 
      INTEGER  CHEAD (8) 
      INTEGER ICLP09 
      COMMON   /PRT/    LBUF 
      COMMON   /PRT/    LCOUNT 
      COMMON   /PRT/    PGECNT 
      COMMON   /PRT/    UHEAD 
      COMMON   /PRT/    CHEAD 
      COMMON   /PRT/    ICLP09 
      DATA     LBUF     /66*8224/ 
      DATA     LCOUNT   /0/ 
      DATA     PGECNT   /0/ 
      DATA     UHEAD    /15*8224/ 
      DATA     CHEAD    /'MO','S ','LO','GO','S ','(2','.0','G)'/ 
      END 

==== ercs07/emas-2900/perqrel2_alloc16.txt ====
!* modified 06/05/82
!*
!******************************** EXPORTS ******************************
!*
%ROUTINESPEC ALLOC(%INTEGER PTR)
%INTEGERFNSPEC ALLOC CHAR(%INTEGER L,AD,
        %HALFINTEGERNAME IIN,%INTEGERNAME DISP)
%ROUTINESPEC INIT ALLOC(%INTEGER ADCOM)
%ROUTINESPEC ADD DATA ITEM(%INTEGER AREA,PTR,COUNT,DISP,L,AD)
%INTEGERFNSPEC TIDY GLA(%HALFINTEGER EP,IIN,%INTEGER LEN)
%INTEGERFNSPEC PFORMAT(%INTEGER AINPUT,INP,J,
                       %STRINGNAME IDENTIFIER)
%INTEGERFNSPEC TO INTEGER(%INTEGER DATA AD,DATA LEN,
                                   TEXT AD,TEXT LEN,TEXT INC,MODE)
%INTEGERFNSPEC TO REAL(%INTEGER DATA AD,DATA LEN,TEXT ADDRESS,
                                INT LEN,INT PTR,DEC LEN,DEC PTR,
                                EXP LEN,EXP PTR,DECS,SCALE,MODE)
%INTEGERFNSPEC GLA SPACE(%INTEGER LEN)
!*
!* 25/03/82   
!*

==== ercs07/emas-a/fopt/esck10k.txt ====
C ECMWF PERFORMANCE EVALUATION TEST 21
      PROGRAM WHET
      COMMON T,T1,T2,E1(4),J,K,L
      T=0.499975
      T1=0.5
      T2=2.0
      I=10000
      N1=0
      N2=12*I
      N3=14*I
      N4=345*I
      N5=0
      N6=210*I
      N7=32*I
      N8=899*I
      N9=616*I
      N10=0
      N11=93*I
      N12=0
      X1=1.0
      X2=-1.0

==== ercs07/emas-a/fopt/ebits_ecodes1.txt ====
!
!************************************************************************
!*                                                                      *
!*                                                    G.E.Millard       *
!*   ECODES1                                          26/09/85          *
!*                                                                      *
!************************************************************************
!
{00} %constinteger      HALT =   0
!
!--------------------------------------- 32-bit (Etos) ----------------
!
{01} %constinteger      IADD =   1     { (Etos-1) + (Etos) => (Etos)   }
{02} %constinteger      ISUB =   2     { (Etos-1) - (Etos) => (Etos)   }
{03} %constinteger     IMULT =   3     { (Etos-1) * (Etos) => (Etos)   }
{04} %constinteger      IDIV =   4     { (Etos-1) / (Etos) => (Etos)   }
{05} %constinteger      INEG =   5     {          - (Etos) => (Etos)   }
{06} %constinteger      IABS =   6     {     abs( (Etos) ) => (Etos)   }
{07} %constinteger      IREM =   7     { remainder from                }
                                       {  (Etos-1) / (Etos)=> (Etos)   }
!

==== ercs07/emas-a/fopt/ebits_ecodes2.txt ====
!
!************************************************************************
!*                                                                      *
!*                                                    G.E.Millard       *
!*   ECODES2                                          06/01/86          *
!*                                                                      *
!************************************************************************
!
{00} %constinteger      HALT =   0
!
!--------------------------------------- generic int operations -------
!
{01} %constinteger      IADD =   1     { (Etos-1) + (Etos) => (Etos)   }
{02} %constinteger      ISUB =   2     { (Etos-1) - (Etos) => (Etos)   }
{03} %constinteger     IMULT =   3     { (Etos-1) * (Etos) => (Etos)   }
{04} %constinteger      IDIV =   4     { (Etos-1) / (Etos) => (Etos)   }
{05} %constinteger      INEG =   5     {          - (Etos) => (Etos)   }
{06} %constinteger      IABS =   6     {     abs( (Etos) ) => (Etos)   }
{07} %constinteger      IREM =   7     { remainder from                }
                                       {  (Etos-1) / (Etos)=> (Etos)   }
!

==== ercs07/emas-a/fopt/ebits_especs1.txt ====
!* modified 19/08/85
!*
%externalroutinespec Egenerate Object(%stringname Name)
%externalroutinespec Einitialise(%integer Lang, Avertext, Astackca,
                                                    Aglaca, Options)
%externalroutinespec Eterminate(%integer adareasizes)
%externalroutinespec Ecommon(%integer area, %stringname Name)
%externalroutinespec Eendcommon(%integer area, Length)
%externalroutinespec Elinestart(%integer lineno)
%externalroutinespec Elinedecode
%externalroutinespec Emonon
%externalroutinespec Emonoff
%externalroutinespec Efaulty
%externalintegerfnspec Estkmarker
%externalroutinespec Esetmarker(%integer Markerid, New Value)
%externalintegerfnspec Eswapmode
!*
%externalroutinespec Estklit(%integer Val)
%externalroutinespec Estkconst(%integer Len, Ad)
%externalroutinespec Estkdir(%integer Area, Offset, Adid, Bytes)
%externalroutinespec Estkind(%integer Area, Offset, Adid, Bytes)

==== ercs07/emas-a/fopt/a.txt ====
%externalroutinespec Pack %alias "GLDPACK"(%string(63) S)
%externalroutinespec Icl9cezgouldimp
%externalroutinespec Emonon
%externalroutinespec Emonoff
%externalroutinespec Mmonon
%externalroutinespec Mmonoff
%externalroutinespec Mcodeon
%externalroutinespec msetfiles(%stringname source,object)
%externalroutinespec mgenerate object(%stringname objname)
%externalintegermapspec Comregmap %alias "S#COMREGMAP" (%integer I)
%externalroutine Gimpentry
%string(31) S,T,Y,P
%integer I
   S=string(comregmap(52))
   %unless S->T.(".").Y %thenstart
      %unless S->T.(":").Y %then Y=S
   %finish
   %unless Y->S.("g") %or y->S.("G") %then S="source"
   P=Y."p"
    Y=Y."g"
   msetfiles(S,Y)

==== ercs07/emas-a/fopt/gbits_gcodes1.txt ====
!*************************************************************************
!*                                                                       *
!*    Mnemonics for Gould code generator        Version 1    26/02/86    *
!*                                                                       *
!*************************************************************************
!*
%constinteger L      =   1 { RX }
%constinteger LM     =   2 { RX }
%constinteger LN     =   3 { RX }
%constinteger ST     =   4 { RX }
%constinteger STM    =   5 { RX }
%constinteger ZM     =   6 { RX }
%constinteger ADM    =   7 { RX }
%constinteger ARM    =   8 { RX }
%constinteger SUM    =   9 { RX }
%constinteger MPM    =  10 { RX }
%constinteger DVM    =  11 { RX }
%constinteger ANM    =  12 { RX }
%constinteger ORM    =  13 { RX }
%constinteger EOM    =  14 { RX }
%constinteger CAM    =  15 { RX }

==== ercs07/emas-a/fopt/ftn2opt2.txt ====
! 02/12/85 - taken from op2p47, new include files incorporated
! 07/08/85 - include test for CHARMODE in ARR/DEFARR triad in BMOVECHECK
! 26/06/85 - line 976 0f LOOPBUILD, map on to next AR block
!          - line 812 of LOOPBUILD, map on to current CL block
! 19/09/84 - clear relevant bit in CLOOPDEF if ASMT/ASGN triad backward moved
!          - line 1510 corrected to VAL1=1, line 1515 moved back 7 lines
! 28/08/84 - correction to BTBITS for CMNCOORDS(1)
! 02/07/84 - change OPTSAB(CMPLX) entry to X'06'
! 11/04/84 - don't word align FREETABS in BMOVHECK
! 10/04/84 - scaling correction in bmovecheck
! 31/01/84 - UPDATE OPSTAB FOR DCMPLX & INTRIN
! 18/01/84 - ADJUST BIT STRIP ADDRESSES
! 17/01/84 - MAKE CALLS OF CREATETAB CONSISTTENT
! 23/11/83 call EDUMPTRACE in OP2A; set up LDUMPTRACE & BMTRACE
! 22/11/82 call CDUMPTRACE in OP2A
! 27/10/83 COPIED FROM ERCS06.REL90_OP2B13
!*
%INCLUDE "ftn_ht"
%INCLUDE "ftn_consts1"
!*
%INCLUDE "ftn_fmts2"

==== ercs07/emas-a/fopt/consts2.txt ====
!* modified 10/10/85
!*
!*
%if HOST = PERQPNX %thenstart
!*
   %constinteger WSCALE = 1;! scale word address to byte address
   %constinteger BSCALE = 1;! scaling factor for words to architectural units
   %constinteger CSCALE = 1;! byte offset to architectural unit offset
   %constinteger DSCALE = 1;! dict pointer scaling in RES records
!*
   %constinteger W1 = 2 ;!  1 word  in architectural units
   %constinteger W2 = 4 ;!  2 words in architectural units
   %constinteger W3 = 6 ;!  3 words in architectural units
   %constinteger W4 = 8 ;!  4 words in architectural units
!*
   %constinteger TRIADLENGTH    =  6 ;! size of an individual triad
   %constinteger BLRECSIZE      = 22 ;! size of a block table entry in architectural units
   %constinteger LOOPRECSIZE    =  8 ;! size of a loop table entry
   %constinteger PROPRECSIZE    =  6 ;! size of a propagation table entry
   %constinteger CLOOPSZ        =  6 ;! size of cloop table entry
   %constinteger FRSIZE         =  4 ;! size of freelist created by PUSHFREE

==== ercs07/emas-a/fopt/ftnsred1a.txt ====
! 13/12/85 - copied from sred42
!          - new include files incorporated
! 05/06/84 reject sr vars which have neglits floating around (EXAMINE)
! 04/06/84 change format of USEF & size of TINITSZ
!          local variables inserted in print routines
! 22/01/84 BIT STRIP ADDRESSES NOW RELATIVE TO ABLOCKS
! 30/10/83 COPIED FROM ERCS06.REL90_SREDB12
!*
%INCLUDE "ftn_ht"
!*
%INCLUDE "ftn_consts1"
!* 
%INCLUDE "ftn_fmts2"
!*
%INCLUDE "ftn_optspecs1"
!*
%INCLUDE "ftn_optfmts1"
!
%INCLUDE "ftn_triadops1"
!*
%INCLUDE "ftn_copy1"

==== ercs07/emas-a/fopt/ftnend6.txt ====
!* 26/11/85 use Com_Statordermode to identify missing ends
!*
{\VAX}%include "ftn_ht"
{\VAX}%include "ftn_fmts1"
{\VAX}%include "ftn_consts2"
{\VAX}%include "ebits_ecodes1"
{\VAX}%include "ebits_especs1"
!*
!{VAX}%include "ht.inc"
!{VAX}%include "fmts1.inc"
!{VAX}%include "consts1.inc"
!{VAX}%include "ecodes1.inc"
!{VAX}%include "especs1.inc"
!*
!***********************************************************************
!* Exports                                                             *
!***********************************************************************
!*
%routinespec Initend(%integer Ep,Info)
%routinespec Subprogend(%integer Mode,Epilogue)
%routinespec Finish(%integer Mode)

==== ercs07/emas-a/fopt/f77parm.txt ====
%SYSTEMINTEGERMAPSPEC COMREG (%INTEGER I)
%SYSTEMROUTINESPEC SETPAR (%STRING (255) PARM)
%SYSTEMROUTINESPEC PSYSMES (%INTEGER X, Y)
%SYSTEMSTRINGFNSPEC SPAR (%INTEGER N)
%CONSTINTEGER MAXPARMS = 31
%CONSTINTEGER DEFAULTF77PARM = X'80000000'
!
%CONSTSTRING (10) %ARRAY F77PARMS (0:MAXPARMS) =               %C
   "NOCHAR",     "NOARG",      "NOUNASS",    "MINBOUND",    %C     { COMREG(55)}
   "NOBOUND",    "NOCOMMENTS", "NOWARNINGS", "STRICT",      %C
   "UNIX",       "VAX",        "F66",        "ONETRIP",     %C
   "WARN66",     "WARNLEN",    "",           "",            %C
   "MONERRS",    "CE",         "TRANSMTM",   "SEPARATE",    %C
   "NOSHARE",    "ITS",        "PA",         "",            %C
   "MAPS",       "TRIADS",     "OPTRIADS",   "",            %C
   "",           "",           "",           ""
!
%STRINGFN PRINTPARMS (%INTEGER P)
   %STRING (255) T
   %INTEGER I
   T = ""

==== ercs07/emas-a/fopt/sck.txt ====
C ECMWF PERFORMANCE EVALUATION TEST 21 PROGRAM SCK                      SCK    1
      PROGRAM SCK                                                               
      COMMON T,T1,T2,E1(4),J,K,L                                        SCK    2
      T=0.499975                                                        SCK    3
      T1=0.50025                                                        SCK    4
      T2=2.0                                                            SCK    5
      READ(1,1)I                                                        SCK    6
    1 FORMAT(I4)                                                        SCK    7
      N1=0                                                              SCK    8
      N2=12*I                                                           SCK    9
      N3=14*I                                                           SCK   10
      N4=345*I                                                          SCK   11
      N5=0                                                              SCK   12
      N6=210*I                                                          SCK   13
      N7=32*I                                                           SCK   14
      N8=899*I                                                          SCK   15
      N9=616*I                                                          SCK   16
      N10=0                                                             SCK   17
      N11=93*I                                                          SCK   18
      N12=0                                                             SCK   19
      X1=1.0                                                            SCK   20

==== ercs07/emas-a/fopt/sckn10.txt ====
      COMMON J,K
      I=1
      N10=0
      X1=1.0
      X2=-1.0
      X3=-1.0
      X4=-1.0
      J=2                                                               SCK  110
      K=3                                                               SCK  111
      IF(N10)109,109,101                                                SCK  112
  101 DO 108 I=1,N10,1                                                  SCK  113
      J=J+K                                                             SCK  114
      K=J+K                                                             SCK  115
      J=J-K                                                             SCK  116
      K=K-J-J                                                           SCK  117
  108 CONTINUE                                                          SCK  118
  109 CONTINUE                                                          SCK  119
      PRINT *,N10
      PRINT *,J
      PRINT *,K
      PRINT *,X1

==== ercs07/emas-a/fopt/sckn11.txt ====
      COMMON T1,J,K
      T1=0.50025
      I=1
      N11=93*I
      X=0.75                                                            SCK  121
      IF(N11)119,119,111                                                SCK  122
  111 DO 118 I=1,N11,1                                                  SCK  123
  118 X=SQRT(EXP(ALOG(X)/T1))                                           SCK  124
  119 CONTINUE                                                          SCK  125
      PRINT *,N11
      PRINT *,J
      PRINT *,K
      PRINT *,X
      PRINT *,X
      PRINT *,X
      PRINT *,X
      END

==== ercs07/emas-a/fopt/ebits_enames1.txt ====
!* enames1        02/11/85
!*
%conststring(9)%array Eopname(0:255) = %c
{00} "HALT","IADD","ISUB","IMULT",  "IDIV" ,"INEG" ,"IABS" ,"IREM" ,
{08} "IAND","IOR" ,"INOT","IXOR" ,  "ISHLL","ISHRL","ISHLA","ISHRA",
{10} "IGT" ,"ILT" ,"IEQ" ,"INE"  ,  "IGE"  ,"ILE"  ,""     ,""     ,
{18} "JIGT","JILT","JIEQ","JINE" ,  "JIGE" ,"JILE" ,"JINTGZ","JINTLZ",
{20} "JINTZ","JINTNZ","JINTGEZ","JINTLEZ",  "ITWB" ,"","JUMP","",
{28} ""       ,"SFA"  ,"RETURN" ,"ASF" , "IPUSH" ,"IPOP"  ,"EXCH"  ,"DUPL",
{30} "DISCARD",""     ,""     ,"INDEX1", "INDEX2","INDEX4","INDEX8","INDEX",
{38} "MVB"    ,"CHK"  ,"TMASK" ,""     , ""      ,""      ,"CPBGT" ,"CPBLT",
{40} "CPBEQ"  ,"CPBNE","CPBGE","CPBLE" , "","","","", 
{48} "","","","", "","","","",
{50} "","","","", "","","","",
{58} "","","","", "","","","",
{60} "","","","", "","","","",
{68} "","","","", "","","","",
{70} ""     ,"RADD" ,"RSUB" ,"RMULT","RDIV" ,"RNEG" ,"RABS",""   ,
{78} "","","","", "","","","",
{80} "","","","", "","","","",
{88} "CVTII","CVTIR","CVTRR","TNCRI", "RNDRI","","","",

==== ercs07/emas-a/fopt/ftngen8.txt ====
!* MODIFIED 06/03/86
!*
%include "ftn_ht"
%include "ftn_consts1"
%include "ftn_fmts1"
%include "ftn_triadops1"
!*
%include "ftn_gsynt62"
!*
!********************************* exports ****************************
!*
%integerfnspec Generate(%record(Triadf)%arrayname Triads,
                      %integername Nexttriad,
                      %integer Kgen,Path,Labrecad,Acom,
                      %integerarrayname Output)
!*
!********************************* imports ****************************
!*
%externalroutinespec Print Tr(%integer Index,Adict,Anames,Level,
                              %record(Triadf)%name Triad)
%externalintegerfnspec Coerce Const(%integer A,Oldmode,Newmode,Adict,

==== ercs07/emas-a/fopt/ebits_enames2.txt ====
!***********************************************************************
!*                                                                     *
!* ebits_enames2                                       13/01/86        *
!*                                                                     *
!***********************************************************************
!*
%conststring(9)%array Eopname(0:255) = %c
{00} "HALT","IADD","ISUB","IMULT",  "IDIV" ,"INEG" ,"IABS" ,"IREM" ,
{08} "IAND","IOR" ,"INOT","IXOR" ,  "ISHLL","ISHRL","ISHLA","ISHRA",
{10} "IGT" ,"ILT" ,"IEQ" ,"INE"  ,  "IGE"  ,"ILE"  ,"BNOT" ,""     ,
{18} "JIGT","JILT","JIEQ","JINE" ,  "JIGE" ,"JILE" ,"JINTGZ","JINTLZ",
{20} "JINTZ","JINTNZ","JINTGEZ","JINTLEZ",  "ITWB" ,"","JUMP","",
{28} ""       ,"SFA"  ,"RETURN" ,"ASF" , "IPUSH" ,"IPOP"  ,"EXCH"  ,"DUPL",
{30} "DISCARD",""     ,""     ,"INDEX1", "INDEX2","INDEX4","INDEX8","INDEX",
{38} "MVB"    ,"CHK"  ,"TMASK" ,""     , ""      ,""      ,"CPBGT" ,"CPBLT",
{40} "CPBEQ"  ,"CPBNE","CPBGE","CPBLE" , "","","","", 
{48} "","","","", "","","","",
{50} "UADD","USUB","UGT","ULT", "UEQ","UNE","UGE","ULE",
{58} "JUGT","JULT","JUEQ","JUNE", "JUGE","JULE","JUGTZ","JULTZ",
{60} "JUEQZ","JUNEZ","JUGEZ","JULEZ", "UCVTII","IADDST","ISUBST","IMULTST",
{68} "IDIVST","INEGST","","", "IANDST","IORST","INOTST","IXORST",

==== ercs07/emas-a/fopt/esck1.txt ====
C ECMWF PERFORMANCE EVALUATION TEST 21 PROGRAM SCK                      SCK    1
      PROGRAM SCK                                                               
      COMMON T,T1,T2,E1(4),J,K,L                                        SCK    2
      T=0.499975                                                        SCK    3
      T1=0.50025                                                        SCK    4
      T2=2.0                                                            SCK    5
      I = 1
      N1=0                                                              SCK    8
      N2=12*I                                                           SCK    9
      N3=14*I                                                           SCK   10
      N4=345*I                                                          SCK   11
      N5=0                                                              SCK   12
      N6=210*I                                                          SCK   13
      N7=32*I                                                           SCK   14
      N8=899*I                                                          SCK   15
      N9=616*I                                                          SCK   16
      N10=0                                                             SCK   17
      N11=93*I                                                          SCK   18
      N12=0                                                             SCK   19
      X1=1.0                                                            SCK   20
      X2=-1.0                                                           SCK   21

==== ercs07/emas-a/fopt/mbtest1.txt ====
      PROGRAM TEST
         K = 0
         DO 20 I = 1,10
            DO 10 J = 1,10
               K = K + I * J
   10      CONTINUE
   20    CONTINUE
         PRINT *,I,J,K
      END

==== ercs07/emas-a/fopt/sck1.txt ====
      PROGRAM SCK1
      T=0.499975                                            
      I = 1
      N1=0                                                  
      X1=1.0                                                
      X2=-1.0                                               
      X3=-1.0                                               
      X4=-1.0                                               
      IF(N1)19,19,11                                        
   11 DO 18 I=1,N1,1                                        
      X1=(X1+X2+X3-X4)*T                                    
      X2=(X1+X2-X3+X4)*T                                    
      X3=(X1-X2+X3+X4)*T                                    
      X4=(-X1+X2+X3+X4)*T                                   
   18 CONTINUE                                              
   19 CONTINUE                                              
      END

==== ercs07/emas-a/fopt/sck2.txt ====
      PROGRAM SCK2
      COMMON T,E1(4)
      T=0.499975                                            
      N2=1                                               
      E1(1)=1.0                                             
      E1(2)=-1.0                                            
      E1(3)=-1.0                                            
      E1(4)=-1.0                                            
      IF(N2)29,29,21                                        
   21 DO 28 I=1,N2,1                                        
      E1(1)=(E1(1)+E1(2)+E1(3)-E1(4))*T                     
      E1(2)=(E1(1)+E1(2)-E1(3)+E1(4))*T                     
      E1(3)=(E1(1)-E1(2)+E1(3)+E1(4))*T                     
      E1(4)=(-E1(1)+E1(2)+E1(3)+E1(4))*T                    
   28 CONTINUE                                              
   29 CONTINUE                                              
      END

==== ercs07/emas-a/fopt/sck3.txt ====
      PROGRAM SCK3
      COMMON J
      N4 = 345
      J=1                                                   
      IF(N4)49,49,41                                        
   41 DO 48 I=1,N4,1                                        
      IF(J-1)43,42,43                                       
   42 J=2                                                   
      GO TO 44                                              
   43 J=3                                                   
   44 IF(J-2)46,46,45                                       
   45 J=0                                                   
      GO TO 47                                              
   46 J=1                                                   
   47 IF(J-1)411,412,412                                    
  411 J=1                                                   
      GO TO 48                                              
  412 J=0                                                   
   48 CONTINUE                                              
   49 CONTINUE                                              
      END

==== ercs07/emas-a/fopt/whet3.txt ====
C ECMWF PERFORMANCE EVALUATION TEST 21
      PROGRAM WHET
      COMMON T,T1,T2,E1(4),J,K,L
      T=0.499975
      T1=0.5
      T2=2.0
      I=1000
      N1=0
      N2=12*I
      N3=14*I
      N4=345*I
      N5=0
      N6=210*I
      N7=32*I
      N8=899*I
      N9=616*I
      N10=0
      N11=93*I
      N12=0
      X1=1.0
      X2=-1.0

==== ercs07/emas-a/fopt/whet4.txt ====
C ECMWF PERFORMANCE EVALUATION TEST 21
      PROGRAM WHET
      COMMON T,T1,T2,E1(4),J,K,L
      T=0.499975
      T1=0.5
      T2=2.0
      I=10000
      N1=0
      N2=12*I
      N3=14*I
      N4=345*I
      N5=0
      N6=210*I
      N7=32*I
      N8=899*I
      N9=616*I
      N10=0
      N11=93*I
      N12=0
      X1=1.0
      X2=-1.0

==== ercs07/emas-a/fopt/acontrol1.txt ====
!* modified 09/04/85
!*
%externalroutinespec Emonon
%externalroutinespec Emonoff
%externalroutinespec Mmonon
%externalroutinespec Mmonoff
%externalroutinespec msetfiles(%stringname source,object)
%externalroutinespec mgenerate object(%stringname objname)

%EXTERNALROUTINESPEC MOVE %ALIAS "S#MOVE" (%INTEGER LENGTH, FROM, TO)
%EXTERNALROUTINESPEC OUTFILE %ALIAS "EMAS3OUTFILE" (%STRINGNAME FILE, %INTEGERNAME SIZE, HOLE, PROT, CONAD, FLAG)
%EXTERNALINTEGERMAPSPEC COMREGMAP %ALIAS "S#COMREGMAP" (%INTEGER X)
%EXTERNALINTEGERFNSPEC FORT77 (%INTEGER CONTROL, OPT1, OPT2, F77PARM, OPTFLAGS, SRFLAGS, CONSOLE, LSTREAM, %C
   DSTREAM, DIAGLEV, DSIZE, TSIZE, BSIZE, LSIZE, ASIZE, SP2)
!
%ROUTINE SIM2 (%INTEGER EP, R1, R2, %INTEGERNAME R3)
   %BYTEINTEGER SYM
   !
   %ON %EVENT 9 %START
      byteinteger(R1+R3)=25 {EM}
      BYTEINTEGER(R1 + R3 + 1) = NL

==== ercs07/emas-a/fopt/gput2.txt ====
! 01 Mar 1986
!
! UTX/32 (Gould V6/V9) Put Interface
! Based on UNIX vsn 4.2 BSD
! Mike Brown, MCMLXXXVI
!
! Tracing control 
! Trace all significant calls on interface if: 
! comreg(26) & 1 # 0 or 
! as directed by calls on procs. Pmonon/Pmonoff 
! Seldom required info controlled by bits of comreg(26) as follows: 
! 4  -  switch on sdb 
! 16 -  File use monitoring 
! 128 - Requests for more space by Malloc, Expand Area etc. 
!
%CONSTINTEGER EMAS = 2900
%CONSTINTEGER EMASA = 370
%CONSTINTEGER HOST = EMASA
!
%IF HOST = EMAS %THEN %START
   %SYSTEMROUTINESPEC PHEX (%INTEGER VALUE)

==== ercs07/emas-a/fopt/scka.txt ====
C ECMWF PERFORMANCE EVALUATION TEST 21 PROGRAM SCK                      SCK    1
      PROGRAM SCK                                                               
      COMMON T,T1,T2,E1(4),J,K,L                                        SCK    2
      T=0.499975                                                        SCK    3
      T1=0.50025                                                        SCK    4
      T2=2.0                                                            SCK    5
      READ(1,1)I                                                        SCK    6
    1 FORMAT(I4)                                                        SCK    7
      N1=0                                                              SCK    8
      N2=12*I                                                           SCK    9
      N3=14*I                                                           SCK   10
      N4=345*I                                                          SCK   11
      N5=0                                                              SCK   12
      N6=210*I                                                          SCK   13
      N7=32*I                                                           SCK   14
      N8=899*I                                                          SCK   15
      N9=616*I                                                          SCK   16
      N10=0                                                             SCK   17
      N11=93*I                                                          SCK   18
      N12=0                                                             SCK   19
      X1=1.0                                                            SCK   20

==== ercs07/emas-a/fopt/ftndata9a.txt ====
!* 15/12/85
!*
{\VAX}%include "ftn_ht"
{\VAX}%include "ftn_fmts1"
{\VAX}%include "ftn_consts2"
{\VAX}%include "ebits_ecodes1"
{\VAX}%include "ebits_especs1"
!*
!{VAX}%include "ht.inc"
!{VAX}%include "fmts1.inc"
!{VAX}%include "consts1.inc"
!{VAX}%include "ecodes1.inc"
!{VAX}%include "especs1.inc"
!*
!***********************************************************************
!* Exports                                                             *
!***********************************************************************
!*
%routinespec Init Data(%integer Mode,Adcom,Rel,Avers)
%routinespec Tidy Data(%integer Ep,IIN,Len)
%integerfnspec Dv Space(%integer LEN,%integername IIN)

==== ercs07/emas-a/fopt/ebits_ecodes.txt ====
!
!************************************************************************
!*                                                                      *
!*                                                    G.E.Millard       *
!*   ECODES                                           10/08/85          *
!*                                                                      *
!************************************************************************
!
{00} %constinteger      HALT =   0
!
!--------------------------------------- 32-bit (Etos) ----------------
!
{01} %constinteger      IADD =   1     { (Etos-1) + (Etos) => (Etos)   }
{02} %constinteger      ISUB =   2     { (Etos-1) - (Etos) => (Etos)   }
{03} %constinteger     IMULT =   3     { (Etos-1) * (Etos) => (Etos)   }
{04} %constinteger      IDIV =   4     { (Etos-1) / (Etos) => (Etos)   }
{05} %constinteger      INEG =   5     {          - (Etos) => (Etos)   }
{06} %constinteger      IABS =   6     {     abs( (Etos) ) => (Etos)   }
{07} %constinteger      IREM =   7     { remainder from                }
                                       {  (Etos-1) / (Etos)=> (Etos)   }
!

==== ercs07/emas-a/fopt/ebits_especs.txt ====
!* modified 19/08/85
!*
%externalroutinespec Egenerate Object(%stringname Name)
%externalroutinespec Einitialise(%integer Lang, Avertext, Astackca,
                                                    Aglaca, Options)
%externalroutinespec Eterminate(%integer adareasizes)
%externalroutinespec Ecommon(%integer area, %stringname Name)
%externalroutinespec Eendcommon(%integer area, Length)
%externalroutinespec Elinestart(%integer lineno)
%externalroutinespec Elinedecode
%externalroutinespec Emonon
%externalroutinespec Emonoff
%externalroutinespec Efaulty
%externalintegerfnspec Estkmarker
%externalroutinespec Esetmarker(%integer Markerid, New Value)
%externalintegerfnspec Eswapmode
!*
%externalroutinespec Estklit(%integer Val)
%externalroutinespec Estkconst(%integer Len, Ad)
%externalroutinespec Estkdir(%integer Area, Offset, Adid, Bytes)
%externalroutinespec Estkind(%integer Area, Offset, Adid, Bytes)

==== ercs07/emas-a/fopt/aa.txt ====
   S=string(comregmap(52))
   %unless S->T.(".").Y %thenstart
      %unless S->T.(":").Y %then Y=S
   %finish
   %unless Y->S.("g") %or y->S.("G") %then S="source"
   P=Y."p"
    Y=Y."g"
   msetfiles(S,Y)
   I = comregmap(59)
   %if I&1#0 %then Emonon %else Emonoff
   %if I&2#0 %then Mcodeon
   %if I&4#0 %then Mmonon %else Mmonoff

==== ercs07/emas-a/fopt/ac.txt ====
      mgenerate object(Y)
      pack(Y.",".P)

==== ercs07/emas-a/fopt/ggen7.txt ====
!* modified 08/03/86                                                ggen7
!*
%include "ftn_ht"
!*
%ownstring(41) Versiontext="EPC/Gould Fortran77 Compiler Version 0.1"
%owninteger Report=0
%owninteger PrimeReport=0
%owninteger Decode
%owninteger Language
!*
!***********************************************************************
!* Exports                                                             *
!***********************************************************************
!*
%routinespec Einitialise(%integer Lang, Avertext, Astackca,
                                                    Aglaca, Options)
%routinespec Eterminate(%integer adareasizes)
%routinespec Ecommon(%integer area, %stringname Name)
%routinespec Eendcommon(%integer area, Length)
%routinespec Elinestart(%integer lineno)
%routinespec Elinedecode

==== ercs07/emas-a/fopt/gtest.txt ====
¸  pEPCL@ H(H8Y8ì<ÈÿÿÔ ø$Q(\€DÕìH­8\ Y
8ì ìF77 diag####F_MAINÿÿÿÿF77 ¸@
AdBp
ADQA
A
AH_main_f_stop==== ercs07/emas-a/fopt/ftnroot2a.txt ====
! Modified 05/10/85
!
! FORTRAN 77 CTL MODULE FOR IBM 370 ARCHITECTURE
! XCTL1 MODIFIED FROM ACTL3 07/01/85
!
%OWNSTRING (52) VERSION = "Fortran77 Compiler Version 8Mar86"
%constinteger Rel  = 1
%constinteger Vers = 21
!*
%include "ftn_ht"
%include "ftn_consts1"
%include "ftn_fmts1"
!*
!*
!***********************************************************************
!* Exports                                                             *
!***********************************************************************
!*
%integerfnspec IBMFORT77 (%integer Control,Options1,Options2,F77parm,
                           Optflags,Srflags,Console,Liststream,Diagstream,
                           Diaglevel,Dsize,Tsize,Bsize,Lsize,Asize,Sp2)

==== ercs07/emas-a/fopt/gmop3.txt ====
%include "ftn_ht"
%include "ftn_triadops1"
%include "ftn_consts1"
%include "ftn_fmts2"
!*
%externalroutine gmop3(%integer atriads)
%RECORD(TRIADF)%NAME Tr,Tr1,Tr2,Tr3
%INTEGER CH,Q
CH=1
%CYCLE
  TR==RECORD(ATRIADS+CH*12)
  Q=Tr_Qopd1
  %if Q=SRTEMP %thenstart
    Tr_Qopd1=BREG
  %finishelsestart
    %if Q=TRIAD %thenstart
      Tr1==record(Atriads+Tr_Opd1*12)
      %if Tr1_Op=REF %thenstart
        Tr_Res1=Tr1_Res1
        Tr1_Op=NULL
      %finish

==== ercs07/emas-a/fopt/ftnalloc4.txt ====
!* 06/03/86
!*
{\VAX}%include "ftn_ht"
{\VAX}%include "ftn_csynt62"
{\VAX}%include "ftn_fmts1"
{\VAX}%include "ftn_consts2"
!*
!{VAX}%include "ht.inc"
!{VAX}%include "csynt62.inc"
!{VAX}%include "fmts1.inc"
!{VAX}%include "consts1.inc"
!*
!***********************************************************************
!* Exports                                                             *
!***********************************************************************
!*
%routinespec   Init Alloc(%integer Mode,Adcom,Rel,Avers)
%routinespec   Alloc(%integer PTR)
%integerfnspec Freesp(%integer n)
%routinespec   Free List Cell(%integername listhead,%integer n)
%integerfnspec New List Cell(%integername listhead,%integer n)

==== ercs07/emas-a/fopt/ebits_enames.txt ====
!*
%conststring(9)%array Eopname(0:255) = %c
{00} "HALT","IADD","ISUB","IMULT",  "IDIV" ,"INEG" ,"IABS" ,"IREM" ,
{08} "IAND","IOR" ,"INOT","IXOR" ,  "ISHLL","ISHRL","ISHLA","ISHRA",
{10} "IGT" ,"ILT" ,"IEQ" ,"INE"  ,  "IGE"  ,"ILE"  ,""     ,""     ,
{18} "JIGT","JILT","JIEQ","JINE" ,  "JIGE" ,"JILE" ,"JINTGZ","JINTLZ",
{20} "JINTZ","JINTNZ","JINTGEZ","JINTLEZ",  "ITWB" ,"","JUMP","",
{28} ""       ,"SFA"  ,"RETURN" ,"ASF" , "IPUSH" ,"IPOP"  ,"EXCH"  ,"DUPL",
{30} "DISCARD",""     ,""     ,"INDEX1", "INDEX2","INDEX4","INDEX8","INDEX",
{38} "MVB"    ,"CHK"  ,"TMASK" ,""     , ""      ,""      ,"CPBGT" ,"CPBLT",
{40} "CPBEQ"  ,"CPBNE","CPBGE","CPBLE" , "","","","", 
{48} "","","","", "","","","",
{50} "","","","", "","","","",
{58} "","","","", "","","","",
{60} "","","","", "","","","",
{68} "","","","", "","","","",
{70} ""     ,"RADD" ,"RSUB" ,"RMULT","RDIV" ,"RNEG" ,"RABS",""   ,
{78} "","","","", "","","","",
{80} "","","","", "","","","",
{88} "CVTII","CVTIR","CVTRR","TNCRI", "RNDRI","","","",
{90} "RGT"  ,"RLT"  ,"REQ" ,"RNE"  ,"RGE"   ,"RLE" ,"JRGT","JRLT",

==== ercs07/emas-a/fopt/gr3.txt ====
!*
%routine Int Unary Op(%integer Op,%record(Stkfmt)%name RHS)
!***********************************************************************
!* supports INEG,IABS                                                  *
!* descriptor to result on Estack                                      *
!***********************************************************************
%integer Reg,I
      %if RHS_form=DirVal %thenstart
         Reg=Checkregkey(data at,RHS_Base,RHS_Offset)
         %if Reg>=0 %thenstart
            Rform=RegVal
            RHS_Form=RegVal
            RHS_Reg=Reg
         %finish
      %finish
      %if Op=INEG %thenstart
          %if RHS_form=RegVal %thenstart
             Reg=RHS_Reg
             Gop RR(TRN,Reg,Reg)
          %finishelsestart
             Reg=Claim Reg

==== ercs07/emas-a/fopt/gt1.txt ====
      real a(10),b(10),t(10)
      do 10, i=1,10
      t(i)=a(i)
      b(i)=t(i)
10    continue
      end

==== ercs07/emas-a/fopt/gput2a.txt ====
! 01 Mar 1986
!
! UTX/32 (Gould V6/V9) Put Interface
! Based on UNIX vsn 4.2 BSD
! Mike Brown, MCMLXXXVI
!
! Tracing control 
! Trace all significant calls on interface if: 
! comreg(26) & 1 # 0 or 
! as directed by calls on procs. Pmonon/Pmonoff 
! Seldom required info controlled by bits of comreg(26) as follows: 
! 4  -  switch on sdb 
! 16 -  File use monitoring 
! 128 - Requests for more space by Malloc, Expand Area etc. 
!
%CONSTINTEGER EMAS = 2900
%CONSTINTEGER EMASA = 370
%CONSTINTEGER HOST = EMASA
!
%IF HOST = EMAS %THEN %START
   %SYSTEMROUTINESPEC PHEX (%INTEGER VALUE)

==== ercs07/emas-a/fopt/malloc.txt ====
==== ercs07/emas-a/fopt/esck1000.txt ====
C ECMWF PERFORMANCE EVALUATION TEST 21 PROGRAM SCK                      SCK    1
      PROGRAM SCK                                                               
      COMMON T,T1,T2,E1(4),J,K,L                                        SCK    2
      T=0.499975                                                        SCK    3
      T1=0.50025                                                        SCK    4
      T2=2.0                                                            SCK    5
      I = 1000
      N1=0                                                              SCK    8
      N2=12*I                                                           SCK    9
      N3=14*I                                                           SCK   10
      N4=345*I                                                          SCK   11
      N5=0                                                              SCK   12
      N6=210*I                                                          SCK   13
      N7=32*I                                                           SCK   14
      N8=899*I                                                          SCK   15
      N9=616*I                                                          SCK   16
      N10=0                                                             SCK   17
      N11=93*I                                                          SCK   18
      N12=0                                                             SCK   19
      X1=1.0                                                            SCK   20
      X2=-1.0                                                           SCK   21

==== ercs07/emas-a/fopt/ftnroot2.txt ====
! Modified 05/10/85
!
! FORTRAN 77 CTL MODULE FOR IBM 370 ARCHITECTURE
! XCTL1 MODIFIED FROM ACTL3 07/01/85
!
%OWNSTRING (52) VERSION = "Fortran77 Compiler Version 8Mar86"
%constinteger Rel  = 1
%constinteger Vers = 21
!*
%include "ftn_ht"
%include "ftn_consts1"
%include "ftn_fmts1"
!*
!*
!***********************************************************************
!* Exports                                                             *
!***********************************************************************
!*
%integerfnspec IBMFORT77 (%integer Control,Options1,Options2,F77parm,
                           Optflags,Srflags,Console,Liststream,Diagstream,
                           Diaglevel,Dsize,Tsize,Bsize,Lsize,Asize,Sp2)

==== ercs07/emas-a/fopt/ebits_defs.txt ====
!*
%constinteger LitVal         =  0        {  lit        }
%constinteger ConstVal       =  1        {  const      }
%constinteger RegVal         =  2        {  (reg)      }
%constinteger FregVal        =  3        {  (freg)     }
%constinteger TempVal        =  4        {  (temp)     }
%constinteger DirVal         =  5        {  (dir)      }
%constinteger IndRegVal      =  6        { ((reg))     }
%constinteger IndTempVal     =  7        { ((temp))    }
%constinteger IndDirVal      =  8        { ((dir))     }
%constinteger AddrConst      =  9        {  @const     }
%constinteger AddrDir        = 10        {  @dir       }
%constinteger RegAddr        = 11        {  (reg) is @ }
%constinteger TempAddr       = 12        {  (temp) is @}
%constinteger DirAddr        = 13        {  (dir) is @ }
%constinteger AddrDirMod     = 14        {  @dir+M     }
%constinteger RegModAddr     = 15        {  (reg)+M    }
%constinteger TempModAddr    = 16        {  (temp)+M   }
%constinteger DirModAddr     = 17        {  (dir)+M    }
%constinteger IndRegModVal   = 18        { ((reg)+M)   }
%constinteger IndTempModVal  = 19        { ((temp)+M)  }

==== ercs07/emas-a/fopt/ebits_etrput1.txt ====
!* modified 21/08/85
!*
%ownstring(31) Versiontext="Fortran77 Compiler Version 0.1"
%owninteger Report=1
%owninteger Decode
%owninteger Language
%owninteger Nextprocid
!*
%constinteger IMP      =  1
%constinteger FORTRAN  =  2
%constinteger CCOMP    = 11
%constinteger PASCAL   = 14
!*
!***********************************************************************
!* Exports                                                             *
!***********************************************************************
!*
%routinespec Einitialise(%integer Lang, Avertext, Astackca,
                                                    Aglaca, Options)
%routinespec Eterminate(%integer adareasizes)
%routinespec Ecommon(%integer area, %stringname Name)

==== ercs07/emas-a/fopt/gcode7.txt ====
!* modified 10/03/86                                               gcode7
!*
!*
!* This module contains support procedures for generating Gould object code
!*
!*
%include "ftn_ht"
%include "ebits_ecodes2"
%include "gbits_gcodes1"
!*
!***********************************
!* Put Interface Massing of Data   *
!***********************************
%externalroutinespec   Mcbytes(%integer Disp,Len,Ad)
%externalroutinespec   MDBYTES   (%integer area, Disp, len, ad)
%externalroutinespec   MD        (%integer area, Disp, Databyte)
%externalroutinespec   MD2       (%integer area, Disp, DataDoublebyte)
%externalroutinespec   MD4       (%integer area, Disp, DataQuadbyte)
%externalroutinespec   MDPATTERN (%integer area, Disp, ncopies, len, ad)
!**********************************************
!* Put Interface RELOCATION and REFERENCES    *

==== ercs07/emas-a/fopt/gcode8.txt ====
!* modified 12/03/86                                               gcode8
!*
!*
!* This module contains support procedures for generating Gould object code
!*
!*
%include "ftn_ht"
%include "ebits_ecodes2"
%include "gbits_gcodes1"
!*
!***********************************
!* Put Interface Massing of Data   *
!***********************************
%externalroutinespec   Mcbytes(%integer Disp,Len,Ad)
%externalroutinespec   MDBYTES   (%integer area, Disp, len, ad)
%externalroutinespec   MD        (%integer area, Disp, Databyte)
%externalroutinespec   MD2       (%integer area, Disp, DataDoublebyte)
%externalroutinespec   MD4       (%integer area, Disp, DataQuadbyte)
%externalroutinespec   MDPATTERN (%integer area, Disp, ncopies, len, ad)
!**********************************************
!* Put Interface RELOCATION and REFERENCES    *

==== ercs07/emas-a/fopt/gcontrol1.txt ====
!* modified 09/04/85
!*
%externalroutinespec Emonon
%externalroutinespec Emonoff
%externalroutinespec Mmonon
%externalroutinespec Mmonoff
%externalroutinespec msetfiles(%stringname source,object)
%externalroutinespec mgenerate object(%stringname objname)

%EXTERNALROUTINESPEC MOVE %ALIAS "S#MOVE" (%INTEGER LENGTH, FROM, TO)
%EXTERNALROUTINESPEC OUTFILE %ALIAS "EMAS3OUTFILE" (%STRINGNAME FILE, %INTEGERNAME SIZE, HOLE, PROT, CONAD, FLAG)
%EXTERNALINTEGERMAPSPEC COMREGMAP %ALIAS "S#COMREGMAP" (%INTEGER X)
%EXTERNALINTEGERFNSPEC FORT77 (%INTEGER CONTROL, OPT1, OPT2, F77PARM, OPTFLAGS, SRFLAGS, CONSOLE, LSTREAM, %C
   DSTREAM, DIAGLEV, DSIZE, TSIZE, BSIZE, LSIZE, ASIZE, SP2)
!
%ROUTINE SIM2 (%INTEGER EP, R1, R2, %INTEGERNAME R3)
   %BYTEINTEGER SYM
   !
   %ON %EVENT 9 %START
      byteinteger(R1+R3)=25 {EM}
      BYTEINTEGER(R1 + R3 + 1) = NL

==== ercs07/emas-a/fopt/gcontrol2.txt ====
!* modified 23/05/85
%externalroutinespec Pack %alias "GLDPACK"(%string(63) S)
%externalroutinespec Mcodeon
!*
%externalroutinespec Emonon
%externalroutinespec Emonoff
%externalroutinespec Mmonon
%externalroutinespec Mmonoff
%externalroutinespec msetfiles(%stringname source,object)
%externalroutinespec mgenerate object(%stringname objname)

%EXTERNALROUTINESPEC MOVE %ALIAS "S#MOVE" (%INTEGER LENGTH, FROM, TO)
%EXTERNALROUTINESPEC OUTFILE %ALIAS "EMAS3OUTFILE" (%STRINGNAME FILE, %INTEGERNAME SIZE, HOLE, PROT, CONAD, FLAG)
%EXTERNALINTEGERMAPSPEC COMREGMAP %ALIAS "S#COMREGMAP" (%INTEGER X)
%EXTERNALINTEGERFNSPEC FORT77 (%INTEGER CONTROL, OPT1, OPT2, F77PARM, OPTFLAGS, SRFLAGS, CONSOLE, LSTREAM, %C
   DSTREAM, DIAGLEV, DSIZE, TSIZE, BSIZE, LSIZE, ASIZE, SP2)
!
%ROUTINE SIM2 (%INTEGER EP, R1, R2, %INTEGERNAME R3)
   %BYTEINTEGER SYM
   !
   %ON %EVENT 9 %START

==== ercs07/emas-a/fopt/ftncode13.txt ====
!* modified 12/03/86
!*
{\VAX}%include "ftn_ht"
{\VAX}%include "ftn_fmts1"
{\VAX}%include "ftn_consts2"
{\VAX}%include "ftn_triadops1"
{\VAX}%include "ebits_ecodes1"
{\VAX}%include "ebits_especs1"
!*
!{VAX}%include "ht.inc"
!{VAX}%include "fmts1.inc"
!{VAX}%include "consts1.inc"
!{VAX}%include "triadops1.inc"
!{VAX}%include "ecodes1.inc"
!{VAX}%include "especs1.inc"
!*
%constinteger Maxelevel=8 
!*
!******************************** EXPORTS ***************************
!*
%routinespec Codegen(%integer Cgenep,%record(Triadf)%arrayname Triads,

==== ercs07/emas-a/fopt/sckn1.txt ====
      COMMON T
      N1=0
      T=0.499975
      X1=1.0                                                            SCK   20
      X2=-1.0                                                           SCK   21
      X3=-1.0                                                           SCK   22
      X4=-1.0                                                           SCK   23
      IF(N1)19,19,11                                                    SCK   24
   11 DO 18 I=1,N1,1                                                    SCK   25
      X1=(X1+X2+X3-X4)*T                                                SCK   26
      X2=(X1+X2-X3+X4)*T                                                SCK   27
      X3=(X1-X2+X3+X4)*T                                                SCK   28
      X4=(-X1+X2+X3+X4)*T                                               SCK   29
   18 CONTINUE                                                          SCK   30
   19 CONTINUE                                                          SCK   31
      PRINT *,N1
      PRINT *,N1
      PRINT *,N1
      PRINT *,X1
      PRINT *,X2
      PRINT *,X3

==== ercs07/emas-a/fopt/sckn2.txt ====
      COMMON E1(4)
      I=10000
      N2 = 12*I
      N3=14*I
      T=0.499975
      E1(1)=1.0                                                         SCK   33
      E1(2)=-1.0                                                        SCK   34
      E1(3)=-1.0                                                        SCK   35
      E1(4)=-1.0                                                        SCK   36
      IF(N2)29,29,21                                                    SCK   37
   21 DO 28 I=1,N2,1                                                    SCK   38
      E1(1)=(E1(1)+E1(2)+E1(3)-E1(4))*T                                 SCK   39
      E1(2)=(E1(1)+E1(2)-E1(3)+E1(4))*T                                 SCK   40
      E1(3)=(E1(1)-E1(2)+E1(3)+E1(4))*T                                 SCK   41
      E1(4)=(-E1(1)+E1(2)+E1(3)+E1(4))*T                                SCK   42
   28 CONTINUE                                                          SCK   43
   29 CONTINUE                                                          SCK   44
      PRINT *,N2
      PRINT *,N3
      PRINT *,N2
      PRINT *,E1(1)

==== ercs07/emas-a/fopt/sckn3.txt ====
      PROGRAM SCKN3
      COMMON T,T1,T2,E1(4)
      T1=0.50025
      T2=2.0
      T=.0499975
      E1(1)=1.0
      E1(2)=-1.0
      E1(3)=-1.0
      E1(4)=-1.0
      I=10000
      N3=14*I
      IF(N3)39,39,31                                                    SCK   46
   31 DO 38 I=1,N3,1                                                    SCK   47
   38 CALL PA(E1)                                                       SCK   48
   39 CONTINUE                                                          SCK   49
      CALL POUT(N3,N2,N2,E1(1),E1(2),E1(3),E1(4))                       SCK   50
      END
      SUBROUTINE PA(E)
      COMMON T,T1,T2
      DIMENSION E(4)
      J=0

==== ercs07/emas-a/fopt/sckn4.txt ====
      COMMON J
      I=1
      N4=345*I
      X1=1.0
      X2=-1.0
      X3=-1.0
      X4=-1.0
      J=1                                                               SCK   51
      IF(N4)49,49,41                                                    SCK   52
   41 DO 48 I=1,N4,1                                                    SCK   53
      IF(J-1)43,42,43                                                   SCK   54
   42 J=2                                                               SCK   55
      GO TO 44                                                          SCK   56
   43 J=3                                                               SCK   57
   44 IF(J-2)46,46,45                                                   SCK   58
   45 J=0                                                               SCK   59
      GO TO 47                                                          SCK   60
   46 J=1                                                               SCK   61
   47 IF(J-1)411,412,412                                                SCK   62
  411 J=1                                                               SCK   63
      GO TO 48                                                          SCK   64

==== ercs07/emas-a/fopt/sckn6.txt ====
      COMMON J,K,L,E1(4)
      I=100000
      N6=210*I
      J=1                                                               SCK   69
      K=2                                                               SCK   70
      L=3                                                               SCK   71
      IF(N6)69,69,61                                                    SCK   72
   61 DO 68 I=1,N6,1                                                    SCK   73
      J=J*(K-J)*(L-K)                                                   SCK   74
      K=L*K-(L-J)*K                                                     SCK   75
      L=(L-K)*(K+J)                                                     SCK   76
      E1(L-1)=J+K+L                                                     SCK   77
      E1(K-1)=J*K*L                                                     SCK   78
   68 CONTINUE                                                          SCK   79
   69 CONTINUE                                                          SCK   80
      PRINT *,N6
      PRINT *,J
      PRINT *,K
      PRINT *,E1(1)
      PRINT *,E1(2)
      PRINT *,E1(3)

==== ercs07/emas-a/fopt/sckn7.txt ====
      COMMON T,T2,J,K
      T=0.499975
      T2=2.0
      I=1
      N7=32*I
      X=0.5                                                             SCK   82
      Y=0.5                                                             SCK   83
      IF(N7)79,79,71                                                    SCK   84
   71 DO 78 I=1,N7,1                                                    SCK   85
      X=T*ATAN(T2*SIN(X)*COS(X)/(COS(X+Y)+COS(X-Y)-1.0))                SCK   86
      Y=T*ATAN(T2*SIN(Y)*COS(Y)/(COS(X+Y)+COS(X-Y)-1.0))                SCK   87
   78 CONTINUE                                                          SCK   88
   79 CONTINUE                                                          SCK   89
      PRINT *,N7
      PRINT *,J
      PRINT *,K
      PRINT *,X
      PRINT *,X
      PRINT *,Y
      PRINT *,Y
      END

==== ercs07/emas-a/fopt/ftndata9.txt ====
!* 15/12/85
!*
{\VAX}%include "ftn_ht"
{\VAX}%include "ftn_fmts1"
{\VAX}%include "ftn_consts2"
{\VAX}%include "ebits_ecodes1"
{\VAX}%include "ebits_especs1"
!*
!{VAX}%include "ht.inc"
!{VAX}%include "fmts1.inc"
!{VAX}%include "consts1.inc"
!{VAX}%include "ecodes1.inc"
!{VAX}%include "especs1.inc"
!*
!***********************************************************************
!* Exports                                                             *
!***********************************************************************
!*
%routinespec Init Data(%integer Mode,Adcom,Rel,Avers)
%routinespec Tidy Data(%integer Ep,IIN,Len)
%integerfnspec Dv Space(%integer LEN,%integername IIN)

==== ercs07/emas-a/fopt/sckn8.txt ====
      COMMON T,T1,T2
      T=0.4999975
      T2=0.50025
      I=10000
      N8=899*I
      X=1.0                                                             SCK   91
      Y=1.0                                                             SCK   92
      Z=1.0                                                             SCK   93
      IF(N8)89,89,81                                                    SCK   94
   81 DO 88 I=1,N8,1                                                    SCK   95
   88 CALL P3(X,Y,Z)                                                    SCK   96
   89 CONTINUE                                                          SCK   97
      CALL POUT(N8,I,I,X,Y,Z,Z)                                         SCK   98
      END                                                               SCK  128
      SUBROUTINE P3(X,Y,Z)                                              SCK  149
      COMMON T,T1,T2                                                    SCK  150
      X1=X                                                              SCK  151
      Y1=Y                                                              SCK  152
      X1=T*(X1+Y1)                                                      SCK  153
      Y1=T*(X1+Y1)                                                      SCK  154
      Z=(X1+Y1)/T2                                                      SCK  155

==== ercs07/emas-a/fopt/sckn9.txt ====
      COMMON E1(4),J,K,L
      I=10000
      N9=616*I
      J=1                                                               SCK   99
      K=2                                                               SCK  100
      L=3                                                               SCK  101
      E1(1)=1.0                                                         SCK  102
      E1(2)=2.0                                                         SCK  103
      E1(3)=3.0                                                         SCK  104
      IF(N9)99,99,91                                                    SCK  105
   91 DO 98 I=1,N9,1                                                    SCK  106
   98 CALL P0                                                           SCK  107
   99 CONTINUE                                                          SCK  108
      PRINT *,N9
      PRINT *,J
      PRINT *,K
      PRINT *,E1(1)
      PRINT *,E1(2)
      PRINT *,E1(3)
      PRINT *,E1(4)
      END

==== ercs07/emas-a/fopt/out.txt ====

  Gould Objanal on EMAS-370 vsn 10 Mar 86

GTEST is a Gould Object File (2323 bytes)

Type: OMAGIC

      Area             Offset      Length
   Header             00000020    0000004C
   Program text       0000006C    000004C0
   Initialised data   0000052C    00000110
   Uninitialised data (BSS)       00000000
   Text relocations   0000063C    00000238 (71 relocations)
   Data relocations   00000874    00000068 (13 relocations)
   Symbol table       000008DC    00000030 (4 entries)
   String table       0000090C    00000027

   Near Text size: 0050 bytes
   Far  Text size: 0470 bytes

   Near Data size: 0110 bytes

==== ercs07/emas-a/fopt/xgen19a.txt ====
!* modified 24/02/86
!*
%ownstring(31) Versiontext="Fortran77 Compiler Version 0.1"
%owninteger Report=0
%owninteger Decode
%owninteger Language
!*
%constinteger IMP      =  1
%constinteger FORTRAN  =  2
%constinteger CCOMP    = 11
%constinteger PASCAL   = 14
!*
!***********************************************************************
!* Exports                                                             *
!***********************************************************************
!*
%routinespec Einitialise(%integer Lang, Avertext, Astackca,
                                                    Aglaca, Options)
%routinespec Eterminate(%integer adareasizes)
%routinespec Ecommon(%integer area, %stringname Name)
%routinespec Eendcommon(%integer area, Length)

==== ercs07/emas-a/fopt/ftn2opt1a.txt ====
! 02/12/85 - taken from op2p47, new include files incorporated
! 07/08/85 - include test for CHARMODE in ARR/DEFARR triad in BMOVECHECK
! 26/06/85 - line 976 0f LOOPBUILD, map on to next AR block
!          - line 812 of LOOPBUILD, map on to current CL block
! 19/09/84 - clear relevant bit in CLOOPDEF if ASMT/ASGN triad backward moved
!          - line 1510 corrected to VAL1=1, line 1515 moved back 7 lines
! 28/08/84 - correction to BTBITS for CMNCOORDS(1)
! 02/07/84 - change OPTSAB(CMPLX) entry to X'06'
! 11/04/84 - don't word align FREETABS in BMOVHECK
! 10/04/84 - scaling correction in bmovecheck
! 31/01/84 - UPDATE OPSTAB FOR DCMPLX & INTRIN
! 18/01/84 - ADJUST BIT STRIP ADDRESSES
! 17/01/84 - MAKE CALLS OF CREATETAB CONSISTTENT
! 23/11/83 call EDUMPTRACE in OP2A; set up LDUMPTRACE & BMTRACE
! 22/11/82 call CDUMPTRACE in OP2A
! 27/10/83 COPIED FROM ERCS06.REL90_OP2B13
!*
%INCLUDE "ftn_ht"
%INCLUDE "ftn_consts1"
!*
%INCLUDE "ftn_fmts2"

==== ercs07/emas-a/fopt/gdum3.txt ====
!* modified 26/02/86                                               gdum2
!*
!*
!*
%recordformat Stkfmt(%byteinteger Form,Type,Reg,Modreg,
                                  Base,Modbase,Scale,Modform,
                      (%integer Offset %or %integer Intval),
                      (%integer Modoffset %or %integer Modintval),
                      %integer Size,Adid)
!*
!*
%externalroutine Op RR(%integer Op,Reg1,Reg2,Size)
%monitor;%stop
%end;! Op RR
!*
%externalroutine Op RX(%integer Op,Reg,%record(Stkfmt)%name Stkpar)
%monitor;%stop
%end;! Op RX
!*
%externalroutine Op R(%integer Op,Reg)
%monitor;%stop

==== ercs07/emas-a/fopt/ftnanal11.txt ====
!* modified 06/03/86
!*
%include "ftn_ht"
%include "ftn_consts1"
%include "ftn_fmts1"
!*
%include "ftn_asynt62"
!*
!***********************************************************************
!* Exports                                                             *
!***********************************************************************
!*
%integerfnspec Analstart(%record(Triadf)%arrayname Triads,
                         %integer Adcom,%integername Count)
!*
!***********************************************************************
!* Imports                                                             *
!***********************************************************************
!*
%externalintegerfnspec Freesp(%integer I)
%externalintegerfnspec Newlistcell(%integername Head,%integer N)

==== ercs07/emas-a/pptests_sort.txt ====


program sort;

  const n = 1000;

  var
    i,
    j,
    k,
    m: integer;
    a: array [1 .. n] of integer;

  begin
    for k := 1 to n do a[k] := k;
    for i := 1 to n - 1 do
      begin
        k := i;
        m := a[i];
        for j := i + 1 to n do
          if a[j] > m

==== ercs07/emas-a/powii.txt ====
%EXTERNALINTEGERFN POWII %ALIAS "F_POWII"(%INTEGER IARG,NARG)
!
!     CALCULATES IARG**NARG
!
%INTEGER X,Y
%INTEGER N

X= IARG
Y= 1
N= NARG
%IF N=0 %then %result= 1
!%START
!  %IF X#0 %THEN %RESULT= 1 %ELSESTART
! Error message suppressed to give conformity with other systems.
!    %IF TEST=1 %THEN TERROR( IPOWERZERO ) %ELSE ERROR( IPOWERZERO )     
!    %RESULT= 1
!  %FINISH
!%FINISH

%IF X=1 %THEN %RESULT= 1
%IF X=-1 %START

==== ercs07/emas-a/pptests_pptest1.txt ====


program ptest1;
{ test simple expression rearrangement }

  const
    zero = 0;
    one = 1;
    two = 2;
    bytelimit = 255;
    halflimit = 65535;

  type
    byte = 0 .. bytelimit;
    half = 0 .. halflimit;

  var
    b1,
    b2,
    b3: byte;
    h1,

==== ercs07/emas-a/pptests_pptest2.txt ====


program pptest2;

  var
    a: array [0 .. 2] of integer;
    b: array [1 .. 2] of integer;
    c: array [-1 .. 2] of integer;
    d: array [32000 .. 32002] of integer;
    e,
    f: array [0 .. 2, 1 .. 2] of integer;
    i: integer;
    r1,
    r2: record
          firstfield: integer;
          secondfield: integer;
          a: array [0 .. 3] of
               record
                 firstfield: integer;
                 secondfield: integer
               end;

==== ercs07/emas-a/pptests_pptest3.txt ====


program pptest3;

  type
    pointer = ^arecord;
    arecord = record
                firstfield: pointer;
                secondfield: integer;
                a: array [1 .. 10] of pointer;
                p: pointer
              end;

  var
    p,
    q: pointer;
    i: integer;

  begin
  { basic operations }
    new(p);

==== ercs07/emas-a/pptests_pptest4.txt ====


program pptest4;

  var
    i,
    j,
    k: integer;
    b: boolean;

  begin
  { basic operations }
    b := i = j;
    b := i <> j;
    b := i > j;
    b := i < j;
    b := i >= j;
    b := i <= j;

    { optimised zero operations }
    b := i = 0;

==== ercs07/emas-a/pptests_pptest5.txt ====



program pptest5;

  var
    s1,s2: packed array [1 .. 2] of char;
    s3,s4: packed array [1 .. 26] of char;
    i: integer;
    ch: char;
    b: boolean;

  begin
    s1 := 'AB';
    s3 := 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';

    { character extraction and insertion operations }

    ch := s1[1];
    ch := s1[i];
    s2[2] := ch;

==== ercs07/emas-a/pptests_pptest6.txt ====


program pptest6;

  const base = 10;

  var
    i,j: integer;
    ch: char;
    b: boolean;
    a: array [1 .. 10] of integer;

  begin
  { simple operations }
    i := i + j;
    i := i - j;
    i := i mod j;
    i := i div j;
    i := i * j;

    { integer comparisons }

==== ercs07/emas-a/pptests_pptest7.txt ====


program pptest7;

  var
    r,
    r1,
    r2: real;
    i: integer;
    b: boolean;
    a: array [1 .. 10] of real;

  begin
  { simple operations }
    r1 := r1 + r2;
    r1 := r1 - r2;
    r1 := r1 / r2;
    r1 := r1 * r2;

    { constant assignments }
    r1 := 0.0;

==== ercs07/emas-a/pptests_pptest8.txt ====

program pptest8;
type
colour = (red,yellow,blue);
mix = set of colour;
charset = set of char;
var
s1,s2 : mix;
s3,s4 : charset;
s5 : set of 0 .. 239;
b : boolean;
c1,c2 : colour;
c3,c4 : char;

begin
{ set construction }
s1 := [];
s1 :=[red];
s1 :=[red .. blue];
s1 :=[blue .. red];
s1 :=[c1,c1 .. blue];

==== ercs07/emas-a/pptests_pptest9.txt ====


program pptest9;

  type
    bit = 0 .. 1;
    fourbits = packed
                 record
                   onebit: bit;
                   twobits: packed array [bit] of bit;
                   anotherbit: bit
                 end;
    eightbits = (b1, b2, b3, b4, b5, b6, b7, b8);

  var
    a1: packed array [1 .. 10] of 0 .. 127; { 7 bits }
    r: fourbits;
    a2: packed array [1 .. 40] of fourbits;
    a3: packed
          record
            i: -1 .. 1;

==== ercs07/emas-a/ftnaux4.txt ====
!* modified 27/06/86                                                ftnaux4
!*
%recordformat dcxf(%longreal real,imag)
%recordformat cxf(%real real,imag)
!*
!******************************** exports ******************************
!*
{ 1} %routinespec    F77 Stop(%integer Ptype,%integer Val)
{ 2} %routinespec    F77 Pause (%integer PTYPE,%integer VAL)
{ 3} %routinespec    F77 Rterr(%integer Errno,%integer Line,Addrproc)
{ 4} %routinespec    Fcpystr(%integer A2,L2,A1,L1)
{ 5} %integerfnspec  Fcpstr(%integer Relop,A1,A2,L1,L2)
{ 6} %routinespec    Fconcat(%integer Alist,N,Ad,Len)
{ 7} %integerfnspec  Fibits(%integer a1,a2,a3)
{ 8} %integerfnspec  Fishftc(%integer a1,a2)
{ 9} %routinespec    Crmult(%record(cxf)%name c,a,b)
{10} %routinespec    Cdmult(%record(dcxf)%name c,a,b)
{11} %routinespec    Crdiv(%record(cxf)%name c,a,b)
{12} %routinespec    Cddiv(%record(dcxf)%name c,a,b)
!*
{13} %integerfnspec  F77 IABS  {%alias "f_iabs"}  (%integername I)

==== ercs07/emas-a/fbugs/f053b.txt ====
      dimension a(3),b(3)
      call sub1(a,b)
      stop
      end
      subroutine sub1(b,aux)
      dimension b(5)
      b(1)=aux(1)
      return
      end

==== ercs07/emas-a/fbugs/iand.txt ====
      j=3
      i=7
      k=iand(j,i)
      print *,k
      k=ibits(i,0,2)
      print *,k
      k=ishft(j,4)
      print *,k
      stop
      end

==== ercs07/emas-a/fbugs/f054a.txt ====

      character*80 buffer
      character*8 word
      buffer ='plot       res'
      i=4
      word=buffer(1:max(i,1))
      write(6,'(3a)') ' "',word,'"'
      end

==== ercs07/emas-a/fbugs/cotan.txt ====
      double precision u,v,x,y
      u=2.2
      v=7.4d16
      x=cotan(u)
      y=cotan(v)
      print *,x,y
      end

==== ercs07/emas-a/fbugs/f055a.txt ====
      PROGRAM TEST
      include 'f055b'
      STOP
      END

==== ercs07/emas-a/fbugs/f055b.txt ====
      a=1
      include 'f055b'
      b=2

==== ercs07/emas-a/fbugs/f055c.txt ====
      program inc
      include 'f055c'
      end

==== ercs07/emas-a/fbugs/cos.txt ====
      complex*16 x,y,z,u
      z=(12.2,175.1)
      x=cdcos(z)
      u=(2.2,175.4)
      y=cdcos(u)
      print *,x,y
      end

==== ercs07/emas-a/fbugs/cot.txt ====
      double precision u,v,x,y
      u=2.2
      v=7.4d16
      x=cot(u)
      y=cot(v)
      print *,x,y
      end

==== ercs07/emas-a/fbugs/cpu.txt ====
      double precision tt,cpu
      call cputim(tt)
      print *,tt
      call icl9cecputime(cpu)
      print *,cpu
      end

==== ercs07/emas-a/fbugs/gamma.txt ====
      x=gamma(4.56)
      print *,x
      z=gamma(1.0e-20)
      print *,z
      end

==== ercs07/emas-a/fbugs/cediag.txt ====
      double precision tt,cpu
      call cputim(tt)
      print *,tt
      call icl9cediag
      call icl9cecputime(cpu)
      print *,cpu
      end

==== ercs07/emas-a/fbugs/hfix.txt ====
      integer*2 i
      i=hfix(2.6)
      print *,i
      end

==== ercs07/emas-a/fbugs/rl1.txt ====
      r=1.234321*2.0e8
      i=r
      write(6,10)r,i
  10  format(1h ,e16.10,i12)
      stop
      end

==== ercs07/emas-a/fbugs/rl2.txt ====
      double precision r,s,t
      r=1234.321
      s=2.0e3
      t=r*s
      write(6,10)t
  10  format(1h ,e16.10,2i12)
      stop
      end

==== ercs07/emas-a/fbugs/ftests_mb006.txt ====
      LOGICAL l1,l2
      CHARACTER*4 A,B
      DATA A,B/'FRED','BERT'/
      l1=lge(a,b)
      l2=lge(b,a)
      if(l1.ne.l2)goto 1
      write(6,20)
  10  format(1h ,'mb006 passed')
      stop
  1   write(6,10)
  20  format(1h ,'mb006 failed')
      STOP
      END

==== ercs07/emas-a/fbugs/rl8.txt ====
      real*8 rl
      rl=2.2+3.3
      stop
      end

==== ercs07/emas-a/fbugs/ftests_mb008.txt ====
      character ln(70)*100
      n=5
      ln(n)(1:1)='1'
      ln(n)(2:50)='this is a test'
      write(6,'(a)')ln(n)(1:50)
      write(6,10)
  10  format(1h ,'mb008 passed')
      stop
      end

==== ercs07/emas-a/fbugs/ftests_mb013.txt ====
      character*80 linsav(50),line
      character*9 marg
      nlsav=1
      marg='100 10 $a'
      line='smith$hjohn'
      lw=64
      linsav(nlsav)=marg//line(1:lw)
      write(6,10)
  10  format(1h ,'mb013 passed')
      end

==== ercs07/emas-a/fbugs/ftests_mb018.txt ====
      call tests(12Hmb018 passed,10)
      stop
      end
      subroutine tests(string,n)
      integer string(n/4+1)
      write(6,10) string(1), string(2),string(3)
10    format(' ' , 3a4)
      return
      end

==== ercs07/emas-a/fbugs/ftests_mb019.txt ====
      open(unit=10,file='fred',status='unknown',form='unformatted')
      write(12,10)
  10  format(5h bert)
      print *,' mb019 passed'
      stop
      end

==== ercs07/emas-a/fbugs/ftests_mb021.txt ====
      inquire('fred')
      end

==== ercs07/emas-a/fbugs/lp23.txt ====

Command:parm nocomments


Command:f77 ercs07:fbugs.mb006,y
   main program
 13 Statements compiled

Command:run y
mb006 passed



Command:f77 ercs07:fbugs.mb008,y
   main program
 9 Statements compiled

Command:run y
this is a test
mb008 passed


==== ercs07/emas-a/fbugs/fexpta.txt ====
            CALL CHECK1()
      STOP
      END
      SUBROUTINE CHECK1()
      DOUBLE PRECISION  SA
      COMPLEX*16        CA
      DOUBLE PRECISION  STRUE4(5)
      COMPLEX*16        CV(8,5,2), CX(8)
      DOUBLE PRECISION  DZASUM
      DATA              SA, CA/0.3D0, (0.4D0,-0.7D0)/
      DATA              (CV(I,2,1),I=1,2)/(0.3D0,-0.4D0), (3.0D0,4.0D0)/
      DATA              STRUE4/0.0D0, 0.7D0, 1.0D0, 1.3D0, 1.7D0/
            DO 20 I = 1, 2
               CX(I) = CV(I,2,1)
   20       CONTINUE
               CALL STEST1(DZASUM(1,CX,1),STRUE4(2),STRUE4(2))
      RETURN
      END
      SUBROUTINE STEST(LEN,SCOMP,STRUE,SSIZE)
      DOUBLE PRECISION SCOMP(LEN), SSIZE(LEN), STRUE(LEN)
      DOUBLE PRECISION SD

==== ercs07/emas-a/fbugs/dprod.txt ====
      double precision dd
      dd=dprod(1,2)
      print *,dd
      end

==== ercs07/emas-a/fbugs/cedate.txt ====
      character*8 dat,ebcdat
      dimension i(2),j(2)
      equivalence (dat,i),(ebcdat,j)
      call hdate(dat)
      print *,dat
      call icl9cedate(ebcdat)
      print *,ebcdat
      print *,i(1),i(2),j(1),j(2)
  1   format(1h ,2i4,4x,2i4)
      end

==== ercs07/emas-a/fbugs/charfile.txt ====
      character*8 c8
      write (10,10)
  10  format(1h1,'hello')
      stop
      end

==== ercs07/emas-a/fbugs/testll.txt ====
<- setiodefaul
== incloadleve  *to3
-> command  "f77 test,y", "F77", "test,y", 0, 3
 -> queryrestri  "F77", "test,y"
 <- queryrestri  "F77", "test,y", 0
 == incloadleve  *to4
 -> loadep2  "C#F77", 6, 4
  -> search  "C#F77", x'04111048', 6
   -> searchdir  "C#F77", x'05100000', x'0000684F' 26703
   <- searchdir  8, *=C#FORTRAN[3]
  <- search  "", "C#FORTRAN", 2, 4, *-1
 <- loadep2  "C#FORTRAN", 2, 0, x'04B30EE8', x'04BDA078', x'04B32744', 0, *Res=1
 ssfn=
 -> enter  *ll=4
  == setcomreg36  x'04112000', *  ENTER
  -> connect  "{$121}ERCS07:FBUGS.TEST", x'00000200' 512, 0, 4, x'04112468'
  <- connect  x'07D00000', 3, 32, x'00000034' 52, 0
  -> idefine  x'FFFFFFAF' -81, "{$121}ERCS07:FBUGS.TEST"
  <- idefine  x'04C3ABC4', 0, *TOPFD=15
-> emas3lastpa 
<- emas3lastpa TEST

==== ercs07/emas-a/fbugs/f050.txt ====
      PARAMETER (NL=9,NLWF=9,NLCH=9,NVR=331,NIN=7,                              
     C NPT=100,NFR=50,NTZ=50,NCMX=40,NMC=421,MCW=600,MVW=60,                    
     C MPW=300,MAT=2,MSR=2,MSUB=2,MREC=13,M2D=60,MIN=63,MCSTR=130,              
     C MVSTR=12,MCST=30,MVPT=100,MPT=400,MFR=100,MMZ=100,MFJ=12,                
     C MFN=6000,MFV=600,MEN=50,                                                 
     C NL1=(NLCH*NLCH+NLCH)/2,MEL=(MPW*MPW+MPW)/2,MCN=MPW*NLWF*NLWF,            
     C MGW=3*MPW*MPW+2*MREC*MREC,MDS=2*MEN*(MSR+2))                             
      REAL KM(2,MPW),K(2)                                                       
      REAL FJ(MFJ)                                                            
      COMPLEX GLA(MCN),GLB(MCN),YLM(MCN),GW(MGW),ENS(MEN),DP                    
      DIMENSION INCST(2),MAPW(3),MCPW(3),         
     C CORD(3,MAT+2*MSUB),MESH(MSR),RMT(MSR+2*MSUB),                   
     C G1(2),G2(2),IG(3,MPW),IGR(MPW),         
     C IW(MPW),UMT(8*NL*MSR),CSEMB1(MPW),CSEMB2(MPW),XV(MIN),                   
     C WV(MIN),IC(3*MCW),IC2(2*MVW),PW(MCW),                                    
     C PS(2*NVR*NLWF*MSR),ICSTR(MCW),LCSTR(8*MCSTR),IVSTR(MVW),                 
     C LVSTR(8*MVSTR),NLMST(MSR),LATST(8*MSR),IST(2*MAT),                       
     C LST(NL1*MSR),MST(NL1*MSR),LCST(2*NL1*MSR),ST(32*NLCH),                   
     C CPSTR(MCSTR),ROLL(NVR*MCST),PGI(2*MVSTR),                                
     C VGI(2*MVSTR),PINT(MCSTR),VINT(MCSTR),                                    
     C DV(4*MVSTR),PMUF(NVR*MCST),                                              

==== ercs07/emas-a/fbugs/f053.txt ====
      dimension b(5)
      b(1)=aux(1)
      stop
      end

==== ercs07/emas-a/fbugs/f054.txt ====
      character*60 line
      character*80 buffer
      character*8 word
      line =' '
      k=20
      line(k:k)='*'
      line(k*3:k*3)='*'
      write(6,'(a)')line
      buffer ='plot       res'
      i=4
      word=buffer(1:max(i,1))
      write(6,'(3a)') ' "',word,'"'
      print *,'f054 passed if above lines contain spaces between chars.'
      end

==== ercs07/emas-a/fbugs/sin.txt ====
      x=sin(8.8)
      print *,x
      y=sin(5.3e7
      print *,y
      d1=sin(2.3d4)
      print *,d1
      d2=sin(7.3d16)
      print *,d2
      stop
      end
      double precision x,y
      x=3.3
      y=arsin(x)
      print *,y
      end

==== ercs07/emas-a/fbugs/char.txt ====
      character*1 c1
      i=67
      c1=char(i)
      print *,c1
      end

==== ercs07/emas-a/fbugs/log.txt ====
      x=log(5.5)
      print *,x
      y=log(0.0)
      stop
      end

==== ercs07/emas-a/fbugs/cbpshel.txt ====
==== ercs07/emas-a/fbugs/ceftrace.txt ====
      double precision tt,cpu
      call icl9ceftrace(2)
      call cputim(tt)
      print *,tt
      call icl9ceftrace(0)
      call icl9cecputime(cpu)
      print *,cpu
      end

==== ercs07/emas-a/fbugs/test.txt ====
      i=1
      end

==== ercs07/emas-a/fbugs/erf.txt ====
      y=erf(2.2)
      print *,y
      end

==== ercs07/emas-a/fbugs/bugpd_incltst1.txt ====
      SUBROUTINE SUBR
      A=1
      B=2
      C=3
      WRITE(*,*) A, B, C
      RETURN
      END

==== ercs07/emas-a/fbugs/intfile.txt ====
      character*80 cht
      data cht /'fred'/
      integer title
      the=90.
      gam=90.
      phi=0.
      scale=0.71
      read(cht,20)title
      write(cht,10)the,gam,phi,scale
  10  format('theta',f5.0,'gama',f5.0,' phi',f5.0,'scale',f5.2)
      read(cht,20)title
  20  format(20a4)
      stop
      end

==== ercs07/emas-a/fbugs/bugpd_incltest.txt ====
      PROGRAM TEST
      CALL SUBR
      STOP
      END
*
* INCLUDE STATEMENT FOLLOWS...
*
       INCLUDE 'bugpd_INCLTST1'
*
* FINISH OF INCLUDE
*
*
* CONTENTS OF FILE 'INCLTST1' BELOW
*
*      SUBROUTINE SUBR
*      A=1
*      B=2
*      C=3
*      WRITE(*,*) A, B, C
*      RETURN
*      END

==== ercs07/emas-a/fbugs/lgamma.txt ====
      double precision d1,d2,d3
      r1=3.3
      d1=3.3
      r2=lgamma(r1)
      r3=algama(r1)
      print *,r2,r3
      d2=lgamma(d1)
      d3=dlgama(d1)
      print *,d2,d3
      x=9.87654e75
      d1=9.8765d75
      r3=lgamma(x)
      d2=dlgama(d1)
      print *,r3,d2
      stop
      end

==== ercs07/emas-a/fbugs/ftests_cmpxtest.txt ====
      intrinsic conjg
      complex a,b,c,d,aa,bb
      complex*16 cc,dd,ee
      ifail=0
      a=(1.0,0.0)
      r=a
      b=r
      c=(2.0,3.0)
      d=c
      c=d*c
      i=1
      if(a.eq.b)goto 1
      write(6,10)i
      ifail=1
  1   i=2
      if(a.eq.r)goto 2
      write(6,10)i
      ifail=i
  2   i=3
      if(r.eq.b)goto 3
      write(6,10)i

==== ercs07/emas-a/fbugs/cmplx.txt ====
      complex a,b,c
      complex*16 aa,bb
      double precision x,y,z
      a=cmplx(1)
      b=cmplx(1,2)
      print *,a,b
      c=cmplx(2.2)
      print *,c
      x=2.3
      a=cmplx(x)
      print *,a
      b=cmplx(a)
      print *,b
      aa=dcmplx(1,2)
      bb=dcmplx(x)
      print *,aa,bb
      end

==== ercs07/emas-a/fbugs/bugs2.txt ====
parm nocomments
f77 ercs07:fbugs.mb006,y
run y
f77 ercs07:fbugs.mb008,y
run y
f77 ercs07:fbugs.mb013,y
run y
f77 ercs07:fbugs.mb018,y
run y
define 12,fred
f77 ercs07:fbugs.mb019,y
run y
destroy fred
/* mb021 - compilation failure
f77 ercs07:fbugs.mb021,y,.out
f77 ercs07:fbugs.f025,y
run y

f77 ercs07:fbugs.f028,y
run y
f77 ercs07:fbugs.f029,y

==== ercs07/emas-a/fbugs/ostests_mb012.txt ====
      dimension x(10,10)
      call s(x,m,n)
      end
      subroutine s(x,m,n)
      dimension x(m,n)
      end

==== ercs07/emas-a/fbugs/cotana.txt ====
      u=6.29
      x=cotan(u)
      print *,x
      end

==== ercs07/emas-a/fbugs/ostests_f035.txt ====
      character*5 fred
      fred='empty'
      if(fred.eq.5hdummy)goto 20
      write(6,10)
  10  format(1h ,11hf035 passed)
  20  stop
       end

==== ercs07/emas-a/fbugs/bugpd_readme.txt ====
This PD file contains the following members:

     BUGPD_INCLTEST - source for bug in INCLUDE
     BUGPD_INCLTST1 - include file for above
     BUGPD_TLISTA   - compiler listing for above

     BUGPD_INCLUDES - source comments pushed out before INCLUDE file
     BUGPD_INCLUDE  - include file for above
     BUGPD_TLISTB   - compiler listing for above


==== ercs07/emas-a/fbugs/exp.txt ====
      complex c1,c2
      x=exp(174.67)
      print *,x
      y=exp(-1.8e10)
      print *,y
      c1=(1.1,1.7e10)
      c2=exp(c1)
      print *,c2
      end

==== ercs07/emas-a/fbugs/ostests_f047.txt ====
       program main
       implicit none
       real x, y, z
       integer i, j, k
       character a, b
       call subr(a, b, i, j, x, y, z)
       stop
       end
       subroutine subr(aa, bb, ii, jj, xx, yy, zz)
       implicit none
       real xx, yy, zz
       integer ii
       character aa
       return
       end

==== ercs07/emas-a/fbugs/sqrta.txt ====
      y=8.854370
      x=y*y
      z=.000001*78.4
      u=abs(x-78.4)
      print *,x,z,u
      stop
      end

==== ercs07/emas-a/fbugs/sqrtb.txt ====
      equivalence (x,ix),(y,iy),(z,iz),(v,iv)
      read *,x
      print *,'x =',x,' hex value ='
      call emas3phex(ix)
      v=0.000001*x
      write(*,1)
      print *,'0.000001*x =',v,' hex value ='
      call emas3phex(iv)
      y=1.0
      do 10 j=1,10
      y=(x/y+y)/2
      write(*,1)
      print *,'y =',y,'hex value ='
      call emas3phex(iy)
      z=abs(y*y-x)
      write(*,1)
      print *,'abs(y*y-x) =',z,'hex value ='
      call emas3phex(iz)
      if(z.lt.0.000001*x) goto 20
  10  continue
  20   stop

==== ercs07/emas-a/fbugs/sqrtc.txt ====
      equivalence (x,ix),(y,iy),(z,iz),(v,iv)
      read *,x
      print *,'x =',x
      v=0.000001*x
      write(*,1)
      print *,'0.000001*x =',v,' hex value ='
      call emas3phex(iv)
      y=1.0
      do 10 j=1,10
      y=(x/y+y)/2
      z=abs(y*y-x)
      if(z.lt.v) goto 20
  10  continue
  20  write(*,1)
      print *,'y =',y,'hex value ='
      call emas3phex(iy)
      write(*,1)
      print *,'abs(y*y-x) =',z,'hex value ='
      call emas3phex(iz)
       stop
  1   format(1h ,)

==== ercs07/emas-a/fbugs/ftests_bslash.txt ====
      character*1 fred
      fred='\'
      write(6,10)
  10  format(1h ,'bslash test passed')
      stop
      end

==== ercs07/emas-a/fbugs/mod.txt ====
      x=mod(5.5,2.2)
      print *,x
      y=mod(4,0)
      stop
      end

==== ercs07/emas-a/fbugs/ftests_fortof.txt ====
      i=2
      do 10 j=1,32
      i=i+i
  10  continue
      print *,i
      print *,'fortof passed'
      stop
      end

==== ercs07/emas-a/fbugs/sqrt.txt ====
      equivalence (x,ix),(y,iy)
      x=78.4
      call emas3phex(ix)
      y=1.0
      do 10 j=1,10
      y=(x/y+y)/2
      print *,y
      if(abs(y*y-x).lt.0.000001*x) goto 20
  10  continue
  20  call emas3phex(iy)
      stop
      end

==== ercs07/emas-a/fbugs/ftests_cdabs.txt ====
      complex*16 dc
      double precision dp1,dp2
      dc=(1.0d0,1.0d0)
      dp1=cdabs(dc)
      dp2=dp1*dp1
      write(6,*)dp1,dp2
      write(6,'(1h ,''cdabs test passed if 2nd number=2.0d0'')')
      stop
      end

==== ercs07/emas-a/fbugs/lgamma2.txt ====
      double precision d1,d2,d3
      d1=5.4321d73
      d2=lgamma(d1)
      print *,d2
      stop
      end

==== ercs07/emas-a/fbugs/impdiag.txt ====
%begin
%integer i,j,k,l
%real a,b,c,d
i=1
  
a=1.0
j=k
%endofprogram

==== ercs07/emas-a/fbugs/cosh.txt ====
      x=cosh(2.2)
      y=cosh(175.4)
      print *,x,y
      end

==== ercs07/emas-a/fbugs/log10.txt ====
      double precision d1,d2
      x=log10(5.5)
      print *,x
      y=-4.4e3
      z=log10(y)
      stop
      end

==== ercs07/emas-a/fbugs/fexpt.txt ====
            CALL CHECK1()
      STOP
      END
      SUBROUTINE CHECK1()
      DOUBLE PRECISION  SA
      COMPLEX*16        CA
      DOUBLE PRECISION  STRUE4(5)
      COMPLEX*16        CV(8,5,2), CX(8)
      DOUBLE PRECISION  DZASUM
      DATA              SA, CA/0.3D0, (0.4D0,-0.7D0)/
      DATA              (CV(I,2,1),I=1,2)/(0.3D0,-0.4D0), (3.0D0,4.0D0)/
      DATA              STRUE4/0.0D0, 0.7D0, 1.0D0, 1.3D0, 1.7D0/
            DO 20 I = 1, 2
               CX(I) = CV(I,2,1)
   20       CONTINUE
               CALL STEST1(DZASUM(1,CX,1),STRUE4(2),STRUE4(2))
      RETURN
      END
      SUBROUTINE STEST(LEN,SCOMP,STRUE,SSIZE)
      DOUBLE PRECISION SCOMP(LEN), SSIZE(LEN), STRUE(LEN)
      DOUBLE PRECISION SD

==== ercs07/emas-a/fbugs/acos.txt ====
      double precision x,y
      x=3.3
      y=darcos(x)
      print *,y
      end

==== ercs07/emas-a/fbugs/ftests_f022.txt ====
      write(6,10)
  10  format(' boring...',/
     + ' boring...',/
     + ' boring...',/
     + ' boring...',/
     + ' boring...',/
     + ' boring...',/
     + ' boring...',/
     + ' boring...',/
     + ' boring...',/
     + ' boring...',/
     + ' boring...',/
     + ' boring...',/
     + ' boring...',/
     + ' boring...',/
     + ' boring...',/
     + ' boring...',/
     + ' boring...',/
     + ' boring...',/
     + ' boring...',/
     + ' boring...',/

==== ercs07/emas-a/fbugs/bugstest.txt ====
parm nocomments
f77 ercs07:fbugs.ftests_mb006,y
run y
f77 ercs07:fbugs.ftests_mb008,y
run y
f77 ercs07:fbugs.ftests_mb013,y
run y
f77 ercs07:fbugs.ftests_mb018,y
run y
define 12,fred
f77 ercs07:fbugs.ftests_mb019,y
run y
destroy fred
/* mb021 - compilation failure
f77 ercs07:fbugs.ftests_mb021,y,.out
/* f022 - compilation error
f77 ercs07:fbugs.ftests_f022,y,.out
f77 ercs07:fbugs.ftests_f025,y
run y

f77 ercs07:fbugs.ftests_f028,y

==== ercs07/emas-a/fbugs/ftests_f025.txt ====
      logical l
      l='aaron' .lt. 'baal'
      write(6,*)l
      write(6,*)('aaron' .lt. 'baal')
      write(6,*) 'f025 passed if both answers above are T'
      end

==== ercs07/emas-a/fbugs/index.txt ====
      character*10 str1
      character*3 str2
      character*12 str3
      str1='hello you'
      str2='you'
      str3='hello there'
      i=index(str1,str2)
      j=index(str1,str3)
      print *,i,j
      stop
      end

==== ercs07/emas-a/fbugs/ftests_f028.txt ====
      integer*2 d(2,2)
      i=2
      j=1
      d(i,j)=0.0
      write(6,10)
  10  format(1h ,'f028 passed')
      end

==== ercs07/emas-a/fbugs/abs.txt ====
      double precision a
      complex c
      c=(2.2,3.3)
      a=cdabs(c)
      print *,a
      end

==== ercs07/emas-a/fbugs/ftests_f029.txt ====
      PROGRAM INVEST
      INTEGER          SEL 43(150),SEL 44(150)
      DOUBLE PRECISION KA 1(6, 9), KB 1A(6, 8), KC 1A(6, 8), KD 1(6, 4),
     *                             KB 1B(6, 8), KC 1B(6, 8),
     *                 KA 2(6, 9), KB 2 (6, 7), KC 2 (6, 7), KD 2(6, 9),
     *                 KA 3(6, 8), KB 3 (6, 7), KC 3 (6, 7), KD 3(6, 8),
     *                 KA 4(6,11), KB 4 (6,10), KC 4 (6,10), KD 4(6,11),
     *                                                       KD 5(6, 7),
     *                 KA 6(6,18), KB 6 (6,17), KC 6 (6,17), KD 6(6,18),
     *                 KA 7(6, 9), KB 7 (6, 8), KC 7 (6, 8), KD 7(6, 9),
     *                 KA 8(6, 9), KB 8 (6, 8), KC 8 (6, 8), KD 8(6, 9),
     *                 KA 9(6,12), KB 9 (6,11), KC 9 (6,11), KD 9(6,12),
     *                 KA10(6, 4), KB10 (6, 3), KC10 (6, 3), KD10(6, 4),
     *                 KA11(6,17), KB11 (6,17), KC11 (6,17), KD11(6,17),
     *                 KA12(6, 7), KB12 (6, 7), KC12 (6, 7), KD12(6, 7),
     *                 KA13(6, 4), KB13 (6, 3), KC13 (6, 3), KD13(6, 4),
     *                 KA14(6, 4), KB14A(6, 3), KC14A(6, 3), KD14(6, 4),
     *                             KB14B(6, 3), KC14B(6, 3),
     *                 KA15(6, 3), KB15 (6, 3), KC15 (6, 3), KD15(6, 3),
     *                 KA16(6, 7), KB16 (6, 6), KC16 (6, 6), KD16(6, 7),
     *                 KA17(6, 7), KB17 (6, 7), KC17 (6, 7), KD17(6, 7)

==== ercs07/emas-a/fbugs/ftests_f030.txt ====
      character*4 null,a,b
  20  format(1h ,a4)
      a=b
      write(6,20)a
      null=char(0)
      write(6,20)null
      write(6,10)
  10  format(1h ,'f030 passed')
      end

==== ercs07/emas-a/fbugs/ftests_f032.txt ====
      program f032
      write(6,10)
  10  format(1h ,'f032 passed')
      stop
      end
      SUBROUTINE DT03(KZ)
      INTEGER*4 STNME(20)
      INTEGER*2 REMSFT(10)
      DO 613 I=1,2
      DO 614 J=1,2
      WRITE (6,*)(STNME(REMSFT(J)*2+L),L=1,2)
  614 CONTINUE
  613 CONTINUE
      RETURN
      END


==== ercs07/emas-a/fbugs/ftests_f033.txt ====
      do  var i = 1, 10
      write(6,*) ' what is happening?!'
10    continue
      stop
      end

==== ercs07/emas-a/fbugs/imag.txt ====
      double precision d1,d2
      complex cx1
      complex*16 dcx1
      cx1=(2,3)
      dcx1=(2.2,3.3)
      r1=imag(cx1)
      r2=aimag(cx1)
      d1=imag(dcx1)
      d2=dimag(dcx1)
      print *,r1,r2
      print*,d1,d2
      stop
      end

==== ercs07/emas-a/fbugs/ftests_f036.txt ====
      character*100 cl
      character*21 dept(0:5)
      dept(1)='works'
      ireg=1
      cl(1:20)=dept(ireg)//' dept('
      write(6,10)
  10  format(1h ,'f036 passed')
      stop
      end

==== ercs07/emas-a/fbugs/jbf1.txt ====
      COMPLEX*16      CCORX(6)
      INTRINSIC       DCMPLX
      DO 80 I = 1, 5, 3
         CCORX(I) = DCMPLX(1.1,1.1)
        WRITE(6,*)CCORX(I)
   80 CONTINUE
      END

==== ercs07/emas-a/fbugs/ftests_f037.txt ====
      dimension a(10,10,10)
      a(11,11,11)=1
      write(6,100)a(11,11,11)
100   format (f4.0)
      stop
      end

==== ercs07/emas-a/fbugs/ftests_f038.txt ====
      if(x.lt.0)print *,'help 1'
      if(x.lt.-1)print *,'help 2'
      print *,' end of f038 test'
      stop
      end

==== ercs07/emas-a/fbugs/ftests_f041.txt ====
      I = 10
      GOTO (10,20) I
      GOTO (30,40) I - 9
 10   PRINT *, 'f041 failed'
  20  PRINT *, 'f041 failed'
 30   PRINT *, 'f041 passed'
      stop
 40   PRINT *, 'f041 failed'
      END

==== ercs07/emas-a/fbugs/ftests_f042.txt ====
      double precision x,y
      data y/x'3e2de00d1b71758e'/
      x=7.0d-3
      write(6,10)x,y
  10  format(d26.20,3x,d26.20)
      a = 9.4
      b = 9.5
      c = 9.6
      write(*,100)a,b,c
100   format(' ',3f5.0)
      write(6,20)
  20  format(1h ,'f042 passed if no spurious characters output')
      stop
      end

==== ercs07/emas-a/fbugs/ftests_f044.txt ====
      double precision exp
      exp= 10.**(-1.0)
      write(6,*) exp
      exp=10.d0**(-1.0)
      write(6,*)exp
      exp=10.d0**(-2.0)
      write(6,*)exp
      write(6,*)'f044 passed if lines 1&2=0.1 and line 3=0.01(approx)'
      stop
      end

==== ercs07/emas-a/fbugs/ftests_f045.txt ====
      print *,'hello'
      include 'ercs07:fbugs.ftests_f045a'
      print *,'back to main file'
      j=4
      print *,'now call nested includes'
      include 'ercs07:fbugs.ftests_f045b'
      print *,'back to main file again'
      if(j.ne.i) print *,'help - something is wrong !'
      print *,'test f045 complete'
      stop
      end

==== ercs07/emas-a/fbugs/ftests_f046.txt ====
      write(6,10)
  10  format(1h ,'this is format statement 1')
      stop
  10  format(1h ,'this is format statement 2')
      end

==== ercs07/emas-a/fbugs/ftests_f051.txt ====
      dimension m(-4:4)
      data (m(i),i=-4,4) /9*1/
      call sr(4,m)
      print *,'test f051 passed'
      end
      subroutine sr(n,m)
      dimension m(-n:n)
      write(6,*)(M(i),i=n,-n,-1)
      return
      end

==== ercs07/emas-a/fbugs/ftests_f054.txt ====
      character*60 line
      character*80 buffer
      character*8 word
      line =' '
      k=20
      line(k:k)='*'
      line(k*3:k*3)='*'
      write(6,'(a)')line
      buffer ='plot       res'
      i=4
      word=buffer(1:max(i,1))
      write(6,'(3a)') ' "',word,'"'
      print *,'f054 passed if above lines contain spaces between chars.'
      end

==== ercs07/emas-a/fbugs/ftests_f055.txt ====
      PROGRAM TEST
      CALL SUBR
      STOP
      END
      INCLUDE 'ftests_f055inc'

==== ercs07/emas-a/fbugs/tan2.txt ====
      x=0.0
      y=0.0
      z=atan2(x,y)
      print *,z
      end

==== ercs07/emas-a/fbugs/errdemo.txt ====
RUN CALCFY
Y 0 0 0 0 0 0
O L  C .IN
CELL          17.5870 18.7220 10.7250  90.0000  90.0000  90.0000
LATT A P
SYMM 1/2-X,-Y,1/2+Z
SYMM 1/2+X,1/2-Y,-Z
SYMM -X,1/2+Y,1/2-Z
ATOM   C1     0.59584 0.24587-0.10897            0.00037 0.00035 0.00063
UIJ    C1     0.03310 0.02859 0.03885 0.00372-0.00519-0.00620
SIGBIJ C1     0.00422 0.00439 0.00423 0.00370 0.00365 0.00378
ATOM   C2     0.58900 0.22080 0.01466            0.00038 0.00034 0.00061
UIJ    C2     0.04060 0.02316 0.04313 0.00998 0.00123 0.00352
SIGBIJ C2     0.00434 0.00420 0.00455 0.00368 0.00386 0.00381
ATOM   H2     0.54719 0.18115 0.04017            0.00038 0.00034 0.00061
UIJ    H2     0.06000
SIGBIJ H2     0.00000
ATOM   C3     0.63839 0.24947 0.10158            0.00038 0.00038 0.00068
UIJ    C3     0.02542 0.04057 0.04613 0.00512 0.00725 0.00278
SIGBIJ C3     0.00404 0.00477 0.00455 0.00402 0.00374 0.00395
ATOM   C4     0.69154 0.30127 0.06839            0.00037 0.00039 0.00061

==== ercs07/emas-a/fbugs/qext.txt ====
      d1=5.6
      rr1=qext(d1)
      print *,rr1
      stop
      end

==== ercs07/emas-a/fbugs/fnota.txt ====

      i = 14
      j = 1
      write(*,*)inot(i)
      write(*,*)ishr(i,j)
      stop
      end

==== ercs07/emas-a/fbugs/ftests_test1.txt ====
      integer*2 i
      parameter (i=-1)
      print *,i
      print *,'test1 passed, if above line = -1'
      end

==== ercs07/emas-a/fbugs/ftests_f055inc.txt ====
      SUBROUTINE SUBR
      A=1
      print *,'f055 passed'
      RETURN
      END

==== ercs07/emas-a/fbugs/ftests_test2.txt ====
      a=1.1
      b=2.2
      print *,a,b
      call f06(a,b)
      print *,b,a
      print *,'test2 passed if both lines the same'
      end
      subroutine f06(x,z)
      temp=x
      x=z
      z=temp
      return
      end

==== ercs07/emas-a/fbugs/ctime.txt ====
      character*8 tim,ebctim
      dimension i(2),j(2)
      equivalence(tim,i),(ebctim,j)
      call ctime(tim)
      print *,tim
      call icl9cetime(ebctim)
      print *,ebctim
      print *,i,j
      end

==== ercs07/emas-a/fbugs/fnots.txt ====

      i = 14
      j = 1
      write(*,*)not(i)
      write(*,*)ishft(i,j)
      stop
      end

==== ercs07/emas-a/fbugs/bugpd_includes.txt ====
      PROGRAM TEST
* INCLUDE START
      INCLUDE 'bugpd_INCLUDE'
* END OF INCLUDE
*
* INCLUDE START
      INCLUDE 'bugpd_INCLUDE'
* END OF INCLUDE
      STOP
      END

==== ercs07/emas-a/fbugs/open.txt ====
      integer a(5)
      open(unit=9,file='junk',status='new',form='unformatted')
      do 10 i=1,5
      a(i)=i+i
  10  continue
      write(9)(a(i),i=1,5)
      end

==== ercs07/emas-a/fbugs/ftests_f045a.txt ====
      print *,'this is include file f045a'

==== ercs07/emas-a/fbugs/ftests_f045b.txt ====
      print *,'this is a nested include file, level 1'
      print *,'calling the next include level'
      include 'ftests_f045c'
      print *,'back to level 1'

==== ercs07/emas-a/fbugs/ftests_f045c.txt ====
      print *,'this is include file, level 2'
      i=j

==== ercs07/emas-a/fbugs/inc1.txt ====
      inclev=0
      include 'inc2'
      include 'inc2'
      include 'inc2'
      include 'inc2'
      include 'inc2'
      include 'inc2'
      include 'inc2'
      include 'inc2'
      include 'inc2'
      include 'inc2'
      include 'inc2'
      include 'inc2'
      include 'inc2'
      include 'inc2'
      include 'inc2'
      include 'inc2'
      include 'inc2'
      include 'inc2'
      print *,'back to main prog'
      stop

==== ercs07/emas-a/fbugs/inc2.txt ====
      inclev=inclev+1
      print *,inclev

==== ercs07/emas-a/fbugs/inc3.txt ====
      inclev=0
      include 'inc4'
      print *,'back to main prog'
      stop
      end

==== ercs07/emas-a/fbugs/inc4.txt ====
      inclev=inclev+1
      print *,'inc4 - inclev =',inclev
      include 'inc4'
      print *,'back to inc4'

==== ercs07/emas-a/fbugs/inc5.txt ====
      inclev=inclev+1
      print *,'inc5 - inclev =',inclev
      include 'inc4'
      print *,'back to inc5'

==== ercs07/emas-a/fbugs/imp1.txt ====
%begin
%integer i,j
i=j
%endofprogram

==== ercs07/emas-a/fbugs/celabs.txt ====
      program labs
      call labels
      do 10 i=1,5
      j=i*2
      if( j.gt.10) goto 20
  10  continue
      goto 30
  20  call sub1
      goto 40
  30  print*,j
  40  stop
      end
      subroutine sub1
      return
      end

==== ercs07/emas-a/fbugs/bugpd_include.txt ====
      A = 1
      B = 2
      C = 3
      WRITE(*,*) A, B, C

==== ercs07/emas-a/fbugs/osbugs.txt ====
parm nocomments,nowarnings
/* mb012 - misleading error report
f77 ercs07:fbugs.ostests_mb012,mb012y,.out
run mb012y
destroy mb012y

/* f035 - illegal use of hollerith constant
f77 ercs07:fbugs.ostests_f035,y,.out

/*f047 - use of undefined variables, due to IMPLICIT NONE not faulted
f77 ercs07:fbugs.ostests_f047,y,.out
run y


==== ercs07/emas-a/fbugs/ostests_f035b.txt ====
      character*5 alpha,adat
      data adat/'dummy'/
      read(1,100) alpha
  100 format(a5)
      if (alpha .eq. 5hdummy) write(8,200)
      if (alpha .ne. adat) write(8,300)
      stop
  200 format(5x,'OK')
  300 format(5x,'not ok')
      end

==== ercs07/emas-a/fbugs/f77diag.txt ====
      integer i,j,k,l
      real a,b,c
      i=1
      a=1.0
      j=k
      stop
      end

==== ercs07/emas-a/fbugs/int.txt ====
      double precision d1
      complex cx1
      complex*16 dcx1
      r1=5.8
      i= int(r1)
      j=ifix(r1)
      print *,i,j
      d1=5.8
      i=int(d1)
      j=idint(d1)
      print *,i,j
      cx1=(1.1,2.2)
      i=int(cx1)
      print *,i
      dcx1=(1.1,2.2)
      i=int(dcx1)
      print *,i
      stop
      end

==== ercs07/emas-a/fbugs/xmain77.txt ====
C     PROGRAM EDEX
C
C     EDEX MAIN PROGRAM
C
C-IV- INTEGER*4 NDNAME
      CHARACTER NDNAME*4,MCI
      DOUBLE PRECISION RA,RMV,RVAR11
C -S- REAL RA,RMV,RVAR11
      COMMON/AREAL/ RMV,RVAR11,RA(16382)
      COMMON/ARAPTS/ LDATA,LSPEFF,LSS,LPART,LTPART,LANOVA,LVAR,
     .LMEAN,LRMEAN,LXX,LMVR,LENDRA,LEV2RA,LEV3RA,LMAXRA,
     .LNAME,LLEVEL,LLABST,LSPFPT,LSECOF,LCODE,LFCHEK,LCHECK,LHALT,
     .LINDEX,LROINT,LLABEL,LLIST,LAID,LSTART,LERROR,LXXIND,LDF,LMVIND,
     .LTABLE,LADJIT,LAJITC,LENDIA,LEV2IA,LEV3IA,LMAXIA,IA(2048)
      COMMON/CONSTS/
     .NSHRI,MISTAK,NUNITS,NVSTOR,NBLOCK,NTREAT,NEFFEC,NNAMES,NFACTO,
     .MAXLN,MAXWID,NWIDTH,NDATAL,NDFLAG(3),NCOVAR,NSPACE,NTERMS,NDFS,
     .NEMSQS,NVARIA,NMVUNI,NRESID,NINSER,NADJUS,NTABLE,NSSSET,
     .NTER,KSTAR,KDOT,KOMMA,KSPACE,NLINE,KOPER(4),
     .LBRACK,KBRACK,IQUAL,KZERO,KNINE,LETERA,LETERC,LETERD,LETERE,
     .LETERF,LETERM,LETERN,LETERP,LETERR,LETERS,LETERV,LETERZ

==== ercs07/emas-a/fbugs/exp1.txt ====
      r=10.0e-9
      i=10**(-9)
      j=0**0
      write(6,*)i,j
      stop
      end

==== ercs07/emas-a/fbugs/bugpd_tlista.txt ====
Source: ERCN85:INCLTEST         Compiled: 10/09/87   15.58.14
Object: ERCN85:T#OBJECT

Parms set: NOWARNINGS,XREF,MAP



     Edinburgh Amdahl Fortran77 Compiler Version 2.13


     1           PROGRAM TEST
     2           CALL SUBR
     3           STOP
     4           END



Identifier          Attributes                               References

SUBR        external subroutine                         2
TEST        program                                     1

==== ercs07/emas-a/fbugs/bugpd_tlistb.txt ====
Source: ERCN85:INCLUDES         Compiled: 10/09/87   15.57.10
Object: ERCN85:T#OBJECT

Parms set: NOWARNINGS,XREF,MAP



     Edinburgh Amdahl Fortran77 Compiler Version 2.13


     1           PROGRAM TEST
     2     * INCLUDE START
     3           INCLUDE 'INCLUDE'
     4     * END OF INCLUDE
     5     *
     6     * INCLUDE START
     1           A = 1
     2           B = 2
     3           C = 3
     4           WRITE(*,*) A, B, C
     7           INCLUDE 'INCLUDE'

==== ercs07/emas-a/fbugs/erfc.txt ====
      y=erfc(2.2)
      print *,y
      end

==== ercs07/emas-a/ftntriads4.txt ====
! 20/02/86 - comment out code for SW(ARREL) in PRINT TRIAD
! 22/01/86 - insert FPTOS, change PRINT TR for type 4 STMT triads
!          - include updated ftn_fmts files
! 14/01/85 - conditional compilation
! 28/11/84 - include cfort_ files for common version
! 18/09/84 - insert switch for STFNID in ANAL and set QUAL(24) to "STFNID"
! 10/07/84 - new version of targ_fptos
! 03/07/84 - put FPTOS in an include file
!          - set up string REG1 in tagr_taget & substitute for "reg-1"
! 21/03/84 - amend arrays OPVALS, ST, SZTY & REG
! 19/03/84 - change some address increments to W! etc.
! 08.03.84 - change INTEGER mapping increments to W1
! 28/02/84 - FPTOS inserted
!*
! 01/11/83 copied from ercs06.rel90_optextb15
!*
%CONSTINTEGER OPSYS=0
!  =0  (Emas  ISO)
!  =1  (VME  EBCDIC)
!*
%include "ercs01:ftn_ht"

==== ercs07/emas-a/orgopt_op48.txt ====
!
%OWNINTEGER TRACE=0
%INCLUDE "host_host"
!
%INCLUDE "targ_target"
!
%INCLUDE  "bits_fmts"
!
%include "bits_subfmt"
!
%INCLUDE "bits_consts"
!
%INCLUDE "bits_triadops"
!
%INCLUDE "bits_com"
!
%EXTERNALROUTINESPEC OP4 RESTORE(%INTEGER ASUBINFO)
%EXTERNALROUTINESPEC OP4 RESTORETR
%EXTERNALROUTINESPEC OP4 SETUP(%INTEGER ASUBINFO)
%EXTERNALINTEGERFNSPEC OP4 NEWRD(%INTEGER ARGID)
%EXTERNALINTEGERFNSPEC GET PLAB

==== ercs07/emas-a/ftn2opt1.txt ====
! 02/12/85 - taken from op2p47, new include files incorporated
! 07/08/85 - include test for CHARMODE in ARR/DEFARR triad in BMOVECHECK
! 26/06/85 - line 976 0f LOOPBUILD, map on to next AR block
!          - line 812 of LOOPBUILD, map on to current CL block
! 19/09/84 - clear relevant bit in CLOOPDEF if ASMT/ASGN triad backward moved
!          - line 1510 corrected to VAL1=1, line 1515 moved back 7 lines
! 28/08/84 - correction to BTBITS for CMNCOORDS(1)
! 02/07/84 - change OPTSAB(CMPLX) entry to X'06'
! 11/04/84 - don't word align FREETABS in BMOVHECK
! 10/04/84 - scaling correction in bmovecheck
! 31/01/84 - UPDATE OPSTAB FOR DCMPLX & INTRIN
! 18/01/84 - ADJUST BIT STRIP ADDRESSES
! 17/01/84 - MAKE CALLS OF CREATETAB CONSISTTENT
! 23/11/83 call EDUMPTRACE in OP2A; set up LDUMPTRACE & BMTRACE
! 22/11/82 call CDUMPTRACE in OP2A
! 27/10/83 COPIED FROM ERCS06.REL90_OP2B13
!*
%INCLUDE "ftn_ht"
%INCLUDE "ftn_consts1"
!*
%INCLUDE "ftn_fmts2"

==== ercs07/emas-a/optfiles_optext48.txt ====
! 10/12/85 - taken from optextb47, new include files incorporated
! 18/09/84 - insert switch for STFNID in ANAL and set QUAL(24) TO "STFNID"
! 27/08/84 - change PRINT TR for type 4 STMT triads
! 10/07/84 - new version of targetpnx_fptos
! 03/07/84 - put FPTOS in an include file
!          - set up string REG1 in targ_target & substitute for "reg-1"
! 21/03/84 - amend arrays OPVALS, ST, SZTY & REG
! 19/03/84 - change some address increments to W! etc.
! 08.03.84 - change INTEGER mapping increments to W1
! 28/02/84 - FPTOS inserted
!* modified 14/11/83
!*
! 01/11/83 copied from ercs06.rel90_optextb15
!*
%CONSTINTEGER OPSYS=0
!  =0  (Emas  ISO)
!  =1  (VME  EBCDIC)
!*
%INCLUDE "ERCS01:ftn_ht"
!* 
%INCLUDE "ERCS01:ftn_consts1"

==== ercs07/emas-a/optfiles_op49.txt ====
! 09/12/85 - taken from op48, new include files inserted
!
%OWNINTEGER TRACE=0
!
%INCLUDE "ercs01:ftn_ht"
!
%INCLUDE "ercs01:ftn_consts1"
!
%INCLUDE  "ercs01:ftn_fmts2"
!
%INCLUDE "ercs01:ftn_triadops1"
!
%EXTERNALROUTINESPEC OP4 RESTORE(%INTEGER ASUBINFO)
%EXTERNALROUTINESPEC OP4 RESTORETR
%EXTERNALROUTINESPEC OP4 SETUP(%INTEGER ASUBINFO)
%EXTERNALINTEGERFNSPEC OP4 NEWRD(%INTEGER ARGID)
%EXTERNALINTEGERFNSPEC GET PLAB
%EXTERNALINTEGERFNSPEC OP4 NEWDICT(%RECORD(RESF)%NAME RES)
%EXTERNALROUTINESPEC NEWTEMP(%RECORD(RESF)%NAME R,%INTEGER M,USE)
%EXTERNALINTEGERFNSPEC NEWTRIADR(%INTEGER OP,RES1W,RES2W)
%EXTERNALINTEGERFNSPEC NEWTRIAD2(%INTEGER OP,SLN,QOPD2,OPD2,VAL2)

==== ercs07/emas-a/pptests_sorta.txt ====
program sort(output);

  const n = 1000;

  var i,j,k,m: integer;
      a: array [1 .. n] of integer;

  begin
    for k := 1 to n do a[k] := k;
    for i := 1 to n - 1 do
      begin
        k := i;
        m := a[i];
        for j := i + 1 to n do
          if a[j] > m
          then
            begin
              k := j;
              m := a[j]
            end;
        a[k] := a[i];

==== ercs07/emas-a/orgopt_op147.txt ====
! 07/11/85 - set DEF bit if mode of opd1 is char, at SWTR(IOSPEC)
! 3//6/85  - insert check for POSLEB at SKIP3 in TOPOLOGY
! 31/10/84 - set NEWBLFLAG=1 at SWTR(IOSPEC)
! 08/10/84 - remove call to GENBLOCK
! 19/07/84 - GENBLOCK  corrected to insert a new label in 1st triad
!            of new block if required
!          - LPPTR now deals with LEBs for multiple loops
! 02/07/84 - at SWTR(ASMT) set USE bit for opd2 before DEF bit for opd1
!            set NEWBLFLAFG in IOSPEC switch
! 02/04/84 - new code in BLOCKS to deal with list-directed I/O
! 31/01/84 - UPDATE SETUSE FOR DCMPLX & INTRIN
! 31/01/84 - NEW TRIADS DCMPLX, INTRIN, (IFUN)
! 17/01/84 - REMAP ON TO A TABLE IF ITS FULL ROUTINE HAS BEEN CALLED
! 12/01/84 - MAKE BIT STRIP ADDRESSES RELATIVE IN A BLOCK ENTRY
! 31/10/83 COPIED FROM ERCS06.REL8002_OP1B15
!*
%INCLUDE "host_host"
!*
%INCLUDE "targ_target"
!*
!%INCLUDE "pf_version"

==== ercs07/emas-a/optfiles_eelim45.txt ====
! 02/12/85 - taken from eelimp45, new include files incorporated
! 21/08/95 - alter TRELIM to inhibit expression elimination of ARR triads
! 29/11/84 - correct TRELIM for TOCHAR and CONJG
! 31/01/84 - UPDATE TRELIM FOR DCMPLX & INTRIN
! 18/01/84 - BIT STRIP ADDRESSES ARE NOW RELATIVE TO ABLOCKS
! 23/11/83 set up TRACE flag and EDUMPTRACE routine
! 27/10/83 - copied from ERCS06.REL8002_eelimb7
%INCLUDE "ercs01:ftn_ht"
!*
%INCLUDE "ERCS01:ftn_fmts2"
%INCLUDE "ercs01:ftn_optspecs1"
%INCLUDE "ercs01:ftn_consts1"
%INCLUDE "ercs01:ftn_optfmts1"
!
%INCLUDE "ercs01:ftn_triadops1"
!*
%OWNINTEGER TRACE=0
!
%OWNINTEGER ELFLAG,ELIMEND,RWFLAG,HVAL
%OWNINTEGER COORD1,COORD2,MODE,MATCH
!*

==== ercs07/emas-a/ftn4opt1.txt ====
! 09/12/85 - taken from op48, new include files inserted
!
%OWNINTEGER TRACE=0
!
%INCLUDE "ftn_ht"
!
%INCLUDE "ftn_consts1"
!
%INCLUDE  "ftn_fmts2"
!
%INCLUDE "ftn_triadops1"
!
%EXTERNALROUTINESPEC OP4 RESTORE(%INTEGER ASUBINFO)
%EXTERNALROUTINESPEC OP4 RESTORETR
%EXTERNALROUTINESPEC OP4 SETUP(%INTEGER ASUBINFO)
%EXTERNALINTEGERFNSPEC OP4 NEWRD(%INTEGER ARGID)
%EXTERNALINTEGERFNSPEC GET PLAB
%EXTERNALINTEGERFNSPEC OP4 NEWDICT(%RECORD(RESF)%NAME RES)
%EXTERNALROUTINESPEC NEWTEMP(%RECORD(RESF)%NAME R,%INTEGER M,USE)
%EXTERNALINTEGERFNSPEC NEWTRIADR(%INTEGER OP,RES1W,RES2W)
%EXTERNALINTEGERFNSPEC NEWTRIAD2(%INTEGER OP,SLN,QOPD2,OPD2,VAL2)

==== ercs07/emas-a/ftncelim1.txt ====
! 20/02/86 - comment out code after temp. return in OPTCVT
! 02/12/85 - taken from conelim43, new include files incorporated
! 24/09/84 - check for PROCID line 780 of OPTNEG
! 09/08/84 - correction to OPTDIV, line 672 moved to line 681
! copied from pnxrel01_conelimp41
! 13/06/84 - delete use of RSUB as op to CONOP
! 12/03/84 only generate MOO triad if target is 2900
! 22/11/83 set up TRACE flag and CDUMPTRACE routine
! 27/10/83 copied from ERCS06.REL90_CONELIMB12
!*
%INCLUDE "ftn_ht"
!*
%INCLUDE "ftn_consts1"
!*
%INCLUDE "ftn_fmts2"
!*
%INCLUDE "ftn_optspecs1"
!*
%INCLUDE "ftn_optfmts1"
!
%INCLUDE "ftn_triadops1"

==== ercs07/emas-a/pptests_test1a.txt ====
program test1(output);
var a,b:integer;
    rec1: record a,b:integer; end;
    r1,r2:real;
    b1,b2:boolean;
begin
a:=-3;
rec1.b:=2;
b:=rec1.b*a;
r1:=a*b+b;
r2:=-r1;
b1:=a>b;
if b1 then b2:=r1<r2;
writeln(a,b);
writeln(r1,r2);
writeln(b1,b2)
end.

==== ercs07/emas-a/orgopt_optext47.txt ====
! 18/09/84 - insert switch for STFNID in ANAL and set QUAL(24) TO "STFNID"
! 27/08/84 - change PRINT TR for type 4 STMT triads
! 10/07/84 - new version of targetpnx_fptos
! 03/07/84 - put FPTOS in an include file
!          - set up string REG1 in targ_target & substitute for "reg-1"
! 21/03/84 - amend arrays OPVALS, ST, SZTY & REG
! 19/03/84 - change some address increments to W! etc.
! 08.03.84 - change INTEGER mapping increments to W1
! 28/02/84 - FPTOS inserted
!* modified 14/11/83
!*
! 01/11/83 copied from ercs06.rel90_optextb15
!*
%CONSTINTEGER OPSYS=0
!  =0  (Emas  ISO)
!  =1  (VME  EBCDIC)
!*
%INCLUDE "host_host"
!* 
%INCLUDE "targ_target"
!*

==== ercs07/emas-a/pptests_test2a.txt ====
program test1(output);
var a,b:integer;
procedure one;
var rec1: record a,b:integer; end;
    r1,r2:real;
    b1,b2:boolean;
begin
a:=-3;
b:=rec1.b*a;
r1:=a*b+b;
r2:=-r1;
b1:=a>b;
if b1 then b2:=r1<r2;
writeln(a,b);
writeln(r1,r2);
writeln(b1,b2);
end;

begin
one;
end.

==== ercs07/emas-a/pptests_test3a.txt ====
program test3(output);
var g1:integer;

procedure one(procedure a);
begin
writeln('proc one');
a;
end;

procedure two(procedure b);
begin
writeln('proc two');
one(b);
end;

procedure three;
begin
writeln('proc three');
g1:=3;
end;


==== ercs07/emas-a/pptests_test4a.txt ====
program test4(output);
var a1:array[2..10,1..5] of integer;

procedure one(var a:array[l..u:integer]of integer);
begin
a[l]:=u;
a[u]:=l;
writeln(a[l],a[u]);
end;

procedure two(var b:array[l1..u1:integer;l2..u2:integer]of integer);
begin
one(b[l1]);
end;

begin
two(a1);
writeln(a1[2,1],a1[2,5])
end.

==== ercs07/emas-a/pptests_test5a.txt ====
program test5(output);
var a,b:integer;
procedure five(var a,b:integer);extern;

begin
writeln('calling proc five');
five(a,b);
end.


==== ercs07/emas-a/orgopt_eelim44.txt ====
! 21/08/95 - alter TRELIM to inhibit expression elimination of ARR triads
! 29/11/84 - correct TRELIM for TOCHAR and CONJG
! 31/01/84 - UPDATE TRELIM FOR DCMPLX & INTRIN
! 18/01/84 - BIT STRIP ADDRESSES ARE NOW RELATIVE TO ABLOCKS
! 23/11/83 set up TRACE flag and EDUMPTRACE routine
! 27/10/83 - copied from ERCS06.REL8002_eelimb7
%INCLUDE "host_host"
%INCLUDE "targ_target"
%INCLUDE "pf_version"
!*
%INCLUDE "bits_fmts"
%INCLUDE "bits_optspecs"
%INCLUDE "bits_consts"
%INCLUDE "bits_optfmts"
!
%INCLUDE "bits_triadops"
!*
%OWNINTEGER TRACE=0
!
%OWNINTEGER ELFLAG,ELIMEND,RWFLAG,HVAL
%OWNINTEGER COORD1,COORD2,MODE,MATCH

==== ercs07/emas-a/optfiles_oplist49.txt ====
! 13/12/85 - copied from oplistb48
!          - new SW(GLALIT) at SW(STKLIT) in GEN (from oplistp46)
!          - new include files incorporated
! 22/10/84 - coorection to OUTPUTTEXT for continuation lines in OPT4
! 15/10/84 - define external routine RESET OPLIST
! 09/10/84 - change OUTPUTLINE to print global line number LINES
! 18/09/84 - insert switch for STFNID in GEN and delete array QUAL
! 24/07/84 set OPSYS 0
! 23/07/84 amend SW(CGT) in FORMLINE to print private labels
! 10/07/84 new version of targetpnx_fptos
! 05/07/84 insert switch SW(INTRIN) in FORMLINE
! 03/07/84 make FPTOS a string function & put in an include file
!          set up string REG1 in targ_target & substitute for "reg-1"
!          remove OPVALS for LOADB & STOREB
!          define INTRINFNS to output new INTRIN fns
! 21/03/84 amend arrays SW, RTOL, ENDS, OPVALS. Delete ST & SZTY & REG
! 19/03/84 add in ADICT on calls to FPTOS
! 08/03/84 change INTEGER mapping increments to W1 etc.
! 28/02/84 FPTOS inserted
! 01/10/1/83 copied from ERCS06.REL90_OPLISTB36
!*

==== ercs07/emas-a/orgopt_op247.txt ====
! 07/08/85 - include test for CHARMODE in ARR/DEFARR triad in BMOVECHECK
! 26/06/85 - line 976 0f LOOPBUILD, map on to next AR block
!          - line 812 of LOOPBUILD, map on to current CL block
! 19/09/84 - clear relevant bit in CLOOPDEF if ASMT/ASGN triad backward moved
!          - line 1510 corrected to VAL1=1, line 1515 moved back 7 lines
! 28/08/84 - correction to BTBITS for CMNCOORDS(1)
! 02/07/84 - change OPTSAB(CMPLX) entry to X'06'
! 11/04/84 - don't word align FREETABS in BMOVHECK
! 10/04/84 - scaling correction in bmovecheck
! 31/01/84 - UPDATE OPSTAB FOR DCMPLX & INTRIN
! 18/01/84 - ADJUST BIT STRIP ADDRESSES
! 17/01/84 - MAKE CALLS OF CREATETAB CONSISTTENT
! 23/11/83 call EDUMPTRACE in OP2A; set up LDUMPTRACE & BMTRACE
! 22/11/82 call CDUMPTRACE in OP2A
! 27/10/83 COPIED FROM ERCS06.REL90_OP2B13
!*
%INCLUDE "host_host"
%INCLUDE "targ_target"
%INCLUDE "pf_version"
!*
%INCLUDE "bits_fmts"

==== ercs07/emas-a/f77rel/nbsfruns_f77opt.txt ====
resetloader
disconnect .all
#monload 1
parm opt
DEFINE 5,ERCS07:f77rel.NBSFTESTS_PART01DATA
F77 ERCS07:f77rel.NBSFTESTS_PART01      ,FY
RUN FY
#n
F77 ERCS07:f77rel.NBSFTESTS_PART02      ,FY
RUN FY
F77 ERCS07:f77rel.NBSFTESTS_PART03      ,FY
RUN FY
F77 ERCS07:f77rel.NBSFTESTS_PART04      ,FY
RUN FY
F77 ERCS07:f77rel.NBSFTESTS_PART05      ,FY
RUN FY
F77 ERCS07:f77rel.NBSFTESTS_PART06      ,FY
RUN FY
F77 ERCS07:f77rel.NBSFTESTS_PART07      ,FY
RUN FY
F77 ERCS07:f77rel.NBSFTESTS_PART08      ,FY

==== ercs07/emas-a/f77rel/srce200_fanal4a.txt ====
!                                                               fanal4a
! 15/09/87 - insert code so that INCLUDE works for modules
!                                                           fanal3a
! 20/07/87 - line 2754,test for mode <=1
!          - remove line 3734
! 01/06/87 - insert line 3734 at PI(103)
!                                                           fanal2a
! 09/04/87 - include contents of asyn71 instead of ftn_asynt70
!                                                           fanal1a
!  25/02/87 - initialise ASS CHECKLIST in Analinit
! 04/12/86 - replace SAVE & RESTORE function by in-line code
!                                                           fanal1
! 16/11/86 - incorporate changes up to ftnanal28
! 23/09/86 - insert include files
!                                                           ftnanal27
! 16/09/86 - allow relops between logicals
!                                                           ftnanal26
! 14/09/86 - reject BYTE if Gould
! 09/08/86 - make CONJG generic
! 07/09/86 - add Gould special intrinsics
! 06/09/86 - default reals to r8

==== ercs07/emas-a/f77rel/srce200_fsred1.txt ====
!                                                                   fsred1
! 07/12/86 - insert include files
!                                                                   ftnsred6
! 11/11/86 - correction to mode of srtemps
!                                                                   ftnsred5
! 11/11/86 - allow int2 vars to be srtemps
!          - scale QTOUS and RES in Subtemp and Scan to equiv I2 and I4
!          - also in Examine and Reduce
!                                                                   ftnsred4
! 06/11/86 - use ftn_consts4 to redefine size of usef
!                                                                   ftnsred2
! 10/07/86 - in EXAMINE leave TOUS + Lit undisturbed
! 13/12/85 - copied from sred42
!          - new include files incorporated
! 05/06/84 reject sr vars which have neglits floating around (EXAMINE)
! 04/06/84 change format of USEF & size of TINITSZ
!          local variables inserted in print routines
! 22/01/84 BIT STRIP ADDRESSES NOW RELATIVE TO ABLOCKS
! 30/10/83 COPIED FROM ERCS06.REL90_SREDB12
!*
%INCLUDE "ftn_ht"

==== ercs07/emas-a/f77rel/fcvs0_comp0.txt ====
#MON
F77PARM VAX
FORTRAN ERCS13:FCVS0_FM10,TMP,.OUT
FORTRAN ERCS13:FCVS0_FM11,TMP,.OUT
FORTRAN ERCS13:FCVS0_FM110,TMP,.OUT
FORTRAN ERCS13:FCVS0_FM111,TMP,.OUT
FORTRAN ERCS13:FCVS0_FM12,TMP,.OUT
FORTRAN ERCS13:FCVS0_FM13,TMP,.OUT
FORTRAN ERCS13:FCVS0_FM14,TMP,.OUT
FORTRAN ERCS13:FCVS0_FM2,TMP,.OUT
FORTRAN ERCS13:FCVS0_FM3,TMP,.OUT
FORTRAN ERCS13:FCVS0_FM30,TMP,.OUT
FORTRAN ERCS13:FCVS0_FM31,TMP,.OUT
FORTRAN ERCS13:FCVS0_FM32,TMP,.OUT
FORTRAN ERCS13:FCVS0_FM33,TMP,.OUT
FORTRAN ERCS13:FCVS0_FM34,TMP,.OUT
FORTRAN ERCS13:FCVS0_FM35,TMP,.OUT
FORTRAN ERCS13:FCVS0_FM36,TMP,.OUT
FORTRAN ERCS13:FCVS0_FM37,TMP,.OUT
FORTRAN ERCS13:FCVS0_FM38,TMP,.OUT
FORTRAN ERCS13:FCVS0_FM39,TMP,.OUT

==== ercs07/emas-a/f77rel/srce200_xcontrld7c.txt ====
!                                                                xcontrld7c
! 28/07/87 - new version no. 2.13d
!                                                    xcontrl7a
! 02/07/87 - new version no. 2.12
!                                                             xcontrld7
! 30/06/87 - in Icl9ceibmf77, set OPT1 bit in OPT1, if Parm opt2; set OPT bit in
!          - Control, if Parm Opt1; set minbound bit in F77parm, if not Parm OPT
!  09/06/87 - change BSIZE to 128
!              new version no. 2.11
!                                                         xcontrl6
! 29/05/87 - new code in SOURCELINE & SELECTINCLUDE, define new own
!          - variables; new dynamic specs
!          - set OPT2 for Include listing
! 06/05/87 - define Get Space and own integers gsconad, gsfindex, gsflen
!                                                          xcontrl5d
! 13/04/87 - change vsn to 2.10
!                                                                     xcontrl5b
! 28/04/87 - change version t. 2.08
!                                                                    xcontrl5a
! 06/04/87 - change version to 2.07
!                                                       xcontrl5

==== ercs07/emas-a/f77rel/fcvs0_obey0.txt ====
PARM NOCHECK
#MON
F77PARM VAX
DEFINE 6,.OUT
F77P ERCS02.FCVS0_FM10,Y
RUN Y
F77P ERCS02.FCVS0_FM11,Y
RUN Y
F77P ERCS02.FCVS0_FM110,Y
DEFINE 5,ERCS02.FCVS0_FM110D
RUN Y
F77P ERCS02.FCVS0_FM111,Y
DEFINE 5,ERCS02.FCVS0_FM111D
RUN Y
F77P ERCS02.FCVS0_FM12,Y
RUN Y
F77P ERCS02.FCVS0_FM13,Y
RUN Y
F77P ERCS02.FCVS0_FM14,Y
RUN Y
F77P ERCS02.FCVS0_FM2,Y

==== ercs07/emas-a/f77rel/srce200_f1opt1.txt ====
!                                                            f1opt1
! 07/12/86 - copy of ftn1opt3
!          - insert include files
! 05/07/86 - avoid setting use bit for CVT when also assignment (complex ops)
! 02/12/85 - taken from op147,new include files incorporated
! 07/11/85 - set DEF bit if mode of opd1 is char, at SWTR(IOSPEC)
! 3//6/85  - insert check for POSLEB at SKIP3 in TOPOLOGY
! 31/10/84 - set NEWBLFLAG=1 at SWTR(IOSPEC)
! 08/10/84 - remove call to GENBLOCK
! 19/07/84 - GENBLOCK  corrected to insert a new label in 1st triad
!            of new block if required
!          - LPPTR now deals with LEBs for multiple loops
! 02/07/84 - at SWTR(ASMT) set USE bit for opd2 before DEF bit for opd1
!            set NEWBLFLAFG in IOSPEC switch
! 02/04/84 - new code in BLOCKS to deal with list-directed I/O
! 31/01/84 - UPDATE SETUSE FOR DCMPLX & INTRIN
! 31/01/84 - NEW TRIADS DCMPLX, INTRIN, (IFUN)
! 17/01/84 - REMAP ON TO A TABLE IF ITS FULL ROUTINE HAS BEEN CALLED
! 12/01/84 - MAKE BIT STRIP ADDRESSES RELATIVE IN A BLOCK ENTRY
! 31/10/83 COPIED FROM ERCS06.REL8002_OP1B15
!*

==== ercs07/emas-a/f77rel/fcvs4_fm900.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM900               FMTRWF - (021)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REFS
C*****    TO TEST SIMPLE FORMAT AND FORMATTED DATA              12.9.5.2
C*****    TRANSFER STATEMENTS IN EXTERNAL SEQUENTIAL I/O SO     13.1.1
C*****    THAT THESE FEATURES MAY BE USED IN OTHER TEST         12.8.1
C*****    PROGRAM SEGMENTS FOR DOUBLE PRECISION AND COMPLEX
C*****    DATA TYPES.
C*****  RESTRICTIONS OBSERVED                                   12.8.2
C*****  *  ALL FORMAT STATEMENTS ARE LABELED                    13.1.1
C*****  *  H AND X DESCRIPTORS ARE NEVER REPEATED               13.2.1
C*****  *  FOR W.D DESCRIPTORS, D IS ALWAYS SPECIFIED AND
C*****     W IS EQUAL TO OR GREATER THAN D
C*****  *  FIELD WIDTH IS NEVER ZERO                            13.2.1
C*****  *  IF AN I/O LIST SPECIFIES AT LEAST ONE LIST ITEM      13.3
C*****     AT LEAST ONE REPEATABLE EDIT DESCRIPTOR MUST EXIST
C*****     IN THE FORMAT SPECIFICATION
C*****  *  ITEMS IN I/O LIST CORRESPOND TO EDIT DESCRIPTORS     13.3

==== ercs07/emas-a/f77rel/fcvs4_fm901.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM901               AFMTF - (023)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REFS
C*****    TO TEST SIMPLE FORMAT AND FORMATTED DATA              12.9.5.2
C*****    TRANSFER STATEMENTS IN EXTERNAL SEQUENTIAL I/O SO     13.1.1
C*****    THAT THESE FEATURES MAY BE USED IN OTHER TEST         12.8.1
C*****    PROGRAM SEGMENTS FOR CHARACTER DATA TYPES.            4.8
C*****    TO TEST READ AND WRITE OF SUBSTRINGS.                 5.7
C*****
C*****  RESTRICTIONS OBSERVED
C*****  *  ALL FORMAT STATEMENTS ARE LABELED                    12.8.2
C*****  *  H AND X DESCRIPTORS ARE NEVER REPEATED               13.1.1
C*****  *  FIELD WIDTH IS NEVER ZERO                            13.5.11
C*****  *  IF AN I/O LIST SPECIFIES AT LEAST ONE LIST ITEM      13.3
C*****     AT LEAST ONE REPEATABLE EDIT DESCRIPTOR MUST EXIST
C*****     IN THE FORMAT SPECIFICATION.
C*****  *  ITEMS IN I/O LIST CORRESPOND TO FORMAT DESCRIPTORS   13.3
C*****

==== ercs07/emas-a/f77rel/fcvs4_fm907.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM907
C*****                       LSTDO2 - (373)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****    TEST LIST DIRECTED OUTPUT                             13.6
C*****    DOUBLE PRECISION AND COMPLEX DATA TYPES INCLUDED      12.4
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041

==== ercs07/emas-a/f77rel/cmpopt216.txt ====
parm opt
imp srce200_f1opt1,f1opt1y
imp srce200_f2opt1,f2opt1y
imp srce200_f3opt2,f3opt2y
imp srce200_f4opt1a,f4opt1ay
imp srce200_f5opt1,f5opt1y
imp srce200_fcelim1,fcelim1y
imp srce200_feelim1,feelim1y
imp srce200_foplist1,foplist1y
imp srce200_foptctl2,foptctl2y
imp srce200_fsred1,fsred1y

==== ercs07/emas-a/f77rel/fcvs4_fm908.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM908
C*****                       INTER3 - (392)
C*****
C***********************************************************************
C*****  TESTING OF INTERNAL FILES -                           ANS. REF
C*****          USING READ                                      12.2.5
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041
C****

==== ercs07/emas-a/f77rel/fcvs4_fm909.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM909
C*****                       INTER4 - (393)
C*****
C***********************************************************************
C*****  TESTING OF INTERNAL FILES -                            ANS. REF
C*****          USING WRITE                                     12.2.5
C*****
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041

==== ercs07/emas-a/f77rel/fcvs4_fm914.txt ====
C***********************************************************************
C*****   FM914
C*****                       INQU1 - (430)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****    TEST INQUIRE BY UNIT ON SEQUENTIAL, FORMATTED FILES   12.10.3
C*****
C*****    THE TESTS IN THIS UNIT ARE ONLY PERFORMED ON A
C*****    UNIT THAT IS CONNECTED FOR SEQUENTIAL, FORMATTED ACCESS
C*****    (ANS REF. 12.2.4.1 AND 12.9.5.2)
C*****    THIS TEST PERFORMS AN EXPLICIT OPEN, AND PERFORMS
C*****    A CLOSE WITH STATUS='DELETE' AT THE END OF THE SEGMENT.
C***********************************************************************
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO

==== ercs07/emas-a/f77rel/fcvs4_fm915.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM915
C*****                       INQU2 - (431)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****    TEST INQUIRE ON SEQUENTIAL, UNFORMATTED FILES         12.10.3
C*****
C*****    THE TESTS IN THIS UNIT ARE ONLY PERFORMED ON A
C*****    UNIT THAT IS CONNECTED FOR SEQUENTIAL, UNFORMATTED ACCESS
C*****    (ANS REF. 12.2.4.1 AND 12.9.5.1)
C*****    THIS TEST PERFORMS AN EXPLICIT OPEN, AND PERFORMS
C*****    A CLOSE WITH STATUS='DELETE' AT THE END OF THE SEGMENT.
C*****    THE SEGMENT TESTS THAT INQUIRE IS PERFORMED CORRECTLY
C*****    BEFORE READING OR WRITING TO A FILE, AFTER WRITING TO A FILE
C*****    AND AFTER READING FROM A FILE.
C***********************************************************************
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM

==== ercs07/emas-a/f77rel/ftn_copy1.txt ====
!* modified 12/01/85
!*
%routine Copy(%integer Length,Fbase,Fdisp,Tbase,Tdisp)
!***********************************************************************
!* copy Length bytes from fbase(fdisp) to tbase(tdisp)                 *
!***********************************************************************
%integer I,From,To
      %if Length<=0 %then %return
      %if HOST=PERQPNX %thenstart
         From=Fbase<<1+Fdisp
         To=Tbase<<1+Tdisp
      %finishelsestart
         From=Fbase+Fdisp
         To=Tbase+Tdisp
      %finish
      %cycle I=0,1,Length-1
         byteinteger(To+I)=byteinteger(From+I)
      %repeat
%end;! Copy
!*
%routine Fill(%integer Length,Fbase,Fdisp,Filler)

==== ercs07/emas-a/f77rel/fcvs4_fm916.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM916
C*****                       INQU3 - (432)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****    TEST INQUIRE BY UNIT ON DIRECT, FORMATTED FILE        12.10.3
C*****
C*****    THE TESTS IN THE UNIT ARE ONLY PERFORMED ON A
C*****    UNIT THAT IS CONNECTED FOR FORMATTED, DIRECT ACCESS
C*****    (ANS REF. 12.2.4.2 AND 12.9.5.2)
C*****    THIS TEST PERFORMS AN EXPLICIT OPEN, AND PERFORMS
C*****    A CLOSE WITH STATUS='DELETE' AT THE END OF THE SEGMENT.
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****

==== ercs07/emas-a/f77rel/fcvs4_fm917.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM917
C*****                       INQU4 - (433)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****    TEST INQUIRE BY UNIT ON DIRECT, UNFORMATTED FILE      12.10.3
C*****
C*****    THE TESTS IN THE UNIT ARE ONLY PERFORMED ON A
C*****    UNIT THAT IS CONNECTED FOR DIRECT, UNFORMATTED ACCESS
C*****    (ANS REF. 12.2.4.2 AND 12.9.5.1)
C*****    THIS TEST PERFORMS AN EXPLICIT OPEN, AND PERFORMS
C*****    A CLOSE WITH STATUS='DELETE' AT THE END OF THE SEGMENT.
C*****    THIS SEGMENT TESTS THAT AN INQUIRE IS PERFORMED CORRECTLY
C*****    BEFORE READING OR WRITING TO THE FILE, AFTER WRITING TO
C*****    THE FILE, AND AFTER READING FROM THE FILE.
C*****
C*****  NOTE:
C*****    AN INQUIRE STATEMENT IS NEEDED TO TEST THE READ AND
C*****    WRITE OF MORE THAN A SINGLE RECORD AT A TIME, IN ORDER TO

==== ercs07/emas-a/f77rel/fcvs4_fm918.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM918
C*****                       INQU5 - (434)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****    TEST INQUIRE BY UNIT ON A UNIT THAT IS NOT            12.10.3
C*****    CONNECTED TO A FILE.
C*****
C*****    THE TESTS IN THIS UNIT ARE ONLY BE PERFORMED ON A
C*****    UNIT THAT IS NOT CONNECTED TO A FILE.
C*****    THIS TEST PERFORMS AN EXPLICIT OPEN, AND THEN
C*****    PERFORMS A CLOSE WITH STATUS='DELETE' IN ORDER TO
C*****    ENSURE THAT THE UNIT IS NOT CONNECTED. (ANS REF 12.10.2)
C***********************************************************************
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****

==== ercs07/emas-a/f77rel/fcvs5_fm923d.txt ====
25                                                                              
10.75                                                                           
12.875E01                                                                       
T                                                                               
'ABCDEF'                                                                        
10 15 22 40                                                                     
100.5 0.25E-1 -1.625E2                                                          
T F F T F                                                                       
'AB' 'ABCD' 'ABCDEF'                                                            
'123456' T 17.5 -11 2.5E0                                                       
-5,'2468',T,15.0                                                                
F    'CHAR' -1                0.25                                              
5 10 15                                                                         
-1.25E1  F  T  -6   '-6'                                                        
F 'ZYXW' 'DCBA'  15.5                                                           
'ONE ',,3,F                                                                     
'TWO ', 2, , 2.0                                                                
,4, 1*, 8, ,, 14                                                                
5, -0.25E1, 4*, 'TEST', F                                                       
1 2 3 4 5                                                                       
6 7 8/ 9 10                                                                     

==== ercs07/emas-a/f77rel/fcvs4_fm919.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM919
C*****                       INQF1 - (438)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****    TEST INQUIRE BY FILE ON SEQUENTIAL, FORMATTED FILES   12.10.3
C*****
C*****    THE TESTS IN THIS UNIT ARE ONLY PERFORMED ON A
C*****    FILE THAT IS CONNECTED FOR SEQUENTIAL, FORMATTED ACCESS
C*****    (ANS REF. 12.2.4.1 AND 12.9.5.2)
C*****    THIS TEST PERFORMS AN EXPLICIT OPEN, AND PERFORMS
C*****    A CLOSE WITH STATUS='DELETE' AT THE END OF THE SEGMENT.
C***********************************************************************
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****

==== ercs07/emas-a/f77rel/fcvs5_fm411.txt ====
      PROGRAM FM411
C
C
C
C        THIS ROUTINE TESTS FOR PROPER PROCESSING OF UNFORMATTED RECORDS
C     WITH A FILE  CONNECTED FOR SEQUENTIAL ACCESS.  UNFORMATTED RECORDS
C     MAY BE READ OR WRITTEN ONLY BY UNFORMATTED INPUT/OUTPUT STATE-
C     MENTS.  THIS ROUTINE TESTS SEVERAL SYNTACTICAL VARIATIONS OF THE
C     UNFORMATTED READ AND WRITE STATEMENTS AS WELL AS THE FILE
C     POSITIONING STATEMENTS BACKSPACE, ENDFILE AND REWIND.   IN
C     ADDITION UNFORMATTED RECORDS MAY HAVE BOTH CHARACTER AND
C     NONCHARACTER DATA.  THIS DATA IS TRANSFERRED WITHOUT EDITING
C     BETWEEN THE CURRENT RECORD AND ENTITIES SPECIFIED BY THE INPUT/
C     OUTPUT LIST ITEMS.  THIS ROUTINE BOTH READS AND WRITES
C     RECORDS CONTAINING DATA OF LOGICAL, REAL AND INTEGER TYPE WITH
C     I/O LIST ITEMS REPRESENTED AS VARIABLE NAMES, ARRAY ELEMENT
C     NAMES AND ARRAY NAMES.   THIS ROUTINE DOES NOT TEST DATA OF TYPE
C     CHARACTER.
C        ROUTINE FM413 TESTS USE OF UNFORMATTED RECORDS WITH A FILE
C     CONNECTED FOR DIRECT ACCESS.
C

==== ercs07/emas-a/f77rel/ftn_ht.txt ====
!* modified 16/11/86
! add definitions of Cpu,Numoptregs
!* modified 10/10/85
!*
%constinteger ICL2900 = 1
%constinteger PERQPNX = 2
%constinteger ACCENT  = 3
%constinteger IBM     = 4
%constinteger VAX     = 5
%constinteger M68000  = 6
%constinteger INTEL   = 7
%constinteger LATTICE = 8
%constinteger VNS     = 9
%constinteger GOULD   =10
%constinteger WWC  = 11
%constinteger WCW  = 11
!*
%constinteger POSITIVE =  1
%constinteger NEGATIVE = -1
!*
%constinteger HOST    = IBM

==== ercs07/emas-a/f77rel/fcvs4_fm920.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM920
C*****                       INQF2 - (439)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****    TEST INQUIRE ON SEQUENTIAL, UNFORMATTED FILES         12.10.3
C*****
C*****    THE TESTS IN THIS UNIT ARE ONLY PERFORMED ON A
C*****    FILE THAT IS CONNECTED FOR SEQUENTIAL, UNFORMATTED ACCESS
C*****    (ANS REF. 12.2.4.1 AND 12.9.5.1)
C*****    THIS TEST PERFORMS AN EXPLICIT OPEN, AND PERFORMS
C*****    A CLOSE WITH STATUS='DELETE' AT THE END OF THE SEGMENT.
C*****    THE SEGMENT TESTS THAT INQUIRE IS PERFORMED CORRECTLY
C*****    BEFORE READING OR WRITING TO A FILE, AFTER WRITING TO A FILE
C*****    AND AFTER READING FROM A FILE.
C***********************************************************************
C*****
CBB** ********************** BBCCOMNT **********************************
C****

==== ercs07/emas-a/f77rel/fcvs5_fm413.txt ====
      PROGRAM FM413
C
C
C
C        THIS ROUTINE TESTS FOR PROPER PROCESSING OF UNFORMATTED RECORDS
C     IN FILES CONNECTED FOR DIRECT ACCESS.  FOR THE SUBSET LANGUAGE A
C     FILE CONNECTED FOR DIRECT ACCESS MUST HAVE UNFORMATTED RECORDS
C     THIS ROUTINE FIRST TESTS SEVERAL SYNTACTICAL VARIATIONS OF THE
C     READ AND WRITE STATEMENTS USED IN CREATING AND ACCESSING
C     RECORDS OF THE FILE.  THE OPEN STATEMENT IS USED TO CONNECT
C     THE FILE TO  A  UNIT  AND ESTABLISH ITS CONNECTION FOR DIRECT
C     ACCESS.  THE FIRST SERIES OF TESTS CREATE  AND ACCESS   THE
C     RECORDS OF THE FILE IN RECORD NUMBER SEQUENCE AND THE LAST
C     SERIES OF TESTS CREATE AND ACCESS   RECORDS OF THE FILE IN RANDOM
C     ORDER.
C
C        UNFORMATTED RECORDS MAY HAVE BOTH CHARACTER AND NONCHARACTER
C     DATA AND THIS DATA IS TRANSFERRED WITHOUT EDITING BETWEEN THE
C     CURRENT RECORD AND THE ENTITIES SPECIFIED BY THE INPUT/OUTPUT
C     LIST.   THIS ROUTINE BOTH READS AND WRITES RECORDS CONTAINING
C     THE DATA TYPES OF INTEGER ,REAL AND LOGICAL WITH I/O LIST ITEMS

==== ercs07/emas-a/f77rel/ftn_fmts1.txt ====
!* modified 14/03/85
!*
!***********************************************************************
!* Formats for accessing dictionary records                            *
!***********************************************************************
!*
%recordformat PRECF(%byteinteger CLASS,TYPE,X0,X1,
                    %integer LINK1, LINK2,
                   (%shortinteger COORD,LINK3  %OR %integer LAST   %C
                        %OR %integer CONSTRES %OR %integer INF3),
                    %integer ADDR4,
                    %shortinteger DISP,LEN,IDEN,IIN,
                    %integer LINE,XREF,CMNLENGTH,CMNREFAD)
!*
%recordformat SRECF(%integer INF0, LINK1, INF2, INF3, INF4)
!*
%recordformat RESF((%integer W %OR %shortinteger H0,
                      (%shortinteger H1 %OR %byteinteger FORM,MODE)))
!*
%recordformat DORECF( %C
    %integer LABEL, LINK1,

==== ercs07/emas-a/f77rel/ftn_fmts2.txt ====
!* 09/12/85 - add recordformat SUBFMT
!* modified 14/03/85
!*
!***********************************************************************
!* Formats for accessing dictionary records                            *
!***********************************************************************
!*
%recordformat PRECF(%byteinteger CLASS,TYPE,X0,X1,
                    %integer LINK1, LINK2,
                   (%shortinteger COORD,LINK3  %OR %integer LAST   %C
                        %OR %integer CONSTRES %OR %integer INF3),
                    %integer ADDR4,
                    %shortinteger DISP,LEN,IDEN,IIN,
                    %integer LINE,XREF,CMNLENGTH,CMNREFAD)
!*
%recordformat SRECF(%integer INF0, LINK1, INF2, INF3, INF4)
!*
%recordformat RESF((%integer W %OR %shortinteger H0,
                      (%shortinteger H1 %OR %byteinteger FORM,MODE)))
!*
%recordformat DORECF( %C

==== ercs07/emas-a/f77rel/fanal1a.txt ====
!                                                           fanal1a
!  25/02/87 - initialise ASS CHECKLIST in Analinit
! 04/12/86 - replace SAVE & RESTORE function by in-line code
!                                                           fanal1
! 16/11/86 - incorporate changes up to ftnanal28
! 23/09/86 - insert include files
!                                                           ftnanal27
! 16/09/86 - allow relops between logicals
!                                                           ftnanal26
! 14/09/86 - reject BYTE if Gould
! 09/08/86 - make CONJG generic
! 07/09/86 - add Gould special intrinsics
! 06/09/86 - default reals to r8
! 04/09/86 - allow CD and Z forms of doublecomplex fns
!                                                           ftnanal25
! 19/08/86 - in pi(53) recognise X'41' in constname processing
!                                                           ftnanal24
! 30/07/86 - if -u then check type of DO vble in pi(46)   (k99)
! 27/07/86 - allow cur fn name as control in DO (K81)
! 22/07/86 - add checks to pi(55) for assigned GOTO syntax errors
!          - add check to pi(63) to trap empty IF statement

==== ercs07/emas-a/f77rel/fcvsruns_run4opt1.txt ====
#N                    ***** FCVS COMPILATION RUN 4 *****
parm opt1
DEFINE 6,.OUT
FORTRAN ERCS07:f77rel.FCVS5_FM109,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM110,TMP
DEFINE 5,ERCS07:f77rel.FCVS0_FM110D
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM111,TMP
DEFINE 5,ERCS07:f77rel.FCVS0_FM111D
RUN TMP
FORTRAN ERCS07:f77rel.FCVS2_FM200,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS2_FM201,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS2_FM202,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS2_FM203,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS2_FM204,TMP
RUN TMP

==== ercs07/emas-a/f77rel/srce200_fcinnum2a.txt ====
!                                                            fcinnum2a
! 23/03/87 - make both Host & Taget IBM
!            insert defs. for largestreal, maximumsingle &maximum double
!                                                            fcinnum2
! 23/03/87 - set unassigned patterns to 80 if taget = IBM
!                                                              fcinnum1a
! 15/01/87 - insert %alias for amdahl system routines
!
      ! Modified    5/June/86   8.00








!***********************************************************************
!*********************************************************************%C
                                                                      %C
                                                                      %C

==== ercs07/emas-a/f77rel/fcvsruns_run4opt2.txt ====
#N                    ***** FCVS COMPILATION RUN 4 *****
parm opt2
DEFINE 6,.OUT
FORTRAN ERCS07:f77rel.FCVS5_FM109,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM110,TMP
DEFINE 5,ERCS07:f77rel.FCVS0_FM110D
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM111,TMP
DEFINE 5,ERCS07:f77rel.FCVS0_FM111D
RUN TMP
FORTRAN ERCS07:f77rel.FCVS2_FM200,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS2_FM201,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS2_FM202,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS2_FM203,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS2_FM204,TMP
RUN TMP

==== ercs07/emas-a/f77rel/fcvs0_fm905.txt ====
C***********************************************************************00010905
C*****  FORTRAN 77                                                      00020905
C*****   FM905                                                          00030905
C*****                       LSTDO1 - (371)                             00040905
C*****                                                                  00050905
C***********************************************************************00060905
C*****  GENERAL PURPOSE                                         ANS REF 00070905
C*****    TEST LIST DIRECTED OUTPUT ON                          13.6    00080905
C*****    INTEGER, REAL, LOGICAL, AND CHARACTER DATA TYPES      12.4    00090905
C*****                                                                  00100905
CBB** ********************** BBCCOMNT **********************************00110905
C****                                                                   00120905
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM                00130905
C****                          VERSION 2.0                              00140905
C****                                                                   00150905
C****                                                                   00160905
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO         00170905
C****                   GENERAL SERVICES ADMINISTRATION                 00180905
C****                   FEDERAL SOFTWARE TESTING CENTER                 00190905
C****                   5203 LEESBURG PIKE, SUITE 1100                  00200905
C****                      FALLS CHURCH, VA. 22041                      00210905

==== ercs07/emas-a/f77rel/fcvs0_fm906.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM906
C*****                       LSTDI2 - (372)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****    TEST LIST DIRECTED INPUT                              13.6
C*****    DOUBLE PRECISION, COMPLEX DATA TYPES INCLUDED         12.4
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041

==== ercs07/emas-a/f77rel/fcvsruns_run6opt.txt ====
#N                    ***** FCVS COMPILATION RUN 6 *****
parm opt
DEFINE 6,.OUT
DEFINE 7,TMPOUT
FORTRAN ERCS07:f77rel.FCVS2_FM363,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS2_FM364,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM368,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM369,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM370,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM371,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM372,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM373,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM374,TMP

==== ercs07/emas-a/f77rel/fcvsruns_run1opt.txt ====
#N                    ***** FCVS COMPILATION RUN 1 *****
#MONLOAD 1
parm opt 
FORTRAN ercs07:f77rel.FCVS0_FM000,.NULL,.OUT
#N
DEFINE 6,.OUT
FORTRAN ERCS07:f77rel.FCVS4_FM001,TMP
RUN TMP
#N     ***** CORRUPT PROGRAM *****     FORTRAN ERCS13:FCVS0_FM002,TMP
FORTRAN ERCS07:f77rel.FCVS0_FM003,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM004,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM005,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM006,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM007,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM008,TMP
RUN TMP

==== ercs07/emas-a/f77rel/whetruns_compare.txt ====
textcompare whetl,ercs07:f77rel.whetruns_rundl
destroy whetl

==== ercs07/emas-a/f77rel/mlib8/dtestinput.txt ====
TEST OF--dgamma-- AGAINST SAMPLE DATA AND RESULTS
 100 ARGUMENTS IN SAMPLE BETWEEN    +0.00E+00 AND   +2.00E+00
SAMPLE DISTRIBUTION 1
USE ERROR MEASURE 2
PRINT IF(ERR0R.GE.  50*REPER)
        0.372314E-02              0.26801694502251061775D+03
        0.278931E-01              0.35300847181141998900D+02
        0.535736E-01              0.18139220397299101635D+02
        0.637207E-01              0.15175849163498400309D+02
        0.944977E-01              0.10091169329495527414D+02
        0.111618E+00              0.84822315894474371497D+01
        0.129807E+00              0.72415254686364095520D+01
        0.159195E+00              0.58422607674412547067D+01
        0.163315E+00              0.56869210754407834698D+01
        0.193161E+00              0.47629327987990369518D+01
        0.207840E+00              0.44078427397643697181D+01
        0.225311E+00              0.40470396400801683645D+01
        0.244354E+00              0.37142202931642516932D+01
        0.274902E+00              0.32797676732919454872D+01
        0.280045E+00              0.32163069884332376146D+01
        0.311386E+00              0.28768443786789679987D+01

==== ercs07/emas-a/f77rel/mlib8/dtestout.txt ====
 ********************************************************************************
 TEST OF X**1.0 VS X
 
 
   2000 RANDOM ARGUMENTS WERE TESTED FROM THE INTERVAL
      (     0.6250E-01,     0.1000E+01)
 
 
 X**1.0 WAS LARGER   618 TIMES,
            AGREED  1382 TIMES, AND
       WAS SMALLER     0 TIMES.
 
 
 THERE ARE  14 BASE  16 SIGNIFICANT DIGITS IN A FLOATING-POINT NUMBER
 
 
 THE MAXIMUM RELATIVE ERROR OF     0.2191E-15 =   16 ** -13.00
    OCCURRED FOR X =     0.633433E-01
 THE ESTIMATED LOSS OF BASE  16 SIGNIFICANT DIGITS IS   1.00
 
 

==== ercs07/emas-a/f77rel/mlib8/derrmess.txt ====
dlogsmall    = 1,  { DLOG arg negative or zero}
dsqrtneg     = 2,  { DSQRT arg negative}
dexplarge    = 3,  { DEXP arg greater than 174.6731}
dexpsmall    = 4,  { DEXP arg less than -180.2182, not used}
dsinlarge    = 5,  { DSIN arg magnitude greater than 7.205D16}
dasinlarge   = 6,  { DASIN arg magnitude greater than 1.0}
dcoslarge    = 7,  { DCOS arg magnitude greater than 7.205D16   }
dacoslarge   = 8,  { DACOS arg magnitude greater than 1.0}
dtanlarge    = 9,  { DTAN/DCOTAN arg magnitude greater than 3.521D15}
dcotansmall  = 10, { DCOTAN arg small in magnitude}
darcsinlarge = 11, { Not used}
darccoslarge = 12, { Not used}
darctan2zero = 13, { DATNA2 args zero}
dsinhlarge   = 14, { DSINH arg magnitude greater than 175.3662 }
dcoshlarge   = 15, { DCOSH arg magnitude greater than 175.3662 }
dpowerneg    = 16, { Negative D.P. value raised to a non-integer power}
dpowerzero   = 17, { D.P. zero raised to non-positive power   }
dgamlarge    = 34, { DGAMMA arg magnitude greater than 57.0}
dgamnegint   = 35, { DGAMMA arg near zero or negative integer}
dlgamneg     = 36, { DLGAMA arg is negative}
dlgamlarge   = 37, { DLGAMA arg is greater than 4.29D73}

==== ercs07/emas-a/f77rel/mlib8/stestout.txt ====
 OUTPUT OF VALUES FROM SMACHAR
 FIRST LINE IS IBETA, IT, IRND, NGRD, MACHEP, NEGEP, ,IEXP, MINEXP, MAXEXP
 SECOND LINE IS EPS, EPSNEG, XMIN, XMAX
 THIRD LINE IS AS SECOND
 
       16       6       0       1      -5      -6       7     -65      63
  0.9536743164063E-06 0.5960464477539E-07 0.5397605346934E-78 0.7237005145973E+76
          3C100000            3B100000              100000            7FFFFFFF
 ********************************************************************************
 TEST OF  SQRT(X*X) - X
 
 
   2000 RANDOM ARGUMENTS WERE TESTED FROM THE INTERVAL
      (     0.2500E+00,     0.1000E+01)
 
 
  SQRT(X) WAS LARGER     0 TIMES,
              AGREED     7 TIMES, AND
         WAS SMALLER  1993 TIMES.
 
 

==== ercs07/emas-a/f77rel/mlib8/serrmess.txt ====
 alogsmall   = 21, { ALOG arg negative or zero}
 sqrtneg     = 18, { SQRT arg negative}
 explarge    = 19, { EXP arg greater than 174.6731}
 expsmall    = 20, { EXP arg less than -180.2182, not used}
 sinlarge    = 26, { SIN arg magnitude greater than 5.274e7}
 asinlarge   = 29, { ASIN arg magnitude greater than 1.0}
 coslarge    = 27, { COS arg magnitude greater than 5.274e7}
 acoslarge   = 30, { ACOS arg magnitude greater than 1.0}
 tanlarge    = 28, { TAN/COTAN arg magnitude greater than 2.633e7}
 cotansmall  = 41, { COTAN arg small in magnitude}
 arctan2zero = 31, { ATAN2 args zero}
 sinhlarge   = 32, { SINH arg magnitude greater than 175.3662 }
 coshlarge   = 33, { COSH arg magnitude greater than 175.3662 }
 powerneg    = 23, { Negative REAL value raised to a non-integer power}
 powerzero   = 22, { REAL zero raised to non-positive power   }
 powerbig    = 24, { REAL value raised to too large REAL power }
 powersmall  = 25, { REAL value to REAL power underflows. not used}
 gamlarge    = 42, { GAMMA arg magnitude greater than 57.0}
 gamnegint   = 43, { GAMMA arg near zero or negative integer}
 lgamneg     = 44, { ALGAMA arg is negative}
 lgamlarge   = 45  { ALGAMA arg is greater than 4.29e73}

==== ercs07/emas-a/f77rel/mlib8/readthis.txt ====
THIS PD FILE CONTAINS RELEASE 4 OF DBT'S WORK ON MATH FUNCTIONS. 
It contains answer 1 to 0**0, erroneous but consistent with other systems.
It contains 0 answer to i**j for negative j, i not + or - 1.
IT CONTAINS A CORRECTED CALL  OF DSQRT (RATHER THAN SQRT) IN ZABS IN CXDXMFNS
ON LINE 271.

THE FOLLOWING FILES ARE PROVIDED:-
READTHIS ... THIS FILE
ALLCHECK ... SOURCE OF A SMALL FORTRAN PROGRAM WHICH EVALUATES ALL THE FUNCTIONS
             ONCE TO CHECK ON LOADING AND COMPARE SINGLE AND DOUBLE RESULTS.
CHECK ...... OBJECT  FOR ALLCHECK. 'RUN CHECK' WILL LIST THREE COLUMNS,
             AN INTEGER IDENTIFYING THE FUNCTION FOLLOWED BY SINGLE AND
             DOUBLE PRECISION RESULTS, EXCEPT IN THE CASE OF I**J WHEN
             THE INTEGER RESULT IS GIVEN. THE INTEGERS IDENTIFYING THE
             FUNCTIONS ARE:-
             1 - SQRT AND DSQRT
             2 - ALOG/ALOG10 AND DLOG/DLOG10
             3 - EXP AND DEXP
             4 - '**' FOR REAL**REAL, REAL**INTEGER AND INTEGER**INTEGER
                      ALSO WITH DOUBLE PRECISION REALS
             5 - SIN/COS AND DSIN/DCOS

==== ercs07/emas-a/f77rel/mlib8/stest.txt ====
      PROGRAM STEST
C
C     DRIVER FOR REAL MATH FUNCTION TESTS
C
      COMMON /SPRMVLS/ ARGS,ARGS2
      REAL ARGS(10000),ARGS2(10000)
C
      INTEGER I,J
C
      CALL EMAS3('DEFINE','10,STESTOUT,,C',J)
      CALL EMAS3('DEFINE','9,STESTINPUT',J)
      CALL SSETMESAGES
      WRITE(6,10000)
10000 FORMAT(' TESTS ARE NUMBERED AS FOLLOWS:',/
     1 ,'  0 - H/W PARMS    4 - ''**''          8 -  ATAN/ ATAN2',/
     2 ,'  1 -  SQRT        5 -  SIN/ COS     9 -  SINH/ COSH',/
     3 ,'  2 - ALOG/ALOG10  6 -  TAN/ COTAN  10 -  TANH',/
     4 ,'  3 -  EXP         7 -  ASIN/ ACOS  11 -  GAMMA,ALGAMA'
     5 ,', ERF, ERFC',/
     6 ,' GIVE TEST NUMBER 0 TO 11, -1 TO STOP, 100 FOR ALL')
   99 CONTINUE

==== ercs07/emas-a/f77rel/mlib8/dsummary.txt ====
RUN DTESTOB
TESTS ARE NUMBERED AS FOLLOWS:
 0 - H/W PARMS    4 - '**'          8 - DATAN/DATAN2
 1 - DSQRT        5 - DSIN/DCOS     9 - DSINH/DCOSH
 2 - DLOG/DLOG10  6 - DTAN/DCOTAN  10 - DTANH
 3 - DEXP         7 - DASIN/DACOS  11 - DGAMMA,DLGAMA,DERF,DERFC
GIVE TEST NUMBER 0 TO 11, -1 TO STOP, 100 FOR ALL
Data:100

THE TESTS USE  14 BASE 16 DIGITS.



DSQRT
                    J        MRE        RMS         MICRO-SECS
                    1       0.75       0.41           16.00
                    2       1.00       0.81           16.80

** ERROR  2:  DSQRT ARG NEGATIVE



==== ercs07/emas-a/f77rel/mlib8/allcheck.txt ====
      DOUBLE PRECISION AA,BB,ZZ
      A= 2.0
      B= 3.0
      I= 2
      J= 3
      AA= 2.0D0
      BB= 3.0D0
      J= 1
      Z= SQRT(A)
      ZZ= DSQRT(AA)
      WRITE(6,*) J,Z,ZZ
C
      J= 2
      Z= ALOG(A)
      ZZ= DLOG(AA)
      WRITE(6,*) J,Z,ZZ
C
      J= 3
      Z= EXP(A)
      ZZ= DEXP(AA)
      WRITE(6,*) J,Z,ZZ

==== ercs07/emas-a/f77rel/mlib8/fmleoks.txt ====
%externalroutine MATHS ERROR ROUTINE %alias "f_mle" (%integer error number)
    !
    !
%externalroutinespec fstop %alias "f_stop" (%integer i,j)

%conststring(67) %array maths errors (1:46)=                                 %c
{dlogsmall    = 1}  "DLOG arg negative or zero",
{dsqrtneg     = 2}  "DSQRT arg negative",
{dexplarge    = 3}  "DEXP arg greater than 174.6731",
{dexpsmall    = 4}  "DEXP arg less than -180.2182, not used",
{dsinlarge    = 5}  "DSIN arg magnitude greater than 7.205D16",
{dasinlarge   = 6}  "DASIN arg magnitude greater than 1.0",
{dcoslarge    = 7}  "DCOS arg magnitude greater than 7.205D16   ",
{dacoslarge   = 8}  "DACOS arg magnitude greater than 1.0",
{dtanlarge    = 9}  "DTAN/DCOTAN arg magnitude greater than 3.521D15",
{dcotansmall  = 10} "DCOTAN arg small in magnitude",
{darcsinlarge = 11} "Not used",
{darccoslarge = 12} "Not used",
{darctan2zero = 13} "DATAN2 args zero",
{dsinhlarge   = 14} "DSINH arg magnitude greater than 175.3662 ",
{dcoshlarge   = 15} "DCOSH arg magnitude greater than 175.3662 ",

==== ercs07/emas-a/f77rel/mlib8/dpmfntts.txt ====
!******************************************************************************
!DOUBLE PRECISION MATHS LIBRARY AFTER CODY AND WAITE,
!SOFTWARE MANUAL FOR THE ELEMENTARY FUNCTIONS, PRENTICE HALL 1980.
!WRITTEN BY D.B.TAYLOR, FEBRUARY 1986 FOR USE WITH SEPARATE SINGLE 
!PRECISON ROUTINES.

!THE ENTRY F__POWII IS ALSO PRROVIDED. 
!(IT NEEDS EXCEPTION NUMBERS FOR IPOWEXPNEG , IPOWERZERO AND IPOWLARGE
!ASSUMED TO BE 38, 39 AND 40)
!(38 and 39 have been suppressed for conformity)

!THE FLOATING POINT RECIPEES HAVE BEEN SELECTED AND INDEPENDANT ROUTINES 
!HAVE BEEN WRITTEN FOR EACH ENTRY WITH THE EXCEPTION OF DLOG10 WHICH CALLS DLOG,
!DATAN2 WHICH CALLS DATAN, DACOS AND DACOS WHICH CALL DSQRT, AND DSINH,
!DCOSH AND DTANH WHICH CALL DEXP.

!THE ERROR EXITS TO THE DEFINED ERROR EXCEPTION NUMBERS ARE IN LINE WITH
!FORTRAN STANDARDS EXCEPT THAT THE DEXP FUNCTION DOES NOT FLAG UNDERFLOW
!AND ZERO**POSITIVE IS ACCEPTED BY POWDD. 

!THE LIMITS FOR THE ARGUEMENTS ARE THOSE DESCRIBED BY CODY AND WAITE,

==== ercs07/emas-a/f77rel/mlib8/ssummary.txt ====
RUN STESTOB
TESTS ARE NUMBERED AS FOLLOWS:
 0 - H/W PARMS    4 - '**'          8 -  ATAN/ ATAN2
 1 -  SQRT        5 -  SIN/ COS     9 -  SINH/ COSH
 2 - ALOG/ALOG10  6 -  TAN/ COTAN  10 -  TANH
 3 -  EXP         7 -  ASIN/ ACOS  11 -  GAMMA,ALGAMA, ERF, ERFC
GIVE TEST NUMBER 0 TO 11, -1 TO STOP, 100 FOR ALL
Data:100

THE TESTS USE   6 BASE 16 DIGITS.



 SQRT
                    J        MRE        RMS         MICRO-SECS
                    1       0.75       0.41            9.20
                    2       0.00       0.00           10.40

** ERROR 18:   SQRT ARG NEGATIVE



==== ercs07/emas-a/f77rel/mlib8/dtest.txt ====
      PROGRAM DTEST
C
C     DRIVER FOR DOUBLE PRECISION MATH FUNCTION TESTS
C
      COMMON /PRMVLS/ ARGS,ARGS2
      DOUBLE PRECISION ARGS(10000),ARGS2(10000)
C
      INTEGER I,J
C
      CALL EMAS3('DEFINE','10,DTESTOUT,,C',J)
      CALL EMAS3('DEFINE','9,DTESTINPUT',J)
      CALL SETMESSAGES
      WRITE(6,10000)
10000 FORMAT(' TESTS ARE NUMBERED AS FOLLOWS:',/
     1 ,'  0 - H/W PARMS    4 - ''**''          8 - DATAN/DATAN2',/
     2 ,'  1 - DSQRT        5 - DSIN/DCOS     9 - DSINH/DCOSH',/
     3 ,'  2 - DLOG/DLOG10  6 - DTAN/DCOTAN  10 - DTANH',/
     4 ,'  3 - DEXP         7 - DASIN/DACOS  11 - DGAMMA,DLGAMA'
     5 ,',DERF,DERFC',/
     6 ,' GIVE TEST NUMBER 0 TO 11, -1 TO STOP, 100 FOR ALL')
   99 CONTINUE

==== ercs07/emas-a/f77rel/mlib8/dpmfnoks.txt ====
!******************************************************************************
!DOUBLE PRECISION MATHS LIBRARY AFTER CODY AND WAITE,
!SOFTWARE MANUAL FOR THE ELEMENTARY FUNCTIONS, PRENTICE HALL 1980.
!WRITTEN BY D.B.TAYLOR, FEBRUARY 1986 FOR USE WITH SEPARATE SINGLE 
!PRECISON ROUTINES.

!THE ENTRY F__POWII IS ALSO PRROVIDED. 
!(IT NEEDS EXCEPTION NUMBERS FOR IPOWEXPNEG , IPOWERZERO AND IPOWLARGE
!ASSUMED TO BE 38, 39 AND 40)
!(38 and 39 have been suppressed for conformity)

!THE FLOATING POINT RECIPEES HAVE BEEN SELECTED AND INDEPENDANT ROUTINES 
!HAVE BEEN WRITTEN FOR EACH ENTRY WITH THE EXCEPTION OF DLOG10 WHICH CALLS DLOG,
!DATAN2 WHICH CALLS DATAN, DACOS AND DACOS WHICH CALL DSQRT, AND DSINH,
!DCOSH AND DTANH WHICH CALL DEXP.

!THE ERROR EXITS TO THE DEFINED ERROR EXCEPTION NUMBERS ARE IN LINE WITH
!FORTRAN STANDARDS EXCEPT THAT THE DEXP FUNCTION DOES NOT FLAG UNDERFLOW
!AND ZERO**POSITIVE IS ACCEPTED BY POWDD. 

!THE LIMITS FOR THE ARGUEMENTS ARE THOSE DESCRIBED BY CODY AND WAITE,

==== ercs07/emas-a/f77rel/mlib8/spmfntts.txt ====
!******************************************************************************
!SINGLE PRECISION MATHS LIBRARY AFTER CODY AND WAITE,
!SOFTWARE MANUAL FOR THE ELEMENTARY FUNCTIONS, PRENTICE HALL 1980.
!WRITTEN BY D.B.TAYLOR, JANUARY 1986. CODE FOR IEEE SINGLE PRECISION


!THE FLOATING POINT RECIPEES HAVE BEEN SELECTED AND INDEPENDANT ROUTINES 
!HAVE BEEN WRITTEN FOR EACH ENTRY WITH THE EXCEPTION OF ALOG10 WHICH CALLS ALOG,
! ATAN2 WHICH CALLS  ATAN,  ACOS AND  ACOS WHICH CALL SQRT, AND  SINH,
! COSH AND  TANH WHICH CALL  EXP.

!THE ERROR EXITS TO THE DEFINED ERROR EXCEPTION NUMBERS ARE IN LINE WITH
!FORTRAN STANDARDS EXCEPT THAT THE  EXP FUNCTION DOES NOT FLAG UNDERFLOW
!AND ZERO**POSITIVE IS ACCEPTED BY POWRR. 

!THE LIMITS FOR THE ARGUEMENTS ARE THOSE DESCRIBED BY CODY AND WAITE,
!SUITABLY INTERPRETED FOR BYTE ARITHEMETIC, WITH THE EXCEPTION THAT THE RANGES
!FOR  SIN/ COS AND  TAN/ COTAN ARE EXTENDED TO (-5.274E7 TO 5.274E7)
!AND (-2.633E7 TO 2.633E7) RESPECTIVELY.
!AT THE EXTREMAL VALUES ONLY ONE HEX DIGIT IS ACCURATE. ONLY WITHIN
!THE RESTRICTED RANGES, (-12867 TO 12867 ) FOR  SIN/ COS AND 

==== ercs07/emas-a/f77rel/mlib8/cxdxmfns.txt ====
%record %format cxf (%real     real,imag)
%externalroutinespec dhex(%longrealname x)
%record %format dcxf(%longreal real,imag)

%externalrealfnspec sin   %alias "f_sin"   ( %realname x )
%externalrealfnspec cos   %alias "f_cos"   ( %realname x )
%externalrealfnspec sinh  %alias "f_sinh"  ( %realname x )
%externalrealfnspec cosh  %alias "f_cosh"  ( %realname x )
%externalrealfnspec exp   %alias "f_exp"   ( %realname x)
%externalrealfnspec sqrt  %alias "f_sqrt"  ( %realname x )
%externalrealfnspec log   %alias "f_log"   ( %realname x )
%externalrealfnspec atan2 %alias "f_atan2" ( %realname x, y)

%externallongrealfnspec dsin   %alias "f_dsin"   ( %longrealname x )
%externallongrealfnspec dcos   %alias "f_dcos"   ( %longrealname x )
%externallongrealfnspec dsinh  %alias "f_dsinh"  ( %longrealname x )
%externallongrealfnspec dcosh  %alias "f_dcosh"  ( %longrealname x )
%externallongrealfnspec dexp   %alias "f_dexp"   ( %longrealname x )
%externallongrealfnspec dlog   %alias "f_dlog"   ( %longrealname x )
%externallongrealfnspec datan2 %alias "f_datan2" ( %longrealname x, y)
%externallongrealfnspec dsqrt  %alias "f_dsqrt"  ( %longrealname x )

==== ercs07/emas-a/f77rel/mlib8/spmfnoks.txt ====
!******************************************************************************
!SINGLE PRECISION MATHS LIBRARY AFTER CODY AND WAITE,
!SOFTWARE MANUAL FOR THE ELEMENTARY FUNCTIONS, PRENTICE HALL 1980.
!WRITTEN BY D.B.TAYLOR, JANUARY 1986. CODE FOR IEEE SINGLE PRECISION


!THE FLOATING POINT RECIPEES HAVE BEEN SELECTED AND INDEPENDANT ROUTINES 
!HAVE BEEN WRITTEN FOR EACH ENTRY WITH THE EXCEPTION OF ALOG10 WHICH CALLS ALOG,
! ATAN2 WHICH CALLS  ATAN,  ACOS AND  ACOS WHICH CALL SQRT, AND  SINH,
! COSH AND  TANH WHICH CALL  EXP.

!THE ERROR EXITS TO THE DEFINED ERROR EXCEPTION NUMBERS ARE IN LINE WITH
!FORTRAN STANDARDS EXCEPT THAT THE  EXP FUNCTION DOES NOT FLAG UNDERFLOW
!AND ZERO**POSITIVE IS ACCEPTED BY POWRR. 

!THE LIMITS FOR THE ARGUEMENTS ARE THOSE DESCRIBED BY CODY AND WAITE,
!SUITABLY INTERPRETED FOR BYTE ARITHEMETIC, WITH THE EXCEPTION THAT THE RANGES
!FOR  SIN/ COS AND  TAN/ COTAN ARE EXTENDED TO (-5.274E7 TO 5.274E7)
!AND (-2.633E7 TO 2.633E7) RESPECTIVELY.
!AT THE EXTREMAL VALUES ONLY ONE HEX DIGIT IS ACCURATE. ONLY WITHIN
!THE RESTRICTED RANGES, (-12867 TO 12867 ) FOR  SIN/ COS AND 

==== ercs07/emas-a/f77rel/mlib8/stestinput.txt ====
TEST OF--GAMMA-- AGAINST SAMPLE DATA AND RESULTS
 100 ARGUMENTS IN SAMPLE BETWEEN    +0.00E+00 AND   +2.00E+00
SAMPLE DISTRIBUTION 1
USE ERROR MEASURE 2
PRINT IF(ERR0R.GE.  50*REPER)
        0.372314E-02              0.26801694502251061775D+03
        0.278931E-01              0.35300847181141998900D+02
        0.535736E-01              0.18139220397299101635D+02
        0.637207E-01              0.15175849163498400309D+02
        0.944977E-01              0.10091169329495527414D+02
        0.111618E+00              0.84822315894474371497D+01
        0.129807E+00              0.72415254686364095520D+01
        0.159195E+00              0.58422607674412547067D+01
        0.163315E+00              0.56869210754407834698D+01
        0.193161E+00              0.47629327987990369518D+01
        0.207840E+00              0.44078427397643697181D+01
        0.225311E+00              0.40470396400801683645D+01
        0.244354E+00              0.37142202931642516932D+01
        0.274902E+00              0.32797676732919454872D+01
        0.280045E+00              0.32163069884332376146D+01
        0.311386E+00              0.28768443786789679987D+01

==== ercs07/emas-a/f77rel/mlib9/dtestinput.txt ====
TEST OF--dgamma-- AGAINST SAMPLE DATA AND RESULTS
 100 ARGUMENTS IN SAMPLE BETWEEN    +0.00E+00 AND   +2.00E+00
SAMPLE DISTRIBUTION 1
USE ERROR MEASURE 2
PRINT IF(ERR0R.GE.  50*REPER)
        0.372314E-02              0.26801694502251061775D+03
        0.278931E-01              0.35300847181141998900D+02
        0.535736E-01              0.18139220397299101635D+02
        0.637207E-01              0.15175849163498400309D+02
        0.944977E-01              0.10091169329495527414D+02
        0.111618E+00              0.84822315894474371497D+01
        0.129807E+00              0.72415254686364095520D+01
        0.159195E+00              0.58422607674412547067D+01
        0.163315E+00              0.56869210754407834698D+01
        0.193161E+00              0.47629327987990369518D+01
        0.207840E+00              0.44078427397643697181D+01
        0.225311E+00              0.40470396400801683645D+01
        0.244354E+00              0.37142202931642516932D+01
        0.274902E+00              0.32797676732919454872D+01
        0.280045E+00              0.32163069884332376146D+01
        0.311386E+00              0.28768443786789679987D+01

==== ercs07/emas-a/f77rel/mlib9/dtestout.txt ====
 ********************************************************************************
 TEST OF X**1.0 VS X
 
 
   2000 RANDOM ARGUMENTS WERE TESTED FROM THE INTERVAL
      (     0.6250E-01,     0.1000E+01)
 
 
 X**1.0 WAS LARGER   618 TIMES,
            AGREED  1382 TIMES, AND
       WAS SMALLER     0 TIMES.
 
 
 THERE ARE  14 BASE  16 SIGNIFICANT DIGITS IN A FLOATING-POINT NUMBER
 
 
 THE MAXIMUM RELATIVE ERROR OF     0.2191E-15 =   16 ** -13.00
    OCCURRED FOR X =     0.633433E-01
 THE ESTIMATED LOSS OF BASE  16 SIGNIFICANT DIGITS IS   1.00
 
 

==== ercs07/emas-a/f77rel/mlib9/rexpbug.txt ====
      double precision exp
      exp= 10.**(-1.0)
      write(6,*) exp
      exp=10.d0**(-1.0)
      write(6,*)exp
      exp=10.d0**(-2.0)
      write(6,*)exp
      stop
      end

==== ercs07/emas-a/f77rel/mlib9/dpmfndds.txt ====
!******************************************************************************
!DOUBLE PRECISION MATHS LIBRARY AFTER CODY AND WAITE,
!SOFTWARE MANUAL FOR THE ELEMENTARY FUNCTIONS, PRENTICE HALL 1980.
!WRITTEN BY D.B.TAYLOR, FEBRUARY 1986 FOR USE WITH SEPARATE SINGLE 
!PRECISON ROUTINES.

!THE ENTRY F__POWII IS ALSO PRROVIDED. 
!(IT NEEDS EXCEPTION NUMBERS FOR IPOWEXPNEG , IPOWERZERO AND IPOWLARGE
!ASSUMED TO BE 38, 39 AND 40)
!(38 and 39 have been suppressed for conformity)

!THE FLOATING POINT RECIPEES HAVE BEEN SELECTED AND INDEPENDANT ROUTINES 
!HAVE BEEN WRITTEN FOR EACH ENTRY WITH THE EXCEPTION OF DLOG10 WHICH CALLS DLOG,
!DATAN2 WHICH CALLS DATAN, DACOS AND DACOS WHICH CALL DSQRT, AND DSINH,
!DCOSH AND DTANH WHICH CALL DEXP.

!THE ERROR EXITS TO THE DEFINED ERROR EXCEPTION NUMBERS ARE IN LINE WITH
!FORTRAN STANDARDS EXCEPT THAT THE DEXP FUNCTION DOES NOT FLAG UNDERFLOW
!AND ZERO**POSITIVE IS ACCEPTED BY POWDD. 

!THE LIMITS FOR THE ARGUEMENTS ARE THOSE DESCRIBED BY CODY AND WAITE,

==== ercs07/emas-a/f77rel/mlib9/derrmess.txt ====
dlogsmall    = 1,  { DLOG arg negative or zero}
dsqrtneg     = 2,  { DSQRT arg negative}
dexplarge    = 3,  { DEXP arg greater than 174.6731}
dexpsmall    = 4,  { DEXP arg less than -180.2182, not used}
dsinlarge    = 5,  { DSIN arg magnitude greater than 7.205D16}
dasinlarge   = 6,  { DASIN arg magnitude greater than 1.0}
dcoslarge    = 7,  { DCOS arg magnitude greater than 7.205D16   }
dacoslarge   = 8,  { DACOS arg magnitude greater than 1.0}
dtanlarge    = 9,  { DTAN/DCOTAN arg magnitude greater than 3.521D15}
dcotansmall  = 10, { DCOTAN arg small in magnitude}
darcsinlarge = 11, { Not used}
darccoslarge = 12, { Not used}
darctan2zero = 13, { DATNA2 args zero}
dsinhlarge   = 14, { DSINH arg magnitude greater than 175.3662 }
dcoshlarge   = 15, { DCOSH arg magnitude greater than 175.3662 }
dpowerneg    = 16, { Negative D.P. value raised to a non-integer power}
dpowerzero   = 17, { D.P. zero raised to non-positive power   }
dgamlarge    = 34, { DGAMMA arg magnitude greater than 57.0}
dgamnegint   = 35, { DGAMMA arg near zero or negative integer}
dlgamneg     = 36, { DLGAMA arg is negative}
dlgamlarge   = 37, { DLGAMA arg is greater than 4.29D73}

==== ercs07/emas-a/f77rel/mlib9/stestout.txt ====
 OUTPUT OF VALUES FROM SMACHAR
 FIRST LINE IS IBETA, IT, IRND, NGRD, MACHEP, NEGEP, ,IEXP, MINEXP, MAXEXP
 SECOND LINE IS EPS, EPSNEG, XMIN, XMAX
 THIRD LINE IS AS SECOND
 
       16       6       0       1      -5      -6       7     -65      63
  0.9536743164063E-06 0.5960464477539E-07 0.5397605346934E-78 0.7237005145973E+76
          3C100000            3B100000              100000            7FFFFFFF
 ********************************************************************************
 TEST OF  SQRT(X*X) - X
 
 
   2000 RANDOM ARGUMENTS WERE TESTED FROM THE INTERVAL
      (     0.2500E+00,     0.1000E+01)
 
 
  SQRT(X) WAS LARGER     0 TIMES,
              AGREED     7 TIMES, AND
         WAS SMALLER  1993 TIMES.
 
 

==== ercs07/emas-a/f77rel/mlib9/serrmess.txt ====
 alogsmall   = 21, { ALOG arg negative or zero}
 sqrtneg     = 18, { SQRT arg negative}
 explarge    = 19, { EXP arg greater than 174.6731}
 expsmall    = 20, { EXP arg less than -180.2182, not used}
 sinlarge    = 26, { SIN arg magnitude greater than 5.274e7}
 asinlarge   = 29, { ASIN arg magnitude greater than 1.0}
 coslarge    = 27, { COS arg magnitude greater than 5.274e7}
 acoslarge   = 30, { ACOS arg magnitude greater than 1.0}
 tanlarge    = 28, { TAN/COTAN arg magnitude greater than 2.633e7}
 cotansmall  = 41, { COTAN arg small in magnitude}
 arctan2zero = 31, { ATAN2 args zero}
 sinhlarge   = 32, { SINH arg magnitude greater than 175.3662 }
 coshlarge   = 33, { COSH arg magnitude greater than 175.3662 }
 powerneg    = 23, { Negative REAL value raised to a non-integer power}
 powerzero   = 22, { REAL zero raised to non-positive power   }
 powerbig    = 24, { REAL value raised to too large REAL power }
 powersmall  = 25, { REAL value to REAL power underflows. not used}
 gamlarge    = 42, { GAMMA arg magnitude greater than 57.0}
 gamnegint   = 43, { GAMMA arg near zero or negative integer}
 lgamneg     = 44, { ALGAMA arg is negative}
 lgamlarge   = 45  { ALGAMA arg is greater than 4.29e73}

==== ercs07/emas-a/f77rel/mlib9/trys.txt ====
      DOUBLE PRECISION A,B,C,D,POWDD
C
   99 CONTINUE
C
      READ(*,*) A,B
      IF (A.EQ.0.0D0) STOP
      C= A**B
      C= ABS(A)**B
C      C= POWDD(A,B)
      D= EXP(B*LOG(ABS(A)))
      WRITE(*,*) C,D
      GOTO 99
C
      END

==== ercs07/emas-a/f77rel/mlib9/readthis.txt ====
THIS PD FILE CONTAINS RELEASE 4 OF DBT'S WORK ON MATH FUNCTIONS. 
It contains answer 1 to 0**0, erroneous but consistent with other systems.
It contains 0 answer to i**j for negative j, i not + or - 1.
IT CONTAINS A CORRECTED CALL  OF DSQRT (RATHER THAN SQRT) IN ZABS IN CXDXMFNS
ON LINE 271.

THE FOLLOWING FILES ARE PROVIDED:-
READTHIS ... THIS FILE
ALLCHECK ... SOURCE OF A SMALL FORTRAN PROGRAM WHICH EVALUATES ALL THE FUNCTIONS
             ONCE TO CHECK ON LOADING AND COMPARE SINGLE AND DOUBLE RESULTS.
CHECK ...... OBJECT  FOR ALLCHECK. 'RUN CHECK' WILL LIST THREE COLUMNS,
             AN INTEGER IDENTIFYING THE FUNCTION FOLLOWED BY SINGLE AND
             DOUBLE PRECISION RESULTS, EXCEPT IN THE CASE OF I**J WHEN
             THE INTEGER RESULT IS GIVEN. THE INTEGERS IDENTIFYING THE
             FUNCTIONS ARE:-
             1 - SQRT AND DSQRT
             2 - ALOG/ALOG10 AND DLOG/DLOG10
             3 - EXP AND DEXP
             4 - '**' FOR REAL**REAL, REAL**INTEGER AND INTEGER**INTEGER
                      ALSO WITH DOUBLE PRECISION REALS
             5 - SIN/COS AND DSIN/DCOS

==== ercs07/emas-a/f77rel/mlib9/stest.txt ====
      PROGRAM STEST
C
C     DRIVER FOR REAL MATH FUNCTION TESTS
C
      COMMON /SPRMVLS/ ARGS,ARGS2
      REAL ARGS(10000),ARGS2(10000)
C
      INTEGER I,J
C
      CALL EMAS3('DEFINE','10,STESTOUT,,C',J)
      CALL EMAS3('DEFINE','9,STESTINPUT',J)
      CALL SSETMESAGES
      WRITE(6,10000)
10000 FORMAT(' TESTS ARE NUMBERED AS FOLLOWS:',/
     1 ,'  0 - H/W PARMS    4 - ''**''          8 -  ATAN/ ATAN2',/
     2 ,'  1 -  SQRT        5 -  SIN/ COS     9 -  SINH/ COSH',/
     3 ,'  2 - ALOG/ALOG10  6 -  TAN/ COTAN  10 -  TANH',/
     4 ,'  3 -  EXP         7 -  ASIN/ ACOS  11 -  GAMMA,ALGAMA'
     5 ,', ERF, ERFC',/
     6 ,' GIVE TEST NUMBER 0 TO 11, -1 TO STOP, 100 FOR ALL')
   99 CONTINUE

==== ercs07/emas-a/f77rel/mlib9/dsummary.txt ====
RUN DTESTOB
TESTS ARE NUMBERED AS FOLLOWS:
 0 - H/W PARMS    4 - '**'          8 - DATAN/DATAN2
 1 - DSQRT        5 - DSIN/DCOS     9 - DSINH/DCOSH
 2 - DLOG/DLOG10  6 - DTAN/DCOTAN  10 - DTANH
 3 - DEXP         7 - DASIN/DACOS  11 - DGAMMA,DLGAMA,DERF,DERFC
GIVE TEST NUMBER 0 TO 11, -1 TO STOP, 100 FOR ALL
Data:100

THE TESTS USE  14 BASE 16 DIGITS.



DSQRT
                    J        MRE        RMS         MICRO-SECS
                    1       0.75       0.41           16.00
                    2       1.00       0.81           16.80

** ERROR  2:  DSQRT ARG NEGATIVE



==== ercs07/emas-a/f77rel/mlib9/allcheck.txt ====
      DOUBLE PRECISION AA,BB,ZZ
      A= 2.0
      B= 3.0
      I= 2
      J= 3
      AA= 2.0D0
      BB= 3.0D0
      J= 1
      Z= SQRT(A)
      ZZ= DSQRT(AA)
      WRITE(6,*) J,Z,ZZ
C
      J= 2
      Z= ALOG(A)
      ZZ= DLOG(AA)
      WRITE(6,*) J,Z,ZZ
C
      J= 3
      Z= EXP(A)
      ZZ= DEXP(AA)
      WRITE(6,*) J,Z,ZZ

==== ercs07/emas-a/f77rel/mlib9/olddps.txt ====
!******************************************************************************
!DOUBLE PRECISION MATHS LIBRARY AFTER CODY AND WAITE,
!SOFTWARE MANUAL FOR THE ELEMENTARY FUNCTIONS, PRENTICE HALL 1980.
!WRITTEN BY D.B.TAYLOR, FEBRUARY 1986 FOR USE WITH SEPARATE SINGLE 
!PRECISON ROUTINES.

!THE ENTRY F_POWII IS ALSO PRROVIDED. 
!(IT NEEDS EXCEPTION NUMBERS FOR IPOWEXPNEG , IPOWERZERO AND IPOWLARGE
!ASSUMED TO BE 38, 39 AND 40)

!THE FLOATING POINT RECIPEES HAVE BEEN SELECTED AND INDEPENDANT ROUTINES 
!HAVE BEEN WRITTEN FOR EACH ENTRY WITH THE EXCEPTION OF DLOG10 WHICH CALLS DLOG,
!DATAN2 WHICH CALLS DATAN, DACOS AND DACOS WHICH CALL DSQRT, AND DSINH,
!DCOSH AND DTANH WHICH CALL DEXP.

!THE ERROR EXITS TO THE DEFINED ERROR EXCEPTION NUMBERS ARE IN LINE WITH
!FORTRAN STANDARDS EXCEPT THAT THE DEXP FUNCTION DOES NOT FLAG UNDERFLOW
!AND ZERO**POSITIVE IS ACCEPTED BY POWDD. 

!THE LIMITS FOR THE ARGUEMENTS ARE THOSE DESCRIBED BY CODY AND WAITE,
!SUITABLY INTERPRETED FOR BYTE ARITHEMETIC, WITH THE EXCEPTION THAT THE RANGES

==== ercs07/emas-a/f77rel/mlib9/fmleoks.txt ====
%externalroutine MATHS ERROR ROUTINE %alias "f_mle" (%integer error number)
    !
    !
%externalroutinespec fstop %alias "f_stop" (%integer i,j)

%conststring(67) %array maths errors (1:46)=                                 %c
{dlogsmall    = 1}  "DLOG arg negative or zero",
{dsqrtneg     = 2}  "DSQRT arg negative",
{dexplarge    = 3}  "DEXP arg greater than 174.6731",
{dexpsmall    = 4}  "DEXP arg less than -180.2182, not used",
{dsinlarge    = 5}  "DSIN arg magnitude greater than 7.205D16",
{dasinlarge   = 6}  "DASIN arg magnitude greater than 1.0",
{dcoslarge    = 7}  "DCOS arg magnitude greater than 7.205D16   ",
{dacoslarge   = 8}  "DACOS arg magnitude greater than 1.0",
{dtanlarge    = 9}  "DTAN/DCOTAN arg magnitude greater than 3.521D15",
{dcotansmall  = 10} "DCOTAN arg small in magnitude",
{darcsinlarge = 11} "Not used",
{darccoslarge = 12} "Not used",
{darctan2zero = 13} "DATAN2 args zero",
{dsinhlarge   = 14} "DSINH arg magnitude greater than 175.3662 ",
{dcoshlarge   = 15} "DCOSH arg magnitude greater than 175.3662 ",

==== ercs07/emas-a/f77rel/mlib9/try.txt ====
      DOUBLE PRECISION A,B,C,D,POWDD
C
   99 CONTINUE
C
      READ(*,*) A,B
      IF (A.EQ.0.0D0) STOP
C      C= A**B
C      C= ABS(A)**B
      C= POWDD(A,B)
      D= EXP(B*LOG(ABS(A)))
      WRITE(*,*) C,D
      GOTO 99
C
      END

==== ercs07/emas-a/f77rel/mlib9/dpmfntts.txt ====
!******************************************************************************
!DOUBLE PRECISION MATHS LIBRARY AFTER CODY AND WAITE,
!SOFTWARE MANUAL FOR THE ELEMENTARY FUNCTIONS, PRENTICE HALL 1980.
!WRITTEN BY D.B.TAYLOR, FEBRUARY 1986 FOR USE WITH SEPARATE SINGLE 
!PRECISON ROUTINES.

!THE ENTRY F__POWII IS ALSO PRROVIDED. 
!(IT NEEDS EXCEPTION NUMBERS FOR IPOWEXPNEG , IPOWERZERO AND IPOWLARGE
!ASSUMED TO BE 38, 39 AND 40)
!(38 and 39 have been suppressed for conformity)

!THE FLOATING POINT RECIPEES HAVE BEEN SELECTED AND INDEPENDANT ROUTINES 
!HAVE BEEN WRITTEN FOR EACH ENTRY WITH THE EXCEPTION OF DLOG10 WHICH CALLS DLOG,
!DATAN2 WHICH CALLS DATAN, DACOS AND DACOS WHICH CALL DSQRT, AND DSINH,
!DCOSH AND DTANH WHICH CALL DEXP.

!THE ERROR EXITS TO THE DEFINED ERROR EXCEPTION NUMBERS ARE IN LINE WITH
!FORTRAN STANDARDS EXCEPT THAT THE DEXP FUNCTION DOES NOT FLAG UNDERFLOW
!AND ZERO**POSITIVE IS ACCEPTED BY POWDD. 

!THE LIMITS FOR THE ARGUEMENTS ARE THOSE DESCRIBED BY CODY AND WAITE,

==== ercs07/emas-a/f77rel/mlib9/ssummary.txt ====
RUN STESTOB
TESTS ARE NUMBERED AS FOLLOWS:
 0 - H/W PARMS    4 - '**'          8 -  ATAN/ ATAN2
 1 -  SQRT        5 -  SIN/ COS     9 -  SINH/ COSH
 2 - ALOG/ALOG10  6 -  TAN/ COTAN  10 -  TANH
 3 -  EXP         7 -  ASIN/ ACOS  11 -  GAMMA,ALGAMA, ERF, ERFC
GIVE TEST NUMBER 0 TO 11, -1 TO STOP, 100 FOR ALL
Data:100

THE TESTS USE   6 BASE 16 DIGITS.



 SQRT
                    J        MRE        RMS         MICRO-SECS
                    1       0.75       0.41            9.20
                    2       0.00       0.00           10.40

** ERROR 18:   SQRT ARG NEGATIVE



==== ercs07/emas-a/f77rel/mlib9/dtest.txt ====
      PROGRAM DTEST
C
C     DRIVER FOR DOUBLE PRECISION MATH FUNCTION TESTS
C
      COMMON /PRMVLS/ ARGS,ARGS2
      DOUBLE PRECISION ARGS(10000),ARGS2(10000)
C
      INTEGER I,J
C
      CALL EMAS3('DEFINE','10,DTESTOUT,,C',J)
      CALL EMAS3('DEFINE','9,DTESTINPUT',J)
      CALL SETMESSAGES
      WRITE(6,10000)
10000 FORMAT(' TESTS ARE NUMBERED AS FOLLOWS:',/
     1 ,'  0 - H/W PARMS    4 - ''**''          8 - DATAN/DATAN2',/
     2 ,'  1 - DSQRT        5 - DSIN/DCOS     9 - DSINH/DCOSH',/
     3 ,'  2 - DLOG/DLOG10  6 - DTAN/DCOTAN  10 - DTANH',/
     4 ,'  3 - DEXP         7 - DASIN/DACOS  11 - DGAMMA,DLGAMA'
     5 ,',DERF,DERFC',/
     6 ,' GIVE TEST NUMBER 0 TO 11, -1 TO STOP, 100 FOR ALL')
   99 CONTINUE

==== ercs07/emas-a/f77rel/mlib9/dpmfnoks.txt ====
!******************************************************************************
!DOUBLE PRECISION MATHS LIBRARY AFTER CODY AND WAITE,
!SOFTWARE MANUAL FOR THE ELEMENTARY FUNCTIONS, PRENTICE HALL 1980.
!WRITTEN BY D.B.TAYLOR, FEBRUARY 1986 FOR USE WITH SEPARATE SINGLE 
!PRECISON ROUTINES.

!THE ENTRY F__POWII IS ALSO PRROVIDED. 
!(IT NEEDS EXCEPTION NUMBERS FOR IPOWEXPNEG , IPOWERZERO AND IPOWLARGE
!ASSUMED TO BE 38, 39 AND 40)
!(38 and 39 have been suppressed for conformity)

!THE FLOATING POINT RECIPEES HAVE BEEN SELECTED AND INDEPENDANT ROUTINES 
!HAVE BEEN WRITTEN FOR EACH ENTRY WITH THE EXCEPTION OF DLOG10 WHICH CALLS DLOG,
!DATAN2 WHICH CALLS DATAN, DACOS AND DACOS WHICH CALL DSQRT, AND DSINH,
!DCOSH AND DTANH WHICH CALL DEXP.

!THE ERROR EXITS TO THE DEFINED ERROR EXCEPTION NUMBERS ARE IN LINE WITH
!FORTRAN STANDARDS EXCEPT THAT THE DEXP FUNCTION DOES NOT FLAG UNDERFLOW
!AND ZERO**POSITIVE IS ACCEPTED BY POWDD. 

!THE LIMITS FOR THE ARGUEMENTS ARE THOSE DESCRIBED BY CODY AND WAITE,

==== ercs07/emas-a/f77rel/mlib9/spmfntts.txt ====
!******************************************************************************
!SINGLE PRECISION MATHS LIBRARY AFTER CODY AND WAITE,
!SOFTWARE MANUAL FOR THE ELEMENTARY FUNCTIONS, PRENTICE HALL 1980.
!WRITTEN BY D.B.TAYLOR, JANUARY 1986. CODE FOR IEEE SINGLE PRECISION


!THE FLOATING POINT RECIPEES HAVE BEEN SELECTED AND INDEPENDANT ROUTINES 
!HAVE BEEN WRITTEN FOR EACH ENTRY WITH THE EXCEPTION OF ALOG10 WHICH CALLS ALOG,
! ATAN2 WHICH CALLS  ATAN,  ACOS AND  ACOS WHICH CALL SQRT, AND  SINH,
! COSH AND  TANH WHICH CALL  EXP.

!THE ERROR EXITS TO THE DEFINED ERROR EXCEPTION NUMBERS ARE IN LINE WITH
!FORTRAN STANDARDS EXCEPT THAT THE  EXP FUNCTION DOES NOT FLAG UNDERFLOW
!AND ZERO**POSITIVE IS ACCEPTED BY POWRR. 

!THE LIMITS FOR THE ARGUEMENTS ARE THOSE DESCRIBED BY CODY AND WAITE,
!SUITABLY INTERPRETED FOR BYTE ARITHEMETIC, WITH THE EXCEPTION THAT THE RANGES
!FOR  SIN/ COS AND  TAN/ COTAN ARE EXTENDED TO (-5.274E7 TO 5.274E7)
!AND (-2.633E7 TO 2.633E7) RESPECTIVELY.
!AT THE EXTREMAL VALUES ONLY ONE HEX DIGIT IS ACCURATE. ONLY WITHIN
!THE RESTRICTED RANGES, (-12867 TO 12867 ) FOR  SIN/ COS AND 

==== ercs07/emas-a/f77rel/mlib9/cxdxmfns.txt ====
%record %format cxf (%real     real,imag)
%externalroutinespec dhex(%longrealname x)
%record %format dcxf(%longreal real,imag)

%externalrealfnspec sin   %alias "f_sin"   ( %realname x )
%externalrealfnspec cos   %alias "f_cos"   ( %realname x )
%externalrealfnspec sinh  %alias "f_sinh"  ( %realname x )
%externalrealfnspec cosh  %alias "f_cosh"  ( %realname x )
%externalrealfnspec exp   %alias "f_exp"   ( %realname x)
%externalrealfnspec sqrt  %alias "f_sqrt"  ( %realname x )
%externalrealfnspec log   %alias "f_log"   ( %realname x )
%externalrealfnspec atan2 %alias "f_atan2" ( %realname x, y)

%externallongrealfnspec dsin   %alias "f_dsin"   ( %longrealname x )
%externallongrealfnspec dcos   %alias "f_dcos"   ( %longrealname x )
%externallongrealfnspec dsinh  %alias "f_dsinh"  ( %longrealname x )
%externallongrealfnspec dcosh  %alias "f_dcosh"  ( %longrealname x )
%externallongrealfnspec dexp   %alias "f_dexp"   ( %longrealname x )
%externallongrealfnspec dlog   %alias "f_dlog"   ( %longrealname x )
%externallongrealfnspec datan2 %alias "f_datan2" ( %longrealname x, y)
%externallongrealfnspec dsqrt  %alias "f_dsqrt"  ( %longrealname x )

==== ercs07/emas-a/f77rel/mlib9/spmfnoks.txt ====
!******************************************************************************
!SINGLE PRECISION MATHS LIBRARY AFTER CODY AND WAITE,
!SOFTWARE MANUAL FOR THE ELEMENTARY FUNCTIONS, PRENTICE HALL 1980.
!WRITTEN BY D.B.TAYLOR, JANUARY 1986. CODE FOR IEEE SINGLE PRECISION


!THE FLOATING POINT RECIPEES HAVE BEEN SELECTED AND INDEPENDANT ROUTINES 
!HAVE BEEN WRITTEN FOR EACH ENTRY WITH THE EXCEPTION OF ALOG10 WHICH CALLS ALOG,
! ATAN2 WHICH CALLS  ATAN,  ACOS AND  ACOS WHICH CALL SQRT, AND  SINH,
! COSH AND  TANH WHICH CALL  EXP.

!THE ERROR EXITS TO THE DEFINED ERROR EXCEPTION NUMBERS ARE IN LINE WITH
!FORTRAN STANDARDS EXCEPT THAT THE  EXP FUNCTION DOES NOT FLAG UNDERFLOW
!AND ZERO**POSITIVE IS ACCEPTED BY POWRR. 

!THE LIMITS FOR THE ARGUEMENTS ARE THOSE DESCRIBED BY CODY AND WAITE,
!SUITABLY INTERPRETED FOR BYTE ARITHEMETIC, WITH THE EXCEPTION THAT THE RANGES
!FOR  SIN/ COS AND  TAN/ COTAN ARE EXTENDED TO (-5.274E7 TO 5.274E7)
!AND (-2.633E7 TO 2.633E7) RESPECTIVELY.
!AT THE EXTREMAL VALUES ONLY ONE HEX DIGIT IS ACCURATE. ONLY WITHIN
!THE RESTRICTED RANGES, (-12867 TO 12867 ) FOR  SIN/ COS AND 

==== ercs07/emas-a/f77rel/mlib9/stestinput.txt ====
TEST OF--GAMMA-- AGAINST SAMPLE DATA AND RESULTS
 100 ARGUMENTS IN SAMPLE BETWEEN    +0.00E+00 AND   +2.00E+00
SAMPLE DISTRIBUTION 1
USE ERROR MEASURE 2
PRINT IF(ERR0R.GE.  50*REPER)
        0.372314E-02              0.26801694502251061775D+03
        0.278931E-01              0.35300847181141998900D+02
        0.535736E-01              0.18139220397299101635D+02
        0.637207E-01              0.15175849163498400309D+02
        0.944977E-01              0.10091169329495527414D+02
        0.111618E+00              0.84822315894474371497D+01
        0.129807E+00              0.72415254686364095520D+01
        0.159195E+00              0.58422607674412547067D+01
        0.163315E+00              0.56869210754407834698D+01
        0.193161E+00              0.47629327987990369518D+01
        0.207840E+00              0.44078427397643697181D+01
        0.225311E+00              0.40470396400801683645D+01
        0.244354E+00              0.37142202931642516932D+01
        0.274902E+00              0.32797676732919454872D+01
        0.280045E+00              0.32163069884332376146D+01
        0.311386E+00              0.28768443786789679987D+01

==== ercs07/emas-a/f77rel/srce200_freal1b.txt ====
!                                                                     freal1b
! 01/04/87 - set host to IBM, define Tableofpowers, Tentothe75, Tentotheminus
!                                                              freal1a
! 15/01/87 - insert %alias for amdahl system routines
!
!                                                             freal1
! 10/10/86 - copied from ftnreal6
     !Modified   28/May/86    9.00





!**********************************************************************!
!**********************************************************************!
         !                                                   !
         !                                                   !
         !     Support Procedures for Numeric Conversion     !
         !                                                   !
         !                    of Real Numbers                !
         !                                                   !

==== ercs07/emas-a/f77rel/whetruns_whetd.txt ====
	 PROGRAM WHET2
 
***************************************************************************
*                                                                         *
*   DOUBLE PRECISION FORTRAN WHETSTONE FOR UTX 1.1 OPERATING SYSTEM       *
*      See fwhet.jcl for compilation and execution instructions.          *
*									  *
* REVISION HISTORY: 							  *
* -------- -------							  *
* 1.  ADDED STATEMENTS TO PRINT OUT CPE GROUP HEADER ON PRINTOUT.         *
* 2.  ADDED STATEMENTS TO CALCULATE ALL CPUTIME FROM TIMES FUNCTION.      *
*						CPE/MFR 	          *
* 3.  ADDED DOCUMENTATION.                                                *
*						CPE/CLS 7/29/85		  *
* ----------------------------------------------------------------------- *
*    MODULE NAME:  STANDARD DOUBLE PRECISION FORTRAN WHETSTONE BENCHMARK  *
*    AUTHOR:       PRODUCT QUALITY ASSURANCE				  *
*    MODIFIED:     COMPUTER PEFORMANCE EVALUATION 08/01/85	 	  *
* ----------------------------------------------------------------------- *
* 	PURPOSE:							  *
*       -------								  *

==== ercs07/emas-a/f77rel/srce200_ftriads1.txt ====
!                                                                   ftriads1
! 10/10/86 - copied from ftntriads6
!
! 20/02/86 - comment out code for SW(ARREL) in PRINT TRIAD
! 22/01/86 - insert FPTOS, change PRINT TR for type 4 STMT triads
!          - include updated ftn_fmts files
! 14/01/85 - conditional compilation
! 28/11/84 - include cfort_ files for common version
! 18/09/84 - insert switch for STFNID in ANAL and set QUAL(24) to "STFNID"
! 10/07/84 - new version of targ_fptos
! 03/07/84 - put FPTOS in an include file
!          - set up string REG1 in tagr_taget & substitute for "reg-1"
! 21/03/84 - amend arrays OPVALS, ST, SZTY & REG
! 19/03/84 - change some address increments to W! etc.
! 08.03.84 - change INTEGER mapping increments to W1
! 28/02/84 - FPTOS inserted
!*
! 01/11/83 copied from ercs06.rel90_optextb15
!*
%CONSTINTEGER OPSYS=0
!  =0  (Emas  ISO)

==== ercs07/emas-a/f77rel/srce200_f3opt2.txt ====
!                                                      f3opt2
!05/08/87 - insert test for cmplx, line 2677 of PRESVAL
!                                                                    f3opt1
! 07/12/86 - insert include files
!          - don't allocate breg if Numoptregs=0
!                                                                    ftn3opt8
! 13/11/86 - leave int2 srtemps as int2 rather than force int4
!                                                                    ftn3opt7
! 12/11/86 - in Strength allow int2 as well as int4
!                                                                    ftn3opt6
! 09/11/86 - Opnd to take no action for char items
! 07/11/86 - use ftn_consts4 - srscale=4
!                                                                    ftn3opt5
! 16/08/86 - unmask actions of Replace and Desc
! 17/08/86 - in Desc delete >>1 of complex scale factor
! 22/08/86 - if Gould set Scale=1 in Desc (scaling incorporated in Gen)
!                                                                    ftn3opt4
! 08/07/86 - set mode LOG4 for comparison vts
! 13/06/86 - avoid CRENT on array triads
! 09/06/86 - suppress irrelevant '2900' optimisations
! 26/02/86 - set OPCAT for CHIND to 21 so that contents of Breg are preserved

==== ercs07/emas-a/f77rel/srce200_f3opt3.txt ====
!                                                              F3OPT3
! 17/09/87 - further changes to PRESVAL
!                                                      f3opt2
!05/08/87 - insert test for cmplx, line 2677 of PRESVAL
!                                                                    f3opt1
! 07/12/86 - insert include files
!          - don't allocate breg if Numoptregs=0
!                                                                    ftn3opt8
! 13/11/86 - leave int2 srtemps as int2 rather than force int4
!                                                                    ftn3opt7
! 12/11/86 - in Strength allow int2 as well as int4
!                                                                    ftn3opt6
! 09/11/86 - Opnd to take no action for char items
! 07/11/86 - use ftn_consts4 - srscale=4
!                                                                    ftn3opt5
! 16/08/86 - unmask actions of Replace and Desc
! 17/08/86 - in Desc delete >>1 of complex scale factor
! 22/08/86 - if Gould set Scale=1 in Desc (scaling incorporated in Gen)
!                                                                    ftn3opt4
! 08/07/86 - set mode LOG4 for comparison vts
! 13/06/86 - avoid CRENT on array triads

==== ercs07/emas-a/f77rel/srce200_fcelim1.txt ====
!                                                                    fcelim1
! 07/12/86 - copy of ftncelim3
!          - insert include files
! 12/06/86 - correction to error path on NEG
! 20/02/86 - comment out code after temp. return in OPTCVT
! 02/12/85 - taken from conelim43, new include files incorporated
! 24/09/84 - check for PROCID line 780 of OPTNEG
! 09/08/84 - correction to OPTDIV, line 672 moved to line 681
! copied from pnxrel01_conelimp41
! 13/06/84 - delete use of RSUB as op to CONOP
! 12/03/84 only generate MOO triad if target is 2900
! 22/11/83 set up TRACE flag and CDUMPTRACE routine
! 27/10/83 copied from ERCS06.REL90_CONELIMB12
!*
%INCLUDE "ftn_ht"
!*
{%INCLUDE "ftn_fmts2"}
!* 09/12/85 - add recordformat SUBFMT
!* modified 14/03/85
!*
!***********************************************************************

==== ercs07/emas-a/f77rel/fcvs3_comp3.txt ====
#MON
F77PARM VAX
COMPF77 ERCS02.FCVS3_FM368,.NULL
COMPF77 ERCS02.FCVS3_FM369,.NULL
COMPF77 ERCS02.FCVS3_FM370,.NULL
COMPF77 ERCS02.FCVS3_FM371,.NULL
COMPF77 ERCS02.FCVS3_FM372,.NULL
COMPF77 ERCS02.FCVS3_FM373,.NULL
COMPF77 ERCS02.FCVS3_FM374,.NULL
COMPF77 ERCS02.FCVS3_FM375,.NULL
COMPF77 ERCS02.FCVS3_FM376,.NULL
COMPF77 ERCS02.FCVS3_FM377,.NULL
COMPF77 ERCS02.FCVS3_FM378,.NULL
COMPF77 ERCS02.FCVS3_FM379,.NULL
COMPF77 ERCS02.FCVS3_FM401,.NULL
COMPF77 ERCS02.FCVS3_FM402,.NULL
COMPF77 ERCS02.FCVS3_FM403,.NULL
COMPF77 ERCS02.FCVS3_FM404,.NULL
COMPF77 ERCS02.FCVS3_FM405,.NULL
COMPF77 ERCS02.FCVS3_FM406,.NULL
COMPF77 ERCS02.FCVS3_FM500,.NULL

==== ercs07/emas-a/f77rel/fcvs5_fm520.txt ====
      PROGRAM FM520
C
C     TESTING PARAMETER STATEMENT
C
C
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041
C****
C****                          (703) 756-6153
C****
CBE** ********************** BBCCOMNT **********************************
           IMPLICIT DOUBLE PRECISION (D), COMPLEX (Z), LOGICAL (L)

==== ercs07/emas-a/f77rel/fcvsruns_run6opt1.txt ====
#N                    ***** FCVS COMPILATION RUN 6 *****
parm opt1
DEFINE 6,.OUT
DEFINE 7,TMPOUT
FORTRAN ERCS07:f77rel.FCVS2_FM363,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS2_FM364,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM368,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM369,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM370,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM371,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM372,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM373,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM374,TMP

==== ercs07/emas-a/f77rel/fcvsruns_run6opt2.txt ====
#N                    ***** FCVS COMPILATION RUN 6 *****
parm opt2
DEFINE 6,.OUT
DEFINE 7,TMPOUT
FORTRAN ERCS07:f77rel.FCVS2_FM363,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS2_FM364,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM368,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM369,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM370,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM371,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM372,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM373,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM374,TMP

==== ercs07/emas-a/f77rel/finput1a.txt ====
!                                                                finput1a
! 15/01/87 - insert %alias for in number
!
!                                                               finput1
! 16/11/86 - incorporate changes up to ftninput19
! 10/10/86 - insert include files
!                                                               ftninput18
! 01/10/86 - give error line if only listing is object
!*                                                              ftninput17
! 06/09/86 - inhibit listings of include files unless requested
! 02/08/86 - support EBCDIC on Amdahl
!*                                                              ftninput16
!* 10/06/86 allow '...' '....' (in formats)
!* 07/06/86 Gould extensions
!* 04/06/86 align dp consts                                     ftninput15
!* 22/04/86 allow for NatSemi hex const reversal
!* 26/11/85 avoid spurious * continuation marker in List Source Line
!* 21/09/85 allow Q consts on IBM
!* 30/08/85 change to use In Number for numeric conversion
!* 07/06/85 J140 Read Line - avoid possible misinterpretation of .<lett>.
!* modified 21/02/85

==== ercs07/emas-a/f77rel/fcvs3_obey3.txt ====
PARM NOCHECK
#MON
F77PARM VAX
DEFINE 7,OUT
DEFINE 6,.OUT
F77P ERCS02.FCVS3_FM368,Y
RUN Y
F77P ERCS02.FCVS3_FM369,Y
RUN Y
F77P ERCS02.FCVS3_FM370,Y
RUN Y
F77P ERCS02.FCVS3_FM371,Y
RUN Y
F77P ERCS02.FCVS3_FM372,Y
RUN Y
F77P ERCS02.FCVS3_FM373,Y
RUN Y
F77P ERCS02.FCVS3_FM374,Y
RUN Y
F77P ERCS02.FCVS3_FM375,Y
RUN Y

==== ercs07/emas-a/f77rel/nbsfruns_detopt1.txt ====
detach nbsfruns_f77opt1,100,nbsfl
detach nbsfruns_compare,100,.lp23

==== ercs07/emas-a/f77rel/srce200_fcfmt1a.txt ====
!                                                                fcfmt1a
! 15/01/87 - insert %alias for Amdahl routines
!
!                                                                fcfmt1
! 10/10/86 - copied from ftncfmt8
!
!Modified    3/July/86    11:00



               !-------------------------------------------!
               !                                           !
               !     Conditional Compilation Constants     !
               !                                           !
               !-------------------------------------------!

                    %CONSTINTEGER Compile Time Formats= 1
                                                     {= yes}

            !If switching between Compile-Time and Run-Time then
            !   expose/comment out the INCLUDE statements below

==== ercs07/emas-a/f77rel/nbsfruns_detopt2.txt ====
detach nbsfruns_f77opt2,100,nbsfl
detach nbsfruns_compare,100,.lp23

==== ercs07/emas-a/f77rel/fcvs0_fm906d.txt ====
2.5D0
1.5  2.5D0  3.5E0
(3.0,4.0)
(1.0,0.0)  (0.0,0.0)  (0.0,3.0)
2, 2.5D0, 2.5D0, T, (3.0,4.0), 'TEST'
( 2.5 , 3.5 )
(1.0        ,
   2.0)
, (2.0, 3.0),,6.0D0, 2*,
1.0D0  (2.0, 2.0)  3.0D0  (4.0, 4.0)  5.0D0
6.0D0  (7.0, 7.0) / 8.0D0  (9.0, 9.0) 10.0D0
2.0D0 4.0D0 / 6.0D0 8.0D0 10.0D0

==== ercs07/emas-a/f77rel/nbsftests_part01data.txt ====
  999
  555554444
  666  777777  8
  333333111112222222255555444444444444
  7.7123456.7
  8.889.9997.123456
  5.44446.5555533.133.133.133.1444.1
  5555.15555.1  66666.166666.1  44.22
  2.12.12.12.12.1666.3334.3334.3334.333
-0.1E+01+0.22E-01 0.333E+02 0.4444E+03-0.55555E-03+0.666666E+00+0.9876543E+12
1.05.522.066.633.123455.0789
123.00456.88 0.123E+01  +0.987+1 -0.2345+02 -0.6879E+2+0.7E+03 0.4E+03
 0.9876543E-04+0.1357913E-04
19.34+0.2468E+02   +.765+287.643.96 0.5407E+0243.96+0.5407E+0243.96   0.5407+2
  +0.1D+06
-0.334D-04   -.334-4 +0.7657654D00 0.12345678901D+10
 +0.98765432109876D-1+0.98765432109876D-01    .98765432109876-1
 -.555555542D+03  -0.555555542+3
TABC
FDEFFGHIT*+T1F$)TF
  9.91.19.92.29.93.39.94.49.91.19.92.29.93.39.94.4

==== ercs07/emas-a/f77rel/srce200_fdata3.txt ====
!                                                       fdata3
! 20/07/87 - intiliase com_sstca in initdata
!                                                              fdata2
! 23/03/87 - set Genproctype for cdabs to 10802
!                                                               fdata1
! 16/11/86 - incorporate changes to ftndata17
! 24/09/86 - insert include files
!                                                               ftndata15
! 12/09/86 - third param to Array Space to allow/inhib use of BSS
! 09/09/86 - set Eflags&X'20' if profiling
! 07/09/86 - Intrincall special action for Gould intrinsics
! 06/09/86 - use BSS for local arrays
!                                                               ftndata14
! 16/07/86 - Syscall mod for Lattice
! 09/07/86                                                      ftndata13
!*
%include "ftn_ht"
{%include "ftn_fmts1"}
!* 09/12/85 - add recordformat SUBFMT
!* modified 14/03/85
!*

==== ercs07/emas-a/f77rel/whetruns_rundl.txt ====

Command:parm


Command:#MON

 1 PT 3 DCPU

Command:f77 ercs07:f77rel.whetruns_WHETD,WHETDY,.LP23
   program    WHET2
   subroutine PA
   subroutine P0
   subroutine P3
   subroutine POUT
 248 Statements compiled
 345 PT 938 DCPU

Command:#N


Command:run WHETDY

==== ercs07/emas-a/f77rel/freal1a.txt ====
!                                                              freal1a
! 15/01/87 - insert %alias for amdahl system routines
!
!                                                             freal1
! 10/10/86 - copied from ftnreal6
     !Modified   28/May/86    9.00





!**********************************************************************!
!**********************************************************************!
         !                                                   !
         !                                                   !
         !     Support Procedures for Numeric Conversion     !
         !                                                   !
         !                    of Real Numbers                !
         !                                                   !
         !         between Binary and Character Form         !
         !                                                   !

==== ercs07/emas-a/f77rel/fcvsruns_run8opt.txt ====
#N                    ***** FCVS COMPILATION RUN 8 *****
parm opt
DEFINE 6,.OUT
FORTRAN ERCS07:f77rel.FCVS4_FM802,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM803,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM804,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM805,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM806,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM807,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM808,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM809,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM810,TMP
RUN TMP

==== ercs07/emas-a/f77rel/fcvsruns_detach.txt ====
DETACH FCVSRUNS_RUN1,60,LOG=run1l
detach fcvsruns_comprun1,60,log=.lp23
DETACH FCVSRUNS_RUN2,60,LOG=run2l
detach fcvsruns_comprun2,60,log=.lp23
DETACH FCVSRUNS_RUN3,60,LOG=run3l
detach fcvsruns_comprun3,60,log=.lp23
DETACH FCVSRUNS_RUN4,60,LOG=run4l
detach fcvsruns_comprun4,60,log=.lp23
DETACH FCVSRUNS_RUN5,60,LOG=run5l
detach fcvsruns_comprun5,60,log=.lp23
DETACH FCVSRUNS_RUN6,60,LOG=run6l
detach fcvsruns_comprun6,60,log=.lp23
DETACH FCVSRUNS_RUN7,60,LOG=run7l
detach fcvsruns_comprun7,60,log=.lp23
DETACH FCVSRUNS_RUN8,60,LOG=run8l
detach fcvsruns_comprun8,60,log=.lp23
DETACH FCVSRUNS_RUN9,60,LOG=run9l
detach fcvsruns_comprun9,60,log=.lp23
DETACH FCVSRUNS_RUN10,60,LOG=run10l
detach fcvsruns_comprun10,60,log=.lp23

==== ercs07/emas-a/f77rel/nbsftests_part01.txt ====
C*****    PART1    *****************************************************H0000010
C*****                                                                  H0000015
C*****    ANSI FORTRAN   (X3.9-1966)     TEST PROGRAMS                  H0000020
C*****                                                                  H0000025
C*****    PREPARED BY THE NATIONAL BUREAU OF STANDARDS      VERSION 3   H0000030
C*****                                                                  H0000035
C*****    JUNE 1974                                                     H0000040
C*****                                                                  H0000045
C*****    PART 1  OF 14 PARTS                                           H0000050
C*****                                                                  H0000055
C*****    SEGMENTS INCLUDED                                             H0000060
C*****                                                                  H0000065
C*****      DATA1 - 003 TEST FORMAT OF DATA STATEMENT                   H0000070
C*****                                                                  H0000075
C*****      FMTRW - 008 FORMATTED INPUT/OUTPUT                          H0000080
C*****                                                                  H0000085
C*****      AFRMT - 009 A-CONVERSION                                    H0000090
C*****                                                                  H0000095
C*****      DATA2 - 010 DATA STATEMENT USE                              H0000100
C*****                                                                  H0000105
C*****      AASGN - 011 REAL AND INTEGER ARITH ASSIGN. STMNTS           H0000110

==== ercs07/emas-a/f77rel/nbsftests_part02.txt ====
C*****    PART2    *****************************************************H0000400
C*****                                                                  H0000405
C*****    ANSI FORTRAN   (X3.9-1966)     TEST PROGRAMS                  H0000410
C*****                                                                  H0000415
C*****    PREPARED BY THE NATIONAL BUREAU OF STANDARDS      VERSION 3   H0000420
C*****                                                                  H0000425
C*****    JUNE 1973                                                     H0000430
C*****                                                                  H0000435
C*****    PART 2  OF 14 PARTS                                           H0000440
C*****                                                                  H0000445
C*****    SEGMENTS INCLUDED                                             H0000450
C*****                                                                  H0000455
C*****      DASGN - 013 SIMPLE D.P. ASSIGNMENT STATEMENTS               H0000460
C*****                                                                  H0000465
C*****      CASGN - 015 SIMPLE COMPLEX ASSIGNMENT STATEMENTS            H0000470
C*****                                                                  H0010400
C*****  THE FOLLOWING SPECIFICATIONS ARE TO BE USED ONLY WHEN           H0010405
C*****  SEGMENTS  013  AND  015  ARE RUN AS ONE MAIN PROGRAM.           H0010410
C*****                                                                  H0010415
      DOUBLE PRECISION  MCAVD,MCBVD,MCCVD,MCDVD,MCEVD,MCFVD,MCGVD,      H0010420
     1MCHVD,MCIVD,EEDVD,ACVD,BCVD,CCVD,DCVD,DDDVD,CCDVD,FFDVD,GGDVD,    H0010425

==== ercs07/emas-a/f77rel/nbsftests_part03.txt ====
C*****    PART3    *****************************************************H0000700
C*****                                                                  H0000705
C*****    ANSI FORTRAN   (X3.9-1966)     TEST PROGRAMS                  H0000710
C*****                                                                  H0000715
C*****    PREPARED BY THE NATIONAL BUREAU OF STANDARDS      VERSION 3   H0000720
C*****                                                                  H0000725
C*****    JUNE 1974                                                     H0000730
C*****                                                                  H0000735
C*****    PART 3  OF 14 PARTS                                           H0000740
C*****                                                                  H0000745
C*****    SEGMENTS INCLUDED                                             H0000750
C*****                                                                  H0000755
C*****      LASGN - 016 LOGICAL ASSIGNMENT STATEMENTS                   H0000760
C*****                                                                  H0000765
C*****      INTRL - 017 ARITHMETIC ASSIGNMENT STATEMENTS                H0000770
C*****                                                                  H0000775
C*****      UGOTO - 020 UNCONDITIONAL GO TO STATEMENTS                  H0000780
C*****                                                                  H0000785
C*****      AGOTO - 021 GO TO ASSIGNMENT STATEMENTS                     H0000790
C*****                                                                  H0000795
C*****      CGOTO - 022 COMPUTED GO TO STATEMENTS                       H0000800

==== ercs07/emas-a/f77rel/falloc1a.txt ====
!                                                               falloc1a
! 15/01/87 - insert %alis for FORMATCD
!
!                                                               falloc1
! 16/11/86 - incorporate changes up to ftnalloc15
! 23/09/86 - include files inserted
!                                                               ftnalloc13
! 16/09/86 - syntax modified to fault missing WHILE
!                                                               ftnalloc12
! 06/08/86 - use BSS for local arrays when practicable
!                                                               ftnalloc11
! 13/08/86 - allow up to 15Mb of common
! 22/08/86 - correct -I2 action for lit int and log args (in Alloc Const)
!* 07/07/86                                                     ftnalloc10
!*
%include "ftn_ht"
%if target=LATTICE %thenstart
   %externalroutinespec ICdatarec(%integer idrec,adict,anames)
%finish
{%include "ftn_csynt70"}
!*

==== ercs07/emas-a/f77rel/nbsftests_part04.txt ====
C*****    PART4    *****************************************************H0001200
C*****                                                                  H0001205
C*****    ANSI FORTRAN   (X3.9-1966)     TEST PROGRAMS                  H0001210
C*****                                                                  H0001215
C*****    PREPARED BY THE NATIONAL BUREAU OF STANDARDS      VERSION 3   H0001220
C*****                                                                  H0001225
C*****    JUNE 1973                                                     H0001230
C*****                                                                  H0001235
C*****    PART 4  OF 14 PARTS                                           H0001240
C*****                                                                  H0001245
C*****    SEGMENTS INCLUDED                                             H0001250
C*****                                                                  H0001255
C*****      ARFAS - 035 ADDITION AND SUBTRACTION OF DP VALUES           H0001260
C*****                                                                  H0001265
C*****      ARBMI - 036 MULTIPLICATION OF INTEGER VALUES                H0001270
C*****                                                                  H0001275
C*****      ARBMR - 037 MULTIPLICATION OF REAL VALUES                   H0001280
C*****                                                                  H0001285
C*****      ARFMD - 038 MULTIPLICATION OF DOUBLE PRECISION VALUES       H0001290
C*****                                                                  H0001295
C*****      ARBDV - 039 DIVISION OF INTEGER AND REAL VALUES             H0001300

==== ercs07/emas-a/f77rel/nbsftests_part05.txt ====
C*****    PART5    *****************************************************H0001800
C*****                                                                  H0001805
C*****    ANSI FORTRAN   (X3.9-1966)     TEST PROGRAMS                  H0001810
C*****                                                                  H0001815
C*****    PREPARED BY THE NATIONAL BUREAU OF STANDARDS      VERSION 3   H0001820
C*****                                                                  H0001825
C*****    JUNE 1974                                                     H0001830
C*****                                                                  H0001835
C*****    PART 5  OF 14 PARTS                                           H0001840
C*****                                                                  H0001845
C*****   SEGMENTS INCLUDED                                              H0001850
C*****                                                                  H0001855
C*****     SIMIF - 054 ARITHMETIC IF, LOGICAL IF FOLLOWED BY GO TO      H0001860
C*****                                                                  H0001865
C*****     IFABS - 055 ABS,IABS(ABSOLUTE VALUE)                         H0001870
C*****                                                                  H0001875
C*****     IFFLT - 056 FLOAT(CONVERT FROM INTEGER TO REAL)              H0001880
C*****                                                                  H0001885
C*****     IFFIX - 057 IFIX(CONVERT FROM REAL TO INTEGER)               H0001890
C*****                                                                  H0001895
C*****     IFSGN - 058 SIGN,ISIGN(TRANSFER OF SIGN)                     H0001900

==== ercs07/emas-a/f77rel/nbsftests_part06.txt ====
C*****    PART6    *****************************************************H0002300
C*****                                                                  H0002305
C*****    ANSI FORTRAN   (X3.9-1966)     TEST PROGRAMS                  H0002310
C*****                                                                  H0002315
C*****    PREPARED BY THE NATIONAL BUREAU OF STANDARDS      VERSION 3   H0002320
C*****                                                                  H0002325
C*****    JUNE 1973                                                     H0002330
C*****                                                                  H0002335
C*****    PART 6  OF 14 PARTS                                           H0002340
C*****                                                                  H0002345
C*****    SEGMENTS INCLUDED                                             H0002350
C*****                                                                  H0002355
C*****      IFDIM - 065 DIM, IDIM (POSITIVE DIFFERENCE)                 H0002360
C*****                                                                  H0002365
C*****      IFSGL - 066 SNGL (OBTAIN MOST SIGNIFICANT PART)             H0002370
C*****                                                                  H0002375
C*****      IFREL - 067 REAL (OBTAIN REAL PART OF COMPLEX ARGUMENT)     H0002380
C*****                                                                  H0002385
C*****      IFIMG - 068 AIMAG (OBTAIN IMAGINARY PART OF COMPLEX NO.)    H0002390
C*****                                                                  H0002395
C*****      IFDBL - 069 DBLE (EXPRESS REAL ARGUMENT IN D.P. FORM)       H0002400

==== ercs07/emas-a/f77rel/nbsftests_part07.txt ====
C*****    PART7    *****************************************************H0002700
C*****                                                                  H0002705
C*****    ANSI FORTRAN   (X3.9-1966)     TEST PROGRAMS                  H0002710
C*****                                                                  H0002715
C*****    PREPARED BY THE NATIONAL BUREAU OF STANDARDS      VERSION 3   H0002720
C*****                                                                  H0002725
C*****    JUNE 1973                                                     H0002730
C*****                                                                  H0002735
C*****    PART 7  OF 14 PARTS                                           H0002740
C*****                                                                  H0002745
C*****    SEGMENTS INCLUDED                                             H0002750
C*****                                                                  H0002755
C*****      EXPON - 080  EXP                                            H0002760
C*****                                                                  H0002765
C*****      DEXPO - 081  DEXP                                           H0002770
C*****                                                                  H0002775
C*****      CEXPO - 082  CEXP                                           H0002780
C*****                                                                  H0002785
C*****      LOGTM - 083  ALOG                                           H0002790
C*****                                                                  H0002795
C*****      DPLOG - 084  DLOG                                           H0002800

==== ercs07/emas-a/f77rel/nbsftests_part08.txt ====
C*****    PART8    *****************************************************H0003200
C*****                                                                  H0003205
C*****    ANSI FORTRAN   (X3.9-1966)     TEST PROGRAMS                  H0003210
C*****                                                                  H0003215
C*****    PREPARED BY THE NATIONAL BUREAU OF STANDARDS      VERSION 3   H0003220
C*****                                                                  H0003225
C*****    JUNE 1973                                                     H0003230
C*****                                                                  H0003235
C*****    PART 8  OF 14 PARTS                                           H0003240
C*****                                                                  H0003245
C*****    SEGMENTS INCLUDED                                             H0003250
C*****                                                                  H0003255
C*****      TANGH - 094  TANH                                           H0003260
C*****                                                                  H0003265
C*****      SQROT - 095  SQRT                                           H0003270
C*****                                                                  H0003275
C*****      DSQRO - 096  DSQRT                                          H0003280
C*****                                                                  H0003285
C*****      CSQRO - 097  CSQRT                                          H0003290
C*****                                                                  H0003295
C*****      ARCTG - 098  ATAN                                           H0003300

==== ercs07/emas-a/f77rel/srce200_f5opt1.txt ====
!                                                                     f5opt1
! 07/12/86 - insert include files
!                                                                     ftn5opt3
! 14/09/86 - call Get Space for use by Preserve
!          - set correct length for common not already in host
!                                                                     ftn5opt2
! 14/06/86 - suppress insertion of argument subprogs
!* modified 17/10/84
!*
%constinteger DSCALE=2
!*
!%include "bits_consts"
!*
!********************* TRIAD qualifiers ********************************
!*
%CONSTINTEGER NULL    = 0
%CONSTINTEGER LABID   = 1
%CONSTINTEGER PLABID  = 2
%CONSTINTEGER PROCID  = 3
%CONSTINTEGER STKLIT  = 4
%CONSTINTEGER GLALIT  = 5

==== ercs07/emas-a/f77rel/nbsftests_part09.txt ====
C*****    PART9    *****************************************************H0003700
C*****                                                                  H0003705
C*****    ANSI FORTRAN   (X3.9-1966)     TEST PROGRAMS                  H0003710
C*****                                                                  H0003715
C*****    PREPARED BY THE NATIONAL BUREAU OF STANDARDS      VERSION 3   H0003720
C*****                                                                  H0003725
C*****    JUNE 1974                                                     H0003730
C*****                                                                  H0003735
C*****    PART 9  OF 14 PARTS                                           H0003740
C*****                                                                  H0003745
C*****    SEGMENTS INCLUDED                                             H0003750
C*****                                                                  H0003755
C*****      CPXAD - 140 ADDITION AND SUBTRACTION OF COMPLEX NUMBERS     H0003760
C*****                                                                  H0003765
C*****      CPXMU - 141 MULTIPLICATION OF COMPLEX NUMBERS               H0003770
C*****                                                                  H0003775
C*****      CPXDV - 142 DIVISION OF COMPLEX NUMBERS                     H0003780
C*****                                                                  H0003785
C*****      CPXEX - 143 EXPONENTIATION OF COMPLEX NUMBERS               H0003790
C*****                                                                  H0003795
C*****      CPXOP - 144 ARITHMETIC OPERATIONS ON COMPLEX NUMBERS        H0003800

==== ercs07/emas-a/f77rel/fcvsruns_run3opt.txt ====
#N                    ***** FCVS COMPILATION RUN 3 *****
parm opt
DEFINE 6,.OUT
DEFINE 7,TMPOUT
FORTRAN ERCS07:f77rel.FCVS0_FM044,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM045,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM050,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM056,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS1_FM060,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS1_FM061,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS1_FM062,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM080,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS1_FM097,TMP

==== ercs07/emas-a/f77rel/nbsftests_part10.txt ====
C*****    PART10    ****************************************************H0004300
C*****                                                                  H0004305
C*****    ANSI FORTRAN   (X3.9-1966)     TEST PROGRAMS                  H0004310
C*****                                                                  H0004315
C*****    PREPARED BY THE NATIONAL BUREAU OF STANDARDS      VERSION 3   H0004320
C*****                                                                  H0004325
C*****    JUNE 1973                                                     H0004330
C*****                                                                  H0004335
C*****    PART 10 OF 14 PARTS                                           H0004340
C*****                                                                  H0004345
C*****    SEGMENTS INCLUDED                                             H0004350
C*****                                                                  H0004355
C*****      BRFCP - 160 REAL EXTERNAL FUNCTIONS                         H0004360
C*****                                                                  H0004365
C*****        AFS - 400    REAL ARGUMENT                                H0004370
C*****                                                                  H0004375
C*****        BFS - 420    REAL ARGUMENTS                               H0004380
C*****                                                                  H0004385
C*****        CFS - 430    INTEGER ARGUMENT                             H0004390
C*****                                                                  H0004395
C*****        DFS - 440    INTEGER ARGUMENTS                            H0004400

==== ercs07/emas-a/f77rel/srce200_f4opt1a.txt ====
!                                                                   f4opt1a
! 04/02/87 - make OPTFILES an own record
!
!                                                                    f4opt1
! 07/12/86 - insert include files
!                                                                    ftn4opt8
! 24/11/86 - generate code for all procs, even if substituted
!                                                                    ftn4opt7
! 09/11/86 - generate code for any procs not referenced
!                                                                    ftn4opt6
! 30/09/86 - correct processing of exclusion list
!                                                                    ftn4opt5
! 16/09/86 - suppress tracing in -W option processing
!                                                                    ftn4opt4
! 14/09/86 - support for -W option nominating inclusion/exclusion lists
!                                                                    ftn4opt3
! 15/06/86 - set Subslimit from Options2
! 14/06/86 - mask out mode field in label rds
! 12/06/86 - avoid substituting EXTERNAL procs
! 09/12/85 - taken from op48, new include files inserted
!

==== ercs07/emas-a/f77rel/nbsftests_part11.txt ====
C*****    PART11    ****************************************************H0004800
C*****                                                                  H0004805
C*****    ANSI FORTRAN   (X3.9-1966)     TEST PROGRAMS                  H0004810
C*****                                                                  H0004815
C*****    PREPARED BY THE NATIONAL BUREAU OF STANDARDS      VERSION 3   H0004820
C*****                                                                  H0004825
C*****    JUNE 1973                                                     H0004830
C*****                                                                  H0004835
C*****    PART 11 OF 14 PARTS                                           H0004840
C*****                                                                  H0004845
C*****    SEGMENTS INCLUDED                                             H0004850
C*****                                                                  H0004855
C*****      DPFCP - 165 DOUBLE PRECISION FUNCTIONS                      H0004860
C*****                                                                  H0004865
C*****        AFD - 405   REAL ARGUMENT                                 H0004870
C*****                                                                  H0004875
C*****        BFD - 415   INTEGER ARGUMENT                              H0004880
C*****                                                                  H0004885
C*****        CFD - 425   D.P. ARGUMENT                                 H0004890
C*****                                                                  H0004895
C*****        DFD - 435   COMPLEX ARGUMENTS                             H0004900

==== ercs07/emas-a/f77rel/nbsftests_part12.txt ====
C*****    PART12    ****************************************************H0005400
C*****                                                 JAN.1974  REV.1  H0005405
C*****    ANSI FORTRAN   (X3.9-1966)     TEST PROGRAMS                  H0005410
C*****                                                                  H0005415
C*****    PREPARED BY THE NATIONAL BUREAU OF STANDARDS      VERSION 3   H0005420
C*****                                                                  H0005425
C*****    JUNE 1974                                                     H0005430
C*****                                                                  H0005435
C*****    PART 12 OF 14 PARTS                                           H0005440
C*****                                                                  H0005445
C*****    SEGMENTS INCLUDED                                             H0005450
C*****                                                                  H0005455
C*****      BLKDA - 179  BLOCK DATA TEST                                H0005460
C*****                                                                  H0005465
C*****        BLAKD - 419  BLOCK DATA SUBPROGRAM                        H0005470
C*****                                                                  H0005475
C*****        BLBKD - 429  BLOCK DATA SUBPROGRAM                        H0005480
C*****                                                                  H0005485
C*****        BLCKD - 439  BLOCK DATA SUBPROGRAM                        H0005490
C*****                                                                  H0005495
C*****      UNFRW - 180  UNFORMATTED READ  AND WRITE                    H0005500

==== ercs07/emas-a/f77rel/nbsftests_part13.txt ====
C*****    PART13    ****************************************************H0006000
C*****                                                                  H0006005
C*****    ANSI FORTRAN   (X3.9-1966)     TEST PROGRAMS                  H0006010
C*****                                                                  H0006015
C*****    PREPARED BY THE NATIONAL BUREAU OF STANDARDS      VERSION 3   H0006020
C*****                                                                  H0006025
C*****    JUNE 1974                                                     H0006030
C*****                                                                  H0006035
C*****    PART 13 OF 14 PARTS                                           H0006040
C*****                                                                  H0006045
C*****    SEGMENTS INCLUDED                                             H0006050
C*****                                                                  H0006055
C*****      LOGIF - 300  LOGICAL IF STATEMENTS                          H0006060
C*****                                                                  H0006065
C*****        SMCQ  - 411  SUBROUTINE                                   H0006070
C*****                                                                  H0006075
C*****      BARIF - 301  ARITHMETIC IF STATEMENTS                       H0006080
C*****                                                                  H0006085
C*****      FARIF - 302  ARITHMETIC IF STATEMENTS                       H0006090
C*****                                                                  H0006095
C*****      IOFMT - 310  FORMATTED READ, WRITE                          H0006100

==== ercs07/emas-a/f77rel/nbsftests_part14.txt ====
C*****    PART14    ****************************************************H0006400
C*****                                                                  H0006405
C*****    ANSI FORTRAN   (X3.9-1966)     TEST PROGRAMS                  H0006410
C*****                                                                  H0006415
C*****    PREPARED BY THE NATIONAL BUREAU OF STANDARDS      VERSION 3   H0006420
C*****                                                                  H0006425
C*****    JUNE 1973                                                     H0006430
C*****                                                                  H0006435
C*****    PART 14 OF 14 PARTS                                           H0006440
C*****                                                                  H0006445
C*****    SEGMENTS INCLUDED                                             H0006450
C*****                                                                  H0006455
C*****    MISC5 - 350  SPECIFICATIONS FOR PROGRAM FORM                  H0006460
C*****                                                                  H0006465
C*****    FUNMX - 351  BASIC EXTERNAL FUNCTIONS USING TRIG FORMULAS     H0006470
C*****                                                                  H0006475
C*****    NAMES - 352  NAMES RESEMBLE FORTRAN VERBS AND FUNCTION NAMES  H0006480
C*****                                                                  H0006485
C*****      MAQQ - 413  SUBROUTINE CALLED FROM NAMES                    H0006490
C*****                                                                  H0006495
C*****      MBQQ - 463  SUBROUTINE CALLED FROM NAMES                    H0006500

==== ercs07/emas-a/f77rel/comp207.txt ====
parm noarray,nocheck
imp srce200_xgen27c,xgen27cy
parm opt
imp srce200_XCONTRl5a,xcontrl5ay
imp srce200_FALLOC2a,falloc2ay
imp srce200_FANAL2a,fanal2ay
imp srce200_FARITH1,farith1y
imp srce200_FCINNUM1a,fcinnum1ay
imp srce200_fcode2,fcode2y
imp srce200_FDATA2,fdata2y
imp srce200_FEND2,fend2y
imp srce200_FGEN2,fgen2y
imp srce200_FINPUT2a,finput2ay
imp srce200_FMAP1,fmap1y
imp srce200_FMESS1,fmess1y
imp srce200_FOPTDUM1,foptdum1y
imp srce200_FREAL1b,freal1by
imp srce200_Froot1d,froot1dy
imp srce200_FTRIADS1,ftriads1y
imp srce200_FFPTOS1a,ffptos1ay
imp srce200_FCFMT1a,fcfmt1ay

==== ercs07/emas-a/f77rel/comp208.txt ====
parm noarray,nocheck
imp srce200_xgen27d,xgen27dy
parm opt
imp srce200_XCONTRl5b,xcontrl5by
imp srce200_FALLOC2a,falloc2ay
imp srce200_FANAL2a,fanal2ay
imp srce200_FARITH1,farith1y
imp srce200_FCINNUM2a,fcinnum2ay
imp srce200_fcode3,fcode3y
imp srce200_FDATA2,fdata2y
imp srce200_FEND3,fend3y
imp srce200_FGEN3,fgen3y
imp srce200_FINPUT3a,finput3ay
imp srce200_FMAP1,fmap1y
imp srce200_FMESS2,fmess2y
imp srce200_FOPTDUM1,foptdum1y
imp srce200_FREAL1b,freal1by
imp srce200_Froot1e,froot1ey
imp srce200_FTRIADS1,ftriads1y
imp srce200_FFPTOS1a,ffptos1ay
imp srce200_FCFMT1a,fcfmt1ay

==== ercs07/emas-a/f77rel/test.txt ====
      r=0.12345678987654321
      end

==== ercs07/emas-a/f77rel/comp215.txt ====
parm noarray,nocheck
imp srce200_xgen30,xgen30y
parm opt
imp srce200_XCONTRl7b,xcontrl7by
imp srce200_FALLOC3a,falloc3ay
imp srce200_FANAL4a,fanal4ay
imp srce200_FARITH1,farith1y
imp srce200_FCINNUM2a,fcinnum2ay
imp srce200_fcode3,fcode3y
imp srce200_FDATa3,fdata3y
imp srce200_FEND4,fend4y
imp srce200_FGEN3,fgen3y
imp srce200_FINPUT3a,finput3ay
imp srce200_FMAP1,fmap1y
imp srce200_FMESS2,fmess2y
imp srce200_FOPTDUM1,foptdum1y
imp srce200_FREAL1b,freal1by
imp srce200_Froot1j,froot1jy
imp srce200_FTRIADS1,ftriads1y
imp srce200_FFPTOS1a,ffptos1ay
imp srce200_FCFMT1a,fcfmt1ay

==== ercs07/emas-a/f77rel/fcvsruns_run10opt.txt ====
#N                    ***** FCVS COMPILATION RUN 10 *****
parm opt
DEFINE 6,.OUT
FORTRAN ERCS07:f77rel.FCVS4_FM909,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM910,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM912,TMP
destroy dirfile
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM914,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM915,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM916,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM917,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM918,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM919,TMP

==== ercs07/emas-a/f77rel/comp216.txt ====
parm opt
imp srce200_XCONTRl8,xcontrl8y
imp srce200_FALLOC3a,falloc3ay
imp srce200_FANAL4a,fanal4ay
imp srce200_FARITH1,farith1y
imp srce200_FCINNUM2a,fcinnum2ay
imp srce200_fcode3,fcode3y
imp srce200_FDATa3,fdata3y
imp srce200_FEND4,fend4y
imp srce200_FGEN3,fgen3y
imp srce200_FINPUT3a,finput3ay
imp srce200_FMAP1,fmap1y
imp srce200_FMESS2,fmess2y
imp srce200_FOPTDUM1,foptdum1y
imp srce200_FREAL1b,freal1by
imp srce200_Froot1l,froot1ly
imp srce200_FTRIADS1,ftriads1y
imp srce200_FFPTOS1a,ffptos1ay
imp srce200_FCFMT1a,fcfmt1ay

==== ercs07/emas-a/f77rel/whetd.txt ====
	 PROGRAM WHET2
 
***************************************************************************
*                                                                         *
*   DOUBLE PRECISION FORTRAN WHETSTONE FOR UTX 1.1 OPERATING SYSTEM       *
*      See fwhet.jcl for compilation and execution instructions.          *
*									  *
* REVISION HISTORY: 							  *
* -------- -------							  *
* 1.  ADDED STATEMENTS TO PRINT OUT CPE GROUP HEADER ON PRINTOUT.         *
* 2.  ADDED STATEMENTS TO CALCULATE ALL CPUTIME FROM TIMES FUNCTION.      *
*						CPE/MFR 	          *
* 3.  ADDED DOCUMENTATION.                                                *
*						CPE/CLS 7/29/85		  *
* ----------------------------------------------------------------------- *
*    MODULE NAME:  STANDARD DOUBLE PRECISION FORTRAN WHETSTONE BENCHMARK  *
*    AUTHOR:       PRODUCT QUALITY ASSURANCE				  *
*    MODIFIED:     COMPUTER PEFORMANCE EVALUATION 08/01/85	 	  *
* ----------------------------------------------------------------------- *
* 	PURPOSE:							  *
*       -------								  *

==== ercs07/emas-a/f77rel/fcvsruns_run8opt1.txt ====
#N                    ***** FCVS COMPILATION RUN 8 *****
parm opt1
DEFINE 6,.OUT
FORTRAN ERCS07:f77rel.FCVS4_FM802,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM803,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM804,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM805,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM806,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM807,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM808,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM809,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM810,TMP
RUN TMP

==== ercs07/emas-a/f77rel/fcvsruns_run8opt2.txt ====
#N                    ***** FCVS COMPILATION RUN 8 *****
parm opt2
DEFINE 6,.OUT
FORTRAN ERCS07:f77rel.FCVS4_FM802,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM803,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM804,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM805,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM806,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM807,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM808,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM809,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM810,TMP
RUN TMP

==== ercs07/emas-a/f77rel/srce200_froot1j.txt ====
!                                                         froot1j
! 28/07/87 - change version message to 2.15
!                                                                froot1i
! 02/07/87 - change version message
!                                                          froot1h
! 30/06/87 - do not set bit 3 of F77parm (now done in xcontrl)
! 09/06/87 - change version message
!                                                              froot1g
! 28/04/87 - set Com_Opt as in frootc, change version message
!                                                                froot1e
! 27/04/87 - change version message
! 28/04/87 - set bit 3 of com_f77parm if required, line 684
!             set com_arraychecks to FULL instead of YES, line 691
!                                                              froot1d
!06/04/87 - change version message
! 01/04/87 - change Com_Opt in Fort77 so that PARM OPT2 is ignored
!                                                               froot1c
!23/07/87 - change Com_unasspattern
! 18/03/87 - change version message
!                                                               froot1b
! 17/03/87 - change version message

==== ercs07/emas-a/f77rel/srce200_froot1k.txt ====
!                                                         froot1k
! 28/07/87 - change version message to 2.13
!                                                                froot1i
! 02/07/87 - change version message
!                                                          froot1h
! 30/06/87 - do not set bit 3 of F77parm (now done in xcontrl)
! 09/06/87 - change version message
!                                                              froot1g
! 28/04/87 - set Com_Opt as in frootc, change version message
!                                                                froot1e
! 27/04/87 - change version message
! 28/04/87 - set bit 3 of com_f77parm if required, line 684
!             set com_arraychecks to FULL instead of YES, line 691
!                                                              froot1d
!06/04/87 - change version message
! 01/04/87 - change Com_Opt in Fort77 so that PARM OPT2 is ignored
!                                                               froot1c
!23/07/87 - change Com_unasspattern
! 18/03/87 - change version message
!                                                               froot1b
! 17/03/87 - change version message

==== ercs07/emas-a/f77rel/srce200_froot1l.txt ====
!                                                         froot1l
! 28/09/87 - change version message to 2.16
!                                                         froot1k
! 28/07/87 - change version message to 2.13
!                                                                froot1i
! 02/07/87 - change version message
!                                                          froot1h
! 30/06/87 - do not set bit 3 of F77parm (now done in xcontrl)
! 09/06/87 - change version message
!                                                              froot1g
! 28/04/87 - set Com_Opt as in frootc, change version message
!                                                                froot1e
! 27/04/87 - change version message
! 28/04/87 - set bit 3 of com_f77parm if required, line 684
!             set com_arraychecks to FULL instead of YES, line 691
!                                                              froot1d
!06/04/87 - change version message
! 01/04/87 - change Com_Opt in Fort77 so that PARM OPT2 is ignored
!                                                               froot1c
!23/07/87 - change Com_unasspattern
! 18/03/87 - change version message

==== ercs07/emas-a/f77rel/fcvs0_fm407.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM407
C*****                       DIRAF1 - (410)
C*****   THIS PROGRAM CALLS SUBROUTINE SN408
C***********************************************************************
C*****  TESTING OF DIRECT ACCESS FILES                        SUBSET REF
C*****          UNFORMATED RECORDS ONLY                         12.10.1
C*****
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041

==== ercs07/emas-a/f77rel/fcvsruns_run1opt1.txt ====
#N                    ***** FCVS COMPILATION RUN 1 *****
#MONLOAD 1
parm opt1
FORTRAN ercs07:f77rel.FCVS0_FM000,.NULL,.OUT
#N
DEFINE 6,.OUT
FORTRAN ERCS07:f77rel.FCVS4_FM001,TMP
RUN TMP
#N     ***** CORRUPT PROGRAM *****     FORTRAN ERCS13:FCVS0_FM002,TMP
FORTRAN ERCS07:f77rel.FCVS0_FM003,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM004,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM005,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM006,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM007,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM008,TMP
RUN TMP

==== ercs07/emas-a/f77rel/fcvsruns_run1opt2.txt ====
#N                    ***** FCVS COMPILATION RUN 1 *****
#MONLOAD 1
parm opt2
FORTRAN ercs07:f77rel.FCVS0_FM000,.NULL,.OUT
#N
DEFINE 6,.OUT
FORTRAN ERCS07:f77rel.FCVS4_FM001,TMP
RUN TMP
#N     ***** CORRUPT PROGRAM *****     FORTRAN ERCS13:FCVS0_FM002,TMP
FORTRAN ERCS07:f77rel.FCVS0_FM003,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM004,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM005,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM006,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM007,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM008,TMP
RUN TMP

==== ercs07/emas-a/f77rel/srce200_fortctl1.txt ====
!* modified 09/04/85
!*
%EXTERNALROUTINESPEC MOVE %ALIAS "S#MOVE" (%INTEGER LENGTH, FROM, TO)
%EXTERNALROUTINESPEC OUTFILE %ALIAS "EMAS3OUTFILE" (%STRINGNAME FILE, %INTEGERNAME SIZE, HOLE, PROT, CONAD, FLAG)
%EXTERNALINTEGERMAPSPEC COMREGMAP %ALIAS "S#COMREGMAP" (%INTEGER X)
%EXTERNALINTEGERFNSPEC FORT77 (%INTEGER CONTROL, OPT1, OPT2, F77PARM, OPTFLAGS, SRFLAGS, CONSOLE, LSTREAM, %C
   DSTREAM, DIAGLEV, DSIZE, TSIZE, BSIZE, LSIZE, ASIZE, SP2)
!
%ROUTINE SIM2 (%INTEGER EP, R1, R2, %INTEGERNAME R3)
   %BYTEINTEGER SYM
   !
   %ON %EVENT 9 %START
      byteinteger(R1+R3)=25 {EM}
      BYTEINTEGER(R1 + R3 + 1) = NL
      R3 = R3 + 2
      %RETURN
   %FINISH
   !
   %CYCLE R3 = 0, 1, 159
      READSYMBOL(SYM)
      BYTEINTEGER(R1 + R3) = SYM

==== ercs07/emas-a/f77rel/fcinnum1a.txt ====
!                                                              fcinnum1a
! 15/01/87 - insert %alias for amdahl system routines
!
      ! Modified    5/June/86   8.00








!***********************************************************************
!*********************************************************************%C
                                                                      %C
                                                                      %C
             A SET OF NUMBER CONVERSION ROUTINES   (version 6.0)      %C
                                                                      %C
                      FOR THE FORTRAN77                               %C
                                                                      %C
               (used either by the compiler or F77IOA and F77IOC)     %C

==== ercs07/emas-a/f77rel/ftn_consts1.txt ====
!* modified 10/10/85
!*
!*
%if HOST = PERQPNX %thenstart
!*
   %constinteger WSCALE = 1;! scale word address to byte address
   %constinteger BSCALE = 1;! scaling factor for words to architectural units
   %constinteger CSCALE = 1;! byte offset to architectural unit offset
   %constinteger DSCALE = 1;! dict pointer scaling in RES records
!*
   %constinteger W1 = 2 ;!  1 word  in architectural units
   %constinteger W2 = 4 ;!  2 words in architectural units
   %constinteger W3 = 6 ;!  3 words in architectural units
   %constinteger W4 = 8 ;!  4 words in architectural units
!*
   %constinteger TRIADLENGTH    =  6 ;! size of an individual triad
   %constinteger BLRECSIZE      = 22 ;! size of a block table entry in architectural units
   %constinteger LOOPRECSIZE    =  8 ;! size of a loop table entry
   %constinteger PROPRECSIZE    =  6 ;! size of a propagation table entry
   %constinteger CLOOPSZ        =  6 ;! size of cloop table entry
   %constinteger FRSIZE         =  4 ;! size of freelist created by PUSHFREE

==== ercs07/emas-a/f77rel/fcvsruns_comprun1.txt ====
textcompare run1l,f77rel.fcvslists_output1
destroy run1l

==== ercs07/emas-a/f77rel/ftn_consts2.txt ====
!* modified 10/10/85
!*
!*
%if HOST = PERQPNX %thenstart
!*
   %constinteger WSCALE = 1;! scale word address to byte address
   %constinteger BSCALE = 1;! scaling factor for words to architectural units
   %constinteger CSCALE = 1;! byte offset to architectural unit offset
   %constinteger DSCALE = 1;! dict pointer scaling in RES records
!*
   %constinteger W1 = 2 ;!  1 word  in architectural units
   %constinteger W2 = 4 ;!  2 words in architectural units
   %constinteger W3 = 6 ;!  3 words in architectural units
   %constinteger W4 = 8 ;!  4 words in architectural units
!*
   %constinteger TRIADLENGTH    =  6 ;! size of an individual triad
   %constinteger BLRECSIZE      = 22 ;! size of a block table entry in architectural units
   %constinteger LOOPRECSIZE    =  8 ;! size of a loop table entry
   %constinteger PROPRECSIZE    =  6 ;! size of a propagation table entry
   %constinteger CLOOPSZ        =  6 ;! size of cloop table entry
   %constinteger FRSIZE         =  4 ;! size of freelist created by PUSHFREE

==== ercs07/emas-a/f77rel/fcvsruns_comprun2.txt ====
textcompare run2l,f77rel.fcvslists_output2
destroy run2l

==== ercs07/emas-a/f77rel/ftn_consts3.txt ====
!* modified 13/06/86
!*
!*
%if HOST = PERQPNX %thenstart
!*
   %constinteger WSCALE = 1;! scale word address to byte address
   %constinteger BSCALE = 1;! scaling factor for words to architectural units
   %constinteger CSCALE = 1;! byte offset to architectural unit offset
   %constinteger DSCALE = 1;! dict pointer scaling in RES records
!*
   %constinteger W1 = 2 ;!  1 word  in architectural units
   %constinteger W2 = 4 ;!  2 words in architectural units
   %constinteger W3 = 6 ;!  3 words in architectural units
   %constinteger W4 = 8 ;!  4 words in architectural units
!*
   %constinteger TRIADLENGTH    =  6 ;! size of an individual triad
   %constinteger BLRECSIZE      = 22 ;! size of a block table entry in architectural units
   %constinteger LOOPRECSIZE    =  8 ;! size of a loop table entry
   %constinteger PROPRECSIZE    =  6 ;! size of a propagation table entry
   %constinteger CLOOPSZ        =  6 ;! size of cloop table entry
   %constinteger FRSIZE         =  4 ;! size of freelist created by PUSHFREE

==== ercs07/emas-a/f77rel/fcvsruns_comprun3.txt ====
textcompare run3l,f77rel.fcvslists_output3
destroy run3l

==== ercs07/emas-a/f77rel/fcvsruns_comprun4.txt ====
textcompare run4l,f77rel.fcvslists_output4
destroy run4l

==== ercs07/emas-a/f77rel/fcvsruns_comprun5.txt ====
textcompare run5l,f77rel.fcvslists_output5
destroy run5l

==== ercs07/emas-a/f77rel/fcvsruns_comprun6.txt ====
textcompare run6l,f77rel.fcvslists_output6
destroy run6l

==== ercs07/emas-a/f77rel/fcvsruns_comprun7.txt ====
textcompare run7l,f77rel.fcvslists_output7
destroy run7l

==== ercs07/emas-a/f77rel/fcvsruns_comprun8.txt ====
textcompare run8l,f77rel.fcvslists_output8
destroy run8l

==== ercs07/emas-a/f77rel/fcvsruns_comprun9.txt ====
textcompare run9l,f77rel.fcvslists_output9
destroy run9l

==== ercs07/emas-a/f77rel/nbsfruns_compare.txt ====
textcompare nbsfl,ercs07:f77rel.nbsflists
destroy nbsfl

==== ercs07/emas-a/f77rel/ftn_asynt62.txt ====

!*
!* Syntax tables generated from file SYNTAX62 on 02/06/84 at 12.03.44
!*
%CONSTHALFINTEGERARRAY SUB(0:127)=  %C                            
    0,    2, 1608,  218, 4880,    0, 4698, 4852,   38, 4640,
  212, 2604, 2716,  786,  240,  266,  888,  586,  532,  358,
  462,  608,  942, 1576, 1524, 1378, 1556, 1012, 1028, 1038,
 1066, 1202, 1272, 1174, 1106, 1302, 1130, 1322, 1224, 1498,
 4156, 4040, 2796, 3128, 3158, 2844, 3100, 3236, 3884, 4572,
 3918, 3706, 4058, 4422, 3654, 3944, 4592, 2666, 2924, 2912,
 3042, 2942, 3034, 3206, 3534, 3264, 3334, 3582, 3344, 3436,
 3448, 3608, 3680, 3836, 4076, 4016, 4212, 4270, 4946, 4554,
 0(48);
%CONSTHALFINTEGERARRAY LOOKUP(0:25) =  %C
 1610, 1638, 1678, 1840, 1948, 2106, 2116,    0, 2156,    0,
    0, 2252,    0,    0, 2284, 2300,    0, 2368, 2492,    0,
    0,    0, 2542, 2564,    0,    0;
%CONSTBYTEINTEGERARRAY SSTRING(0:700)=  %C                       
   7,  80,  82,  79,  71,  82,  65,  77,   8,  70,
  85,  78,  67,  84,  73,  79,  78,   0,  10,  83,

==== ercs07/emas-a/f77rel/fcvslists_output10.txt ====
*****    BATCH JOB FCVSRUNS_RUN10   STARTED AT 13.24.04 ON 04/03/87    ********

EDINBURGH.EMAS-A service,  Subsys 02 MAR-(t)
04/03/87 13.24.06  Users=31  Fsys= 3

Command:#N                    ***** FCVS COMPILATION RUN 10 *****


Command:PARM


Command:DEFINE 6,.OUT


Command:FORTRAN ERCS07:f77rel.FCVS4_FM909,TMP
   main program
 899 Statements compiled

Command:RUN TMP

                    FEDERAL SOFTWARE TESTING CENTER

==== ercs07/emas-a/f77rel/fcvs2_comp2.txt ====
#MON
F77PARM VAX
COMPF77 ERCS02.FCVS2_FM200,.NULL
COMPF77 ERCS02.FCVS2_FM201,.NULL
COMPF77 ERCS02.FCVS2_FM202,.NULL
COMPF77 ERCS02.FCVS2_FM203,.NULL
COMPF77 ERCS02.FCVS2_FM204,.NULL
COMPF77 ERCS02.FCVS2_FM205,.NULL
COMPF77 ERCS02.FCVS2_FM251,.NULL
COMPF77 ERCS02.FCVS2_FM252,.NULL
COMPF77 ERCS02.FCVS2_FM253,.NULL
COMPF77 ERCS02.FCVS2_FM254,.NULL
COMPF77 ERCS02.FCVS2_FM255,.NULL
COMPF77 ERCS02.FCVS2_FM256,.NULL
COMPF77 ERCS02.FCVS2_FM257,.NULL
COMPF77 ERCS02.FCVS2_FM258,.NULL
COMPF77 ERCS02.FCVS2_FM259,.NULL
COMPF77 ERCS02.FCVS2_FM260,.NULL
COMPF77 ERCS02.FCVS2_FM300,.NULL
COMPF77 ERCS02.FCVS2_FM301,.NULL
COMPF77 ERCS02.FCVS2_FM306,.NULL

==== ercs07/emas-a/f77rel/ftn_asynt70.txt ====

!*
!* Syntax tables generated from file SYNTAX70 on 13/06/86 at 08.14.50
!*
%CONSTHALFINTEGERARRAY SUB(0:127)=  %C                            
    0,    2, 1608,  218, 4982,    0, 4800, 4954,   38, 4742,
  212, 2690, 2802,  786,  240,  266,  888,  586,  532,  358,
  462,  608,  942, 1576, 1524, 1378, 1556, 1012, 1028, 1038,
 1066, 1202, 1272, 1174, 1106, 1302, 1130, 1322, 1224, 1498,
 4164, 4524, 4262, 4146, 2896, 3228, 3258, 2944, 3200, 3336,
 3990, 4674, 4024, 3804, 3708, 3752, 4050, 4694, 2752, 3024,
 3012, 3142, 3042, 3134, 3306, 3588, 3364, 3434, 3636, 3444,
 3542, 3570, 3580, 3662, 3778, 3942, 4182, 4122, 4318, 4372,
 5048, 4656, 0(46);
%CONSTHALFINTEGERARRAY LOOKUP(0:25) =  %C
 1610, 1666, 1708, 1888, 1996, 2140, 2150,    0, 2190,    0,
    0, 2288,    0, 2320, 2342, 2358,    0, 2426, 2550, 2600,
    0,    0, 2628, 2650,    0,    0;
%CONSTBYTEINTEGERARRAY SSTRING(0:750)=  %C                       
   7,  80,  82,  79,  71,  82,  65,  77,   8,  70,
  85,  78,  67,  84,  73,  79,  78,   0,  10,  83,

==== ercs07/emas-a/f77rel/fcvs5_fm700.txt ====
      PROGRAM FM700
C
C     THIS PROGRAM TESTS THE DATA STATEMENT WITH           ANS REF.
C          VARIABLE NAMES, ARRAY NAMES, ARRAY ELEMENT      9.1
C          NAMES, SUBSTRING NAMES, AND IMPLIED-DO LISTS.   9.2
C                                                          9.3
C     SYMBOLIC NAMES OF CONSTANTS ARE PERMITTED IN THE
C          CLIST OF THE DATA STATEMENT.   IF NECESSARY,
C          THE CLIST CONSTANT IS CONVERTED TO THE TYPE
C          OF THE NLIST ENTITY ACCORDING TO THE RULES
C          FOR ARITHMETIC CONVERSION.
C
C
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION

==== ercs07/emas-a/f77rel/fcvs5_fm701.txt ====
      PROGRAM FM701
C
C     THIS ROUTINE TESTS ARRAY DECLARATORS WHERE DIMENSION      ANS REF.
C                  BOUND EXPRESSIONS MAY CONTAIN CONSTANTS,     5.1.1.2
C                  SYMBOLIC NAMES OF CONSTANTS, OR VARIABLES    5.1.1
C                  OF TYPE INTEGER.
C
C     THIS ROUTINE USES ROUTINES 602 THROUGH 609 AS SUBROUTINES.
C
C
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041

==== ercs07/emas-a/f77rel/fcvs5_fm016.txt ====
C
C     COMMENT SECTION.
C
C     FM016
C
C             THIS ROUTINE BEGINS A SERIES OF TESTS  OF THE FORTRAN
C     LOGICAL    IF STATEMENT IN ALL OF THE VARIOUS FORMS.    THE
C     FOLLOWING LOGICAL OPERANDS ARE USED FOR THIS ROUTINE - LOGICAL
C     CONSTANTS, LOGICAL VARIABLES, LOGICAL ARRAY ELEMENTS, AND
C     ARITHMETIC EXPRESSIONS WITH VARIOUS RELATIONAL OPERATORS.  BOTH
C     THE TRUE AND FALSE BRANCHES ARE TESTED IN THE SERIES OF TESTS.
C
C      REFERENCES
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,
C              X3.9-1978
C
C        SECTION 4.7.1, LOGICAL CONSTANT
C        SECTION 6, EXPRESSIONS
C        SECTION 6.1, ARITHMETIC EXPRESSIONS
C        SECTION 6.3, RELATIONAL EXPRESSIONS
C        SECTION 6.4, LOGICAL EXPRESSIONS

==== ercs07/emas-a/f77rel/nbsfruns_f77run.txt ====
resetloader
disconnect .all
#monload 1
parm
DEFINE 5,ERCS07:f77rel.NBSFTESTS_PART01DATA
F77 ERCS07:f77rel.NBSFTESTS_PART01      ,FY
RUN FY
#n
F77 ERCS07:f77rel.NBSFTESTS_PART02      ,FY
RUN FY
F77 ERCS07:f77rel.NBSFTESTS_PART03      ,FY
RUN FY
F77 ERCS07:f77rel.NBSFTESTS_PART04      ,FY
RUN FY
F77 ERCS07:f77rel.NBSFTESTS_PART05      ,FY
RUN FY
F77 ERCS07:f77rel.NBSFTESTS_PART06      ,FY
RUN FY
F77 ERCS07:f77rel.NBSFTESTS_PART07      ,FY
RUN FY
F77 ERCS07:f77rel.NBSFTESTS_PART08      ,FY

==== ercs07/emas-a/f77rel/froot1a.txt ====
!                                                            froot1a
! 04/03/87 - set Com_Allowvax, Com_Allowunix to 0
! 25/02/87 - change Version message
!                                                              froot1
! 10/10/86 - insert include files
!                                                              ftnroot9
! 30/09/86 - set Com_Listmode non-zero if code listing only
!                                                              ftnroot8
! 10/09/86 - Com_Opt&1  normal optimisation   &2  inline subprograms
! 06/07/86 - adjust space for Output in T#Names                ftnroot7
! Modified 11/6/86 - Put in PNX table size control             ftnroot6
! Modified 05/06/86                                            ftnroot5
!
! FORTRAN 77 CTL MODULE 
!
%OWNSTRING (70) VERSION =  %c
"Amdahl Fortran77 Compiler Version 2.00"
%constinteger Rel  = 0
%constinteger Vers = 1
!*
%include "ftn_ht"

==== ercs07/emas-a/f77rel/build206d.txt ====
LINK
obj200d_XCONTRld5y
obj200d_xgen27by
obj200d_FALLOC1ay
obj200d_FANAL1ay
obj200d_FARITH1y
obj200d_FCinnum1ay
obj200d_fcode2y
obj200d_Fdata2y
obj200d_FEND2y
obj200d_FGEN1y
obj200d_FINPUT2ay
obj200d_FMAP1y
obj200d_FMESS1y
obj200d_FOPTDUM1y
obj200d_FREAL1ay
obj200d_Froot1cy
obj200d_FTRIADS1y
obj200d_FFPTOS1ay
obj200d_FCFMT1ay
.END

==== ercs07/emas-a/f77rel/fcvs5_fm017.txt ====
C
C     COMMENT SECTION.
C
C     FM017
C
C             THIS ROUTINE CONTINUES TESTS OF THE FORTRAN
C     LOGICAL    IF STATEMENT IN ALL OF THE VARIOUS FORMS.    THE
C     FOLLOWING LOGICAL OPERANDS ARE USED FOR THIS ROUTINE - LOGICAL
C     CONSTANTS, LOGICAL VARIABLES, LOGICAL ARRAY ELEMENTS, AND
C     ARITHMETIC EXPRESSIONS WITH VARIOUS RELATIONAL OPERATORS.  BOTH
C     THE TRUE AND FALSE BRANCHES ARE TESTED IN THE SERIES OF TESTS.
C
C      REFERENCES
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,
C              X3.9-1978
C
C        SECTION 4.7.1, LOGICAL CONSTANT
C        SECTION 6, EXPRESSIONS
C        SECTION 6.1, ARITHMETIC EXPRESSIONS
C        SECTION 6.3, RELATIONAL EXPRESSIONS
C        SECTION 6.4, LOGICAL EXPRESSIONS

==== ercs07/emas-a/f77rel/fcvs5_fm018.txt ====
C
C     COMMENT SECTION.
C
C     FM018
C
C             THIS ROUTINE CONTINUES TESTS OF THE FORTRAN
C     LOGICAL    IF STATEMENT IN ALL OF THE VARIOUS FORMS.    THE
C     FOLLOWING LOGICAL OPERANDS ARE USED FOR THIS ROUTINE - LOGICAL
C     CONSTANTS, LOGICAL VARIABLES, LOGICAL ARRAY ELEMENTS, AND
C     ARITHMETIC EXPRESSIONS WITH VARIOUS RELATIONAL OPERATORS.  BOTH
C     THE TRUE AND FALSE BRANCHES ARE TESTED IN THE SERIES OF TESTS.
C
C      REFERENCES
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,
C              X3.9-1978
C
C        SECTION 4.7.1, LOGICAL CONSTANT
C        SECTION 6, EXPRESSIONS
C        SECTION 6.1, ARITHMETIC EXPRESSIONS
C        SECTION 6.3, RELATIONAL EXPRESSIONS
C        SECTION 6.4, LOGICAL EXPRESSIONS

==== ercs07/emas-a/f77rel/froot1c.txt ====
!                                                               froot1c
!23/07/87 - change Com_unasspattern
! 18/03/87 - change version message
!                                                               froot1b
! 17/03/87 - change version message
! 16/03/87 - set Com_Allowvax non zero again
!                                                            froot1a
! 04/03/87 - set Com_Allowvax, Com_Allowunix to 0
! 25/02/87 - change Version message
!                                                              froot1
! 10/10/86 - insert include files
!                                                              ftnroot9
! 30/09/86 - set Com_Listmode non-zero if code listing only
!                                                              ftnroot8
! 10/09/86 - Com_Opt&1  normal optimisation   &2  inline subprograms
! 06/07/86 - adjust space for Output in T#Names                ftnroot7
! Modified 11/6/86 - Put in PNX table size control             ftnroot6
! Modified 05/06/86                                            ftnroot5
!
! FORTRAN 77 CTL MODULE 
!

==== ercs07/emas-a/f77rel/fcvs2_obey2.txt ====
PARM NOCHECK
#MON
F77PARM VAX
DEFINE 6,.OUT
F77P ERCS02.FCVS2_FM200,Y
RUN Y
F77P ERCS02.FCVS2_FM201,Y
RUN Y
F77P ERCS02.FCVS2_FM202,Y
RUN Y
F77P ERCS02.FCVS2_FM203,Y
RUN Y
F77P ERCS02.FCVS2_FM204,Y
RUN Y
F77P ERCS02.FCVS2_FM205,Y
RUN Y
F77P ERCS02.FCVS2_FM251,Y
RUN Y
F77P ERCS02.FCVS2_FM252,Y
RUN Y
F77P ERCS02.FCVS2_FM253,Y

==== ercs07/emas-a/f77rel/fcvs5_fm019.txt ====
C
C     COMMENT SECTION.
C
C     FM019
C
C           THIS ROUTINE CONTINUES TESTS OF THE FORTRAN LOGICAL IF STATE
C     BY TESTING VARIOUS FORMS OF RELATIONAL EXPRESSIONS WITH ARITHMETIC
C     EXPRESSIONS .  POSITIVE AND NEGATIVE SIGNS ARE USED IN CONJUNCTION
C     WITH PARENTHESES. COMBINATIONS OF LOGICAL  .AND.    .OR.
C     .NOT. ARE USED TO TEST THE MORE COMPLEX EXPRESSIONS.
C
C      REFERENCES
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,
C              X3.9-1978
C
C        SECTION 4.7.1, LOGICAL CONSTANT
C        SECTION 6, EXPRESSIONS
C        SECTION 11.5, LOGICAL IF STATEMENT
C
      LOGICAL LCTNT1, LCTNT2
C

==== ercs07/emas-a/f77rel/froot1d.txt ====
!                                                              froot1d
!06/04/87 - change version message
! 01/04/87 - change Com_Opt in Fort77 so that PARM OPT2 is ignored
!                                                               froot1c
!23/07/87 - change Com_unasspattern
! 18/03/87 - change version message
!                                                               froot1b
! 17/03/87 - change version message
! 16/03/87 - set Com_Allowvax non zero again
!                                                            froot1a
! 04/03/87 - set Com_Allowvax, Com_Allowunix to 0
! 25/02/87 - change Version message
!                                                              froot1
! 10/10/86 - insert include files
!                                                              ftnroot9
! 30/09/86 - set Com_Listmode non-zero if code listing only
!                                                              ftnroot8
! 10/09/86 - Com_Opt&1  normal optimisation   &2  inline subprograms
! 06/07/86 - adjust space for Output in T#Names                ftnroot7
! Modified 11/6/86 - Put in PNX table size control             ftnroot6
! Modified 05/06/86                                            ftnroot5

==== ercs07/emas-a/f77rel/fcvs5_fm020.txt ====
C
C     COMMENT SECTION.
C
C     FM020
C
C             THIS ROUTINE TESTS THE FORTRAN IN-LINE STATEMENT FUNCTION
C     OF TYPE LOGICAL AND INTEGER.  INTEGER CONSTANTS, LOGICAL CONSTANTS
C     INTEGER VARIABLES, LOGICAL VARIABLES, INTEGER ARITHMETIC EXPRESS-
C     IONS ARE ALL USED TO TEST THE STATEMENT FUNCTION DEFINITION AND
C     THE VALUE RETURNED FOR THE STATEMENT FUNCTION WHEN IT IS USED
C     IN THE MAIN BODY OF THE PROGRAM.
C
C      REFERENCES
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,
C              X3.9-1978
C
C        SECTION 8.4.1, INTEGER, REAL, DOUBLE PRECISION, COMPLEX, AND
C                       LOGICAL TYPE-STATEMENTS
C        SECTION 15.3.2, INTRINSIC FUNCTION REFERENCES
C        SECTION 15.4, STATEMENT FUNCTIONS
C        SECTION 15.4.1, FORMS OF A FUNCTION STATEMENT

==== ercs07/emas-a/f77rel/fcvs5_fm021.txt ====
C
C     COMMENT SECTION.
C
C     FM021
C
C           THIS ROUTINE TESTS THE FORTRAN  DATA INITIALIZATION
C     STATEMENT.  INTEGER, REAL, AND LOGICAL DATA TYPES ARE TESTED
C     USING UNSIGNED CONSTANTS, SIGNED CONSTANTS, AND LOGICAL
C     CONSTANTS..   INTEGER, REAL, LOGICAL, AND MIXED TYPE ARRAYS
C     ARE ALSO TESTED.
C
C      REFERENCES
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,
C              X3.9-1978
C
C        SECTION 4.1.3, DATA TYPE PREPARATION
C        SECTION 4.4.3, REAL CONSTANT
C        SECTION 9, DATA STATEMENT
C
      INTEGER RATN11(3)
      LOGICAL LCTN01, LCTN02, LATN11(3), LADN11

==== ercs07/emas-a/f77rel/fcvs5_fm022.txt ====
C     COMMENT SECTION.
C
C     FM022
C
C         THIS ROUTINE TESTS ARRAYS WITH FIXED DIMENSION AND SIZE LIMITS
C     SET EITHER IN A BLANK COMMON OR DIMENSION STATEMENT.  THE VALUES
C     OF THE ARRAY ELEMENTS ARE SET IN VARIOUS WAYS SUCH AS SIMPLE
C     ASSIGNMENT STATEMENTS, SET TO THE VALUES OF OTHER ARRAY ELEMENTS
C     (EITHER POSITIVE OR NEGATIVE), SET BY INTEGER TO REAL OR REAL TO
C     INTEGER CONVERSION, SET BY ARITHMETIC EXPRESSIONS, OR SET BY
C     USE OF THE  EQUIVALENCE  STATEMENT.
C
C      REFERENCES
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,
C              X3.9-1978
C
C        SECTION 8, SPECIFICATION STATEMENTS
C        SECTION 8.1, DIMENSION STATEMENT
C        SECTION 8.2, EQUIVALENCE STATEMENT
C        SECTION 8.3, COMMON STATEMENT
C        SECTION 8.4, TYPE-STATEMENTS

==== ercs07/emas-a/f77rel/fcvs5_fm710.txt ====
      PROGRAM FM710
C
C     THIS ROUTINE TESTS SUBSCRIPT EXPRESSIONS AND          ANS REF.
C     CHARACTER SUBSTRINGS.                                 5.4.2, 5.4.3
C                                                           5.7.1, 5.7.2
C
C     THIS ROUTINE ASSUMES THE INTRINSIC FUNCTIONS
C                              INT AND IABS ARE WORKING.
C
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041
C****

==== ercs07/emas-a/f77rel/fcvs5_fm023.txt ====
C     COMMENT SECTION.
C
C     FM023
C
C                  TWO DIMENSIONED ARRAYS ARE USED IN THIS ROUTINE.
C         THIS ROUTINE TESTS ARRAYS WITH FIXED DIMENSION AND SIZE LIMITS
C     SET EITHER IN A BLANK COMMON OR DIMENSION STATEMENT.  THE VALUES
C     OF THE ARRAY ELEMENTS ARE SET IN VARIOUS WAYS SUCH AS SIMPLE
C     ASSIGNMENT STATEMENTS, SET TO THE VALUES OF OTHER ARRAY ELEMENTS
C     (EITHER POSITIVE OR NEGATIVE), SET BY INTEGER TO REAL OR REAL TO
C     INTEGER CONVERSION, SET BY ARITHMETIC EXPRESSIONS, OR SET BY
C     USE OF THE  EQUIVALENCE  STATEMENT.
C
C
C      REFERENCES
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,
C              X3.9-1978
C
C        SECTION 8, SPECIFICATION STATEMENTS
C        SECTION 8.1, DIMENSION STATEMENT
C        SECTION 8.2, EQUIVALENCE STATEMENT

==== ercs07/emas-a/f77rel/fcvs5_fm024.txt ====
C     COMMENT SECTION.
C
C     FM024
C
C                  THREE DIMENSIONED ARRAYS ARE USED IN THIS ROUTINE.
C         THIS ROUTINE TESTS ARRAYS WITH FIXED DIMENSION AND SIZE LIMITS
C     SET EITHER IN A BLANK COMMON OR DIMENSION STATEMENT.  THE VALUES
C     OF THE ARRAY ELEMENTS ARE SET IN VARIOUS WAYS SUCH AS SIMPLE
C     ASSIGNMENT STATEMENTS, SET TO THE VALUES OF OTHER ARRAY ELEMENTS
C     (EITHER POSITIVE OR NEGATIVE), SET BY INTEGER TO REAL OR REAL TO
C     INTEGER CONVERSION, SET BY ARITHMETIC EXPRESSIONS, OR SET BY
C     USE OF THE  EQUIVALENCE  STATEMENT.
C
C
C      REFERENCES
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,
C              X3.9-1978
C
C        SECTION 8, SPECIFICATION STATEMENTS
C        SECTION 8.1, DIMENSION STATEMENT
C        SECTION 8.2, EQUIVALENCE STATEMENT

==== ercs07/emas-a/f77rel/fcvs5_fm025.txt ====
C     COMMENT SECTION.
C
C     FM025
C
C         THIS ROUTINE TESTS ARRAYS WITH IF STATEMENTS, DO LOOPS,
C     ASSIGNED AND COMPUTED GO TO STATEMENTS IN CONJUNCTION WITH ARRAY
C     ELEMENTS   IN COMMON OR DIMENSIONED.  ONE, TWO, AND THREE
C     DIMENSIONED ARRAYS ARE USED.  THE SUBSCRIPTS ARE INTEGER CONSTANTS
C     OR SOMETIMES INTEGER VARIABLES WHEN THE ELEMENTS ARE IN LOOPS
C     AND ALL ARRAYS HAVE FIXED SIZE LIMITS.  INTEGER, REAL, AND LOGICAL
C     ARRAYS ARE USED WITH THE TYPE SOMETIMES SPECIFIED WITH THE
C     EXPLICIT TYPE STATEMENT.
C
C      REFERENCES
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,
C              X3.9-1978
C
C        SECTION 8, SPECIFICATION STATEMENTS
C        SECTION 8.1, DIMENSION STATEMENT
C        SECTION 8.3, COMMON STATEMENT
C        SECTION 8.4, TYPE-STATEMENTS

==== ercs07/emas-a/f77rel/fcvsruns_run5opt.txt ====
#N                    ***** FCVS COMPILATION RUN 5 *****
parm opt
DEFINE 6,.OUT
FORTRAN ERCS07:f77rel.FCVS2_FM300,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS2_FM301,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM302,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS2_FM306,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS2_FM307,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS2_FM308,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS2_FM311,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM317,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM328,TMP
RUN TMP

==== ercs07/emas-a/f77rel/fcvs5_fm026.txt ====
C     COMMENT SECTION
C
C     FM026
C
C         THIS ROUTINE CONTAINS THE BASIC SUBROUTINE REFERENCE TESTS.
C     THE SUBROUTINE FS027 IS CALLED BY THIS PROGRAM.  THE SUBROUTINE
C     FS027 INCREMENTS THE CALLING ARGUMENT BY 1 AND RETURNS TO THE
C     CALLING PROGRAM.
C
C         EXECUTION OF A SUBROUTINE REFERENCE RESULTS IN AN ASSOCIATION
C     OF ACTUAL ARGUMENTS WITH ALL APPEARANCES OF DUMMY ARGUMENTS IN
C     THE DEFINING SUBPROGRAM.  FOLLOWING THESE ASSOCIATIONS, EXECUTION
C     OF THE FIRST EXECUTABLE STATEMENT OF THE DEFINING SUBPROGRAM
C     IS UNDERTAKEN.
C
C      REFERENCES
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,
C              X3.9-1978
C
C        SECTION 15.6.2, SUBROUTINE REFERENCE
C

==== ercs07/emas-a/f77rel/build207d.txt ====
LINK
obj200d_XCONTRld5ay
obj200d_xgen27cy
obj200d_FALLOC2ay
obj200d_FANAL2ay
obj200d_FARITH1y
obj200d_FCinnum1ay
obj200d_fcode2y
obj200d_Fdata2y
obj200d_FEND2y
obj200d_FGEN2y
obj200d_FINPUT2ay
obj200d_FMAP1y
obj200d_FMESS1y
obj200d_FOPTDUM1y
obj200d_FREAL1by
obj200d_Froot1dy
obj200d_FTRIADS1y
obj200d_FFPTOS1ay
obj200d_FCFMT1ay
.END

==== ercs07/emas-a/f77rel/fcvs5_fm028.txt ====
C     COMMENT SECTION
C
C     FM028
C
C         THIS ROUTINE CONTAINS THE EXTERNAL FUNCTION REFERENCE TESTS.
C     THE FUNCTION SUBPROGRAM FF029 IS CALLED BY THIS PROGRAM. THE
C     FUNCTION SUBPROGRAM FF029 INCREMENTS THE CALLING ARGUMENT BY 1
C     AND RETURNS TO THE CALLING PROGRAM.
C
C         EXECUTION OF AN EXTERNAL FUNCTION REFERENCE RESULTS IN AN
C     ASSOCIATION OF ACTUAL ARGUMENTS WITH ALL APPEARANCES OF DUMMY
C     ARGUMENTS IN THE DEFINING SUBPROGRAM.  FOLLOWING THESE
C     ASSOCIATIONS, EXECUTION OF THE FIRST EXECUTABLE STATEMENT OF THE
C     DEFINING SUBPROGRAM IS UNDERTAKEN.
C
C      REFERENCES
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,
C              X3.9-1978
C
C        SECTION 15.5.2, REFERENCING AN EXTERNAL FUNCTION
C

==== ercs07/emas-a/f77rel/copy207.txt ====
copy xcontrl5ay,obj200_xcontrl5ay
copy xgen27cy,obj200_xgen27cy
copy falloc2ay,obj200_falloc2ay
copy fanal2ay,obj200_fanal2ay
copy farith1y,obj200_farith1y
copy fcinnum2ay,obj200_fcinnum2ay
copy fcode2y,obj200_fcode2y
copy fdata1y,obj200_fdata1y
copy fend2y,obj200_fend2y
copy fgen2y,obj200_fgen2y
copy finput1ay,obj200_finput1ay
copy fmap1y,obj200_fmap1y
copy fmess1y,obj200_fmess1y
copy foptdum1y,obj200_foptdum1y
copy freal1by,obj200_freal1by
copy froot1dy,obj200_froot1dy
copy ftriads1y,obj200_ftriads1y
copy ffptos1ay,obj200_ffptos1ay
copy fcfmt1ay,obj200_fcfmt1ay

==== ercs07/emas-a/f77rel/fcvs5_fm718.txt ====
      PROGRAM FM718
C
C     THIS ROUTINE TESTS LOGICAL EXPRESSIONS AND            ANS REF.
C     USE OF THE LOGICAL OPERATORS .NOT., .AND., .OR.,      6.4, 6.4.2,
C     .EQV., AND .NEQV.                                     6.4.3, 6.4.4
C
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041
C****
C****                          (703) 756-6153
C****
CBE** ********************** BBCCOMNT **********************************

==== ercs07/emas-a/f77rel/nbsfruns_detach.txt ====
detach nbsfruns_f77run,100,nbsfl
detach nbsfruns_compare,100,.lp23

==== ercs07/emas-a/f77rel/fcvsruns_detopt.txt ====
DETACH FCVSRUNS_RUN1opt,60,LOG=run1l
detach fcvsruns_comprun1,60,log=.lp23
DETACH FCVSRUNS_RUN2opt,60,LOG=run2l
detach fcvsruns_comprun2,60,log=.lp23
DETACH FCVSRUNS_RUN3opt,60,LOG=run3l
detach fcvsruns_comprun3,60,log=.lp23
DETACH FCVSRUNS_RUN4opt,60,LOG=run4l
detach fcvsruns_comprun4,60,log=.lp23
DETACH FCVSRUNS_RUN5opt,60,LOG=run5l
detach fcvsruns_comprun5,60,log=.lp23
DETACH FCVSRUNS_RUN6opt,60,LOG=run6l
detach fcvsruns_comprun6,60,log=.lp23
DETACH FCVSRUNS_RUN7opt,60,LOG=run7l
detach fcvsruns_comprun7,60,log=.lp23
DETACH FCVSRUNS_RUN8opt,60,LOG=run8l
detach fcvsruns_comprun8,60,log=.lp23
DETACH FCVSRUNS_RUN9opt,60,LOG=run9l
detach fcvsruns_comprun9,60,log=.lp23
DETACH FCVSRUNS_RUN10opt,60,LOG=run10l
detach fcvsruns_comprun10,60,log=.lp23

==== ercs07/emas-a/f77rel/build208d.txt ====
LINK
obj200d_XCONTRld5by
obj200d_xgen27dy
obj200d_FALLOC2ay
obj200d_FANAL2ay
obj200d_FARITH1y
obj200d_FCinnum2ay
obj200d_fcode3y
obj200d_Fdata2y
obj200d_FEND3y
obj200d_FGEN3y
obj200d_FINPUT3ay
obj200d_FMAP1y
obj200d_FMESS2y
obj200d_FOPTDUM1y
obj200d_FREAL1by
obj200d_Froot1ey
obj200d_FTRIADS1y
obj200d_FFPTOS1ay
obj200d_FCFMT1ay
.END

==== ercs07/emas-a/f77rel/copy215.txt ====
copy xcontrl7by,obj200_xcontrl7by
copy xgen30y,obj200_xgen30y
copy falloc3ay,obj200_falloc3ay
copy fanal4ay,obj200_fanal4ay
copy farith1y,obj200_farith1y
copy fcinnum2ay,obj200_fcinnum2ay
copy fcode3y,obj200_fcode3y
copy fdata3y,obj200_fdata3y
copy fend4y,obj200_fend4y
copy fgen3y,obj200_fgen3y
copy finput3ay,obj200_finput3ay
copy fmap1y,obj200_fmap1y
copy fmess2y,obj200_fmess2y
copy foptdum1y,obj200_foptdum1y
copy freal1by,obj200_freal1by
copy froot1jy,obj200_froot1jy
copy ftriads1y,obj200_ftriads1y
copy ffptos1ay,obj200_ffptos1ay
copy fcfmt1ay,obj200_fcfmt1ay

==== ercs07/emas-a/f77rel/fcvs3_fm368.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM368
C*****                       XSQRT - (175)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                      SUBSET REF
C*****    TEST INTRINSIC FUNCTION SQRT                         15.3
C*****                                                        TABLE 5
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041

==== ercs07/emas-a/f77rel/fcvs3_fm369.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM369
C*****                       XEXP - (178)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                      SUBSET REF
C*****    TEST INTRINSIC FUNCTION EXP                          15.3
C*****                                                        TABLE 5
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041

==== ercs07/emas-a/f77rel/fcvsruns_run3opt1.txt ====
#N                    ***** FCVS COMPILATION RUN 3 *****
parm opt1
DEFINE 6,.OUT
DEFINE 7,TMPOUT
FORTRAN ERCS07:f77rel.FCVS0_FM044,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM045,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM050,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM056,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS1_FM060,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS1_FM061,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS1_FM062,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM080,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS1_FM097,TMP

==== ercs07/emas-a/f77rel/fcvs3_fm370.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM370
C*****                       XALOG - (181)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                      SUBSET REF
C*****    TEST INTRINSIC FUNCTION ALOG                         15.3
C*****                                                        TABLE 5
C*****
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100

==== ercs07/emas-a/f77rel/fcode2.txt ====
!                                                           fcode2
! 17/03/87 - coorection to CHAROP - Elevel increment in wrong place
! 02/03/87 - corrections to CHAROP if OP = CHHEAD
!
!                                                             fcode1
! 16/11/86 - incorporate changes up to ftncode34
! 14/10/86 - incorporate VNS changes
! 10/10/86 - insert include files
!                                                             ftncode31
! 07/09/86 - process Gould intrinsic fn extensions
!                                                             ftncode30
! 20/08/86 - in Locate Arrel avoid setting top=0 for destemp
! 19/08/86 - if Gould opt then no scaling needed for arrays
!                                                             ftncode29
! 17/08/86 - CMPLX and CONJG to avoid intermediate store if possible
! 16/08/86 - in Store Val, Load Val do Erefer on destemps
!          - avoid using Store Val for DINIT
!          - INCR, DECR to use Load Address for Destemps
!* modified 10/07/86                                           ftncode28
!*
%include "ftn_ht"

==== ercs07/emas-a/f77rel/fcvsruns_run3opt2.txt ====
#N                    ***** FCVS COMPILATION RUN 3 *****
parm opt2
DEFINE 6,.OUT
DEFINE 7,TMPOUT
FORTRAN ERCS07:f77rel.FCVS0_FM044,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM045,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM050,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM056,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS1_FM060,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS1_FM061,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS1_FM062,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM080,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS1_FM097,TMP

==== ercs07/emas-a/f77rel/fcvs3_fm371.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM371
C*****                       XALG10 - (184)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                      SUBSET REF
C*****    TEST INTRINSIC FUNCTION ALOG10                        15.3
C*****                                                        TABLE 5
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041

==== ercs07/emas-a/f77rel/fcvs3_fm372.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM372
C*****                       XSIN - (186)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                      SUBSET REF
C*****    TEST INTRINSIC FUNCTION SIN                          15.3
C*****                                                        TABLE 5
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041

==== ercs07/emas-a/f77rel/fcvs3_fm373.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM373
C*****                       XCOS - (189)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                      SUBSET REF
C*****    TEST INTRINSIC FUNCTION COS                          15.3
C*****                                                        TABLE 5
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041

==== ercs07/emas-a/f77rel/fcvs3_fm374.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM374
C*****                       XTAN - (191)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                      SUBSET REF
C*****    TEST INTRINSIC FUNCTION TAN                          15.3
C*****                                                        TABLE 5
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041

==== ercs07/emas-a/f77rel/fcvs3_fm375.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM375
C*****                       XASIN - (193)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                      SUBSET REF
C*****    TEST INTRINSIC FUNCTION ASIN, ACOS                    15.3
C*****                                                         TABLE 5
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041

==== ercs07/emas-a/f77rel/fcvs3_fm376.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM376
C*****                       XATAN - (195)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                     SUBSET REF
C*****    TEST INTRINSIC FUNCTION ATAN, ATAN2                 15.3
C*****    INTRINSIC FUNCTION SQRT ASSUMED WORKING            TABLE 5
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041

==== ercs07/emas-a/f77rel/srce200_xcontrl7b.txt ====
!                                                                xcontrl7b
! 23/09/87 - intialise inclevel in ICL9CEIBMF77
! 28/07/87 - new version no. 2.15
!                                                    xcontrl7a
! 02/07/87 - new version no. 2.12
!                                                             xcontrld7
! 30/06/87 - in Icl9ceibmf77, set OPT1 bit in OPT1, if Parm opt2; set OPT bit in
!          - Control, if Parm Opt1; set minbound bit in F77parm, if not Parm OPT
!  09/06/87 - change BSIZE to 128
!              new version no. 2.11
!                                                         xcontrl6
! 29/05/87 - new code in SOURCELINE & SELECTINCLUDE, define new own
!          - variables; new dynamic specs
!          - set OPT2 for Include listing
! 06/05/87 - define Get Space and own integers gsconad, gsfindex, gsflen
!                                                          xcontrl5d
! 13/04/87 - change vsn to 2.10
!                                                                     xcontrl5b
! 28/04/87 - change version t. 2.08
!                                                                    xcontrl5a
! 06/04/87 - change version to 2.07

==== ercs07/emas-a/f77rel/fcvs3_fm377.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM377
C*****                       XSINH - (197)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                      SUBSET REF
C*****    TEST INTRINSIC FUNCTION SINH, COSH                   15.3
C*****                                                        TABLE 5
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041

==== ercs07/emas-a/f77rel/srce200_xcontrl7c.txt ====
!                                                                xcontrl7c
! 28/07/87 - new version no. 2.13
!                                                    xcontrl7a
! 02/07/87 - new version no. 2.12
!                                                             xcontrld7
! 30/06/87 - in Icl9ceibmf77, set OPT1 bit in OPT1, if Parm opt2; set OPT bit in
!          - Control, if Parm Opt1; set minbound bit in F77parm, if not Parm OPT
!  09/06/87 - change BSIZE to 128
!              new version no. 2.11
!                                                         xcontrl6
! 29/05/87 - new code in SOURCELINE & SELECTINCLUDE, define new own
!          - variables; new dynamic specs
!          - set OPT2 for Include listing
! 06/05/87 - define Get Space and own integers gsconad, gsfindex, gsflen
!                                                          xcontrl5d
! 13/04/87 - change vsn to 2.10
!                                                                     xcontrl5b
! 28/04/87 - change version t. 2.08
!                                                                    xcontrl5a
! 06/04/87 - change version to 2.07
!                                                       xcontrl5

==== ercs07/emas-a/f77rel/fcvs3_fm378.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM378
C*****                       XTANH - (199)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                      SUBSET REF
C*****    TEST INTRINSIC FUNCTION TANH                         15.3
C*****                                                        TABLE 5
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041

==== ercs07/emas-a/f77rel/fcvs0_fm110d.txt ====
                      .  .     .  0.    E+00           +           + .    E00
                +              + .        D+00    0        D0
1.23456987654.  +1.234E-0  -98.7654E+0
12345
12345
12345
12345
12345
1.1
1.1
1.1
1.1
+0.339567E+02
  + .339567+2
 + 3.395670E1
 0.96295134244D+04
   .96295134244D04
   0.96295134244+4
   +.96295134244D4
31.23+0.14E+04+0.2D+02
31.23   .14D+4   +.2+2

==== ercs07/emas-a/f77rel/fcvs3_fm379.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM379
C*****                       XRFOR - (201)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                      SUBSET REF
C*****    TEST TRIGONOMETRIC FORMULAE                          15.3
C*****                                                        TABLE 5
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041

==== ercs07/emas-a/f77rel/fcvs0_fm111d.txt ====
111 2 2 3 3. 3E-1  44 5 5 6 . 67 . 78 8. 8E-1
9 9
2345 1 34512 45123 51234
2345 1 34512 45123 51234

246801357912345678901234
.10203040506070809010E+0233.33
    1    2    3    4    5    6

==== ercs07/emas-a/f77rel/fcvs2_fm200.txt ====
      PROGRAM FM200
C
C
C        THIS ROUTINE IS THE FIRST AUDIT PROGRAM TO CONTAIN A PROGRAM
C     STATEMENT.  THE FOLLOWING FEATURES FROM CHAPTER 3., CHARACTERS,
C     LINES AND EXECUTION SEQUENCE ARE TESTED.
C
C        (1)  ASTERISK (*) IN COLUMN 1 TO DESIGNATE A COMMENT LINE.
C        (2)  USE OF NON-FORTRAN CHARACTERS WITHIN A COMMENT LINE.
C        (3)  STATEMENT LABELS ON NONEXECUTABLE STATEMENTS.
C        (4)  DIGIT 0 IN COLUMN 6 OF AN INITIAL LINE.
C        (5)  CONTINUATION LINES - MAXIMUM OF NINE CONTINUATION LINES
C             (660 CHARACTERS).
C        (6)  BLANK CHARACTERS WITHIN STATEMENTS.
C        (7)  BLANK COMMENT LINE, BLANK CHARACTERS IN COLUMNS 1-72.
C
C     THE BASIC FEATURES OF SUBSET FORTRAN WHICH ARE TESTED BY THIS
C     PROGRAM ARE USED THROUGHOUT THE REST OF THE SUBSET ROUTINES.
C
C     REFERENCES
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,

==== ercs07/emas-a/f77rel/fcvs2_fm201.txt ====
      PROGRAM FM201
C
C
C        THIS ROUTINE VERIFIES THAT
C
C        (1)  THE VALUE OF A SIGNED ZERO IS THE SAME AS THE VALUE OF
C             AN UNSIGNED ZERO FOR INTEGER AND REAL VARIABLES.
C
C        (2)  A BASIC REAL CONSTANT MAY BE WRITTEN WITH MORE DIGITS
C             THAN A PROCESSOR WILL USE TO APPROXIMATE THE VALUE OF
C             THE CONSTANT.
C
C        (3)  AN IMPLICIT STATEMENT CAN BE USED TO CHANGE THE DEFAULT
C             IMPLICIT INTEGER AND REAL TYPING.
C
C        (4)  THE IMPLICIT INTEGER AND REAL TYPING OF AN IMPLICIT
C             STATEMENT MAY BE OVERRIDDEN BY THE APPEARANCE OF A
C             VARIABLE NAME IN A TYPE-STATEMENT.
C
C     REFERENCES
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,

==== ercs07/emas-a/f77rel/fcvs2_fm202.txt ====
      PROGRAM FM202
C
C
C         THIS ROUTINE IS THE FIRST ROUTINE TO TEST CHARACTER DATA
C     TYPES.  CHARACTER TYPE-STATEMENTS SPECIFY CHARACTER VARIABLES OF
C     LENGTH ONE AND LENGTH TWO.  THE TESTS IN THIS ROUTINE DETERMINE
C     THAT THE FOLLOWING LANGUAGE FEATURES FUNCTION CORRECTLY.
C
C         (1) CHARACTER ASSIGNMENT STATEMENTS OF THE FORM
C
C             CHARACTER VARIABLE = CHARACTER CONSTANT
C             CHARACTER VARIABLE = CHARACTER VARIABLE
C
C         WHERE THE VARIABLES AND CONSTANTS ARE THE SAME LENGTH.
C
C         (2)  THE REPRESENTATION OF AN APOSTROPHE IN A CHARACTER
C         CONSTANT IS TWO CONSECUTIVE APOSTROPHES WITH NO INTERVENING
C         BLANKS.
C
C         (3)  CHARACTER RELATIONAL EXPRESSION OF THE FORM
C

==== ercs07/emas-a/f77rel/fcvs2_fm203.txt ====
      PROGRAM FM203
C
C
C         THIS ROUTINE CONTINUES THE TESTING OF CHARACTER DATA TYPES
C     WHICH WAS STARTED IN FM202.  THE CHARACTER TYPE-STATEMENTS SPECIFY
C     CHARACTER VARIABLES AND ONE-DIMENSIONAL CHARACTER ARRAYS OF
C     LENGTH ONE AND LENGTH TWO.  THE TESTS IN THIS ROUTINE DETERMINE
C     THAT THE FOLLOWING LANGUAGE FEATURES FUNCTION CORRECTLY.
C
C         (1)  CHARACTER ASSIGNMENT STATEMENTS OF THE FORM
C
C         CHARACTER ARRAY ELEMENT = CHARACTER CONSTANT
C         CHARACTER ARRAY ELEMENT = CHARACTER VARIABLE
C         CHARACTER ARRAY ELEMENT = CHARACTER ARRAY ELEMENT
C         CHARACTER VARIABLE = CHARACTER ARRAY ELEMENT
C
C     WHERE THE ARRAY ELEMENTS, VARIABLES AND CONSTANTS ARE OF LENGTH
C     ONE OR TWO.
C
C         (2)  CHARACTER RELATIONAL EXPRESSIONS OF THE FORM
C

==== ercs07/emas-a/f77rel/fcvs2_fm204.txt ====
      PROGRAM FM204
C
C
C        THIS ROUTINE CONTINUES THE TESTING OF CHARACTER VARIABLES AND
C     CHARACTER ARRAYS OF LENGTH ONE.  THE CHARACTER FEATURES TESTED IN
C     FM202 AND FM203 ARE USED IN THE TESTS IN THIS ROUTINE.  THE
C     FOLLOWING CHARACTER FEATURES ARE TESTED
C
C        (1)  INITIAL DEFINITION OF CHARACTER ENTITIES OF LENGTH ONE BY
C      SPECIFYING THEM IN A DATA STATEMENT.
C
C        (2)  THE SUBSET FORTRAN LANGUAGE SPECIFIES THE FOLLOWING
C     COLLATING SEQUENCE RULES.
C
C              A LESS THAN B ... LESS THAN Z,
C              0 LESS THAN 1 ... LESS THAN 9,
C              ALL OF THE DIGITS PRECEDE A OR ALL OF THE DIGITS FOLLOW
C                  Z,
C              BLANK IS LESS THAN THE LETTER A AND BLANK IS LESS THAN
C                  THE DIGIT ZERO.
C

==== ercs07/emas-a/f77rel/fcvs2_fm205.txt ====
      PROGRAM FM205
C
C
C          THE ROUTINE FM205 TESTS CHARACTER CONSTANTS, CHARACTER
C     VARIABLES, AND CHARACTER ARRAY ELEMENTS WITH A MAXIMUM LENGTH
C     OF 57 CHARACTERS.  CHARACTER ASSIGNMENT STATEMENTS AND CHARACTER
C     RELATIONAL EXPRESSIONS OF THE FOLLOWING STATEMENT FORMS ARE
C     TESTED IN THIS ROUTINE.
C
C          (1)  CHARACTER ASSIGNMENT STATEMENTS
C
C                  CHARACTER VARIABLE = CHARACTER CONSTANT,
C                  CHARACTER VARIABLE = CHARACTER VARIABLE,
C                  CHARACTER ARRAY ELEMENT = CHARACTER CONSTANT,
C                  CHARACTER ARRAY ELEMENT = CHARACTER VARIABLE,
C                  CHARACTER ARRAY ELEMENT = CHARACTER ARRAY ELEMENT,
C                  CHARACTER VARIABLE = CHARACTER ARRAY ELEMENT.
C
C          THE CHARACTER ENTITIES IN AN ASSIGNMENT STATEMENT ARE THE
C          SAME LENGTH.
C

==== ercs07/emas-a/f77rel/srce200_ffptos1a.txt ====
!                                                                ffptos1a
! 15/01/87 - insert alias for INTO RANGE
!           make sure host & taget set to IBM
!                                                                    ffptos1
! 10/10/86 - insert include files
!                                                                    ftnfptos5
   !Modified 25/June/86  to use own rather than local arrays
   !Modified 28/May/86   to allow for GOULD
   !Modified  5/May/86   to reference TRUNC for PERQ3 rather than INT PT
   !Modified  2/March/86 to reference F77REAL instead using local
   !                     power of ten routine/table         AGRK


!* modified 25/ 2/85
!*
!*
!***********************************************************************
!* exports                                                             *
!***********************************************************************
%string(36)%fnspec FPTOS (%integer REAL ADDR{ess},
                                        REAL MODE {3 for REAL* 4})

==== ercs07/emas-a/f77rel/fcvsruns_.txt ====
#N                    ***** FCVS COMPILATION RUN 10 *****
PARM
DEFINE 6,.OUT
FORTRAN ERCS07:f77rel.FCVS4_FM909,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM910,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM912,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM914,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM915,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM916,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM917,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM918,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM919,TMP
RUN TMP

==== ercs07/emas-a/f77rel/ftn_optfmts1.txt ====
!*
!***********************************************************************
!* Optimiser record formats                                            *
!***********************************************************************
!*
%RECORDFORMAT BLRECF(%BYTEINTEGER FLAGS,DEPTH,%SHORTINTEGER CHAIN,
                     %INTEGER FCON,
                     %INTEGER BCON,BDOM,BTARG,TEXT,
                     %INTEGER CORRUPT,BUB1,
                     %INTEGER USE,DEF,BOE)
!*
%RECORDFORMAT CONRECF((%INTEGER COUNT %OR %INTEGERARRAY BLOCK(0:1000)))
!*
%RECORDFORMAT LOOPRECF(%INTEGER BLOCK,DOWN,ACROSS,ST)
!*
%RECORDFORMAT CLOOPRECF(%INTEGER BLOCK,PDCHAIN,PDBACKCHAIN)
!*
%RECORDFORMAT PROPRECF(%SHORTINTEGER DEFCT,TEXT,DEFN,
                       %BYTEINTEGER FLAGS,COORD2,
                       %RECORD(RESF) REPL)
!*

==== ercs07/emas-a/f77rel/fcvs3_fm403d.txt ====
  999
  555554444
  666  777777  8
  333333111112222222255555444444444444
  7.7123456.7
  8.889.9997.123456
  5.44446.5555533.133.133.133.1444.1
  5555.15555.1  66666.166666.1  44.22
  2.12.12.12.12.1666.3334.3334.3334.333
-0.1E+01+0.22E-01 0.333E+02 0.4444E+03-0.55555E-03+0.666666E+00+0.9876543E+12
TABC
FDEFFGHIT*+T1F/).TRUE..FALSE.
  -9.9-9.9-9.9-9.9
9999999999
.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9
TFTFTFTFTF
  99999999
9999999999999999TFFT9.99.99.99.99.9
     T   F         T    F
  3334444.555550
 9876.5498.7654E2 9876.54   987.654         86.4786E286.4786

==== ercs07/emas-a/f77rel/fcvs3_fm404d.txt ====
QRSTMNOPIJKLYZ127890ABCD3456EFGHUVWX/(),.' =+-*
AABABCABCDABCDEABCDEFWXYZWXYZWXYZWXYZWXYZWXYZ
112123123412345123456
GGGGHHHHIIIIJJJJ
----LLLL
....NNNN

==== ercs07/emas-a/f77rel/ftn_options2.txt ====
!*
%constinteger Dbugcol1     = 1
%constinteger Xbugcol1     = 2
%constinteger Ybugcol1     = 4
%constinteger Defreal8     = 8
%constinteger Listinc      = x'10'
%constinteger genprof      = x'20'
%constinteger inhiberrs    = x'40'
%constinteger dovectorize  = x'80'
%constinteger opt4inclist  = x'100'
%constinteger opt4exclist  = x'200'

==== ercs07/emas-a/f77rel/fcvs5_fm080.txt ====
C     COMMENT SECTION
C
C     FM080
C
C         THIS ROUTINE CONTAINS EXTERNAL FUNCTION REFERENCE TESTS.
C     THE FUNCTION SUBPROGRAMS CALLED BY THIS ROUTINE ARE FF081,
C     FF082 AND FF083.  THE FUNCTION SUBPROGRAMS ARE DEFINED AS
C     FF081 = INTEGER, FF082 = REAL, FF083 = IMPLICIT REAL.
C     THE FUNCTION SUBPROGRAM DUMMY ARGUMENTS MUST AGREE IN ORDER,
C     NUMBER AND TYPE WITH THE CORRESPONDING ACTUAL ARGUMENTS OF THE
C     MAIN PROGRAM.     THE ARGUMENTS OF THE FUNCTION SUBPROGRAMS WILL
C     CORRESPOND TO ACTUAL ARGUMENT LIST REFERENCES OF VARIABLE-NAME,
C     ARRAY-NAME, ARRAY-ELEMENT-NAME AND EXPRESSION RESPECTIVELY.
C
C         THIS ROUTINE WILL TEST THE VALUE OF THE FUNCTION AND THE
C     FUNCTION ARGUMENTS RETURNED FOLLOWING THE FUNCTION REFERENCE CALL.
C
C
C      REFERENCES
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,
C              X3.9-1978

==== ercs07/emas-a/f77rel/fcvs3_fm401.txt ====
      PROGRAM FM401
C
C
C        THIS ROUTINE TESTS FOR PROPER EDITING OF LOGICAL DATA BY
C     THE L EDIT DESCRIPTOR OF THE FORMAT SPECIFICATION.  THE L EDIT
C     DESCRIPTOR IS FIRST TESTED FOR PROPER EDITING ON OUTPUT BY
C     DIRECTING THE EDITED RESULT TO A PRINT FILE.  THE RESULTS MUST
C     BE VISUALLY CHECKED FOR CORRECTNESS  BY  EXAMINING THE EXECUTION
C     REPORT PRODUCED BY THIS ROUTINE. NEXT A NONPRINTER FILE WHICH
C     IS CONNECTED FOR SEQUENTIAL ACCESS IS CREATED WITH LOGICAL DATA
C     FIELDS AND THEN REPOSITIONED TO THE FIRST RECORD IN THE FILE.
C     THE FILE IS THEN READ USING THE SAME EDIT DESCRIPTORS AS WERE
C     USED TO CREATE THE FILE AND THE INTERNAL DATA REPRESENTATION AS A
C     RESULT OF READING THE LOGICAL DATA IS CHECKED.
C        THE FOLLOWING L EDITING TESTS ARE MADE TO SEE THAT
C
C          (1) THE VALUE T OR F IS PRODUCED ON OUTPUT WHEN THE INTERNAL
C              DATUM IS TRUE AND FALSE RESPECTIVELY,
C          (2) THE VALUE OF THE INPUT LIST ITEM IS TRUE OR FALSE
C              WHEN THE INPUT FIELD IS T AND F RESPECTIVELY,
C          (3) THE VALUES .T, .F,   T,    F, .TRUE., .FALSE.,   .T, AND

==== ercs07/emas-a/f77rel/fcvslists_output1.txt ====
*****    BATCH JOB FCVSRUNS_RUN1   STARTED AT 12.58.08 ON 04/03/87    ********

EDINBURGH.EMAS-A service,  Subsys 02 MAR-(t)
04/03/87 12.58.10  Users=36  Fsys= 3

Command:#N                    ***** FCVS COMPILATION RUN 1 *****


Command:#MONLOAD 1


Command:PARM 
0.000   ENTER called

Command:FORTRAN ercs07:f77rel.FCVS0_FM000,.NULL,.OUT
0.000   ENTER called
0.052         ICL9CEIBMF77 found in file ERCS07:F77C200
0.104         S#PDATAENTRY found in file ERCS20:IB9.OPTPUTY
0.138         EMAS3OUTFILE found in file SUBSYS:Y.EMAS3
Source: ERCS07:F77REL.FCVS0_FM000         Compiled: 04/03/87   12.58.12
Object: .NULL

==== ercs07/emas-a/f77rel/fcvs3_fm402.txt ====
      PROGRAM FM402
C
C
C
C         THIS ROUTINE TESTS THE A(W) (W IS SIZE OF FIELD IN CHARACTERS)
C     EDIT DESCRIPTOR OF THE FORMAT SPECIFICATION BOTH WITH AND WITHOUT
C     THE OPTIONAL W.  THE A  EDIT DESCRIPTOR IS USED WITH AN INPUT/
C     OUTPUT LIST ITEM OF TYPE CHARACTER.  IF A FIELD WIDTH W IS SPECI-
C     FIED WITH THE A EDIT DESCRIPTOR THE FIELD CONSISTS OF W CHARAC-
C     TERS.  IF A FIELD WIDTH W IS NOT SPECIFIED WITH THE A EDIT DES-
C     CRIPTOR, THE NUMBER OF CHARACTERS IN THE FIELD IS THE LENGTH OF
C     THE CHARACTER INPUT/OUTPUT LIST ITEM.  THIS ROUTINE FIRST
C     TESTS  FOR PROPER EDITING OF CHARACTER DATA ON OUTPUT BY DIRECTING
C     THE EDITED RESULT  TO A PRINT FILE.    RESULTS OF THIS SET OF
C     TESTS MUST BE VISUALLY CHECKED FOR CORRECTNESS.  NEXT AN EXTERNAL
C     FILE CONNECTED FOR SEQUENTIAL ACCESS IS CREATED WITH CHARACTER
C     DATA.  FINALLY THE FILE IS REWOUND AND READ WITH THE A(W) EDIT
C     DESCRIPTOR AND CHECKED FOR PROPER EDITING ON INPUT.
C
C         THIS ROUTINE TESTS FOR PROPER EDITING BY
C

==== ercs07/emas-a/f77rel/whetruns_detach.txt ====
detach whetruns_rund,60,whetl
detach whetruns_compare,60,.lp23

==== ercs07/emas-a/f77rel/fcvslists_output2.txt ====
*****    BATCH JOB FCVSRUNS_RUN2   STARTED AT 13.01.04 ON 04/03/87    ********

EDINBURGH.EMAS-A service,  Subsys 02 MAR-(t)
04/03/87 13.01.06  Users=33  Fsys= 3

Command:#N                    ***** FCVS COMPILATION RUN 2 *****


Command:PARM


Command:DEFINE 6,.OUT


Command:FORTRAN ERCS07:f77rel.FCVS5_FM022,TMP
   main program
 810 Statements compiled

Command:RUN TMP

          FORTRAN COMPILER VALIDATION SYSTEM

==== ercs07/emas-a/f77rel/fcvs3_fm403.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM403               FMTRW - (020)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                      SUBSET REFS
C*****    TO TEST SIMPLE FORMAT AND FORMATTED DATA              12.9.5.2
C*****    TRANSFER STATEMENTS IN EXTERNAL SEQUENTIAL I/O SO     13.1.1
C*****    THAT THESE FEATURES MAY BE USED IN OTHER TEST         12.8.1
C*****    PROGRAM SEGMENTS FOR INTEGER, REAL, AND LOGICAL
C*****    DATA TYPES.
C*****  RESTRICTIONS OBSERVED                                   12.8.2
C*****  *  ALL FORMAT STATEMENTS ARE LABELED                    13.1.1
C*****  *  H DESCRIPTOR ARE NEVER REPEATED                      13.2.1
C*****  *  FOR W.D DESCRIPTORS, D IS ALWAYS SPECIFIED AND
C*****     W IS EQUAL TO OR GREATER THAN D
C*****  *  FIELD WIDTH IS NEVER ZERO                            13.2.1
C*****  *  IF AN I/O LIST SPECIFIES AT LEAST ONE LIST ITEM      13.3
C*****     AT LEAST ONE REPEATABLE EDIT DESCRIPTOR MUST EXIST
C*****     IN THE FORMAT SPECIFICATION
C*****  *  ITEMS IN I/O LIST CORRESPOND TO EDIT DESCRIPTORS     13.3

==== ercs07/emas-a/f77rel/fcvslists_output3.txt ====
*****    BATCH JOB FCVSRUNS_RUN3   STARTED AT 13.04.20 ON 04/03/87    ********

EDINBURGH.EMAS-A service,  Subsys 02 MAR-(t)
04/03/87 13.04.22  Users=35  Fsys= 3

Command:#N                    ***** FCVS COMPILATION RUN 3 *****


Command:PARM


Command:DEFINE 6,.OUT


Command:DEFINE 7,TMPOUT


Command:FORTRAN ERCS07:f77rel.FCVS0_FM044,TMP
   main program
 784 Statements compiled


==== ercs07/emas-a/f77rel/fcvs3_fm404.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM404               AFMTS - (022)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                      SUBSET REFS
C*****    TO TEST SIMPLE FORMAT AND FORMATTED DATA              12.9.5.2
C*****    TRANSFER STATEMENTS IN EXTERNAL SEQUENTIAL I/O SO     13.1.1
C*****    THAT THESE FEATURES MAY BE USED IN OTHER TEST         12.8.1
C*****    PROGRAM SEGMENTS FOR CHARACTER DATA TYPES.            4.8
C*****
C*****  RESTRICTIONS OBSERVED
C*****  *  ALL FORMAT STATEMENTS ARE LABELED                    12.8.2
C*****  *  H AND X DESCRIPTORS ARE NEVER REPEATED               13.1.1
C*****  *  FIELD WIDTH IS NEVER ZERO                            13.5.11
C*****  *  IF AN I/O LIST SPECIFIES AT LEAST ONE LIST ITEM      13.3
C*****     AT LEAST ONE REPEATABLE EDIT DESCRIPTOR MUST EXIST
C*****     IN THE FORMAT SPECIFICATION.
C*****  *  ITEMS IN I/O LIST CORRESPOND TO FORMAT DESCRIPTORS   13.3
C*****
CBB** ********************** BBCCOMNT **********************************

==== ercs07/emas-a/f77rel/fcvslists_output4.txt ====
*****    BATCH JOB FCVSRUNS_RUN4   STARTED AT 13.07.28 ON 04/03/87    ********

EDINBURGH.EMAS-A service,  Subsys 02 MAR-(t)
04/03/87 13.07.30  Users=31  Fsys= 3

Command:#N                    ***** FCVS COMPILATION RUN 4 *****


Command:PARM


Command:DEFINE 6,.OUT


Command:FORTRAN ERCS07:f77rel.FCVS5_FM109,TMP
   main program
 602 Statements compiled

Command:RUN TMP

          FORTRAN COMPILER VALIDATION SYSTEM

==== ercs07/emas-a/f77rel/fcvs3_fm405.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM405
C*****                       INTER1 - (390)
C*****
C***********************************************************************
C*****  TESTING OF INTERNAL FILES -                           SUBSET REF
C*****          USING READ                                      12.2.5
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041
C****

==== ercs07/emas-a/f77rel/fcvslists_output5.txt ====
*****    BATCH JOB FCVSRUNS_RUN5   STARTED AT 13.10.16 ON 04/03/87    ********

EDINBURGH.EMAS-A service,  Subsys 02 MAR-(t)
04/03/87 13.10.16  Users=31  Fsys= 3

Command:#N                    ***** FCVS COMPILATION RUN 5 *****


Command:PARM


Command:DEFINE 6,.OUT


Command:FORTRAN ERCS07:f77rel.FCVS2_FM300,TMP
   program    FM300
 695 Statements compiled

Command:RUN TMP

          FORTRAN COMPILER VALIDATION SYSTEM

==== ercs07/emas-a/f77rel/fcvs3_fm406.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM406
C*****                       INTER2 - (391)
C*****
C***********************************************************************
C*****  TESTING OF INTERNAL FILES -                           SUBSET REF
C*****          USING WRITE                                     12.2.5
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041
C****

==== ercs07/emas-a/f77rel/fcvslists_output6.txt ====
*****    BATCH JOB FCVSRUNS_RUN6   STARTED AT 13.12.30 ON 04/03/87    ********

EDINBURGH.EMAS-A service,  Subsys 02 MAR-(t)
04/03/87 13.12.32  Users=33  Fsys= 3

Command:#N                    ***** FCVS COMPILATION RUN 6 *****


Command:PARM


Command:DEFINE 6,.OUT


Command:DEFINE 7,TMPOUT


Command:FORTRAN ERCS07:f77rel.FCVS2_FM363,TMP
   main program
 382 Statements compiled


==== ercs07/emas-a/f77rel/fcvslists_output7.txt ====
*****    BATCH JOB FCVSRUNS_RUN7   STARTED AT 13.14.28 ON 04/03/87    ********

EDINBURGH.EMAS-A service,  Subsys 02 MAR-(t)
04/03/87 13.14.30  Users=35  Fsys= 3

Command:#N                    ***** FCVS COMPILATION RUN 7 *****


Command:PARM


Command:DEFINE 6,.OUT


Command:FORTRAN ERCS07:f77rel.FCVS0_FM407,TMP
   main program
   subroutine SN408
 364 Statements compiled

Command:RUN TMP


==== ercs07/emas-a/f77rel/fcvslists_output8.txt ====
*****    BATCH JOB FCVSRUNS_RUN8   STARTED AT 13.16.44 ON 04/03/87    ********

EDINBURGH.EMAS-A service,  Subsys 02 MAR-(t)
04/03/87 13.16.44  Users=35  Fsys= 3

Command:#N                    ***** FCVS COMPILATION RUN 8 *****


Command:PARM


Command:DEFINE 6,.OUT


Command:FORTRAN ERCS07:f77rel.FCVS4_FM802,TMP
   main program
 280 Statements compiled

Command:RUN TMP

                    FEDERAL SOFTWARE TESTING CENTER

==== ercs07/emas-a/f77rel/fcvslists_output9.txt ====
*****    BATCH JOB FCVSRUNS_RUN9   STARTED AT 13.22.04 ON 04/03/87    ********

EDINBURGH.EMAS-A service,  Subsys 02 MAR-(t)
04/03/87 13.22.06  Users=32  Fsys= 3

Command:#N                    ***** FCVS COMPILATION RUN 9 *****


Command:PARM


Command:DEFINE 6,.OUT


Command:FORTRAN ERCS07:f77rel.FCVS4_FM822,TMP
   main program
   112             PIVD = 3.1415926535897932384626434D0
                          ^
Comment 174 Constant has too great a precision and has been truncated

   129             BVD = 6.28318530717958647692D0

==== ercs07/emas-a/f77rel/fcvsruns_run1.txt ====
#N                    ***** FCVS COMPILATION RUN 1 *****
#MONLOAD 1
PARM 
FORTRAN ercs07:f77rel.FCVS0_FM000,.NULL,.OUT
DEFINE 6,.OUT
FORTRAN ERCS07:f77rel.FCVS4_FM001,TMP
RUN TMP
#N
#N     ***** CORRUPT PROGRAM *****     FORTRAN ERCS13:FCVS0_FM002,TMP
FORTRAN ERCS07:f77rel.FCVS0_FM003,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM004,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM005,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM006,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM007,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM008,TMP
RUN TMP

==== ercs07/emas-a/f77rel/fcvsruns_run2.txt ====
#N                    ***** FCVS COMPILATION RUN 2 *****
PARM
DEFINE 6,.OUT
FORTRAN ERCS07:f77rel.FCVS5_FM022,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM023,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM024,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM025,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM026,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM028,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM030,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM031,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM032,TMP
RUN TMP

==== ercs07/emas-a/f77rel/fcvsruns_run3.txt ====
#N                    ***** FCVS COMPILATION RUN 3 *****
PARM
DEFINE 6,.OUT
DEFINE 7,TMPOUT
FORTRAN ERCS07:f77rel.FCVS0_FM044,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM045,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM050,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM056,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS1_FM060,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS1_FM061,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS1_FM062,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM080,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS1_FM097,TMP

==== ercs07/emas-a/f77rel/fcvsruns_run10.txt ====
#N                    ***** FCVS COMPILATION RUN 10 *****
PARM
DEFINE 6,.OUT
FORTRAN ERCS07:f77rel.FCVS4_FM909,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM910,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM912,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM914,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM915,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM916,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM917,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM918,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM919,TMP
RUN TMP

==== ercs07/emas-a/f77rel/fcvsruns_run4.txt ====
#N                    ***** FCVS COMPILATION RUN 4 *****
PARM
DEFINE 6,.OUT
FORTRAN ERCS07:f77rel.FCVS5_FM109,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM110,TMP
DEFINE 5,ERCS07:f77rel.FCVS0_FM110D
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM111,TMP
DEFINE 5,ERCS07:f77rel.FCVS0_FM111D
RUN TMP
FORTRAN ERCS07:f77rel.FCVS2_FM200,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS2_FM201,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS2_FM202,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS2_FM203,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS2_FM204,TMP
RUN TMP

==== ercs07/emas-a/f77rel/fcvsruns_run5.txt ====
#N                    ***** FCVS COMPILATION RUN 5 *****
PARM
DEFINE 6,.OUT
FORTRAN ERCS07:f77rel.FCVS2_FM300,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS2_FM301,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM302,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS2_FM306,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS2_FM307,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS2_FM308,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS2_FM311,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM317,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM328,TMP
RUN TMP

==== ercs07/emas-a/f77rel/fcvsruns_run6.txt ====
#N                    ***** FCVS COMPILATION RUN 6 *****
PARM
DEFINE 6,.OUT
DEFINE 7,TMPOUT
FORTRAN ERCS07:f77rel.FCVS2_FM363,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS2_FM364,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM368,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM369,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM370,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM371,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM372,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM373,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM374,TMP

==== ercs07/emas-a/f77rel/fcvsruns_run7.txt ====
#N                    ***** FCVS COMPILATION RUN 7 *****
PARM
DEFINE 6,.OUT
FORTRAN ERCS07:f77rel.FCVS0_FM407,TMP
RUN TMP
DEFINE 8,.TEMP
FORTRAN ERCS07:f77rel.FCVS5_FM411,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM413,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM500,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM503,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM506,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM509,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM514,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM517,TMP

==== ercs07/emas-a/f77rel/fcvsruns_run8.txt ====
#N                    ***** FCVS COMPILATION RUN 8 *****
PARM
DEFINE 6,.OUT
FORTRAN ERCS07:f77rel.FCVS4_FM802,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM803,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM804,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM805,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM806,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM807,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM808,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM809,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM810,TMP
RUN TMP

==== ercs07/emas-a/f77rel/nbsftests_part10a.txt ====
C*****    PART10    ****************************************************H0004300
C*****                                                                  H0004305
C*****    ANSI FORTRAN   (X3.9-1966)     TEST PROGRAMS                  H0004310
C*****                                                                  H0004315
C*****    PREPARED BY THE NATIONAL BUREAU OF STANDARDS      VERSION 3   H0004320
C*****                                                                  H0004325
C*****    JUNE 1973                                                     H0004330
C*****                                                                  H0004335
C*****    PART 10 OF 14 PARTS                                           H0004340
C*****                                                                  H0004345
C*****    SEGMENTS INCLUDED                                             H0004350
C*****                                                                  H0004355
C*****      BRFCP - 160 REAL EXTERNAL FUNCTIONS                         H0004360
C*****                                                                  H0004365
C*****        AFS - 400    REAL ARGUMENT                                H0004370
C*****                                                                  H0004375
C*****        BFS - 420    REAL ARGUMENTS                               H0004380
C*****                                                                  H0004385
C*****        CFS - 430    INTEGER ARGUMENT                             H0004390
C*****                                                                  H0004395
C*****        DFS - 440    INTEGER ARGUMENTS                            H0004400

==== ercs07/emas-a/f77rel/fcvsruns_run9.txt ====
#N                    ***** FCVS COMPILATION RUN 9 *****
PARM
DEFINE 6,.OUT
FORTRAN ERCS07:f77rel.FCVS4_FM822,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM823,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM824,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM825,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM826,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM827,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM828,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM829,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM830,TMP
RUN TMP

==== ercs07/emas-a/f77rel/fcvs1_fm060.txt ====
C     COMMENT SECTION
C
C     FM060
C
C         THIS ROUTINE CONTAINS BASIC ARITHMETIC IF STATEMENT TESTS FOR
C     THE FORMAT
C
C                   IF (E) K1,K2,K3
C
C     WHERE E IS A SIMPLE REAL EXPRESSION OF THE FORM
C
C            REAL VARIABLE
C            REAL VARIABLE - REAL CONSTANT
C            REAL VARIABLE + REAL CONSTANT
C
C     AND K1, K2 AND K3 ARE STATEMENT LABELS.
C
C         THIS ROUTINE ALSO TESTS ARITHMETIC ASSIGNMENT STATEMENTS OF
C     THE FORM
C                  REAL VARIABLE = REAL CONSTANT
C                  REAL VARIABLE = REAL VARIABLE

==== ercs07/emas-a/f77rel/fcvs1_fm061.txt ====
C     COMMENT SECTION
C
C     FM061
C
C          THIS ROUTINE TESTS ARITHMETIC ASSIGNMENT STATEMENTS OF THE
C     FORM
C                   INTEGER VARIABLE = REAL CONSTANT
C                   INTEGER VARIABLE = REAL VARIABLE
C                   REAL VARIABLE = INTEGER VARIABLE
C                   REAL VARIABLE = INTEGER CONSTANT
C
C     THE CONSTANTS AND VARIABLES CONTAIN BOTH POSITIVE AND NEGATIVE
C     VALUES.
C
C           A REAL DATUM IS A PROCESSOR APPROXIMATION TO THE VALUE OF A
C     REAL NUMBER.  IT MAY ASSUME POSITIVE, NEGATIVE AND ZERO VALUES.
C
C          A BASIC REAL CONSTANT IS WRITTEN AS AN INTEGER PART, A
C     DECIMAL POINT, AND A DECIMAL FRACTION PART IN THAT ORDER.  BOTH
C     THE INTEGER PART AND THE DECIMAL PART ARE STRINGS OF DIGITS;
C     EITHER ONE OF THESE STRINGS MAY BE EMPTY BUT NOT BOTH.  THE

==== ercs07/emas-a/f77rel/whetruns_rundopt1.txt ====
parm opt1,optext
resetloader
disconnect .all
#monload 1
#MON
f77 ercs07:f77rel.whetruns_WHETD,WHETDy,.lp23
#n
run whetdy
destroy whetdy

==== ercs07/emas-a/f77rel/fcvs1_fm062.txt ====
C     COMMENT SECTION
C
C     FM062
C
C          THIS ROUTINE TESTS ARITHMETIC ASSIGNMENT STATEMENTS WHERE
C     AN ARITHMETIC EXPRESSION FORMED FROM REAL VARIABLES AND
C     CONSTANTS CONNECTED BY ARITHMETIC OPERATORS IS ASSIGNED TO
C     A REAL VARIABLE.  IN CASES INVOLVING THE EXPONENTIATION
C     OPERATOR, REAL VALUES ARE RAISED TO INTEGER POWERS ONLY.
C
C           A REAL DATUM IS A PROCESSOR APPROXIMATION TO THE VALUE OF A
C     REAL NUMBER.  IT MAY ASSUME POSITIVE, NEGATIVE AND ZERO VALUES.
C
C          A BASIC REAL CONSTANT IS WRITTEN AS AN INTEGER PART, A
C     DECIMAL POINT, AND A DECIMAL FRACTION PART IN THAT ORDER.  BOTH
C     THE INTEGER PART AND THE DECIMAL PART ARE STRINGS OF DIGITS;
C     EITHER ONE OF THESE STRINGS MAY BE EMPTY BUT NOT BOTH.  THE
C     CONSTANT IS AN APPROXIMATION TO THE DIGIT STRING INTERPRETED AS A
C     DECIMAL NUMERAL.
C
C         A DECIMAL EXPONENT IS WRITTEN AS THE LETTER E, FOLLOWED BY AN

==== ercs07/emas-a/f77rel/whetruns_rundopt2.txt ====
parm opt2,optext
resetloader
disconnect .all
#monload 1
#MON
f77 ercs07:f77rel.whetruns_WHETD,WHETDY,.LP23
#N
run WHETDY
destroy WHETDY

==== ercs07/emas-a/f77rel/srce200_f2opt1.txt ====
!                                                               f2opt1
! 07/12/86 - copy of ftn2opt5
!          - insert include files
! 13/06/86 - avoid back move of char array els
! 11/06/86 - BREAKCHECK to always return 0
! 10/06/86 - suppress backward movement of simple common var
! 02/12/85 - taken from op2p47, new include files incorporated
! 07/08/85 - include test for CHARMODE in ARR/DEFARR triad in BMOVECHECK
! 26/06/85 - line 976 0f LOOPBUILD, map on to next AR block
!          - line 812 of LOOPBUILD, map on to current CL block
! 19/09/84 - clear relevant bit in CLOOPDEF if ASMT/ASGN triad backward moved
!          - line 1510 corrected to VAL1=1, line 1515 moved back 7 lines
! 28/08/84 - correction to BTBITS for CMNCOORDS(1)
! 02/07/84 - change OPTSAB(CMPLX) entry to X'06'
! 11/04/84 - don't word align FREETABS in BMOVHECK
! 10/04/84 - scaling correction in bmovecheck
! 31/01/84 - UPDATE OPSTAB FOR DCMPLX & INTRIN
! 18/01/84 - ADJUST BIT STRIP ADDRESSES
! 17/01/84 - MAKE CALLS OF CREATETAB CONSISTTENT
! 23/11/83 call EDUMPTRACE in OP2A; set up LDUMPTRACE & BMTRACE
! 22/11/82 call CDUMPTRACE in OP2A

==== ercs07/emas-a/f77rel/nbsftests_part11a.txt ====
C*****    PART11    ****************************************************H0004800
C*****                                                                  H0004805
C*****    ANSI FORTRAN   (X3.9-1966)     TEST PROGRAMS                  H0004810
C*****                                                                  H0004815
C*****    PREPARED BY THE NATIONAL BUREAU OF STANDARDS      VERSION 3   H0004820
C*****                                                                  H0004825
C*****    JUNE 1973                                                     H0004830
C*****                                                                  H0004835
C*****    PART 11 OF 14 PARTS                                           H0004840
C*****                                                                  H0004845
C*****    SEGMENTS INCLUDED                                             H0004850
C*****                                                                  H0004855
C*****      DPFCP - 165 DOUBLE PRECISION FUNCTIONS                      H0004860
C*****                                                                  H0004865
C*****        AFD - 405   REAL ARGUMENT                                 H0004870
C*****                                                                  H0004875
C*****        BFD - 415   INTEGER ARGUMENT                              H0004880
C*****                                                                  H0004885
C*****        CFD - 425   D.P. ARGUMENT                                 H0004890
C*****                                                                  H0004895
C*****        DFD - 435   COMPLEX ARGUMENTS                             H0004900

==== ercs07/emas-a/f77rel/fcvsruns_insf77opt.txt ====
remove subsys:y.f77comp135
insert ercs07:f77c200
resetloader
disconnect .all

==== ercs07/emas-a/f77rel/fcvs2_fm251.txt ====
      PROGRAM FM251
C
C
C
C        THIS ROUTINE TESTS THE IMPLICIT STATEMENT FOR DECLARING
C     VARIABLES AS TYPE LOGICAL.  THE TYPE OF A VARIABLE ( LOGICAL,
C     INTEGER, OR REAL ) IS SET BY BOTH IMPLICIT STATEMENTS AND ALSO
C     BY EXPLICIT TYPE STATEMENTS.  TESTS ARE MADE TO CHECK THAT
C     EXPLICIT TYPE STATEMENTS OVERIDE THE TYPE SET BY AN IMPLICIT
C     STATEMENT FOR THE VARIABLES LISTED.
C
C     REFERENCES
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,
C             X3.9-1977
C        SECTION 4.7,    LOGICAL TYPE
C        SECTION 8.4.1,  LOGICAL TYPE STAEMENT
C        SECTION 8.5,    IMPLICIT STATEMENT
C        SECTION 11.5,   LOGICAL IF STATEMENT
C
C
C        FM016 - TESTS LOGICAL TYPE STATEMENTS WITH VARIOUS FORMS OF

==== ercs07/emas-a/f77rel/fcvs2_fm252.txt ====
      PROGRAM FM252
C
C
C
C
C        THIS PROGRAM TESTS REDEFINITION OF STATEMENT LABELS WITH THE
C     ASSIGN STATEMENT IN CONJUNCTION WITH THE ASSIGNED GO TO STATEMENT.
C     THE OPTIONAL COMMA IN THE SYNTAX OF THE ASSIGNED GO TO IS TESTED.
C     THE RANGE OF STATEMENT LABELS ( FROM 00001 TO 99999 ) IS TESTED
C     USING THE ASSIGN STATEMENT AND THE ASSIGNED GO TO STATEMENT.
C     IT ALSO TESTS THE OPTIONAL COMMA IN THE SYNTAX OF THE COMPUTED
C     GO TO STATEMENT AND HAS TESTS ON THE RANGE OF THE INDEX IN THE
C     COMPUTED GO TO.
C
C
C     REFERENCES
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,
C             X3.9-1978
C        SECTION 10.3,       STATEMENT LABEL ASSIGNMENT (ASSIGN)
C        SECTION 11.2,       COMPUTED GO TO STATEMENT
C        SECTION 11.3,       ASSIGNED GO TO STATEMENT

==== ercs07/emas-a/f77rel/fcvs2_fm253.txt ====
      PROGRAM FM253
C
C
C
C        THIS ROUTINE IS A TEST OF THE IF-BLOCK.  TESTS WITHIN THIS
C     ROUTINE ARE FOR THE SYNTAX OF THE BASIC IF ( )  THEN  THROUGH
C     END IF BLOCK STRUCTURE.
C
C        THERE IS ALSO A SERIES OF TESTS TO CHECK THE HIERARCHY AND
C     ORDER OF EVALUATION IN EXPRESSIONS THAT CONTAIN A COMBINATION OF
C     ARITHMETIC, RELATIONAL, AND LOGICAL OPERATORS.
C
C     REFERENCES
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,
C             X3.9-1978
C        SECTION 11.6,       BLOCK IF STATEMENT
C        SECTION 11.6.1,     IF-LEVEL
C        SECTION 11.6.2,     IF-BLOCK
C        SECTION 11.6.3,     EXECUTION OF A BLOCK IF STATEMENT
C
C

==== ercs07/emas-a/f77rel/fcvs2_fm254.txt ====
      PROGRAM FM254
C
C
C
C        THIS ROUTINE IS A TEST OF THE ELSE IF-BLOCK.  TESTS WITHIN THIS
C     ROUTINE ARE FOR THE SYNTAX OF THE BASIC ELSE IF STATEMENT AND
C     ELSE IF-BLOCK STRUCTURE.
C
C     REFERENCES
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,
C            X3.9-1977
C        SECTION 11.7,       ELSE IF STATEMENT
C        SECTION 11.7.1,     ELSE IF-BLOCK
C        SECTION 11.7.2,     EXECUTION OF THE ELSE IF STATEMENT
C
C
C
C
C     ******************************************************************
C         A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE
C     BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN STANDARD FORTRAN

==== ercs07/emas-a/f77rel/copyopt215d.txt ====
copy f1opt1y,obj200d_f1opt1y
copy f2opt1y,obj200d_f2opt1y
copy f3opt2y,obj200d_f3opt2y
copy f4opt1ay,obj200d_f4opt1ay
copy f5opt1y,obj200d_f5opt1y
copy fcelim1y,obj200d_fcelim1y
copy feelim1y,obj200d_feelim1y
copy foplist1y,obj200d_foplist1y
copy foptctl2y,obj200d_foptctl2y
copy fsred1y,obj200d_fsred1y

==== ercs07/emas-a/f77rel/fcvs4_fm900d.txt ====
1.05.522.066.633.123455.0789                                                    
123.00456.88 0.123E+01  +0.987+1 -0.2345+02 -0.6879E+2+0.7E+03 0.4E+03          
 0.9876543E-04+0.1357913E-04                                                    
19.34+0.2468E+02   +.765+287.643.96 0.5407E+0243.96+0.5407E+0243.96   0.5407+2  
  +0.1D+06                                                                      
-0.334D-04   -.334-4 +0.7657654D00 0.12345678901D+10                            
 +0.98765432109876D-1+0.98765432109876D-01    .98765432109876-1                 
 -.555555542D+03  -0.555555542+3                                                
  9.91.19.92.29.93.39.94.49.91.19.92.29.93.39.94.4                              
9.95.59.96.69.97.79.98.89.95.59.96.69.97.79.98.8                                
-0.99D+01-0.98D+01-0.97D+01-0.96D+01-0.99D+01 -.98D+01  -.97+01   -.96+1        
  +0.99D+01 0.98D+01  +.97D01   +.96D1                                          
          +0.99D+01 0.99D+01 0.99D+01+0.99D+01    .99D1                         
9.95.59.96.69.97.79.98.8                                                        
123.45678E2  1234.5678  123.45678  12.345678  1.2345678  .12345678              
 9876.5498.7654E2 9876.54   987.654864786D-486.4786E286.4786  8657.86D0  9876.54
 9.8765698.7654E2  9876.54  987.654864786D-386.4786E286.4786  8657.86D0  9876.54
                                                                                

==== ercs07/emas-a/f77rel/fcvs2_fm255.txt ====
      PROGRAM FM255
C
C
C
C        THIS ROUTINE IS A TEST OF THE ELSE STATEMENT.  TESTS WITHIN
C     THIS ROUTINE ARE FOR THE SYNTAX OF THE BASIC ELSE STATEMENT AND
C     ELSE BLOCK STRUCTURES.  THE END IF STATEMENT IS USED IN ALL BLOCK
C     IF STRUCTURES FOR THE ROUTINES FM253, FM254, AND FM255.  FOR EACH
C     BLOCK IF STATEMENT, THERE MUST BE A CORRESPONDING END IF STATEMENT
C     IN THE SAME PROGRAM UNIT.
C
C     REFERENCES
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,
C             X3.9-1977
C        SECTION 11.8,       ELSE STATEMENT
C        SECTION 11.8.1,     ELSE BLOCK
C        SECTION 11.8.2,     EXECUTION OF AN ELSE STATEMENT
C        SECTION 11.9,       END IF STATEMENT
C
C
C

==== ercs07/emas-a/f77rel/fcvs2_fm256.txt ====
      PROGRAM FM256
C
C
C
C        THIS ROUTINE IS A TEST OF THE DO STATEMENT.  THE DO IS TESTED
C     BOTH OUTSIDE AND INSIDE THE BLOCK-IF STRUCTURE.  TESTS ARE MADE OF
C     THE DO-VARIABLE WHEN THE DO BECOMES INACTIVE.  OTHER TESTS CHECK
C     LOOP AND INCREMENTATION PROCESSING.  THE DO-LOOP EXECUTION
C     IS TESTED FOR THOSE CONDITIONS WHICH MAKE THE DO-LOOP INACTIVE.
C
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,
C             X3.9-1978
C        SECTION 11.10,      DO STATEMENT
C        SECTION 11.10.1,    RANGE OF A DO-LOOP
C        SECTION 11.10.2,    ACTIVE AND INACTIVE DO-LOOPS
C        SECTION 11.10.3,    EXECUTING A DO STATEMENT
C        SECTION 11.10.4,    LOOP CONTROL PROCESSING
C        SECTION 11.10.5,    EXECUTION OF THE RANGE
C        SECTION 11.10.6,    TERMINAL STATEMENT EXECUTION
C        SECTION 11.10.7,    INCREMENTATION PROCESSING
C

==== ercs07/emas-a/f77rel/fcvs2_fm257.txt ====
      PROGRAM FM257
C
C
C
C        THIS ROUTINE IS A TEST OF THE PAUSE AND STOP STATEMENTS.  THESE
C     STATEMENTS CAN NOW BE FOLLOWED BY A STRING OF NOT MORE THAN FIVE
C     DIGITS, OR A CHARACTER CONSTANT.
C
C     REFERENCES
C     REFERENCES
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,
C             X3.9-1978
C        SECTION 11.12,      STOP STATEMENT
C        SECTION 11.13,      PAUSE STATEMENT
C
C        FM015 - TESTS THE STOP AND PAUSE STATEMENTS USING AN OCTAL
C                DIGIT STRING OF LENGTH FROM ONE TO FIVE.
C
C
C
C     ******************************************************************

==== ercs07/emas-a/f77rel/nbsftests_part12a.txt ====
C*****    PART12    ****************************************************H0005400
C*****                                                 JAN.1974  REV.1  H0005405
C*****    ANSI FORTRAN   (X3.9-1966)     TEST PROGRAMS                  H0005410
C*****                                                                  H0005415
C*****    PREPARED BY THE NATIONAL BUREAU OF STANDARDS      VERSION 3   H0005420
C*****                                                                  H0005425
C*****    JUNE 1974                                                     H0005430
C*****                                                                  H0005435
C*****    PART 12 OF 14 PARTS                                           H0005440
C*****                                                                  H0005445
C*****    SEGMENTS INCLUDED                                             H0005450
C*****                                                                  H0005455
C*****      BLKDA - 179  BLOCK DATA TEST                                H0005460
C*****                                                                  H0005465
C*****        BLAKD - 419  BLOCK DATA SUBPROGRAM                        H0005470
C*****                                                                  H0005475
C*****        BLBKD - 429  BLOCK DATA SUBPROGRAM                        H0005480
C*****                                                                  H0005485
C*****        BLCKD - 439  BLOCK DATA SUBPROGRAM                        H0005490
C*****                                                                  H0005495
C*****      UNFRW - 180  UNFORMATTED READ  AND WRITE                    H0005500

==== ercs07/emas-a/f77rel/fcvs2_fm258.txt ====
C*****   FM258
C*****                       BLKIF1 - (300)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                      SUBSET REF
C*****    TEST BLOCK IF STATEMENTS                          11.6 - 11.9
C*****    SIMPLE TESTS OF IF (E) THEN,ELSE,ELSEIF,ENDIF
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041
C****
C****                          (703) 756-6153

==== ercs07/emas-a/f77rel/fcvs2_fm259.txt ====
C*****   FM259
C*****                       BLKIF2 - (301)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                      SUBSET REF
C*****    TEST BLOCK IF STATEMENTS                          11.1 - 11.3
C*****          WITH GOTO, COMPUTED GOTO, ASSIGN GOTO, DO   11.6 - 11.10
C****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041
C****
C****                          (703) 756-6153

==== ercs07/emas-a/f77rel/fcvs5_fm108.txt ====
C     COMMENT SECTION.
C
C     FM108
C
C         THIS ROUTINE IS A TEST OF THE X FORMAT AND IS TAPE AND PRINTER
C     ORIENTED.  THE ROUTINE CAN NOT  BE USED FOR DISK.  BOTH THE READ
C     AND WRITE STATEMENTS ARE TESTED.  VARIABLES IN THE INPUT AND
C     OUTPUT LISTS ARE INTEGER OR REAL VARIABLES, INTEGER ARRAY ELEMENTS
C     OR ARRAY NAME REFERENCES.   READ AND WRITE STATEMENTS ARE DONE
C     WITH FORMAT STATEMENTS.  THE ROUTINE HAS AN OPTIONAL SECTION OF
C     CODE TO DUMP THE FILE AFTER IT HAS BEEN WRITTEN.  DO LOOPS AND
C     DO-IMPLIED LISTS ARE USED IN CONJUNCTION WITH A ONE DIMENSIONAL
C     INTEGER ARRAY FOR THE DUMP SECTION.
C
C         WITH THE EXCEPTION OF THE RECORD PREAMBLES ON EACH RECORD,
C     ALL OF THE I, F, AND A-FIELDS HAVE A MINUS SIGN IN THE LEFTMOST
C     CHARACTER POSITION OF EACH FIELD.
C
C          THIS ROUTINE WRITES A SINGLE SEQUENTIAL FILE WHICH IS
C     REWOUND AND READ SEQUENTIALLY FORWARD AND THEN READ SEQUENTIALLY
C     BACKWARD BY USING THE BACKSPACE COMMAND.   THE FORWARD READ IS

==== ercs07/emas-a/f77rel/ftn_triadops1.txt ====
!*
!*********************** TRIAD operator values *************************
!*
%constinteger ADD    = X'02'
%constinteger SUB    = X'03'
%constinteger MULT   = X'04'
%constinteger DIV    = X'05'
%constinteger NEG    = X'06'
%constinteger ASMT   = X'07'
%constinteger CVT    = X'08'
%constinteger ARR    = X'09'
%constinteger ARR1   = X'0A'
%constinteger BOP    = X'0B'
%constinteger ASGN   = X'0C'
%constinteger EXP    = X'0E'
%constinteger EXP3   = X'0F'
%constinteger AND    = X'10'
%constinteger OR     = X'11'
%constinteger NOT    = X'12'
%constinteger EQUIV  = X'13'
%constinteger NEQ    = X'14'

==== ercs07/emas-a/f77rel/fcvs5_fm109.txt ====
C     COMMENT SECTION
C
C     FM109
C
C         THIS ROUTINE TESTS THE BASIC OPTIONS     REGARDING THE SIMPLE
C     FORMATTED WRITE STATEMENT OF FORM
C            WRITE (U,F)     OR
C            WRITE (U,F) L
C     WHERE      U IS A LOGICAL UNIT NUMBER
C                F IS A FORMAT STATEMENT LABEL, AND
C                L IS A LIST OF INTEGER VARIABLES.
C     THE FORMAT STATEMENT F CONTAINS NH HOLLERITH FIELD DESCRIPTORS,
C     NX BLANK FIELD DESCRIPTORS AND IW NUMERIC FIELD DESCRIPTORS.
C
C         THIS ROUTINE TESTS WHETHER THE FIRST CHARACTER OF A FORMAT
C     RECORD FOR PRINTER OUTPUT DETERMINES VERTICAL SPACING AS FOLLOWS
C                 1    -  ADVANCE TO FIRST LINE OF NEXT PAGE
C               BLANK  -  ONE LINE
C                 0    -  ADVANCE TWO LINES BEFORE PRINTING
C                 +    -  DO NOT ADVANCE BEFORE PRINTING  -  ADVANCE 0
C

==== ercs07/emas-a/f77rel/fcvs2_fm260.txt ====
C*****   FM260
C*****                       BLKIF3 - (302)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                      SUBSET REF
C*****    TEST BLOCK IF STATEMENTS                          11.1 - 11.3
C*****          WITH DO, ARITHMETIC IF, LOGICAL IF,         11.6 - 11.10
C*****                  COMPUTED GOTO, ASSIGN GOTO
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041
C****

==== ercs07/emas-a/f77rel/fcvs4_fm901d.txt ====
XYZ123:45$'),.JKLABCDEF67890MNOPQRSTUVW =+-*/(GHI
ONEFIVENINEELEVENSEVENTHREE
SQUARE THE WORLD IN 40 NIGHTS
DAYS  80AROUND
TO XXXXX NOT TO XXXX-  THAT IS THE QUESTIONXXBE ORBE

==== ercs07/emas-a/f77rel/nbsftests_part13data.txt ====
                     .  .     .  0.    E+00           +           + .    E00
               +              + .        D+00    .        D0
1.23456987654.   +1.234E-0 -98.7654E+0   + 2345.67891011+2          -.109876-4
12345
12345
12345
12345
12345
1.1
1.1
1.1
1.1
+0.339567E+02
  + .339567+2
 + 3.395670E1
 0.96295134244D+04
   .96295134244D04
   0.96295134244+4
 0.96295134244D+04
31.23+0.14E+04+0.2D+02
31.23  .14E+04   +.2+2

==== ercs07/emas-a/f77rel/fcvs5_fm121.txt ====
C
C     COMMENT SECTION.
C
C     FM021
C
C           THIS ROUTINE TESTS THE FORTRAN  DATA INITIALIZATION
C     STATEMENT.  INTEGER, REAL, AND LOGICAL DATA TYPES ARE TESTED
C     USING UNSIGNED CONSTANTS, SIGNED CONSTANTS, AND LOGICAL
C     CONSTANTS..   INTEGER, REAL, LOGICAL, AND MIXED TYPE ARRAYS
C     ARE ALSO TESTED.
C
C      REFERENCES
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,
C              X3.9-1978
C
C        SECTION 4.1.3, DATA TYPE PREPARATION
C        SECTION 4.4.3, REAL CONSTANT
C        SECTION 9, DATA STATEMENT
C
      INTEGER RATN11(3)
      LOGICAL LCTN01, LCTN02, LATN11(3), LADN11

==== ercs07/emas-a/f77rel/fcvs5_fm122.txt ====
C     COMMENT SECTION.
C
C     FM022
C
C         THIS ROUTINE TESTS ARRAYS WITH FIXED DIMENSION AND SIZE LIMITS
C     SET EITHER IN A BLANK COMMON OR DIMENSION STATEMENT.  THE VALUES
C     OF THE ARRAY ELEMENTS ARE SET IN VARIOUS WAYS SUCH AS SIMPLE
C     ASSIGNMENT STATEMENTS, SET TO THE VALUES OF OTHER ARRAY ELEMENTS
C     (EITHER POSITIVE OR NEGATIVE), SET BY INTEGER TO REAL OR REAL TO
C     INTEGER CONVERSION, SET BY ARITHMETIC EXPRESSIONS, OR SET BY
C     USE OF THE  EQUIVALENCE  STATEMENT.
C
C      REFERENCES
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,
C              X3.9-1978
C
C        SECTION 8, SPECIFICATION STATEMENTS
C        SECTION 8.1, DIMENSION STATEMENT
C        SECTION 8.2, EQUIVALENCE STATEMENT
C        SECTION 8.3, COMMON STATEMENT
C        SECTION 8.4, TYPE-STATEMENTS

==== ercs07/emas-a/f77rel/fcvs5_fm123.txt ====
C     COMMENT SECTION.
C
C     FM023
C
C                  TWO DIMENSIONED ARRAYS ARE USED IN THIS ROUTINE.
C         THIS ROUTINE TESTS ARRAYS WITH FIXED DIMENSION AND SIZE LIMITS
C     SET EITHER IN A BLANK COMMON OR DIMENSION STATEMENT.  THE VALUES
C     OF THE ARRAY ELEMENTS ARE SET IN VARIOUS WAYS SUCH AS SIMPLE
C     ASSIGNMENT STATEMENTS, SET TO THE VALUES OF OTHER ARRAY ELEMENTS
C     (EITHER POSITIVE OR NEGATIVE), SET BY INTEGER TO REAL OR REAL TO
C     INTEGER CONVERSION, SET BY ARITHMETIC EXPRESSIONS, OR SET BY
C     USE OF THE  EQUIVALENCE  STATEMENT.
C
C
C      REFERENCES
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,
C              X3.9-1978
C
C        SECTION 8, SPECIFICATION STATEMENTS
C        SECTION 8.1, DIMENSION STATEMENT
C        SECTION 8.2, EQUIVALENCE STATEMENT

==== ercs07/emas-a/f77rel/fcvs5_fm124.txt ====
C     COMMENT SECTION.
C
C     FM024
C
C                  THREE DIMENSIONED ARRAYS ARE USED IN THIS ROUTINE.
C         THIS ROUTINE TESTS ARRAYS WITH FIXED DIMENSION AND SIZE LIMITS
C     SET EITHER IN A BLANK COMMON OR DIMENSION STATEMENT.  THE VALUES
C     OF THE ARRAY ELEMENTS ARE SET IN VARIOUS WAYS SUCH AS SIMPLE
C     ASSIGNMENT STATEMENTS, SET TO THE VALUES OF OTHER ARRAY ELEMENTS
C     (EITHER POSITIVE OR NEGATIVE), SET BY INTEGER TO REAL OR REAL TO
C     INTEGER CONVERSION, SET BY ARITHMETIC EXPRESSIONS, OR SET BY
C     USE OF THE  EQUIVALENCE  STATEMENT.
C
C
C      REFERENCES
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,
C              X3.9-1978
C
C        SECTION 8, SPECIFICATION STATEMENTS
C        SECTION 8.1, DIMENSION STATEMENT
C        SECTION 8.2, EQUIVALENCE STATEMENT

==== ercs07/emas-a/f77rel/fcvs1_fm097.txt ====
C     COMMENT SECTION
C
C     FM097
C
C     THIS ROUTINE TESTS INTRINSIC FUNCTIONS WHERE THE FUNCTION TYPE IS
C     REAL AND THE ARGUMENTS ARE EITHER INTEGER OR REAL.  THE REAL AND
C     INTEGER VARIABLES AND THE REAL AND INTEGER CONSTANTS CONTAIN BOTH
C     POSITIVE AND NEGATIVE VALUES.  THE INTRINSIC FUNCTIONS TESTED BY
C     FM097 INCLUDE
C                                                   TYPE OF
C       INTRINSIC FUNCTION          NAME       ARGUMENT     FUNCTION
C       ------------------          ----       --------     --------
C         ABSOLUTE VALUE            ABS        REAL         REAL
C         TRUNCATION                AINT       REAL         REAL
C         REMAINDERING              AMOD       REAL         REAL
C         CHOOSING LARGEST VALUE    AMAX0      INTEGER      REAL
C                                   AMAX1      REAL         REAL
C         CHOOSING SMALLEST VALUE   AMIN0     INTEGER       REAL
C                                   AMIN1      REAL         REAL
C         FLOAT                     FLOAT      INTEGER      REAL
C         TRANSFER OF SIGN          SIGN       REAL         REAL

==== ercs07/emas-a/f77rel/fcvs5_fm125.txt ====
C     COMMENT SECTION.
C
C     FM025
C
C         THIS ROUTINE TESTS ARRAYS WITH IF STATEMENTS, DO LOOPS,
C     ASSIGNED AND COMPUTED GO TO STATEMENTS IN CONJUNCTION WITH ARRAY
C     ELEMENTS   IN COMMON OR DIMENSIONED.  ONE, TWO, AND THREE
C     DIMENSIONED ARRAYS ARE USED.  THE SUBSCRIPTS ARE INTEGER CONSTANTS
C     OR SOMETIMES INTEGER VARIABLES WHEN THE ELEMENTS ARE IN LOOPS
C     AND ALL ARRAYS HAVE FIXED SIZE LIMITS.  INTEGER, REAL, AND LOGICAL
C     ARRAYS ARE USED WITH THE TYPE SOMETIMES SPECIFIED WITH THE
C     EXPLICIT TYPE STATEMENT.
C
C      REFERENCES
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,
C              X3.9-1978
C
C        SECTION 8, SPECIFICATION STATEMENTS
C        SECTION 8.1, DIMENSION STATEMENT
C        SECTION 8.3, COMMON STATEMENT
C        SECTION 8.4, TYPE-STATEMENTS

==== ercs07/emas-a/f77rel/fcvs1_fm098.txt ====
C     COMMENT SECTION
C
C     FM098
C
C     THIS ROUTINE TESTS INTRINSIC FUNCTIONS WHERE THE FUNCTION TYPE IS
C     INTEGER AND THE ARGUMENTS ARE EITHER INTEGER OR REAL.  THE REAL
C     AND INTEGER VARIABLES AND THE REAL AND INTEGER CONSTANTS CONTAIN
C     BOTH POSITIVE AND NEGATIVE VALUES.  THE INTRINSIC FUNCTIONS TESTED
C     BY FM098 INCLUDE
C                                                     TYPE OF
C       INTRINSIC FUNCTION          NAME       ARGUMENT     FUNCTION
C       ------------------          ----       --------     --------
C         ABSOLUTE VALUE            IABS       INTEGER      INTEGER
C         TRUNCATION                INT        REAL         INTEGER
C         REMAINDERING              MOD        INTEGER      INTEGER
C         CHOOSING LARGEST VALUE    MAX0       INTEGER      INTEGER
C                                   MAX1       REAL         INTEGER
C         CHOOSING SMALLEST VALUE   MIN0       INTEGER      INTEGER
C                                   MIN1       REAL         INTEGER
C         FIX                       IFIX      REAL          INTEGER
C         TRANSFER OF SIGN          ISIGN     INTEGER       INTEGER

==== ercs07/emas-a/f77rel/fcvs5_fm126.txt ====
C     COMMENT SECTION
C
C     FM026
C
C         THIS ROUTINE CONTAINS THE BASIC SUBROUTINE REFERENCE TESTS.
C     THE SUBROUTINE FS027 IS CALLED BY THIS PROGRAM.  THE SUBROUTINE
C     FS027 INCREMENTS THE CALLING ARGUMENT BY 1 AND RETURNS TO THE
C     CALLING PROGRAM.
C
C         EXECUTION OF A SUBROUTINE REFERENCE RESULTS IN AN ASSOCIATION
C     OF ACTUAL ARGUMENTS WITH ALL APPEARANCES OF DUMMY ARGUMENTS IN
C     THE DEFINING SUBPROGRAM.  FOLLOWING THESE ASSOCIATIONS, EXECUTION
C     OF THE FIRST EXECUTABLE STATEMENT OF THE DEFINING SUBPROGRAM
C     IS UNDERTAKEN.
C
C      REFERENCES
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,
C              X3.9-1978
C
C        SECTION 15.6.2, SUBROUTINE REFERENCE
C

==== ercs07/emas-a/f77rel/fcvs1_fm099.txt ====
C     COMMENT SECTION
C
C     FM099
C
C     THIS ROUTINE TESTS VARIOUS MATHEMATICAL FUNCTIONS WHERE BOTH THE
C     FUNCTION TYPE AND ARGUMENTS ARE REAL.  THE REAL VARIABLES AND
C     CONSTANTS CONTAIN BOTH POSITIVE AND NEGATIVE VALUES.  THE
C     FUNCTIONS TESTED IN FM099 INCLUDE
C
C                                                     TYPE OF
C       FUNCTION                    NAME       ARGUMENT     FUNCTION
C       ----------------            ----        --------    --------
C         EXPONENTIAL               EXP        REAL         REAL
C         NATURAL LOGARITHM         ALOG       REAL         REAL
C         COMMON LOGARITHM          ALOG10     REAL         REAL
C         SQUARE ROOT               SQRT       REAL         REAL
C         TRIGONOMETRIC SINE        SIN        REAL         REAL
C         TRIGONOMETRIC COSINE      COS        REAL         REAL
C         HYPERBOLIC TANGENT        TANH       REAL         REAL
C         ARCTANGENT                ATAN       REAL         REAL
C                                   ATAN2      REAL         REAL

==== ercs07/emas-a/f77rel/nbsftests_part14a.txt ====
C*****    PART14    ****************************************************H0006400
C*****                                                                  H0006405
C*****    ANSI FORTRAN   (X3.9-1966)     TEST PROGRAMS                  H0006410
C*****                                                                  H0006415
C*****    PREPARED BY THE NATIONAL BUREAU OF STANDARDS      VERSION 3   H0006420
C*****                                                                  H0006425
C*****    JUNE 1973                                                     H0006430
C*****                                                                  H0006435
C*****    PART 14 OF 14 PARTS                                           H0006440
C*****                                                                  H0006445
C*****    SEGMENTS INCLUDED                                             H0006450
C*****                                                                  H0006455
C*****    MISC5 - 350  SPECIFICATIONS FOR PROGRAM FORM                  H0006460
C*****                                                                  H0006465
C*****    FUNMX - 351  BASIC EXTERNAL FUNCTIONS USING TRIG FORMULAS     H0006470
C*****                                                                  H0006475
C*****    NAMES - 352  NAMES RESEMBLE FORTRAN VERBS AND FUNCTION NAMES  H0006480
C*****                                                                  H0006485
C*****      MAQQ - 413  SUBROUTINE CALLED FROM NAMES                    H0006490
C*****                                                                  H0006495
C*****      MBQQ - 463  SUBROUTINE CALLED FROM NAMES                    H0006500

==== ercs07/emas-a/f77rel/srce200_foptdum1.txt ====
!***********************************************************************
!*                                                                     *
!* dummy procedures to substitute for the optimiser components         *
!*                                                                     *
!***********************************************************************
!*
%externalroutine Op4 Init(%integer Comad)
%end
!*
%externalroutine Op4 Init1(%integer Comad)
%end
!*
%externalroutine Reset Oplist
%end
!*
%externalintegerfn Op4 Subprog
   %result=0
%end
!*
%externalintegerfn Op4 Save
   %result=0

==== ercs07/emas-a/f77rel/partbopt215.txt ====
LINK
obj200_Xcontrl7by
obj200_FALLOC3ay
obj200_FANAL4ay
obj200_FARITH1y
obj200_FCINNUM2ay
obj200_FCODE3y
obj200_Fdata3y
obj200_FEND4y
obj200_Fgen3y
obj200_FINPUT3ay
obj200_FMAP1y
obj200_FMESS2y
obj200_f1opt1y
obj200_f2opt1y
obj200_f3opt3y
obj200_f4opt1ay
obj200_f5opt1y
obj200_fcelim1y
obj200_feelim1y
obj200_foplist1y

==== ercs07/emas-a/f77rel/fcvsruns_run5opt1.txt ====
#N                    ***** FCVS COMPILATION RUN 5 *****
parm opt1
DEFINE 6,.OUT
FORTRAN ERCS07:f77rel.FCVS2_FM300,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS2_FM301,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM302,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS2_FM306,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS2_FM307,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS2_FM308,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS2_FM311,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM317,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM328,TMP
RUN TMP

==== ercs07/emas-a/f77rel/fcvsruns_run5opt2.txt ====
#N                    ***** FCVS COMPILATION RUN 5 *****
parm opt2
DEFINE 6,.OUT
FORTRAN ERCS07:f77rel.FCVS2_FM300,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS2_FM301,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM302,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS2_FM306,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS2_FM307,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS2_FM308,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS2_FM311,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM317,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM328,TMP
RUN TMP

==== ercs07/emas-a/f77rel/fcvs1_fm100.txt ====
C     COMMENT SECTION.
C
C     FM100
C
C         THIS ROUTINE IS A TEST OF THE I FORMAT AND IS TAPE AND PRINTER
C     ORIENTED.  THE ROUTINE CAN ALSO BE USED FOR DISK.  BOTH THE READ
C     AND WRITE STATEMENTS ARE TESTED.  VARIABLES IN THE INPUT AND
C     OUTPUT LISTS ARE INTEGER VARIABLE AND INTEGER ARRAY ELEMENT OR
C     ARRAY NAME REFERENCES.  ALL READ AND WRITE STATEMENTS ARE DONE
C     WITH FORMAT STATEMENTS.  THE ROUTINE HAS AN OPTIONAL SECTION OF
C     CODE TO DUMP THE FILE AFTER IT HAS BEEN WRITTEN.  DO LOOPS AND
C     DO-IMPLIED LISTS ARE USED IN CONJUNCTION WITH A ONE DIMENSIONAL
C     INTEGER ARRAY FOR THE DUMP SECTION.
C
C          THIS ROUTINE WRITES A SINGLE SEQUENTIAL FILE WHICH IS
C     REWOUND AND READ SEQUENTIALLY FORWARD.   EVERY FOURTH RECORD IS
C     CHECKED DURING THE READ TEST SECTION PLUS THE LAST TWO RECORDS
C     AND THE END OF FILE ON THE LAST RECORD.
C
C          THE LINE CONTINUATION IN COLUMN 6 IS USED IN  READ, WRITE,
C     AND FORMAT STATEMENTS.  FOR BOTH SYNTAX AND SEMANTIC TESTS, ALL

==== ercs07/emas-a/f77rel/fcvs1_fm101.txt ====
C     COMMENT SECTION.
C
C     FM101
C
C         THIS ROUTINE IS A TEST OF THE F FORMAT AND IS TAPE AND PRINTER
C     ORIENTED.  THE ROUTINE CAN ALSO BE USED FOR DISK.  BOTH THE READ
C     AND WRITE STATEMENTS ARE TESTED.  VARIABLES IN THE INPUT AND
C     OUTPUT LISTS ARE REAL VARIABLES AND REAL ARRAY ELEMENTS OR
C     ARRAY NAME REFERENCES.  ALL READ AND WRITE STATEMENTS ARE DONE
C     WITH FORMAT STATEMENTS.  THE ROUTINE HAS AN OPTIONAL SECTION OF
C     CODE TO DUMP THE FILE AFTER IT HAS BEEN WRITTEN.  DO LOOPS AND
C     DO-IMPLIED LISTS ARE USED IN CONJUNCTION WITH A ONE DIMENSIONAL
C     INTEGER ARRAY FOR THE DUMP SECTION.
C
C          THIS ROUTINE WRITES A SINGLE SEQUENTIAL FILE WHICH IS
C     REWOUND AND READ SEQUENTIALLY FORWARD.   EVERY FOURTH RECORD IS
C     CHECKED DURING THE READ TEST SECTION PLUS THE LAST TWO RECORDS
C     AND THE END OF FILE ON THE LAST RECORD.
C
C          THE LINE CONTINUATION IN COLUMN 6 IS USED IN  READ, WRITE,
C     AND FORMAT STATEMENTS.  FOR BOTH SYNTAX AND SEMANTIC TESTS, ALL

==== ercs07/emas-a/f77rel/fcvs1_fm102.txt ====
C     COMMENT SECTION.
C
C     FM102
C
C         THIS ROUTINE IS A TEST OF THE A FORMAT AND IS TAPE AND PRINTER
C     ORIENTED.  THE ROUTINE CAN ALSO BE USED FOR DISK.  BOTH THE READ
C     AND WRITE STATEMENTS ARE TESTED.  VARIABLES IN THE INPUT AND
C     OUTPUT LISTS ARE ALPHANUMERIC INTEGERS AND ARRAY ELEMENTS OR
C     ARRAY NAME REFERENCES.  ALL READ AND WRITE STATEMENTS ARE DONE
C     WITH FORMAT STATEMENTS.  THE ROUTINE HAS AN OPTIONAL SECTION OF
C     CODE TO DUMP THE FILE AFTER IT HAS BEEN WRITTEN.  DO LOOPS AND
C     DO-IMPLIED LISTS ARE USED IN CONJUNCTION WITH A ONE DIMENSIONAL
C     INTEGER ARRAY FOR THE DUMP SECTION.
C
C          THIS ROUTINE WRITES A SINGLE SEQUENTIAL FILE WHICH IS
C     REWOUND AND READ SEQUENTIALLY FORWARD.   EVERY RECORD IS READ AND
C     CHECKED FOR ACCURACY AND THE END OF FILE ON RECORD 31 IS ALSO
C     CHECKED.  DURING THE READ AND CHECK PROCESS THE FILE IS REWOUND
C     TWICE.  THE FIRST PASS CHECKS THE ODD NUMBERED RECORDS AND THE
C     SECOND PASS CHECKS THE EVEN NUMBERED RECORDS.
C

==== ercs07/emas-a/f77rel/fcvs1_fm103.txt ====
C     COMMENT SECTION.
C
C     FM103
C
C         THIS ROUTINE IS A TEST OF THE X FORMAT AND IS TAPE AND PRINTER
C     ORIENTED.  THE ROUTINE CAN ALSO BE USED FOR DISK.  BOTH THE READ
C     AND WRITE STATEMENTS ARE TESTED.  VARIABLES IN THE INPUT AND
C     OUTPUT LISTS ARE INTEGER OR REAL VARIABLES, INTEGER ARRAY ELEMENTS
C     OR ARRAY NAME REFERENCES.   READ AND WRITE STATEMENTS ARE DONE
C     WITH FORMAT STATEMENTS.  THE ROUTINE HAS AN OPTIONAL SECTION OF
C     CODE TO DUMP THE FILE AFTER IT HAS BEEN WRITTEN.  DO LOOPS AND
C     DO-IMPLIED LISTS ARE USED IN CONJUNCTION WITH A ONE DIMENSIONAL
C     INTEGER ARRAY FOR THE DUMP SECTION.
C
C          THIS ROUTINE WRITES A SINGLE SEQUENTIAL FILE WHICH IS
C     REWOUND AND READ SEQUENTIALLY FORWARD.   EVERY RECORD IS READ AND
C     CHECKED FOR ACCURACY AND THE END OF FILE ON RECORD 31 IS ALSO
C     CHECKED.  DURING THE READ AND CHECK PROCESS THE FILE IS REWOUND
C     TWICE.  THE FIRST PASS CHECKS THE ODD NUMBERED RECORDS AND THE
C     SECOND PASS CHECKS THE EVEN NUMBERED RECORDS.
C

==== ercs07/emas-a/f77rel/srce200_xcontrl8.txt ====
!                                                         xcontrl8
! 28/09/87 - increase ares sizes if PARM MAXDICT set
!            new version no. 2.16
!                                                                xcontrl7b
! 23/09/87 - intialise inclevel in ICL9CEIBMF77
! 28/07/87 - new version no. 2.15
!                                                    xcontrl7a
! 02/07/87 - new version no. 2.12
!                                                             xcontrld7
! 30/06/87 - in Icl9ceibmf77, set OPT1 bit in OPT1, if Parm opt2; set OPT bit in
!          - Control, if Parm Opt1; set minbound bit in F77parm, if not Parm OPT
!  09/06/87 - change BSIZE to 128
!              new version no. 2.11
!                                                         xcontrl6
! 29/05/87 - new code in SOURCELINE & SELECTINCLUDE, define new own
!          - variables; new dynamic specs
!          - set OPT2 for Include listing
! 06/05/87 - define Get Space and own integers gsconad, gsfindex, gsflen
!                                                          xcontrl5d
! 13/04/87 - change vsn to 2.10
!                                                                     xcontrl5b

==== ercs07/emas-a/f77rel/fcvs1_fm104.txt ====
C     COMMENT SECTION.
C
C     FM104
C
C         THIS ROUTINE IS A TEST OF THE / FORMAT AND IS TAPE AND PRINTER
C     ORIENTED.  THE ROUTINE CAN ALSO BE USED FOR DISK.  BOTH THE READ
C     AND WRITE STATEMENTS ARE TESTED.  VARIABLES IN THE INPUT AND
C     OUTPUT LISTS ARE INTEGER VARIABLE AND INTEGER ARRAY ELEMENT OR
C     ARRAY NAME REFERENCES.  ALL READ AND WRITE STATEMENTS ARE DONE
C     WITH FORMAT STATEMENTS.  THE ROUTINE HAS AN OPTIONAL SECTION OF
C     CODE TO DUMP THE FILE AFTER IT HAS BEEN WRITTEN.  DO LOOPS AND
C     DO-IMPLIED LISTS ARE USED IN CONJUNCTION WITH A ONE DIMENSIONAL
C     INTEGER ARRAY FOR THE DUMP SECTION.
C
C          THIS ROUTINE WRITES A SINGLE SEQUENTIAL FILE WHICH IS
C     REWOUND AND READ SEQUENTIALLY FORWARD.   EVERY RECORD IS READ AND
C     CHECKED DURING THE READ TEST SECTION FOR VALUES OF DATA ITEMS
C     AND THE END OF FILE ON THE LAST RECORD IS ALSO CHECKED.
C
C          THE LINE CONTINUATION IN COLUMN 6 IS USED IN  READ, WRITE,
C     AND FORMAT STATEMENTS.  FOR BOTH SYNTAX AND SEMANTIC TESTS, ALL

==== ercs07/emas-a/f77rel/fcvs1_fm105.txt ====
C     COMMENT SECTION.
C
C     FM105
C
C         FM105 TESTS REPEATED ( ) FORMAT FIELDS AND IS TAPE AND PRINTER
C     ORIENTED.  THE ROUTINE CAN ALSO BE USED FOR DISK.  BOTH THE READ
C     AND WRITE STATEMENTS ARE TESTED.  VARIABLES IN THE INPUT AND
C     OUTPUT LISTS ARE INTEGER VARIABLE AND INTEGER ARRAY ELEMENT OR
C     ARRAY NAME REFERENCES.  ALL READ AND WRITE STATEMENTS ARE DONE
C     WITH FORMAT STATEMENTS.  THE ROUTINE HAS AN OPTIONAL SECTION OF
C     CODE TO DUMP THE FILE AFTER IT HAS BEEN WRITTEN.  DO LOOPS AND
C     DO-IMPLIED LISTS ARE USED IN CONJUNCTION WITH A ONE DIMENSIONAL
C     INTEGER ARRAY FOR THE DUMP SECTION.
C
C          ROUTINE FM105 IS EXACTLY LIKE ROUTINE FM104 EXCEPT THAT
C     FORMAT NUMBERS 77751 AND 77752 HAVE BEEN CHANGED TO USE THREE (3)
C     REPEATED FIELDS, I.E.  ... 3(/ ... )     THIS SHOULD STILL
C     MAKE THE ROUTINE WRITE AND THEN READ FOUR (4) 80 CHARACTER
C     RECORDS FOR EACH SINGLE WRITE OR READ STATEMENT.  OTHER FORMAT
C     CONVERSIONS USED ARE THE X AND I FORMAT FIELDS.  BECAUSE OF THE
C     NUMBER OF CHARACTERS TO BE WRITTEN OR READ IN EACH SET OF FOUR

==== ercs07/emas-a/f77rel/fcvs1_fm106.txt ====
C     COMMENT SECTION.
C
C     FM106
C
C         THIS ROUTINE IS A TEST OF THE E FORMAT AND IS TAPE AND PRINTER
C     ORIENTED.  THE ROUTINE CAN ALSO BE USED FOR DISK.  BOTH THE READ
C     AND WRITE STATEMENTS ARE TESTED.  VARIABLES IN THE INPUT AND
C     OUTPUT LISTS ARE REAL VARIABLES AND REAL ARRAY ELEMENTS OR
C     ARRAY NAME REFERENCES.  ALL READ AND WRITE STATEMENTS ARE DONE
C     WITH FORMAT STATEMENTS.  THE ROUTINE HAS AN OPTIONAL SECTION OF
C     CODE TO DUMP THE FILE AFTER IT HAS BEEN WRITTEN.  DO LOOPS AND
C     DO-IMPLIED LISTS ARE USED IN CONJUNCTION WITH A ONE DIMENSIONAL
C     INTEGER ARRAY FOR THE DUMP SECTION.
C
C          THIS ROUTINE WRITES A SINGLE SEQUENTIAL FILE WHICH IS
C     REWOUND AND READ SEQUENTIALLY FORWARD.   EVERY FOURTH RECORD IS
C     CHECKED DURING THE READ TEST SECTION PLUS THE LAST TWO RECORDS
C     AND THE END OF FILE ON THE LAST RECORD.
C
C          THE LINE CONTINUATION IN COLUMN 6 IS USED IN  READ, WRITE,
C     AND FORMAT STATEMENTS.  FOR BOTH SYNTAX AND SEMANTIC TESTS, ALL

==== ercs07/emas-a/f77rel/fcvs1_fm107.txt ====
C     COMMENT SECTION.
C
C     FM107
C
C         THIS ROUTINE IS A TEST OF THE I FORMAT AND IS TAPE AND PRINTER
C     ORIENTED.  THE ROUTINE CAN ALSO BE USED FOR DISK.  BOTH THE READ
C     AND WRITE STATEMENTS ARE TESTED.  VARIABLES IN THE INPUT AND
C     OUTPUT LISTS ARE INTEGER VARIABLE AND INTEGER ARRAY ELEMENT OR
C     ARRAY NAME REFERENCES.  ALL READ AND WRITE STATEMENTS ARE DONE
C     WITH FORMAT STATEMENTS.  THE ROUTINE HAS AN OPTIONAL SECTION OF
C     CODE TO DUMP THE FILE AFTER IT HAS BEEN WRITTEN.  DO LOOPS AND
C     DO-IMPLIED LISTS ARE USED IN CONJUNCTION WITH A ONE DIMENSIONAL
C     INTEGER ARRAY FOR THE DUMP SECTION.
C
C         THE MAJOR PURPOSE OF THIS ROUTINE IS TO TEST WHETHER THE LAST
C     SET OF PARENTHESES WILL BE REPEATED IN A FORMAT STATEMENT IF THE
C     NUMBER OF DATA ITEMS IN THE INPUT/OUTPUT LIST IS GREATER THAN THE
C     NUMBER OF FIELD SPECIFICATIONS WITHIN THE FORMAT STATEMENT.
C     IN ADDITION THE USE OF TWO AND THREE DIMENSIONED ARRAYS IS TESTED
C     IN THE IMPLIED-DO LISTS IN BOTH THE WRITE AND READ SECTIONS.
C

==== ercs07/emas-a/f77rel/copyopt215.txt ====
copy f1opt1y,obj200_f1opt1y
copy f2opt1y,obj200_f2opt1y
copy f3opt2y,obj200_f3opt2y
copy f4opt1ay,obj200_f4opt1ay
copy f5opt1y,obj200_f5opt1y
copy fcelim1y,obj200_fcelim1y
copy feelim1y,obj200_feelim1y
copy foplist1y,obj200_foplist1y
copy foptctl2y,obj200_foptctl2y
copy fsred1y,obj200_fsred1y

==== ercs07/emas-a/f77rel/fcvs2_fm300.txt ====
      PROGRAM FM300
C
C
C        THIS ROUTINE TESTS THE USE OF THE EQUIVALENCE STATEMENT TO
C     EQUATE STORAGE UNITS OF VARIABLES, ARRAYS AND ARRAY ELEMENTS.
C     ONLY INTEGER, REAL, LOGICAL AND CHARACTER DATA TYPES ARE TESTED.
C     NO ATTEMPT IS MADE TO TEST DATA OF DIFFERENT TYPES THAT ARE
C     EQUATED WITH THE EQUIVALENCE STATEMENT.
C
C     REFERENCES.
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,
C           X3.9-1978
C
C        SECTION 8.1, DIMENSION STATEMENT
C        SECTION 8.2, EQUIVALENCE STATEMENT
C        SECTION 9, DATA STATEMENT
C
C
C     ******************************************************************
C         A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE
C     BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN STANDARD FORTRAN

==== ercs07/emas-a/f77rel/fcvs2_fm301.txt ====
      PROGRAM FM301
C
C
C        FM301 TESTS THE USE OF THE TYPE-STATEMENT TO EXPLICITLY
C     DEFINE THE DATA TYPE FOR VARIABLES, ARRAYS, AND STATEMENT
C     FUNCTIONS.  ONLY INTEGER, REAL, LOGICAL AND CHARACTER DATA
C     TYPES ARE TESTED IN THIS ROUTINE.  INTEGER AND REAL VARIABLES
C     AND ARRAYS ARE TESTED IN A MANNER WHICH BOTH CONFIRMS AND
C     OVERRIDES THE IMPLICIT TYPING OF THE DATA ENTITIES.
C
C        FM301 DOES NOT ATTEMPT TO TEST ALL OF THE ELEMENTARY SYNTAX
C     FORMS OF THE TYPE-STATEMENT.  THESE FORMS ARE TESTED ADEQUATELY
C     WITHIN THE BOILER PLATE AND OTHER AUDIT PROGRAMS.
C
C     REFERENCES.
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,
C           X3.9-1978
C
C        SECTION 4.1, DATA TYPES
C        SECTION 8.4, TYPE-STATEMENT
C        SECTION 8.5, IMPLICIT STATEMENT

==== ercs07/emas-a/f77rel/fcvsruns_run7opt.txt ====
#N                    ***** FCVS COMPILATION RUN 7 *****
parm opt
DEFINE 6,.OUT
FORTRAN ERCS07:f77rel.FCVS0_FM407,TMP
RUN TMP
DEFINE 8,.TEMP
FORTRAN ERCS07:f77rel.FCVS5_FM411,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM413,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM500,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM503,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM506,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM509,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM514,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM517,TMP

==== ercs07/emas-a/f77rel/fcvs5_comp5.txt ====
#MON
F77PARM VAX
COMPF77 ERCS02.FCVS5_FM108,.NULL
DEFINE 7,OUT5
COMPF77 ERCS02.FCVS5_FM109,.NULL
COMPF77 ERCS02.FCVS5_FM16,.NULL
COMPF77 ERCS02.FCVS5_FM17,.NULL
COMPF77 ERCS02.FCVS5_FM18,.NULL
COMPF77 ERCS02.FCVS5_FM19,.NULL
COMPF77 ERCS02.FCVS5_FM20,.NULL
COMPF77 ERCS02.FCVS5_FM21,.NULL
COMPF77 ERCS02.FCVS5_FM22,.NULL
COMPF77 ERCS02.FCVS5_FM23,.NULL
COMPF77 ERCS02.FCVS5_FM24,.NULL
COMPF77 ERCS02.FCVS5_FM25,.NULL
COMPF77 ERCS02.FCVS5_FM26,.NULL
COMPF77 ERCS02.FCVS5_FM261,.NULL
COMPF77 ERCS02.FCVS5_FM28,.NULL
COMPF77 ERCS02.FCVS5_FM302,.NULL
COMPF77 ERCS02.FCVS5_FM217,.NULL
COMPF77 ERCS02.FCVS5_FM328,.NULL

==== ercs07/emas-a/f77rel/cmpopt215d.txt ====
parm xref
imp srce200_f1opt1,f1opt1y,.lp
imp srce200_f2opt1,f2opt1y,.lp
imp srce200_f3opt2,f3opt2y,.lp
imp srce200_f4opt1a,f4opt1ay,.lp
imp srce200_f5opt1,f5opt1y,.lp
imp srce200_fcelim1,fcelim1y,.lp
imp srce200_feelim1,feelim1y,.lp
imp srce200_foplist1,foplist1y,.lp
imp srce200_foptctl2,foptctl2y,.lp
imp srce200_fsred1,fsred1y,.lp

==== ercs07/emas-a/f77rel/fcvs2_fm306.txt ====
      PROGRAM FM306
C
C
C          THIS ROUTINE TESTS THE USE OF THE SUBSET LEVEL FEATURES OF
C     THE IMPLICIT SPECIFICATION STATEMENT.  THE DEFAULT IMPLIED INTEGER
C     AND REAL TYPING IS EITHER CONFIRMED OR OVERRIDDEN TO SPECIFY
C     INTEGER, REAL AND LOGICAL TYPING.  ALL 26 ALPHABETIC LETTERS ARE
C     USED TO INDICATE THE IMPLICIT TYPING.  VARIABLE AND ARRAY
C     ENTITIES ARE USED TO TEST THE ACTUAL TYPING.  THE SUBSET LEVEL
C     FEATURES OF THE IMPLICIT STATEMENT ARE ALSO TESTED IN ROUTINES
C     FM201 AND FM251.
C
C     REFERENCES.
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,
C           X3.9-1978
C
C        SECTION 4.1.2, TYPE RULES FOR DATA AND PROCEDURE IDENTIFIERS.
C        SECTION 8.5,   IMPLICIT STATEMENT
C
C
C     ******************************************************************

==== ercs07/emas-a/f77rel/srce200_feelim1.txt ====
!                                                                     feelim1
! 07/12/86 - copy of ftneelim2
!          - insert include files
! 02/12/85 - taken from eelimp45, new include files incorporated
! 21/08/95 - alter TRELIM to inhibit expression elimination of ARR triads
! 29/11/84 - correct TRELIM for TOCHAR and CONJG
! 31/01/84 - UPDATE TRELIM FOR DCMPLX & INTRIN
! 18/01/84 - BIT STRIP ADDRESSES ARE NOW RELATIVE TO ABLOCKS
! 23/11/83 set up TRACE flag and EDUMPTRACE routine
! 27/10/83 - copied from ERCS06.REL8002_eelimb7
%INCLUDE "ftn_ht"
!*
{%INCLUDE "ftn_fmts2"}
!* 09/12/85 - add recordformat SUBFMT
!* modified 14/03/85
!*
!***********************************************************************
!* Formats for accessing dictionary records                            *
!***********************************************************************
!*
%recordformat PRECF(%byteinteger CLASS,TYPE,X0,X1,

==== ercs07/emas-a/f77rel/fcvs2_fm307.txt ====
      PROGRAM FM307
C
C
C          THIS ROUTINE TESTS INTRINSIC FUNCTIONS WHERE THE FUNCTION
C     TYPE IS REAL AND THE ARGUMENTS ARE EITHER INTEGER OR REAL.  THE
C     FUNCTION NINT IS AN EXCEPTION AND HAS AN INTEGER FUNCTION TYPE.
C     THE REAL OR INTEGER ARGUMENTS CONSIST OF POSITIVE, NEGATIVE AND
C     UNSIGNED CONSTANTS, VARIABLES AND ARRAY ELEMENT VALUES.  EACH
C     INTRINSIC FUNCTION IS TESTED WITH THREE OR FOUR DIFFERENT
C     COMBINATIONS OF ACTUAL ARGUMENTS DESIGNED TO TEST NOT ONLY THE
C     VARIOUS COMBINATIONS OF DATA USAGES BUT ALSO TO TEST THE RANGE OF
C     ARGUMENT AND FUNCTION VALUES, WHERE THAT IS APPROPRIATE.  THE
C     INTRINSIC FUNCTIONS TESTED IN THIS ROUTINE INCLUDE.
C
C                                        SPECIFIC        TYPE  OF
C          INTRINSIC FUNCTION            NAME        ARGUMENT   FUNCTION
C          ------------------            ------      --------   --------
C          CONVERSION TO REAL            REAL        INTEGER    REAL
C          NEAREST WHOLE NUMBER          ANINT       REAL       REAL
C          NEAREST INTEGER               NINT        REAL       INTEGER
C          TANGENT                       TAN         REAL       REAL

==== ercs07/emas-a/f77rel/anopt207d.txt ====
an obj200d_Xcontrld5ay,er
an obj200d_XGEN27by,er
an obj200d_FALLOC1ay,er
an obj200d_FANAL1ay,er
an obj200d_FARITH1y,er
an obj200d_FCINNUM2ay,er
an obj200d_FCODE2y,er
an obj200d_FDATA2y,er
an obj200d_FEND2y,er
an obj200d_FGEN1y,er
an obj200d_FINPUT2ay,er
an obj200d_FMAP1y,er
an obj200d_FMESS1y,er
an obj200d_f1opt1y,er
an obj200d_f2opt1y,er
an obj200d_f3opt1y,er
an obj200d_f4opt1ay,er
an obj200d_f5opt1y,er
an obj200d_fcelim1y,er
an obj200d_feelim1y,er
an obj200d_foplist1y,er

==== ercs07/emas-a/f77rel/fcvs2_fm308.txt ====
      PROGRAM FM308
C
C
C          THIS ROUTINE TESTS INTRINSIC FUNCTIONS WHERE THE ACTUAL
C     ARGUMENTS CONSIST OF INTRINSIC FUNCTION REFERENCES, EXTERNAL
C     FUNCTION REFERENCES, STATEMENT FUNCTION REFERENCES, AND
C     EXPRESSIONS INVOLVING OPERATORS.  THE ARGUMENT AND FUNCTION
C     TYPES OF ALL INTRINSIC FUNCTIONS TESTED ARE EITHER INTEGER OR
C     REAL.  THE INTRINSIC AND EXTERNAL SPECIFICATION STATEMENTS ARE
C     SPECIFIED IN ORDER TO ALLOW INTRINSIC AND EXTERNAL FUNCTIONS TO
C     BE USED AS ACTUAL ARGUMENTS.  THE IMPLICIT STATEMENT AND THE
C     TYPE-STATEMENT ARE TESTED TO ENSURE THAT THEY DO NOT CHANGE THE
C     TYPE OF AN INTRINSIC FUNCTION.  THE COMMON STATEMENT IS USED TO
C     PASS DATA ENTITIES TO AN EXTERNAL FUNCTION.  THE DATA STATEMENT
C     IS USED TO ENSURE THAT INITIALLY DEFINED ENTITIES CAN BE USED AS
C     ACTUAL ARGUMENTS.  THE EQUIVALENCE STATEMENT IS USED TO EQUATE A
C     VARIABLE USED AS AN ACTUAL ARGUMENT.  THE INTRINSIC FUNCTIONS
C     TESTED IN THIS ROUTINE INCLUDE.
C
C                                        SPECIFIC        TYPE OF
C          INTRINSIC FUNCTION            NAME        ARGUMENT   FUNCTION

==== ercs07/emas-a/f77rel/fcvs2_fm311.txt ====
      PROGRAM FM311
C
C
C        THIS ROUTINE TESTS THE USE OF THE FORTRAN IN-LINE STATEMENT
C     FUNCTION OF TYPES INTEGER, REAL AND LOGICAL.  SPECIFIC FEATURES
C     TESTED INCLUDE,
C
C        A) REAL STATEMENT FUNCTIONS USING REAL CONSTANTS AND VARIABLES
C           IN THE EXPRESSION AND AS ACTUAL ARGUMENTS.
C
C        B) STATEMENT FUNCTIONS WHICH REQUIRE CONVERSION OF THE
C           EXPRESSION TO REAL AND INTEGER TYPING.
C
C        C) THE USE OF VARIABLES, ARRAY ELEMENTS, EXTERNAL REFERENCES,
C           AND INITIALLY DEFINED ENITIIES IN THE EXPRESSION.
C
C        D) VARIOUS DEFINITIONS AND USES OF DUMMY ARGUMENTS.
C
C        E) ACTUAL ARGUMENTS CONSISTING OF EXPRESSIONS, INTRINSIC
C           FUNCTION REFERENCES, AND EXTERNAL FUNCTION REFERENCES.
C

==== ercs07/emas-a/f77rel/fcvs5_obey5.txt ====
PARM NOCHECK
#MON
F77PARM VAX
F77P ERCS02.FCVS5_FM108,Y5
DEFINE 7,OUT5
RUN Y5
F77P ERCS02.FCVS5_FM109,Y5
RUN Y5
F77P ERCS02.FCVS5_FM16,Y5
RUN Y5
F77P ERCS02.FCVS5_FM17,Y5
RUN Y5
F77P ERCS02.FCVS5_FM18,Y5
RUN Y5
F77P ERCS02.FCVS5_FM19,Y5
RUN Y5
F77P ERCS02.FCVS5_FM20,Y5
RUN Y5
F77P ERCS02.FCVS5_FM21,Y5
RUN Y5
F77P ERCS02.FCVS5_FM22,Y5

==== ercs07/emas-a/f77rel/fcvsruns_run2opt.txt ====
#N                    ***** FCVS COMPILATION RUN 2 *****
parm opt
DEFINE 6,.OUT
FORTRAN ERCS07:f77rel.FCVS5_FM022,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM023,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM024,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM025,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM026,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM028,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM030,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM031,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM032,TMP
RUN TMP

==== ercs07/emas-a/f77rel/fcvs3_fm500.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM500
C*****                       BLKD1 - (260)
C*****   THIS PROGRAM USES SN501 AND AN502
C***********************************************************************
C*****  TESTING OF BLOCK DATA SUBPROGRAMS FEATURES              ANS REF
C*****          IMPLICIT, PARAMETER, EXTERNAL, AND SAVE           16
C*****  THIS SEGMENT USES  BLOCK DATA PROGRAM
C*****  AN502    AND SUBROUTINE SN501
C*****
C*****  S P E C I F I C A T I O N S  SEGMENT 260
        EXTERNAL AN502
C*****  DECLARATION OF VARIABLES IN COMMON BLOCKS
C*****  PARAMETER (KPI = 2, LPI = 10)
C*****  INTEGER FXVI
C*****  REAL JX1S
C*****  DOUBLE PRECISION AX1D, BX4D
C*****  DIMENSION BX4D(KPI, KPI, KPI, KPI)
C*****  COMPLEX AXVC, BX1C, CZ5C
C*****  LOGICAL AXVB, BZ1B, CX6B(2,2,2,2,2,2)

==== ercs07/emas-a/f77rel/fcvs3_fm503.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM503
C*****                       BLKD2 - (261)
C*****   THIS PROGRAM USES FM504 (UNNAMED BLOCK DATA SUBPROGRAM
C*****   AND SUBROUTINE SN505
C***********************************************************************
C*****  TESTING OF BLOCK DATA SUBPROGRAMS                       ANS REF
C*****          DATA INTERNAL FORMS                               16
C*****  THIS SEGMENT USES SEGMENTS 702 AND 703, BLOCK DATA PROGRAM
C*****  FM504 AND SUBROUTINE SN505
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER

==== ercs07/emas-a/f77rel/fcvs3_fm506.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM506
C*****                       BLKD3 - (262)
C*****   USES BLOCK DATA SUBPROGRAM AN507 AND SUBROUTINE SN508
C***********************************************************************
C*****  TESTING OF BLOCK DATA SUBPROGRAMS                       ANS REF
C*****          VARYING CHARACTER VARIABLE LENGTHS                16
C*****  THIS SEGMENT USES SEGMENTS 704 AND 705, BLOCK DATA PROGRAM
C*****  AN507 AND SUBROUTINE SN508
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100

==== ercs07/emas-a/f77rel/fcvs3_fm509.txt ====
      PROGRAM FM509
C
C     THIS ROUTINE TESTS SUBROUTINE SUBPROGRAMS AND        ANS REF.
C        FUNCTION SUBPROGRAMS WITH MULTIPLE ENTRIES.       15.6.1
C        THIS ROUTINE ALSO TESTS THE USE OF SYMBOLIC       15.7, 15.7.1
C        NAMES OF CONSTANTS, SUBSTRINGS NAMES, AND         15.9.2
C        ARRAY ELEMENT SUBSTRINGS AS ARGUMENTS.            15.9.3.2
C                                                          15.9.3.3
C     THIS ROUTINE USES THE SUBROUTINE SUBPROGRAMS SN510,
C     SN511, AND SN512, AND THE FUNCTION SUBPROGRAM RF513.
C
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100

==== ercs07/emas-a/f77rel/fcvs4_fm001.txt ====
C     COMMENT SECTION
C
C     FM001
C
C         THIS ROUTINE CONTAINS THE BOILERPLATE SOURCE CODING WHICH
C     IS USED TO PRINT THE REPORT HEADINGS AND RUN SUMMARIES FOR EACH
C     OF THE ELEMENTARY ROUTINES.
C
C         THREE TESTS ARE INCLUDED WHICH CONTAIN THE PROCEDURES FOR
C         TESTING THE LANGUAGE FEATURES AND DELETING TESTS.
C
C         TEST 1 CHECKS THE PASS PROCEDURE
C         TEST 2 CHECKS THE FAIL PROCEDURE
C         TEST 3 CHECKS THE DELETE PROCEDURE
C
C         IF THIS ROUTINE DOES NOT EXECUTE CORRECTLY, THEN NO OTHER
C     ROUTINES WILL BE RUN.  THERE IS NO USE IN TRYING TO VALIDATE A
C     FORTRAN COMPILER WHICH CANNOT HANDLE SUCH BASIC STATEMENTS.
C
C      **********************************************************
C

==== ercs07/emas-a/f77rel/nbsfruns_detopt.txt ====
detach nbsfruns_f77opt,100,nbsfl
detach nbsfruns_compare,100,.lp23

==== ercs07/emas-a/f77rel/fcvs3_fm514.txt ====
      PROGRAM FM514
C
C     THIS ROUTINE TESTS SUBROUTINE STATEMENT WITH         ANS REF.
C     ASTERISK DUMMY ARGUMENTS AND TEST ALTERNATE          15.6.1
C     RETURN SPECIFIER AS AN ACTUAL ARGUMENT.              15.9.3.5
C                                                          15.6.2.3
C     THIS ROUTINE USES SUBROUTINE SUBPROGRAMS SN515 AND
C                       SN516.
C
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041
C****

==== ercs07/emas-a/f77rel/fcvs3_fm517.txt ====
      PROGRAM FM517                                                     00010517
C                                                                       00020517
C     THIS PROGRAM TESTS THE RETURN STATEMENT              ANS REF.     00030517
C                       RETURN E                           15.8.1       00040517
C     IN SUBROUTINE SUBPROGRAMS.  E IS AN ARITHMETIC       15.8.3       00050517
C     EXPRESSION WHOSE VALUE INDICATES WHERE CONTROL                    00060517
C     WILL BE RETURNED TO.                                              00070517
C                                                                       00080517
C     THIS ROUTINE USES SUBROUTINE SUBPROGRAMS SN518                    00090517
C     AND SN519                                                         00100517
C                                                                       00110517
CBB** ********************** BBCCOMNT **********************************00120517
C****                                                                   00130517
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM                00140517
C****                          VERSION 2.0                              00150517
C****                                                                   00160517
C****                                                                   00170517
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO         00180517
C****                   GENERAL SERVICES ADMINISTRATION                 00190517
C****                   FEDERAL SOFTWARE TESTING CENTER                 00200517
C****                   5203 LEESBURG PIKE, SUITE 1100                  00210517

==== ercs07/emas-a/f77rel/fcvs1_comp1.txt ====
#MON
F77PARM VAX
F77P ERCS02.FCVS1_FM100,.NULL
F77P ERCS02.FCVS1_FM101,.NULL
F77P ERCS02.FCVS1_FM102,.NULL
F77P ERCS02.FCVS1_FM103,.NULL
F77P ERCS02.FCVS1_FM104,.NULL
F77P ERCS02.FCVS1_FM105,.NULL
F77P ERCS02.FCVS1_FM106,.NULL
F77P ERCS02.FCVS1_FM107,.NULL
F77P ERCS02.FCVS1_FM60,.NULL
F77P ERCS02.FCVS1_FM61,.NULL
F77P ERCS02.FCVS1_FM62,.NULL
F77P ERCS02.FCVS1_FM97,.NULL
F77P ERCS02.FCVS1_FM98,.NULL
F77P ERCS02.FCVS1_FM99,.NULL
METER

==== ercs07/emas-a/f77rel/fcvs1_obey1.txt ====
PARM NOCHECK
#MON
F77PARM VAX
DEFINE 6,.OUT
DEFINE 7,OUT
COMPF77 ERCS02.FCVS1_FM100,Y
RUN Y
COMPF77 ERCS02.FCVS1_FM101,Y
RUN Y
COMPF77 ERCS02.FCVS1_FM102,Y
RUN Y
COMPF77 ERCS02.FCVS1_FM103,Y
RUN Y
COMPF77 ERCS02.FCVS1_FM104,Y
RUN Y
COMPF77 ERCS02.FCVS1_FM105,Y
RUN Y
COMPF77 ERCS02.FCVS1_FM106,Y
RUN Y
COMPF77 ERCS02.FCVS1_FM107,Y
RUN Y

==== ercs07/emas-a/f77rel/f77aux12.txt ====
! 04/11/86 - correction to COMPARE
! 17/07/86 - corrections to LGT etc fns
!*
%recordformat dcxf(%longreal real,imag)
%recordformat cxf(%real real,imag)
!*
!******************************** exports ******************************
!*
{ 1} %routinespec    F77 Stop(%integer Ptype,%integer Val)
{ 2} %routinespec    F77 Pause (%integer PTYPE,%integer VAL)
{ 3} %routinespec    F77 Rterr(%integer Errno,%integer Line,Addrproc)
{ 4} %routinespec    Fcpystr(%integer A1,A2,L1,L2)
{ 5} %integerfnspec  Fcpstr(%integer Relop,A1,A2,L1,L2)
{ 6} %routinespec    Fconcat %alias "f_concat"(%integer Alist,N,Ad,Len)
{ 7} %integerfnspec  Fibits(%integer a1,a2,a3)
{ 8} %integerfnspec  Fishftc(%integer a1,a2)
{ 9} %routinespec    Crmult(%record(cxf)%name c,a,b)
{10} %routinespec    Cdmult(%record(dcxf)%name c,a,b)
{11} %routinespec    Crdiv(%record(cxf)%name c,a,b)
{12} %routinespec    Cddiv(%record(dcxf)%name c,a,b)
!*

==== ercs07/emas-a/f77rel/f77aux13.txt ====
!                                                                f77aux13
! 24/02/87 - new routine Fconcat2
! 19/02/87 - corrections to Crmult, Crdiv, Cddiv
!          - replace routines Copy & Fill by system routine s#move &s#fill
!          - include file ftn_ht
! 10/02/87 - correction to Cdmult
!
!                                                                f77aux12
! 04/11/86 - correction to COMPARE
! 17/07/86 - corrections to LGT etc fns
!*
%include "ftn_ht"
!*
%recordformat dcxf(%longreal real,imag)
%recordformat cxf(%real real,imag)
!*
!******************************** exports ******************************
!*
{ 1} %routinespec    F77 Stop(%integer Ptype,%integer Val)
{ 2} %routinespec    F77 Pause (%integer PTYPE,%integer VAL)
{ 3} %routinespec    F77 Rterr(%integer Errno,%integer Line,Addrproc)

==== ercs07/emas-a/f77rel/f77aux14.txt ====
!                                                                f77aux14
! 02/02/87 - remove routine Fconcat2
!                                                                f77aux13
! 24/02/87 - new routine Fconcat2
! 19/02/87 - corrections to Crmult, Crdiv, Cddiv
!          - replace routines Copy & Fill by system routine s#move &s#fill
!          - include file ftn_ht
! 10/02/87 - correction to Cdmult
!
!                                                                f77aux12
! 04/11/86 - correction to COMPARE
! 17/07/86 - corrections to LGT etc fns
!*
%include "ftn_ht"
!*
%recordformat dcxf(%longreal real,imag)
%recordformat cxf(%real real,imag)
!*
!******************************** exports ******************************
!*
{ 1} %routinespec    F77 Stop(%integer Ptype,%integer Val)

==== ercs07/emas-a/f77rel/fcvs2_fm351.txt ====
      PROGRAM FM351
C
C
C          THIS PROGRAM CONTAINS TESTS FOR COMPOUND ARITHMETIC
C     EXPRESSIONS WHICH NECESSITATE THE APPLICATION OF THE RULES
C     FOR ARITHMETIC OPERATOR PRECEDENCE.  THESE TESTS INCLUDE ONES
C     WHICH EXERCIZE THE
C
C     (1)  USE OF ALL ARITHMETIC OPERATOR TYPES IN THE SAME STATEMENT.
C     (2)  USE OF PARENTHESES TO OVERRIDE DEFAULT PRECEDENCES.
C     (3)  USE OF ALL CLASSES OF PRIMARY OPERANDS.
C     (4)  USE OF NESTED FUNCTION REFERENCES.
C     (5)  USE OF MIXED DATA TYPES.
C
C     REFERENCES -
C
C     AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, X3.9-1977
C
C          SECTION 6.1  ARITHMETIC EXPRESSIONS
C          SECTION 6.5  PRECEDENCE OF OPERATORS
C          SECTION 6.6  EVALUATION OF EXPRESSIONS

==== ercs07/emas-a/f77rel/f77aux15.txt ====
!                                                                f77aux15
! 15/09/87 - insert routines F_ibits, F_ishftc
!                                                                f77aux14
! 02/02/87 - remove routine Fconcat2
!                                                                f77aux13
! 24/02/87 - new routine Fconcat2
! 19/02/87 - corrections to Crmult, Crdiv, Cddiv
!          - replace routines Copy & Fill by system routine s#move &s#fill
!          - include file ftn_ht
! 10/02/87 - correction to Cdmult
!
!                                                                f77aux12
! 04/11/86 - correction to COMPARE
! 17/07/86 - corrections to LGT etc fns
!*
%include "ftn_ht"
!*
%recordformat dcxf(%longreal real,imag)
%recordformat cxf(%real real,imag)
!*
!******************************** exports ******************************

==== ercs07/emas-a/f77rel/fcvs2_fm352.txt ====
      PROGRAM FM352
C
C
C          THIS PROGRAM CHECKS BASIC RELATIONAL EXPRESSIONS INVOLVING
C     OPERANDS OF REAL DATA TYPE.  IN EACH TEST, NOT ONLY THE RELATIONAL
C     EXPRESSION IS TESTED, BUT THE TRICHOTOMY LAW OF MATHEMATICAL
C     RELATIONSHIPS IS ALSO TESTED (E.G., IF A .LT. B, THEN A CAN NOT
C     BE .GT. THAN B, AND A CAN NOT BE .EQ. B).  A TEST VARIABLE
C     (IVCOMP) IS USED TO REPORT THE RESULT OF THE TEST AS FOLLOWS,
C          IVCOMP = 0  IF BOTH THE TESTED RELATIONAL OPERATOR AND THE
C                      TRICHOTOMY TEST PASS.
C          IVCOMP = 1  IF THE RELATIONAL TEST FAILS AND THE TRICHOTOMY
C                      TEST PASSES (WHICH WOULD INDICATE THAT A TESTED
C                      NOT .LT., .GT., OR .EQ. B).
C          IVCOMP = 2  IF THE RELATIONAL TEST PASSES AND THE TRICHOTOMY
C                      TEST FAILS (WHICH WOULD INDICATE THAT A TESTED
C                      .LT., .GT., AND .EQ. B).
C          IVCOMP = 3  IF BOTH THE RELATIONAL TEST AND THE TRICHOTOMY
C                      TEST FAIL (WHICH WOULD INDICATE THE RELATIONAL
C                      EXPRESSION TESTED OPPOSITE TO THAT EXPECTED
C                      (E.G., WHERE A WAS SUPPOSED TO BE .LT. B, IN

==== ercs07/emas-a/f77rel/fcvs2_fm353.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM353               XINT - (150)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                       SUBSET REF
C*****    TEST INTRINSIC FUNCTION - IFIX - (CONVERSION FROM      15.3
C*****    REAL TO INTEGER)                                     (TABLE 5)
C*****    TEST INTRINSIC FUNCTION - INT - (TRUNCATION -- SIGN
C*****    OF A * LARGEST INTEGER LE ABS(A) )
C*****
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER

==== ercs07/emas-a/f77rel/fcvs4_fm711.txt ====
      PROGRAM FM711
C
C     THIS ROUTINE TESTS ADJUSTABLE ARRAYS AND ADJUSTABLE       ANS REF.
C                        DIMENSIONS, AND THE USE OF ARRAY       5.5.1
C                        NAMES.                                 5.6
C
C     THIS ROUTINE USES ROUTINES 712-714 AS SUBROUTINES.
C
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041
C****
C****                          (703) 756-6153

==== ercs07/emas-a/f77rel/fcvs2_fm354.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM354              XREAL - (152)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                       SUBSET REF
C*****    TEST INTRINSIC FUNCTIONS FLOAT AND REAL                15.3
C*****    (CONVERSION FROM INTEGER TO REAL)                    (TABLE 5)
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041
C****

==== ercs07/emas-a/f77rel/fcvs2_fm355.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM355               XAINT - (154)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                       SUBSET REF
C*****    TEST INTRINSIC FUNCTIONS AINT, ANINT, NINT             15.3
C*****    TRUNCATION (SIGN OF A * LARGEST INTEGER LE ABS(A) )  (TABLE 5)
C*****
C*****   GENERAL COMMENTS
C*****         FLOAT FUNCTION ASSUMED WORKING
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER

==== ercs07/emas-a/f77rel/fcvs2_fm356.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM356               XABS - (156)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                       SUBSET REF
C*****    TEST INTRINSIC FUNCTION ABS,IABS (ABSOLUTE VALUE)      15.3
C*****                                                         (TABLE 5)
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041
C****

==== ercs07/emas-a/f77rel/fcvs2_fm357.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM357               XAMOD - (159)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****    TEST INTRINSIC FUNCTIONS AMOD AND MOD - REMAINDERING,  15.3
C*****    WHICH IS DEFINED AS A1-(A1/A2)A2 WHERE (X) IS AN     (TABLE 5)
C*****    INTEGER WHOSE MAGNITUDE IS LE ABS(X) AND WHOSE SIGN
C*****    IS THE SAME AS X.
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100

==== ercs07/emas-a/f77rel/fcvs4_fm715.txt ====
      PROGRAM FM715
C
C     THIS ROUTINE TESTS CHARACTER EXPRESSIONS           ANS REF.
C     AND CONCATENATION OPERATIONS USING                 6.2, 6.2.1,
C     ASSIGNMENT STATEMENTS AND RELATIONAL               6.2.2, 6.2.2.2,
C     EXPRESSIONS.                                       6.6.5
C
C     THIS ROUTINE USES ROUTINES CF716-CF717 AS FUNCTION SUBPROGRAMS.
C
C     THE FUNCTION LEN IS ASSUMED WORKING.
C
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100

==== ercs07/emas-a/f77rel/fcvs2_fm359.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM359               XSIGN - (161)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                       SUBSET REF
C*****    TEST INTRINSIC FUNCTION - SIGN, ISIGN - (TRANSFER      15.3
C*****    OF SIGN - SIGN OF A2 TIMES ABS(A1)  )                (TABLE 5)
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041
C****

==== ercs07/emas-a/f77rel/fcvs2_fm360.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM360               XDIM - (163)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                       SUBSET REF
C*****    TEST INTRINSIC FUNCTION DIM AND IDIM--POSITIVE         15.3
C*****    DIFFERENCE, WHICH IS DEFINED AS A1 - MIN(A1,A2)      (TABLE 5)
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041
C****

==== ercs07/emas-a/f77rel/fcvs5_fm903d.txt ====
333144446666225555
1234567890
1234567890
1234567890
1234567890
 12345
 12345123.5123.45D-01 12345D+01
12 345 678
    5-1111 3333-5555 7777-9999
12345678901234567890123456781234567890123456789012345678
12345678901234123456789012341234567890123412345678901234
12345678901234123456789012341234567890123456789012345678
12345678901234567890123456781234567890123456789012345678
12345678901234123456789012341234567890123412345678901234

==== ercs07/emas-a/f77rel/copy207d.txt ====
copy xgen27cy,obj200d_xgen27cy
copy xcontrld5y,obj200d_xcontrld5y
copy falloc2ay,obj200d_falloc2ay
copy fanal2ay,obj200d_fanal2ay
copy farith1y,obj200d_farith1y
copy fcinnum2ay,obj200d_fcinnum2ay
copy fcode2y,obj200d_fcode2y
copy fdata1y,obj200d_fdata1y
copy fend2y,obj200d_fend2y
copy fgen2y,obj200d_fgen2y
copy finput1ay,obj200d_finput1ay
copy fmap1y,obj200d_fmap1y
copy fmess1y,obj200d_fmess1y
copy foptdum1y,obj200d_foptdum1y
copy freal1by,obj200d_freal1by
copy froot1dy,obj200d_froot1dy
copy ftriads1y,obj200d_ftriads1y
copy ffptos1ay,obj200d_ffptos1ay
copy fcfmt1ay,obj200d_fcfmt1ay

==== ercs07/emas-a/f77rel/fcvs4_fm719.txt ====
      PROGRAM FM719
C
C     THIS ROUTINE TESTS DO STATEMENTS USING REAL,         ANS REF.
C          DOUBLE PRECISION, OR MIXED TYPE DO-VARIABLES.   11.10
C     ALSO TESTED ARE ACTIVE AND INACTIVE                  11.10.2
C          DO LOOPS.                                       11.10.3
C
C     THIS ROUTINE USES FUNCTION SUBPROGRAM IF720 AND
C                       SUBROUTINE SUBPROGRAM SN721.
C
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041

==== ercs07/emas-a/f77rel/srce200_finput3a.txt ====
!                                                                 finput3a
! 26/04/87 - correct text generated for too many continuations
!          - missing ENDDO faulted
!                                                                    finput2a
! 18/02/87 - correct parameter to call of selectoutput in routine cklab
!                                                                finput1a
! 15/01/87 - insert %alias for in number
!
!                                                               finput1
! 16/11/86 - incorporate changes up to ftninput19
! 10/10/86 - insert include files
!                                                               ftninput18
! 01/10/86 - give error line if only listing is object
!*                                                              ftninput17
! 06/09/86 - inhibit listings of include files unless requested
! 02/08/86 - support EBCDIC on Amdahl
!*                                                              ftninput16
!* 10/06/86 allow '...' '....' (in formats)
!* 07/06/86 Gould extensions
!* 04/06/86 align dp consts                                     ftninput15
!* 22/04/86 allow for NatSemi hex const reversal

==== ercs07/emas-a/f77rel/fcvs2_fm361.txt ====
C*****   FM361               XMAX - (165)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                       SUBSET REF
C*****    TEST OF INTRINSIC FUNCTIONS AMAX0,AMAX1,MAX0,MAX1      15.3
C*****    CHOOSING LARGEST VALUE                               (TABLE 5)
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041
C****
C****                          (703) 756-6153
C****

==== ercs07/emas-a/f77rel/fcvs2_fm362.txt ====
C*****   FM362               XMIN - (167)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                       SUBSET REF
C*****    TEST INTRINSIC FUNCTIONS AMIN0,AMIN1,MIN0,MIN1         15.3
C*****    CHOOSING SMALLEST VALUE.                             (TABLE 5)
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041
C****
C****                          (703) 756-6153
C****

==== ercs07/emas-a/f77rel/fcvs2_fm363.txt ====
C*****   FM363               X66MX - (171)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                       SUBSET REF
C*****    TEST THAT ALL INTRINSIC FUNCTIONS WOULD ACCEPT         15.3
C*****    ANY EXPRESSION OF THE TYPE SPECIFIED IN THE          (TABLE 5)
C*****    INTRINSIC FUNCTION TABLE - ANS REFS - 15.10
C*****
C*****  GENERAL COMMENTS
C*****    SEGMENTS XINT, XREAL, XAINT, XABS, XAMOD,
C*****    XSIGN, XDIM, XMAX, XMIN ASSUMED WORKING
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER

==== ercs07/emas-a/f77rel/fcvs2_fm364.txt ====
C*****   FM364               XRMNX - (172)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                      SUBSET REF
C*****    TESTS THE USE OF MIXED MODE ARITHMETIC                15.10
C*****    EXPRESSIONS CONTAINING REFERENCES TO THE              15.3
C*****    INTRINSIC FUNCTIONS                                   6.1.4
C*****
C*****  GENERAL COMMENTS
C*****    SEGMENTS TESTING XINT, XREAL, XAINT, XABS, XAMOD,
C*****    XSIGN, XDIM, XMAX, XMIN ASSUMED WORKING
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER

==== ercs07/emas-a/f77rel/srce200_fend4.txt ====
!                                                                   fend4
! 14/07/87 - remove line 1283
! 02/07/87 - in Dimeval, insert check for unary op
! 01/06/87 - insert line 1283 in Subprogend; insert spec for Elinestart
!                                                                   fend3
! 27/04/87 - line 1786, insert unassigned check
!                                                                fend2
! 28/01/87 - call Estkdir with Scalars at S(6) in routine Dimop
!                                                                 fend1
! 16/11/86 - suppress sdbdata and associated refs for Amdahl
! 23/09/86 - insert include files
!                                                                 ftnend16
! 09/09/86 - adjust parameter offsets in dbx records
!          - re-order sdb iden records
! 05/09/86 - unmask dbx calls
!          - in sdbdata suppress blockdata info
!          -            common names in lower case
!                                                                 ftnend15
! 30/07/86 - suppress dbx calls pro tem
!* modified 06/07/86                                             ftnend14
!*

==== ercs07/emas-a/f77rel/fcvs4_fm722.txt ====
      PROGRAM FM722
C
C     *************************************************************
C     THE FULL LANGUAGE SET ALLOWS DATA TYPES TO BE DECLARED DOUBLE
C     PRECISION AND COMPLEX.
C     (FSTC TEST/PROGRAM IDENTIFICATION S04AF-2P)
C     *************************************************************
C     REFERENCES.
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,
C           X3.9-1978
C
C        SECTION 4  DATA TYPES AND CONSTANTS
C          PARAGRAPHS:
C
C          4.1
C          4.1.2
C
C        SECTION 8  SPECIFICATION STATEMENTS
C          PARAGRAPHS:
C          8.4.1
C          8.6

==== ercs07/emas-a/f77rel/fcvsruns_comprun10.txt ====
textcompare run10l,f77rel.fcvslists_output10
destroy run10l

==== ercs07/emas-a/f77rel/fcvs5_fm903.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM903               IOFMTF - (354)
C*****   THIS PROGRAM CALLS SUBROUTINE SN904
C***********************************************************************
C*****  GENERAL PURPOSE                                        ANS REFS
C*****    TO TEST ADDITIONAL FEATURES OF READ AND WRITE        12.8
C*****    STATEMENTS, FORMATTED RECORDS AND FORMAT STATEMENTS  12.1.1
C*****    DOUBLE PRECISION AND COMPLEX DATA TYPES.
C*****    TO TEST ALL FORMS OF CHARACTER EXPRESSIONS AS        13.1.2
C*****    FORMAT SPECIFIERS.
C*****  RESTRICTIONS OBSERVED
C*****  *  H AND X DESCRIPTORS ARE NEVER REPEATED              13.2.1
C*****  *  FOR W.D DESCRIPTORS, D IS ALWAYS SPECIFIED AND
C*****     W IS EQUAL TO OR GREATER THAN D
C*****  *  FIELD WIDTH IS NEVER ZERO
C*****  *  IF AN I/O LIST SPECIFIES AT LEAST ONE ITEM          13.3
C*****     AT LEAST ONE REPEATABLE EDIT DESCRIPTOR MUST EXIST
C*****     IN THE FORMAT SPECIFICATION
C*****  *  ITEMS IN I/O LIST CORRESPOND TO EDIT DESCRIPTORS
C*****  *  NEGATIVE OUTPUT VALUES ARE SIGNED                   13.5.9

==== ercs07/emas-a/f77rel/fcvs0_fm000.txt ====
C *** TEST TO IDENTIFY COMPILER VERSION
      END

==== ercs07/emas-a/f77rel/fcvs0_fm002.txt ====
C
C     COMMENT SECTION.
C
C     FM012N
C
C             THIS ROUTINE TESTS THE FORTRAN DO - STATEMENT FROM ITS
C     SIMPLIST FORMAT TO THE MORE ABBREVIATED FORMS.  VARIOUS INCREMENTS0
C     ARE USED AND BRANCHING BY VARIOUS METHODS IS TESTED FOR PASSINGN
C     CONTROL OUT OF THE DO RANGE AND RETURNING (EXTENDED RANGE).S
C     NESTED DO STATEMENTS USING VARIOUS TERMINATING STATEMENTS ARE ALSO0
C     TESTED BY THIS ROUTINE.I
C
C      REFERENCESH
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,R
C              X3.9-1978A
C
C        SECTION 11.10, DO STATEMENTP
C        SECTION 11.10.3, EXECUTES A DO LOOPI
C        SECTION 11.11, CONTINUE STATEMENTO
C
C

==== ercs07/emas-a/f77rel/srce200_fcode3.txt ====
!                                                           fcode3
! 26/04/87 - set maxelevel to max actually allowed
!                                                           fcode2
! 02/03/87 - corrections to CHAROP if OP = CHHEAD
!
!                                                             fcode1
! 16/11/86 - incorporate changes up to ftncode34
! 14/10/86 - incorporate VNS changes
! 10/10/86 - insert include files
!                                                             ftncode31
! 07/09/86 - process Gould intrinsic fn extensions
!                                                             ftncode30
! 20/08/86 - in Locate Arrel avoid setting top=0 for destemp
! 19/08/86 - if Gould opt then no scaling needed for arrays
!                                                             ftncode29
! 17/08/86 - CMPLX and CONJG to avoid intermediate store if possible
! 16/08/86 - in Store Val, Load Val do Erefer on destemps
!          - avoid using Store Val for DINIT
!          - INCR, DECR to use Load Address for Destemps
!* modified 10/07/86                                           ftncode28
!*

==== ercs07/emas-a/f77rel/fcvs0_fm003.txt ====
C     COMMENT SECTION
C
C     FM003
C
C         THIS ROUTINE CONTAINS THE BASIC CONTINUE TESTS.  THESE TESTS
C     ENSURE THAT EXECUTION OF A CONTINUE STATEMENT CAUSES CONTINUATION
C     OF THE NORMAL PROGRAM EXECUTION SEQUENCE.  ONLY THE STATEMENTS IN
C     THE BASIC ASSUMPTIONS ARE INCLUDED IN THESE TESTS.  OTHER CONTINUE
C     TESTS ARE CONTAINED IN OTHER ROUTINES AS PART OF THE TESTS FOR
C     OTHER LANGUAGE FEATURES SUCH AS THE DO STATEMENTS TESTS.
C
C      REFERENCES
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,
C              X3.9-1978
C
C        SECTION 3.6, NORMAL EXECUTION SEQUENCE AND TRANSFER OF CONTROL
C        SECTION 11.11, CONTINUE STATEMENT
C
C
C      **********************************************************
C

==== ercs07/emas-a/f77rel/fcvs0_fm004.txt ====
C     COMMENT SECTION
C
C     FM004
C
C         THIS ROUTINE CONTAINS BASIC ARITHMETIC IF STATEMENT TESTS.
C     THE STATEMENT FORMAT IS
C                IF  (E)  K1, K2, K3
C     WHERE E IS A SIMPLE INTEGER EXPRESSION OF FORM
C                VARIABLE - CONSTANT
C                VARIABLE + CONSTANT
C     AND K1, K2 AND K3 ARE STATEMENT LABELS.  ONLY THE STATEMENTS IN
C     THE BASIC ASSUMPTIONS ARE INCLUDED IN THESE TESTS.
C         EXECUTION OF AN IF STATEMENT CAUSES EVALUATION OF THE
C     EXPRESSION E FOLLOWING WHICH THE STATEMENT LABEL K1, K2 OR K3
C     IS EXECUTED NEXT AS THE VALUE OF E IS LESS THAN ZERO, ZERO, OR
C     GREATER THAN ZERO, RESPECTIVELY.
C
C         THE BASIC UNCONDITIONAL GO TO STATEMENT IS TESTED IN THIS
C     ROUTINE. THE STATEMENT IS OF THE FORM
C               GO TO K
C     WHERE K IS A STATEMENT LABEL.

==== ercs07/emas-a/f77rel/fcvs0_fm005.txt ====
C     COMMENT SECTION
C
C     FM005
C
C         THIS ROUTINE TESTS THE BASIC ASSUMPTIONS REGARDING THE SIMPLE
C     FORMATTED WRITE STATEMENT OF FORM
C            WRITE (U,F)     OR
C            WRITE (U,F) L
C     WHERE      U IS A LOGICAL UNIT NUMBER
C                F IS A FORMAT STATEMENT LABEL, AND
C                L IS A LIST OF INTEGER VARIABLES.
C     THE FORMAT STATEMENT F CONTAINS NH HOLLERITH FIELD DESCRIPTORS,
C     NX BLANK FIELD DESCRIPTORS AND IW NUMERIC FIELD DESCRIPTORS.
C
C         THIS ROUTINE TESTS WHETHER THE FIRST CHARACTER OF A FORMAT
C     RECORD FOR PRINTER OUTPUT DETERMINES VERTICAL SPACING AS FOLLOWS
C               BLANK  -  ONE LINE
C                 1    -  ADVANCE TO FIRST LINE OF NEXT PAGE
C
C      REFERENCES
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,

==== ercs07/emas-a/f77rel/fcvs0_fm006.txt ====
C        COMMENT SECTION
C
C     FM006
C
C         THIS ROUTINE TESTS ARITHMETIC ASSIGNMENT STATEMENTS OF
C     THE FORM
C                   INTEGER VARIABLE = INTEGER CONSTANT
C                   INTEGER VARIABLE = INTEGER VARIABLE
C         THE INTEGER CONSTANT MAY BE UNSIGNED, POSITIVE OR NEGATIVE.
C
C         AN INTEGER DATUM IS ALWAYS AN EXACT REPRESENTATION OF AN
C     INTEGER VALUE.  IT MAY ASSUME POSITIVE, NEGATIVE AND ZERO VALUES.
C     IT MAY ONLY ASSUME INTEGRAL VALUES.
C
C         AN INTEGER CONSTANT IS WRITTEN AS A NONEMPTY STRING OF DIGITS.
C     THE CONSTANT IS THE DIGIT STRING INTERPRETED AS A DECIMAL NUMBER.
C
C         THIS ROUTINE ALSO CONTAINS TESTS WHICH CHECK ON THE USE OF
C     AT LEAST 16 BITS FOR REPRESENTING INTEGER DATA VALUES.  THE
C     CONSTANT VALUES 32767 AND -32766 ARE USED IN THESE TESTS.
C

==== ercs07/emas-a/f77rel/bopt210.txt ====
LINK
obj200_Xcontrl6y
obj200d_Xgen27ey
obj200_FALLOC2ay
obj200_FANAL2ay
obj200_FARITH1y
obj200_FCINNUM2ay
obj200_FCODE3y
obj200_FDATA2y
obj200_FEND3y
obj200_Fgen3y
obj200_FINPUT3ay
obj200_FMAP1y
obj200_FMESS2y
obj200_f1opt1y
obj200_f2opt1y
obj200_f3opt1y
obj200_f4opt1ay
obj200_f5opt1y
obj200_fcelim1y
obj200_feelim1y

==== ercs07/emas-a/f77rel/fcvs5_fm910.txt ====
C***********************************************************************
C*****   FM910
C*****                       DIRAF2 - (411)
C*****   THIS PROGRAM CALLS SUBROUTINE SN911 IN FILE FM911
C***********************************************************************
C*****  TESTING OF DIRECT ACCESS FILES                         ANS REF
C*****          UNFORMATTED WITH BOTH SEQUENTIAL AND DIRECT     12.5
C*****          ACCESS TO THE SAME FILE
C*****          NAMED FILE AND SCRATCH FILE
C*****
C*****          USES SUBROUTINE SN911
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER

==== ercs07/emas-a/f77rel/fcvs0_fm007.txt ====
C        COMMENT SECTION
C
C     FM007
C
C         THIS ROUTINE TESTS THE USE OF DATA INITIALIZATION STATEMENTS.
C     DATA INITIALIZATION STATEMENTS ARE USED TO DEFINE INITIAL VALUES
C     OF INTEGER VARIABLES.  THE DATA STATEMENTS CONTAIN UNSIGNED,
C     POSITIVE SIGNED AND NEGATIVE SIGNED INTEGER CONSTANTS.  THE LAST
C     DATA STATEMENT CONTAINS THE FORM
C                   J*INTEGER CONSTANT
C     WHICH INDICATES THE CONSTANT IS TO BE SPECIFIED J TIMES.
C
C      THE TESTS IN THIS ROUTINE CHECK THE INTEGER VARIABLES IN THE
C     DATA STATEMENT FOR THE ASSIGNED INITIAL VALUES.
C
C      REFERENCES
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,
C              X3.9-1978
C
C        SECTION 4.3, INTEGER TYPE
C        SECTION 4.3.1, INTEGER CONSTANT

==== ercs07/emas-a/f77rel/bopt211.txt ====
LINK
obj200_Xcontrl7y
obj200d_Xgen27fy
obj200_FALLOC2ay
obj200_FANAL2ay
obj200_FARITH1y
obj200_FCINNUM2ay
obj200_FCODE3y
obj200_FDATA2y
obj200_FEND3y
obj200_Fgen3y
obj200_FINPUT3ay
obj200_FMAP1y
obj200_FMESS2y
obj200_f1opt1y
obj200_f2opt1y
obj200_f3opt1y
obj200_f4opt1ay
obj200_f5opt1y
obj200_fcelim1y
obj200_feelim1y

==== ercs07/emas-a/f77rel/fcvs0_fm008.txt ====
C     COMMENT SECTION.
C
C     FM008
C
C         THIS ROUTINE TESTS ARITHMETIC ASSIGNMENT STATEMENTS OF THE
C     FORM          INTEGER VARIABLE = ARITHMETIC EXPRESSION
C     WHERE THE ARITHMETIC EXPRESSION IS FORMED WITH THE ARITHMETIC
C     OPERATOR + INTEGER CONSTANTS AND POSITIVE INTEGER VARIABLES.
C     SOME OF THE TESTS USE PARENTHESES TO GROUP ELEMENTS IN THE
C     ARITHMETIC EXPRESSION.
C
C         THERE ARE TESTS WHERE THE ARITHMETIC EXPRESSION CONTAINS
C            (1) TWO INTEGER CONSTANTS,
C            (2) THREE INTEGER CONSTANTS,
C            (3) THREE INTEGER CONSTANTS WITH PARENTHESES TO GROUP
C                   ELEMENTS,
C            (4) ONE INTEGER VARIABLE AND ONE INTEGER CONSTANT,
C            (5) ONE INTEGER VARIABLE AND TWO INTEGER CONSTANTS,
C            (6) ONE INTEGER VARIABLE AND TWO INTEGER CONSTANTS WITH
C                   PARENTHESES TO GROUP ELEMENTS.
C

==== ercs07/emas-a/f77rel/bopt212.txt ====
LINK
obj200_Xcontrl7ay
obj200d_Xgen27fy
obj200_FALLOC3ay
obj200_FANAL3ay
obj200_FARITH1y
obj200_FCINNUM2ay
obj200_FCODE3y
obj200_FDATA3y
obj200_FEND4y
obj200_Fgen3y
obj200_FINPUT3ay
obj200_FMAP1y
obj200_FMESS2y
obj200_f1opt1y
obj200_f2opt1y
obj200_f3opt1y
obj200_f4opt1ay
obj200_f5opt1y
obj200_fcelim1y
obj200_feelim1y

==== ercs07/emas-a/f77rel/fcvs5_fm912.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM912
C*****                       DIRAF3 - (412)
C*****   THIS PROGRAM CALLS SUBROUTINE SN913 IN FILE FM913
C***********************************************************************
C*****  TESTING OF DIRECT ACCESS FILES                         ANS REF
C*****          FORMATTED, WITH BOTH SEQUENTIAL AND DIRECT       12.5
C*****          ACCESS TO THE SAME FILE
C*****
C*****          USES SUBROUTINE SN913    FAQ
C*****
C*****  S P E C I F I C A T I O N S  SEGMENT 412
C***********************************************************************
        DIMENSION F1S(10), G1S(10)
        CHARACTER*20 A20VK, B20VK, C20VK, A201K(10), B201K(10)
        CHARACTER*47 A47VK, B47VK, C47VK
        CHARACTER*51 A51VK
        CHARACTER*12 A12VK
        CHARACTER A120VK*120, B120VK*120, A1VK*1, A4VK*4
        CHARACTER*31 REMK,REMK1,REMK2,REMK3,REMK4,REMK5,REMK45

==== ercs07/emas-a/f77rel/fcvs0_fm009.txt ====
C     COMMENT SECTION.                                                  00010009
C                                                                       00020009
C     FM009                                                             00030009
C                                                                       00040009
C         THIS ROUTINE TESTS ARITHMETIC ASSIGNMENT STATEMENTS OF THE    00050009
C     FORM                                                              00060009
C             INTEGER VARIABLE = ARITHMETIC EXPRESSION                  00070009
C     WHERE THE ARITHMETIC EXPRESSION IS FORMED WITH THE ARITHMETIC     00080009
C     OPERATOR +, INTEGER CONSTANTS AND POSITIVE INTEGER VARIABLES.     00090009
C     SOME OF THE TESTS USE PARENTHESES TO GROUP ELEMENTS IN THE        00100009
C     ARITHMETIC EXPRESSION.                                            00110009
C                                                                       00120009
C         THERE ARE TESTS WHERE THE ARITHMETIC EXPRESSION CONTAINS      00130009
C            (1)  TWO INTEGER VARIABLES,                                00140009
C            (2)  TWO INTEGER VARIABLES AND ONE INTEGER CONSTANT,       00150009
C            (3)  TWO INTEGER VARIABLES AND ONE INTEGER CONSTANT WITH   00160009
C                   PARENTHESES TO GROUP ELEMENTS.                      00170009
C                                                                       00180009
C      REFERENCES                                                       00190009
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,       00200009
C              X3.9-1978                                                00210009

==== ercs07/emas-a/f77rel/fcvsruns_run7opt1.txt ====
#N                    ***** FCVS COMPILATION RUN 7 *****
parm opt1
DEFINE 6,.OUT
FORTRAN ERCS07:f77rel.FCVS0_FM407,TMP
RUN TMP
DEFINE 8,.TEMP
FORTRAN ERCS07:f77rel.FCVS5_FM411,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM413,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM500,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM503,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM506,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM509,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM514,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM517,TMP

==== ercs07/emas-a/f77rel/srce200_fgen3.txt ====
!                                                                 fgen3
! 26/04/87 - fault char as unit arg to INQUIRE
!                                                                 fgen2
! 09/04/87 - include contents of gsyn71 instead of ftn_gsynt70
!                                                              fgen1
! 16/11/86 - incorporate changes up to ftngen26
! 10/10/86 - insert include files
!                                                               ftngen23
! 10/09/86 - change interpretation of Com_Opt
! 09/09/86 - in CHECK PMODE set correct result for IMAG
! 07/09/86 - INTRINFN supporting Gould extensions
! 06/09/86 - call BSStidy after END
!                                                               ftngen22
! 19/08/86 - generate scaling for arrays if Gould opt
!                                                               ftngen21
! 15/08/86 - int*2 consts treated sensibly in Start Of Do Loop
! 06/08/86 - allow int*2 as IOSTAT var
! 02/08/86 - in phi(81) allow int*2 parameter values
!*                                                             ftngen20
! 27/07/86 - in Link Param check for invalid intrin arg form
! 26/07/86 - in phi(51) set 'assigned bit' for fn name in input list

==== ercs07/emas-a/f77rel/fcvs0_fm010.txt ====
C     COMMENT SECTION.
C
C      FM010
C
C             THIS ROUTINE TESTS REFERENCE FORMAT OF FORTRAN STATEMENTS
C     AND STATEMENT NUMBERS.  THE USE OF THE BLANK CHARACTER IS TESTED
C     BOTH WITHIN THE STATEMENT NUMBER FIELD AND WITHIN THE FORTRAN
C     STATEMENTS THEMSELVES.  LEADING ZERO IS TESTED FOR STATEMENTS AND
C     INTEGER CONSTANTS.  VARIABLE NAMES WHICH LOOK VERY MUCH LIKE
C     FORTRAN RESERVED WORDS ARE TESTED IN ARITHMETIC ASSIGNMENT
C     STATEMENTS.  NAMING CONVENTIONS USED THROUGHOUT THE FCVS ARE
C     TESTED ALSO IN ARITHMETIC ASSIGNMENT STATEMENTS.
C
C      REFERENCES
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,
C              X3.9-1978
C
C        SECTION 2.5, VARIABLES
C        SECTION 3.1.6, BLANK CHARACTER
C        SECTION 3.2.2, INITIAL LINES
C        SECTION 3.4, STATEMENT LABELS

==== ercs07/emas-a/f77rel/fcvsruns_run7opt2.txt ====
#N                    ***** FCVS COMPILATION RUN 7 *****
parm opt2
DEFINE 6,.OUT
FORTRAN ERCS07:f77rel.FCVS0_FM407,TMP
RUN TMP
DEFINE 8,.TEMP
FORTRAN ERCS07:f77rel.FCVS5_FM411,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM413,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM500,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM503,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM506,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM509,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM514,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS3_FM517,TMP

==== ercs07/emas-a/f77rel/fcvs0_fm011.txt ====
C      COMMENT SECTION.
C
C      FM011
C
C     THIS ROUTINE IS A TEST OF BLANK CHARACTERS (SECTION 3.1.6)
C         WHICH SHOULD HAVE NO MEANING WHEN EMBEDDED IN FORTRAN RESERVED
C         WORDS.
C      REFERENCES
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,
C              X3.9-1978
C
C        SECTION 3.1.6, BLANK CHARACTER
      DIM EN SION  IADN11(3),IADN12(3)
      IN TEGER  RVTNI1
      REA  L   IVTNR1
      LOG  ICAL   LVTNL1,LVTNL2
      COM  MON  IACE11(3)
      EQU IVAL ENCE  (IACE11(1),IADN11(1))
      D   A  T  A   IADN12/3*3/
C
C      **********************************************************

==== ercs07/emas-a/f77rel/bopt216.txt ====
LINK
obj200_Xcontrl8y
obj200d_Xgen31y
obj200_FALLOC3ay
obj200_FANAL4ay
obj200_FARITH1y
obj200_FCINNUM2ay
obj200_FCODE3y
obj200_Fdata3y
obj200_FEND4y
obj200_Fgen3y
obj200_FINPUT3ay
obj200_FMAP1y
obj200_FMESS2y
obj200_f1opt1y
obj200_f2opt1y
obj200_f3opt3y
obj200_f4opt1ay
obj200_f5opt1y
obj200_fcelim1y
obj200_feelim1y

==== ercs07/emas-a/f77rel/srce200_foplist1.txt ====
!                                                                   foplist1
! 07/11/86 - insert include files
!                                                                   ftnoplist5
! 14/09/86 - allow to function if opt2 only
!                                                                   ftnoplist4
! 06/08/86 - correct mask for intrinsic fns
!                                                                   ftnoplist3
! 05/07/86 - generate for CVT if also assignment (complex)
! 20/02/86 - comment out code at SW(LE) & SW(JIF) IN FORMLINE
! 13/12/85 - copied from oplistb48
!          - new SW(GLALIT) at SW(STKLIT) in GEN (from oplistp46)
!          - new include files incorporated
! 22/10/84 - coorection to OUTPUTTEXT for continuation lines in OPT4
! 15/10/84 - define external routine RESET OPLIST
! 09/10/84 - change OUTPUTLINE to print global line number LINES
! 18/09/84 - insert switch for STFNID in GEN and delete array QUAL
! 24/07/84 set OPSYS 0
! 23/07/84 amend SW(CGT) in FORMLINE to print private labels
! 10/07/84 new version of targetpnx_fptos
! 05/07/84 insert switch SW(INTRIN) in FORMLINE
! 03/07/84 make FPTOS a string function & put in an include file

==== ercs07/emas-a/f77rel/fcvs0_fm012.txt ====
C                                                                       00010012
C     COMMENT SECTION.                                                  00020012
C                                                                       00030012
C     FM012                                                             00040012
C                                                                       00050012
C             THIS ROUTINE TESTS THE FORTRAN DO - STATEMENT FROM ITS    00060012
C     SIMPLIST FORMAT TO THE MORE ABBREVIATED FORMS.  VARIOUS INCREMENTS00070012
C     ARE USED AND BRANCHING BY VARIOUS METHODS IS TESTED FOR PASSING   00080012
C     CONTROL OUT OF THE DO RANGE AND RETURNING (EXTENDED RANGE).       00090012
C     NESTED DO STATEMENTS USING VARIOUS TERMINATING STATEMENTS ARE ALSO00100012
C     TESTED BY THIS ROUTINE.                                           00110012
C                                                                       00120012
C      REFERENCES                                                       00130012
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,       00140012
C              X3.9-1978                                                00150012
C                                                                       00160012
C        SECTION 11.10, DO STATEMENT                                    00170012
C        SECTION 11.10.3, EXECUTES A DO LOOP                            00180012
C        SECTION 11.11, CONTINUE STATEMENT                              00190012
C                                                                       00200012
C                                                                       00210012

==== ercs07/emas-a/f77rel/whetruns_detopt.txt ====
detach whetruns_rundopt,60,whetl
detach whetruns_compare,60,.lp23

==== ercs07/emas-a/f77rel/fcvs0_fm013.txt ====
C
C     COMMENT SECTION.
C
C     FM013
C
C             THIS ROUTINE TESTS THE FORTRAN  ASSIGNED GO TO STATEMENT
C     AS DESCRIBED IN SECTION 11.3 (ASSIGNED GO TO STATEMENT). FIRST A
C     STATEMENT LABEL IS ASSIGNED TO AN INTEGER VARIABLE IN THE ASSIGN
C     STATEMENT.  SECONDLY A BRANCH IS MADE IN AN ASSIGNED GO TO
C     STATEMENT USING THE INTEGER VARIABLE AS THE BRANCH CONTROLLER
C     IN A LIST OF POSSIBLE STATEMENT NUMBERS TO BE BRANCHED TO.
C
C      REFERENCES
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,
C              X3.9-1978
C
C        SECTION 10.3, STATEMENT LABEL ASSIGNMENT (ASSIGN) STATEMENT
C        SECTION 11.3, ASSIGNED GO TO STATEMENT
C
C
C      **********************************************************

==== ercs07/emas-a/f77rel/fcvs0_fm014.txt ====
C
C     COMMENT SECTION.
C
C     FM014
C
C             THIS ROUTINE TESTS THE FORTRAN   COMPUTED GO TO STATEMENT.
C     BECAUSE THE FORM OF THE COMPUTED GO TO IS SO STRAIGHTFORWARD, THE
C     TESTS MAINLY RELATE TO THE RANGE OF POSSIBLE STATEMENT NUMBERS
C     WHICH ARE USED.
C
C      REFERENCES
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,
C              X3.9-1978
C
C        SECTION 11.2, COMPUTED GO TO STATEMENT
C
C
C      **********************************************************
C
C         A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE
C     BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD

==== ercs07/emas-a/f77rel/fcvs5_fm921.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM921
C*****                       INQF4 - (441)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****    TEST INQUIRE BY FILE ON DIRECT, UNFORMATTED FILE      12.10.3
C*****
C*****    THE TESTS IN THE UNIT ARE ONLY PERFORMED ON A
C*****    FILE THAT IS CONNECTED FOR DIRECT, UNFORMATTED ACCESS
C*****    (ANS REF. 12.2.4.2 AND 12.9.5.1)
C*****    THIS TEST PERFORMS AN EXPLICIT OPEN, AND PERFORMS
C*****    A CLOSE WITH STATUS='DELETE' AT THE END OF THE SEGMENT.
C*****    THIS SEGMENT TESTS THAT AN INQUIRE IS PERFORMED CORRECTLY
C*****    BEFORE READING OR WRITING TO THE FILE, AFTER WRITING TO
C*****    THE FILE, AND AFTER READING FROM THE FILE.
C*****
C*****  NOTE:
C*****    AN INQUIRE STATEMENT IS NEEDED TO TEST THE READ AND
C*****    WRITE OF MORE THAN A SINGLE RECORD AT A TIME, IN ORDER TO

==== ercs07/emas-a/f77rel/fcvs5_fm922.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM922
C*****                       INQF5 - (442)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****    TEST INQUIRE BY FILE ON A FILE THAT IS NOT            12.10.3
C*****    CONNECTED TO A UNIT
C*****
C*****    THE TESTS IN THIS UNIT ARE ONLY BE PERFORMED ON A
C*****    FILE THAT IS NOT CONNECTED TO A UNIT.
C*****    THIS TEST PERFORMS AN EXPLICIT OPEN, AND THEN
C*****    PERFORMS A CLOSE WITH STATUS='KEEP' IN ORDER TO
C*****    ENSURE THAT THE UNIT AND FILE ARE NOT CONNECTED.
C*****    (ANS REF 12.10.2)
C***********************************************************************
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0

==== ercs07/emas-a/f77rel/fcvs5_fm923.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM923
C*****                       LSTDI1 - (370)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****    TEST LIST DIRECTED INPUT ON                           13.6
C*****    INTEGER REAL, LOGICAL, AND CHARACTER DATA TYPES.      12.4
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041

==== ercs07/emas-a/f77rel/fcvs0_fm030.txt ====
C     COMMENT SECTION.
C
C     FM030
C
C         THIS ROUTINE TESTS ARITHMETIC ASSIGNMENT STATEMENTS OF THE
C     FORM
C               INTEGER VARIABLE = ARITHMETIC EXPRESSION
C     WHERE THE ARITHMETIC EXPRESSION IS FORMED WITH THE ARITHMETIC
C     OPERATOR -, INTEGER CONSTANTS AND INTEGER VARIABLES.
C     SOME OF THE TESTS USE PARENTHESES TO GROUP ELEMENTS IN THE
C     ARITHMETIC EXPRESSION.
C
C         THERE ARE TESTS WHERE THE ARITHMETIC EXPRESSION CONTAINS
C            (1)  INTEGER CONSTANT - INTEGER CONSTANT
C            (2)  INTEGER CONSTANT - INTEGER CONSTANT - INTEGER CONSTANT
C            (3)  SAME AS (2) BUT WITH PARENTHESES TO GROUP ELEMENTS
C            (4)  INTEGER VARIABLE - INTEGER CONSTANT
C                 INTEGER CONSTANT - INTEGER VARIABLE
C
C      REFERENCES
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,

==== ercs07/emas-a/f77rel/srce200_fmap1.txt ====
!                                                                       fmap1
! 10/10/86 - insert include files
!                                                                       ftnmap5
! 12/08/86 - NAMELIST to lower case
!                                                                       ftnmap4
!* modified 27/11/85
!*
%include "ftn_ht"
{%include "ftn_consts3"}
!* modified 23/09/86
!*
!*
%constinteger WSCALE = 2;! scale word address to byte address
%constinteger BSCALE = 0;! scaling factor for words to architectural units
%constinteger CSCALE = 0;! byte offset to architectural unit offset
%constinteger DSCALE = 2;! dict pointer scaling in RES records
!*
%constinteger W1 =  4 ;!  1 word  in architectural units
%constinteger W2 =  8 ;!  2 words in architectural units
%constinteger W3 = 12 ;!  3 words in architectural units
%constinteger W4 = 16 ;!  4 words in architectural units

==== ercs07/emas-a/f77rel/fcvsruns_detopt1.txt ====
DETACH FCVSRUNS_RUN1opt1,80,LOG=run1l
detach fcvsruns_comprun1,80,log=.lp23
DETACH FCVSRUNS_RUN2opt1,80,LOG=run2l
detach fcvsruns_comprun2,80,log=.lp23
DETACH FCVSRUNS_RUN3opt1,80,LOG=run3l
detach fcvsruns_comprun3,80,log=.lp23
DETACH FCVSRUNS_RUN4opt1,80,LOG=run4l
detach fcvsruns_comprun4,80,log=.lp23
DETACH FCVSRUNS_RUN5opt1,80,LOG=run5l
detach fcvsruns_comprun5,80,log=.lp23
DETACH FCVSRUNS_RUN6opt1,80,LOG=run6l
detach fcvsruns_comprun6,80,log=.lp23
DETACH FCVSRUNS_RUN7opt1,80,LOG=run7l
detach fcvsruns_comprun7,80,log=.lp23
DETACH FCVSRUNS_RUN8opt1,80,LOG=run8l
detach fcvsruns_comprun8,80,log=.lp23
DETACH FCVSRUNS_RUN9opt1,80,LOG=run9l
detach fcvsruns_comprun9,80,log=.lp23
DETACH FCVSRUNS_RUN10opt1,80,LOG=run10l
detach fcvsruns_comprun10,80,log=.lp23

==== ercs07/emas-a/f77rel/xcontrl5a.txt ====
!                                                                    xcontrl5a
! 06/04/87 - change version to 2.07
!                                                       xcontrl5
! 26/03/87 - set DIAGLEVEL from CONTROL in ICL9CEIBMF77
! 18/03/87 - change vsn to 2.06
!                                                                 xcontrol4
! 17/03/87 - change VSN to 2.05
! 02/02/87 - remove strict,nowarnings,nocomments from OPT1
!
! modified 18/11/86
!
%CONSTSTRING (5) VSN = "2.07"
!
%EXTERNALROUTINESPEC EMONON
%EXTERNALROUTINESPEC MOVE %ALIAS "S#MOVE" (%INTEGER LENGTH, FROM, TO)
%EXTERNALROUTINESPEC OUTFILE %ALIAS "EMAS3OUTFILE" (%STRINGNAME FILE, %INTEGERNAME SIZE, HOLE, PROT, CONAD, FLAG)
%EXTERNALINTEGERMAPSPEC COMREGMAP %ALIAS "S#COMREGMAP" (%INTEGER X)
%EXTERNALINTEGERFNSPEC FORT77 (%INTEGER CONTROL, OPT1, OPT2, F77PARM, OPTFLAGS, SRFLAGS, CONSOLE, LSTREAM, %C
   DSTREAM, DIAGLEV, DSIZE, TSIZE, BSIZE, LSIZE, ASIZE, SP2)
!
%ROUTINE SIM2 (%INTEGER EP, R1, R2, %INTEGERNAME R3)

==== ercs07/emas-a/f77rel/fcvs0_fm031.txt ====
C     COMMENT SECTION
C
C     FM031
C
C         THIS ROUTINE TESTS ARITHMETIC ASSIGNMENT STATEMENTS OF THE
C     FORM
C               INTEGER VARIABLE = ARITHMETIC EXPRESSION
C     WHERE THE ARITHMETIC EXPRESSION IS FORMED WITH THE ARITHMETIC
C     OPERATOR -, INTEGER CONSTANTS AND INTEGER VARIABLES.  SOME OF THE
C     TESTS USE PARENTHESES TO GROUP ELEMENTS IN AN ARITHMETIC
C     EXPRESSION.
C
C         THERE ARE TESTS WHERE THE ARITHMETIC EXPRESSION CONTAINS
C           (1)  INTEGER CONSTANT-INTEGER CONSTANT-INTEGER VARIABLE
C                INTEGER CONSTANT-INTEGER VARIABLE-INTEGER CONSTANT
C                INTEGER VARIABLE-INTEGER CONSTANT-INTEGER CONSTANT
C           (2)  SAME AS (1) BUT WITH PARENTHESES TO GROUP ELEMENTS
C                IN ARITHMETIC EXPRESSION.
C           (3)  INTEGER VARIABLE - INTEGER VARIABLE
C
C      REFERENCES

==== ercs07/emas-a/f77rel/fcvsruns_detopt2.txt ====
DETACH FCVSRUNS_RUN1opt2,80,LOG=run1l
detach fcvsruns_comprun1,80,log=.lp23
DETACH FCVSRUNS_RUN2opt2,80,LOG=run2l
detach fcvsruns_comprun2,80,log=.lp23
DETACH FCVSRUNS_RUN3opt2,80,LOG=run3l
detach fcvsruns_comprun3,80,log=.lp23
DETACH FCVSRUNS_RUN4opt2,80,LOG=run4l
detach fcvsruns_comprun4,80,log=.lp23
DETACH FCVSRUNS_RUN5opt2,80,LOG=run5l
detach fcvsruns_comprun5,80,log=.lp23
DETACH FCVSRUNS_RUN6opt2,80,LOG=run6l
detach fcvsruns_comprun6,80,log=.lp23
DETACH FCVSRUNS_RUN7opt2,80,LOG=run7l
detach fcvsruns_comprun7,80,log=.lp23
DETACH FCVSRUNS_RUN8opt2,80,LOG=run8l
detach fcvsruns_comprun8,80,log=.lp23
DETACH FCVSRUNS_RUN9opt2,80,LOG=run9l
detach fcvsruns_comprun9,80,log=.lp23
DETACH FCVSRUNS_RUN10opt2,80,LOG=run10l
detach fcvsruns_comprun10,80,log=.lp23

==== ercs07/emas-a/f77rel/xcontrl5b.txt ====
!                                                                     xcontrl5b
! 28/04/87 - change version t. 2.08
!                                                                    xcontrl5a
! 06/04/87 - change version to 2.07
!                                                       xcontrl5
! 26/03/87 - set DIAGLEVEL from CONTROL in ICL9CEIBMF77
! 18/03/87 - change vsn to 2.06
!                                                                 xcontrol4
! 17/03/87 - change VSN to 2.05
! 02/02/87 - remove strict,nowarnings,nocomments from OPT1
!
! modified 18/11/86
!
%CONSTSTRING (5) VSN = "2.08"
!
%EXTERNALROUTINESPEC EMONON
%EXTERNALROUTINESPEC MOVE %ALIAS "S#MOVE" (%INTEGER LENGTH, FROM, TO)
%EXTERNALROUTINESPEC OUTFILE %ALIAS "EMAS3OUTFILE" (%STRINGNAME FILE, %INTEGERNAME SIZE, HOLE, PROT, CONAD, FLAG)
%EXTERNALINTEGERMAPSPEC COMREGMAP %ALIAS "S#COMREGMAP" (%INTEGER X)
%EXTERNALINTEGERFNSPEC FORT77 (%INTEGER CONTROL, OPT1, OPT2, F77PARM, OPTFLAGS, SRFLAGS, CONSOLE, LSTREAM, %C
   DSTREAM, DIAGLEV, DSIZE, TSIZE, BSIZE, LSIZE, ASIZE, SP2)

==== ercs07/emas-a/f77rel/fcvs0_fm032.txt ====
C     COMMENT SECTION
C
C     FM032
C
C         THIS ROUTINE TESTS ARITHMETIC ASSIGNMENT STATEMENTS OF THE
C     FORM
C                INTEGER VARIABLE = ARITHMETIC EXPRESSION
C     WHERE THE ARITHMETIC EXPRESSION IS FORMED WITH THE ARITHMETIC
C     OPERATOR -, INTEGER CONSTANTS AND INTEGER VARIABLES.  SOME OF THE
C     TESTS USE PARENTHESES TO GROUP ELEMENTS IN AN ARITHMETIC
C     EXPRESSION.
C
C         THERE ARE TESTS WHERE THE ARITHMETIC EXPRESSION CONTAINS
C         (1)  INTEGER VAR.= INT. VAR. - INT.VAR.-INT.CON
C                          = INT. VAR. - INT.CON.-INT.VAR
C                          = INT. CON. - INT.VAR -INT.VAR.
C         (2)  SAME FORMS AS (1) BUT WITH PARENTHESES TO GROUP ELEMENTS
C              IN ARITHMETIC EXPRESSION.
C
C      REFERENCES
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,

==== ercs07/emas-a/f77rel/fcvs0_fm033.txt ====
C     COMMENT SECTION
C
C     FM033
C
C         THIS ROUTINE TESTS ARITHMETIC ASSIGNMENT STATEMENTS OF THE
C     FORM
C             INTEGER VARIABLE = ARITHMETIC EXPRESSION
C     WHERE THE ARITHMETIC EXPRESSION IS FORMED WITH THE ARITHMETIC
C     OPERATOR * AND INTEGER CONSTANTS.  SOME OF THE TESTS USE PARENS
C     TO GROUP ELEMENTS IN THE EXPRESSION AND TO ALLOW THE USE OF
C     NEGATIVE CONSTANTS FOLLOWING THE * OPERATOR.
C
C     THERE ARE TESTS WHERE THE ARITHMETIC EXPRESSION CONTAINS
C         (1)  INTEGER CONSTANT * INTEGER CONSTANT
C         (2)  INTEGER CONSTANT * INTEGER CONSTANT * INTEGER CONSTANT
C         (3)  SAME AS (2) BUT WITH PARENS TO GROUP ELEMENTS
C
C      REFERENCES
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,
C              X3.9-1978
C

==== ercs07/emas-a/f77rel/fcvs0_fm034.txt ====
C     COMMENT SECTION
C
C     FM034
C
C         THIS ROUTINE TESTS ARITHMETIC ASSIGNMENT STATEMENTS OF THE
C     FORM
C               INTEGER VARIABLE = ARITHMETIC EXPRESSION
C     WHERE THE ARITHMETIC EXPRESSION IS FORMED WITH THE ARITHMETIC
C     OPERATOR *, INTEGER VARIABLE AND INTEGER CONSTANT.  SOME OF THE
C     TESTS USE PARENTHESES TO GROUP ELEMENTS IN THE EXPRESSION AND TO
C     ALLOW THE USE OF NEGATIVE CONSTANTS FOLLOWING THE * OPERATOR.
C     THE INTEGER VARIABLES CONTAIN POSITIVE AND NEGATIVE VALUES.
C
C     THERE ARE TESTS WHERE THE ARITHMETIC EXPRESSION CONTAINS
C         (1)  INTEGER VARIABLE * INTEGER CONSTANT
C              INTEGER CONSTANT * INTEGER VARIABLE
C         (2)  INTEGER CONSTANT * INTEGER VARIABLE * INTEGER CONSTANT
C         (3)  SAME AS (2) BUT WITH PARENS TO GROUP ELEMENTS.
C
C      REFERENCES
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,

==== ercs07/emas-a/f77rel/fcvs0_fm035.txt ====
C     COMMENT SECTION
C
C     FM035
C
C         THIS ROUTINE TESTS ARITHMETIC ASSIGNMENT STATEMENTS OF THE
C     FORM
C              INTEGER VARIABLE = ARITHMETIC EXPRESSION
C     WHERE THE ARITHMETIC EXPRESSION IS FORMED WITH THE ARITHMETIC
C     OPERATOR *, INTEGER VARIABLES AND INTEGER CONSTANT.  SOME OF THE
C     TESTS USE PARENTHESES TO GROUP ELEMENTS IN THE EXPRESSION AND TO
C     ALLOW THE USE OF NEGATIVE CONSTANTS FOLLOWING THE * OPERATOR.
C     THE INTEGER VARIABLES CONTAIN POSITIVE AND NEGATIVE VALUES.
C
C     THERE ARE TESTS WHERE THE ARITHMETIC EXPRESSION CONTAINS
C         (1)  INTEGER VARIABLE * INTEGER VARIABLE
C         (2)  INTEGER VARIABLE * INTEGER VARIABLE * INTEGER CONSTANT
C              INTEGER VARIABLE * INTEGER CONSTANT * INTEGER VARIABLE
C              INTEGER CONSTANT * INTEGER VARIABLE * INTEGER VARIABLE
C         (3)  SAME AS (2) BUT WITH PARENTHESES TO GROUP ELEMENTS.
C
C      REFERENCES

==== ercs07/emas-a/f77rel/fcvs0_fm036.txt ====
C     COMMENT SECTION
C
C     FM036
C
C         THIS ROUTINE TESTS ARITHMETIC ASIGNMENT STATEMENTS OF THE
C     FORM
C              INTEGER VARIABLE = ARITHMETIC EXPRESSION
C     WHERE THE ARITHMETIC EXPRESSION IS FORMED WITH THE ARITHMETIC
C     OPERATOR / AND INTEGER CONSTANTS.  BOTH POSITIVE AND NEGATIVE
C     CONSTANTS ARE USED IN THE ARITHMETIC EXPRESSION.
C
C         THERE ARE TESTS WHICH REQUIRE NO TRUNCATION OF THE RESULT
C     AND TESTS WHERE THE RESULT MUST BE TRUNCATED BEFORE BEING STORED
C     IN THE RESULTANT INTEGER VARIABLE.  THE STANDARD STATES 'THE VALUE
C     OF AN INTEGER FACTOR OR TERM IS THE NEAREST INTEGER WHOSE
C     MAGNITUDE DOES NOT EXCEED THE MAGNITUDE OF THE MATHEMATICAL VALUE
C     REPRESENTED BY THAT FACTOR OR TERM.'
C
C         THERE ARE TESTS WHERE THE ARITHMETIC EXPRESSION CONTAINS
C             (1)  INTEGER CONSTANT/INTEGER CONSTANT
C                      NO TRUNCATION REQUIRED,

==== ercs07/emas-a/f77rel/fcvs0_fm037.txt ====
C     COMMENT SECTION
C
C     FM037
C
C         THIS ROUTINE TESTS ARITHMETIC ASSIGNMENT STATEMENTS OF THE
C     FORM
C              INTEGER VARIABLE = ARITHMETIC EXPRESSION
C     WHERE THE ARITHMETIC EXPRESSION IS FORMED WITH THREE INTEGER
C     CONSTANTS AND THE ARITHMETIC OPERATOR /.  BOTH POSITIVE AND NEGA-
C     TIVE CONSTANTS ARE USED IN THE ARITHMETIC EXPRESSION.
C
C         THERE ARE TESTS WHICH REQUIRE NO TRUNCATION OF THE RESULT
C     AND TESTS WHERE THE RESULT MUST BE TRUNCATED BEFORE BEING STORED
C     IN THE RESULTANT INTEGER VARIABLE.  THE STANDARD STATES 'THE VALUE
C     OF AN INTEGER FACTOR OR TERM IS THE NEAREST INTEGER WHOSE MAGNI-
C     TUDE DOES NOT EXCEED THE MAGNITUDE OF THE MATHEMATICAL VALUE
C     REPRESENTED BY THAT FACTOR OR TERM.  THE ASSOCIATIVE AND COMMUTA-
C     TIVE LAWS DO NOT APPLY IN THE EVALUATION OF INTEGER TERMS CON-
C     TAINING DIVISION, HENCE THE EVALUATION OF SUCH TERMS MUST EFFEC-
C     TIVELY PROCEED FROM LEFT TO RIGHT.'
C

==== ercs07/emas-a/f77rel/fcvs0_fm038.txt ====
C     COMMENT SECTION
C
C     FM038
C
C         THIS ROUTINE TESTS ARITHMETIC ASSIGNMENT STATEMENTS OF THE
C     FORM          INTEGER VARIABLE = ARITHMETIC EXPRESSION
C     WHERE THE ARITHMETIC EXPRESSION IS FORMED WITH THE ARITHMETIC
C     OPERATOR /, INTEGER CONSTANTS AND AN INTEGER VARIABLE.  BOTH
C     POSITIVE AND NEGATIVE VALUES ARE USED FOR THE INTEGER CONSTANTS
C     AND THE INTEGER VARIABLE.
C
C         THERE ARE TESTS WHICH REQUIRE NO TRUNCATION OF THE RESULT
C     AND TESTS WHERE THE RESULT MUST BE TRUNCATED BEFORE BEING STORED
C     IN THE RESULTANT INTEGER VARIABLE.  SOME OF THE TESTS USE PARENS
C     TO GROUP ELEMENTS IN THE ARITHMETIC EXPRESSION.
C
C         THERE ARE TESTS WHERE THE ARITHMETIC EXPRESSION CONTAINS
C             (1) (INTEGER CONSTANT/INTEGER CONSTANT)/INTEGER CONSTANT
C             (2) INTEGER CONSTANT/(INTEGER CONSTANT/INTEGER CONSTANT)
C             (3) INTEGER VARIABLE/INTEGER CONSTANT
C             (4) INTEGER CONSTANT/INTEGER VARIABLE

==== ercs07/emas-a/f77rel/fcvs0_fm039.txt ====
C     COMMENT SECTION
C
C        FM039
C
C         THIS ROUTINE TESTS ARITHMETIC ASSIGNMENT STATEMENTS OF THE
C     FORM          INTEGER VARIABLE = ARITHMETIC EXPRESSION
C     WHERE THE ARITHMETIC EXPRESSION IS FORMED WITH THE ARITHMETIC
C     OPERATOR /, INTEGER CONSTANTS AND AN INTEGER VARIABLE.  BOTH
C     POSITIVE AND NEGATIVE VALUES ARE USED FOR THE INTEGER CONSTANTS
C     AND THE INTEGER VARIABLE.
C
C         THERE ARE TESTS WHICH REQUIRE NO TRUNCATION OF THE RESULT
C     AND TESTS WHERE THE RESULT MUST BE TRUNCATED BEFORE BEING STORED
C     IN THE RESULTANT INTEGER VARIABLE.  SOME OF THE TESTS USE PARENS
C     TO GROUP ELEMENTS IN THE ARITHMETIC EXPRESSION.
C
C         THERE ARE TESTS WHERE THE ARITHMETIC EXPRESSION CONTAINS
C             (1) INTEGER VARIABLE/INTEGER CONSTANT/INTEGER CONSTANT
C                 INTEGER CONSTANT/INTEGER VARIABLE/INTEGER CONSTANT
C                 INTEGER CONSTANT/INTEGER CONSTANT/INTEGER VARIABLE
C             (2) SAME AS (1) BUT WITH PARENTHESES TO GROUP ELEMENTS

==== ercs07/emas-a/f77rel/fcvs0_fm040.txt ====
C     COMMENT SECTION
C
C     FM040
C
C         THIS ROUTINE TESTS ARITHMETIC ASSIGNMENT STATEMENTS OF THE
C         FORM      INTEGER VARIABLE = ARITHMETIC EXPRESSION
C     WHERE THE ARITHMETIC EXPRESSION IS FORMED WITH THE ARITHMETIC
C     OPERATOR /, INTEGER VARIABLES AND AN INTEGER CONSTANT.  BOTH
C     POSITIVE AND NEGATIVE VALUES ARE USED FOR THE INTEGER VARIABLES
C     AND THE INTEGER CONSTANT.
C
C         THERE ARE TESTS WHICH REQUIRE NO TRUNCATION OF THE RESULT AND
C     TESTS WHERE THE RESULT MUST BE TRUNCATED BEFORE BEING STORED IN
C     THE RESULTANT INTEGER VARIABLE.  SOME OF THE TESTS USE PARENS
C     TO GROUP ELEMENTS IN THE ARITHMETIC EXPRESSION.
C
C         THERE ARE TESTS WHERE THE ARITHMETIC EXPRESSION CONTAINS
C             (1) INTEGER VARIABLE/INTEGER VARIABLE
C             (2) INTEGER VARIABLE/INTEGER VARIABLE/INTEGER CONSTANT
C                 INTEGER VARIABLE/INTEGER CONSTANT/INTEGER VARIABLE
C                 INTEGER CONSTANT/INTEGER VARIABLE/INTEGER VARIABLE

==== ercs07/emas-a/f77rel/comp207d.txt ====
parm xref,nocheck,noarray
imp srce200_xgen27c,xgen27cy,.lp
parm nocheck,xref
imp srce200_froot1d,froot1dy,.lp
imp srce200_fdata2,fdata2y,.lp
parm xref
imp srce200_XCONTRld5a,xcontrld5ay,.lp
imp srce200_FALLOC2a,falloc2ay,.lp
imp srce200_FANAL2a,fanal2ay,.lp
imp srce200_FARITH1,farith1y,.lp
imp srce200_FCINNUM1a,fcinnum1ay,.lp
imp srce200_fcode2,fcode2y,.lp
imp srce200_FEND2,fend2y,.lp
imp srce200_FGEN2,fgen2y,.lp
imp srce200_FINPUT2a,finput2ay,.lp
imp srce200_FMAP1,fmap1y,.lp
imp srce200_FMESS1,fmess1y,.lp
imp srce200_foptdum1,foptdum1y,.lp
imp srce200_FREAL1b,freal1by,.lp
imp srce200_FTRIADS1,ftriads1y,.lp
imp srce200_FFPTOS1a,ffptos1ay,.lp

==== ercs07/emas-a/f77rel/fcvs0_fm041.txt ====
C     COMMENT SECTION
C
C     FM041
C
C         THIS ROUTINE TESTS ARITHMETIC ASSIGNMENTS OF THE
C     FORM      INTEGER VARIABLE =  PRIMARY ** PRIMARY
C     WHERE THE FIRST OF TWO PRIMARIES IS AN INTEGER VARIABLE OR AN
C     INTEGER CONSTANT AND THE SECOND PRIMARY IS AN INTEGER CONSTANT.
C
C      REFERENCES
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,
C              X3.9-1978
C
C        SECTION 4.3, INTEGER TYPE
C        SECTION 4.3.1, INTEGER CONSTANT
C        SECTION 6.1, ARITHMETIC EXPRESSIONS
C        SECTION 10.1, ARITHMETIC ASSIGNMENT STATEMENT
C
C
C      **********************************************************
C

==== ercs07/emas-a/f77rel/fcvs0_fm042.txt ====
C     COMMENT SECTION
C
C     FM042
C
C         THIS ROUTINE TESTS ARITHMETIC ASSIGNMENTS OF THE
C     FORM      INTEGER VARIABLE =  PRIMARY ** PRIMARY
C     WHERE THE FIRST OF TWO PRIMARIES IS AN INTEGER VARIABLE OR AN
C     INTEGER CONSTANT AND THE SECOND PRIMARY IS AN INTEGER VARIABLE.
C
C      REFERENCES
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,
C              X3.9-1978
C
C        SECTION 4.3, INTEGER TYPE
C        SECTION 4.3.1, INTEGER CONSTANT
C        SECTION 6.1, ARITHMETIC EXPRESSIONS
C        SECTION 10.1, ARITHMETIC ASSIGNMENT STATEMENT
C
C
C      **********************************************************
C

==== ercs07/emas-a/f77rel/ftn_optspecs1.txt ====
!*
!***********************************************************************
!* External data items                                                 *
!***********************************************************************
!*
%EXTRINSICINTEGER ADICT     ;! @ of dictionary area
%EXTRINSICINTEGER MAXDICT   ;! currect available length of dictionary
%EXTRINSICINTEGER ANAMES    ;! @ of name table
%EXTRINSICINTEGER ABLOCKS   ;! @ of block table
%EXTRINSICINTEGER MAXBLOCKS ;! current available length of block table area
%EXTRINSICINTEGER NEXTBLOCK ;! next available block index
%EXTRINSICINTEGER FREEBLOCKS
%EXTRINSICINTEGER CBNPTR    ;! listhead of common block records
%EXTRINSICINTEGER SCPTR     ;! listhead of local identifiers
%EXTRINSICINTEGER ATABS     ;! @ of area for assorted optimiser tables
%EXTRINSICINTEGER MAXTABS   ;! curent available length of opt table area
%EXTRINSICINTEGER FREETABS  ;! next free location in opt table area
%EXTRINSICINTEGER EXBPTR    ;! exit block table
%EXTRINSICINTEGER ENTBPTR   ;! entry block table
%EXTRINSICINTEGER ALOOPS    ;! @ loop table area
%EXTRINSICINTEGER MAXLOOPS  ;! current available length of loop table area

==== ercs07/emas-a/f77rel/fcvs0_fm043.txt ====
C     COMMENT SECTION
C
C     FM043
C
C         THIS ROUTINE TESTS ARITHMETIC ASSIGNMENTS OF THE FORM
C
C     INTEGER VAR. = INTEGER VAR. <OP1> INTEGER VAR. <OP2> INTEGER VAR.
C
C     WHERE <OP1> AND <OP2> ARE ARITHMETIC OPERATORS, BUT <OP1> IS
C     NOT THE SAME AS <OP2>.
C
C      REFERENCES
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,
C              X3.9-1978
C
C        SECTION 4.3, INTEGER TYPE
C        SECTION 4.3.1, INTEGER CONSTANT
C        SECTION 6.1, ARITHMETIC EXPRESSIONS
C        SECTION 6.6, EVALUATION OF EXPRESSIONS
C        SECTION 10.1, ARITHMETIC ASSIGNMENT STATEMENT
C

==== ercs07/emas-a/f77rel/fcvs0_fm044.txt ====
C     COMMENT SECTION
C
C     FM044
C
C         THIS ROUTINE TESTS ARITHMETIC ASSIGNMENTS OF THE FORM
C     INTEGER VAR. = INTEGER VAR. <OP1> INTEGER VAR. <OP2> INTEGER VAR.
C
C     WHERE <OP1> AND <OP2> ARE ARITHMETIC OPERATORS.
C
C      REFERENCES
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,
C              X3.9-1978
C
C        SECTION 4.3, INTEGER TYPE
C        SECTION 4.3.1, INTEGER CONSTANT
C        SECTION 6.1, ARITHMETIC EXPRESSIONS
C        SECTION 6.6, EVALUATION OF EXPRESSIONS
C        SECTION 10.1, ARITHMETIC ASSIGNMENT STATEMENT
C
C
C      **********************************************************

==== ercs07/emas-a/f77rel/fcvs5_fm261.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM261
C*****                       BLKIF4 - (303)
C*****   THIS PROGRAM CALLS SUBROUTINES SN262, SN263 AND INTEGER
C        FUNCTION IF264
C***********************************************************************
C*****  GENERAL PURPOSE                                      SUBSET REF
C*****    TEST BLOCK IF STATEMENTS                           11.6 - 11.9
C*****                  WITH SUBROUTINE CALLS                   15.6
C*****                  USES SUBROUTINES SN262 (750), SN263 (751)
C*****                          AND FUNCTION IF264 (752)
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER

==== ercs07/emas-a/f77rel/fcvs0_fm045.txt ====
C     COMMENT SECTION
C
C     FM045
C
C         THIS ROUTINE TESTS ARITHMETIC ASSIGNMENTS USING INTEGER
C     VARIABLES CONNECTED BY A SERIES OF ARITHMETIC OPERATORS.
C     DIFFERENT COMBINATIONS OF PARENTHETICAL NOTATION ARE EXERCIZED.
C
C
C      REFERENCES
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,
C              X3.9-1978
C
C        SECTION 4.3, INTEGER TYPE
C        SECTION 4.3.1, INTEGER CONSTANT
C        SECTION 6.1, ARITHMETIC EXPRESSIONS
C        SECTION 6.6, EVALUATION OF EXPRESSIONS
C        SECTION 10.1, ARITHMETIC ASSIGNMENT STATEMENT
C
C
C

==== ercs07/emas-a/f77rel/fend2.txt ====
!                                                                fend2
! 28/01/87 - call Estkdir with Scalars at S(6) in routine Dimop
!                                                                 fend1
! 16/11/86 - suppress sdbdata and associated refs for Amdahl
! 23/09/86 - insert include files
!                                                                 ftnend16
! 09/09/86 - adjust parameter offsets in dbx records
!          - re-order sdb iden records
! 05/09/86 - unmask dbx calls
!          - in sdbdata suppress blockdata info
!          -            common names in lower case
!                                                                 ftnend15
! 30/07/86 - suppress dbx calls pro tem
!* modified 06/07/86                                             ftnend14
!*
!* 26/11/85 use Com_Statordermode to identify missing ends
!*
%include "ftn_ht"
{%include "ftn_fmts1"}
!* 09/12/85 - add recordformat SUBFMT
!* modified 14/03/85

==== ercs07/emas-a/f77rel/srce200_falloc3a.txt ====
!                                                         falloc3a
! 20/07/87 - Genfmt, set com_ioareaca=4 if zero
!                                                                falloc2a
! 09/04/87 - include contents of csyn71 instead of ftn_csynt70
!                                                               falloc1a
! 15/01/87 - insert %alis for FORMATCD
!
!                                                               falloc1
! 16/11/86 - incorporate changes up to ftnalloc15
! 23/09/86 - include files inserted
!                                                               ftnalloc13
! 16/09/86 - syntax modified to fault missing WHILE
!                                                               ftnalloc12
! 06/08/86 - use BSS for local arrays when practicable
!                                                               ftnalloc11
! 13/08/86 - allow up to 15Mb of common
! 22/08/86 - correct -I2 action for lit int and log args (in Alloc Const)
!* 07/07/86                                                     ftnalloc10
!*
%include "ftn_ht"
%if target=LATTICE %thenstart

==== ercs07/emas-a/f77rel/fcvs0_fm050.txt ====
C
C     COMMENT SECTION
C
C     FM050
C
C          THIS ROUTINE CONTAINS BASIC SUBROUTINE AND FUNCTION REFERENCE
C     TESTS.  FOUR SUBROUTINES AND ONE FUNCTION ARE CALLED OR
C     REFERENCED.  FS051 IS CALLED TO TEST THE CALLING AND PASSING OF
C     ARGUMENTS THROUGH UNLABELED COMMON.  NO ARGUMENTS ARE SPECIFIED
C     IN THE CALL LINE.  FS052 IS IDENTICAL TO FS051 EXCEPT THAT SEVERAL
C     RETURNS ARE USED.  FS053 UTILIZES MANY ARGUMENTS ON THE CALL
C     STATEMENT AND MANY RETURN STATEMENTS IN THE SUBROUTINE BODY.
C     FF054 IS A FUNCTION SUBROUTINE IN WHICH MANY ARGUMENTS AND RETURN
C     STATEMENTS ARE USED.  AND FINALLY FS055 PASSES A ONE DIMENIONAL
C     ARRAY BACK TO FM050.
C
C      REFERENCES
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,
C              X3.9-1978
C
C        SECTION 15.5.2, REFERENCING AN EXTERNAL FUNCTION

==== ercs07/emas-a/f77rel/comp208d.txt ====
parm xref,nocheck,noarray
imp srce200_xgen27d,xgen27dy,.lp
parm nocheck,xref
imp srce200_froot1e,froot1ey,.lp
imp srce200_fdata2,fdata2y,.lp
parm xref
imp srce200_XCONTRld5b,xcontrld5by,.lp
imp srce200_FALLOC2a,falloc2ay,.lp
imp srce200_FANAL2a,fanal2ay,.lp
imp srce200_FARITH1,farith1y,.lp
imp srce200_FCINNUM2a,fcinnum2ay,.lp
imp srce200_fcode3,fcode3y,.lp
imp srce200_FEND3,fend3y,.lp
imp srce200_FGEN3,fgen3y,.lp
imp srce200_FINPUT3a,finput3ay,.lp
imp srce200_FMAP1,fmap1y,.lp
imp srce200_FMESS2,fmess2y,.lp
imp srce200_foptdum1,foptdum1y,.lp
imp srce200_FREAL1b,freal1by,.lp
imp srce200_FTRIADS1,ftriads1y,.lp
imp srce200_FFPTOS1a,ffptos1ay,.lp

==== ercs07/emas-a/f77rel/fcvs0_fm056.txt ====
C
C     COMMENT SECTION
C
C     FM056
C
C          FM056 IS A MAIN WHICH TESTS THE ARGUMENT PASSING LINKAGE OF
C     A 2 LEVEL NESTED SUBROUTINE AND AN EXTERNAL FUNCTION REFERENCE.
C     THE MAIN PROGRAM FM056 CALLS SUBROUTINE FS057 PASSING ONE
C     ARGUMENT.  SUBROUTINE FS057 CALLS SUBROUTINE FS058 PASSING TWO
C     ARGUMENTS.  SUBROUTINE FS058 REFERENCES EXTERNAL FUNCTION FF059
C     PASSING 3 ARGUMENTS.  FUNCTION FF059 ADDS THE VALUES OF THE 3
C     ARGUMENTS TOGETHER.  SUBROUTINE FS057 AND FS058 THEN MERELY
C     RETURN THE RESULT TO FM056 IN THE FIRST ARGUMENT.
C
C          THE VALUES OF THE ARGUMENTS THAT ARE PASSED TO EACH
C     SUBPROGRAM AND FUNCTION, AND RETURNED TO THE CALLING OR
C     REFERENCING PROGRAM ARE SAVED IN AN INTEGER ARRAY.  FM056 THEN
C     USES THESE VALUES TO TEST THE COMPILER'S ARGUMENT PASSING
C     CAPABILITIES.
C
C      REFERENCES

==== ercs07/emas-a/f77rel/fgen2.txt ====
!                                                                 fgen2
! 09/04/87 - include contents of gsyn71 instead of ftn_gsynt70
!                                                              fgen1
! 16/11/86 - incorporate changes up to ftngen26
! 10/10/86 - insert include files
!                                                               ftngen23
! 10/09/86 - change interpretation of Com_Opt
! 09/09/86 - in CHECK PMODE set correct result for IMAG
! 07/09/86 - INTRINFN supporting Gould extensions
! 06/09/86 - call BSStidy after END
!                                                               ftngen22
! 19/08/86 - generate scaling for arrays if Gould opt
!                                                               ftngen21
! 15/08/86 - int*2 consts treated sensibly in Start Of Do Loop
! 06/08/86 - allow int*2 as IOSTAT var
! 02/08/86 - in phi(81) allow int*2 parameter values
!*                                                             ftngen20
! 27/07/86 - in Link Param check for invalid intrin arg form
! 26/07/86 - in phi(51) set 'assigned bit' for fn name in input list
! 22/07/86 - add test to phi(46) to trap DO terminating on END
!* MODIFIED 06/07/86                                           ftngen19

==== ercs07/emas-a/f77rel/srce200_fmess2.txt ====
!                                                            fmess2
! 26/04/87 - add error 369 (missing END DO)
!                                                               fmess1
! 16/11/86 - incorporate changes up to ftnmess9
!                                                               ftnmess8
! 06/09/86 - inhibit error messages if option2 set
!* MODIFIED 06/07/86                                            ftnmess6
!*
!*
!***********************************************************************
!* COM record format                                                   *
!***********************************************************************
!*
%recordformat COMFMT(%integer CONTROL,OPT,OPTIONS1,OPTIONS2,PTRACE,
      ADICT,ANAMES,ADOUTPUT,ADBLKDTAID,DICLEN,DPTR,
      MAXTRIADS,NEXTPLAB,ALABH,ADLHEAD,
      SUBPROGTYPE,SFPTR,EXTERNALS,CBNPTR,SCPTR,CHECKLIST,
      RESCOM1,RESCOM2,F77PARM,FNO,FAULTY,LINEST,CMNIIN,SFMK,
      LISTL,LISTSTREAM,DIAGSTREAM,LISTMODE,XREF,
      PACKCMN,ITSMODE,PATHANAL,CHARACTER CODE,SPACE CHAR,
      HEADINGS,ARRAYCHECKS,JBRMODE,MESSLEN,NAMESLEN,

==== ercs07/emas-a/f77rel/bopt210d.txt ====
LINK
obj200d_Xcontrld6y
obj200d_Xgen27ey
obj200d_FALLOC2ay
obj200d_FANAL3ay
obj200d_FARITH1y
obj200d_FCINNUM2ay
obj200d_FCODE3y
obj200d_FDATA2y
obj200d_FEND4y
obj200d_Fgen4y
obj200d_FINPUT3ay
obj200d_FMAP1y
obj200d_FMESS2y
obj200d_f1opt1y
obj200d_f2opt1y
obj200d_f3opt1y
obj200d_f4opt1ay
obj200d_f5opt1y
obj200d_fcelim1y
obj200d_feelim1y

==== ercs07/emas-a/f77rel/bopt211d.txt ====
LINK
obj200d_Xcontrld7y
obj200d_Xgen27fy
obj200d_FALLOC2ay
obj200d_Fanal2ay
obj200d_FARITH1y
obj200d_FCINNUM2ay
obj200d_FCODE3y
obj200d_FDATA2y
obj200d_Fend3y
obj200d_Fgen3y
obj200d_FINPUT3ay
obj200d_FMAP1y
obj200d_FMESS2y
obj200d_f1opt1y
obj200d_f2opt1y
obj200d_f3opt1y
obj200d_f4opt1ay
obj200d_f5opt1y
obj200d_fcelim1y
obj200d_feelim1y

==== ercs07/emas-a/f77rel/copy215d.txt ====
copy xgen30y,obj200d_xgen30y
copy xcontrld7by,obj200d_xcontrld7by
copy falloc3ay,obj200d_falloc3ay
copy fanal4ay,obj200d_fanal4ay
copy farith1y,obj200d_farith1y
copy fcinnum2ay,obj200d_fcinnum2ay
copy fcode3y,obj200d_fcode3y
copy fdata3y,obj200d_fdata3y
copy fend4y,obj200d_fend4y
copy fgen3y,obj200d_fgen3y
copy finput3ay,obj200d_finput3ay
copy fmap1y,obj200d_fmap1y
copy fmess2y,obj200d_fmess2y
copy foptdum1y,obj200d_foptdum1y
copy freal1by,obj200d_freal1by
copy froot1jy,obj200d_froot1jy
copy ftriads1y,obj200d_ftriads1y
copy ffptos1ay,obj200d_ffptos1ay
copy fcfmt1ay,obj200d_fcfmt1ay

==== ercs07/emas-a/f77rel/fcvsruns_run9opt.txt ====
#N                    ***** FCVS COMPILATION RUN 9 *****
parm opt
DEFINE 6,.OUT
FORTRAN ERCS07:f77rel.FCVS4_FM822,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM823,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM824,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM825,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM826,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM827,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM828,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM829,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM830,TMP
RUN TMP

==== ercs07/emas-a/f77rel/fcvs4_fm800.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM800               YIDINT - (151)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****    TEST INTRINSIC FUNCTION  IDINT --                      15.3
C*****    TRUNCATION (SIGN OF A * LARGEST INTEGER LE ABS(A) )  (TABLE 5)
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041
C****

==== ercs07/emas-a/f77rel/fcvs4_fm801.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM801               YDINT - (155)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****    TEST INTRINSIC FUNCTIONS DINT, DNINT, IDNINT           15.3
C*****    TRUNCATION (SIGN OF A * LARGEST INTEGER LE ABS(A) )  (TABLE 5)
C*****
C*****  GENERAL COMMENTS
C*****          FLOAT FUNCTION ASSUMED WORKING
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER

==== ercs07/emas-a/f77rel/fcvs4_fm802.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM802               YDABS - (157)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****    TEST INTRINSIC FUNCTION DABS (ABSOLUTE VALUE OF        15.3
C*****    A DOUBLE PRECISION ARGUMENT)                         (TABLE 5)
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041
C****
C****                          (703) 756-6153

==== ercs07/emas-a/f77rel/srce200_foptctl2.txt ====
!                                                               foptctl2
! 14/07/87 - subsumption stage 3, test ALLDEF#0 instead of >0
!                                                                 foptctl1
! 07/12/86 - insert include files
!                                                                 ftnoptctl9
! 12/11/86 - allow int2 init lit in Subsum
!                                                                 ftnoptctl8
! 09/11/86 - in Setbits if arg def being set then set cmn boe as well as def
!                                                                 ftnoptctl6
! 22/08/86 - restore Subsum position
!                                                                 ftnoptctl5
! 06/08/86 - in CHAINOUT check if deleting BTARGTRIAD
!                                                                 ftnoptctl4
! 28/07/86 - in Subsum prior to stage 3 treat arg as cmn
!                                                                 ftnoptctl3
! 12/06/86 - allow conop to process NEG
! 13/12/85 - copied from OPTCTLP50
!          - new include files incorporated
! 04/04/85 - Globsubs,Subsum - ignore I2 or L2
! 01/04/85 - Convertmode - %result=1 for any I2
! 28/03/85 - Conop - stop evaluating I2 exprs. {AA}

==== ercs07/emas-a/f77rel/fcvs4_fm803.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM803               YCABS - (158)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****    TEST INTRINSIC FUNCTION CABS (ABSOLUTE VALUE OF        15.3
C*****    A COMPLEX ARGUMENT)                                  (TABLE 5)
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041
C****

==== ercs07/emas-a/f77rel/fcvs4_fm804.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM804               YDMOD - (160)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****     TO TEST INTRINSIC FUNCTION - DMOD -                   15.3
C*****     (REMAINDERING -TYPE DOUBLE PRECISION)               (TABLE 5)
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041
C****
C****                          (703) 756-6153

==== ercs07/emas-a/f77rel/fcvs4_fm805.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM805               YDDIM - (164)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****    TEST INTRINSIC FUNCTION DDIM AND PROD--POSITIVE        15.3
C*****    DIFFERENCE AND DOUBLE PRECISION PRODUCT, RESP.       (TABLE 5)
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041
C****

==== ercs07/emas-a/f77rel/ftn_gsynt62.txt ====

!*
!* Syntax tables generated from file SYNTAX62 on 02/06/84 at 12.03.44
!*
%CONSTBYTEINTEGERARRAY OS(0:1500)=  %C                           
   0,   0,  34,   1,   1,   2,  25,   1,   1,   3,
  10,   7,   2,   3,  29,  61,   0,  91,   1,   1,
  92,   0,  13,   1,   0,   1,   3,  20,   4,   1,
   2,   1,   4,  17,   1,   1,   0,   1,   2,  20,
   4,   1,   1,   1,   3,  17,   0,   1,   3,  87,
   0,   1,   2,  92,   1,   1,   0,   1,   2,  87,
   0,   1,   1,   0,   1,   3,  20,   5,   1,   2,
   1,   4,  17,   1,   1,   0,   1,   2,  20,   5,
   1,   1,   1,   3,  17,   0,   1,   2,   1,   3,
  17,   1,   1,   0,   1,   1,   1,   2,  17,   0,
  20,   2,   1,   1,   0,  20,   3,   1,   1,   0,
  22,   1,   1,   0,  23,   1,   1,   0,  24,   1,
   1,   0,  88,   1,   1,  89,   0,   0,  88,   1,
   1,  89,   1,   0,  12,   4,   1,   3,  20,   4,
   1,   2,  16,   4,   1,   1,   0,  12,   3,   1,
   2,  20,   4,   1,   1,  16,   3,   0,  12,   4,

==== ercs07/emas-a/f77rel/fcvsruns_run10opt1.txt ====
#N                    ***** FCVS COMPILATION RUN 10 *****
parm opt1
DEFINE 6,.OUT
FORTRAN ERCS07:f77rel.FCVS4_FM909,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM910,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM912,TMP
destroy dirfile
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM914,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM915,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM916,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM917,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM918,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM919,TMP

==== ercs07/emas-a/f77rel/fcvs4_fm806.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM806               YDMAX1 - (166)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****    TEST OF INTRINSIC FUNCTION --                          15.3
C*****    DMAX1 -- CHOOSING LARGEST VALUE                      (TABLE 5)
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041
C****

==== ercs07/emas-a/f77rel/fcvsruns_run10opt2.txt ====
#N                    ***** FCVS COMPILATION RUN 10 *****
parm opt2
DEFINE 6,.OUT
FORTRAN ERCS07:f77rel.FCVS4_FM909,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM910,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM912,TMP
destroy dirfile
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM914,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM915,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM916,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM917,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM918,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM919,TMP

==== ercs07/emas-a/f77rel/fcvs4_fm807.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM807               YDMIN1 - (168)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****    TEST OF INTRINSIC FUNCTION --                          15.3
C*****    DMIN1 -- CHOOSING SMALLEST VALUE                     (TABLE 5)
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041
C****

==== ercs07/emas-a/f77rel/fcvs4_fm808.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM808               YDBLE - (169)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****    TEST INTRINSIC FUNCTION DBLE (EXPRESS S.P. ARGUMENT     15.3
C*****    IN DOUBLE PRECISION FORM )                           (TABLE 5)
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041
C****

==== ercs07/emas-a/f77rel/fcvs4_fm809.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM809               YCONJG - (170)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****    TEST INTRINSIC FUNCTION CMPLX (CONVERT TO COMPLEX),    15.3
C*****    AIMAG (IMAGINARY PART), AND CONJG (CONJUGATE)        (TABLE 5)
C*****
C*****    S P E C I F I C A T I O N S  SEGMENT 170
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041

==== ercs07/emas-a/f77rel/fcvsruns_run4opt.txt ====
#N                    ***** FCVS COMPILATION RUN 4 *****
parm opt
DEFINE 6,.OUT
FORTRAN ERCS07:f77rel.FCVS5_FM109,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM110,TMP
DEFINE 5,ERCS07:f77rel.FCVS0_FM110D
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM111,TMP
DEFINE 5,ERCS07:f77rel.FCVS0_FM111D
RUN TMP
FORTRAN ERCS07:f77rel.FCVS2_FM200,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS2_FM201,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS2_FM202,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS2_FM203,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS2_FM204,TMP
RUN TMP

==== ercs07/emas-a/f77rel/fcvs4_fm810.txt ====
C*****   FM810               YDMMX - (173)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****    TESTS THE USE OF INTEGER, REAL, DOUBLE PRECISION,       15.3
C*****    AND MIXED MODE EXPRESSIONS CONTAINING REFERENCES TO     15.10
C*****    THE INTRINSIC FUNCTIONS OF THE FULL LANGUAGE            6.1.4
C*****
C*****  GENERAL COMMENTS
C*****    SEGMENTS TESTING XINT, XREAL, XAINT, XABS, XAMOD,
C*****    XSIGN, XDIM, XMAX, XMIN, YIDINT, YSNGL
C*****    YDINT, YDABS, YCABS, YDMOD, YDSIGN,
C*****    YDMAX1, YDMIN1, YDBLE, YCONJG ASSUMED WORKING
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION

==== ercs07/emas-a/f77rel/fcvs5_fm302.txt ====
      PROGRAM FM302
C
C
C        THIS ROUTINE TESTS THE SUBSET LEVEL FEATURES OF THE COMMON
C     SPECIFICATION STATEMENT.  INTEGER, REAL AND LOGICAL VARIABLES AND
C     ARRAYS ARE PASSED BACK-AND-FORTH BETWEEN THE MAIN PROGRAM,EXTERNAL
C     FUNCTIONS AND SUBROUTINES.  BOTH NAMED AND UNNAMED (BLANK) COMMON
C     ARE TESTED.  SPECIFIC TESTS ARE INCLUDED FOR RENAMING ENTITIES IN
C     COMMON BETWEEN PROGRAM UNITS, THE PASSING OF DATA THROUGH COMMON
C     BY EQUIVALENCE ASSOCIATION, AND THE SPECIFYING OF BLANK COMMON OF
C     DIFFERENT LENGTHS IN DIFFERENT PROGRAM UNITS.  THE SUBSET LEVEL
C     FEATURES OF THE COMMON STATEMENT ARE ALSO TESTED IN FM022 THROUGH
C     FM025, FM050 AND FM056.
C
C     REFERENCES.
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,
C           X3.9-1978
C
C        SECTION 8.2,    EQUIVALENCE STATEMENT
C        SECTION 8.3,    COMMON STATEMENT
C        SECTION 15.5,   EXTERNAL FUNCTIONS

==== ercs07/emas-a/f77rel/whetruns_detopt1.txt ====
detach whetruns_rundopt1,60,whetl
detach whetruns_compare,60,.lp23

==== ercs07/emas-a/f77rel/fcvs4_fm811.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM811               YCMMX - (174)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****    TESTS THE USE OF INTEGER, REAL, DOUBLE PRECISION,      15.10
C*****    AND COMPLEX EXPRESSIONS CONTAINING REFERENCE         (TABLE 5)
C*****    TO THE INTRINSIC FUNCTIONS OF THE FULL LANGUAGE        6.1.4
C*****
C*****  GENERAL COMMENTS
C*****    SEGMENTS TESTING XINT, XREAL, XAINT, XABS, XAMOD,
C*****    XSIGN, XDIM, XMAX, XMIN, YIDINT, YSNGL
C*****    YDINT, YDABS, YCABS, YDMOD, YDSIGN,
C*****    YDMAX1, YDMIN1, YDBLE, YCONJG ASSUMED WORKING
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****

==== ercs07/emas-a/f77rel/whetruns_detopt2.txt ====
detach whetruns_rundopt2,60,whetl
detach whetruns_compare,60,.lp23

==== ercs07/emas-a/f77rel/fcvs4_fm812.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM812
C*****                       YDSQRT - (176)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****    TEST INTRINSIC FUNCTION DSQRT                          15.3
C*****                                                          TABLE 5
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041

==== ercs07/emas-a/f77rel/nbsflists.txt ====

Command:#monload 1


Command:parm
0.000   ENTER called

Command:DEFINE 5,ERCS13:NBSFTESTS_PART01DATA
0.021   ENTER called

Command:F77 ERCS13:NBSFTESTS_PART01      ,FY
0.044   ENTER called
0.091   ENTER called
   main program
    99           DATA GI3B(1,1,2),GG1B(1),EP1S(15)/2HNO,2*2HAD/

Warning 193  Use of Hollerith is not standard FORTRAN77

   102           DATA  I1I(2),IAC2I(1,5),IAC2I(1,3), I1I(5),IAC2I(2,4),
                *MCA3I(1,1,2), AVI,EP1S(13),AC2S(2,6),AC2S(1,6),AC3S(1,1,1),
                *AC2S(3,6),AC3S(1,1,2),AC2S(4,6), AVD,A1D(1),DPA2D(1,1),

==== ercs07/emas-a/f77rel/fcvs4_fm813.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM813
C*****                       YCSQRT - (177)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****    TEST INTRINSIC FUNCTION CSQRT                          15.3
C*****                                                          TABLE 5
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041

==== ercs07/emas-a/f77rel/ftn_gsynt70.txt ====
!*
!* Syntax tables generated from file SYNTAX70 on 13/06/86 at 08.14.50
!*
%CONSTBYTEINTEGERARRAY OS(0:1500)=  %C                           
   0,   0,  34,   1,   1,   2,  25,   1,   1,   3,
  10,   7,   2,   3,  29,  61,   0,  91,   1,   1,
  92,   0,  13,   1,   0,   1,   3,  20,   4,   1,
   2,   1,   4,  17,   1,   1,   0,   1,   2,  20,
   4,   1,   1,   1,   3,  17,   0,   1,   3,  87,
   0,   1,   2,  92,   1,   1,   0,   1,   2,  87,
   0,   1,   1,   0,   1,   3,  20,   5,   1,   2,
   1,   4,  17,   1,   1,   0,   1,   2,  20,   5,
   1,   1,   1,   3,  17,   0,   1,   2,   1,   3,
  17,   1,   1,   0,   1,   1,   1,   2,  17,   0,
  20,   2,   1,   1,   0,  20,   3,   1,   1,   0,
  22,   1,   1,   0,  23,   1,   1,   0,  24,   1,
   1,   0,  88,   1,   1,  89,   0,   0,  88,   1,
   1,  89,   1,   0,  12,   4,   1,   3,  20,   4,
   1,   2,  16,   4,   1,   1,   0,  12,   3,   1,
   2,  20,   4,   1,   1,  16,   3,   0,  12,   4,
   1,   3,  20,   5,   1,   2,  16,   4,   1,   1,

==== ercs07/emas-a/f77rel/fcvs4_fm814.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM814
C*****                       YDEXP - (179)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****    TEST INTRINSIC FUNCTION DEXP                           15.3
C*****                                                          TABLE 5
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041

==== ercs07/emas-a/f77rel/fcvs4_fm815.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM815
C*****                       YCEXP - (180)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****    TEST INTRINSIC FUNCTION CEXP                           15.3
C*****    INTRINSIC FUNCTIONS AIMAG AND CABS ASSUMED WORKING    TABLE 5
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041

==== ercs07/emas-a/f77rel/fcvs4_fm816.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM816
C*****                       YDLOG - (182)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****    TEST INTRINSIC FUNCTION DLOG                           15.3
C*****                                                          TABLE 5
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041
C****

==== ercs07/emas-a/f77rel/fcvs4_fm817.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM817
C*****                       YCLOG - (183)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****    TEST INTRINSIC FUNCTION CLOG                           15.3
C*****    INTRINSIC FUNCTIONS AIMAG AND CMPLX ASSUMED WORKING   TABLE 5
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041

==== ercs07/emas-a/f77rel/whetruns_rund.txt ====
parm
resetloader
disconnect .all
#monload 1
#MON
f77 ercs07:f77rel.whetruns_WHETD,WHETDY
#N
run WHETDY
destroy WHETDY

==== ercs07/emas-a/f77rel/fcvs4_fm818.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM818
C*****                       YDLG10 - (185)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****    TEST INTRINSIC FUNCTION DLOG10                         15.3
C*****                                                          TABLE 5
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041

==== ercs07/emas-a/f77rel/fcvs4_fm819.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM819
C*****                       YDSIN - (187)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****    TEST INTRINSIC FUNCTION DSIN                           15.3
C*****                                                          TABLE 5
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041

==== ercs07/emas-a/f77rel/fcvs4_fm820.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM820
C*****                       YCSIN - (188)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****    TEST INTRINSIC FUNCTION CSIN                           15.3
C*****    INTRINSIC FUNCTION CABS ASSUMED WORKING               TABLE 5
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041

==== ercs07/emas-a/f77rel/fcvs4_fm821.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM821
C*****                       YDCOS - (190)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****    TEST INTRINSIC FUNCTION DCOS                           15.3
C*****                                                          TABLE 5
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041

==== ercs07/emas-a/f77rel/fcvs4_fm822.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM822
C*****                       YDTAN - (192)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****    TEST INTRINSIC FUNCTION DTAN                           15.3
C*****                                                          TABLE 5
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041

==== ercs07/emas-a/f77rel/fcvs4_fm823.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM823
C*****                       YDASIN - (194)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****    TEST INTRINSIC FUNCTION DASIN, DACOS                   15.3
C*****                                                          TABLE 5
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041

==== ercs07/emas-a/f77rel/fcvs4_fm824.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM824
C*****                       YDATAN - (196)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****    TEST INTRINSIC FUNCTION DATAN, DATAN2                  15.3
C*****    INTRINSIC FUNCTION DSQRT ASSUMED WORKING              TABLE 5
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041

==== ercs07/emas-a/f77rel/fcvs4_fm825.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM825
C*****                       YDSINH - (198)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****    TEST INTRINSIC FUNCTION DSINH, DCOSH                   15.3
C*****                                                          TABLE 5
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041
C****

==== ercs07/emas-a/f77rel/fcvs5_fm317.txt ====
      PROGRAM FM317
C
C
C          THIS ROUTINE TESTS SUBSET LEVEL FEATURES OF EXTERNAL
C     FUNCTION SUBPROGRAMS.  TESTS ARE DESIGNED TO CHECK THE
C     ASSOCIATION OF ALL PERMISSIBLE FORMS OF ACTUAL ARGUMENTS WITH
C     VARIABLE, ARRAY AND PROCEDURE NAME DUMMY ARGUMENTS.  THESE
C     INCLUDE,
C
C          1) ACTUAL ARGUMENTS ASSOCIATED TO VARIABLE NAME DUMMY
C             ARGUMENT INCLUDE,
C
C             A) CONSTANT
C             B) VARIABLE NAME
C             C) ARRAY ELEMENT NAME
C             D) EXPRESSION INVOLVING OPERATORS
C             E) EXPRESSION ENCLOSED IN PARENTHESES
C             F) INTRINSIC FUNCTION REFERENCE
C             G) EXTERNAL FUNCTION REFERENCE
C             H) STATEMENT FUNCTION REFERENCE
C             I) ACTUAL ARGUMENT NAME SAME AS DUMMY ARGUMENT NAME

==== ercs07/emas-a/f77rel/fcvs4_fm826.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM826
C*****                       YDTANH - (200)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****    TEST INTRINSIC FUNCTION DTANH                           15.3
C*****                                                          TABLE 5
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041

==== ercs07/emas-a/f77rel/fcvs4_fm827.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM827
C*****                       YDFOR - (202)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****    TEST DOUBLE PRECISION TRIGONOMETRIC FORMULA            15.3
C*****                                                          TABLE 5
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041
C****

==== ercs07/emas-a/f77rel/fcvs4_fm828.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM828
C*****                       YCFOR - (203)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****    TEST COMPLEX TRIGONOMETRIC FORMULAE                   15.3
C*****                                                          TABLE 5
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041
C****

==== ercs07/emas-a/f77rel/fcvsruns_run9opt1.txt ====
#N                    ***** FCVS COMPILATION RUN 9 *****
parm opt1
DEFINE 6,.OUT
FORTRAN ERCS07:f77rel.FCVS4_FM822,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM823,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM824,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM825,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM826,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM827,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM828,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM829,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM830,TMP
RUN TMP

==== ercs07/emas-a/f77rel/fcvs4_fm829.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM829
C*****                       YGEN1 - (206)
C*****
C***********************************************************************
C*****  TESTING OF GENERIC FUNCTIONS                            ANS REF
C*****          INT, REAL, DBLE, CMPLX                           15.3
C*****                                                          TABLE 5
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041
C****

==== ercs07/emas-a/f77rel/fcvsruns_run9opt2.txt ====
#N                    ***** FCVS COMPILATION RUN 9 *****
parm opt2
DEFINE 6,.OUT
FORTRAN ERCS07:f77rel.FCVS4_FM822,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM823,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM824,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM825,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM826,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM827,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM828,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM829,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS4_FM830,TMP
RUN TMP

==== ercs07/emas-a/f77rel/fcvs4_fm830.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM830
C*****                       YGEN2 - (207)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****      TEST GENERIC FUNCTIONS                               15.3
C*****         AINT, ANINT, NINT, SQRT, EXP, LOG, LOG10         TABLE 5
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041

==== ercs07/emas-a/f77rel/fcvs4_fm831.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM831
C*****                       YGEN3 - (208)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****      TEST GENERIC FUNCTIONS                               15.3
C*****       ABS, MOD, SIGN, SIN, COS, TAN, SINH, COSH, TANH    TABLE 5
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100
C****                      FALLS CHURCH, VA. 22041

==== ercs07/emas-a/f77rel/fcvs4_fm832.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM832
C*****                       YGEN5 - (210)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****      TEST GENERIC FUNCTIONS                               15.3
C*****       SQRT,EXP,LOG,LOG10,COS,SINH,TANH,ASIN,ATAN,ATAN2   TABLE 5
C*****          EACH FUNCTION IS FIRST CALLED WITH A REAL VALUE
C*****          AND THEN WITH A DOUBLE PRECISION VALUE
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER

==== ercs07/emas-a/f77rel/build206.txt ====
LINK
obj200_XCONTRl5y
obj200d_XGEN27by
obj200_FALLOC1ay
obj200_FANAL1ay
obj200_FARITH1y
obj200_FCINNUM2ay
obj200_fcode2y
obj200_FDATA2y
obj200_FEND2y
obj200_FGEN1y
obj200_FINPUT2ay
obj200_FMAP1y
obj200_FMESS1y
obj200_FOPTDUM1y
obj200_FREAL1ay
obj200_Froot1cy
obj200_FTRIADS1y
obj200_FFPTOS1ay
obj200_FCFMT1ay
.END

==== ercs07/emas-a/f77rel/bopt215d.txt ====
LINK
obj200d_Xcontrld7by
obj200d_Xgen31y
obj200d_FALLOC3ay
obj200d_FANAL4ay
obj200d_FARITH1y
obj200d_FCINNUM2ay
obj200d_FCODE3y
obj200d_Fdata3y
obj200d_FEND4y
obj200d_Fgen3y
obj200d_FINPUT3ay
obj200d_FMAP1y
obj200d_FMESS2y
obj200d_f1opt1y
obj200d_f2opt1y
obj200d_f3opt3y
obj200d_f4opt1ay
obj200d_f5opt1y
obj200d_fcelim1y
obj200d_feelim1y

==== ercs07/emas-a/f77rel/fcvs4_fm833.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM833
C*****                       YGEN6 - (211)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****      TEST GENERIC FUNCTIONS                               15.3
C*****       SPECIFIC AND GENERIC NAME OF SAME FUNCTION WITH    TABLE 5
C*****       SAME TYPE OF ARGUMENT IN A STATEMENT
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100

==== ercs07/emas-a/f77rel/srce200_farith1.txt ====
!                                                            farith1
! 09/10/86 - insert include files
!                                                            ftnarith9
!* modified 15/06/86                                         ftnarith7
!*
%include "ftn_ht"
{%include "ftn_consts3"}
!* modified 23/09/86
!*
!*
%constinteger WSCALE = 2;! scale word address to byte address
%constinteger BSCALE = 0;! scaling factor for words to architectural units
%constinteger CSCALE = 0;! byte offset to architectural unit offset
%constinteger DSCALE = 2;! dict pointer scaling in RES records
!*
%constinteger W1 =  4 ;!  1 word  in architectural units
%constinteger W2 =  8 ;!  2 words in architectural units
%constinteger W3 = 12 ;!  3 words in architectural units
%constinteger W4 = 16 ;!  4 words in architectural units
!*
%constinteger TRIADLENGTH    = 12 ;! size of an individual triad

==== ercs07/emas-a/f77rel/build207.txt ====
LINK
obj200_XCONTRl5ay
obj200d_XGEN27cy
obj200_FALLOC2ay
obj200_FANAL2ay
obj200_FARITH1y
obj200_FCINNUM2ay
obj200_fcode2y
obj200_FDATA2y
obj200_FEND2y
obj200_FGEN2y
obj200_FINPUT2ay
obj200_FMAP1y
obj200_FMESS1y
obj200_FOPTDUM1y
obj200_FREAL1by
obj200_Froot1dy
obj200_FTRIADS1y
obj200_FFPTOS1ay
obj200_FCFMT1ay
.END

==== ercs07/emas-a/f77rel/fcvs4_fm834.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM834
C*****                       YGEN7 - (212)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                         ANS REF
C*****      TEST GENERIC FUNCTIONS                               15.3
C*****          USES GENERIC FUNCTIONS AS ARGUMENTS TO          TABLE 5
C*****               OTHER GENERIC FUNCTIONS
C*****
CBB** ********************** BBCCOMNT **********************************
C****
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM
C****                          VERSION 2.0
C****
C****
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C****                   GENERAL SERVICES ADMINISTRATION
C****                   FEDERAL SOFTWARE TESTING CENTER
C****                   5203 LEESBURG PIKE, SUITE 1100

==== ercs07/emas-a/f77rel/build208.txt ====
LINK
obj200_XCONTRl5by
obj200d_XGEN27dy
obj200_FALLOC2ay
obj200_FANAL2ay
obj200_FARITH1y
obj200_FCINNUM2ay
obj200_fcode3y
obj200_FDATA2y
obj200_FEND3y
obj200_FGEN3y
obj200_FINPUT3ay
obj200_FMAP1y
obj200_FMESS2y
obj200_FOPTDUM1y
obj200_FREAL1by
obj200_Froot1ey
obj200_FTRIADS1y
obj200_FFPTOS1ay
obj200_FCFMT1ay
.END

==== ercs07/emas-a/f77rel/fcvs0_fm110.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM110               IOFMT - (350)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                      SUBSET REFS
C*****    TO TEST ADDITIONAL FEATURES OF READ AND WRITE          12.8
C*****    STATEMENTS, FORMATTED RECORDS AND FORMAT STATEMENTS    12.1.1
C*****    FOR INTEGER AND REAL DATA TYPES
C*****  RESTRICTIONS OBSERVED
C*****  *  ALL FORMAT STATEMENTS ARE LABELED                     13.1.1
C*****  *  H AND X DESCRIPTORS ARE NEVER REPEATED                13.2.1
C*****  *  FOR W.D DESCRIPTORS, D IS ALWAYS SPECIFIED AND
C*****     W IS EQUAL TO OR GREATER THAN D
C*****  *  FIELD WIDTH IS NEVER ZERO
C*****  *  IF AN I/O LIST SPECIFIES AT LEAST ONE ITEM            13.3
C*****     AT LEAST ONE REPEATABLE EDIT DESCRIPTOR MUST EXIST
C*****     IN THE FORMAT SPECIFICATION
C*****  *  ITEMS IN I/O LIST CORRESPOND TO EDIT DESCRIPTORS
C*****  *  NEGATIVE OUTPUT VALUES ARE SIGNED                     13.5.9
C*****  *  AN H EDIT DESCRIPTOR IS NEVER USED ON INPUT           13.5.2

==== ercs07/emas-a/f77rel/fcvs5_fm328.txt ====
      PROGRAM FM328
C
C
C          THIS ROUTINE TEST SUBSET LEVEL FEATURES OF
C     SUBROUTINE SUBPROGRAMS.  TESTS ARE DESIGNED TO CHECK THE
C     ASSOCIATION OF ALL PERMISSIBLE FORMS OF ACTUAL ARGUMENTS WITH
C     VARIABLE, ARRAY AND PROCEDURE NAME DUMMY ARGUMENTS.  THESE
C     INCLUDE,
C
C          1) ACTUAL ARGUMENTS ASSOCIATED TO VARIABLE NAME DUMMY
C             ARGUMENT INCLUDE,
C
C             A) CONSTANT
C             B) VARIABLE NAME
C             C) ARRAY ELEMENT NAME
C             D) EXPRESSION INVOLVING OPERATORS
C             E) EXPRESSION ENCLOSED IN PARENTHESES
C             F) INTRINSIC FUNCTION REFERENCE
C             G) EXTERNAL FUNCTION REFERENCE
C             H) STATEMENT FUNCTION REFERENCE
C             I) ACTUAL ARGUMENT NAME SAME AS DUMMY ARGUMENT NAME

==== ercs07/emas-a/f77rel/fcvs0_fm111.txt ====
C***********************************************************************
C*****  FORTRAN 77
C*****   FM111               IOFMTS - (353)
C*****
C***********************************************************************
C*****  GENERAL PURPOSE                                      SUBSET REFS
C*****    TO TEST ADDITIONAL FEATURES OF READ AND WRITE        12.8
C*****    STATEMENTS, FORMATTED RECORDS AND FORMAT STATEMENTS  12.1.1
C*****    FOR INTEGER AND REAL DATA TYPES
C*****    TO TEST CHARACTER CONSTANTS AS FORMAT SPECIFIERS.    13.1.2
C*****  RESTRICTIONS OBSERVED
C*****  *  H AND X DESCRIPTORS ARE NEVER REPEATED              13.2.1
C*****  *  FOR W.D DESCRIPTORS, D IS ALWAYS SPECIFIED AND
C*****     W IS EQUAL TO OR GREATER THAN D
C*****  *  FIELD WIDTH IS NEVER ZERO
C*****  *  IF AN I/O LIST SPECIFIES AT LEAST ONE ITEM          13.3
C*****     AT LEAST ONE REPEATABLE EDIT DESCRIPTOR MUST EXIST
C*****     IN THE FORMAT SPECIFICATION
C*****  *  ITEMS IN I/O LIST CORRESPOND TO EDIT DESCRIPTORS
C*****  *  NEGATIVE OUTPUT VALUES ARE SIGNED                   13.5.9
C*****  *  AN H EDIT DESCRIPTOR IS NEVER USED ON INPUT         13.5.2

==== ercs07/emas-a/f77rel/ftn_csynt62.txt ====

!*
!* Syntax tables generated from file SYNTAX62 on 02/06/84 at 12.03.44
!*
%CONSTSHORTINTEGERARRAY COMP(0:2500)=  %C
     0,   258,     0,   258,     0,   259,     0,   260,     0,   261,
     0,   262,     0,   263,     0,   264,     0,     0,     1,  1025,
    50,  5377, 17921,     0,     1,  1026,    70,  5377, 17922,   808,
     0,   265,     0,     0,     1,  1027,    94,  5377, 17923,   552,
    90,   265,     0,     0,     1,     0,     1,  1028,   114,   266,
   108, 17925,     0,     1, 28672,     0,     1,  1029,   146,  5125,
   267,     0,  1026,     0,  5377,  5888, 17922,   808,     0,   265,
     0,     0,     1,   268,   202,   554,   180,  5379,  5632,  1026,
     0,  5377,  5888, 17922,   808,     0,   265,     0,     0,     1,
  1026,     0,  5377,  5888, 17922,   808,     0,   265,     0,     0,
     1,  1030,     0, 20224,     0,     1,  5383,     0,     1,   269,
     0,   573,     0,   270,     0, 15111,  1536,     0,     0,     2,
 27392,  1536,   254,   271,     0,     0,    17,  5376, 13568,  1536,
     0,     0,    22,   272,     0,   273,     0, 32768,  1536,   354,
   554,   302, 15106,   274,     0,   275,   298,     0,    25,     0,
    37,   559,   346,   559,   328, 15106,   274,     0,   275,   324,

==== ercs07/emas-a/f77rel/whetruns_rundopt.txt ====
parm opt
resetloader
disconnect .all
#monload 1
#MON
f77 ercs07:f77rel.whetruns_WHETD,WHETDy
#N
run WHETDy
DESTROY WHETDY

==== ercs07/emas-a/f77rel/comp215d.txt ====
parm xref,nocheck,noarray
imp srce200_xgen30,xgen30y,.lp
parm nocheck,xref
imp srce200_froot1j,froot1jy,.lp
imp srce200_fdata3,fdata3y,.lp
parm xref
imp srce200_XCONTRld7b,xcontrld7by,.lp
imp srce200_FALLOC3a,falloc3ay,.lp
imp srce200_Fanal4a,fanal4ay,.lp
imp srce200_FARITH1,farith1y,.lp
imp srce200_FCINNUM2a,fcinnum2ay,.lp
imp srce200_fcode3,fcode3y,.lp
imp srce200_FEND4,fend4y,.lp
imp srce200_Fgen3,fgen3y,.lp
imp srce200_FINPUT3a,finput3ay,.lp
imp srce200_FMAP1,fmap1y,.lp
imp srce200_FMEss2,fmess2y,.lp
imp srce200_foptdum1,foptdum1y,.lp
imp srce200_FREAL1b,freal1by,.lp
imp srce200_FTRIADS1,ftriads1y,.lp
imp srce200_FFPTOS1a,ffptos1ay,.lp

==== ercs07/emas-a/f77rel/fcvsruns_run2opt1.txt ====
#N                    ***** FCVS COMPILATION RUN 2 *****
parm opt1
DEFINE 6,.OUT
FORTRAN ERCS07:f77rel.FCVS5_FM022,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM023,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM024,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM025,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM026,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM028,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM030,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM031,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM032,TMP
RUN TMP

==== ercs07/emas-a/f77rel/fcvsruns_run2opt2.txt ====
#N                    ***** FCVS COMPILATION RUN 2 *****
parm opt2
DEFINE 6,.OUT
FORTRAN ERCS07:f77rel.FCVS5_FM022,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM023,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM024,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM025,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM026,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS5_FM028,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM030,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM031,TMP
RUN TMP
FORTRAN ERCS07:f77rel.FCVS0_FM032,TMP
RUN TMP

==== ercs07/emas-a/f77rel/fcvs4_comp4.txt ====
#MON
F77PARM VAX
COMPF77 ERCS02.FCVS4_FM1,.NULL
COMPF77 ERCS02.FCVS4_FM711,.NULL
COMPF77 ERCS02.FCVS4_FM715,.NULL
COMPF77 ERCS02.FCVS4_FM719,.NULL
COMPF77 ERCS02.FCVS4_FM722,.NULL
COMPF77 ERCS02.FCVS4_FM800,.NULL
COMPF77 ERCS02.FCVS4_FM801,.NULL
COMPF77 ERCS02.FCVS4_FM802,.NULL
COMPF77 ERCS02.FCVS4_FM803,.NULL
COMPF77 ERCS02.FCVS4_FM804,.NULL
COMPF77 ERCS02.FCVS4_FM805,.NULL
COMPF77 ERCS02.FCVS4_FM806,.NULL
COMPF77 ERCS02.FCVS4_FM807,.NULL
COMPF77 ERCS02.FCVS4_FM808,.NULL
COMPF77 ERCS02.FCVS4_FM809,.NULL
COMPF77 ERCS02.FCVS4_FM810,.NULL
COMPF77 ERCS02.FCVS4_FM811,.NULL
COMPF77 ERCS02.FCVS4_FM812,.NULL
COMPF77 ERCS02.FCVS4_FM813,.NULL

==== ercs07/emas-a/f77rel/ftn_csynt70.txt ====
!*
!* Syntax tables generated from file SYNTAX70 on 13/06/86 at 08.14.50
!*
%CONSTSHORTINTEGERARRAY COMP(0:3000)=  %C
     0,   258,     0,   258,     0,   259,     0,   260,     0,   261,
     0,   262,     0,   263,     0,   264,     0,     0,     1,  1025,
    50,  5377, 17921,     0,     1,  1026,    70,  5377, 17922,   808,
     0,   265,     0,     0,     1,  1027,    94,  5377, 17923,   552,
    90,   265,     0,     0,     1,     0,     1,  1028,   114,   266,
   108, 17925,     0,     1, 28672,     0,     1,  1029,   146,  5125,
   267,     0,  1026,     0,  5377,  5888, 17922,   808,     0,   265,
     0,     0,     1,   268,   202,   554,   180,  5379,  5632,  1026,
     0,  5377,  5888, 17922,   808,     0,   265,     0,     0,     1,
  1026,     0,  5377,  5888, 17922,   808,     0,   265,     0,     0,
     1,  1030,     0, 20224,     0,     1,  5383,     0,     1,   269,
     0,   573,     0,   270,     0, 15111,  1536,     0,     0,     2,
 27392,  1536,   254,   271,     0,     0,    17,  5376, 13568,  1536,
     0,     0,    22,   272,     0,   273,     0, 32768,  1536,   354,
   554,   302, 15106,   274,     0,   275,   298,     0,    25,     0,
    37,   559,   346,   559,   328, 15106,   274,     0,   275,   324,
     0,    47,     0,    57, 15106,   274,     0,   275,   342,     0,

==== ercs07/emas-a/f77rel/fcvs4_obey4.txt ====
PARM NOCHECK
#MON
F77PARM VAX
DEFINE 6,.OUT
DEFINE 14,OUT
F77P ERCS02.FCVS4_FM1,Y
RUN Y
F77P ERCS02.FCVS4_FM711,Y
RUN Y
F77P ERCS02.FCVS4_FM715,Y
RUN Y
F77P ERCS02.FCVS4_FM719,Y
RUN Y
F77P ERCS02.FCVS4_FM722,Y
RUN Y
F77P ERCS02.FCVS4_FM800,Y
RUN Y
F77P ERCS02.FCVS4_FM801,Y
RUN Y
F77P ERCS02.FCVS4_FM802,Y
RUN Y

==== ercs07/emas-a/f77rel/srce200_fanal3a.txt ====
!                                                           fanal3a
! 20/07/87 - line 2754,test for mode <=1
!          - remove line 3734
! 01/06/87 - insert line 3734 at PI(103)
!                                                           fanal2a
! 09/04/87 - include contents of asyn71 instead of ftn_asynt70
!                                                           fanal1a
!  25/02/87 - initialise ASS CHECKLIST in Analinit
! 04/12/86 - replace SAVE & RESTORE function by in-line code
!                                                           fanal1
! 16/11/86 - incorporate changes up to ftnanal28
! 23/09/86 - insert include files
!                                                           ftnanal27
! 16/09/86 - allow relops between logicals
!                                                           ftnanal26
! 14/09/86 - reject BYTE if Gould
! 09/08/86 - make CONJG generic
! 07/09/86 - add Gould special intrinsics
! 06/09/86 - default reals to r8
! 04/09/86 - allow CD and Z forms of doublecomplex fns
!                                                           ftnanal25

==== ercs07/emas-a/f77rel/ftn_subfmt.txt ====
!*
%RECORDFORMAT SUBRECF(%INTEGER LINK,FLAGS,TRIADS,DICT,NAMES,PTRS,PROG,
      LABCNT,ARGCNT,IDCNT,TRCNT,REFSCNT,SUBSCNT,
      DPTR,NEXTTRIAD,NAMESFREE,NEXTBIT,SUBPROGTYPE,SUBPROGPTR,
      CBNPTR,SCPTR,CMNIIN,FUNRESDISP,CMNCNT,ASSGOTOS,VRETURN,ENTRIES,
      TMLIST,ALABS,ALHEADS,NEXTPLAB,
      %STRING(32) NAME,%INTEGERARRAY COORDS(0:15))
!*
%CONSTINTEGER SUBSIZE=232
%CONSTINTEGER LABSIZE=128
%CONSTINTEGER LHEADSIZE=620
!*

==== ercs07/emas-a/f77rel/nbsfruns_f77opt1.txt ====
resetloader
disconnect .all
#monload 1
parm opt1
DEFINE 5,ERCS07:f77rel.NBSFTESTS_PART01DATA
F77 ERCS07:f77rel.NBSFTESTS_PART01      ,FY
RUN FY
#n
F77 ERCS07:f77rel.NBSFTESTS_PART02      ,FY
RUN FY
F77 ERCS07:f77rel.NBSFTESTS_PART03      ,FY
RUN FY
F77 ERCS07:f77rel.NBSFTESTS_PART04      ,FY
RUN FY
F77 ERCS07:f77rel.NBSFTESTS_PART05      ,FY
RUN FY
F77 ERCS07:f77rel.NBSFTESTS_PART06      ,FY
RUN FY
F77 ERCS07:f77rel.NBSFTESTS_PART07      ,FY
RUN FY
F77 ERCS07:f77rel.NBSFTESTS_PART08      ,FY

==== ercs07/emas-a/f77rel/nbsfruns_f77opt2.txt ====
resetloader
disconnect .all
#monload 1
parm opt2
DEFINE 5,ERCS07:f77rel.NBSFTESTS_PART01DATA
F77 ERCS07:f77rel.NBSFTESTS_PART01      ,FY
RUN FY
#n
F77 ERCS07:f77rel.NBSFTESTS_PART02      ,FY
RUN FY
F77 ERCS07:f77rel.NBSFTESTS_PART03      ,FY
RUN FY
F77 ERCS07:f77rel.NBSFTESTS_PART04      ,FY
RUN FY
F77 ERCS07:f77rel.NBSFTESTS_PART05      ,FY
RUN FY
F77 ERCS07:f77rel.NBSFTESTS_PART06      ,FY
RUN FY
F77 ERCS07:f77rel.NBSFTESTS_PART07      ,FY
RUN FY
F77 ERCS07:f77rel.NBSFTESTS_PART08      ,FY

==== ercs07/emas-a/optfiles_optctl51.txt ====
! 13/12/85 - copied from OPTCTLP50
!          - new include files incorporated
! 04/04/85 - Globsubs,Subsum - ignore I2 or L2
! 01/04/85 - Convertmode - %result=1 for any I2
! 28/03/85 - Conop - stop evaluating I2 exprs. {AA}
! 08/01/85 - comment out routine TABFAIL, call F77abort in pf_ctl1
! 07/01/85 - Substituted F77abort call for tabfail.
! 29/08/84 - correction to SETBITS for CMNCOORDS(1)
! 27/08/84 - insert function GET PLABDICT
! 16/07/84 - put name of OPTCTL routine in an include file
! 04/07/84 - put SPECS to constant operations in include file "targ_constfns"
! 03/07/84 - replace scaling factor in OPTCTL by BSCALE
! 04/06/84 - correction to BUSYONX
! 02/04/84 - changes in SUBSUM for DIOITEM(list-directed)
! 15/03/84 - further changes of 4 to W1 in CONOP
! 21/02/84 - Replace increments of 4 by W1 in BUSYONX & CONOP
! 17/01/84 - CORRECT CREATETAB; MAKE BLOCKPOINT RELATIVE IN SETBITS
! 08/11/83 COPIED FROM ERCS06.REL90_OPTCTLB31
!*
%INCLUDE "ercs01:ftn_ht"
!*

==== ercs07/emas-a/orgopt_sred42.txt ====
! 05/06/84 reject sr vars which have neglits floating around (EXAMINE)
! 04/06/84 change format of USEF & size of TINITSZ
!          local variables inserted in print routines
! 22/01/84 BIT STRIP ADDRESSES NOW RELATIVE TO ABLOCKS
! 30/10/83 COPIED FROM ERCS06.REL90_SREDB12
!*
%INCLUDE "host_host"
!*
%INCLUDE "targ_target"
!* 
%INCLUDE "pf_version"
!*
%INCLUDE "bits_fmts"
!*
%INCLUDE "bits_optspecs"
!*
%INCLUDE "bits_optfmts"
!
%INCLUDE "bits_consts"
!*
%INCLUDE "bits_triadops"

==== ercs07/emas-a/startf.txt ====
#scom 25,0

==== ercs07/emas-a/ftnsred1.txt ====
! 13/12/85 - copied from sred42
!          - new include files incorporated
! 05/06/84 reject sr vars which have neglits floating around (EXAMINE)
! 04/06/84 change format of USEF & size of TINITSZ
!          local variables inserted in print routines
! 22/01/84 BIT STRIP ADDRESSES NOW RELATIVE TO ABLOCKS
! 30/10/83 COPIED FROM ERCS06.REL90_SREDB12
!*
%INCLUDE "ftn_ht"
!*
%INCLUDE "ftn_consts1"
!* 
%INCLUDE "ftn_fmts2"
!*
%INCLUDE "ftn_optspecs1"
!*
%INCLUDE "ftn_optfmts1"
!
%INCLUDE "ftn_triadops1"
!*
%INCLUDE "ftn_copy1"

==== ercs07/emas-a/orgopt_op345.txt ====
! 29/11/84 - set Opcat for PAUSE to 21
! 24/10/84 - line 2345, also test for OP=MOO
!          - line 2785, scaling factor corrected to SRSCALE
! 23/10/84 - call ADDCODE at line 1153
! 02/10/84 - remove error message at PASS1(0) & PASS2(0)
! 05/07/84 - put routine ARRTR in include file targ_arrtr
! 06/06/84 - extend array OPCAT for INTRIN & DCMPLX
! 05/06/84 - do not optimise arrays with constant subscripts (ARRTR)
! 13/03/84 - correct TYPES and LENGTHS in routine DESC
! 19/01/84 - CTSIZE & EXTNSIZE NOW IN HOST
! 18/01/84 - BLOCK BIT STRIP ADDRESSES ARE NOW RELATIVE TO ABLOCKS
! 07/11/83 COPIED FROM ERCS06.REL8002_OP3B23
!*
%include "host_host"
!
%include "targ_target"
!
%include "pf_version"
!*
%include "bits_fmts"
!*

==== ercs07/emas-a/orgopt_oplist48.txt ====
! 22/10/84 - coorection to OUTPUTTEXT for continuation lines in OPT4
! 15/10/84 - define external routine RESET OPLIST
! 09/10/84 - change OUTPUTLINE to print global line number LINES
! 18/09/84 - insert switch for STFNID in GEN and delete array QUAL
! 24/07/84 set OPSYS 0
! 23/07/84 amend SW(CGT) in FORMLINE to print private labels
! 10/07/84 new version of targetpnx_fptos
! 05/07/84 insert switch SW(INTRIN) in FORMLINE
! 03/07/84 make FPTOS a string function & put in an include file
!          set up string REG1 in targ_target & substitute for "reg-1"
!          remove OPVALS for LOADB & STOREB
!          define INTRINFNS to output new INTRIN fns
! 21/03/84 amend arrays SW, RTOL, ENDS, OPVALS. Delete ST & SZTY & REG
! 19/03/84 add in ADICT on calls to FPTOS
! 08/03/84 change INTEGER mapping increments to W1 etc.
! 28/02/84 FPTOS inserted
! 01/10/1/83 copied from ERCS06.REL90_OPLISTB36
!*
%CONSTINTEGER OPSYS=0
!   =0  (Emas ISO)
!   =1  (VME  EBCDIC)

==== ercs07/emas-a/optfiles_sred43.txt ====
! 13/12/85 - copied from sred42
!          - new include files incorporated
! 05/06/84 reject sr vars which have neglits floating around (EXAMINE)
! 04/06/84 change format of USEF & size of TINITSZ
!          local variables inserted in print routines
! 22/01/84 BIT STRIP ADDRESSES NOW RELATIVE TO ABLOCKS
! 30/10/83 COPIED FROM ERCS06.REL90_SREDB12
!*
%INCLUDE "ercs01:ftn_ht"
!*
%INCLUDE "ercs01:ftn_consts1"
!* 
%INCLUDE "ercs01:ftn_fmts2"
!*
%INCLUDE "ercs01:ftn_optspecs1"
!*
%INCLUDE "ercs01:ftn_optfmts1"
!
%INCLUDE "ercs01:ftn_triadops1"
!*
%INCLUDE "ercs01:ftn_copy1"

==== ercs07/emas-a/ftn1opt1.txt ====
! 02/12/85 - taken from op147,new include files incorporated
! 07/11/85 - set DEF bit if mode of opd1 is char, at SWTR(IOSPEC)
! 3//6/85  - insert check for POSLEB at SKIP3 in TOPOLOGY
! 31/10/84 - set NEWBLFLAG=1 at SWTR(IOSPEC)
! 08/10/84 - remove call to GENBLOCK
! 19/07/84 - GENBLOCK  corrected to insert a new label in 1st triad
!            of new block if required
!          - LPPTR now deals with LEBs for multiple loops
! 02/07/84 - at SWTR(ASMT) set USE bit for opd2 before DEF bit for opd1
!            set NEWBLFLAFG in IOSPEC switch
! 02/04/84 - new code in BLOCKS to deal with list-directed I/O
! 31/01/84 - UPDATE SETUSE FOR DCMPLX & INTRIN
! 31/01/84 - NEW TRIADS DCMPLX, INTRIN, (IFUN)
! 17/01/84 - REMAP ON TO A TABLE IF ITS FULL ROUTINE HAS BEEN CALLED
! 12/01/84 - MAKE BIT STRIP ADDRESSES RELATIVE IN A BLOCK ENTRY
! 31/10/83 COPIED FROM ERCS06.REL8002_OP1B15
!*
%INCLUDE "ftn_ht"
!*
%INCLUDE "ftn_fmtS2"
!*

==== ercs07/emas-a/optfiles_op148.txt ====
! 02/12/85 - taken from op147,new include files incorporated
! 07/11/85 - set DEF bit if mode of opd1 is char, at SWTR(IOSPEC)
! 3//6/85  - insert check for POSLEB at SKIP3 in TOPOLOGY
! 31/10/84 - set NEWBLFLAG=1 at SWTR(IOSPEC)
! 08/10/84 - remove call to GENBLOCK
! 19/07/84 - GENBLOCK  corrected to insert a new label in 1st triad
!            of new block if required
!          - LPPTR now deals with LEBs for multiple loops
! 02/07/84 - at SWTR(ASMT) set USE bit for opd2 before DEF bit for opd1
!            set NEWBLFLAFG in IOSPEC switch
! 02/04/84 - new code in BLOCKS to deal with list-directed I/O
! 31/01/84 - UPDATE SETUSE FOR DCMPLX & INTRIN
! 31/01/84 - NEW TRIADS DCMPLX, INTRIN, (IFUN)
! 17/01/84 - REMAP ON TO A TABLE IF ITS FULL ROUTINE HAS BEEN CALLED
! 12/01/84 - MAKE BIT STRIP ADDRESSES RELATIVE IN A BLOCK ENTRY
! 31/10/83 COPIED FROM ERCS06.REL8002_OP1B15
!*
%INCLUDE "ercs01:ftn_ht"
!*
%INCLUDE "ercs01:ftn_fmtS2"
!*

==== ercs07/emas-a/orgopt_optctl50.txt ====
! 04/04/85 - Globsubs,Subsum - ignore I2 or L2
! 01/04/85 - Convertmode - %result=1 for any I2
! 28/03/85 - Conop - stop evaluating I2 exprs. {AA}
! 08/01/85 - comment out routine TABFAIL, call F77abort in pf_ctl1
! 07/01/85 - Substituted F77abort call for tabfail.
! 29/08/84 - correction to SETBITS for CMNCOORDS(1)
! 27/08/84 - insert function GET PLABDICT
! 16/07/84 - put name of OPTCTL routine in an include file
! 04/07/84 - put SPECS to constant operations in include file "targ_constfns"
! 03/07/84 - replace scaling factor in OPTCTL by BSCALE
! 04/06/84 - correction to BUSYONX
! 02/04/84 - changes in SUBSUM for DIOITEM(list-directed)
! 15/03/84 - further changes of 4 to W1 in CONOP
! 21/02/84 - Replace increments of 4 by W1 in BUSYONX & CONOP
! 17/01/84 - CORRECT CREATETAB; MAKE BLOCKPOINT RELATIVE IN SETBITS
! 08/11/83 COPIED FROM ERCS06.REL90_OPTCTLB31
!*
%INCLUDE "host_host"
!*
%INCLUDE "targ_target"
!*

==== ercs07/emas-a/orgopt_conelim43.txt ====
! 24/09/84 - check for PROCID line 780 of OPTNEG
! 09/08/84 - correction to OPTDIV, line 672 moved to line 681
! copied from pnxrel01_conelimp41
! 13/06/84 - delete use of RSUB as op to CONOP
! 12/03/84 only generate MOO triad if target is 2900
! 22/11/83 set up TRACE flag and CDUMPTRACE routine
! 27/10/83 copied from ERCS06.REL90_CONELIMB12
!*
%INCLUDE "host_host"
!*
%INCLUDE "targ_target"
!*
%INCLUDE "pf_version"
!*
%INCLUDE "bits_fmts"
!*
%INCLUDE "bits_optspecs"
!*
%INCLUDE "bits_optfmts"
!
%INCLUDE "bits_consts"

==== ercs07/emas-a/ftn3opt2.txt ====
! 26/02/86 - set OPCAT for CHIND to 21 so that contents of Breg are preserved
! 09/12/85 - taken from op3b45, new include files incorporated,
!            remove include of targ_arrtr
! 29/11/84 - set Opcat for PAUSE to 21
! 24/10/84 - line 2345, also test for OP=MOO
!          - line 2785, scaling factor corrected to SRSCALE
! 23/10/84 - call ADDCODE at line 1153
! 02/10/84 - remove error message at PASS1(0) & PASS2(0)
! 05/07/84 - put routine ARRTR in include file targ_arrtr
! 06/06/84 - extend array OPCAT for INTRIN & DCMPLX
! 05/06/84 - do not optimise arrays with constant subscripts (ARRTR)
! 13/03/84 - correct TYPES and LENGTHS in routine DESC
! 19/01/84 - CTSIZE & EXTNSIZE NOW IN HOST
! 18/01/84 - BLOCK BIT STRIP ADDRESSES ARE NOW RELATIVE TO ABLOCKS
! 07/11/83 COPIED FROM ERCS06.REL8002_OP3B23
!*
%include "ftn_ht"
!
%include "ftn_consts1"
!
%include "ftn_fmts2"

==== ercs07/emas-a/pptests_pptest10.txt ====



program pptest3;

  type
    pointer = ^arecord;
    arecord = record
                firstfield: integer;
                secondfield: integer;
                a: array [1 .. 10] of pointer;
                p: pointer
              end;
    bit = 0 .. 1;
    fourbits = packed
                 record
                   onebit: bit;
                   twobits: packed array [bit] of bit;
                   anotherbit: bit
                 end;


==== ercs07/emas-a/pptests_pptest11.txt ====



program pptest11;

  label 1, 2;

  var
    b: boolean;
    i: integer;

  begin
  { if ... then ... else }
    if b
    then i := 0
    else
      if (i = 0) or (i = 1) then i := 2 else i := 3;

    { goto statements }
    1: i := 0;
    goto 2;

==== ercs07/emas-a/pptests_pptest12.txt ====

program pptest12;

{ procedures/funcs }

  var i: integer;

  procedure p1;

    procedure p2;

      procedure p3;

        procedure p4;

          begin { p4 }  end;

        procedure p5;

          begin
            p5; { recursive call }

==== ercs07/emas-a/pptests_pptest13.txt ====





program pptest13;
{ procedure parameters }

  procedure p1
              (i1: integer; var j1: integer; procedure p2;
               function f1: integer;
               procedure p3(i2: integer; var j2: integer);
               function f2(i2: integer): integer);

    begin
      i1 := f1;
      j1 := f1;
      p2;
      p3(i1, j1);
      i1 := f2(f1)
    end { p1 };

==== ercs07/emas-a/pptests_pptest14.txt ====



program pptest14(input, output);

  const
    one = 12;
    two = 'TWO';

  var
    ch: char;
    i: integer;
    x: real;
    b: boolean;
    name: packed array [1 .. 10] of char;

  begin
  { read, readln }
    read(ch);
    read(i);
    read(x);

==== ercs07/emas-a/pptests_pptest15.txt ====


program pptest15(input, output, f);

  type coord = record x, y: real end;

  var
    t: text;
    f: file of coord;
    ch: char;
    i: integer;
    x: real;
    b: boolean;
    pt: coord;

  begin
  { reset , rewrite }
    reset(f);
    rewrite(f);
    reset(t);
    rewrite(t);

==== ercs07/emas-a/pptests_pptest16.txt ====



program ptest16;
{ test variable access }

  const
    bytelimit = 255;
    halflimit = 65535;

  type
    byte = 0 .. bytelimit;
    half = 0 .. halflimit;

  var
    b1,b2 : byte;
    h1,h2 : half;
    c1,c2 : char;
    bb1,bb2 : boolean;
    r1,r2 : real;
    i1,i2 : integer;

==== ercs07/emas-a/pptests_pptest17.txt ====


program ptest17;
{ test local and global accesses }

  type
    small = array [1 .. 256] of integer;
    big = array [1 .. 65535] of integer;

  var
    g1,
    g2: integer;
    s1: small;
    b1: big;

  procedure p2(s2: small; t2: integer);

    var
      b2: big;
      v2: integer;


==== ercs07/emas-a/pptests_pptest18.txt ====
PROGRAM QUAD(input,output);   { ===== Quadratic Equation ===== }
VAR a, b, c, d, x, x1, x2, rp, ip:  REAL;
BEGIN
 WHILE NOT(EOF) DO BEGIN
   READ (a, b, c);
   WRITELN (a:8:1, b:8:1, c:8:1);
   IF a <> 0 THEN
    BEGIN
       d := SQR(b) - 4*a*c;
       IF d >= 0 THEN
           BEGIN  { Real Roots }
           d := SQRT (d);
           x1 := (-b+d)/(2*a);
           x2 := (-b-d)/(2*a);
           WRITELN ('REAL ROOTS', x1:8:4, x2:8:4)   END
         ELSE
           BEGIN  { Complex Roots }
           rp := -b/(2*a);
           ip := SQRT(-d)/(2*a);
           WRITELN ('COMPLEX ROOTS', rp:8:4, ip:8:4)   END;
       END ELSE

==== ercs07/emas-a/pptests_pptest19.txt ====
PROGRAM ARRA(input,output); 
const m=100; n=100;
TYPE  arr = array [1..m,1..n] of real;
VAR i,j:integer;
a : arr;
BEGIN
for i := 1 to n do
for j := 1 to m do
 a[i,j] := i+j;
writeln('initialised');
for i := 1 to n do
for j := 1 to m do
 a[i,j] := a[j,i];
writeln('transposed');
for i := 1 to n do
for j := 1 to m do
 a[i,j] := a[i,j]+1.0;
writeln('done')
END.



==== ercs07/emas-a/ftnoplist1.txt ====
! 20/02/86 - comment out code at SW(LE) & SW(JIF) IN FORMLINE
! 13/12/85 - copied from oplistb48
!          - new SW(GLALIT) at SW(STKLIT) in GEN (from oplistp46)
!          - new include files incorporated
! 22/10/84 - coorection to OUTPUTTEXT for continuation lines in OPT4
! 15/10/84 - define external routine RESET OPLIST
! 09/10/84 - change OUTPUTLINE to print global line number LINES
! 18/09/84 - insert switch for STFNID in GEN and delete array QUAL
! 24/07/84 set OPSYS 0
! 23/07/84 amend SW(CGT) in FORMLINE to print private labels
! 10/07/84 new version of targetpnx_fptos
! 05/07/84 insert switch SW(INTRIN) in FORMLINE
! 03/07/84 make FPTOS a string function & put in an include file
!          set up string REG1 in targ_target & substitute for "reg-1"
!          remove OPVALS for LOADB & STOREB
!          define INTRINFNS to output new INTRIN fns
! 21/03/84 amend arrays SW, RTOL, ENDS, OPVALS. Delete ST & SZTY & REG
! 19/03/84 add in ADICT on calls to FPTOS
! 08/03/84 change INTEGER mapping increments to W1 etc.
! 28/02/84 FPTOS inserted
! 01/10/1/83 copied from ERCS06.REL90_OPLISTB36

==== ercs07/emas-a/optfiles_op248.txt ====
! 02/12/85 - taken from op2p47, new include files incorporated
! 07/08/85 - include test for CHARMODE in ARR/DEFARR triad in BMOVECHECK
! 26/06/85 - line 976 0f LOOPBUILD, map on to next AR block
!          - line 812 of LOOPBUILD, map on to current CL block
! 19/09/84 - clear relevant bit in CLOOPDEF if ASMT/ASGN triad backward moved
!          - line 1510 corrected to VAL1=1, line 1515 moved back 7 lines
! 28/08/84 - correction to BTBITS for CMNCOORDS(1)
! 02/07/84 - change OPTSAB(CMPLX) entry to X'06'
! 11/04/84 - don't word align FREETABS in BMOVHECK
! 10/04/84 - scaling correction in bmovecheck
! 31/01/84 - UPDATE OPSTAB FOR DCMPLX & INTRIN
! 18/01/84 - ADJUST BIT STRIP ADDRESSES
! 17/01/84 - MAKE CALLS OF CREATETAB CONSISTTENT
! 23/11/83 call EDUMPTRACE in OP2A; set up LDUMPTRACE & BMTRACE
! 22/11/82 call CDUMPTRACE in OP2A
! 27/10/83 COPIED FROM ERCS06.REL90_OP2B13
!*
%INCLUDE "ercs01:ftn_ht"
%INCLUDE "ercs01:ftn_consts1"
!*
%INCLUDE "ercs01:ftn_fmts2"

==== ercs07/emas-a/pptests_pptest1a.txt ====
program ptest1(output);
{ test simple expression rearrangement }

  const
    zero = 0;
    one = 1;
    two = 2;
    bytelimit = 255;
    halflimit = 65535;

  type
    byte = 0 .. bytelimit;
    half = 0 .. halflimit;

  var
    b1,  b2,  b3: byte;
    h1,  h2,  h3: half;
    i1,  i2,  i3: integer;

  begin
    b1 := 0;

==== ercs07/emas-a/ftneelim1.txt ====
! 02/12/85 - taken from eelimp45, new include files incorporated
! 21/08/95 - alter TRELIM to inhibit expression elimination of ARR triads
! 29/11/84 - correct TRELIM for TOCHAR and CONJG
! 31/01/84 - UPDATE TRELIM FOR DCMPLX & INTRIN
! 18/01/84 - BIT STRIP ADDRESSES ARE NOW RELATIVE TO ABLOCKS
! 23/11/83 set up TRACE flag and EDUMPTRACE routine
! 27/10/83 - copied from ERCS06.REL8002_eelimb7
%INCLUDE "ftn_ht"
!*
%INCLUDE "ftn_fmts2"
%INCLUDE "ftn_optspecs1"
%INCLUDE "ftn_consts1"
%INCLUDE "ftn_optfmts1"
!
%INCLUDE "ftn_triadops1"
!*
%OWNINTEGER TRACE=0
!
%OWNINTEGER ELFLAG,ELIMEND,RWFLAG,HVAL
%OWNINTEGER COORD1,COORD2,MODE,MATCH
!*

==== ercs07/emas-a/ftn5opt1.txt ====
!* modified 17/10/84
!*
%constinteger DSCALE=2
!*
!%include "bits_consts"
!*
!********************* TRIAD qualifiers ********************************
!*
%CONSTINTEGER NULL    = 0
%CONSTINTEGER LABID   = 1
%CONSTINTEGER PLABID  = 2
%CONSTINTEGER PROCID  = 3
%CONSTINTEGER STKLIT  = 4
%CONSTINTEGER GLALIT  = 5
%CONSTINTEGER SRTEMP  = 6
%CONSTINTEGER BREG    = 7
%CONSTINTEGER VALTEMP = 8
%CONSTINTEGER DESTEMP = 9
%CONSTINTEGER LSCALID =16
%CONSTINTEGER OSCALID =17
%CONSTINTEGER CSCALID =18

==== ercs07/emas-a/ftnoptctl2.txt ====
! 13/12/85 - copied from OPTCTLP50
!          - new include files incorporated
! 04/04/85 - Globsubs,Subsum - ignore I2 or L2
! 01/04/85 - Convertmode - %result=1 for any I2
! 28/03/85 - Conop - stop evaluating I2 exprs. {AA}
! 08/01/85 - comment out routine TABFAIL, call F77abort in pf_ctl1
! 07/01/85 - Substituted F77abort call for tabfail.
! 29/08/84 - correction to SETBITS for CMNCOORDS(1)
! 27/08/84 - insert function GET PLABDICT
! 16/07/84 - put name of OPTCTL routine in an include file
! 04/07/84 - put SPECS to constant operations in include file "targ_constfns"
! 03/07/84 - replace scaling factor in OPTCTL by BSCALE
! 04/06/84 - correction to BUSYONX
! 02/04/84 - changes in SUBSUM for DIOITEM(list-directed)
! 15/03/84 - further changes of 4 to W1 in CONOP
! 21/02/84 - Replace increments of 4 by W1 in BUSYONX & CONOP
! 17/01/84 - CORRECT CREATETAB; MAKE BLOCKPOINT RELATIVE IN SETBITS
! 08/11/83 COPIED FROM ERCS06.REL90_OPTCTLB31
!*
%INCLUDE "ftn_ht"
!*

==== ercs07/emas-a/pptests_mmult.txt ====


program matrix;

  const n = 50;

  var
    i,
    j,
    k: integer;
    s: real;
    a,
    b: array [1 .. n,1 .. n] of real;

  begin
    for i := 1 to n do
      for j := 1 to n do a[i, j] := 1.0;
    for i := 1 to n do
      for j := 1 to n do
        begin
          s := 0;

==== ercs07/emas-a/optfiles_op346.txt ====
! 09/12/85 - taken from op3b45, new include files incorporated,
!            remove include of targ_arrtr
! 29/11/84 - set Opcat for PAUSE to 21
! 24/10/84 - line 2345, also test for OP=MOO
!          - line 2785, scaling factor corrected to SRSCALE
! 23/10/84 - call ADDCODE at line 1153
! 02/10/84 - remove error message at PASS1(0) & PASS2(0)
! 05/07/84 - put routine ARRTR in include file targ_arrtr
! 06/06/84 - extend array OPCAT for INTRIN & DCMPLX
! 05/06/84 - do not optimise arrays with constant subscripts (ARRTR)
! 13/03/84 - correct TYPES and LENGTHS in routine DESC
! 19/01/84 - CTSIZE & EXTNSIZE NOW IN HOST
! 18/01/84 - BLOCK BIT STRIP ADDRESSES ARE NOW RELATIVE TO ABLOCKS
! 07/11/83 COPIED FROM ERCS06.REL8002_OP3B23
!*
%include "ercs01:ftn_ht"
!
%include "ercs01:ftn_consts1"
!
%include "ercs01:ftn_fmts2"
!*

==== ercs07/emas-a/optfiles_conelim44.txt ====
! 02/12/85 - copied from conelim43, new include files incorporated
! 24/09/84 - check for PROCID line 780 of OPTNEG
! 09/08/84 - correction to OPTDIV, line 672 moved to line 681
! copied from pnxrel01_conelimp41
! 13/06/84 - delete use of RSUB as op to CONOP
! 12/03/84 only generate MOO triad if target is 2900
! 22/11/83 set up TRACE flag and CDUMPTRACE routine
! 27/10/83 copied from ERCS06.REL90_CONELIMB12
!*
%INCLUDE "ercs01:ftn_ht"
!*
%INCLUDE "ercs01:ftn_consts1"
!*
%INCLUDE "ERCS01:ftn_fmts2"
!*
%INCLUDE "ercs01:ftn_optspecs1"
!*
%INCLUDE "ercs01:ftn_optfmts1"
!
%INCLUDE "ercs01:ftn_triadops1"
!*

==== ercs07/emas-a/pptests_mmulta.txt ====
program matrix(output);

  const n = 20;

  var i, j, k: integer;
    s: real;
    a,  b: array [1 .. n,1 .. n] of real;

  begin
    for i := 1 to n do
      for j := 1 to n do a[i, j] := 1.0;
    for i := 1 to n do
      for j := 1 to n do
        begin
          s := 0;
          for k := 1 to n do s := a[i, k] * a[k, j] + s;
          b[i, j] := s
        end;
    for i := 1 to n do
      begin
        for j := 1 to n do write(a[i,j]);

==== ercs07/emas-a/rscv.txt ====
{ personal information redacted }

                                   Curriculum Vitae


Name: Rosemary Soutar

Previous Posts:
1. 1973-77 Dept. of Artificial Intelligence at Edinburgh University as systems
    programmer/librarian.

    Initially assisted in maintenance of all software for the department's
    ICL 4130, primarily the time-sharing operating system, Multi-Pop, and its
    associated programming language POP-2. With the departments's transfer to
    the DEC-10, assisted in the maintenance and enhancement of POP-2 on that m/c
    and was responsible for the maintenance and development of the AI program
    library and its documentation.
    Latterly worked on EMAS, using IMP to rewrite much of the LOGO interpreter.

2. 1978-82 E.R.C.C. as computing officer, CO2; 1982-87 as CO3;
   half-time from 1984.

==== zesz01/uktex/readalls.txt ====
%external %routine %spec kick uktex
%external %routine %spec kick texhax
%external %routine mail kick %alias "C#MAILKICK"(%string (255) Kicked BB)
  %if Kicked BB = "uktex-in" %or Kicked BB = "UKTEX-IN" %then kick uktex
  %if Kicked BB = "texhax-in" %or Kicked BB = "TEXHAX-IN" %then kick texhax
%end
%end %of %file

==== zesz01/uktex/readuktexs.txt ====
%constinteger debug=1 ;! non-0 for no debug
%if debug#0 %start
%const %string (255) incoming bb name= "uktex-in"
%finishelsestart
%const %string(255) incoming bb name="uktex-test"
%finish
%const %string (1) snl= "
"
%external %routine GetMailUktex(%string (255) incoming mail bundle)
   %external %routine %spec EMAS3(%string %name command,par, %integer %name f)
   %external %string %fn %spec derrs %alias "s#derrs"(%integer flag)
   %external %routine %spec destroy %alias "S#DESTROY"(%string (255) file,
      %integer %name flag)
   %constant %integer max mflag= 529;    ! Max MAILER error number
   %integer flag
!
! Getmail V0.09 17/09/87
! Author: Graham Toal
! Copyright: public domain
!
! This program reads any incoming mail addressed to uktex-in.

==== zesz01/uktex/accredits.txt ====
%constant %string (1) snl="
"
%constant %integer yes= 1
%constant %integer no= 0
%constant %integer max mailer flags= 530
%constant %integer max filenames= 800
%constant %string (255) alert file= "MANAGR:ALERTINF"
%constant %string (255) information base= "EDNEWS:INFORMATION."
!! MAILER FLAGS
%constant %string (28) %array mailer flags(501:max mailer flags)= %c
"Invalid parameters",
 "Duplicate component:",
 "Unknown component",
 "Invalid command",
 "No valid recipients",
 "Too many recipients",
 "Addr table full",
 "Name table full",
 "Illegal name",
 "Mail service closed",
 "Recipient offline",