VOID VT340_writecon(struct VT340Console *, UBYTE *, LONG);
BOOL VT340_options(struct VT340Console *);

/* utils.a */
VOID *GetSucc(VOID *);
VOID *GetHead(VOID *);
VOID *GetTail(VOID *);
VOID *GetPred(VOID *);
VOID __stdargs BZero(VOID *, LONG);
VOID __stdargs BSet(VOID *, LONG, LONG);

/* ESC commands */
VOID	VT340_invokeESC(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_invokeCSI(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_invokeDCS(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_invokePrivate(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_hardreset(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_savecursor(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_restorecursor(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_settabulator(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_textscale(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_screenaligntest(struct VT340Console *);
VOID	VT340_setG0(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_setG1(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_setG2(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_setG3(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_setG0_GL(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_setG1_GL(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_setG1_GR(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_setG2_GL(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_setG2_GR(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_setG3_GL(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_setG3_GR(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_setG2_GL_s(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_setG3_GL_s(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_setconvert(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_requestterminal(struct VT340Console *, UBYTE *, ULONG);

/* CSI commands */
VOID	VT340_ignore(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_insertchars(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_cursorup(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_cursordown(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_simplecursorup(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_simplecursordown(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_simplecursorright(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_simplecursorleft(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_cursornextline(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_cursoraboveline(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_cursorposition(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_eraseindisplay(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_eraseinline(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_sel_eraseindisplay(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_sel_eraseinline(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_erasechars(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_insertlines(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_deletelines(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_deletechars(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_tabclear(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_ANSIsetmodes(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_DECsetmodes(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_ANSIresetmodes(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_DECresetmodes(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_printcontrolmode(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_autoprintmode(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_textmodes(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_devicestatreport(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_setserviceclass(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_setnumpad(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_reportANSIsettings(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_reportDECsettings(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_setselective(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_setregion(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_reportcursorstate(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_reportUPSS(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_softreset(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_selectactivedisplay(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_reportprestate(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_loadleds(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_setstatusline(struct VT340Console *, UBYTE *, ULONG);


/* VT-52 functions */
VOID VT52_EnterGM(struct VT340Console *, UBYTE *, ULONG);
VOID VT52_ExitGM(struct VT340Console *, UBYTE *, ULONG);
VOID VT52_Identify(struct VT340Console *, UBYTE *, ULONG);
VOID VT52_EnterAKM(struct VT340Console *, UBYTE *, ULONG);
VOID VT52_ExitAKM(struct VT340Console *, UBYTE *, ULONG);
VOID VT52_EnterANSI(struct VT340Console *, UBYTE *, ULONG);
VOID VT52_EnterAutoPrint(struct VT340Console *, UBYTE *, ULONG);
VOID VT52_ExitAutoPrint(struct VT340Console *, UBYTE *, ULONG);
VOID VT52_EnterControlPrint(struct VT340Console *, UBYTE *, ULONG);
VOID VT52_ExitControlPrint(struct VT340Console *, UBYTE *, ULONG);
VOID VT52_PrintScreen(struct VT340Console *, UBYTE *, ULONG);
VOID VT52_PrintRow(struct VT340Console *, UBYTE *, ULONG);


/* TEK functions */
BOOL TEK_open(struct VT340Console *);
BOOL TEK_parse(struct VT340Console *, UBYTE);
VOID TEK_close(struct VT340Console *);

/* support routines */
VOID	VT340_locked(struct VT340Console *, BOOL);
VOID	VT340_resetcon(struct VT340Console *, BOOL);
VOID	VT340_resetscreen(struct VT340Console *, BOOL);
VOID	VT340_resetstyles(struct VT340Console *);
VOID	VT340_resetfonts(struct VT340Console *con);
VOID	VT340_cancel(struct VT340Console *);
VOID	VT340_invokeVT52(struct VT340Console *);
VOID	VT340_textout(struct VT340Console *);
VOID	VT340_eraselines(struct VT340Console *, UWORD, UWORD);
VOID	VT340_eraselinebeg(struct VT340Console *);
VOID	VT340_eraselineend(struct VT340Console *);
VOID	VT340_erasescrbeg(struct VT340Console *);
VOID	VT340_eraseactivescreen(struct VT340Console *);
VOID	VT340_erasewholescreen(struct VT340Console *);
VOID	VT340_cleararea(struct RastPort *, UWORD, UWORD, UWORD, UWORD);
VOID	__stdargs VT220_stretch(struct RastPort *, ULONG, ULONG, ULONG, ULONG, ULONG);
VOID	VT340_cursorflip(struct VT340Console *);
BOOL	VT340_openfonts(struct VT340console *);
VOID	VT340_closefonts(struct VT340console *);
VOID	VT340_setlset(struct VT340Console *, UWORD);
VOID	VT340_setrset(struct VT340Console *, UWORD);
VOID	VT340_setset(struct VT340Console *, UWORD, UWORD);
UWORD	VT340_cset(struct VT340Console *, UBYTE);
BOOL	VT340_setupconsole(struct VT340Console *, BOOL);
VOID	VT340_scrollarea(struct VT340Console *, WORD, UWORD, UWORD);
VOID	VT340_createOwnStatusLine(struct VT340Console *);
VOID	VT340_deleteStatusLine(struct VT340Console *con, BOOL ownOnly);
LONG	AtoL(UBYTE *str);
VOID	VT340_printdisplay(struct VT340Console *, BOOL);
VOID	VT340_printterminator(struct VT340Console *);
BOOL	VT340_openprinter(struct VT340Console *);
VOID	VT340_printcontrolled(struct VT340Console *, UBYTE *, ULONG);
VOID	VT340_configopt(struct xpr_option *, UBYTE *, UBYTE *, UWORD, BOOL, BOOL);
BOOL	VT340_setopt(struct xpr_option *, UWORD *, UWORD, ULONG, ULONG);
VOID	VT340_suppdeletechars(struct VT340Console *, UBYTE);
VOID	VT340_clearwholerowregister(struct VT340Console *);
VOID	VT340_clearactiverowregister(struct VT340Console *);
VOID	VT340_checkdims(struct VT340Console *);
VOID	VT340_cursorhome(struct VT340Console *);
VOID	VT340_getTopBot(struct VT340Console *con, UWORD *top, UWORD *bot);

/*
/* rexx */
BOOL	VT340_sendrexx(struct VT340Console *con, UBYTE *cmd);
VOID	VT340_openrexx(struct VT340Console *);
VOID	VT340_closerexx(struct VT340Console *);
*/

/* ParseInit.c */
BOOL VT340_ParseInit(struct VT340Console *con, STRPTR prefsFile, ULONG mode);


/* raster */
VOID	DeleteRaster(struct VT340Console *);
BOOL	CreateRaster(struct VT340Console *);
VOID	RasterEraseScreen(struct VT340Console *, UWORD);
VOID	RasterEraseLine(struct VT340Console *, UWORD);
VOID	RasterSelectiveEraseScreen(struct VT340Console *, UWORD);
VOID	RasterSelectiveEraseLine(struct VT340Console *, UWORD);
VOID	RasterEraseCharacters(struct VT340Console *, UWORD);
VOID	RasterScroll_V(struct VT340Console *, WORD, UWORD, UWORD);
VOID	RasterScroll_H(struct VT340Console *, WORD, UWORD, UWORD);
VOID	RasterPutString(struct VT340Console *, UBYTE *, UWORD, UWORD);
VOID	RasterGetLine(struct VT340Console *);

/* transfer */
VOID VT340_transfer(struct VT340Console *con);
