1
0
mirror of https://github.com/open-simh/simh.git synced 2026-01-11 23:53:30 +00:00

217 Commits

Author SHA1 Message Date
J. David Bryan
6da2ce719e HP3000: Release 9 2021-01-19 19:30:07 -08:00
J. David Bryan
0e119d70bb HP2100: Release 30 2021-01-19 19:28:56 -08:00
J. David Bryan
685ca317a3 SCP: HP Only SCP and additional 3.11.2 JDB SCP Extensions 2021-01-19 19:23:33 -08:00
J. David Bryan
79f71ce384 HP3000: Release 8 2020-02-19 17:04:55 -08:00
J. David Bryan
324fba049a HP2100: Release 29 2020-02-19 17:04:20 -08:00
J. David Bryan
2288fa348f SCP: HP Only SCP and additional 3.11 JDB SCP Extensions 2020-02-19 16:58:36 -08:00
Bob Supnik
43360191c8 simh 3.11 2019-11-30 20:19:00 -08:00
Bob Supnik
cf9ead8d04 VAX, VAX780: Added hook for unpredictable indexed immediate
Originally, the VAX allowed immediate operands (8F) to be used without
restrictions in address mode instructions, either standalone or indexed.
Starting with MicroVAX II, immediate indexed became reserved. This
remained true for all subsequent chip implementations. The SRM was
ECOed in March, 1985 to make immediate indexed unpredictable.

In MicroVAX II, immediate g-floating operands didn't work correctly. The
problem was found a couple of months after tape-out. While the index
flows could be fixed, and were fixed according to the microcode revision
history:

;    7-May-84    [RMS]    Fixed FD problem in index flows (JLR)

the problem in indexed immediate could only be fixed by a significant
hardware change in an area that was already packed full. The VAX
Architecture Team, which had always been very sympathetic to the
VAX chip efforts, proposed a much simpler solution: make immediate
indexed unpredictable. It was useless, in any case.

I'm rather surprised that this wasn't flagged by the 780 diagnostics.
Maybe it was never tested. It was tested in HCORE (the original MicroVAX I
core diagnostic that is failing), but I removed it subsequently:

; 8-may-85    rms    removed indexed immediate tests

Bottom line - the simulator is right for the chip VAXes (including, I think,
V11) and wrong for MicroVAX I and probably the 8600, 780, 750, and 730.
2019-04-23 11:56:55 -07:00
Bob Supnik
e4f8313262 VAX: Add C & V condition code support for MTPR and MFPR opcodes
As originally specified, both MTPR and MFPR set N,Z based on the
transmitted/received longword data, cleared V, and left C untouched. The
simulator hardwired this (except for the standardized TBCHK register)
based on the CVAX microcode.

In the 8200, accessing the RXCD register sets V for character
sent/received. (The VAX vector MxPRs also return non-standard values
for the condition codes.) This is one of the reasons that, in 1986, the
VAX architecture spec was changed to make the condition codes
UNPREDICTABLE following MTPR or MFPR.

Accordingly, I've added a "hook" to support the 8200 and other
non-standard MxPRs: global variable mxpr_cc_vc.

At the start of MTPR or MFPR (only), this variable is set to
000<current C bit>. MTPR will set N and Z based on the transmitted
operand and clear V and C. MFPR will set N and Z based on the received
data and clear V and C. Then, at the end, mxpr_cc_vc, masked down to
V & C, is ORed into the condition codes.

Thus, if an IPR write or read does nothing special, MTPR and MFPR will
get the canonical results. N,Z set, V cleared, C preserved. However, an
IPR routine can now specify a non-standard value for V and/or C by
modifying mxpr_cc_vc.

This tweak required changes only in vax_cpu.c. None of the model-
specific IPR routines need to be changed, except for Matt's 8200 RXCD
code. Anyone attempting implementation of further models (or VAX
vectors) should be aware of this new capability.
2019-04-15 21:37:15 -07:00
Bob Supnik
10c0c36e01 HP2100, HP3000: HP2100 release 29, HP3000 release 8
See HP2100/hp2100_release.txt for HP2100 details

