home *** CD-ROM | disk | FTP | other *** search
/ Meeting Pearls 3 / Meeting_Pearls_III.iso / Pearls / texmf / source / TeX / tex / coerce.h < prev    next >
C/C++ Source or Header  |  1993-11-04  |  27KB  |  865 lines

  1. /* With GNU C we can store `zmem' in a global register */
  2. /* (see texd.h for more) */
  3.  
  4. #ifdef REG_A5
  5. #  define mem ((memoryword *)zmem)
  6. #  define REGMEM_ZMEM
  7. #else
  8. #  define REGMEM_ZMEM register memoryword *mem=zmem;
  9. #endif
  10.  
  11. #define REGMEM_ZEQTB register MEDmemoryword * CONST eqtb=zeqtb;
  12.  
  13.  
  14.  
  15. void init_arrays(int debugflag);    /* defined in init.c, used in texmf.c */
  16.  
  17.  
  18.  
  19. /* texmf.c: */
  20. extern void topenin(void);
  21. extern void get_date_and_time(integer *, integer *, integer *, integer *);
  22. extern void calledit(ASCIIcode *, poolpointer, integer, integer);
  23.  
  24. /* init.c: */
  25.  
  26. void initialize(void);
  27. #define initialize_regmem REGMEM_ZMEM REGMEM_ZEQTB
  28. void println(void);
  29. #define println_regmem
  30. void printchar(ASCIIcode s);
  31. #define printchar_regmem REGMEM_ZEQTB
  32. void c_print(char *s);
  33. #define c_print_regmem
  34. void print(integer s);
  35. #define print_regmem REGMEM_ZEQTB
  36.  
  37. #ifdef ERW_CODEPAGE
  38. #  define slowprint(s) print(s)
  39. #else
  40.    void slowprint(integer s);
  41. #  define slowprint_regmem REGMEM_ZEQTB
  42. #endif
  43.  
  44. void printnl(strnumber s);
  45. void c_printnl(char *s);
  46. #define printnl_regmem
  47. void c_printesc(char *s);
  48. void printesc(strnumber s);
  49. #define printesc_regmem REGMEM_ZEQTB
  50. void printthedigs(eightbits k);
  51. #define printthedigs_regmem
  52. void printint(integer n);
  53. #define printint_regmem
  54. void printcs(integer p);
  55. #define printcs_regmem REGMEM_ZEQTB
  56. void sprintcs(halfword p);
  57. #define sprintcs_regmem
  58. void printfilename(integer n, integer a, integer e);
  59. #define printfilename_regmem
  60. void printsize(integer s);
  61. #define printsize_regmem
  62. void printwritewhatsit(strnumber s, halfword p);
  63. #define printwritewhatsit_regmem REGMEM_ZMEM
  64. VOLATILE void jumpout(void);
  65. #define jumpout_regmem
  66. void print_err(char *s);
  67. #ifdef ERW_INTERACTION
  68. #define printerr_regmem REGMEM_ZEQTB
  69. #else
  70. #define printerr_regmem
  71. #endif
  72. void p_print_err(strnumber s);
  73.  
  74. void error(void);
  75. #ifdef ERW_INTERACTION
  76. #define error_regmem REGMEM_ZEQTB
  77. #else
  78. #define error_regmem
  79. #endif
  80. VOLATILE void fatalerror(strnumber s);
  81. #define fatalerror_regmem
  82. VOLATILE void STDARGS overflow(strnumber s, integer n);
  83. #define overflow_regmem
  84. void confusion(char *s /*strnumber s*/);
  85. #define confusion_regmem
  86. boolean initterminal(void);
  87. #define initterminal_regmem
  88. strnumber makestring(void);
  89. #define makestring_regmem
  90. #if 0
  91. boolean zstreqbuf();
  92. #define streqbuf(s, k) zstreqbuf((strnumber) (s), (integer) (k))
  93. #define streqbuf_regmem
  94. boolean zstreqstr();
  95. #define streqstr(s, t) zstreqstr((strnumber) (s), (strnumber) (t))
  96. #define streqstr_regmem
  97. #endif
  98.  
  99. boolean getstringsstarted(void);
  100. #define getstringsstarted_regmem
  101.  
  102. void printtwo(integer n);
  103. #define printtwo_regmem
  104. void printhex(integer n);
  105. #define printhex_regmem
  106. void printromanint(integer n);
  107. #define printromanint_regmem
  108. void printcurrentstring(void);
  109. #define printcurrentstring_regmem
  110. void terminput(char *s /*integer s*/);
  111. #define terminput_regmem
  112. void interror(integer n);
  113. #define interror_regmem
  114. void normalizeselector(void);
  115. #ifdef ERW_INTERACTION
  116. #define normalizeselector_regmem REGMEM_ZEQTB
  117. #else
  118. #define normalizeselector_regmem
  119. #endif
  120. VOLATILE void succumb(void);
  121. #ifdef ERW_INTERACTION
  122. #define succumb_regmem REGMEM_ZEQTB
  123. #else
  124. #define succumb_regmem
  125. #endif
  126. void pauseforinstructions(void);
  127. #define pauseforinstructions_regmem
  128.  
  129. integer half(integer x);
  130. #define half_regmem
  131. scaled rounddecimals(smallnumber k);
  132. #define rounddecimals_regmem
  133. void printscaled(scaled s);
  134. #define printscaled_regmem
  135. scaled multandadd(integer n, scaled x, scaled y, scaled maxanswer);
  136. #define multandadd_regmem
  137. scaled xovern(scaled x, integer n);
  138. #define xovern_regmem
  139. scaled xnoverd(scaled xs, integer n, integer d);
  140. #define xnoverd_regmem
  141. long_halfword badness(scaled t, scaled s);
  142. #define badness_regmem
  143.  
  144. void printword(memoryword w);
  145. #define printword_regmem
  146. void showtokenlist(integer p, integer q, integer l);
  147. #define showtokenlist_regmem REGMEM_ZMEM
  148. void STDARGS runaway(void);
  149. #define runaway_regmem REGMEM_ZMEM
  150. long_halfword STDARGS getavail(void);
  151. #define getavail_regmem REGMEM_ZMEM
  152. void STDARGS flushlist(long_halfword p);
  153. #define flushlist_regmem REGMEM_ZMEM
  154. long_halfword STDARGS getnode(integer s);
  155. #define getnode_regmem REGMEM_ZMEM
  156. void STDARGS freenode(long_halfword p, long_halfword s);
  157. #define freenode_regmem REGMEM_ZMEM
  158.  
  159. void sortavail(void);
  160. #define sortavail_regmem REGMEM_ZMEM
  161.  
  162. long_halfword newnullbox(void);
  163. #define newnullbox_regmem REGMEM_ZMEM
  164. long_halfword newrule(void);
  165. #define newrule_regmem REGMEM_ZMEM
  166. long_halfword newligature(quarterword f, quarterword c, halfword q);
  167. #define newligature_regmem REGMEM_ZMEM
  168. long_halfword newligitem(quarterword c);
  169. #define newligitem_regmem REGMEM_ZMEM
  170. long_halfword newdisc(void);
  171. #define newdisc_regmem REGMEM_ZMEM
  172. long_halfword newmath(scaled w, smallnumber s);
  173. #define newmath_regmem REGMEM_ZMEM
  174. long_halfword newspec(halfword p);
  175. #define newspec_regmem REGMEM_ZMEM
  176. long_halfword newparamglue(smallnumber n);
  177. #define newparamglue_regmem REGMEM_ZMEM REGMEM_ZEQTB
  178. long_halfword newglue(halfword q);
  179. #define newglue_regmem REGMEM_ZMEM
  180. long_halfword newskipparam(smallnumber n);
  181. #define newskipparam_regmem REGMEM_ZMEM REGMEM_ZEQTB
  182. long_halfword newkern(scaled w);
  183. #define newkern_regmem REGMEM_ZMEM
  184. long_halfword newpenalty(integer m);
  185. #define newpenalty_regmem REGMEM_ZMEM
  186. #ifdef TEXXET
  187. long_halfword new_edge(smallnumber s, scaled w);
  188. #define new_edge_regmem REGMEM_ZMEM
  189. long_halfword reverse(halfword this_box, halfword t);
  190. #define reverse_regmem REGMEM_ZMEM
  191. #endif
  192. void checkmem(boolean printlocs);
  193. #define checkmem_regmem
  194. void searchmem(halfword p);
  195. #define searchmem_regmem REGMEM_ZEQTB
  196. void shortdisplay(integer p);
  197. #define shortdisplay_regmem REGMEM_ZMEM
  198. void printfontandchar(integer p);
  199. #define printfontandchar_regmem REGMEM_ZMEM
  200. void printmark(integer p);
  201. #define printmark_regmem REGMEM_ZMEM
  202. void printruledimen(scaled d);
  203. #define printruledimen_regmem
  204. void printglue(scaled d, integer order, strnumber s);
  205. #define printglue_regmem
  206. void printspec(integer p, strnumber s);
  207. #define printspec_regmem REGMEM_ZMEM
  208. void printfamandchar(halfword p);
  209. #define printfamandchar_regmem REGMEM_ZMEM
  210. void printdelimiter(halfword p);
  211. #define printdelimiter_regmem REGMEM_ZMEM
  212. void printsubsidiarydata(halfword p, ASCIIcode c);
  213. #define printsubsidiarydata_regmem REGMEM_ZMEM
  214. void printstyle(integer c);
  215. #define printstyle_regmem
  216. void printskipparam(integer n);
  217. #define printskipparam_regmem
  218. void shownodelist(integer p);
  219. #define shownodelist_regmem REGMEM_ZMEM
  220.  
  221. void showbox(halfword p);
  222. #define showbox_regmem REGMEM_ZEQTB
  223. void deletetokenref(halfword p);
  224. #define deletetokenref_regmem REGMEM_ZMEM
  225. void deleteglueref(halfword p);
  226. #define deleteglueref_regmem REGMEM_ZMEM
  227. void flushnodelist(halfword p);
  228. #define flushnodelist_regmem REGMEM_ZMEM
  229. halfword copynodelist(halfword p);
  230. #define copynodelist_regmem REGMEM_ZMEM
  231. void printmode(integer m);
  232. #define printmode_regmem
  233. void pushnest(void);
  234. #define pushnest_regmem
  235. void popnest(void);
  236. #define popnest_regmem REGMEM_ZMEM
  237. void showactivities(void);
  238. #define showactivities_regmem REGMEM_ZMEM REGMEM_ZEQTB
  239. void printparam(integer n);
  240. #define printparam_regmem
  241. void begindiagnostic(void);
  242. #define begindiagnostic_regmem REGMEM_ZEQTB
  243. void enddiagnostic(boolean blankline);
  244. #define enddiagnostic_regmem
  245. void printlengthparam(integer n);
  246. #define printlengthparam_regmem
  247. void printcmdchr(quarterword cmd, halfword chrcode);
  248. #define printcmdchr_regmem
  249. void showeqtb(halfword n);
  250. #define showeqtb_regmem REGMEM_ZMEM REGMEM_ZEQTB
  251. halfword idlookup(integer j, integer l);
  252. #define idlookup_regmem
  253.  
  254. /*void*/ long_halfword primitive(strnumber s, quarterword c, halfword o);
  255. #define primitive_regmem REGMEM_ZEQTB
  256.  
  257. void newsavelevel(groupcode c);
  258. #define newsavelevel_regmem
  259. void eqdestroy(MEDmemoryword w);
  260. #define eqdestroy_regmem REGMEM_ZMEM
  261. void eqsave(halfword p, quarterword l);
  262. #define eqsave_regmem REGMEM_ZEQTB
  263. void eqdefine(halfword p, quarterword t, halfword e);
  264. #define eqdefine_regmem REGMEM_ZEQTB
  265. void eqworddefine(halfword p, integer w);
  266. #define eqworddefine_regmem REGMEM_ZEQTB
  267. void geqdefine(halfword p, quarterword t, halfword e);
  268. #define geqdefine_regmem REGMEM_ZEQTB
  269. void geqworddefine(halfword p, integer w);
  270. #define geqworddefine_regmem REGMEM_ZEQTB
  271. void saveforafter(halfword t);
  272. #define saveforafter_regmem
  273. void restoretrace(halfword p, char *s /*strnumber s*/);
  274. #define restoretrace_regmem
  275. void unsave(void);
  276. #define unsave_regmem REGMEM_ZEQTB
  277.  
  278. void preparemag(void);
  279. #define preparemag_regmem REGMEM_ZEQTB
  280. void tokenshow(halfword p);
  281. #define tokenshow_regmem REGMEM_ZMEM
  282. void printmeaning(void);
  283. #define printmeaning_regmem
  284. void showcurcmdchr(void);
  285. #define showcurcmdchr_regmem
  286. void showcontext(void);
  287. #define showcontext_regmem REGMEM_ZMEM REGMEM_ZEQTB
  288. void begintokenlist(halfword p, quarterword t);
  289. #define begintokenlist_regmem REGMEM_ZMEM REGMEM_ZEQTB
  290. void endtokenlist(void);
  291. #define endtokenlist_regmem
  292. void backinput(void);
  293. #define backinput_regmem REGMEM_ZMEM
  294. void backerror(void);
  295. #define backerror_regmem
  296. void inserror(void);
  297. #define inserror_regmem
  298. void beginfilereading(void);
  299. #define beginfilereading_regmem
  300. void endfilereading(void);
  301. #define endfilereading_regmem
  302. void clearforerrorprompt(void);
  303. #define clearforerrorprompt_regmem
  304. void checkoutervalidity(void);
  305. #define checkoutervalidity_regmem REGMEM_ZMEM
  306.  
  307. /* void */ long_halfword getnext(void);        /* eightbits */
  308. #define getnext_regmem /* REGMEM_ZMEM */ REGMEM_ZEQTB
  309. /* void */ long_halfword gettoken(void);    /* eightbits */
  310. #define gettoken_regmem
  311.  
  312. void firmuptheline(void);
  313. #ifdef ERW_INTERACTION
  314. #define firmuptheline_regmem REGMEM_ZEQTB
  315. #else
  316. #define firmuptheline_regmem
  317. #endif
  318.  
  319. void macrocall(void);
  320. #define macrocall_regmem REGMEM_ZMEM REGMEM_ZEQTB
  321. void insertrelax(void);
  322. #define insertrelax_regmem
  323. void expand(void);
  324. #define expand_regmem REGMEM_ZMEM REGMEM_ZEQTB
  325.  
  326. /* void */ long_halfword getxtoken(void);    /* eightbits */
  327. long_halfword getxnbtoken(boolean);        /* eightbits */
  328. #define getxtoken_regmem
  329. /* void */ long_halfword xtoken(void);        /* eightbits */
  330. #define xtoken_regmem
  331.  
  332. void scanleftbrace(void);
  333. #define scanleftbrace_regmem
  334. void scanoptionalequals(void);
  335. #define scanoptionalequals_regmem
  336. boolean scankeyword(strnumber s);
  337. #define scankeyword_regmem REGMEM_ZMEM
  338. void muerror(void);
  339. #define muerror_regmem
  340. /*void*/ integer scaneightbitint(void);
  341. #define scaneightbitint_regmem
  342. /*void*/ integer scancharnum(void);
  343. #define scancharnum_regmem
  344. /*void*/ integer scanfourbitint(void);
  345. #define scanfourbitint_regmem
  346. /*void*/ integer scanfifteenbitint(void);
  347. #define scanfifteenbitint_regmem
  348. /*void*/ integer scantwentysevenbitint(void);
  349. #define scantwentysevenbitint_regmem
  350. /*void*/ integer scanfontident(void);
  351. #define scanfontident_regmem REGMEM_ZEQTB
  352. /*void*/ integer findfontdimen(boolean writing);
  353. #define findfontdimen_regmem
  354. /*void*/ integer scansomethinginternal(smallnumber level, boolean negative);
  355. #define scansomethinginternal_regmem REGMEM_ZMEM REGMEM_ZEQTB
  356. integer scanint(void);
  357. #define scanint_regmem
  358. /*void*/ integer scandimen(boolean mu, boolean inf, boolean shortcut);
  359. #define scandimen_regmem REGMEM_ZMEM REGMEM_ZEQTB
  360. /*void*/ long_halfword scanglue(smallnumber level);
  361. #define scanglue_regmem REGMEM_ZMEM
  362. long_halfword scanrulespec(void);
  363.  
  364. #define scanrulespec_regmem REGMEM_ZMEM
  365. long_halfword strtoks(poolpointer p);
  366. #define strtoks_regmem REGMEM_ZMEM
  367. long_halfword thetoks(void);
  368. #define thetoks_regmem REGMEM_ZMEM
  369. void insthetoks(void);
  370. #define insthetoks_regmem REGMEM_ZMEM
  371. void convtoks(void);
  372. #define convtoks_regmem REGMEM_ZMEM
  373. long_halfword scantoks(boolean macrodef, boolean xpand);
  374. #define scantoks_regmem REGMEM_ZMEM
  375. void readtoks(integer n, halfword r);
  376. #define readtoks_regmem  REGMEM_ZMEM REGMEM_ZEQTB
  377. void passtext(void);
  378. #define passtext_regmem
  379. void changeiflimit(smallnumber l, halfword p);
  380. #define changeiflimit_regmem REGMEM_ZMEM
  381. void conditional(void);
  382. #define conditional_regmem REGMEM_ZMEM REGMEM_ZEQTB
  383. void beginname(void);
  384. #define beginname_regmem
  385. boolean morename(ASCIIcode c);
  386. #define morename_regmem
  387. void endname(void);
  388. #define endname_regmem
  389. void packfilename(strnumber n, strnumber a, strnumber e);
  390. #define packfilename_regmem
  391. void packbufferedname(smallnumber n, integer a, integer b);
  392. #define packbufferedname_regmem
  393. strnumber makenamestring(void);
  394. #define makenamestring_regmem
  395.  
  396. #if 0
  397.   strnumber amakenamestring(alphafile);
  398.   strnumber bmakenamestring(bytefile);
  399.   strnumber wmakenamestring(wordfile);
  400. #else
  401. # define amakenamestring(afile) (makenamestring())
  402. # define bmakenamestring(bfile) (makenamestring())
  403. # define wmakenamestring(wfile) (makenamestring())
  404. #endif
  405. #define amakenamestring_regmem
  406. #define bmakenamestring_regmem
  407. #define wmakenamestring_regmem
  408.  
  409. void scanfilename(void);
  410. #define scanfilename_regmem
  411. void packjobname(strnumber s);
  412. #define packjobname_regmem
  413. void promptfilename(char *s /*strnumber s*/, strnumber e);
  414. #ifdef ERW_INTERACTION
  415. #define promptfilename_regmem REGMEM_ZEQTB
  416. #else
  417. #define promptfilename_regmem
  418. #endif
  419. void openlogfile(void);
  420. #define openlogfile_regmem REGMEM_ZEQTB
  421. void startinput(void);
  422. #define startinput_regmem REGMEM_ZEQTB
  423.  
  424. internalfontnumber readfontinfo(halfword u, strnumber nom, strnumber aire,
  425.                 scaled s);
  426. #define readfontinfo_regmem REGMEM_ZEQTB
  427.  
  428. void charwarning(internalfontnumber f, eightbits c);
  429. #define charwarning_regmem REGMEM_ZEQTB
  430. long_halfword newcharacter(internalfontnumber f, eightbits c);
  431. #define newcharacter_regmem REGMEM_ZMEM
  432. void dviswap(void);
  433. #define dviswap_regmem
  434. void dvifour(integer x);
  435. #define dvifour_regmem
  436. void dvipop(integer l);
  437. #define dvipop_regmem
  438. void dvifontdef(internalfontnumber f );
  439. #define dvifontdef_regmem
  440. /* void movement(scaled w, eightbits o); */
  441. #define movement_regmem REGMEM_ZMEM
  442. /* void prunemovements(integer l); */
  443. #define prunemovements_regmem REGMEM_ZMEM
  444. /* void specialout(halfword p); */
  445. #define specialout_regmem REGMEM_ZMEM
  446. /* void writeout(halfword p); */
  447. #define writeout_regmem REGMEM_ZMEM
  448.  
  449. void outwhat(halfword p);
  450. #define outwhat_regmem REGMEM_ZMEM
  451.  
  452. /* void hlistout(void); */
  453. #define hlistout_regmem REGMEM_ZMEM
  454. /* void vlistout(void); */
  455. #define vlistout_regmem REGMEM_ZMEM
  456.  
  457. void shipout(halfword p);
  458. #define shipout_regmem REGMEM_ZMEM REGMEM_ZEQTB
  459.  
  460. void scanspec(groupcode c, boolean threecodes);
  461. #define scanspec_regmem
  462. long_halfword hpack(halfword p, scaled w, smallnumber m);
  463. #define hpack_regmem REGMEM_ZMEM REGMEM_ZEQTB
  464. long_halfword vpackage(halfword p, scaled h, smallnumber m, scaled l);
  465. #define vpackage_regmem REGMEM_ZMEM REGMEM_ZEQTB
  466. void appendtovlist(halfword b);
  467. #define appendtovlist_regmem REGMEM_ZMEM REGMEM_ZEQTB
  468. long_halfword newnoad(void);
  469. #define newnoad_regmem REGMEM_ZMEM
  470. long_halfword newstyle(smallnumber s);
  471. #define newstyle_regmem REGMEM_ZMEM
  472. long_halfword newchoice(void);
  473. #define newchoice_regmem REGMEM_ZMEM
  474.  
  475. #if 0    /* (br) unnoetig, nur wegen PASCAL eingefuehrt */
  476. void showinfo(void);
  477. #define showinfo_regmem REGMEM_ZMEM
  478. #endif
  479.  
  480. long_halfword fractionrule(scaled t);
  481. #define fractionrule_regmem REGMEM_ZMEM
  482. long_halfword overbar(halfword b, scaled k, scaled t);
  483. #define overbar_regmem REGMEM_ZMEM
  484. long_halfword charbox(internalfontnumber f, quarterword c);
  485. #define charbox_regmem REGMEM_ZMEM
  486. void stackintobox(halfword b, internalfontnumber f, quarterword c);
  487. #define stackintobox_regmem REGMEM_ZMEM
  488. scaled heightplusdepth(internalfontnumber f, quarterword c);
  489. #define heightplusdepth_regmem
  490. long_halfword vardelimiter(halfword d, smallnumber s, scaled v);
  491. #define vardelimiter_regmem REGMEM_ZMEM REGMEM_ZEQTB
  492. long_halfword rebox(long_halfword b, scaled w);
  493. #define rebox_regmem REGMEM_ZMEM
  494. long_halfword mathglue(halfword g, scaled m);
  495. #define mathglue_regmem REGMEM_ZMEM
  496. void mathkern(halfword p, scaled m);
  497. #define mathkern_regmem REGMEM_ZMEM
  498. void flushmath(void);
  499. #define flushmath_regmem REGMEM_ZMEM
  500.  
  501. #if 0
  502. halfword zcleanbox();
  503. #define cleanbox(p, s) zcleanbox((halfword) (p), (smallnumber) (s))
  504. #endif
  505. #define cleanbox_regmem REGMEM_ZMEM REGMEM_ZEQTB
  506. #if 0    /* math.c */
  507. void zfetch();
  508. #define fetch(a) zfetch((halfword) (a))
  509. #endif
  510. #define fetch_regmem REGMEM_ZMEM REGMEM_ZEQTB
  511. #if 0    /* math.c */
  512. void zmakeover();
  513. #define makeover(q) zmakeover((halfword) (q))
  514. #endif
  515. #define makeover_regmem REGMEM_ZMEM REGMEM_ZEQTB
  516. #if 0    /* math.c */
  517. void zmakeunder();
  518. #define makeunder(q) zmakeunder((halfword) (q))
  519. #endif
  520. #define makeunder_regmem REGMEM_ZMEM REGMEM_ZEQTB
  521. #if 0    /* math.c */
  522. void zmakevcenter();
  523. #define makevcenter(q) zmakevcenter((halfword) (q))
  524. #endif
  525. #define makevcenter_regmem REGMEM_ZMEM REGMEM_ZEQTB
  526. #if 0    /* math.c */
  527. void zmakeradical();
  528. #define makeradical(q) zmakeradical((halfword) (q))
  529. #endif
  530. #define makeradical_regmem REGMEM_ZMEM REGMEM_ZEQTB
  531. #if 0    /* math.c */
  532. void zmakemathaccent();
  533. #define makemathaccent(q) zmakemathaccent((halfword) (q))
  534. #endif
  535. #define makemathaccent_regmem REGMEM_ZMEM
  536. #if 0    /* math.c */
  537. void zmakefraction();
  538. #define makefraction(q) zmakefraction((halfword) (q))
  539. #endif
  540. #define makefraction_regmem REGMEM_ZMEM REGMEM_ZEQTB
  541. #if 0    /* math.c */
  542. scaled zmakeop();
  543. #define makeop(q) zmakeop((halfword) (q))
  544. #endif
  545. #define makeop_regmem REGMEM_ZMEM REGMEM_ZEQTB
  546. #if 0    /* math.c */
  547. void zmakeord();
  548. #define makeord(q) zmakeord((halfword) (q))
  549. #endif
  550. #define makeord_regmem REGMEM_ZMEM
  551. #if 0    /* math.c */
  552. void zmakescripts();
  553. #define makescripts(q, delta) zmakescripts((halfword) (q), (scaled) (delta))
  554. #endif
  555. #define makescripts_regmem REGMEM_ZMEM REGMEM_ZEQTB
  556. #if 0
  557. smallnumber zmakeleftright();
  558. #define makeleftright(q, style, maxd, maxh) \
  559.   zmakeleftright((halfword) (q), (smallnumber) (style), \
  560.         (scaled) (maxd), (scaled) (maxh))
  561. #endif
  562. #define makeleftright_regmem REGMEM_ZMEM REGMEM_ZEQTB
  563. #if 0
  564. void mlisttohlist(smallnumber);        /* math.c */
  565. #endif
  566. #define mlisttohlist_regmem REGMEM_ZMEM REGMEM_ZEQTB
  567.  
  568. void pushalignment(void);
  569. #define pushalignment_regmem REGMEM_ZMEM
  570. void popalignment(void);
  571. #define popalignment_regmem REGMEM_ZMEM
  572. void getpreambletoken(void);
  573. #define getpreambletoken_regmem REGMEM_ZEQTB
  574. void initalign(void);
  575. #define initalign_regmem REGMEM_ZMEM REGMEM_ZEQTB
  576. void initspan(halfword p);
  577. #define initspan_regmem
  578. void initrow(void);
  579. #define initrow_regmem REGMEM_ZMEM
  580. void initcol(void);
  581. #define initcol_regmem REGMEM_ZMEM
  582. boolean fincol(void);
  583. #define fincol_regmem REGMEM_ZMEM
  584. void finrow(void);
  585. #define finrow_regmem REGMEM_ZMEM REGMEM_ZEQTB
  586. void finalign(void);
  587. #define finalign_regmem REGMEM_ZMEM REGMEM_ZEQTB
  588. void alignpeek(void);
  589. #define alignpeek_regmem
  590. long_halfword finiteshrink(halfword p);
  591. #define finiteshrink_regmem REGMEM_ZMEM
  592.  
  593. void trybreak(integer pi, smallnumber breaktype);
  594. #define trybreak_regmem REGMEM_ZMEM REGMEM_ZEQTB
  595.  
  596. void postlinebreak(integer finalwidowpenalty);
  597. #define postlinebreak_regmem REGMEM_ZMEM REGMEM_ZEQTB
  598. smallnumber reconstitute(smallnumber j, smallnumber n, halfword bchar,
  599.               halfword hchar);
  600. #define reconstitute_regmem REGMEM_ZMEM
  601. void hyphenate(void);
  602. #define hyphenate_regmem REGMEM_ZMEM
  603.  
  604. trieopcode newtrieop(smallnumber d, smallnumber n, trieopcode v);
  605. #define newtrieop_regmem
  606. triepointer trienode(triepointer p);
  607. #define trienode_regmem
  608. triepointer compresstrie(triepointer p);
  609. #define compresstrie_regmem
  610. void firstfit(triepointer p);
  611. #define firstfit_regmem
  612. void triepack(triepointer p);
  613. #define triepack_regmem
  614. void triefix(triepointer p);
  615. #define triefix_regmem
  616. void newpatterns(void);
  617. #define newpatterns_regmem REGMEM_ZMEM REGMEM_ZEQTB
  618. void inittrie(void);
  619. #define inittrie_regmem
  620.  
  621. void linebreak(integer finalwidowpenalty);
  622. #define linebreak_regmem REGMEM_ZMEM REGMEM_ZEQTB
  623.  
  624. void newhyphexceptions(void);
  625. #define newhyphexceptions_regmem REGMEM_ZMEM REGMEM_ZEQTB
  626. halfword prunepagetop(halfword p);
  627. #define prunepagetop_regmem REGMEM_ZMEM
  628. halfword vertbreak(halfword p, scaled h, scaled d);
  629. #define vertbreak_regmem REGMEM_ZMEM
  630. long_halfword vsplit(eightbits n, scaled h);
  631. #define vsplit_regmem REGMEM_ZMEM REGMEM_ZEQTB
  632. void printtotals(void);
  633. #define printtotals_regmem
  634. void freezepagespecs(smallnumber s);
  635. #define freezepagespecs_regmem REGMEM_ZEQTB
  636. void boxerror(eightbits n);
  637. #define boxerror_regmem REGMEM_ZEQTB
  638. void ensurevbox(eightbits n);
  639. #define ensurevbox_regmem REGMEM_ZMEM REGMEM_ZEQTB
  640. void fireup(halfword c);
  641. #define fireup_regmem REGMEM_ZMEM REGMEM_ZEQTB
  642. void buildpage(void);
  643. #define buildpage_regmem REGMEM_ZMEM REGMEM_ZEQTB
  644.  
  645. void appspace(void);
  646. #define appspace_regmem REGMEM_ZMEM REGMEM_ZEQTB
  647.  
  648. void insertdollarsign(void);
  649. #define insertdollarsign_regmem
  650. void youcant(void);
  651. #define youcant_regmem
  652. void reportillegalcase(void);
  653. #define reportillegalcase_regmem
  654. boolean privileged(void);
  655. #define privileged_regmem
  656. boolean itsallover(void);
  657. #define itsallover_regmem REGMEM_ZMEM REGMEM_ZEQTB
  658. void appendglue(void);
  659. #define appendglue_regmem REGMEM_ZMEM
  660. void appendkern(void);
  661. #define appendkern_regmem REGMEM_ZMEM
  662. void offsave(void);
  663. #define offsave_regmem REGMEM_ZMEM
  664. void extrarightbrace(void);
  665. #define extrarightbrace_regmem
  666. void normalparagraph(void);
  667. #define normalparagraph_regmem REGMEM_ZEQTB
  668.  
  669. void boxend(integer boxcontext, long_halfword curbox /*zusaetzlich*/);
  670. #define boxend_regmem REGMEM_ZMEM
  671. void beginbox(integer boxcontext);
  672. #define beginbox_regmem REGMEM_ZMEM REGMEM_ZEQTB
  673. void scanbox(integer boxcontext);
  674. #define scanbox_regmem
  675. void package(smallnumber c);
  676. #define package_regmem REGMEM_ZMEM REGMEM_ZEQTB
  677.  
  678. smallnumber normmin(integer h);
  679. #define normmin_regmem
  680. void newgraf(boolean indented);
  681. #define newgraf_regmem REGMEM_ZMEM REGMEM_ZEQTB
  682. void indentinhmode(boolean indented /*void*/);
  683. #define indentinhmode_regmem REGMEM_ZMEM REGMEM_ZEQTB
  684. void headforvmode(void);
  685. #define headforvmode_regmem
  686. void endgraf(void);
  687. #define endgraf_regmem REGMEM_ZEQTB
  688. void begininsertoradjust(void);
  689. #define begininsertoradjust_regmem
  690. void makemark(void);
  691. #define makemark_regmem REGMEM_ZMEM
  692. void appendpenalty(void);
  693. #define appendpenalty_regmem REGMEM_ZMEM
  694. void deletelast(void);
  695. #define deletelast_regmem REGMEM_ZMEM
  696. void unpackage(void);
  697. #define unpackage_regmem REGMEM_ZMEM REGMEM_ZEQTB
  698. void appenditaliccorrection(void);
  699. #define appenditaliccorrection_regmem REGMEM_ZMEM
  700. void appenddiscretionary(void);
  701. #define appenddiscretionary_regmem REGMEM_ZMEM REGMEM_ZEQTB
  702. void builddiscretionary(void);
  703. #define builddiscretionary_regmem REGMEM_ZMEM
  704. void makeaccent(void);
  705. #define makeaccent_regmem REGMEM_ZMEM REGMEM_ZEQTB
  706. void alignerror(void);
  707. #define alignerror_regmem
  708. void noalignerror(void);
  709. #define noalignerror_regmem
  710. void omiterror(void);
  711. #define omiterror_regmem
  712. void doendv(void);
  713. #define doendv_regmem
  714. void cserror(void);
  715. #define cserror_regmem
  716. void pushmath(groupcode c);
  717. #define pushmath_regmem
  718. #define gointoordinarymath_regmem REGMEM_ZEQTB
  719. void initmath(void);
  720. #define initmath_regmem REGMEM_ZMEM REGMEM_ZEQTB
  721. void starteqno(void);
  722. #define starteqno_regmem
  723. void scanmath(halfword p);
  724. #define scanmath_regmem REGMEM_ZMEM REGMEM_ZEQTB
  725. void setmathchar(integer c);
  726. #define setmathchar_regmem REGMEM_ZMEM REGMEM_ZEQTB
  727. void mathlimitswitch(void);
  728. #define mathlimitswitch_regmem REGMEM_ZMEM
  729. void scandelimiter(halfword p, boolean r);
  730. #define scandelimiter_regmem REGMEM_ZMEM REGMEM_ZEQTB
  731. void mathradical(void);
  732. #define mathradical_regmem REGMEM_ZMEM
  733. void mathac(void);
  734. #define mathac_regmem REGMEM_ZMEM REGMEM_ZEQTB
  735. void appendchoices(void);
  736. #define appendchoices_regmem REGMEM_ZMEM
  737. halfword finmlist(halfword p);
  738. #define finmlist_regmem REGMEM_ZMEM
  739. void buildchoices(void);
  740. #define buildchoices_regmem REGMEM_ZMEM
  741. void subsup(void);
  742. #define subsup_regmem REGMEM_ZMEM
  743. void mathfraction(void);
  744. #define mathfraction_regmem REGMEM_ZMEM
  745. void mathleftright(void);
  746. #define mathleftright_regmem REGMEM_ZMEM
  747.  
  748. void check_that_dollar_follows(void);
  749. void aftermath(void);
  750. #define aftermath_regmem REGMEM_ZMEM REGMEM_ZEQTB
  751.  
  752. void resumeafterdisplay(void);
  753. #ifdef ERW_INTERACTION
  754. #define resumeafterdisplay_regmem REGMEM_ZEQTB
  755. #else
  756. #define resumeafterdisplay_regmem
  757. #endif
  758. void getrtoken(void);
  759. #define getrtoken_regmem
  760. /* void trapzeroglue(void); */
  761. long_halfword trapzeroglue(long_halfword);
  762. #define trapzeroglue_regmem REGMEM_ZMEM
  763. void doregistercommand(smallnumber a);
  764. #define doregistercommand_regmem REGMEM_ZMEM REGMEM_ZEQTB
  765. void alteraux(void);
  766. #define alteraux_regmem
  767. void alterprevgraf(void);
  768. #define alterprevgraf_regmem
  769. void alterpagesofar(void);
  770. #define alterpagesofar_regmem
  771. void alterinteger(void);
  772. #define alterinteger_regmem
  773. void alterboxdimen(void);
  774. #define alterboxdimen_regmem REGMEM_ZMEM REGMEM_ZEQTB
  775. void newfont(smallnumber a);
  776. #define newfont_regmem REGMEM_ZEQTB
  777. void newinteraction(void);
  778. #ifdef ERW_INTERACTION
  779. #define newinteraction_regmem REGMEM_ZEQTB
  780. #else
  781. #define newinteraction_regmem
  782. #endif
  783.  
  784. int call_new_patterns(void);
  785. #define call_new_patterns_regmem REGMEM_ZEQTB
  786.  
  787. void prefixedcommand(void);
  788. #define prefixedcommand_regmem REGMEM_ZMEM REGMEM_ZEQTB
  789.  
  790. void doassignments(void);
  791. #define doassignments_regmem
  792. void openorclosein(void);
  793. #define openorclosein_regmem
  794. void issuemessage(void);
  795. #define issuemessage_regmem REGMEM_ZMEM REGMEM_ZEQTB
  796. void shiftcase(void);
  797. #define shiftcase_regmem REGMEM_ZMEM REGMEM_ZEQTB
  798. void showwhatever(void);
  799. #define showwhatever_regmem REGMEM_ZMEM REGMEM_ZEQTB
  800.  
  801. void storefmtfile(void);
  802. #define storefmtfile_regmem REGMEM_ZMEM REGMEM_ZEQTB
  803.  
  804. void newwhatsit(smallnumber s, smallnumber w);
  805. #define newwhatsit_regmem REGMEM_ZMEM
  806. void newwritewhatsit(smallnumber w);
  807. #define newwritewhatsit_regmem REGMEM_ZMEM
  808. void doextension(void);
  809. #define doextension_regmem REGMEM_ZMEM REGMEM_ZEQTB
  810. void fixlanguage(void);
  811. #define fixlanguage_regmem REGMEM_ZMEM REGMEM_ZEQTB
  812. void handlerightbrace(void);
  813. #define handlerightbrace_regmem REGMEM_ZMEM REGMEM_ZEQTB
  814.  
  815. void maincontrol(void);
  816. #define maincontrol_regmem REGMEM_ZMEM REGMEM_ZEQTB
  817.  
  818. void giveerrhelp(void);
  819. #define giveerrhelp_regmem REGMEM_ZEQTB
  820. boolean openfmtfile(void);
  821. #define openfmtfile_regmem
  822. boolean loadfmtfile(void);
  823. #define loadfmtfile_regmem REGMEM_ZMEM REGMEM_ZEQTB
  824. void closefilesandterminate(void);
  825. #define closefilesandterminate_regmem REGMEM_ZEQTB
  826.  
  827. void finalcleanup(void);
  828. #ifdef ERW_INTERACTION
  829. #define finalcleanup_regmem REGMEM_ZMEM REGMEM_ZEQTB
  830. #else
  831. #define finalcleanup_regmem REGMEM_ZMEM
  832. #endif
  833.  
  834. void initprim(void);
  835. #define initprim_regmem REGMEM_ZEQTB
  836.  
  837. void debughelp(void);
  838. #define debughelp_regmem REGMEM_ZMEM REGMEM_ZEQTB
  839.  
  840. void texbody(void);
  841. #define texbody_regmem REGMEM_ZEQTB
  842.  
  843. #ifdef MLTEX
  844. #ifndef effective_char
  845. integer effective_char(integer in_chr);
  846. #define effective_char_regmem REGMEM_ZEQTB
  847. #endif
  848.  
  849. halfword substitute_char_list(halfword p, quarterword c, quarterword f);
  850. #define substitute_char_list_regmem REGMEM_ZEQTB
  851. #endif
  852.  
  853. /*
  854.  * The C compiler ignores most unnecessary casts (i.e., casts of something
  855.  * to its own type).  However, for structures, it doesn't.  Therefore,
  856.  * we have to redefine these two macros so that they don't try to cast
  857.  * the argument (a memoryword) as a memoryword.
  858.  */
  859. #if 0
  860. #undef    eqdestroy
  861. #define    eqdestroy(x)    zeqdestroy(x)
  862. #undef    printword
  863. #define    printword(x)    zprintword(x)
  864. #endif
  865.