externalstring (255)fnspec  FINFO(string (255)directory,integer  number)
include  "inc:util.imp"
include  "inc:fs.imp"
endoffile 
option  "-LOW"
{Utility procedures}
system routine spec  READ LINE(string (*)name  s)
system routine spec  PRINT LINE(string (255) s)
@16_3F00-24 integer fn  MULDIV(integer  a,b,c)
system string (255)fn spec  ITOS(integer  v,p)
!%system%string(255)%fn%spec RTOS(%real R, %integer bp, ap)
systeminteger fnspec  STOI(string (255) s)
{@16_118C}externalroutinespec  PHEX1(integer  x)
{@16_1190}externalroutinespec  PHEX2(integer  x)
{@16_1194}externalroutinespec  PHEX4(integer  x)
{@16_1198}externalroutinespec  PHEX(integer  x)
{@16_119C}externalinteger fnspec  RHEX; !as %routine
external routine spec  TO LOWER(string (*)name  s)
external routine spec  TO UPPER(string (*)name  s)

{Environment enquiry}
system integer fn spec  FREESTORE
system string (8)fn spec  DATE
system string (5)fn spec  TIME
system string (15)fn spec  DATETIME

{Heap}
external integer fn spec  HEAPGET(integer  x)
external routine spec  HEAPPUT(integer  x)
external routine spec  MARK
external routine spec  RELEASE

{PAM}
record format  PAMINFO(byte  groupsep,keyflag, short  allflags,
 record (*)name  params)
external record (paminfo)map spec  PAM
constinteger  PAM NEWGROUP=1, PAM NODEFAULT=2, PAM MAJOR=4,
 PAM KEEPCASE=8, PAM INFILE=16, PAM OUTFILE=32
external routine spec  DEFINE PARAM alias  "PAM_DEFSTRING" c 
 (string (255) text, string (*)name  variable, integer  flags)
external routine spec  DEFINE INT PARAM alias  "PAM_DEFINT" c 
 (string (255) text, integername  variable, integer  flags)
external routine spec  DEFINE ENUM PARAM alias  "PAM_DEFENUM" c 
 (string (255) text, bytename  variable, integer  flags)
external routine spec  DEFINE BOOLEAN PARAMS alias  "PAM_DEFBOOL" c 
 (string (255) text, integername  variable, integer  flags)
external routine spec  PROCESS PARAMETERS alias  "PAM_PROCESS" c 
 (string (255) parm)

{Terminal}
constinteger  NO ECHO=1, NO TERMECHO=2, SINGLE=4, NO PAGE=8
@16_1140routine  SET TERMINAL MODE(integer  mode)
!%external%integer%spec TERMINALMODE
!%external%integer%spec TERMINALMASK
@16_10D4integerfn  TESTSYMBOL
!%external%integer%fn%spec TESTSYMBOL

{Files}
external string (255)fn spec  INFILENAME
external string (255)fn spec  OUTFILENAME
external routine spec  SETINPUT(integer  byte)
external routine spec  SETOUTPUT(integer  byte)
external routine spec  OPENAPPEND(integer  stream,string (255)file)
external routine spec  CLOSEAPPEND
external predicate spec  EXISTS(string (255)file)
external integer fn spec  FILESIZE(string (255)file)
external routine spec  CONNECT FILE c 
 (string (255) fname, integer  mode, integer name  start,limit)
record format  FINFOF(string (23)name,string (5)perms,string (9)date,time,
 integer  blocks,extents)
external routine spec  DELETE(string (255)file)
external routine spec  RENAME(string (255)old,new)
external routine spec  COPY(string (255)from,to)
external routine spec  PERMIT(string (255)file,perms)
external routine spec  QUOTE(string (255)pass)
external string (255)fn spec  NINFO(string (255)file)
external routine spec  UNPACK FINFO(string (255)s,record (finfof)name  r)
include  "inc:fs.imp"
externalroutinespec  OPENSTREAMS(string (255)which,defaults)
externalstring (255)fnspec  FINFO(string (255)directory,integer  number)
externalroutinespec  GETDIR(string (255)dir,bytename  a)