Table of Contents

PLATO Compass Build Procedures

The following is the preamble for the job to be submitted.

Preamble

asmprocs871
procs.
user(plato,plato)
settl(*)
setasl(*)
setjsl(*)
attach,procfil/m=w,na.
if(.not.file(procfil,as))define,procfil.
copycf,input,procfil.
~

ulib

After the Tilde (~), the procedures are created as input to the copycf (copy card file) command.

ulib.proc
.proc,ulib,abs,ulib,unam.
.*
.*        procedure to build *ulib* from absolute
.*
.*        abs - file containing absolute.
.*              will contain ulib
.*
.*        ulib - file containing *ulib* header.
.*
.*        unam - *ulib* name.
.*
rewind,old,abs.
skipr,abs.
copyei,abs,old.
note(dir)+*build unam
libedit(i=dir,p=old,lo=e,b=0)
rewind,abs,new,ulib.
skipr,abs.
compass(a,i=ulib,s=0,l=0,b=ulhdr)
rewind(ulhdr)
copybr,ulhdr,abs.
copyei,new,abs.
unload,dir,old,new,ulhdr.
revert. ulib
.data,ulibm.
          ident  ulib
          #abs
          nolabel
 
*         form a prefix table
 
 prefix   data   77000016000000000000b
          dis    ,*mastor*
          data   10h"date"
          data   10h"time"
          dis    1,
          dis    1,
          dis    1,
          dis    1,
          dis    ,* library for mastor.*
          bssz   17b+prefix-*   complete the prefix table
 
*         make a ulib table
 
          data   76000001000000000000b
 
          end
.data,ulibmn.
          ident  ulib
          #abs
          nolabel
 
*         form a prefix table
 
 prefix   data   77000016000000000000b
          dis    ,*mastorn*
          data   10h"date"
          data   10h"time"
          dis    1,
          dis    1,
          dis    1,
          dis    1,
          dis    ,* library for mastorn.*
          bssz   17b+prefix-*   complete the prefix table
 
*         make a ulib table
 
          data   76000001000000000000b
 
          end
.data,ulibp.
          ident  ulib
          #abs
          nolabel
 
*         form a prefix table
 
 prefix   data   77000016000000000000b
          dis    ,*plato*
          data   10h"date"
          data   10h"time"
          dis    1,
          dis    1,
          dis    1,
          dis    1,
          dis    ,* library for plato.*
          bssz   17b+prefix-*   complete the prefix table
 
*         make a ulib table
 
          data   76000001000000000000b
 
          end
.data,ulibf.
          ident  ulib
          #abs
          nolabel
 
*         form a prefix table
 
 prefix   data   77000016000000000000b
          dis    ,*framat*
          data   10h"date"
          data   10h"time"
          dis    1,
          dis    1,
          dis    1,
          dis    1,
          dis    ,* library for framat.*
          bssz   17b+prefix-*   complete the prefix table
 
*         make a ulib table
 
          data   76000001000000000000b
 
          end
.data,ulibc.
          ident  ulib
          #abs
          nolabel
 
*         form a prefix table
 
 prefix   data   77000016000000000000b
          dis    ,*conden*
          data   10h"date"
          data   10h"time"
          dis    1,
          dis    1,
          dis    1,
          dis    1,
          dis    ,* library for condensor.*
          bssz   17b+prefix-*   complete the prefix table
 
*         make a ulib table
 
          data   76000001000000000000b
 
          end
.data,ulibplf.
          ident  ulib
          #abs
          nolabel
 
*         form a prefix table
 
 prefix   data   77000016000000000000b
          dis    ,*plf*
          data   10h"date"
          data   10h"time"
          dis    1,
          dis    1,
          dis    1,
          dis    1,
          dis    ,* library for plf.*
          bssz   17b+prefix-*   complete the prefix table
 
*         make a ulib table
 
          data   76000001000000000000b
 
          end
~

loader

The following procedure (loader) loads a relocatable binary, creates and absolute binary, and saves the map.

