Commit graph

3620 commits

Author SHA1 Message Date
Bill Beech
71e7de1d40 ISYS8030: initial check in of new experimental simulator for the Intel System 80/30 2016-10-11 15:05:02 -07:00
Bill Beech
0b9411b9e6 ISYS8030: file move to place system specific files in the system specific directory instead on common 2016-10-11 15:05:02 -07:00
Bill Beech
8146035d05 ISYS8020: file move to place system specific files in the system specific directory instead on common 2016-10-11 15:05:02 -07:00
Bill Beech
bee175713b ISYS8010: file move to place system specific files in the system specific directory instead on common 2016-10-11 15:05:02 -07:00
Bill Beech
27e65d1fa9 IMDS-225: Initial check in of new experimental simulator for the Intel MDS-225 IPC 2016-10-11 15:05:02 -07:00
Bill Beech
cdb94a9d9f IBMPCXT: Initial check in of new experimental simulator for the IBM PC XT 2016-10-11 15:05:02 -07:00
Bill Beech
89a8c87e87 IBMPC: Initial check in of new experimental simulator for the IBM PC (5150) 2016-10-11 15:05:02 -07:00
Mark Pizzolato
5f1ee6ed67 makefile: Correct advice about how to install libvdeplug
Additionally, only warn about potentially missing ttf support when
building a BESM6 simulator.
2016-10-11 10:17:37 -07:00
Mark Pizzolato
6a1487e5bf makefile: Fix locating besm6 fontpath when using libSDL2 2016-10-11 09:33:19 -07:00
Mark Pizzolato
9c0b0ffb46 PDP8: Add support for 16 terminals in the TTIX device 2016-10-10 16:59:03 -07:00
Mark Pizzolato
cf1e7b9cca SCP, PDP11: Added HELP CPU BREAK to display info about breakpoint types 2016-10-06 13:25:54 -07:00
Mark Pizzolato
d4f38d5358 SCP: Add compiled architecture and release/debug info to SHOW VERSION 2016-10-01 07:38:42 -07:00
Mark Pizzolato
9122a9f196 SCP: Add . pseudo symbol to reference the most recent address
Useful in EXAMINE and DEPOSIT.
2016-09-26 18:23:55 -07:00
Mark Pizzolato
da3f5359bb VAX, PDP11, PDP8, PDP1: Properly declare timer with clock unit 2016-09-26 15:55:50 -07:00
Mark Pizzolato
2b61a9a92d SCP: Fix timer calibration to produce consistent results with multiple clocks
- Timers that schedule their ticks with sim_activate_after() now operate
   consistently without having to be the single timer used by a simulator.
- Simulators which dynamically enable the operation of a clock when one
   wasn't previously wasn't enabled will disable the internal calibrated timer.
