mirror of
https://github.com/holub/mame
synced 2025-04-23 00:39:36 +03:00
Fixed memory access in the 80286 cpu core which made i286.h obsolete. Changed CPUINFO_INT_MAX_INSTRUCTION_BYTES to prevent crashes during disassembly.
This commit is contained in:
parent
4b53f7eebb
commit
4e1afc32f5
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -150,7 +150,6 @@ src/emu/cpu/i86/host.h svneol=native#text/plain
|
||||
src/emu/cpu/i86/i186intf.h svneol=native#text/plain
|
||||
src/emu/cpu/i86/i188intf.h svneol=native#text/plain
|
||||
src/emu/cpu/i86/i286.c svneol=native#text/plain
|
||||
src/emu/cpu/i86/i286.h svneol=native#text/plain
|
||||
src/emu/cpu/i86/i286intf.h svneol=native#text/plain
|
||||
src/emu/cpu/i86/i86.c svneol=native#text/plain
|
||||
src/emu/cpu/i86/i86.h svneol=native#text/plain
|
||||
|
@ -16,7 +16,9 @@
|
||||
|
||||
#define i8086_ICount i80286_ICount
|
||||
|
||||
#include "i286.h"
|
||||
#define INPUT_LINE_A20 1
|
||||
|
||||
#include "i86.h"
|
||||
#include "i286intf.h"
|
||||
|
||||
|
||||
@ -387,7 +389,7 @@ void i80286_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 1; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 8; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 15; break;
|
||||
case CPUINFO_INT_MIN_CYCLES: info->i = 1; break;
|
||||
case CPUINFO_INT_MAX_CYCLES: info->i = 50; break;
|
||||
|
||||
|
@ -1,36 +0,0 @@
|
||||
/****************************************************************************/
|
||||
/* real mode i286 emulator by Fabrice Frances */
|
||||
/* (initial work based on David Hedley's pcemu) */
|
||||
/* */
|
||||
/****************************************************************************/
|
||||
|
||||
#include "i86.h"
|
||||
|
||||
#define INPUT_LINE_A20 1
|
||||
|
||||
#undef GetMemB
|
||||
#undef GetMemW
|
||||
#undef PutMemB
|
||||
#undef PutMemW
|
||||
|
||||
/* ASG 971005 -- changed to program_read_byte_8/program_write_byte_8 */
|
||||
#define GetMemB(Seg,Off) ( (BYTE)program_read_byte_8le((DefaultBase(Seg)+(Off))&AMASK))
|
||||
#define GetMemW(Seg,Off) ( (WORD)GetMemB(Seg,Off)+(WORD)(GetMemB(Seg,(Off)+1)<<8))
|
||||
#define PutMemB(Seg,Off,x) { program_write_byte_8le((DefaultBase(Seg)+(Off))&AMASK,(x)); }
|
||||
#define PutMemW(Seg,Off,x) { PutMemB(Seg,Off,(BYTE)(x)); PutMemB(Seg,(Off)+1,(BYTE)((x)>>8)); }
|
||||
|
||||
#undef PEEKBYTE
|
||||
#define PEEKBYTE(ea) ((BYTE)program_read_byte_8le((ea)&AMASK))
|
||||
|
||||
#undef ReadByte
|
||||
#undef ReadWord
|
||||
#undef WriteByte
|
||||
#undef WriteWord
|
||||
|
||||
#define ReadByte(ea) ((BYTE)program_read_byte_8le((ea)&AMASK))
|
||||
#define ReadWord(ea) (program_read_byte_8le((ea)&AMASK)+(program_read_byte_8le(((ea)+1)&AMASK)<<8))
|
||||
#define WriteByte(ea,val) { program_write_byte_8le((ea)&AMASK,val); }
|
||||
#define WriteWord(ea,val) { program_write_byte_8le((ea)&AMASK,(BYTE)(val)); program_write_byte_8le(((ea)+1)&AMASK,(val)>>8); }
|
||||
|
||||
#undef CHANGE_PC
|
||||
#define CHANGE_PC(addr) change_pc(addr)
|
Loading…
Reference in New Issue
Block a user