Commit graph

660 commits

Author SHA1 Message Date
Mark Pizzolato
5700b1f477 SCP: Properly handle literal strings in expression string comparisons 2018-06-09 08:16:39 -07:00
Mark Pizzolato
5ca02d3f98 SCP: Add missing case independent string compare in expressions 2018-06-09 06:20:32 -07:00
Mark Pizzolato
15cd4d35ac SCP: Enhance command procedure processing and add debugging support
- push new action commands ahead of any previously unprocessed pending
   action commands.
- Add ACTION and DO debug to CPU (SCP) command processing support
- Insert %n command arguments before storing command line for potential
   deferred processing of action parameters to some commands (IF, BREAK,
   EXPECT, etc.)
2018-06-08 18:09:10 -07:00
Mark Pizzolato
9e18e0bb8d SCP: Cleanup expression evaluation logic errors
- Conversion to postfix ends up with operator ordering in different from the
   initial assumption resulting all relative compares being wrong.
- Parsing of Hex, Binary and Octal numeric tokens need to properly terminate
- Environment variable names can start with the _ character
2018-06-07 17:34:35 -07:00
Mark Pizzolato
06654d1ff5 TMXR: Make sure all MUX devices can leverage all debug selectors 2018-06-07 16:39:26 -07:00
Mark Pizzolato
ce5c3f0ff5 SCP: Allow symbols (environment variables) to describe contain addresses
This allows:
   sim> SET ENV X=80004324
   sim> EXAMINE X
   80004324: xxxxxxxxxx
   sim> DEPOSIT X nnnnn
2018-06-05 22:24:46 -07:00
Mark Pizzolato
b40e586ef3 SCP: Assure that action commands (IF/ASSERT,BREAK, ON, etc.) are trimmed 2018-05-31 15:30:19 -07:00
Mark Pizzolato
6e35bee5c5 SCP: Fixed Coverity identified issues 2018-05-28 01:56:14 -07:00
Mark Pizzolato
b1318f5c37 SCP: Always clear uptr->fileref on detach 2018-05-26 12:37:26 -07:00
Mark Pizzolato
874f60cbaa SCP: Fix potentially uninitialized variable reference 2018-05-25 10:21:35 -07:00
Mark Pizzolato
5f2c7b2a48 SCP: Defer substitution for IF/ASSERT command action commands 2018-05-24 13:31:07 -07:00
Mark Pizzolato
c294787aed SCP: Fix expression evaluation divide by zero, and avoid parameter substitution
This allows bare the % character to to properly be the moduls operator and
avoids potential ambiguous variable insertions.
2018-05-24 12:59:23 -07:00
Mark Pizzolato
0daff9026d SCP: Add TIME_MSEC predefined variable to provide time to milliseconds
- Assure that Internal variables are referencable during expression evaluation
- Add DEVNAME.REGNAME format for referencing non unique registers in
  expression evaluation.
- Extend global register search to also search known internal device list
  registers
- Allow expression variable names to have _ as a character within in the name
2018-05-24 01:46:24 -07:00
Mark Pizzolato
4734454bac SCP: Fix sim_dir_scan on Windows to return correct directory name
Also, change sim_dir_scan on all platforms to NOT return the contents
of a directory unless the filespec string asks for it.  This avoids the
potential catastrophe of a DEL command specifying a directory and
having its contents deleted.
Meanwhile, the DIR command now will list the contents of a directory
if the directory is specified with (or without) a wild card pattern.
2018-05-19 06:31:48 -07:00
Mark Pizzolato
b51d250598 SCP: Ignore trailing whitespace for all commands 2018-05-18 08:32:03 -07:00
Mark Pizzolato
cc31a50436 SCP: Allow empty SIM_BUILD_OS for compilers that don't support empty strings 2018-05-12 10:52:07 -07:00
Mark Pizzolato
cb53ddbc12 makefile: Make compile time Android Version visible in SHOW VERSION output 2018-05-10 21:55:15 -07:00
Mark Pizzolato
c0cda9ffd4 SCP: Remove leading / from sim_dir_scan file names when glob isn't available 2018-05-10 00:09:19 -07:00
Mark Pizzolato
818032fd24 SCP: Remove redundant DIR_ENTRY_CALLBACK declaration 2018-05-09 16:43:39 -07:00
Mark Pizzolato
b781834f31 SCP: Add sim_dir_scan API for general use. 2018-05-09 13:52:52 -07:00
Mark Pizzolato
6ccbfc7381 SCP: Report errno value when starting instruction execution fails 2018-05-08 02:51:17 -07:00
Mark Pizzolato
245a85d79e SCP: Fix Coverity identified memory leak in error expression evaluation path 2018-05-05 17:59:57 -07:00
Mark Pizzolato
a4b5160437 SCP: Add string comparison support to C Style expression evaluation
- Fix operator precedence interpretation
- Report expression parsing errors
2018-05-03 11:54:11 -07:00
Mark Pizzolato
96d3b5d26b SCP: Add SCP debug options to default device debug setup 2018-05-03 11:49:42 -07:00
Mark Pizzolato
130ad1c21f SCP: Fix potential error path expression evaluation memory leak (Coverity) 2018-05-01 23:07:57 -07:00
Mark Pizzolato
4e508cfc29 SCP: Add C style expression support for IF conditions and SET ENV -A
Expression evaluation code provided by Gabriel Pizzolato.
2018-05-01 22:08:06 -07:00
Mark Pizzolato
8fe02ad6d1 SCP: Updaeted HELP EVAL to provide meaningful examples. 2018-05-01 13:43:22 -07:00
Mark Pizzolato
396679a01a SCP: Add strtotsv to generally parse signed t_value data (t_svalue).
Allow for explicit Hex, Octal and Binary (0x. 0. 0b) prefix
2018-04-30 23:03:33 -07:00
Mark Pizzolato
b4ca9174fd SCP: Add formatting support for signed t_value (t_svalue).
PV_LEFTSIGN - left justified signed value
PV_RCOMMASIGN - right, space filled, Comma separated every 3 treat as signed
2018-04-30 21:35:20 -07:00
Mark Pizzolato
15e86fb4ed SCP, DISK: Fix Coverity identified debug path null pointer dereferences 2018-04-17 23:51:39 -07:00
Mark Pizzolato
adedce8556 SCP: Add quoted string argument to SET ENV otherwise trim whitespace
Previously, unexpected values might end up being set when using SET ENV
if there were trailing whitespace on the line being parsed.  Any such white
space is now explicitly trimmed before the environment variable is set.
Once we do that, we need to provide a way to deliberately set an environment
variable with trailing spaces.  This is now achieved by using a quoted string
value specified as:

    SET ENV -S var="value  "

