diff options
author | 2008-11-23 01:24:32 +0000 | |
---|---|---|
committer | 2008-11-23 01:24:32 +0000 | |
commit | 3601d8880cbea5cdb9e1ebe734f1ae98106d66ca (patch) | |
tree | c5fd69cab88d7d3f8453b0b83db1c2c45e85022a /src | |
parent | 6885dcc750ae0455e6c6d4ae98248d39a1b6abe9 (diff) |
Remaining CPU cores updated to new functions.
Diffstat (limited to 'src')
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) |