/* $Revision Header *** Header built automatically - do not edit! ***********
 *
 *	(C) Copyright 1990 by MXM
 *
 *	Name .....: mxmproto.h
 *	Created ..: Thursday 15-Feb-90 09:26
 *	Revision .: 1
 *
 *	Date            Author          Comment
 *	=========       ========        ====================
 *	09-Mar-90       Olsen           Updated for Aztec 5.0
 *	15-Feb-90       Olsen           Created this file!
 *
 * $Revision Header ********************************************************/

#ifndef _MXMPROTO_H
#define _MXMPROTO_H 1

#ifndef _MXMBASE_H
#include <mxmbase.h>
#endif	/* !_MXMBASE_H */

	/* The following lines try to figure out if the current
	 * compiler handles a) pragmas and b) prototypes.
	 */

#ifdef __NO_PROTOS
#undef __NO_PROTOS
#endif	/* __NO_PROTOS */

#ifdef AZTEC_C

	/* Probably old Manx compiler. */

#ifndef __VERSION
#define __VERSION 360
#endif	/* __VERSION */

	/* See what we can do. */

#if __VERSION < 500
#define __NO_PROTOS	1
#define __NO_PRAGMAS	1
#endif	/* __VERSION */

#endif	/* AZTEC_C */

	/* Lattice 'C' is assumed to be able to handle the protos
	 * and pragmas. Anyway, who is still using Lattice 3.03
	 * (well, except for Commodore-Amiga, Inc. respectively)?
	 */

	/* Now for the prototype handling. */

#ifdef __NO_PROTOS
#define __ARGS(x) ()
#else
#define __ARGS(x) x
#endif	/* __NO_PROTOS */

VOID *			AllocRem __ARGS((LONG ByteSize, LONG Requirements));
VOID *			FreeRem __ARGS((UBYTE *MemoryBlock));
struct Task *		CreateFuncTask __ARGS((char *TaskName, LONG Priority, VOID *InitialPC, ULONG StackSize));
struct Task *		DeleteFuncTask __ARGS((struct Task *Task));
struct Process *	CreateFuncProc __ARGS((char *Name, LONG Priority, VOID *InitCode, ULONG StackSize));
LONG			MovePointer __ARGS((struct Screen *mp_Screen, LONG mp_Button, LONG mp_X, LONG mp_Y));
LONG			WriteConsole __ARGS((struct Window *wc_Window, UBYTE *wc_String));
VOID *			DeletePrinterSupport __ARGS((struct PrinterSupport *Support));
struct PrinterSupport *	CreatePrinterSupport __ARGS((struct RastPort *RastPort, struct ViewPort *ViewPort, LONG LeftEdge, LONG TopEdge, LONG Width, LONG Height, LONG Large));
VOID			StartPrinterDump __ARGS((struct PrinterSupport *Support, LONG WaitUntilDone));
LONG			StopPrinterDump __ARGS((struct PrinterSupport *Support, LONG WaitUntilDone));
VOID			DeleteTimer __ARGS((struct timerequest *timerequest));
struct timerequest *	CreateTimer __ARGS((ULONG Unit));
VOID			WaitForTimer __ARGS((struct timerequest *timerequest, struct timeval *timeval));
VOID			TimeDelay __ARGS((ULONG Seconds, ULONG Micros, ULONG Unit));
LONG			KeyConvert __ARGS((struct IntuiMessage *kc_IMsg));
struct InputEvent *	InvertKey __ARGS((LONG ik_Code, struct InputEvent *ik_Event, LONG ik_Command, VOID *ik_ExtraInfo));
VOID			EraseGadget __ARGS((struct RastPort *RPort, struct Gadget *Gadget, LONG Colour));
VOID			RefreshGadget __ARGS((struct Gadget *Gadget, struct Window *Window));
LONG			GetLongInt __ARGS((struct Gadget *Gadget));
VOID			SetLongInt __ARGS((struct Gadget *Gadget, LONG Val));
UBYTE *			GetGadgetString __ARGS((struct Gadget *Gadget));
VOID			SetGadgetString __ARGS((struct Gadget *Gadget, UBYTE *String));
LONG			GetToggleGadget __ARGS((struct Gadget *Gadget));
VOID			SetToggleGadget __ARGS((struct Gadget *Gadget, LONG State));
VOID			SetWaitPointer __ARGS((struct Window *Window));
LONG			PopRequest __ARGS((struct Window *pr_ParentWindow, UBYTE *pr_TitleText, UBYTE *pr_BodyText, UBYTE *pr_PosText, UBYTE *pr_NegText, LONG pr_Default, struct PopSupport *pr_ExtraInfo));
LONG			PopMenu __ARGS((struct Menu *menu, struct Window *win));
VOID			Announce __ARGS((VOID));
LONG			CheckSumCRC __ARGS((UBYTE *Mem, LONG Size));
LONG			CheckSumSimple __ARGS((UBYTE *Block, LONG Size));
VOID			CryptBlock __ARGS((UBYTE *Block, LONG Length, UBYTE *String));
LONG			IsASCII __ARGS((LONG c));
LONG			IsPrintable __ARGS((LONG c));
LONG			ToUpper __ARGS((LONG c));
LONG			UStrCmp __ARGS((UBYTE *s, UBYTE *t));
LONG			Random __ARGS((LONG MaxValue));
struct Window *		FindFileWindow __ARGS((LONG Handle));
struct RastPort *	DeleteHiddenRPort __ARGS((struct RastPort *RastPort));
struct RastPort *	CreateHiddenRPort __ARGS((LONG Width, LONG Height, LONG Depth));
VOID			EnableWindow __ARGS((struct Window *Window));
LONG			DisableWindow __ARGS((struct Window *Window));

	/* Now see if we can enable the inline system calls. */

