diff options
| author | 2012-10-26 22:26:47 +0000 | |
|---|---|---|
| committer | 2012-10-26 22:26:47 +0000 | |
| commit | 8ee23744b54197fcc8c63f12fd1224bf6af31f05 (patch) | |
| tree | e686762ef021155d8558054ab5dd7ab1df7a74ff /src | |
| parent | a9b74bf2a34a97edba162c0496b6561ea5668ae1 (diff) | |
(MESS) c64: Fixed StarDOS cartridge. (nw)
Diffstat (limited to 'src')
| -rw-r--r-- | src/mess/machine/c64_stardos.c | 12 | ||||
| -rw-r--r-- | src/mess/machine/c64_stardos.h | 1 |
2 files changed, 12 insertions, 1 deletions
diff --git a/src/mess/machine/c64_stardos.c b/src/mess/machine/c64_stardos.c index f8342271066..469b44cc1d7 100644 --- a/src/mess/machine/c64_stardos.c +++ b/src/mess/machine/c64_stardos.c @@ -191,5 +191,15 @@ void c64_stardos_cartridge_device::c64_cd_w(address_space &space, offs_t offset, int c64_stardos_cartridge_device::c64_game_r(offs_t offset, int sphi2, int ba, int rw, int hiram) { - return !(ba & rw & ((offset & 0xe000) == 0xe000) & hiram); + return !(sphi2 && ba & rw & ((offset & 0xe000) == 0xe000) & hiram); +} + + +//------------------------------------------------- +// c64_exrom_r - EXROM read +//------------------------------------------------- + +int c64_stardos_cartridge_device::c64_exrom_r(offs_t offset, int sphi2, int ba, int rw, int hiram) +{ + return (BIT(offset, 13)) ? 1 : m_exrom; } diff --git a/src/mess/machine/c64_stardos.h b/src/mess/machine/c64_stardos.h index 35a48af85de..694a13dacb3 100644 --- a/src/mess/machine/c64_stardos.h +++ b/src/mess/machine/c64_stardos.h @@ -46,6 +46,7 @@ protected: virtual UINT8 c64_cd_r(address_space &space, offs_t offset, UINT8 data, int sphi2, int ba, int roml, int romh, int io1, int io2); virtual void c64_cd_w(address_space &space, offs_t offset, UINT8 data, int sphi2, int ba, int roml, int romh, int io1, int io2); virtual int c64_game_r(offs_t offset, int sphi2, int ba, int rw, int hiram); + virtual int c64_exrom_r(offs_t offset, int sphi2, int ba, int rw, int hiram); private: inline void charge_io1_capacitor(); |
