mirror of https://github.com/stella-emu/stella.git
And yet another set files I forgot to add. I really need to add files
as soon as I create them. git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1491 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
parent
6e51d951ef
commit
97404cde2a
|
@ -0,0 +1,132 @@
|
||||||
|
//============================================================================
|
||||||
|
//
|
||||||
|
// 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-2008 by Bradford W. Mott and the Stella team
|
||||||
|
//
|
||||||
|
// See the file "license" for information on usage and redistribution of
|
||||||
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
|
//
|
||||||
|
// $Id: RiotWidget.cxx,v 1.1 2008-04-29 19:11:42 stephena Exp $
|
||||||
|
//
|
||||||
|
// Based on code from ScummVM - Scumm Interpreter
|
||||||
|
// Copyright (C) 2002-2004 The ScummVM project
|
||||||
|
//============================================================================
|
||||||
|
|
||||||
|
#include "DataGridWidget.hxx"
|
||||||
|
#include "EditTextWidget.hxx"
|
||||||
|
#include "FrameBuffer.hxx"
|
||||||
|
#include "GuiObject.hxx"
|
||||||
|
#include "OSystem.hxx"
|
||||||
|
#include "RiotDebug.hxx"
|
||||||
|
#include "ToggleBitWidget.hxx"
|
||||||
|
#include "Widget.hxx"
|
||||||
|
|
||||||
|
#include "RiotWidget.hxx"
|
||||||
|
|
||||||
|
#define CREATE_IO_REGS(desc, bits, bitsID, reg) \
|
||||||
|
t = new StaticTextWidget(boss, font, xpos, ypos+2, lwidth, fontHeight, \
|
||||||
|
desc, kTextAlignLeft); \
|
||||||
|
xpos += t->getWidth() + 5; \
|
||||||
|
bits = new ToggleBitWidget(boss, font, xpos, ypos, 8, 1); \
|
||||||
|
bits->setTarget(this); \
|
||||||
|
bits->setID(bitsID); \
|
||||||
|
addFocusWidget(bits); \
|
||||||
|
xpos += bits->getWidth() + 5; \
|
||||||
|
reg = new DataGridWidget(boss, font, xpos, ypos, 1, 1, 2, 8, kBASE_16);\
|
||||||
|
reg->setTarget(this); \
|
||||||
|
reg->setEditable(false); \
|
||||||
|
addFocusWidget(reg); \
|
||||||
|
bits->setList(off, on);
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
RiotWidget::RiotWidget(GuiObject* boss, const GUI::Font& font,
|
||||||
|
int x, int y, int w, int h)
|
||||||
|
: Widget(boss, font, x, y, w, h),
|
||||||
|
CommandSender(boss)
|
||||||
|
{
|
||||||
|
_type = kRiotWidget;
|
||||||
|
|
||||||
|
const int fontWidth = font.getMaxCharWidth(),
|
||||||
|
fontHeight = font.getFontHeight(),
|
||||||
|
lineHeight = font.getLineHeight();
|
||||||
|
int xpos = 10, ypos = 25, lwidth = 7 * fontWidth;
|
||||||
|
StaticTextWidget* t;
|
||||||
|
|
||||||
|
// Set the strings to be used in the various bit registers
|
||||||
|
// We only do this once because it's the state that changes, not the strings
|
||||||
|
StringList off, on;
|
||||||
|
for(int i = 0; i < 8; ++i)
|
||||||
|
{
|
||||||
|
off.push_back("0");
|
||||||
|
on.push_back("1");
|
||||||
|
}
|
||||||
|
|
||||||
|
// SWCHA bits and actual value
|
||||||
|
CREATE_IO_REGS("SWCHA:", mySWCHABits, kSWCHABitsID, mySWCHA);
|
||||||
|
|
||||||
|
// SWACNT bits and actual value
|
||||||
|
xpos = 10; ypos += lineHeight + 5;
|
||||||
|
CREATE_IO_REGS("SWACNT:", mySWACNTBits, kSWACNTBitsID, mySWACNT);
|
||||||
|
|
||||||
|
// SWCHB bits and actual value
|
||||||
|
xpos = 10; ypos += 2 * lineHeight;
|
||||||
|
CREATE_IO_REGS("SWCHB:", mySWCHBBits, kSWCHBBitsID, mySWCHB);
|
||||||
|
|
||||||
|
// SWBCNT bits and actual value
|
||||||
|
xpos = 10; ypos += lineHeight + 5;
|
||||||
|
CREATE_IO_REGS("SWBCNT:", mySWBCNTBits, kSWBCNTBitsID, mySWBCNT);
|
||||||
|
// mySWBCNTBits->setEnabled(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
RiotWidget::~RiotWidget()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
void RiotWidget::loadConfig()
|
||||||
|
{
|
||||||
|
#define IO_REGS_UPDATE(bits, reg, s_bits, s_reg) \
|
||||||
|
changed.clear(); \
|
||||||
|
for(unsigned int i = 0; i < state.s_bits.size(); ++i) \
|
||||||
|
changed.push_back(state.s_bits[i] != oldstate.s_bits[i]); \
|
||||||
|
bits->setState(state.s_bits, changed); \
|
||||||
|
reg->setList(state.s_reg, oldstate.s_reg, state.s_reg != oldstate.s_reg);
|
||||||
|
|
||||||
|
IntArray alist;
|
||||||
|
IntArray vlist;
|
||||||
|
BoolArray changed;
|
||||||
|
|
||||||
|
// We push the enumerated items as addresses, and deal with the real
|
||||||
|
// address in the callback (handleCommand)
|
||||||
|
Debugger& dbg = instance()->debugger();
|
||||||
|
RiotDebug& riot = dbg.riotDebug();
|
||||||
|
const RiotState& state = (RiotState&) riot.getState();
|
||||||
|
const RiotState& oldstate = (RiotState&) riot.getOldState();
|
||||||
|
|
||||||
|
// Update the SWCHA register booleans
|
||||||
|
IO_REGS_UPDATE(mySWCHABits, mySWCHA, swchaBits, SWCHA);
|
||||||
|
|
||||||
|
// Update the SWACNT register booleans
|
||||||
|
IO_REGS_UPDATE(mySWACNTBits, mySWACNT, swacntBits, SWACNT);
|
||||||
|
|
||||||
|
// Update the SWCHB register booleans
|
||||||
|
IO_REGS_UPDATE(mySWCHBBits, mySWCHB, swchbBits, SWCHB);
|
||||||
|
|
||||||
|
// Update the SWBCNT register booleans
|
||||||
|
IO_REGS_UPDATE(mySWBCNTBits, mySWBCNT, swbcntBits, SWBCNT);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
void RiotWidget::handleCommand(CommandSender* sender, int cmd, int data, int id)
|
||||||
|
{
|
||||||
|
}
|
|
@ -0,0 +1,75 @@
|
||||||
|
//============================================================================
|
||||||
|
//
|
||||||
|
// 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-2008 by Bradford W. Mott and the Stella team
|
||||||
|
//
|
||||||
|
// See the file "license" for information on usage and redistribution of
|
||||||
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
|
//
|
||||||
|
// $Id: RiotWidget.hxx,v 1.1 2008-04-29 19:11:42 stephena Exp $
|
||||||
|
//
|
||||||
|
// Based on code from ScummVM - Scumm Interpreter
|
||||||
|
// Copyright (C) 2002-2004 The ScummVM project
|
||||||
|
//============================================================================
|
||||||
|
|
||||||
|
#ifndef RIOT_WIDGET_HXX
|
||||||
|
#define RIOT_WIDGET_HXX
|
||||||
|
|
||||||
|
class GuiObject;
|
||||||
|
class ButtonWidget;
|
||||||
|
class DataGridWidget;
|
||||||
|
class EditTextWidget;
|
||||||
|
class ToggleBitWidget;
|
||||||
|
|
||||||
|
#include "Array.hxx"
|
||||||
|
#include "Widget.hxx"
|
||||||
|
#include "Command.hxx"
|
||||||
|
|
||||||
|
class RiotWidget : public Widget, public CommandSender
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
RiotWidget(GuiObject* boss, const GUI::Font& font,
|
||||||
|
int x, int y, int w, int h);
|
||||||
|
virtual ~RiotWidget();
|
||||||
|
|
||||||
|
void handleCommand(CommandSender* sender, int cmd, int data, int id);
|
||||||
|
void loadConfig();
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
private:
|
||||||
|
ToggleBitWidget* mySWCHABits;
|
||||||
|
ToggleBitWidget* mySWCHBBits;
|
||||||
|
ToggleBitWidget* mySWACNTBits;
|
||||||
|
ToggleBitWidget* mySWBCNTBits;
|
||||||
|
|
||||||
|
DataGridWidget* mySWCHA;
|
||||||
|
DataGridWidget* mySWCHB;
|
||||||
|
DataGridWidget* mySWACNT;
|
||||||
|
DataGridWidget* mySWBCNT;
|
||||||
|
|
||||||
|
DataGridWidget* myTim[4];
|
||||||
|
DataGridWidget* myTimResults[4];
|
||||||
|
|
||||||
|
EditTextWidget* myP0Dir, *myP1Dir;
|
||||||
|
EditTextWidget* myP0Diff, *myP1Diff;
|
||||||
|
EditTextWidget* myTVType;
|
||||||
|
EditTextWidget* mySwitches;
|
||||||
|
|
||||||
|
// ID's for the various widgets
|
||||||
|
// We need ID's, since there are more than one of several types of widgets
|
||||||
|
enum {
|
||||||
|
kSWCHABitsID, kSWCHBBitsID, kSWACNTBitsID, kSWBCNTBitsID,
|
||||||
|
kTim1TID, kTim8TID, kTim64TID, kTim1024TID,
|
||||||
|
kIntimID, kTimintID, kTimclksID
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in New Issue