// Standard BCPL header for TRIPOS on the MC68000

GLOBAL
$(
   globsize       :   0
   start          :   1  //        start(pkt)
   stop           :   2  //        stop(code)
   multiply       :   3  // res := multiply(x, y)
   divide         :   4  // res := divide(x, y)
   remainder      :   5  // res := remainder(x, y)
   cst2bst        :   6  //        cst2bst(Cstring,BCPLstring)
   bst2cst        :   7  //        bst2cst(BCPLstring,Cstring)
   gbytes         :   8  // res := Gbytes(ba, size)
   pbytes         :   9  //        pbytes(ba, size, word)
   result2        :  10
   stackbase      :  11
   stacktop       :  12
   stacksize      :  13
//
   getbyte        :  15  // ch  := getbyte(v, i)
   putbyte        :  16  //        putbyte(v, i, ch)
   level          :  17  // p   := level()
   longjump       :  18  //        longjump(p, l)
   muldiv         :  19  // res := muldiv(a, b, c)
   aptovec        :  20  // res := aptovec(fn, upb)
//
   GetVec         :  29  // v   := getvec(upb)
   FreeVec        :  30  //        freevec(v)
   fpsim          :  32
   fix            :  33
   float          :  34
   stdout         :  35
   stdin          :  36
   stderr         :  37
//
   open           :  39  // res := open(name,oflag,mode)
   close          :  40  //        close(fildes)
//
   abort          :  42  //        abort(code)
//
   packstring     :  44  // res := packstring(v, s)
   unpackstring   :  45  //        unpackstring(s, v)
//
   transargs      :  49  //        transargs(argc,argv)
   read           :  50  // res := read(fildes,buffer,n)
   write          :  51  // res := write(fildes,buffer,n)
   cis            :  52
   cos            :  53
   rdch           :  54  // ch  := rdch()
   unrdch         :  55  // res := unrdch()
   wrch           :  56  //        wrch(ch)
   readwords      :  57  // res := readwords(v, n)
   writewords     :  58  //        writewords(v, n)
   findinput      :  59  // scb := findinput(name)
   findoutput     :  60  // scb := findoutput(name)
   selectinput    :  61  //        selectinput(scb)
   selectoutput   :  62  //        selectoutput(scb)
   endread        :  63  //        endread()
   endwrite       :  64  //        endwrite()
   input          :  65  // scb := input()
   output         :  66  // scb := output()
   readn          :  67  // n   := readn()
   newline        :  68  //        newline()
   writed         :  69  //        writed(n, d)
   writen         :  70  //        writen(n)
   writehex       :  71  //        writehex(n, d)
   writeoct       :  72  //        writeoct(n, d)
   writes         :  73  //        writes(string)
   writef         :  74  //        writef(format, ..args..)
   capitalch      :  75  // ch  := capitalch(ch)
   compch         :  76  // res := compch(ch1, ch2)
   compstring     :  77  // res := compstring(s1, s2)
   rdargs         :  78  // res := rdargs(keys, v, upb)
   rditem         :  79  // res := rditem(v, upb)
   findarg        :  80  // res := findarg(keys, item)
   lseek          :  81  // res := lseek(fildes,offset,whence)
   note           :  82  // res := note(scb, v)
   point          :  83  // res := point(scb, v)
   pointword      :  84  // res := pointword(wordoffset)
   deplete        :  85  // res := deplete(stream)
   readbytes      :  86  // res := readbytes(v,n)
   writebytes     :  87  // res := writebytes(v,n)
   writet         :  88  //        writet(s,n)
   unlink         :  89  // res := unlink(cstring)
   deleteobj      :  90  // res := deleteobj(bstring)
   endstream      :  93  //        endstream(scb)
   get2bytes      :  94  // word:= get2bytes(v, wordoffset)
   put2bytes      :  95  //        put2bytes(v, wordoffset, word)
$)

MANIFEST
$(
   ENDSTREAMCH       = -1
   BYTESPERWORD      = 4
   BITSPERWORD       = 32
   BITSPERBYTE       = 8
   MAXINT            = #X7FFFFFFF
   MININT            = #X80000000
   MCADDRINC         = 4
   UG                = 100
   FG                = UG
   undefined.global  = #X474C0001
$)



