m37710: make memory helpers inline; remove more obsolete cruft (nw)

This commit is contained in:
Alex W. Jackson 2014-05-22 10:11:47 +00:00
parent e806dfd320
commit d5122094dd
11 changed files with 226 additions and 249 deletions

1
.gitattributes vendored
View File

@ -1770,6 +1770,7 @@ src/emu/cpu/lr35902/opc_main.h svneol=native#text/plain
src/emu/cpu/m37710/m37710.c svneol=native#text/plain
src/emu/cpu/m37710/m37710.h svneol=native#text/plain
src/emu/cpu/m37710/m37710cm.h svneol=native#text/plain
src/emu/cpu/m37710/m37710il.h svneol=native#text/plain
src/emu/cpu/m37710/m37710o0.c svneol=native#text/plain
src/emu/cpu/m37710/m37710o1.c svneol=native#text/plain
src/emu/cpu/m37710/m37710o2.c svneol=native#text/plain

View File

@ -1205,6 +1205,8 @@ endif
M37710DEPS = \
$(CPUSRC)/m37710/m37710.h \
$(CPUSRC)/m37710/m37710cm.h \
$(CPUSRC)/m37710/m37710il.h \
$(CPUSRC)/m37710/m37710op.h \
$(CPUSRC)/m37710/m7700ds.h

View File

