|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objecthades.simulator.SimObject
hades.models.special.ParallelTerminal
ParallelTerminal - a text-terminal (VT-100 style) with 8-bit parallel, strobed I/O. Output and input goes to a separate Swing (JFrame) window.
The terminal will latch the 8-bit data input on the rising edge of CLK. Similarly, it will output the 8-bit ASCII code of any typed key on the data outputs Q0 .. Q7. Once the data outputs are valid, ParallelTerminal generates a 100 nsec. strobe pulse on STR. A '0' value on the CLR input asynchronously clears the terminal display.
Note that this model assumes (but does not check!) that characters are never read or written faster than with a 200 nsec. cycle time.
Field Summary | |
(package private) javax.swing.JPanel |
buttonPanel
|
(package private) javax.swing.JButton |
clearButton
|
(package private) javax.swing.JButton |
closeButton
|
protected int |
index_D0
|
protected int |
index_Q0
|
protected int |
index_STR
|
protected double |
lastSendTime
|
(package private) javax.swing.JCheckBox |
logCB
|
protected PortStdLogic1164 |
port_CLK
|
protected PortStdLogic1164 |
port_CLR
|
protected PortStdLogic1164 |
port_D0
|
protected PortStdLogic1164 |
port_Q0
|
protected PortStdLogic1164 |
port_STR
|
(package private) javax.swing.JLabel |
receiveHexTF
|
(package private) javax.swing.JLabel |
receiveTF
|
protected Label |
symbolTypeLabel
|
(package private) java.awt.Image |
theIcon
|
(package private) javax.swing.JFrame |
topFrame
|
(package private) javax.swing.JLabel |
transmitHexTF
|
(package private) javax.swing.JLabel |
transmitTF
|
protected StdLogic1164 |
value_0
|
protected StdLogic1164 |
value_1
|
protected StdLogic1164 |
value_X
|
(package private) VT52Canvas |
vt52Canvas
|
Fields inherited from class hades.simulator.SimObject |
classloader, console, debug, editor, name, parent, ports, propertySheet, simulator, symbol, versionId, visible |
Constructor Summary | |
ParallelTerminal()
ParallelTerminal(): simple constructor |
Method Summary | |
(package private) void |
buildButtonPanel()
|
(package private) void |
buildGUI()
|
(package private) void |
buildGUICallbacks()
|
void |
changeName()
|
void |
configure()
create and display a 'ConfigDialog' to set the parameters for a SimObject. |
SimObject |
copy()
copy(): create a clone of the current ParallelTerminal, including its color |
void |
elaborate(java.lang.Object arg)
elaborate(): We assign a '0' to all our outputs. |
void |
evaluate(java.lang.Object arg)
evaluate(): called by the simulation engine on all events that concern this object. |
java.awt.Component |
getPropertySheet()
return a reference to the 'property sheet' or configuration window for this SimObject. |
java.lang.String |
getToolTip(java.awt.Point position,
long millis)
construct a (short) tool tip message for a SimObject. |
boolean |
initialize(java.lang.String s)
initialize a SimObject from a String. |
(package private) void |
latchOneCharacter()
|
static void |
main(java.lang.String[] argv)
main(): simple selftest of the ParallelTerminal's GUI |
void |
mousePressed(java.awt.event.MouseEvent me)
react to a MouseEvent. |
void |
setName(java.lang.String name)
set the name of this SimObject. |
void |
setSymbol(Symbol s)
|
java.lang.String |
toString()
toString() - the usual info method |
void |
transmitOneCharacter(char c)
transmitOneCharacter generates all simulation events to propagate the bit pattern corresponding to char 'c' on the data outputs and a strobe pulse on the strobe output port_STR. |
void |
write(java.io.PrintWriter ps)
|
Methods inherited from class hades.simulator.SimObject |
constructDynamicSymbol, getBindkey, getClassLoader, getDebug, getEditor, getExternalResources, getFullName, getName, getParent, getPort, getPorts, getResourceAsStream, getSimulator, getSymbol, getSymbolResourceName, getVersionId, isVisible, keyPressed, message, needsDynamicSymbol, needsExternalResources, setClassLoader, setConsole, setDebug, setEditor, setParent, setPorts, setSimulator, setVersionId, setVisible, tearDown |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface hades.simulator.Simulatable |
message |
Field Detail |
protected PortStdLogic1164 port_CLR
protected PortStdLogic1164 port_CLK
protected PortStdLogic1164 port_D0
protected PortStdLogic1164 port_STR
protected PortStdLogic1164 port_Q0
protected StdLogic1164 value_0
protected StdLogic1164 value_1
protected StdLogic1164 value_X
protected int index_D0
protected int index_STR
protected int index_Q0
protected double lastSendTime
protected Label symbolTypeLabel
javax.swing.JFrame topFrame
javax.swing.JPanel buttonPanel
javax.swing.JButton clearButton
javax.swing.JButton closeButton
VT52Canvas vt52Canvas
javax.swing.JLabel receiveTF
javax.swing.JLabel receiveHexTF
javax.swing.JLabel transmitTF
javax.swing.JLabel transmitHexTF
java.awt.Image theIcon
javax.swing.JCheckBox logCB
Constructor Detail |
public ParallelTerminal()
Method Detail |
public void setSymbol(Symbol s)
setSymbol
in class SimObject
public void setName(java.lang.String name)
SimObject
To avoid consistency problems, when the user changes a SimObject's name interactively, we also try to enforce a unique name.
setName
in class SimObject
void buildButtonPanel()
void buildGUI()
void buildGUICallbacks()
public void changeName()
public void write(java.io.PrintWriter ps)
write
in class SimObject
public boolean initialize(java.lang.String s)
SimObject
initialize
in class SimObject
public java.awt.Component getPropertySheet()
SimObject
getPropertySheet
in class SimObject
public void configure()
SimObject
configure
in class SimObject
public void mousePressed(java.awt.event.MouseEvent me)
SimObject
Note that the HADES schematic editor will also deliver jfig.canvas.FigCanvasEvent object, which also include the world-coordinates of the Event.
mousePressed
in class SimObject
public void elaborate(java.lang.Object arg)
elaborate
in interface Simulatable
elaborate
in class SimObject
arg
- This parameter is ignored by ParallelTerminalpublic void evaluate(java.lang.Object arg)
evaluate
in interface Simulatable
evaluate
in class SimObject
arg
- An arbitrary and unused objectvoid latchOneCharacter()
public void transmitOneCharacter(char c)
Because this method is called in reaction to an (asynchronous) user input event, we have to use the scheduleInteractiveEvent() calls to keep the simulator data structures consistent.
public SimObject copy()
copy
in class SimObject
public java.lang.String getToolTip(java.awt.Point position, long millis)
SimObject
getToolTip
in interface ContextToolTip
getToolTip
in class SimObject
public java.lang.String toString()
toString
in class SimObject
public static void main(java.lang.String[] argv)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |