mirror of https://github.com/stella-emu/stella.git
renamed E7 cart classes
This commit is contained in:
parent
71dbf0baa3
commit
9cf4bccea5
|
@ -15,15 +15,15 @@
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#include "CartMNetwork.hxx"
|
#include "CartE7.hxx"
|
||||||
#include "PopUpWidget.hxx"
|
#include "PopUpWidget.hxx"
|
||||||
#include "CartMNetworkWidget.hxx"
|
#include "CartE7Widget.hxx"
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
CartridgeMNetworkWidget::CartridgeMNetworkWidget(
|
CartridgeE7Widget::CartridgeE7Widget(
|
||||||
GuiObject* boss, const GUI::Font& lfont, const GUI::Font& nfont,
|
GuiObject* boss, const GUI::Font& lfont, const GUI::Font& nfont,
|
||||||
int x, int y, int w, int h,
|
int x, int y, int w, int h,
|
||||||
CartridgeMNetwork& cart)
|
CartridgeE7& cart)
|
||||||
: CartDebugWidget(boss, lfont, nfont, x, y, w, h),
|
: CartDebugWidget(boss, lfont, nfont, x, y, w, h),
|
||||||
myCart{cart}
|
myCart{cart}
|
||||||
{
|
{
|
||||||
|
@ -57,8 +57,8 @@ CartridgeMNetworkWidget::CartridgeMNetworkWidget(
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void CartridgeMNetworkWidget::initialize(GuiObject* boss,
|
void CartridgeE7Widget::initialize(GuiObject* boss,
|
||||||
CartridgeMNetwork& cart, ostringstream& info)
|
CartridgeE7& cart, ostringstream& info)
|
||||||
{
|
{
|
||||||
uInt32 size = cart.romBankCount() * cart.BANK_SIZE;
|
uInt32 size = cart.romBankCount() * cart.BANK_SIZE;
|
||||||
|
|
||||||
|
@ -89,7 +89,7 @@ void CartridgeMNetworkWidget::initialize(GuiObject* boss,
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void CartridgeMNetworkWidget::saveOldState()
|
void CartridgeE7Widget::saveOldState()
|
||||||
{
|
{
|
||||||
myOldState.internalram.clear();
|
myOldState.internalram.clear();
|
||||||
|
|
||||||
|
@ -101,7 +101,7 @@ void CartridgeMNetworkWidget::saveOldState()
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void CartridgeMNetworkWidget::loadConfig()
|
void CartridgeE7Widget::loadConfig()
|
||||||
{
|
{
|
||||||
myLower2K->setSelectedIndex(myCart.myCurrentBank[0], myCart.myCurrentBank[0] != myOldState.lowerBank);
|
myLower2K->setSelectedIndex(myCart.myCurrentBank[0], myCart.myCurrentBank[0] != myOldState.lowerBank);
|
||||||
myUpper256B->setSelectedIndex(myCart.myCurrentRAM, myCart.myCurrentRAM != myOldState.upperBank);
|
myUpper256B->setSelectedIndex(myCart.myCurrentRAM, myCart.myCurrentRAM != myOldState.upperBank);
|
||||||
|
@ -110,7 +110,7 @@ void CartridgeMNetworkWidget::loadConfig()
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void CartridgeMNetworkWidget::handleCommand(CommandSender* sender,
|
void CartridgeE7Widget::handleCommand(CommandSender* sender,
|
||||||
int cmd, int data, int id)
|
int cmd, int data, int id)
|
||||||
{
|
{
|
||||||
myCart.unlockBank();
|
myCart.unlockBank();
|
||||||
|
@ -132,7 +132,7 @@ void CartridgeMNetworkWidget::handleCommand(CommandSender* sender,
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
string CartridgeMNetworkWidget::bankState()
|
string CartridgeE7Widget::bankState()
|
||||||
{
|
{
|
||||||
ostringstream& buf = buffer();
|
ostringstream& buf = buffer();
|
||||||
|
|
||||||
|
@ -144,19 +144,19 @@ string CartridgeMNetworkWidget::bankState()
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
uInt32 CartridgeMNetworkWidget::internalRamSize()
|
uInt32 CartridgeE7Widget::internalRamSize()
|
||||||
{
|
{
|
||||||
return 2048;
|
return 2048;
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
uInt32 CartridgeMNetworkWidget::internalRamRPort(int start)
|
uInt32 CartridgeE7Widget::internalRamRPort(int start)
|
||||||
{
|
{
|
||||||
return 0x0000 + start;
|
return 0x0000 + start;
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
string CartridgeMNetworkWidget::internalRamDescription()
|
string CartridgeE7Widget::internalRamDescription()
|
||||||
{
|
{
|
||||||
ostringstream desc;
|
ostringstream desc;
|
||||||
desc << "First 1K accessible via:\n"
|
desc << "First 1K accessible via:\n"
|
||||||
|
@ -170,7 +170,7 @@ string CartridgeMNetworkWidget::internalRamDescription()
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
const ByteArray& CartridgeMNetworkWidget::internalRamOld(int start, int count)
|
const ByteArray& CartridgeE7Widget::internalRamOld(int start, int count)
|
||||||
{
|
{
|
||||||
myRamOld.clear();
|
myRamOld.clear();
|
||||||
for(int i = 0; i < count; i++)
|
for(int i = 0; i < count; i++)
|
||||||
|
@ -179,7 +179,7 @@ const ByteArray& CartridgeMNetworkWidget::internalRamOld(int start, int count)
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
const ByteArray& CartridgeMNetworkWidget::internalRamCurrent(int start, int count)
|
const ByteArray& CartridgeE7Widget::internalRamCurrent(int start, int count)
|
||||||
{
|
{
|
||||||
myRamCurrent.clear();
|
myRamCurrent.clear();
|
||||||
for(int i = 0; i < count; i++)
|
for(int i = 0; i < count; i++)
|
||||||
|
@ -188,19 +188,19 @@ const ByteArray& CartridgeMNetworkWidget::internalRamCurrent(int start, int coun
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void CartridgeMNetworkWidget::internalRamSetValue(int addr, uInt8 value)
|
void CartridgeE7Widget::internalRamSetValue(int addr, uInt8 value)
|
||||||
{
|
{
|
||||||
myCart.myRAM[addr] = value;
|
myCart.myRAM[addr] = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
uInt8 CartridgeMNetworkWidget::internalRamGetValue(int addr)
|
uInt8 CartridgeE7Widget::internalRamGetValue(int addr)
|
||||||
{
|
{
|
||||||
return myCart.myRAM[addr];
|
return myCart.myRAM[addr];
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
const char* CartridgeMNetworkWidget::getSpotLower(int idx)
|
const char* CartridgeE7Widget::getSpotLower(int idx)
|
||||||
{
|
{
|
||||||
static constexpr std::array<const char*, 4> spot_lower_8K = {
|
static constexpr std::array<const char*, 4> spot_lower_8K = {
|
||||||
"#0 - ROM ($FFE4)", "#1 - ROM ($FFE5)", "#2 - ROM ($FFE6)", "#3 - RAM ($FFE7)"
|
"#0 - ROM ($FFE4)", "#1 - ROM ($FFE5)", "#2 - ROM ($FFE6)", "#3 - RAM ($FFE7)"
|
||||||
|
@ -217,7 +217,7 @@ const char* CartridgeMNetworkWidget::getSpotLower(int idx)
|
||||||
|
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
const char* CartridgeMNetworkWidget::getSpotUpper(int idx)
|
const char* CartridgeE7Widget::getSpotUpper(int idx)
|
||||||
{
|
{
|
||||||
static constexpr std::array<const char*, 4> spot_upper = {
|
static constexpr std::array<const char*, 4> spot_upper = {
|
||||||
"#0 - RAM ($FFE8)", "#1 - RAM ($FFE9)", "#2 - RAM ($FFEA)", "#3 - RAM ($FFEB)"
|
"#0 - RAM ($FFE8)", "#1 - RAM ($FFE9)", "#2 - RAM ($FFEA)", "#3 - RAM ($FFEB)"
|
|
@ -15,27 +15,27 @@
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#ifndef CARTRIDGE_MNETWORK_WIDGET_HXX
|
#ifndef CARTRIDGE_E7_WIDGET_HXX
|
||||||
#define CARTRIDGE_MNETWORK_WIDGET_HXX
|
#define CARTRIDGE_E7_WIDGET_HXX
|
||||||
|
|
||||||
class CartridgeMNetwork;
|
class CartridgeE7;
|
||||||
class PopUpWidget;
|
class PopUpWidget;
|
||||||
|
|
||||||
#include "CartDebugWidget.hxx"
|
#include "CartDebugWidget.hxx"
|
||||||
|
|
||||||
class CartridgeMNetworkWidget : public CartDebugWidget
|
class CartridgeE7Widget : public CartDebugWidget
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
CartridgeMNetworkWidget(GuiObject* boss, const GUI::Font& lfont,
|
CartridgeE7Widget(GuiObject* boss, const GUI::Font& lfont,
|
||||||
const GUI::Font& nfont,
|
const GUI::Font& nfont,
|
||||||
int x, int y, int w, int h,
|
int x, int y, int w, int h,
|
||||||
//CartridgeE7& cart);
|
//CartridgeE7& cart);
|
||||||
CartridgeMNetwork& cart);
|
CartridgeE7& cart);
|
||||||
~CartridgeMNetworkWidget() override = default;
|
~CartridgeE7Widget() override = default;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
//CartridgeE7& myCart;
|
//CartridgeE7& myCart;
|
||||||
CartridgeMNetwork& myCart;
|
CartridgeE7& myCart;
|
||||||
|
|
||||||
PopUpWidget *myLower2K{nullptr}, *myUpper256B{nullptr};
|
PopUpWidget *myLower2K{nullptr}, *myUpper256B{nullptr};
|
||||||
|
|
||||||
|
@ -54,7 +54,7 @@ class CartridgeMNetworkWidget : public CartDebugWidget
|
||||||
};
|
};
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void initialize(GuiObject* boss, CartridgeMNetwork& cart, ostringstream& info);
|
void initialize(GuiObject* boss, CartridgeE7& cart, ostringstream& info);
|
||||||
virtual const char* getSpotLower(int idx);
|
virtual const char* getSpotLower(int idx);
|
||||||
virtual const char* getSpotUpper(int idx);
|
virtual const char* getSpotUpper(int idx);
|
||||||
|
|
||||||
|
@ -75,11 +75,11 @@ class CartridgeMNetworkWidget : public CartDebugWidget
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// Following constructors and assignment operators not supported
|
// Following constructors and assignment operators not supported
|
||||||
CartridgeMNetworkWidget() = delete;
|
CartridgeE7Widget() = delete;
|
||||||
CartridgeMNetworkWidget(const CartridgeMNetworkWidget&) = delete;
|
CartridgeE7Widget(const CartridgeE7Widget&) = delete;
|
||||||
CartridgeMNetworkWidget(CartridgeMNetworkWidget&&) = delete;
|
CartridgeE7Widget(CartridgeE7Widget&&) = delete;
|
||||||
CartridgeMNetworkWidget& operator=(const CartridgeMNetworkWidget&) = delete;
|
CartridgeE7Widget& operator=(const CartridgeE7Widget&) = delete;
|
||||||
CartridgeMNetworkWidget& operator=(CartridgeMNetworkWidget&&) = delete;
|
CartridgeE7Widget& operator=(CartridgeE7Widget&&) = delete;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
|
@ -30,9 +30,7 @@ MODULE_OBJS := \
|
||||||
src/debugger/gui/CartDPCWidget.o \
|
src/debugger/gui/CartDPCWidget.o \
|
||||||
src/debugger/gui/CartE0Widget.o \
|
src/debugger/gui/CartE0Widget.o \
|
||||||
src/debugger/gui/CartEnhancedWidget.o \
|
src/debugger/gui/CartEnhancedWidget.o \
|
||||||
src/debugger/gui/CartMNetworkWidget.o \
|
|
||||||
src/debugger/gui/CartE7Widget.o \
|
src/debugger/gui/CartE7Widget.o \
|
||||||
src/debugger/gui/CartE78KWidget.o \
|
|
||||||
src/debugger/gui/CartEFSCWidget.o \
|
src/debugger/gui/CartEFSCWidget.o \
|
||||||
src/debugger/gui/CartEFWidget.o \
|
src/debugger/gui/CartEFWidget.o \
|
||||||
src/debugger/gui/CartF0Widget.o \
|
src/debugger/gui/CartF0Widget.o \
|
||||||
|
|
|
@ -39,7 +39,7 @@
|
||||||
#include "CartDPC.hxx"
|
#include "CartDPC.hxx"
|
||||||
#include "CartDPCPlus.hxx"
|
#include "CartDPCPlus.hxx"
|
||||||
#include "CartE0.hxx"
|
#include "CartE0.hxx"
|
||||||
#include "CartMNetwork.hxx"
|
#include "CartE7.hxx"
|
||||||
#include "CartEF.hxx"
|
#include "CartEF.hxx"
|
||||||
#include "CartEFSC.hxx"
|
#include "CartEFSC.hxx"
|
||||||
#include "CartF0.hxx"
|
#include "CartF0.hxx"
|
||||||
|
@ -306,7 +306,7 @@ CartCreator::createFromImage(const ByteBuffer& image, size_t size, Bankswitch::T
|
||||||
case Bankswitch::Type::_E0:
|
case Bankswitch::Type::_E0:
|
||||||
return make_unique<CartridgeE0>(image, size, md5, settings);
|
return make_unique<CartridgeE0>(image, size, md5, settings);
|
||||||
case Bankswitch::Type::_E7:
|
case Bankswitch::Type::_E7:
|
||||||
return make_unique<CartridgeMNetwork>(image, size, md5, settings);
|
return make_unique<CartridgeE7>(image, size, md5, settings);
|
||||||
case Bankswitch::Type::_EF:
|
case Bankswitch::Type::_EF:
|
||||||
return make_unique<CartridgeEF>(image, size, md5, settings);
|
return make_unique<CartridgeEF>(image, size, md5, settings);
|
||||||
case Bankswitch::Type::_EFSC:
|
case Bankswitch::Type::_EFSC:
|
||||||
|
|
|
@ -16,10 +16,10 @@
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#include "System.hxx"
|
#include "System.hxx"
|
||||||
#include "CartMNetwork.hxx"
|
#include "CartE7.hxx"
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
CartridgeMNetwork::CartridgeMNetwork(const ByteBuffer& image, size_t size,
|
CartridgeE7::CartridgeE7(const ByteBuffer& image, size_t size,
|
||||||
const string& md5, const Settings& settings)
|
const string& md5, const Settings& settings)
|
||||||
: Cartridge(settings, md5),
|
: Cartridge(settings, md5),
|
||||||
mySize{size}
|
mySize{size}
|
||||||
|
@ -28,7 +28,7 @@ CartridgeMNetwork::CartridgeMNetwork(const ByteBuffer& image, size_t size,
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void CartridgeMNetwork::initialize(const ByteBuffer& image, size_t size)
|
void CartridgeE7::initialize(const ByteBuffer& image, size_t size)
|
||||||
{
|
{
|
||||||
// Allocate array for the ROM image
|
// Allocate array for the ROM image
|
||||||
myImage = make_unique<uInt8[]>(size);
|
myImage = make_unique<uInt8[]>(size);
|
||||||
|
@ -41,7 +41,7 @@ void CartridgeMNetwork::initialize(const ByteBuffer& image, size_t size)
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void CartridgeMNetwork::reset()
|
void CartridgeE7::reset()
|
||||||
{
|
{
|
||||||
initializeRAM(myRAM.data(), myRAM.size());
|
initializeRAM(myRAM.data(), myRAM.size());
|
||||||
|
|
||||||
|
@ -57,7 +57,7 @@ void CartridgeMNetwork::reset()
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void CartridgeMNetwork::setAccess(uInt16 addrFrom, uInt16 size,
|
void CartridgeE7::setAccess(uInt16 addrFrom, uInt16 size,
|
||||||
uInt16 directOffset, uInt8* directData, uInt16 codeOffset,
|
uInt16 directOffset, uInt8* directData, uInt16 codeOffset,
|
||||||
System::PageAccessType type, uInt16 addrMask)
|
System::PageAccessType type, uInt16 addrMask)
|
||||||
{
|
{
|
||||||
|
@ -79,7 +79,7 @@ void CartridgeMNetwork::setAccess(uInt16 addrFrom, uInt16 size,
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void CartridgeMNetwork::install(System& system)
|
void CartridgeE7::install(System& system)
|
||||||
{
|
{
|
||||||
mySystem = &system;
|
mySystem = &system;
|
||||||
|
|
||||||
|
@ -108,7 +108,7 @@ void CartridgeMNetwork::install(System& system)
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void CartridgeMNetwork::checkSwitchBank(uInt16 address)
|
void CartridgeE7::checkSwitchBank(uInt16 address)
|
||||||
{
|
{
|
||||||
// Switch banks if necessary
|
// Switch banks if necessary
|
||||||
if(romBankCount() == 4 && (address >= 0x0FE4) && (address <= 0x0FE7))
|
if(romBankCount() == 4 && (address >= 0x0FE4) && (address <= 0x0FE7))
|
||||||
|
@ -126,7 +126,7 @@ void CartridgeMNetwork::checkSwitchBank(uInt16 address)
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
uInt8 CartridgeMNetwork::peek(uInt16 address)
|
uInt8 CartridgeE7::peek(uInt16 address)
|
||||||
{
|
{
|
||||||
uInt16 peekAddress = address;
|
uInt16 peekAddress = address;
|
||||||
address &= 0x0FFF;
|
address &= 0x0FFF;
|
||||||
|
@ -149,7 +149,7 @@ uInt8 CartridgeMNetwork::peek(uInt16 address)
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
bool CartridgeMNetwork::poke(uInt16 address, uInt8 value)
|
bool CartridgeE7::poke(uInt16 address, uInt8 value)
|
||||||
{
|
{
|
||||||
uInt16 pokeAddress = address;
|
uInt16 pokeAddress = address;
|
||||||
address &= 0x0FFF;
|
address &= 0x0FFF;
|
||||||
|
@ -202,7 +202,7 @@ bool CartridgeMNetwork::poke(uInt16 address, uInt8 value)
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void CartridgeMNetwork::bankRAM(uInt16 bank)
|
void CartridgeE7::bankRAM(uInt16 bank)
|
||||||
{
|
{
|
||||||
if(bankLocked()) return;
|
if(bankLocked()) return;
|
||||||
|
|
||||||
|
@ -220,7 +220,7 @@ void CartridgeMNetwork::bankRAM(uInt16 bank)
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
bool CartridgeMNetwork::bank(uInt16 bank, uInt16)
|
bool CartridgeE7::bank(uInt16 bank, uInt16)
|
||||||
{
|
{
|
||||||
if(bankLocked()) return false;
|
if(bankLocked()) return false;
|
||||||
|
|
||||||
|
@ -246,13 +246,13 @@ bool CartridgeMNetwork::bank(uInt16 bank, uInt16)
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
uInt16 CartridgeMNetwork::getBank(uInt16 address) const
|
uInt16 CartridgeE7::getBank(uInt16 address) const
|
||||||
{
|
{
|
||||||
return myCurrentBank[(address & 0xFFF) >> 11]; // 2K segments
|
return myCurrentBank[(address & 0xFFF) >> 11]; // 2K segments
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
bool CartridgeMNetwork::patch(uInt16 address, uInt8 value)
|
bool CartridgeE7::patch(uInt16 address, uInt8 value)
|
||||||
{
|
{
|
||||||
address = address & 0x0FFF;
|
address = address & 0x0FFF;
|
||||||
|
|
||||||
|
@ -282,14 +282,14 @@ bool CartridgeMNetwork::patch(uInt16 address, uInt8 value)
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
const ByteBuffer& CartridgeMNetwork::getImage(size_t& size) const
|
const ByteBuffer& CartridgeE7::getImage(size_t& size) const
|
||||||
{
|
{
|
||||||
size = romBankCount() * BANK_SIZE;
|
size = romBankCount() * BANK_SIZE;
|
||||||
return myImage;
|
return myImage;
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
bool CartridgeMNetwork::save(Serializer& out) const
|
bool CartridgeE7::save(Serializer& out) const
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -307,7 +307,7 @@ bool CartridgeMNetwork::save(Serializer& out) const
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
bool CartridgeMNetwork::load(Serializer& in)
|
bool CartridgeE7::load(Serializer& in)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -329,13 +329,13 @@ bool CartridgeMNetwork::load(Serializer& in)
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
uInt16 CartridgeMNetwork::romBankCount() const
|
uInt16 CartridgeE7::romBankCount() const
|
||||||
{
|
{
|
||||||
return uInt16(mySize >> 11);
|
return uInt16(mySize >> 11);
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
uInt16 CartridgeMNetwork::romSize() const
|
uInt16 CartridgeE7::romSize() const
|
||||||
{
|
{
|
||||||
return romBankCount() * BANK_SIZE;
|
return romBankCount() * BANK_SIZE;
|
||||||
}
|
}
|
|
@ -16,14 +16,14 @@
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#ifndef CARTRIDGE_MNETWORK_HXX
|
#ifndef CARTRIDGE_E7_HXX
|
||||||
#define CARTRIDGE_MNETWORK_HXX
|
#define CARTRIDGE_E7_HXX
|
||||||
|
|
||||||
#include "System.hxx"
|
#include "System.hxx"
|
||||||
#include "bspf.hxx"
|
#include "bspf.hxx"
|
||||||
#include "Cart.hxx"
|
#include "Cart.hxx"
|
||||||
#ifdef DEBUGGER_SUPPORT
|
#ifdef DEBUGGER_SUPPORT
|
||||||
#include "CartMNetworkWidget.hxx"
|
#include "CartE7Widget.hxx"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
@ -62,9 +62,9 @@
|
||||||
|
|
||||||
@author Bradford W. Mott, Thomas Jentzsch
|
@author Bradford W. Mott, Thomas Jentzsch
|
||||||
*/
|
*/
|
||||||
class CartridgeMNetwork : public Cartridge
|
class CartridgeE7 : public Cartridge
|
||||||
{
|
{
|
||||||
friend class CartridgeMNetworkWidget;
|
friend class CartridgeE7Widget;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
|
@ -75,9 +75,9 @@ class CartridgeMNetwork : public Cartridge
|
||||||
@param md5 The md5sum of the ROM image
|
@param md5 The 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)
|
||||||
*/
|
*/
|
||||||
CartridgeMNetwork(const ByteBuffer& image, size_t size, const string& md5,
|
CartridgeE7(const ByteBuffer& image, size_t size, const string& md5,
|
||||||
const Settings& settings);
|
const Settings& settings);
|
||||||
~CartridgeMNetwork() override = default;
|
~CartridgeE7() override = default;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
|
@ -180,7 +180,7 @@ class CartridgeMNetwork : public Cartridge
|
||||||
CartDebugWidget* debugWidget(GuiObject* boss, const GUI::Font& lfont,
|
CartDebugWidget* debugWidget(GuiObject* boss, const GUI::Font& lfont,
|
||||||
const GUI::Font& nfont, int x, int y, int w, int h) override
|
const GUI::Font& nfont, int x, int y, int w, int h) override
|
||||||
{
|
{
|
||||||
return new CartridgeMNetworkWidget(boss, lfont, nfont, x, y, w, h, *this);
|
return new CartridgeE7Widget(boss, lfont, nfont, x, y, w, h, *this);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -240,11 +240,11 @@ class CartridgeMNetwork : public Cartridge
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// Following constructors and assignment operators not supported
|
// Following constructors and assignment operators not supported
|
||||||
CartridgeMNetwork() = delete;
|
CartridgeE7() = delete;
|
||||||
CartridgeMNetwork(const CartridgeMNetwork&) = delete;
|
CartridgeE7(const CartridgeE7&) = delete;
|
||||||
CartridgeMNetwork(CartridgeMNetwork&&) = delete;
|
CartridgeE7(CartridgeE7&&) = delete;
|
||||||
CartridgeMNetwork& operator=(const CartridgeMNetwork&) = delete;
|
CartridgeE7& operator=(const CartridgeE7&) = delete;
|
||||||
CartridgeMNetwork& operator=(CartridgeMNetwork&&) = delete;
|
CartridgeE7& operator=(CartridgeE7&&) = delete;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
|
@ -27,9 +27,7 @@ MODULE_OBJS := \
|
||||||
src/emucore/CartDPC.o \
|
src/emucore/CartDPC.o \
|
||||||
src/emucore/CartDPCPlus.o \
|
src/emucore/CartDPCPlus.o \
|
||||||
src/emucore/CartE0.o \
|
src/emucore/CartE0.o \
|
||||||
src/emucore/CartMNetwork.o \
|
|
||||||
src/emucore/CartE7.o \
|
src/emucore/CartE7.o \
|
||||||
src/emucore/CartE78K.o \
|
|
||||||
src/emucore/CartEF.o \
|
src/emucore/CartEF.o \
|
||||||
src/emucore/CartEFSC.o \
|
src/emucore/CartEFSC.o \
|
||||||
src/emucore/CartBF.o \
|
src/emucore/CartBF.o \
|
||||||
|
|
|
@ -624,6 +624,7 @@
|
||||||
<ClCompile Include="..\debugger\gui\CartE0Widget.cxx">
|
<ClCompile Include="..\debugger\gui\CartE0Widget.cxx">
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug-NoDebugger|x64'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug-NoDebugger|x64'">true</ExcludedFromBuild>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\debugger\gui\CartE7Widget.cxx" />
|
||||||
<ClCompile Include="..\debugger\gui\CartEFSCWidget.cxx">
|
<ClCompile Include="..\debugger\gui\CartEFSCWidget.cxx">
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug-NoDebugger|x64'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug-NoDebugger|x64'">true</ExcludedFromBuild>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
@ -669,9 +670,6 @@
|
||||||
<ClCompile Include="..\debugger\gui\CartMDMWidget.cxx">
|
<ClCompile Include="..\debugger\gui\CartMDMWidget.cxx">
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug-NoDebugger|x64'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug-NoDebugger|x64'">true</ExcludedFromBuild>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\debugger\gui\CartMNetworkWidget.cxx">
|
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug-NoDebugger|x64'">true</ExcludedFromBuild>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\debugger\gui\CartRamWidget.cxx">
|
<ClCompile Include="..\debugger\gui\CartRamWidget.cxx">
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug-NoDebugger|x64'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug-NoDebugger|x64'">true</ExcludedFromBuild>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
@ -738,6 +736,7 @@
|
||||||
<ClCompile Include="..\emucore\Cart4KSC.cxx" />
|
<ClCompile Include="..\emucore\Cart4KSC.cxx" />
|
||||||
<ClCompile Include="..\emucore\CartARM.cxx" />
|
<ClCompile Include="..\emucore\CartARM.cxx" />
|
||||||
<ClCompile Include="..\emucore\CartCreator.cxx" />
|
<ClCompile Include="..\emucore\CartCreator.cxx" />
|
||||||
|
<ClCompile Include="..\emucore\CartE7.cxx" />
|
||||||
<ClCompile Include="..\emucore\CartEnhanced.cxx" />
|
<ClCompile Include="..\emucore\CartEnhanced.cxx" />
|
||||||
<ClCompile Include="..\emucore\CartBF.cxx" />
|
<ClCompile Include="..\emucore\CartBF.cxx" />
|
||||||
<ClCompile Include="..\emucore\CartBFSC.cxx" />
|
<ClCompile Include="..\emucore\CartBFSC.cxx" />
|
||||||
|
@ -751,7 +750,6 @@
|
||||||
<ClCompile Include="..\emucore\CartFA2.cxx" />
|
<ClCompile Include="..\emucore\CartFA2.cxx" />
|
||||||
<ClCompile Include="..\emucore\CartFC.cxx" />
|
<ClCompile Include="..\emucore\CartFC.cxx" />
|
||||||
<ClCompile Include="..\emucore\CartMDM.cxx" />
|
<ClCompile Include="..\emucore\CartMDM.cxx" />
|
||||||
<ClCompile Include="..\emucore\CartMNetwork.cxx" />
|
|
||||||
<ClCompile Include="..\emucore\CartMVC.cxx" />
|
<ClCompile Include="..\emucore\CartMVC.cxx" />
|
||||||
<ClCompile Include="..\emucore\CartTVBoy.cxx" />
|
<ClCompile Include="..\emucore\CartTVBoy.cxx" />
|
||||||
<ClCompile Include="..\emucore\CartWD.cxx" />
|
<ClCompile Include="..\emucore\CartWD.cxx" />
|
||||||
|
@ -1678,6 +1676,7 @@
|
||||||
<ClInclude Include="..\debugger\gui\CartE0Widget.hxx">
|
<ClInclude Include="..\debugger\gui\CartE0Widget.hxx">
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug-NoDebugger|x64'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug-NoDebugger|x64'">true</ExcludedFromBuild>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\debugger\gui\CartE7Widget.hxx" />
|
||||||
<ClInclude Include="..\debugger\gui\CartEFSCWidget.hxx">
|
<ClInclude Include="..\debugger\gui\CartEFSCWidget.hxx">
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug-NoDebugger|x64'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug-NoDebugger|x64'">true</ExcludedFromBuild>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
@ -1723,9 +1722,6 @@
|
||||||
<ClInclude Include="..\debugger\gui\CartMDMWidget.hxx">
|
<ClInclude Include="..\debugger\gui\CartMDMWidget.hxx">
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug-NoDebugger|x64'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug-NoDebugger|x64'">true</ExcludedFromBuild>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\debugger\gui\CartMNetworkWidget.hxx">
|
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug-NoDebugger|x64'">true</ExcludedFromBuild>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\debugger\gui\CartRamWidget.hxx">
|
<ClInclude Include="..\debugger\gui\CartRamWidget.hxx">
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug-NoDebugger|x64'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug-NoDebugger|x64'">true</ExcludedFromBuild>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
@ -1803,6 +1799,7 @@
|
||||||
<ClInclude Include="..\emucore\Cart4KSC.hxx" />
|
<ClInclude Include="..\emucore\Cart4KSC.hxx" />
|
||||||
<ClInclude Include="..\emucore\CartARM.hxx" />
|
<ClInclude Include="..\emucore\CartARM.hxx" />
|
||||||
<ClInclude Include="..\emucore\CartCreator.hxx" />
|
<ClInclude Include="..\emucore\CartCreator.hxx" />
|
||||||
|
<ClInclude Include="..\emucore\CartE7.hxx" />
|
||||||
<ClInclude Include="..\emucore\CartEnhanced.hxx" />
|
<ClInclude Include="..\emucore\CartEnhanced.hxx" />
|
||||||
<ClInclude Include="..\emucore\CartBF.hxx" />
|
<ClInclude Include="..\emucore\CartBF.hxx" />
|
||||||
<ClInclude Include="..\emucore\CartBFSC.hxx" />
|
<ClInclude Include="..\emucore\CartBFSC.hxx" />
|
||||||
|
@ -1816,7 +1813,6 @@
|
||||||
<ClInclude Include="..\emucore\CartFA2.hxx" />
|
<ClInclude Include="..\emucore\CartFA2.hxx" />
|
||||||
<ClInclude Include="..\emucore\CartFC.hxx" />
|
<ClInclude Include="..\emucore\CartFC.hxx" />
|
||||||
<ClInclude Include="..\emucore\CartMDM.hxx" />
|
<ClInclude Include="..\emucore\CartMDM.hxx" />
|
||||||
<ClInclude Include="..\emucore\CartMNetwork.hxx" />
|
|
||||||
<ClInclude Include="..\emucore\CartMVC.hxx" />
|
<ClInclude Include="..\emucore\CartMVC.hxx" />
|
||||||
<ClInclude Include="..\emucore\CartTVBoy.hxx" />
|
<ClInclude Include="..\emucore\CartTVBoy.hxx" />
|
||||||
<ClInclude Include="..\emucore\CartWD.hxx" />
|
<ClInclude Include="..\emucore\CartWD.hxx" />
|
||||||
|
|
|
@ -852,12 +852,6 @@
|
||||||
<ClCompile Include="..\gui\RadioButtonWidget.cxx">
|
<ClCompile Include="..\gui\RadioButtonWidget.cxx">
|
||||||
<Filter>Source Files\gui</Filter>
|
<Filter>Source Files\gui</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\emucore\CartMNetwork.cxx">
|
|
||||||
<Filter>Source Files\emucore</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\debugger\gui\CartMNetworkWidget.cxx">
|
|
||||||
<Filter>Source Files\debugger</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\gui\TimeMachine.cxx">
|
<ClCompile Include="..\gui\TimeMachine.cxx">
|
||||||
<Filter>Source Files\gui</Filter>
|
<Filter>Source Files\gui</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
@ -1113,6 +1107,12 @@
|
||||||
<ClCompile Include="..\gui\PlusRomsSetupDialog.cxx">
|
<ClCompile Include="..\gui\PlusRomsSetupDialog.cxx">
|
||||||
<Filter>Source Files\gui</Filter>
|
<Filter>Source Files\gui</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\emucore\CartE7.cxx">
|
||||||
|
<Filter>Source Files\emucore</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\debugger\gui\CartE7Widget.cxx">
|
||||||
|
<Filter>Source Files\debugger</Filter>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="..\common\bspf.hxx">
|
<ClInclude Include="..\common\bspf.hxx">
|
||||||
|
@ -1955,12 +1955,6 @@
|
||||||
<ClInclude Include="..\emucore\FrameBufferConstants.hxx">
|
<ClInclude Include="..\emucore\FrameBufferConstants.hxx">
|
||||||
<Filter>Header Files\emucore</Filter>
|
<Filter>Header Files\emucore</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\emucore\CartMNetwork.hxx">
|
|
||||||
<Filter>Header Files\emucore</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\debugger\gui\CartMNetworkWidget.hxx">
|
|
||||||
<Filter>Header Files\debugger</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\gui\DeveloperDialog.hxx">
|
<ClInclude Include="..\gui\DeveloperDialog.hxx">
|
||||||
<Filter>Header Files\gui</Filter>
|
<Filter>Header Files\gui</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
@ -2288,6 +2282,12 @@
|
||||||
<ClInclude Include="..\gui\PlusRomsSetupDialog.hxx">
|
<ClInclude Include="..\gui\PlusRomsSetupDialog.hxx">
|
||||||
<Filter>Header Files\gui</Filter>
|
<Filter>Header Files\gui</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\debugger\gui\CartE7Widget.hxx">
|
||||||
|
<Filter>Header Files\debugger</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\emucore\CartE7.hxx">
|
||||||
|
<Filter>Header Files\emucore</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="stella.ico">
|
<None Include="stella.ico">
|
||||||
|
|
Loading…
Reference in New Issue