- Use tape->block_size uniformly for FIXED record length/block size
- Change tape_classify_file_contents() so the max_record_size for text
files does not include the line endings (fixes FIXED -B 80 failure when
reading 80- character card-images, fixes invalid ANSI HDR2 Record
Length for ANSI-VMS, ANSI-RSX11, and ANSI-VAR -B 512 when
reading 508-character lines)
- Distinguish RMS Record Size from ANSI Record Length: RMS Record
Size does not include the ANSI 'D' Record Format Record Control Word
(RCW); ANSI Record Length does
- Verify the ANSI Record Length is legal for text files
- Verify that the ANSI -B block size is large enough
- Write ANSI Record Length in HDR2 label, write RMS Record Size in
HDR3 label; whether they are the same or not depends on the ANSI
Record Format
- Pad ANSI short binary records with zeros (ANSI 'F' records must
all be the HDR2 Record Length)
- Remove unused variable assignment
- Avoid potential out of array indexing due to theoretical array
reference via signed char index. Likely non functional change.
- Initialize local state variable to 0. Likely non functional changes due
to lack of depth in static analysis scan. Coverity detects real problems
like this.
- Migrate use of strncpy to strlcpy to assure safe buffer operations
- Initialize local state variables to 0. Likely non functional changes due
to lack of depth in static analysis scan. Coverity detects real problems
like this.
- Fix inconsistent statement indentation.
- Fix static structure initialization
- Fix inconsistent statement indentations.
- Avoid potential out of array indexing due to theoretical array
reference via signed char index. Likely non functional change.
- Initialize local state variables to 0. Likely non functional changes due
to lack of depth in static analysis scan. Coverity detects real problems
like this.
- Avoid potential out of array indexing due to theoretical array
reference via signed char index. Likely non functional change.
Initialize local state variables to 0. Likely non functional changes due
to lack of depth in static analysis scan. Coverity detects real problems
like this.
- Only if backing store is used (i.e. OS Agnostic mode)
- Previously this was only done on a clean simulator exit. That could
result in inconsistent timing information in operating system images vs
the saved TODR baseline data
- Always return TODR values rounded to the TODR granularity (10ms).
The 'tarbell' device now supports Tarbell model 1011 single density
and model 2022 double density floppy disk controllers. The model is
selected using the "SET TARBELL MODEL={SD|DD}" command. Also removed
some unused local variables.
Problem: Currently when viewing the Nova CPU history the carry flag is always
displayed as 0 regardless of it's actual value at the time.
Cause: The carry bit is stored in bit 17 and is lost when stored into the
int16 carry member of struct Hist_entry
Solution: Shift carry into bit 0 before storing it in the CPU history.
Improve code for displaying carry bit.
- Minimum -B is 14 (shorter records on mag tapes are considered noise)
- Maximum -B is 65535 (DEC tape controllers have a 16-bit byte count register)
- Remove redundant setting of TAR default record size
- Notify the user when the -E option is being ignored
- Use the UNIT_RO format flag to set the SIMH ReadOnly attach option
- Use three tape marks to mark the end of a volume for RT-11 and RSTS
(ANSI and DOS11 formats); the third tape mark is harmless on RSX-11
and VMS, which only write two
- TAR -B must be a multiple of 512 (tar specifies the mag tape block size
in number of 512-byte records)
- The TAR file must exist
- Use a conditional test with the "is a MEMORY_TAPE image" invariant in
sim_tape.h to select the correct tape unit attach failure message
- Always print a tape attach summary message, like SIMH does for disks;
simplify and fix some of the other messages there
- Remove unnecessary memset()'s in dos11_copy_ascii_file()
- Fix a 16-bit integer overflow in the DOS label date calculation
The OS may signal SIGTERM more than once before ultimately
issuing a SIGKILL. The initial SIGTERM will stop execution and
initiate optional simulator cleanup. Ignoring follow up SIGTERMs
will allow as much cleanup as possible to be achieved and thus
allow the simulator to complete its cleanup and exit or ultimately
exit die due to receipt of SIGKILL.
Likewise for SIGHUP on hosts that can issue SIGHUP.