Revision: 18878
http://vice-emu.svn.sourceforge.net/vice-emu/?rev=18878&view=rev
Author: strik
Date: 2008-06-21 08:53:57 -0700 (Sat, 21 Jun 2008)
Log Message:
-----------
Fixed some obvious bugs. 17xxTester and GEOS 2.0 work now.
Modified Paths:
--------------
branches/spiro/vice-1.22.18-reu/vice/src/c64/reu.c
Modified: branches/spiro/vice-1.22.18-reu/vice/src/c64/reu.c
===================================================================
--- branches/spiro/vice-1.22.18-reu/vice/src/c64/reu.c 2008-06-21 02:25:26 UTC (rev 18877)
+++ branches/spiro/vice-1.22.18-reu/vice/src/c64/reu.c 2008-06-21 15:53:57 UTC (rev 18878)
@@ -406,11 +406,13 @@
{
BYTE retval = 0xff;
+ addr &= REU_REG_LAST_REG;
+
if (addr < 0x0b) { /*! \TODO remove magic number! */
io_source = IO_SOURCE_REU;
}
- switch (addr & REU_REG_LAST_REG) {
+ switch (addr) {
case REU_REG_R_STATUS:
retval = rec.status;
@@ -477,7 +479,9 @@
void REGPARM2 reu_store(WORD addr, BYTE byte)
{
- switch (addr & REU_REG_LAST_REG)
+ addr &= REU_REG_LAST_REG;
+
+ switch (addr)
{
case REU_REG_R_STATUS:
/* REC status register is Read Only */
@@ -489,26 +493,27 @@
case REU_REG_RW_BASEADDR_LOW:
rec.base_computer =
- rec.bank_reu_shadow = (rec.base_computer_shadow & 0xff00) | byte;
+ rec.base_computer_shadow = (rec.base_computer_shadow & 0xff00) | byte;
break;
case REU_REG_RW_BASEADDR_HIGH:
rec.base_computer =
- rec.bank_reu_shadow = (rec.base_computer_shadow & 0xff) | (byte << 8);
+ rec.base_computer_shadow = (rec.base_computer_shadow & 0xff) | (byte << 8);
break;
case REU_REG_RW_RAMADDR_LOW:
rec.base_reu =
- rec.base_reu_shadow = (rec.base_computer_shadow & 0xff00) | byte;
+ rec.base_reu_shadow = (rec.base_reu_shadow & 0xff00) | byte;
break;
case REU_REG_RW_RAMADDR_HIGH:
rec.base_reu =
- rec.base_reu_shadow = (rec.base_computer_shadow & 0xff) | (byte << 8);
+ rec.base_reu_shadow = (rec.base_reu_shadow & 0xff) | (byte << 8);
break;
case REU_REG_RW_BANK:
- //! \TODO
+ //! \TODO handle different expansions
+ rec.bank_reu = byte;
break;
case REU_REG_RW_BLOCKLEN_LOW:
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|