See HP3000/hp3000_release.txt for HP3000 details
v3.10
2019-04-15 21:30:31 -07:00
Bob Supnik
d90ed88199 PDP11: Add SP to instruction history 2019-04-15 19:18:27 -07:00
Bob Supnik
fd062ddf2c i1401: Fix comment in operation table 2019-04-15 19:17:30 -07:00
Bob Supnik
8a3a3a63d7 Sigma: Fix spelling in comment 2019-04-15 19:15:52 -07:00
Bob Supnik
0b4ecef91c SCP: Coverity warning cleanup from Dave Bryan 2019-04-15 19:15:02 -07:00
Mark Pizzolato
d739fe435e PDP11, VAX, VAX780: Adjust project definitions for new pthreads 2.11.1 2018-10-21 09:52:06 -07:00
Bob Supnik
5ccef2e6f8 simh 3.10-RC2
3.10 is mostly an attempt to get aligned with the current head of the
GitHub 4.0 sources. While the core libraries and SCP have diverged too
far for real forward and backward compatibility, enough 4.0 workalikes
have been added to allow much closer convergence of the two streams.

3.10 will provide the basis for my future simulation work.
2018-07-21 10:39:14 -07:00
Mark Pizzolato
a2bc6a9508 UC15: Fix incorrect shared region size 2018-07-21 03:01:11 -07:00
Mark Pizzolato
beaae0b945 makefile: Allow building shared memory applications 2018-07-21 03:00:36 -07:00
Mark Pizzolato
a644a6e5ca SHMEM: Fix various Linux and Windows problems
- Windows did not validate that the a segment size was correct.
- Add shared memory object name to the management structure
- Linux shared memory object names must start with a /
- Linux umask setting to assign permissions
- Add textual explanations for failure cases
2018-07-21 02:59:00 -07:00
Bob Supnik
e5b8139f2a I1620: Fixed bug in select index A (COVERITY) 2018-06-05 13:38:17 -07:00
Bob Supnik
adc347c15f AltairZ80, IBM1130, SWTP6800: simh 3.10 removed simulators
These sources have moved on to the 4.0 base.
2018-06-04 08:02:34 -07:00
Bob Supnik
3fada8da5a simh 3.10-RC1a
3.10 is mostly an attempt to get aligned with the current head of the
GitHub 4.0 sources. While the core libraries and SCP have diverged too
far for real forward and backward compatibility, enough 4.0 workalikes
have been added to allow much closer convergence of the two streams.

3.10 will provide the basis for my future simulation work.
2018-06-04 07:59:42 -07:00
Mark Pizzolato
140ab5b350 various: Fixed nested comments 2018-06-03 18:44:55 -07:00
Bob Supnik
f6654c0549 sigma: New simulator from beta 2018-06-03 18:23:54 -07:00
Mark Pizzolato
8308664ccb alpha: Correct physical address masking and integer to floag sign detect
Also replaced remaining tabs with spaces
2018-06-03 18:20:52 -07:00
Mark Pizzolato
d6d188f5f1 HP2100: Release 28
See HP2100/hp2100_release.txt for details of the release.
2018-06-03 15:30:52 -07:00
Mark Pizzolato
839c5ac3ce HP3000: Release 7, update 1
See HP3000/hp3000_release.txt for details of the release.

The 3000 release is a minor update that avoids a name clash when building
3.10 on Unixes.
2018-06-01 16:59:24 -07:00
Mark Pizzolato
34b4354666 alpha: Fix build under GCC 2018-05-23 15:55:48 -07:00
Bob Supnik
59067579dd SDS: Simplify MT operation check.
The SDS tape unit can't do write reverse (no magtape tape can, afaik).
So instead of testing for a particular write subop, the code just tests
that the write was done in BCD mode.
This is closer to how the hardware works.
2018-05-23 15:49:25 -07:00
Bob Supnik
a429739622 PDP10: Read tape mark must set Massbus EXC (TRE) 2018-03-09 14:14:38 -08:00
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