- Some OS support had a bug in the command passed to run telnet in the
new window.
- Report when there appears to be no telnet client available on the
local system.
- Add support for Fedora KDE.
Input of the WRU character reliably causes return from the running
simulator.
- DBGINT works with gdb as a debugger with the default being the next
character after the WRU value. ^F when WRU is default ^E.
- lldb does not support DBGINT signaling. Only Control-C causes
break back to lldb.
Currently, a bug in lldb exists that causes console character input of the
CR character (^M) to actually be received as LF (^J). A bug report has
been submitted to the llvm project describing the problem.
The original SET CONSOLE SPEED=nnn was added to a allow direct wired
terminal connected to a host system serial port to be a simulator's console.
The current change generalizes all console I/O such that speed is a reliable
option for direct console connections as well as serial and telnet connections.
The simple recipe to get well behaved console output speed is:
1) call tmxr_set_console_units() in the reset routine of the console DEVICE.
2) In the code path that engages console output do something similar
to this as appropriate for the system being simulated:
void txdb_wr (int32 data)
{
tto_unit.buf = data & 0377;
tto_csr = tto_csr & ~CSR_DONE;
CLR_INT (TTO);
sim_activate (&tto_unit, tto_unit.wait);
}
3) In the output unit's service routine the console output unit's service
routine do something similar to this as appropriate for the system
being simulated:
t_stat tto_svc (UNIT *uptr)
{
int32 c;
c = sim_tt_outcvt (tto_unit.buf, TT_GET_MODE (uptr->flags));
if (c >= 0) {
t_stat r;
if ((r = sim_putchar_s (c)) != SCPE_OK) { /* output; error? */
sim_activate (uptr, uptr->wait); /* retry */
return ((r == SCPE_STALL)? SCPE_OK: r); /* !stall? report */
}
}
tto_csr = tto_csr | CSR_DONE;
if (tto_csr & CSR_IE)
SET_INT (TTO);
}
The almost all of the current simh simulators already are implemented
with logic like the above example. These will work just fine with the
newly regulated console speed.
- Add HELP language for SET CONSOLE DBGSIGNAL|NODBGSIGNAL.
- Remove obsolete sim_os_poll_kbd_ready platform specific routines
which were only used with the never functional asynchronous TMXR
code which has been otherwise removed everywhere else.
- Cleanup DBGSIGNAL related code comments
-
Add the "DBGSIGNAL", "DBGSIG" options to enable sending the interrupt to
the user's debugger, which is presumably gdb. Separates setting the
debugging interrupt character from the action so that it is possible to
turn debugger interrupts on and off:
set console dbgint=1f dbgsignal
set console nodbgsignal
Previously, this feature was only available if the compiler did not
define __OPTIMIZE__, which precludes optimized debugging code, i.e.,
compiling with "-O2 -g".
Don't repeatedly call GetConsoleMode() on Win32 each time
sim_console_write() is called.
Use an output function pointer to invoke WriteConsoleA (console output)
or WriteFile (output is not a console). The console output destination
doesn't change during the lifetime of the simulator, so avoid
extraneous overhead for each character output (sometimes strings, but
mostly characters.)
- Without regard to whether the circular buffer data is otherwise in
use while instructions are executing.
- When a circular debug buffer is in use, avoid writing out the contents
with the periodic open file flushes and only do so on returns to the
sim> prompt and when debug is closed
- Add common system includes used in may places which are allowed
and thus added directly in sim_defs.h.
- Separate completely private system data structures and system APIs
for use only by SCP library routines into sim_scp_private.h.
- Fix potential buffer overrun while pending remote command actions
- Add debug abort interface to close debug file
- Flush partially read command line on EOF
- Flush partially read command line when WRU HALTs execution and switches
to multi-command mode.
- Disable any pending repeat when WRU HALTs execution
Asynchronous MUX functionality was added long ago and never completely
tested and thus never completed and never actually used.
All of what it was supposed to achieve was independently achieved when
bit rate speed functionality was added.
The STEP command was inadvertently allowed to be parsed in non-master
mode connections, but it didn't actually work. It has now been removed
from the generic remote console command table.
This was illuminated as of the discussion in #854
This allowed user entered S to match the SAMPLEOUT command instead
of STEP. That then identified a bug in the intended socket output
processing to attempt to be written to the undefined debug file.
As discussed in #854
Simulators running directly in a Windows console session, that don't
have the console traffic redirected to a telnet session via
SET CONSOLE TELNET=nnn
now behave similarly to the default behavior experienced on
non-windows hosts where the terminal session usually defaults to
wrapping at EOL. Users who want more specific control of this behavior
can run their console via a telnet session with a terminal emulator that
lets them explicitly set these features in the emulator.
This change reintroduces this behavior which got lost when windows
support for ANSI (VT100) escape sequences were added to the console
sessions.