@ -55,6 +55,7 @@
#include "debugger.h"
#include "m37710.h"
#include "m37710cm.h"
#include "m37710il.h"
#define M37710_DEBUG (0) // enables verbose logging for peripherals, etc.
@ -704,30 +705,6 @@ const m37710_cpu_device::execute_func m37710_cpu_device::m37710i_execute[4] =
/* internal functions */
void m37710_cpu_device::m37710i_push_8(UINT32 value)
{
m37710_write_8(REG_S, value);
REG_S = MAKE_UINT_16(REG_S-1);
}
void m37710_cpu_device::m37710i_push_16(UINT32 value)
{
m37710i_push_8(value>>8);
m37710i_push_8(value&0xff);
}
UINT32 m37710_cpu_device::m37710i_get_reg_p()
{
return (FLAG_N&0x80) |
((FLAG_V>>1)&0x40) |
FLAG_M |
FLAG_X |
FLAG_D |
FLAG_I |
((!FLAG_Z)<<1) |
((FLAG_C>>8)&1);
}
void m37710_cpu_device::m37710i_update_irqs()
{
int curirq, pending = LINE_IRQ;
@ -786,10 +763,8 @@ void m37710_cpu_device::m37710i_update_irqs()
m_ipl = curpri;
// then PB=0, PC=(vector)
REG_PB = 0;
REG_PC = m37710_read_8(m37710_irq_vectors[wantedIRQ]) |
m37710_read_8(m37710_irq_vectors[wantedIRQ]+1)<<8;
REG_PC = m37710_read_16(m37710_irq_vectors[wantedIRQ]);
// logerror("IRQ @ %06x\n", REG_PB | REG_PC);
m37710i_jumping(REG_PB | REG_PC);
}
}
@ -876,8 +851,7 @@ void m37710_cpu_device::device_reset()
m37710i_set_execution_mode(EXECUTION_MODE_M0X0);
/* Fetch the reset vector */
REG_PC = m37710_read_8(0xfffe) | (m37710_read_8(0xffff)<<8);
m37710i_jumping(REG_PB | REG_PC);
REG_PC = m37710_read_16(0xfffe);
}
/* Execute some instructions */
@ -894,7 +868,6 @@ void m37710_cpu_device::execute_run()
void m37710_cpu_device::m37710_set_pc(unsigned val)
{
REG_PC = MAKE_UINT_16(val);
m37710_jumping(REG_PB | REG_PC);
}
/* Get the current Stack Pointer */
@ -947,9 +920,6 @@ void m37710_cpu_device::m37710_restore_state()
{
// restore proper function pointers
m37710i_set_execution_mode((FLAG_M>>4) | (FLAG_X>>4));
// make sure the memory system can keep up
m37710i_jumping(REG_PB | REG_PC);
}
void m37710_cpu_device::device_start()
@ -1189,184 +1159,6 @@ void m37710_cpu_device::m37710i_set_execution_mode(UINT32 mode)
}
/* ======================================================================== */
/* ================================= MEMORY =============================== */
/* ======================================================================== */
UINT32 m37710_cpu_device::m37710i_read_8_normal(UINT32 address)
{
return m37710_read_8(address);
}
UINT32 m37710_cpu_device::m37710i_read_8_immediate(UINT32 address)
{
return m37710_read_8_immediate(address);
}
UINT32 m37710_cpu_device::m37710i_read_8_direct(UINT32 address)
{
return m37710_read_8(address);
}
void m37710_cpu_device::m37710i_write_8_normal(UINT32 address, UINT32 value)
{
m37710_write_8(address, value);
}
void m37710_cpu_device::m37710i_write_8_direct(UINT32 address, UINT32 value)
{
m37710_write_8(address, value);
}
UINT32 m37710_cpu_device::m37710i_read_16_normal(UINT32 address)
{
if (address & 1)
return m37710_read_8(address) | m37710_read_8(address+1)<<8;
else
return m37710_read_16(address);
}
UINT32 m37710_cpu_device::m37710i_read_16_immediate(UINT32 address)
{
if (address & 1)
return m37710_read_8_immediate(address) | m37710_read_8_immediate(address+1)<<8;
else
return m37710_read_16_immediate(address);
}
UINT32 m37710_cpu_device::m37710i_read_16_direct(UINT32 address)
{
if (address & 1)
return m37710_read_8(address) | m37710_read_8((address)+1)<<8;
else
return m37710_read_16(address);
}
void m37710_cpu_device::m37710i_write_16_normal(UINT32 address, UINT32 value)
{
if (address & 1)
{
m37710_write_8(address, value);
m37710_write_8(address+1, value>>8);
}
else
m37710_write_16(address, value);
}
void m37710_cpu_device::m37710i_write_16_direct(UINT32 address, UINT32 value)
{
if (address & 1)
{
m37710_write_8(address, value);
m37710_write_8(address+1, value>>8);
}
else
m37710_write_16(address, value);
}
UINT32 m37710_cpu_device::m37710i_read_24_normal(UINT32 address)
{
return m37710_read_16(address) |
(m37710_read_8(address+2)<<16);
}
UINT32 m37710_cpu_device::m37710i_read_24_immediate(UINT32 address)
{
return m37710_read_16_immediate(address) |
(m37710_read_8_immediate(address+2)<<16);
}
UINT32 m37710_cpu_device::m37710i_read_24_direct(UINT32 address)
{
return m37710_read_16(address) |
(m37710_read_8(address+2)<<16);
}
/* ======================================================================== */
/* ================================= STACK ================================ */
/* ======================================================================== */
UINT32 m37710_cpu_device::m37710i_pull_8()
{
REG_S = MAKE_UINT_16(REG_S+1);
return m37710i_read_8_normal(REG_S);
}
UINT32 m37710_cpu_device::m37710i_pull_16()
{
UINT32 res = m37710i_pull_8();
return res | (m37710i_pull_8() << 8);
}
void m37710_cpu_device::m37710i_push_24(UINT32 value)
{
m37710i_push_8(value>>16);
m37710i_push_8((value>>8)&0xff);
m37710i_push_8(value&0xff);
}
UINT32 m37710_cpu_device::m37710i_pull_24()
{
UINT32 res = m37710i_pull_8();
res |= m37710i_pull_8() << 8;
return res | (m37710i_pull_8() << 16);
}
/* ======================================================================== */
/* ============================ PROGRAM COUNTER =========================== */
/* ======================================================================== */
void m37710_cpu_device::m37710i_jump_16(UINT32 address)
{
REG_PC = MAKE_UINT_16(address);
m37710i_jumping(REG_PC);
}
void m37710_cpu_device::m37710i_jump_24(UINT32 address)
{
REG_PB = address&0xff0000;
REG_PC = MAKE_UINT_16(address);
m37710i_jumping(REG_PC);
}
void m37710_cpu_device::m37710i_branch_8(UINT32 offset)
{
REG_PC = MAKE_UINT_16(REG_PC + MAKE_INT_8(offset));
m37710i_branching(REG_PC);
}
void m37710_cpu_device::m37710i_branch_16(UINT32 offset)
{
REG_PC = MAKE_UINT_16(REG_PC + offset);
m37710i_branching(REG_PC);
}
/* ======================================================================== */
/* ============================ STATUS REGISTER =========================== */
/* ======================================================================== */
void m37710_cpu_device::m37710i_set_flag_i(UINT32 value)
{
value &= FLAGPOS_I;
if(!FLAG_I || value)
{
FLAG_I = value;
return;
}
FLAG_I = value;
}
void m37710_cpu_device::m37710i_set_reg_ipl(UINT32 value)
{
m_ipl = value & 7;
}
/* ======================================================================== */
/* =============================== INTERRUPTS ============================= */
/* ======================================================================== */
@ -1378,33 +1170,12 @@ void m37710_cpu_device::m37710i_interrupt_software(UINT32 vector)
m37710i_push_16(REG_PC);
m37710i_push_8(m_ipl);
m37710i_push_8(m37710i_get_reg_p());
m37710i_set_flag_i(IFLAG_SET);
FLAG_I = IFLAG_SET;
REG_PB = 0;
m37710i_jump_16(m37710i_read_16_normal(vector));
REG_PC = m37710_read_16(vector);
}
UINT32 m37710_cpu_device::EA_IMM8() {REG_PC += 1; return REG_PB | MAKE_UINT_16(REG_PC-1);}
UINT32 m37710_cpu_device::EA_IMM16() {REG_PC += 2; return REG_PB | MAKE_UINT_16(REG_PC-2);}
UINT32 m37710_cpu_device::EA_IMM24() {REG_PC += 3; return REG_PB | MAKE_UINT_16(REG_PC-3);}
UINT32 m37710_cpu_device::EA_D() {if(MAKE_UINT_8(REG_D)) CLK(1); return MAKE_UINT_16(REG_D + OPER_8_IMM());}
UINT32 m37710_cpu_device::EA_A() {return REG_DB | OPER_16_IMM();}
UINT32 m37710_cpu_device::EA_AL() {return OPER_24_IMM();}
UINT32 m37710_cpu_device::EA_DX() {return MAKE_UINT_16(REG_D + OPER_8_IMM() + REG_X);}
UINT32 m37710_cpu_device::EA_DY() {return MAKE_UINT_16(REG_D + OPER_8_IMM() + REG_Y);}
UINT32 m37710_cpu_device::EA_AX() {UINT32 tmp = EA_A(); if((tmp^(tmp+REG_X))&0xff00) CLK(1); return tmp + REG_X;}
UINT32 m37710_cpu_device::EA_ALX() {return EA_AL() + REG_X;}
UINT32 m37710_cpu_device::EA_AY() {UINT32 tmp = EA_A(); if((tmp^(tmp+REG_X))&0xff00) CLK(1); return tmp + REG_Y;}
UINT32 m37710_cpu_device::EA_DI() {return REG_DB | OPER_16_D();}
UINT32 m37710_cpu_device::EA_DLI() {return OPER_24_D();}
UINT32 m37710_cpu_device::EA_AI() {return read_16_A(OPER_16_IMM());}
UINT32 m37710_cpu_device::EA_ALI() {return OPER_24_A();}
UINT32 m37710_cpu_device::EA_DXI() {return REG_DB | OPER_16_DX();}
UINT32 m37710_cpu_device::EA_DIY() {UINT32 tmp = REG_DB | OPER_16_D(); if((tmp^(tmp+REG_X))&0xff00) CLK(1); return tmp + REG_Y;}
UINT32 m37710_cpu_device::EA_DLIY() {return OPER_24_D() + REG_Y;}
UINT32 m37710_cpu_device::EA_AXI() {return read_16_AXI(MAKE_UINT_16(OPER_16_IMM() + REG_X));}
UINT32 m37710_cpu_device::EA_S() {return MAKE_UINT_16(REG_S + OPER_8_IMM());}
UINT32 m37710_cpu_device::EA_SIY() {return MAKE_UINT_16(read_16_SIY(REG_S + OPER_8_IMM()) + REG_Y) | REG_DB;}
/* ======================================================================== */
/* ============================== END OF FILE ============================= */