extern struct MXMBase *MXMBase;

#ifndef __NO_PRAGMAS

#ifdef AZTEC_C
#pragma amicall(MXMBase, 0x1e, AllocRem(d0,d1))
#pragma amicall(MXMBase, 0x24, FreeRem(a0))
#pragma amicall(MXMBase, 0x2a, CreateFuncTask(a0,d0,a1,d1))
#pragma amicall(MXMBase, 0x30, DeleteFuncTask(a0))
#pragma amicall(MXMBase, 0x36, CreateFuncProc(a0,d0,a1,d1))
#pragma amicall(MXMBase, 0x3c, MovePointer(a0,d0,d1,d2))
#pragma amicall(MXMBase, 0x42, WriteConsole(a0,a1))
#pragma amicall(MXMBase, 0x48, DeletePrinterSupport(a0))
#pragma amicall(MXMBase, 0x4e, CreatePrinterSupport(a0,a1,d0,d1,d2,d3,d4))
#pragma amicall(MXMBase, 0x54, StartPrinterDump(a0,d0))
#pragma amicall(MXMBase, 0x5a, StopPrinterDump(a0,d0))
#pragma amicall(MXMBase, 0x60, DeleteTimer(a0))
#pragma amicall(MXMBase, 0x66, CreateTimer(d0))
#pragma amicall(MXMBase, 0x6c, WaitForTimer(a0,a1))
#pragma amicall(MXMBase, 0x72, TimeDelay(d0,d1,d2))
#pragma amicall(MXMBase, 0x78, KeyConvert(a0))
#pragma amicall(MXMBase, 0x7e, InvertKey(d0,a0,d1,a1))
#pragma amicall(MXMBase, 0x84, EraseGadget(a0,a1,d0))
#pragma amicall(MXMBase, 0x8a, RefreshGadget(a0,a1))
#pragma amicall(MXMBase, 0x90, GetLongInt(a0))
#pragma amicall(MXMBase, 0x96, SetLongInt(a0,d0))
#pragma amicall(MXMBase, 0x9c, GetGadgetString(a0))
#pragma amicall(MXMBase, 0xa2, SetGadgetString(a0,a1))
#pragma amicall(MXMBase, 0xa8, GetToggleGadget(a0))
#pragma amicall(MXMBase, 0xae, SetToggleGadget(a0,d0))
#pragma amicall(MXMBase, 0xb4, SetWaitPointer(a0))
#pragma amicall(MXMBase, 0xba, PopRequest(a0,a1,a2,a3,d0,d1,d2))
#pragma amicall(MXMBase, 0xc0, PopMenu(a0,a1))
#pragma amicall(MXMBase, 0xc6, Announce())
#pragma amicall(MXMBase, 0xcc, CheckSumCRC())
#pragma amicall(MXMBase, 0xd2, CheckSumSimple(a0,d0))
#pragma amicall(MXMBase, 0xd8, CryptBlock(a0,d0,a1))
#pragma amicall(MXMBase, 0xde, IsASCII(d0))
#pragma amicall(MXMBase, 0xe4, IsPrintable(d0))
#pragma amicall(MXMBase, 0xea, ToUpper(d0))
#pragma amicall(MXMBase, 0xf0, UStrCmp(a0,a1))
#pragma amicall(MXMBase, 0xf6, Random(d0))
#pragma amicall(MXMBase, 0xfc, FindFileWindow(a0))
#pragma amicall(MXMBase, 0x102, DeleteHiddenRPort(a0))
#pragma amicall(MXMBase, 0x108, CreateHiddenRPort(d0,d1,d2))
#pragma amicall(MXMBase, 0x10e, EnableWindow(a0))
#pragma amicall(MXMBase, 0x114, DisableWindow(a0))
#else	/* AZTEC_C */
#pragma libcall MXMBase AllocRem 1e 1002
#pragma libcall MXMBase FreeRem 24 801
#pragma libcall MXMBase CreateFuncTask 2a 190804
#pragma libcall MXMBase DeleteFuncTask 30 801
#pragma libcall MXMBase CreateFuncProc 36 190804
#pragma libcall MXMBase MovePointer 3c 210804
#pragma libcall MXMBase WriteConsole 42 9802
#pragma libcall MXMBase DeletePrinterSupport 48 801
/*#pragma libcall MXMBase CreatePrinterSupport 4e 32109807*/
#pragma libcall MXMBase StartPrinterDump 54 802
#pragma libcall MXMBase StopPrinterDump 5a 802
#pragma libcall MXMBase DeleteTimer 60 801
#pragma libcall MXMBase CreateTimer 66 1
#pragma libcall MXMBase WaitForTimer 6c 9802
#pragma libcall MXMBase TimeDelay 72 21003
#pragma libcall MXMBase KeyConvert 78 801
#pragma libcall MXMBase InvertKey 7e 918004
#pragma libcall MXMBase EraseGadget 84 9803
#pragma libcall MXMBase RefreshGadget 8a 9802
#pragma libcall MXMBase GetLongInt 90 801
#pragma libcall MXMBase SetLongInt 96 802
#pragma libcall MXMBase GetGadgetString 9c 801
#pragma libcall MXMBase SetGadgetString a2 9802
#pragma libcall MXMBase GetToggleGadget a8 801
#pragma libcall MXMBase SetToggleGadget ae 802
#pragma libcall MXMBase SetWaitPointer b4 801
/*#pragma libcall MXMBase PopRequest ba 10ba9807*/
#pragma libcall MXMBase PopMenu c0 9802
#pragma libcall MXMBase Announce c6 0
#pragma libcall MXMBase CheckSumCRC cc 0
#pragma libcall MXMBase CheckSumSimple d2 802
#pragma libcall MXMBase CryptBlock d8 90803
#pragma libcall MXMBase IsASCII de 1
#pragma libcall MXMBase IsPrintable e4 1
#pragma libcall MXMBase ToUpper ea 1
#pragma libcall MXMBase UStrCmp f0 9802
#pragma libcall MXMBase Random f6 1
#pragma libcall MXMBase FindFileWindow fc 801
#pragma libcall MXMBase DeleteHiddenRPort 102 801
#pragma libcall MXMBase CreateHiddenRPort 108 21003
#pragma libcall MXMBase EnableWindow 10e 801
#pragma libcall MXMBase DisableWindow 114 801
#endif	/* AZTEC_C */

#endif	/* __NO_PRAGMAS */

#endif	/* _MXMPROTO_H */
