src/emu/cpu/m68000/m68000.h
| r10651 | r10652 | |
| 33 | 33 | M68K_CPU_TYPE_SCC68070 |
| 34 | 34 | }; |
| 35 | 35 | |
| 36 | // function codes |
| 37 | enum |
| 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 | |
| 36 | 46 | /* HMMU enable types for use with m68k_set_hmmu_enable() */ |
| 37 | 47 | #define M68K_HMMU_DISABLE 0 /* no translation */ |
| 38 | 48 | #define M68K_HMMU_ENABLE_II 1 /* Mac II style fixed translation */ |
| r10651 | r10652 | |
| 102 | 112 | void m68k_set_cmpild_callback(device_t *device, m68k_cmpild_func callback); |
| 103 | 113 | void m68k_set_rte_callback(device_t *device, m68k_rte_func callback); |
| 104 | 114 | void m68k_set_tas_callback(device_t *device, m68k_tas_func callback); |
| 105 | | bool m68k_is_in_supervisor_mode(device_t *device); |
| 115 | UINT16 m68k_get_fc(device_t *device); |
| 106 | 116 | |
| 107 | 117 | #endif /* __M68000_H__ */ |
src/mess/drivers/abc1600.c
| r10651 | r10652 | |
| 417 | 417 | |
| 418 | 418 | READ8_MEMBER( abc1600_state::mac_r ) |
| 419 | 419 | { |
| 420 | | bool supervisor = m68k_is_in_supervisor_mode(m_maincpu); |
| 421 | | |
| 420 | UINT16 fc = m68k_get_fc(m_maincpu); |
| 422 | 421 | UINT8 data = 0; |
| 423 | 422 | |
| 424 | | if (supervisor) |
| 423 | if (fc == M68K_FC_SUPERVISOR_DATA || fc == M68K_FC_SUPERVISOR_PROGRAM) |
| 425 | 424 | { |
| 426 | 425 | data = read_supervisor_memory(offset); |
| 427 | 426 | } |
| r10651 | r10652 | |
| 440 | 439 | |
| 441 | 440 | WRITE8_MEMBER( abc1600_state::mac_w ) |
| 442 | 441 | { |
| 443 | | bool supervisor = m68k_is_in_supervisor_mode(m_maincpu); |
| 442 | UINT16 fc = m68k_get_fc(m_maincpu); |
| 444 | 443 | |
| 445 | | if (supervisor) |
| 444 | if (fc == M68K_FC_SUPERVISOR_DATA || fc == M68K_FC_SUPERVISOR_PROGRAM) |
| 446 | 445 | { |
| 447 | 446 | write_supervisor_memory(offset, data); |
| 448 | 447 | } |