1
0
mirror of https://github.com/simh/simh.git synced 2026-01-14 07:39:29 +00:00

187 Commits

Author SHA1 Message Date
Bob Supnik
bf82092493 GRI, PDP11, PDP8, VAX: Misc formatting and typo cleanups 2018-03-09 14:03:13 -08:00
Mark Pizzolato
0df520de7f HP2100: Remove old files and cleanup build
Removal suggested by Dave Bryan.  Build cleanup after testing
2018-02-03 06:58:47 -08:00
Mark Pizzolato
5f94c22f00 HP3000: HP 3000 release 7
See HP3000/hp3000_release.txt for details of the release
2018-01-12 15:06:04 -08:00
Bob Supnik
0dc94bf3ec PDP11, VAX780: Fix TM03 Read tape mark must set Massbus EXC 2017-12-28 16:00:43 -08:00
Bob Supnik
b55914b15e alpha: Fixed reversed definitions of FTOIS, FTOIT (Maurice Marks) 2017-10-05 18:53:57 -07:00
Bob Supnik
3f8533d957 H316, I7094, NOVA, PDP1, PDP10, PDP8, SDS: Coverity singleton errors
Most history routines defined a local sim_eval of the proper length, but the
erroneous ones were fixed length machines that defined an integer variable
instead of an integer array of length 1. The VAX used the global sim_eval.
The changes follow the VAX practice.
2017-09-07 09:52:00 -07:00
Mark Pizzolato
f51b621f62 Visual Studio Projects: Add HP3000 project file 2017-06-13 17:55:36 -07:00
Bob Supnik
6461443b61 I1620: Fixed typo in PTP unit (Dave Wise) 2017-06-11 03:56:28 -07:00
Bob Supnik
884a744fb5 PDP11, VAX: Change ERROR in CR device translation tables to avoid conflicts 2017-06-04 09:54:13 -07:00
Mark Pizzolato
212a499c00 Visual Studio Projects: Update project documentation. 2017-06-04 09:39:19 -07:00
Bob Supnik
3824537271 IBM1130: Assure consistency of 1DIG/2DIG setting 2017-06-03 12:04:36 -07:00
Mark Pizzolato
e25a45ffe3 HP2000, HP3000: Add missing/updated documentation files 2017-05-31 12:44:24 -07:00
Bob Supnik
ea7a03b9ea I1620: Add deferred IO mode for slow devices
The major change is the implementation of deferred IO - a more
accurate implementation of the 1620's "stop in its tracks" IO model.
When a device uses deferred IO, instruction execution is suspended
until the IO completes successfully. Operator interruptions, errors,
and so on do not return to instruction execution; this only occurs if
the IO completes successfully or the command SET CPU RELEASE is given
(equivalent of pressing the RELEASE button). Otherwise, the current IO
operation continues to execute.

Only the console typewriter and paper tape reader/punch currently
implement deferred IO; there are operational issues with those devices
that require more accurate modeling. The card reader/punch, line
printer, and disk still execute IO "instantaneously". It's not all
that hard to convert an instantaneous device to deferred operation,
but there's no point in doing so (and possibly introducing new bugs)
unless there's an actual operational issue. The 1620 doesn't have
overlapped IO, so programs can't tell the difference, by and large.

A number of other issues have been addressed as well, including the
bizarre "treat RM as 0 in the Q field" required by MI-015; the
treatment of non-existent indicators as always off; and various other
tweaks.

I've run CU01 (again), which at least gives typewriter and paper-tape
IO a basic workout; and it works. I leave more detailed testing to
people who know the machine better than I do.

