Commit graph

3782 commits

Author SHA1 Message Date
Mark Pizzolato
3b4bc61fdf MicroVAX1, MicroVAX2: Compiler/Linker suggested cleanup 2015-01-08 22:10:31 -08:00
Mark Pizzolato
8659281aaf SCP: Changed sim_poll_kbd() to set the global stop_cpu when the WRU character has been received.
Thus behaving consistently with platforms which learn about the WRU character by the delivery of a SIGINT.
2015-01-08 22:10:31 -08:00
Mark Pizzolato
d615bd0f58 SCP: Only report DO file context when run_cmd completes if the completion status is not a simulator specific error code and not due to a STEP, EXPECT or STOP completion.
The commands which operate through run_cmd (GO, STEP, CONTINUE, BOOT, RUN) will all exit with a status which is NOT SCPE_OK.  Most of the exit status values will be 100% normal and not indicative of a true error, so producing error message context is not necessary or desired.
2015-01-08 22:10:31 -08:00
Mark Pizzolato
3fe61c53a5 SCP: Provide an API to display alternate error message text while returning SCPE status. 2015-01-08 22:10:30 -08:00
Mark Pizzolato
bb42ce6486 TAPE: Simplify range expression to avoid cast size reduction 2015-01-08 22:10:30 -08:00
Mark Pizzolato
8d11de76c1 VAX: Properly inline memory reference functions for performance. Fix #169 2015-01-08 22:10:30 -08:00
Mark Pizzolato
bd50637b18 BESM6: Working calibrated clock which also supports idling
BESM6: Single instruction calibration and step cleanup
2015-01-08 22:09:59 -08:00
Leo Broukhis
76cdf0fd10 BESM6: Got rid of ftw(); the font file should be provided as a build option. 2015-01-08 22:09:59 -08:00
Leo Broukhis
a50bd68ce5 BESM6: Using sim_fwrite for formatting. 2015-01-08 22:09:48 -08:00
Mark Pizzolato
e37d0658fa SCP: Fix clock initialization in AIO_INIT when __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 are not available. 2015-01-08 19:51:01 -08:00
Mark Pizzolato
11a72cef93 SCP: Cleanup redundant external declaration in sim_tmxr.h (found by Dave Bryan) 2015-01-08 06:17:40 -08:00
Mark Pizzolato
ecbb20f1a9 HP2100: Latest updates: 64-bit clean compiles and revised BOOT support from Dave Bryan
265. PROBLEM:  Compiling the HP simulator for 64-bit addressing produces many
     conversion warnings.

     OBSERVATION:  Compiling the simulator and defining USE_INT64 and USE_ADDR64
     with implicit conversion warnings enabled reveals a number of places where
     assumptions were made that addresses would always be 32 bits.  This is a
     reasonable assumption, as there are no devices (CPU or peripherals) that
     can handle gigabyte addressing.  Still, many of these assumptions are not
     necessary, and some future peripheral simulator may exceed this limit.

     CAUSE:  Future expansion to 64-bit addressing was not envisioned.

     RESOLUTION:  Modify source files to ensure that "t_addr" and "t_value"
     types are used instead of "uint32" and "int32" types where addressing and
     data values may be 64 bits.  Also ensure that valid conversions to smaller
     sizes use explicit casts.

266. PROBLEM:  BOOT devices require a duplicate S-register declaration.

     OBSERVATION:  All of the peripheral devices that support the BOOT command
     set the select code and other parameters into the S register during the
     boot process.  This direct register access requires an external declaration
     that duplicates the one in the full CPU declarations file (hp2100_cpu.h).
     A better method that avoids the duplicate declaration would be for the
     "ibl_copy" routine to modify the S register on behalf of the caller.

     CAUSE:  Poor original implementation.

     RESOLUTION:  Modify "ibl_copy" (hp2100_cpu.c) to take two additional
     parameters that clear and set bits, respectively, in the S register on
     behalf of the caller.  Modify the boot routines for the CPU, DA, DP, DQ,
     DR, DS, IPL, MS, and PTR devices to use the new parameters instead of
     modifying the S register directly.
