summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--src/emu/cpu/powerpc/ppc_mem.c24
-rw-r--r--src/emu/cpu/sharc/sharc.c5
-rw-r--r--src/emu/cpu/sharc/sharcmem.c4
-rw-r--r--src/emu/cpu/spc700/spc700ds.h2
-rw-r--r--src/emu/cpu/upd7810/upd7810.c36
-rw-r--r--src/emu/cpu/upd7810/upd7810.h2
-rw-r--r--src/emu/cpu/v30mz/v30mz.c6
-rw-r--r--src/emu/cpu/v30mz/v30mz.h30
-rw-r--r--src/emu/cpu/v60/am.c10
-rw-r--r--src/emu/cpu/v60/am1.c338
-rw-r--r--src/emu/cpu/v60/am2.c236
-rw-r--r--src/emu/cpu/v60/am3.c230
-rw-r--r--src/emu/cpu/v60/op12.c92
-rw-r--r--src/emu/cpu/v60/op2.c8
-rw-r--r--src/emu/cpu/v60/op3.c80
-rw-r--r--src/emu/cpu/v60/op4.c64
-rw-r--r--src/emu/cpu/v60/op5.c21
-rw-r--r--src/emu/cpu/v60/op6.c36
-rw-r--r--src/emu/cpu/v60/op7a.c102
-rw-r--r--src/emu/cpu/v60/v60.c23
-rw-r--r--src/emu/cpu/v60/v60mem.c310
-rw-r--r--src/emu/cpu/v810/v810.c5
-rw-r--r--src/emu/cpu/v810/v810.h24
-rw-r--r--src/emu/cpu/z180/z180.c43
-rw-r--r--src/emu/cpu/z180/z180dd.c2
-rw-r--r--src/emu/cpu/z180/z180ed.c2
-rw-r--r--src/emu/cpu/z180/z180ops.h16
-rw-r--r--src/emu/cpu/z8000/z8000.c49
-rw-r--r--src/emu/cpu/z8000/z8000tbl.c8
29 files changed, 838 insertions, 970 deletions
diff --git a/src/emu/cpu/powerpc/ppc_mem.c b/src/emu/cpu/powerpc/ppc_mem.c
index 006c2f8ed33..6734b5feecc 100644
--- a/src/emu/cpu/powerpc/ppc_mem.c
+++ b/src/emu/cpu/powerpc/ppc_mem.c
@@ -392,10 +392,10 @@ static CPU_READOP( ppc )
{
switch(size)
{
- case 1: *value = program_read_byte(offset); break;
- case 2: *value = program_read_word(offset); break;
- case 4: *value = program_read_dword(offset); break;
- case 8: *value = program_read_qword(offset); break;
+ case 1: *value = memory_read_byte(ppc.program, offset); break;
+ case 2: *value = memory_read_word(ppc.program, offset); break;
+ case 4: *value = memory_read_dword(ppc.program, offset); break;
+ case 8: *value = memory_read_qword(ppc.program, offset); break;
}
}
@@ -413,10 +413,10 @@ static CPU_READ( ppc )
{
switch(size)
{
- case 1: *value = program_read_byte(offset); break;
- case 2: *value = program_read_word(offset); break;
- case 4: *value = program_read_dword(offset); break;
- case 8: *value = program_read_qword(offset); break;
+ case 1: *value = memory_read_byte(ppc.program, offset); break;
+ case 2: *value = memory_read_word(ppc.program, offset); break;
+ case 4: *value = memory_read_dword(ppc.program, offset); break;
+ case 8: *value = memory_read_qword(ppc.program, offset); break;
}
}
@@ -432,10 +432,10 @@ static CPU_WRITE( ppc )
{
switch(size)
{
- case 1: program_write_byte(offset, value); break;
- case 2: program_write_word(offset, value); break;
- case 4: program_write_dword(offset, value); break;
- case 8: program_write_qword(offset, value); break;
+ case 1: memory_write_byte(ppc.program, offset, value); break;
+ case 2: memory_write_word(ppc.program, offset, value); break;
+ case 4: memory_write_dword(ppc.program, offset, value); break;
+ case 8: memory_write_qword(ppc.program, offset, value); break;
}
}
diff --git a/src/emu/cpu/sharc/sharc.c b/src/emu/cpu/sharc/sharc.c
index b702483426e..f459ad7637a 100644
--- a/src/emu/cpu/sharc/sharc.c
+++ b/src/emu/cpu/sharc/sharc.c
@@ -3,6 +3,7 @@
Written by Ville Linde
*/
+#define NO_LEGACY_MEMORY_HANDLERS 1
#include "sharc.h"
#include "debugger.h"
@@ -127,6 +128,8 @@ typedef struct
cpu_irq_callback irq_callback;
const device_config *device;
+ const address_space *program;
+ const address_space *data;
void (*opcode_handler)(void);
UINT64 opcode;
UINT64 fetch_opcode;
@@ -427,6 +430,8 @@ static CPU_INIT( sharc )
sharc.irq_callback = irqcallback;
sharc.device = device;
+ sharc.program = memory_find_address_space(device, ADDRESS_SPACE_PROGRAM);
+ sharc.data = memory_find_address_space(device, ADDRESS_SPACE_DATA);
build_opcode_table();
diff --git a/src/emu/cpu/sharc/sharcmem.c b/src/emu/cpu/sharc/sharcmem.c
index d0ff3428983..55dec19da1f 100644
--- a/src/emu/cpu/sharc/sharcmem.c
+++ b/src/emu/cpu/sharc/sharcmem.c
@@ -153,7 +153,7 @@ static UINT32 dm_read32(UINT32 address)
}
}
- return data_read_dword_32le(address << 2);
+ return memory_read_dword_32le(sharc.data, address << 2);
}
static void dm_write32(UINT32 address, UINT32 data)
@@ -198,5 +198,5 @@ static void dm_write32(UINT32 address, UINT32 data)
return;
}
- data_write_dword_32le(address << 2, data);
+ memory_write_dword_32le(sharc.data, address << 2, data);
}
diff --git a/src/emu/cpu/spc700/spc700ds.h b/src/emu/cpu/spc700/spc700ds.h
index e231273f8d0..bb03934f601 100644
--- a/src/emu/cpu/spc700/spc700ds.h
+++ b/src/emu/cpu/spc700/spc700ds.h
@@ -23,7 +23,5 @@ author (Karl Stenerud) at karl@higashiyama-unet.ocn.ne.jp.
CPU_DISASSEMBLE( spc700 );
-#define spc700_read_8_disassembler(addr) program_read_byte_8(addr)
-
#endif /* __SPC700DS_H__ */
diff --git a/src/emu/cpu/upd7810/upd7810.c b/src/emu/cpu/upd7810/upd7810.c
index 0068a2cb9a8..40b9b500e81 100644
--- a/src/emu/cpu/upd7810/upd7810.c
+++ b/src/emu/cpu/upd7810/upd7810.c
@@ -404,7 +404,7 @@ STOP 01001000 10111011 12 stop
*/
-
+#define NO_LEGACY_MEMORY_HANDLERS 1
#include "debugger.h"
#include "upd7810.h"
@@ -536,10 +536,10 @@ struct opcode_s {
UINT8 mask_l0_l1;
};
-#define RDOP(O) O = program_decrypted_read_byte(PCD); PC++
-#define RDOPARG(A) A = program_raw_read_byte(PCD); PC++
-#define RM(A) program_read_byte_8le(A)
-#define WM(A,V) program_write_byte_8le(A,V)
+#define RDOP(O) O = memory_decrypted_read_byte(upd7810.program, PCD); PC++
+#define RDOPARG(A) A = memory_raw_read_byte(upd7810.program, PCD); PC++
+#define RM(A) memory_read_byte_8le(upd7810.program, A)
+#define WM(A,V) memory_write_byte_8le(upd7810.program, A,V)
#define ZHC_ADD(after,before,carry) \
if (after == 0) PSW |= Z; else PSW &= ~Z; \
@@ -580,17 +580,17 @@ static UINT8 RP(offs_t port)
{
case UPD7810_PORTA:
if (upd7810.ma) // NS20031301 no need to read if the port is set as output
- upd7810.pa_in = io_read_byte_8le(port);
+ upd7810.pa_in = memory_read_byte_8le(upd7810.io, port);
data = (upd7810.pa_in & upd7810.ma) | (upd7810.pa_out & ~upd7810.ma);
break;
case UPD7810_PORTB:
if (upd7810.mb) // NS20031301 no need to read if the port is set as output
- upd7810.pb_in = io_read_byte_8le(port);
+ upd7810.pb_in = memory_read_byte_8le(upd7810.io, port);
data = (upd7810.pb_in & upd7810.mb) | (upd7810.pb_out & ~upd7810.mb);
break;
case UPD7810_PORTC:
if (upd7810.mc) // NS20031301 no need to read if the port is set as output
- upd7810.pc_in = io_read_byte_8le(port);
+ upd7810.pc_in = memory_read_byte_8le(upd7810.io, port);
data = (upd7810.pc_in & upd7810.mc) | (upd7810.pc_out & ~upd7810.mc);
if (upd7810.mcc & 0x01) /* PC0 = TxD output */
data = (data & ~0x01) | (upd7810.txd & 1 ? 0x01 : 0x00);
@@ -610,7 +610,7 @@ static UINT8 RP(offs_t port)
data = (data & ~0x80) | (upd7810.co1 & 1 ? 0x80 : 0x00);
break;
case UPD7810_PORTD:
- upd7810.pd_in = io_read_byte_8le(port);
+ upd7810.pd_in = memory_read_byte_8le(upd7810.io, port);
switch (upd7810.mm & 0x07)
{
case 0x00: /* PD input mode, PF port mode */
@@ -625,7 +625,7 @@ static UINT8 RP(offs_t port)
}
break;
case UPD7810_PORTF:
- upd7810.pf_in = io_read_byte_8le(port);
+ upd7810.pf_in = memory_read_byte_8le(upd7810.io, port);
switch (upd7810.mm & 0x06)
{
case 0x00: /* PD input/output mode, PF port mode */
@@ -645,7 +645,7 @@ static UINT8 RP(offs_t port)
}
break;
case UPD7807_PORTT: // NS20031301 partial implementation
- data = io_read_byte_8le(port);
+ data = memory_read_byte_8le(upd7810.io, port);
break;
default:
logerror("uPD7810 internal error: RP() called with invalid port number\n");
@@ -661,13 +661,13 @@ static void WP(offs_t port, UINT8 data)
upd7810.pa_out = data;
// data = (data & ~upd7810.ma) | (upd7810.pa_in & upd7810.ma);
data = (data & ~upd7810.ma) | (upd7810.ma); // NS20031401
- io_write_byte_8le(port, data);
+ memory_write_byte_8le(upd7810.io, port, data);
break;
case UPD7810_PORTB:
upd7810.pb_out = data;
// data = (data & ~upd7810.mb) | (upd7810.pb_in & upd7810.mb);
data = (data & ~upd7810.mb) | (upd7810.mb); // NS20031401
- io_write_byte_8le(port, data);
+ memory_write_byte_8le(upd7810.io, port, data);
break;
case UPD7810_PORTC:
upd7810.pc_out = data;
@@ -689,7 +689,7 @@ static void WP(offs_t port, UINT8 data)
data = (data & ~0x40) | (upd7810.co0 & 1 ? 0x40 : 0x00);
if (upd7810.mcc & 0x80) /* PC7 = CO1 output */
data = (data & ~0x80) | (upd7810.co1 & 1 ? 0x80 : 0x00);
- io_write_byte_8le(port, data);
+ memory_write_byte_8le(upd7810.io, port, data);
break;
case UPD7810_PORTD:
upd7810.pd_out = data;
@@ -704,7 +704,7 @@ static void WP(offs_t port, UINT8 data)
default: /* PD extension mode, PF port/extension mode */
return;
}
- io_write_byte_8le(port, data);
+ memory_write_byte_8le(upd7810.io, port, data);
break;
case UPD7810_PORTF:
upd7810.pf_out = data;
@@ -723,7 +723,7 @@ static void WP(offs_t port, UINT8 data)
data |= 0xff; /* what would come out for the lower bits here? */
break;
}
- io_write_byte_8le(port, data);
+ memory_write_byte_8le(upd7810.io, port, data);
break;
default:
logerror("uPD7810 internal error: RP() called with invalid port number\n");
@@ -1534,6 +1534,8 @@ static CPU_INIT( upd7810 )
upd7810.config = *(const UPD7810_CONFIG*) device->static_config;
upd7810.irq_callback = irqcallback;
upd7810.device = device;
+ upd7810.program = memory_find_address_space(device, ADDRESS_SPACE_PROGRAM);
+ upd7810.io = memory_find_address_space(device, ADDRESS_SPACE_IO);
state_save_register_item("upd7810", device->tag, 0, upd7810.ppc.w.l);
state_save_register_item("upd7810", device->tag, 0, upd7810.pc.w.l);
@@ -1613,6 +1615,8 @@ static CPU_RESET( upd7810 )
upd7810.config = save_config;
upd7810.irq_callback = save_irqcallback;
upd7810.device = device;
+ upd7810.program = memory_find_address_space(device, ADDRESS_SPACE_PROGRAM);
+ upd7810.io = memory_find_address_space(device, ADDRESS_SPACE_IO);
upd7810.opXX = opXX_7810;
upd7810.op48 = op48;
diff --git a/src/emu/cpu/upd7810/upd7810.h b/src/emu/cpu/upd7810/upd7810.h
index 1f6fce2d5bb..f2e01c6c467 100644
--- a/src/emu/cpu/upd7810/upd7810.h
+++ b/src/emu/cpu/upd7810/upd7810.h
@@ -165,6 +165,8 @@ typedef struct {
UPD7810_CONFIG config;
cpu_irq_callback irq_callback;
const device_config *device;
+ const address_space *program;
+ const address_space *io;
} UPD7810;
CPU_DISASSEMBLE( upd7810 );
diff --git a/src/emu/cpu/v30mz/v30mz.c b/src/emu/cpu/v30mz/v30mz.c
index 29f0ebcd49f..bf3ff36d9f4 100644
--- a/src/emu/cpu/v30mz/v30mz.c
+++ b/src/emu/cpu/v30mz/v30mz.c
@@ -78,6 +78,8 @@ typedef struct
cpu_irq_callback irq_callback;
const device_config *device;
+ const address_space *program;
+ const address_space *io;
} nec_Regs;
/***************************************************************************/
@@ -117,6 +119,8 @@ static CPU_RESET( nec )
memset( &I, 0, sizeof(I) );
I.irq_callback = save_irqcallback;
I.device = device;
+ I.program = memory_find_address_space(device, ADDRESS_SPACE_PROGRAM);
+ I.io = memory_find_address_space(device, ADDRESS_SPACE_IO);
I.sregs[CS] = 0xffff;
@@ -949,6 +953,8 @@ static void nec_init(const device_config *device, int index, int clock, cpu_irq_
I.irq_callback = irqcallback;
I.device = device;
+ I.program = memory_find_address_space(device, ADDRESS_SPACE_PROGRAM);
+ I.io = memory_find_address_space(device, ADDRESS_SPACE_IO);
}
static CPU_INIT( v30mz ) { nec_init(device, index, clock, irqcallback, 3); }
diff --git a/src/emu/cpu/v30mz/v30mz.h b/src/emu/cpu/v30mz/v30mz.h
index 7e51862d773..39317bbbc6c 100644
--- a/src/emu/cpu/v30mz/v30mz.h
+++ b/src/emu/cpu/v30mz/v30mz.h
@@ -70,30 +70,30 @@ typedef enum { AH,AL,CH,CL,DH,DL,BH,BL,SPH,SPL,BPH,BPL,IXH,IXL,IYH,IYL } BREGS;
#define DefaultBase(Seg) ((seg_prefix && (Seg==DS || Seg==SS)) ? prefix_base : I.sregs[Seg] << 4)
-#define GetMemB(Seg,Off) ((UINT8)program_read_byte_8le((DefaultBase(Seg)+(Off))))
-#define GetMemW(Seg,Off) ((UINT16) program_read_byte_8le((DefaultBase(Seg)+(Off))) + (program_read_byte_8le((DefaultBase(Seg)+((Off)+1)))<<8) )
+#define GetMemB(Seg,Off) ((UINT8)memory_read_byte_8le(I.program, (DefaultBase(Seg)+(Off))))
+#define GetMemW(Seg,Off) ((UINT16) memory_read_byte_8le(I.program, (DefaultBase(Seg)+(Off))) + (memory_read_byte_8le(I.program, (DefaultBase(Seg)+((Off)+1)))<<8) )
-#define PutMemB(Seg,Off,x) { program_write_byte_8le((DefaultBase(Seg)+(Off)),(x)); }
+#define PutMemB(Seg,Off,x) { memory_write_byte_8le(I.program, (DefaultBase(Seg)+(Off)),(x)); }
#define PutMemW(Seg,Off,x) { PutMemB(Seg,Off,(x)&0xff); PutMemB(Seg,(Off)+1,(BYTE)((x)>>8)); }
/* Todo: Remove these later - plus readword could overflow */
-#define ReadByte(ea) ((BYTE)program_read_byte_8le((ea)))
-#define ReadWord(ea) (program_read_byte_8le((ea))+(program_read_byte_8le(((ea)+1))<<8))
-#define WriteByte(ea,val) { program_write_byte_8le((ea),val); }
-#define WriteWord(ea,val) { program_write_byte_8le((ea),(BYTE)(val)); program_write_byte_8le(((ea)+1),(val)>>8); }
+#define ReadByte(ea) ((BYTE)memory_read_byte_8le(I.program, (ea)))
+#define ReadWord(ea) (memory_read_byte_8le(I.program, (ea))+(memory_read_byte_8le(I.program, ((ea)+1))<<8))
+#define WriteByte(ea,val) { memory_write_byte_8le(I.program, (ea),val); }
+#define WriteWord(ea,val) { memory_write_byte_8le(I.program, (ea),(BYTE)(val)); memory_write_byte_8le(I.program, ((ea)+1),(val)>>8); }
-#define read_port(port) io_read_byte_8le(port)
-#define write_port(port,val) io_write_byte_8le(port,val)
+#define read_port(port) memory_read_byte_8le(I.io, port)
+#define write_port(port,val) memory_write_byte_8le(I.io, port,val)
-#define FETCH (program_raw_read_byte((I.sregs[CS]<<4)+I.ip++))
-#define FETCHOP (program_decrypted_read_byte((I.sregs[CS]<<4)+I.ip++))
-#define FETCHWORD(var) { var=program_raw_read_byte((((I.sregs[CS]<<4)+I.ip)))+(program_raw_read_byte((((I.sregs[CS]<<4)+I.ip+1)))<<8); I.ip+=2; }
+#define FETCH (memory_raw_read_byte(I.program, (I.sregs[CS]<<4)+I.ip++))
+#define FETCHOP (memory_decrypted_read_byte(I.program, (I.sregs[CS]<<4)+I.ip++))
+#define FETCHWORD(var) { var=memory_raw_read_byte(I.program, (((I.sregs[CS]<<4)+I.ip)))+(memory_raw_read_byte(I.program, (((I.sregs[CS]<<4)+I.ip+1)))<<8); I.ip+=2; }
#define PUSH(val) { I.regs.w[SP]-=2; WriteWord((((I.sregs[SS]<<4)+I.regs.w[SP])),val); }
#define POP(var) { var = ReadWord((((I.sregs[SS]<<4)+I.regs.w[SP]))); I.regs.w[SP]+=2; }
-#define PEEK(addr) ((BYTE)program_raw_read_byte(addr))
-#define PEEKOP(addr) ((BYTE)program_decrypted_read_byte(addr))
+#define PEEK(addr) ((BYTE)memory_raw_read_byte(I.program, addr))
+#define PEEKOP(addr) ((BYTE)memory_decrypted_read_byte(I.program, addr))
-#define GetModRM UINT32 ModRM=program_raw_read_byte((I.sregs[CS]<<4)+I.ip++)
+#define GetModRM UINT32 ModRM=memory_raw_read_byte(I.program, (I.sregs[CS]<<4)+I.ip++)
/* Cycle count macros:
CLK - cycle count is the same on all processors
diff --git a/src/emu/cpu/v60/am.c b/src/emu/cpu/v60/am.c
index d386e25d8a3..e998710cc3d 100644
--- a/src/emu/cpu/v60/am.c
+++ b/src/emu/cpu/v60/am.c
@@ -43,14 +43,14 @@ static UINT8 modDim;
static UINT32 ReadAM(void)
{
modM=modM?1:0;
- modVal=OpRead8(modAdd);
+ modVal=OpRead8(v60.program,modAdd);
return AMTable1[modM][modVal>>5]();
}
static UINT32 BitReadAM(void)
{
modM=modM?1:0;
- modVal=OpRead8(modAdd);
+ modVal=OpRead8(v60.program,modAdd);
return BAMTable1[modM][modVal>>5]();
}
@@ -70,14 +70,14 @@ static UINT32 BitReadAM(void)
static UINT32 ReadAMAddress(void)
{
modM=modM?1:0;
- modVal=OpRead8(modAdd);
+ modVal=OpRead8(v60.program,modAdd);
return AMTable2[modM][modVal>>5]();
}
static UINT32 BitReadAMAddress(void)
{
modM=modM?1:0;
- modVal=OpRead8(modAdd);
+ modVal=OpRead8(v60.program,modAdd);
return BAMTable2[modM][modVal>>5]();
}
@@ -95,7 +95,7 @@ static UINT32 BitReadAMAddress(void)
static UINT32 WriteAM(void)
{
modM=modM?1:0;
- modVal=OpRead8(modAdd);
+ modVal=OpRead8(v60.program,modAdd);
return AMTable3[modM][modVal>>5]();
}
diff --git a/src/emu/cpu/v60/am1.c b/src/emu/cpu/v60/am1.c
index 3377c604a64..359a0720fcf 100644
--- a/src/emu/cpu/v60/am1.c
+++ b/src/emu/cpu/v60/am1.c
@@ -25,13 +25,13 @@ static UINT32 am1RegisterIndirect(void)
switch (modDim)
{
case 0:
- amOut=MemRead8(v60.reg[modVal&0x1F]);
+ amOut=MemRead8(v60.program,v60.reg[modVal&0x1F]);
break;
case 1:
- amOut=MemRead16(v60.reg[modVal&0x1F]);
+ amOut=MemRead16(v60.program,v60.reg[modVal&0x1F]);
break;
case 2:
- amOut=MemRead32(v60.reg[modVal&0x1F]);
+ amOut=MemRead32(v60.program,v60.reg[modVal&0x1F]);
break;
}
@@ -41,7 +41,7 @@ static UINT32 am1RegisterIndirect(void)
static UINT32 bam1RegisterIndirect(void)
{
bamOffset=0;
- amOut=MemRead32(v60.reg[modVal&0x1F]);
+ amOut=MemRead32(v60.program,v60.reg[modVal&0x1F]);
return 1;
}
@@ -50,13 +50,13 @@ static UINT32 am1RegisterIndirectIndexed(void)
switch (modDim)
{
case 0:
- amOut=MemRead8(v60.reg[modVal2&0x1F]+v60.reg[modVal&0x1F]);
+ amOut=MemRead8(v60.program,v60.reg[modVal2&0x1F]+v60.reg[modVal&0x1F]);
break;
case 1:
- amOut=MemRead16(v60.reg[modVal2&0x1F]+v60.reg[modVal&0x1F]*2);
+ amOut=MemRead16(v60.program,v60.reg[modVal2&0x1F]+v60.reg[modVal&0x1F]*2);
break;
case 2:
- amOut=MemRead32(v60.reg[modVal2&0x1F]+v60.reg[modVal&0x1F]*4);
+ amOut=MemRead32(v60.program,v60.reg[modVal2&0x1F]+v60.reg[modVal&0x1F]*4);
break;
}
@@ -66,7 +66,7 @@ static UINT32 am1RegisterIndirectIndexed(void)
static UINT32 bam1RegisterIndirectIndexed(void)
{
bamOffset=v60.reg[modVal&0x1F];
- amOut=MemRead32(v60.reg[modVal2&0x1F]+bamOffset/8);
+ amOut=MemRead32(v60.program,v60.reg[modVal2&0x1F]+bamOffset/8);
bamOffset&=7;
return 2;
}
@@ -76,15 +76,15 @@ static UINT32 am1Autoincrement(void)
switch (modDim)
{
case 0:
- amOut=MemRead8(v60.reg[modVal&0x1F]);
+ amOut=MemRead8(v60.program,v60.reg[modVal&0x1F]);
v60.reg[modVal&0x1F]++;
break;
case 1:
- amOut=MemRead16(v60.reg[modVal&0x1F]);
+ amOut=MemRead16(v60.program,v60.reg[modVal&0x1F]);
v60.reg[modVal&0x1F]+=2;
break;
case 2:
- amOut=MemRead32(v60.reg[modVal&0x1F]);
+ amOut=MemRead32(v60.program,v60.reg[modVal&0x1F]);
v60.reg[modVal&0x1F]+=4;
break;
}
@@ -95,7 +95,7 @@ static UINT32 am1Autoincrement(void)
static UINT32 bam1Autoincrement(void)
{
bamOffset=0;
- amOut=MemRead32(v60.reg[modVal&0x1F]);
+ amOut=MemRead32(v60.program,v60.reg[modVal&0x1F]);
switch (modDim)
{
case 10:
@@ -117,15 +117,15 @@ static UINT32 am1Autodecrement(void)
{
case 0:
v60.reg[modVal&0x1F]--;
- amOut=MemRead8(v60.reg[modVal&0x1F]);
+ amOut=MemRead8(v60.program,v60.reg[modVal&0x1F]);
break;
case 1:
v60.reg[modVal&0x1F]-=2;
- amOut=MemRead16(v60.reg[modVal&0x1F]);
+ amOut=MemRead16(v60.program,v60.reg[modVal&0x1F]);
break;
case 2:
v60.reg[modVal&0x1F]-=4;
- amOut=MemRead32(v60.reg[modVal&0x1F]);
+ amOut=MemRead32(v60.program,v60.reg[modVal&0x1F]);
break;
}
@@ -147,7 +147,7 @@ static UINT32 bam1Autodecrement(void)
fatalerror("CPU - BAM1 - 7");
break;
}
- amOut=MemRead32(v60.reg[modVal&0x1F]);
+ amOut=MemRead32(v60.program,v60.reg[modVal&0x1F]);
return 1;
}
@@ -156,13 +156,13 @@ static UINT32 am1Displacement8(void)
switch (modDim)
{
case 0:
- amOut=MemRead8(v60.reg[modVal&0x1F] + (INT8)OpRead8(modAdd+1));
+ amOut=MemRead8(v60.program,v60.reg[modVal&0x1F] + (INT8)OpRead8(v60.program,modAdd+1));
break;
case 1:
- amOut=MemRead16(v60.reg[modVal&0x1F] + (INT8)OpRead8(modAdd+1));
+ amOut=MemRead16(v60.program,v60.reg[modVal&0x1F] + (INT8)OpRead8(v60.program,modAdd+1));
break;
case 2:
- amOut=MemRead32(v60.reg[modVal&0x1F] + (INT8)OpRead8(modAdd+1));
+ amOut=MemRead32(v60.program,v60.reg[modVal&0x1F] + (INT8)OpRead8(v60.program,modAdd+1));
break;
}
@@ -171,8 +171,8 @@ static UINT32 am1Displacement8(void)
static UINT32 bam1Displacement8(void)
{
- bamOffset=MemRead8(modAdd+1);
- amOut=MemRead32(v60.reg[modVal&0x1F]+bamOffset/8);
+ bamOffset=MemRead8(v60.program,modAdd+1);
+ amOut=MemRead32(v60.program,v60.reg[modVal&0x1F]+bamOffset/8);
bamOffset&=7;
return 2;
}
@@ -183,13 +183,13 @@ static UINT32 am1Displacement16(void)
switch (modDim)
{
case 0:
- amOut=MemRead8(v60.reg[modVal&0x1F] + (INT16)OpRead16(modAdd+1));
+ amOut=MemRead8(v60.program,v60.reg[modVal&0x1F] + (INT16)OpRead16(v60.program,modAdd+1));
break;
case 1:
- amOut=MemRead16(v60.reg[modVal&0x1F] + (INT16)OpRead16(modAdd+1));
+ amOut=MemRead16(v60.program,v60.reg[modVal&0x1F] + (INT16)OpRead16(v60.program,modAdd+1));
break;
case 2:
- amOut=MemRead32(v60.reg[modVal&0x1F] + (INT16)OpRead16(modAdd+1));
+ amOut=MemRead32(v60.program,v60.reg[modVal&0x1F] + (INT16)OpRead16(v60.program,modAdd+1));
break;
}
@@ -198,8 +198,8 @@ static UINT32 am1Displacement16(void)
static UINT32 bam1Displacement16(void)
{
- bamOffset=OpRead16(modAdd+1);
- amOut=MemRead32(v60.reg[modVal&0x1F]+bamOffset/8);
+ bamOffset=OpRead16(v60.program,modAdd+1);
+ amOut=MemRead32(v60.program,v60.reg[modVal&0x1F]+bamOffset/8);
bamOffset&=7;
return 3;
}
@@ -209,13 +209,13 @@ static UINT32 am1Displacement32(void)
switch (modDim)
{
case 0:
- amOut=MemRead8(v60.reg[modVal&0x1F] + OpRead32(modAdd+1));
+ amOut=MemRead8(v60.program,v60.reg[modVal&0x1F] + OpRead32(v60.program,modAdd+1));
break;
case 1:
- amOut=MemRead16(v60.reg[modVal&0x1F] + OpRead32(modAdd+1));
+ amOut=MemRead16(v60.program,v60.reg[modVal&0x1F] + OpRead32(v60.program,modAdd+1));
break;
case 2:
- amOut=MemRead32(v60.reg[modVal&0x1F] + OpRead32(modAdd+1));
+ amOut=MemRead32(v60.program,v60.reg[modVal&0x1F] + OpRead32(v60.program,modAdd+1));
break;
}
@@ -224,8 +224,8 @@ static UINT32 am1Displacement32(void)
static UINT32 bam1Displacement32(void)
{
- bamOffset=OpRead32(modAdd+1);
- amOut=MemRead32(v60.reg[modVal&0x1F]+bamOffset/8);
+ bamOffset=OpRead32(v60.program,modAdd+1);
+ amOut=MemRead32(v60.program,v60.reg[modVal&0x1F]+bamOffset/8);
bamOffset&=7;
return 5;
}
@@ -235,13 +235,13 @@ static UINT32 am1DisplacementIndexed8(void)
switch (modDim)
{
case 0:
- amOut=MemRead8(v60.reg[modVal2&0x1F] + (INT8)OpRead8(modAdd+2) + v60.reg[modVal&0x1F]);
+ amOut=MemRead8(v60.program,v60.reg[modVal2&0x1F] + (INT8)OpRead8(v60.program,modAdd+2) + v60.reg[modVal&0x1F]);
break;
case 1:
- amOut=MemRead16(v60.reg[modVal2&0x1F] + (INT8)OpRead8(modAdd+2) + v60.reg[modVal&0x1F]*2);
+ amOut=MemRead16(v60.program,v60.reg[modVal2&0x1F] + (INT8)OpRead8(v60.program,modAdd+2) + v60.reg[modVal&0x1F]*2);
break;
case 2:
- amOut=MemRead32(v60.reg[modVal2&0x1F] + (INT8)OpRead8(modAdd+2) + v60.reg[modVal&0x1F]*4);
+ amOut=MemRead32(v60.program,v60.reg[modVal2&0x1F] + (INT8)OpRead8(v60.program,modAdd+2) + v60.reg[modVal&0x1F]*4);
break;
}
@@ -251,7 +251,7 @@ static UINT32 am1DisplacementIndexed8(void)
static UINT32 bam1DisplacementIndexed8(void)
{
bamOffset=v60.reg[modVal&0x1F];
- amOut=MemRead32(v60.reg[modVal2&0x1F] + (INT8)OpRead8(modAdd+2)+bamOffset/8);
+ amOut=MemRead32(v60.program,v60.reg[modVal2&0x1F] + (INT8)OpRead8(v60.program,modAdd+2)+bamOffset/8);
bamOffset&=7;
return 3;
}
@@ -261,13 +261,13 @@ static UINT32 am1DisplacementIndexed16(void)
switch (modDim)
{
case 0:
- amOut=MemRead8(v60.reg[modVal2&0x1F] + (INT16)OpRead16(modAdd+2) + v60.reg[modVal&0x1F]);
+ amOut=MemRead8(v60.program,v60.reg[modVal2&0x1F] + (INT16)OpRead16(v60.program,modAdd+2) + v60.reg[modVal&0x1F]);
break;
case 1:
- amOut=MemRead16(v60.reg[modVal2&0x1F] + (INT16)OpRead16(modAdd+2) + v60.reg[modVal&0x1F]*2);
+ amOut=MemRead16(v60.program,v60.reg[modVal2&0x1F] + (INT16)OpRead16(v60.program,modAdd+2) + v60.reg[modVal&0x1F]*2);
break;
case 2:
- amOut=MemRead32(v60.reg[modVal2&0x1F] + (INT16)OpRead16(modAdd+2) + v60.reg[modVal&0x1F]*4);
+ amOut=MemRead32(v60.program,v60.reg[modVal2&0x1F] + (INT16)OpRead16(v60.program,modAdd+2) + v60.reg[modVal&0x1F]*4);
break;
}
@@ -277,7 +277,7 @@ static UINT32 am1DisplacementIndexed16(void)
static UINT32 bam1DisplacementIndexed16(void)
{
bamOffset=v60.reg[modVal&0x1F];
- amOut=MemRead32(v60.reg[modVal2&0x1F] + (INT16)OpRead16(modAdd+2)+bamOffset/8);
+ amOut=MemRead32(v60.program,v60.reg[modVal2&0x1F] + (INT16)OpRead16(v60.program,modAdd+2)+bamOffset/8);
bamOffset&=7;
return 4;
}
@@ -287,13 +287,13 @@ static UINT32 am1DisplacementIndexed32(void)
switch (modDim)
{
case 0:
- amOut=MemRead8(v60.reg[modVal2&0x1F] + OpRead32(modAdd+2) + v60.reg[modVal&0x1F]);
+ amOut=MemRead8(v60.program,v60.reg[modVal2&0x1F] + OpRead32(v60.program,modAdd+2) + v60.reg[modVal&0x1F]);
break;
case 1:
- amOut=MemRead16(v60.reg[modVal2&0x1F] + OpRead32(modAdd+2) + v60.reg[modVal&0x1F]*2);
+ amOut=MemRead16(v60.program,v60.reg[modVal2&0x1F] + OpRead32(v60.program,modAdd+2) + v60.reg[modVal&0x1F]*2);
break;
case 2:
- amOut=MemRead32(v60.reg[modVal2&0x1F] + OpRead32(modAdd+2) + v60.reg[modVal&0x1F]*4);
+ amOut=MemRead32(v60.program,v60.reg[modVal2&0x1F] + OpRead32(v60.program,modAdd+2) + v60.reg[modVal&0x1F]*4);
break;
}
@@ -303,7 +303,7 @@ static UINT32 am1DisplacementIndexed32(void)
static UINT32 bam1DisplacementIndexed32(void)
{
bamOffset=v60.reg[modVal&0x1F];
- amOut=MemRead32(v60.reg[modVal2&0x1F] + OpRead32(modAdd+2)+bamOffset/8);
+ amOut=MemRead32(v60.program,v60.reg[modVal2&0x1F] + OpRead32(v60.program,modAdd+2)+bamOffset/8);
bamOffset&=7;
return 6;
}
@@ -314,13 +314,13 @@ static UINT32 am1PCDisplacement8(void)
switch (modDim)
{
case 0:
- amOut=MemRead8(PC + (INT8)OpRead8(modAdd+1));
+ amOut=MemRead8(v60.program,PC + (INT8)OpRead8(v60.program,modAdd+1));
break;
case 1:
- amOut=MemRead16(PC + (INT8)OpRead8(modAdd+1));
+ amOut=MemRead16(v60.program,PC + (INT8)OpRead8(v60.program,modAdd+1));
break;
case 2:
- amOut=MemRead32(PC + (INT8)OpRead8(modAdd+1));
+ amOut=MemRead32(v60.program,PC + (INT8)OpRead8(v60.program,modAdd+1));
break;
}
@@ -329,8 +329,8 @@ static UINT32 am1PCDisplacement8(void)
static UINT32 bam1PCDisplacement8(void)
{
- bamOffset=OpRead8(modAdd+1);
- amOut=MemRead32(PC+bamOffset/8);
+ bamOffset=OpRead8(v60.program,modAdd+1);
+ amOut=MemRead32(v60.program,PC+bamOffset/8);
bamOffset&=7;
return 2;
}
@@ -340,13 +340,13 @@ static UINT32 am1PCDisplacement16(void)
switch (modDim)
{
case 0:
- amOut=MemRead8(PC + (INT16)OpRead16(modAdd+1));
+ amOut=MemRead8(v60.program,PC + (INT16)OpRead16(v60.program,modAdd+1));
break;
case 1:
- amOut=MemRead16(PC + (INT16)OpRead16(modAdd+1));
+ amOut=MemRead16(v60.program,PC + (INT16)OpRead16(v60.program,modAdd+1));
break;
case 2:
- amOut=MemRead32(PC + (INT16)OpRead16(modAdd+1));
+ amOut=MemRead32(v60.program,PC + (INT16)OpRead16(v60.program,modAdd+1));
break;
}
@@ -355,8 +355,8 @@ static UINT32 am1PCDisplacement16(void)
static UINT32 bam1PCDisplacement16(void)
{
- bamOffset=OpRead16(modAdd+1);
- amOut=MemRead32(PC+bamOffset/8);
+ bamOffset=OpRead16(v60.program,modAdd+1);
+ amOut=MemRead32(v60.program,PC+bamOffset/8);
bamOffset&=7;
return 3;
}
@@ -366,13 +366,13 @@ static UINT32 am1PCDisplacement32(void)
switch (modDim)
{
case 0:
- amOut=MemRead8(PC + OpRead32(modAdd+1));
+ amOut=MemRead8(v60.program,PC + OpRead32(v60.program,modAdd+1));
break;
case 1:
- amOut=MemRead16(PC + OpRead32(modAdd+1));
+ amOut=MemRead16(v60.program,PC + OpRead32(v60.program,modAdd+1));
break;
case 2:
- amOut=MemRead32(PC + OpRead32(modAdd+1));
+ amOut=MemRead32(v60.program,PC + OpRead32(v60.program,modAdd+1));
break;
}
@@ -381,8 +381,8 @@ static UINT32 am1PCDisplacement32(void)
static UINT32 bam1PCDisplacement32(void)
{
- bamOffset=OpRead32(modAdd+1);
- amOut=MemRead32(PC+bamOffset/8);
+ bamOffset=OpRead32(v60.program,modAdd+1);
+ amOut=MemRead32(v60.program,PC+bamOffset/8);
bamOffset&=7;
return 5;
}
@@ -392,13 +392,13 @@ static UINT32 am1PCDisplacementIndexed8(void)
switch (modDim)
{
case 0:
- amOut=MemRead8(PC + (INT8)OpRead8(modAdd+2) + v60.reg[modVal&0x1F]);
+ amOut=MemRead8(v60.program,PC + (INT8)OpRead8(v60.program,modAdd+2) + v60.reg[modVal&0x1F]);
break;
case 1:
- amOut=MemRead16(PC + (INT8)OpRead8(modAdd+2) + v60.reg[modVal&0x1F]*2);
+ amOut=MemRead16(v60.program,PC + (INT8)OpRead8(v60.program,modAdd+2) + v60.reg[modVal&0x1F]*2);
break;
case 2:
- amOut=MemRead32(PC + (INT8)OpRead8(modAdd+2) + v60.reg[modVal&0x1F]*4);
+ amOut=MemRead32(v60.program,PC + (INT8)OpRead8(v60.program,modAdd+2) + v60.reg[modVal&0x1F]*4);
break;
}
@@ -408,7 +408,7 @@ static UINT32 am1PCDisplacementIndexed8(void)
static UINT32 bam1PCDisplacementIndexed8(void)
{
bamOffset=v60.reg[modVal&0x1F];
- amOut=MemRead32(PC + (INT8)OpRead8(modAdd+2)+bamOffset/8);
+ amOut=MemRead32(v60.program,PC + (INT8)OpRead8(v60.program,modAdd+2)+bamOffset/8);
bamOffset&=7;
return 3;
}
@@ -419,13 +419,13 @@ static UINT32 am1PCDisplacementIndexed16(void)
switch (modDim)
{
case 0:
- amOut=MemRead8(PC + (INT16)OpRead16(modAdd+2) + v60.reg[modVal&0x1F]);
+ amOut=MemRead8(v60.program,PC + (INT16)OpRead16(v60.program,modAdd+2) + v60.reg[modVal&0x1F]);
break;
case 1:
- amOut=MemRead16(PC + (INT16)OpRead16(modAdd+2) + v60.reg[modVal&0x1F]*2);
+ amOut=MemRead16(v60.program,PC + (INT16)OpRead16(v60.program,modAdd+2) + v60.reg[modVal&0x1F]*2);
break;
case 2:
- amOut=MemRead32(PC + (INT16)OpRead16(modAdd+2) + v60.reg[modVal&0x1F]*4);
+ amOut=MemRead32(v60.program,PC + (INT16)OpRead16(v60.program,modAdd+2) + v60.reg[modVal&0x1F]*4);
break;
}
@@ -435,7 +435,7 @@ static UINT32 am1PCDisplacementIndexed16(void)
static UINT32 bam1PCDisplacementIndexed16(void)
{
bamOffset=v60.reg[modVal&0x1F];
- amOut=MemRead32(PC + (INT16)OpRead16(modAdd+2)+bamOffset/8);
+ amOut=MemRead32(v60.program,PC + (INT16)OpRead16(v60.program,modAdd+2)+bamOffset/8);
bamOffset&=7;
return 4;
}
@@ -445,13 +445,13 @@ static UINT32 am1PCDisplacementIndexed32(void)
switch (modDim)
{
case 0:
- amOut=MemRead8(PC + OpRead32(modAdd+2) + v60.reg[modVal&0x1F]);
+ amOut=MemRead8(v60.program,PC + OpRead32(v60.program,modAdd+2) + v60.reg[modVal&0x1F]);
break;
case 1:
- amOut=MemRead16(PC + OpRead32(modAdd+2) + v60.reg[modVal&0x1F]*2);
+ amOut=MemRead16(v60.program,PC + OpRead32(v60.program,modAdd+2) + v60.reg[modVal&0x1F]*2);
break;
case 2:
- amOut=MemRead32(PC + OpRead32(modAdd+2) + v60.reg[modVal&0x1F]*4);
+ amOut=MemRead32(v60.program,PC + OpRead32(v60.program,modAdd+2) + v60.reg[modVal&0x1F]*4);
break;
}
@@ -461,7 +461,7 @@ static UINT32 am1PCDisplacementIndexed32(void)
static UINT32 bam1PCDisplacementIndexed32(void)
{
bamOffset=v60.reg[modVal&0x1F];
- amOut=MemRead32(PC + OpRead32(modAdd+2)+bamOffset/8);
+ amOut=MemRead32(v60.program,PC + OpRead32(v60.program,modAdd+2)+bamOffset/8);
bamOffset&=7;
return 6;
}
@@ -471,13 +471,13 @@ static UINT32 am1DisplacementIndirect8(void)
switch (modDim)
{
case 0:
- amOut=MemRead8(MemRead32(v60.reg[modVal&0x1F] + (INT8)OpRead8(modAdd+1)));
+ amOut=MemRead8(v60.program,MemRead32(v60.program,v60.reg[modVal&0x1F] + (INT8)OpRead8(v60.program,modAdd+1)));
break;
case 1:
- amOut=MemRead16(MemRead32(v60.reg[modVal&0x1F] + (INT8)OpRead8(modAdd+1)));
+ amOut=MemRead16(v60.program,MemRead32(v60.program,v60.reg[modVal&0x1F] + (INT8)OpRead8(v60.program,modAdd+1)));
break;
case 2:
- amOut=MemRead32(MemRead32(v60.reg[modVal&0x1F] + (INT8)OpRead8(modAdd+1)));
+ amOut=MemRead32(v60.program,MemRead32(v60.program,v60.reg[modVal&0x1F] + (INT8)OpRead8(v60.program,modAdd+1)));
break;
}
@@ -487,7 +487,7 @@ static UINT32 am1DisplacementIndirect8(void)
static UINT32 bam1DisplacementIndirect8(void)
{
bamOffset=0;
- amOut=MemRead32(MemRead32(v60.reg[modVal&0x1F] + (INT8)OpRead8(modAdd+1)));
+ amOut=MemRead32(v60.program,MemRead32(v60.program,v60.reg[modVal&0x1F] + (INT8)OpRead8(v60.program,modAdd+1)));
return 2;
}
@@ -496,13 +496,13 @@ static UINT32 am1DisplacementIndirect16(void)
switch (modDim)
{
case 0:
- amOut=MemRead8(MemRead32(v60.reg[modVal&0x1F] + (INT16)OpRead16(modAdd+1)));
+ amOut=MemRead8(v60.program,MemRead32(v60.program,v60.reg[modVal&0x1F] + (INT16)OpRead16(v60.program,modAdd+1)));
break;
case 1:
- amOut=MemRead16(MemRead32(v60.reg[modVal&0x1F] + (INT16)OpRead16(modAdd+1)));
+ amOut=MemRead16(v60.program,MemRead32(v60.program,v60.reg[modVal&0x1F] + (INT16)OpRead16(v60.program,modAdd+1)));
break;
case 2:
- amOut=MemRead32(MemRead32(v60.reg[modVal&0x1F] + (INT16)OpRead16(modAdd+1)));
+ amOut=MemRead32(v60.program,MemRead32(v60.program,v60.reg[modVal&0x1F] + (INT16)OpRead16(v60.program,modAdd+1)));
break;
}
@@ -512,7 +512,7 @@ static UINT32 am1DisplacementIndirect16(void)
static UINT32 bam1DisplacementIndirect16(void)
{
bamOffset=0;
- amOut=MemRead32(MemRead32(v60.reg[modVal&0x1F] + (INT16)OpRead16(modAdd+1)));
+ amOut=MemRead32(v60.program,MemRead32(v60.program,v60.reg[modVal&0x1F] + (INT16)OpRead16(v60.program,modAdd+1)));
return 3;
}
@@ -521,13 +521,13 @@ static UINT32 am1DisplacementIndirect32(void)
switch (modDim)
{
case 0:
- amOut=MemRead8(MemRead32(v60.reg[modVal&0x1F] + OpRead32(modAdd+1)));
+ amOut=MemRead8(v60.program,MemRead32(v60.program,v60.reg[modVal&0x1F] + OpRead32(v60.program,modAdd+1)));
break;
case 1:
- amOut=MemRead16(MemRead32(v60.reg[modVal&0x1F] + OpRead32(modAdd+1)));
+ amOut=MemRead16(v60.program,MemRead32(v60.program,v60.reg[modVal&0x1F] + OpRead32(v60.program,modAdd+1)));
break;
case 2:
- amOut=MemRead32(MemRead32(v60.reg[modVal&0x1F] + OpRead32(modAdd+1)));
+ amOut=MemRead32(v60.program,MemRead32(v60.program,v60.reg[modVal&0x1F] + OpRead32(v60.program,modAdd+1)));
break;
}
@@ -537,7 +537,7 @@ static UINT32 am1DisplacementIndirect32(void)
static UINT32 bam1DisplacementIndirect32(void)
{
bamOffset=0;
- amOut=MemRead32(MemRead32(v60.reg[modVal&0x1F] + OpRead32(modAdd+1)));
+ amOut=MemRead32(v60.program,MemRead32(v60.program,v60.reg[modVal&0x1F] + OpRead32(v60.program,modAdd+1)));
return 5;
}
@@ -546,13 +546,13 @@ static UINT32 am1DisplacementIndirectIndexed8(void)
switch (modDim)
{
case 0:
- amOut=MemRead8(MemRead32(v60.reg[modVal2&0x1F] + (INT8)OpRead8(modAdd+2)) + v60.reg[modVal&0x1F]);
+ amOut=MemRead8(v60.program,MemRead32(v60.program,v60.reg[modVal2&0x1F] + (INT8)OpRead8(v60.program,modAdd+2)) + v60.reg[modVal&0x1F]);
break;
case 1:
- amOut=MemRead16(MemRead32(v60.reg[modVal2&0x1F] + (INT8)OpRead8(modAdd+2)) + v60.reg[modVal&0x1F]*2);
+ amOut=MemRead16(v60.program,MemRead32(v60.program,v60.reg[modVal2&0x1F] + (INT8)OpRead8(v60.program,modAdd+2)) + v60.reg[modVal&0x1F]*2);
break;
case 2:
- amOut=MemRead32(MemRead32(v60.reg[modVal2&0x1F] + (INT8)OpRead8(modAdd+2)) + v60.reg[modVal&0x1F]*4);
+ amOut=MemRead32(v60.program,MemRead32(v60.program,v60.reg[modVal2&0x1F] + (INT8)OpRead8(v60.program,modAdd+2)) + v60.reg[modVal&0x1F]*4);
break;
}
@@ -562,7 +562,7 @@ static UINT32 am1DisplacementIndirectIndexed8(void)
static UINT32 bam1DisplacementIndirectIndexed8(void)
{
bamOffset=v60.reg[modVal&0x1F];
- amOut=MemRead32(MemRead32(v60.reg[modVal2&0x1F] + (INT8)OpRead8(modAdd+2))+bamOffset/8);
+ amOut=MemRead32(v60.program,MemRead32(v60.program,v60.reg[modVal2&0x1F] + (INT8)OpRead8(v60.program,modAdd+2))+bamOffset/8);
bamOffset&=7;
return 3;
}
@@ -572,13 +572,13 @@ static UINT32 am1DisplacementIndirectIndexed16(void)
switch (modDim)
{
case 0:
- amOut=MemRead8(MemRead32(v60.reg[modVal2&0x1F] + (INT16)OpRead16(modAdd+2)) + v60.reg[modVal&0x1F]);
+ amOut=MemRead8(v60.program,MemRead32(v60.program,v60.reg[modVal2&0x1F] + (INT16)OpRead16(v60.program,modAdd+2)) + v60.reg[modVal&0x1F]);
break;
case 1:
- amOut=MemRead16(MemRead32(v60.reg[modVal2&0x1F] + (INT16)OpRead16(modAdd+2)) + v60.reg[modVal&0x1F]*2);
+ amOut=MemRead16(v60.program,MemRead32(v60.program,v60.reg[modVal2&0x1F] + (INT16)OpRead16(v60.program,modAdd+2)) + v60.reg[modVal&0x1F]*2);
break;
case 2:
- amOut=MemRead32(MemRead32(v60.reg[modVal2&0x1F] + (INT16)OpRead16(modAdd+2)) + v60.reg[modVal&0x1F]*4);
+ amOut=MemRead32(v60.program,MemRead32(v60.program,v60.reg[modVal2&0x1F] + (INT16)OpRead16(v60.program,modAdd+2)) + v60.reg[modVal&0x1F]*4);
break;
}
@@ -588,7 +588,7 @@ static UINT32 am1DisplacementIndirectIndexed16(void)
static UINT32 bam1DisplacementIndirectIndexed16(void)
{
bamOffset=v60.reg[modVal&0x1F];
- amOut=MemRead32(MemRead32(v60.reg[modVal2&0x1F] + (INT16)OpRead16(modAdd+2))+bamOffset/8);
+ amOut=MemRead32(v60.program,MemRead32(v60.program,v60.reg[modVal2&0x1F] + (INT16)OpRead16(v60.program,modAdd+2))+bamOffset/8);
bamOffset&=7;
return 4;
}
@@ -598,13 +598,13 @@ static UINT32 am1DisplacementIndirectIndexed32(void)
switch (modDim)
{
case 0:
- amOut=MemRead8(MemRead32(v60.reg[modVal2&0x1F] + OpRead32(modAdd+2)) + v60.reg[modVal&0x1F]);
+ amOut=MemRead8(v60.program,MemRead32(v60.program,v60.reg[modVal2&0x1F] + OpRead32(v60.program,modAdd+2)) + v60.reg[modVal&0x1F]);
break;
case 1:
- amOut=MemRead16(MemRead32(v60.reg[modVal2&0x1F] + OpRead32(modAdd+2)) + v60.reg[modVal&0x1F]*2);
+ amOut=MemRead16(v60.program,MemRead32(v60.program,v60.reg[modVal2&0x1F] + OpRead32(v60.program,modAdd+2)) + v60.reg[modVal&0x1F]*2);
break;
case 2:
- amOut=MemRead32(MemRead32(v60.reg[modVal2&0x1F] + OpRead32(modAdd+2)) + v60.reg[modVal&0x1F]*4);
+ amOut=MemRead32(v60.program,MemRead32(v60.program,v60.reg[modVal2&0x1F] + OpRead32(v60.program,modAdd+2)) + v60.reg[modVal&0x1F]*4);
break;
}
@@ -614,7 +614,7 @@ static UINT32 am1DisplacementIndirectIndexed32(void)
static UINT32 bam1DisplacementIndirectIndexed32(void)
{
bamOffset=v60.reg[modVal&0x1F];
- amOut=MemRead32(MemRead32(v60.reg[modVal2&0x1F] + OpRead32(modAdd+2))+bamOffset/8);
+ amOut=MemRead32(v60.program,MemRead32(v60.program,v60.reg[modVal2&0x1F] + OpRead32(v60.program,modAdd+2))+bamOffset/8);
bamOffset&=7;
return 6;
}
@@ -624,13 +624,13 @@ static UINT32 am1PCDisplacementIndirect8(void)
switch (modDim)
{
case 0:
- amOut=MemRead8(MemRead32(PC + (INT8)OpRead8(modAdd+1)));
+ amOut=MemRead8(v60.program,MemRead32(v60.program,PC + (INT8)OpRead8(v60.program,modAdd+1)));
break;
case 1:
- amOut=MemRead16(MemRead32(PC + (INT8)OpRead8(modAdd+1)));
+ amOut=MemRead16(v60.program,MemRead32(v60.program,PC + (INT8)OpRead8(v60.program,modAdd+1)));
break;
case 2:
- amOut=MemRead32(MemRead32(PC + (INT8)OpRead8(modAdd+1)));
+ amOut=MemRead32(v60.program,MemRead32(v60.program,PC + (INT8)OpRead8(v60.program,modAdd+1)));
break;
}
@@ -640,7 +640,7 @@ static UINT32 am1PCDisplacementIndirect8(void)
static UINT32 bam1PCDisplacementIndirect8(void)
{
bamOffset=0;
- amOut=MemRead32(MemRead32(PC + (INT8)OpRead8(modAdd+1)));
+ amOut=MemRead32(v60.program,MemRead32(v60.program,PC + (INT8)OpRead8(v60.program,modAdd+1)));
return 2;
}
@@ -649,13 +649,13 @@ static UINT32 am1PCDisplacementIndirect16(void)
switch (modDim)
{
case 0:
- amOut=MemRead8(MemRead32(PC + (INT16)OpRead16(modAdd+1)));
+ amOut=MemRead8(v60.program,MemRead32(v60.program,PC + (INT16)OpRead16(v60.program,modAdd+1)));
break;
case 1:
- amOut=MemRead16(MemRead32(PC + (INT16)OpRead16(modAdd+1)));
+ amOut=MemRead16(v60.program,MemRead32(v60.program,PC + (INT16)OpRead16(v60.program,modAdd+1)));
break;
case 2:
- amOut=MemRead32(MemRead32(PC + (INT16)OpRead16(modAdd+1)));
+ amOut=MemRead32(v60.program,MemRead32(v60.program,PC + (INT16)OpRead16(v60.program,modAdd+1)));
break;
}
@@ -665,7 +665,7 @@ static UINT32 am1PCDisplacementIndirect16(void)
static UINT32 bam1PCDisplacementIndirect16(void)
{
bamOffset=0;
- amOut=MemRead32(MemRead32(PC + (INT16)OpRead16(modAdd+1)));
+ amOut=MemRead32(v60.program,MemRead32(v60.program,PC + (INT16)OpRead16(v60.program,modAdd+1)));
return 3;
}
@@ -674,13 +674,13 @@ static UINT32 am1PCDisplacementIndirect32(void)
switch (modDim)
{
case 0:
- amOut=MemRead8(MemRead32(PC + OpRead32(modAdd+1)));
+ amOut=MemRead8(v60.program,MemRead32(v60.program,PC + OpRead32(v60.program,modAdd+1)));
break;
case 1:
- amOut=MemRead16(MemRead32(PC + OpRead32(modAdd+1)));
+ amOut=MemRead16(v60.program,MemRead32(v60.program,PC + OpRead32(v60.program,modAdd+1)));
break;
case 2:
- amOut=MemRead32(MemRead32(PC + OpRead32(modAdd+1)));
+ amOut=MemRead32(v60.program,MemRead32(v60.program,PC + OpRead32(v60.program,modAdd+1)));
break;
}
@@ -690,7 +690,7 @@ static UINT32 am1PCDisplacementIndirect32(void)
static UINT32 bam1PCDisplacementIndirect32(void)
{
bamOffset=0;
- amOut=MemRead32(MemRead32(PC + OpRead32(modAdd+1)));
+ amOut=MemRead32(v60.program,MemRead32(v60.program,PC + OpRead32(v60.program,modAdd+1)));
return 5;
}
@@ -699,13 +699,13 @@ static UINT32 am1PCDisplacementIndirectIndexed8(void)
switch (modDim)
{
case 0:
- amOut=MemRead8(MemRead32(PC + (INT8)OpRead8(modAdd+2)) + v60.reg[modVal&0x1F]);
+ amOut=MemRead8(v60.program,MemRead32(v60.program,PC + (INT8)OpRead8(v60.program,modAdd+2)) + v60.reg[modVal&0x1F]);
break;
case 1:
- amOut=MemRead16(MemRead32(PC + (INT8)OpRead8(modAdd+2)) + v60.reg[modVal&0x1F]*2);
+ amOut=MemRead16(v60.program,MemRead32(v60.program,PC + (INT8)OpRead8(v60.program,modAdd+2)) + v60.reg[modVal&0x1F]*2);
break;
case 2:
- amOut=MemRead32(MemRead32(PC + (INT8)OpRead8(modAdd+2)) + v60.reg[modVal&0x1F]*4);
+ amOut=MemRead32(v60.program,MemRead32(v60.program,PC + (INT8)OpRead8(v60.program,modAdd+2)) + v60.reg[modVal&0x1F]*4);
break;
}
@@ -715,7 +715,7 @@ static UINT32 am1PCDisplacementIndirectIndexed8(void)
static UINT32 bam1PCDisplacementIndirectIndexed8(void)
{
bamOffset=v60.reg[modVal&0x1F];
- amOut=MemRead32(MemRead32(PC + (INT8)OpRead8(modAdd+2))+bamOffset/8);
+ amOut=MemRead32(v60.program,MemRead32(v60.program,PC + (INT8)OpRead8(v60.program,modAdd+2))+bamOffset/8);
bamOffset&=7;
return 3;
}
@@ -725,13 +725,13 @@ static UINT32 am1PCDisplacementIndirectIndexed16(void)
switch (modDim)
{
case 0:
- amOut=MemRead8(MemRead32(PC + (INT16)OpRead16(modAdd+2)) + v60.reg[modVal&0x1F]);
+ amOut=MemRead8(v60.program,MemRead32(v60.program,PC + (INT16)OpRead16(v60.program,modAdd+2)) + v60.reg[modVal&0x1F]);
break;
case 1:
- amOut=MemRead16(MemRead32(PC + (INT16)OpRead16(modAdd+2)) + v60.reg[modVal&0x1F]*2);
+ amOut=MemRead16(v60.program,MemRead32(v60.program,PC + (INT16)OpRead16(v60.program,modAdd+2)) + v60.reg[modVal&0x1F]*2);
break;
case 2:
- amOut=MemRead32(MemRead32(PC + (INT16)OpRead16(modAdd+2)) + v60.reg[modVal&0x1F]*4);
+ amOut=MemRead32(v60.program,MemRead32(v60.program,PC + (INT16)OpRead16(v60.program,modAdd+2)) + v60.reg[modVal&0x1F]*4);
break;
}
@@ -741,7 +741,7 @@ static UINT32 am1PCDisplacementIndirectIndexed16(void)
static UINT32 bam1PCDisplacementIndirectIndexed16(void)
{
bamOffset=v60.reg[modVal&0x1F];
- amOut=MemRead32(MemRead32(PC + (INT16)OpRead16(modAdd+2))+bamOffset/8);
+ amOut=MemRead32(v60.program,MemRead32(v60.program,PC + (INT16)OpRead16(v60.program,modAdd+2))+bamOffset/8);
bamOffset&=7;
return 4;
}
@@ -751,13 +751,13 @@ static UINT32 am1PCDisplacementIndirectIndexed32(void)
switch (modDim)
{
case 0:
- amOut=MemRead8(MemRead32(PC + OpRead32(modAdd+2)) + v60.reg[modVal&0x1F]);
+ amOut=MemRead8(v60.program,MemRead32(v60.program,PC + OpRead32(v60.program,modAdd+2)) + v60.reg[modVal&0x1F]);
break;
case 1:
- amOut=MemRead16(MemRead32(PC + OpRead32(modAdd+2)) + v60.reg[modVal&0x1F]*2);
+ amOut=MemRead16(v60.program,MemRead32(v60.program,PC + OpRead32(v60.program,modAdd+2)) + v60.reg[modVal&0x1F]*2);
break;
case 2:
- amOut=MemRead32(MemRead32(PC + OpRead32(modAdd+2)) + v60.reg[modVal&0x1F]*4);
+ amOut=MemRead32(v60.program,MemRead32(v60.program,PC + OpRead32(v60.program,modAdd+2)) + v60.reg[modVal&0x1F]*4);
break;
}
@@ -767,7 +767,7 @@ static UINT32 am1PCDisplacementIndirectIndexed32(void)
static UINT32 bam1PCDisplacementIndirectIndexed32(void)
{
bamOffset=v60.reg[modVal&0x1F];
- amOut=MemRead32(MemRead32(PC + OpRead32(modAdd+2))+bamOffset/8);
+ amOut=MemRead32(v60.program,MemRead32(v60.program,PC + OpRead32(v60.program,modAdd+2))+bamOffset/8);
bamOffset&=7;
return 6;
}
@@ -777,15 +777,15 @@ static UINT32 am1DoubleDisplacement8(void)
switch (modDim)
{
case 0:
- amOut=MemRead8(MemRead32(v60.reg[modVal&0x1F] + (INT8)OpRead8(modAdd+1)) + (INT8)OpRead8(modAdd+2));
+ amOut=MemRead8(v60.program,MemRead32(v60.program,v60.reg[modVal&0x1F] + (INT8)OpRead8(v60.program,modAdd+1)) + (INT8)OpRead8(v60.program,modAdd+2));
break;
case 1:
- amOut=MemRead16(MemRead32(v60.reg[modVal&0x1F] + (INT8)OpRead8(modAdd+1)) + (INT8)OpRead8(modAdd+2));
+ amOut=MemRead16(v60.program,MemRead32(v60.program,v60.reg[modVal&0x1F] + (INT8)OpRead8(v60.program,modAdd+1)) + (INT8)OpRead8(v60.program,modAdd+2));
break;
case 2:
- amOut=MemRead32(MemRead32(v60.reg[modVal&0x1F] + (INT8)OpRead8(modAdd+1)) + (INT8)OpRead8(modAdd+2));
+ amOut=MemRead32(v60.program,MemRead32(v60.program,v60.reg[modVal&0x1F] + (INT8)OpRead8(v60.program,modAdd+1)) + (INT8)OpRead8(v60.program,modAdd+2));
break;
}
@@ -794,8 +794,8 @@ static UINT32 am1DoubleDisplacement8(void)
static UINT32 bam1DoubleDisplacement8(void)
{
- bamOffset=OpRead8(modAdd+2);
- amOut=MemRead32(MemRead32(v60.reg[modVal&0x1F] + (INT8)OpRead8(modAdd+1))+bamOffset/8);
+ bamOffset=OpRead8(v60.program,modAdd+2);
+ amOut=MemRead32(v60.program,MemRead32(v60.program,v60.reg[modVal&0x1F] + (INT8)OpRead8(v60.program,modAdd+1))+bamOffset/8);
bamOffset&=7;
return 3;
}
@@ -805,15 +805,15 @@ static UINT32 am1DoubleDisplacement16(void)
switch (modDim)
{
case 0:
- amOut=MemRead8(MemRead32(v60.reg[modVal&0x1F] + (INT16)OpRead16(modAdd+1)) + (INT16)OpRead16(modAdd+3));
+ amOut=MemRead8(v60.program,MemRead32(v60.program,v60.reg[modVal&0x1F] + (INT16)OpRead16(v60.program,modAdd+1)) + (INT16)OpRead16(v60.program,modAdd+3));
break;
case 1:
- amOut=MemRead16(MemRead32(v60.reg[modVal&0x1F] + (INT16)OpRead16(modAdd+1)) + (INT16)OpRead16(modAdd+3));
+ amOut=MemRead16(v60.program,MemRead32(v60.program,v60.reg[modVal&0x1F] + (INT16)OpRead16(v60.program,modAdd+1)) + (INT16)OpRead16(v60.program,modAdd+3));
break;
case 2:
- amOut=MemRead32(MemRead32(v60.reg[modVal&0x1F] + (INT16)OpRead16(modAdd+1)) + (INT16)OpRead16(modAdd+3));
+ amOut=MemRead32(v60.program,MemRead32(v60.program,v60.reg[modVal&0x1F] + (INT16)OpRead16(v60.program,modAdd+1)) + (INT16)OpRead16(v60.program,modAdd+3));
break;
}
@@ -822,8 +822,8 @@ static UINT32 am1DoubleDisplacement16(void)
static UINT32 bam1DoubleDisplacement16(void)
{
- bamOffset=OpRead16(modAdd+3);
- amOut=MemRead32(MemRead32(v60.reg[modVal&0x1F] + (INT16)OpRead16(modAdd+1))+bamOffset/8);
+ bamOffset=OpRead16(v60.program,modAdd+3);
+ amOut=MemRead32(v60.program,MemRead32(v60.program,v60.reg[modVal&0x1F] + (INT16)OpRead16(v60.program,modAdd+1))+bamOffset/8);
bamOffset&=7;
return 5;
}
@@ -833,15 +833,15 @@ static UINT32 am1DoubleDisplacement32(void)
switch (modDim)
{
case 0:
- amOut=MemRead8(MemRead32(v60.reg[modVal&0x1F] + OpRead32(modAdd+1)) + OpRead32(modAdd+5));
+ amOut=MemRead8(v60.program,MemRead32(v60.program,v60.reg[modVal&0x1F] + OpRead32(v60.program,modAdd+1)) + OpRead32(v60.program,modAdd+5));
break;
case 1:
- amOut=MemRead16(MemRead32(v60.reg[modVal&0x1F] + OpRead32(modAdd+1)) + OpRead32(modAdd+5));
+ amOut=MemRead16(v60.program,MemRead32(v60.program,v60.reg[modVal&0x1F] + OpRead32(v60.program,modAdd+1)) + OpRead32(v60.program,modAdd+5));
break;
case 2:
- amOut=MemRead32(MemRead32(v60.reg[modVal&0x1F] + OpRead32(modAdd+1)) + OpRead32(modAdd+5));
+ amOut=MemRead32(v60.program,MemRead32(v60.program,v60.reg[modVal&0x1F] + OpRead32(v60.program,modAdd+1)) + OpRead32(v60.program,modAdd+5));
break;
}
@@ -850,8 +850,8 @@ static UINT32 am1DoubleDisplacement32(void)
static UINT32 bam1DoubleDisplacement32(void)
{
- bamOffset=OpRead32(modAdd+5);
- amOut=MemRead32(MemRead32(v60.reg[modVal&0x1F] + OpRead32(modAdd+1))+bamOffset/8);
+ bamOffset=OpRead32(v60.program,modAdd+5);
+ amOut=MemRead32(v60.program,MemRead32(v60.program,v60.reg[modVal&0x1F] + OpRead32(v60.program,modAdd+1))+bamOffset/8);
bamOffset&=7;
return 9;
}
@@ -861,15 +861,15 @@ static UINT32 am1PCDoubleDisplacement8(void)
switch (modDim)
{
case 0:
- amOut=MemRead8(MemRead32(PC + (INT8)OpRead8(modAdd+1)) + (INT8)OpRead8(modAdd+2));
+ amOut=MemRead8(v60.program,MemRead32(v60.program,PC + (INT8)OpRead8(v60.program,modAdd+1)) + (INT8)OpRead8(v60.program,modAdd+2));
break;
case 1:
- amOut=MemRead16(MemRead32(PC + (INT8)OpRead8(modAdd+1)) + (INT8)OpRead8(modAdd+2));
+ amOut=MemRead16(v60.program,MemRead32(v60.program,PC + (INT8)OpRead8(v60.program,modAdd+1)) + (INT8)OpRead8(v60.program,modAdd+2));
break;
case 2:
- amOut=MemRead32(MemRead32(PC + (INT8)OpRead8(modAdd+1)) + (INT8)OpRead8(modAdd+2));
+ amOut=MemRead32(v60.program,MemRead32(v60.program,PC + (INT8)OpRead8(v60.program,modAdd+1)) + (INT8)OpRead8(v60.program,modAdd+2));
break;
}
@@ -878,8 +878,8 @@ static UINT32 am1PCDoubleDisplacement8(void)
static UINT32 bam1PCDoubleDisplacement8(void)
{
- bamOffset=OpRead8(modAdd+2);
- amOut=MemRead32(MemRead32(PC + (INT8)OpRead8(modAdd+1))+bamOffset/8);
+ bamOffset=OpRead8(v60.program,modAdd+2);
+ amOut=MemRead32(v60.program,MemRead32(v60.program,PC + (INT8)OpRead8(v60.program,modAdd+1))+bamOffset/8);
bamOffset&=7;
return 3;
}
@@ -889,15 +889,15 @@ static UINT32 am1PCDoubleDisplacement16(void)
switch (modDim)
{
case 0:
- amOut=MemRead8(MemRead32(PC + (INT16)OpRead16(modAdd+1)) + (INT16)OpRead16(modAdd+3));
+ amOut=MemRead8(v60.program,MemRead32(v60.program,PC + (INT16)OpRead16(v60.program,modAdd+1)) + (INT16)OpRead16(v60.program,modAdd+3));
break;
case 1:
- amOut=MemRead16(MemRead32(PC + (INT16)OpRead16(modAdd+1)) + (INT16)OpRead16(modAdd+3));
+ amOut=MemRead16(v60.program,MemRead32(v60.program,PC + (INT16)OpRead16(v60.program,modAdd+1)) + (INT16)OpRead16(v60.program,modAdd+3));
break;
case 2:
- amOut=MemRead32(MemRead32(PC + (INT16)OpRead16(modAdd+1)) + (INT16)OpRead16(modAdd+3));
+ amOut=MemRead32(v60.program,MemRead32(v60.program,PC + (INT16)OpRead16(v60.program,modAdd+1)) + (INT16)OpRead16(v60.program,modAdd+3));
break;
}
@@ -906,8 +906,8 @@ static UINT32 am1PCDoubleDisplacement16(void)
static UINT32 bam1PCDoubleDisplacement16(void)
{
- bamOffset=OpRead16(modAdd+3);
- amOut=MemRead32(MemRead32(PC + (INT16)OpRead16(modAdd+1))+bamOffset/8);
+ bamOffset=OpRead16(v60.program,modAdd+3);
+ amOut=MemRead32(v60.program,MemRead32(v60.program,PC + (INT16)OpRead16(v60.program,modAdd+1))+bamOffset/8);
bamOffset&=7;
return 5;
}
@@ -918,15 +918,15 @@ static UINT32 am1PCDoubleDisplacement32(void)
switch (modDim)
{
case 0:
- amOut=MemRead8(MemRead32(PC + OpRead32(modAdd+1)) + OpRead32(modAdd+5));
+ amOut=MemRead8(v60.program,MemRead32(v60.program,PC + OpRead32(v60.program,modAdd+1)) + OpRead32(v60.program,modAdd+5));
break;
case 1:
- amOut=MemRead16(MemRead32(PC + OpRead32(modAdd+1)) + OpRead32(modAdd+5));
+ amOut=MemRead16(v60.program,MemRead32(v60.program,PC + OpRead32(v60.program,modAdd+1)) + OpRead32(v60.program,modAdd+5));
break;
case 2:
- amOut=MemRead32(MemRead32(PC + OpRead32(modAdd+1)) + OpRead32(modAdd+5));
+ amOut=MemRead32(v60.program,MemRead32(v60.program,PC + OpRead32(v60.program,modAdd+1)) + OpRead32(v60.program,modAdd+5));
break;
}
@@ -935,8 +935,8 @@ static UINT32 am1PCDoubleDisplacement32(void)
static UINT32 bam1PCDoubleDisplacement32(void)
{
- bamOffset=OpRead32(modAdd+5);
- amOut=MemRead32(MemRead32(PC + OpRead32(modAdd+1))+bamOffset/8);
+ bamOffset=OpRead32(v60.program,modAdd+5);
+ amOut=MemRead32(v60.program,MemRead32(v60.program,PC + OpRead32(v60.program,modAdd+1))+bamOffset/8);
bamOffset&=7;
return 9;
}
@@ -946,15 +946,15 @@ static UINT32 am1DirectAddress(void)
switch (modDim)
{
case 0:
- amOut=MemRead8(OpRead32(modAdd+1));
+ amOut=MemRead8(v60.program,OpRead32(v60.program,modAdd+1));
break;
case 1:
- amOut=MemRead16(OpRead32(modAdd+1));
+ amOut=MemRead16(v60.program,OpRead32(v60.program,modAdd+1));
break;
case 2:
- amOut=MemRead32(OpRead32(modAdd+1));
+ amOut=MemRead32(v60.program,OpRead32(v60.program,modAdd+1));
break;
}
@@ -964,7 +964,7 @@ static UINT32 am1DirectAddress(void)
static UINT32 bam1DirectAddress(void)
{
bamOffset=0;
- amOut=MemRead32(OpRead32(modAdd+1));
+ amOut=MemRead32(v60.program,OpRead32(v60.program,modAdd+1));
return 5;
}
@@ -973,15 +973,15 @@ static UINT32 am1DirectAddressIndexed(void)
switch (modDim)
{
case 0:
- amOut=MemRead8(OpRead32(modAdd+2) + v60.reg[modVal&0x1F]);
+ amOut=MemRead8(v60.program,OpRead32(v60.program,modAdd+2) + v60.reg[modVal&0x1F]);
break;
case 1:
- amOut=MemRead16(OpRead32(modAdd+2) + v60.reg[modVal&0x1F]*2);
+ amOut=MemRead16(v60.program,OpRead32(v60.program,modAdd+2) + v60.reg[modVal&0x1F]*2);
break;
case 2:
- amOut=MemRead32(OpRead32(modAdd+2) + v60.reg[modVal&0x1F]*4);
+ amOut=MemRead32(v60.program,OpRead32(v60.program,modAdd+2) + v60.reg[modVal&0x1F]*4);
break;
}
@@ -991,7 +991,7 @@ static UINT32 am1DirectAddressIndexed(void)
static UINT32 bam1DirectAddressIndexed(void)
{
bamOffset=v60.reg[modVal&0x1F];
- amOut=MemRead32(OpRead32(modAdd+2)+bamOffset/8);
+ amOut=MemRead32(v60.program,OpRead32(v60.program,modAdd+2)+bamOffset/8);
bamOffset&=7;
return 6;
}
@@ -1001,15 +1001,15 @@ static UINT32 am1DirectAddressDeferred(void)
switch (modDim)
{
case 0:
- amOut=MemRead8(MemRead32(OpRead32(modAdd+1)));
+ amOut=MemRead8(v60.program,MemRead32(v60.program,OpRead32(v60.program,modAdd+1)));
break;
case 1:
- amOut=MemRead16(MemRead32(OpRead32(modAdd+1)));
+ amOut=MemRead16(v60.program,MemRead32(v60.program,OpRead32(v60.program,modAdd+1)));
break;
case 2:
- amOut=MemRead32(MemRead32(OpRead32(modAdd+1)));
+ amOut=MemRead32(v60.program,MemRead32(v60.program,OpRead32(v60.program,modAdd+1)));
break;
}
@@ -1019,7 +1019,7 @@ static UINT32 am1DirectAddressDeferred(void)
static UINT32 bam1DirectAddressDeferred(void)
{
bamOffset=0;
- amOut=MemRead32(MemRead32(OpRead32(modAdd+1)));
+ amOut=MemRead32(v60.program,MemRead32(v60.program,OpRead32(v60.program,modAdd+1)));
return 5;
}
@@ -1028,15 +1028,15 @@ static UINT32 am1DirectAddressDeferredIndexed(void)
switch (modDim)
{
case 0:
- amOut=MemRead8(MemRead32(OpRead32(modAdd+2)) + v60.reg[modVal&0x1F]);
+ amOut=MemRead8(v60.program,MemRead32(v60.program,OpRead32(v60.program,modAdd+2)) + v60.reg[modVal&0x1F]);
break;
case 1:
- amOut=MemRead16(MemRead32(OpRead32(modAdd+2)) + v60.reg[modVal&0x1F]*2);
+ amOut=MemRead16(v60.program,MemRead32(v60.program,OpRead32(v60.program,modAdd+2)) + v60.reg[modVal&0x1F]*2);
break;
case 2:
- amOut=MemRead32(MemRead32(OpRead32(modAdd+2)) + v60.reg[modVal&0x1F]*4);
+ amOut=MemRead32(v60.program,MemRead32(v60.program,OpRead32(v60.program,modAdd+2)) + v60.reg[modVal&0x1F]*4);
break;
}
@@ -1046,7 +1046,7 @@ static UINT32 am1DirectAddressDeferredIndexed(void)
static UINT32 bam1DirectAddressDeferredIndexed(void)
{
bamOffset=v60.reg[modVal&0x1F];
- amOut=MemRead32(MemRead32(OpRead32(modAdd+2))+bamOffset/8);
+ amOut=MemRead32(v60.program,MemRead32(v60.program,OpRead32(v60.program,modAdd+2))+bamOffset/8);
bamOffset&=7;
return 6;
}
@@ -1056,17 +1056,17 @@ static UINT32 am1Immediate(void)
switch (modDim)
{
case 0:
- amOut=OpRead8(modAdd+1);
+ amOut=OpRead8(v60.program,modAdd+1);
return 2;
break;
case 1:
- amOut=OpRead16(modAdd+1);
+ amOut=OpRead16(v60.program,modAdd+1);
return 3;
break;
case 2:
- amOut=OpRead32(modAdd+1);
+ amOut=OpRead32(v60.program,modAdd+1);
return 5;
break;
}
@@ -1314,13 +1314,13 @@ static UINT32 (*const BAMTable1_G6[8])(void) =
static UINT32 am1Group6(void)
{
- modVal2=OpRead8(modAdd+1);
+ modVal2=OpRead8(v60.program,modAdd+1);
return AMTable1_G6[modVal2>>5]();
}
static UINT32 bam1Group6(void)
{
- modVal2=OpRead8(modAdd+1);
+ modVal2=OpRead8(v60.program,modAdd+1);
return BAMTable1_G6[modVal2>>5]();
}
diff --git a/src/emu/cpu/v60/am2.c b/src/emu/cpu/v60/am2.c
index f9376737ade..f5cb23d4ade 100644
--- a/src/emu/cpu/v60/am2.c
+++ b/src/emu/cpu/v60/am2.c
@@ -151,7 +151,7 @@ static UINT32 bam2Autodecrement(void)
static UINT32 am2Displacement8(void)
{
amFlag = 0;
- amOut = v60.reg[modVal&0x1F] + (INT8)OpRead8(modAdd+1);
+ amOut = v60.reg[modVal&0x1F] + (INT8)OpRead8(v60.program,modAdd+1);
return 2;
}
@@ -160,7 +160,7 @@ static UINT32 bam2Displacement8(void)
{
amFlag = 0;
amOut = v60.reg[modVal&0x1F];
- bamOffset = (INT8)OpRead8(modAdd+1);
+ bamOffset = (INT8)OpRead8(v60.program,modAdd+1);
return 2;
}
@@ -168,7 +168,7 @@ static UINT32 bam2Displacement8(void)
static UINT32 am2Displacement16(void)
{
amFlag = 0;
- amOut = v60.reg[modVal&0x1F] + (INT16)OpRead16(modAdd+1);
+ amOut = v60.reg[modVal&0x1F] + (INT16)OpRead16(v60.program,modAdd+1);
return 3;
}
@@ -177,7 +177,7 @@ static UINT32 bam2Displacement16(void)
{
amFlag = 0;
amOut = v60.reg[modVal&0x1F];
- bamOffset = (INT16)OpRead16(modAdd+1);
+ bamOffset = (INT16)OpRead16(v60.program,modAdd+1);
return 3;
}
@@ -185,7 +185,7 @@ static UINT32 bam2Displacement16(void)
static UINT32 am2Displacement32(void)
{
amFlag = 0;
- amOut = v60.reg[modVal&0x1F] + OpRead32(modAdd+1);
+ amOut = v60.reg[modVal&0x1F] + OpRead32(v60.program,modAdd+1);
return 5;
}
@@ -194,7 +194,7 @@ static UINT32 bam2Displacement32(void)
{
amFlag = 0;
amOut = v60.reg[modVal&0x1F];
- bamOffset = OpRead32(modAdd+1);
+ bamOffset = OpRead32(v60.program,modAdd+1);
return 5;
}
@@ -206,16 +206,16 @@ static UINT32 am2DisplacementIndexed8(void)
switch (modDim)
{
case 0:
- amOut = v60.reg[modVal2&0x1F] + (INT8)OpRead8(modAdd+2) + v60.reg[modVal&0x1F];
+ amOut = v60.reg[modVal2&0x1F] + (INT8)OpRead8(v60.program,modAdd+2) + v60.reg[modVal&0x1F];
break;
case 1:
- amOut = v60.reg[modVal2&0x1F] + (INT8)OpRead8(modAdd+2) + v60.reg[modVal&0x1F] * 2;
+ amOut = v60.reg[modVal2&0x1F] + (INT8)OpRead8(v60.program,modAdd+2) + v60.reg[modVal&0x1F] * 2;
break;
case 2:
- amOut = v60.reg[modVal2&0x1F] + (INT8)OpRead8(modAdd+2) + v60.reg[modVal&0x1F] * 4;
+ amOut = v60.reg[modVal2&0x1F] + (INT8)OpRead8(v60.program,modAdd+2) + v60.reg[modVal&0x1F] * 4;
break;
case 3:
- amOut = v60.reg[modVal2&0x1F] + (INT8)OpRead8(modAdd+2) + v60.reg[modVal&0x1F] * 8;
+ amOut = v60.reg[modVal2&0x1F] + (INT8)OpRead8(v60.program,modAdd+2) + v60.reg[modVal&0x1F] * 8;
break;
}
@@ -225,7 +225,7 @@ static UINT32 am2DisplacementIndexed8(void)
static UINT32 bam2DisplacementIndexed8(void)
{
amFlag = 0;
- amOut = v60.reg[modVal2&0x1F] + (INT8)OpRead8(modAdd+2);
+ amOut = v60.reg[modVal2&0x1F] + (INT8)OpRead8(v60.program,modAdd+2);
bamOffset = v60.reg[modVal&0x1F];
return 3;
@@ -238,16 +238,16 @@ static UINT32 am2DisplacementIndexed16(void)
switch (modDim)
{
case 0:
- amOut = v60.reg[modVal2&0x1F] + (INT16)OpRead16(modAdd+2) + v60.reg[modVal&0x1F];
+ amOut = v60.reg[modVal2&0x1F] + (INT16)OpRead16(v60.program,modAdd+2) + v60.reg[modVal&0x1F];
break;
case 1:
- amOut = v60.reg[modVal2&0x1F] + (INT16)OpRead16(modAdd+2) + v60.reg[modVal&0x1F] * 2;
+ amOut = v60.reg[modVal2&0x1F] + (INT16)OpRead16(v60.program,modAdd+2) + v60.reg[modVal&0x1F] * 2;
break;
case 2:
- amOut = v60.reg[modVal2&0x1F] + (INT16)OpRead16(modAdd+2) + v60.reg[modVal&0x1F] * 4;
+ amOut = v60.reg[modVal2&0x1F] + (INT16)OpRead16(v60.program,modAdd+2) + v60.reg[modVal&0x1F] * 4;
break;
case 3:
- amOut = v60.reg[modVal2&0x1F] + (INT16)OpRead16(modAdd+2) + v60.reg[modVal&0x1F] * 8;
+ amOut = v60.reg[modVal2&0x1F] + (INT16)OpRead16(v60.program,modAdd+2) + v60.reg[modVal&0x1F] * 8;
break;
}
@@ -257,7 +257,7 @@ static UINT32 am2DisplacementIndexed16(void)
static UINT32 bam2DisplacementIndexed16(void)
{
amFlag = 0;
- amOut = v60.reg[modVal2&0x1F] + (INT16)OpRead16(modAdd+2);
+ amOut = v60.reg[modVal2&0x1F] + (INT16)OpRead16(v60.program,modAdd+2);
bamOffset = v60.reg[modVal&0x1F];
return 4;
@@ -270,16 +270,16 @@ static UINT32 am2DisplacementIndexed32(void)
switch (modDim)
{
case 0:
- amOut = v60.reg[modVal2&0x1F] + OpRead32(modAdd+2) + v60.reg[modVal&0x1F];
+ amOut = v60.reg[modVal2&0x1F] + OpRead32(v60.program,modAdd+2) + v60.reg[modVal&0x1F];
break;
case 1:
- amOut = v60.reg[modVal2&0x1F] + OpRead32(modAdd+2) + v60.reg[modVal&0x1F] * 2;
+ amOut = v60.reg[modVal2&0x1F] + OpRead32(v60.program,modAdd+2) + v60.reg[modVal&0x1F] * 2;
break;
case 2:
- amOut = v60.reg[modVal2&0x1F] + OpRead32(modAdd+2) + v60.reg[modVal&0x1F] * 4;
+ amOut = v60.reg[modVal2&0x1F] + OpRead32(v60.program,modAdd+2) + v60.reg[modVal&0x1F] * 4;
break;
case 3:
- amOut = v60.reg[modVal2&0x1F] + OpRead32(modAdd+2) + v60.reg[modVal&0x1F] * 8;
+ amOut = v60.reg[modVal2&0x1F] + OpRead32(v60.program,modAdd+2) + v60.reg[modVal&0x1F] * 8;
break;
}
@@ -289,7 +289,7 @@ static UINT32 am2DisplacementIndexed32(void)
static UINT32 bam2DisplacementIndexed32(void)
{
amFlag = 0;
- amOut = v60.reg[modVal2&0x1F] + OpRead32(modAdd+2);
+ amOut = v60.reg[modVal2&0x1F] + OpRead32(v60.program,modAdd+2);
bamOffset = v60.reg[modVal&0x1F];
return 6;
@@ -298,7 +298,7 @@ static UINT32 bam2DisplacementIndexed32(void)
static UINT32 am2PCDisplacement8(void)
{
amFlag = 0;
- amOut = PC + (INT8)OpRead8(modAdd+1);
+ amOut = PC + (INT8)OpRead8(v60.program,modAdd+1);
return 2;
}
@@ -307,7 +307,7 @@ static UINT32 bam2PCDisplacement8(void)
{
amFlag = 0;
amOut = PC;
- bamOffset = (INT8)OpRead8(modAdd+1);
+ bamOffset = (INT8)OpRead8(v60.program,modAdd+1);
return 2;
}
@@ -315,7 +315,7 @@ static UINT32 bam2PCDisplacement8(void)
static UINT32 am2PCDisplacement16(void)
{
amFlag = 0;
- amOut = PC + (INT16)OpRead16(modAdd+1);
+ amOut = PC + (INT16)OpRead16(v60.program,modAdd+1);
return 3;
}
@@ -324,7 +324,7 @@ static UINT32 bam2PCDisplacement16(void)
{
amFlag = 0;
amOut = PC;
- bamOffset = (INT16)OpRead16(modAdd+1);
+ bamOffset = (INT16)OpRead16(v60.program,modAdd+1);
return 3;
}
@@ -332,7 +332,7 @@ static UINT32 bam2PCDisplacement16(void)
static UINT32 am2PCDisplacement32(void)
{
amFlag = 0;
- amOut = PC + OpRead32(modAdd+1);
+ amOut = PC + OpRead32(v60.program,modAdd+1);
return 5;
}
@@ -341,7 +341,7 @@ static UINT32 bam2PCDisplacement32(void)
{
amFlag = 0;
amOut = PC;
- bamOffset = OpRead32(modAdd+1);
+ bamOffset = OpRead32(v60.program,modAdd+1);
return 5;
}
@@ -354,16 +354,16 @@ static UINT32 am2PCDisplacementIndexed8(void)
switch (modDim)
{
case 0:
- amOut = PC + (INT8)OpRead8(modAdd+2) + v60.reg[modVal&0x1F];
+ amOut = PC + (INT8)OpRead8(v60.program,modAdd+2) + v60.reg[modVal&0x1F];
break;
case 1:
- amOut = PC + (INT8)OpRead8(modAdd+2) + v60.reg[modVal&0x1F] * 2;
+ amOut = PC + (INT8)OpRead8(v60.program,modAdd+2) + v60.reg[modVal&0x1F] * 2;
break;
case 2:
- amOut = PC + (INT8)OpRead8(modAdd+2) + v60.reg[modVal&0x1F] * 4;
+ amOut = PC + (INT8)OpRead8(v60.program,modAdd+2) + v60.reg[modVal&0x1F] * 4;
break;
case 3:
- amOut = PC + (INT8)OpRead8(modAdd+2) + v60.reg[modVal&0x1F] * 8;
+ amOut = PC + (INT8)OpRead8(v60.program,modAdd+2) + v60.reg[modVal&0x1F] * 8;
break;
}
@@ -373,7 +373,7 @@ static UINT32 am2PCDisplacementIndexed8(void)
static UINT32 bam2PCDisplacementIndexed8(void)
{
amFlag = 0;
- amOut = PC + (INT8)OpRead8(modAdd+2);
+ amOut = PC + (INT8)OpRead8(v60.program,modAdd+2);
bamOffset = v60.reg[modVal&0x1F];
return 3;
@@ -386,16 +386,16 @@ static UINT32 am2PCDisplacementIndexed16(void)
switch (modDim)
{
case 0:
- amOut = PC + (INT16)OpRead16(modAdd+2) + v60.reg[modVal&0x1F];
+ amOut = PC + (INT16)OpRead16(v60.program,modAdd+2) + v60.reg[modVal&0x1F];
break;
case 1:
- amOut = PC + (INT16)OpRead16(modAdd+2) + v60.reg[modVal&0x1F] * 2;
+ amOut = PC + (INT16)OpRead16(v60.program,modAdd+2) + v60.reg[modVal&0x1F] * 2;
break;
case 2:
- amOut = PC + (INT16)OpRead16(modAdd+2) + v60.reg[modVal&0x1F] * 4;
+ amOut = PC + (INT16)OpRead16(v60.program,modAdd+2) + v60.reg[modVal&0x1F] * 4;
break;
case 3:
- amOut = PC + (INT16)OpRead16(modAdd+2) + v60.reg[modVal&0x1F] * 8;
+ amOut = PC + (INT16)OpRead16(v60.program,modAdd+2) + v60.reg[modVal&0x1F] * 8;
break;
}
@@ -405,7 +405,7 @@ static UINT32 am2PCDisplacementIndexed16(void)
static UINT32 bam2PCDisplacementIndexed16(void)
{
amFlag = 0;
- amOut = PC + (INT16)OpRead16(modAdd+2);
+ amOut = PC + (INT16)OpRead16(v60.program,modAdd+2);
bamOffset = v60.reg[modVal&0x1F];
return 4;
@@ -418,16 +418,16 @@ static UINT32 am2PCDisplacementIndexed32(void)
switch (modDim)
{
case 0:
- amOut = PC + OpRead32(modAdd+2) + v60.reg[modVal&0x1F];
+ amOut = PC + OpRead32(v60.program,modAdd+2) + v60.reg[modVal&0x1F];
break;
case 1:
- amOut = PC + OpRead32(modAdd+2) + v60.reg[modVal&0x1F] * 2;
+ amOut = PC + OpRead32(v60.program,modAdd+2) + v60.reg[modVal&0x1F] * 2;
break;
case 2:
- amOut = PC + OpRead32(modAdd+2) + v60.reg[modVal&0x1F] * 4;
+ amOut = PC + OpRead32(v60.program,modAdd+2) + v60.reg[modVal&0x1F] * 4;
break;
case 3:
- amOut = PC + OpRead32(modAdd+2) + v60.reg[modVal&0x1F] * 8;
+ amOut = PC + OpRead32(v60.program,modAdd+2) + v60.reg[modVal&0x1F] * 8;
break;
}
@@ -437,7 +437,7 @@ static UINT32 am2PCDisplacementIndexed32(void)
static UINT32 bam2PCDisplacementIndexed32(void)
{
amFlag = 0;
- amOut = PC + OpRead32(modAdd+2);
+ amOut = PC + OpRead32(v60.program,modAdd+2);
bamOffset = v60.reg[modVal&0x1F];
return 6;
@@ -446,7 +446,7 @@ static UINT32 bam2PCDisplacementIndexed32(void)
static UINT32 am2DisplacementIndirect8(void)
{
amFlag = 0;
- amOut = MemRead32(v60.reg[modVal&0x1F] + (INT8)OpRead8(modAdd+1));
+ amOut = MemRead32(v60.program,v60.reg[modVal&0x1F] + (INT8)OpRead8(v60.program,modAdd+1));
return 2;
}
@@ -454,7 +454,7 @@ static UINT32 am2DisplacementIndirect8(void)
static UINT32 bam2DisplacementIndirect8(void)
{
amFlag = 0;
- amOut = MemRead32(v60.reg[modVal&0x1F] + (INT8)OpRead8(modAdd+1));
+ amOut = MemRead32(v60.program,v60.reg[modVal&0x1F] + (INT8)OpRead8(v60.program,modAdd+1));
bamOffset = 0;
return 2;
}
@@ -462,7 +462,7 @@ static UINT32 bam2DisplacementIndirect8(void)
static UINT32 am2DisplacementIndirect16(void)
{
amFlag = 0;
- amOut = MemRead32(v60.reg[modVal&0x1F] + (INT16)OpRead16(modAdd+1));
+ amOut = MemRead32(v60.program,v60.reg[modVal&0x1F] + (INT16)OpRead16(v60.program,modAdd+1));
return 3;
}
@@ -470,7 +470,7 @@ static UINT32 am2DisplacementIndirect16(void)
static UINT32 bam2DisplacementIndirect16(void)
{
amFlag = 0;
- amOut = MemRead32(v60.reg[modVal&0x1F] + (INT16)OpRead16(modAdd+1));
+ amOut = MemRead32(v60.program,v60.reg[modVal&0x1F] + (INT16)OpRead16(v60.program,modAdd+1));
bamOffset = 0;
return 3;
}
@@ -478,7 +478,7 @@ static UINT32 bam2DisplacementIndirect16(void)
static UINT32 am2DisplacementIndirect32(void)
{
amFlag = 0;
- amOut = MemRead32(v60.reg[modVal&0x1F] + OpRead32(modAdd+1));
+ amOut = MemRead32(v60.program,v60.reg[modVal&0x1F] + OpRead32(v60.program,modAdd+1));
return 5;
}
@@ -486,7 +486,7 @@ static UINT32 am2DisplacementIndirect32(void)
static UINT32 bam2DisplacementIndirect32(void)
{
amFlag = 0;
- amOut = MemRead32(v60.reg[modVal&0x1F] + OpRead32(modAdd+1));
+ amOut = MemRead32(v60.program,v60.reg[modVal&0x1F] + OpRead32(v60.program,modAdd+1));
bamOffset = 0;
return 5;
@@ -499,16 +499,16 @@ static UINT32 am2DisplacementIndirectIndexed8(void)
switch (modDim)
{
case 0:
- amOut = MemRead32(v60.reg[modVal2&0x1F] + (INT8)OpRead8(modAdd+2)) + v60.reg[modVal&0x1F];
+ amOut = MemRead32(v60.program,v60.reg[modVal2&0x1F] + (INT8)OpRead8(v60.program,modAdd+2)) + v60.reg[modVal&0x1F];
break;
case 1:
- amOut = MemRead32(v60.reg[modVal2&0x1F] + (INT8)OpRead8(modAdd+2)) + v60.reg[modVal&0x1F] * 2;
+ amOut = MemRead32(v60.program,v60.reg[modVal2&0x1F] + (INT8)OpRead8(v60.program,modAdd+2)) + v60.reg[modVal&0x1F] * 2;
break;
case 2:
- amOut = MemRead32(v60.reg[modVal2&0x1F] + (INT8)OpRead8(modAdd+2)) + v60.reg[modVal&0x1F] * 4;
+ amOut = MemRead32(v60.program,v60.reg[modVal2&0x1F] + (INT8)OpRead8(v60.program,modAdd+2)) + v60.reg[modVal&0x1F] * 4;
break;
case 3:
- amOut = MemRead32(v60.reg[modVal2&0x1F] + (INT8)OpRead8(modAdd+2)) + v60.reg[modVal&0x1F] * 8;
+ amOut = MemRead32(v60.program,v60.reg[modVal2&0x1F] + (INT8)OpRead8(v60.program,modAdd+2)) + v60.reg[modVal&0x1F] * 8;
break;
}
@@ -518,7 +518,7 @@ static UINT32 am2DisplacementIndirectIndexed8(void)
static UINT32 bam2DisplacementIndirectIndexed8(void)
{
amFlag = 0;
- amOut = MemRead32(v60.reg[modVal2&0x1F] + (INT8)OpRead8(modAdd+2));
+ amOut = MemRead32(v60.program,v60.reg[modVal2&0x1F] + (INT8)OpRead8(v60.program,modAdd+2));
bamOffset = v60.reg[modVal&0x1F];
return 3;
@@ -531,16 +531,16 @@ static UINT32 am2DisplacementIndirectIndexed16(void)
switch (modDim)
{
case 0:
- amOut = MemRead32(v60.reg[modVal2&0x1F] + (INT16)OpRead16(modAdd+2)) + v60.reg[modVal&0x1F];
+ amOut = MemRead32(v60.program,v60.reg[modVal2&0x1F] + (INT16)OpRead16(v60.program,modAdd+2)) + v60.reg[modVal&0x1F];
break;
case 1:
- amOut = MemRead32(v60.reg[modVal2&0x1F] + (INT16)OpRead16(modAdd+2)) + v60.reg[modVal&0x1F] * 2;
+ amOut = MemRead32(v60.program,v60.reg[modVal2&0x1F] + (INT16)OpRead16(v60.program,modAdd+2)) + v60.reg[modVal&0x1F] * 2;
break;
case 2:
- amOut = MemRead32(v60.reg[modVal2&0x1F] + (INT16)OpRead16(modAdd+2)) + v60.reg[modVal&0x1F] * 4;
+ amOut = MemRead32(v60.program,v60.reg[modVal2&0x1F] + (INT16)OpRead16(v60.program,modAdd+2)) + v60.reg[modVal&0x1F] * 4;
break;
case 3:
- amOut = MemRead32(v60.reg[modVal2&0x1F] + (INT16)OpRead16(modAdd+2)) + v60.reg[modVal&0x1F] * 8;
+ amOut = MemRead32(v60.program,v60.reg[modVal2&0x1F] + (INT16)OpRead16(v60.program,modAdd+2)) + v60.reg[modVal&0x1F] * 8;
break;
}
@@ -550,7 +550,7 @@ static UINT32 am2DisplacementIndirectIndexed16(void)
static UINT32 bam2DisplacementIndirectIndexed16(void)
{
amFlag = 0;
- amOut = MemRead32(v60.reg[modVal2&0x1F] + (INT16)OpRead16(modAdd+2));
+ amOut = MemRead32(v60.program,v60.reg[modVal2&0x1F] + (INT16)OpRead16(v60.program,modAdd+2));
bamOffset = v60.reg[modVal&0x1F];
return 4;
@@ -563,16 +563,16 @@ static UINT32 am2DisplacementIndirectIndexed32(void)
switch (modDim)
{
case 0:
- amOut = MemRead32(v60.reg[modVal2&0x1F] + OpRead32(modAdd+2)) + v60.reg[modVal&0x1F];
+ amOut = MemRead32(v60.program,v60.reg[modVal2&0x1F] + OpRead32(v60.program,modAdd+2)) + v60.reg[modVal&0x1F];
break;
case 1:
- amOut = MemRead32(v60.reg[modVal2&0x1F] + OpRead32(modAdd+2)) + v60.reg[modVal&0x1F] * 2;
+ amOut = MemRead32(v60.program,v60.reg[modVal2&0x1F] + OpRead32(v60.program,modAdd+2)) + v60.reg[modVal&0x1F] * 2;
break;
case 2:
- amOut = MemRead32(v60.reg[modVal2&0x1F] + OpRead32(modAdd+2)) + v60.reg[modVal&0x1F] * 4;
+ amOut = MemRead32(v60.program,v60.reg[modVal2&0x1F] + OpRead32(v60.program,modAdd+2)) + v60.reg[modVal&0x1F] * 4;
break;
case 3:
- amOut = MemRead32(v60.reg[modVal2&0x1F] + OpRead32(modAdd+2)) + v60.reg[modVal&0x1F] * 8;
+ amOut = MemRead32(v60.program,v60.reg[modVal2&0x1F] + OpRead32(v60.program,modAdd+2)) + v60.reg[modVal&0x1F] * 8;
break;
}
@@ -582,7 +582,7 @@ static UINT32 am2DisplacementIndirectIndexed32(void)
static UINT32 bam2DisplacementIndirectIndexed32(void)
{
amFlag = 0;
- amOut = MemRead32(v60.reg[modVal2&0x1F] + OpRead32(modAdd+2));
+ amOut = MemRead32(v60.program,v60.reg[modVal2&0x1F] + OpRead32(v60.program,modAdd+2));
bamOffset = v60.reg[modVal&0x1F];
return 6;
@@ -591,7 +591,7 @@ static UINT32 bam2DisplacementIndirectIndexed32(void)
static UINT32 am2PCDisplacementIndirect8(void)
{
amFlag = 0;
- amOut = MemRead32(PC + (INT8)OpRead8(modAdd+1));
+ amOut = MemRead32(v60.program,PC + (INT8)OpRead8(v60.program,modAdd+1));
return 2;
}
@@ -599,7 +599,7 @@ static UINT32 am2PCDisplacementIndirect8(void)
static UINT32 bam2PCDisplacementIndirect8(void)
{
amFlag = 0;
- amOut = MemRead32(PC + (INT8)OpRead8(modAdd+1));
+ amOut = MemRead32(v60.program,PC + (INT8)OpRead8(v60.program,modAdd+1));
bamOffset = 0;
return 2;
@@ -608,7 +608,7 @@ static UINT32 bam2PCDisplacementIndirect8(void)
static UINT32 am2PCDisplacementIndirect16(void)
{
amFlag = 0;
- amOut = MemRead32(PC + (INT16)OpRead16(modAdd+1));
+ amOut = MemRead32(v60.program,PC + (INT16)OpRead16(v60.program,modAdd+1));
return 3;
}
@@ -616,7 +616,7 @@ static UINT32 am2PCDisplacementIndirect16(void)
static UINT32 bam2PCDisplacementIndirect16(void)
{
amFlag = 0;
- amOut = MemRead32(PC + (INT16)OpRead16(modAdd+1));
+ amOut = MemRead32(v60.program,PC + (INT16)OpRead16(v60.program,modAdd+1));
bamOffset = 0;
return 3;
@@ -625,7 +625,7 @@ static UINT32 bam2PCDisplacementIndirect16(void)
static UINT32 am2PCDisplacementIndirect32(void)
{
amFlag = 0;
- amOut = MemRead32(PC + OpRead32(modAdd+1));
+ amOut = MemRead32(v60.program,PC + OpRead32(v60.program,modAdd+1));
return 5;
}
@@ -633,7 +633,7 @@ static UINT32 am2PCDisplacementIndirect32(void)
static UINT32 bam2PCDisplacementIndirect32(void)
{
amFlag = 0;
- amOut = MemRead32(PC + OpRead32(modAdd+1));
+ amOut = MemRead32(v60.program,PC + OpRead32(v60.program,modAdd+1));
bamOffset = 0;
return 5;
@@ -646,16 +646,16 @@ static UINT32 am2PCDisplacementIndirectIndexed8(void)
switch (modDim)
{
case 0:
- amOut = MemRead32(PC + (INT8)OpRead8(modAdd+2)) + v60.reg[modVal&0x1F];
+ amOut = MemRead32(v60.program,PC + (INT8)OpRead8(v60.program,modAdd+2)) + v60.reg[modVal&0x1F];
break;
case 1:
- amOut = MemRead32(PC + (INT8)OpRead8(modAdd+2)) + v60.reg[modVal&0x1F] * 2;
+ amOut = MemRead32(v60.program,PC + (INT8)OpRead8(v60.program,modAdd+2)) + v60.reg[modVal&0x1F] * 2;
break;
case 2:
- amOut = MemRead32(PC + (INT8)OpRead8(modAdd+2)) + v60.reg[modVal&0x1F] * 4;
+ amOut = MemRead32(v60.program,PC + (INT8)OpRead8(v60.program,modAdd+2)) + v60.reg[modVal&0x1F] * 4;
break;
case 3:
- amOut = MemRead32(PC + (INT8)OpRead8(modAdd+2)) + v60.reg[modVal&0x1F] * 8;
+ amOut = MemRead32(v60.program,PC + (INT8)OpRead8(v60.program,modAdd+2)) + v60.reg[modVal&0x1F] * 8;
break;
}
@@ -665,7 +665,7 @@ static UINT32 am2PCDisplacementIndirectIndexed8(void)
static UINT32 bam2PCDisplacementIndirectIndexed8(void)
{
amFlag = 0;
- amOut = MemRead32(PC + (INT8)OpRead8(modAdd+2));
+ amOut = MemRead32(v60.program,PC + (INT8)OpRead8(v60.program,modAdd+2));
bamOffset = v60.reg[modVal&0x1F];
return 3;
@@ -678,16 +678,16 @@ static UINT32 am2PCDisplacementIndirectIndexed16(void)
switch (modDim)
{
case 0:
- amOut = MemRead32(PC + (INT16)OpRead16(modAdd+2)) + v60.reg[modVal&0x1F];
+ amOut = MemRead32(v60.program,PC + (INT16)OpRead16(v60.program,modAdd+2)) + v60.reg[modVal&0x1F];
break;
case 1:
- amOut = MemRead32(PC + (INT16)OpRead16(modAdd+2)) + v60.reg[modVal&0x1F] * 2;
+ amOut = MemRead32(v60.program,PC + (INT16)OpRead16(v60.program,modAdd+2)) + v60.reg[modVal&0x1F] * 2;
break;
case 2:
- amOut = MemRead32(PC + (INT16)OpRead16(modAdd+2)) + v60.reg[modVal&0x1F] * 4;
+ amOut = MemRead32(v60.program,PC + (INT16)OpRead16(v60.program,modAdd+2)) + v60.reg[modVal&0x1F] * 4;
break;
case 3:
- amOut = MemRead32(PC + (INT16)OpRead16(modAdd+2)) + v60.reg[modVal&0x1F] * 8;
+ amOut = MemRead32(v60.program,PC + (INT16)OpRead16(v60.program,modAdd+2)) + v60.reg[modVal&0x1F] * 8;
break;
}
@@ -698,7 +698,7 @@ static UINT32 am2PCDisplacementIndirectIndexed16(void)
static UINT32 bam2PCDisplacementIndirectIndexed16(void)
{
amFlag = 0;
- amOut = MemRead32(PC + (INT16)OpRead16(modAdd+2));
+ amOut = MemRead32(v60.program,PC + (INT16)OpRead16(v60.program,modAdd+2));
bamOffset = v60.reg[modVal&0x1F];
return 4;
@@ -712,16 +712,16 @@ static UINT32 am2PCDisplacementIndirectIndexed32(void)
switch (modDim)
{
case 0:
- amOut = MemRead32(PC + OpRead32(modAdd+2)) + v60.reg[modVal&0x1F];
+ amOut = MemRead32(v60.program,PC + OpRead32(v60.program,modAdd+2)) + v60.reg[modVal&0x1F];
break;
case 1:
- amOut = MemRead32(PC + OpRead32(modAdd+2)) + v60.reg[modVal&0x1F] * 2;
+ amOut = MemRead32(v60.program,PC + OpRead32(v60.program,modAdd+2)) + v60.reg[modVal&0x1F] * 2;
break;
case 2:
- amOut = MemRead32(PC + OpRead32(modAdd+2)) + v60.reg[modVal&0x1F] * 4;
+ amOut = MemRead32(v60.program,PC + OpRead32(v60.program,modAdd+2)) + v60.reg[modVal&0x1F] * 4;
break;
case 3:
- amOut = MemRead32(PC + OpRead32(modAdd+2)) + v60.reg[modVal&0x1F] * 8;
+ amOut = MemRead32(v60.program,PC + OpRead32(v60.program,modAdd+2)) + v60.reg[modVal&0x1F] * 8;
break;
}
@@ -731,7 +731,7 @@ static UINT32 am2PCDisplacementIndirectIndexed32(void)
static UINT32 bam2PCDisplacementIndirectIndexed32(void)
{
amFlag = 0;
- amOut = MemRead32(PC + OpRead32(modAdd+2));
+ amOut = MemRead32(v60.program,PC + OpRead32(v60.program,modAdd+2));
bamOffset = v60.reg[modVal&0x1F];
return 6;
@@ -740,7 +740,7 @@ static UINT32 bam2PCDisplacementIndirectIndexed32(void)
static UINT32 am2DoubleDisplacement8(void)
{
amFlag = 0;
- amOut = MemRead32(v60.reg[modVal&0x1F] + (INT8)OpRead8(modAdd+1)) + (INT8)OpRead8(modAdd+2);
+ amOut = MemRead32(v60.program,v60.reg[modVal&0x1F] + (INT8)OpRead8(v60.program,modAdd+1)) + (INT8)OpRead8(v60.program,modAdd+2);
return 3;
}
@@ -748,8 +748,8 @@ static UINT32 am2DoubleDisplacement8(void)
static UINT32 bam2DoubleDisplacement8(void)
{
amFlag = 0;
- amOut = MemRead32(v60.reg[modVal&0x1F] + (INT8)OpRead8(modAdd+1));
- bamOffset = (INT8)OpRead8(modAdd+2);
+ amOut = MemRead32(v60.program,v60.reg[modVal&0x1F] + (INT8)OpRead8(v60.program,modAdd+1));
+ bamOffset = (INT8)OpRead8(v60.program,modAdd+2);
return 3;
}
@@ -757,7 +757,7 @@ static UINT32 bam2DoubleDisplacement8(void)
static UINT32 am2DoubleDisplacement16(void)
{
amFlag = 0;
- amOut = MemRead32(v60.reg[modVal&0x1F] + (INT16)OpRead16(modAdd+1)) + (INT16)OpRead16(modAdd+3);
+ amOut = MemRead32(v60.program,v60.reg[modVal&0x1F] + (INT16)OpRead16(v60.program,modAdd+1)) + (INT16)OpRead16(v60.program,modAdd+3);
return 5;
}
@@ -765,8 +765,8 @@ static UINT32 am2DoubleDisplacement16(void)
static UINT32 bam2DoubleDisplacement16(void)
{
amFlag = 0;
- amOut = MemRead32(v60.reg[modVal&0x1F] + (INT16)OpRead16(modAdd+1));
- bamOffset = (INT8)OpRead8(modAdd+3);
+ amOut = MemRead32(v60.program,v60.reg[modVal&0x1F] + (INT16)OpRead16(v60.program,modAdd+1));
+ bamOffset = (INT8)OpRead8(v60.program,modAdd+3);
return 5;
}
@@ -774,7 +774,7 @@ static UINT32 bam2DoubleDisplacement16(void)
static UINT32 am2DoubleDisplacement32(void)
{
amFlag = 0;
- amOut = MemRead32(v60.reg[modVal&0x1F] + OpRead32(modAdd+1)) + OpRead32(modAdd+5);
+ amOut = MemRead32(v60.program,v60.reg[modVal&0x1F] + OpRead32(v60.program,modAdd+1)) + OpRead32(v60.program,modAdd+5);
return 9;
}
@@ -782,8 +782,8 @@ static UINT32 am2DoubleDisplacement32(void)
static UINT32 bam2DoubleDisplacement32(void)
{
amFlag = 0;
- amOut = MemRead32(v60.reg[modVal&0x1F] + OpRead32(modAdd+1));
- bamOffset = OpRead32(modAdd+5);
+ amOut = MemRead32(v60.program,v60.reg[modVal&0x1F] + OpRead32(v60.program,modAdd+1));
+ bamOffset = OpRead32(v60.program,modAdd+5);
return 9;
}
@@ -792,7 +792,7 @@ static UINT32 bam2DoubleDisplacement32(void)
static UINT32 am2PCDoubleDisplacement8(void)
{
amFlag = 0;
- amOut = MemRead32(PC + (INT8)OpRead8(modAdd+1)) + (INT8)OpRead8(modAdd+2);
+ amOut = MemRead32(v60.program,PC + (INT8)OpRead8(v60.program,modAdd+1)) + (INT8)OpRead8(v60.program,modAdd+2);
return 3;
}
@@ -800,8 +800,8 @@ static UINT32 am2PCDoubleDisplacement8(void)
static UINT32 bam2PCDoubleDisplacement8(void)
{
amFlag = 0;
- amOut = MemRead32(PC + (INT8)OpRead8(modAdd+1));
- bamOffset = (INT8)OpRead8(modAdd+2);
+ amOut = MemRead32(v60.program,PC + (INT8)OpRead8(v60.program,modAdd+1));
+ bamOffset = (INT8)OpRead8(v60.program,modAdd+2);
return 3;
}
@@ -809,7 +809,7 @@ static UINT32 bam2PCDoubleDisplacement8(void)
static UINT32 am2PCDoubleDisplacement16(void)
{
amFlag = 0;
- amOut = MemRead32(PC + (INT16)OpRead16(modAdd+1)) + (INT16)OpRead16(modAdd+3);
+ amOut = MemRead32(v60.program,PC + (INT16)OpRead16(v60.program,modAdd+1)) + (INT16)OpRead16(v60.program,modAdd+3);
return 5;
}
@@ -817,8 +817,8 @@ static UINT32 am2PCDoubleDisplacement16(void)
static UINT32 bam2PCDoubleDisplacement16(void)
{
amFlag = 0;
- amOut = MemRead32(PC + (INT16)OpRead16(modAdd+1));
- bamOffset = (INT8)OpRead8(modAdd+3);
+ amOut = MemRead32(v60.program,PC + (INT16)OpRead16(v60.program,modAdd+1));
+ bamOffset = (INT8)OpRead8(v60.program,modAdd+3);
return 5;
}
@@ -826,7 +826,7 @@ static UINT32 bam2PCDoubleDisplacement16(void)
static UINT32 am2PCDoubleDisplacement32(void)
{
amFlag = 0;
- amOut = MemRead32(PC + OpRead32(modAdd+1)) + OpRead32(modAdd+5);
+ amOut = MemRead32(v60.program,PC + OpRead32(v60.program,modAdd+1)) + OpRead32(v60.program,modAdd+5);
return 9;
}
@@ -834,8 +834,8 @@ static UINT32 am2PCDoubleDisplacement32(void)
static UINT32 bam2PCDoubleDisplacement32(void)
{
amFlag = 0;
- amOut = MemRead32(PC + OpRead32(modAdd+1));
- bamOffset = OpRead32(modAdd+5);
+ amOut = MemRead32(v60.program,PC + OpRead32(v60.program,modAdd+1));
+ bamOffset = OpRead32(v60.program,modAdd+5);
return 9;
}
@@ -843,7 +843,7 @@ static UINT32 bam2PCDoubleDisplacement32(void)
static UINT32 am2DirectAddress(void)
{
amFlag = 0;
- amOut = OpRead32(modAdd+1);
+ amOut = OpRead32(v60.program,modAdd+1);
return 5;
}
@@ -851,7 +851,7 @@ static UINT32 am2DirectAddress(void)
static UINT32 bam2DirectAddress(void)
{
amFlag = 0;
- amOut = OpRead32(modAdd+1);
+ amOut = OpRead32(v60.program,modAdd+1);
bamOffset = 0;
return 5;
@@ -864,16 +864,16 @@ static UINT32 am2DirectAddressIndexed(void)
switch (modDim)
{
case 0:
- amOut = OpRead32(modAdd+2) + v60.reg[modVal&0x1F];
+ amOut = OpRead32(v60.program,modAdd+2) + v60.reg[modVal&0x1F];
break;
case 1:
- amOut = OpRead32(modAdd+2) + v60.reg[modVal&0x1F] * 2;
+ amOut = OpRead32(v60.program,modAdd+2) + v60.reg[modVal&0x1F] * 2;
break;
case 2:
- amOut = OpRead32(modAdd+2) + v60.reg[modVal&0x1F] * 4;
+ amOut = OpRead32(v60.program,modAdd+2) + v60.reg[modVal&0x1F] * 4;
break;
case 3:
- amOut = OpRead32(modAdd+2) + v60.reg[modVal&0x1F] * 8;
+ amOut = OpRead32(v60.program,modAdd+2) + v60.reg[modVal&0x1F] * 8;
break;
}
@@ -883,7 +883,7 @@ static UINT32 am2DirectAddressIndexed(void)
static UINT32 bam2DirectAddressIndexed(void)
{
amFlag = 0;
- amOut = OpRead32(modAdd+2);
+ amOut = OpRead32(v60.program,modAdd+2);
bamOffset = v60.reg[modVal&0x1F];
return 6;
@@ -892,7 +892,7 @@ static UINT32 bam2DirectAddressIndexed(void)
static UINT32 am2DirectAddressDeferred(void)
{
amFlag = 0;
- amOut = MemRead32(OpRead32(modAdd+1));
+ amOut = MemRead32(v60.program,OpRead32(v60.program,modAdd+1));
return 5;
}
@@ -900,7 +900,7 @@ static UINT32 am2DirectAddressDeferred(void)
static UINT32 bam2DirectAddressDeferred(void)
{
amFlag = 0;
- amOut = MemRead32(OpRead32(modAdd+1));
+ amOut = MemRead32(v60.program,OpRead32(v60.program,modAdd+1));
bamOffset = 0;
return 5;
@@ -913,16 +913,16 @@ static UINT32 am2DirectAddressDeferredIndexed(void)
switch (modDim)
{
case 0:
- amOut = MemRead32(OpRead32(modAdd+2)) + v60.reg[modVal&0x1F];
+ amOut = MemRead32(v60.program,OpRead32(v60.program,modAdd+2)) + v60.reg[modVal&0x1F];
break;
case 1:
- amOut = MemRead32(OpRead32(modAdd+2)) + v60.reg[modVal&0x1F] * 2;
+ amOut = MemRead32(v60.program,OpRead32(v60.program,modAdd+2)) + v60.reg[modVal&0x1F] * 2;
break;
case 2:
- amOut = MemRead32(OpRead32(modAdd+2)) + v60.reg[modVal&0x1F] * 4;
+ amOut = MemRead32(v60.program,OpRead32(v60.program,modAdd+2)) + v60.reg[modVal&0x1F] * 4;
break;
case 3:
- amOut = MemRead32(OpRead32(modAdd+2)) + v60.reg[modVal&0x1F] * 8;
+ amOut = MemRead32(v60.program,OpRead32(v60.program,modAdd+2)) + v60.reg[modVal&0x1F] * 8;
break;
}
@@ -932,7 +932,7 @@ static UINT32 am2DirectAddressDeferredIndexed(void)
static UINT32 bam2DirectAddressDeferredIndexed(void)
{
amFlag = 0;
- amOut = MemRead32(OpRead32(modAdd+2));
+ amOut = MemRead32(v60.program,OpRead32(v60.program,modAdd+2));
bamOffset = v60.reg[modVal&0x1F];
return 6;
@@ -1182,12 +1182,12 @@ static UINT32 (*const BAMTable2_G6[8])(void) =
static UINT32 am2Group6(void)
{
- modVal2=OpRead8(modAdd+1);
+ modVal2=OpRead8(v60.program,modAdd+1);
return AMTable2_G6[modVal2>>5]();
}
static UINT32 bam2Group6(void)
{
- modVal2=OpRead8(modAdd+1);
+ modVal2=OpRead8(v60.program,modAdd+1);
return BAMTable2_G6[modVal2>>5]();
}
diff --git a/src/emu/cpu/v60/am3.c b/src/emu/cpu/v60/am3.c
index 8ddabbf6b60..4296f519746 100644
--- a/src/emu/cpu/v60/am3.c
+++ b/src/emu/cpu/v60/am3.c
@@ -25,13 +25,13 @@ static UINT32 am3RegisterIndirect(void)
switch (modDim)
{
case 0:
- MemWrite8(v60.reg[modVal&0x1F], modWriteValB);
+ MemWrite8(v60.program, v60.reg[modVal&0x1F], modWriteValB);
break;
case 1:
- MemWrite16(v60.reg[modVal&0x1F], modWriteValH);
+ MemWrite16(v60.program, v60.reg[modVal&0x1F], modWriteValH);
break;
case 2:
- MemWrite32(v60.reg[modVal&0x1F], modWriteValW);
+ MemWrite32(v60.program, v60.reg[modVal&0x1F], modWriteValW);
break;
}
@@ -43,13 +43,13 @@ static UINT32 am3RegisterIndirectIndexed(void)
switch (modDim)
{
case 0:
- MemWrite8(v60.reg[modVal2&0x1F] + v60.reg[modVal&0x1F], modWriteValB);
+ MemWrite8(v60.program, v60.reg[modVal2&0x1F] + v60.reg[modVal&0x1F], modWriteValB);
break;
case 1:
- MemWrite16(v60.reg[modVal2&0x1F] + v60.reg[modVal&0x1F] * 2, modWriteValH);
+ MemWrite16(v60.program, v60.reg[modVal2&0x1F] + v60.reg[modVal&0x1F] * 2, modWriteValH);
break;
case 2:
- MemWrite32(v60.reg[modVal2&0x1F] + v60.reg[modVal&0x1F] * 4, modWriteValW);
+ MemWrite32(v60.program, v60.reg[modVal2&0x1F] + v60.reg[modVal&0x1F] * 4, modWriteValW);
break;
}
@@ -61,15 +61,15 @@ static UINT32 am3Autoincrement(void)
switch (modDim)
{
case 0:
- MemWrite8(v60.reg[modVal&0x1F], modWriteValB);
+ MemWrite8(v60.program, v60.reg[modVal&0x1F], modWriteValB);
v60.reg[modVal&0x1F] += 1;
break;
case 1:
- MemWrite16(v60.reg[modVal&0x1F], modWriteValH);
+ MemWrite16(v60.program, v60.reg[modVal&0x1F], modWriteValH);
v60.reg[modVal&0x1F] += 2;
break;
case 2:
- MemWrite32(v60.reg[modVal&0x1F], modWriteValW);
+ MemWrite32(v60.program, v60.reg[modVal&0x1F], modWriteValW);
v60.reg[modVal&0x1F] += 4;
break;
}
@@ -83,15 +83,15 @@ static UINT32 am3Autodecrement(void)
{
case 0:
v60.reg[modVal&0x1F] -= 1;
- MemWrite8(v60.reg[modVal&0x1F], modWriteValB);
+ MemWrite8(v60.program, v60.reg[modVal&0x1F], modWriteValB);
break;
case 1:
v60.reg[modVal&0x1F] -= 2;
- MemWrite16(v60.reg[modVal&0x1F], modWriteValH);
+ MemWrite16(v60.program, v60.reg[modVal&0x1F], modWriteValH);
break;
case 2:
v60.reg[modVal&0x1F] -= 4;
- MemWrite32(v60.reg[modVal&0x1F], modWriteValW);
+ MemWrite32(v60.program, v60.reg[modVal&0x1F], modWriteValW);
break;
}
@@ -103,13 +103,13 @@ static UINT32 am3Displacement8(void)
switch (modDim)
{
case 0:
- MemWrite8(v60.reg[modVal&0x1F] + (INT8)OpRead8(modAdd+1), modWriteValB);
+ MemWrite8(v60.program, v60.reg[modVal&0x1F] + (INT8)OpRead8(v60.program,modAdd+1), modWriteValB);
break;
case 1:
- MemWrite16(v60.reg[modVal&0x1F] + (INT8)OpRead8(modAdd+1), modWriteValH);
+ MemWrite16(v60.program, v60.reg[modVal&0x1F] + (INT8)OpRead8(v60.program,modAdd+1), modWriteValH);
break;
case 2:
- MemWrite32(v60.reg[modVal&0x1F] + (INT8)OpRead8(modAdd+1), modWriteValW);
+ MemWrite32(v60.program, v60.reg[modVal&0x1F] + (INT8)OpRead8(v60.program,modAdd+1), modWriteValW);
break;
}
@@ -121,13 +121,13 @@ static UINT32 am3Displacement16(void)
switch (modDim)
{
case 0:
- MemWrite8(v60.reg[modVal&0x1F] + (INT16)OpRead16(modAdd+1), modWriteValB);
+ MemWrite8(v60.program, v60.reg[modVal&0x1F] + (INT16)OpRead16(v60.program,modAdd+1), modWriteValB);
break;
case 1:
- MemWrite16(v60.reg[modVal&0x1F] + (INT16)OpRead16(modAdd+1), modWriteValH);
+ MemWrite16(v60.program, v60.reg[modVal&0x1F] + (INT16)OpRead16(v60.program,modAdd+1), modWriteValH);
break;
case 2:
- MemWrite32(v60.reg[modVal&0x1F] + (INT16)OpRead16(modAdd+1), modWriteValW);
+ MemWrite32(v60.program, v60.reg[modVal&0x1F] + (INT16)OpRead16(v60.program,modAdd+1), modWriteValW);
break;
}
@@ -139,13 +139,13 @@ static UINT32 am3Displacement32(void)
switch (modDim)
{
case 0:
- MemWrite8(v60.reg[modVal&0x1F] + OpRead32(modAdd+1), modWriteValB);
+ MemWrite8(v60.program, v60.reg[modVal&0x1F] + OpRead32(v60.program,modAdd+1), modWriteValB);
break;
case 1:
- MemWrite16(v60.reg[modVal&0x1F] + OpRead32(modAdd+1), modWriteValH);
+ MemWrite16(v60.program, v60.reg[modVal&0x1F] + OpRead32(v60.program,modAdd+1), modWriteValH);
break;
case 2:
- MemWrite32(v60.reg[modVal&0x1F] + OpRead32(modAdd+1), modWriteValW);
+ MemWrite32(v60.program, v60.reg[modVal&0x1F] + OpRead32(v60.program,modAdd+1), modWriteValW);
break;
}
@@ -158,13 +158,13 @@ static UINT32 am3DisplacementIndexed8(void)
switch (modDim)
{
case 0:
- MemWrite8(v60.reg[modVal2&0x1F] + (INT8)OpRead8(modAdd+2) + v60.reg[modVal&0x1F], modWriteValB);
+ MemWrite8(v60.program, v60.reg[modVal2&0x1F] + (INT8)OpRead8(v60.program,modAdd+2) + v60.reg[modVal&0x1F], modWriteValB);
break;
case 1:
- MemWrite16(v60.reg[modVal2&0x1F] + (INT8)OpRead8(modAdd+2) + v60.reg[modVal&0x1F] * 2, modWriteValH);
+ MemWrite16(v60.program, v60.reg[modVal2&0x1F] + (INT8)OpRead8(v60.program,modAdd+2) + v60.reg[modVal&0x1F] * 2, modWriteValH);
break;
case 2:
- MemWrite32(v60.reg[modVal2&0x1F] + (INT8)OpRead8(modAdd+2) + v60.reg[modVal&0x1F] * 4, modWriteValW);
+ MemWrite32(v60.program, v60.reg[modVal2&0x1F] + (INT8)OpRead8(v60.program,modAdd+2) + v60.reg[modVal&0x1F] * 4, modWriteValW);
break;
}
@@ -176,13 +176,13 @@ static UINT32 am3DisplacementIndexed16(void)
switch (modDim)
{
case 0:
- MemWrite8(v60.reg[modVal2&0x1F] + (INT16)OpRead16(modAdd+2) + v60.reg[modVal&0x1F], modWriteValB);
+ MemWrite8(v60.program, v60.reg[modVal2&0x1F] + (INT16)OpRead16(v60.program,modAdd+2) + v60.reg[modVal&0x1F], modWriteValB);
break;
case 1:
- MemWrite16(v60.reg[modVal2&0x1F] + (INT16)OpRead16(modAdd+2) + v60.reg[modVal&0x1F] * 2, modWriteValH);
+ MemWrite16(v60.program, v60.reg[modVal2&0x1F] + (INT16)OpRead16(v60.program,modAdd+2) + v60.reg[modVal&0x1F] * 2, modWriteValH);
break;
case 2:
- MemWrite32(v60.reg[modVal2&0x1F] + (INT16)OpRead16(modAdd+2) + v60.reg[modVal&0x1F] * 4, modWriteValW);
+ MemWrite32(v60.program, v60.reg[modVal2&0x1F] + (INT16)OpRead16(v60.program,modAdd+2) + v60.reg[modVal&0x1F] * 4, modWriteValW);
break;
}
@@ -194,13 +194,13 @@ static UINT32 am3DisplacementIndexed32(void)
switch (modDim)
{
case 0:
- MemWrite8(v60.reg[modVal2&0x1F] + OpRead32(modAdd+2) + v60.reg[modVal&0x1F], modWriteValB);
+ MemWrite8(v60.program, v60.reg[modVal2&0x1F] + OpRead32(v60.program,modAdd+2) + v60.reg[modVal&0x1F], modWriteValB);
break;
case 1:
- MemWrite16(v60.reg[modVal2&0x1F] + OpRead32(modAdd+2) + v60.reg[modVal&0x1F] * 2, modWriteValH);
+ MemWrite16(v60.program, v60.reg[modVal2&0x1F] + OpRead32(v60.program,modAdd+2) + v60.reg[modVal&0x1F] * 2, modWriteValH);
break;
case 2:
- MemWrite32(v60.reg[modVal2&0x1F] + OpRead32(modAdd+2) + v60.reg[modVal&0x1F] * 4, modWriteValW);
+ MemWrite32(v60.program, v60.reg[modVal2&0x1F] + OpRead32(v60.program,modAdd+2) + v60.reg[modVal&0x1F] * 4, modWriteValW);
break;
}
@@ -213,13 +213,13 @@ static UINT32 am3PCDisplacement8(void)
switch (modDim)
{
case 0:
- MemWrite8(PC + (INT8)OpRead8(modAdd+1), modWriteValB);
+ MemWrite8(v60.program, PC + (INT8)OpRead8(v60.program,modAdd+1), modWriteValB);
break;
case 1:
- MemWrite16(PC + (INT8)OpRead8(modAdd+1), modWriteValH);
+ MemWrite16(v60.program, PC + (INT8)OpRead8(v60.program,modAdd+1), modWriteValH);
break;
case 2:
- MemWrite32(PC + (INT8)OpRead8(modAdd+1), modWriteValW);
+ MemWrite32(v60.program, PC + (INT8)OpRead8(v60.program,modAdd+1), modWriteValW);
break;
}
@@ -231,13 +231,13 @@ static UINT32 am3PCDisplacement16(void)
switch (modDim)
{
case 0:
- MemWrite8(PC + (INT16)OpRead16(modAdd+1), modWriteValB);
+ MemWrite8(v60.program, PC + (INT16)OpRead16(v60.program,modAdd+1), modWriteValB);
break;
case 1:
- MemWrite16(PC + (INT16)OpRead16(modAdd+1), modWriteValH);
+ MemWrite16(v60.program, PC + (INT16)OpRead16(v60.program,modAdd+1), modWriteValH);
break;
case 2:
- MemWrite32(PC + (INT16)OpRead16(modAdd+1), modWriteValW);
+ MemWrite32(v60.program, PC + (INT16)OpRead16(v60.program,modAdd+1), modWriteValW);
break;
}
@@ -249,13 +249,13 @@ static UINT32 am3PCDisplacement32(void)
switch (modDim)
{
case 0:
- MemWrite8(PC + OpRead32(modAdd+1), modWriteValB);
+ MemWrite8(v60.program, PC + OpRead32(v60.program,modAdd+1), modWriteValB);
break;
case 1:
- MemWrite16(PC + OpRead32(modAdd+1), modWriteValH);
+ MemWrite16(v60.program, PC + OpRead32(v60.program,modAdd+1), modWriteValH);
break;
case 2:
- MemWrite32(PC + OpRead32(modAdd+1), modWriteValW);
+ MemWrite32(v60.program, PC + OpRead32(v60.program,modAdd+1), modWriteValW);
break;
}
@@ -267,13 +267,13 @@ static UINT32 am3PCDisplacementIndexed8(void)
switch (modDim)
{
case 0:
- MemWrite8(PC + (INT8)OpRead8(modAdd+2) + v60.reg[modVal&0x1F], modWriteValB);
+ MemWrite8(v60.program, PC + (INT8)OpRead8(v60.program,modAdd+2) + v60.reg[modVal&0x1F], modWriteValB);
break;
case 1:
- MemWrite16(PC + (INT8)OpRead8(modAdd+2) + v60.reg[modVal&0x1F] * 2, modWriteValH);
+ MemWrite16(v60.program, PC + (INT8)OpRead8(v60.program,modAdd+2) + v60.reg[modVal&0x1F] * 2, modWriteValH);
break;
case 2:
- MemWrite32(PC + (INT8)OpRead8(modAdd+2) + v60.reg[modVal&0x1F] * 4, modWriteValW);
+ MemWrite32(v60.program, PC + (INT8)OpRead8(v60.program,modAdd+2) + v60.reg[modVal&0x1F] * 4, modWriteValW);
break;
}
@@ -285,13 +285,13 @@ static UINT32 am3PCDisplacementIndexed16(void)
switch (modDim)
{
case 0:
- MemWrite8(PC + (INT16)OpRead16(modAdd+2) + v60.reg[modVal&0x1F], modWriteValB);
+ MemWrite8(v60.program, PC + (INT16)OpRead16(v60.program,modAdd+2) + v60.reg[modVal&0x1F], modWriteValB);
break;
case 1:
- MemWrite16(PC + (INT16)OpRead16(modAdd+2) + v60.reg[modVal&0x1F] * 2, modWriteValH);
+ MemWrite16(v60.program, PC + (INT16)OpRead16(v60.program,modAdd+2) + v60.reg[modVal&0x1F] * 2, modWriteValH);
break;
case 2:
- MemWrite32(PC + (INT16)OpRead16(modAdd+2) + v60.reg[modVal&0x1F] * 4, modWriteValW);
+ MemWrite32(v60.program, PC + (INT16)OpRead16(v60.program,modAdd+2) + v60.reg[modVal&0x1F] * 4, modWriteValW);
break;
}
@@ -303,13 +303,13 @@ static UINT32 am3PCDisplacementIndexed32(void)
switch (modDim)
{
case 0:
- MemWrite8(PC + OpRead32(modAdd+2) + v60.reg[modVal&0x1F], modWriteValB);
+ MemWrite8(v60.program, PC + OpRead32(v60.program,modAdd+2) + v60.reg[modVal&0x1F], modWriteValB);
break;
case 1:
- MemWrite16(PC + OpRead32(modAdd+2) + v60.reg[modVal&0x1F] * 2, modWriteValH);
+ MemWrite16(v60.program, PC + OpRead32(v60.program,modAdd+2) + v60.reg[modVal&0x1F] * 2, modWriteValH);
break;
case 2:
- MemWrite32(PC + OpRead32(modAdd+2) + v60.reg[modVal&0x1F] * 4, modWriteValW);
+ MemWrite32(v60.program, PC + OpRead32(v60.program,modAdd+2) + v60.reg[modVal&0x1F] * 4, modWriteValW);
break;
}
@@ -321,13 +321,13 @@ static UINT32 am3DisplacementIndirect8(void)
switch (modDim)
{
case 0:
- MemWrite8(MemRead32(v60.reg[modVal&0x1F] + (INT8)OpRead8(modAdd+1)), modWriteValB);
+ MemWrite8(v60.program, MemRead32(v60.program,v60.reg[modVal&0x1F] + (INT8)OpRead8(v60.program,modAdd+1)), modWriteValB);
break;
case 1:
- MemWrite16(MemRead32(v60.reg[modVal&0x1F] + (INT8)OpRead8(modAdd+1)), modWriteValH);
+ MemWrite16(v60.program, MemRead32(v60.program,v60.reg[modVal&0x1F] + (INT8)OpRead8(v60.program,modAdd+1)), modWriteValH);
break;
case 2:
- MemWrite32(MemRead32(v60.reg[modVal&0x1F] + (INT8)OpRead8(modAdd+1)), modWriteValW);
+ MemWrite32(v60.program, MemRead32(v60.program,v60.reg[modVal&0x1F] + (INT8)OpRead8(v60.program,modAdd+1)), modWriteValW);
break;
}
@@ -339,13 +339,13 @@ static UINT32 am3DisplacementIndirect16(void)
switch (modDim)
{
case 0:
- MemWrite8(MemRead32(v60.reg[modVal&0x1F] + (INT16)OpRead16(modAdd+1)), modWriteValB);
+ MemWrite8(v60.program, MemRead32(v60.program,v60.reg[modVal&0x1F] + (INT16)OpRead16(v60.program,modAdd+1)), modWriteValB);
break;
case 1:
- MemWrite16(MemRead32(v60.reg[modVal&0x1F] + (INT16)OpRead16(modAdd+1)), modWriteValH);
+ MemWrite16(v60.program, MemRead32(v60.program,v60.reg[modVal&0x1F] + (INT16)OpRead16(v60.program,modAdd+1)), modWriteValH);
break;
case 2:
- MemWrite32(MemRead32(v60.reg[modVal&0x1F] + (INT16)OpRead16(modAdd+1)), modWriteValW);
+ MemWrite32(v60.program, MemRead32(v60.program,v60.reg[modVal&0x1F] + (INT16)OpRead16(v60.program,modAdd+1)), modWriteValW);
break;
}
@@ -357,13 +357,13 @@ static UINT32 am3DisplacementIndirect32(void)
switch (modDim)
{
case 0:
- MemWrite8(MemRead32(v60.reg[modVal&0x1F] + OpRead32(modAdd+1)), modWriteValB);
+ MemWrite8(v60.program, MemRead32(v60.program,v60.reg[modVal&0x1F] + OpRead32(v60.program,modAdd+1)), modWriteValB);
break;
case 1:
- MemWrite16(MemRead32(v60.reg[modVal&0x1F] + OpRead32(modAdd+1)), modWriteValH);
+ MemWrite16(v60.program, MemRead32(v60.program,v60.reg[modVal&0x1F] + OpRead32(v60.program,modAdd+1)), modWriteValH);
break;
case 2:
- MemWrite32(MemRead32(v60.reg[modVal&0x1F] + OpRead32(modAdd+1)), modWriteValW);
+ MemWrite32(v60.program, MemRead32(v60.program,v60.reg[modVal&0x1F] + OpRead32(v60.program,modAdd+1)), modWriteValW);
break;
}
@@ -376,13 +376,13 @@ static UINT32 am3DisplacementIndirectIndexed8(void)
switch (modDim)
{
case 0:
- MemWrite8(MemRead32(v60.reg[modVal2&0x1F] + (INT8)OpRead8(modAdd+2)) + v60.reg[modVal&0x1F], modWriteValB);
+ MemWrite8(v60.program, MemRead32(v60.program,v60.reg[modVal2&0x1F] + (INT8)OpRead8(v60.program,modAdd+2)) + v60.reg[modVal&0x1F], modWriteValB);
break;
case 1:
- MemWrite16(MemRead32(v60.reg[modVal2&0x1F] + (INT8)OpRead8(modAdd+2)) + v60.reg[modVal&0x1F] * 2, modWriteValH);
+ MemWrite16(v60.program, MemRead32(v60.program,v60.reg[modVal2&0x1F] + (INT8)OpRead8(v60.program,modAdd+2)) + v60.reg[modVal&0x1F] * 2, modWriteValH);
break;
case 2:
- MemWrite32(MemRead32(v60.reg[modVal2&0x1F] + (INT8)OpRead8(modAdd+2)) + v60.reg[modVal&0x1F] * 4, modWriteValW);
+ MemWrite32(v60.program, MemRead32(v60.program,v60.reg[modVal2&0x1F] + (INT8)OpRead8(v60.program,modAdd+2)) + v60.reg[modVal&0x1F] * 4, modWriteValW);
break;
}
@@ -394,13 +394,13 @@ static UINT32 am3DisplacementIndirectIndexed16(void)
switch (modDim)
{
case 0:
- MemWrite8(MemRead32(v60.reg[modVal2&0x1F] + (INT16)OpRead16(modAdd+2)) + v60.reg[modVal&0x1F], modWriteValB);
+ MemWrite8(v60.program, MemRead32(v60.program,v60.reg[modVal2&0x1F] + (INT16)OpRead16(v60.program,modAdd+2)) + v60.reg[modVal&0x1F], modWriteValB);
break;
case 1:
- MemWrite16(MemRead32(v60.reg[modVal2&0x1F] + (INT16)OpRead16(modAdd+2)) + v60.reg[modVal&0x1F] * 2, modWriteValH);
+ MemWrite16(v60.program, MemRead32(v60.program,v60.reg[modVal2&0x1F] + (INT16)OpRead16(v60.program,modAdd+2)) + v60.reg[modVal&0x1F] * 2, modWriteValH);
break;
case 2:
- MemWrite32(MemRead32(v60.reg[modVal2&0x1F] + (INT16)OpRead16(modAdd+2)) + v60.reg[modVal&0x1F] * 4, modWriteValW);
+ MemWrite32(v60.program, MemRead32(v60.program,v60.reg[modVal2&0x1F] + (INT16)OpRead16(v60.program,modAdd+2)) + v60.reg[modVal&0x1F] * 4, modWriteValW);
break;
}
@@ -412,13 +412,13 @@ static UINT32 am3DisplacementIndirectIndexed32(void)
switch (modDim)
{
case 0:
- MemWrite8(MemRead32(v60.reg[modVal2&0x1F] + OpRead32(modAdd+2)) + v60.reg[modVal&0x1F], modWriteValB);
+ MemWrite8(v60.program, MemRead32(v60.program,v60.reg[modVal2&0x1F] + OpRead32(v60.program,modAdd+2)) + v60.reg[modVal&0x1F], modWriteValB);
break;
case 1:
- MemWrite16(MemRead32(v60.reg[modVal2&0x1F] + OpRead32(modAdd+2)) + v60.reg[modVal&0x1F] * 2, modWriteValH);
+ MemWrite16(v60.program, MemRead32(v60.program,v60.reg[modVal2&0x1F] + OpRead32(v60.program,modAdd+2)) + v60.reg[modVal&0x1F] * 2, modWriteValH);
break;
case 2:
- MemWrite32(MemRead32(v60.reg[modVal2&0x1F] + OpRead32(modAdd+2)) + v60.reg[modVal&0x1F] * 4, modWriteValW);
+ MemWrite32(v60.program, MemRead32(v60.program,v60.reg[modVal2&0x1F] + OpRead32(v60.program,modAdd+2)) + v60.reg[modVal&0x1F] * 4, modWriteValW);
break;
}
@@ -430,13 +430,13 @@ static UINT32 am3PCDisplacementIndirect8(void)
switch (modDim)
{
case 0:
- MemWrite8(MemRead32(PC + (INT8)OpRead8(modAdd+1)), modWriteValB);
+ MemWrite8(v60.program, MemRead32(v60.program,PC + (INT8)OpRead8(v60.program,modAdd+1)), modWriteValB);
break;
case 1:
- MemWrite16(MemRead32(PC + (INT8)OpRead8(modAdd+1)), modWriteValH);
+ MemWrite16(v60.program, MemRead32(v60.program,PC + (INT8)OpRead8(v60.program,modAdd+1)), modWriteValH);
break;
case 2:
- MemWrite32(MemRead32(PC + (INT8)OpRead8(modAdd+1)), modWriteValW);
+ MemWrite32(v60.program, MemRead32(v60.program,PC + (INT8)OpRead8(v60.program,modAdd+1)), modWriteValW);
break;
}
@@ -448,13 +448,13 @@ static UINT32 am3PCDisplacementIndirect16(void)
switch (modDim)
{
case 0:
- MemWrite8(MemRead32(PC + (INT16)OpRead16(modAdd+1)), modWriteValB);
+ MemWrite8(v60.program, MemRead32(v60.program,PC + (INT16)OpRead16(v60.program,modAdd+1)), modWriteValB);
break;
case 1:
- MemWrite16(MemRead32(PC + (INT16)OpRead16(modAdd+1)), modWriteValH);
+ MemWrite16(v60.program, MemRead32(v60.program,PC + (INT16)OpRead16(v60.program,modAdd+1)), modWriteValH);
break;
case 2:
- MemWrite32(MemRead32(PC + (INT16)OpRead16(modAdd+1)), modWriteValW);
+ MemWrite32(v60.program, MemRead32(v60.program,PC + (INT16)OpRead16(v60.program,modAdd+1)), modWriteValW);
break;
}
@@ -466,13 +466,13 @@ static UINT32 am3PCDisplacementIndirect32(void)
switch (modDim)
{
case 0:
- MemWrite8(MemRead32(PC + OpRead32(modAdd+1)), modWriteValB);
+ MemWrite8(v60.program, MemRead32(v60.program,PC + OpRead32(v60.program,modAdd+1)), modWriteValB);
break;
case 1:
- MemWrite16(MemRead32(PC + OpRead32(modAdd+1)), modWriteValH);
+ MemWrite16(v60.program, MemRead32(v60.program,PC + OpRead32(v60.program,modAdd+1)), modWriteValH);
break;
case 2:
- MemWrite32(MemRead32(PC + OpRead32(modAdd+1)), modWriteValW);
+ MemWrite32(v60.program, MemRead32(v60.program,PC + OpRead32(v60.program,modAdd+1)), modWriteValW);
break;
}
@@ -485,13 +485,13 @@ static UINT32 am3PCDisplacementIndirectIndexed8(void)
switch (modDim)
{
case 0:
- MemWrite8(MemRead32(PC + (INT8)OpRead8(modAdd+2)) + v60.reg[modVal&0x1F], modWriteValB);
+ MemWrite8(v60.program, MemRead32(v60.program,PC + (INT8)OpRead8(v60.program,modAdd+2)) + v60.reg[modVal&0x1F], modWriteValB);
break;
case 1:
- MemWrite16(MemRead32(PC + (INT8)OpRead8(modAdd+2)) + v60.reg[modVal&0x1F] * 2, modWriteValH);
+ MemWrite16(v60.program, MemRead32(v60.program,PC + (INT8)OpRead8(v60.program,modAdd+2)) + v60.reg[modVal&0x1F] * 2, modWriteValH);
break;
case 2:
- MemWrite32(MemRead32(PC + (INT8)OpRead8(modAdd+2)) + v60.reg[modVal&0x1F] * 4, modWriteValW);
+ MemWrite32(v60.program, MemRead32(v60.program,PC + (INT8)OpRead8(v60.program,modAdd+2)) + v60.reg[modVal&0x1F] * 4, modWriteValW);
break;
}
@@ -503,13 +503,13 @@ static UINT32 am3PCDisplacementIndirectIndexed16(void)
switch (modDim)
{
case 0:
- MemWrite8(MemRead32(PC + (INT16)OpRead16(modAdd+2)) + v60.reg[modVal&0x1F], modWriteValB);
+ MemWrite8(v60.program, MemRead32(v60.program,PC + (INT16)OpRead16(v60.program,modAdd+2)) + v60.reg[modVal&0x1F], modWriteValB);
break;
case 1:
- MemWrite16(MemRead32(PC + (INT16)OpRead16(modAdd+2)) + v60.reg[modVal&0x1F] * 2, modWriteValH);
+ MemWrite16(v60.program, MemRead32(v60.program,PC + (INT16)OpRead16(v60.program,modAdd+2)) + v60.reg[modVal&0x1F] * 2, modWriteValH);
break;
case 2:
- MemWrite32(MemRead32(PC + (INT16)OpRead16(modAdd+2)) + v60.reg[modVal&0x1F] * 4, modWriteValW);
+ MemWrite32(v60.program, MemRead32(v60.program,PC + (INT16)OpRead16(v60.program,modAdd+2)) + v60.reg[modVal&0x1F] * 4, modWriteValW);
break;
}
@@ -521,13 +521,13 @@ static UINT32 am3PCDisplacementIndirectIndexed32(void)
switch (modDim)
{
case 0:
- MemWrite8(MemRead32(PC + OpRead32(modAdd+2)) + v60.reg[modVal&0x1F], modWriteValB);
+ MemWrite8(v60.program, MemRead32(v60.program,PC + OpRead32(v60.program,modAdd+2)) + v60.reg[modVal&0x1F], modWriteValB);
break;
case 1:
- MemWrite16(MemRead32(PC + OpRead32(modAdd+2)) + v60.reg[modVal&0x1F] * 2, modWriteValH);
+ MemWrite16(v60.program, MemRead32(v60.program,PC + OpRead32(v60.program,modAdd+2)) + v60.reg[modVal&0x1F] * 2, modWriteValH);
break;
case 2:
- MemWrite32(MemRead32(PC + OpRead32(modAdd+2)) + v60.reg[modVal&0x1F] * 4, modWriteValW);
+ MemWrite32(v60.program, MemRead32(v60.program,PC + OpRead32(v60.program,modAdd+2)) + v60.reg[modVal&0x1F] * 4, modWriteValW);
break;
}
@@ -540,13 +540,13 @@ static UINT32 am3DoubleDisplacement8(void)
switch (modDim)
{
case 0:
- MemWrite8(MemRead32(v60.reg[modVal&0x1F] + (INT8)OpRead8(modAdd+1)) + (INT8)OpRead8(modAdd+2), modWriteValB);
+ MemWrite8(v60.program, MemRead32(v60.program,v60.reg[modVal&0x1F] + (INT8)OpRead8(v60.program,modAdd+1)) + (INT8)OpRead8(v60.program,modAdd+2), modWriteValB);
break;
case 1:
- MemWrite16(MemRead32(v60.reg[modVal&0x1F] + (INT8)OpRead8(modAdd+1)) + (INT8)OpRead8(modAdd+2), modWriteValH);
+ MemWrite16(v60.program, MemRead32(v60.program,v60.reg[modVal&0x1F] + (INT8)OpRead8(v60.program,modAdd+1)) + (INT8)OpRead8(v60.program,modAdd+2), modWriteValH);
break;
case 2:
- MemWrite32(MemRead32(v60.reg[modVal&0x1F] + (INT8)OpRead8(modAdd+1)) + (INT8)OpRead8(modAdd+2), modWriteValW);
+ MemWrite32(v60.program, MemRead32(v60.program,v60.reg[modVal&0x1F] + (INT8)OpRead8(v60.program,modAdd+1)) + (INT8)OpRead8(v60.program,modAdd+2), modWriteValW);
break;
}
@@ -558,13 +558,13 @@ static UINT32 am3DoubleDisplacement16(void)
switch (modDim)
{
case 0:
- MemWrite8(MemRead32(v60.reg[modVal&0x1F] + (INT16)OpRead16(modAdd+1)) + (INT16)OpRead16(modAdd+3), modWriteValB);
+ MemWrite8(v60.program, MemRead32(v60.program,v60.reg[modVal&0x1F] + (INT16)OpRead16(v60.program,modAdd+1)) + (INT16)OpRead16(v60.program,modAdd+3), modWriteValB);
break;
case 1:
- MemWrite16(MemRead32(v60.reg[modVal&0x1F] + (INT16)OpRead16(modAdd+1)) + (INT16)OpRead16(modAdd+3), modWriteValH);
+ MemWrite16(v60.program, MemRead32(v60.program,v60.reg[modVal&0x1F] + (INT16)OpRead16(v60.program,modAdd+1)) + (INT16)OpRead16(v60.program,modAdd+3), modWriteValH);
break;
case 2:
- MemWrite32(MemRead32(v60.reg[modVal&0x1F] + (INT16)OpRead16(modAdd+1)) + (INT16)OpRead16(modAdd+3), modWriteValW);
+ MemWrite32(v60.program, MemRead32(v60.program,v60.reg[modVal&0x1F] + (INT16)OpRead16(v60.program,modAdd+1)) + (INT16)OpRead16(v60.program,modAdd+3), modWriteValW);
break;
}
@@ -576,13 +576,13 @@ static UINT32 am3DoubleDisplacement32(void)
switch (modDim)
{
case 0:
- MemWrite8(MemRead32(v60.reg[modVal&0x1F] + OpRead32(modAdd+1)) + OpRead32(modAdd+5), modWriteValB);
+ MemWrite8(v60.program, MemRead32(v60.program,v60.reg[modVal&0x1F] + OpRead32(v60.program,modAdd+1)) + OpRead32(v60.program,modAdd+5), modWriteValB);
break;
case 1:
- MemWrite16(MemRead32(v60.reg[modVal&0x1F] + OpRead32(modAdd+1)) + OpRead32(modAdd+5), modWriteValH);
+ MemWrite16(v60.program, MemRead32(v60.program,v60.reg[modVal&0x1F] + OpRead32(v60.program,modAdd+1)) + OpRead32(v60.program,modAdd+5), modWriteValH);
break;
case 2:
- MemWrite32(MemRead32(v60.reg[modVal&0x1F] + OpRead32(modAdd+1)) + OpRead32(modAdd+5), modWriteValW);
+ MemWrite32(v60.program, MemRead32(v60.program,v60.reg[modVal&0x1F] + OpRead32(v60.program,modAdd+1)) + OpRead32(v60.program,modAdd+5), modWriteValW);
break;
}
@@ -595,13 +595,13 @@ static UINT32 am3PCDoubleDisplacement8(void)
switch (modDim)
{
case 0:
- MemWrite8(MemRead32(PC + (INT8)OpRead8(modAdd+1)) + (INT8)OpRead8(modAdd+2), modWriteValB);
+ MemWrite8(v60.program, MemRead32(v60.program,PC + (INT8)OpRead8(v60.program,modAdd+1)) + (INT8)OpRead8(v60.program,modAdd+2), modWriteValB);
break;
case 1:
- MemWrite16(MemRead32(PC + (INT8)OpRead8(modAdd+1)) + (INT8)OpRead8(modAdd+2), modWriteValH);
+ MemWrite16(v60.program, MemRead32(v60.program,PC + (INT8)OpRead8(v60.program,modAdd+1)) + (INT8)OpRead8(v60.program,modAdd+2), modWriteValH);
break;
case 2:
- MemWrite32(MemRead32(PC + (INT8)OpRead8(modAdd+1)) + (INT8)OpRead8(modAdd+2), modWriteValW);
+ MemWrite32(v60.program, MemRead32(v60.program,PC + (INT8)OpRead8(v60.program,modAdd+1)) + (INT8)OpRead8(v60.program,modAdd+2), modWriteValW);
break;
}
@@ -613,13 +613,13 @@ static UINT32 am3PCDoubleDisplacement16(void)
switch (modDim)
{
case 0:
- MemWrite8(MemRead32(PC + (INT16)OpRead16(modAdd+1)) + (INT16)OpRead16(modAdd+3), modWriteValB);
+ MemWrite8(v60.program, MemRead32(v60.program,PC + (INT16)OpRead16(v60.program,modAdd+1)) + (INT16)OpRead16(v60.program,modAdd+3), modWriteValB);
break;
case 1:
- MemWrite16(MemRead32(PC + (INT16)OpRead16(modAdd+1)) + (INT16)OpRead16(modAdd+3), modWriteValH);
+ MemWrite16(v60.program, MemRead32(v60.program,PC + (INT16)OpRead16(v60.program,modAdd+1)) + (INT16)OpRead16(v60.program,modAdd+3), modWriteValH);
break;
case 2:
- MemWrite32(MemRead32(PC + (INT16)OpRead16(modAdd+1)) + (INT16)OpRead16(modAdd+3), modWriteValW);
+ MemWrite32(v60.program, MemRead32(v60.program,PC + (INT16)OpRead16(v60.program,modAdd+1)) + (INT16)OpRead16(v60.program,modAdd+3), modWriteValW);
break;
}
@@ -631,13 +631,13 @@ static UINT32 am3PCDoubleDisplacement32(void)
switch (modDim)
{
case 0:
- MemWrite8(MemRead32(PC + OpRead32(modAdd+1)) + OpRead32(modAdd+5), modWriteValB);
+ MemWrite8(v60.program, MemRead32(v60.program,PC + OpRead32(v60.program,modAdd+1)) + OpRead32(v60.program,modAdd+5), modWriteValB);
break;
case 1:
- MemWrite16(MemRead32(PC + OpRead32(modAdd+1)) + OpRead32(modAdd+5), modWriteValH);
+ MemWrite16(v60.program, MemRead32(v60.program,PC + OpRead32(v60.program,modAdd+1)) + OpRead32(v60.program,modAdd+5), modWriteValH);
break;
case 2:
- MemWrite32(MemRead32(PC + OpRead32(modAdd+1)) + OpRead32(modAdd+5), modWriteValW);
+ MemWrite32(v60.program, MemRead32(v60.program,PC + OpRead32(v60.program,modAdd+1)) + OpRead32(v60.program,modAdd+5), modWriteValW);
break;
}
@@ -649,13 +649,13 @@ static UINT32 am3DirectAddress(void)
switch (modDim)
{
case 0:
- MemWrite8(OpRead32(modAdd+1), modWriteValB);
+ MemWrite8(v60.program, OpRead32(v60.program,modAdd+1), modWriteValB);
break;
case 1:
- MemWrite16(OpRead32(modAdd+1), modWriteValH);
+ MemWrite16(v60.program, OpRead32(v60.program,modAdd+1), modWriteValH);
break;
case 2:
- MemWrite32(OpRead32(modAdd+1), modWriteValW);
+ MemWrite32(v60.program, OpRead32(v60.program,modAdd+1), modWriteValW);
break;
}
@@ -667,13 +667,13 @@ static UINT32 am3DirectAddressIndexed(void)
switch (modDim)
{
case 0:
- MemWrite8(OpRead32(modAdd+2) + v60.reg[modVal&0x1F], modWriteValB);
+ MemWrite8(v60.program, OpRead32(v60.program,modAdd+2) + v60.reg[modVal&0x1F], modWriteValB);
break;
case 1:
- MemWrite16(OpRead32(modAdd+2) + v60.reg[modVal&0x1F] * 2, modWriteValH);
+ MemWrite16(v60.program, OpRead32(v60.program,modAdd+2) + v60.reg[modVal&0x1F] * 2, modWriteValH);
break;
case 2:
- MemWrite32(OpRead32(modAdd+2) + v60.reg[modVal&0x1F] * 4, modWriteValW);
+ MemWrite32(v60.program, OpRead32(v60.program,modAdd+2) + v60.reg[modVal&0x1F] * 4, modWriteValW);
break;
}
@@ -685,13 +685,13 @@ static UINT32 am3DirectAddressDeferred(void)
switch (modDim)
{
case 0:
- MemWrite8(MemRead32(OpRead32(modAdd+1)), modWriteValB);
+ MemWrite8(v60.program, MemRead32(v60.program,OpRead32(v60.program,modAdd+1)), modWriteValB);
break;
case 1:
- MemWrite16(MemRead32(OpRead32(modAdd+1)), modWriteValH);
+ MemWrite16(v60.program, MemRead32(v60.program,OpRead32(v60.program,modAdd+1)), modWriteValH);
break;
case 2:
- MemWrite32(MemRead32(OpRead32(modAdd+1)), modWriteValW);
+ MemWrite32(v60.program, MemRead32(v60.program,OpRead32(v60.program,modAdd+1)), modWriteValW);
break;
}
@@ -703,13 +703,13 @@ static UINT32 am3DirectAddressDeferredIndexed(void)
switch (modDim)
{
case 0:
- MemWrite8(MemRead32(OpRead32(modAdd+2)) + v60.reg[modVal&0x1F], modWriteValB);
+ MemWrite8(v60.program, MemRead32(v60.program,OpRead32(v60.program,modAdd+2)) + v60.reg[modVal&0x1F], modWriteValB);
break;
case 1:
- MemWrite16(MemRead32(OpRead32(modAdd+2)) + v60.reg[modVal&0x1F], modWriteValH);
+ MemWrite16(v60.program, MemRead32(v60.program,OpRead32(v60.program,modAdd+2)) + v60.reg[modVal&0x1F], modWriteValH);
break;
case 2:
- MemWrite32(MemRead32(OpRead32(modAdd+2)) + v60.reg[modVal&0x1F], modWriteValW);
+ MemWrite32(v60.program, MemRead32(v60.program,OpRead32(v60.program,modAdd+2)) + v60.reg[modVal&0x1F], modWriteValW);
break;
}
@@ -846,7 +846,7 @@ static UINT32 (*const AMTable3_G6[8])(void) =
static UINT32 am3Group6(void)
{
- modVal2=OpRead8(modAdd+1);
+ modVal2=OpRead8(v60.program,modAdd+1);
return AMTable3_G6[modVal2>>5]();
}
diff --git a/src/emu/cpu/v60/op12.c b/src/emu/cpu/v60/op12.c
index 93359ef722b..bb172a0b5b8 100644
--- a/src/emu/cpu/v60/op12.c
+++ b/src/emu/cpu/v60/op12.c
@@ -23,37 +23,37 @@ static UINT8 f12Flag1, f12Flag2;
if (f12Flag##num) \
appb = (UINT8)v60.reg[f12Op##num]; \
else \
- appb = MemRead8(f12Op##num);
+ appb = MemRead8(v60.program, f12Op##num);
#define F12LOADOPHALF(num) \
if (f12Flag##num) \
apph = (UINT16)v60.reg[f12Op##num]; \
else \
- apph = MemRead16(f12Op##num);
+ apph = MemRead16(v60.program, f12Op##num);
#define F12LOADOPWORD(num) \
if (f12Flag##num) \
appw = v60.reg[f12Op##num]; \
else \
- appw = MemRead32(f12Op##num);
+ appw = MemRead32(v60.program,f12Op##num);
#define F12STOREOPBYTE(num) \
if (f12Flag##num) \
SETREG8(v60.reg[f12Op##num], appb); \
else \
- MemWrite8(f12Op##num,appb);
+ MemWrite8(v60.program, f12Op##num,appb);
#define F12STOREOPHALF(num) \
if (f12Flag##num) \
SETREG16(v60.reg[f12Op##num], apph); \
else \
- MemWrite16(f12Op##num,apph);
+ MemWrite16(v60.program, f12Op##num,apph);
#define F12STOREOPWORD(num) \
if (f12Flag##num) \
v60.reg[f12Op##num] = appw; \
else \
- MemWrite32(f12Op##num,appw);
+ MemWrite32(v60.program, f12Op##num,appw);
#define F12LOADOP1BYTE() F12LOADOPBYTE(1)
#define F12LOADOP1HALF() F12LOADOPHALF(1)
@@ -82,7 +82,7 @@ static UINT8 if12;
// writing to the second operand.
static void F12DecodeFirstOperand(UINT32 (*DecodeOp1)(void), UINT8 dim1)
{
- if12 = OpRead8(PC + 1);
+ if12 = OpRead8(v60.program,PC + 1);
// Check if F1 or F2
if (if12 & 0x80)
@@ -183,7 +183,7 @@ static void F12WriteSecondOperand(UINT8 dim2)
// Decode both format 1/2 operands
static void F12DecodeOperands(UINT32 (*DecodeOp1)(void), UINT8 dim1, UINT32 (*DecodeOp2)(void), UINT8 dim2)
{
- UINT8 _if12 = OpRead8(PC + 1);
+ UINT8 _if12 = OpRead8(v60.program,PC + 1);
// Check if F1 or F2
if (_if12 & 0x80)
@@ -408,13 +408,12 @@ static UINT32 opCALL(void) /* TRUSTED */
F12DecodeOperands(ReadAMAddress,0,ReadAMAddress,2);
SP -= 4;
- MemWrite32(SP, AP);
+ MemWrite32(v60.program, SP, AP);
AP = f12Op2;
SP -= 4;
- MemWrite32(SP, PC + amLength1 + amLength2 + 2);
+ MemWrite32(v60.program, SP, PC + amLength1 + amLength2 + 2);
PC = f12Op1;
- ChangePC(PC);
return 0;
}
@@ -469,19 +468,18 @@ static UINT32 opCHLVL(void)
oldPSW = v60_update_psw_for_exception(0, f12Op1);
SP -= 4;
- MemWrite32(SP,f12Op2);
+ MemWrite32(v60.program, SP,f12Op2);
SP -= 4;
- MemWrite32(SP,EXCEPTION_CODE_AND_SIZE(0x1800 + f12Op1*0x100, 8));
+ MemWrite32(v60.program, SP,EXCEPTION_CODE_AND_SIZE(0x1800 + f12Op1*0x100, 8));
SP -= 4;
- MemWrite32(SP,oldPSW);
+ MemWrite32(v60.program, SP,oldPSW);
SP -= 4;
- MemWrite32(SP,PC + amLength1 + amLength2 + 2);
+ MemWrite32(v60.program, SP,PC + amLength1 + amLength2 + 2);
PC = GETINTVECT(24+f12Op1);
- ChangePC(PC);
return 0;
}
@@ -599,8 +597,8 @@ static UINT32 opDIVX(void)
}
else
{
- a=MemRead32(f12Op2);
- b=MemRead32(f12Op2+4);
+ a=MemRead32(v60.program,f12Op2);
+ b=MemRead32(v60.program,f12Op2+4);
}
dv = ((UINT64)b<<32) | ((UINT64)a);
@@ -618,8 +616,8 @@ static UINT32 opDIVX(void)
}
else
{
- MemWrite32(f12Op2,a);
- MemWrite32(f12Op2+4,b);
+ MemWrite32(v60.program, f12Op2,a);
+ MemWrite32(v60.program, f12Op2+4,b);
}
F12END();
@@ -639,8 +637,8 @@ static UINT32 opDIVUX(void)
}
else
{
- a=MemRead32(f12Op2);
- b=MemRead32(f12Op2+4);
+ a=MemRead32(v60.program,f12Op2);
+ b=MemRead32(v60.program,f12Op2+4);
}
dv = (UINT64)(((UINT64)b<<32) | (UINT64)a);
@@ -657,8 +655,8 @@ static UINT32 opDIVUX(void)
}
else
{
- MemWrite32(f12Op2,a);
- MemWrite32(f12Op2+4,b);
+ MemWrite32(v60.program, f12Op2,a);
+ MemWrite32(v60.program, f12Op2+4,b);
}
F12END();
@@ -716,7 +714,7 @@ static UINT32 opDIVUW(void) /* TRUSTED */
static UINT32 opINB(void)
{
F12DecodeFirstOperand(ReadAMAddress,0);
- modWriteValB=PortRead8(f12Op1);
+ modWriteValB=MemRead8(v60.io,f12Op1);
if ( v60_stall_io )
{
@@ -731,7 +729,7 @@ static UINT32 opINB(void)
static UINT32 opINH(void)
{
F12DecodeFirstOperand(ReadAMAddress,1);
- modWriteValH=PortRead16(f12Op1);
+ modWriteValH=MemRead16(v60.io,f12Op1);
if ( v60_stall_io )
{
@@ -746,7 +744,7 @@ static UINT32 opINH(void)
static UINT32 opINW(void)
{
F12DecodeFirstOperand(ReadAMAddress,2);
- modWriteValW=PortRead32(f12Op1);
+ modWriteValW=MemRead32(v60.io,f12Op1);
if ( v60_stall_io )
{
@@ -763,7 +761,7 @@ static UINT32 opLDPR(void)
F12DecodeOperands(ReadAMAddress,2,ReadAM,2);
if (f12Op2 >= 0 && f12Op2 <= 28)
{
- if (f12Flag1 &&(!(OpRead8(PC + 1)&0x80 && OpRead8(PC + 2)==0xf4 ) ))
+ if (f12Flag1 &&(!(OpRead8(v60.program,PC + 1)&0x80 && OpRead8(v60.program,PC + 2)==0xf4 ) ))
v60.reg[f12Op2 + 36] = v60.reg[f12Op1];
else
v60.reg[f12Op2 + 36] = f12Op1;
@@ -784,22 +782,22 @@ static UINT32 opLDTASK(void)
TR = f12Op2;
- TKCW = MemRead32(f12Op2);
+ TKCW = MemRead32(v60.program,f12Op2);
f12Op2 += 4;
if(SYCW & 0x100) {
- L0SP = MemRead32(f12Op2);
+ L0SP = MemRead32(v60.program,f12Op2);
f12Op2 += 4;
}
if(SYCW & 0x200) {
- L1SP = MemRead32(f12Op2);
+ L1SP = MemRead32(v60.program,f12Op2);
f12Op2 += 4;
}
if(SYCW & 0x400) {
- L2SP = MemRead32(f12Op2);
+ L2SP = MemRead32(v60.program,f12Op2);
f12Op2 += 4;
}
if(SYCW & 0x800) {
- L3SP = MemRead32(f12Op2);
+ L3SP = MemRead32(v60.program,f12Op2);
f12Op2 += 4;
}
@@ -808,7 +806,7 @@ static UINT32 opLDTASK(void)
// 31 registers supported, _not_ 32
for(i=0; i<31; i++)
if(f12Op1 & (1<<i)) {
- v60.reg[i] = MemRead32(f12Op2);
+ v60.reg[i] = MemRead32(v60.program,f12Op2);
f12Op2 += 4;
}
@@ -830,8 +828,8 @@ static UINT32 opMOVD(void) /* TRUSTED */
}
else
{
- a=MemRead32(f12Op1);
- b=MemRead32(f12Op1+4);
+ a=MemRead32(v60.program,f12Op1);
+ b=MemRead32(v60.program,f12Op1+4);
}
if (f12Flag2)
@@ -841,8 +839,8 @@ static UINT32 opMOVD(void) /* TRUSTED */
}
else
{
- MemWrite32(f12Op2,a);
- MemWrite32(f12Op2+4,b);
+ MemWrite32(v60.program, f12Op2,a);
+ MemWrite32(v60.program, f12Op2+4,b);
}
F12END();
@@ -1243,21 +1241,21 @@ static UINT32 opORW(void) /* TRUSTED (C too!) */
static UINT32 opOUTB(void)
{
F12DecodeOperands(ReadAM,0,ReadAMAddress,2);
- PortWrite8(f12Op2,(UINT8)f12Op1);
+ MemWrite8(v60.io,f12Op2,(UINT8)f12Op1);
F12END();
}
static UINT32 opOUTH(void)
{
F12DecodeOperands(ReadAM,1,ReadAMAddress,2);
- PortWrite16(f12Op2,(UINT16)f12Op1);
+ MemWrite16(v60.io,f12Op2,(UINT16)f12Op1);
F12END();
}
static UINT32 opOUTW(void)
{
F12DecodeOperands(ReadAM,2,ReadAMAddress,2);
- PortWrite32(f12Op2,f12Op1);
+ MemWrite32(v60.io,f12Op2,f12Op1);
F12END();
}
@@ -2336,7 +2334,7 @@ static UINT32 opMULX(void)
}
else
{
- a=MemRead32(f12Op2);
+ a=MemRead32(v60.program,f12Op2);
}
res = (INT64)a * (INT64)(INT32)f12Op1;
@@ -2354,8 +2352,8 @@ static UINT32 opMULX(void)
}
else
{
- MemWrite32(f12Op2,a);
- MemWrite32(f12Op2+4,b);
+ MemWrite32(v60.program, f12Op2,a);
+ MemWrite32(v60.program, f12Op2+4,b);
}
F12END();
@@ -2374,7 +2372,7 @@ static UINT32 opMULUX(void)
}
else
{
- a=MemRead32(f12Op2);
+ a=MemRead32(v60.program,f12Op2);
}
res = (UINT64)a * (UINT64)f12Op1;
@@ -2391,8 +2389,8 @@ static UINT32 opMULUX(void)
}
else
{
- MemWrite32(f12Op2,a);
- MemWrite32(f12Op2+4,b);
+ MemWrite32(v60.program, f12Op2,a);
+ MemWrite32(v60.program, f12Op2+4,b);
}
F12END();
diff --git a/src/emu/cpu/v60/op2.c b/src/emu/cpu/v60/op2.c
index d1a6bc6c3d7..2ede31b98c9 100644
--- a/src/emu/cpu/v60/op2.c
+++ b/src/emu/cpu/v60/op2.c
@@ -13,13 +13,13 @@
if (f2Flag##num) \
appf = u2f(v60.reg[f2Op##num]); \
else \
- appf = u2f(MemRead32(f2Op##num));
+ appf = u2f(MemRead32(v60.program, f2Op##num));
#define F2STOREOPFLOAT(num) \
if (f2Flag##num) \
v60.reg[f2Op##num] = f2u(appf); \
else \
- MemWrite32(f2Op##num, f2u(appf));
+ MemWrite32(v60.program, f2Op##num, f2u(appf));
static void F2DecodeFirstOperand(UINT32 (*DecodeOp1)(void), UINT8 dim1)
{
@@ -347,13 +347,13 @@ static UINT32 (*const Op5CTable[32])(void) =
static UINT32 op5F(void)
{
- if2 = OpRead8(PC + 1);
+ if2 = OpRead8(v60.program,PC + 1);
return Op5FTable[if2&0x1F]();
}
static UINT32 op5C(void)
{
- if2 = OpRead8(PC + 1);
+ if2 = OpRead8(v60.program,PC + 1);
return Op5CTable[if2&0x1F]();
}
diff --git a/src/emu/cpu/v60/op3.c b/src/emu/cpu/v60/op3.c
index 79c12fa0dac..4819a576c0e 100644
--- a/src/emu/cpu/v60/op3.c
+++ b/src/emu/cpu/v60/op3.c
@@ -9,14 +9,14 @@ static UINT32 opINCB(void) /* TRUSTED */
if (amFlag)
appb=(UINT8)v60.reg[amOut];
else
- appb=MemRead8(amOut);
+ appb=MemRead8(v60.program, amOut);
ADDB(appb, 1);
if (amFlag)
SETREG8(v60.reg[amOut], appb);
else
- MemWrite8(amOut, appb);
+ MemWrite8(v60.program, amOut, appb);
return amLength1+1;
}
@@ -32,14 +32,14 @@ static UINT32 opINCH(void) /* TRUSTED */
if (amFlag)
apph=(UINT16)v60.reg[amOut];
else
- apph=MemRead16(amOut);
+ apph=MemRead16(v60.program, amOut);
ADDW(apph, 1);
if (amFlag)
SETREG16(v60.reg[amOut], apph);
else
- MemWrite16(amOut, apph);
+ MemWrite16(v60.program, amOut, apph);
return amLength1+1;
}
@@ -55,14 +55,14 @@ static UINT32 opINCW(void) /* TRUSTED */
if (amFlag)
appw=v60.reg[amOut];
else
- appw=MemRead32(amOut);
+ appw=MemRead32(v60.program,amOut);
ADDL(appw, 1);
if (amFlag)
v60.reg[amOut]=appw;
else
- MemWrite32(amOut,appw);
+ MemWrite32(v60.program, amOut,appw);
return amLength1+1;
}
@@ -78,14 +78,14 @@ static UINT32 opDECB(void) /* TRUSTED */
if (amFlag)
appb=(UINT8)v60.reg[amOut];
else
- appb=MemRead8(amOut);
+ appb=MemRead8(v60.program, amOut);
SUBB(appb, 1);
if (amFlag)
SETREG8(v60.reg[amOut], appb);
else
- MemWrite8(amOut, appb);
+ MemWrite8(v60.program, amOut, appb);
return amLength1+1;
}
@@ -101,14 +101,14 @@ static UINT32 opDECH(void) /* TRUSTED */
if (amFlag)
apph=(UINT16)v60.reg[amOut];
else
- apph=MemRead16(amOut);
+ apph=MemRead16(v60.program, amOut);
SUBW(apph, 1);
if (amFlag)
SETREG16(v60.reg[amOut], apph);
else
- MemWrite16(amOut, apph);
+ MemWrite16(v60.program, amOut, apph);
return amLength1+1;
}
@@ -124,14 +124,14 @@ static UINT32 opDECW(void) /* TRUSTED */
if (amFlag)
appw=v60.reg[amOut];
else
- appw=MemRead32(amOut);
+ appw=MemRead32(v60.program,amOut);
SUBL(appw, 1);
if (amFlag)
v60.reg[amOut]=appw;
else
- MemWrite32(amOut,appw);
+ MemWrite32(v60.program, amOut,appw);
return amLength1+1;
}
@@ -149,7 +149,6 @@ static UINT32 opJMP(void) /* TRUSTED */
// Jump there
PC=amOut;
- ChangePC(PC);
return 0;
}
@@ -167,11 +166,10 @@ static UINT32 opJSR(void) /* TRUSTED */
// Save NextPC into the stack
SP -= 4;
- MemWrite32(SP, PC + amLength1 + 1);
+ MemWrite32(v60.program, SP, PC + amLength1 + 1);
// Jump there
PC=amOut;
- ChangePC(PC);
return 0;
}
@@ -186,7 +184,7 @@ static UINT32 opPREPARE(void) /* somewhat TRUSTED */
// step 1: save frame pointer on the stack
SP -= 4;
- MemWrite32(SP, FP);
+ MemWrite32(v60.program, SP, FP);
// step 2: FP = new SP
FP = SP;
@@ -206,12 +204,11 @@ static UINT32 opRET(void) /* TRUSTED */
ReadAM();
// Read return address from stack
- PC=MemRead32(SP);
+ PC=MemRead32(v60.program,SP);
SP+=4;
- ChangePC(PC);
// Restore AP from stack
- AP=MemRead32(SP);
+ AP=MemRead32(v60.program,SP);
SP+=4;
// Skip stack frame
@@ -287,16 +284,15 @@ static UINT32 opTRAP(void)
// Issue the software trap with interrupts
SP -= 4;
- MemWrite32(SP, EXCEPTION_CODE_AND_SIZE(0x3000 + 0x100 * (amOut&0xF), 4));
+ MemWrite32(v60.program, SP, EXCEPTION_CODE_AND_SIZE(0x3000 + 0x100 * (amOut&0xF), 4));
SP -= 4;
- MemWrite32(SP, oldPSW);
+ MemWrite32(v60.program, SP, oldPSW);
SP -= 4;
- MemWrite32(SP, PC + amLength1 + 1);
+ MemWrite32(v60.program, SP, PC + amLength1 + 1);
PC = GETINTVECT(48 + (amOut&0xF));
- ChangePC(PC);
return 0;
}
@@ -311,11 +307,10 @@ static UINT32 opRETIU(void) /* TRUSTED */
ReadAM();
// Restore PC and PSW from stack
- PC = MemRead32(SP);
+ PC = MemRead32(v60.program,SP);
SP += 4;
- ChangePC(PC);
- newPSW = MemRead32(SP);
+ newPSW = MemRead32(v60.program,SP);
SP += 4;
// Destroy stack frame
@@ -337,11 +332,10 @@ static UINT32 opRETIS(void)
ReadAM();
// Restore PC and PSW from stack
- PC = MemRead32(SP);
+ PC = MemRead32(v60.program,SP);
SP += 4;
- ChangePC(PC);
- newPSW = MemRead32(SP);
+ newPSW = MemRead32(v60.program,SP);
SP += 4;
// Destroy stack frame
@@ -367,29 +361,29 @@ static UINT32 opSTTASK(void)
v60WritePSW(v60ReadPSW() | 0x10000000);
v60SaveStack();
- MemWrite32(adr, TKCW);
+ MemWrite32(v60.program, adr, TKCW);
adr += 4;
if(SYCW & 0x100) {
- MemWrite32(adr, L0SP);
+ MemWrite32(v60.program, adr, L0SP);
adr += 4;
}
if(SYCW & 0x200) {
- MemWrite32(adr, L1SP);
+ MemWrite32(v60.program, adr, L1SP);
adr += 4;
}
if(SYCW & 0x400) {
- MemWrite32(adr, L2SP);
+ MemWrite32(v60.program, adr, L2SP);
adr += 4;
}
if(SYCW & 0x800) {
- MemWrite32(adr, L3SP);
+ MemWrite32(v60.program, adr, L3SP);
adr += 4;
}
// 31 registers supported, _not_ 32
for(i=0; i<31; i++)
if(amOut & (1<<i)) {
- MemWrite32(adr, v60.reg[i]);
+ MemWrite32(v60.program, adr, v60.reg[i]);
adr += 4;
}
@@ -423,7 +417,7 @@ static UINT32 opTASI(void)
if (amFlag)
appb=(UINT8)v60.reg[amOut&0x1F];
else
- appb=MemRead8(amOut);
+ appb=MemRead8(v60.program, amOut);
// Set the flags for SUB appb,FF
SUBB(appb, 0xff);
@@ -432,7 +426,7 @@ static UINT32 opTASI(void)
if (amFlag)
SETREG8(v60.reg[amOut&0x1F], 0xFF);
else
- MemWrite8(amOut,0xFF);
+ MemWrite8(v60.program, amOut,0xFF);
return amLength1 + 1;
}
@@ -463,13 +457,13 @@ static UINT32 opPOPM(void)
for (i=0;i<31;i++)
if (amOut & (1<<i))
{
- v60.reg[i] = MemRead32(SP);
+ v60.reg[i] = MemRead32(v60.program,SP);
SP += 4;
}
if (amOut & (1<<31))
{
- v60WritePSW((v60ReadPSW() & 0xffff0000) | MemRead16(SP));
+ v60WritePSW((v60ReadPSW() & 0xffff0000) | MemRead16(v60.program, SP));
SP += 4;
}
@@ -489,14 +483,14 @@ static UINT32 opPUSHM(void)
if (amOut & (1<<31))
{
SP -= 4;
- MemWrite32(SP,v60ReadPSW());
+ MemWrite32(v60.program, SP,v60ReadPSW());
}
for (i=0;i<31;i++)
if (amOut & (1<<(30-i)))
{
SP -= 4;
- MemWrite32(SP,v60.reg[(30-i)]);
+ MemWrite32(v60.program, SP,v60.reg[(30-i)]);
}
@@ -559,7 +553,7 @@ static UINT32 opPUSH(void)
amLength1=ReadAM();
SP-=4;
- MemWrite32(SP,amOut);
+ MemWrite32(v60.program, SP,amOut);
return amLength1 + 1;
}
@@ -568,7 +562,7 @@ static UINT32 opPOP(void)
{
modAdd=PC+1;
modDim=2;
- modWriteValW=MemRead32(SP);
+ modWriteValW=MemRead32(v60.program,SP);
SP+=4;
amLength1=WriteAM();
diff --git a/src/emu/cpu/v60/op4.c b/src/emu/cpu/v60/op4.c
index 0d51493d015..79c22eebf07 100644
--- a/src/emu/cpu/v60/op4.c
+++ b/src/emu/cpu/v60/op4.c
@@ -9,7 +9,7 @@ static UINT32 opBGT8(void) /* TRUSTED */
if (!((_S ^ _OV) | _Z))
{
- PC += (INT8)OpRead8(PC + 1);
+ PC += (INT8)OpRead8(v60.program,PC + 1);
return 0;
}
@@ -22,7 +22,7 @@ static UINT32 opBGT16(void) /* TRUSTED */
if (!((_S ^ _OV) | _Z))
{
- PC += (INT16)OpRead16(PC + 1);
+ PC += (INT16)OpRead16(v60.program,PC + 1);
return 0;
}
@@ -36,7 +36,7 @@ static UINT32 opBGE8(void) /* TRUSTED */
if (!(_S ^ _OV))
{
- PC += (INT8)OpRead8(PC + 1);
+ PC += (INT8)OpRead8(v60.program,PC + 1);
return 0;
}
@@ -49,7 +49,7 @@ static UINT32 opBGE16(void) /* TRUSTED */
if (!(_S ^ _OV))
{
- PC += (INT16)OpRead16(PC + 1);
+ PC += (INT16)OpRead16(v60.program,PC + 1);
return 0;
}
@@ -62,7 +62,7 @@ static UINT32 opBLT8(void) /* TRUSTED */
if ((_S ^ _OV))
{
- PC += (INT8)OpRead8(PC + 1);
+ PC += (INT8)OpRead8(v60.program,PC + 1);
return 0;
}
@@ -75,7 +75,7 @@ static UINT32 opBLT16(void) /* TRUSTED */
if ((_S ^ _OV))
{
- PC += (INT16)OpRead16(PC + 1);
+ PC += (INT16)OpRead16(v60.program,PC + 1);
return 0;
}
@@ -89,7 +89,7 @@ static UINT32 opBLE8(void) /* TRUSTED */
if (((_S ^ _OV) | _Z))
{
- PC += (INT8)OpRead8(PC + 1);
+ PC += (INT8)OpRead8(v60.program,PC + 1);
return 0;
}
@@ -102,7 +102,7 @@ static UINT32 opBLE16(void) /* TRUSTED */
if (((_S ^ _OV) | _Z))
{
- PC += (INT16)OpRead16(PC + 1);
+ PC += (INT16)OpRead16(v60.program,PC + 1);
return 0;
}
@@ -113,7 +113,7 @@ static UINT32 opBH8(void) /* TRUSTED */
{
if (!(_CY | _Z))
{
- PC += (INT8)OpRead8(PC + 1);
+ PC += (INT8)OpRead8(v60.program,PC + 1);
return 0;
}
@@ -124,7 +124,7 @@ static UINT32 opBH16(void) /* TRUSTED */
{
if (!(_CY | _Z))
{
- PC += (INT16)OpRead16(PC + 1);
+ PC += (INT16)OpRead16(v60.program,PC + 1);
return 0;
}
@@ -135,7 +135,7 @@ static UINT32 opBNH8(void) /* TRUSTED */
{
if ((_CY | _Z))
{
- PC += (INT8)OpRead8(PC + 1);
+ PC += (INT8)OpRead8(v60.program,PC + 1);
return 0;
}
@@ -146,7 +146,7 @@ static UINT32 opBNH16(void) /* TRUSTED */
{
if ((_CY | _Z))
{
- PC += (INT16)OpRead16(PC + 1);
+ PC += (INT16)OpRead16(v60.program,PC + 1);
return 0;
}
@@ -157,7 +157,7 @@ static UINT32 opBNL8(void) /* TRUSTED */
{
if (!(_CY))
{
- PC += (INT8)OpRead8(PC + 1);
+ PC += (INT8)OpRead8(v60.program,PC + 1);
return 0;
}
@@ -168,7 +168,7 @@ static UINT32 opBNL16(void) /* TRUSTED */
{
if (!(_CY))
{
- PC += (INT16)OpRead16(PC + 1);
+ PC += (INT16)OpRead16(v60.program,PC + 1);
return 0;
}
@@ -179,7 +179,7 @@ static UINT32 opBL8(void) /* TRUSTED */
{
if ((_CY))
{
- PC += (INT8)OpRead8(PC + 1);
+ PC += (INT8)OpRead8(v60.program,PC + 1);
return 0;
}
@@ -190,7 +190,7 @@ static UINT32 opBL16(void) /* TRUSTED */
{
if ((_CY))
{
- PC += (INT16)OpRead16(PC + 1);
+ PC += (INT16)OpRead16(v60.program,PC + 1);
return 0;
}
@@ -201,7 +201,7 @@ static UINT32 opBNE8(void) /* TRUSTED */
{
if (!(_Z))
{
- PC += (INT8)OpRead8(PC + 1);
+ PC += (INT8)OpRead8(v60.program,PC + 1);
return 0;
}
@@ -212,7 +212,7 @@ static UINT32 opBNE16(void) /* TRUSTED */
{
if (!(_Z))
{
- PC += (INT16)OpRead16(PC + 1);
+ PC += (INT16)OpRead16(v60.program,PC + 1);
return 0;
}
@@ -223,7 +223,7 @@ static UINT32 opBE8(void) /* TRUSTED */
{
if ((_Z))
{
- PC += (INT8)OpRead8(PC + 1);
+ PC += (INT8)OpRead8(v60.program,PC + 1);
return 0;
}
@@ -234,7 +234,7 @@ static UINT32 opBE16(void) /* TRUSTED */
{
if ((_Z))
{
- PC += (INT16)OpRead16(PC + 1);
+ PC += (INT16)OpRead16(v60.program,PC + 1);
return 0;
}
@@ -245,7 +245,7 @@ static UINT32 opBNV8(void) /* TRUSTED */
{
if (!(_OV))
{
- PC += (INT8)OpRead8(PC + 1);
+ PC += (INT8)OpRead8(v60.program,PC + 1);
return 0;
}
@@ -256,7 +256,7 @@ static UINT32 opBNV16(void) /* TRUSTED */
{
if (!(_OV))
{
- PC += (INT16)OpRead16(PC + 1);
+ PC += (INT16)OpRead16(v60.program,PC + 1);
return 0;
}
@@ -267,7 +267,7 @@ static UINT32 opBV8(void) /* TRUSTED */
{
if ((_OV))
{
- PC += (INT8)OpRead8(PC + 1);
+ PC += (INT8)OpRead8(v60.program,PC + 1);
return 0;
}
@@ -278,7 +278,7 @@ static UINT32 opBV16(void) /* TRUSTED */
{
if ((_OV))
{
- PC += (INT16)OpRead16(PC + 1);
+ PC += (INT16)OpRead16(v60.program,PC + 1);
return 0;
}
@@ -289,7 +289,7 @@ static UINT32 opBP8(void) /* TRUSTED */
{
if (!(_S))
{
- PC += (INT8)OpRead8(PC + 1);
+ PC += (INT8)OpRead8(v60.program,PC + 1);
return 0;
}
@@ -300,7 +300,7 @@ static UINT32 opBP16(void) /* TRUSTED */
{
if (!(_S))
{
- PC += (INT16)OpRead16(PC + 1);
+ PC += (INT16)OpRead16(v60.program,PC + 1);
return 0;
}
@@ -311,7 +311,7 @@ static UINT32 opBN8(void) /* TRUSTED */
{
if ((_S))
{
- PC += (INT8)OpRead8(PC + 1);
+ PC += (INT8)OpRead8(v60.program,PC + 1);
return 0;
}
@@ -322,7 +322,7 @@ static UINT32 opBN16(void) /* TRUSTED */
{
if ((_S))
{
- PC += (INT16)OpRead16(PC + 1);
+ PC += (INT16)OpRead16(v60.program,PC + 1);
return 0;
}
@@ -331,13 +331,13 @@ static UINT32 opBN16(void) /* TRUSTED */
static UINT32 opBR8(void) /* TRUSTED */
{
- PC += (INT8)OpRead8(PC + 1);
+ PC += (INT8)OpRead8(v60.program,PC + 1);
return 0;
}
static UINT32 opBR16(void) /* TRUSTED */
{
- PC += (INT16)OpRead16(PC + 1);
+ PC += (INT16)OpRead16(v60.program,PC + 1);
return 0;
}
@@ -345,10 +345,10 @@ static UINT32 opBSR(void) /* TRUSTED */
{
// Save Next PC onto the stack
SP -= 4;
- MemWrite32(SP, PC+3);
+ MemWrite32(v60.program, SP, PC+3);
// Jump to subroutine
- PC += (INT16)OpRead16(PC + 1);
+ PC += (INT16)OpRead16(v60.program,PC + 1);
return 0;
}
diff --git a/src/emu/cpu/v60/op5.c b/src/emu/cpu/v60/op5.c
index eacbf4783f5..4382518dc4c 100644
--- a/src/emu/cpu/v60/op5.c
+++ b/src/emu/cpu/v60/op5.c
@@ -9,13 +9,12 @@ static UINT32 opBRK(void)
UINT32 oldPSW = v60_update_psw_for_exception(0, 0);
SP -=4;
- MemWrite32(SP, EXCEPTION_CODE_AND_SIZE(0x0d00, 4));
+ MemWrite32(v60.program, SP, EXCEPTION_CODE_AND_SIZE(0x0d00, 4));
SP -=4;
- MemWrite32(SP, oldPSW);
+ MemWrite32(v60.program, SP, oldPSW);
SP -=4;
- MemWrite32(SP, PC + 1);
+ MemWrite32(v60.program, SP, PC + 1);
PC = GETINTVECT(13);
- ChangePC(PC);
*/
logerror("Skipping BRK opcode! PC=%x", PC);
@@ -27,15 +26,14 @@ static UINT32 opBRKV(void)
UINT32 oldPSW = v60_update_psw_for_exception(0, 0);
SP -=4;
- MemWrite32(SP, PC);
+ MemWrite32(v60.program, SP, PC);
SP -=4;
- MemWrite32(SP, EXCEPTION_CODE_AND_SIZE(0x1501, 4));
+ MemWrite32(v60.program, SP, EXCEPTION_CODE_AND_SIZE(0x1501, 4));
SP -=4;
- MemWrite32(SP, oldPSW);
+ MemWrite32(v60.program, SP, oldPSW);
SP -=4;
- MemWrite32(SP, PC + 1);
+ MemWrite32(v60.program, SP, PC + 1);
PC = GETINTVECT(21);
- ChangePC(PC);
return 0;
}
@@ -50,7 +48,7 @@ static UINT32 opCLRTLBA(void)
static UINT32 opDISPOSE(void)
{
SP = FP;
- FP = MemRead32(SP);
+ FP = MemRead32(v60.program,SP);
SP +=4;
return 1;
@@ -70,9 +68,8 @@ static UINT32 opNOP(void) /* TRUSTED */
static UINT32 opRSR(void)
{
- PC = MemRead32(SP);
+ PC = MemRead32(v60.program,SP);
SP +=4;
- ChangePC(PC);
return 0;
}
diff --git a/src/emu/cpu/v60/op6.c b/src/emu/cpu/v60/op6.c
index 0e39356d9b7..a5ec5c6ae0d 100644
--- a/src/emu/cpu/v60/op6.c
+++ b/src/emu/cpu/v60/op6.c
@@ -7,7 +7,7 @@ static UINT32 opTB(int reg) /* TRUSTED */
{
if (v60.reg[reg] == 0)
{
- PC += (INT16)OpRead16(PC + 2);
+ PC += (INT16)OpRead16(v60.program,PC + 2);
return 0;
}
@@ -21,7 +21,7 @@ static UINT32 opDBGT(int reg) /* TRUSTED */
NORMALIZEFLAGS();
if ((v60.reg[reg] != 0) && !((_S ^ _OV) | _Z))
{
- PC += (INT16)OpRead16(PC + 2);
+ PC += (INT16)OpRead16(v60.program,PC + 2);
return 0;
}
@@ -35,7 +35,7 @@ static UINT32 opDBLE(int reg) /* TRUSTED */
NORMALIZEFLAGS();
if ((v60.reg[reg] != 0) && ((_S ^ _OV) | _Z))
{
- PC += (INT16)OpRead16(PC + 2);
+ PC += (INT16)OpRead16(v60.program,PC + 2);
return 0;
}
@@ -50,7 +50,7 @@ static UINT32 opDBGE(int reg) /* TRUSTED */
NORMALIZEFLAGS();
if ((v60.reg[reg] != 0) && !(_S ^ _OV))
{
- PC += (INT16)OpRead16(PC + 2);
+ PC += (INT16)OpRead16(v60.program,PC + 2);
return 0;
}
@@ -64,7 +64,7 @@ static UINT32 opDBLT(int reg) /* TRUSTED */
NORMALIZEFLAGS();
if ((v60.reg[reg] != 0) && (_S ^ _OV))
{
- PC += (INT16)OpRead16(PC + 2);
+ PC += (INT16)OpRead16(v60.program,PC + 2);
return 0;
}
@@ -77,7 +77,7 @@ static UINT32 opDBH(int reg) /* TRUSTED */
if ((v60.reg[reg] != 0) && !(_CY | _Z))
{
- PC += (INT16)OpRead16(PC + 2);
+ PC += (INT16)OpRead16(v60.program,PC + 2);
return 0;
}
@@ -90,7 +90,7 @@ static UINT32 opDBNH(int reg) /* TRUSTED */
if ((v60.reg[reg] != 0) && (_CY | _Z))
{
- PC += (INT16)OpRead16(PC + 2);
+ PC += (INT16)OpRead16(v60.program,PC + 2);
return 0;
}
@@ -104,7 +104,7 @@ static UINT32 opDBL(int reg) /* TRUSTED */
if ((v60.reg[reg] != 0) && (_CY))
{
- PC += (INT16)OpRead16(PC + 2);
+ PC += (INT16)OpRead16(v60.program,PC + 2);
return 0;
}
@@ -117,7 +117,7 @@ static UINT32 opDBNL(int reg) /* TRUSTED */
if ((v60.reg[reg] != 0) && !(_CY))
{
- PC += (INT16)OpRead16(PC + 2);
+ PC += (INT16)OpRead16(v60.program,PC + 2);
return 0;
}
@@ -130,7 +130,7 @@ static UINT32 opDBE(int reg) /* TRUSTED */
if ((v60.reg[reg] != 0) && (_Z))
{
- PC += (INT16)OpRead16(PC + 2);
+ PC += (INT16)OpRead16(v60.program,PC + 2);
return 0;
}
@@ -143,7 +143,7 @@ static UINT32 opDBNE(int reg) /* TRUSTED */
if ((v60.reg[reg] != 0) && !(_Z))
{
- PC += (INT16)OpRead16(PC + 2);
+ PC += (INT16)OpRead16(v60.program,PC + 2);
return 0;
}
@@ -156,7 +156,7 @@ static UINT32 opDBV(int reg) /* TRUSTED */
if ((v60.reg[reg] != 0) && (_OV))
{
- PC += (INT16)OpRead16(PC + 2);
+ PC += (INT16)OpRead16(v60.program,PC + 2);
return 0;
}
@@ -169,7 +169,7 @@ static UINT32 opDBNV(int reg) /* TRUSTED */
if ((v60.reg[reg] != 0) && !(_OV))
{
- PC += (INT16)OpRead16(PC + 2);
+ PC += (INT16)OpRead16(v60.program,PC + 2);
return 0;
}
@@ -182,7 +182,7 @@ static UINT32 opDBN(int reg) /* TRUSTED */
if ((v60.reg[reg] != 0) && (_S))
{
- PC += (INT16)OpRead16(PC + 2);
+ PC += (INT16)OpRead16(v60.program,PC + 2);
return 0;
}
@@ -195,7 +195,7 @@ static UINT32 opDBP(int reg) /* TRUSTED */
if ((v60.reg[reg] != 0) && !(_S))
{
- PC += (INT16)OpRead16(PC + 2);
+ PC += (INT16)OpRead16(v60.program,PC + 2);
return 0;
}
@@ -208,7 +208,7 @@ static UINT32 opDBR(int reg) /* TRUSTED */
if (v60.reg[reg] != 0)
{
- PC += (INT16)OpRead16(PC + 2);
+ PC += (INT16)OpRead16(v60.program,PC + 2);
return 0;
}
@@ -242,13 +242,13 @@ static UINT32 (*const OpC7Table[8])(int reg) = /* TRUSTED */
static UINT32 opC6(void) /* TRUSTED */
{
- UINT8 appb=OpRead8(PC + 1);
+ UINT8 appb=OpRead8(v60.program,PC + 1);
return OpC6Table[appb>>5](appb&0x1f);
}
static UINT32 opC7(void) /* TRUSTED */
{
- UINT8 appb=OpRead8(PC + 1);
+ UINT8 appb=OpRead8(v60.program,PC + 1);
return OpC7Table[appb>>5](appb&0x1f);
}
diff --git a/src/emu/cpu/v60/op7a.c b/src/emu/cpu/v60/op7a.c
index db7a859b7ce..481d8f9aa6f 100644
--- a/src/emu/cpu/v60/op7a.c
+++ b/src/emu/cpu/v60/op7a.c
@@ -58,7 +58,7 @@ static void F7aDecodeOperands(UINT32 (*DecodeOp1)(void), UINT8 dim1, UINT32 (*De
f7aOp1=amOut;
// Decode length
- appb=OpRead8(PC+2+amLength1);
+ appb=OpRead8(v60.program,PC+2+amLength1);
if (appb&0x80)
f7aLenOp1=v60.reg[appb&0x1F];
else
@@ -73,7 +73,7 @@ static void F7aDecodeOperands(UINT32 (*DecodeOp1)(void), UINT8 dim1, UINT32 (*De
f7aOp2=amOut;
// Decode length
- appb=OpRead8(PC+3+amLength1+amLength2);
+ appb=OpRead8(v60.program,PC+3+amLength1+amLength2);
if (appb&0x80)
f7aLenOp2=v60.reg[appb&0x1F];
else
@@ -92,7 +92,7 @@ static void F7bDecodeFirstOperand(UINT32 (*DecodeOp1)(void), UINT8 dim1)
f7bOp1=amOut;
// Decode ext
- appb=OpRead8(PC+2+amLength1);
+ appb=OpRead8(v60.program,PC+2+amLength1);
if (appb&0x80)
f7bLen=v60.reg[appb&0x1F];
else
@@ -145,7 +145,7 @@ static void F7cDecodeOperands(UINT32 (*DecodeOp1)(void), UINT8 dim1, UINT32 (*De
f7cOp2=amOut;
// Decode ext
- appb=OpRead8(PC+2+amLength1+amLength2);
+ appb=OpRead8(v60.program,PC+2+amLength1+amLength2);
if (appb&0x80)
f7cLen=v60.reg[appb&0x1F];
else
@@ -156,26 +156,26 @@ static void F7cDecodeOperands(UINT32 (*DecodeOp1)(void), UINT8 dim1, UINT32 (*De
if (f7cFlag1) \
appb = (UINT8)(v60.reg[f7cOp1]&0xFF); \
else \
- appb = MemRead8(f7cOp1);
+ appb = MemRead8(v60.program, f7cOp1);
#define F7CLOADOP2BYTE(appb) \
if (f7cFlag2) \
appb = (UINT8)(v60.reg[f7cOp2]&0xFF); \
else \
- appb = MemRead8(f7cOp2);
+ appb = MemRead8(v60.program, f7cOp2);
#define F7CSTOREOP2BYTE() \
if (f7cFlag2) \
SETREG8(v60.reg[f7cOp2], appb); \
else \
- MemWrite8(f7cOp2, appb);
+ MemWrite8(v60.program, f7cOp2, appb);
#define F7CSTOREOP2HALF() \
if (f7cFlag2) \
SETREG16(v60.reg[f7cOp2], apph); \
else \
- MemWrite16(f7cOp2, apph);
+ MemWrite16(v60.program, f7cOp2, apph);
static UINT32 opCMPSTRB(UINT8 bFill, UINT8 bStop)
{
@@ -190,12 +190,12 @@ static UINT32 opCMPSTRB(UINT8 bFill, UINT8 bStop)
if (f7aLenOp1 < f7aLenOp2)
{
for (i=f7aLenOp1;i<f7aLenOp2;i++)
- MemWrite8(f7aOp1+i,(UINT8)R26);
+ MemWrite8(v60.program, f7aOp1+i,(UINT8)R26);
}
else if (f7aLenOp2 < f7aLenOp1)
{
for (i=f7aLenOp2;i<f7aLenOp1;i++)
- MemWrite8(f7aOp2+i,(UINT8)R26);
+ MemWrite8(v60.program, f7aOp2+i,(UINT8)R26);
}
}
@@ -207,8 +207,8 @@ static UINT32 opCMPSTRB(UINT8 bFill, UINT8 bStop)
for (i=0;i<dest;i++)
{
- c1=MemRead8(f7aOp1+i);
- c2=MemRead8(f7aOp2+i);
+ c1=MemRead8(v60.program, f7aOp1+i);
+ c2=MemRead8(v60.program, f7aOp2+i);
if (c1>c2)
{
@@ -256,12 +256,12 @@ static UINT32 opCMPSTRH(UINT8 bFill, UINT8 bStop)
if (f7aLenOp1 < f7aLenOp2)
{
for (i=f7aLenOp1;i<f7aLenOp2;i++)
- MemWrite16(f7aOp1+i*2,(UINT16)R26);
+ MemWrite16(v60.program, f7aOp1+i*2,(UINT16)R26);
}
else if (f7aLenOp2 < f7aLenOp1)
{
for (i=f7aLenOp2;i<f7aLenOp1;i++)
- MemWrite16(f7aOp2+i*2,(UINT16)R26);
+ MemWrite16(v60.program, f7aOp2+i*2,(UINT16)R26);
}
}
@@ -273,8 +273,8 @@ static UINT32 opCMPSTRH(UINT8 bFill, UINT8 bStop)
for (i=0;i<dest;i++)
{
- c1=MemRead16(f7aOp1+i*2);
- c2=MemRead16(f7aOp2+i*2);
+ c1=MemRead16(v60.program, f7aOp1+i*2);
+ c2=MemRead16(v60.program, f7aOp2+i*2);
if (c1>c2)
{
@@ -327,7 +327,7 @@ static UINT32 opMOVSTRUB(UINT8 bFill, UINT8 bStop) /* TRUSTED (0,0) (1,0) */
for (i=0;i<dest;i++)
{
- MemWrite8(f7aOp2+i,(c1=MemRead8(f7aOp1+i)));
+ MemWrite8(v60.program, f7aOp2+i,(c1=MemRead8(v60.program, f7aOp1+i)));
if (bStop && c1==(UINT8)R26)
break;
@@ -339,7 +339,7 @@ static UINT32 opMOVSTRUB(UINT8 bFill, UINT8 bStop) /* TRUSTED (0,0) (1,0) */
if (bFill && f7aLenOp1 < f7aLenOp2)
{
for (;i<f7aLenOp2;i++)
- MemWrite8(f7aOp2+i,(UINT8)R26);
+ MemWrite8(v60.program, f7aOp2+i,(UINT8)R26);
R27=f7aOp2+i;
}
@@ -359,7 +359,7 @@ static UINT32 opMOVSTRDB(UINT8 bFill, UINT8 bStop)
for (i=0;i<dest;i++)
{
- MemWrite8(f7aOp2+(dest-i-1),(c1=MemRead8(f7aOp1+(dest-i-1))));
+ MemWrite8(v60.program, f7aOp2+(dest-i-1),(c1=MemRead8(v60.program, f7aOp1+(dest-i-1))));
if (bStop && c1==(UINT8)R26)
break;
@@ -371,7 +371,7 @@ static UINT32 opMOVSTRDB(UINT8 bFill, UINT8 bStop)
if (bFill && f7aLenOp1 < f7aLenOp2)
{
for (;i<f7aLenOp2;i++)
- MemWrite8(f7aOp2+dest+(f7aLenOp2-i-1),(UINT8)R26);
+ MemWrite8(v60.program, f7aOp2+dest+(f7aLenOp2-i-1),(UINT8)R26);
R27=f7aOp2+(f7aLenOp2-i-1);
}
@@ -395,7 +395,7 @@ static UINT32 opMOVSTRUH(UINT8 bFill, UINT8 bStop) /* TRUSTED (0,0) (1,0) */
for (i=0;i<dest;i++)
{
- MemWrite16(f7aOp2+i*2,(c1=MemRead16(f7aOp1+i*2)));
+ MemWrite16(v60.program, f7aOp2+i*2,(c1=MemRead16(v60.program, f7aOp1+i*2)));
if (bStop && c1==(UINT16)R26)
break;
@@ -407,7 +407,7 @@ static UINT32 opMOVSTRUH(UINT8 bFill, UINT8 bStop) /* TRUSTED (0,0) (1,0) */
if (bFill && f7aLenOp1 < f7aLenOp2)
{
for (;i<f7aLenOp2;i++)
- MemWrite16(f7aOp2+i*2,(UINT16)R26);
+ MemWrite16(v60.program, f7aOp2+i*2,(UINT16)R26);
R27=f7aOp2+i*2;
}
@@ -432,7 +432,7 @@ static UINT32 opMOVSTRDH(UINT8 bFill, UINT8 bStop)
for (i=0;i<dest;i++)
{
- MemWrite16(f7aOp2+(dest-i-1)*2,(c1=MemRead16(f7aOp1+(dest-i-1)*2)));
+ MemWrite16(v60.program, f7aOp2+(dest-i-1)*2,(c1=MemRead16(v60.program, f7aOp1+(dest-i-1)*2)));
if (bStop && c1==(UINT16)R26)
break;
@@ -444,7 +444,7 @@ static UINT32 opMOVSTRDH(UINT8 bFill, UINT8 bStop)
if (bFill && f7aLenOp1 < f7aLenOp2)
{
for (;i<f7aLenOp2;i++)
- MemWrite16(f7aOp2+(f7aLenOp2-i-1)*2,(UINT16)R26);
+ MemWrite16(v60.program, f7aOp2+(f7aLenOp2-i-1)*2,(UINT16)R26);
R27=f7aOp2+(f7aLenOp2-i-1)*2;
}
@@ -461,7 +461,7 @@ static UINT32 opSEARCHUB(UINT8 bSearch)
for (i=0;i<f7bLen;i++)
{
- appb = (MemRead8(f7bOp1+i)==(UINT8)f7bOp2);
+ appb = (MemRead8(v60.program, f7bOp1+i)==(UINT8)f7bOp2);
if ((bSearch && appb) || (!bSearch && !appb))
break;
}
@@ -487,7 +487,7 @@ static UINT32 opSEARCHUH(UINT8 bSearch)
for (i=0;i<f7bLen;i++)
{
- appb = (MemRead16(f7bOp1+i*2)==(UINT16)f7bOp2);
+ appb = (MemRead16(v60.program, f7bOp1+i*2)==(UINT16)f7bOp2);
if ((bSearch && appb) || (!bSearch && !appb))
break;
}
@@ -512,7 +512,7 @@ static UINT32 opSEARCHDB(UINT8 bSearch)
for (i=f7bLen;i>=0;i--)
{
- appb = (MemRead8(f7bOp1+i)==(UINT8)f7bOp2);
+ appb = (MemRead8(v60.program, f7bOp1+i)==(UINT8)f7bOp2);
if ((bSearch && appb) || (!bSearch && !appb))
break;
}
@@ -538,7 +538,7 @@ static UINT32 opSEARCHDH(UINT8 bSearch)
for (i=f7bLen-1;i>=0;i--)
{
- appb = (MemRead16(f7bOp1+i*2)==(UINT16)f7bOp2);
+ appb = (MemRead16(v60.program, f7bOp1+i*2)==(UINT16)f7bOp2);
if ((bSearch && appb) || (!bSearch && !appb))
break;
}
@@ -637,7 +637,7 @@ static UINT32 opSCHBS(UINT32 bSearch1)
// Read first UINT8
f7bOp1 += bamOffset/8;
- data = MemRead8(f7bOp1);
+ data = MemRead8(v60.program, f7bOp1);
offset = bamOffset&7;
// Scan bitstring
@@ -658,7 +658,7 @@ static UINT32 opSCHBS(UINT32 bSearch1)
// Next UINT8 please
offset=0;
f7bOp1++;
- data = MemRead8(f7bOp1);
+ data = MemRead8(v60.program, f7bOp1);
}
}
@@ -683,13 +683,13 @@ static UINT32 opINSBFR(void)
F7CCREATEBITMASK(f7cLen);
f7cOp2 += bamOffset/8;
- appw = MemRead32(f7cOp2);
+ appw = MemRead32(v60.program,f7cOp2);
bamOffset &= 7;
appw &= ~(f7cLen << bamOffset);
appw |= (f7cLen & f7cOp1) << bamOffset;
- MemWrite32(f7cOp2, appw);
+ MemWrite32(v60.program, f7cOp2, appw);
F7CEND();
}
@@ -704,13 +704,13 @@ static UINT32 opINSBFL(void)
F7CCREATEBITMASK(f7cLen);
f7cOp2 += bamOffset/8;
- appw = MemRead32(f7cOp2);
+ appw = MemRead32(v60.program,f7cOp2);
bamOffset &= 7;
appw &= ~(f7cLen << bamOffset);
appw |= (f7cLen & f7cOp1) << bamOffset;
- MemWrite32(f7cOp2, appw);
+ MemWrite32(v60.program, f7cOp2, appw);
F7CEND();
}
@@ -734,8 +734,8 @@ static UINT32 opMOVBSD(void)
f7bBamOffset1 &= 7;
f7bBamOffset2 &= 7;
- srcdata = MemRead8(f7bOp1);
- dstdata = MemRead8(f7bOp2);
+ srcdata = MemRead8(v60.program, f7bOp1);
+ dstdata = MemRead8(v60.program, f7bOp2);
for (i=0;i<f7bLen;i++)
{
@@ -750,14 +750,14 @@ static UINT32 opMOVBSD(void)
{
f7bBamOffset1 = 8;
f7bOp1--;
- srcdata = MemRead8(f7bOp1);
+ srcdata = MemRead8(v60.program, f7bOp1);
}
if (f7bBamOffset2 == 0)
{
- MemWrite8(f7bOp2, dstdata);
+ MemWrite8(v60.program, f7bOp2, dstdata);
f7bBamOffset2 = 8;
f7bOp2--;
- dstdata = MemRead8(f7bOp2);
+ dstdata = MemRead8(v60.program, f7bOp2);
}
f7bBamOffset1--;
@@ -766,7 +766,7 @@ static UINT32 opMOVBSD(void)
// Flush of the final data
if (f7bBamOffset2 != 7)
- MemWrite8(f7bOp2, dstdata);
+ MemWrite8(v60.program, f7bOp2, dstdata);
F7BEND();
}
@@ -784,8 +784,8 @@ static UINT32 opMOVBSU(void)
f7bBamOffset1 &= 7;
f7bBamOffset2 &= 7;
- srcdata = MemRead8(f7bOp1);
- dstdata = MemRead8(f7bOp2);
+ srcdata = MemRead8(v60.program, f7bOp1);
+ dstdata = MemRead8(v60.program, f7bOp2);
for (i=0;i<f7bLen;i++)
{
@@ -802,20 +802,20 @@ static UINT32 opMOVBSU(void)
{
f7bBamOffset1 = 0;
f7bOp1++;
- srcdata = MemRead8(f7bOp1);
+ srcdata = MemRead8(v60.program, f7bOp1);
}
if (f7bBamOffset2 == 8)
{
- MemWrite8(f7bOp2, dstdata);
+ MemWrite8(v60.program, f7bOp2, dstdata);
f7bBamOffset2 = 0;
f7bOp2++;
- dstdata = MemRead8(f7bOp2);
+ dstdata = MemRead8(v60.program, f7bOp2);
}
}
// Flush of the final data
if (f7bBamOffset2 != 0)
- MemWrite8(f7bOp2, dstdata);
+ MemWrite8(v60.program, f7bOp2, dstdata);
F7BEND();
}
@@ -1196,35 +1196,35 @@ static UINT32 (*const Op5ATable[32])(void) =
static UINT32 op58(void)
{
- subOp = OpRead8(PC + 1);
+ subOp = OpRead8(v60.program,PC + 1);
return Op58Table[subOp&0x1F]();
}
static UINT32 op5A(void)
{
- subOp = OpRead8(PC + 1);
+ subOp = OpRead8(v60.program,PC + 1);
return Op5ATable[subOp&0x1F]();
}
static UINT32 op5B(void)
{
- subOp = OpRead8(PC + 1);
+ subOp = OpRead8(v60.program,PC + 1);
return Op5BTable[subOp&0x1F]();
}
static UINT32 op5D(void)
{
- subOp = OpRead8(PC + 1);
+ subOp = OpRead8(v60.program,PC + 1);
return Op5DTable[subOp&0x1F]();
}
static UINT32 op59(void)
{
- subOp = OpRead8(PC + 1);
+ subOp = OpRead8(v60.program,PC + 1);
return Op59Table[subOp&0x1F]();
}
diff --git a/src/emu/cpu/v60/v60.c b/src/emu/cpu/v60/v60.c
index bdd7fcaefc9..134217992d5 100644
--- a/src/emu/cpu/v60/v60.c
+++ b/src/emu/cpu/v60/v60.c
@@ -3,6 +3,7 @@
// Main hacking and coding by Farfetch'd
// Portability fixes by Richter Belmont
+#define NO_LEGACY_MEMORY_HANDLERS 1
#include "debugger.h"
#include "v60.h"
@@ -75,6 +76,8 @@ static struct v60info {
UINT8 nmi_line;
cpu_irq_callback irq_cb;
const device_config *device;
+ const address_space *program;
+ const address_space *io;
UINT32 PPC;
} v60;
@@ -268,7 +271,7 @@ INLINE UINT32 v60_update_psw_for_exception(int is_interrupt, int target_level)
}
-#define GETINTVECT(nint) MemRead32((SBR & ~0xfff) + (nint)*4)
+#define GETINTVECT(nint) MemRead32(v60.program,(SBR & ~0xfff) + (nint)*4)
#define EXCEPTION_CODE_AND_SIZE(code, size) (((code) << 16) | (size))
@@ -286,7 +289,7 @@ INLINE UINT32 v60_update_psw_for_exception(int is_interrupt, int target_level)
static UINT32 opUNHANDLED(void)
{
- fatalerror("Unhandled OpCode found : %02x at %08x", OpRead16(PC), PC);
+ fatalerror("Unhandled OpCode found : %02x at %08x", OpRead16(v60.program,PC), PC);
return 0; /* never reached, fatalerror won't return */
}
@@ -325,6 +328,9 @@ static CPU_INIT( v60 )
// so I don't know what it contains.
PIR = 0x00006000;
v60.info = v60_i;
+ v60.device = device;
+ v60.program = memory_find_address_space(device, ADDRESS_SPACE_PROGRAM);
+ v60.io = memory_find_address_space(device, ADDRESS_SPACE_IO);
}
static CPU_INIT( v70 )
@@ -334,6 +340,9 @@ static CPU_INIT( v70 )
// so I don't know what it contains.
PIR = 0x00007000;
v60.info = v70_i;
+ v60.device = device;
+ v60.program = memory_find_address_space(device, ADDRESS_SPACE_PROGRAM);
+ v60.io = memory_find_address_space(device, ADDRESS_SPACE_IO);
}
static CPU_RESET( v60 )
@@ -344,7 +353,6 @@ static CPU_RESET( v60 )
SYCW = 0x00000070;
TKCW = 0x0000e000;
PSW2 = 0x0000f002;
- ChangePC(PC);
_CY = 0;
_OV = 0;
@@ -367,9 +375,9 @@ static void v60_do_irq(int vector)
// Push PC and PSW onto the stack
SP-=4;
- MemWrite32(SP, oldPSW);
+ MemWrite32(v60.program, SP, oldPSW);
SP-=4;
- MemWrite32(SP, PC);
+ MemWrite32(v60.program, SP, PC);
// Jump to vector for user interrupt
PC = GETINTVECT(vector);
@@ -429,7 +437,7 @@ static CPU_EXECUTE( v60 )
v60.PPC = PC;
debugger_instruction_hook(device, PC);
v60_ICount -= 8; /* fix me -- this is just an average */
- inc = OpCodeTable[OpRead8(PC)]();
+ inc = OpCodeTable[OpRead8(v60.program,PC)]();
PC += inc;
if(v60.irq_line != CLEAR_LINE)
v60_try_irq();
@@ -449,7 +457,6 @@ static CPU_SET_CONTEXT( v60 )
if(src)
{
v60 = *(struct v60info *)src;
- ChangePC(PC);
}
}
@@ -470,7 +477,7 @@ static CPU_SET_INFO( v60 )
case CPUINFO_INT_INPUT_STATE + 0: set_irq_line(0, info->i); break;
case CPUINFO_INT_INPUT_STATE + INPUT_LINE_NMI: set_irq_line(INPUT_LINE_NMI, info->i); break;
- case CPUINFO_INT_PC: PC = info->i; ChangePC(PC); break;
+ case CPUINFO_INT_PC: PC = info->i; break;
case CPUINFO_INT_SP: SP = info->i; break;
case CPUINFO_INT_REGISTER + V60_R0: R0 = info->i; break;
diff --git a/src/emu/cpu/v60/v60mem.c b/src/emu/cpu/v60/v60mem.c
index 03d0ac81ec2..466af7280d1 100644
--- a/src/emu/cpu/v60/v60mem.c
+++ b/src/emu/cpu/v60/v60mem.c
@@ -3,22 +3,15 @@
/****************************************************************/
struct cpu_info {
- UINT8 (*mr8) (offs_t address);
- void (*mw8) (offs_t address, UINT8 data);
- UINT16 (*mr16)(offs_t address);
- void (*mw16)(offs_t address, UINT16 data);
- UINT32 (*mr32)(offs_t address);
- void (*mw32)(offs_t address, UINT32 data);
- UINT8 (*pr8) (offs_t address);
- void (*pw8) (offs_t address, UINT8 data);
- UINT16 (*pr16)(offs_t address);
- void (*pw16)(offs_t address, UINT16 data);
- UINT32 (*pr32)(offs_t address);
- void (*pw32)(offs_t address, UINT32 data);
- UINT8 (*or8) (offs_t address);
- UINT16 (*or16)(offs_t address);
- UINT32 (*or32)(offs_t address);
- void (*chpc)(offs_t newpc);
+ UINT8 (*mr8) (const address_space *space, offs_t address);
+ void (*mw8) (const address_space *space, offs_t address, UINT8 data);
+ UINT16 (*mr16)(const address_space *space, offs_t address);
+ void (*mw16)(const address_space *space, offs_t address, UINT16 data);
+ UINT32 (*mr32)(const address_space *space, offs_t address);
+ void (*mw32)(const address_space *space, offs_t address, UINT32 data);
+ UINT8 (*or8) (const address_space *space, offs_t address);
+ UINT16 (*or16)(const address_space *space, offs_t address);
+ UINT32 (*or32)(const address_space *space, offs_t address);
UINT32 start_pc;
};
@@ -28,146 +21,80 @@ struct cpu_info {
/* Memory accesses for 16-bit data bus, 24-bit address bus (V60) */
/*****************************************************************/
-#define MemRead8_16 program_read_byte_16le
-#define MemWrite8_16 program_write_byte_16le
+#define MemRead8_16 memory_read_byte_16le
+#define MemWrite8_16 memory_write_byte_16le
-static UINT16 MemRead16_16(offs_t address)
+static UINT16 MemRead16_16(const address_space *space, offs_t address)
{
if (!(address & 1))
- return program_read_word_16le(address);
+ return memory_read_word_16le(space, address);
else
{
- UINT16 result = program_read_byte_16le(address);
- return result | program_read_byte_16le(address + 1) << 8;
+ UINT16 result = memory_read_byte_16le(space, address);
+ return result | memory_read_byte_16le(space, address + 1) << 8;
}
}
-static void MemWrite16_16(offs_t address, UINT16 data)
+static void MemWrite16_16(const address_space *space, offs_t address, UINT16 data)
{
if (!(address & 1))
- program_write_word_16le(address, data);
+ memory_write_word_16le(space, address, data);
else
{
- program_write_byte_16le(address, data);
- program_write_byte_16le(address + 1, data >> 8);
+ memory_write_byte_16le(space, address, data);
+ memory_write_byte_16le(space, address + 1, data >> 8);
}
}
-static UINT32 MemRead32_16(offs_t address)
+static UINT32 MemRead32_16(const address_space *space, offs_t address)
{
if (!(address & 1))
{
- UINT32 result = program_read_word_16le(address);
- return result | (program_read_word_16le(address + 2) << 16);
+ UINT32 result = memory_read_word_16le(space, address);
+ return result | (memory_read_word_16le(space, address + 2) << 16);
}
else
{
- UINT32 result = program_read_byte_16le(address);
- result |= program_read_word_16le(address + 1) << 8;
- return result | program_read_byte_16le(address + 3) << 24;
+ UINT32 result = memory_read_byte_16le(space, address);
+ result |= memory_read_word_16le(space, address + 1) << 8;
+ return result | memory_read_byte_16le(space, address + 3) << 24;
}
}
-static void MemWrite32_16(offs_t address, UINT32 data)
+static void MemWrite32_16(const address_space *space, offs_t address, UINT32 data)
{
if (!(address & 1))
{
- program_write_word_16le(address, data);
- program_write_word_16le(address + 2, data >> 16);
+ memory_write_word_16le(space, address, data);
+ memory_write_word_16le(space, address + 2, data >> 16);
}
else
{
- program_write_byte_16le(address, data);
- program_write_word_16le(address + 1, data >> 8);
- program_write_byte_16le(address + 3, data >> 24);
+ memory_write_byte_16le(space, address, data);
+ memory_write_word_16le(space, address + 1, data >> 8);
+ memory_write_byte_16le(space, address + 3, data >> 24);
}
}
-/***************************************************************/
-/* Port accesses for 16-bit data bus, 24-bit address bus (V60) */
-/***************************************************************/
-
-#define PortRead8_16 io_read_byte_16le
-#define PortWrite8_16 io_write_byte_16le
-
-static UINT16 PortRead16_16(offs_t address)
-{
- if (!(address & 1))
- return io_read_word_16le(address);
- else
- {
- UINT16 result = io_read_byte_16le(address);
- return result | io_read_byte_16le(address + 1) << 8;
- }
-}
-
-static void PortWrite16_16(offs_t address, UINT16 data)
-{
- if (!(address & 1))
- io_write_word_16le(address, data);
- else
- {
- io_write_byte_16le(address, data);
- io_write_byte_16le(address + 1, data >> 8);
- }
-}
-
-static UINT32 PortRead32_16(offs_t address)
-{
- if (!(address & 1))
- {
- UINT32 result = io_read_word_16le(address);
- return result | (io_read_word_16le(address + 2) << 16);
- }
- else
- {
- UINT32 result = io_read_byte_16le(address);
- result |= io_read_word_16le(address + 1) << 8;
- return result | io_read_byte_16le(address + 3) << 24;
- }
-}
-
-static void PortWrite32_16(offs_t address, UINT32 data)
-{
- if (!(address & 1))
- {
- io_write_word_16le(address, data);
- io_write_word_16le(address + 2, data >> 16);
- }
- else
- {
- io_write_byte_16le(address, data);
- io_write_word_16le(address + 1, data >> 8);
- io_write_byte_16le(address + 3, data >> 24);
- }
-}
-
-
-
/*****************************************************************/
/* Opcode accesses for 16-bit data bus, 24-bit address bus (V60) */
/*****************************************************************/
-static UINT8 OpRead8_16(offs_t address)
-{
- return program_decrypted_read_byte(BYTE_XOR_LE(address));
-}
-
-static UINT16 OpRead16_16(offs_t address)
+static UINT8 OpRead8_16(const address_space *space, offs_t address)
{
- return program_decrypted_read_byte(BYTE_XOR_LE(address)) | (program_decrypted_read_byte(BYTE_XOR_LE(address+1)) << 8);
+ return memory_decrypted_read_byte(space, BYTE_XOR_LE(address));
}
-static UINT32 OpRead32_16(offs_t address)
+static UINT16 OpRead16_16(const address_space *space, offs_t address)
{
- return program_decrypted_read_byte(BYTE_XOR_LE(address)) | (program_decrypted_read_byte(BYTE_XOR_LE(address+1)) << 8) |
- (program_decrypted_read_byte(BYTE_XOR_LE(address+2)) << 16) | (program_decrypted_read_byte(BYTE_XOR_LE(address+3)) << 24);
+ return memory_decrypted_read_byte(space, BYTE_XOR_LE(address)) | (memory_decrypted_read_byte(space, BYTE_XOR_LE(address+1)) << 8);
}
-static void ChangePC_16(offs_t pc)
+static UINT32 OpRead32_16(const address_space *space, offs_t address)
{
- change_pc(pc);
+ return memory_decrypted_read_byte(space, BYTE_XOR_LE(address)) | (memory_decrypted_read_byte(space, BYTE_XOR_LE(address+1)) << 8) |
+ (memory_decrypted_read_byte(space, BYTE_XOR_LE(address+2)) << 16) | (memory_decrypted_read_byte(space, BYTE_XOR_LE(address+3)) << 24);
}
@@ -176,131 +103,62 @@ static void ChangePC_16(offs_t pc)
/* Memory accesses for 32-bit data bus, 32-bit address bus (V70) */
/*****************************************************************/
-#define MemRead8_32 program_read_byte_32le
-#define MemWrite8_32 program_write_byte_32le
-
-static UINT16 MemRead16_32(offs_t address)
-{
- if (!(address & 1))
- return program_read_word_32le(address);
- else
- {
- UINT16 result = program_read_byte_32le(address);
- return result | program_read_byte_32le(address + 1) << 8;
- }
-}
-
-static void MemWrite16_32(offs_t address, UINT16 data)
-{
- if (!(address & 1))
- program_write_word_32le(address, data);
- else
- {
- program_write_byte_32le(address, data);
- program_write_byte_32le(address + 1, data >> 8);
- }
-}
-
-static UINT32 MemRead32_32(offs_t address)
-{
- if (!(address & 3))
- return program_read_dword_32le(address);
- else if (!(address & 1))
- {
- UINT32 result = program_read_word_32le(address);
- return result | (program_read_word_32le(address + 2) << 16);
- }
- else
- {
- UINT32 result = program_read_byte_32le(address);
- result |= program_read_word_32le(address + 1) << 8;
- return result | program_read_byte_32le(address + 3) << 24;
- }
-}
+#define MemRead8_32 memory_read_byte_32le
+#define MemWrite8_32 memory_write_byte_32le
-static void MemWrite32_32(offs_t address, UINT32 data)
-{
- if (!(address & 3))
- program_write_dword_32le(address, data);
- else if (!(address & 1))
- {
- program_write_word_32le(address, data);
- program_write_word_32le(address + 2, data >> 16);
- }
- else
- {
- program_write_byte_32le(address, data);
- program_write_word_32le(address + 1, data >> 8);
- program_write_byte_32le(address + 3, data >> 24);
- }
-}
-
-
-
-/***************************************************************/
-/* Port accesses for 32-bit data bus, 32-bit address bus (V70) */
-/***************************************************************/
-
-#define PortRead8_32 io_read_byte_32le
-#define PortWrite8_32 io_write_byte_32le
-
-static UINT16 PortRead16_32(offs_t address)
+static UINT16 MemRead16_32(const address_space *space, offs_t address)
{
if (!(address & 1))
- {
- return io_read_word_32le(address);
- }
+ return memory_read_word_32le(space, address);
else
{
- UINT16 result = io_read_byte_32le(address);
- return result | io_read_byte_32le(address + 1) << 8;
+ UINT16 result = memory_read_byte_32le(space, address);
+ return result | memory_read_byte_32le(space, address + 1) << 8;
}
}
-static void PortWrite16_32(offs_t address, UINT16 data)
+static void MemWrite16_32(const address_space *space, offs_t address, UINT16 data)
{
if (!(address & 1))
- {
- io_write_word_32le(address, data);
- }
+ memory_write_word_32le(space, address, data);
else
{
- io_write_byte_32le(address, data);
- io_write_byte_32le(address + 1, data >> 8);
+ memory_write_byte_32le(space, address, data);
+ memory_write_byte_32le(space, address + 1, data >> 8);
}
}
-static UINT32 PortRead32_32(offs_t address)
+static UINT32 MemRead32_32(const address_space *space, offs_t address)
{
if (!(address & 3))
- return io_read_dword_32le(address);
+ return memory_read_dword_32le(space, address);
else if (!(address & 1))
{
- UINT32 result = io_read_word_32le(address);
- return result | (io_read_word_32le(address + 2) << 16);
+ UINT32 result = memory_read_word_32le(space, address);
+ return result | (memory_read_word_32le(space, address + 2) << 16);
}
else
{
- UINT32 result = io_read_byte_32le(address);
- result |= io_read_word_32le(address + 1) << 8;
- return result | io_read_byte_32le(address + 3) << 24;
+ UINT32 result = memory_read_byte_32le(space, address);
+ result |= memory_read_word_32le(space, address + 1) << 8;
+ return result | memory_read_byte_32le(space, address + 3) << 24;
}
}
-static void PortWrite32_32(offs_t address, UINT32 data)
+static void MemWrite32_32(const address_space *space, offs_t address, UINT32 data)
{
if (!(address & 3))
- io_write_dword_32le(address, data);
+ memory_write_dword_32le(space, address, data);
else if (!(address & 1))
{
- io_write_word_32le(address, data);
- io_write_word_32le(address + 2, data >> 16);
+ memory_write_word_32le(space, address, data);
+ memory_write_word_32le(space, address + 2, data >> 16);
}
else
{
- io_write_byte_32le(address, data);
- io_write_word_32le(address + 1, data >> 8);
- io_write_byte_32le(address + 3, data >> 24);
+ memory_write_byte_32le(space, address, data);
+ memory_write_word_32le(space, address + 1, data >> 8);
+ memory_write_byte_32le(space, address + 3, data >> 24);
}
}
@@ -310,25 +168,20 @@ static void PortWrite32_32(offs_t address, UINT32 data)
/* Opcode accesses for 32-bit data bus, 32-bit address bus (V60) */
/*****************************************************************/
-static UINT8 OpRead8_32(offs_t address)
+static UINT8 OpRead8_32(const address_space *space, offs_t address)
{
- return program_decrypted_read_byte(BYTE4_XOR_LE(address));
+ return memory_decrypted_read_byte(space, BYTE4_XOR_LE(address));
}
-static UINT16 OpRead16_32(offs_t address)
+static UINT16 OpRead16_32(const address_space *space, offs_t address)
{
- return program_decrypted_read_byte(BYTE4_XOR_LE(address)) | (program_decrypted_read_byte(BYTE4_XOR_LE(address+1)) << 8);
+ return memory_decrypted_read_byte(space, BYTE4_XOR_LE(address)) | (memory_decrypted_read_byte(space, BYTE4_XOR_LE(address+1)) << 8);
}
-static UINT32 OpRead32_32(offs_t address)
+static UINT32 OpRead32_32(const address_space *space, offs_t address)
{
- return program_decrypted_read_byte(BYTE4_XOR_LE(address)) | (program_decrypted_read_byte(BYTE4_XOR_LE(address+1)) << 8) |
- (program_decrypted_read_byte(BYTE4_XOR_LE(address+2)) << 16) | (program_decrypted_read_byte(BYTE4_XOR_LE(address+3)) << 24);
-}
-
-static void ChangePC_32(offs_t pc)
-{
- change_pc(pc);
+ return memory_decrypted_read_byte(space, BYTE4_XOR_LE(address)) | (memory_decrypted_read_byte(space, BYTE4_XOR_LE(address+1)) << 8) |
+ (memory_decrypted_read_byte(space, BYTE4_XOR_LE(address+2)) << 16) | (memory_decrypted_read_byte(space, BYTE4_XOR_LE(address+3)) << 24);
}
@@ -340,18 +193,14 @@ static void ChangePC_32(offs_t pc)
static const struct cpu_info v60_i =
{
MemRead8_16, MemWrite8_16, MemRead16_16, MemWrite16_16, MemRead32_16, MemWrite32_16,
- PortRead8_16, PortWrite8_16, PortRead16_16, PortWrite16_16, PortRead32_16, PortWrite32_16,
OpRead8_16, OpRead16_16, OpRead32_16,
- ChangePC_16,
0xfffff0
};
static const struct cpu_info v70_i =
{
MemRead8_32, MemWrite8_32, MemRead16_32, MemWrite16_32, MemRead32_32, MemWrite32_32,
- PortRead8_32, PortWrite8_32, PortRead16_32, PortWrite16_32, PortRead32_32, PortWrite32_32,
OpRead8_32, OpRead16_32, OpRead32_32,
- ChangePC_32,
0xfffffff0
};
@@ -368,21 +217,12 @@ static const struct cpu_info v70_i =
#define MemRead32 v60.info.mr32
#define MemWrite32 v60.info.mw32
-#define PortRead8 v60.info.pr8
-#define PortWrite8 v60.info.pw8
-#define PortRead16 v60.info.pr16
-#define PortWrite16 v60.info.pw16
-#define PortRead32 v60.info.pr32
-#define PortWrite32 v60.info.pw32
-
#if defined(LSB_FIRST) && !defined(ALIGN_INTS)
-#define OpRead8(a) (program_decrypted_read_byte(a))
-#define OpRead16(a) (program_decrypted_read_word(a))
-#define OpRead32(a) (program_decrypted_read_dword(a))
+#define OpRead8(s,a) (memory_decrypted_read_byte(s,a))
+#define OpRead16(s,a) (memory_decrypted_read_word(s,a))
+#define OpRead32(s,a) (memory_decrypted_read_dword(s,a))
#else
-#define OpRead8 v60.info.mr8
-#define OpRead16 v60.info.mr16
-#define OpRead32 v60.info.mr32
+#define OpRead8 v60.info.or8
+#define OpRead16 v60.info.or16
+#define OpRead32 v60.info.or32
#endif
-
-#define ChangePC v60.info.chpc
diff --git a/src/emu/cpu/v810/v810.c b/src/emu/cpu/v810/v810.c
index 30089884818..c263e08d4df 100644
--- a/src/emu/cpu/v810/v810.c
+++ b/src/emu/cpu/v810/v810.c
@@ -16,6 +16,7 @@
********************************************/
+#define NO_LEGACY_MEMORY_HANDLERS 1
#include "debugger.h"
#include "v810.h"
@@ -29,6 +30,8 @@ typedef struct
UINT8 nmi_line;
cpu_irq_callback irq_cb;
const device_config *device;
+ const address_space *program;
+ const address_space *io;
UINT32 PPC;
UINT32 op;
} v810info;
@@ -952,6 +955,8 @@ static CPU_INIT( v810 )
v810.nmi_line = CLEAR_LINE;
v810.irq_cb = irqcallback;
v810.device = device;
+ v810.program = memory_find_address_space(device, ADDRESS_SPACE_PROGRAM);
+ v810.io = memory_find_address_space(device, ADDRESS_SPACE_IO);
state_save_register_item_array("v810", device->tag, 0, v810.reg);
state_save_register_item("v810", device->tag, 0, v810.irq_line);
diff --git a/src/emu/cpu/v810/v810.h b/src/emu/cpu/v810/v810.h
index 744dfbfd048..6de9a644513 100644
--- a/src/emu/cpu/v810/v810.h
+++ b/src/emu/cpu/v810/v810.h
@@ -7,24 +7,24 @@
void v810_get_info(UINT32, cpuinfo*);
-#define R_B(addr) (program_read_byte_32le(addr))
-#define R_H(addr) (program_read_word_32le(addr))
-#define R_W(addr) (program_read_dword_32le(addr))
+#define R_B(addr) (memory_read_byte_32le(v810.program, addr))
+#define R_H(addr) (memory_read_word_32le(v810.program, addr))
+#define R_W(addr) (memory_read_dword_32le(v810.program, addr))
-#define W_B(addr, val) (program_write_byte_32le(addr,val))
-#define W_H(addr, val) (program_write_word_32le(addr,val))
-#define W_W(addr, val) (program_write_dword_32le(addr,val))
+#define W_B(addr, val) (memory_write_byte_32le(v810.program, addr,val))
+#define W_H(addr, val) (memory_write_word_32le(v810.program, addr,val))
+#define W_W(addr, val) (memory_write_dword_32le(v810.program, addr,val))
-#define RIO_B(addr) (io_read_byte_32le(addr))
-#define RIO_H(addr) (io_read_word_32le(addr))
-#define RIO_W(addr) (io_read_dword_32le(addr))
+#define RIO_B(addr) (memory_read_byte_32le(v810.io, addr))
+#define RIO_H(addr) (memory_read_word_32le(v810.io, addr))
+#define RIO_W(addr) (memory_read_dword_32le(v810.io, addr))
-#define WIO_B(addr, val) (io_write_byte_32le(addr,val))
-#define WIO_H(addr, val) (io_write_word_32le(addr,val))
-#define WIO_W(addr, val) (io_write_dword_32le(addr,val))
+#define WIO_B(addr, val) (memory_write_byte_32le(v810.io, addr,val))
+#define WIO_H(addr, val) (memory_write_word_32le(v810.io, addr,val))
+#define WIO_W(addr, val) (memory_write_dword_32le(v810.io, addr,val))
#define R_OP(addr) (R_H(addr))
diff --git a/src/emu/cpu/z180/z180.c b/src/emu/cpu/z180/z180.c
index 37f211e0abc..2c75e4a6770 100644
--- a/src/emu/cpu/z180/z180.c
+++ b/src/emu/cpu/z180/z180.c
@@ -76,6 +76,7 @@ Hitachi HD647180 series:
*****************************************************************************/
+#define NO_LEGACY_MEMORY_HANDLERS 1
#include "debugger.h"
#include "driver.h"
#include "z180.h"
@@ -118,6 +119,8 @@ typedef struct {
z80_daisy_state *daisy;
cpu_irq_callback irq_callback;
const device_config *device;
+ const address_space *program;
+ const address_space *iospace;
} Z180_Regs;
#define CF 0x01
@@ -812,7 +815,7 @@ static CPU_SET_INFO( z180 );
static UINT8 z180_readcontrol(offs_t port)
{
/* normal external readport */
- UINT8 data = io_read_byte_8le(port);
+ UINT8 data = memory_read_byte_8le(Z180.iospace, port);
/* remap internal I/O registers */
if((port & (IO_IOCR & 0xc0)) == (IO_IOCR & 0xc0))
@@ -1240,7 +1243,7 @@ data |= 0x02; // kludge for 20pacgal
static void z180_writecontrol(offs_t port, UINT8 data)
{
/* normal external write port */
- io_write_byte_8le(port, data);
+ memory_write_byte_8le(Z180.iospace, port, data);
/* remap internal I/O registers */
if((port & (IO_IOCR & 0xc0)) == (IO_IOCR & 0xc0))
@@ -1605,18 +1608,18 @@ static void z180_dma0(void)
switch( IO_DMODE & (Z180_DMODE_SM | Z180_DMODE_DM) )
{
case 0x00: /* memory SAR0+1 to memory DAR0+1 */
- program_write_byte_8le(dar0++, program_read_byte_8le(sar0++));
+ memory_write_byte_8le(Z180.program, dar0++, memory_read_byte_8le(Z180.program, sar0++));
break;
case 0x04: /* memory SAR0-1 to memory DAR0+1 */
- program_write_byte_8le(dar0++, program_read_byte_8le(sar0--));
+ memory_write_byte_8le(Z180.program, dar0++, memory_read_byte_8le(Z180.program, sar0--));
break;
case 0x08: /* memory SAR0 fixed to memory DAR0+1 */
- program_write_byte_8le(dar0++, program_read_byte_8le(sar0));
+ memory_write_byte_8le(Z180.program, dar0++, memory_read_byte_8le(Z180.program, sar0));
break;
case 0x0c: /* I/O SAR0 fixed to memory DAR0+1 */
if (Z180.iol & Z180_DREQ0)
{
- program_write_byte_8le(dar0++, IN(sar0));
+ memory_write_byte_8le(Z180.program, dar0++, IN(sar0));
/* edge sensitive DREQ0 ? */
if (IO_DCNTL & Z180_DCNTL_DIM0)
{
@@ -1626,18 +1629,18 @@ static void z180_dma0(void)
}
break;
case 0x10: /* memory SAR0+1 to memory DAR0-1 */
- program_write_byte_8le(dar0--, program_read_byte_8le(sar0++));
+ memory_write_byte_8le(Z180.program, dar0--, memory_read_byte_8le(Z180.program, sar0++));
break;
case 0x14: /* memory SAR0-1 to memory DAR0-1 */
- program_write_byte_8le(dar0--, program_read_byte_8le(sar0--));
+ memory_write_byte_8le(Z180.program, dar0--, memory_read_byte_8le(Z180.program, sar0--));
break;
case 0x18: /* memory SAR0 fixed to memory DAR0-1 */
- program_write_byte_8le(dar0--, program_read_byte_8le(sar0));
+ memory_write_byte_8le(Z180.program, dar0--, memory_read_byte_8le(Z180.program, sar0));
break;
case 0x1c: /* I/O SAR0 fixed to memory DAR0-1 */
if (Z180.iol & Z180_DREQ0)
{
- program_write_byte_8le(dar0--, IN(sar0));
+ memory_write_byte_8le(Z180.program, dar0--, IN(sar0));
/* edge sensitive DREQ0 ? */
if (IO_DCNTL & Z180_DCNTL_DIM0)
{
@@ -1647,10 +1650,10 @@ static void z180_dma0(void)
}
break;
case 0x20: /* memory SAR0+1 to memory DAR0 fixed */
- program_write_byte_8le(dar0, program_read_byte_8le(sar0++));
+ memory_write_byte_8le(Z180.program, dar0, memory_read_byte_8le(Z180.program, sar0++));
break;
case 0x24: /* memory SAR0-1 to memory DAR0 fixed */
- program_write_byte_8le(dar0, program_read_byte_8le(sar0--));
+ memory_write_byte_8le(Z180.program, dar0, memory_read_byte_8le(Z180.program, sar0--));
break;
case 0x28: /* reserved */
break;
@@ -1659,7 +1662,7 @@ static void z180_dma0(void)
case 0x30: /* memory SAR0+1 to I/O DAR0 fixed */
if (Z180.iol & Z180_DREQ0)
{
- OUT(dar0, program_read_byte_8le(sar0++));
+ OUT(dar0, memory_read_byte_8le(Z180.program, sar0++));
/* edge sensitive DREQ0 ? */
if (IO_DCNTL & Z180_DCNTL_DIM0)
{
@@ -1671,7 +1674,7 @@ static void z180_dma0(void)
case 0x34: /* memory SAR0-1 to I/O DAR0 fixed */
if (Z180.iol & Z180_DREQ0)
{
- OUT(dar0, program_read_byte_8le(sar0--));
+ OUT(dar0, memory_read_byte_8le(Z180.program, sar0--));
/* edge sensitive DREQ0 ? */
if (IO_DCNTL & Z180_DCNTL_DIM0)
{
@@ -1736,16 +1739,16 @@ static void z180_dma1(void)
switch (IO_DCNTL & (Z180_DCNTL_DIM1 | Z180_DCNTL_DIM0))
{
case 0x00: /* memory MAR1+1 to I/O IAR1 fixed */
- io_write_byte_8le(iar1, program_read_byte_8le(mar1++));
+ memory_write_byte_8le(Z180.iospace, iar1, memory_read_byte_8le(Z180.program, mar1++));
break;
case 0x01: /* memory MAR1-1 to I/O IAR1 fixed */
- io_write_byte_8le(iar1, program_read_byte_8le(mar1--));
+ memory_write_byte_8le(Z180.iospace, iar1, memory_read_byte_8le(Z180.program, mar1--));
break;
case 0x02: /* I/O IAR1 fixed to memory MAR1+1 */
- program_write_byte_8le(mar1++, io_read_byte_8le(iar1));
+ memory_write_byte_8le(Z180.program, mar1++, memory_read_byte_8le(Z180.iospace, iar1));
break;
case 0x03: /* I/O IAR1 fixed to memory MAR1-1 */
- program_write_byte_8le(mar1--, io_read_byte_8le(iar1));
+ memory_write_byte_8le(Z180.program, mar1--, memory_read_byte_8le(Z180.iospace, iar1));
break;
}
@@ -1904,6 +1907,8 @@ static CPU_INIT( z180 )
Z180.daisy = z80daisy_init(device, device->static_config);
Z180.irq_callback = irqcallback;
Z180.device = device;
+ Z180.program = memory_find_address_space(device, ADDRESS_SPACE_PROGRAM);
+ Z180.iospace = memory_find_address_space(device, ADDRESS_SPACE_IO);
state_save_register_item("z180", device->tag, 0, Z180.AF.w.l);
state_save_register_item("z180", device->tag, 0, Z180.BC.w.l);
@@ -2023,6 +2028,8 @@ static CPU_RESET( z180 )
Z180.daisy = save_daisy;
Z180.irq_callback = save_irqcallback;
Z180.device = device;
+ Z180.program = memory_find_address_space(device, ADDRESS_SPACE_PROGRAM);
+ Z180.iospace = memory_find_address_space(device, ADDRESS_SPACE_IO);
_IX = _IY = 0xffff; /* IX and IY are FFFF after a reset! */
_F = ZF; /* Zero flag is set */
Z180.nmi_state = CLEAR_LINE;
diff --git a/src/emu/cpu/z180/z180dd.c b/src/emu/cpu/z180/z180dd.c
index e6aaf683cbd..8ba423c5b8f 100644
--- a/src/emu/cpu/z180/z180dd.c
+++ b/src/emu/cpu/z180/z180dd.c
@@ -1,6 +1,6 @@
OP(illegal,1) {
logerror("Z180 #%d ill. opcode $%02x $%02x\n",
- cpunum_get_active(), program_decrypted_read_byte((_PCD-1)&0xffff), program_decrypted_read_byte(_PCD));
+ cpunum_get_active(), memory_decrypted_read_byte(Z180.program, (_PCD-1)&0xffff), memory_decrypted_read_byte(Z180.program, _PCD));
}
/**********************************************************
diff --git a/src/emu/cpu/z180/z180ed.c b/src/emu/cpu/z180/z180ed.c
index cc4e1abc004..77d59255c4f 100644
--- a/src/emu/cpu/z180/z180ed.c
+++ b/src/emu/cpu/z180/z180ed.c
@@ -1,7 +1,7 @@
OP(illegal,2)
{
logerror("Z180 #%d ill. opcode $ed $%02x\n",
- cpunum_get_active(), program_decrypted_read_byte((_PCD-1)&0xffff));
+ cpunum_get_active(), memory_decrypted_read_byte(Z180.program, (_PCD-1)&0xffff));
}
/**********************************************************
diff --git a/src/emu/cpu/z180/z180ops.h b/src/emu/cpu/z180/z180ops.h
index a287f186cd1..b37dae29dec 100644
--- a/src/emu/cpu/z180/z180ops.h
+++ b/src/emu/cpu/z180/z180ops.h
@@ -24,7 +24,7 @@
***************************************************************/
#define IN(port) \
(((port ^ IO_IOCR) & 0xffc0) == 0) ? \
- z180_readcontrol(port) : io_read_byte_8le(port)
+ z180_readcontrol(port) : memory_read_byte_8le(Z180.iospace, port)
/***************************************************************
* Output a byte to given I/O port
@@ -32,7 +32,7 @@
#define OUT(port,value) \
if (((port ^ IO_IOCR) & 0xffc0) == 0) \
z180_writecontrol(port,value); \
- else io_write_byte_8le(port,value)
+ else memory_write_byte_8le(Z180.iospace,port,value)
/***************************************************************
* MMU calculate the memory managemant lookup table
@@ -68,7 +68,7 @@ INLINE void z180_mmu( void )
/***************************************************************
* Read a byte from given memory location
***************************************************************/
-#define RM(addr) program_read_byte_8le(MMU_REMAP_ADDR(addr))
+#define RM(addr) memory_read_byte_8le(Z180.program, MMU_REMAP_ADDR(addr))
UINT8 z180_readmem(offs_t offset)
{
return RM(offset);
@@ -77,7 +77,7 @@ UINT8 z180_readmem(offs_t offset)
/***************************************************************
* Write a byte to given memory location
***************************************************************/
-#define WM(addr,value) program_write_byte_8le(MMU_REMAP_ADDR(addr),value)
+#define WM(addr,value) memory_write_byte_8le(Z180.program, MMU_REMAP_ADDR(addr),value)
void z180_writemem(offs_t offset, UINT8 data)
{
WM(offset, data);
@@ -111,7 +111,7 @@ INLINE UINT8 ROP(void)
{
offs_t addr = _PCD;
_PC++;
- return program_decrypted_read_byte(MMU_REMAP_ADDR(addr));
+ return memory_decrypted_read_byte(Z180.program, MMU_REMAP_ADDR(addr));
}
/****************************************************************
@@ -124,14 +124,14 @@ INLINE UINT8 ARG(void)
{
offs_t addr = _PCD;
_PC++;
- return program_raw_read_byte(MMU_REMAP_ADDR(addr));
+ return memory_raw_read_byte(Z180.program, MMU_REMAP_ADDR(addr));
}
INLINE UINT32 ARG16(void)
{
offs_t addr = _PCD;
_PC += 2;
- return program_raw_read_byte(MMU_REMAP_ADDR(addr)) | (program_raw_read_byte(MMU_REMAP_ADDR(addr+1)) << 8);
+ return memory_raw_read_byte(Z180.program, MMU_REMAP_ADDR(addr)) | (memory_raw_read_byte(Z180.program, MMU_REMAP_ADDR(addr+1)) << 8);
}
/****************************************************************************
@@ -200,7 +200,7 @@ void z180_setOPbase(int pc)
} \
else \
{ \
- UINT8 op = program_decrypted_read_byte(_PCD); \
+ UINT8 op = memory_decrypted_read_byte(Z180.program, _PCD); \
if( _PCD == oldpc-1 ) \
{ \
/* NOP - JR $-1 or EI - JR $-1 */ \
diff --git a/src/emu/cpu/z8000/z8000.c b/src/emu/cpu/z8000/z8000.c
index f4b40e25e44..f4ae35d9e9f 100644
--- a/src/emu/cpu/z8000/z8000.c
+++ b/src/emu/cpu/z8000/z8000.c
@@ -43,6 +43,7 @@
*
*****************************************************************************/
+#define NO_LEGACY_MEMORY_HANDLERS 1
#include "debugger.h"
#include "z8000.h"
#include "z8000cpu.h"
@@ -79,6 +80,8 @@ typedef struct {
int irq_state[2]; /* IRQ line states (NVI, VI) */
cpu_irq_callback irq_callback;
const device_config *device;
+ const address_space *program;
+ const address_space *io;
} z8000_Regs;
static int z8000_ICount;
@@ -187,53 +190,53 @@ static UINT64 *const pRQ[16] = {
INLINE UINT16 RDOP(void)
{
- UINT16 res = program_decrypted_read_word(PC);
+ UINT16 res = memory_decrypted_read_word(Z.program, PC);
PC += 2;
return res;
}
INLINE UINT8 RDMEM_B(UINT16 addr)
{
- return program_read_byte_16be(addr);
+ return memory_read_byte_16be(Z.program, addr);
}
INLINE UINT16 RDMEM_W(UINT16 addr)
{
addr &= ~1;
- return program_read_word_16be(addr);
+ return memory_read_word_16be(Z.program, addr);
}
INLINE UINT32 RDMEM_L(UINT16 addr)
{
UINT32 result;
addr &= ~1;
- result = program_read_word_16be(addr) << 16;
- return result + program_read_word_16be(addr + 2);
+ result = memory_read_word_16be(Z.program, addr) << 16;
+ return result + memory_read_word_16be(Z.program, addr + 2);
}
INLINE void WRMEM_B(UINT16 addr, UINT8 value)
{
- program_write_byte_16be(addr, value);
+ memory_write_byte_16be(Z.program, addr, value);
}
INLINE void WRMEM_W(UINT16 addr, UINT16 value)
{
addr &= ~1;
- program_write_word_16be(addr, value);
+ memory_write_word_16be(Z.program, addr, value);
}
INLINE void WRMEM_L(UINT16 addr, UINT32 value)
{
addr &= ~1;
- program_write_word_16be(addr, value >> 16);
- program_write_word_16be((UINT16)(addr + 2), value & 0xffff);
+ memory_write_word_16be(Z.program, addr, value >> 16);
+ memory_write_word_16be(Z.program, (UINT16)(addr + 2), value & 0xffff);
}
INLINE UINT8 RDPORT_B(int mode, UINT16 addr)
{
if( mode == 0 )
{
- return io_read_byte_8le(addr);
+ return memory_read_byte_8le(Z.io, addr);
}
else
{
@@ -246,8 +249,8 @@ INLINE UINT16 RDPORT_W(int mode, UINT16 addr)
{
if( mode == 0 )
{
- return io_read_byte_8le((UINT16)(addr)) +
- (io_read_byte_8le((UINT16)(addr+1)) << 8);
+ return memory_read_byte_8le(Z.io, (UINT16)(addr)) +
+ (memory_read_byte_8le(Z.io, (UINT16)(addr+1)) << 8);
}
else
{
@@ -261,10 +264,10 @@ INLINE UINT32 RDPORT_L(int mode, UINT16 addr)
{
if( mode == 0 )
{
- return io_read_byte_8le((UINT16)(addr)) +
- (io_read_byte_8le((UINT16)(addr+1)) << 8) +
- (io_read_byte_8le((UINT16)(addr+2)) << 16) +
- (io_read_byte_8le((UINT16)(addr+3)) << 24);
+ return memory_read_byte_8le(Z.io, (UINT16)(addr)) +
+ (memory_read_byte_8le(Z.io, (UINT16)(addr+1)) << 8) +
+ (memory_read_byte_8le(Z.io, (UINT16)(addr+2)) << 16) +
+ (memory_read_byte_8le(Z.io, (UINT16)(addr+3)) << 24);
}
else
{
@@ -278,7 +281,7 @@ INLINE void WRPORT_B(int mode, UINT16 addr, UINT8 value)
{
if( mode == 0 )
{
- io_write_byte_8le(addr,value);
+ memory_write_byte_8le(Z.io, addr,value);
}
else
{
@@ -290,8 +293,8 @@ INLINE void WRPORT_W(int mode, UINT16 addr, UINT16 value)
{
if( mode == 0 )
{
- io_write_byte_8le((UINT16)(addr),value & 0xff);
- io_write_byte_8le((UINT16)(addr+1),(value >> 8) & 0xff);
+ memory_write_byte_8le(Z.io, (UINT16)(addr),value & 0xff);
+ memory_write_byte_8le(Z.io, (UINT16)(addr+1),(value >> 8) & 0xff);
}
else
{
@@ -304,10 +307,10 @@ INLINE void WRPORT_L(int mode, UINT16 addr, UINT32 value)
{
if( mode == 0 )
{
- io_write_byte_8le((UINT16)(addr),value & 0xff);
- io_write_byte_8le((UINT16)(addr+1),(value >> 8) & 0xff);
- io_write_byte_8le((UINT16)(addr+2),(value >> 16) & 0xff);
- io_write_byte_8le((UINT16)(addr+3),(value >> 24) & 0xff);
+ memory_write_byte_8le(Z.io, (UINT16)(addr),value & 0xff);
+ memory_write_byte_8le(Z.io, (UINT16)(addr+1),(value >> 8) & 0xff);
+ memory_write_byte_8le(Z.io, (UINT16)(addr+2),(value >> 16) & 0xff);
+ memory_write_byte_8le(Z.io, (UINT16)(addr+3),(value >> 24) & 0xff);
}
else
{
diff --git a/src/emu/cpu/z8000/z8000tbl.c b/src/emu/cpu/z8000/z8000tbl.c
index f437584e8e2..8e1afc7a87f 100644
--- a/src/emu/cpu/z8000/z8000tbl.c
+++ b/src/emu/cpu/z8000/z8000tbl.c
@@ -540,6 +540,11 @@ CPU_INIT( z8000 )
int i;
const Z8000_init *init;
+ Z.irq_callback = irqcallback;
+ Z.device = device;
+ Z.program = memory_find_address_space(device, ADDRESS_SPACE_PROGRAM);
+ Z.io = memory_find_address_space(device, ADDRESS_SPACE_IO);
+
/* already initialized? */
if( z8000_exec )
return;
@@ -582,9 +587,6 @@ CPU_INIT( z8000 )
z8000_exec[i].dasmflags = init->dasmflags;
}
}
-
- Z.irq_callback = irqcallback;
- Z.device = device;
}
void z8000_deinit(void)