The quotes are removed prior to setting the environment variable value.
The contents of the quoted string are parsed the same as EXPECT and SEND
arguments.
2018-04-16 13:52:54 -07:00
Mark Pizzolato
da31dfa7a9 SCP: Extend EXAMINE <dev> STATE to display elements of arrayed registers 2018-04-11 04:21:17 -07:00
Mark Pizzolato
114a29bc2f SCP: Add PCRE version to SHOW VERSION output 2018-04-08 17:13:54 -07:00
Mark Pizzolato
28e4311039 SCP: Extended debugging to allow for unit specific debug for disk and tape 2018-04-07 21:38:26 -07:00
Mark Pizzolato
e7090e784e SCP: Add support to compare file contents with IF -F "file1" == "file2" 2018-03-31 23:50:37 -07:00
Mark Pizzolato
0b209d2383 SCP: Allow UNIT_RO flag bit to be static when UNIT_ROABLE isn't present. 2018-03-25 18:09:07 -07:00
Mark Pizzolato
d0004b20aa SCP: Compiler const warning cleanup 2018-03-20 13:01:18 -07:00
Mark Pizzolato
2051422ee2 SCP: Remove redundant public SCP API declarations 2018-03-19 11:11:55 -07:00
Mark Pizzolato
c8ca4161fa SCP: Add git commit time to commit id version information 2018-03-09 02:58:40 -08:00
Mark Pizzolato
4cbf4e4144 SCP: Fix IF conditional expression parsing to not require spaces around operator
As reported in #536
2018-03-08 12:12:02 -08:00
Mark Pizzolato
d81ff1f17e SCP: Expose get_sim_opt globally so that local commands can parse switches 2018-03-06 16:41:42 -08:00
Mark Pizzolato
f33ca2a1d9 SCP: Improve throttle help and cleaned up set help formatting 2018-02-12 22:34:43 -08:00
Mark Pizzolato
8464b6bb39 SCP: Properly display disk sizes for small disks when capac is in sectors 2018-02-05 09:46:38 -08:00
Mark Pizzolato
045d7dba36 SCP: ON CONTROL_C cleanup and SHOW ON support 2018-02-02 05:51:22 -08:00
Mark Pizzolato
17e72adb93 SCP: Display HELP <dev> SET help text for modifiers that require values 2018-02-02 05:12:22 -08:00
Mark Pizzolato
760e7f2810 SCP: stop_cpu and sim_is_running variables t_bool 2018-02-02 05:02:27 -08:00
Mark Pizzolato
797feeaff3 SCP: Cleanup minor compiler warning 2018-01-30 03:59:04 -08:00
Mark Pizzolato
3a81f63ec1 SCP: Add support to handle CTRL+C while executing command files 2018-01-30 03:36:15 -08:00
Mark Pizzolato
cc6ff4fa51 SCP: Allow Environment variable names in IF/ASSERT string comparisons 2018-01-30 02:42:36 -08:00
Mark Pizzolato
4907dfb0e2 SCP: Display default delay values with SHOW SEND. 2018-01-22 22:02:03 -08:00