home *** CD-ROM | disk | FTP | other *** search
/ Atari FTP / ATARI_FTP_0693.zip / ATARI_FTP_0693 / Tex / texsrc.arc / TEXD.H < prev    next >
C/C++ Source or Header  |  1988-09-14  |  12KB  |  387 lines

  1. /* hacked up by David Dermott for MEGAMAX-c */
  2. #include "tex.h"
  3. #ifdef TRIP
  4. #define MEMMAX 2999L 
  5. #define memmin 0L 
  6. #define bufsize 500L 
  7. #define errorline 64
  8. #define halferrorlin 32 
  9. #define maxprintline 72 
  10. #define stacksize 200L 
  11. #define maxinopen 6
  12. #define fontmax 75L
  13. #define fontmemsize 20000L
  14. #define paramsize 60L 
  15. #define nestsize 40L 
  16. #define maxstrings 3000L 
  17. #define stringvacanc 8000L 
  18. #define poolsize 32000L 
  19. #define savesize 600L 
  20. #define triesize 8000L 
  21. #define dvibufsize 1024 
  22. #define filenamesize 40 
  23. #define poolname "tex.pool" 
  24. #define MEMTOP 2999L 
  25. #else /* not TRIP */
  26. #define MEMMAX 60000L 
  27. #define memmin 0L 
  28. #define bufsize 500L 
  29. #define errorline 79
  30. #define halferrorlin 50 
  31. #define maxprintline 79 
  32. #define stacksize 200L
  33. #define maxinopen 15
  34. #define fontmax 100L
  35. #define fontmemsize 30000L
  36. #define paramsize 60L 
  37. #define nestsize 40L 
  38. #define maxstrings 4400L 
  39. #define stringvacanc 15000L 
  40. #define poolsize 45000L 
  41. #define savesize 2000L 
  42. #define triesize 8000L 
  43. #define dvibufsize 1024 
  44. #define filenamesize 40 
  45. #define poolname "tex.pool" 
  46. #define MEMTOP 50000L 
  47. #endif  /* TRIP */
  48. typedef quarterword ASCIIcode ; 
  49. typedef quarterword eightbits ; 
  50. typedef integer poolpointer ; 
  51. typedef integer strnumber ; 
  52. typedef integer scaled ; 
  53. typedef integer nonnegativei ; 
  54. typedef quarterword smallnumber ; 
  55. typedef quarterword twochoices ; 
  56. typedef quarterword fourchoices ; 
  57. typedef quarterword glueord ; 
  58. typedef struct { int modefield ; 
  59.   halfword headfield, tailfield ; 
  60.   integer pgfield, auxfield, mlfield ; 
  61. } liststaterec ; 
  62. typedef quarterword groupcode ; 
  63. typedef struct { quarterword statefield, indexfield ; 
  64.   halfword startfield, locfield, limitfield, namefield ; 
  65. } instaterecor ; 
  66. typedef integer internalfont ; 
  67. typedef integer dviindex ; 
  68. typedef integer triepointer ; 
  69. typedef halfword hyphpointer ; 
  70. EXTERN integer bad ; 
  71. EXTERN ASCIIcode xord[128] ; 
  72. EXTERN char xchr[256] ; 
  73. EXTERN char nameoffile[filenamesize + 1], realnameoffi[filenamesize + 1] ; 
  74. EXTERN integer namelength ; 
  75. EXTERN ASCIIcode buffer[bufsize + 1] ; 
  76. EXTERN integer first ; 
  77. EXTERN integer last ; 
  78. EXTERN integer maxbufstack ; 
  79. /*EXTERN ASCIIcode strpool[poolsize + 1] ; */
  80. EXTERN ASCIIcode *strpool ; 
  81. /*EXTERN poolpointer strstart[maxstrings + 1] ; */
  82. EXTERN poolpointer *strstart ; 
  83. EXTERN poolpointer poolptr ; 
  84. EXTERN strnumber strptr ; 
  85. EXTERN poolpointer initpoolptr ; 
  86. EXTERN strnumber initstrptr ; 
  87. #ifdef INITEX
  88. EXTERN alphafile poolfile ; 
  89. #endif /* INITEX */
  90. EXTERN alphafile logfile ; 
  91. EXTERN quarterword selector ; 
  92. EXTERN quarterword dig[23] ; 
  93. EXTERN integer tally ; 
  94. EXTERN integer termoffset ; 
  95. EXTERN integer fileoffset ; 
  96. EXTERN ASCIIcode trickbuf[errorline + 1] ; 
  97. EXTERN integer trickcount ; 
  98. EXTERN integer firstcount ; 
  99. EXTERN quarterword interaction ; 
  100. EXTERN boolean deletionsall ; 
  101. EXTERN quarterword history ; 
  102. EXTERN int errorcount ; 
  103. EXTERN strnumber helpline[6] ; 
  104. EXTERN quarterword helpptr ; 
  105. EXTERN boolean useerrhelp ; 
  106. EXTERN integer interrupt ; 
  107. EXTERN boolean OKtointerrup ; 
  108. EXTERN boolean aritherror ; 
  109. EXTERN scaled remainder ; 
  110. EXTERN halfword tempptr ; 
  111. /*EXTERN memoryword zzzaa[memmax - memmin + 1] ; */
  112. EXTERN memoryword *zzzaa ; 
  113. EXTERN halfword lomemmax ; 
  114. EXTERN halfword himemmin ; 
  115. EXTERN integer varused, dynused ; 
  116. EXTERN halfword avail ; 
  117. EXTERN halfword memend ; 
  118. EXTERN halfword rover ; 
  119. #ifdef DEBUG
  120. /*EXTERN boolean zzzab[memmax - memmin + 1], *freearr ; */
  121. EXTERN boolean *zzzab, *freearr ; 
  122. /*EXTERN boolean zzzac[memmax - memmin + 1], *wasfree ; */
  123. EXTERN boolean *zzzac, *wasfree ; 
  124. EXTERN halfword wasmemend, waslomax, washimin ; 
  125. EXTERN boolean panicking ; 
  126. #endif /* DEBUG */
  127. EXTERN integer fontinshortd ; 
  128. EXTERN integer depththresho ; 
  129. EXTERN integer breadthmax ; 
  130. EXTERN liststaterec nest[nestsize + 1] ; 
  131. EXTERN integer nestptr ; 
  132. EXTERN integer maxneststack ; 
  133. EXTERN liststaterec curlist ; 
  134. EXTERN int shownmode ; 
  135. EXTERN quarterword oldsetting ; 
  136. /*EXTERN memoryword zeqtb[5977] ; */
  137. EXTERN memoryword *zeqtb ; 
  138. /*EXTERN quarterword zzzad[710], *xeqlevel ; */
  139. EXTERN quarterword *zzzad, *xeqlevel ; 
  140. /*EXTERN twohalves zzzae[3267], *hash ; */
  141. EXTERN twohalves *zzzae, *hash ; 
  142. EXTERN halfword hashused ; 
  143. EXTERN boolean nonewcontrol ; 
  144. EXTERN integer cscount ; 
  145. /*EXTERN memoryword savestack[savesize + 1] ; */
  146. EXTERN memoryword *savestack ; 
  147. EXTERN integer saveptr ; 
  148. EXTERN integer maxsavestack ; 
  149. EXTERN quarterword curlevel ; 
  150. EXTERN groupcode curgroup ; 
  151. EXTERN integer curboundary ; 
  152. EXTERN integer magset ; 
  153. EXTERN eightbits curcmd ; 
  154. EXTERN halfword curchr ; 
  155. EXTERN halfword curcs ; 
  156. EXTERN halfword curtok ; 
  157. /*EXTERN instaterecor inputstack[stacksize + 1] ; */
  158. EXTERN instaterecor *inputstack ; 
  159. EXTERN integer inputptr ; 
  160. EXTERN integer maxinstack ; 
  161. EXTERN instaterecor curinput ; 
  162. EXTERN integer inopen ; 
  163. EXTERN alphafile inputfile[maxinopen + 1] ; 
  164. EXTERN integer line ; 
  165. EXTERN integer linestack[maxinopen + 1] ; 
  166. EXTERN quarterword scannerstatu ; 
  167. EXTERN halfword warningindex ; 
  168. EXTERN halfword defref ; 
  169. EXTERN halfword paramstack[paramsize + 1] ; 
  170. EXTERN integer paramptr ; 
  171. EXTERN integer maxparamstac ; 
  172. EXTERN integer alignstate ; 
  173. EXTERN integer baseptr ; 
  174. EXTERN halfword parloc ; 
  175. EXTERN halfword partoken ; 
  176. EXTERN boolean forceeof ; 
  177. EXTERN halfword curmark[5] ; 
  178. EXTERN quarterword longstate ; 
  179. EXTERN halfword pstack[9] ; 
  180. EXTERN integer curval ; 
  181. EXTERN quarterword curvallevel ; 
  182. EXTERN smallnumber radix ; 
  183. EXTERN glueord curorder ; 
  184. EXTERN alphafile readfile[16] ; 
  185. EXTERN quarterword readopen[17] ; 
  186. EXTERN halfword condptr ; 
  187. EXTERN quarterword iflimit ; 
  188. EXTERN smallnumber curif ; 
  189. EXTERN integer ifline ; 
  190. EXTERN integer skipline ; 
  191. EXTERN strnumber curname ; 
  192. EXTERN strnumber curarea ; 
  193. EXTERN strnumber curext ; 
  194. EXTERN poolpointer areadelimite ; 
  195. EXTERN poolpointer extdelimiter ; 
  196. EXTERN ccharpointer TEXformatdef ; 
  197. EXTERN boolean nameinprogre ; 
  198. EXTERN strnumber jobname ; 
  199. EXTERN bytefile dvifile ; 
  200. EXTERN strnumber outputfilena ; 
  201. EXTERN strnumber logname ; 
  202. EXTERN bytefile tfmfile ; 
  203. /*EXTERN memoryword fontinfo[fontmemsize + 1] ; */
  204. EXTERN memoryword *fontinfo ; 
  205. EXTERN integer fmemptr ; 
  206. EXTERN internalfont fontptr ; 
  207. /*EXTERN fourquarters fontcheck[fontmax + 1] ; */
  208. EXTERN fourquarters *fontcheck ; 
  209. /*EXTERN scaled fontsize[fontmax + 1] ; */
  210. EXTERN scaled *fontsize ; 
  211. /*EXTERN scaled fontdsize[fontmax + 1] ; */
  212. EXTERN scaled *fontdsize ; 
  213. /*EXTERN halfword fontparams[fontmax + 1] ; */
  214. EXTERN halfword *fontparams ; 
  215. /*EXTERN strnumber fontname[fontmax + 1] ; */
  216. EXTERN strnumber *fontname ; 
  217. /*EXTERN strnumber fontarea[fontmax + 1] ; */
  218. EXTERN strnumber *fontarea ; 
  219. /*EXTERN eightbits fontbc[fontmax + 1] ; */
  220. EXTERN eightbits *fontbc ; 
  221. /*EXTERN eightbits fontec[fontmax + 1] ; */
  222. EXTERN eightbits *fontec ; 
  223. /*EXTERN halfword fontglue[fontmax + 1] ; */
  224. EXTERN halfword *fontglue ; 
  225. /*EXTERN boolean fontused[fontmax + 1] ; */
  226. EXTERN boolean *fontused ; 
  227. /*EXTERN integer hyphenchar[fontmax + 1] ; */
  228. EXTERN integer *hyphenchar ; 
  229. /*EXTERN integer skewchar[fontmax + 1] ; */
  230. EXTERN integer *skewchar ; 
  231. /*EXTERN integer charbase[fontmax + 1] ; */
  232. EXTERN integer *charbase ; 
  233. /*EXTERN integer widthbase[fontmax + 1] ; */
  234. EXTERN integer *widthbase ; 
  235. /*EXTERN integer heightbase[fontmax + 1] ; */
  236. EXTERN integer *heightbase ; 
  237. /*EXTERN integer depthbase[fontmax + 1] ; */
  238. EXTERN integer *depthbase ; 
  239. /*EXTERN integer italicbase[fontmax + 1] ; */
  240. EXTERN integer *italicbase ; 
  241. /*EXTERN integer ligkernbase[fontmax + 1] ; */
  242. EXTERN integer *ligkernbase ; 
  243. /*EXTERN integer kernbase[fontmax + 1] ; */
  244. EXTERN integer *kernbase ; 
  245. /*EXTERN integer extenbase[fontmax + 1] ; */
  246. EXTERN integer *extenbase ; 
  247. /*EXTERN integer parambase[fontmax + 1] ; */
  248. EXTERN integer *parambase ; 
  249. EXTERN fourquarters nullcharacte ; 
  250. EXTERN integer totalpages ; 
  251. EXTERN scaled maxv ; 
  252. EXTERN scaled maxh ; 
  253. EXTERN integer maxpush ; 
  254. EXTERN integer lastbop ; 
  255. EXTERN integer deadcycles ; 
  256. EXTERN boolean doingleaders ; 
  257. EXTERN quarterword c, f ; 
  258. EXTERN scaled ruleht, ruledp, rulewd ; 
  259. EXTERN halfword g ; 
  260. EXTERN integer lq, lr ; 
  261. EXTERN eightbits dvibuf[dvibufsize + 1] ; 
  262. EXTERN dviindex halfbuf ; 
  263. EXTERN dviindex dvilimit ; 
  264. EXTERN dviindex dviptr ; 
  265. EXTERN integer dvioffset ; 
  266. EXTERN integer dvigone ; 
  267. EXTERN halfword downptr, rightptr ; 
  268. EXTERN scaled dvih, dviv ; 
  269. EXTERN scaled curh, curv ; 
  270. EXTERN internalfont dvif ; 
  271. EXTERN integer curs ; 
  272. EXTERN scaled totalstretch[4], totalshrink[4] ; 
  273. EXTERN halfword adjusttail ; 
  274. EXTERN integer packbeginlin ; 
  275. EXTERN twohalves emptyfield ; 
  276. EXTERN fourquarters nulldelimite ; 
  277. EXTERN halfword curmlist ; 
  278. EXTERN smallnumber curstyle ; 
  279. EXTERN smallnumber cursize ; 
  280. EXTERN scaled curmu ; 
  281. EXTERN boolean mlistpenalti ; 
  282. EXTERN internalfont curf ; 
  283. EXTERN quarterword curc ; 
  284. EXTERN fourquarters curi ; 
  285. EXTERN integer magicoffset ; 
  286. EXTERN halfword curalign ; 
  287. EXTERN halfword curspan ; 
  288. EXTERN halfword curloop ; 
  289. EXTERN halfword alignptr ; 
  290. EXTERN halfword curhead, curtail ; 
  291. EXTERN halfword justbox ; 
  292. EXTERN halfword passive ; 
  293. EXTERN halfword printednode ; 
  294. EXTERN halfword passnumber ; 
  295. EXTERN scaled activewidth[7] ; 
  296. EXTERN scaled curactivewid[7] ; 
  297. EXTERN scaled background[7] ; 
  298. EXTERN scaled breakwidth[7] ; 
  299. EXTERN boolean noshrinkerro ; 
  300. EXTERN halfword curp ; 
  301. EXTERN boolean secondpass ; 
  302. EXTERN integer threshold ; 
  303. EXTERN scaled minimaldemer[4] ; 
  304. EXTERN scaled minimumdemer ; 
  305. EXTERN halfword bestplace[4] ; 
  306. EXTERN halfword bestplline[4] ; 
  307. EXTERN scaled discwidth ; 
  308. EXTERN halfword easyline ; 
  309. EXTERN halfword lastspeciall ; 
  310. EXTERN scaled firstwidth ; 
  311. EXTERN scaled secondwidth ; 
  312. EXTERN scaled firstindent ; 
  313. EXTERN scaled secondindent ; 
  314. EXTERN halfword bestbet ; 
  315. EXTERN integer fewestdemeri ; 
  316. EXTERN halfword bestline ; 
  317. EXTERN integer actualloosen ; 
  318. EXTERN integer linediff ; 
  319. EXTERN halfword hc[66] ; 
  320. EXTERN smallnumber hn ; 
  321. EXTERN halfword ha, hb ; 
  322. EXTERN internalfont hf ; 
  323. EXTERN ASCIIcode hu[64] ; 
  324. EXTERN integer hyfchar ; 
  325. EXTERN quarterword hyf[65] ; 
  326. EXTERN smallnumber hyphenpassed ; 
  327. /*EXTERN twohalves trie[triesize + 1] ; */
  328. EXTERN twohalves *trie ; 
  329. EXTERN smallnumber hyfdistance[256] ; 
  330. EXTERN smallnumber hyfnum[256] ; 
  331. EXTERN quarterword hyfnext[256] ; 
  332. EXTERN strnumber hyphword[308] ; 
  333. EXTERN halfword hyphlist[308] ; 
  334. EXTERN hyphpointer hyphcount ; 
  335. #ifdef INITEX
  336. EXTERN quarterword trieophash[511] ; 
  337. #endif /* INITEX */
  338. EXTERN quarterword trieopptr ; 
  339. #ifdef INITEX
  340. /*EXTERN ASCIIcode triec[triesize + 1] ; */
  341. EXTERN ASCIIcode *triec ; 
  342. /*EXTERN quarterword trieo[triesize + 1] ; */
  343. EXTERN quarterword *trieo ; 
  344. /*EXTERN triepointer triel[triesize + 1] ; */
  345. EXTERN triepointer *triel ; 
  346. /*EXTERN triepointer trier[triesize + 1] ; */
  347. EXTERN triepointer *trier ; 
  348. EXTERN triepointer trieptr ; 
  349. #endif /* INITEX */
  350. #ifdef INITEX
  351. /*EXTERN triepointer triehash[triesize + 1] ; */
  352. EXTERN triepointer *triehash ; 
  353. #endif /* INITEX */
  354. #ifdef INITEX
  355. /*EXTERN boolean trietaken[triesize + 1] ; */
  356. EXTERN boolean *trietaken ; 
  357. EXTERN triepointer triemin ; 
  358. #endif /* INITEX */
  359. EXTERN triepointer triemax ; 
  360. EXTERN scaled bestheightpl ; 
  361. EXTERN halfword pagetail ; 
  362. EXTERN quarterword pagecontents ; 
  363. EXTERN scaled pagemaxdepth ; 
  364. EXTERN halfword bestpagebrea ; 
  365. EXTERN integer leastpagecos ; 
  366. EXTERN scaled bestsize ; 
  367. EXTERN scaled pagesofar[8] ; 
  368. EXTERN halfword lastglue ; 
  369. EXTERN integer lastpenalty ; 
  370. EXTERN scaled lastkern ; 
  371. EXTERN integer insertpenalt ; 
  372. EXTERN boolean outputactive ; 
  373. EXTERN halfword curbox ; 
  374. EXTERN halfword aftertoken ; 
  375. EXTERN boolean longhelpseen ; 
  376. EXTERN strnumber formatident ; 
  377. EXTERN wordfile fmtfile ; 
  378. EXTERN integer readyalready ; 
  379. EXTERN alphafile writefile[16] ; 
  380. EXTERN boolean writeopen[18] ; 
  381. EXTERN halfword writeloc ; 
  382. EXTERN poolpointer editnamestar ; 
  383. EXTERN integer editnameleng, editline, tfmtemp ; 
  384. EXTERN integer memtop;
  385. EXTERN integer memmax;
  386. #include "coerce.h"
  387.