%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) %primshortmapspec shortinteger(%integer a) %primintegerfnspec typeof(%name x) %primintegerfnspec sizeof(%name x) !############################## !## ALL THE REST IS OPTIONAL ## !############################## %externalroutinespec printsymbol(%integer s) %externalroutinespec printch %alias "PRINTSYMBOL"(%integer n) %externalroutinespec skipsymbol %alias "PERM$P" %externalintegerfnspec nextsymbol %externalroutinespec newline %externalroutinespec newlines(%integer n) %externalroutinespec space %externalroutinespec spaces(%integer a) %externalroutinespec printstring(%string(255) s) %externalstring(63)%fnspec itos(%integer m, n) %externalroutinespec write(%integer m, n) %externalstring(63)%fnspec itos0(%integer m) %externalroutinespec write0(%integer m) %externalroutinespec openinput(%integer s, %string(255) f) %externalroutinespec openoutput(%integer s, %string(255) f) %externalroutinespec selectinput(%integer n) %externalroutinespec selectoutput(%integer n) %externalroutinespec closeinput %externalroutinespec closeoutput %externalroutinespec abandoninput %alias "CLOSEINPUT" %externalroutinespec abandonoutput %externalroutinespec resetinput %externalroutinespec resetoutput %externalintegerfnspec intype %externalintegerfnspec outtype %externalintegerfnspec instream %externalintegerfnspec outstream %externalstring(12)%fnspec infilename %externalstring(12)%fnspec outfilename %externalroutinespec prompt(%string(31) s) %externalintegerfnspec freestore %externalstring(255) %fnspec substring(%string(*)%name s, %integer from, to) %externalstring(15) %fnspec date %externalstring(15) %fnspec time %recordformat eventfm (%integer event, sub, extra, pc, sp, ds, lnb, %string(63) message) %externalrecord(eventfm)%mapspec event %externalpredicatespec endofinput %externalroutinespec read(%name n) %externalroutinespec readstring(%string(*)%name s) %externalroutinespec phex(%integer x) %externalroutinespec poctal(%integer x ) %recordformat pf((%byte ser%orbyte service),%byte reply,a1,a2,b1,b2,c1,c2 %or %integer sr, (%integer a, b, c %or %string(5) ss)) %systemroutinespec pon(%record(pf)%name p) %systemroutinespec poff(%record(pf)%name p) %systemroutinespec ponoff(%record(pf)%name p) %systempredicatespec toff(%record(pf)%name p) %constinteger noeis=256, stackcheck=512, profile=1024, checkjumps=2048 %endofperm