2025-04-27 07:49:33 -04:00

103 lines
4.8 KiB
C

#ifndef __BOARD_H
#define __BOARD_H
//----------------------------------------------------------------------------
// BOARD.H
//----------------------------------------------------------------------------
// Description : small description of the goal of the module
//----------------------------------------------------------------------------
// Copyright SGS Thomson Microelectronics ! Version alpha ! Jan 1st, 1995
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
// Include files
//----------------------------------------------------------------------------
#include "stdefs.h"
//----------------------------------------------------------------------------
// Exported Types
//----------------------------------------------------------------------------
typedef UCHAR (* FNREAD8) (PUCHAR Address);
typedef USHORT (* FNREAD16) (PUSHORT Address);
typedef ULONG (* FNREAD32) (PULONG Address);
typedef VOID (* FNWRITE8) (PUCHAR Address, UCHAR Value);
typedef VOID (* FNWRITE16) (PUSHORT Address, USHORT Value);
typedef VOID (* FNWRITE32) (PULONG Address, ULONG Value);
typedef VOID (* FNSENDBLK8) (PUCHAR Address, PUCHAR Buffer, ULONG Size);
typedef VOID (* FNSENDBLK16) (PUSHORT Address, PUSHORT Buffer, ULONG Size);
typedef VOID (* FNSENDBLK32) (PULONG Address, PULONG Buffer, ULONG Size);
typedef VOID (* FNWAIT) (ULONG Milliseconds);
//----------------------------------------------------------------------------
// Exported Variables
//----------------------------------------------------------------------------
extern WORD gLocalIOBaseAddress;
extern WORD gPCI9060IOBaseAddress;
extern FNREAD8 BoardRead8;
extern FNREAD16 BoardRead16;
extern FNREAD32 BoardRead32;
extern FNWRITE8 BoardWrite8;
extern FNWRITE16 BoardWrite16;
extern FNWRITE32 BoardWrite32;
extern FNSENDBLK8 BoardSendBlock8;
extern FNSENDBLK16 BoardSendBlock16;
extern FNSENDBLK32 BoardSendBlock32;
extern FNWAIT BoardWaitMicroseconds;
//----------------------------------------------------------------------------
// Exported Constants
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
// Exported Functions
//----------------------------------------------------------------------------
#define Read8(Address) BoardRead8((PUCHAR)(Address))
#define Read16(Address) BoardRead16((PUSHORT)(Address))
#define Read32(Address) BoardRead32((PULONG)(Address))
#define Write8(Address, Value) BoardWrite8((PUCHAR)(Address), Value)
#define Write16(Address, Value) BoardWrite16((PUSHORT)(Address), Value)
#define Write32(Address, Value) BoardWrite32((PULONG)(Address), Value)
#define SendBlock8(Address, Buffer, Size) BoardSendBlock8((PUCHAR)(Address), (PUCHAR)(Buffer), (ULONG)(Size))
#define SendBlock16(Address, Buffer, Size) BoardSendBlock16((PUSHORT)(Address), (PUSHORT)(Buffer), (ULONG)(Size))
#define SendBlock32(Address, Buffer, Size) BoardSendBlock32((PULONG)(Address), (PULONG)(Buffer), (ULONG)(Size))
#define MicrosecondsDelay(Delay) BoardWaitMicroseconds(Delay)
//----------------------------------------------------------------------------
// One line function description (same as in .C)
//----------------------------------------------------------------------------
// In :
// Out :
// InOut :
// Global :
// Return :
//----------------------------------------------------------------------------
BOOL BoardInit(WORD lLocalIOBaseAddress,
WORD lPCI9060IOBaseAddress,
FNREAD8 lRead8,
FNREAD16 lRead16,
FNREAD32 lRead32,
FNWRITE8 lWrite8,
FNWRITE16 lWrite16,
FNWRITE32 lWrite32,
FNSENDBLK8 lSendBlock8,
FNSENDBLK16 lSendBlock16,
FNSENDBLK32 lSendBlock32,
FNWAIT lWaitMicroseconds);
VOID BoardHardReset(VOID);
BYTE BoardAudioRead(BYTE Register);
VOID BoardAudioWrite(BYTE Register, BYTE Value);
VOID BoardAudioSend(PVOID Buffer, DWORD Size);
VOID BoardAudioSetSamplingFrequency(DWORD Frequency);
BYTE BoardVideoRead(BYTE Register);
VOID BoardVideoWrite(BYTE Register, BYTE Value);
VOID BoardVideoSend(PVOID Buffer, DWORD Size);
VOID BoardVideoSetDisplayMode(BYTE Mode);
VOID BoardEnterInterrupt(VOID);
VOID BoardLeaveInterrupt(VOID);
//------------------------------- End of File --------------------------------
#endif // #ifndef __BOARD_H