void initialize(); void println(); void zprintchar(); #define printchar(s) zprintchar((ASCIIcode) (s)) void zprint(); #define print(s) zprint((integer) (s)) void zslowprint(); #define slowprint(s) zslowprint((integer) (s)) void zprintnl(); #define printnl(s) zprintnl((strnumber) (s)) void zprintthedigs(); #define printthedigs(k) zprintthedigs((eightbits) (k)) void zprintint(); #define printint(n) zprintint((integer) (n)) void zprintscaled(); #define printscaled(s) zprintscaled((scaled) (s)) void zprinttwo(); #define printtwo(x, y) zprinttwo((scaled) (x), (scaled) (y)) void zprinttype(); #define printtype(t) zprinttype((smallnumber) (t)) integer trueline(); void begindiagnostic(); void zenddiagnostic(); #define enddiagnostic(blankline) zenddiagnostic((boolean) (blankline)) void zprintdiagnostic(); #define printdiagnostic(s, t, nuline) zprintdiagnostic((strnumber) (s), (strnumber) (t), (boolean) (nuline)) void zprintfilename(); #define printfilename(n, a, e) zprintfilename((integer) (n), (integer) (a), (integer) (e)) void zflushstring(); #define flushstring(s) zflushstring((strnumber) (s)) void jumpout(); void error(); void zfatalerror(); #define fatalerror(s) zfatalerror((strnumber) (s)) void zoverflow(); #define overflow(s, n) zoverflow((strnumber) (s), (integer) (n)) void zconfusion(); #define confusion(s) zconfusion((strnumber) (s)) boolean initterminal(); void zdocompaction(); #define docompaction(needed) zdocompaction((poolpointer) (needed)) void unitstrroom(); strnumber makestring(); void zchoplaststring(); #define choplaststring(p) zchoplaststring((poolpointer) (p)) boolean zstreqbuf(); #define streqbuf(s, k) zstreqbuf((strnumber) (s), (integer) (k)) integer zstrvsstr(); #define strvsstr(s, t) zstrvsstr((strnumber) (s), (strnumber) (t)) boolean getstringsstarted(); void zprintdd(); #define printdd(n) zprintdd((integer) (n)) void terminput(); void normalizeselector(); void pauseforinstructions(); void zmissingerr(); #define missingerr(s) zmissingerr((strnumber) (s)) void cleararith(); integer zslowadd(); #define slowadd(x, y) zslowadd((integer) (x), (integer) (y)) scaled zrounddecimals(); #define rounddecimals(k) zrounddecimals((smallnumber) (k)) fraction zmakefraction(); #define makefraction(p, q) zmakefraction((integer) (p), (integer) (q)) integer ztakefraction(); #define takefraction(q, f) ztakefraction((integer) (q), (fraction) (f)) integer ztakescaled(); #define takescaled(q, f) ztakescaled((integer) (q), (scaled) (f)) scaled zmakescaled(); #define makescaled(p, q) zmakescaled((integer) (p), (integer) (q)) fraction zvelocity(); #define velocity(st, ct, sf, cf, t) zvelocity((fraction) (st), (fraction) (ct), (fraction) (sf), (fraction) (cf), (scaled) (t)) integer zabvscd(); #define abvscd(a, b, c, d) zabvscd((integer) (a), (integer) (b), (integer) (c), (integer) (d)) scaled zfloorscaled(); #define floorscaled(x) zfloorscaled((scaled) (x)) integer zroundunscaled(); #define roundunscaled(x) zroundunscaled((scaled) (x)) scaled zroundfraction(); #define roundfraction(x) zroundfraction((fraction) (x)) scaled zsquarert(); #define squarert(x) zsquarert((scaled) (x)) integer zpythadd(); #define pythadd(a, b) zpythadd((integer) (a), (integer) (b)) integer zpythsub(); #define pythsub(a, b) zpythsub((integer) (a), (integer) (b)) scaled zmlog(); #define mlog(x) zmlog((scaled) (x)) scaled zmexp(); #define mexp(x) zmexp((scaled) (x)) angle znarg(); #define narg(x, y) znarg((integer) (x), (integer) (y)) void znsincos(); #define nsincos(z) znsincos((angle) (z)) void newrandoms(); void zinitrandoms(); #define initrandoms(seed) zinitrandoms((scaled) (seed)) scaled zunifrand(); #define unifrand(x) zunifrand((scaled) (x)) scaled normrand(); void zprintword(); #define printword(w) zprintword((memoryword) (w)) void zshowtokenlist(); #define showtokenlist(p, q, l, nulltally) zshowtokenlist((integer) (p), (integer) (q), (integer) (l), (integer) (nulltally)) void runaway(); halfword getavail(); halfword zgetnode(); #define getnode(s) zgetnode((integer) (s)) void zfreenode(); #define freenode(p, s) zfreenode((halfword) (p), (halfword) (s)) void sortavail(); void zflushlist(); #define flushlist(p) zflushlist((halfword) (p)) void zflushnodelist(); #define flushnodelist(p) zflushnodelist((halfword) (p)) void zcheckmem(); #define checkmem(printlocs) zcheckmem((boolean) (printlocs)) void zsearchmem(); #define searchmem(p) zsearchmem((halfword) (p)) void zprintop(); #define printop(c) zprintop((quarterword) (c)) void fixdateandtime(); halfword zidlookup(); #define idlookup(j, l) zidlookup((integer) (j), (integer) (l)) void zprimitive(); #define primitive(s, c, o) zprimitive((strnumber) (s), (halfword) (c), (halfword) (o)) halfword znewnumtok(); #define newnumtok(v) znewnumtok((scaled) (v)) void zflushtokenlist(); #define flushtokenlist(p) zflushtokenlist((halfword) (p)) void zdeletemacref(); #define deletemacref(p) zdeletemacref((halfword) (p)) void zprintcmdmod(); #define printcmdmod(c, m) zprintcmdmod((integer) (c), (integer) (m)) void zshowmacro(); #define showmacro(p, q, l) zshowmacro((halfword) (p), (integer) (q), (integer) (l)) void zinitbignode(); #define initbignode(p) zinitbignode((halfword) (p)) halfword idtransform(); void znewroot(); #define newroot(x) znewroot((halfword) (x)) void zprintvariablename(); #define printvariablename(p) zprintvariablename((halfword) (p)) boolean zinteresting(); #define interesting(p) zinteresting((halfword) (p)) halfword znewstructure(); #define newstructure(p) znewstructure((halfword) (p)) halfword zfindvariable(); #define findvariable(t) zfindvariable((halfword) (t)) void zprpath(); #define prpath(h) zprpath((halfword) (h)) void zprintpath(); #define printpath(h, s, nuline) zprintpath((halfword) (h), (strnumber) (s), (boolean) (nuline)) void zprpen(); #define prpen(h) zprpen((halfword) (h)) void zprintpen(); #define printpen(h, s, nuline) zprintpen((halfword) (h), (strnumber) (s), (boolean) (nuline)) scaled zgetpenscale(); #define getpenscale(p) zgetpenscale((halfword) (p)) void zprintcompactnode(); #define printcompactnode(p, k) zprintcompactnode((halfword) (p), (smallnumber) (k)) void zprintobjcolor(); #define printobjcolor(p) zprintobjcolor((halfword) (p)) scaled zdashoffset(); #define dashoffset(h) zdashoffset((halfword) (h)) void zprintedges(); #define printedges(h, s, nuline) zprintedges((halfword) (h), (strnumber) (s), (boolean) (nuline)) void zprintdependency(); #define printdependency(p, t) zprintdependency((halfword) (p), (smallnumber) (t)) void zprintdp(); #define printdp(t, p, verbosity) zprintdp((smallnumber) (t), (halfword) (p), (smallnumber) (verbosity)) halfword stashcurexp(); void zunstashcurexp(); #define unstashcurexp(p) zunstashcurexp((halfword) (p)) void zprintexp(); #define printexp(p, verbosity) zprintexp((halfword) (p), (smallnumber) (verbosity)) void zdisperr(); #define disperr(p, s) zdisperr((halfword) (p), (strnumber) (s)) halfword zpplusfq(); #define pplusfq(p, f, q, t, tt) zpplusfq((halfword) (p), (integer) (f), (halfword) (q), (smallnumber) (t), (smallnumber) (tt)) halfword zpoverv(); #define poverv(p, v, t0, t1) zpoverv((halfword) (p), (scaled) (v), (smallnumber) (t0), (smallnumber) (t1)) void zvaltoobig(); #define valtoobig(x) zvaltoobig((scaled) (x)) void zmakeknown(); #define makeknown(p, q) zmakeknown((halfword) (p), (halfword) (q)) void fixdependencies(); void ztossknotlist(); #define tossknotlist(p) ztossknotlist((halfword) (p)) void zflushdashlist(); #define flushdashlist(h) zflushdashlist((halfword) (h)) halfword ztossgrobject(); #define tossgrobject(p) ztossgrobject((halfword) (p)) void ztossedges(); #define tossedges(h) ztossedges((halfword) (h)) void zringdelete(); #define ringdelete(p) zringdelete((halfword) (p)) void zrecyclevalue(); #define recyclevalue(p) zrecyclevalue((halfword) (p)) void zflushcurexp(); #define flushcurexp(v) zflushcurexp((scaled) (v)) void zflusherror(); #define flusherror(v) zflusherror((scaled) (v)) void putgeterror(); void zputgetflusherror(); #define putgetflusherror(v) zputgetflusherror((scaled) (v)) void zflushbelowvariable(); #define flushbelowvariable(p) zflushbelowvariable((halfword) (p)) void zflushvariable(); #define flushvariable(p, t, discardsuffixes) zflushvariable((halfword) (p), (halfword) (t), (boolean) (discardsuffixes)) smallnumber zundtype(); #define undtype(p) zundtype((halfword) (p)) void zclearsymbol(); #define clearsymbol(p, saving) zclearsymbol((halfword) (p), (boolean) (saving)) void zsavevariable(); #define savevariable(q) zsavevariable((halfword) (q)) void zsaveinternal(); #define saveinternal(q) zsaveinternal((halfword) (q)) void unsave(); halfword zcopyknot(); #define copyknot(p) zcopyknot((halfword) (p)) halfword zcopypath(); #define copypath(p) zcopypath((halfword) (p)) halfword zhtapypoc(); #define htapypoc(p) zhtapypoc((halfword) (p)) fraction zcurlratio(); #define curlratio(gamma, atension, btension) zcurlratio((scaled) (gamma), (scaled) (atension), (scaled) (btension)) void zsetcontrols(); #define setcontrols(p, q, k) zsetcontrols((halfword) (p), (halfword) (q), (integer) (k)) void zsolvechoices(); #define solvechoices(p, q, n) zsolvechoices((halfword) (p), (halfword) (q), (halfword) (n)) void zmakechoices(); #define makechoices(knots) zmakechoices((halfword) (knots)) fraction zcrossingpoint(); #define crossingpoint(a, b, c) zcrossingpoint((integer) (a), (integer) (b), (integer) (c)) scaled zevalcubic(); #define evalcubic(p, q, t) zevalcubic((halfword) (p), (halfword) (q), (fraction) (t)) void zboundcubic(); #define boundcubic(p, q, c) zboundcubic((halfword) (p), (halfword) (q), (smallnumber) (c)) void zpathbbox(); #define pathbbox(h) zpathbbox((halfword) (h)) scaled zsolverisingcubic(); #define solverisingcubic(a, b, c, x) zsolverisingcubic((scaled) (a), (scaled) (b), (scaled) (c), (scaled) (x)) scaled zarctest(); #define arctest(dx0, dy0, dx1, dy1, dx2, dy2, v0, v02, v2, agoal, tol) zarctest((scaled) (dx0), (scaled) (dy0), (scaled) (dx1), (scaled) (dy1), (scaled) (dx2), (scaled) (dy2), (scaled) (v0), (scaled) (v02), (scaled) (v2), (scaled) (agoal), (scaled) (tol)) scaled zdoarctest(); #define doarctest(dx0, dy0, dx1, dy1, dx2, dy2, agoal) zdoarctest((scaled) (dx0), (scaled) (dy0), (scaled) (dx1), (scaled) (dy1), (scaled) (dx2), (scaled) (dy2), (scaled) (agoal)) scaled zgetarclength(); #define getarclength(h) zgetarclength((halfword) (h)) scaled zgetarctime(); #define getarctime(h, arc0) zgetarctime((halfword) (h), (scaled) (arc0)) void zmoveknot(); #define moveknot(p, q) zmoveknot((halfword) (p), (halfword) (q)) halfword zconvexhull(); #define convexhull(h) zconvexhull((halfword) (h)) halfword zmakepen(); #define makepen(h, needhull) zmakepen((halfword) (h), (boolean) (needhull)) halfword zgetpencircle(); #define getpencircle(diam) zgetpencircle((scaled) (diam)) void zmakepath(); #define makepath(h) zmakepath((halfword) (h)) void zfindoffset(); #define findoffset(x, y, h) zfindoffset((scaled) (x), (scaled) (y), (halfword) (h)) void zpenbbox(); #define penbbox(h) zpenbbox((halfword) (h)) halfword znewfillnode(); #define newfillnode(p) znewfillnode((halfword) (p)) halfword znewstrokednode(); #define newstrokednode(p) znewstrokednode((halfword) (p)) void beginname(); boolean zmorename(); #define morename(c) zmorename((ASCIIcode) (c)) void endname(); void zpackfilename(); #define packfilename(n, a, e) zpackfilename((strnumber) (n), (strnumber) (a), (strnumber) (e)) void zstrscanfile(); #define strscanfile(s) zstrscanfile((strnumber) (s)) fontnumber zreadfontinfo(); #define readfontinfo(fname) zreadfontinfo((strnumber) (fname)) fontnumber zfindfont(); #define findfont(f) zfindfont((strnumber) (f)) void zlostwarning(); #define lostwarning(f, k) zlostwarning((fontnumber) (f), (poolpointer) (k)) void zsettextbox(); #define settextbox(p) zsettextbox((halfword) (p)) halfword znewtextnode(); #define newtextnode(f, s) znewtextnode((strnumber) (f), (strnumber) (s)) halfword znewboundsnode(); #define newboundsnode(p, c) znewboundsnode((halfword) (p), (smallnumber) (c)) void zinitbbox(); #define initbbox(h) zinitbbox((halfword) (h)) void zinitedges(); #define initedges(h) zinitedges((halfword) (h)) halfword zcopyobjects(); #define copyobjects(p, q) zcopyobjects((halfword) (p), (halfword) (q)) halfword zprivateedges(); #define privateedges(h) zprivateedges((halfword) (h)) halfword zskip1component(); #define skip1component(p) zskip1component((halfword) (p)) void xretraceerror(); halfword zmakedashes(); #define makedashes(h) zmakedashes((halfword) (h)) void zadjustbbox(); #define adjustbbox(h) zadjustbbox((halfword) (h)) void zboxends(); #define boxends(p, pp, h) zboxends((halfword) (p), (halfword) (pp), (halfword) (h)) void zsetbbox(); #define setbbox(h, toplevel) zsetbbox((halfword) (h), (boolean) (toplevel)) void zsplitcubic(); #define splitcubic(p, t) zsplitcubic((halfword) (p), (fraction) (t)) void zremovecubic(); #define removecubic(p) zremovecubic((halfword) (p)) halfword zpenwalk(); #define penwalk(w, k) zpenwalk((halfword) (w), (integer) (k)) void zfinoffsetprep(); #define finoffsetprep(p, w, x0, x1, x2, y0, y1, y2, rise, turnamt) zfinoffsetprep((halfword) (p), (halfword) (w), (integer) (x0), (integer) (x1), (integer) (x2), (integer) (y0), (integer) (y1), (integer) (y2), (integer) (rise), (integer) (turnamt)) integer zgetturnamt(); #define getturnamt(w, dx, dy, ccw) zgetturnamt((halfword) (w), (scaled) (dx), (scaled) (dy), (boolean) (ccw)) halfword zoffsetprep(); #define offsetprep(c, h) zoffsetprep((halfword) (c), (halfword) (h)) void zprintspec(); #define printspec(curspec, curpen, s) zprintspec((halfword) (curspec), (halfword) (curpen), (strnumber) (s)) halfword zinsertknot(); #define insertknot(q, x, y) zinsertknot((halfword) (q), (scaled) (x), (scaled) (y)) halfword zmakeenvelope(); #define makeenvelope(c, h, ljoin, lcap, miterlim) zmakeenvelope((halfword) (c), (halfword) (h), (smallnumber) (ljoin), (smallnumber) (lcap), (scaled) (miterlim)) scaled zfinddirectiontime(); #define finddirectiontime(x, y, h) zfinddirectiontime((scaled) (x), (scaled) (y), (halfword) (h)) void zcubicintersection(); #define cubicintersection(p, pp) zcubicintersection((halfword) (p), (halfword) (pp)) void zpathintersection(); #define pathintersection(h, hh) zpathintersection((halfword) (h), (halfword) (hh)) fraction zmaxcoef(); #define maxcoef(p) zmaxcoef((halfword) (p)) halfword zpplusq(); #define pplusq(p, q, t) zpplusq((halfword) (p), (halfword) (q), (smallnumber) (t)) halfword zptimesv(); #define ptimesv(p, v, t0, t1, visscaled) zptimesv((halfword) (p), (integer) (v), (smallnumber) (t0), (smallnumber) (t1), (boolean) (visscaled)) halfword zpwithxbecomingq(); #define pwithxbecomingq(p, x, q, t) zpwithxbecomingq((halfword) (p), (halfword) (x), (halfword) (q), (smallnumber) (t)) void znewdep(); #define newdep(q, p) znewdep((halfword) (q), (halfword) (p)) halfword zconstdependency(); #define constdependency(v) zconstdependency((scaled) (v)) halfword zsingledependency(); #define singledependency(p) zsingledependency((halfword) (p)) halfword zcopydeplist(); #define copydeplist(p) zcopydeplist((halfword) (p)) void zlineareq(); #define lineareq(p, t) zlineareq((halfword) (p), (smallnumber) (t)) halfword znewringentry(); #define newringentry(p) znewringentry((halfword) (p)) void znonlineareq(); #define nonlineareq(v, p, flushp) znonlineareq((integer) (v), (halfword) (p), (boolean) (flushp)) void zringmerge(); #define ringmerge(p, q) zringmerge((halfword) (p), (halfword) (q)) void zshowcmdmod(); #define showcmdmod(c, m) zshowcmdmod((integer) (c), (integer) (m)) void showcontext(); void zbegintokenlist(); #define begintokenlist(p, t) zbegintokenlist((halfword) (p), (quarterword) (t)) void endtokenlist(); void zencapsulate(); #define encapsulate(p) zencapsulate((halfword) (p)) void zinstall(); #define install(r, q) zinstall((halfword) (r), (halfword) (q)) void zmakeexpcopy(); #define makeexpcopy(p) zmakeexpcopy((halfword) (p)) halfword curtok(); void backinput(); void backerror(); void inserror(); void beginfilereading(); void endfilereading(); boolean beginmpxreading(); void endmpxreading(); void clearforerrorprompt(); boolean checkoutervalidity(); void getnext(); void firmuptheline(); void tnext(); halfword zscantoks(); #define scantoks(terminator, substlist, tailend, suffixcount) zscantoks((commandcode) (terminator), (halfword) (substlist), (halfword) (tailend), (smallnumber) (suffixcount)) void getsymbol(); void getclearsymbol(); void checkequals(); void makeopdef(); void zcheckdelimiter(); #define checkdelimiter(ldelim, rdelim) zcheckdelimiter((halfword) (ldelim), (halfword) (rdelim)) halfword scandeclaredvariable(); void scandef(); void zprintmacroname(); #define printmacroname(a, n) zprintmacroname((halfword) (a), (halfword) (n)) void zprintarg(); #define printarg(q, n, b) zprintarg((halfword) (q), (integer) (n), (halfword) (b)) void zscantextarg(); #define scantextarg(ldelim, rdelim) zscantextarg((halfword) (ldelim), (halfword) (rdelim)) void zmacrocall(); #define macrocall(defref, arglist, macroname) zmacrocall((halfword) (defref), (halfword) (arglist), (halfword) (macroname)) void expand(); void getxnext(); void zstackargument(); #define stackargument(p) zstackargument((halfword) (p)) void passtext(); void zchangeiflimit(); #define changeiflimit(l, p) zchangeiflimit((smallnumber) (l), (halfword) (p)) void checkcolon(); void conditional(); void zbadfor(); #define badfor(s) zbadfor((strnumber) (s)) void beginiteration(); void resumeiteration(); void stopiteration(); void zpackbufferedname(); #define packbufferedname(n, a, b) zpackbufferedname((smallnumber) (n), (integer) (a), (integer) (b)) strnumber makenamestring(); void scanfilename(); void zpackjobname(); #define packjobname(s) zpackjobname((strnumber) (s)) void zpromptfilename(); #define promptfilename(s, e) zpromptfilename((strnumber) (s), (strnumber) (e)) void openlogfile(); boolean ztryextension(); #define tryextension(ext) ztryextension((strnumber) (ext)) void startinput(); void zcopyoldname(); #define copyoldname(s) zcopyoldname((strnumber) (s)) void startmpxinput(); boolean zstartreadinput(); #define startreadinput(s, n) zstartreadinput((strnumber) (s), (readfindex) (n)) void zopenwritefile(); #define openwritefile(s, n) zopenwritefile((strnumber) (s), (readfindex) (n)) void zbadexp(); #define badexp(s) zbadexp((strnumber) (s)) void zstashin(); #define stashin(p) zstashin((halfword) (p)) void backexpr(); void badsubscript(); void zobliterated(); #define obliterated(q) zobliterated((halfword) (q)) void zbinarymac(); #define binarymac(p, c, n) zbinarymac((halfword) (p), (halfword) (c), (halfword) (n)) void knownpair(); halfword newknot(); smallnumber scandirection(); void finishread(); void zdonullary(); #define donullary(c) zdonullary((quarterword) (c)) boolean znicepair(); #define nicepair(p, t) znicepair((integer) (p), (quarterword) (t)) boolean znicecolororpair(); #define nicecolororpair(p, t) znicecolororpair((integer) (p), (quarterword) (t)) void zprintknownorunknowntype(); #define printknownorunknowntype(t, v) zprintknownorunknowntype((smallnumber) (t), (integer) (v)) void zbadunary(); #define badunary(c) zbadunary((quarterword) (c)) void znegatedeplist(); #define negatedeplist(p) znegatedeplist((halfword) (p)) void pairtopath(); void ztakepart(); #define takepart(c) ztakepart((quarterword) (c)) void ztakepictpart(); #define takepictpart(c) ztakepictpart((quarterword) (c)) void zstrtonum(); #define strtonum(c) zstrtonum((quarterword) (c)) scaled pathlength(); scaled pictlength(); scaled zcountturns(); #define countturns(c) zcountturns((halfword) (c)) void ztestknown(); #define testknown(c) ztestknown((quarterword) (c)) void zpairvalue(); #define pairvalue(x, y) zpairvalue((scaled) (x), (scaled) (y)) boolean getcurbbox(); void doreadfrom(); void zdounary(); #define dounary(c) zdounary((quarterword) (c)) void zbadbinary(); #define badbinary(p, c) zbadbinary((halfword) (p), (quarterword) (c)) halfword ztarnished(); #define tarnished(p) ztarnished((halfword) (p)) void zdepfinish(); #define depfinish(v, q, t) zdepfinish((halfword) (v), (halfword) (q), (smallnumber) (t)) void zaddorsubtract(); #define addorsubtract(p, q, c) zaddorsubtract((halfword) (p), (halfword) (q), (quarterword) (c)) void zdepmult(); #define depmult(p, v, visscaled) zdepmult((halfword) (p), (integer) (v), (boolean) (visscaled)) void zhardtimes(); #define hardtimes(p) zhardtimes((halfword) (p)) void zdepdiv(); #define depdiv(p, v) zdepdiv((halfword) (p), (scaled) (v)) void zsetuptrans(); #define setuptrans(c) zsetuptrans((quarterword) (c)) void zsetupknowntrans(); #define setupknowntrans(c) zsetupknowntrans((quarterword) (c)) void ztrans(); #define trans(p, q) ztrans((halfword) (p), (halfword) (q)) void zdopathtrans(); #define dopathtrans(p) zdopathtrans((halfword) (p)) void zdopentrans(); #define dopentrans(p) zdopentrans((halfword) (p)) void zedgestrans(); #define edgestrans(p, c) zedgestrans((halfword) (p), (quarterword) (c)) void zbilin1(); #define bilin1(p, t, q, u, delta) zbilin1((halfword) (p), (scaled) (t), (halfword) (q), (scaled) (u), (scaled) (delta)) void zaddmultdep(); #define addmultdep(p, v, r) zaddmultdep((halfword) (p), (scaled) (v), (halfword) (r)) void zbilin2(); #define bilin2(p, t, v, u, q) zbilin2((halfword) (p), (halfword) (t), (scaled) (v), (halfword) (u), (halfword) (q)) void zbilin3(); #define bilin3(p, t, v, u, delta) zbilin3((halfword) (p), (scaled) (t), (scaled) (v), (scaled) (u), (scaled) (delta)) void zbigtrans(); #define bigtrans(p, c) zbigtrans((halfword) (p), (quarterword) (c)) void zcat(); #define cat(p) zcat((halfword) (p)) void zchopstring(); #define chopstring(p) zchopstring((halfword) (p)) void zchoppath(); #define choppath(p) zchoppath((halfword) (p)) void zsetupoffset(); #define setupoffset(p) zsetupoffset((halfword) (p)) void zsetupdirectiontime(); #define setupdirectiontime(p) zsetupdirectiontime((halfword) (p)) void zfindpoint(); #define findpoint(v, c) zfindpoint((scaled) (v), (quarterword) (c)) void zdoinfont(); #define doinfont(p) zdoinfont((halfword) (p)) void zdobinary(); #define dobinary(p, c) zdobinary((halfword) (p), (quarterword) (c)) void zfracmult(); #define fracmult(n, d) zfracmult((scaled) (n), (scaled) (d)) void ztryeq(); #define tryeq(l, r) ztryeq((halfword) (l), (halfword) (r)) void zmakeeq(); #define makeeq(lhs) zmakeeq((halfword) (lhs)) void doequation(); void doassignment(); void dotypedeclaration(); void dorandomseed(); void doprotection(); void defdelims(); void dointerim(); void dolet(); void donewinternal(); void doshow(); void disptoken(); void doshowtoken(); void doshowstats(); void zdispvar(); #define dispvar(p) zdispvar((halfword) (p)) void doshowvar(); void doshowdependencies(); void doshowwhatever(); void zscanwithlist(); #define scanwithlist(p) zscanwithlist((halfword) (p)) halfword zfindedgesvar(); #define findedgesvar(t) zfindedgesvar((halfword) (t)) halfword zstartdrawcmd(); #define startdrawcmd(sep) zstartdrawcmd((quarterword) (sep)) void dobounds(); void doaddto(); scaled ztfmcheck(); #define tfmcheck(m) ztfmcheck((smallnumber) (m)) void readpsnametable(); void openoutputfile(); void zpspairout(); #define pspairout(x, y) zpspairout((scaled) (x), (scaled) (y)) void zpsprint(); #define psprint(s) zpsprint((strnumber) (s)) void zpspathout(); #define pspathout(h) zpspathout((halfword) (h)) void zunknowngraphicsstate(); #define unknowngraphicsstate(c) zunknowngraphicsstate((scaled) (c)) boolean zcoordrangeOK(); #define coordrangeOK(h, zoff, dz) zcoordrangeOK((halfword) (h), (smallnumber) (zoff), (scaled) (dz)) boolean zsamedashes(); #define samedashes(h, hh) zsamedashes((halfword) (h), (halfword) (hh)) void zfixgraphicsstate(); #define fixgraphicsstate(p) zfixgraphicsstate((halfword) (p)) void zstrokeellipse(); #define strokeellipse(h, fillalso) zstrokeellipse((halfword) (h), (boolean) (fillalso)) void zpsfillout(); #define psfillout(p) zpsfillout((halfword) (p)) void zdoouterenvelope(); #define doouterenvelope(p, h) zdoouterenvelope((halfword) (p), (halfword) (h)) scaled zchoosescale(); #define choosescale(p) zchoosescale((halfword) (p)) void zpsstringout(); #define psstringout(s) zpsstringout((strnumber) (s)) boolean zispsname(); #define ispsname(s) zispsname((strnumber) (s)) void zpsnameout(); #define psnameout(s, lit) zpsnameout((strnumber) (s), (boolean) (lit)) void zunmarkfont(); #define unmarkfont(f) zunmarkfont((fontnumber) (f)) void zmarkstringchars(); #define markstringchars(f, s) zmarkstringchars((fontnumber) (f), (strnumber) (s)) void zhexdigitout(); #define hexdigitout(d) zhexdigitout((smallnumber) (d)) halfword zpsmarksout(); #define psmarksout(f, c) zpsmarksout((fontnumber) (f), (eightbits) (c)) boolean zcheckpsmarks(); #define checkpsmarks(f, c) zcheckpsmarks((fontnumber) (f), (integer) (c)) quarterword zsizeindex(); #define sizeindex(f, s) zsizeindex((fontnumber) (f), (scaled) (s)) scaled zindexedsize(); #define indexedsize(f, j) zindexedsize((fontnumber) (f), (quarterword) (j)) void clearsizes(); void zshipout(); #define shipout(h) zshipout((halfword) (h)) void doshipout(); void znostringerr(); #define nostringerr(s) znostringerr((strnumber) (s)) void domessage(); void dowrite(); eightbits getcode(); void zsettag(); #define settag(c, t, r) zsettag((halfword) (c), (smallnumber) (t), (halfword) (r)) void dotfmcommand(); void dospecial(); void storememfile(); void dostatement(); void maincontrol(); halfword zsortin(); #define sortin(v) zsortin((scaled) (v)) integer zmincover(); #define mincover(d) zmincover((scaled) (d)) scaled zcomputethreshold(); #define computethreshold(m) zcomputethreshold((integer) (m)) integer zskimp(); #define skimp(m) zskimp((integer) (m)) void ztfmwarning(); #define tfmwarning(m) ztfmwarning((smallnumber) (m)) void fixdesignsize(); integer zdimenout(); #define dimenout(x) zdimenout((scaled) (x)) void fixchecksum(); void ztfmqqqq(); #define tfmqqqq(x) ztfmqqqq((fourquarters) (x)) boolean openmemfile(); boolean loadmemfile(); void scanprimary(); void scansuffix(); void scansecondary(); void scantertiary(); void scanexpression(); void getboolean(); void printcapsule(); void tokenrecycle(); void closefilesandterminate(); void finalcleanup(); void initprim(); void inittab(); integer readint(); void debughelp(); /* * The C compiler ignores most unnecessary casts (i.e., casts of something * to its own type). However, for structures, it doesn't. Therefore, * we have to redefine this macro so that it doesn't try to cast * the argument (a memoryword) as a memoryword. */ #undef printword #define printword(x) zprintword(x) #undef tfmqqqq #define tfmqqqq(x) ztfmqqqq(x) #undef finishdimen #define finishdimen(a,b) zfinishdimen((fontnumber)(a),(b)) /* * These external routines need casting of the arguments */ #define testaccess(a,b,c,d) ztestaccess(a, b, (integer) c, (integer) d)