miSim

misim.plugins
Class BreadBoard

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--java.awt.Window
                    |
                    +--java.awt.Frame
                          |
                          +--misim.Plugin
                                |
                                +--misim.plugins.BreadBoard
All Implemented Interfaces:
javax.accessibility.Accessible, ChainedClockListener, ClockListener, java.util.EventListener, java.awt.image.ImageObserver, java.awt.event.ItemListener, java.awt.MenuContainer, PortListener, ProcessorListener, java.io.Serializable

public class BreadBoard
extends Plugin
implements java.awt.event.ItemListener, ProcessorListener, PortListener, ChainedClockListener

See Also:
Serialized Form

Inner classes inherited from class java.awt.Frame
java.awt.Frame.AccessibleAWTFrame
 
Inner classes inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
Inner classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Inner classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent
 
Fields inherited from class misim.Plugin
machineState, owner, PLUGIN_GUI, PLUGIN_NONE, PLUGIN_SELF, reader
 
Fields inherited from class java.awt.Frame
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
BreadBoard(java.awt.Component owner, MachineState machineState, RobustReaderIF reader, java.lang.String params)
           
 
Method Summary
 void clockEvent(long clocks)
          This method is called after each instruction is executed.
 int configType()
          The User Interface calls this to see if the Plugin needs configuration information, and if so whether the information can be controlled by the user interface (in which case the user will edit the config string by hand), or if the Plugin itself will provide a configuration interface.
 java.lang.String getAbout()
          This method should return any information appropriate to this plugin.
 int getBitmask(int portId)
          This method is used to identify which bits this listener is interested in for a given port.
 java.lang.String getConfig()
          Method to retrieve the config for this plugin
 java.lang.String getHelp()
          Return more detailed information on the configuration string format for this plugin.
 ClockListener getNext()
          Return the next event handler in the chain.
 void init(java.lang.String params)
          This is the method that is called to initialise (and display) the plugin.
 void itemStateChanged(java.awt.event.ItemEvent e)
           
 void portEvent(int portBits, long clockCount, int portId)
          This method is called when the state of a port changes.
 void prepare(long clocks)
          Prepare for emulation, beginning at the given clock count
 void processorStateChange(int state, java.lang.String message)
          Called when the emulation starts or stops.
 java.lang.String readConfig(java.lang.String config)
          This method should read the given config parameter string and update its own settings to match it.
 void reset()
           
 void setNext(ClockListener nextListener)
          Set the next event handler in the chain.
 void showPlugin(boolean visible)
          This is called when the user wants the Plugin to display or hide itself.
 void updateMonitor()
           
 
Methods inherited from class misim.Plugin
setMachineState, setPluginTitle
 
Methods inherited from class java.awt.Frame
addNotify, finalize, getAccessibleContext, getCursorType, getFrames, getIconImage, getMenuBar, getState, getTitle, isResizable, paramString, remove, removeNotify, setCursor, setIconImage, setMenuBar, setResizable, setState, setTitle
 
Methods inherited from class java.awt.Window
addWindowListener, applyResourceBundle, applyResourceBundle, dispose, getFocusOwner, getGraphicsConfiguration, getInputContext, getListeners, getLocale, getOwnedWindows, getOwner, getToolkit, getWarningString, hide, isShowing, pack, postEvent, processEvent, processWindowEvent, removeWindowListener, setCursor, show, toBack, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getInsets, getLayout, getMaximumSize, getMinimumSize, getPreferredSize, insets, invalidate, isAncestorOf, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, remove, removeAll, removeContainerListener, setFont, setLayout, update, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addPropertyChangeListener, addPropertyChangeListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, getBackground, getBounds, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getInputMethodRequests, getLocation, getLocation, getLocationOnScreen, getName, getParent, getPeer, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isDisplayable, isDoubleBuffered, isEnabled, isFocusTraversable, isLightweight, isOpaque, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setDropTarget, setEnabled, setForeground, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, show, size, toString, transferFocus
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
 

Constructor Detail

BreadBoard

public BreadBoard(java.awt.Component owner,
                  MachineState machineState,
                  RobustReaderIF reader,
                  java.lang.String params)
           throws MiSimException
Method Detail

init

public void init(java.lang.String params)
          throws MiSimException
Description copied from class: Plugin
This is the method that is called to initialise (and display) the plugin.
Overrides:
init in class Plugin
Following copied from class: misim.Plugin
Parameters:
params - Initialisation parameters for the plugin

processorStateChange

public void processorStateChange(int state,
                                 java.lang.String message)
