Abstract implementation of Peripheral
To support idle loop detection and save cpu time the peripheral
must call the method setIdle when a status operation is made
and setLive when a read / write operation is made.
Fast double linked list
This class implements a generic double linked list very fast because
the link removed from the list are inserted in one ring buffer and
insertion of one new element normally do not require to create a new
link if one already used is present in the ring buffer.
Get CPU usage return the CPU usage of the simulator thread,
high value (more than 90.00) means the current java machine
is too slow to execute the simulator.
Special istruction general pourpse HALT
If interrupt are disable one exception is thrown otherwise
call the idle() method till one interrupt will be fired.
During the init process the disk must be mounted because the
mount use disk access and the automatic mount occours when
the emulated operating system acces the disk and this can
cause race condition.
Implementation of register base over a pair of register for example
in the Z80 implementation the HL register can be implemented with a pair
of register H and L
A Simulator some time need to update Swing component very fast for
example one led connected to one I/O port, to avoid high CPU usage
the component can implements this interface and whem the apparence
of the component is changed use the Util.repaintLater() method to
update the user interface.
When a component updated very fast need to change the
appearance can call this method and at regular interval
(tipically 100 ms) the component will be update in the swing
thread.
Sample terminal implements only CR,LF,TAB,BACK-SPACE
Also implements all low level function used by more sophisticated
terminal emulator like insert line, delete line etc.
Set a char on the status line
The status line is the last line of the display and is
reserved for JMCE message the first part of the line will
display the type of cpu, the configured clock, the current
clock and the VM usage.