Leaked source code of windows server 2003
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

/* asmfcn.h -- include file for microsoft 80x86 assembler
**
** microsoft (r) macro assembler
** copyright (c) microsoft corp 1986. all rights reserved
**
** randy nevin
*/
// Included here because allocs are mapped depending on target
#include <malloc.h>
#ifndef DECLSPEC_NORETURN
#if (_MSC_VER >= 1200) && !defined(MIDL_PASS)
#define DECLSPEC_NORETURN __declspec(noreturn)
#else
#define DECLSPEC_NORETURN
#endif
#endif
#ifdef FCNDEF
#define PARMS(p) p
#else
#define PARMS(p) /* no argument checking */
#endif
// UCHAR *strncpy PARMS((UCHAR *, UCHAR *, int));
// UCHAR *strcat PARMS((UCHAR *, UCHAR *));
// UCHAR *strdup PARMS((UCHAR *));
// UCHAR *strcpy PARMS((UCHAR *, UCHAR *));
// int strcmp PARMS((UCHAR *, UCHAR *));
// int strlen PARMS((UCHAR *));
// UCHAR *malloc PARMS(( size_t) );
// UCHAR *calloc PARMS(( USHORT, USHORT) );
// VOID free PARMS(( UCHAR *) );
// UCHAR *realloc PARMS(( UCHAR *, USHORT) );
UCHAR FAR * PASCAL CODESIZE talloc PARMS(( USHORT) );
DSCREC * PASCAL CODESIZE dalloc PARMS((void));
VOID PASCAL CODESIZE macroexpand PARMS((struct MC_s *));
char * PASCAL CODESIZE passatom PARMS((char *));
char * PASCAL CODESIZE radixconvert PARMS(( OFFSET, char *));
char * PASCAL CODESIZE xxradixconvert PARMS(( OFFSET, char *));
VOID PASCAL CODESIZE readfile PARMS(( void) );
char * PASCAL CODESIZE scanvalue PARMS((char *));
char * PASCAL CODESIZE storetrans PARMS((UCHAR, char *, char *));
VOID PASCAL CODESIZE addLocal PARMS ((SYMBOL FARSYM *));
UCHAR PASCAL CODESIZE argblank PARMS(( void) );
VOID PASCAL CODESIZE buildFrame PARMS(( void) );
VOID PASCAL CODESIZE catstring PARMS(( void ));
UCHAR PASCAL CODESIZE checkendm PARMS(( void) );
UCHAR PASCAL CODESIZE checkline PARMS(( UCHAR) );
VOID PASCAL CODESIZE commDefine PARMS(( void ));
UCHAR PASCAL CODESIZE createequ PARMS(( UCHAR));
VOID PASCAL CODESIZE doLine PARMS((char *));
UCHAR PASCAL CODESIZE emitcleanq PARMS(( UCHAR) );
UCHAR PASCAL CODESIZE emitdup PARMS((struct duprec FARSYM *));
VOID PASCAL CODESIZE emit66 PARMS ((struct psop *,struct psop *));
VOID PASCAL emit67 PARMS ((struct psop *,struct psop *));
char PASCAL emitroomfor PARMS((UCHAR));
VOID PASCAL CODESIZE endCurSeg PARMS(( void) );
UCHAR PASCAL CODESIZE endstring PARMS(( void) );
void PASCAL CODESIZE evalconst PARMS((void));
char PASCAL CODESIZE evalstring PARMS((void));
UCHAR PASCAL CODESIZE fixroom PARMS(( UCHAR) );
char CODESIZE inset PARMS((char, char *));
char PASCAL CODESIZE opcodesearch PARMS((void));
SHORT PASCAL CODESIZE shortrange PARMS((struct parsrec *));
char PASCAL CODESIZE symsearch PARMS((void));
char CODESIZE symsrch PARMS((void));
UCHAR PASCAL CODESIZE testlist PARMS(( void) );
UCHAR PASCAL CODESIZE test4TM PARMS(( void) );
VOID PASCAL CODESIZE addglist PARMS(( void) );
VOID PASCAL CODESIZE addseglist PARMS((SYMBOL FARSYM *));
USHORT PASCAL CODESIZE argscan PARMS(( UCHAR *));
SHORT PASCAL assignlinknum PARMS((SYMBOL FARSYM *));
VOID PASCAL CODESIZE assignvalue PARMS(( void) );
VOID PASCAL CODESIZE assumeitem PARMS(( void) );
VOID PASCAL bcddigit PARMS((struct realrec *));
VOID PASCAL bcdeval PARMS((struct realrec *));
VOID PASCAL CODESIZE begdupdisplay PARMS((struct duprec FARSYM *));
VOID PASCAL bumpline PARMS(( void) );
VOID PASCAL CODESIZE byteimmcheck PARMS((struct psop *));
VOID PASCAL CODESIZE checkmatch PARMS((DSCREC *, DSCREC *));
SHORT PASCAL CODESIZE checkRes PARMS((void));
SHORT PASCAL CODESIZE checksize PARMS((struct parsrec *));
VOID PASCAL CODESIZE emitnop PARMS((void));
VOID PASCAL CODESIZE chkheading PARMS(( USHORT) );
VOID PASCAL closeOpenFiles PARMS(( void ) );
VOID PASCAL CODESIZE comdir PARMS(( void) );
VOID PASCAL CODESIZE commentbuild PARMS(( void) );
VOID PASCAL CODESIZE conddir PARMS(( void) );
VOID PASCAL CODESIZE copyascii PARMS(( void) );
VOID PASCAL CODESIZE copystring PARMS((char *));
VOID PASCAL CODESIZE copytext PARMS((char *));
VOID PASCAL CODESIZE createitem PARMS(( UCHAR, UCHAR));
VOID PASCAL CODESIZE createMC PARMS(( USHORT) );
VOID PASCAL CODESIZE createsym PARMS((void));
VOID PASCAL CODESIZE createStack PARMS(( void) );
VOID PASCAL crefdef PARMS(( void) );
VOID PASCAL crefline PARMS(( void) );
VOID PASCAL crefnew PARMS(( UCHAR) );
VOID PASCAL crefout PARMS(( void) );
VOID PASCAL CODESIZE datacon PARMS((struct dsr *));
VOID PASCAL CODESIZE datadb PARMS((struct dsr *));
VOID PASCAL CODESIZE datadefine PARMS(( void) );
VOID PASCAL CODESIZE dataitem PARMS((struct datarec *));
VOID PASCAL definesym PARMS(( UCHAR *) );
VOID PASCAL defwordsize PARMS( (void) );
VOID PASCAL CODESIZE defineLocals PARMS(( void) );
VOID PASCAL CODESIZE deletemacro PARMS((SYMBOL FARSYM *));
VOID PASCAL CODESIZE dfree PARMS((UCHAR *));
VOID PASCAL dispdatasize PARMS((SYMBOL FARSYM *));
VOID PASCAL CODESIZE displength PARMS(( OFFSET) );
VOID PASCAL CODESIZE displlong PARMS((struct duprec FARSYM *));
VOID PASCAL CODESIZE dispstandard PARMS((SYMBOL FARSYM *));
VOID PASCAL CODESIZE dispsym PARMS(( USHORT, SYMBOL FARSYM *));
VOID PASCAL CODESIZE disptab PARMS(( void) );
VOID PASCAL CODESIZE dispword PARMS((OFFSET ));
VOID PASCAL dopass PARMS(( void) );
VOID PASCAL dumpname PARMS((void));
VOID PASCAL dumpCodeview PARMS(( void ));
VOID PASCAL CODESIZE dupdisplay PARMS((struct duprec FARSYM *));
VOID CODESIZE ebuffer PARMS(( USHORT, UCHAR *, UCHAR *));
VOID PASCAL CODESIZE edupitem PARMS((struct duprec FARSYM *));
VOID PASCAL CODESIZE elsedir PARMS(( void) );
VOID PASCAL CODESIZE emitOP PARMS((struct psop *));
VOID PASCAL CODESIZE emitcall PARMS((UCHAR, UCHAR, UCHAR, UCHAR, struct parsrec *));
VOID PASCAL CODESIZE emitcbyte PARMS(( UCHAR) );
VOID PASCAL CODESIZE emitcword PARMS(( OFFSET) );
VOID PASCAL emitEndPass1 PARMS((void));
VOID PASCAL emitdone PARMS((DSCREC *));
VOID PASCAL CODESIZE emitdumpdata PARMS(( UCHAR) );
VOID PASCAL CODESIZE emitescape PARMS((DSCREC *, UCHAR));
VOID PASCAL CODESIZE emitextern PARMS((SYMBOL FARSYM *));
VOID PASCAL CODESIZE emitfixup PARMS((struct psop *));
VOID PASCAL CODESIZE emitfltfix PARMS(( USHORT, USHORT, USHORT *));
VOID PASCAL CODESIZE emitgetspec PARMS((SYMBOL FARSYM * *, SYMBOL FARSYM * *, struct psop *));
VOID PASCAL CODESIZE emitglobal PARMS((SYMBOL FARSYM *));
VOID PASCAL CODESIZE emitgroup PARMS((SYMBOL FARSYM *));
VOID PASCAL CODESIZE emitlong PARMS((struct duprec FARSYM *));
VOID PASCAL CODESIZE emitlname PARMS((SYMBOL FARSYM *));
VOID PASCAL CODESIZE emitline PARMS((void));
VOID PASCAL CODESIZE emitmodrm PARMS(( USHORT, USHORT, USHORT) );
VOID PASCAL CODESIZE emitmove PARMS((UCHAR, char, struct parsrec *));
VOID PASCAL CODESIZE emitname PARMS((NAME FAR *));
VOID PASCAL CODESIZE emitobject PARMS((struct psop *));
VOID PASCAL CODESIZE emitopcode PARMS((UCHAR));
VOID PASCAL CODESIZE emitrest PARMS((DSCREC *));
VOID PASCAL CODESIZE emitsegment PARMS((SYMBOL FARSYM *));
VOID PASCAL CODESIZE emitsetrecordtype PARMS(( UCHAR) );
VOID PASCAL CODESIZE emitsindex PARMS(( USHORT) );
VOID PASCAL CODESIZE emitsize PARMS((USHORT));
VOID PASCAL CODESIZE emitsword PARMS(( USHORT) );
VOID PASCAL CODESIZE emitSymbol PARMS((SYMBOL FARSYM *));
VOID PASCAL makedefaultdsc PARMS(( void) );
VOID PASCAL CODESIZE emodule PARMS((NAME FAR *));
VOID PASCAL CODESIZE enddir PARMS(( void) );
VOID PASCAL CODESIZE enddupdisplay PARMS(( void) );
VOID PASCAL CODESIZE endifdir PARMS(( void) );
VOID PASCAL CODESIZE equdefine PARMS(( void) );
VOID PASCAL CODESIZE equtext PARMS((USHORT));
VOID PASCAL CODESIZE error PARMS(( USHORT, UCHAR *) );
DECLSPEC_NORETURN
VOID PASCAL CODESIZE errorc PARMS(( USHORT) );
VOID PASCAL CODESIZE errorcSYN PARMS(( void) );
VOID PASCAL CODESIZE errorn PARMS(( USHORT) );
VOID PASCAL error_line PARMS((struct _iobuf *, UCHAR *, short) );
VOID PASCAL errordisplay PARMS(( void) );
VOID PASCAL CODESIZE errorforward PARMS((DSCREC *));
VOID PASCAL CODESIZE errorimmed PARMS((DSCREC *));
VOID PASCAL CODESIZE errorover PARMS((char));
VOID PASCAL CODESIZE errorsegreg PARMS((DSCREC *));
VOID PASCAL CODESIZE evaltop PARMS((struct evalrec *));
VOID PASCAL CODESIZE errdir PARMS(( void) );
VOID PASCAL CODESIZE evendir PARMS(( SHORT) );
VOID PASCAL CODESIZE exitmdir PARMS(( void) );
VOID CODESIZE expandTM PARMS((char *));
VOID PASCAL CODESIZE externflag PARMS(( UCHAR, UCHAR) );
VOID PASCAL CODESIZE externitem PARMS(( void) );
VOID PASCAL ferrorc PARMS (( USHORT ));
VOID PASCAL CODESIZE fltmodrm PARMS(( USHORT, struct fltrec *));
VOID PASCAL CODESIZE fltopcode PARMS(( void) );
VOID PASCAL CODESIZE fltscan PARMS((struct fltrec *));
VOID PASCAL CODESIZE fltwait PARMS(( UCHAR) );
VOID PASCAL CODESIZE flushbuffer PARMS(( void) );
VOID PASCAL CODESIZE flushfixup PARMS(( void) );
SHORT PASCAL CODESIZE fndir PARMS((void));
SHORT PASCAL CODESIZE fndir2 PARMS((void));
SHORT PASCAL CODESIZE fnoper PARMS((void));
SHORT PASCAL CODESIZE fnPtr PARMS((SHORT));
SHORT PASCAL CODESIZE fnsize PARMS((void));
SHORT PASCAL CODESIZE fnspar PARMS((void));
VOID PASCAL CODESIZE foldsigns PARMS((struct exprec *));
VOID PASCAL CODESIZE forceaccum PARMS((DSCREC *));
VOID PASCAL CODESIZE forceimmed PARMS((DSCREC *));
VOID CODESIZE fMemcpy PARMS((void FAR *, void FAR *, SHORT));
VOID PASCAL CODESIZE forcesize PARMS((DSCREC *));
int PASCAL CODESIZE freeAFileHandle PARMS( (void) );
VOID PASCAL CODESIZE getinvenv PARMS(( void) );
char * PASCAL CODESIZE getTMstring PARMS ((void));
SHORT PASCAL getprec PARMS((char));
VOID PASCAL CODESIZE groupdefine PARMS(( void) );
VOID PASCAL CODESIZE groupitem PARMS(( void) );
VOID PASCAL CODESIZE idxcheck PARMS(( UCHAR, struct exprec *));
VOID PASCAL CODESIZE includeLib PARMS(( void) );
VOID PASCAL CODESIZE includedir PARMS(( void) );
VOID PASCAL initproc PARMS(( void) );
VOID PASCAL CODESIZE initrs PARMS((struct dsr *));
VOID PASCAL CODESIZE instring PARMS((void));
VOID PASCAL CODESIZE irpcopy PARMS(( void) );
VOID PASCAL CODESIZE irpxbuild PARMS(( void) );
VOID PASCAL CODESIZE irpxdir PARMS(( void) );
VOID PASCAL CODESIZE itemdisplay PARMS((struct duprec FARSYM *));
VOID PASCAL CODESIZE labelcreate PARMS((USHORT, char));
SHORT CODESIZE langFet PARMS(( void));
VOID CODESIZE lineExpand PARMS((struct MC_s *, char FAR *));
VOID PASCAL CODESIZE linkfield PARMS((struct duprec FARSYM *));
VOID PASCAL CODESIZE listfree PARMS((TEXTSTR FAR *));
VOID PASCAL listline PARMS(( void) );
VOID PASCAL listopen PARMS(( void) );
VOID CODESIZE lineprocess PARMS(( char, MC *));
VOID PASCAL longeval PARMS(( USHORT, struct realrec *) );
VOID PASCAL CODESIZE macrobuild PARMS(( void) );
VOID PASCAL CODESIZE macrocall PARMS(( void) );
VOID PASCAL CODESIZE macrodefine PARMS(( void) );
SHORT PASCAL macrolist PARMS((SYMBOL FARSYM *));
VOID PASCAL CODESIZE makeGrpRel PARMS((struct psop *));
VOID main PARMS(( int, char **) );
VOID PASCAL CODESIZE model PARMS(( void) );
VOID PASCAL CODESIZE mapFixup PARMS((struct psop *));
VOID PASCAL CODESIZE moveaccum PARMS((char, struct parsrec *));
VOID PASCAL CODESIZE movecreg PARMS((char, struct parsrec *));
VOID PASCAL CODESIZE movereg PARMS((char, struct parsrec *));
VOID PASCAL CODESIZE movesegreg PARMS((char, struct parsrec *));
VOID PASCAL CODESIZE muldef PARMS((void));
VOID PASCAL CODESIZE namedir PARMS(( void) );
VOID PASCAL newpage PARMS(( void) );
VOID PASCAL CODESIZE numeric PARMS((SHORT, SHORT));
SHORT PASCAL oblitdata PARMS((struct duprec FARSYM *));
VOID PASCAL CODESIZE oblitdup PARMS((struct duprec FARSYM *));
VOID PASCAL CODESIZE oblititem PARMS((DSCREC *));
SHORT PASCAL CODESIZE opcode PARMS((void));
VOID PASCAL CODESIZE opdisplay PARMS(( UCHAR) );
VOID PASCAL CODESIZE openSeg PARMS(( void) );
VOID PASCAL CODESIZE orgdir PARMS(( void) );
VOID PASCAL CODESIZE outdir PARMS(( void) );
VOID PASCAL pageheader PARMS(( void) );
VOID PASCAL CODESIZE deleteMC PARMS((struct MC_s *));
VOID PASCAL CODESIZE parith PARMS((struct parsrec *));
VOID PASCAL CODESIZE parpl PARMS((struct parsrec *));
SHORT PASCAL CODESIZE firstDirect PARMS((void));
VOID PASCAL CODESIZE secondDirect PARMS((void));
VOID PASCAL CODESIZE parselong PARMS((struct dsr *));
VOID PASCAL CODESIZE parse PARMS((void));
VOID PASCAL CODESIZE parsl PARMS((struct parsrec *));
struct BCB * FAR PASCAL pBCBalloc PARMS((USHORT));
VOID PASCAL CODESIZE pbound PARMS((struct parsrec *));
VOID PASCAL CODESIZE pcdisplay PARMS(( void) );
VOID PASCAL CODESIZE pclts PARMS((void));
VOID PASCAL CODESIZE pdescrtbl PARMS((struct parsrec *));
VOID PASCAL CODESIZE pdttrsw PARMS((struct parsrec *));
VOID PASCAL CODESIZE penter PARMS((struct parsrec *));
VOID PASCAL CODESIZE pesc PARMS((struct parsrec *));
VOID PASCAL CODESIZE pgenarg PARMS((struct parsrec *));
VOID PASCAL CODESIZE pincdec PARMS((struct parsrec *));
VOID PASCAL CODESIZE pinout PARMS((struct parsrec *));
VOID PASCAL CODESIZE pint PARMS((struct parsrec *));
SHORT PASCAL CODESIZE pSHORT PARMS((struct parsrec *));
VOID PASCAL CODESIZE pjump PARMS((struct parsrec *));
VOID PASCAL CODESIZE pload PARMS((struct parsrec *));
VOID PASCAL CODESIZE pmov PARMS((struct parsrec *));
VOID PASCAL CODESIZE pnoargs PARMS((void));
VOID PASCAL CODESIZE preljmp PARMS((struct parsrec *));
VOID PASCAL CODESIZE prepeat PARMS((struct parsrec *));
VOID PASCAL CODESIZE preturn PARMS((struct parsrec *));
VOID PASCAL CODESIZE procdefine PARMS((void));
SHORT PASCAL CODESIZE procend PARMS((void));
VOID PASCAL CODESIZE pshift PARMS((struct parsrec *));
VOID PASCAL CODESIZE pstack PARMS((struct parsrec *));
VOID PASCAL CODESIZE pstr PARMS((struct parsrec *));
VOID PASCAL CODESIZE ptends PARMS((void));
VOID PASCAL CODESIZE publicitem PARMS(( void) );
VOID PASCAL CODESIZE purgemacro PARMS(( void) );
VOID PASCAL CODESIZE pushpar PARMS((struct evalrec *));
VOID PASCAL CODESIZE pver PARMS((struct parsrec *));
VOID PASCAL CODESIZE pxchg PARMS((struct parsrec *));
VOID PASCAL CODESIZE pxlat PARMS((struct parsrec *));
VOID PASCAL CODESIZE radixdir PARMS(( void) );
VOID PASCAL CODESIZE rangecheck PARMS((USHORT *, UCHAR));
VOID PASCAL CODESIZE valuecheck PARMS((OFFSET *, USHORT));
VOID PASCAL realeval PARMS((struct realrec *));
VOID PASCAL CODESIZE recorddefine PARMS((void));
VOID PASCAL CODESIZE recordinit PARMS((void));
VOID PASCAL CODESIZE reptdir PARMS(( void) );
VOID PASCAL CODESIZE resetobjidx PARMS(( void) );
SHORT PASCAL CODESIZE scanatom PARMS( (char) );
SHORT PASCAL CODESIZE scanArgs PARMS(( void) );
VOID PASCAL CODESIZE scandummy PARMS(( void) );
VOID PASCAL CODESIZE scandup PARMS((struct duprec FARSYM *, VOID (PASCAL CODESIZE *)(struct duprec FARSYM *)));
SHORT PASCAL scanextern PARMS((SYMBOL FARSYM *));
SHORT PASCAL scangroup PARMS((SYMBOL FARSYM *));
SHORT PASCAL scanglobal PARMS((SYMBOL FARSYM *));
VOID PASCAL CODESIZE scanlist PARMS((struct duprec FARSYM *, VOID (PASCAL CODESIZE *)(struct duprec FARSYM *)));
VOID PASCAL scanorder PARMS((SYMBOL FARSYM *, SHORT (PASCAL *)(SYMBOL FARSYM *)));
VOID PASCAL scanSorted PARMS((SYMBOL FARSYM *, SHORT (PASCAL *)(SYMBOL FARSYM *)));
VOID PASCAL CODESIZE scanparam PARMS(( UCHAR) );
VOID PASCAL scansegment PARMS((SYMBOL FARSYM *));
VOID PASCAL CODESIZE scanstruc PARMS((struct duprec FARSYM *, VOID (PASCAL CODESIZE *)(struct duprec FARSYM *)));
VOID PASCAL scansymbols PARMS((SHORT (PASCAL *)(SYMBOL FARSYM *)));
VOID PASCAL CODESIZE segalign PARMS((SYMBOL FARSYM *));
VOID PASCAL CODESIZE segclass PARMS((SYMBOL FARSYM *));
VOID PASCAL CODESIZE segcreate PARMS(( UCHAR) );
VOID PASCAL CODESIZE segdefine PARMS(( void) );
VOID PASCAL CODESIZE segdisplay PARMS(( USHORT, SYMBOL FARSYM *));
VOID PASCAL seglist PARMS((void));
VOID PASCAL CODESIZE setpage PARMS((void));
VOID PASCAL CODESIZE setsegment PARMS(( void) );
VOID PASCAL CODESIZE setsymbol PARMS(( UCHAR) );
SHORT PASCAL settext PARMS((void));
VOID PASCAL showresults PARMS((struct _iobuf *, char, char *) );
VOID PASCAL CODESIZE signadjust PARMS(( UCHAR, struct exprec *));
VOID PASCAL CODESIZE sizestring PARMS((void ));
UCHAR CODESIZE skipblanks PARMS(( void) );
VOID PASCAL CODESIZE skipline PARMS(( void) );
SHORT PASCAL sortalpha PARMS((SYMBOL FARSYM *));
SHORT PASCAL sortsymbols PARMS((void));
VOID storeline PARMS((void));
VOID storelinepb PARMS((void));
VOID PASCAL storetitle PARMS((char *));
SHORT strffcmp PARMS((char FAR *, char FAR *));
USHORT PASCAL strflen PARMS((char FAR *));
SHORT PASCAL CODESIZE strfncpy PARMS((char FAR *, char *));
SHORT CODESIZE strnfcmp PARMS((char *, char FAR *));
VOID PASCAL strnfcpy PARMS((char *, char FAR *));
VOID PASCAL CODESIZE strucbuild PARMS((void));
VOID PASCAL CODESIZE strucdefine PARMS((void));
VOID PASCAL CODESIZE strucfill PARMS((void));
VOID PASCAL CODESIZE strucinit PARMS((void));
SHORT PASCAL struclist PARMS((SYMBOL FARSYM *));
VOID PASCAL CODESIZE subr1 PARMS((struct dsr *));
VOID PASCAL CODESIZE substituteTMs PARMS((void));
VOID PASCAL CODESIZE substring PARMS((void));
VOID CODESIZE switchname PARMS((void));
VOID PASCAL symbollist PARMS((void));
VOID PASCAL CODESIZE symcreate PARMS((UCHAR, char));
char PASCAL CODESIZE symFet PARMS((void));
char PASCAL CODESIZE symFetNoXref PARMS((void));
VOID PASCAL CODESIZE tfree PARMS((UCHAR FAR *, UINT) );
VOID terminate PARMS((SHORT, char *, char *, char * ));
SHORT PASCAL CODESIZE tokenIS PARMS ((char *));
int PASCAL CODESIZE tryOneFile PARMS((UCHAR *));
SHORT PASCAL CODESIZE typeFet PARMS( (USHORT) );
SHORT PASCAL pfree PARMS((char FAR *));
VOID UserInterface ( int, char **, char * );
VOID PASCAL CODESIZE valcheck PARMS(( UCHAR, UCHAR, struct exprec *));
VOID PASCAL CODESIZE valconst PARMS((DSCREC *));
VOID PASCAL offsetAscii PARMS(( OFFSET ));
SHORT PASCAL writeobj PARMS((UCHAR));
VOID PASCAL CODESIZE xchgaccum PARMS((char, struct parsrec *));
VOID PASCAL CODESIZE xchgreg PARMS((char, struct parsrec *));
VOID PASCAL CODESIZE xcrefitem PARMS(( void) );
DSCREC * PASCAL CODESIZE defaultdsc PARMS(( void) );
DSCREC * PASCAL CODESIZE expreval PARMS((UCHAR *));
VOID PASCAL CODESIZE flteval PARMS((void));
DSCREC * PASCAL CODESIZE regcheck PARMS((DSCREC *, UCHAR, struct exprec *));
struct duprec FARSYM * PASCAL CODESIZE createduprec PARMS((void));
struct duprec FARSYM * PASCAL CODESIZE datadup PARMS((struct dsr *));
struct duprec FARSYM * PASCAL CODESIZE datascan PARMS((struct datarec *));
struct duprec FARSYM * PASCAL CODESIZE nodecreate PARMS((void));
struct duprec FARSYM * PASCAL CODESIZE strucerror PARMS((SHORT, struct duprec FARSYM *));
struct duprec FARSYM * PASCAL CODESIZE strucparse PARMS((void));
UCHAR PASCAL CODESIZE efixdat PARMS((SYMBOL FARSYM *, SYMBOL FARSYM *, OFFSET) );
OFFSET PASCAL CODESIZE calcsize PARMS((struct duprec FARSYM *));
OFFSET PASCAL CODESIZE checkvalue PARMS((SHORT, char, OFFSET));
OFFSET PASCAL CODESIZE exprconst PARMS(( void) );
OFFSET PASCAL CODESIZE exprsmag PARMS((char *));
OFFSET PASCAL CODESIZE recordparse PARMS((void));
USHORT PASCAL CODESIZE segdefault PARMS((char));
OFFSET PASCAL CODESIZE shiftoper PARMS((struct exprec *));
USHORT PASCAL CODESIZE valuesize PARMS((DSCREC *));
NAME FAR * PASCAL CODESIZE createname PARMS((char *));
NAME * PASCAL CODESIZE creatlname PARMS((char *));
SYMBOL FARSYM * PASCAL CODESIZE chasealias PARMS((SYMBOL FARSYM *));
VOID init386(short);
USHORT CODESIZE isdirect(struct psop *);
VOID initregs(struct mreg *);
int PASCAL CODESIZE emitFpo ();
int PASCAL CODESIZE fpoRecord ();
# ifdef DEBUG
SHORT PASCAL hatoi PARMS((char *));
# endif
# ifdef XENIX286
VOID PASCAL nextarg PARMS((char *));
VOID PASCAL usage PARMS((SHORT));
# endif
# ifdef M8086
# ifdef MSDOS
VOID farwrite PARMS((int, UCHAR FAR *, SHORT));
# endif /* MSDOS */
// VOID _ffree PARMS(( UCHAR FAR *) );
// VOID _nfree PARMS(( UCHAR *) );
// extern UCHAR FAR * _fmalloc PARMS(( USHORT) );
// extern UCHAR *_nmalloc PARMS(( USHORT) );
// USHORT _freect PARMS(());
// USHORT _memavl PARMS((void));
SHORT CODESIZE getatom PARMS((void));
SHORT CODESIZE getatomend PARMS((void));
VOID CODESIZE getline PARMS((void));
DECLSPEC_NORETURN VOID PASCAL outofmem PARMS((void));
UCHAR * CODESIZE PASCAL nearalloc PARMS(( USHORT) );
UCHAR FAR * CODESIZE PASCAL faralloc PARMS(( USHORT) );
# else
SHORT PASCAL PASCAL outofmem PARMS((char *));
VOID PASCAL PASCAL scanatom PARMS(( char) );
UCHAR * CODESIZE PASCAL nearalloc PARMS(( USHORT, char *) );
# endif /* M8086 */
#if defined FLATMODEL
# define STRFNCPY(a,b) strcpy((a),(b))
# define STRNFCPY(a,b) strcpy((a),(b))
# define STRNFCMP(a,b) strcmp((a),(b))
# define STRFFCMP(a,b) strcmp((a),(b))
# define STRFLEN(a) strlen(a)
# define memerror(a) outofmem()
# define nalloc(a,b) nearalloc(a)
# define falloc(a,b) faralloc(a)
# define _fmalloc(a) malloc(a) /* _fmalloc doesn't exist in clib */
# define _ffree(a) free(a) /* _ffree doesn't exist in clib */
# define _fmemchr(a,b,c) memchr((a),(b),(c)) /* _fmemchr doesn't exist in clib */
# define fMemcpy(a,b,c) memcpy((a),(b),(c)) /* fMemcpy isn't needed */
#else
# define STRFNCPY(a,b) strfncpy((a),(b))
# define STRNFCPY(a,b) strnfcpy((a),(b))
# define STRNFCMP(a,b) strnfcmp((a),(b))
# define STRFFCMP(a,b) strffcmp((a),(b))
# define STRFLEN(a) strflen(a)
# define memerror(a) outofmem()
# define nalloc(a,b) nearalloc(a)
# define falloc(a,b) faralloc(a)
#endif
#ifndef M8086OPT
# define getatom() scanatom(SCSKIP)
# define getatomend() scanatom(SCEND)
#endif /* M8086OPT */
#ifdef FLATMODEL
/* Map message functions */
# define __NMSG_TEXT NMsgText
# define __FMSG_TEXT FMsgText
UCHAR NEAR * PASCAL NMsgText( USHORT );
UCHAR FAR * PASCAL FMsgText( USHORT );
#else
/* These two functions are internal C library functions */
/* They are also included in nmsghdr.c and fmsghdr.c for Xenix */
UCHAR NEAR * PASCAL __NMSG_TEXT( USHORT );
UCHAR FAR * PASCAL __FMSG_TEXT( USHORT );
#endif /* FLATMODEL */