simh t_bool has been declared as int. Given this, compilers didn't
notice inconsistent declarations with other int types. These changes
fix those problems.
I1401: Consistently declare conv_old as t_bool
I7094: Consistently declare ch6_req_wr as returning t_stat
ID16, ID32: Consistently declare idc_wds as returning t_stat
ND100: Properly declare sim_load flag argument as int
PDP10: Consistently declare build_dib_tab as returning t_stat
SAGE: Properly declare sim_load flag argument as int
VAX780: Consistently declare rtfile_read as returning t_bool
TIMER: Properly declare sim_timer_cancel as returning t_stat
CONSOLE: Properly declare sim_os_fd_isatty as returning int
This avoids a potential invalid pointer dereference when formatting
the return value from sim_instr() if it is < SCPE_BASE but greater
than the previously defined static array size.sizeof
Update simh.doc to reflect this generic change.
CID Action
1416081 changed variable answer to int
1416082 checked returned values with ASSURE - read error means corrupted target code.
1416088 added return
1416109 This fallthru was intentional - duplicated code to make coverity happy
1416111 This fallthru was intentional - duplicated code to make coverity happy
1416116 This fallthru was intentional - duplicated code to make coverity happy
1416117 This fallthru was intentional - duplicated code to make coverity happy
1416124 protected against negative return
1416142 added ASSURE, however this case won't happen since reg_intpending==true implies positive int level
1416145 checked non-NULL, return SCPE_ARG if NULL
1416150 since only 2 drives are supported, fdc_selected is decoded to 0 and 1 only (allowed 2 and 3 before)
1416152 restrict to 2 drives only
1416166 checked value with ASSURE
1416101 typo: should have been resx
1416106 unnecessary code removed
1416110 this fallthru was intentional - duplicated code to make coverity happy
1416112 this fallthru was intentional - duplicated code to make coverity happy
1416148 change condition to check for negative value
1416179 break was remainder from former logic - removed
1415866 code was remainder from former unimplemented instruction trap - removed
These changes facilitate more robust parameter type checking and helps
to identify unexpected coding errors.
Most simulators can now also be compiled with a C++ compiler without
warnings.
Additionally, these changes have also been configured to facilitate easier
backporting of simulator and device simulation modules to run under the
simh v3.9+ SCP framework.
Commit a9ac7c153 properly avoided writing past the end of cache_line,
but in doing so introduced an error as to the first memory address that
should be written. This fix avoids writing past the cache_line by simply
reading the previous memory location.
Fixes the CP/M 68K simulation example and issue #181