Commit graph

3875 commits

Author SHA1 Message Date
Peter Schorn
8d3ecd0ddb AltairZ80: Added boot to MHDSK device and improved disassembler 2014-04-01 19:33:09 +02:00
Mark Pizzolato
0f417ed4ca TMXR: Change modem DSR & DCD to never be indicated as on unless a connection is present. 2014-04-01 08:07:43 -07:00
Mark Pizzolato
017141c9a3 TMXR: Enable proper inheritance of mux global/default buffering value to individual lines. 2014-03-30 13:36:41 -07:00
Peter Schorn
49d38187dd Updated AltairZ80 documentation and incorporated altairz80_mhdsk.c in build process 2014-03-29 15:12:53 +01:00
Peter Schorn
1d35a4f612 Updated year in copyright and implemented sim_vm_pc_value 2014-03-29 08:19:22 +01:00
Peter Schorn
5b2f229bb0 Added 88-HDSK support from Mike Douglas to AltairZ80 2014-03-29 07:21:59 +01:00
Mark Pizzolato
98a3cfba0b Compiler suggested cleanups 2014-03-28 08:20:21 -07:00
Mark Pizzolato
6ce8d99cd8 SCP: Added generic output routine sim_printf to output to stdout and sim_log (and sim_deb when enabled)
The goals here being to simplify calling code while getting consistent output delivered everywhere it may be useful.

Modified most places which explicitly used sim_log or merely called printf to now avoid doing that and merely call sim_printf().
2014-03-28 08:20:05 -07:00
Mark Pizzolato
e81de979f6 PDP11, PDP10, VAX: Start device connection polling on device reset when any units are attached 2014-03-27 05:12:44 -07:00
Mark Pizzolato
fc885f80dc TMXR: Be sure to correctly allocate the appropriate sized line transmit and receive buffers when a mux or line is attached. 2014-03-27 04:35:16 -07:00
Mark Pizzolato
66a02b877b TMXR: Avoid attempting to manage unit connect strings for never attached devices 2014-03-25 06:47:37 -07:00
Mark Pizzolato
fe005f7d36 PDP10, PDP11, VAX: Fix DUP and DMC devices which couldn't be disabled after having been enabled. 2014-03-19 02:06:10 -07:00
Mark Pizzolato
4db30c13dd PDP11, VAX: Avoid strcpy use on overlapping buffers when creating and referencing VHDs. 2014-03-18 00:44:37 -07:00
Mark Emmer
d04e909d5f SDS: Further refinement to bootstrap from RAD, update SDS documentation
Instead of conditionally compiling in bootstrap support depending upon attached channel, determine dynamically based on RAD's current assignment to channel W or channel E.  This allows using "set rad channel=W" for purposes of bootstrapping, and then relocating the RAD with "set rad channel=E" for running a TSS monitor that expects to find the RAD on channel E.
2014-03-17 17:48:59 -06:00
Mark Emmer
e15b09fcb7 Merge git://github.com/simh/simh 2014-03-17 16:37:24 -06:00
Mark Emmer
0b69e4e4d9 SDS: Allow console bootstrap from RAD if connected to W channel
Normally the RAD is connected to the E channel and there is no bootstrap capability (because of hardwired WIM instruction). However, for completeness, add code to allow booting from the RAD if it is connected to the W channel. Add RAD_CHAN definition to define which controller the RAD is connected to.

Improve parentheses in bootstrap code that allows an optional word count (while also permitting the canonical bootstrap sequence).
2014-03-17 16:36:28 -06:00
Mark Pizzolato
090b2f83f2 PDP10, PDP11, VAX: Avoid corrupting a DMC/DMR unit attach string when a line state transitions 2014-03-17 08:48:02 -07:00
Mark Pizzolato
3b1b7d6aaf PDP11, VAX: Fix VHD Differencing disk parent locator descriptors and removed deprecated descriptor types 2014-03-17 08:43:54 -07:00
Mark Pizzolato
b2134a01cf PDP11, VAX: Fix failure to create differencing VHDs when the parent VHD is larger than 2GB. 2014-03-16 08:33:15 -07:00
Mark Pizzolato
98ac7af6fa PDP11, VAX: Fix differencing virtual disk corruption during creation problems 2014-03-16 01:11:35 -07:00
Mark Pizzolato
194b35f6e8 TMXR: avoid calling strcpy with overlapping arguments 2014-03-11 19:30:28 -07:00
Mark Pizzolato
93b68432f2 AltairZ80, PDP10, PDP11, VAX: Fix incorrect sense of test on expression value in th ASSURE macro. Fix issue #126 2014-03-08 06:01:21 -08:00
Mark Pizzolato
a100c88f1d PDP10, PDP11, VAX: Fix compile error due to C++ variable declaration being used instead of C. 2014-03-08 05:56:40 -08:00
Mark Emmer
c256894b62 SDS: Allow LOAD command to accept a more flexible boot sequence
The canonical boot sequence uses WIM 0,2 in location 5 and an initial load address in location 11 (and in the X register). This is limiting for devices like RAD that do not report an end-of-file, or for paper tape that report EOF too late and cause the WIM to fail. A simple load address in location 11, with bit 9 set to satisfy the BRX, doesn't do any word counting.  The BRX always branches back to location 5.

