/*
**	PreInclude.h
**
**	Definition file for precompiled header file
**
**	Copyright © 1990-1995 by Olaf `Olsen' Barthel
**		All Rights Reserved
*/

	/* System includes (just a few). */

#include <intuition/intuitionbase.h>
#include <intuition/gadgetclass.h>
#include <intuition/imageclass.h>
#include <intuition/sghooks.h>
#include <intuition/cghooks.h>
#include <intuition/classes.h>
#include <intuition/icclass.h>

#include <datatypes/pictureclass.h>
#include <datatypes/soundclass.h>

#include <workbench/workbench.h>

#include <libraries/commodities.h>
#include <libraries/translator.h>
#include <libraries/amigaguide.h>
#include <libraries/gadtools.h>
#include <libraries/iffparse.h>

#include <graphics/videocontrol.h>
#include <graphics/gfxmacros.h>
#include <graphics/gfxbase.h>
#include <graphics/rpattr.h>
#include <graphics/scale.h>

#include <libraries/locale.h>
#include <libraries/asl.h>

#include <devices/inputevent.h>
#include <devices/clipboard.h>
#include <devices/narrator.h>
#include <devices/console.h>
#include <devices/conunit.h>
#include <devices/serial.h>
#include <devices/audio.h>
#include <devices/input.h>
#include <devices/timer.h>

#include <hardware/intbits.h>
#include <hardware/dmabits.h>
#include <hardware/custom.h>
#include <hardware/cia.h>
#include <hardware/blit.h>

#include <dos/filehandler.h>
#include <dos/dosextens.h>
#include <dos/datetime.h>
#include <dos/doshunks.h>
#include <dos/dostags.h>
#include <dos/rdargs.h>
#include <dos/dosasl.h>
#include <dos/var.h>

#include <exec/execbase.h>
#include <exec/devices.h>
#include <exec/memory.h>
#include <exec/errors.h>

#include <prefs/prefhdr.h>
#include <prefs/serial.h>

#include <utility/date.h>

#include <clib/macros.h>

#include <rexx/rxslib.h>
#include <rexx/errors.h>

	/* Function prototypes. */

#include <clib/commodities_protos.h>
#include <clib/translator_protos.h>
#include <clib/rexxsyslib_protos.h>
#include <clib/amigaguide_protos.h>
#include <clib/intuition_protos.h>
#include <clib/datatypes_protos.h>
#include <clib/graphics_protos.h>
#include <clib/gadtools_protos.h>
#include <clib/iffparse_protos.h>
#include <clib/diskfont_protos.h>
#include <clib/console_protos.h>
#include <clib/utility_protos.h>
#include <clib/keymap_protos.h>
#include <clib/layers_protos.h>
#include <clib/locale_protos.h>
#include <clib/timer_protos.h>
#include <clib/alib_protos.h>
#include <clib/icon_protos.h>
#include <clib/exec_protos.h>
#include <clib/dos_protos.h>
#include <clib/asl_protos.h>
#include <clib/wb_protos.h>

	/* Include the following direct library interface definitions. */

#ifndef DEBUG
#include <pragmas/console_pragmas.h>
#include <pragmas/utility_pragmas.h>
#include <pragmas/keymap_pragmas.h>
#include <pragmas/layers_pragmas.h>
#include <pragmas/timer_pragmas.h>
#include <pragmas/exec_pragmas.h>
#endif	/* DEBUG */

	/* Standard `C' includes. */

#include <string.h>
#include <stdarg.h>
#include <stdlib.h>
#include <stddef.h>

#include <dos.h>

	/* Special character codes. */

#define XOF '\21'
#define XON '\23'

#define BEL '\a'
#define VTB '\v'
#define TAB '\t'
#define BKS '\b'
#define ENT '\n'
#define RET '\r'
#define ESC '\033'
#define DEL '\177'
#define FFD '\f'
#define CAN '\030'
#define SUB '\032'
#define ENQ '\005'
#define SI  '\016'
#define SO  '\017'

	/* Internally handled control keys. */

#define CUP 150
#define CDN 151
#define CFW 152
#define CBK 153

#define FN1 128
#define FN2 129
#define FN3 130
#define FN4 131
#define FN5 132
#define FN6 133
#define FN7 134
#define FN8 135
#define FN9 136
#define F10 137

#define HLP 149

	/* Control sequence introducer. */

#define CSI 155

	/* Standard IFF chunk types. */

#define ID_8SVX	MAKE_ID('8','S','V','X')	/* Eight bit sampled voice. */
#define ID_VHDR	MAKE_ID('V','H','D','R')	/* Voice header. */
#define ID_CHAN MAKE_ID('C','H','A','N')	/* Sound channel information. */
#define ID_FTXT	MAKE_ID('F','T','X','T')	/* Formatted text. */
#define ID_CHRS	MAKE_ID('C','H','R','S')	/* Character data. */
#define ID_BODY	MAKE_ID('B','O','D','Y')	/* Generic data body chunk. */

	/* `term' private chunk types. */