The documentation has been updated to include Tom's detailed breakdown
of IO handling for all IO operations on the typewriter, paper-tape
reader/punch, card reader/punch, and line printer.
2017-05-29 13:24:41 -07:00
Bob Supnik
e12d500486 alpha: Fixed reversed definitions in opcode 12 (shifts)
It turns out that the two reversed opcodes Maurice identified were not the
only problems in opcode 12 (shifts). All of the INS/EXT pairs at function
codes .57 and above were reversed. In addition, the mnemonics in the
opcode table in alpha_sys.c are wrong as well as reversed.
2017-05-27 14:19:05 -07:00
Mark Pizzolato
bbbe526f8c HP2100, HP3000: HP2100 release 26 and HP3000 release 5 (Dave Bryan)
master branch code is identical
2017-05-24 09:15:16 -07:00
Mark Pizzolato
cbef6aa64b TAPE: Add support for erasing tape marks and Coverity Fixes (Dave Bryan) 2017-05-24 09:01:59 -07:00
Mark Pizzolato
2f7af39d0b SCP: Add minor extensions for better compatibility with 4.x (Dave Bryan) 2017-05-24 09:00:23 -07:00
Bob Supnik
f03e1fe9b0 I1620: Update doc to reflect recent changes 2017-05-22 10:09:42 -07:00
Bob Supnik
982bd50d0a I1620: Update various CPU issues
- Changed to commit PC on certain stops
- Added SET CPU RELEASE command
- Undefined indicators don't throw an error (Dave Wise)
- Added Model I mode to allow record marks in adds (Dave Wise)
- Allowed undocumented indicator 8 (Dave Wise)
- Added option for Model I diagnostic mode (Dave Wise)
2017-05-21 21:32:53 -07:00
Bob Supnik
4f8481786a I1620: Input processing cleanup - backspace, tabs, WRU
- Fixed keyboard interrupt problem for Linux
- Added input backspace for Model II
- Revised tab calculation algorithm
2017-05-21 18:15:19 -07:00
Bob Supnik
8aa965b293 I1620: Changed fprint_val to handle undefined opcodes on stops 2017-05-20 14:53:03 -07:00
Bob Supnik
d60fd322c3 I1620: Separated EOF error from other IO errors (Dave Wise) 2017-05-20 12:54:37 -07:00
Bob Supnik
4d52ce023b VAX, VAX780: Added model-specific AST validation test
From page 6-6 of DEC STD 032 (the VAX architecture spec):
"Execution of MTPR src, #PR$_ASTLVL with src<31:0> GEQU 5 results in
UNDEFINED behavior. The preferred implementation is to cause a reserved
operand fault." MicroVAX II, CVAX, and Rigel all conform to the preferred
behavior, as does the current simulator, which was written from the CVAX
microcode. NVAX masks to 3b and does not take an exception on a value
GEQU 5.

The 1982 Architecture Handbook describes ASTLVL as a 3b register, with
src<31:3> ignored/read as zero, and exceptions taken on values GEQU 5.
The780 microcode masks the input value to 3b before doing the GEQU 5 test.

The ASTLVL test needs to be model specific.

I suspect the behavior became undefined when MicroVAX II simplified the
original test to save a microword. I do not see how the code fragment Matt
references could work on a MicroVAX II, which was supported under 4.5.
Perhaps the device Matt mentions couldn't exist on a MicroVAX II?

For those who wants the gory details... uVAX, CVAX, and Rigel do an
unsigned compare on the unmasked src and the constant 5. Carry out
means reserved operand. Overflow is ignored. So an input of 0x80000002 -
0x00000005 (done in the data path as 0x80000002 + 0xFFFFFFFB) generates overflow (ignored) and carry out.
2017-05-18 12:23:56 -07:00
Bob Supnik
f6023f7039 alpha: Fixed function field widths (Maurice Marks)
Maurice Marks, at VMS Software Inc, is using the Alpha instruction emulator
from SimH as a backup to an Alpha binary translator! He found a bug in the
instructions definitions: function fields, both integer and floating, are 7b not
6b.
2017-04-17 10:08:53 -07:00
Bob Supnik
d0298bd817 I7094: Fix typo in accessing unit array (COVERITY) 2017-04-07 11:04:33 -07:00
Bob Supnik
6052e650db All VAX: Fixed uninitialized variable on FPD path (COVERITY) 2017-03-31 14:59:46 -07:00
Bob Supnik
ea61cebf75 PDP10: Documented switch fall through case (COVERITY) 2017-03-28 13:43:01 -07:00
Bob Supnik
14e6aeac91 SCP: Removed KBD_WAIT and friends 2017-03-20 22:04:27 -07:00
Bob Supnik
58d914c129 TAPE: Added sim_tape_errecf, sim_tape_errecr functions
Also Fixed bug in sim_tape_rdlntf if gap buffer read ends at EOM
2017-03-20 21:58:41 -07:00
Bob Supnik
df1f07f89d TIMER: Fixed calibration lost path to reinitialize timer 2017-03-20 21:56:13 -07:00
Bob Supnik
5ca66f59fe SCP: Fixed "noise" bugs (COVERITY) 2017-03-20 21:55:10 -07:00
Mark Pizzolato
c6399f7e40 PDP11: Change DC and TTI device to be 7B instead of 7P
7P interfered with the ability to determine the ID of a remote Telnet based
terminal session.
2017-03-20 07:34:49 -07:00
Bob Supnik
dcc5e098d0 PDP10, PDP18B, VAX: Better cosheduling behavior 2017-03-20 07:33:04 -07:00
Bob Supnik
3165a1b3ab All VAX: Properly define Unimplemented Opcode specifier count mask
the opcode table first word consists of bits:

