Previous 15994 Revisions Next

r10652 Wednesday 2nd March, 2011 at 16:19:26 UTC by Curt Coder
Synced with MAME.
[src/emu/cpu/m68000]m68000.h m68kcpu.c
[src/mess/drivers]abc1600.c

src/emu/cpu/m68000/m68000.h
r10651r10652
3333   M68K_CPU_TYPE_SCC68070
3434};
3535
36// function codes
37enum
38{
39   M68K_FC_USER_DATA = 1,
40   M68K_FC_USER_PROGRAM = 2,
41   M68K_FC_SUPERVISOR_DATA = 5,
42   M68K_FC_SUPERVISOR_PROGRAM = 6,
43   M68K_FC_INTERRUPT = 7
44};
45
3646/* HMMU enable types for use with m68k_set_hmmu_enable() */
3747#define M68K_HMMU_DISABLE   0   /* no translation */
3848#define M68K_HMMU_ENABLE_II   1   /* Mac II style fixed translation */
r10651r10652
102112void m68k_set_cmpild_callback(device_t *device, m68k_cmpild_func callback);
103113void m68k_set_rte_callback(device_t *device, m68k_rte_func callback);
104114void m68k_set_tas_callback(device_t *device, m68k_tas_func callback);
105bool m68k_is_in_supervisor_mode(device_t *device);
115UINT16 m68k_get_fc(device_t *device);
106116
107117#endif /* __M68000_H__ */
src/emu/cpu/m68000/m68kcpu.c
r10651r10652
15131513   m68k->tas_instr_callback = callback;
15141514}
15151515
1516bool m68k_is_in_supervisor_mode(device_t *device)
1516UINT16 m68k_get_fc(device_t *device)
15171517{
15181518   m68ki_cpu_core *m68k = get_safe_token(device);
1519   return m68k->s_flag;
1519   return m68k->mmu_tmp_fc;
15201520}
15211521
15221522
src/mess/drivers/abc1600.c
r10651r10652
417417
418418READ8_MEMBER( abc1600_state::mac_r )
419419{
420   bool supervisor = m68k_is_in_supervisor_mode(m_maincpu);
421
420   UINT16 fc = m68k_get_fc(m_maincpu);
422421   UINT8 data = 0;
423422
424   if (supervisor)
423   if (fc == M68K_FC_SUPERVISOR_DATA || fc == M68K_FC_SUPERVISOR_PROGRAM)
425424   {
426425      data = read_supervisor_memory(offset);
427426   }
r10651r10652
440439
441440WRITE8_MEMBER( abc1600_state::mac_w )
442441{
443   bool supervisor = m68k_is_in_supervisor_mode(m_maincpu);
442   UINT16 fc = m68k_get_fc(m_maincpu);
444443
445   if (supervisor)
444   if (fc == M68K_FC_SUPERVISOR_DATA || fc == M68K_FC_SUPERVISOR_PROGRAM)
446445   {
447446      write_supervisor_memory(offset, data);
448447   }

Previous 15994 Revisions Next


© 1998-2018 The MESS Team