This change allows a true negative word count to be placed in location 11 to work with a WIM XXXXX,2 where XXXXX is one location past the region to be loaded by the boot sequence.  XXXXX plus the negative count in location 11 (buf[3]+buf[7]) initially points to the first location to be loaded, and the BRX will not branch when the word count is exhausted (register X=0) allowing the branch to the start address to be executed.

Old allowable boot sequence:
location  2 = WIM 12,2
location  3 = BRX 2
location  4 = LDX 11
location  5 = WIM 0,2
location  6 = SKS 21000
location  7 = BRX 5
location 10 = BRU Transfer Address
location 11 = Load address with bit 9 set to force BRX to branch

New allowable boot sequence:
location  2 = WIM 12,2
location  3 = BRX 2
location  4 = LDX 11
location  5 = WIM [end load address + 1],2
location  6 = SKS 21000
location  7 = BRX 5
location 10 = BRU Transfer Address
location 11 = Negative count to number of words to load
2014-03-05 19:08:33 -06:00
Mark Pizzolato
9022de500d SCP: Removed the irrelevant sim_deb_PC variable since it duplicates the role sim_PC simulator variable. 2014-03-05 12:53:32 -08:00
Mark Emmer
ef99a17407 SDS: Update README.md for 940 enhancements 2014-03-04 17:40:23 -06:00
Mark Emmer
91c78b79ef SDS: Install better fix for 2x real-time clock speed problem
Received better fix from Mark Pizzolato for the problem of having 120 clock interrupts per second instead of 60. Tested for several hours and verified that wall-clock time matches TSS monitor time.
2014-03-04 17:39:34 -06:00
Mark Pizzolato
0c56397289 Merge remote-tracking branch 'origin/master' 2014-03-03 08:10:31 -08:00
Jordi Guillaumes i Pons
4833bbee4b Merge branch 'master' of git://github.com/simh/simh into crFIX-intack 2014-03-03 15:49:52 +01:00
Mark Emmer
a98c9f92fa SDS: Minor additions to SDS documentation
Document new breakpoint types and display and input of packed SDS internal ASCII characters.  Add note describing memory map options for display and input discovered in code. Word change tracking enabled.
2014-03-02 22:58:08 -06:00
Mark Emmer
cf56b11321 SDS: Adjust real-time clock pulse interrupt period
Clock is running twice as fast as it should -- 120 interrupts per second instead of 60.  Cannot find problem in initialization or calibration or count-down code, so for now, divide rtc_tps by 2 prior to invoking sim_rtcn_calb.  Now 940 Executive reports wall-clock time advancing at proper rate.
2014-03-02 22:49:04 -06:00
Mark Emmer
396e78cb26 SDS: Allow specifying breakpoints as being in monitor, user or normal mode only
Breakpoint logic now allows four execution-type breakpoints:
 -E  as before, break if PC equals address, unqualified by mode
 -M break if PC equals address and machine is in monitor mode
 -N break if PC equals address and machine is in normal (SDS 930) mode
 -U break if PC equals address and machine is in user mode
2014-03-02 22:47:39 -06:00
Mark Emmer
614fe87af4 SDS: Alter display and entering of ASCII data
SDS internal ASCII differs from standard external ASCII. Alter the examine and deposit functions with -A switch to properly adjust between the two forms. Also allow strings rather than one-character per word as was in the original code.  Clean up six-bit character display logic to use a loop.

Remove superfluous trailing blanks from lines in file.
2014-03-02 22:44:35 -06:00
Mark Emmer
0c6c4c7916 SDS: Fixed head disk addressing corrected when start new sector
rad_adjda was setting sba=0 at a sector boundary, which did not reflect that the first 12-bits of the sector have already be read or written. Must set sba=1 for proper addressing.

Removed superfluous end-of-line spaces from file.
2014-03-02 22:27:45 -06:00
Mark Emmer
a07addf5fa SDS: Various fixes to asynchronous communication mux
1. In pot_fork, the permanently asserted interrupt, the interrupt bits were assigned in the wrong order -- bit 8 is interrupt 0 and bit 23 is interrupt 017 in each group of 16. Also, the group number was incorrectly calculated -- need to subtract 0200 before dividing by 020.

2. In case 3 of EOM and SKS when in SDS mode, it does not dispatch properly. The device table is set for Genie mode.  Add test for device 077 in SDS mode and switch to device 1, which is Mux in Genie mode.

3. Add test to PIN to verify that scanner is locked before returning PIN data.

4. Mux should not queue a new interrupt for a flag type if it is already queued and pending for a different channel. If do so, when the CPU clears the interrupt, the second interrupt is lost.