2015-01-08 03:39:22 -08:00
Mark Pizzolato
f8501c2ec2 DOC: Updated simh.doc and sim_magtape.doc to reflect recent revisions to tape support (from Dave Bryan) 2015-01-08 03:34:42 -08:00
Mark Pizzolato
9f9c983688 SCP: Fix debug setup info displayed by SHOW SEND and SHOW EXPECT 2015-01-06 12:44:24 -08:00
Mark Pizzolato
470b9b586a SCP: Fix EXPECT matching logic for non-regex strings to have enough room to buffer all of potential match data plus a NUL byte. 2015-01-06 11:25:55 -08:00
Mark Pizzolato
fb7b53cd07 SCP: Add info displayed in SHOW EXPECT and SHOW SEND to advise how SEND & EXPECT debugging is enabled 2015-01-06 08:27:03 -08:00
Mark Pizzolato
b8940f4e32 TMXR: Add default debug bits for SEND/EXPECT operations 2015-01-06 08:24:44 -08:00
Mark Pizzolato
7a2600d6e1 SCP: EXPECT debug fix to avoid invalid memory reference if a expect structure doesn have a device pointer. Corrected comments. From Mark Emmer. 2015-01-06 06:31:05 -08:00
Mark Pizzolato
bc8ee69aba SCP: better parsing support for command files which contain UTF-8 data in SEND/EXPECT strings 2015-01-05 16:53:54 -08:00
Mark Pizzolato
aae9e55a39 SCP: More allow command files to contain UTF-8 data.
- Provide a sim_islower(), sim_isalpha(), sim_isprinit(), sim_isdigit(), sim_isgraph(), sim_isalnum()  which make sure that the character being examined as an unsigned char.
2015-01-05 14:08:03 -08:00
Mark Pizzolato
256bbdddc9 SCP: Allow command files to contain UTF-8 data.
- Ignore a UTF_BOM sequence at the beginning of command files.
- Provide a sim_isspace() which makes sure that isspace only considers the character being examined as an unsigned char.
2015-01-04 06:59:56 -08:00
Mark Pizzolato
fe43187cde ETHER: Fix compile when threaded network I/O is disabled on OS X (found by Martin Vorländer) 2015-01-02 05:01:32 -08:00
Mark Pizzolato
50e57a85c1 MicroVAX1, MicroVAX2: Compiler/Linker suggested cleanup 2015-01-02 04:37:11 -08:00
Mark Pizzolato
e932324098 SCP: Changed sim_poll_kbd() to set the global stop_cpu when the WRU character has been received.
Thus behaving consistently with platforms which learn about the WRU character by the delivery of a SIGINT.
2015-01-01 17:05:41 -08:00
Leo Broukhis
3ddb9e9929 BESM6: Reverted IO scheduling to model time; the time unit is 100 ns. 2014-12-31 17:26:34 -08:00
Mark Pizzolato
99a7e65876 SCP: Only report DO file context when run_cmd completes if the completion status is not a simulator specific error code and not due to a STEP, EXPECT or STOP completion.
The commands which operate through run_cmd (GO, STEP, CONTINUE, BOOT, RUN) will all exit with a status which is NOT SCPE_OK.  Most of the exit status values will be 100% normal and not indicative of a true error, so producing error message context is not necessary or desired.
2014-12-31 15:04:52 -08:00
Mark Pizzolato
6ec6b6ab1f SCP: Provide an API to display alternate error message text while returning SCPE status. 2014-12-31 14:32:10 -08:00
Mark Pizzolato
813d8f6290 TAPE: Simplify range expression to avoid cast size reduction 2014-12-31 13:53:48 -08:00
Mark Pizzolato
8cbe4ba0bd VAX: Properly inline memory reference functions for performance. Fix #169 2014-12-31 13:25:49 -08:00
Mark Pizzolato
db44518808 BESM6: Convert to simh calibrated clocks and idling 2014-12-31 08:39:40 -08:00
Mark Pizzolato
aa60cc72ad BESM6: Added makefile display of SDL_ttf components being used 2014-12-31 08:08:02 -08:00
Leo Broukhis
871b19cf8b BESM6: Moved 'formatdisk' functionality to disk_attach(),
fixed a typo in TTY input processing.
2014-12-31 00:49:43 -08:00
Leo Broukhis
9568d1c1df Merge branch 'master' of https://github.com/leobru/simh 2014-12-30 18:57:31 -08:00
Leo Broukhis
8a5d22bd60 BESM6: No need for the SDL_main trick in SDL1. 2014-12-30 18:56:41 -08:00
Mark Pizzolato
82d5b01f84 BESM6: besm6_punch migrate to use sim_fio API to set a fifo to non-blocking 2014-12-30 18:56:09 -08:00
Mark Pizzolato
b611aa2fba Merge remote-tracking branch 'simh/master' 2014-12-30 18:51:47 -08:00
Mark Pizzolato
33781be23b SCP: Added support fo set a fifo opened with sim_fopen() to be non-blocking. 2014-12-30 18:48:42 -08:00
Mark Pizzolato
4381f9acc1 SCP: Added definition of SIM_INLINE when compiling with MSVC, gcc and clang 2014-12-30 18:46:43 -08:00
Mark Pizzolato
76dd31ae02 BESM6: Compiler suggested cleanups (MSVC). 2014-12-30 17:52:13 -08:00
Mark Pizzolato
2819ff634e BESM6: FIx makefile conditional logic detecting available SDL components 2014-12-30 17:49:36 -08:00
Mark Pizzolato
54ec99f95e Visual Studio Projects: Added BESM6 project 2014-12-30 13:43:27 -08:00
Mark Pizzolato
17f6132352 alpha: Compiler suggested cleanups 2014-12-30 11:57:19 -08:00
Leo Broukhis
cc33257836 BESM6: Removed tabs, reindented, removed GNU extensions. 2014-12-30 11:42:52 -08:00
Leo Broukhis
b4eeaa77de BESM6: Converted files to CRLF format
Also added support for loading such files, and a few tests.
2014-12-30 00:41:31 -08:00
Leo Broukhis
659600ff59 BESM6: Added target 'besm6' to makefile; added new files in the BESM6 subdirectory. 2014-12-29 21:13:00 -08:00
Mark Pizzolato
de9fc84fd4 SCP: added flexibility to search specifier parsing to fallback to register value format if the VM supplied parse_sym() doesn't handle the value provided. 2014-12-29 14:03:43 -08:00
Mark Pizzolato
76009709b1 VAX: Minimizing extra work while preparing to idle and attempt to make idle transitions closer to instruction execution costs. 2014-12-29 12:02:21 -08:00
Mark Pizzolato
9e1e32584b SCP: Avoid redundant log and debug output 2014-12-29 03:41:32 -08:00
Mark Pizzolato
b7456e988f SCP: Fix log and debug file reference count management. 2014-12-29 03:40:56 -08:00
Mark Pizzolato
5cb8f4686c VAX780, VAX739, VAX759, VAX8600: Merge branch 'VAX-11-BootBlock-Fixup' - Generic VMB.EXE for *nix VAX operating systems
The native VMB.EXE program historically supported a Boot Block oriented
 boot if Bit 3 of the parameter register (R5) was set when VMB was invoked.
 This Boot Block boot operation reads sector 0 into memory and starts
 execution at offset 2 of the data block in memory.
 When portitions of VMB were migrated into ROM to support the earliest
 MicroVAX system (MicroVAX I) and all subsequent ROM based VMB versions
 the concept of Boot Block booting was extended in these ROM VMB
 implementations.  The change in boot block booting functionality included
 several features:
   1) If a normal boot attempt to a device failed (due to VMB not being
      able to locate a secondary bootstrap program), a boot block boot is
      automatically attempted.  If the Bit 3 of R5 was set, then the
      initial search for a secondary boot block was avoided and a boot
      block boot was immediately attempted.
   2) When performing a boot block boot, the sector 0 contents are examined
      and if these contents conform to the pattern defined for ROM based
      (PRA0) booting, the ROM format Offset, Size, and Starting address
      information is used directly by VMB to load a program into memory
      and control is transferred to that program.  If the contents of
      sector 0 do not fit the pattern required for ROM based booting, then
      the code in sector 0 is executed directly starting at offset 2,
      the same as was originally done with the non ROM based VMB versions.
      Note that this extended behavior allows sector 0 to contain very little
      information and quite possibly no actual boot code.
 Developers of alternate operating systems for VAX computers noticed the ROM
 based boot block behavior and changed their installation media AND the disk
 structures to only provide the minimal boot information required on the
 systems with VMB installed in ROM.

 Since, when this active development of these alternate operating systems for
 VAX computers was happening, the vast majority of development and new system
 deployments were to hardware which had ROM base VMB, no one noticed that
 older systems which booted with the non ROM based VMB could no longer boot
 from new install media or disks formatted with these operating systems.

 This patch addeds the ROM based VMB boot block boot functionality to the
 original dynamically loaded VMB.EXE used by the older systems to boot.

 The patch overwrites some VMB code which exists to support NVAX(1302) and
 Neon-V(1701) systems.  If simh simulators for these systems are ever built
 an alternate location must be found to accomodate this extended logic
2014-12-27 15:21:17 -08:00