#define ID_DATE	MAKE_ID('D','A','T','E')	/* Date and time information. */
#define ID_NAME	MAKE_ID('N','A','M','E')	/* Date and time patterns. */
#define ID_DIAL	MAKE_ID('D','I','A','L')	/* Number of phonebook entries. */
#define ID_FAST	MAKE_ID('F','A','S','T')	/* Fast! macro settings. */
#define ID_TRAP	MAKE_ID('T','R','A','P')	/* Trap command. */
#define ID_SEQN	MAKE_ID('S','E','Q','N')	/* Trap sequence. */
#define ID_TRST MAKE_ID('T','R','S','T')	/* Trap settings. */
#define ID_HOTK	MAKE_ID('H','O','T','K')	/* Hotkey settings. */
#define ID_KEYS	MAKE_ID('K','E','Y','S')	/* Function key settings. */
#define ID_PHON	MAKE_ID('P','H','O','N')	/* Phonebook data. */
#define ID_PREF	MAKE_ID('P','R','E','F')	/* Preferences data chunk. */
#define ID_PSWD	MAKE_ID('P','S','W','D')	/* Password entry. */
#define ID_RECV	MAKE_ID('R','E','C','V')	/* Translation table data (receiver side). */
#define ID_SEND	MAKE_ID('S','E','N','D')	/* Translation table data (sender side). */
#define ID_TRNS	MAKE_ID('T','R','N','S')	/* Translation table data (master table). */
#define ID_SPEK	MAKE_ID('S','P','E','K')	/* Speech settings. */
#define ID_TERM	MAKE_ID('T','E','R','M')	/* `term' data chunk. */
#define ID_VERS	MAKE_ID('V','E','R','S')	/* Version identification. */
#define ID_WIND	MAKE_ID('W','I','N','D')	/* Fast! macro window size and position. */
#define ID_SOUN	MAKE_ID('S','O','U','N')	/* Sound settings. */
#define ID_WINF	MAKE_ID('W','I','N','F')	/* Window position/size information. */

	/* `term' configuration and phonebook file chunk types. */

#define ID_SERL	MAKE_ID('S','E','R','L')	/* Serial settings. */
#define ID_MODM	MAKE_ID('M','O','D','M')	/* Modem settings. */
#define ID_COMD	MAKE_ID('C','O','M','D')	/* Command settings. */
#define ID_SCRN	MAKE_ID('S','C','R','N')	/* Screen settings. */
#define ID_TRML	MAKE_ID('T','R','M','L')	/* Terminal setting. */
#define ID_PATH	MAKE_ID('P','A','T','H')	/* Path settings. */
#define ID_MISC	MAKE_ID('M','I','S','C')	/* Misc settings. */
#define ID_CLIP	MAKE_ID('C','L','I','P')	/* Clip settings. */
#define ID_CPTR	MAKE_ID('C','P','T','R')	/* Capture settings. */
#define ID_FILE	MAKE_ID('F','I','L','E')	/* File settings. */
#define ID_EMLN	MAKE_ID('E','M','L','N')	/* Emulation settings. */
#define ID_XFER	MAKE_ID('X','F','E','R')	/* Transfer settings. */

	/* Use a simple address trick instead of the predefined
	 * address in amiga.lib.
	 */

#ifndef custom
#define custom (*(struct Custom *)0xDFF000L)
#endif	/* custom */

	/* These seem to have got lost... */

#ifndef MTYPE_APPWINDOW
#define MTYPE_APPWINDOW	7
#endif	/* MTYPE_APPWINDOW */

#ifndef MTYPE_APPICON
#define MTYPE_APPICON	8
#endif	/* MTYPE_APPICON */

#ifndef MTYPE_APPMENUITEM
#define MTYPE_APPMENUITEM	9
#endif	/* MTYPE_APPMENUITEM */

	/* Cast the DICE... */

#ifdef _DCC
#define __saveds	__geta4
#define __stdargs	__stkargs
#define __asm
#endif	/* _DCC */

	/* Single precision boolean value. */

typedef char BOOLEAN;

	/* Include string IDs. */

#include "termStrings.h"

	/* Include the OwnDevUnit definitions. */

#include "OwnDevUnit.h"

	/* Include the XPR definitions. */

#include "xproto.h"

	/* Include the XEM definitions. */

#include "xem.h"

	/* Include the rendezvous interface definitions. */

#include "Rendezvous.h"

	/* If desired, include the global definitions and prototypes as well. */

#ifdef INCLUDEALL
#include "termGlobal.h"
#include "termARexxAttributes.h"
#include "termARexxGlobal.h"
#endif	/* INCLUDEALL */

	/* The user interface definitions. */

#include "gtlayout.h"
