mirror of https://github.com/stella-emu/stella.git
Added skeleton class for CompuMate bankswitching.
Updated all bankswitch schemes for potential buffer overflow issues. Copying was being done without regard for the size of the ROM buffer. git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2325 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
parent
e7211a821b
commit
c1e171ee44
|
@ -47,6 +47,7 @@
|
||||||
#include "CartFE.hxx"
|
#include "CartFE.hxx"
|
||||||
#include "CartMC.hxx"
|
#include "CartMC.hxx"
|
||||||
#include "CartCV.hxx"
|
#include "CartCV.hxx"
|
||||||
|
#include "CartCM.hxx"
|
||||||
#include "CartUA.hxx"
|
#include "CartUA.hxx"
|
||||||
#include "CartSB.hxx"
|
#include "CartSB.hxx"
|
||||||
#include "CartX07.hxx"
|
#include "CartX07.hxx"
|
||||||
|
@ -145,7 +146,7 @@ Cartridge* Cartridge::create(const uInt8* image, uInt32 size, string& md5,
|
||||||
else if(type == "4A50")
|
else if(type == "4A50")
|
||||||
cartridge = new Cartridge4A50(image, size, settings);
|
cartridge = new Cartridge4A50(image, size, settings);
|
||||||
else if(type == "4K")
|
else if(type == "4K")
|
||||||
cartridge = new Cartridge4K(image, settings);
|
cartridge = new Cartridge4K(image, size, settings);
|
||||||
else if(type == "AR")
|
else if(type == "AR")
|
||||||
cartridge = new CartridgeAR(image, size, settings);
|
cartridge = new CartridgeAR(image, size, settings);
|
||||||
else if(type == "DPC")
|
else if(type == "DPC")
|
||||||
|
@ -153,43 +154,45 @@ Cartridge* Cartridge::create(const uInt8* image, uInt32 size, string& md5,
|
||||||
else if(type == "DPC+")
|
else if(type == "DPC+")
|
||||||
cartridge = new CartridgeDPCPlus(image, size, settings);
|
cartridge = new CartridgeDPCPlus(image, size, settings);
|
||||||
else if(type == "E0")
|
else if(type == "E0")
|
||||||
cartridge = new CartridgeE0(image, settings);
|
cartridge = new CartridgeE0(image, size, settings);
|
||||||
else if(type == "E7")
|
else if(type == "E7")
|
||||||
cartridge = new CartridgeE7(image, settings);
|
cartridge = new CartridgeE7(image, size, settings);
|
||||||
else if(type == "EF")
|
else if(type == "EF")
|
||||||
cartridge = new CartridgeEF(image, settings);
|
cartridge = new CartridgeEF(image, size, settings);
|
||||||
else if(type == "EFSC")
|
else if(type == "EFSC")
|
||||||
cartridge = new CartridgeEFSC(image, settings);
|
cartridge = new CartridgeEFSC(image, size, settings);
|
||||||
else if(type == "F4")
|
else if(type == "F4")
|
||||||
cartridge = new CartridgeF4(image, settings);
|
cartridge = new CartridgeF4(image, size, settings);
|
||||||
else if(type == "F4SC")
|
else if(type == "F4SC")
|
||||||
cartridge = new CartridgeF4SC(image, settings);
|
cartridge = new CartridgeF4SC(image, size, settings);
|
||||||
else if(type == "F6")
|
else if(type == "F6")
|
||||||
cartridge = new CartridgeF6(image, settings);
|
cartridge = new CartridgeF6(image, size, settings);
|
||||||
else if(type == "F6SC")
|
else if(type == "F6SC")
|
||||||
cartridge = new CartridgeF6SC(image, settings);
|
cartridge = new CartridgeF6SC(image, size, settings);
|
||||||
else if(type == "F8")
|
else if(type == "F8")
|
||||||
cartridge = new CartridgeF8(image, md5, settings);
|
cartridge = new CartridgeF8(image, size, md5, settings);
|
||||||
else if(type == "F8SC")
|
else if(type == "F8SC")
|
||||||
cartridge = new CartridgeF8SC(image, settings);
|
cartridge = new CartridgeF8SC(image, size, settings);
|
||||||
else if(type == "FA" || type == "FASC")
|
else if(type == "FA" || type == "FASC")
|
||||||
cartridge = new CartridgeFA(image, settings);
|
cartridge = new CartridgeFA(image, size, settings);
|
||||||
else if(type == "FE")
|
else if(type == "FE")
|
||||||
cartridge = new CartridgeFE(image, settings);
|
cartridge = new CartridgeFE(image, size, settings);
|
||||||
else if(type == "MC")
|
else if(type == "MC")
|
||||||
cartridge = new CartridgeMC(image, size, settings);
|
cartridge = new CartridgeMC(image, size, settings);
|
||||||
else if(type == "F0" || type == "MB")
|
else if(type == "F0" || type == "MB")
|
||||||
cartridge = new CartridgeF0(image, settings);
|
cartridge = new CartridgeF0(image, size, settings);
|
||||||
else if(type == "CV")
|
else if(type == "CV")
|
||||||
cartridge = new CartridgeCV(image, size, settings);
|
cartridge = new CartridgeCV(image, size, settings);
|
||||||
|
else if(type == "CM")
|
||||||
|
cartridge = new CartridgeCM(image, size, settings);
|
||||||
else if(type == "UA")
|
else if(type == "UA")
|
||||||
cartridge = new CartridgeUA(image, settings);
|
cartridge = new CartridgeUA(image, size, settings);
|
||||||
else if(type == "0840")
|
else if(type == "0840")
|
||||||
cartridge = new Cartridge0840(image, settings);
|
cartridge = new Cartridge0840(image, size, settings);
|
||||||
else if(type == "SB")
|
else if(type == "SB")
|
||||||
cartridge = new CartridgeSB(image, size, settings);
|
cartridge = new CartridgeSB(image, size, settings);
|
||||||
else if(type == "X07")
|
else if(type == "X07")
|
||||||
cartridge = new CartridgeX07(image, settings);
|
cartridge = new CartridgeX07(image, size, settings);
|
||||||
else
|
else
|
||||||
cerr << "ERROR: Invalid cartridge type " << type << " ..." << endl;
|
cerr << "ERROR: Invalid cartridge type " << type << " ..." << endl;
|
||||||
|
|
||||||
|
|
|
@ -24,11 +24,11 @@
|
||||||
#include "Cart0840.hxx"
|
#include "Cart0840.hxx"
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
Cartridge0840::Cartridge0840(const uInt8* image, const Settings& settings)
|
Cartridge0840::Cartridge0840(const uInt8* image, uInt32 size, const Settings& settings)
|
||||||
: Cartridge(settings)
|
: Cartridge(settings)
|
||||||
{
|
{
|
||||||
// Copy the ROM image into my buffer
|
// Copy the ROM image into my buffer
|
||||||
memcpy(myImage, image, 8192);
|
memcpy(myImage, image, BSPF_min(8192u, size));
|
||||||
createCodeAccessBase(8192);
|
createCodeAccessBase(8192);
|
||||||
|
|
||||||
// Remember startup bank
|
// Remember startup bank
|
||||||
|
|
|
@ -37,9 +37,10 @@ class Cartridge0840 : public Cartridge
|
||||||
Create a new cartridge using the specified image
|
Create a new cartridge using the specified image
|
||||||
|
|
||||||
@param image Pointer to the ROM image
|
@param image Pointer to the ROM image
|
||||||
|
@param size The size of the ROM image
|
||||||
@param settings A reference to the various settings (read-only)
|
@param settings A reference to the various settings (read-only)
|
||||||
*/
|
*/
|
||||||
Cartridge0840(const uInt8* image, const Settings& settings);
|
Cartridge0840(const uInt8* image, uInt32 size, const Settings& settings);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Destructor
|
Destructor
|
||||||
|
|
|
@ -24,11 +24,11 @@
|
||||||
#include "Cart4K.hxx"
|
#include "Cart4K.hxx"
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
Cartridge4K::Cartridge4K(const uInt8* image, const Settings& settings)
|
Cartridge4K::Cartridge4K(const uInt8* image, uInt32 size, const Settings& settings)
|
||||||
: Cartridge(settings)
|
: Cartridge(settings)
|
||||||
{
|
{
|
||||||
// Copy the ROM image into my buffer
|
// Copy the ROM image into my buffer
|
||||||
memcpy(myImage, image, 4096);
|
memcpy(myImage, image, BSPF_min(4096u, size));
|
||||||
createCodeAccessBase(4096);
|
createCodeAccessBase(4096);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -39,9 +39,10 @@ class Cartridge4K : public Cartridge
|
||||||
Create a new cartridge using the specified image
|
Create a new cartridge using the specified image
|
||||||
|
|
||||||
@param image Pointer to the ROM image
|
@param image Pointer to the ROM image
|
||||||
|
@param size The size of the ROM image
|
||||||
@param settings A reference to the various settings (read-only)
|
@param settings A reference to the various settings (read-only)
|
||||||
*/
|
*/
|
||||||
Cartridge4K(const uInt8* image, const Settings& settings);
|
Cartridge4K(const uInt8* image, uInt32 size, const Settings& settings);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Destructor
|
Destructor
|
||||||
|
|
|
@ -0,0 +1,103 @@
|
||||||
|
//============================================================================
|
||||||
|
//
|
||||||
|
// SSSS tt lll lll
|
||||||
|
// SS SS tt ll ll
|
||||||
|
// SS tttttt eeee ll ll aaaa
|
||||||
|
// SSSS tt ee ee ll ll aa
|
||||||
|
// SS tt eeeeee ll ll aaaaa -- "An Atari 2600 VCS Emulator"
|
||||||
|
// SS SS tt ee ll ll aa aa
|
||||||
|
// SSSS ttt eeeee llll llll aaaaa
|
||||||
|
//
|
||||||
|
// Copyright (c) 1995-2012 by Bradford W. Mott, Stephen Anthony
|
||||||
|
// and the Stella Team
|
||||||
|
//
|
||||||
|
// See the file "License.txt" for information on usage and redistribution of
|
||||||
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
|
//
|
||||||
|
// $Id$
|
||||||
|
//============================================================================
|
||||||
|
|
||||||
|
#include <cassert>
|
||||||
|
#include <cstring>
|
||||||
|
|
||||||
|
#include "System.hxx"
|
||||||
|
#include "CartCM.hxx"
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
CartridgeCM::CartridgeCM(const uInt8* image, uInt32 size, const Settings& settings)
|
||||||
|
: Cartridge(settings)
|
||||||
|
{
|
||||||
|
// Copy the ROM image into my buffer
|
||||||
|
memcpy(myImage, image, BSPF_min(16384u, size));
|
||||||
|
createCodeAccessBase(16384);
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
CartridgeCM::~CartridgeCM()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
void CartridgeCM::reset()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
void CartridgeCM::install(System& system)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
uInt8 CartridgeCM::peek(uInt16 address)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
bool CartridgeCM::poke(uInt16 address, uInt8)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
bool CartridgeCM::bank(uInt16 bank)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
uInt16 CartridgeCM::bank() const
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
uInt16 CartridgeCM::bankCount() const
|
||||||
|
{
|
||||||
|
return 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
bool CartridgeCM::patch(uInt16 address, uInt8 value)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
const uInt8* CartridgeCM::getImage(int& size) const
|
||||||
|
{
|
||||||
|
size = 16384;
|
||||||
|
return myImage;
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
bool CartridgeCM::save(Serializer& out) const
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
bool CartridgeCM::load(Serializer& in)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
|
@ -0,0 +1,177 @@
|
||||||
|
//============================================================================
|
||||||
|
//
|
||||||
|
// SSSS tt lll lll
|
||||||
|
// SS SS tt ll ll
|
||||||
|
// SS tttttt eeee ll ll aaaa
|
||||||
|
// SSSS tt ee ee ll ll aa
|
||||||
|
// SS tt eeeeee ll ll aaaaa -- "An Atari 2600 VCS Emulator"
|
||||||
|
// SS SS tt ee ll ll aa aa
|
||||||
|
// SSSS ttt eeeee llll llll aaaaa
|
||||||
|
//
|
||||||
|
// Copyright (c) 1995-2012 by Bradford W. Mott, Stephen Anthony
|
||||||
|
// and the Stella Team
|
||||||
|
//
|
||||||
|
// See the file "License.txt" for information on usage and redistribution of
|
||||||
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
|
//
|
||||||
|
// $Id$
|
||||||
|
//============================================================================
|
||||||
|
|
||||||
|
#ifndef CARTRIDGECM_HXX
|
||||||
|
#define CARTRIDGECM_HXX
|
||||||
|
|
||||||
|
class System;
|
||||||
|
|
||||||
|
#include "bspf.hxx"
|
||||||
|
#include "Cart.hxx"
|
||||||
|
|
||||||
|
/**
|
||||||
|
Cartridge class used for SpectraVideo CompuMate bankswitched games.
|
||||||
|
There are 4 4K banks selectable at $1000 - $1FFFF.
|
||||||
|
|
||||||
|
Bankswitching is done though the controller ports
|
||||||
|
INPT0: D7 = CTRL key input (0 on startup / 1 = key pressed)
|
||||||
|
INPT1: D7 = always HIGH input (tested at startup)
|
||||||
|
INPT2: D7 = always HIGH input (tested at startup)
|
||||||
|
INPT3: D7 = SHIFT key input (0 on startup / 1 = key pressed)
|
||||||
|
INPT4: D7 = keyboard row 1 input (0 = key pressed)
|
||||||
|
INPT5: D7 = keyboard row 3 input (0 = key pressed)
|
||||||
|
SWCHA: D7 = tape recorder I/O ?
|
||||||
|
D6 = 1 -> increase key collumn (0 to 9)
|
||||||
|
D5 = 1 -> reset key collumn to 0 (if D4 = 0)
|
||||||
|
D5 = 0 -> enable RAM writing (if D4 = 1)
|
||||||
|
D4 = 1 -> map 2K of RAM at $1800 - $1fff
|
||||||
|
D3 = keyboard row 4 input (0 = key pressed)
|
||||||
|
D2 = keyboard row 2 input (0 = key pressed)
|
||||||
|
D1 = bank select high bit
|
||||||
|
D0 = bank select low bit
|
||||||
|
|
||||||
|
Keyboard column numbering:
|
||||||
|
column 0 = 7 U J M
|
||||||
|
column 1 = 6 Y H N
|
||||||
|
column 2 = 8 I K ,
|
||||||
|
column 3 = 2 W S X
|
||||||
|
column 4 = 3 E D C
|
||||||
|
column 5 = 0 P ENTER SPACE
|
||||||
|
column 6 = 9 O L .
|
||||||
|
column 7 = 5 T G B
|
||||||
|
column 8 = 1 Q A Z
|
||||||
|
column 9 = 4 R F V
|
||||||
|
|
||||||
|
@author Stephen Anthony & z26 team
|
||||||
|
@version $Id$
|
||||||
|
*/
|
||||||
|
class CartridgeCM : public Cartridge
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
/**
|
||||||
|
Create a new cartridge using the specified image
|
||||||
|
|
||||||
|
@param image Pointer to the ROM image
|
||||||
|
@param size The size of the ROM image
|
||||||
|
@param settings A reference to the various settings (read-only)
|
||||||
|
*/
|
||||||
|
CartridgeCM(const uInt8* image, uInt32 size, const Settings& settings);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Destructor
|
||||||
|
*/
|
||||||
|
virtual ~CartridgeCM();
|
||||||
|
|
||||||
|
public:
|
||||||
|
/**
|
||||||
|
Reset device to its power-on state
|
||||||
|
*/
|
||||||
|
void reset();
|
||||||
|
|
||||||
|
/**
|
||||||
|
Install cartridge in the specified system. Invoked by the system
|
||||||
|
when the cartridge is attached to it.
|
||||||
|
|
||||||
|
@param system The system the device should install itself in
|
||||||
|
*/
|
||||||
|
void install(System& system);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Install pages for the specified bank in the system.
|
||||||
|
|
||||||
|
@param bank The bank that should be installed in the system
|
||||||
|
*/
|
||||||
|
bool bank(uInt16 bank);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Get the current bank.
|
||||||
|
*/
|
||||||
|
uInt16 bank() const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Query the number of banks supported by the cartridge.
|
||||||
|
*/
|
||||||
|
uInt16 bankCount() const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Patch the cartridge ROM.
|
||||||
|
|
||||||
|
@param address The ROM address to patch
|
||||||
|
@param value The value to place into the address
|
||||||
|
@return Success or failure of the patch operation
|
||||||
|
*/
|
||||||
|
bool patch(uInt16 address, uInt8 value);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Access the internal ROM image for this cartridge.
|
||||||
|
|
||||||
|
@param size Set to the size of the internal ROM image data
|
||||||
|
@return A pointer to the internal ROM image data
|
||||||
|
*/
|
||||||
|
const uInt8* getImage(int& size) const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Save the current state of this cart to the given Serializer.
|
||||||
|
|
||||||
|
@param out The Serializer object to use
|
||||||
|
@return False on any errors, else true
|
||||||
|
*/
|
||||||
|
bool save(Serializer& out) const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Load the current state of this cart from the given Serializer.
|
||||||
|
|
||||||
|
@param in The Serializer object to use
|
||||||
|
@return False on any errors, else true
|
||||||
|
*/
|
||||||
|
bool load(Serializer& in);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Get a descriptor for the device name (used in error checking).
|
||||||
|
|
||||||
|
@return The name of the object
|
||||||
|
*/
|
||||||
|
string name() const { return "CartridgeCM"; }
|
||||||
|
|
||||||
|
public:
|
||||||
|
/**
|
||||||
|
Get the byte at the specified address.
|
||||||
|
|
||||||
|
@return The byte at the specified address
|
||||||
|
*/
|
||||||
|
uInt8 peek(uInt16 address);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Change the byte at the specified address to the given value
|
||||||
|
|
||||||
|
@param address The address where the value should be stored
|
||||||
|
@param value The value to be stored at the address
|
||||||
|
@return True if the poke changed the device address space, else false
|
||||||
|
*/
|
||||||
|
bool poke(uInt16 address, uInt8 value);
|
||||||
|
|
||||||
|
private:
|
||||||
|
// Indicates which bank is currently active
|
||||||
|
uInt16 myCurrentBank;
|
||||||
|
|
||||||
|
// The 16K ROM image of the cartridge
|
||||||
|
uInt8 myImage[16384];
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
|
@ -24,11 +24,11 @@
|
||||||
#include "CartE0.hxx"
|
#include "CartE0.hxx"
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
CartridgeE0::CartridgeE0(const uInt8* image, const Settings& settings)
|
CartridgeE0::CartridgeE0(const uInt8* image, uInt32 size, const Settings& settings)
|
||||||
: Cartridge(settings)
|
: Cartridge(settings)
|
||||||
{
|
{
|
||||||
// Copy the ROM image into my buffer
|
// Copy the ROM image into my buffer
|
||||||
memcpy(myImage, image, 8192);
|
memcpy(myImage, image, BSPF_min(8192u, size));
|
||||||
createCodeAccessBase(8192);
|
createCodeAccessBase(8192);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -48,9 +48,10 @@ class CartridgeE0 : public Cartridge
|
||||||
Create a new cartridge using the specified image
|
Create a new cartridge using the specified image
|
||||||
|
|
||||||
@param image Pointer to the ROM image
|
@param image Pointer to the ROM image
|
||||||
|
@param size The size of the ROM image
|
||||||
@param settings A reference to the various settings (read-only)
|
@param settings A reference to the various settings (read-only)
|
||||||
*/
|
*/
|
||||||
CartridgeE0(const uInt8* image, const Settings& settings);
|
CartridgeE0(const uInt8* image, uInt32 size, const Settings& settings);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Destructor
|
Destructor
|
||||||
|
|
|
@ -24,11 +24,11 @@
|
||||||
#include "CartE7.hxx"
|
#include "CartE7.hxx"
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
CartridgeE7::CartridgeE7(const uInt8* image, const Settings& settings)
|
CartridgeE7::CartridgeE7(const uInt8* image, uInt32 size, const Settings& settings)
|
||||||
: Cartridge(settings)
|
: Cartridge(settings)
|
||||||
{
|
{
|
||||||
// Copy the ROM image into my buffer
|
// Copy the ROM image into my buffer
|
||||||
memcpy(myImage, image, 16384);
|
memcpy(myImage, image, BSPF_min(16384u, size));
|
||||||
createCodeAccessBase(16384 + 2048);
|
createCodeAccessBase(16384 + 2048);
|
||||||
|
|
||||||
// This cart can address a 1024 byte bank of RAM @ 0x1000
|
// This cart can address a 1024 byte bank of RAM @ 0x1000
|
||||||
|
|
|
@ -65,9 +65,10 @@ class CartridgeE7 : public Cartridge
|
||||||
Create a new cartridge using the specified image
|
Create a new cartridge using the specified image
|
||||||
|
|
||||||
@param image Pointer to the ROM image
|
@param image Pointer to the ROM image
|
||||||
|
@param size The size of the ROM image
|
||||||
@param settings A reference to the various settings (read-only)
|
@param settings A reference to the various settings (read-only)
|
||||||
*/
|
*/
|
||||||
CartridgeE7(const uInt8* image, const Settings& settings);
|
CartridgeE7(const uInt8* image, uInt32 size, const Settings& settings);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Destructor
|
Destructor
|
||||||
|
|
|
@ -24,11 +24,11 @@
|
||||||
#include "CartEF.hxx"
|
#include "CartEF.hxx"
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
CartridgeEF::CartridgeEF(const uInt8* image, const Settings& settings)
|
CartridgeEF::CartridgeEF(const uInt8* image, uInt32 size, const Settings& settings)
|
||||||
: Cartridge(settings)
|
: Cartridge(settings)
|
||||||
{
|
{
|
||||||
// Copy the ROM image into my buffer
|
// Copy the ROM image into my buffer
|
||||||
memcpy(myImage, image, 65536);
|
memcpy(myImage, image, BSPF_min(65536u, size));
|
||||||
createCodeAccessBase(65536);
|
createCodeAccessBase(65536);
|
||||||
|
|
||||||
// Remember startup bank
|
// Remember startup bank
|
||||||
|
|
|
@ -43,9 +43,10 @@ class CartridgeEF : public Cartridge
|
||||||
Create a new cartridge using the specified image
|
Create a new cartridge using the specified image
|
||||||
|
|
||||||
@param image Pointer to the ROM image
|
@param image Pointer to the ROM image
|
||||||
|
@param size The size of the ROM image
|
||||||
@param settings A reference to the various settings (read-only)
|
@param settings A reference to the various settings (read-only)
|
||||||
*/
|
*/
|
||||||
CartridgeEF(const uInt8* image, const Settings& settings);
|
CartridgeEF(const uInt8* image, uInt32 size, const Settings& settings);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Destructor
|
Destructor
|
||||||
|
|
|
@ -24,11 +24,11 @@
|
||||||
#include "CartEFSC.hxx"
|
#include "CartEFSC.hxx"
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
CartridgeEFSC::CartridgeEFSC(const uInt8* image, const Settings& settings)
|
CartridgeEFSC::CartridgeEFSC(const uInt8* image, uInt32 size, const Settings& settings)
|
||||||
: Cartridge(settings)
|
: Cartridge(settings)
|
||||||
{
|
{
|
||||||
// Copy the ROM image into my buffer
|
// Copy the ROM image into my buffer
|
||||||
memcpy(myImage, image, 65536);
|
memcpy(myImage, image, BSPF_min(65536u, size));
|
||||||
createCodeAccessBase(65536);
|
createCodeAccessBase(65536);
|
||||||
|
|
||||||
// This cart contains 128 bytes extended RAM @ 0x1000
|
// This cart contains 128 bytes extended RAM @ 0x1000
|
||||||
|
|
|
@ -43,9 +43,10 @@ class CartridgeEFSC : public Cartridge
|
||||||
Create a new cartridge using the specified image
|
Create a new cartridge using the specified image
|
||||||
|
|
||||||
@param image Pointer to the ROM image
|
@param image Pointer to the ROM image
|
||||||
|
@param size The size of the ROM image
|
||||||
@param settings A reference to the various settings (read-only)
|
@param settings A reference to the various settings (read-only)
|
||||||
*/
|
*/
|
||||||
CartridgeEFSC(const uInt8* image, const Settings& settings);
|
CartridgeEFSC(const uInt8* image, uInt32 size, const Settings& settings);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Destructor
|
Destructor
|
||||||
|
|
|
@ -24,11 +24,11 @@
|
||||||
#include "CartF0.hxx"
|
#include "CartF0.hxx"
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
CartridgeF0::CartridgeF0(const uInt8* image, const Settings& settings)
|
CartridgeF0::CartridgeF0(const uInt8* image, uInt32 size, const Settings& settings)
|
||||||
: Cartridge(settings)
|
: Cartridge(settings)
|
||||||
{
|
{
|
||||||
// Copy the ROM image into my buffer
|
// Copy the ROM image into my buffer
|
||||||
memcpy(myImage, image, 65536);
|
memcpy(myImage, image, BSPF_min(65536u, size));
|
||||||
createCodeAccessBase(65536);
|
createCodeAccessBase(65536);
|
||||||
|
|
||||||
// Remember startup bank
|
// Remember startup bank
|
||||||
|
|
|
@ -40,9 +40,10 @@ class CartridgeF0 : public Cartridge
|
||||||
Create a new cartridge using the specified image
|
Create a new cartridge using the specified image
|
||||||
|
|
||||||
@param image Pointer to the ROM image
|
@param image Pointer to the ROM image
|
||||||
|
@param size The size of the ROM image
|
||||||
@param settings A reference to the various settings (read-only)
|
@param settings A reference to the various settings (read-only)
|
||||||
*/
|
*/
|
||||||
CartridgeF0(const uInt8* image, const Settings& settings);
|
CartridgeF0(const uInt8* image, uInt32 size, const Settings& settings);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Destructor
|
Destructor
|
||||||
|
|
|
@ -25,11 +25,11 @@
|
||||||
#include "CartF4.hxx"
|
#include "CartF4.hxx"
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
CartridgeF4::CartridgeF4(const uInt8* image, const Settings& settings)
|
CartridgeF4::CartridgeF4(const uInt8* image, uInt32 size, const Settings& settings)
|
||||||
: Cartridge(settings)
|
: Cartridge(settings)
|
||||||
{
|
{
|
||||||
// Copy the ROM image into my buffer
|
// Copy the ROM image into my buffer
|
||||||
memcpy(myImage, image, 32768);
|
memcpy(myImage, image, BSPF_min(32768u, size));
|
||||||
createCodeAccessBase(32768);
|
createCodeAccessBase(32768);
|
||||||
|
|
||||||
// Remember startup bank
|
// Remember startup bank
|
||||||
|
|
|
@ -39,9 +39,10 @@ class CartridgeF4 : public Cartridge
|
||||||
Create a new cartridge using the specified image
|
Create a new cartridge using the specified image
|
||||||
|
|
||||||
@param image Pointer to the ROM image
|
@param image Pointer to the ROM image
|
||||||
|
@param size The size of the ROM image
|
||||||
@param settings A reference to the various settings (read-only)
|
@param settings A reference to the various settings (read-only)
|
||||||
*/
|
*/
|
||||||
CartridgeF4(const uInt8* image, const Settings& settings);
|
CartridgeF4(const uInt8* image, uInt32 size, const Settings& settings);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Destructor
|
Destructor
|
||||||
|
|
|
@ -24,11 +24,11 @@
|
||||||
#include "CartF4SC.hxx"
|
#include "CartF4SC.hxx"
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
CartridgeF4SC::CartridgeF4SC(const uInt8* image, const Settings& settings)
|
CartridgeF4SC::CartridgeF4SC(const uInt8* image, uInt32 size, const Settings& settings)
|
||||||
: Cartridge(settings)
|
: Cartridge(settings)
|
||||||
{
|
{
|
||||||
// Copy the ROM image into my buffer
|
// Copy the ROM image into my buffer
|
||||||
memcpy(myImage, image, 32768);
|
memcpy(myImage, image, BSPF_min(32768u, size));
|
||||||
createCodeAccessBase(32768);
|
createCodeAccessBase(32768);
|
||||||
|
|
||||||
// This cart contains 128 bytes extended RAM @ 0x1000
|
// This cart contains 128 bytes extended RAM @ 0x1000
|
||||||
|
|
|
@ -39,9 +39,10 @@ class CartridgeF4SC : public Cartridge
|
||||||
Create a new cartridge using the specified image
|
Create a new cartridge using the specified image
|
||||||
|
|
||||||
@param image Pointer to the ROM image
|
@param image Pointer to the ROM image
|
||||||
|
@param size The size of the ROM image
|
||||||
@param settings A reference to the various settings (read-only)
|
@param settings A reference to the various settings (read-only)
|
||||||
*/
|
*/
|
||||||
CartridgeF4SC(const uInt8* image, const Settings& settings);
|
CartridgeF4SC(const uInt8* image, uInt32 size, const Settings& settings);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Destructor
|
Destructor
|
||||||
|
|
|
@ -24,11 +24,11 @@
|
||||||
#include "CartF6.hxx"
|
#include "CartF6.hxx"
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
CartridgeF6::CartridgeF6(const uInt8* image, const Settings& settings)
|
CartridgeF6::CartridgeF6(const uInt8* image, uInt32 size, const Settings& settings)
|
||||||
: Cartridge(settings)
|
: Cartridge(settings)
|
||||||
{
|
{
|
||||||
// Copy the ROM image into my buffer
|
// Copy the ROM image into my buffer
|
||||||
memcpy(myImage, image, 16384);
|
memcpy(myImage, image, BSPF_min(16384u, size));
|
||||||
createCodeAccessBase(16384);
|
createCodeAccessBase(16384);
|
||||||
|
|
||||||
// Remember startup bank
|
// Remember startup bank
|
||||||
|
|
|
@ -39,9 +39,10 @@ class CartridgeF6 : public Cartridge
|
||||||
Create a new cartridge using the specified image
|
Create a new cartridge using the specified image
|
||||||
|
|
||||||
@param image Pointer to the ROM image
|
@param image Pointer to the ROM image
|
||||||
|
@param size The size of the ROM image
|
||||||
@param settings A reference to the various settings (read-only)
|
@param settings A reference to the various settings (read-only)
|
||||||
*/
|
*/
|
||||||
CartridgeF6(const uInt8* image, const Settings& settings);
|
CartridgeF6(const uInt8* image, uInt32 size, const Settings& settings);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Destructor
|
Destructor
|
||||||
|
|
|
@ -24,11 +24,11 @@
|
||||||
#include "CartF6SC.hxx"
|
#include "CartF6SC.hxx"
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
CartridgeF6SC::CartridgeF6SC(const uInt8* image, const Settings& settings)
|
CartridgeF6SC::CartridgeF6SC(const uInt8* image, uInt32 size, const Settings& settings)
|
||||||
: Cartridge(settings)
|
: Cartridge(settings)
|
||||||
{
|
{
|
||||||
// Copy the ROM image into my buffer
|
// Copy the ROM image into my buffer
|
||||||
memcpy(myImage, image, 16384);
|
memcpy(myImage, image, BSPF_min(16384u, size));
|
||||||
createCodeAccessBase(16384);
|
createCodeAccessBase(16384);
|
||||||
|
|
||||||
// This cart contains 128 bytes extended RAM @ 0x1000
|
// This cart contains 128 bytes extended RAM @ 0x1000
|
||||||
|
|
|
@ -39,9 +39,10 @@ class CartridgeF6SC : public Cartridge
|
||||||
Create a new cartridge using the specified image
|
Create a new cartridge using the specified image
|
||||||
|
|
||||||
@param image Pointer to the ROM image
|
@param image Pointer to the ROM image
|
||||||
|
@param size The size of the ROM image
|
||||||
@param settings A reference to the various settings (read-only)
|
@param settings A reference to the various settings (read-only)
|
||||||
*/
|
*/
|
||||||
CartridgeF6SC(const uInt8* image, const Settings& settings);
|
CartridgeF6SC(const uInt8* image, uInt32 size, const Settings& settings);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Destructor
|
Destructor
|
||||||
|
|
|
@ -24,12 +24,12 @@
|
||||||
#include "CartF8.hxx"
|
#include "CartF8.hxx"
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
CartridgeF8::CartridgeF8(const uInt8* image, const string& md5,
|
CartridgeF8::CartridgeF8(const uInt8* image, uInt32 size, const string& md5,
|
||||||
const Settings& settings)
|
const Settings& settings)
|
||||||
: Cartridge(settings)
|
: Cartridge(settings)
|
||||||
{
|
{
|
||||||
// Copy the ROM image into my buffer
|
// Copy the ROM image into my buffer
|
||||||
memcpy(myImage, image, 8192);
|
memcpy(myImage, image, BSPF_min(8192u, size));
|
||||||
createCodeAccessBase(8192);
|
createCodeAccessBase(8192);
|
||||||
|
|
||||||
// Normally bank 1 is the reset bank, unless we're dealing with ROMs
|
// Normally bank 1 is the reset bank, unless we're dealing with ROMs
|
||||||
|
|
|
@ -39,10 +39,12 @@ class CartridgeF8 : public Cartridge
|
||||||
Create a new cartridge using the specified image
|
Create a new cartridge using the specified image
|
||||||
|
|
||||||
@param image Pointer to the ROM image
|
@param image Pointer to the ROM image
|
||||||
|
@param size The size of the ROM image
|
||||||
@param md5 MD5sum of the ROM image
|
@param md5 MD5sum of the ROM image
|
||||||
@param settings A reference to the various settings (read-only)
|
@param settings A reference to the various settings (read-only)
|
||||||
*/
|
*/
|
||||||
CartridgeF8(const uInt8* image, const string& md5, const Settings& settings);
|
CartridgeF8(const uInt8* image, uInt32 size, const string& md5,
|
||||||
|
const Settings& settings);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Destructor
|
Destructor
|
||||||
|
|
|
@ -24,11 +24,11 @@
|
||||||
#include "CartF8SC.hxx"
|
#include "CartF8SC.hxx"
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
CartridgeF8SC::CartridgeF8SC(const uInt8* image, const Settings& settings)
|
CartridgeF8SC::CartridgeF8SC(const uInt8* image, uInt32 size, const Settings& settings)
|
||||||
: Cartridge(settings)
|
: Cartridge(settings)
|
||||||
{
|
{
|
||||||
// Copy the ROM image into my buffer
|
// Copy the ROM image into my buffer
|
||||||
memcpy(myImage, image, 8192);
|
memcpy(myImage, image, BSPF_min(8192u, size));
|
||||||
createCodeAccessBase(8192);
|
createCodeAccessBase(8192);
|
||||||
|
|
||||||
// This cart contains 128 bytes extended RAM @ 0x1000
|
// This cart contains 128 bytes extended RAM @ 0x1000
|
||||||
|
|
|
@ -39,9 +39,10 @@ class CartridgeF8SC : public Cartridge
|
||||||
Create a new cartridge using the specified image
|
Create a new cartridge using the specified image
|
||||||
|
|
||||||
@param image Pointer to the ROM image
|
@param image Pointer to the ROM image
|
||||||
|
@param size The size of the ROM image
|
||||||
@param settings A reference to the various settings (read-only)
|
@param settings A reference to the various settings (read-only)
|
||||||
*/
|
*/
|
||||||
CartridgeF8SC(const uInt8* image, const Settings& settings);
|
CartridgeF8SC(const uInt8* image, uInt32 size, const Settings& settings);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Destructor
|
Destructor
|
||||||
|
|
|
@ -24,11 +24,11 @@
|
||||||
#include "CartFA.hxx"
|
#include "CartFA.hxx"
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
CartridgeFA::CartridgeFA(const uInt8* image, const Settings& settings)
|
CartridgeFA::CartridgeFA(const uInt8* image, uInt32 size, const Settings& settings)
|
||||||
: Cartridge(settings)
|
: Cartridge(settings)
|
||||||
{
|
{
|
||||||
// Copy the ROM image into my buffer
|
// Copy the ROM image into my buffer
|
||||||
memcpy(myImage, image, 12288);
|
memcpy(myImage, image, BSPF_min(12288u, size));
|
||||||
createCodeAccessBase(12288);
|
createCodeAccessBase(12288);
|
||||||
|
|
||||||
// This cart contains 256 bytes extended RAM @ 0x1000
|
// This cart contains 256 bytes extended RAM @ 0x1000
|
||||||
|
|
|
@ -39,9 +39,10 @@ class CartridgeFA : public Cartridge
|
||||||
Create a new cartridge using the specified image
|
Create a new cartridge using the specified image
|
||||||
|
|
||||||
@param image Pointer to the ROM image
|
@param image Pointer to the ROM image
|
||||||
|
@param size The size of the ROM image
|
||||||
@param settings A reference to the various settings (read-only)
|
@param settings A reference to the various settings (read-only)
|
||||||
*/
|
*/
|
||||||
CartridgeFA(const uInt8* image, const Settings& settings);
|
CartridgeFA(const uInt8* image, uInt32 size, const Settings& settings);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Destructor
|
Destructor
|
||||||
|
|
|
@ -24,14 +24,14 @@
|
||||||
#include "CartFE.hxx"
|
#include "CartFE.hxx"
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
CartridgeFE::CartridgeFE(const uInt8* image, const Settings& settings)
|
CartridgeFE::CartridgeFE(const uInt8* image, uInt32 size, const Settings& settings)
|
||||||
: Cartridge(settings),
|
: Cartridge(settings),
|
||||||
myLastAddress1(0),
|
myLastAddress1(0),
|
||||||
myLastAddress2(0),
|
myLastAddress2(0),
|
||||||
myLastAddressChanged(false)
|
myLastAddressChanged(false)
|
||||||
{
|
{
|
||||||
// Copy the ROM image into my buffer
|
// Copy the ROM image into my buffer
|
||||||
memcpy(myImage, image, 8192);
|
memcpy(myImage, image, BSPF_min(8192u, size));
|
||||||
|
|
||||||
// We use System::PageAccess.codeAccessBase, but don't allow its use
|
// We use System::PageAccess.codeAccessBase, but don't allow its use
|
||||||
// through a pointer, since the address space of FE carts can change
|
// through a pointer, since the address space of FE carts can change
|
||||||
|
|
|
@ -54,9 +54,10 @@ class CartridgeFE : public Cartridge
|
||||||
Create a new cartridge using the specified image
|
Create a new cartridge using the specified image
|
||||||
|
|
||||||
@param image Pointer to the ROM image
|
@param image Pointer to the ROM image
|
||||||
|
@param size The size of the ROM image
|
||||||
@param settings A reference to the various settings (read-only)
|
@param settings A reference to the various settings (read-only)
|
||||||
*/
|
*/
|
||||||
CartridgeFE(const uInt8* image, const Settings& settings);
|
CartridgeFE(const uInt8* image, uInt32 size, const Settings& settings);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Destructor
|
Destructor
|
||||||
|
|
|
@ -24,11 +24,11 @@
|
||||||
#include "CartUA.hxx"
|
#include "CartUA.hxx"
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
CartridgeUA::CartridgeUA(const uInt8* image, const Settings& settings)
|
CartridgeUA::CartridgeUA(const uInt8* image, uInt32 size, const Settings& settings)
|
||||||
: Cartridge(settings)
|
: Cartridge(settings)
|
||||||
{
|
{
|
||||||
// Copy the ROM image into my buffer
|
// Copy the ROM image into my buffer
|
||||||
memcpy(myImage, image, 8192);
|
memcpy(myImage, image, BSPF_min(8192u, size));
|
||||||
createCodeAccessBase(8192);
|
createCodeAccessBase(8192);
|
||||||
|
|
||||||
// Remember startup bank
|
// Remember startup bank
|
||||||
|
|
|
@ -40,9 +40,10 @@ class CartridgeUA : public Cartridge
|
||||||
Create a new cartridge using the specified image
|
Create a new cartridge using the specified image
|
||||||
|
|
||||||
@param image Pointer to the ROM image
|
@param image Pointer to the ROM image
|
||||||
|
@param size The size of the ROM image
|
||||||
@param settings A reference to the various settings (read-only)
|
@param settings A reference to the various settings (read-only)
|
||||||
*/
|
*/
|
||||||
CartridgeUA(const uInt8* image, const Settings& settings);
|
CartridgeUA(const uInt8* image, uInt32 size, const Settings& settings);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Destructor
|
Destructor
|
||||||
|
|
|
@ -26,11 +26,11 @@
|
||||||
#include "CartX07.hxx"
|
#include "CartX07.hxx"
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
CartridgeX07::CartridgeX07(const uInt8* image, const Settings& settings)
|
CartridgeX07::CartridgeX07(const uInt8* image, uInt32 size, const Settings& settings)
|
||||||
: Cartridge(settings)
|
: Cartridge(settings)
|
||||||
{
|
{
|
||||||
// Copy the ROM image into my buffer
|
// Copy the ROM image into my buffer
|
||||||
memcpy(myImage, image, 65536);
|
memcpy(myImage, image, BSPF_min(65536u, size));
|
||||||
createCodeAccessBase(65536);
|
createCodeAccessBase(65536);
|
||||||
|
|
||||||
// Remember startup bank
|
// Remember startup bank
|
||||||
|
|
|
@ -49,9 +49,10 @@ class CartridgeX07 : public Cartridge
|
||||||
Create a new cartridge using the specified image
|
Create a new cartridge using the specified image
|
||||||
|
|
||||||
@param image Pointer to the ROM image
|
@param image Pointer to the ROM image
|
||||||
|
@param size The size of the ROM image
|
||||||
@param settings A reference to the various settings (read-only)
|
@param settings A reference to the various settings (read-only)
|
||||||
*/
|
*/
|
||||||
CartridgeX07(const uInt8* image, const Settings& settings);
|
CartridgeX07(const uInt8* image, uInt32 size, const Settings& settings);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Destructor
|
Destructor
|
||||||
|
|
|
@ -37,6 +37,35 @@
|
||||||
The CompuMate was equipped with an audio jack for use with a standard tape
|
The CompuMate was equipped with an audio jack for use with a standard tape
|
||||||
connector as a possibility of permanent data storage.
|
connector as a possibility of permanent data storage.
|
||||||
|
|
||||||
|
Bankswitching is done though the controller ports
|
||||||
|
INPT0: D7 = CTRL key input (0 on startup / 1 = key pressed)
|
||||||
|
INPT1: D7 = always HIGH input (tested at startup)
|
||||||
|
INPT2: D7 = always HIGH input (tested at startup)
|
||||||
|
INPT3: D7 = SHIFT key input (0 on startup / 1 = key pressed)
|
||||||
|
INPT4: D7 = keyboard row 1 input (0 = key pressed)
|
||||||
|
INPT5: D7 = keyboard row 3 input (0 = key pressed)
|
||||||
|
SWCHA: D7 = tape recorder I/O ?
|
||||||
|
D6 = 1 -> increase key collumn (0 to 9)
|
||||||
|
D5 = 1 -> reset key collumn to 0 (if D4 = 0)
|
||||||
|
D5 = 0 -> enable RAM writing (if D4 = 1)
|
||||||
|
D4 = 1 -> map 2K of RAM at $1800 - $1fff
|
||||||
|
D3 = keyboard row 4 input (0 = key pressed)
|
||||||
|
D2 = keyboard row 2 input (0 = key pressed)
|
||||||
|
D1 = bank select high bit
|
||||||
|
D0 = bank select low bit
|
||||||
|
|
||||||
|
Keyboard column numbering:
|
||||||
|
column 0 = 7 U J M
|
||||||
|
column 1 = 6 Y H N
|
||||||
|
column 2 = 8 I K ,
|
||||||
|
column 3 = 2 W S X
|
||||||
|
column 4 = 3 E D C
|
||||||
|
column 5 = 0 P ENTER SPACE
|
||||||
|
column 6 = 9 O L .
|
||||||
|
column 7 = 5 T G B
|
||||||
|
column 8 = 1 Q A Z
|
||||||
|
column 9 = 4 R F V
|
||||||
|
|
||||||
This code was heavily borrowed from z26, and uses conventions defined
|
This code was heavily borrowed from z26, and uses conventions defined
|
||||||
there. Specifically, IOPortA is treated as a complete uInt8, whereas
|
there. Specifically, IOPortA is treated as a complete uInt8, whereas
|
||||||
the Stella core actually stores this information in boolean arrays
|
the Stella core actually stores this information in boolean arrays
|
||||||
|
|
|
@ -2063,7 +2063,7 @@ static const char* DefProps[DEF_PROPS_SIZE][20] = {
|
||||||
{ "a1ccf58ca588bd3e0fb35a1e2a41b423", "", "", "Greeting Cart Green Dress (SnailSoft)(PD)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
{ "a1ccf58ca588bd3e0fb35a1e2a41b423", "", "", "Greeting Cart Green Dress (SnailSoft)(PD)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||||
{ "a1ead9c181d67859aa93c44e40f1709c", "American Videogame - Dunhill Electronics, Darrell Wagner, Todd Clark Holm, John Simonds", "", "Tax Avoiders (1982) (American Videogame)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
{ "a1ead9c181d67859aa93c44e40f1709c", "American Videogame - Dunhill Electronics, Darrell Wagner, Todd Clark Holm, John Simonds", "", "Tax Avoiders (1982) (American Videogame)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||||
{ "a1f9159121142d42e63e6fb807d337aa", "Quelle", "700.223 1 - 781627", "Der moderne Ritter (1983) (Quelle) (PAL)", "AKA Fast Eddie", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
{ "a1f9159121142d42e63e6fb807d337aa", "Quelle", "700.223 1 - 781627", "Der moderne Ritter (1983) (Quelle) (PAL)", "AKA Fast Eddie", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||||
{ "a204cd4fb1944c86e800120706512a64", "Coleco", "2511", "Smurfs Save the Day (1983) (Coleco)", "Uses the Kid Vid Controller", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
{ "a204cd4fb1944c86e800120706512a64", "Coleco", "2511", "Smurfs Save the Day (1983) (Coleco)", "Uses the Kid Vid Controller", "", "", "", "", "", "", "", "", "KIDVID", "", "", "", "", "", "" },
|
||||||
{ "a20b7abbcdf90fbc29ac0fafa195bd12", "Quelle", "719.383 2 - 649635 - 781393", "Motocross (1983) (Quelle) (PAL)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
{ "a20b7abbcdf90fbc29ac0fafa195bd12", "Quelle", "719.383 2 - 649635 - 781393", "Motocross (1983) (Quelle) (PAL)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||||
{ "a20d931a8fddcd6f6116ed21ff5c4832", "Apollo - Games by Apollo, Ed Salvo, Byron Parks", "AP-2003", "Racquetball (1981) (Apollo) [a]", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "" },
|
{ "a20d931a8fddcd6f6116ed21ff5c4832", "Apollo - Games by Apollo, Ed Salvo, Byron Parks", "AP-2003", "Racquetball (1981) (Apollo) [a]", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "" },
|
||||||
{ "a2170318a8ef4b50a1b1d38567c220d6", "Amiga", "3125", "Surf's Up (1983) (Amiga) (Prototype) [a]", "Uses the Amiga Joyboard", "Prototype", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
{ "a2170318a8ef4b50a1b1d38567c220d6", "Amiga", "3125", "Surf's Up (1983) (Amiga) (Prototype) [a]", "Uses the Amiga Joyboard", "Prototype", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||||
|
@ -2486,7 +2486,7 @@ static const char* DefProps[DEF_PROPS_SIZE][20] = {
|
||||||
{ "c5930d0e8cdae3e037349bfa08e871be", "Atari, Howard Scott Warshaw - Sears", "CX2655 - 49-75167", "Yars' Revenge (1982) (Atari)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "" },
|
{ "c5930d0e8cdae3e037349bfa08e871be", "Atari, Howard Scott Warshaw - Sears", "CX2655 - 49-75167", "Yars' Revenge (1982) (Atari)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "" },
|
||||||
{ "c59633dbebd926c150fb6d30b0576405", "Telegames", "5861 A030", "Bogey Blaster (1989) (Telegames)", "AKA Air Raiders", "Rare", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
{ "c59633dbebd926c150fb6d30b0576405", "Telegames", "5861 A030", "Bogey Blaster (1989) (Telegames)", "AKA Air Raiders", "Rare", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||||
{ "c5a76bafc4676edb76e0126fb9f0fb2d", "Charles Morgan", "", "Zero Patrol (Charles Morgan) (Hack)", "Hack of Moon Patrol", "Hack", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
{ "c5a76bafc4676edb76e0126fb9f0fb2d", "Charles Morgan", "", "Zero Patrol (Charles Morgan) (Hack)", "Hack of Moon Patrol", "Hack", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||||
{ "c5bab953ac13dbb2cba03cd0684fb125", "SpiceWare - Darrell Spice Jr.", "", "Stay Frosty (SpiceWare)", "Part of Stella's Stocking 2007 Xmas compilation", "Homebrew", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "" },
|
{ "c5bab953ac13dbb2cba03cd0684fb125", "SpiceWare - Darrell Spice Jr.", "", "Stay Frosty (SpiceWare)", "Part of Stella's Stocking 2007 Xmas compilation", "Homebrew", "STEREO", "", "", "", "", "", "", "", "", "", "", "", "YES", "" },
|
||||||
{ "c5c7cc66febf2d4e743b4459de7ed868", "Atari, Jerome Domurat, Steve Woita", "CX2696", "Asterix (1983) (Atari) (PAL) [a]", "AKA Taz", "Extremely Rare", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
{ "c5c7cc66febf2d4e743b4459de7ed868", "Atari, Jerome Domurat, Steve Woita", "CX2696", "Asterix (1983) (Atari) (PAL) [a]", "AKA Taz", "Extremely Rare", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||||
{ "c5d2834bf98e90245e545573eb7e6bbc", "CCE", "", "Snoopy and the Red Baron (CCE)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
{ "c5d2834bf98e90245e545573eb7e6bbc", "CCE", "", "Snoopy and the Red Baron (CCE)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||||
{ "c5dd8399257d8862f3952be75c23e0eb", "Atari - GCC", "CX2680", "RealSports Tennis (1982) (Atari) (Prototype)", "", "Prototype", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
{ "c5dd8399257d8862f3952be75c23e0eb", "Atari - GCC", "CX2680", "RealSports Tennis (1982) (Atari) (Prototype)", "", "Prototype", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||||
|
@ -2946,7 +2946,7 @@ static const char* DefProps[DEF_PROPS_SIZE][20] = {
|
||||||
{ "e7864caaf9ec49ed67b1904ce8602690", "", "", "Donkey Kong 2K3 Pic (PD)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
{ "e7864caaf9ec49ed67b1904ce8602690", "", "", "Donkey Kong 2K3 Pic (PD)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||||
{ "e7a758bb0b43d0f7004e92b9abf4bc83", "", "", "Troll's Adventure (Hack)", "Hack of Adventure", "Hack", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
{ "e7a758bb0b43d0f7004e92b9abf4bc83", "", "", "Troll's Adventure (Hack)", "Hack of Adventure", "Hack", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||||
{ "e7dd8c2e6c100044002c1086d02b366e", "Activision, Steve Cartwright - Ariola", "EAX-013, PAX-013, 711 013-720", "Barnstorming (1982) (Activision) (PAL)", "AKA Die tollkeuhnen Flieger", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
{ "e7dd8c2e6c100044002c1086d02b366e", "Activision, Steve Cartwright - Ariola", "EAX-013, PAX-013, 711 013-720", "Barnstorming (1982) (Activision) (PAL)", "AKA Die tollkeuhnen Flieger", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||||
{ "e7f005ddb6902c648de098511f6ae2e5", "Spectravideo - Universum", "SV-010", "CompuMate (1983) (Spectravideo) (PAL)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "" },
|
{ "e7f005ddb6902c648de098511f6ae2e5", "Spectravideo - Universum", "SV-010", "CompuMate (1983) (Spectravideo) (PAL)", "", "", "", "CM", "", "", "", "", "COMPUMATE", "COMPUMATE", "", "", "", "", "YES", "" },
|
||||||
{ "e800e4aec7c6c54c9cf3db0d1d030058", "", "", "Qb (2.06) (Retroactive) (Stella)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "" },
|
{ "e800e4aec7c6c54c9cf3db0d1d030058", "", "", "Qb (2.06) (Retroactive) (Stella)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "" },
|
||||||
{ "e80a4026d29777c3c7993fbfaee8920f", "", "", "Frisco (Unknown)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
{ "e80a4026d29777c3c7993fbfaee8920f", "", "", "Frisco (Unknown)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||||
{ "e823b13751e4388f1f2a375d3560a8d7", "Arcadia Corporation, Stephen Harland Landrum", "AR-4105", "Official Frogger (Preview) (1983) (Arcadia) [a]", "", "", "", "", "", "", "", "", "", "", "", "", "32", "", "", "" },
|
{ "e823b13751e4388f1f2a375d3560a8d7", "Arcadia Corporation, Stephen Harland Landrum", "AR-4105", "Official Frogger (Preview) (1983) (Arcadia) [a]", "", "", "", "", "", "", "", "", "", "", "", "", "32", "", "", "" },
|
||||||
|
@ -3051,7 +3051,7 @@ static const char* DefProps[DEF_PROPS_SIZE][20] = {
|
||||||
{ "f047df70d3d08e331122cd2de61d6af8", "Dave Neuman", "", "Space Battle (NTSC)", "", "Homebrew", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
{ "f047df70d3d08e331122cd2de61d6af8", "Dave Neuman", "", "Space Battle (NTSC)", "", "Homebrew", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||||
{ "f04ee80011d95798006378643650aaa7", "Atari, Bill Aspromonte, John Russell, Michael Sierchio, Robert Zdybel", "CX26114", "Pigs in Space (1983) (Atari) (Prototype)", "", "Prototype", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
{ "f04ee80011d95798006378643650aaa7", "Atari, Bill Aspromonte, John Russell, Michael Sierchio, Robert Zdybel", "CX26114", "Pigs in Space (1983) (Atari) (Prototype)", "", "Prototype", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||||
{ "f0536303f49006806bac3aec15738336", "Arcadia Corporation, Dennis Caswell", "AR-4200", "Escape from the Mindmaster (4 of 4) (1982) (Arcadia)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
{ "f0536303f49006806bac3aec15738336", "Arcadia Corporation, Dennis Caswell", "AR-4200", "Escape from the Mindmaster (4 of 4) (1982) (Arcadia)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||||
{ "f0541d2f7cda5ec7bab6d62b6128b823", "Atari, Paul Donaldson", "", "Bionic Breakthrough (1984) (Atari) (Prototype)", "Uses Mindlink Controller (left only)", "Prototype", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
{ "f0541d2f7cda5ec7bab6d62b6128b823", "Atari, Paul Donaldson", "", "Bionic Breakthrough (1984) (Atari) (Prototype)", "Uses Mindlink Controller (left only)", "Prototype", "", "", "", "", "", "", "MINDLINK", "", "", "", "", "", "", "" },
|
||||||
{ "f060826626aac9e0d8cda0282f4b7fc3", "Atari, David Crane - Sears", "CX2605 - 6-99822, 49-75109", "Outlaw (1978) (Atari) (4K)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
{ "f060826626aac9e0d8cda0282f4b7fc3", "Atari, David Crane - Sears", "CX2605 - 6-99822, 49-75109", "Outlaw (1978) (Atari) (4K)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||||
{ "f0631c6675033428238408885d7e4fde", "Paul Slocum", "", "Test Cart (2002) (Paul Slocum)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "" },
|
{ "f0631c6675033428238408885d7e4fde", "Paul Slocum", "", "Test Cart (2002) (Paul Slocum)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "" },
|
||||||
{ "f066bea7ab0a37b83c83c924a87c5b67", "", "", "Air Raiders (1982) (Unknown)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
{ "f066bea7ab0a37b83c83c924a87c5b67", "", "", "Air Raiders (1982) (Unknown)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||||
|
|
|
@ -10,6 +10,7 @@ MODULE_OBJS := \
|
||||||
src/emucore/Cart4K.o \
|
src/emucore/Cart4K.o \
|
||||||
src/emucore/CartAR.o \
|
src/emucore/CartAR.o \
|
||||||
src/emucore/CartCV.o \
|
src/emucore/CartCV.o \
|
||||||
|
src/emucore/CartCM.o \
|
||||||
src/emucore/Cart.o \
|
src/emucore/Cart.o \
|
||||||
src/emucore/CartDPC.o \
|
src/emucore/CartDPC.o \
|
||||||
src/emucore/CartDPCPlus.o \
|
src/emucore/CartDPCPlus.o \
|
||||||
|
|
|
@ -12103,6 +12103,7 @@
|
||||||
"Cartridge.ModelNo" "2511"
|
"Cartridge.ModelNo" "2511"
|
||||||
"Cartridge.Name" "Smurfs Save the Day (1983) (Coleco)"
|
"Cartridge.Name" "Smurfs Save the Day (1983) (Coleco)"
|
||||||
"Cartridge.Note" "Uses the Kid Vid Controller"
|
"Cartridge.Note" "Uses the Kid Vid Controller"
|
||||||
|
"Controller.Right" "KIDVID"
|
||||||
""
|
""
|
||||||
|
|
||||||
"Cartridge.MD5" "a20d931a8fddcd6f6116ed21ff5c4832"
|
"Cartridge.MD5" "a20d931a8fddcd6f6116ed21ff5c4832"
|
||||||
|
@ -17331,6 +17332,9 @@
|
||||||
"Cartridge.Manufacturer" "Spectravideo - Universum"
|
"Cartridge.Manufacturer" "Spectravideo - Universum"
|
||||||
"Cartridge.ModelNo" "SV-010"
|
"Cartridge.ModelNo" "SV-010"
|
||||||
"Cartridge.Name" "CompuMate (1983) (Spectravideo) (PAL)"
|
"Cartridge.Name" "CompuMate (1983) (Spectravideo) (PAL)"
|
||||||
|
"Cartridge.Type" "CM"
|
||||||
|
"Controller.Left" "COMPUMATE"
|
||||||
|
"Controller.Right" "COMPUMATE"
|
||||||
"Display.Phosphor" "YES"
|
"Display.Phosphor" "YES"
|
||||||
""
|
""
|
||||||
|
|
||||||
|
@ -17783,6 +17787,7 @@
|
||||||
"Cartridge.Name" "Bionic Breakthrough (1984) (Atari) (Prototype)"
|
"Cartridge.Name" "Bionic Breakthrough (1984) (Atari) (Prototype)"
|
||||||
"Cartridge.Note" "Uses Mindlink Controller (left only)"
|
"Cartridge.Note" "Uses Mindlink Controller (left only)"
|
||||||
"Cartridge.Rarity" "Prototype"
|
"Cartridge.Rarity" "Prototype"
|
||||||
|
"Controller.Left" "MINDLINK"
|
||||||
""
|
""
|
||||||
|
|
||||||
"Cartridge.MD5" "eeb92f3f46df841487d1504f2896d61a"
|
"Cartridge.MD5" "eeb92f3f46df841487d1504f2896d61a"
|
||||||
|
@ -19320,6 +19325,7 @@
|
||||||
"Cartridge.Name" "Stay Frosty (SpiceWare)"
|
"Cartridge.Name" "Stay Frosty (SpiceWare)"
|
||||||
"Cartridge.Note" "Part of Stella's Stocking 2007 Xmas compilation"
|
"Cartridge.Note" "Part of Stella's Stocking 2007 Xmas compilation"
|
||||||
"Cartridge.Rarity" "Homebrew"
|
"Cartridge.Rarity" "Homebrew"
|
||||||
|
"Cartridge.Sound" "STEREO"
|
||||||
"Display.Phosphor" "YES"
|
"Display.Phosphor" "YES"
|
||||||
""
|
""
|
||||||
|
|
||||||
|
|
|
@ -133,7 +133,7 @@ GameInfoDialog::GameInfoDialog(
|
||||||
ypos += lineHeight + 3;
|
ypos += lineHeight + 3;
|
||||||
new StaticTextWidget(myTab, font, xpos, ypos+1, lwidth, fontHeight,
|
new StaticTextWidget(myTab, font, xpos, ypos+1, lwidth, fontHeight,
|
||||||
"Type:", kTextAlignLeft);
|
"Type:", kTextAlignLeft);
|
||||||
pwidth = font.getStringWidth("EFSC (64K H. Runner + ram)");
|
pwidth = font.getStringWidth("CM (SpectraVideo CompuMate)");
|
||||||
items.clear();
|
items.clear();
|
||||||
items.push_back("Auto-detect", "AUTO-DETECT");
|
items.push_back("Auto-detect", "AUTO-DETECT");
|
||||||
items.push_back("0840 (8K ECONObank)", "0840" );
|
items.push_back("0840 (8K ECONObank)", "0840" );
|
||||||
|
@ -149,6 +149,7 @@ GameInfoDialog::GameInfoDialog(
|
||||||
items.push_back("4K (4K Atari)", "4K" );
|
items.push_back("4K (4K Atari)", "4K" );
|
||||||
items.push_back("AR (Supercharger)", "AR" );
|
items.push_back("AR (Supercharger)", "AR" );
|
||||||
items.push_back("CV (Commavid extra ram)", "CV" );
|
items.push_back("CV (Commavid extra ram)", "CV" );
|
||||||
|
items.push_back("CM (SpectraVideo CompuMate)","CM" );
|
||||||
items.push_back("DPC (Pitfall II)", "DPC" );
|
items.push_back("DPC (Pitfall II)", "DPC" );
|
||||||
items.push_back("DPC+ (Enhanced DPC)", "DPC+" );
|
items.push_back("DPC+ (Enhanced DPC)", "DPC+" );
|
||||||
items.push_back("E0 (8K Parker Bros)", "E0" );
|
items.push_back("E0 (8K Parker Bros)", "E0" );
|
||||||
|
|
|
@ -44,7 +44,7 @@ GlobalPropsDialog::
|
||||||
buttonHeight = font.getLineHeight() + 4;
|
buttonHeight = font.getLineHeight() + 4;
|
||||||
int xpos, ypos;
|
int xpos, ypos;
|
||||||
int lwidth = font.getStringWidth("Right Difficulty: "),
|
int lwidth = font.getStringWidth("Right Difficulty: "),
|
||||||
pwidth = font.getStringWidth("EFSC (64K H. Runner + ram)");
|
pwidth = font.getStringWidth("CM (SpectraVideo CompuMate)");
|
||||||
WidgetArray wid;
|
WidgetArray wid;
|
||||||
StringMap items;
|
StringMap items;
|
||||||
|
|
||||||
|
@ -79,6 +79,7 @@ GlobalPropsDialog::
|
||||||
items.push_back("4K (4K Atari)", "4K" );
|
items.push_back("4K (4K Atari)", "4K" );
|
||||||
items.push_back("AR (Supercharger)", "AR" );
|
items.push_back("AR (Supercharger)", "AR" );
|
||||||
items.push_back("CV (Commavid extra ram)", "CV" );
|
items.push_back("CV (Commavid extra ram)", "CV" );
|
||||||
|
items.push_back("CM (SpectraVideo CompuMate)","CM" );
|
||||||
items.push_back("DPC (Pitfall II)", "DPC" );
|
items.push_back("DPC (Pitfall II)", "DPC" );
|
||||||
items.push_back("DPC+ (Enhanced DPC)", "DPC+" );
|
items.push_back("DPC+ (Enhanced DPC)", "DPC+" );
|
||||||
items.push_back("E0 (8K Parker Bros)", "E0" );
|
items.push_back("E0 (8K Parker Bros)", "E0" );
|
||||||
|
|
Loading…
Reference in New Issue