2016-09-26 15:39:42 -07:00
Mark Pizzolato
c1ca3d4612 SCP: Add missing help mentioning SET CONSOLE SPEED 2016-09-24 05:04:44 -07:00
Mark Pizzolato
063cec087a PDP8: Changed console input polling to poll for input 500ms has passed 2016-09-24 05:02:47 -07:00
Mark Pizzolato
0b0f227057 SCP: Allow range/count specifier to special last value reference ($) in EXAMINE
As discussed in #343
2016-09-21 13:22:49 -07:00
Mark Pizzolato
3e4b0af18f makefile: Cleanup description of commit-id generation scripts 2016-09-21 11:55:14 -07:00
Mark Pizzolato
e370b9e78e HP3000: Third HP 3000 release from Dave Bryan 2016-09-20 20:34:22 -07:00
Mark Pizzolato
9925ba83b8 SCP: Remove unused variable declarations 2016-09-20 09:21:11 -07:00
Mark Pizzolato
fa292f59cd makefile: Add logic to BESM6 build warning that video panel needs SDL 2016-09-14 17:30:46 -07:00
Mark Pizzolato
0263e0b950 BESM6: Fix CONST declaration for panel initialization routine 2016-09-14 16:43:25 -07:00
Mark Pizzolato
a008b0a972 SCP: Fix throttling to provide reasonable operation of calibrated clocks
- Generate reasonable messages when presented with erroneous throttle input.
- Add throttling recalibration logic if only if target rate drift exceeds 5%
2016-09-14 14:12:24 -07:00
Paul Koning
89ffed467f PDP11: Add new breakpoint types for data and physical address
Add support for physical and virtual address variants for the existing
instruction (PC) breakpoint, and add memory read and memory write
breakpoints.
2016-09-13 15:22:35 -04:00
Mark Pizzolato
29c121e973 SCP: Fix default breakpoint message format.
When sim_brk_type_desc isn't populated, the matching breakpoint switches
and matching address are displayed.  Fix to use the optional VM provided
address formatting function sim_vm_sprint_addr.
2016-09-11 03:43:24 -07:00
Paul Koning
083b53ea11 DOC: More detail on breakpoints and instruction replay
Add discussion of the recommended handling of instruction history
recording.  Also recommendations for read and write breakpoints to
cover cases such as I/O registers.
2016-09-09 15:30:42 -04:00
Paul Koning
b4ea2f8ec2 DOC: Add some additional detail on the breakpoint replay 2016-09-09 14:27:14 -04:00
Mark Pizzolato
b73afbb9d3 SCP: Fix breakpoint test when multiple breakpoint types are specified 2016-09-08 18:43:25 -07:00
Mark Pizzolato
41ba04e88a LGP, CDC1700, PDQ3: Add new VM optional sim_vm_sprint_addr API 2016-09-01 14:34:55 -07:00
Mark Pizzolato
222ae77436 SCP: Add sim_brk_message() to facilitate easy reporting of matched breakpoints.
Also extended the optional VM supplied routines to include sim_vm_sprint_addr.
Simulators which provide sim_vm_fprint_addr should also provide
sim_vm_sprint_addr with sim_vm_fprint_addr reworked to leverage
sim_vm_sprint_addr internally.  sim_vm_sprint_addr is currently only used by
sim_brk_message() which is an API which a simulator may choose to use if
it supports multiple breakpoint types,
2016-09-01 14:32:01 -07:00
Mark Pizzolato
e06b815d2a SCP: Record breakpoint match details in globals
sim_brk_match_type and sim_brk_match_addr can be used to generate
appropriate messages relating to the breakpoint match.
2016-08-31 11:56:47 -07:00
Mark Pizzolato
f03df970ea SCP: Compiler suggested type cast 2016-08-31 10:23:54 -07:00
Peter Schorn
dc2bbe5a40 AltairZ80: Updated 8080/Z80 CPU for new breakpoint package 2016-08-31 17:39:04 +02:00
Mark Pizzolato
f82d3f8994 SCP: Breakpoint enhancements
- Reliable support for multiple breakpoint types
- Optional separate breakpoint types defined concurrently with the same address
2016-08-31 08:10:38 -07:00
Mark Pizzolato
c33abecf8b SDS, Sigma: Make sure breakpoint's don't advance sim_time 2016-08-30 15:51:45 -07:00
Mark Pizzolato
8eb36720bc PDP11: Fix ambiguous -D decimal vs data space reference - Add -T for data 2016-08-30 13:10:56 -07:00
Mark Pizzolato
6e15dceaea VAX730, VAX8600: Remove mention of TQ device as bootable.
Fix #334
2016-08-29 23:01:54 -07:00
Paul Koning
223f080724 PDP10, PDP11, VAX: Make DMC/DMR initialization more accurate.
These changes cure a number of issues in RSTS/E, which is more
sensitive to details of emulation than most:

1. Additional KMC opcodes supported for ROMI
2. MCLR now initializes the CSRs per the spec
3. MCLR and ROMI are processed immediately at CSR write rather than
   being deferred, because these actions are implemented in the device
   hardware rather than in the microprogram.
2016-08-29 10:43:50 -04:00
Mark Pizzolato
f48d1f418d PDP11: Add ability to explicitly set the interrupt vector for the TS device 2016-08-28 13:55:53 -07:00
Mark Pizzolato
b4f3d6c6d8 SCP: Breakpoint cleanup.
- Add detailed error message info while parsing breakpoint commands
 - Properly limit breakpoint class values to reflect available mask bits
 - Declare globally sim_brk_npc since it is a documented API
 - Revise simh_breakpoints.doc to reflect current behavior
2016-08-26 14:35:00 -07:00
Mark Pizzolato
0352e0fd7b PDP11: Move history entry pointer initialization out of instruction loop.
This will be slightly more efficient for the normal case where history isn't
being recorded.
2016-08-25 14:28:38 -07:00
Paul Koning
66fb70b768 PDP11: Record the actual source and destination values for history.
Previously, the history would always use a register value as source or
destination as if the mode were zero, even when it wasn't.  Also, now
the destination value reflects the destination after instruction
execution rather than before.
2016-08-25 14:28:38 -07:00
Mark Pizzolato
e2a8f0fcdc PDP11: Fixed NEXT command to work when the MMU is enabled 2016-08-24 21:19:09 -07:00
Mark Pizzolato
fa232c0dd3 PDP11: KG11 Fix register names and make units enable status consistent 2016-08-24 15:03:06 -07:00
Mark Pizzolato
3571d83c7b PDP11: Fix KG11 address range when less than 8 units are configured 2016-08-24 14:05:58 -07:00
Mark Pizzolato
25b9fc22dc PDP11: Reworked PCLK device to minimize scheduled events
Rather than use a simh event to increment/decrement the counter register
for each 'clock cycle', compute the time the interrupt will eventually fire
and schedule a single event to deal with that.  If the clock counter is
referenced before the interrupt fires, interpolate the value based on the
number of instructions that have actually been executed.

