/** fMSX: portable MSX emulator ******************************/
/**                                                         **/
/**                           MSX.h                         **/
/**                                                         **/
/** This file contains declarations relevant to the drivers **/
/** and MSX emulation itself. See Z80.h for #defines        **/
/** related to Z80 emulation.                               **/
/**                                                         **/
/** Copyright (C) Marat Fayzullin 1994,1995                 **/
/**     You are not allowed to distribute this software     **/
/**     commercially. Please, notify me, if you make any    **/
/**     changes to this file.                               **/
/*************************************************************/


#define PAGESIZE  (0x4000L)   /* Size of a RAM page            */

#include "Z80.h"            /* Z80 emulation declarations    */

void MapROM(register byte NewRom);
void LoadROM(char *filename);

//void Keyboard(void);


/****************************************************************/
/*** Allocate memory, load ROM images, initialize mapper, VDP ***/
/*** CPU and start the emulation. This function returns 0 in  ***/
/*** the case of failure.                                     ***/
/****************************************************************/
int StartTI85(void);

/****************************************************************/
/*** Free memory allocated by StartMSX().                     ***/
/****************************************************************/
void TrashTI85(void);

/****************************************************************/
/*** Set sound volumes, refresh screen, check keyboard and    ***/
/*** sprites. Call this function on each interrupt.           ***/
/****************************************************************/
void Interrupt(void);

void ReadKeypad(void);
void DrawScreen(void);
void InitScreen(void);

int InitMachine(void);

/****************************************************************/
/*** Deallocate all resources taken by InitMachine().         ***/
/************************************** TO BE WRITTEN BY USER ***/
void TrashMachine(void);

/****************************************************************/
/*** because borland's memcpy doesn't work.....               ***/
/****************************************************************/

void MemCopy(byte *Dest, byte *Source,long Size);