5. If POT specifies interrupt but no Tx character present, queue a Tx interrupt immediately if the transmitter is not active. This technique is used by the 940 monitor to start output of the transmit character buffer.

6. Per the 940 reference manual, after servicing the highest priority interrupt on a particular channel, the scanner should look at all other channels before looking for additional interrupt types on the first channel. Change scanner to always resume scan with the Rx interrupt on the next channel from where the scanner paused.

Also removed superfluous trailing blanks from lines in file.
2014-03-02 22:26:44 -06:00
Mark Emmer
5b479c7ab2 SDS: Do not reload channel interlace register if already alerted
From actual monitor code, sequence used to read drum:
             EOD*  10000B   Alert Interlace
GDAC3: EOD    14202    I/O control mode EOD (mode 1)
                                        A=0  High order memory address bits
                                        Hicount=2 (Word count=04000=2KW)
             POT      GDBCL+2  Low-order memory address bits.
             RRF                    (EOD 2226) Read RAD file (mode 0)

Problem is that RRF is clearing the interlace information saved by the previous POT and sets up for a new POT. That is, in sds_io.c, mod 0 of op_eomd always assumes that a POT will follow if the channel is C or greater. Have to add tests of chan_flag.  If interlace is active, do not capture new information from this EOM/EOD.

Also removed superfluous trailing blanks from lines in file.
2014-03-02 22:24:28 -06:00
Mark Emmer
d5acbc6f7a SDS: Fix clock pulse interrupt bug
The single-instruction Clock Pulse interrupt (75 octal) may be a MIN or SKR instruction. The function rtc_inst increments (MIN) or decrements (SKR) the operand and tests for zero and generates a Clock Sync interrupt (74 octal) if so. However, the SDS 940 reference manual is incorrect; in the SKR case, the test should be if the result is negative.
2014-03-02 22:22:20 -06:00
Mark Emmer
5270c44117 SDS: Fix bugs in Monitor-to-User Transition
1. When transitioning from monitor to user mode with the trap enabled, the trap was latching the monitor address of the transferring branch rather than the user-mode address of the branch target.

2. When executing a BRU, BRX or BRM in monitor mode, if the effective address was in user mode, the code neglected to transition the machine to user mode. And after doing so, it is necessary to check for an armed monitor-to-user trap.

Also removed superfluous trailing blanks from lines in file.
2014-03-02 22:21:13 -06:00
Mark Pizzolato
879e2b9554 PDP11, PDP10, VAX, AltairZ80: enhanced the macro which aborts on an unexpected status from an expression with side effects to also write a message to sim_log or sim_deb if they happen to be open. 2014-03-02 14:50:43 +01:00
Mark Pizzolato
9320c56f3f PDP11, PDP10, AltairZ80: Fixed cases where assert() macro is called with an expression which has side effects and therefore wouldn't get executed if compiled with NDEBUG defined. 2014-03-02 14:50:43 +01:00
Mark Pizzolato
dbe8533352 PDP10, PDP11: Fix compiler indicated invalid check. Fixed #118 2014-03-02 14:50:42 +01:00
Mark Pizzolato
6b1dd7065f PDP11, PDP10, VAX, AltairZ80: enhanced the macro which aborts on an unexpected status from an expression with side effects to also write a message to sim_log or sim_deb if they happen to be open. 2014-03-01 17:56:12 -08:00
Mark Pizzolato
a15858315a PDP11, PDP10, AltairZ80: Fixed cases where assert() macro is called with an expression which has side effects and therefore wouldn't get executed if compiled with NDEBUG defined. 2014-03-01 17:15:10 -08:00
Jordi Guillaumes i Pons
f046887e0c PDP11,VAX: Minor change in pdp11_cr.c 2014-03-01 01:20:09 +01:00
Jordi Guillaumes i Pons
8c9a76bf5a PDP11,VAX: Fixed data overrun due to lost interrupts whith idle enabled; fixed garbage got after EOF due to unnecesary interrupt. 2014-02-28 18:58:20 +01:00
Mark Pizzolato
5217c6148b PDP10, PDP11: Fix compiler indicated invalid check. Fixed #118 2014-02-27 13:57:12 -08:00
Jordi Guillaumes i Pons
9f0261be11 PDP10: Fixed TOD drift due to truncation to milliseconds. 2014-02-25 10:47:32 +01:00
Mark Pizzolato
d0d3742504 SWTP6800: Added build support for internally contained swtbug.bin as a built-in ROM image 2014-02-24 18:13:12 -08:00
Mark Pizzolato
d81825cdba ETHER: Updated documentation for building with network support on Mac OS/X. Fix #112 2014-02-24 08:51:47 -08:00
Mark Pizzolato
44f66e90eb MUX: Added delay after closing a socket created to validate a port specification. Suggested by Mark Emmer
The network stack on Windows XP needs an opportunity to cleanup after closing a listening socket which was created but not used,
2014-02-23 08:54:00 -08:00