<7> = FPD is legal for this opcode.
<4:6> = number of specifiers for unimplemented opcodes (VAX subsets)
<3> = unused
<0:2> = number of specifiers

The mask used to be 0x70. The convention is that x_M_y is a mask value
<right-justified>, for a macro like:

#define get_foo(x)        (((x) >> x_V_foo) & x_M_foo)

For a subset VAX (like the 3900), the unimplemented opcodes are those
that are recognized on a full VAX but simply trap as reserved instructions
(e.g., the H-floating instructions). This really only affected symbolic
printing and decoding of these instructions.
2017-03-20 07:19:32 -07:00
Bob Supnik
eb2862fde4 SDS: Add precise gap erase to MT device
As discussed in #152.  Still needs some additional sim_tape work.
2017-03-19 18:15:02 -07:00
Bob Supnik
b32e22874d sigma: Add "Sigma 7 BigMem" as a model variant
BigMem is a Sigma 9 memory management retrofit to the Sigma 7.
2017-03-19 18:12:34 -07:00
Bob Supnik
a6469c255d NOVA, PDP1, PDP11, sigma: Various cosmetic/typo changes 2017-03-19 09:45:12 -07:00
Bob Supnik
9700c9116a PDP8: Added LS8E decode (6660) for WPS8 and PKSTF
As discussed in #353
2017-03-18 23:46:10 -07:00
Bob Supnik
a12b5d5a8f PDP18B: Limit connection poll to configured lines 2017-03-18 23:43:01 -07:00
Bob Supnik
1ea348ed1d VAX780: Update 780 bug history to include REI to Compatibility mode 2017-03-18 22:41:37 -07:00
Bob Supnik
94d241e507 ID16, ID32: Fixed testing of 8b mode and echoed character (COVERITY) 2017-03-18 21:53:55 -07:00
Bob Supnik
244ad6be5a I7094: Annotated fall through in switch (COVERITY) 2017-03-18 21:48:57 -07:00
Bob Supnik
07cd35b86a I1401: Fixed MTF length checking (COVERITY) 2017-03-18 21:48:01 -07:00
Mark Pizzolato
17fb03d686 ALTAIR: Extend data buffer to avoid overrun (COVERITY) 2017-03-18 20:04:19 -07:00
Bob Supnik
9f60279a51 PDP1, PDP8, PDP18B, PDP11: Fixed dt_seterr to clear successor states 2017-03-15 09:57:58 -07:00
Bob Supnik
b0541176da alpha: Fix Coverity identified Defect: 1416171 2017-03-14 18:20:46 -07:00
Mark Pizzolato
d3b6bb2dac alpha: Adding baseline experimental Alpha version
This is so Bob can change his alpha source and we can track changes
2017-03-14 18:15:34 -07:00
Bob Supnik
4a5d829c46 PDP11: Fixed spurious interrupt when setting GO
The code wasn't handling interrupts correctly when TCCM was written. In
particular, if the GO bit clears DONE, the code looked for the "SET IE" case
too soon and didn't clear the interrupt that was incorrectly generated.
The new code factors "GO" into the calculation.
2017-03-14 09:58:17 -07:00
Bob Supnik
053cb0fda8 I1401: Fixed possible NULL pointer dereference (COVERITY) 2017-03-14 04:23:46 -07:00
Bob Supnik
b68910ded7 I1620: Fix Coverity identified problems
CPU: Added error test on device addr
DP:    Fixed bug in write check function test
TTY:  Fixed tab stop array overrun at right margin
2017-03-14 04:21:58 -07:00