2009-05-13 16:26:55 +02:00
|
|
|
/*
|
|
|
|
basic, incomplete SSP160x (SSP1601?) interpreter
|
|
|
|
with SVP memory controller emu
|
2008-08-07 14:26:07 +02:00
|
|
|
|
2009-05-13 16:26:55 +02:00
|
|
|
(c) Copyright 2008, Grazvydas "notaz" Ignotas
|
|
|
|
Free for non-commercial use.
|
2008-08-07 14:26:07 +02:00
|
|
|
|
2009-05-13 16:26:55 +02:00
|
|
|
For commercial use, separate licencing terms must be obtained.
|
2008-08-07 14:26:07 +02:00
|
|
|
|
2009-05-13 16:26:55 +02:00
|
|
|
Modified for Genesis Plus GX (Eke-Eke): added BIG ENDIAN support, fixed addr/code inversion
|
2008-08-07 14:26:07 +02:00
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef _SVP_H_
|
|
|
|
#define _SVP_H_
|
|
|
|
|
|
|
|
#include "shared.h"
|
|
|
|
#include "ssp16.h"
|
|
|
|
|
|
|
|
typedef struct {
|
2008-12-11 18:38:29 +01:00
|
|
|
unsigned char iram_rom[0x20000]; // IRAM (0-0x7ff) and program ROM (0x800-0x1ffff)
|
|
|
|
unsigned char dram[0x20000];
|
|
|
|
ssp1601_t ssp1601;
|
2008-08-07 14:26:07 +02:00
|
|
|
} svp_t;
|
|
|
|
|
|
|
|
extern svp_t *svp;
|
|
|
|
extern uint16 SVP_cycles;
|
|
|
|
|
|
|
|
extern void svp_init(void);
|
|
|
|
extern void svp_reset(void);
|
2008-12-04 20:32:22 +01:00
|
|
|
extern void svp_write_dram(uint32 address, uint32 data);
|
|
|
|
extern uint32 svp_read_cell_1(uint32 address);
|
|
|
|
extern uint32 svp_read_cell_2(uint32 address);
|
2008-08-07 14:26:07 +02:00
|
|
|
|
|
|
|
#endif
|