--- previous/src/dimension/dimension.h 2018/04/24 19:30:01 1.1 +++ previous/src/dimension/dimension.h 2018/04/24 19:31:32 1.1.1.2 @@ -3,10 +3,10 @@ #ifndef __DIMENSION_H__ #define __DIMENSION_H__ -#define ENABLE_DIMENSION 0 #define ND_SLOT 2 -#if ENABLE_DIMENSION +/* NeXTdimension memory controller revision (0 and 1 allowed) */ +#define ND_STEP 1 Uint32 nd_slot_lget(Uint32 addr); Uint16 nd_slot_wget(Uint32 addr); @@ -22,25 +22,50 @@ void nd_board_lput(Uint32 addr, Uint32 void nd_board_wput(Uint32 addr, Uint16 w); void nd_board_bput(Uint32 addr, Uint8 b); Uint8 nd_board_cs8get(Uint32 addr); + +void nd_board_rd8_le (Uint32 addr, Uint32* val); +void nd_board_rd16_le (Uint32 addr, Uint32* val); +void nd_board_rd32_le (Uint32 addr, Uint32* val); +void nd_board_rd64_le (Uint32 addr, Uint32* val); +void nd_board_rd128_le(Uint32 addr, Uint32* val); + +void nd_board_rd8_be (Uint32 addr, Uint32* val); +void nd_board_rd16_be (Uint32 addr, Uint32* val); +void nd_board_rd32_be (Uint32 addr, Uint32* val); +void nd_board_rd64_be (Uint32 addr, Uint32* val); +void nd_board_rd128_be(Uint32 addr, Uint32* val); + +void nd_board_wr8_le (Uint32 addr, const Uint32* val); +void nd_board_wr16_le (Uint32 addr, const Uint32* val); +void nd_board_wr32_le (Uint32 addr, const Uint32* val); +void nd_board_wr64_le (Uint32 addr, const Uint32* val); +void nd_board_wr128_le(Uint32 addr, const Uint32* val); + +void nd_board_wr8_be (Uint32 addr, const Uint32* val); +void nd_board_wr16_be (Uint32 addr, const Uint32* val); +void nd_board_wr32_be (Uint32 addr, const Uint32* val); +void nd_board_wr64_be (Uint32 addr, const Uint32* val); +void nd_board_wr128_be(Uint32 addr, const Uint32* val); extern Uint8 ND_ram[64*1024*1024]; extern Uint8 ND_rom[128*1024]; -extern Uint32 ND_vram_off; extern Uint8 ND_vram[4*1024*1024]; +typedef void (*i860_run_func)(int); +extern i860_run_func i860_Run; + void dimension_init(void); void dimension_uninit(void); -void nd_i860_init(); -void nd_i860_uninit(); -void i860_Run(int nHostCycles); -void i860_reset(); -void i860_tick(bool inter); +void dimension_pause(bool pause); +void nd_i860_init(void); +void nd_i860_uninit(void); +void nd_i860_pause(bool pause); +void i860_reset(void); +void i860_interrupt(void); void nd_start_debugger(void); -void nd_set_speed_hack(int state); +const char* nd_reports(double realTime, double hostTime); #define ND_LOG_IO_RD LOG_NONE #define ND_LOG_IO_WR LOG_NONE -#endif - #endif /* __DIMENSION_H__ */