#include "ownincs/VT340console.h"


/* allowed globals.. */
struct	ExecBase			*SysBase;
struct	DosLibrary		*DOSBase;
struct	GfxBase			*GfxBase;
struct	IntuitionBase	*IntuitionBase;


                 /* VT52 Funktionen zu VT340 Emulator.. */



VOID VT340_invokeVT52(struct VT340Console *con)
{
	VT340_resetcon(con, FALSE);
	con->pstat &= ~P_ANSI_MODE;
	con->pstat |= P_CONVERT;
	con->VT52_dca = FALSE;

	VT340_createOwnStatusLine(con);
}


VOID VT52_EnterGM(struct VT340Console *con, UBYTE *args, ULONG argc)
{
	VT340_setset(con, GRAPHICS, 0);
}


VOID VT52_ExitGM(struct VT340Console *con, UBYTE *args, ULONG argc)
{
	VT340_setset(con, ASCII, 0);
}


VOID VT52_Identify(struct VT340Console *con, UBYTE *args, ULONG argc)
{
	con->io->xem_swrite("\033/Z", 3);
}


VOID VT52_EnterAKM(struct VT340Console *con, UBYTE *args, ULONG argc)
{
	con->ustat |= U_KEYAPP;
}


VOID VT52_ExitAKM(struct VT340Console *con, UBYTE *args, ULONG argc)
{
	con->ustat &= ~U_KEYAPP;
}


VOID VT52_EnterANSI(struct VT340Console *con, UBYTE *args, ULONG argc)
{
	con->pstat |= P_ANSI_MODE;	/* enter last ANSI mode (VT-340 / VT-102) */
	VT340_createOwnStatusLine(con);
	VT340_resetfonts(con);
}

VOID VT52_EnterAutoPrint(struct VT340Console *con, UBYTE *args, ULONG argc)
{
	if(VT340_openprinter(con))
	{
		if(con->gstat & G_PRINT_CONTROL)
			con->gstat |=  G_AUTO_PRINT_INACTIVE;
		else
		{
			con->gstat |= G_AUTO_PRINT;
			VT340_createOwnStatusLine(con);
		}
	}
}


VOID VT52_ExitAutoPrint(struct VT340Console *con, UBYTE *args, ULONG argc)
{
	con->gstat &= ~(G_AUTO_PRINT | G_AUTO_PRINT_INACTIVE);
	VT340_printterminator(con);
	VT340_createOwnStatusLine(con);
}


VOID VT52_EnterControlPrint(struct VT340Console *con, UBYTE *args, ULONG argc)
{
	if(VT340_openprinter(con))
	{
		con->gstat |= G_PRINT_CONTROL;

		if(con->gstat & G_AUTO_PRINT)
		{
			con->gstat |=  G_AUTO_PRINT_INACTIVE;
			con->gstat &= ~G_AUTO_PRINT;
		}

		VT340_createOwnStatusLine(con);
	}
}


VOID VT52_ExitControlPrint(struct VT340Console *con, UBYTE *args, ULONG argc)
{
	con->gstat &= ~G_PRINT_CONTROL;

	if(con->gstat & G_AUTO_PRINT_INACTIVE)
	{
		con->gstat &= ~G_AUTO_PRINT_INACTIVE;
		con->gstat |=  G_AUTO_PRINT;
	}

	VT340_printterminator(con);
	VT340_createOwnStatusLine(con);
}


VOID VT52_PrintScreen(struct VT340Console *con, UBYTE *args, ULONG argc)
{
	if(VT340_openprinter(con))
		VT340_printdisplay(con, TRUE);
}


VOID VT52_PrintRow(struct VT340Console *con, UBYTE *args, ULONG argc)
{
	if(VT340_openprinter(con))
		VT340_printdisplay(con, FALSE);
}



/* end of source-code */
