mirror of
https://github.com/simh/simh.git
synced 2026-02-12 02:48:38 +00:00
SCP: Extended EXPECT and SEND to have more flexible activation delays
- EXPECT will now tolerate a HALTAFTER=n parameter which delay the simulator stopping execution for n instructions. Unpredictable behavior will happen if multiple EXPECT conditions see matching data before the first actualy halt occurs. - SEND has an AFTER=n argument which delays the initial stuffed data from being input for at least n instructions. It also has a DELAY=m argument which specifies the minimum number of instructions which must execute between stuffed input data. - Changed run_cmd() to no longer clear pending breakpoint actions before starting instruction execution. - Added a -Q switch to the commands which dispatch through run_cmd() (RUN, STEP, NEXT, GO, BOOT, etc.). This switch will suppress status output when execution stops. This will allow sequences of breakpoint action commands to silently execute when needed.
This commit is contained in:
32
sim_defs.h
32
sim_defs.h
@@ -664,27 +664,29 @@ struct sim_exptab {
|
||||
/* Expect Context */
|
||||
|
||||
struct sim_expect {
|
||||
struct sim_device *dptr; /* Device (for Debug) */
|
||||
uint32 dbit; /* Debugging Bit */
|
||||
struct sim_exptab *rules; /* match rules */
|
||||
int32 size; /* count of match rules */
|
||||
uint8 *buf; /* buffer of output data which has produced */
|
||||
uint32 buf_ins; /* buffer insertion point for the next output data */
|
||||
uint32 buf_size; /* buffer size */
|
||||
struct sim_device *dptr; /* Device (for Debug) */
|
||||
uint32 dbit; /* Debugging Bit */
|
||||
struct sim_exptab *rules; /* match rules */
|
||||
int32 size; /* count of match rules */
|
||||
uint32 after; /* delay before halting */
|
||||
uint8 *buf; /* buffer of output data which has produced */
|
||||
uint32 buf_ins; /* buffer insertion point for the next output data */
|
||||
uint32 buf_size; /* buffer size */
|
||||
};
|
||||
|
||||
/* Send Context */
|
||||
|
||||
struct sim_send {
|
||||
uint32 delay; /* instruction delay before/between sent data */
|
||||
struct sim_device *dptr; /* Device (for Debug) */
|
||||
uint32 dbit; /* Debugging Bit */
|
||||
uint32 delay; /* instruction delay between sent data */
|
||||
#define SEND_DEFAULT_DELAY 1000 /* default delay instruction count */
|
||||
double next_time; /* execution time when next data can be sent */
|
||||
uint8 *buffer; /* buffer */
|
||||
size_t bufsize; /* buffer size */
|
||||
int32 insoff; /* insert offset */
|
||||
int32 extoff; /* extra offset */
|
||||
struct sim_device *dptr; /* Device (for Debug) */
|
||||
uint32 dbit; /* Debugging Bit */
|
||||
uint32 after; /* instruction delay before sending any data */
|
||||
double next_time; /* execution time when next data can be sent */
|
||||
uint8 *buffer; /* buffer */
|
||||
size_t bufsize; /* buffer size */
|
||||
int32 insoff; /* insert offset */
|
||||
int32 extoff; /* extra offset */
|
||||
};
|
||||
|
||||
/* Debug table */
|
||||
|
||||
Reference in New Issue
Block a user