View File

@ -238,9 +238,6 @@ private:
int m37710i_execute_M0X1(int cycles);
int m37710i_execute_M1X0(int cycles);
int m37710i_execute_M1X1(int cycles);
void m37710i_push_8(UINT32 value);
void m37710i_push_16(UINT32 value);
UINT32 m37710i_get_reg_p();
void m37710i_update_irqs();
void m37710_set_pc(unsigned val);
unsigned m37710_get_sp();
@ -262,7 +259,9 @@ private:
UINT32 m37710i_read_24_normal(UINT32 address);
UINT32 m37710i_read_24_immediate(UINT32 address);
UINT32 m37710i_read_24_direct(UINT32 address);
void m37710i_push_8(UINT32 value);
UINT32 m37710i_pull_8();
void m37710i_push_16(UINT32 value);
UINT32 m37710i_pull_16();
void m37710i_push_24(UINT32 value);
UINT32 m37710i_pull_24();
@ -270,7 +269,7 @@ private:
void m37710i_jump_24(UINT32 address);
void m37710i_branch_8(UINT32 offset);
void m37710i_branch_16(UINT32 offset);
void m37710i_set_flag_i(UINT32 value);
UINT32 m37710i_get_reg_p();
void m37710i_set_reg_ipl(UINT32 value);
void m37710i_interrupt_software(UINT32 vector);
void m37710i_set_flag_m0x0(UINT32 value);