Description copied from interface: ProcessorListener
Called when the emulation starts or stops.
Specified by:
processorStateChange in interface ProcessorListener
Following copied from interface: misim.ProcessorListener
Parameters:
state - The new state of the processor, see the Processor STATE_ variables
message - A text message describing the event that has occured
See Also:
Processor.getState()

portEvent

public void portEvent(int portBits,
                      long clockCount,
                      int portId)
Description copied from interface: PortListener
This method is called when the state of a port changes.
Specified by:
portEvent in interface PortListener
Following copied from interface: misim.PortListener
Parameters:
portBits - - The current state of the port
clockCount - - the current cpu time (in clock cycles)
portId - - the identifier for the port that generated the event

getBitmask

public int getBitmask(int portId)
Description copied from interface: PortListener
This method is used to identify which bits this listener is interested in for a given port.
Specified by:
getBitmask in interface PortListener
Following copied from interface: misim.PortListener
Parameters:
portId - - the port identifier
Returns:
an integer with the appropriate bits set.

setNext

public void setNext(ClockListener nextListener)
Description copied from interface: ChainedClockListener
Set the next event handler in the chain. The implementation of this class MUST call nextListener.clockEvent at the start of the clockEvent method - ie. it must honour the chain.
Specified by:
setNext in interface ChainedClockListener
Following copied from interface: misim.ChainedClockListener
Parameters:
nextListener - The next clock event listener in the chain

getNext

public ClockListener getNext()
Description copied from interface: ChainedClockListener
Return the next event handler in the chain.
Specified by:
getNext in interface ChainedClockListener
Following copied from interface: misim.ChainedClockListener
Returns:
The next event handler in the chain

prepare

public void prepare(long clocks)
Description copied from interface: ClockListener
Prepare for emulation, beginning at the given clock count
Specified by:
prepare in interface ClockListener
Following copied from interface: misim.ClockListener
Parameters:
clocks - The clock count that emulation will start at

reset

public void reset()

clockEvent

public void clockEvent(long clocks)
Description copied from interface: ClockListener
This method is called after each instruction is executed. Note that the number of clocks since the last call may be more than 1. This will occur for some branch instructions, and when loops have been optimised - resulting in a sequence of loop instructions being emulated in a single atomic event.
Specified by:
clockEvent in interface ClockListener
Following copied from interface: misim.ClockListener
Parameters:
clocks - The current clock count for the processor

updateMonitor

public void updateMonitor()

showPlugin

public void showPlugin(boolean visible)
Description copied from class: Plugin
This is called when the user wants the Plugin to display or hide itself. The plugin should add or remove itself as a port listener as appropriate
Overrides:
showPlugin in class Plugin
Following copied from class: misim.Plugin
Parameters:
visible - True if the Plugin should display itself.

configType

public int configType()
Description copied from class: Plugin
The User Interface calls this to see if the Plugin needs configuration information, and if so whether the information can be controlled by the user interface (in which case the user will edit the config string by hand), or if the Plugin itself will provide a configuration interface.
Overrides:
configType in class Plugin
Following copied from class: misim.Plugin
Returns:
PLUGIN_NONE - if this plugin needs no config information PLUGIN_GUI - if the standard GUI should provide config editing PLUGIN_SELF - if the plugin itself will provide a config GUI

getConfig

public java.lang.String getConfig()
Description copied from class: Plugin
Method to retrieve the config for this plugin
Overrides:
getConfig in class Plugin
Following copied from class: misim.Plugin
Returns:
The config string

readConfig

public java.lang.String readConfig(java.lang.String config)
Description copied from class: Plugin
This method should read the given config parameter string and update its own settings to match it. If the Plugin has stated that it will edit the configs through its own gui, it should display the GUI and gather the results, before updating itself. In this case, the config and update parameters can be ignored.
Overrides:
readConfig in class Plugin
Following copied from class: misim.Plugin
Parameters:
config - The new configuration string, or null if the config type is PLUGIN_SELF.
Returns:
Null if the parameters are OK, otherwise an explanation of what is wrong.

getAbout

public java.lang.String getAbout()
Description copied from class: Plugin
This method should return any information appropriate to this plugin. If the config parameter is to be edited by the standard GUI, the help text should explain what the parameters mean.
Overrides:
getAbout in class Plugin
Following copied from class: misim.Plugin
Returns:
The about text for this plugin

getHelp

public java.lang.String getHelp()
Description copied from class: Plugin
Return more detailed information on the configuration string format for this plugin.
Overrides:
getHelp in class Plugin
Following copied from class: misim.Plugin
Returns:
The help text for this plugin

itemStateChanged

public void itemStateChanged(java.awt.event.ItemEvent e)
Specified by:
itemStateChanged in interface java.awt.event.ItemListener

miSim