sim_activate_after() is used here, and the time value for the scheduled
activation is a uint32 representing microseconds.  The range of values
that the PCLK can programmatically specify could be large enough
to exceed an uint32 when number of microseconds is converted to
a count of instructions.  This is an issue that has minimal consequences,
but should be addressed internal to the implementation of
sim_activate_after().
2016-08-18 13:40:23 -07:00
Mark Pizzolato
acaf118cf7 PDP11: Add display of the programmed clock frequency, use calibrated delays 2016-08-18 08:00:41 -07:00
Mark Pizzolato
946bfd329f HP2100: Latest updates from Dave Bryan
273. ENHANCEMENT:  Burst-fill only the first of two MPX receive buffers in FASTTIME mode.

     OBSERVATION:  When the 8-channel multiplexer is set for "optimized timing"
     mode, buffered characters are transferred in blocks to and from the Telnet
     connection.  That is, the line service routine will send or receive
     characters as long as they are available.  This is more efficient than the
     "realistic timing" mode, which sends or receives one character per service
     invocation.  Effectively, this means that up to 508 characters (two buffers
     of 254 bytes each) may be sent or received between one CPU instruction or
     DCPC cycle and the next.  This works well for sending, but it can cause
     buffer overflows when receiving.

     Consider an application (such as Kermit) that receives large blocks of data
     at high speed from a client.  The multiplexer is designed to handle this
     condition by interrupting the CPU when the first buffer is filled and
     filling the second buffer while the CPU is unloading data from the first.
     In realistic mode at 19,200 baud, the CPU has approximately 800
     instructions or DCPC cycles available per character received.  With a
     second buffer of 254 bytes, the CPU has approximately 203,000 instructions
     available to unload the first buffer after receiving the interrupt
     notification.  Once started, the DCPC transfer takes no more than 508
     instruction times, so the CPU can easily keep up with data arriving at the
     maximum baud rate.

     In fast timing mode, however, the first buffer burst-fills in a single CPU
     instruction time, and, if available from the Telnet connection, the second
     buffer fills in the next instruction time.  At that point, any additional
     characters received will result in a buffer overflow condition.  The
     problem is that the CPU has no time between the first burst and the second
     to empty the first buffer.

     RESOLUTION:  Modify "mpx_line_svc" (hp2100_mpx.c) to shift from burst
     transfers to character-at-a-time transfers when a receive buffer is full
     and awaiting unloading by the CPU.  This allows the CPU and DCPC time to
     read the buffer contents into memory before the second multiplexer buffer
     is full.  Once the completed buffer is freed, the service routine returns
     to burst mode to fill the remainder of the other buffer, permitting the
     efficiency of block transfers while avoiding buffer overruns with large
     data transfers.

274. PROBLEM:  A second connection to the BACI device leaves the client unresponsive.

      OBSERVATION:  The BACI device supports a single terminal client connection.
     If a second connection is attempted, the client connects but is otherwise
     unresponsive.  It would be better if the client received the "All
     connections busy" message that is reported by the terminal multiplexers
     (MPX and MUX devices) when the number of connections is exceeded.

     CAUSE:  The "baci_poll_svc" is calling the "tmxr_poll_conn" routine only if
     the port is not connected.  The routine should be called unilaterally, so
     that it will report an error and disconnect the client when all lines are
     in use and another connection is attempted.

     RESOLUTION:  Modify "baci_poll_svc" (hp2100_baci.c) to call
     "tmxr_poll_conn" unconditionally, so that a second concurrent connection
     attempt will be rejected with "All connections busy".

275. PROBLEM:  The exported program counter name (PC) clashes with other libraries.

     OBSERVATION:  In HP 21xx/1000 systems, the P register is the program
     counter.  In keeping with the naming of the other register variables (e.g.,
     for A register, B register, etc.) in the simulator, the variable used
     should be named "PR".  However, for traditional reasons, the program
     counter in SIMH is named "PC".

     The main CPU module declares its hardware register variables as global, so
     that they may be accessed by other CPU helper modules.  Unfortunately, the
     "curses" library also declares the symbol "PC" as global, leading to
     conflicts when it is loaded by SCP.  A workaround had been implemented that
     renamed "PC" to "PC_Global" in the HP2100 simulator, but that meant that
     the new name had to be used when debugging, which was awkward.

     CAUSE:  A poor choice of global symbol names from the "termcap" library,
     which was inherited by the "curses" library.

     RESOLUTION:  Change the program counter variable name from "PC" to "PR"
     (hp2100_cpu.c, hp2100_cpu1.c, hp2100_cpu2.c, hp2100_cpu3.c, hp2100_cpu4.c,
     hp2100_cpu5.c, hp2100_cpu6.c, hp2100_cpu7.c, hp2100_dr.c, and hp2100_ipl.c)
     to avoid a name clash and for register naming consistency.
2016-08-13 05:10:04 -07:00
Mark Pizzolato
1c4a1ed871 ETHER: Removed references to pcap_get_servicename since that API won't exist
Early versions of Npcap for Windows added pcap_get_servicename, but this
code was dropped when the latest libpcap codebase was merged into Npcap.
2016-08-12 12:36:10 -07:00