View File

@ -3,9 +3,6 @@
#ifndef __M37710CM_H__
#define __M37710CM_H__
#define m37710i_branching(A)
#define m37710i_jumping(A)
/* ======================================================================== */
/* ================================ INCLUDES ============================== */
@ -25,11 +22,9 @@
#define m37710_read_8(addr) m_program->read_byte(addr)
#define m37710_write_8(addr,data) m_program->write_byte(addr,data)
#define m37710_read_8_immediate(A) m_direct->read_decrypted_byte(A, BYTE_XOR_LE(0))
#define m37710_read_16(addr) m_program->read_word(addr)
#define m37710_write_16(addr,data) m_program->write_word(addr,data)
#define m37710_read_16(addr) m_program->read_word_unaligned(addr)
#define m37710_write_16(addr,data) m_program->write_word_unaligned(addr,data)
#define m37710_read_16_immediate(A) m_direct->read_decrypted_word(A)
#define m37710_jumping(A)
#define m37710_branching(A)
/* ======================================================================== */

View File

@ -0,0 +1,206 @@
#pragma once
#ifndef __M37710IL_H__
#define __M37710IL_H__
/* ======================================================================== */
/* ================================= MEMORY =============================== */
/* ======================================================================== */
inline UINT32 m37710_cpu_device::m37710i_read_8_normal(UINT32 address)
{
return m37710_read_8(address);
}
inline UINT32 m37710_cpu_device::m37710i_read_8_immediate(UINT32 address)
{
return m37710_read_8_immediate(address);
}
inline UINT32 m37710_cpu_device::m37710i_read_8_direct(UINT32 address)
{
return m37710_read_8(address);
}
inline void m37710_cpu_device::m37710i_write_8_normal(UINT32 address, UINT32 value)
{
m37710_write_8(address, value);
}
inline void m37710_cpu_device::m37710i_write_8_direct(UINT32 address, UINT32 value)
{
m37710_write_8(address, value);
}
inline UINT32 m37710_cpu_device::m37710i_read_16_normal(UINT32 address)
{
return m37710_read_16(address);
}
inline UINT32 m37710_cpu_device::m37710i_read_16_immediate(UINT32 address)
{
if (address & 1)
return m37710_read_8_immediate(address) | (m37710_read_8_immediate(address+1)<<8);
else
return m37710_read_16_immediate(address);
}
inline UINT32 m37710_cpu_device::m37710i_read_16_direct(UINT32 address)
{
return m37710_read_16(address);
}
inline void m37710_cpu_device::m37710i_write_16_normal(UINT32 address, UINT32 value)
{
m37710_write_16(address, value);
}
inline void m37710_cpu_device::m37710i_write_16_direct(UINT32 address, UINT32 value)
{
m37710_write_16(address, value);
}
inline UINT32 m37710_cpu_device::m37710i_read_24_normal(UINT32 address)
{
if (address & 1)
return m37710_read_8(address) | (m37710_read_16(address+1)<<8);
else
return m37710_read_16(address) | (m37710_read_8(address+2)<<16);
}
inline UINT32 m37710_cpu_device::m37710i_read_24_immediate(UINT32 address)
{
if (address & 1)
return m37710_read_8_immediate(address) | (m37710_read_16_immediate(address+1)<<8);
else
return m37710_read_16_immediate(address) | (m37710_read_8_immediate(address+2)<<16);
}
inline UINT32 m37710_cpu_device::m37710i_read_24_direct(UINT32 address)
{
if (address & 1)
return m37710_read_8(address) | (m37710_read_16(address+1)<<8);
else
return m37710_read_16(address) | (m37710_read_8(address+2)<<16);
}
/* ======================================================================== */
/* ================================= STACK ================================ */
/* ======================================================================== */
inline void m37710_cpu_device::m37710i_push_8(UINT32 value)
{
m37710_write_8(REG_S, value);
REG_S = MAKE_UINT_16(REG_S-1);
}
inline UINT32 m37710_cpu_device::m37710i_pull_8()
{
REG_S = MAKE_UINT_16(REG_S+1);
return m37710_read_8(REG_S);
}
inline void m37710_cpu_device::m37710i_push_16(UINT32 value)
{
m37710i_push_8(value>>8);
m37710i_push_8(value);
}
inline UINT32 m37710_cpu_device::m37710i_pull_16()
{
UINT32 res = m37710i_pull_8();
return res | (m37710i_pull_8() << 8);
}
inline void m37710_cpu_device::m37710i_push_24(UINT32 value)
{
m37710i_push_8(value>>16);
m37710i_push_8((value>>8));
m37710i_push_8(value);
}
inline UINT32 m37710_cpu_device::m37710i_pull_24()
{
UINT32 res = m37710i_pull_8();
res |= m37710i_pull_8() << 8;
return res | (m37710i_pull_8() << 16);
}
/* ======================================================================== */
/* ============================ PROGRAM COUNTER =========================== */
/* ======================================================================== */
inline void m37710_cpu_device::m37710i_jump_16(UINT32 address)
{
REG_PC = MAKE_UINT_16(address);
}
inline void m37710_cpu_device::m37710i_jump_24(UINT32 address)
{
REG_PB = address&0xff0000;
REG_PC = MAKE_UINT_16(address);
}
inline void m37710_cpu_device::m37710i_branch_8(UINT32 offset)
{
REG_PC = MAKE_UINT_16(REG_PC + MAKE_INT_8(offset));
}
inline void m37710_cpu_device::m37710i_branch_16(UINT32 offset)
{
REG_PC = MAKE_UINT_16(REG_PC + offset);
}
/* ======================================================================== */
/* ============================ STATUS REGISTER =========================== */
/* ======================================================================== */
inline UINT32 m37710_cpu_device::m37710i_get_reg_p()
{
return (FLAG_N&0x80) |
((FLAG_V>>1)&0x40) |
FLAG_M |
FLAG_X |
FLAG_D |
FLAG_I |
((!FLAG_Z)<<1) |
((FLAG_C>>8)&1);
}
inline void m37710_cpu_device::m37710i_set_reg_ipl(UINT32 value)
{
m_ipl = value & 7;
}
/* ======================================================================== */
/* ============================= ADDRESS MODES ============================ */
/* ======================================================================== */
inline UINT32 m37710_cpu_device::EA_IMM8() {REG_PC += 1; return REG_PB | MAKE_UINT_16(REG_PC-1);}
inline UINT32 m37710_cpu_device::EA_IMM16() {REG_PC += 2; return REG_PB | MAKE_UINT_16(REG_PC-2);}
inline UINT32 m37710_cpu_device::EA_IMM24() {REG_PC += 3; return REG_PB | MAKE_UINT_16(REG_PC-3);}
inline UINT32 m37710_cpu_device::EA_D() {if(MAKE_UINT_8(REG_D)) CLK(1); return MAKE_UINT_16(REG_D + OPER_8_IMM());}
inline UINT32 m37710_cpu_device::EA_A() {return REG_DB | OPER_16_IMM();}
inline UINT32 m37710_cpu_device::EA_AL() {return OPER_24_IMM();}
inline UINT32 m37710_cpu_device::EA_DX() {return MAKE_UINT_16(REG_D + OPER_8_IMM() + REG_X);}
inline UINT32 m37710_cpu_device::EA_DY() {return MAKE_UINT_16(REG_D + OPER_8_IMM() + REG_Y);}
inline UINT32 m37710_cpu_device::EA_AX() {UINT32 tmp = EA_A(); if((tmp^(tmp+REG_X))&0xff00) CLK(1); return tmp + REG_X;}
inline UINT32 m37710_cpu_device::EA_ALX() {return EA_AL() + REG_X;}
inline UINT32 m37710_cpu_device::EA_AY() {UINT32 tmp = EA_A(); if((tmp^(tmp+REG_X))&0xff00) CLK(1); return tmp + REG_Y;}
inline UINT32 m37710_cpu_device::EA_DI() {return REG_DB | OPER_16_D();}
inline UINT32 m37710_cpu_device::EA_DLI() {return OPER_24_D();}
inline UINT32 m37710_cpu_device::EA_AI() {return read_16_A(OPER_16_IMM());}
inline UINT32 m37710_cpu_device::EA_ALI() {return OPER_24_A();}
inline UINT32 m37710_cpu_device::EA_DXI() {return REG_DB | OPER_16_DX();}
inline UINT32 m37710_cpu_device::EA_DIY() {UINT32 tmp = REG_DB | OPER_16_D(); if((tmp^(tmp+REG_X))&0xff00) CLK(1); return tmp + REG_Y;}
inline UINT32 m37710_cpu_device::EA_DLIY() {return OPER_24_D() + REG_Y;}
inline UINT32 m37710_cpu_device::EA_AXI() {return read_16_AXI(MAKE_UINT_16(OPER_16_IMM() + REG_X));}
inline UINT32 m37710_cpu_device::EA_S() {return MAKE_UINT_16(REG_S + OPER_8_IMM());}
inline UINT32 m37710_cpu_device::EA_SIY() {return MAKE_UINT_16(read_16_SIY(REG_S + OPER_8_IMM()) + REG_Y) | REG_DB;}
#endif /* __M37710IL_H__ */