loader.proc
.proc,loader,rel,abs,rfl=70000,map=0,mo=sbex.
.*
.*        load relocatable binary, create absolute binary
.*        and save the map.
.*
.*        rel = relocatable binary.
.*
.*        abs = absolute binary.
.*
.*        rfl = running field length for load.
.*
.*        map = pfn, map saved on pfn.
.*        map = 0, map printed, but not saved.
.*
.*        mo = -ldset- map options, default = sb.
.*
unload(#abs)
#rfl(rfl)
ldset(preset=zero,err=all,#map=mo/#map)
load(rel)
nogo(#abs)
purge(abs/na)
define(abs/ct=pu,m=r)
rewind(#abs)
copyei(#abs,abs)
unload(#abs)
.*
.*        copy map to full output file
.*
rewind,#map.
copyei,#map,full.
.*
.*        copy map to permanent file if requested.
.*
ife,(num(map).ne.true),list.
rewind(#map)
purge(map/na)
define(map/ct=pu,m=r)
copyei(#map,map)
endif(list)
.*
unload(#map)
.*
revert. loader
.*
exit.
.*
.*        if errors, copy errors to file *errs* and
.*        copy full map to full output file.
.*
ife(file(#map,eq).ne.0,xedt)
xedit(#map,l=errs)$l.///.*$t$l.***.*$e
rewind,#map.
copy,#map,output.
unload,#map.
endif(xedt)
.*
revert,abort. loader.
~
.proc,condldr,lo=sbex,el=all.
.*
.*  load the condensor.  writes the abs binary to cbin
.*  and the map to cmap.
.*
.*  lo    = ses. link170 list options (default = n).
.*  el    = abort error level (default = all).
.*
attach(cmp/m=w,na)
if(.not.file(cmp,as))define(cmp/ct=pu)
begin(cmpbin,,p=cmp)
unload(cmpbin)
.*
.*        on corporate dev systems, include experimental
.*        micro plato version.
.*
ife((r1g.and.200000b)=200000b,exp)
attach(conden,cmp,cl2,cl3,cl4,cl5,cl6/m=r,na)
begin,sespack.
ses. link170 cybclib #lo=lo l=map #el=el ..
xld='ldset(preset=zero)' ..
f=(conden,cmp,cl2,cl3,cl4,cl5,cl6)
unload(conden,cmp,cl2,cl3,cl4,cl5,cl6)
ife(efg.ne.0,loaderr)
xedit(map,l=errs)$l.///.*$t$l.***.*$e
rewind,map.
copy,map,full.
unload,map.
revert(abort) loader errors
endif(loaderr)
.*
.*        otherwise do not include it.
.*
else(exp)
attach(conden,cmp,cl2,cl3,cl4,cl5/m=r)
begin,sespack.
ses. link170 cybclib #lo=lo l=map #el=el ..
xld='ldset(preset=zero)' ..
f=(conden,cmp,cl2,cl3,cl4,cl5)
unload(conden,cmp,cl2,cl3,cl4,cl5)
ife(ef.ne.0,loaderr)
xedit(map,l=errs)$l.///.*$t$l.***.*$e
rewind,map.
copy,map,full.
unload,map.
revert(abort) loader errors
endif(loaderr)
endif(exp)
.*
purge(cbin,cmap/na)
define(cbin,cmap)
rewind(lgob,cbin)
copyei(lgob,cbin,v)
rewind(map,cmap)
copyei(map,cmap,v)
rewind(map)
copyei(map,full)
*
rfl,60000.
begin(ulib,,cbin,ulibc,conden)
catalog(cbin,r,n,u)
.*
.*
unload(lgob,cbin,cmap,map)
.*
revert. condldr
~

plato system modules

build plato system modules.

psm.proc
.proc,psm,ml=871,list=0/output.
.*
.*        build plato system modules
.*
.*        entry  ml = nos update level.
.*
unload(lgo)
.*
begin,psmbld,,option=orient,binfile=psma,#list=list.
begin,psmbld,,option=psplus,binfile=psmb,#list=list.
begin,psmbld,,option=author,binfile=psmc,#list=list.
begin,psmbld,,option=pcd2,binfile=psmd,#list=list.
begin,psmbld,,option=srvsys,binfile=psme,#list=list.
.*
revert.  psm
~

plato system modifier

build plato system modifier.

psmbld.proc
.proc,psmbld,option,binfile,list=0/output.
.*
.*        build plato system modifier
.*
.*        entry  option = option name
.*               binfile = file name to store binary on
.*
modify(z,lo=e)/*define option/*oplfile nos,ipl/*edit psmd
compass(i,s=nostext,l=list,a)
.*
.*        create new permanent file.
.*
purge(binfile/na)
define(binfile/ct=pu)
rewind,lgo.
copyei,lgo,binfile.
unload,lgo,binfile.
.*
revert.  psmbld
~

condensor full assembly

central condensor full assembly.

conden.proc
.proc,conden,ml=871,list=0/output.
.*
.*  central condensor full assembly.
.*
.*  exit - conden = relocatable binary.
.*         ccommon = common text.
.*
modify(z,lo=e)/*oplfile nos,ipl/*read edit1
cstc(a,i,l=list,s=0,#ml=ml)
modify(z,lo=e)/*oplfile nos,ipl/*read edit2
cstc(a,i,l=list,s=nostext,s=psstext,#ml=ml)
modify(z,lo=e)/*oplfile nos,ipl/*read edit3
cstc(a,i,l=list,s=0,#ml=ml)
*
*  main overlay.
*
modify(z,lo=e)/*oplfile nos,ipl/*read edit4
cstc(a,i,l=list,c=ccommon,s=nostext,#ml=ml)
*
*  central overlays.
*
modify(z,lo=e)/*oplfile nos,ipl/*read edit5
cstc(a,i,l=list,c=ccommon,s=0,#ml=ml)
*---
rewind(ccommon)
rename(com=ccommon)
purge(ccommon/na)
define(ccommon/ct=pu,m=r)
copy(com,ccommon)
unload(ccommon,com)
.*
purge(conden/na)
define(conden/ct=pu,m=r)
rewind(lgo)
copyei(lgo,conden)
unload(lgo,ccommon,compile,com,edit1,edit2,edit3,edit4,edit5,conden)
revert. conden
.data,edit1.
*edit     conden
.data,edit2.
*edit     csys
.data,edit3.
*edit     defccom
.data,edit4.
*edit     cond
*edit     loadov
*edit     condi
*edit     condc
*edit     consub
*edit     getlin
*edit     conten
*edit     embed
*edit     calcs
*edit     compile
*edit     lex
*edit     deflex
*edit     defsub
*edit     mcond
.data,edit5.
*edit     covlay1
*edit     grafsc
*edit     ansin
*edit     define
*edit     covlay2
*edit     answin
*edit     touchov
*edit     covlay3
*edit     recordc
*edit     sitec
*edit     pptc
*edit     covlay4
*edit     cwrite
.*
.*        in addition to a normal (1,1) plato overlay,
.*        deck *tagov* contains a (1,2) overlay to denote
.*        the end of the central plato overlays.  a *edit
.*        for any new central plato overlay files must be
.*        added before the *edit for *tagov*; otherwise
.*        the new overlay file will not be loaded as part
.*        of the central condensor.
.*
*edit     tagov
~

level 1 micro plato full assembly

level 1 micro plato full assembly.

conden1.proc
.proc,conden1,ml=871,list=0/output.
.*
.*  level 1 micro plato full assembly.
.*
.*  exit - cl1 = relocatable binary.
.*         ccom1 = common text.
.*
modify(z,lo=e)/*oplfile nos,ipl/*read edit1
cstc(a,i,l=list,s=0,b=0,#ml=ml)
.*
modify(z,lo=e)/*oplfile nos,ipl/*read edit2
cstc(a,i,l=list,c=ccom1,s=0,b=lgo1,#ml=ml)
.*
rename(c1=ccom1)
purge(ccom1/na)
define(ccom1/ct=pu,m=r)
rewind(c1)
copyei(c1,ccom1)
.*
begin(liblvl,,p=lgo1,lvl=1)
.*
unload(edit1,edit2,c1,lgo1,compile,ccom1)
revert. conden1
.*
.data,edit1
*edit     mctxt1
.data,edit2.
*edit     mcond1
*edit     mcond1a
*edit     mcond1b
*edit     mcond1c
*edit     mcond1d
*edit     mcond1e
~

level 2 micro plato full assembly

level 2 micro plato full assembly.

conden2.proc
.proc,conden2,ml=871,list=0/output.
.*
.*  level 2 micro plato full assembly.
.*
.*  exit - cl2 = relocatable binary.
.*         ccom2 = common text.
.*
modify(z,lo=e)/*oplfile nos,ipl/*read edit1
cstc(a,i,l=list,s=0,b=0,#ml=ml)
.*
modify(z,lo=e)/*oplfile nos,ipl/*read edit2
cstc(a,i,l=list,c=ccom2,s=0,b=lgo2,#ml=ml)
.*
rename(c2=ccom2)
purge(ccom2/na)
define(ccom2/ct=pu,m=r)
rewind(c2)
copyei(c2,ccom2)
.*
begin(liblvl,,p=lgo2,lvl=2)
.*
unload(edit1,edit2,c2,compile,ccom2,lgo2) 
revert. conden2
.*
.data,edit1
*edit     mctxt2
.data,edit2.
*edit     mcond2
*edit     mget2
*edit     mcond2a
*edit     mcond2b
*edit     mcond2c
*edit     mcond2d
*edit     mcond2e
~

level 3 micro plato full assembly

level 3 micro plato full assembly.

conden3.proc
.proc,conden3,ml=871,list=0/output.
.*
.*  level 3 micro plato full assembly.
.*
.*  exit - cl3 = relocatable binary.
.*         ccom3 = common text.
.*
modify(z,lo=e)/*oplfile nos,ipl/*read edit1
cstc(a,i,l=list,s=0,b=0,#ml=ml)
.*
modify(z,lo=e)/*oplfile nos,ipl/*read edit2
cstc(a,i,l=list,c=ccom3,s=0,b=lgo3,#ml=ml)
.*
unload(compile,edit1,edit2)
.*
rename(c3=ccom3)
purge(ccom3/na)
define(ccom3/ct=pu,m=r)
rewind(c3)
copyei(c3,ccom3)
.*
begin(liblvl,,p=lgo3,lvl=3)
.*
unload(c3,lgo3,ccom3)
revert. conden3
.*
.data,edit1
*edit     mctxt3
.data,edit2.
*edit     mcond3
*edit     mget3
*edit     mcond3a
*edit     mcond3b
*edit     mcond3c
*edit     mcond3d
*edit     mcond3e
~

level 4 micro plato full assembly

level 4 micro plato full assembly.

conden4.proc
.proc,conden4,ml=871,list=0/output.
.*
.*  level 4 micro plato full assembly.
.*
.*  exit - cl4 = relocatable binary.
.*         ccom4 = common text.
.*
modify(z,lo=e)/*oplfile nos,ipl/*read edit1
cstc(a,i,l=list,s=0,b=0,#ml=ml)
.*
modify(z,lo=e)/*oplfile nos,ipl/*read edit2
cstc(a,i,l=list,c=ccom4,s=nostext,s=psstext,b=lgo4,#ml=ml)
.*
unload(compile,edit1,edit2)
.*
rename(c4=ccom4)
purge(ccom4/na)
define(ccom4/ct=pu,m=r)
rewind(c4)
copyei(c4,ccom4)
.*
begin(liblvl,,p=lgo4,lvl=4)
.*
unload(c4,lgo4,ccom4)
revert. conden4
.*
.data,edit1
*edit     mctxt4
.data,edit2.
*edit     mcond4
*edit     mget4
*edit     mcond4a
*edit     mcond4b
*edit     mcond4c
*edit     mcond4d
*edit     mcond4e
~

level 5 micro plato full assembly

level 5 micro plato full assembly.

conden5.proc
.proc,conden5,ml=871,list=0/output.
.*
.*  level 5 micro plato full assembly.
.*
.*  exit - cl5 = relocatable binary.
.*         ccom5 = common text.
.*
modify(z,lo=e)/*oplfile nos,ipl/*read edit1
cstc(a,i,l=list,s=0,b=0,#ml=ml)
.*
modify(z,lo=e)/*oplfile nos,ipl/*read edit2
cstc(a,i,l=list,c=ccom5,s=nostext,s=psstext,b=lgo5,#ml=ml)
.*
unload(compile,edit1,edit2)
.*
rename(c5=ccom5)
purge(ccom5/na)
define(ccom5/ct=pu,m=r)
rewind(c5)
copyei(c5,ccom5)
.*
begin(liblvl,,p=lgo5,lvl=5)
.*
unload(c5,lgo5,ccom5)
revert. conden5
.*
.data,edit1
*edit     mctxt5
.data,edit2.
*edit     mcond5
*edit     mget5
*edit     mcond5a
*edit     mcond5b
*edit     mcond5c
*edit     mcond5d
*edit     mcond5e
~

level 6 micro plato full assembly

level 6 micro plato full assembly.

conden6.proc
.proc,conden6,ml=871,list=0/output.
.*
.*  level 6 micro plato full assembly.
.*
.*  exit - cl6 = relocatable binary.
.*         ccom6 = common text.
.*
begin(level6,,oplfile=$nos,ipl$)
.*
modify(z,lo=e)/*oplfile nos,ipl,l6pl/*read edit1
cstc(a,i,l=list,s=0,b=0,#ml=ml)
modify(z,lo=e)/*oplfile nos,ipl,l6pl/*read edit2
cstc(a,i,l=list,c=ccom6,s=nostext,s=psstext,b=lgo6,#ml=ml)
unload(compile,l6pl,edit1,edit2)
.*
rename(c6=ccom6)
purge(ccom6/na)
define(ccom6/ct=pu,m=r)
rewind(c6)
copyei(c6,ccom6)
.*
begin(liblvl,,p=lgo6,lvl=6)
.*
unload(c6,lgo6,ccom6)
revert. conden6
.*
.data,edit1
*edit     mctxt5
.data,edit2.
*edit     mcond5
*edit     mget5
*edit     mcond5a
*edit     mcond5b
*edit     mcond5c
*edit     mcond5d
*edit     mcond5e
~

central micro plato condensor assembly

central micro plato condensor assembly.

conden6.proc
.proc,condcmp,ml=739,list=0/full.
.*
.*  central micro plato condensor assembly.
.*
.*  exit - cmp = relocatable binary.
.*
*
*         apply mods to cybopl and save in ncybopl.
*
begin(sespack)
ses. tempcor c=cybmods b=cybopl un=plato
purge(ncybopl/na)
define(ncybopl)
copyei(cybopl,ncybopl,v)
unload(cybopl)
*
*         get ccommon.
* 
.*begin(binpack)
attach(ccommon/na)
begin(sespack)
*
*         assemble non-overlayed cmp compass idents.
*
note(dirs)/*edit cmpient/*edit cmpilxo
modify(z,lo=e)/*oplfile ipl,nos/*read dirs
unload(dirs)
cstc(i,l=list,e=errs,c=ccommon)
*
*         compile non-overlayed cmp cybil modules.
*
ses.gencomp seq=80 status b=ncybopl cybccmn ..
m=(cmpmcmp,cmpmacs,cmpmioc,cmpmtrn,cmpmctb,cmpmstt)
*
*         'kludge for 's'e's type procedure unloading
*         *ncybopl* and then not being able to acquire
*         it back because *dun* and *dpn* are not set.
*
attach(ncybopl)
*
ife($list$ .eq. $full$,prints)
begin,compmod,,abort,#list=on)
else(prints)
begin,compmod,,abort.
endif(prints)
*
*         assemble final non-overlayed compass ident.
*
modify(z,lo=e)/*oplfile ipl,nos/*edit cmpixfr
cstc(i,l=list,e=errs,c=ccommon)
*
*         assemble overlayed compass idents and
*         corresponding compass overlay table idents.
*
unload(ovbin,ovtbin)
*
modify(z,lo=e,l=errs)/*oplfile ipl,nos/*read compov
cstc(i,l=list,o=errs,c=ccommon,b=ovbin)
*
modify(z,lo=e,l=errs)/*oplfile ipl,nos/*read compovt
cstc(i,l=list,o=errs,b=ovtbin)
*
*         compile overlayed cybil modules and 
*         corresponding compass overlay table idents.
*
ses. gencomp seq=80 status b=ncybopl cybccmn ..
m=(cmpmall,cmpmanc,cmpmans,cmpmarr,cmpmatt, ..
cmpmblk,cmpmcha,cmpmchg,cmpmchr,cmpmclr,cmpmcpu,cmpmcpy, ..
cmpmcst,cmpmcve,cmpmdar,cmpmdef,cmpmdin,cmpmdot,cmpmena, ..
cmpmerx,cmpmevl,cmpmexw,cmpmfnd,cmpmgfl,cmpmglm,cmpmifl, ..
cmpmifm,cmpmihb,cmpmjdg,cmpmjky,cmpmjpn,cmpmjpo,cmpmkyw, ..
cmpmlba, cmpmlbl, ..
cmpmmkl, cmpmmtu)
*
*         'kludge for 's'e's type procedure unloading
*         *ncybopl* and then not being able to acquire
*         it back because *dun* and *dpn* are not set.
*
attach(ncybopl)
*
ife(efg.ne.0,gencerr)
revert(abort) gencomp aborted
endif(gencerr)
.*
ses. gencomp seq=80 status b=ncybopl cybccmn cf=comp1 ..
m=(cmpmnaa,cmpmnia,cmpmnoa,cmpmnom,cmpmnow, ..
cmpmoka,cmpmokn,cmpmokw,cmpmora,cmpmotd, ..
cmpmpai,cmpmpak,cmpmpck,cmpmpjb,cmpmpol,cmpmpra,cmpmptd, ..
cmpmran,cmpmrot, ..
cmpmset,cmpmshw,cmpmsha,cmpmshb, ..
cmpmsht,cmpmsiz,cmpmske,cmpmskp,cmpmspc, ..
cmpmsrc,cmpmsrf, ..
cmpmstp,cmpmtxn,cmpmtxt, ..
cmpmujb,cmpmumj,cmpmune,cmpmunt,cmpmuol, ..
cmpmwrl,cmpmwrt,cmpmwtc, ..
cmpmxio, ..
cmpmzer)
*
*         'kludge for 's'e's type procedure unloading
*         *ncybopl* and then not being able to acquire
*         it back because *dun* and *dpn* are not set.
*
attach(ncybopl)
*
skipei(compile)
copyei(comp1,compile)
pack(compile)
ife($list$ .eq. $full$,prints)
begin(compmod,,abort,binfile=ovbin,#list=on)
else(prints)
begin(compmod,,abort,binfile=ovbin)
endif(prints)
*
modify(z,lo=e,l=errs)/*oplfile ipl,nos/*read cybovt
cstc(i,l=list,e=errs,b=ovtbin)
*
*         merge overlay cards, the un-overlayed modules and
*         idents, and the overlay tables onto *lgo*.
*
rewind(ovbin,ovtbin)
while(.not.file(ovbin,eoi),copy)
note(lgo,nr)/overlay(1,3)
copybr(ovbin,lgo)
copybr(ovtbin,lgo)
endw(copy)
*
*         get rid of the extra overlay(1,3) card on *lgo*.
*
bksp(lgo)
*
*         assemble final cmp compass ident.
*
modify(z,lo=e)/*oplfile ipl,nos/*edit cmpiend
cstc(i,l=list,e=errs,c=ccommon)
*
unload(ccommon)
purge(ncybopl/na)
*
.*begin(binpack)
purge(cmp/na)
define(cmp)
.*
.*        on dev systems, give permission to other user
.*        numbers.
.*
ife((r1g.and.200000b)=200000b,perm)
devperm(cmp,pn=$pcez/sup$,r=dl)
endif(perm)
rewind(lgo)
copyei(lgo,cmp,v)
*
*
revert. condcmp
.*
.*        overlayed compass idents.
.*
.data,compov.
*edit cmpierr
*edit cmpipio
.*
.*
.*        overlayed compass idents overlay tables.
.*
.data,compovt.
*edit cmpoerr
*edit cmpopio
.*
.*
.*        cybil module overlay table idents.
.*
.data,cybovt.
*edit cmpoall
*edit cmpoanc
*edit cmpoans
*edit cmpoarr
*edit cmpoatt
*edit cmpoblk
*edit cmpocha
*edit cmpochg
*edit cmpochr
*edit cmpoclr
*edit cmpocpu
*edit cmpocpy
*edit cmpocst
*edit cmpocve
*edit cmpodar
*edit cmpodef
*edit cmpodin
*edit cmpodot
*edit cmpoena
*edit cmpoerx
*edit cmpoevl
*edit cmpoexw
*edit cmpofnd
*edit cmpogfl
*edit cmpoglm
*edit cmpoifl
*edit cmpoifm
*edit cmpoihb
*edit cmpojdg
*edit cmpojky
*edit cmpojpn
*edit cmpojpo
*edit cmpokyw
*edit cmpolba
*edit cmpolbl
*edit cmpomkl
*edit cmpomtu
*edit cmponaa
*edit cmponia
*edit cmponoa
*edit cmponom
*edit cmponow
*edit cmpooka
*edit cmpookn
*edit cmpookw
*edit cmpoora
*edit cmpootd
*edit cmpopai
*edit cmpopak
*edit cmpopck
*edit cmpopjb
*edit cmpopol
*edit cmpopra
*edit cmpoptd
*edit cmporan
*edit cmporot
*edit cmposet
*edit cmposhw
*edit cmposha
*edit cmposhb
*edit cmposht
*edit cmposiz
*edit cmposke
*edit cmposkp
*edit cmpospc
*edit cmposrc
*edit cmposrf
*edit cmpostp
*edit cmpotxn
*edit cmpotxt
*edit cmpoujb
*edit cmpoumj
*edit cmpoune
*edit cmpount
*edit cmpouol
*edit cmpowrl
*edit cmpowrt
*edit cmpowtc
*edit cmpoxio
*edit cmpozer
.*
~

condensor full assembly

condensor full assembly.

condens.proc
.proc,condens,ml=871,list=0/output.
.*
.*  condensor full assembly.
.*
.*  exit - cbin = absolute binary.
.*
begin(conden,,#ml=ml,#list=list)
*begin(conden1,,#ml=ml,#list=list)
begin(conden2,,#ml=ml,#list=list)
begin(conden3,,#ml=ml,#list=list)
begin(conden4,,#ml=ml,#list=list)
begin(conden5,,#ml=ml,#list=list)
.*
.*        only assemble the experimental version on the
.*        corporate dev system.
.*
*ife((r1g.and.200000b)=200000b,exp)   if corp dev system
*begin(conden6,,#ml=ml,#list=list)
*endif(exp)
*
begin(condcmp,,#list=list)
.*
begin(condldr,,lo=sbex)
.*
revert. condens
~
.proc,liblvl,p=,lvl=.
.*
.*  move common relocatable code from the central system
.*  condensor to a micro plato condensor.
.*
.*  p   = micro plato condensor relocatable binary.
.*  lvl = micro plato level.
.*
.*  if p is omitted, cl1, cl2, cl3, cl4, cl5 or cl6 assumed.
.*
attach(conden)
ife($p$.ne.$$,libed)
purge(cl_lvl/na)
define(cl_lvl/ct=pu,m=r)
libedit(#p=p,b=conden,n=cl_lvl,i=edit_lvl,lo=cem)
else(libed)
attach(cl_lvl/m=w)
libedit(#p=cl_lvl,b=conden,c,i=edit_lvl,lo=cem)
endif(libed)
unload(conden,edit1,edit2,edit3,edit4,edit5,edit6,cl_lvl)
revert. liblvl
.data,edit1.
*norep conden
*a rel/mcond1,condc1,getlin,content,embed
*a rel/mcond1,calcs,compile,lex,deflex,defsub
*a rel/mcond1,mcond
.data,edit2.
*norep conden
*a rel/mget2,condc1,lex,mcond
.data,edit3.
*norep conden
*a rel/mget3,condc1,lex,mcond
.data,edit4.
*norep conden
*a rel/mget4,condc1,lex,mcond
.data,edit5.
*norep conden
*a rel/mget5,condc1,lex,mcond
.data,edit6.
*norep conden
*a rel/mget6,condc1,lex,mcond
~

add other condensor idents

add other condensor idents.

cmpbin.proc
.proc,cmpbin,p=old.
.*
.*  add other condensor idents to the
.*  cmp relocatable binary.
.*
.*  p = cmp relocatable binary file.
.*
attach(cl4/m=r)
attach(conden/m=r)
unload(i)
note(i,nr).*norep conden
note(i,nr).*file conden
note(i,nr).*insert rel/cmpipio,condc1,lex,mcond
note(i,nr).*norep cl4
note(i,nr).*file cl4
note(i,nr).*insert rel/cmpipio,mcond4,mget4
pack(i)
libedit(i=i,#p=p,b=0,lo=cem,c)
unload(cl4,conden,i)
revert. cmpbin
~

load and copy to ubin

load and copy to ubin.

lc.proc
.proc,lc.
.*        load and copy to ubin
load(lgo)
nogo(lgob)
rewind(lgob)
copybf(lgob,tbin)
bksp(tbin)
unload(lgo,lgob,compile)
revert. lc
~

load with presets and copy to ubin

load with presets and copy to ubin.

lcp.proc
.proc,lcp.
.*        load with presets and copy to ubin
ldset(err=all)
ldset(preset=zero)
load(lgo)
nogo(lgob)
rewind(lgob)
copybf(lgob,tbin)
bksp(tbin)
unload(lgo,lgob,compile)
revert. lcp
~

copy abs programs to ubin

copy abs programs to ubin.

cabs.proc
.proc,cabs.
.*        copy abs programs to ubin
rewind(lgo)
copybf(lgo,tbin)
bksp(tbin)
unload(lgo,compile)
revert. cabs
~

setup for compilation

setup for compilation.

setupg.proc
.proc,setupg,noslvl=871.
attach,opl=plaopl.
attach,nos=opl_noslvl.
attach,ipl.
attach,cstc.
attach,cybopl.
revert. setupg
~

Compile PLATO

Compile PLATO.

plato.proc
.proc,plato,ml=871,list=0/output.
*---
*         master
*
unload(lgo)
modify(z,lo=e)/*oplfile nos,ipl/*read edit1
cstc(a,i,l=list,s=0,#ml=ml)
modify(z,lo=e)/*oplfile nos,ipl/*read edit2
compass(a,i,l=list,s=0,#ml=ml)
modify(z,lo=e)/*oplfile nos,ipl/*read edit3
cstc(a,i,l=list,c=pcommon,s=nostext,#ml=ml)
modify(z,lo=e)/*oplfile nos,ipl/*read edit4
cstc(a,i,l=list,c=pcommon,s=0,#ml=ml)
*---
*         tutor
*
modify(z,lo=e)/*oplfile nos,ipl/*read edit5
cstc(a,i,l=list,c=pcommon,s=0,#ml=ml)
*---
*         overlays
*
modify(z,lo=e)/*oplfile nos,ipl/*read edit6
cstc(a,i,l=list,c=pcommon,s=0,#ml=ml)
*---
*         genfig
*
purge(genfig/na)
define(genfig/ct=pu,m=r)
modify(z,lo=e)/*oplfile nos,ipl/*edit genfigx
compass,a,i,l=list,b=genfig.
unload,genfig.
*
rewind(lgo)
purge(plato/na)
define(plato/ct=pu,m=r)
copybf(lgo,plato)
unload(plato)
rewind(pcommon)
rename(com=pcommon)
purge(pcommon/na)
define(pcommon/ct=pu,m=r)
copy(com,pcommon)
unload(pcommon)
*---
attach(genfig)
attach(plato)
unload(lgo,compile)
genfig,plato.
compass,a,i,s=0,l=0.
unload,genfig.
*---
begin(loader,,rel=$plato,lgo$,abs=pbin,rfl=0,map=pmap)
rfl,60000.
note(dir)+*i abs/plato,ovl/*
unload,lgo.
gtr(pbin,lgo)ovl/plat00$
libedit(p=pbin,c,i=dir,lo=e)
begin(ulib,,pbin,ulibp,plato)
catalog(pbin,r,n,u)
unload(pbin,plato,pmap)
*---
*         plato system modifier modules
*
begin(psm,,#list=list)
revert. plato
*---
.data,edit1.
*edit     lowcor
.data,edit2.
*edit     instalp
.data,edit3.
*edit     datime
*edit     msubs
*edit     psys
.data,edit4.
*edit     main
*edit     multix
*edit     polls
*edit     eformat
*edit     keysin
*edit     simplt
*edit     loadov
.data,edit5.
*edit     tutorx
*edit     getles
*edit     lesson
*edit     getcom
*edit     getunit
*edit     ecsmgr
*edit     allot
*edit     datax
*edit     account
*edit     tutsub
*edit     logicx
*edit     exec1
*edit     exec2
*edit     exec3
*edit     lcomnd
*edit     autload
*edit     ioput
*edit     filex
*edit     diskfio
*edit     packchk
*edit     subfile
*edit     binaryx
*edit     conten
*edit     answer
*edit     writex
*edit     showx
*edit     tutout
*edit     linwrt
*edit     linchr
*edit     compile
*edit     lex
*edit     getvar
*edit     tfunct
*edit     deflex
.data,edit6.
*edit     sysless
*edit     comput
*edit     exec4
*edit     exec5
*edit     exec6
*edit     exec7
*edit     tovlay
*edit     lex1
*edit     grafs
*edit     grafs2
*edit     tutor1
*edit     ans1
*edit     ppus
*edit     answ1
*edit     toucho
*edit     draws
*edit     sorts
*edit     exec8
*edit     mtutx
*edit     pptx
*edit     namex
*edit     exec9
*edit     logsitx
*edit     recordx
*edit     subfilv
*edit     record2
*edit     reservx
*edit     mainov
*edit     lodist
*edit     exec10
~

Compile formatter

Compile formatter.

framat.proc
.proc,framat,ml=871,list=0/output.
*
*         formatter
*
unload(lgo)
modify(z,lo=e)/*oplfile nos,ipl/*read edit1
cstc(a,i,l=list,s=0,#ml=ml)
modify(z,lo=e)/*oplfile nos,ipl/*read edit2
cstc(a,i,l=list,c=fcommon,s=nostext,#ml=ml)
modify(z,lo=e)/*oplfile nos,ipl/*read edit3
cstc(a,i,l=list,c=fcommon,s=nostext,#ml=ml)
modify(z,lo=e)/*oplfile nos,ipl/*read edit4
cstc(a,i,l=list,c=fcommon,s=0,#ml=ml)
*---
*         overlays
*
modify(z,lo=e)/*oplfile nos,ipl/*read edit5
cstc(a,i,l=list,c=fcommon,s=0,#ml=ml)
purge(genfig/na)
define(genfig/ct=pu,m=r)
modify(z,lo=e)/*oplfile nos,ipl/*edit genfigx
compass,a,i,l=0,b=genfig.
unload,genfig.
*---
rewind(lgo)
purge(framat/na)
define(framat/ct=pu,m=r)
copybf(lgo,framat)
unload(framat)
rewind(fcommon)
rename(com=fcommon)
purge(fcommon/na)
define(fcommon/ct=pu,m=r)
copy(com,fcommon)
unload(fcommon)
*---
attach(genfig)
attach(framat)
unload(lgo,compile)
genfig,framat.
compass,a,i,s=0,l=0.
unload,genfig.
*---
begin(loader,,rel=$framat,lgo$,abs=fbin,rfl=0,map=fmap,mo=sbex)
rfl,60000.
note(dir)+*i abs/framat,ovl/*
unload,lgo.
gtr(fbin,lgo)ovl/fram00$
libedit(p=fbin,c,i=dir,lo=e)
begin(ulib,,fbin,ulibf,framat)
catalog(fbin,r,n,u)
revert. framat
*---
.data,edit1.
*edit     framat
.data,edit2.
*edit     setup
*edit     instalf
.data,edit3.
*edit     fsys
.data,edit4.
*edit     format
*edit     outform
*edit     loadov
.data,edit5.
*edit     fovlay1
*edit     fovlay2
*edit     fovlay3
*edit     fovlay4
*edit     fovlay5
~
.proc,plf,list=0/output,ml=871.
*
*         plato link facility.
*
unload(lgo)
*
*         plfcom.
*
modify(z,lo=e)/*oplfile nos,ipl/*read edit1
cstc(a,i,s=nostext,l=list,#ml=ml)
*
*         main  ident.
*
modify(z,lo=e)/*oplfile nos,ipl/*read edit2
cstc(a,d,i,c=plfcom,s=nostext,l=list,#ml=ml)
*
*         other main overlay idents.
*
modify(z,lo=e)/*oplfile nos,ipl/*read edit3
cstc(a,d,i,c=plfcom,s=nostext,l=list,#ml=ml)
*
*         overlays.
*
modify(z,lo=e)/*oplfile nos,ipl/*read edit4
cstc(a,d,i,c=plfcom,s=nostext,l=list,#ml=ml)
*
rewind(plfcom)
rename(plfc=plfcom)
purge(plfcom/na)
define(plfcom/ct=pu,m=r)
copyei(plfc,plfcom)
*
purge(plf/na)
define(plf/ct=pu,m=r)
rewind(lgo)
copyei(lgo,plf)
catalog(plf,r,u,n)
*
begin(loader,,rel=plf,abs=plfbin,rfl=30000,mo=sbex,map=plfmap)
rewind(plfmap)
copyei(plfmap)
*
rfl(60000)
begin(ulib,,plfbin,ulibplf,plf)
catalog(plfbin,r,u,n)
*
revert. plf
*
.data,edit1.
*edit plfcom
.data,edit2.
*edit     plfmain
*edit     plfsubs
.data,edit3.
*edit     plfbdd
*edit     plfbds
*edit     plfncr
*edit     plfoeb
.data,edit4.
*edit plfbst
*edit plfddl
*edit plfdei
*edit plfdel
*edit plfden
*edit plfdes
*edit plfdgn
*edit plfdll
*edit plfdpr
*edit plfebd
*edit plfetl
*edit plfenp
*edit plfesr
*edit plfhlo
*edit plfint
*edit plfin1
*edit plfisd
*edit plfiso
*edit plflds
*edit plflsi
*edit plfnam
*edit plfncw
*edit plfoei
*edit plfoen
*edit plfoes
*edit plfprn
*edit plfsdp
*edit plfsel
*edit plfsli
*edit plfsts
*edit plfwfp
~

Compile mastor

Compile mastor.

mastor.proc
.proc,mastor,ml=871,list=0/full.
*---
unload(mast,mastn,ppus)
modify(z,lo=e)/*oplfile nos,ipl/*read edit1
unload(edit1)
compass(a,i,#ml=ml,l=list,s=nostext,b=mast)
modify(z,lo=e)/*oplfile nos,ipl/*read edit2
unload(edit2)
compass(a,i,l=list,#ml=ml,s=nostext,b=mastn)
modify(z,lo=e)/*oplfile nos,ipl/*read edit3
unload(edit3)
compass(a,i,#ml=ml_d,l=list,s=nostext,b=ppus)
*---
rfl,60000.
begin(ulib,,mast,ulibm,mastor)
begin(ulib,,mastn,ulibmn,mastorn)
purge(mbin/na)
define(mbin/ct=pu,m=r)
rewind,mast,mastn,ppus.
copybf(mast,mbin)
bksp(mbin)
copybf(mastn,mbin)
bksp(mbin)
copybf(ppus,mbin)
catalog(mbin,r,n,u)
.*
unload(mbin,mast,mastn,ppus)
.*
revert. mastor
*---
.data,edit1.
*edit     mastor
*edit     mastor1
*edit     mastor2
*edit     mastor3
*edit     mastr3b
*edit     mastor4
.data,edit2.
*edit     mastorn
.data,edit3.
*edit     pms
*edit     proute
*edit     mrq,mrq1
*edit     mas
*edit     mxx
*edit     epe
~
.proc,ppus,ml=871d,list=0/output.
*---
unload(lgo)
rfl(60000)
modify(z,lo=e)/*oplfile nos,ipl/*read edit1
compass(a,i,l=list,s=nostext,#ml=ml)
.*
.*        only dev system gets some utilities
.*
.*ife((r1g.and.200000b)=200000b,dev)
modify(z,lo=e)/*oplfile nos,ipl/*read edit2
compass(a,i,l=list,s=nostext,#ml=ml)
.*endif(dev)
.*
modify(z,lo=e)/*oplfile nos,ipl/*read edit3
compass(a,i,l=list,s=nostext,#ml=ml)
*---
rewind(lgo)
purge(ppubin/na)
define(ppubin/ct=pu,m=r)
copybf(lgo,ppubin)
catalog(ppubin,r,n)
revert. ppus
*---
.data,edit1.
*edit     pio
*edit     net
*edit     pna
.data,edit2.
*edit     spy
.data,edit3.
*edit     dsn,dsn1
~

Compile utility

Compile utility.

utility.proc
.proc,utility,ml=871d,list=0/output.
*---
unload(lgo)
*** console/plt ***
modify(z,lo=e)/*oplfile nos,ipl/*edit dd60
compass(a,i,l=list,s=nostext,#ml=ml)
begin(cabs)
*** platlib ***
modify(z,lo=e)/*oplfile nos,ipl/*edit platlib
compass(a,i,l=list,s=nostext,#ml=ml)
rewind(lgo)
attach(platlib/m=w,na)
if(.not.file(platlib,as))define(platlib/ct=pu,m=r)
libgen(p=platlib)
unload(lgo,compile)
unload(platlib)
attach(platlib)
*** dprint ***
modify(z,lo=e)/*oplfile nos,ipl/*edit dprt
ftn(a,i,opt=2,l=list,pl=70000)
library(platlib)
begin(lcp)
*** nprint ***
modify(z,lo=e)/*oplfile nos,ipl/*edit nprt
ftn(a,i,opt=2,l=list,pl=70000)
library(platlib)
begin(lcp)
*** modprt ***
modify(z,lo=e)/*oplfile nos,ipl/*edit modprt
ftn(a,i,opt=2,l=list,pl=70000)
library(platlib)
begin(lcp)
*** plmprt ***
modify(z,lo=e)/*oplfile nos,ipl/*edit plmprt
ftn(a,i,opt=2,l=list,pl=70000)
library(platlib)
begin(lcp)
*** docprt ***
modify(z,lo=e)/*oplfile nos,ipl/*edit docprt
ftn(a,i,opt=2,l=list,pl=70000)
library(platlib)
begin(lcp)
*** netprt ***
modify(z,lo=e)/*oplfile nos,ipl/*edit netprt
ftn(a,i,opt=2,l=list,pl=70000)
library(platlib)
rfl(100000)
.*file(incom,rt=s)
.*ldset(files=incom/tape1)
ldset(lib=srt5lib/bamlib)
ldset(err=all)
ldset(preset=zero)
load(lgo)
nogo(lgob)
rewind(lgob)
copybf(lgob,tbin)
bksp(tbin)
unload(lgo,lgob,compile)
*** tprint ***
modify(z,lo=e)/*oplfile nos,ipl/*edit tprta,tprtb,tprtc
compass(a,i,l=list,s=nostext,#ml=ml)
library(platlib)
begin(lcp)
*** pprint ***
modify(z,lo=e)/*oplfile nos,ipl/*edit pprint
compass(a,i,l=list,s=nostext,#ml=ml)
begin(cabs)
*** pdprt ***
modify(z,lo=e)/*oplfile nos,ipl/*edit pdprt
compass(a,i,l=list,s=nostext,#ml=ml)
library(platlib)
begin(lcp)
*** aprt ***
modify(z,lo=e)/*oplfile nos,ipl/*edit aprt
ftn(a,i,opt=2,l=list,pl=100000)
library(platlib)
begin(lcp)
*** efrdmp ***
modify(z,lo=e)/*oplfile nos,ipl/*edit efrdmp
compass(a,i,l=list,s=nostext,#ml=ml)
begin(cabs)
*** abs/esm,pp/esm ***
modify(z,lo=e)/*oplfile nos,ipl/*edit esmcp,esmpp
compass(a,i,l=list,s=nostext,#ml=ml)
begin(cabs)
*** pf / pcode / ppack ***
modify(z,lo=e)/*oplfile nos,ipl/*edit pf,pcode,ppack
.*
.*  following is *cstc* instead of *compass* to get around
.*  error which creates *errs* when there are no errors.
.*
cstc(a,i,l=list,s=nostext,c=0,#ml=ml)
begin(cabs)
*** submitm / masjob ***
modify(z,lo=e)/*oplfile nos,ipl/*edit submitm,masjob
compass(a,i,l=list,s=nostext,#ml=ml)
begin(cabs)
*** tform ***
modify(z,lo=e)/*oplfile nos,ipl/*edit tform
compass(a,i,l=list,s=nostext,#ml=ml)
begin(cabs)
*** emdmp/emprt/memprt ***
modify(z,lo=e)/*oplfile nos,ipl/*edit memprt,emdmp,cmdmp
compass(a,i,l=list,s=nostext,#ml=ml)
begin(cabs)
*** wait ***
modify(z,lo=e)/*oplfile nos,ipl/*edit waitx
compass(a,i,l=list,s=nostext,#ml=ml)
begin(cabs)
*** mfutil ***
modify(z,lo=e)/*oplfile nos,ipl/*edit mfutil
.*
.*  following is *cstc* instead of *compass* to get around
.*  error which creates *errs* when there are no errors.
.*
cstc(a,i,l=list,s=nostext,c=0,#ml=ml)
begin(cabs)
*** ecstst / ddpt ***
modify(z,lo=e)/*oplfile nos,ipl/*edit ecstst,ddpt
compass(a,i,l=list,s=nostext,#ml=ml)
begin(cabs)
*** backlib ***
modify(z,lo=e)/*oplfile nos,ipl/*edit backlib
compass(a,i,l=list,s=nostext,#ml=ml)
library(platlib)
begin(lc)
*** backlst ***
modify(z,lo=e)/*oplfile nos,ipl/*edit backlst
compass(a,i,l=list,s=nostext,#ml=ml)
library(platlib)
begin(lc)
*** copypf ***
modify(z,lo=e)/*oplfile nos,ipl/*edit copypf
compass(a,i,l=list,s=nostext,#ml=ml)
library(platlib)
begin(lc)
*** copymf ***
modify(z,lo=e)/*oplfile nos,ipl/*edit copymf
cstc(a,i,l=list,s=nostext,#ml=ml)
begin(cabs)
*** backone ***
modify(z,lo=e)/*oplfile nos,ipl/*edit backone
compass(a,i,l=list,s=nostext,#ml=ml)
library(platlib)
begin(lc)
*** backtwo ***
modify(z,lo=e)/*oplfile nos,ipl/*edit backtwo
compass(a,i,l=list,s=nostext,#ml=ml)
library(platlib)
begin(lc)
*** backcpy ***
modify(z,lo=e)/*oplfile nos,ipl/*edit backcpy
compass(a,i,l=list,s=nostext,#ml=ml)
library(platlib)
begin(lc)
*** backmod ***
modify(z,lo=e)/*oplfile nos,ipl/*edit backmod
compass(a,i,l=list,s=nostext,#ml=ml)
library(platlib)
begin(lc)
*** reqpack/spf ***
modify(z,lo=e)/*oplfile nos,ipl/*edit reqpack,spf
compass(a,i,l=list,s=nostext,#ml=ml)
begin(cabs)
*** rafpbc ***
modify(z,lo=e)/*oplfile nos,ipl/*edit rafpbc
ftn(a,i,opt=2,l=list,pl=777777)
begin(lc)
*** rafpdd ***
modify(z,lo=e)/*oplfile nos,ipl/*edit rafpdd
ftn(a,i,l=list,pl=777777)
begin(lc)
*** asm1 ***
modify(z,lo=e)/*oplfile nos,ipl/*edit asm1
ftn(a,i,opt=2,l=list,pl=777777)
begin(lc)
*** uurbc ***
modify(z,lo=e)/*oplfile nos,ipl/*edit uurbc
ftn(a,i,opt=2,l=list,pl=777777)
begin(lc)
*** lurbc ***
modify(z,lo=e)/*oplfile nos,ipl/*edit lurbc
ftn(a,i,opt=2,l=list,pl=777777)
begin(lc)
*** portx ***
modify(z,lo=e)/*oplfile nos,ipl/*edit portx
ftn(a,i,opt=2,l=list,pl=777777)
begin(lc)
*** datescn ***
modify(z,lo=e)/*oplfile nos,ipl/*edit datescn
ftn(a,i,opt=2,l=list,pl=777777)
begin(lc)
*** royalty ***
modify(z,lo=e)/*oplfile nos,ipl/*edit royalty
ftn(a,i,opt=2,l=list,pl=777777)
begin(lc)
.**** porafm ***
modify(z,lo=e)/*oplfile nos,ipl/*edit porafm
pascal(i,l=list,pl=0/u+)
begin(lc)
*** npudmp/npudpp/npd ***
modify(z,lo=e)/*oplfile nos,ipl/*edit npudmp,npudpp,npd
compass(a,i,l=list,s=nostext,#ml=ml)
begin(cabs)
*** abs/rmfconv ***
modify(z,lo=e)/*oplfile nos,ipl/*edit rmfconv
compass(a,i,l=list,s=nostext,#ml=ml)
begin(cabs)
*---
.*
.*        the following utilities are only used  by
.*        dev systems running corporate nos.
.*
ife((r1g.and.200000b).eq.200000b,devutil)
*---
*** refprt / comprt ***
modify(z,lo=e,c=prta)/*oplfile nos/*edit refprt
modify(z,lo=e,c=prtb)/*oplfile nos/*edit comprt
modify(z,lo=e,c=prtx)/*oplfile nos/*edit gprtx
library(platlib)
ftn(i=prtx,b=misc,l=list,pl=7777777)
*       
ftn(i=prta,l=list,pl=777777)
load(lgo,misc)
nogo(lgob)
rewind(lgob)
copybf(lgob,tbin)
bksp(tbin)
unload(lgo,lgob,prta)
*       
ftn(i=prtb,l=list,pl=777777)
load(lgo,misc)
nogo(lgob)
rewind(lgob)
copybf(lgob,tbin)
bksp(tbin)
unload(lgo,lgob,prtb)
unload(prtx,misc)
*---
*** pmod ***
modify(z,lo=e)/*oplfile nos,ipl/*edit pmod
compass(a,i,l=list,s=nostext,#ml=ml)
begin(cabs)
*---
*** scm ***
modify(z,lo=e)/*oplfile nos,ipl/*edit scm
ftn(a,i,opt=2,l=list)
begin(lcp)
*** modfrm ***
modify(z,lo=e)/*oplfile nos,ipl/*edit modfrm
compass(a,i,l=list,s=systext,#ml=ml)
library.
ldset(err=all)
ldset(lib=srt5lib/bamlib)
ldset(preset=zero)
load(lgo)
nogo(lgob)
rewind(lgob)
copybf(lgob,tbin)
bksp(tbin)
unload(lgo,lgob,compile)
*** pptldr ***
modify(z,lo=e)/*oplfile nos,ipl/*edit pptldr
compass(a,i,l=list,s=nostext,#ml=ml)
begin(cabs)
*** rafpp ***
modify(z,lo=e)/*oplfile nos,ipl/*edit rafpp
ftn(a,i,opt=2,l=list,pl=777777)
begin(lc)
*** prpt ***
modify(z,lo=e)/*oplfile nos,ipl/*edit prpt
ftn(a,i,opt=2,l=list,pl=777777)
begin(lc)
*** bcuse ***
modify(z,lo=e)/*oplfile nos,ipl/*edit bcuse
ftn(a,i,opt=2,l=list,pl=777777)
begin(lc)
*** hqdata ***
modify(z,lo=e)/*oplfile nos,ipl/*edit hqdata
ftn(a,i,opt=2,l=list,pl=777777)
begin(lc)
*** acpage ***
modify(z,lo=e)/*oplfile nos,ipl/*edit acpage
ftn(a,i,opt=2,l=list,pl=777777)
begin(lc)
*** rafrp ***
modify(z,lo=e)/*oplfile nos,ipl/*edit rafrp
ftn(a,i,opt=2,l=list,pl=777777)
begin(lc)
*---
*** itcopy ***
modify(z,lo=e)/*oplfile nos,ipl/*edit itcopy
compass(a,i,l=list,s=nostext,#ml=ml)
begin(cabs)
.*
endif(devutil)
*
*         save binaries on *ubin*
*
rewind(tbin)
purge(ubin/na)
define(ubin/ct=pu,m=r)
copy(tbin,ubin)
catalog(ubin,r,n)
unload(lgo,compile)
unload(ubin)
.*
revert. utility
~

Compile pni

Compile pni.

pni.proc
.proc,pni,ml=871,list=0/full.
.*
.*        build new pni
.*
unload(lgo,newbin)
.*
.*
begin,sespack.
.*
begin(cybipl)
.*
.*        compile pni1 (cybil)
.*
ses. gencomp seq=80 status b=cybipl un=plato cybccmn ..
def=nos871$  m=pni1
.*
ife($list$ .eq. $full$,prints)
begin(compmod,,abort,#list=on)
else(prints)
begin(compmod,,abort)
endif(prints)
.*
.*        save cybil relocatable binaries in file *pni1*
.*
rewind(lgo,pni1)
copyei(lgo,pni1)
rewind(lgo,pni1)
.*
.*        assemble pni2 (cpu compass) with standard nettext
.*
modify(z,lo=e,l=errs)/*oplfile nos,ipl/*edit pni2,plazlsr
compass(a,i,s=0,s=nostext,s=nettext,#ml=ml,o=errs,l=list,b=pni2)
.*
.*        load normal and debug versions from standard libs.
.*
common,system.
gtr,system,netio,d.ulib/netio
gtr,system,netiod,d.ulib/netiod
.*
begin,pnild,,lib=netio,abs=pnibin,map=pnimap.
begin,pnild,,lib=netiod,abs=pnidbin,map=pnidmap.
.*
.*        release cybil opl
.*
begin,cybfree.
.*
revert. pni
~

Compile cybipl

Compile cybipl.

cybipl.proc
.proc,cybipl.
.*
.*        attach file cyblock in write mode to lock other
.*        jobs away from file cybipl.
.*
.*        entry  sespack should have been called.
.*               getcmod must have been called.
.*               cybopl attached.
.*
.*
.*        generate *ignore directives.
.*
.*
.*        apply mods
.*
*ses. tempcor c=cybmods b=cybopl un=plato
*ses. tempcor c=cybmods b=cybopl un=cybis
.*
.*        now lock cybipl
.*
attach(cyblock/m=w,na)
ife,(file(cyblock,pm).ne.true),cyblock.
define(cyblock/na)
endif(cyblock)
.*
.*        create new cybipl file
.*
purge(cybipl/na)
define(cybipl)
rewind(cybopl)
copyei,cybopl,cybipl.
unload,cybopl.
.*
revert. cybipl
~

release cyblock and cybipl

release cyblock and cybipl.

cybfree.proc
.proc,cybfree.
.*
.*        release cyblock and cybipl.
.*
ife,(file(cyblock,pm).eq.true),cyblock.
begin(sespack)
purge(cybipl/na)
unload(cyblock)
endif(cyblock)
.*
revert. cybfree
~

ses procedures

ses procedures.

sespack.proc
.proc,sespack.
.*
.*        set appropriate pack/family for ses procedures.
.*
ife((r1g.and.100000b)=0,dev)  if on dev system
ife((r1g.and.200000b)=200000b,pack)  dev system
.*
*packnam(pcez)
.*
else(pack)       remote system
.*
*reqpack(r1g,r=dl)
.*
endif(pack)
endif(dev)
revert. sespack
~

compile a module and process errors

compile a module and process errors.

compmod.proc
.proc,compmod,abort=noabort/abort,module=$$,ol=/o,list=on,
lo=f,base=cybopl,binfile=lgo.
.*
.*        compile a module and process errors.
.*
.*        entry  module = module to compile, null if already
.*                        on compile file.
.*               abort = $abort$ if you want to abort if 
.*                       errors occur.
.*               ol    = present, generates object listing.
.*                       absent, no object listing done.
.*               list  = on if listing required, off if not.
.*               lo    = ses.cybil list options. default =
.*                       full listing.
.*               binfile = file to write binary to.  
.*                         default = lgo.
.*
ife($module$.ne.$$,compile)
ses. gencomp seq=80 status b=base un=plato cybccmn ..
m=(module)
endif(compile)
.*
.*        call cybil compiler if there were no errors.
.*
ife(efg.eq.0,gcompok)
unload(seslist)
*ses. cybil #lo=lo_ol l=seslist b=binfile
ses. cybil #lo=o l=seslist b=binfile
endif(gcompok)
.*
.*        if no errors, copy print to the full listing file.
.*
ife(efg.eq.0,seserrs)
ife($list$.eq.$on$,getlist)
rewind(seslist)
.*copy(seslist,full)
ses. print f=seslist hn=0
endif(getlist)
unload,seslist,compile.
.*
.*        if errors occur, copy the print to full listing
.*        and then abort if requested.
.*
else(seserrs)
rewind(seslist,errlist)
copy(seslist,full)
copy(errlist,errs)
unload(seslist,errlist,compile)
.*
.*        terminate job if requested.
.*
ife($abort$.eq.$abort$,abt)
revert,abort.   compilation errors
.*
else(abt)
set(efg=0)
endif(abt)
.*
endif(seserrs)
.*
revert. compmod
~

PNI Load

loads the cybil portion of pni and the compass portion of pni.

pnild.proc
.proc,pnild,lib=netio,rel1=pni1,rel2=pni2,abs=kermbin,map=pnimap.
.*
.*        loads the cybil portion of pni from *rel1*
.*        and the compass portion of pni from *rel2*
.*        with network library specified by *lib* and
.*        store absolute binary in permanent file *abs*
.*        and store load map in permanent file *map*
.*
.*        note that this procedure wipes out file *lgo*
.*
rewind(rel1,rel2,lgo)
copyei(rel1,lgo)  cybil module(s)
copyei(rel2,lgo)  compass subroutines
rewind(lgo)
.*
begin,sespack.
begin,seslink,,libs=lib.
.*
.*begin,binpack.
purge(map/na)
define(map/ct=pu)
rewind(newmap)
copy,newmap,map.
unload(newmap,map)
.*
purge(abs/na)
define(abs/ct=pu)
rewind(newbin)
copy,newbin,abs.
unload(newbin,abs)
.*
revert. pnild
~

link relocatable binaries.

seslink.proc
.proc,seslink,libs=$$.
.*
.*        link relocatable binaries.
.*
.*        entry  libs = libraries for external references
.*               lgo = file with relocatable binaries
.*
.*        exit   binaries copied to newbin
.*               map copied to newmap and full output file
.*               lgo unloaded
.*
unload(map,lgob)
map(on)
ses. link170 p=(libs) cybclib l=map lo=full
.*
.*        if errors, copy errors to file *errs*, copy full
.*        map to file *full*, and then abort.
.*
ife(efg.ne.0,loaderr)
rewind,map.
copy,map,output.
xedit(map,l=errs)$l.///.*$t$l.***.*$e
unload(map)
revert,abort.  loader errors
endif(loaderr)
.*
.*        copy binaries to file *newbin*
.*
rewind,lgob.
copy,lgob,newbin.
unload(lgo,lgob)
.*
.*        copy map to newmap and full output file
.*
rewind,map.
copy,map,newmap.
rewind,map.
copy,map,output.
unload,map.
.*
revert. seslink