shut up debugger

This commit is contained in:
Michaël Banaan Ananas 2014-07-20 23:50:35 +00:00
parent 5c318f762c
commit fe0d66561a
3 changed files with 16 additions and 12 deletions

View File

@ -20,14 +20,13 @@
* *
* TODO: * TODO:
* - dump CROM and emulate cpu at microinstruction level * - dump CROM and emulate cpu at microinstruction level
* - memory modes with IOCNT0, currently ignored * - memory modes with IOCNT0, currently always running in full expansion mode
* - timer event counter mode (timer control register, bit 6) * - timer event counter mode (timer control register, bit 6)
* - TMS70x1/2 serial port and timer 3 * - TMS70x1/2 serial port and timer 3
* - when they're needed, add TMS70Cx2, TMS7742, TMS77C82, SE70xxx * - when they're needed, add TMS70Cx2, TMS7742, TMS77C82, SE70xxx
* *
*****************************************************************************/ *****************************************************************************/
#include "debugger.h"
#include "tms7000.h" #include "tms7000.h"
// 7000 is the most basic one, 128 bytes internal RAM and no internal ROM. // 7000 is the most basic one, 128 bytes internal RAM and no internal ROM.
@ -55,6 +54,9 @@ const device_type TMS7041 = &device_creator<tms7041_device>;
const device_type TMS7002 = &device_creator<tms7002_device>; const device_type TMS7002 = &device_creator<tms7002_device>;
const device_type TMS7042 = &device_creator<tms7042_device>; const device_type TMS7042 = &device_creator<tms7042_device>;
// 70Cx2 is an update to 70x2 with some extra features. Due to some changes
// in peripheral file I/O, it is not backward compatible to 70x2.
// flag helpers // flag helpers
#define SR_C 0x80 /* Carry */ #define SR_C 0x80 /* Carry */
@ -514,7 +516,9 @@ READ8_MEMBER(tms7000_device::tms7000_pf_r)
{ {
// note: port B is write-only, reading it returns the output value as if ddr is 0xff // note: port B is write-only, reading it returns the output value as if ddr is 0xff
int port = offset / 2 - 2; int port = offset / 2 - 2;
return (m_io->read_byte(port) & ~m_port_ddr[port]) | (m_port_latch[port] & m_port_ddr[port]); if (!space.debugger_access())
return (m_io->read_byte(port) & ~m_port_ddr[port]) | (m_port_latch[port] & m_port_ddr[port]);
break;
} }
// port direction (note: 7000 doesn't support it for port A) // port direction (note: 7000 doesn't support it for port A)
@ -522,7 +526,8 @@ READ8_MEMBER(tms7000_device::tms7000_pf_r)
return m_port_ddr[offset / 2 - 2]; return m_port_ddr[offset / 2 - 2];
default: default:
logerror("'%s' (%04X): tms7000_pf_r @ $%04x\n", tag(), m_pc, offset); if (!space.debugger_access())
logerror("'%s' (%04X): tms7000_pf_r @ $%04x\n", tag(), m_pc, offset);
break; break;
} }

View File

@ -23,6 +23,7 @@
#define __TMS7000_H__ #define __TMS7000_H__
#include "emu.h" #include "emu.h"
#include "debugger.h"
enum { TMS7000_PC=1, TMS7000_SP, TMS7000_ST }; enum { TMS7000_PC=1, TMS7000_SP, TMS7000_ST };
@ -57,7 +58,7 @@ public:
tms7000_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); tms7000_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
tms7000_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, address_map_constructor internal, UINT32 info_flags, const char *shortname, const char *source); tms7000_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, address_map_constructor internal, UINT32 info_flags, const char *shortname, const char *source);
DECLARE_READ8_MEMBER(tms7000_unmapped_rf_r) { logerror("'%s' (%04X): unmapped_rf_r @ $%04x\n", tag(), m_pc, offset + 0x80); return 0; }; DECLARE_READ8_MEMBER(tms7000_unmapped_rf_r) { if (!space.debugger_access()) logerror("'%s' (%04X): unmapped_rf_r @ $%04x\n", tag(), m_pc, offset + 0x80); return 0; };
DECLARE_WRITE8_MEMBER(tms7000_unmapped_rf_w) { logerror("'%s' (%04X): unmapped_rf_w @ $%04x = $%02x\n", tag(), m_pc, offset + 0x80, data); }; DECLARE_WRITE8_MEMBER(tms7000_unmapped_rf_w) { logerror("'%s' (%04X): unmapped_rf_w @ $%04x = $%02x\n", tag(), m_pc, offset + 0x80, data); };
DECLARE_READ8_MEMBER(tms7000_pf_r); DECLARE_READ8_MEMBER(tms7000_pf_r);

View File

@ -50,13 +50,13 @@
provided that the machine is turned off properly. If a program is running, provided that the machine is turned off properly. If a program is running,
you may have to press BREAK before turning the CC-40 off. you may have to press BREAK before turning the CC-40 off.
To run a cartridge that doesn't automatically boot, use the command To run a cartridge, usually the command run"dir" shows which program(s)
run"dir" to see which program(s) can be loaded. Load a program with can be loaded. Load a program by pressing the RUN key while viewing the list,
run"<shortname of program in list>" or manually with the command run"<shortname of program in list>"
TODO: TODO:
- some strange bugs with cartridge software, maybe TMS7000 bug? - some strange bugs with Games I cartridge, bad dump or emulation bug?
- other RAM configurations (6KB(default), 12KB, 18KB, external) - other RAM configurations (6KB(default), 12KB, 18KB, external)
- Hexbus interface and peripherals - Hexbus interface and peripherals
- HD44100 is not accessed by the CPU, is it connected to the HD44780? - HD44100 is not accessed by the CPU, is it connected to the HD44780?
@ -309,9 +309,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, cc40_state )
AM_RANGE(0x1000, 0x17ff) AM_RAM AM_SHARE("nvram2") AM_RANGE(0x1000, 0x17ff) AM_RAM AM_SHARE("nvram2")
AM_RANGE(0x3000, 0x37ff) AM_RAM AM_SHARE("nvram3") AM_RANGE(0x3000, 0x37ff) AM_RAM AM_SHARE("nvram3")
AM_RANGE(0x0000, 0x4fff) AM_UNMAP // cartridge rom is at $5000-$cfff - direct address, not relative AM_RANGE(0x5000, 0xcfff) AM_ROMBANK("cartbank")
AM_RANGE(0x0000, 0xcfff) AM_MASK(0x7fff) AM_ROMBANK("cartbank")
AM_RANGE(0xd000, 0xefff) AM_ROMBANK("sysbank") AM_RANGE(0xd000, 0xefff) AM_ROMBANK("sysbank")
ADDRESS_MAP_END ADDRESS_MAP_END