/*
** $Filename: alib_protos.h $
** $Release: 2.0 release 1 $
** $Revision: 1.1 $
** $Date: 90/07/12 $
**
**	C prototypes
**
**	(C) Copyright 1990 Commodore-Amiga, Inc.
**	    All Rights Reserved
*/

#ifndef ALIB_PROTOS_H
#define ALIB_PROTOS_H
#include <devices/timer.h>
#include <exec/types.h>
#include <libraries/commodities.h>
#include <libraries/mathffp.h>
/* "commodities.library" */
/*--- functions in V36 or higher (distributed as Release 2.0 Beta) ---*/
/**/
/*  Amiga.lib Functions */
/**/
void ArgArrayDone( void );
UBYTE **ArgArrayInit( LONG arg1, UBYTE **arg2 );
LONG ArgInt( UBYTE **arg1, UBYTE *arg2, LONG arg3 );
UBYTE *ArgString( UBYTE **arg1, UBYTE *arg2, UBYTE *arg3 );
CxObj *HotKey( UBYTE *arg1, struct MsgPort *arg2, LONG arg3 );
struct InputEvent *InvertString( UBYTE *arg1, ULONG *arg2 );
/**/
/* Macros */
/**/
/* CxObj  *CxCustom(LONG(*)(),LONG)                   (A0,D0) */
/* CxObj  *CxDebug(LONG)                              (D0) */
/* CxObj  *CxFilter(BYTE *)                           (A0) */
/* CxObj  *CxSender(struct MsgPort *,LONG)            (A0,D0) */
/* CxObj  *CxSignal(struct Task *,LONG)               (A0,D0) */
/* CxObj  *CxTranslate(struct InputEvent *)           (A0) */
/* CxObj  *CxTypeFilter(LONG)                         (D0) */
/* "exec.library" */
/*--- functions in V36 or higher (distributed as Release 2.0 Beta) ---*/
void BeginIO( struct IORequest *io );
struct IORequest *CreateExtIO( struct MsgPort *msg, LONG size );
struct MsgPort *CreatePort( UBYTE *name, LONG pri );
struct IOStdReq *CreateStdIO( struct MsgPort *msg );
struct Task *CreateTask( UBYTE *name, UBYTE arg1, APTR arg2, ULONG arg3 );
void DeleteExtIO( struct IORequest *io );
void DeletePort( struct MsgPort *io );
void DeleteStdIO( struct IOStdReq *io );
void DeleteTask( struct Task *task );
void NewList( struct List *list );
/*--- functions in V36 or higher (distributed as Release 2.0 Beta) ---*/
/* in clib; from graphics.library; */
void AddTOF( struct Isrvstr *i, LONG (*p)(), LONG a );
void RemTOF( struct Isrvstr *i );
void waitbeam( LONG b );
/* in math_support */
FLOAT afp( BYTE *string );
void arnd( LONG place, LONG exp, BYTE *string );
FLOAT dbf( UWORD exp, ULONG mant );
LONG fpa( FLOAT fnum, BYTE *string );
void fpbcd( FLOAT fnum, BYTE *string );
/* in timer_support */
LONG TimeDelay( LONG unit, ULONG secs, ULONG microsecs );
LONG DoTimer( struct timeval *, LONG unit, WORD command );
/* in clib */
ULONG FastRand( ULONG seed );
UWORD RangeRand( ULONG range );
LONG printf( BYTE *fmt, BYTE *args, ... );
LONG sprintf( UBYTE *buffer, BYTE *fmt, BYTE *args, ... );
LONG fclose( LONG stream );
LONG fgetc( LONG stream );
LONG fprintf( LONG stream, BYTE *fmt, BYTE *args, ... );
LONG fputc( BYTE c, LONG stream );
LONG fputs( UBYTE *s, LONG stream );
LONG getchar( void );
LONG putchar( BYTE c );
LONG puts( BYTE *s );
#endif
