|
||||||||||
| 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 SimObjectpublic void setName(java.lang.String name)
SimObjectTo avoid consistency problems, when the user changes a SimObject's name interactively, we also try to enforce a unique name.
setName in class SimObjectvoid buildButtonPanel()
void buildGUI()
void buildGUICallbacks()
public void changeName()
public void write(java.io.PrintWriter ps)
write in class SimObjectpublic boolean initialize(java.lang.String s)
SimObject
initialize in class SimObjectpublic java.awt.Component getPropertySheet()
SimObject
getPropertySheet in class SimObjectpublic void configure()
SimObject
configure in class SimObjectpublic void mousePressed(java.awt.event.MouseEvent me)
SimObjectNote that the HADES schematic editor will also deliver jfig.canvas.FigCanvasEvent object, which also include the world-coordinates of the Event.
mousePressed in class SimObjectpublic void elaborate(java.lang.Object arg)
elaborate in interface Simulatableelaborate in class SimObjectarg - This parameter is ignored by ParallelTerminalpublic void evaluate(java.lang.Object arg)
evaluate in interface Simulatableevaluate in class SimObjectarg - 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 ContextToolTipgetToolTip in class SimObjectpublic java.lang.String toString()
toString in class SimObjectpublic static void main(java.lang.String[] argv)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||