mirror of https://github.com/stella-emu/stella.git
The disassembly is now properly updated when performing a 'reset'
or rewind command. Updated 'FE' bankswitch scheme to the new disassembly infrastructure; it now properly indicates that it has two banks, and keeps track of when the bank changes. Some cleanups to CartXXX classes; most methods didn't need to be virtual. git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1971 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
parent
dc22bc6b04
commit
9c73d139de
|
@ -1097,6 +1097,7 @@ void DebuggerParser::executeRam()
|
||||||
void DebuggerParser::executeReset()
|
void DebuggerParser::executeReset()
|
||||||
{
|
{
|
||||||
debugger->reset();
|
debugger->reset();
|
||||||
|
debugger->myRom->invalidate();
|
||||||
commandResult = "reset CPU";
|
commandResult = "reset CPU";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1105,7 +1106,10 @@ void DebuggerParser::executeReset()
|
||||||
void DebuggerParser::executeRewind()
|
void DebuggerParser::executeRewind()
|
||||||
{
|
{
|
||||||
if(debugger->rewindState())
|
if(debugger->rewindState())
|
||||||
|
{
|
||||||
|
debugger->myRom->invalidate();
|
||||||
commandResult = "rewind by one level";
|
commandResult = "rewind by one level";
|
||||||
|
}
|
||||||
else
|
else
|
||||||
commandResult = "no states left to rewind";
|
commandResult = "no states left to rewind";
|
||||||
}
|
}
|
||||||
|
|
|
@ -123,13 +123,15 @@ void RomWidget::loadConfig()
|
||||||
myListIsDirty |= cart.disassemble(myAutocode->getSelectedTag(), myListIsDirty);
|
myListIsDirty |= cart.disassemble(myAutocode->getSelectedTag(), myListIsDirty);
|
||||||
if(myListIsDirty)
|
if(myListIsDirty)
|
||||||
{
|
{
|
||||||
|
cerr << "list is dirty, re-disassembled\n";
|
||||||
myRomList->setList(cart.disassemblyList(), dbg.breakpoints());
|
myRomList->setList(cart.disassemblyList(), dbg.breakpoints());
|
||||||
myListIsDirty = false;
|
myListIsDirty = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update romlist to point to current PC
|
// Update romlist to point to current PC
|
||||||
int pcline = cart.addressToLine(dbg.cpuDebug().pc());
|
int pcline = cart.addressToLine(dbg.cpuDebug().pc());
|
||||||
if(pcline > 0)
|
cerr << "PC = " << hex << dbg.cpuDebug().pc() << ", line = " << dec << pcline << endl;
|
||||||
|
if(pcline >= 0)
|
||||||
myRomList->setHighlighted(pcline);
|
myRomList->setHighlighted(pcline);
|
||||||
|
|
||||||
// Set current bank and number of banks
|
// Set current bank and number of banks
|
||||||
|
|
|
@ -40,7 +40,7 @@ class RomWidget : public Widget, public CommandSender
|
||||||
RomWidget(GuiObject* boss, const GUI::Font& font, int x, int y);
|
RomWidget(GuiObject* boss, const GUI::Font& font, int x, int y);
|
||||||
virtual ~RomWidget();
|
virtual ~RomWidget();
|
||||||
|
|
||||||
void invalidate() { myListIsDirty = true; }
|
void invalidate() { myListIsDirty = true; loadConfig(); }
|
||||||
|
|
||||||
void handleCommand(CommandSender* sender, int cmd, int data, int id);
|
void handleCommand(CommandSender* sender, int cmd, int data, int id);
|
||||||
void loadConfig();
|
void loadConfig();
|
||||||
|
|
|
@ -106,11 +106,14 @@ class Cartridge : public Device
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Answer whether the bank has changed since the last time this
|
Answer whether the bank has changed since the last time this
|
||||||
method was called.
|
method was called. Each cart class is able to override this
|
||||||
|
method to deal with its specific functionality. In those cases,
|
||||||
|
the derived class is still responsible for calling this base
|
||||||
|
function.
|
||||||
|
|
||||||
@return Whether the bank was changed
|
@return Whether the bank was changed
|
||||||
*/
|
*/
|
||||||
bool bankChanged();
|
virtual bool bankChanged();
|
||||||
|
|
||||||
#ifdef DEBUGGER_SUPPORT
|
#ifdef DEBUGGER_SUPPORT
|
||||||
const RamAreaList& ramAreas() { return myRamAreaList; }
|
const RamAreaList& ramAreas() { return myRamAreaList; }
|
||||||
|
|
|
@ -48,7 +48,7 @@ class Cartridge0840 : public Cartridge
|
||||||
/**
|
/**
|
||||||
Reset device to its power-on state
|
Reset device to its power-on state
|
||||||
*/
|
*/
|
||||||
virtual void reset();
|
void reset();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Install cartridge in the specified system. Invoked by the system
|
Install cartridge in the specified system. Invoked by the system
|
||||||
|
@ -56,26 +56,26 @@ class Cartridge0840 : public Cartridge
|
||||||
|
|
||||||
@param system The system the device should install itself in
|
@param system The system the device should install itself in
|
||||||
*/
|
*/
|
||||||
virtual void install(System& system);
|
void install(System& system);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Install pages for the specified bank in the system.
|
Install pages for the specified bank in the system.
|
||||||
|
|
||||||
@param bank The bank that should be installed in the system
|
@param bank The bank that should be installed in the system
|
||||||
*/
|
*/
|
||||||
virtual void bank(uInt16 bank);
|
void bank(uInt16 bank);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Get the current bank.
|
Get the current bank.
|
||||||
|
|
||||||
@return The current bank, or -1 if bankswitching not supported
|
@return The current bank, or -1 if bankswitching not supported
|
||||||
*/
|
*/
|
||||||
virtual int bank();
|
int bank();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Query the number of banks supported by the cartridge.
|
Query the number of banks supported by the cartridge.
|
||||||
*/
|
*/
|
||||||
virtual int bankCount();
|
int bankCount();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Patch the cartridge ROM.
|
Patch the cartridge ROM.
|
||||||
|
@ -84,7 +84,7 @@ class Cartridge0840 : public Cartridge
|
||||||
@param value The value to place into the address
|
@param value The value to place into the address
|
||||||
@return Success or failure of the patch operation
|
@return Success or failure of the patch operation
|
||||||
*/
|
*/
|
||||||
virtual bool patch(uInt16 address, uInt8 value);
|
bool patch(uInt16 address, uInt8 value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Access the internal ROM image for this cartridge.
|
Access the internal ROM image for this cartridge.
|
||||||
|
@ -92,7 +92,7 @@ class Cartridge0840 : public Cartridge
|
||||||
@param size Set to the size of the internal ROM image data
|
@param size Set to the size of the internal ROM image data
|
||||||
@return A pointer to the internal ROM image data
|
@return A pointer to the internal ROM image data
|
||||||
*/
|
*/
|
||||||
virtual uInt8* getImage(int& size);
|
uInt8* getImage(int& size);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Save the current state of this cart to the given Serializer.
|
Save the current state of this cart to the given Serializer.
|
||||||
|
@ -100,7 +100,7 @@ class Cartridge0840 : public Cartridge
|
||||||
@param out The Serializer object to use
|
@param out The Serializer object to use
|
||||||
@return False on any errors, else true
|
@return False on any errors, else true
|
||||||
*/
|
*/
|
||||||
virtual bool save(Serializer& out) const;
|
bool save(Serializer& out) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Load the current state of this cart from the given Serializer.
|
Load the current state of this cart from the given Serializer.
|
||||||
|
@ -108,14 +108,14 @@ class Cartridge0840 : public Cartridge
|
||||||
@param in The Serializer object to use
|
@param in The Serializer object to use
|
||||||
@return False on any errors, else true
|
@return False on any errors, else true
|
||||||
*/
|
*/
|
||||||
virtual bool load(Serializer& in);
|
bool load(Serializer& in);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Get a descriptor for the device name (used in error checking).
|
Get a descriptor for the device name (used in error checking).
|
||||||
|
|
||||||
@return The name of the object
|
@return The name of the object
|
||||||
*/
|
*/
|
||||||
virtual string name() const { return "Cartridge0840"; }
|
string name() const { return "Cartridge0840"; }
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
|
@ -123,7 +123,7 @@ class Cartridge0840 : public Cartridge
|
||||||
|
|
||||||
@return The byte at the specified address
|
@return The byte at the specified address
|
||||||
*/
|
*/
|
||||||
virtual uInt8 peek(uInt16 address);
|
uInt8 peek(uInt16 address);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Change the byte at the specified address to the given value
|
Change the byte at the specified address to the given value
|
||||||
|
@ -131,7 +131,7 @@ class Cartridge0840 : public Cartridge
|
||||||
@param address The address where the value should be stored
|
@param address The address where the value should be stored
|
||||||
@param value The value to be stored at the address
|
@param value The value to be stored at the address
|
||||||
*/
|
*/
|
||||||
virtual void poke(uInt16 address, uInt8 value);
|
void poke(uInt16 address, uInt8 value);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// The 8K ROM image of the cartridge
|
// The 8K ROM image of the cartridge
|
||||||
|
|
|
@ -52,7 +52,7 @@ class Cartridge2K : public Cartridge
|
||||||
/**
|
/**
|
||||||
Reset cartridge to its power-on state
|
Reset cartridge to its power-on state
|
||||||
*/
|
*/
|
||||||
virtual void reset();
|
void reset();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Install cartridge in the specified system. Invoked by the system
|
Install cartridge in the specified system. Invoked by the system
|
||||||
|
@ -60,26 +60,26 @@ class Cartridge2K : public Cartridge
|
||||||
|
|
||||||
@param system The system the device should install itself in
|
@param system The system the device should install itself in
|
||||||
*/
|
*/
|
||||||
virtual void install(System& system);
|
void install(System& system);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Install pages for the specified bank in the system.
|
Install pages for the specified bank in the system.
|
||||||
|
|
||||||
@param bank The bank that should be installed in the system
|
@param bank The bank that should be installed in the system
|
||||||
*/
|
*/
|
||||||
virtual void bank(uInt16 bank);
|
void bank(uInt16 bank);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Get the current bank.
|
Get the current bank.
|
||||||
|
|
||||||
@return The current bank, or -1 if bankswitching not supported
|
@return The current bank, or -1 if bankswitching not supported
|
||||||
*/
|
*/
|
||||||
virtual int bank();
|
int bank();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Query the number of banks supported by the cartridge.
|
Query the number of banks supported by the cartridge.
|
||||||
*/
|
*/
|
||||||
virtual int bankCount();
|
int bankCount();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Patch the cartridge ROM.
|
Patch the cartridge ROM.
|
||||||
|
@ -88,7 +88,7 @@ class Cartridge2K : public Cartridge
|
||||||
@param value The value to place into the address
|
@param value The value to place into the address
|
||||||
@return Success or failure of the patch operation
|
@return Success or failure of the patch operation
|
||||||
*/
|
*/
|
||||||
virtual bool patch(uInt16 address, uInt8 value);
|
bool patch(uInt16 address, uInt8 value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Access the internal ROM image for this cartridge.
|
Access the internal ROM image for this cartridge.
|
||||||
|
@ -96,7 +96,7 @@ class Cartridge2K : public Cartridge
|
||||||
@param size Set to the size of the internal ROM image data
|
@param size Set to the size of the internal ROM image data
|
||||||
@return A pointer to the internal ROM image data
|
@return A pointer to the internal ROM image data
|
||||||
*/
|
*/
|
||||||
virtual uInt8* getImage(int& size);
|
uInt8* getImage(int& size);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Save the current state of this cart to the given Serializer.
|
Save the current state of this cart to the given Serializer.
|
||||||
|
@ -104,7 +104,7 @@ class Cartridge2K : public Cartridge
|
||||||
@param out The Serializer object to use
|
@param out The Serializer object to use
|
||||||
@return False on any errors, else true
|
@return False on any errors, else true
|
||||||
*/
|
*/
|
||||||
virtual bool save(Serializer& out) const;
|
bool save(Serializer& out) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Load the current state of this cart from the given Serializer.
|
Load the current state of this cart from the given Serializer.
|
||||||
|
@ -112,14 +112,14 @@ class Cartridge2K : public Cartridge
|
||||||
@param in The Serializer object to use
|
@param in The Serializer object to use
|
||||||
@return False on any errors, else true
|
@return False on any errors, else true
|
||||||
*/
|
*/
|
||||||
virtual bool load(Serializer& in);
|
bool load(Serializer& in);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Get a descriptor for the device name (used in error checking).
|
Get a descriptor for the device name (used in error checking).
|
||||||
|
|
||||||
@return The name of the object
|
@return The name of the object
|
||||||
*/
|
*/
|
||||||
virtual string name() const { return "Cartridge2K"; }
|
string name() const { return "Cartridge2K"; }
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
|
@ -127,7 +127,7 @@ class Cartridge2K : public Cartridge
|
||||||
|
|
||||||
@return The byte at the specified address
|
@return The byte at the specified address
|
||||||
*/
|
*/
|
||||||
virtual uInt8 peek(uInt16 address);
|
uInt8 peek(uInt16 address);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Change the byte at the specified address to the given value
|
Change the byte at the specified address to the given value
|
||||||
|
@ -135,7 +135,7 @@ class Cartridge2K : public Cartridge
|
||||||
@param address The address where the value should be stored
|
@param address The address where the value should be stored
|
||||||
@param value The value to be stored at the address
|
@param value The value to be stored at the address
|
||||||
*/
|
*/
|
||||||
virtual void poke(uInt16 address, uInt8 value);
|
void poke(uInt16 address, uInt8 value);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// Pointer to a dynamically allocated ROM image of the cartridge
|
// Pointer to a dynamically allocated ROM image of the cartridge
|
||||||
|
|
|
@ -57,7 +57,7 @@ class Cartridge3F : public Cartridge
|
||||||
/**
|
/**
|
||||||
Reset device to its power-on state
|
Reset device to its power-on state
|
||||||
*/
|
*/
|
||||||
virtual void reset();
|
void reset();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Install cartridge in the specified system. Invoked by the system
|
Install cartridge in the specified system. Invoked by the system
|
||||||
|
@ -65,26 +65,26 @@ class Cartridge3F : public Cartridge
|
||||||
|
|
||||||
@param system The system the device should install itself in
|
@param system The system the device should install itself in
|
||||||
*/
|
*/
|
||||||
virtual void install(System& system);
|
void install(System& system);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Install pages for the specified bank in the system.
|
Install pages for the specified bank in the system.
|
||||||
|
|
||||||
@param bank The bank that should be installed in the system
|
@param bank The bank that should be installed in the system
|
||||||
*/
|
*/
|
||||||
virtual void bank(uInt16 bank);
|
void bank(uInt16 bank);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Get the current bank.
|
Get the current bank.
|
||||||
|
|
||||||
@return The current bank, or -1 if bankswitching not supported
|
@return The current bank, or -1 if bankswitching not supported
|
||||||
*/
|
*/
|
||||||
virtual int bank();
|
int bank();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Query the number of banks supported by the cartridge.
|
Query the number of banks supported by the cartridge.
|
||||||
*/
|
*/
|
||||||
virtual int bankCount();
|
int bankCount();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Patch the cartridge ROM.
|
Patch the cartridge ROM.
|
||||||
|
@ -93,7 +93,7 @@ class Cartridge3F : public Cartridge
|
||||||
@param value The value to place into the address
|
@param value The value to place into the address
|
||||||
@return Success or failure of the patch operation
|
@return Success or failure of the patch operation
|
||||||
*/
|
*/
|
||||||
virtual bool patch(uInt16 address, uInt8 value);
|
bool patch(uInt16 address, uInt8 value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Access the internal ROM image for this cartridge.
|
Access the internal ROM image for this cartridge.
|
||||||
|
@ -101,7 +101,7 @@ class Cartridge3F : public Cartridge
|
||||||
@param size Set to the size of the internal ROM image data
|
@param size Set to the size of the internal ROM image data
|
||||||
@return A pointer to the internal ROM image data
|
@return A pointer to the internal ROM image data
|
||||||
*/
|
*/
|
||||||
virtual uInt8* getImage(int& size);
|
uInt8* getImage(int& size);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Save the current state of this cart to the given Serializer.
|
Save the current state of this cart to the given Serializer.
|
||||||
|
@ -109,7 +109,7 @@ class Cartridge3F : public Cartridge
|
||||||
@param out The Serializer object to use
|
@param out The Serializer object to use
|
||||||
@return False on any errors, else true
|
@return False on any errors, else true
|
||||||
*/
|
*/
|
||||||
virtual bool save(Serializer& out) const;
|
bool save(Serializer& out) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Load the current state of this cart from the given Serializer.
|
Load the current state of this cart from the given Serializer.
|
||||||
|
@ -117,14 +117,14 @@ class Cartridge3F : public Cartridge
|
||||||
@param in The Serializer object to use
|
@param in The Serializer object to use
|
||||||
@return False on any errors, else true
|
@return False on any errors, else true
|
||||||
*/
|
*/
|
||||||
virtual bool load(Serializer& in);
|
bool load(Serializer& in);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Get a descriptor for the device name (used in error checking).
|
Get a descriptor for the device name (used in error checking).
|
||||||
|
|
||||||
@return The name of the object
|
@return The name of the object
|
||||||
*/
|
*/
|
||||||
virtual string name() const { return "Cartridge3F"; }
|
string name() const { return "Cartridge3F"; }
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
|
@ -132,7 +132,7 @@ class Cartridge3F : public Cartridge
|
||||||
|
|
||||||
@return The byte at the specified address
|
@return The byte at the specified address
|
||||||
*/
|
*/
|
||||||
virtual uInt8 peek(uInt16 address);
|
uInt8 peek(uInt16 address);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Change the byte at the specified address to the given value
|
Change the byte at the specified address to the given value
|
||||||
|
@ -140,7 +140,7 @@ class Cartridge3F : public Cartridge
|
||||||
@param address The address where the value should be stored
|
@param address The address where the value should be stored
|
||||||
@param value The value to be stored at the address
|
@param value The value to be stored at the address
|
||||||
*/
|
*/
|
||||||
virtual void poke(uInt16 address, uInt8 value);
|
void poke(uInt16 address, uInt8 value);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// Indicates which bank is currently active for the first segment
|
// Indicates which bank is currently active for the first segment
|
||||||
|
|
|
@ -50,7 +50,7 @@ class Cartridge4K : public Cartridge
|
||||||
/**
|
/**
|
||||||
Reset cartridge to its power-on state
|
Reset cartridge to its power-on state
|
||||||
*/
|
*/
|
||||||
virtual void reset();
|
void reset();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Install cartridge in the specified system. Invoked by the system
|
Install cartridge in the specified system. Invoked by the system
|
||||||
|
@ -58,26 +58,26 @@ class Cartridge4K : public Cartridge
|
||||||
|
|
||||||
@param system The system the device should install itself in
|
@param system The system the device should install itself in
|
||||||
*/
|
*/
|
||||||
virtual void install(System& system);
|
void install(System& system);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Install pages for the specified bank in the system.
|
Install pages for the specified bank in the system.
|
||||||
|
|
||||||
@param bank The bank that should be installed in the system
|
@param bank The bank that should be installed in the system
|
||||||
*/
|
*/
|
||||||
virtual void bank(uInt16 bank);
|
void bank(uInt16 bank);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Get the current bank.
|
Get the current bank.
|
||||||
|
|
||||||
@return The current bank, or -1 if bankswitching not supported
|
@return The current bank, or -1 if bankswitching not supported
|
||||||
*/
|
*/
|
||||||
virtual int bank();
|
int bank();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Query the number of banks supported by the cartridge.
|
Query the number of banks supported by the cartridge.
|
||||||
*/
|
*/
|
||||||
virtual int bankCount();
|
int bankCount();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Patch the cartridge ROM.
|
Patch the cartridge ROM.
|
||||||
|
@ -86,7 +86,7 @@ class Cartridge4K : public Cartridge
|
||||||
@param value The value to place into the address
|
@param value The value to place into the address
|
||||||
@return Success or failure of the patch operation
|
@return Success or failure of the patch operation
|
||||||
*/
|
*/
|
||||||
virtual bool patch(uInt16 address, uInt8 value);
|
bool patch(uInt16 address, uInt8 value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Access the internal ROM image for this cartridge.
|
Access the internal ROM image for this cartridge.
|
||||||
|
@ -94,7 +94,7 @@ class Cartridge4K : public Cartridge
|
||||||
@param size Set to the size of the internal ROM image data
|
@param size Set to the size of the internal ROM image data
|
||||||
@return A pointer to the internal ROM image data
|
@return A pointer to the internal ROM image data
|
||||||
*/
|
*/
|
||||||
virtual uInt8* getImage(int& size);
|
uInt8* getImage(int& size);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Save the current state of this cart to the given Serializer.
|
Save the current state of this cart to the given Serializer.
|
||||||
|
@ -102,7 +102,7 @@ class Cartridge4K : public Cartridge
|
||||||
@param out The Serializer object to use
|
@param out The Serializer object to use
|
||||||
@return False on any errors, else true
|
@return False on any errors, else true
|
||||||
*/
|
*/
|
||||||
virtual bool save(Serializer& out) const;
|
bool save(Serializer& out) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Load the current state of this cart from the given Serializer.
|
Load the current state of this cart from the given Serializer.
|
||||||
|
@ -110,14 +110,14 @@ class Cartridge4K : public Cartridge
|
||||||
@param in The Serializer object to use
|
@param in The Serializer object to use
|
||||||
@return False on any errors, else true
|
@return False on any errors, else true
|
||||||
*/
|
*/
|
||||||
virtual bool load(Serializer& in);
|
bool load(Serializer& in);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Get a descriptor for the device name (used in error checking).
|
Get a descriptor for the device name (used in error checking).
|
||||||
|
|
||||||
@return The name of the object
|
@return The name of the object
|
||||||
*/
|
*/
|
||||||
virtual string name() const { return "Cartridge4K"; }
|
string name() const { return "Cartridge4K"; }
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
|
@ -125,7 +125,7 @@ class Cartridge4K : public Cartridge
|
||||||
|
|
||||||
@return The byte at the specified address
|
@return The byte at the specified address
|
||||||
*/
|
*/
|
||||||
virtual uInt8 peek(uInt16 address);
|
uInt8 peek(uInt16 address);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Change the byte at the specified address to the given value
|
Change the byte at the specified address to the given value
|
||||||
|
@ -133,7 +133,7 @@ class Cartridge4K : public Cartridge
|
||||||
@param address The address where the value should be stored
|
@param address The address where the value should be stored
|
||||||
@param value The value to be stored at the address
|
@param value The value to be stored at the address
|
||||||
*/
|
*/
|
||||||
virtual void poke(uInt16 address, uInt8 value);
|
void poke(uInt16 address, uInt8 value);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// The 4K ROM image for the cartridge
|
// The 4K ROM image for the cartridge
|
||||||
|
|
|
@ -54,7 +54,7 @@ class CartridgeEF : public Cartridge
|
||||||
/**
|
/**
|
||||||
Reset device to its power-on state
|
Reset device to its power-on state
|
||||||
*/
|
*/
|
||||||
virtual void reset();
|
void reset();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Install cartridge in the specified system. Invoked by the system
|
Install cartridge in the specified system. Invoked by the system
|
||||||
|
@ -62,26 +62,26 @@ class CartridgeEF : public Cartridge
|
||||||
|
|
||||||
@param system The system the device should install itself in
|
@param system The system the device should install itself in
|
||||||
*/
|
*/
|
||||||
virtual void install(System& system);
|
void install(System& system);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Install pages for the specified bank in the system.
|
Install pages for the specified bank in the system.
|
||||||
|
|
||||||
@param bank The bank that should be installed in the system
|
@param bank The bank that should be installed in the system
|
||||||
*/
|
*/
|
||||||
virtual void bank(uInt16 bank);
|
void bank(uInt16 bank);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Get the current bank.
|
Get the current bank.
|
||||||
|
|
||||||
@return The current bank, or -1 if bankswitching not supported
|
@return The current bank, or -1 if bankswitching not supported
|
||||||
*/
|
*/
|
||||||
virtual int bank();
|
int bank();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Query the number of banks supported by the cartridge.
|
Query the number of banks supported by the cartridge.
|
||||||
*/
|
*/
|
||||||
virtual int bankCount();
|
int bankCount();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Patch the cartridge ROM.
|
Patch the cartridge ROM.
|
||||||
|
@ -90,7 +90,7 @@ class CartridgeEF : public Cartridge
|
||||||
@param value The value to place into the address
|
@param value The value to place into the address
|
||||||
@return Success or failure of the patch operation
|
@return Success or failure of the patch operation
|
||||||
*/
|
*/
|
||||||
virtual bool patch(uInt16 address, uInt8 value);
|
bool patch(uInt16 address, uInt8 value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Access the internal ROM image for this cartridge.
|
Access the internal ROM image for this cartridge.
|
||||||
|
@ -98,7 +98,7 @@ class CartridgeEF : public Cartridge
|
||||||
@param size Set to the size of the internal ROM image data
|
@param size Set to the size of the internal ROM image data
|
||||||
@return A pointer to the internal ROM image data
|
@return A pointer to the internal ROM image data
|
||||||
*/
|
*/
|
||||||
virtual uInt8* getImage(int& size);
|
uInt8* getImage(int& size);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Save the current state of this cart to the given Serializer.
|
Save the current state of this cart to the given Serializer.
|
||||||
|
@ -106,7 +106,7 @@ class CartridgeEF : public Cartridge
|
||||||
@param out The Serializer object to use
|
@param out The Serializer object to use
|
||||||
@return False on any errors, else true
|
@return False on any errors, else true
|
||||||
*/
|
*/
|
||||||
virtual bool save(Serializer& out) const;
|
bool save(Serializer& out) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Load the current state of this cart from the given Serializer.
|
Load the current state of this cart from the given Serializer.
|
||||||
|
@ -114,14 +114,14 @@ class CartridgeEF : public Cartridge
|
||||||
@param in The Serializer object to use
|
@param in The Serializer object to use
|
||||||
@return False on any errors, else true
|
@return False on any errors, else true
|
||||||
*/
|
*/
|
||||||
virtual bool load(Serializer& in);
|
bool load(Serializer& in);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Get a descriptor for the device name (used in error checking).
|
Get a descriptor for the device name (used in error checking).
|
||||||
|
|
||||||
@return The name of the object
|
@return The name of the object
|
||||||
*/
|
*/
|
||||||
virtual string name() const { return "CartridgeEF"; }
|
string name() const { return "CartridgeEF"; }
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
|
@ -129,7 +129,7 @@ class CartridgeEF : public Cartridge
|
||||||
|
|
||||||
@return The byte at the specified address
|
@return The byte at the specified address
|
||||||
*/
|
*/
|
||||||
virtual uInt8 peek(uInt16 address);
|
uInt8 peek(uInt16 address);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Change the byte at the specified address to the given value
|
Change the byte at the specified address to the given value
|
||||||
|
@ -137,7 +137,7 @@ class CartridgeEF : public Cartridge
|
||||||
@param address The address where the value should be stored
|
@param address The address where the value should be stored
|
||||||
@param value The value to be stored at the address
|
@param value The value to be stored at the address
|
||||||
*/
|
*/
|
||||||
virtual void poke(uInt16 address, uInt8 value);
|
void poke(uInt16 address, uInt8 value);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// Indicates which bank is currently active
|
// Indicates which bank is currently active
|
||||||
|
|
|
@ -51,7 +51,7 @@ class CartridgeF0 : public Cartridge
|
||||||
/**
|
/**
|
||||||
Reset device to its power-on state
|
Reset device to its power-on state
|
||||||
*/
|
*/
|
||||||
virtual void reset();
|
void reset();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Install cartridge in the specified system. Invoked by the system
|
Install cartridge in the specified system. Invoked by the system
|
||||||
|
@ -59,26 +59,26 @@ class CartridgeF0 : public Cartridge
|
||||||
|
|
||||||
@param system The system the device should install itself in
|
@param system The system the device should install itself in
|
||||||
*/
|
*/
|
||||||
virtual void install(System& system);
|
void install(System& system);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Install pages for the specified bank in the system.
|
Install pages for the specified bank in the system.
|
||||||
|
|
||||||
@param bank The bank that should be installed in the system
|
@param bank The bank that should be installed in the system
|
||||||
*/
|
*/
|
||||||
virtual void bank(uInt16 bank);
|
void bank(uInt16 bank);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Get the current bank.
|
Get the current bank.
|
||||||
|
|
||||||
@return The current bank, or -1 if bankswitching not supported
|
@return The current bank, or -1 if bankswitching not supported
|
||||||
*/
|
*/
|
||||||
virtual int bank();
|
int bank();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Query the number of banks supported by the cartridge.
|
Query the number of banks supported by the cartridge.
|
||||||
*/
|
*/
|
||||||
virtual int bankCount();
|
int bankCount();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Patch the cartridge ROM.
|
Patch the cartridge ROM.
|
||||||
|
@ -87,7 +87,7 @@ class CartridgeF0 : public Cartridge
|
||||||
@param value The value to place into the address
|
@param value The value to place into the address
|
||||||
@return Success or failure of the patch operation
|
@return Success or failure of the patch operation
|
||||||
*/
|
*/
|
||||||
virtual bool patch(uInt16 address, uInt8 value);
|
bool patch(uInt16 address, uInt8 value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Access the internal ROM image for this cartridge.
|
Access the internal ROM image for this cartridge.
|
||||||
|
@ -95,7 +95,7 @@ class CartridgeF0 : public Cartridge
|
||||||
@param size Set to the size of the internal ROM image data
|
@param size Set to the size of the internal ROM image data
|
||||||
@return A pointer to the internal ROM image data
|
@return A pointer to the internal ROM image data
|
||||||
*/
|
*/
|
||||||
virtual uInt8* getImage(int& size);
|
uInt8* getImage(int& size);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Save the current state of this cart to the given Serializer.
|
Save the current state of this cart to the given Serializer.
|
||||||
|
@ -103,7 +103,7 @@ class CartridgeF0 : public Cartridge
|
||||||
@param out The Serializer object to use
|
@param out The Serializer object to use
|
||||||
@return False on any errors, else true
|
@return False on any errors, else true
|
||||||
*/
|
*/
|
||||||
virtual bool save(Serializer& out) const;
|
bool save(Serializer& out) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Load the current state of this cart from the given Serializer.
|
Load the current state of this cart from the given Serializer.
|
||||||
|
@ -111,14 +111,14 @@ class CartridgeF0 : public Cartridge
|
||||||
@param in The Serializer object to use
|
@param in The Serializer object to use
|
||||||
@return False on any errors, else true
|
@return False on any errors, else true
|
||||||
*/
|
*/
|
||||||
virtual bool load(Serializer& in);
|
bool load(Serializer& in);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Get a descriptor for the device name (used in error checking).
|
Get a descriptor for the device name (used in error checking).
|
||||||
|
|
||||||
@return The name of the object
|
@return The name of the object
|
||||||
*/
|
*/
|
||||||
virtual string name() const { return "CartridgeF0"; }
|
string name() const { return "CartridgeF0"; }
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
|
@ -126,7 +126,7 @@ class CartridgeF0 : public Cartridge
|
||||||
|
|
||||||
@return The byte at the specified address
|
@return The byte at the specified address
|
||||||
*/
|
*/
|
||||||
virtual uInt8 peek(uInt16 address);
|
uInt8 peek(uInt16 address);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Change the byte at the specified address to the given value
|
Change the byte at the specified address to the given value
|
||||||
|
@ -134,7 +134,7 @@ class CartridgeF0 : public Cartridge
|
||||||
@param address The address where the value should be stored
|
@param address The address where the value should be stored
|
||||||
@param value The value to be stored at the address
|
@param value The value to be stored at the address
|
||||||
*/
|
*/
|
||||||
virtual void poke(uInt16 address, uInt8 value);
|
void poke(uInt16 address, uInt8 value);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -50,7 +50,7 @@ class CartridgeF4 : public Cartridge
|
||||||
/**
|
/**
|
||||||
Reset device to its power-on state
|
Reset device to its power-on state
|
||||||
*/
|
*/
|
||||||
virtual void reset();
|
void reset();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Install cartridge in the specified system. Invoked by the system
|
Install cartridge in the specified system. Invoked by the system
|
||||||
|
@ -58,26 +58,26 @@ class CartridgeF4 : public Cartridge
|
||||||
|
|
||||||
@param system The system the device should install itself in
|
@param system The system the device should install itself in
|
||||||
*/
|
*/
|
||||||
virtual void install(System& system);
|
void install(System& system);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Install pages for the specified bank in the system.
|
Install pages for the specified bank in the system.
|
||||||
|
|
||||||
@param bank The bank that should be installed in the system
|
@param bank The bank that should be installed in the system
|
||||||
*/
|
*/
|
||||||
virtual void bank(uInt16 bank);
|
void bank(uInt16 bank);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Get the current bank.
|
Get the current bank.
|
||||||
|
|
||||||
@return The current bank, or -1 if bankswitching not supported
|
@return The current bank, or -1 if bankswitching not supported
|
||||||
*/
|
*/
|
||||||
virtual int bank();
|
int bank();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Query the number of banks supported by the cartridge.
|
Query the number of banks supported by the cartridge.
|
||||||
*/
|
*/
|
||||||
virtual int bankCount();
|
int bankCount();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Patch the cartridge ROM.
|
Patch the cartridge ROM.
|
||||||
|
@ -86,7 +86,7 @@ class CartridgeF4 : public Cartridge
|
||||||
@param value The value to place into the address
|
@param value The value to place into the address
|
||||||
@return Success or failure of the patch operation
|
@return Success or failure of the patch operation
|
||||||
*/
|
*/
|
||||||
virtual bool patch(uInt16 address, uInt8 value);
|
bool patch(uInt16 address, uInt8 value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Access the internal ROM image for this cartridge.
|
Access the internal ROM image for this cartridge.
|
||||||
|
@ -94,7 +94,7 @@ class CartridgeF4 : public Cartridge
|
||||||
@param size Set to the size of the internal ROM image data
|
@param size Set to the size of the internal ROM image data
|
||||||
@return A pointer to the internal ROM image data
|
@return A pointer to the internal ROM image data
|
||||||
*/
|
*/
|
||||||
virtual uInt8* getImage(int& size);
|
uInt8* getImage(int& size);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Save the current state of this cart to the given Serializer.
|
Save the current state of this cart to the given Serializer.
|
||||||
|
@ -102,7 +102,7 @@ class CartridgeF4 : public Cartridge
|
||||||
@param out The Serializer object to use
|
@param out The Serializer object to use
|
||||||
@return False on any errors, else true
|
@return False on any errors, else true
|
||||||
*/
|
*/
|
||||||
virtual bool save(Serializer& out) const;
|
bool save(Serializer& out) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Load the current state of this cart from the given Serializer.
|
Load the current state of this cart from the given Serializer.
|
||||||
|
@ -110,14 +110,14 @@ class CartridgeF4 : public Cartridge
|
||||||
@param in The Serializer object to use
|
@param in The Serializer object to use
|
||||||
@return False on any errors, else true
|
@return False on any errors, else true
|
||||||
*/
|
*/
|
||||||
virtual bool load(Serializer& in);
|
bool load(Serializer& in);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Get a descriptor for the device name (used in error checking).
|
Get a descriptor for the device name (used in error checking).
|
||||||
|
|
||||||
@return The name of the object
|
@return The name of the object
|
||||||
*/
|
*/
|
||||||
virtual string name() const { return "CartridgeF4"; }
|
string name() const { return "CartridgeF4"; }
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
|
@ -125,7 +125,7 @@ class CartridgeF4 : public Cartridge
|
||||||
|
|
||||||
@return The byte at the specified address
|
@return The byte at the specified address
|
||||||
*/
|
*/
|
||||||
virtual uInt8 peek(uInt16 address);
|
uInt8 peek(uInt16 address);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Change the byte at the specified address to the given value
|
Change the byte at the specified address to the given value
|
||||||
|
@ -133,7 +133,7 @@ class CartridgeF4 : public Cartridge
|
||||||
@param address The address where the value should be stored
|
@param address The address where the value should be stored
|
||||||
@param value The value to be stored at the address
|
@param value The value to be stored at the address
|
||||||
*/
|
*/
|
||||||
virtual void poke(uInt16 address, uInt8 value);
|
void poke(uInt16 address, uInt8 value);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// Indicates which bank is currently active
|
// Indicates which bank is currently active
|
||||||
|
|
|
@ -50,7 +50,7 @@ class CartridgeF6 : public Cartridge
|
||||||
/**
|
/**
|
||||||
Reset device to its power-on state
|
Reset device to its power-on state
|
||||||
*/
|
*/
|
||||||
virtual void reset();
|
void reset();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Install cartridge in the specified system. Invoked by the system
|
Install cartridge in the specified system. Invoked by the system
|
||||||
|
@ -58,26 +58,26 @@ class CartridgeF6 : public Cartridge
|
||||||
|
|
||||||
@param system The system the device should install itself in
|
@param system The system the device should install itself in
|
||||||
*/
|
*/
|
||||||
virtual void install(System& system);
|
void install(System& system);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Install pages for the specified bank in the system.
|
Install pages for the specified bank in the system.
|
||||||
|
|
||||||
@param bank The bank that should be installed in the system
|
@param bank The bank that should be installed in the system
|
||||||
*/
|
*/
|
||||||
virtual void bank(uInt16 bank);
|
void bank(uInt16 bank);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Get the current bank.
|
Get the current bank.
|
||||||
|
|
||||||
@return The current bank, or -1 if bankswitching not supported
|
@return The current bank, or -1 if bankswitching not supported
|
||||||
*/
|
*/
|
||||||
virtual int bank();
|
int bank();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Query the number of banks supported by the cartridge.
|
Query the number of banks supported by the cartridge.
|
||||||
*/
|
*/
|
||||||
virtual int bankCount();
|
int bankCount();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Patch the cartridge ROM.
|
Patch the cartridge ROM.
|
||||||
|
@ -86,7 +86,7 @@ class CartridgeF6 : public Cartridge
|
||||||
@param value The value to place into the address
|
@param value The value to place into the address
|
||||||
@return Success or failure of the patch operation
|
@return Success or failure of the patch operation
|
||||||
*/
|
*/
|
||||||
virtual bool patch(uInt16 address, uInt8 value);
|
bool patch(uInt16 address, uInt8 value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Access the internal ROM image for this cartridge.
|
Access the internal ROM image for this cartridge.
|
||||||
|
@ -94,7 +94,7 @@ class CartridgeF6 : public Cartridge
|
||||||
@param size Set to the size of the internal ROM image data
|
@param size Set to the size of the internal ROM image data
|
||||||
@return A pointer to the internal ROM image data
|
@return A pointer to the internal ROM image data
|
||||||
*/
|
*/
|
||||||
virtual uInt8* getImage(int& size);
|
uInt8* getImage(int& size);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Save the current state of this cart to the given Serializer.
|
Save the current state of this cart to the given Serializer.
|
||||||
|
@ -102,7 +102,7 @@ class CartridgeF6 : public Cartridge
|
||||||
@param out The Serializer object to use
|
@param out The Serializer object to use
|
||||||
@return False on any errors, else true
|
@return False on any errors, else true
|
||||||
*/
|
*/
|
||||||
virtual bool save(Serializer& out) const;
|
bool save(Serializer& out) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Load the current state of this cart from the given Serializer.
|
Load the current state of this cart from the given Serializer.
|
||||||
|
@ -110,14 +110,14 @@ class CartridgeF6 : public Cartridge
|
||||||
@param in The Serializer object to use
|
@param in The Serializer object to use
|
||||||
@return False on any errors, else true
|
@return False on any errors, else true
|
||||||
*/
|
*/
|
||||||
virtual bool load(Serializer& in);
|
bool load(Serializer& in);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Get a descriptor for the device name (used in error checking).
|
Get a descriptor for the device name (used in error checking).
|
||||||
|
|
||||||
@return The name of the object
|
@return The name of the object
|
||||||
*/
|
*/
|
||||||
virtual string name() const { return "CartridgeF6"; }
|
string name() const { return "CartridgeF6"; }
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
|
@ -125,7 +125,7 @@ class CartridgeF6 : public Cartridge
|
||||||
|
|
||||||
@return The byte at the specified address
|
@return The byte at the specified address
|
||||||
*/
|
*/
|
||||||
virtual uInt8 peek(uInt16 address);
|
uInt8 peek(uInt16 address);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Change the byte at the specified address to the given value
|
Change the byte at the specified address to the given value
|
||||||
|
@ -133,7 +133,7 @@ class CartridgeF6 : public Cartridge
|
||||||
@param address The address where the value should be stored
|
@param address The address where the value should be stored
|
||||||
@param value The value to be stored at the address
|
@param value The value to be stored at the address
|
||||||
*/
|
*/
|
||||||
virtual void poke(uInt16 address, uInt8 value);
|
void poke(uInt16 address, uInt8 value);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// Indicates which bank is currently active
|
// Indicates which bank is currently active
|
||||||
|
|
|
@ -51,7 +51,7 @@ class CartridgeF8 : public Cartridge
|
||||||
/**
|
/**
|
||||||
Reset device to its power-on state
|
Reset device to its power-on state
|
||||||
*/
|
*/
|
||||||
virtual void reset();
|
void reset();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Install cartridge in the specified system. Invoked by the system
|
Install cartridge in the specified system. Invoked by the system
|
||||||
|
@ -59,26 +59,26 @@ class CartridgeF8 : public Cartridge
|
||||||
|
|
||||||
@param system The system the device should install itself in
|
@param system The system the device should install itself in
|
||||||
*/
|
*/
|
||||||
virtual void install(System& system);
|
void install(System& system);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Install pages for the specified bank in the system.
|
Install pages for the specified bank in the system.
|
||||||
|
|
||||||
@param bank The bank that should be installed in the system
|
@param bank The bank that should be installed in the system
|
||||||
*/
|
*/
|
||||||
virtual void bank(uInt16 bank);
|
void bank(uInt16 bank);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Get the current bank.
|
Get the current bank.
|
||||||
|
|
||||||
@return The current bank, or -1 if bankswitching not supported
|
@return The current bank, or -1 if bankswitching not supported
|
||||||
*/
|
*/
|
||||||
virtual int bank();
|
int bank();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Query the number of banks supported by the cartridge.
|
Query the number of banks supported by the cartridge.
|
||||||
*/
|
*/
|
||||||
virtual int bankCount();
|
int bankCount();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Patch the cartridge ROM.
|
Patch the cartridge ROM.
|
||||||
|
@ -87,7 +87,7 @@ class CartridgeF8 : public Cartridge
|
||||||
@param value The value to place into the address
|
@param value The value to place into the address
|
||||||
@return Success or failure of the patch operation
|
@return Success or failure of the patch operation
|
||||||
*/
|
*/
|
||||||
virtual bool patch(uInt16 address, uInt8 value);
|
bool patch(uInt16 address, uInt8 value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Access the internal ROM image for this cartridge.
|
Access the internal ROM image for this cartridge.
|
||||||
|
@ -95,7 +95,7 @@ class CartridgeF8 : public Cartridge
|
||||||
@param size Set to the size of the internal ROM image data
|
@param size Set to the size of the internal ROM image data
|
||||||
@return A pointer to the internal ROM image data
|
@return A pointer to the internal ROM image data
|
||||||
*/
|
*/
|
||||||
virtual uInt8* getImage(int& size);
|
uInt8* getImage(int& size);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Save the current state of this cart to the given Serializer.
|
Save the current state of this cart to the given Serializer.
|
||||||
|
@ -103,7 +103,7 @@ class CartridgeF8 : public Cartridge
|
||||||
@param out The Serializer object to use
|
@param out The Serializer object to use
|
||||||
@return False on any errors, else true
|
@return False on any errors, else true
|
||||||
*/
|
*/
|
||||||
virtual bool save(Serializer& out) const;
|
bool save(Serializer& out) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Load the current state of this cart from the given Serializer.
|
Load the current state of this cart from the given Serializer.
|
||||||
|
@ -111,14 +111,14 @@ class CartridgeF8 : public Cartridge
|
||||||
@param in The Serializer object to use
|
@param in The Serializer object to use
|
||||||
@return False on any errors, else true
|
@return False on any errors, else true
|
||||||
*/
|
*/
|
||||||
virtual bool load(Serializer& in);
|
bool load(Serializer& in);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Get a descriptor for the device name (used in error checking).
|
Get a descriptor for the device name (used in error checking).
|
||||||
|
|
||||||
@return The name of the object
|
@return The name of the object
|
||||||
*/
|
*/
|
||||||
virtual string name() const { return "CartridgeF8"; }
|
string name() const { return "CartridgeF8"; }
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
|
@ -126,7 +126,7 @@ class CartridgeF8 : public Cartridge
|
||||||
|
|
||||||
@return The byte at the specified address
|
@return The byte at the specified address
|
||||||
*/
|
*/
|
||||||
virtual uInt8 peek(uInt16 address);
|
uInt8 peek(uInt16 address);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Change the byte at the specified address to the given value
|
Change the byte at the specified address to the given value
|
||||||
|
@ -134,7 +134,7 @@ class CartridgeF8 : public Cartridge
|
||||||
@param address The address where the value should be stored
|
@param address The address where the value should be stored
|
||||||
@param value The value to be stored at the address
|
@param value The value to be stored at the address
|
||||||
*/
|
*/
|
||||||
virtual void poke(uInt16 address, uInt8 value);
|
void poke(uInt16 address, uInt8 value);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// Indicates which bank is currently active
|
// Indicates which bank is currently active
|
||||||
|
|
|
@ -22,11 +22,11 @@
|
||||||
#include "System.hxx"
|
#include "System.hxx"
|
||||||
#include "CartFE.hxx"
|
#include "CartFE.hxx"
|
||||||
|
|
||||||
// TODO - Port to new CartDebug/disassembler scheme
|
|
||||||
// Add bankchanged code
|
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
CartridgeFE::CartridgeFE(const uInt8* image)
|
CartridgeFE::CartridgeFE(const uInt8* image)
|
||||||
|
: myLastAddress1(0),
|
||||||
|
myLastAddress2(0),
|
||||||
|
myLastAddressChanged(false)
|
||||||
{
|
{
|
||||||
// Copy the ROM image into my buffer
|
// Copy the ROM image into my buffer
|
||||||
memcpy(myImage, image, 8192);
|
memcpy(myImage, image, 8192);
|
||||||
|
@ -67,6 +67,12 @@ void CartridgeFE::install(System& system)
|
||||||
uInt8 CartridgeFE::peek(uInt16 address)
|
uInt8 CartridgeFE::peek(uInt16 address)
|
||||||
{
|
{
|
||||||
// The bank is determined by A13 of the processor
|
// The bank is determined by A13 of the processor
|
||||||
|
// We keep track of the two most recent accesses to determine which bank
|
||||||
|
// we're in, and when the values actually changed
|
||||||
|
myLastAddress2 = myLastAddress1;
|
||||||
|
myLastAddress1 = address;
|
||||||
|
myLastAddressChanged = true;
|
||||||
|
|
||||||
return myImage[(address & 0x0FFF) + (((address & 0x2000) == 0) ? 4096 : 0)];
|
return myImage[(address & 0x0FFF) + (((address & 0x2000) == 0) ? 4096 : 0)];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -79,37 +85,54 @@ void CartridgeFE::poke(uInt16, uInt8)
|
||||||
void CartridgeFE::bank(uInt16 b)
|
void CartridgeFE::bank(uInt16 b)
|
||||||
{
|
{
|
||||||
// Doesn't support bankswitching in the normal sense
|
// Doesn't support bankswitching in the normal sense
|
||||||
// TODO - add support for debugger
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
int CartridgeFE::bank()
|
int CartridgeFE::bank()
|
||||||
{
|
{
|
||||||
// Doesn't support bankswitching in the normal sense
|
// The current bank depends on the last address accessed
|
||||||
// TODO - add support for debugger
|
return ((myLastAddress1 & 0x2000) == 0) ? 1 : 0;
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
int CartridgeFE::bankCount()
|
int CartridgeFE::bankCount()
|
||||||
{
|
{
|
||||||
// Doesn't support bankswitching in the normal sense
|
return 2;
|
||||||
// TODO - add support for debugger
|
|
||||||
return 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
bool CartridgeFE::bankChanged()
|
||||||
|
{
|
||||||
|
if(myLastAddressChanged)
|
||||||
|
{
|
||||||
|
// A bankswitch occurs when the addresses transition from state to another
|
||||||
|
bool a1 = ((myLastAddress1 & 0x2000) == 0),
|
||||||
|
a2 = ((myLastAddress2 & 0x2000) == 0);
|
||||||
|
myBankChanged = (a1 && !a2) || (a2 && !a1);
|
||||||
|
myLastAddressChanged = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
myBankChanged = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// In any event, let the base class know about it
|
||||||
|
return Cartridge::bankChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
bool CartridgeFE::patch(uInt16 address, uInt8 value)
|
bool CartridgeFE::patch(uInt16 address, uInt8 value)
|
||||||
{
|
{
|
||||||
myImage[(address & 0x0FFF) + (((address & 0x2000) == 0) ? 4096 : 0)] = value;
|
myImage[(address & 0x0FFF) + (((address & 0x2000) == 0) ? 4096 : 0)] = value;
|
||||||
return true;
|
return myBankChanged = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
uInt8* CartridgeFE::getImage(int& size)
|
uInt8* CartridgeFE::getImage(int& size)
|
||||||
{
|
{
|
||||||
size = 8192;
|
size = 8192;
|
||||||
return &myImage[0];
|
return myImage;
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
@ -120,6 +143,8 @@ bool CartridgeFE::save(Serializer& out) const
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
out.putString(cart);
|
out.putString(cart);
|
||||||
|
out.putInt(myLastAddress1);
|
||||||
|
out.putInt(myLastAddress2);
|
||||||
}
|
}
|
||||||
catch(const char* msg)
|
catch(const char* msg)
|
||||||
{
|
{
|
||||||
|
@ -139,6 +164,9 @@ bool CartridgeFE::load(Serializer& in)
|
||||||
{
|
{
|
||||||
if(in.getString() != cart)
|
if(in.getString() != cart)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
myLastAddress1 = (uInt16)in.getInt();
|
||||||
|
myLastAddress2 = (uInt16)in.getInt();
|
||||||
}
|
}
|
||||||
catch(const char* msg)
|
catch(const char* msg)
|
||||||
{
|
{
|
||||||
|
|
|
@ -62,7 +62,7 @@ class CartridgeFE : public Cartridge
|
||||||
/**
|
/**
|
||||||
Reset device to its power-on state
|
Reset device to its power-on state
|
||||||
*/
|
*/
|
||||||
virtual void reset();
|
void reset();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Install cartridge in the specified system. Invoked by the system
|
Install cartridge in the specified system. Invoked by the system
|
||||||
|
@ -70,26 +70,34 @@ class CartridgeFE : public Cartridge
|
||||||
|
|
||||||
@param system The system the device should install itself in
|
@param system The system the device should install itself in
|
||||||
*/
|
*/
|
||||||
virtual void install(System& system);
|
void install(System& system);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Install pages for the specified bank in the system.
|
Install pages for the specified bank in the system.
|
||||||
|
|
||||||
@param bank The bank that should be installed in the system
|
@param bank The bank that should be installed in the system
|
||||||
*/
|
*/
|
||||||
virtual void bank(uInt16 bank);
|
void bank(uInt16 bank);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Get the current bank.
|
Get the current bank.
|
||||||
|
|
||||||
@return The current bank, or -1 if bankswitching not supported
|
@return The current bank, or -1 if bankswitching not supported
|
||||||
*/
|
*/
|
||||||
virtual int bank();
|
int bank();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Query the number of banks supported by the cartridge.
|
Query the number of banks supported by the cartridge.
|
||||||
*/
|
*/
|
||||||
virtual int bankCount();
|
int bankCount();
|
||||||
|
|
||||||
|
/**
|
||||||
|
Answer whether the bank has changed since the last time this
|
||||||
|
method was called.
|
||||||
|
|
||||||
|
@return Whether the bank was changed
|
||||||
|
*/
|
||||||
|
bool bankChanged();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Patch the cartridge ROM.
|
Patch the cartridge ROM.
|
||||||
|
@ -98,7 +106,7 @@ class CartridgeFE : public Cartridge
|
||||||
@param value The value to place into the address
|
@param value The value to place into the address
|
||||||
@return Success or failure of the patch operation
|
@return Success or failure of the patch operation
|
||||||
*/
|
*/
|
||||||
virtual bool patch(uInt16 address, uInt8 value);
|
bool patch(uInt16 address, uInt8 value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Access the internal ROM image for this cartridge.
|
Access the internal ROM image for this cartridge.
|
||||||
|
@ -106,7 +114,7 @@ class CartridgeFE : public Cartridge
|
||||||
@param size Set to the size of the internal ROM image data
|
@param size Set to the size of the internal ROM image data
|
||||||
@return A pointer to the internal ROM image data
|
@return A pointer to the internal ROM image data
|
||||||
*/
|
*/
|
||||||
virtual uInt8* getImage(int& size);
|
uInt8* getImage(int& size);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Save the current state of this cart to the given Serializer.
|
Save the current state of this cart to the given Serializer.
|
||||||
|
@ -114,7 +122,7 @@ class CartridgeFE : public Cartridge
|
||||||
@param out The Serializer object to use
|
@param out The Serializer object to use
|
||||||
@return False on any errors, else true
|
@return False on any errors, else true
|
||||||
*/
|
*/
|
||||||
virtual bool save(Serializer& out) const;
|
bool save(Serializer& out) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Load the current state of this cart from the given Serializer.
|
Load the current state of this cart from the given Serializer.
|
||||||
|
@ -122,14 +130,14 @@ class CartridgeFE : public Cartridge
|
||||||
@param in The Serializer object to use
|
@param in The Serializer object to use
|
||||||
@return False on any errors, else true
|
@return False on any errors, else true
|
||||||
*/
|
*/
|
||||||
virtual bool load(Serializer& in);
|
bool load(Serializer& in);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Get a descriptor for the device name (used in error checking).
|
Get a descriptor for the device name (used in error checking).
|
||||||
|
|
||||||
@return The name of the object
|
@return The name of the object
|
||||||
*/
|
*/
|
||||||
virtual string name() const { return "CartridgeFE"; }
|
string name() const { return "CartridgeFE"; }
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
|
@ -137,7 +145,7 @@ class CartridgeFE : public Cartridge
|
||||||
|
|
||||||
@return The byte at the specified address
|
@return The byte at the specified address
|
||||||
*/
|
*/
|
||||||
virtual uInt8 peek(uInt16 address);
|
uInt8 peek(uInt16 address);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Change the byte at the specified address to the given value
|
Change the byte at the specified address to the given value
|
||||||
|
@ -145,11 +153,17 @@ class CartridgeFE : public Cartridge
|
||||||
@param address The address where the value should be stored
|
@param address The address where the value should be stored
|
||||||
@param value The value to be stored at the address
|
@param value The value to be stored at the address
|
||||||
*/
|
*/
|
||||||
virtual void poke(uInt16 address, uInt8 value);
|
void poke(uInt16 address, uInt8 value);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// The 8K ROM image of the cartridge
|
// The 8K ROM image of the cartridge
|
||||||
uInt8 myImage[8192];
|
uInt8 myImage[8192];
|
||||||
|
|
||||||
|
// Previous two addresses accessed by peek()
|
||||||
|
uInt16 myLastAddress1, myLastAddress2;
|
||||||
|
|
||||||
|
// Last two addresses have been modified by peek()
|
||||||
|
bool myLastAddressChanged;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -48,7 +48,7 @@ class CartridgeSB : public Cartridge
|
||||||
/**
|
/**
|
||||||
Reset device to its power-on state
|
Reset device to its power-on state
|
||||||
*/
|
*/
|
||||||
virtual void reset();
|
void reset();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Install cartridge in the specified system. Invoked by the system
|
Install cartridge in the specified system. Invoked by the system
|
||||||
|
@ -56,26 +56,26 @@ class CartridgeSB : public Cartridge
|
||||||
|
|
||||||
@param system The system the device should install itself in
|
@param system The system the device should install itself in
|
||||||
*/
|
*/
|
||||||
virtual void install(System& system);
|
void install(System& system);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Install pages for the specified bank in the system.
|
Install pages for the specified bank in the system.
|
||||||
|
|
||||||
@param bank The bank that should be installed in the system
|
@param bank The bank that should be installed in the system
|
||||||
*/
|
*/
|
||||||
virtual void bank(uInt16 bank);
|
void bank(uInt16 bank);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Get the current bank.
|
Get the current bank.
|
||||||
|
|
||||||
@return The current bank, or -1 if bankswitching not supported
|
@return The current bank, or -1 if bankswitching not supported
|
||||||
*/
|
*/
|
||||||
virtual int bank();
|
int bank();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Query the number of banks supported by the cartridge.
|
Query the number of banks supported by the cartridge.
|
||||||
*/
|
*/
|
||||||
virtual int bankCount();
|
int bankCount();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Patch the cartridge ROM.
|
Patch the cartridge ROM.
|
||||||
|
@ -84,7 +84,7 @@ class CartridgeSB : public Cartridge
|
||||||
@param value The value to place into the address
|
@param value The value to place into the address
|
||||||
@return Success or failure of the patch operation
|
@return Success or failure of the patch operation
|
||||||
*/
|
*/
|
||||||
virtual bool patch(uInt16 address, uInt8 value);
|
bool patch(uInt16 address, uInt8 value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Access the internal ROM image for this cartridge.
|
Access the internal ROM image for this cartridge.
|
||||||
|
@ -92,7 +92,7 @@ class CartridgeSB : public Cartridge
|
||||||
@param size Set to the size of the internal ROM image data
|
@param size Set to the size of the internal ROM image data
|
||||||
@return A pointer to the internal ROM image data
|
@return A pointer to the internal ROM image data
|
||||||
*/
|
*/
|
||||||
virtual uInt8* getImage(int& size);
|
uInt8* getImage(int& size);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Save the current state of this cart to the given Serializer.
|
Save the current state of this cart to the given Serializer.
|
||||||
|
@ -100,7 +100,7 @@ class CartridgeSB : public Cartridge
|
||||||
@param out The Serializer object to use
|
@param out The Serializer object to use
|
||||||
@return False on any errors, else true
|
@return False on any errors, else true
|
||||||
*/
|
*/
|
||||||
virtual bool save(Serializer& out) const;
|
bool save(Serializer& out) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Load the current state of this cart from the given Serializer.
|
Load the current state of this cart from the given Serializer.
|
||||||
|
@ -108,14 +108,14 @@ class CartridgeSB : public Cartridge
|
||||||
@param in The Serializer object to use
|
@param in The Serializer object to use
|
||||||
@return False on any errors, else true
|
@return False on any errors, else true
|
||||||
*/
|
*/
|
||||||
virtual bool load(Serializer& in);
|
bool load(Serializer& in);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Get a descriptor for the device name (used in error checking).
|
Get a descriptor for the device name (used in error checking).
|
||||||
|
|
||||||
@return The name of the object
|
@return The name of the object
|
||||||
*/
|
*/
|
||||||
virtual string name() const { return "CartridgeSB"; }
|
string name() const { return "CartridgeSB"; }
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
|
@ -123,7 +123,7 @@ class CartridgeSB : public Cartridge
|
||||||
|
|
||||||
@return The byte at the specified address
|
@return The byte at the specified address
|
||||||
*/
|
*/
|
||||||
virtual uInt8 peek(uInt16 address);
|
uInt8 peek(uInt16 address);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Change the byte at the specified address to the given value
|
Change the byte at the specified address to the given value
|
||||||
|
@ -131,7 +131,7 @@ class CartridgeSB : public Cartridge
|
||||||
@param address The address where the value should be stored
|
@param address The address where the value should be stored
|
||||||
@param value The value to be stored at the address
|
@param value The value to be stored at the address
|
||||||
*/
|
*/
|
||||||
virtual void poke(uInt16 address, uInt8 value);
|
void poke(uInt16 address, uInt8 value);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// The 128-256K ROM image and size of the cartridge
|
// The 128-256K ROM image and size of the cartridge
|
||||||
|
|
|
@ -51,7 +51,7 @@ class CartridgeUA : public Cartridge
|
||||||
/**
|
/**
|
||||||
Reset device to its power-on state
|
Reset device to its power-on state
|
||||||
*/
|
*/
|
||||||
virtual void reset();
|
void reset();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Install cartridge in the specified system. Invoked by the system
|
Install cartridge in the specified system. Invoked by the system
|
||||||
|
@ -59,26 +59,26 @@ class CartridgeUA : public Cartridge
|
||||||
|
|
||||||
@param system The system the device should install itself in
|
@param system The system the device should install itself in
|
||||||
*/
|
*/
|
||||||
virtual void install(System& system);
|
void install(System& system);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Install pages for the specified bank in the system.
|
Install pages for the specified bank in the system.
|
||||||
|
|
||||||
@param bank The bank that should be installed in the system
|
@param bank The bank that should be installed in the system
|
||||||
*/
|
*/
|
||||||
virtual void bank(uInt16 bank);
|
void bank(uInt16 bank);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Get the current bank.
|
Get the current bank.
|
||||||
|
|
||||||
@return The current bank, or -1 if bankswitching not supported
|
@return The current bank, or -1 if bankswitching not supported
|
||||||
*/
|
*/
|
||||||
virtual int bank();
|
int bank();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Query the number of banks supported by the cartridge.
|
Query the number of banks supported by the cartridge.
|
||||||
*/
|
*/
|
||||||
virtual int bankCount();
|
int bankCount();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Patch the cartridge ROM.
|
Patch the cartridge ROM.
|
||||||
|
@ -87,7 +87,7 @@ class CartridgeUA : public Cartridge
|
||||||
@param value The value to place into the address
|
@param value The value to place into the address
|
||||||
@return Success or failure of the patch operation
|
@return Success or failure of the patch operation
|
||||||
*/
|
*/
|
||||||
virtual bool patch(uInt16 address, uInt8 value);
|
bool patch(uInt16 address, uInt8 value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Access the internal ROM image for this cartridge.
|
Access the internal ROM image for this cartridge.
|
||||||
|
@ -95,7 +95,7 @@ class CartridgeUA : public Cartridge
|
||||||
@param size Set to the size of the internal ROM image data
|
@param size Set to the size of the internal ROM image data
|
||||||
@return A pointer to the internal ROM image data
|
@return A pointer to the internal ROM image data
|
||||||
*/
|
*/
|
||||||
virtual uInt8* getImage(int& size);
|
uInt8* getImage(int& size);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Save the current state of this cart to the given Serializer.
|
Save the current state of this cart to the given Serializer.
|
||||||
|
@ -103,7 +103,7 @@ class CartridgeUA : public Cartridge
|
||||||
@param out The Serializer object to use
|
@param out The Serializer object to use
|
||||||
@return False on any errors, else true
|
@return False on any errors, else true
|
||||||
*/
|
*/
|
||||||
virtual bool save(Serializer& out) const;
|
bool save(Serializer& out) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Load the current state of this cart from the given Serializer.
|
Load the current state of this cart from the given Serializer.
|
||||||
|
@ -111,14 +111,14 @@ class CartridgeUA : public Cartridge
|
||||||
@param in The Serializer object to use
|
@param in The Serializer object to use
|
||||||
@return False on any errors, else true
|
@return False on any errors, else true
|
||||||
*/
|
*/
|
||||||
virtual bool load(Serializer& in);
|
bool load(Serializer& in);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Get a descriptor for the device name (used in error checking).
|
Get a descriptor for the device name (used in error checking).
|
||||||
|
|
||||||
@return The name of the object
|
@return The name of the object
|
||||||
*/
|
*/
|
||||||
virtual string name() const { return "CartridgeUA"; }
|
string name() const { return "CartridgeUA"; }
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
|
@ -126,7 +126,7 @@ class CartridgeUA : public Cartridge
|
||||||
|
|
||||||
@return The byte at the specified address
|
@return The byte at the specified address
|
||||||
*/
|
*/
|
||||||
virtual uInt8 peek(uInt16 address);
|
uInt8 peek(uInt16 address);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Change the byte at the specified address to the given value
|
Change the byte at the specified address to the given value
|
||||||
|
@ -134,7 +134,7 @@ class CartridgeUA : public Cartridge
|
||||||
@param address The address where the value should be stored
|
@param address The address where the value should be stored
|
||||||
@param value The value to be stored at the address
|
@param value The value to be stored at the address
|
||||||
*/
|
*/
|
||||||
virtual void poke(uInt16 address, uInt8 value);
|
void poke(uInt16 address, uInt8 value);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// Indicates which bank is currently active
|
// Indicates which bank is currently active
|
||||||
|
|
|
@ -60,7 +60,7 @@ class CartridgeX07 : public Cartridge
|
||||||
/**
|
/**
|
||||||
Reset device to its power-on state
|
Reset device to its power-on state
|
||||||
*/
|
*/
|
||||||
virtual void reset();
|
void reset();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Install cartridge in the specified system. Invoked by the system
|
Install cartridge in the specified system. Invoked by the system
|
||||||
|
@ -68,26 +68,26 @@ class CartridgeX07 : public Cartridge
|
||||||
|
|
||||||
@param system The system the device should install itself in
|
@param system The system the device should install itself in
|
||||||
*/
|
*/
|
||||||
virtual void install(System& system);
|
void install(System& system);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Install pages for the specified bank in the system.
|
Install pages for the specified bank in the system.
|
||||||
|
|
||||||
@param bank The bank that should be installed in the system
|
@param bank The bank that should be installed in the system
|
||||||
*/
|
*/
|
||||||
virtual void bank(uInt16 bank);
|
void bank(uInt16 bank);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Get the current bank.
|
Get the current bank.
|
||||||
|
|
||||||
@return The current bank, or -1 if bankswitching not supported
|
@return The current bank, or -1 if bankswitching not supported
|
||||||
*/
|
*/
|
||||||
virtual int bank();
|
int bank();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Query the number of banks supported by the cartridge.
|
Query the number of banks supported by the cartridge.
|
||||||
*/
|
*/
|
||||||
virtual int bankCount();
|
int bankCount();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Patch the cartridge ROM.
|
Patch the cartridge ROM.
|
||||||
|
@ -96,7 +96,7 @@ class CartridgeX07 : public Cartridge
|
||||||
@param value The value to place into the address
|
@param value The value to place into the address
|
||||||
@return Success or failure of the patch operation
|
@return Success or failure of the patch operation
|
||||||
*/
|
*/
|
||||||
virtual bool patch(uInt16 address, uInt8 value);
|
bool patch(uInt16 address, uInt8 value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Access the internal ROM image for this cartridge.
|
Access the internal ROM image for this cartridge.
|
||||||
|
@ -104,7 +104,7 @@ class CartridgeX07 : public Cartridge
|
||||||
@param size Set to the size of the internal ROM image data
|
@param size Set to the size of the internal ROM image data
|
||||||
@return A pointer to the internal ROM image data
|
@return A pointer to the internal ROM image data
|
||||||
*/
|
*/
|
||||||
virtual uInt8* getImage(int& size);
|
uInt8* getImage(int& size);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Save the current state of this cart to the given Serializer.
|
Save the current state of this cart to the given Serializer.
|
||||||
|
@ -112,7 +112,7 @@ class CartridgeX07 : public Cartridge
|
||||||
@param out The Serializer object to use
|
@param out The Serializer object to use
|
||||||
@return False on any errors, else true
|
@return False on any errors, else true
|
||||||
*/
|
*/
|
||||||
virtual bool save(Serializer& out) const;
|
bool save(Serializer& out) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Load the current state of this cart from the given Serializer.
|
Load the current state of this cart from the given Serializer.
|
||||||
|
@ -120,14 +120,14 @@ class CartridgeX07 : public Cartridge
|
||||||
@param in The Serializer object to use
|
@param in The Serializer object to use
|
||||||
@return False on any errors, else true
|
@return False on any errors, else true
|
||||||
*/
|
*/
|
||||||
virtual bool load(Serializer& in);
|
bool load(Serializer& in);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Get a descriptor for the device name (used in error checking).
|
Get a descriptor for the device name (used in error checking).
|
||||||
|
|
||||||
@return The name of the object
|
@return The name of the object
|
||||||
*/
|
*/
|
||||||
virtual string name() const { return "CartridgeX07"; }
|
string name() const { return "CartridgeX07"; }
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
|
@ -135,7 +135,7 @@ class CartridgeX07 : public Cartridge
|
||||||
|
|
||||||
@return The byte at the specified address
|
@return The byte at the specified address
|
||||||
*/
|
*/
|
||||||
virtual uInt8 peek(uInt16 address);
|
uInt8 peek(uInt16 address);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Change the byte at the specified address to the given value
|
Change the byte at the specified address to the given value
|
||||||
|
@ -143,7 +143,7 @@ class CartridgeX07 : public Cartridge
|
||||||
@param address The address where the value should be stored
|
@param address The address where the value should be stored
|
||||||
@param value The value to be stored at the address
|
@param value The value to be stored at the address
|
||||||
*/
|
*/
|
||||||
virtual void poke(uInt16 address, uInt8 value);
|
void poke(uInt16 address, uInt8 value);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// Indicates which bank is currently active
|
// Indicates which bank is currently active
|
||||||
|
|
|
@ -1817,7 +1817,7 @@
|
||||||
2D91752309BA903B0026E9FF /* Deployment */ = {
|
2D91752309BA903B0026E9FF /* Deployment */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
|
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
|
||||||
FRAMEWORK_SEARCH_PATHS = (
|
FRAMEWORK_SEARCH_PATHS = (
|
||||||
.,
|
.,
|
||||||
"$(HOME)/Library/Frameworks",
|
"$(HOME)/Library/Frameworks",
|
||||||
|
|
Loading…
Reference in New Issue