--- previous/src/cpu/memory.c 2018/04/24 19:27:55 1.1.1.2 +++ previous/src/cpu/memory.c 2018/04/24 19:29:02 1.1.1.3 @@ -74,6 +74,7 @@ uae_u8 bankshift; /* Video memory for monochrome systems */ #define NEXT_SCREEN 0x0B000000 +#define NEXT_SCREEN_TURBO 0x0C000000 #define NEXT_SCREEN_SIZE 0x00040000 #define NEXTvideo_size NEXT_SCREEN_SIZE #define NEXTvideo_mask 0x0003FFFF @@ -95,6 +96,7 @@ uae_u8 NEXTColorVideo[2*1024*1024]; #define NEXT_IO_SIZE 0x00020000 #define NEXT_BMAP_START 0x020C0000 +#define NEXT_BMAP2_START 0x820C0000 #define NEXT_BMAP_SIZE 0x10000 #define NEXTbmap_size NEXT_BMAP_SIZE #define NEXTbmap_mask 0x0000FFFF @@ -327,7 +329,7 @@ static uae_u32 NEXTempty_lget(uaecptr ad if (illegal_mem) write_log ("Empty mem area lget at %08lx\n", (long)addr); - M68000_BusError(addr, 1); +// M68000_BusError(addr, 1); return addr; } @@ -354,7 +356,7 @@ static void NEXTempty_lput(uaecptr addr, { if (illegal_mem) write_log ("Empty mem area lput at %08lx\n", (long)addr); - + uae_u8 bank = ((addr-NEXT_RAM_START)>>bankshift)&0x3; if (MemBank_Size[bank]) { @@ -362,7 +364,7 @@ static void NEXTempty_lput(uaecptr addr, do_put_mem_long(NEXTRam + addr, l); } - M68000_BusError(addr, 0); +// M68000_BusError(oldaddr, 0); } /*-------------------- end of experimental code ----------------------*/ @@ -751,19 +753,19 @@ static uae_u32 ROMmem_bget(uaecptr addr) static void ROMmem_lput(uaecptr addr, uae_u32 b) { illegal_trace(write_log ("Illegal ROMmem lput at %08lx\n", (long)addr)); - M68000_BusError(addr, 0); +// M68000_BusError(addr, 0); } static void ROMmem_wput(uaecptr addr, uae_u32 b) { illegal_trace(write_log ("Illegal ROMmem wput at %08lx\n", (long)addr)); - M68000_BusError(addr, 0); +// M68000_BusError(addr, 0); } static void ROMmem_bput(uaecptr addr, uae_u32 b) { illegal_trace(write_log ("Illegal ROMmem bput at %08lx\n", (long)addr)); - M68000_BusError(addr, 0); +// M68000_BusError(addr, 0); } static int ROMmem_check(uaecptr addr, uae_u32 size) @@ -983,11 +985,19 @@ const char* memory_init(int *nNewNEXTMem map_banks(&ColorVideo_bank, NEXT_COLORSCREEN>>16, NEXT_COLORSCREEN_SIZE >> 16); write_log("Mapping Video Memory at $%08x: %ikB\n", NEXT_COLORSCREEN, NEXT_COLORSCREEN_SIZE/1024); } else { - map_banks(&Video_bank, NEXT_SCREEN>>16, NEXT_SCREEN_SIZE >> 16); - map_banks(&Video_bank, NEXT_SCREEN>>16, NEXT_SCREEN_SIZE >> 16); - map_banks(&Video_bank, NEXT_SCREEN>>16, NEXT_SCREEN_SIZE >> 16); - map_banks(&Video_bank, NEXT_SCREEN>>16, NEXT_SCREEN_SIZE >> 16); - write_log("Mapping Video Memory at $%08x: %ikB\n", NEXT_SCREEN, NEXT_SCREEN_SIZE/1024); + if (ConfigureParams.System.bTurbo) { + map_banks(&Video_bank, NEXT_SCREEN_TURBO>>16, NEXT_SCREEN_SIZE >> 16); + map_banks(&Video_bank, NEXT_SCREEN_TURBO>>16, NEXT_SCREEN_SIZE >> 16); + map_banks(&Video_bank, NEXT_SCREEN_TURBO>>16, NEXT_SCREEN_SIZE >> 16); + map_banks(&Video_bank, NEXT_SCREEN_TURBO>>16, NEXT_SCREEN_SIZE >> 16); + write_log("Mapping Video Memory at $%08x: %ikB\n", NEXT_SCREEN, NEXT_SCREEN_SIZE/1024); + } else { + map_banks(&Video_bank, NEXT_SCREEN>>16, NEXT_SCREEN_SIZE >> 16); + map_banks(&Video_bank, NEXT_SCREEN>>16, NEXT_SCREEN_SIZE >> 16); + map_banks(&Video_bank, NEXT_SCREEN>>16, NEXT_SCREEN_SIZE >> 16); + map_banks(&Video_bank, NEXT_SCREEN>>16, NEXT_SCREEN_SIZE >> 16); + write_log("Mapping Video Memory at $%08x: %ikB\n", NEXT_SCREEN, NEXT_SCREEN_SIZE/1024); + } } map_banks(&ROMmem_bank, NEXT_EPROM_START >> 16, NEXT_EPROM_SIZE>>16); @@ -1000,8 +1010,10 @@ const char* memory_init(int *nNewNEXTMem if (ConfigureParams.System.bTurbo) map_banks(&IOmem_bank, NEXT_IO3_START >> 16, NEXT_IO_SIZE>>16); - + +// turbo rom makes test here... both read and write map_banks(&bmap_bank, NEXT_BMAP_START >> 16, NEXT_BMAP_SIZE>>16); + map_banks(&bmap_bank, NEXT_BMAP2_START >> 16, NEXT_BMAP_SIZE>>16); ROMmemory=NEXTRom;