Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

483 lines
22 KiB

  1. /* asmfcn.h -- include file for microsoft 80x86 assembler
  2. **
  3. ** microsoft (r) macro assembler
  4. ** copyright (c) microsoft corp 1986. all rights reserved
  5. **
  6. ** randy nevin
  7. */
  8. // Included here because allocs are mapped depending on target
  9. #include <malloc.h>
  10. #ifndef DECLSPEC_NORETURN
  11. #if (_MSC_VER >= 1200) && !defined(MIDL_PASS)
  12. #define DECLSPEC_NORETURN __declspec(noreturn)
  13. #else
  14. #define DECLSPEC_NORETURN
  15. #endif
  16. #endif
  17. #ifdef FCNDEF
  18. #define PARMS(p) p
  19. #else
  20. #define PARMS(p) /* no argument checking */
  21. #endif
  22. // UCHAR *strncpy PARMS((UCHAR *, UCHAR *, int));
  23. // UCHAR *strcat PARMS((UCHAR *, UCHAR *));
  24. // UCHAR *strdup PARMS((UCHAR *));
  25. // UCHAR *strcpy PARMS((UCHAR *, UCHAR *));
  26. // int strcmp PARMS((UCHAR *, UCHAR *));
  27. // int strlen PARMS((UCHAR *));
  28. // UCHAR *malloc PARMS(( size_t) );
  29. // UCHAR *calloc PARMS(( USHORT, USHORT) );
  30. // VOID free PARMS(( UCHAR *) );
  31. // UCHAR *realloc PARMS(( UCHAR *, USHORT) );
  32. UCHAR FAR * PASCAL CODESIZE talloc PARMS(( USHORT) );
  33. DSCREC * PASCAL CODESIZE dalloc PARMS((void));
  34. VOID PASCAL CODESIZE macroexpand PARMS((struct MC_s *));
  35. char * PASCAL CODESIZE passatom PARMS((char *));
  36. char * PASCAL CODESIZE radixconvert PARMS(( OFFSET, char *));
  37. char * PASCAL CODESIZE xxradixconvert PARMS(( OFFSET, char *));
  38. VOID PASCAL CODESIZE readfile PARMS(( void) );
  39. char * PASCAL CODESIZE scanvalue PARMS((char *));
  40. char * PASCAL CODESIZE storetrans PARMS((UCHAR, char *, char *));
  41. VOID PASCAL CODESIZE addLocal PARMS ((SYMBOL FARSYM *));
  42. UCHAR PASCAL CODESIZE argblank PARMS(( void) );
  43. VOID PASCAL CODESIZE buildFrame PARMS(( void) );
  44. VOID PASCAL CODESIZE catstring PARMS(( void ));
  45. UCHAR PASCAL CODESIZE checkendm PARMS(( void) );
  46. UCHAR PASCAL CODESIZE checkline PARMS(( UCHAR) );
  47. VOID PASCAL CODESIZE commDefine PARMS(( void ));
  48. UCHAR PASCAL CODESIZE createequ PARMS(( UCHAR));
  49. VOID PASCAL CODESIZE doLine PARMS((char *));
  50. UCHAR PASCAL CODESIZE emitcleanq PARMS(( UCHAR) );
  51. UCHAR PASCAL CODESIZE emitdup PARMS((struct duprec FARSYM *));
  52. VOID PASCAL CODESIZE emit66 PARMS ((struct psop *,struct psop *));
  53. VOID PASCAL emit67 PARMS ((struct psop *,struct psop *));
  54. char PASCAL emitroomfor PARMS((UCHAR));
  55. VOID PASCAL CODESIZE endCurSeg PARMS(( void) );
  56. UCHAR PASCAL CODESIZE endstring PARMS(( void) );
  57. void PASCAL CODESIZE evalconst PARMS((void));
  58. char PASCAL CODESIZE evalstring PARMS((void));
  59. UCHAR PASCAL CODESIZE fixroom PARMS(( UCHAR) );
  60. char CODESIZE inset PARMS((char, char *));
  61. char PASCAL CODESIZE opcodesearch PARMS((void));
  62. SHORT PASCAL CODESIZE shortrange PARMS((struct parsrec *));
  63. char PASCAL CODESIZE symsearch PARMS((void));
  64. char CODESIZE symsrch PARMS((void));
  65. UCHAR PASCAL CODESIZE testlist PARMS(( void) );
  66. UCHAR PASCAL CODESIZE test4TM PARMS(( void) );
  67. VOID PASCAL CODESIZE addglist PARMS(( void) );
  68. VOID PASCAL CODESIZE addseglist PARMS((SYMBOL FARSYM *));
  69. USHORT PASCAL CODESIZE argscan PARMS(( UCHAR *));
  70. SHORT PASCAL assignlinknum PARMS((SYMBOL FARSYM *));
  71. VOID PASCAL CODESIZE assignvalue PARMS(( void) );
  72. VOID PASCAL CODESIZE assumeitem PARMS(( void) );
  73. VOID PASCAL bcddigit PARMS((struct realrec *));
  74. VOID PASCAL bcdeval PARMS((struct realrec *));
  75. VOID PASCAL CODESIZE begdupdisplay PARMS((struct duprec FARSYM *));
  76. VOID PASCAL bumpline PARMS(( void) );
  77. VOID PASCAL CODESIZE byteimmcheck PARMS((struct psop *));
  78. VOID PASCAL CODESIZE checkmatch PARMS((DSCREC *, DSCREC *));
  79. SHORT PASCAL CODESIZE checkRes PARMS((void));
  80. SHORT PASCAL CODESIZE checksize PARMS((struct parsrec *));
  81. VOID PASCAL CODESIZE emitnop PARMS((void));
  82. VOID PASCAL CODESIZE chkheading PARMS(( USHORT) );
  83. VOID PASCAL closeOpenFiles PARMS(( void ) );
  84. VOID PASCAL CODESIZE comdir PARMS(( void) );
  85. VOID PASCAL CODESIZE commentbuild PARMS(( void) );
  86. VOID PASCAL CODESIZE conddir PARMS(( void) );
  87. VOID PASCAL CODESIZE copyascii PARMS(( void) );
  88. VOID PASCAL CODESIZE copystring PARMS((char *));
  89. VOID PASCAL CODESIZE copytext PARMS((char *));
  90. VOID PASCAL CODESIZE createitem PARMS(( UCHAR, UCHAR));
  91. VOID PASCAL CODESIZE createMC PARMS(( USHORT) );
  92. VOID PASCAL CODESIZE createsym PARMS((void));
  93. VOID PASCAL CODESIZE createStack PARMS(( void) );
  94. VOID PASCAL crefdef PARMS(( void) );
  95. VOID PASCAL crefline PARMS(( void) );
  96. VOID PASCAL crefnew PARMS(( UCHAR) );
  97. VOID PASCAL crefout PARMS(( void) );
  98. VOID PASCAL CODESIZE datacon PARMS((struct dsr *));
  99. VOID PASCAL CODESIZE datadb PARMS((struct dsr *));
  100. VOID PASCAL CODESIZE datadefine PARMS(( void) );
  101. VOID PASCAL CODESIZE dataitem PARMS((struct datarec *));
  102. VOID PASCAL definesym PARMS(( UCHAR *) );
  103. VOID PASCAL defwordsize PARMS( (void) );
  104. VOID PASCAL CODESIZE defineLocals PARMS(( void) );
  105. VOID PASCAL CODESIZE deletemacro PARMS((SYMBOL FARSYM *));
  106. VOID PASCAL CODESIZE dfree PARMS((UCHAR *));
  107. VOID PASCAL dispdatasize PARMS((SYMBOL FARSYM *));
  108. VOID PASCAL CODESIZE displength PARMS(( OFFSET) );
  109. VOID PASCAL CODESIZE displlong PARMS((struct duprec FARSYM *));
  110. VOID PASCAL CODESIZE dispstandard PARMS((SYMBOL FARSYM *));
  111. VOID PASCAL CODESIZE dispsym PARMS(( USHORT, SYMBOL FARSYM *));
  112. VOID PASCAL CODESIZE disptab PARMS(( void) );
  113. VOID PASCAL CODESIZE dispword PARMS((OFFSET ));
  114. VOID PASCAL dopass PARMS(( void) );
  115. VOID PASCAL dumpname PARMS((void));
  116. VOID PASCAL dumpCodeview PARMS(( void ));
  117. VOID PASCAL CODESIZE dupdisplay PARMS((struct duprec FARSYM *));
  118. VOID CODESIZE ebuffer PARMS(( USHORT, UCHAR *, UCHAR *));
  119. VOID PASCAL CODESIZE edupitem PARMS((struct duprec FARSYM *));
  120. VOID PASCAL CODESIZE elsedir PARMS(( void) );
  121. VOID PASCAL CODESIZE emitOP PARMS((struct psop *));
  122. VOID PASCAL CODESIZE emitcall PARMS((UCHAR, UCHAR, UCHAR, UCHAR, struct parsrec *));
  123. VOID PASCAL CODESIZE emitcbyte PARMS(( UCHAR) );
  124. VOID PASCAL CODESIZE emitcword PARMS(( OFFSET) );
  125. VOID PASCAL emitEndPass1 PARMS((void));
  126. VOID PASCAL emitdone PARMS((DSCREC *));
  127. VOID PASCAL CODESIZE emitdumpdata PARMS(( UCHAR) );
  128. VOID PASCAL CODESIZE emitescape PARMS((DSCREC *, UCHAR));
  129. VOID PASCAL CODESIZE emitextern PARMS((SYMBOL FARSYM *));
  130. VOID PASCAL CODESIZE emitfixup PARMS((struct psop *));
  131. VOID PASCAL CODESIZE emitfltfix PARMS(( USHORT, USHORT, USHORT *));
  132. VOID PASCAL CODESIZE emitgetspec PARMS((SYMBOL FARSYM * *, SYMBOL FARSYM * *, struct psop *));
  133. VOID PASCAL CODESIZE emitglobal PARMS((SYMBOL FARSYM *));
  134. VOID PASCAL CODESIZE emitgroup PARMS((SYMBOL FARSYM *));
  135. VOID PASCAL CODESIZE emitlong PARMS((struct duprec FARSYM *));
  136. VOID PASCAL CODESIZE emitlname PARMS((SYMBOL FARSYM *));
  137. VOID PASCAL CODESIZE emitline PARMS((void));
  138. VOID PASCAL CODESIZE emitmodrm PARMS(( USHORT, USHORT, USHORT) );
  139. VOID PASCAL CODESIZE emitmove PARMS((UCHAR, char, struct parsrec *));
  140. VOID PASCAL CODESIZE emitname PARMS((NAME FAR *));
  141. VOID PASCAL CODESIZE emitobject PARMS((struct psop *));
  142. VOID PASCAL CODESIZE emitopcode PARMS((UCHAR));
  143. VOID PASCAL CODESIZE emitrest PARMS((DSCREC *));
  144. VOID PASCAL CODESIZE emitsegment PARMS((SYMBOL FARSYM *));
  145. VOID PASCAL CODESIZE emitsetrecordtype PARMS(( UCHAR) );
  146. VOID PASCAL CODESIZE emitsindex PARMS(( USHORT) );
  147. VOID PASCAL CODESIZE emitsize PARMS((USHORT));
  148. VOID PASCAL CODESIZE emitsword PARMS(( USHORT) );
  149. VOID PASCAL CODESIZE emitSymbol PARMS((SYMBOL FARSYM *));
  150. VOID PASCAL makedefaultdsc PARMS(( void) );
  151. VOID PASCAL CODESIZE emodule PARMS((NAME FAR *));
  152. VOID PASCAL CODESIZE enddir PARMS(( void) );
  153. VOID PASCAL CODESIZE enddupdisplay PARMS(( void) );
  154. VOID PASCAL CODESIZE endifdir PARMS(( void) );
  155. VOID PASCAL CODESIZE equdefine PARMS(( void) );
  156. VOID PASCAL CODESIZE equtext PARMS((USHORT));
  157. VOID PASCAL CODESIZE error PARMS(( USHORT, UCHAR *) );
  158. DECLSPEC_NORETURN
  159. VOID PASCAL CODESIZE errorc PARMS(( USHORT) );
  160. VOID PASCAL CODESIZE errorcSYN PARMS(( void) );
  161. VOID PASCAL CODESIZE errorn PARMS(( USHORT) );
  162. VOID PASCAL error_line PARMS((struct _iobuf *, UCHAR *, short) );
  163. VOID PASCAL errordisplay PARMS(( void) );
  164. VOID PASCAL CODESIZE errorforward PARMS((DSCREC *));
  165. VOID PASCAL CODESIZE errorimmed PARMS((DSCREC *));
  166. VOID PASCAL CODESIZE errorover PARMS((char));
  167. VOID PASCAL CODESIZE errorsegreg PARMS((DSCREC *));
  168. VOID PASCAL CODESIZE evaltop PARMS((struct evalrec *));
  169. VOID PASCAL CODESIZE errdir PARMS(( void) );
  170. VOID PASCAL CODESIZE evendir PARMS(( SHORT) );
  171. VOID PASCAL CODESIZE exitmdir PARMS(( void) );
  172. VOID CODESIZE expandTM PARMS((char *));
  173. VOID PASCAL CODESIZE externflag PARMS(( UCHAR, UCHAR) );
  174. VOID PASCAL CODESIZE externitem PARMS(( void) );
  175. VOID PASCAL ferrorc PARMS (( USHORT ));
  176. VOID PASCAL CODESIZE fltmodrm PARMS(( USHORT, struct fltrec *));
  177. VOID PASCAL CODESIZE fltopcode PARMS(( void) );
  178. VOID PASCAL CODESIZE fltscan PARMS((struct fltrec *));
  179. VOID PASCAL CODESIZE fltwait PARMS(( UCHAR) );
  180. VOID PASCAL CODESIZE flushbuffer PARMS(( void) );
  181. VOID PASCAL CODESIZE flushfixup PARMS(( void) );
  182. SHORT PASCAL CODESIZE fndir PARMS((void));
  183. SHORT PASCAL CODESIZE fndir2 PARMS((void));
  184. SHORT PASCAL CODESIZE fnoper PARMS((void));
  185. SHORT PASCAL CODESIZE fnPtr PARMS((SHORT));
  186. SHORT PASCAL CODESIZE fnsize PARMS((void));
  187. SHORT PASCAL CODESIZE fnspar PARMS((void));
  188. VOID PASCAL CODESIZE foldsigns PARMS((struct exprec *));
  189. VOID PASCAL CODESIZE forceaccum PARMS((DSCREC *));
  190. VOID PASCAL CODESIZE forceimmed PARMS((DSCREC *));
  191. VOID CODESIZE fMemcpy PARMS((void FAR *, void FAR *, SHORT));
  192. VOID PASCAL CODESIZE forcesize PARMS((DSCREC *));
  193. int PASCAL CODESIZE freeAFileHandle PARMS( (void) );
  194. VOID PASCAL CODESIZE getinvenv PARMS(( void) );
  195. char * PASCAL CODESIZE getTMstring PARMS ((void));
  196. SHORT PASCAL getprec PARMS((char));
  197. VOID PASCAL CODESIZE groupdefine PARMS(( void) );
  198. VOID PASCAL CODESIZE groupitem PARMS(( void) );
  199. VOID PASCAL CODESIZE idxcheck PARMS(( UCHAR, struct exprec *));
  200. VOID PASCAL CODESIZE includeLib PARMS(( void) );
  201. VOID PASCAL CODESIZE includedir PARMS(( void) );
  202. VOID PASCAL initproc PARMS(( void) );
  203. VOID PASCAL CODESIZE initrs PARMS((struct dsr *));
  204. VOID PASCAL CODESIZE instring PARMS((void));
  205. VOID PASCAL CODESIZE irpcopy PARMS(( void) );
  206. VOID PASCAL CODESIZE irpxbuild PARMS(( void) );
  207. VOID PASCAL CODESIZE irpxdir PARMS(( void) );
  208. VOID PASCAL CODESIZE itemdisplay PARMS((struct duprec FARSYM *));
  209. VOID PASCAL CODESIZE labelcreate PARMS((USHORT, char));
  210. SHORT CODESIZE langFet PARMS(( void));
  211. VOID CODESIZE lineExpand PARMS((struct MC_s *, char FAR *));
  212. VOID PASCAL CODESIZE linkfield PARMS((struct duprec FARSYM *));
  213. VOID PASCAL CODESIZE listfree PARMS((TEXTSTR FAR *));
  214. VOID PASCAL listline PARMS(( void) );
  215. VOID PASCAL listopen PARMS(( void) );
  216. VOID CODESIZE lineprocess PARMS(( char, MC *));
  217. VOID PASCAL longeval PARMS(( USHORT, struct realrec *) );
  218. VOID PASCAL CODESIZE macrobuild PARMS(( void) );
  219. VOID PASCAL CODESIZE macrocall PARMS(( void) );
  220. VOID PASCAL CODESIZE macrodefine PARMS(( void) );
  221. SHORT PASCAL macrolist PARMS((SYMBOL FARSYM *));
  222. VOID PASCAL CODESIZE makeGrpRel PARMS((struct psop *));
  223. VOID main PARMS(( int, char **) );
  224. VOID PASCAL CODESIZE model PARMS(( void) );
  225. VOID PASCAL CODESIZE mapFixup PARMS((struct psop *));
  226. VOID PASCAL CODESIZE moveaccum PARMS((char, struct parsrec *));
  227. VOID PASCAL CODESIZE movecreg PARMS((char, struct parsrec *));
  228. VOID PASCAL CODESIZE movereg PARMS((char, struct parsrec *));
  229. VOID PASCAL CODESIZE movesegreg PARMS((char, struct parsrec *));
  230. VOID PASCAL CODESIZE muldef PARMS((void));
  231. VOID PASCAL CODESIZE namedir PARMS(( void) );
  232. VOID PASCAL newpage PARMS(( void) );
  233. VOID PASCAL CODESIZE numeric PARMS((SHORT, SHORT));
  234. SHORT PASCAL oblitdata PARMS((struct duprec FARSYM *));
  235. VOID PASCAL CODESIZE oblitdup PARMS((struct duprec FARSYM *));
  236. VOID PASCAL CODESIZE oblititem PARMS((DSCREC *));
  237. SHORT PASCAL CODESIZE opcode PARMS((void));
  238. VOID PASCAL CODESIZE opdisplay PARMS(( UCHAR) );
  239. VOID PASCAL CODESIZE openSeg PARMS(( void) );
  240. VOID PASCAL CODESIZE orgdir PARMS(( void) );
  241. VOID PASCAL CODESIZE outdir PARMS(( void) );
  242. VOID PASCAL pageheader PARMS(( void) );
  243. VOID PASCAL CODESIZE deleteMC PARMS((struct MC_s *));
  244. VOID PASCAL CODESIZE parith PARMS((struct parsrec *));
  245. VOID PASCAL CODESIZE parpl PARMS((struct parsrec *));
  246. SHORT PASCAL CODESIZE firstDirect PARMS((void));
  247. VOID PASCAL CODESIZE secondDirect PARMS((void));
  248. VOID PASCAL CODESIZE parselong PARMS((struct dsr *));
  249. VOID PASCAL CODESIZE parse PARMS((void));
  250. VOID PASCAL CODESIZE parsl PARMS((struct parsrec *));
  251. struct BCB * FAR PASCAL pBCBalloc PARMS((USHORT));
  252. VOID PASCAL CODESIZE pbound PARMS((struct parsrec *));
  253. VOID PASCAL CODESIZE pcdisplay PARMS(( void) );
  254. VOID PASCAL CODESIZE pclts PARMS((void));
  255. VOID PASCAL CODESIZE pdescrtbl PARMS((struct parsrec *));
  256. VOID PASCAL CODESIZE pdttrsw PARMS((struct parsrec *));
  257. VOID PASCAL CODESIZE penter PARMS((struct parsrec *));
  258. VOID PASCAL CODESIZE pesc PARMS((struct parsrec *));
  259. VOID PASCAL CODESIZE pgenarg PARMS((struct parsrec *));
  260. VOID PASCAL CODESIZE pincdec PARMS((struct parsrec *));
  261. VOID PASCAL CODESIZE pinout PARMS((struct parsrec *));
  262. VOID PASCAL CODESIZE pint PARMS((struct parsrec *));
  263. SHORT PASCAL CODESIZE pSHORT PARMS((struct parsrec *));
  264. VOID PASCAL CODESIZE pjump PARMS((struct parsrec *));
  265. VOID PASCAL CODESIZE pload PARMS((struct parsrec *));
  266. VOID PASCAL CODESIZE pmov PARMS((struct parsrec *));
  267. VOID PASCAL CODESIZE pnoargs PARMS((void));
  268. VOID PASCAL CODESIZE preljmp PARMS((struct parsrec *));
  269. VOID PASCAL CODESIZE prepeat PARMS((struct parsrec *));
  270. VOID PASCAL CODESIZE preturn PARMS((struct parsrec *));
  271. VOID PASCAL CODESIZE procdefine PARMS((void));
  272. SHORT PASCAL CODESIZE procend PARMS((void));
  273. VOID PASCAL CODESIZE pshift PARMS((struct parsrec *));
  274. VOID PASCAL CODESIZE pstack PARMS((struct parsrec *));
  275. VOID PASCAL CODESIZE pstr PARMS((struct parsrec *));
  276. VOID PASCAL CODESIZE ptends PARMS((void));
  277. VOID PASCAL CODESIZE publicitem PARMS(( void) );
  278. VOID PASCAL CODESIZE purgemacro PARMS(( void) );
  279. VOID PASCAL CODESIZE pushpar PARMS((struct evalrec *));
  280. VOID PASCAL CODESIZE pver PARMS((struct parsrec *));
  281. VOID PASCAL CODESIZE pxchg PARMS((struct parsrec *));
  282. VOID PASCAL CODESIZE pxlat PARMS((struct parsrec *));
  283. VOID PASCAL CODESIZE radixdir PARMS(( void) );
  284. VOID PASCAL CODESIZE rangecheck PARMS((USHORT *, UCHAR));
  285. VOID PASCAL CODESIZE valuecheck PARMS((OFFSET *, USHORT));
  286. VOID PASCAL realeval PARMS((struct realrec *));
  287. VOID PASCAL CODESIZE recorddefine PARMS((void));
  288. VOID PASCAL CODESIZE recordinit PARMS((void));
  289. VOID PASCAL CODESIZE reptdir PARMS(( void) );
  290. VOID PASCAL CODESIZE resetobjidx PARMS(( void) );
  291. SHORT PASCAL CODESIZE scanatom PARMS( (char) );
  292. SHORT PASCAL CODESIZE scanArgs PARMS(( void) );
  293. VOID PASCAL CODESIZE scandummy PARMS(( void) );
  294. VOID PASCAL CODESIZE scandup PARMS((struct duprec FARSYM *, VOID (PASCAL CODESIZE *)(struct duprec FARSYM *)));
  295. SHORT PASCAL scanextern PARMS((SYMBOL FARSYM *));
  296. SHORT PASCAL scangroup PARMS((SYMBOL FARSYM *));
  297. SHORT PASCAL scanglobal PARMS((SYMBOL FARSYM *));
  298. VOID PASCAL CODESIZE scanlist PARMS((struct duprec FARSYM *, VOID (PASCAL CODESIZE *)(struct duprec FARSYM *)));
  299. VOID PASCAL scanorder PARMS((SYMBOL FARSYM *, SHORT (PASCAL *)(SYMBOL FARSYM *)));
  300. VOID PASCAL scanSorted PARMS((SYMBOL FARSYM *, SHORT (PASCAL *)(SYMBOL FARSYM *)));
  301. VOID PASCAL CODESIZE scanparam PARMS(( UCHAR) );
  302. VOID PASCAL scansegment PARMS((SYMBOL FARSYM *));
  303. VOID PASCAL CODESIZE scanstruc PARMS((struct duprec FARSYM *, VOID (PASCAL CODESIZE *)(struct duprec FARSYM *)));
  304. VOID PASCAL scansymbols PARMS((SHORT (PASCAL *)(SYMBOL FARSYM *)));
  305. VOID PASCAL CODESIZE segalign PARMS((SYMBOL FARSYM *));
  306. VOID PASCAL CODESIZE segclass PARMS((SYMBOL FARSYM *));
  307. VOID PASCAL CODESIZE segcreate PARMS(( UCHAR) );
  308. VOID PASCAL CODESIZE segdefine PARMS(( void) );
  309. VOID PASCAL CODESIZE segdisplay PARMS(( USHORT, SYMBOL FARSYM *));
  310. VOID PASCAL seglist PARMS((void));
  311. VOID PASCAL CODESIZE setpage PARMS((void));
  312. VOID PASCAL CODESIZE setsegment PARMS(( void) );
  313. VOID PASCAL CODESIZE setsymbol PARMS(( UCHAR) );
  314. SHORT PASCAL settext PARMS((void));
  315. VOID PASCAL showresults PARMS((struct _iobuf *, char, char *) );
  316. VOID PASCAL CODESIZE signadjust PARMS(( UCHAR, struct exprec *));
  317. VOID PASCAL CODESIZE sizestring PARMS((void ));
  318. UCHAR CODESIZE skipblanks PARMS(( void) );
  319. VOID PASCAL CODESIZE skipline PARMS(( void) );
  320. SHORT PASCAL sortalpha PARMS((SYMBOL FARSYM *));
  321. SHORT PASCAL sortsymbols PARMS((void));
  322. VOID storeline PARMS((void));
  323. VOID storelinepb PARMS((void));
  324. VOID PASCAL storetitle PARMS((char *));
  325. SHORT strffcmp PARMS((char FAR *, char FAR *));
  326. USHORT PASCAL strflen PARMS((char FAR *));
  327. SHORT PASCAL CODESIZE strfncpy PARMS((char FAR *, char *));
  328. SHORT CODESIZE strnfcmp PARMS((char *, char FAR *));
  329. VOID PASCAL strnfcpy PARMS((char *, char FAR *));
  330. VOID PASCAL CODESIZE strucbuild PARMS((void));
  331. VOID PASCAL CODESIZE strucdefine PARMS((void));
  332. VOID PASCAL CODESIZE strucfill PARMS((void));
  333. VOID PASCAL CODESIZE strucinit PARMS((void));
  334. SHORT PASCAL struclist PARMS((SYMBOL FARSYM *));
  335. VOID PASCAL CODESIZE subr1 PARMS((struct dsr *));
  336. VOID PASCAL CODESIZE substituteTMs PARMS((void));
  337. VOID PASCAL CODESIZE substring PARMS((void));
  338. VOID CODESIZE switchname PARMS((void));
  339. VOID PASCAL symbollist PARMS((void));
  340. VOID PASCAL CODESIZE symcreate PARMS((UCHAR, char));
  341. char PASCAL CODESIZE symFet PARMS((void));
  342. char PASCAL CODESIZE symFetNoXref PARMS((void));
  343. VOID PASCAL CODESIZE tfree PARMS((UCHAR FAR *, UINT) );
  344. VOID terminate PARMS((SHORT, char *, char *, char * ));
  345. SHORT PASCAL CODESIZE tokenIS PARMS ((char *));
  346. int PASCAL CODESIZE tryOneFile PARMS((UCHAR *));
  347. SHORT PASCAL CODESIZE typeFet PARMS( (USHORT) );
  348. SHORT PASCAL pfree PARMS((char FAR *));
  349. VOID UserInterface ( int, char **, char * );
  350. VOID PASCAL CODESIZE valcheck PARMS(( UCHAR, UCHAR, struct exprec *));
  351. VOID PASCAL CODESIZE valconst PARMS((DSCREC *));
  352. VOID PASCAL offsetAscii PARMS(( OFFSET ));
  353. SHORT PASCAL writeobj PARMS((UCHAR));
  354. VOID PASCAL CODESIZE xchgaccum PARMS((char, struct parsrec *));
  355. VOID PASCAL CODESIZE xchgreg PARMS((char, struct parsrec *));
  356. VOID PASCAL CODESIZE xcrefitem PARMS(( void) );
  357. DSCREC * PASCAL CODESIZE defaultdsc PARMS(( void) );
  358. DSCREC * PASCAL CODESIZE expreval PARMS((UCHAR *));
  359. VOID PASCAL CODESIZE flteval PARMS((void));
  360. DSCREC * PASCAL CODESIZE regcheck PARMS((DSCREC *, UCHAR, struct exprec *));
  361. struct duprec FARSYM * PASCAL CODESIZE createduprec PARMS((void));
  362. struct duprec FARSYM * PASCAL CODESIZE datadup PARMS((struct dsr *));
  363. struct duprec FARSYM * PASCAL CODESIZE datascan PARMS((struct datarec *));
  364. struct duprec FARSYM * PASCAL CODESIZE nodecreate PARMS((void));
  365. struct duprec FARSYM * PASCAL CODESIZE strucerror PARMS((SHORT, struct duprec FARSYM *));
  366. struct duprec FARSYM * PASCAL CODESIZE strucparse PARMS((void));
  367. UCHAR PASCAL CODESIZE efixdat PARMS((SYMBOL FARSYM *, SYMBOL FARSYM *, OFFSET) );
  368. OFFSET PASCAL CODESIZE calcsize PARMS((struct duprec FARSYM *));
  369. OFFSET PASCAL CODESIZE checkvalue PARMS((SHORT, char, OFFSET));
  370. OFFSET PASCAL CODESIZE exprconst PARMS(( void) );
  371. OFFSET PASCAL CODESIZE exprsmag PARMS((char *));
  372. OFFSET PASCAL CODESIZE recordparse PARMS((void));
  373. USHORT PASCAL CODESIZE segdefault PARMS((char));
  374. OFFSET PASCAL CODESIZE shiftoper PARMS((struct exprec *));
  375. USHORT PASCAL CODESIZE valuesize PARMS((DSCREC *));
  376. NAME FAR * PASCAL CODESIZE createname PARMS((char *));
  377. NAME * PASCAL CODESIZE creatlname PARMS((char *));
  378. SYMBOL FARSYM * PASCAL CODESIZE chasealias PARMS((SYMBOL FARSYM *));
  379. VOID init386(short);
  380. USHORT CODESIZE isdirect(struct psop *);
  381. VOID initregs(struct mreg *);
  382. int PASCAL CODESIZE emitFpo ();
  383. int PASCAL CODESIZE fpoRecord ();
  384. # ifdef DEBUG
  385. SHORT PASCAL hatoi PARMS((char *));
  386. # endif
  387. # ifdef XENIX286
  388. VOID PASCAL nextarg PARMS((char *));
  389. VOID PASCAL usage PARMS((SHORT));
  390. # endif
  391. # ifdef M8086
  392. # ifdef MSDOS
  393. VOID farwrite PARMS((int, UCHAR FAR *, SHORT));
  394. # endif /* MSDOS */
  395. // VOID _ffree PARMS(( UCHAR FAR *) );
  396. // VOID _nfree PARMS(( UCHAR *) );
  397. // extern UCHAR FAR * _fmalloc PARMS(( USHORT) );
  398. // extern UCHAR *_nmalloc PARMS(( USHORT) );
  399. // USHORT _freect PARMS(());
  400. // USHORT _memavl PARMS((void));
  401. SHORT CODESIZE getatom PARMS((void));
  402. SHORT CODESIZE getatomend PARMS((void));
  403. VOID CODESIZE getline PARMS((void));
  404. VOID PASCAL outofmem PARMS((void));
  405. UCHAR * CODESIZE PASCAL nearalloc PARMS(( USHORT) );
  406. UCHAR FAR * CODESIZE PASCAL faralloc PARMS(( USHORT) );
  407. # else
  408. SHORT PASCAL PASCAL outofmem PARMS((char *));
  409. VOID PASCAL PASCAL scanatom PARMS(( char) );
  410. UCHAR * CODESIZE PASCAL nearalloc PARMS(( USHORT, char *) );
  411. # endif /* M8086 */
  412. #if defined FLATMODEL
  413. # define STRFNCPY(a,b) strcpy((a),(b))
  414. # define STRNFCPY(a,b) strcpy((a),(b))
  415. # define STRNFCMP(a,b) strcmp((a),(b))
  416. # define STRFFCMP(a,b) strcmp((a),(b))
  417. # define STRFLEN(a) strlen(a)
  418. # define memerror(a) outofmem()
  419. # define nalloc(a,b) nearalloc(a)
  420. # define falloc(a,b) faralloc(a)
  421. # define _fmalloc(a) malloc(a) /* _fmalloc doesn't exist in clib */
  422. # define _ffree(a) free(a) /* _ffree doesn't exist in clib */
  423. # define _fmemchr(a,b,c) memchr((a),(b),(c)) /* _fmemchr doesn't exist in clib */
  424. # define fMemcpy(a,b,c) memcpy((a),(b),(c)) /* fMemcpy isn't needed */
  425. #else
  426. # define STRFNCPY(a,b) strfncpy((a),(b))
  427. # define STRNFCPY(a,b) strnfcpy((a),(b))
  428. # define STRNFCMP(a,b) strnfcmp((a),(b))
  429. # define STRFFCMP(a,b) strffcmp((a),(b))
  430. # define STRFLEN(a) strflen(a)
  431. # define memerror(a) outofmem()
  432. # define nalloc(a,b) nearalloc(a)
  433. # define falloc(a,b) faralloc(a)
  434. #endif
  435. #ifndef M8086OPT
  436. # define getatom() scanatom(SCSKIP)
  437. # define getatomend() scanatom(SCEND)
  438. #endif /* M8086OPT */
  439. #ifdef FLATMODEL
  440. /* Map message functions */
  441. # define __NMSG_TEXT NMsgText
  442. # define __FMSG_TEXT FMsgText
  443. UCHAR NEAR * PASCAL NMsgText( USHORT );
  444. UCHAR FAR * PASCAL FMsgText( USHORT );
  445. #else
  446. /* These two functions are internal C library functions */
  447. /* They are also included in nmsghdr.c and fmsghdr.c for Xenix */
  448. UCHAR NEAR * PASCAL __NMSG_TEXT( USHORT );
  449. UCHAR FAR * PASCAL __FMSG_TEXT( USHORT );
  450. #endif /* FLATMODEL */
  451.