View File

@ -1,5 +1,6 @@
#include "emu.h"
#include "debugger.h"
#include "m37710cm.h"
#include "m37710il.h"
#define EXECUTION_MODE EXECUTION_MODE_M0X0
#include "m37710op.h"

View File

@ -1,5 +1,6 @@
#include "emu.h"
#include "debugger.h"
#include "m37710cm.h"
#include "m37710il.h"
#define EXECUTION_MODE EXECUTION_MODE_M0X1
#include "m37710op.h"

View File

@ -1,5 +1,6 @@
#include "emu.h"
#include "debugger.h"
#include "m37710cm.h"
#include "m37710il.h"
#define EXECUTION_MODE EXECUTION_MODE_M1X0
#include "m37710op.h"

View File

@ -1,5 +1,6 @@
#include "emu.h"
#include "debugger.h"
#include "m37710cm.h"
#include "m37710il.h"
#define EXECUTION_MODE EXECUTION_MODE_M1X1
#include "m37710op.h"

View File

@ -88,7 +88,7 @@ void m37710_cpu_device::m37710i_set_reg_p(UINT32 value)
FLAG_Z = !(value & FLAGPOS_Z);
FLAG_C = value << 8;
m37710i_set_flag_mx(value);
m37710i_set_flag_i(value);
FLAG_I = value & FLAGPOS_I;
}
@ -485,7 +485,7 @@ void m37710_cpu_device::m37710i_set_reg_p(UINT32 value)
#undef OP_CLI
#define OP_CLI() \
CLK(CLK_OP + CLK_IMPLIED); \
m37710i_set_flag_i(IFLAG_CLEAR); \
FLAG_I = IFLAG_CLEAR; \
m37710i_update_irqs()
/* M37710 Clear oVerflow flag */
@ -1362,7 +1362,6 @@ void m37710_cpu_device::m37710i_set_reg_p(UINT32 value)
m37710i_set_reg_ipl(m37710i_pull_8()); \
m37710i_jump_16(m37710i_pull_16()); \
REG_PB = m37710i_pull_8() << 16; \
m37710i_jumping(REG_PB | REG_PC); \
m37710i_update_irqs()
/* M37710 Return from Subroutine Long */
@ -1506,7 +1505,7 @@ void m37710_cpu_device::m37710i_set_reg_p(UINT32 value)
#undef OP_SEI
#define OP_SEI() \
CLK(CLK_OP + CLK_IMPLIED); \
m37710i_set_flag_i(IFLAG_SET)
FLAG_I = IFLAG_SET
/* M37710 Set Program status word */
#undef OP_SEP