?he 'SYSGUIDE''Page %'
?fo 'Steven Hardy'- % -'21st February 1977'
.ce2
NOTES FOR THE POP11 SYSTEM PROGRAMMER
.br
=====================================
.br
This document describes the files which make up the Sussex
POP11
system and how to use them to install or alter the
POP11
system.
The 
POP11
system is distributed on a single RK05 disc pack. In what follows
I will assume that this disc pack has been mounted as /pop
The following files will then be available.
.br
.sp
.tp 5
/pop/install
.br
------------
.br
This SHell program copies all the files necessary to run the
POP11
system onto the system disc.
Any file described in this handout but not on the POP disc
is amongst thos copied by /pop/install.
After running this program, type
 	% demos index
.br
to get a list of available documentation.
.br
.sp
.tp 5
/bin/pop11
.br
----------
.br
An executable version of the POP11 system.
.br
.sp
.tp 5
/bin/demos
.br
----------
.br
A program to print handouts from the demos library. A
typical call might be
.ti+5
% demos index sysvars syntax
.br
.sp
.tp 5
/usr/bin/par
.br
------------
.br
The POP11 system library archiver.
This program constructs a 'library' from
POP11
source code files. Its arguments are the source files to be
concatenated and its standard output the library file. If no
arguments are supplied, it reads file names from its standard
input. for example:-
 	% par <lib.i >lib.l
.br
See the 
LIBLIST demo for more details.
.br
.sp
.tp 5
/lib/pop.mishaps
.br
---------------
.br
Error message file.
.sp
.tp5
/lib/pop.l
.br
----------
.br
The POP11 library.
.br
.sp
.tp 5
/usr/lib/*.p
.br
------------
.br
Infrequently used library files, accessed with a 'lib' command
to POP11.
.br
.sp
.tp 5
/usr/lib/tmac.t
.br
---------------
.br
A macro file for /bin/demos.
.br
.sp
.tp 5
/pop/build
.br
----------
.br
This SHell program makes the files for /pop/install from source
code files.
.br
.sp
.tp 5
/pop/configure
.br
--------------
.br
This SHell program makes the files for /pop/build. It should
be invoked if files are added to the POP11 source code.
.br
.sp
.tp 5
/pop/demos/*
.br
------------
.br
These files are "source code" for a number of handouts
relating to the POP11 system.
.br
.sp
.tp 5
/pop/src/?-*.s
.br
--------------
.br
These files are source code for the POP11 system.
.br
.sp
.tp 5
/pop/src/pop11.i
.br
----------------
.br
This file contains the names of source code files of the
POP11
system (one name per line).
.br
.sp
.tp 5
/pop/src/mkfiles
.br
----------------
.br
This is a program to make 
/pop/src/pop11.i
.br
.sp
.tp 5
/pop/src/pas
.br
------------
.br
This program is the POP11 system assembler.
It concatenates the source code files of the POP11 system
into a file called /pop/src/pop11.s - this file contains
no comments to save disc space.
Pas also implements a small change to the assembly language.
In POP11
integers are represented by odd words, that is 0 is represented by
1, 1 by 3, 2 by 5 etc.
The alteration to the assembly language implemented by pas allows me to write:
.nf
 	mov #n,-(r5)	instead of	mov $2*n+1,-(r5)
.fi
or	mov #'a,-(r5)	instead of	mov $2*'a+1,-(r5)
.br
Having made the file
/pop/src/pop11.s,
pas
invokes the assembler and the link editor. 
The name /pop/src/pop11 is linked to the a.out, the output
of the link editor.
If pas is invoked with arguments only the relevant (see prpop11)
files of the POP11 system are assembled and the link editing
phase is suppressed. This is useful for checking that an edited
sub-file of the POP11 system is (at least) syntactically correct.
.br
.sp
.tp 5
/pop/src/mkpas
.br
--------------
.br
This program makes 
/pop/src/pas.
.br
.sp
.tp 5
/pop/src/prpop11
.br
----------------
.br
This program prints the source code for the 
pop11
system using
NROFF
to get pagenation and headings. If invoked with no arguments
it prints the entire 
pop11
system (about 200 pages). If invoked with arguments, it only
prints those files (from 
pop11.i)
whose name 'contains' one of the given arguments. For example:-
.ti+5
% prpop11 cm gc
.br
prints only those files whose names include the characters
'cm' or 'gc'.
.br
.sp
.tp 5
/pop/src/mkprpop11
.br
------------------
.br
This makes the 
prpop11 program.
.br
.sp
.tp 5
/pop/lib/*.p
.br
------------
.br
These files are source code for the POP11 library.
.br
.sp
.tp 5
/pop/lib/pop.l
.br
--------------
.br
This is the POP11 library.
.br
.sp
.tp 5
/pop/lib/mklib
.br
--------------
.br
This SHELL program constructs a new POP11 library file from the source
code files. It takes a single argument, the name of the library file
wanted. A typical call might be
.in+5
% chdir /pop/lib
.br
% mklib /lib/pop.l
.in-5
POP11 library files fall into two main groups, distinguished by
the first letter of the file name being in upper case for semi-secret
library variables.
.br
.sp
.tp 5
/pop/usr/lib
.br
------------
.br
This directory contains various POP11 library programs which are
infrequently used or subject to frequent change. The POP11 system 
does not require any of these files to run. If you want to use one of
the programs in this directory, transfer it to /usr/lib where
it can be loaded with a lib command to the POP11 system. For example:-
.ti+5
 	: lib eliza;
.br
.br
.sp
.tp 5
/pop/ccc
.br
------------
.br
This directory contains various C programs related to the POP11 system.
