/*
*	june 7, 1993	gil
*		created this file to hold prototypes for asm68xx sources
*/
#ifndef PROTO_H
# define PROTO_H


/* as.c */
void		initialize(void);
void		re_init(void);
void		make_pass(void);
int		parse_line(void);
void		process(void);

/* do?.c */
void		localinit(void);
void		do_gen(int op, int mode);
void		do_indexed(int op);

void		do_op(int opcode, int class);
			/* opcode = base opcode */
			/* class = mnemonic class */


/* do11.c */
void		do_gen11(int op, int mode, int pnorm, int px, int py);
			/* op = base opcode */
			/* mode = addressing mode */
			/* pnorm = page for normal addressing modes: IMM,DIR,EXT */
			/* px = page for INDX addressing */
			/* py = page for INDY addressing */

/* pseudo.c */
void		do_pseudo(int op);


/* eval.c */
int		eval(void);
int		is_op(char c);
int		get_term(void);

/* symtab.c */
int				install(char *str, int val);
struct nlist	*lookup(char *name);
struct oper		*mne_look(char *str);

/* util.c */
void		fatal(char *str);
void		error(char *str);
void		warn(char *str);
void		note(char *str);
int		delim(char c);
char		*skip_white(char *ptr);
void		eword(int wd);
void		emit(int byte);
void		f_record(void);
void		f_S9(void);
void		hexout(int byte);
void		print_line(void);
void		print_cycles(void);
int		any(char c, char *str);
char		mapdn(char c);
int		lobyte(int i);
int		hibyte(int i);
int		head(char *str1, char *str2);
int		alpha(char c);
int		alphan(char c);
int		white(char c);
char		*alloc(int nbytes);

/* ffwd.c */
void		fwdinit(void);
void		fwdreinit(void);
void		fwdmark(void);
void		fwdnext(void);
void		fwd_done(void);

/* output.c */
void		stable(struct nlist *ptr);
void		cross(struct nlist *point);


#endif
