mirror of
https://github.com/simh/simh.git
synced 2026-02-13 19:35:20 +00:00
The makefile now works for Linux and most Unix's. However, for Solaris and MacOS, you must first export the OSTYPE environment variable: > export OSTYPE > make Otherwise, you will get build errors. 1. New Features 1.1 3.9-0 1.1.1 SCP and libraries - added *nix READLINE support (Mark Pizzolato) - added "SHOW SHOW" and "SHOW <dev> SHOW" commands (Mark Pizzolato) - added support for BREAK key on Windows (Mark Pizzolato) 1.1.2 PDP-8 - floating point processor is now enabled 2. Bugs Fixed Please see the revision history on http://simh.trailing-edge.com or in the source module sim_rev.h. 3. Status Report This is the last release of SimH for which I will be sole editor. After this release, the source is moving to a public repository: under the general editorship of Dave Hittner and Mark Pizzolato. The status of the individual simulators is as follows: 3.1 PDP-1 Stable and working; runs available software. 3.2 PDP-4/7/9/15 Stable and working; runs available software. 3.3 PDP-8 Stable and working; runs available software. 3.4 PDP-10 [KS-10 only] Stable and working; runs available software. 3.5 PDP-11 Stable and working; runs available system software. The emulation of individual models has numerous errors of detail, which prevents many diagnostics from running correctly. 3.6 VAX-11/780 Stable and working; runs available software. 3.7 MicroVAX 3900 (VAX) Stable and working; runs available software. Thanks to the kind generosity of Camiel Vanderhoeven, this simulator has been verified with AXE, the VAX architectural exerciser. 3.8 Nova Stable and working; runs available software. 3.9 Eclipse Stable and working, but not really supported. There is no Eclipse-specific software available under a hobbyist license. 3.10 Interdata 16b Stable and working, but no software for it has been found, other than diagnostics. 3.11 Interdata 32b Stable and working; runs 32b UNIX and diagnostics. 3.12 IBM 1401 Stable and working; runs available software. 3.13 IBM 1620 Hand debug only. No software for it has been found or tested. 3.14 IBM 7094 Stable and working as a stock system; runs IBSYS. The CTSS extensions have not been debugged. 3.15 IBM S/3 Stable and working, but not really supported. Runs available software. 3.16 IBM 1130 Stable and working; runs available software. Supported and edited by Brian Knittel. 3.17 HP 2100/1000 Stable and working; runs available software. Supported and edited by Dave Bryan. 3.18 Honeywell 316/516 Stable and working; runs available software. 3.19 GRI-909/99 Hand debug only. No software for it has been found or tested. 3.20 SDS-940 Hand debug only, and a few diagnostics. 3.21 LGP-30 Unfinished; hand debug only. Does not run available software, probably due to my misunderstanding of the LGP-30 operational procedures. 3.22 Altair (original 8080 version) Stable and working, but not really supported. Runs available software. 3.23 AltairZ80 (Z80 version) Stable and working; runs available software. Supported and edited by Peter Schorn. 3.24 SWTP 6800 Stable and working; runs available software. Supported and edited by Bill Beech 3.25 Sigma 32b Incomplete; more work is needed on the peripherals for accuracy. 3.26 Alpha Incomplete; essentially just an EV-5 (21164) chip emulator. 4. Suggestions for Future Work 4.1 General Structure - Multi-threading, to allow true concurrency between SCP and the simulator - Graphics device support, particularly for the PDP-1 and PDP-11 4.2 Current Simulators - PDP-1 graphics, to run Space War - PDP-11 GT40 graphics, to run Lunar Lander - PDP-15 MUMPS-15 - Interdata native OS debug, both 16b and 32b - SDS 940 timesharing operating system debug - IBM 7094 CTSS feature debug and operating system debug - IBM 1620 debug and software - GRI-909 software - Sigma 32b completion and debug - LGP-30 debug 4.3 Possible Future Simulators - Data General MV8000 (if a hobbyist license can be obtained for AOS) - Alpha simulator - HP 3000 (16b) simulator with MPE
139 lines
4.2 KiB
C
139 lines
4.2 KiB
C
/* vax_syslist.c: VAX device list
|
|
|
|
Copyright (c) 1998-2008, Robert M Supnik
|
|
|
|
Permission is hereby granted, free of charge, to any person obtaining a
|
|
copy of this software and associated documentation files (the "Software"),
|
|
to deal in the Software without restriction, including without limitation
|
|
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
and/or sell copies of the Software, and to permit persons to whom the
|
|
Software is furnished to do so, subject to the following conditions:
|
|
|
|
The above copyright notice and this permission notice shall be included in
|
|
all copies or substantial portions of the Software.
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
ROBERT M SUPNIK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
|
|
Except as contained in this notice, the name of Robert M Supnik shall not be
|
|
used in advertising or otherwise to promote the sale, use or other dealings
|
|
in this Software without prior written authorization from Robert M Supnik.
|
|
|
|
17-Oct-06 RMS Re-ordered device list
|
|
17-May-06 RMS Added CR11/CD11 support (from John Dundas)
|
|
01-Oct-2004 RMS Cloned from vax_sys.c
|
|
*/
|
|
|
|
#include "vax_defs.h"
|
|
|
|
char sim_name[] = "VAX";
|
|
|
|
extern DEVICE cpu_dev;
|
|
extern DEVICE tlb_dev;
|
|
extern DEVICE rom_dev;
|
|
extern DEVICE nvr_dev;
|
|
extern DEVICE sysd_dev;
|
|
extern DEVICE qba_dev;
|
|
extern DEVICE tti_dev, tto_dev;
|
|
extern DEVICE cr_dev;
|
|
extern DEVICE lpt_dev;
|
|
extern DEVICE clk_dev;
|
|
extern DEVICE rq_dev, rqb_dev, rqc_dev, rqd_dev;
|
|
extern DEVICE rl_dev;
|
|
extern DEVICE ry_dev;
|
|
extern DEVICE ts_dev;
|
|
extern DEVICE tq_dev;
|
|
extern DEVICE dz_dev;
|
|
extern DEVICE csi_dev, cso_dev;
|
|
extern DEVICE xq_dev, xqb_dev;
|
|
extern DEVICE vh_dev;
|
|
|
|
extern int32 sim_switches;
|
|
extern void WriteB (uint32 pa, int32 val);
|
|
extern void rom_wr_B (int32 pa, int32 val);
|
|
extern UNIT cpu_unit;
|
|
|
|
DEVICE *sim_devices[] = {
|
|
&cpu_dev,
|
|
&tlb_dev,
|
|
&rom_dev,
|
|
&nvr_dev,
|
|
&sysd_dev,
|
|
&qba_dev,
|
|
&clk_dev,
|
|
&tti_dev,
|
|
&tto_dev,
|
|
&csi_dev,
|
|
&cso_dev,
|
|
&dz_dev,
|
|
&vh_dev,
|
|
&cr_dev,
|
|
&lpt_dev,
|
|
&rl_dev,
|
|
&rq_dev,
|
|
&rqb_dev,
|
|
&rqc_dev,
|
|
&rqd_dev,
|
|
&ry_dev,
|
|
&ts_dev,
|
|
&tq_dev,
|
|
&xq_dev,
|
|
&xqb_dev,
|
|
NULL
|
|
};
|
|
|
|
/* Binary loader
|
|
|
|
The binary loader handles absolute system images, that is, system
|
|
images linked /SYSTEM. These are simply a byte stream, with no
|
|
origin or relocation information.
|
|
|
|
-r load ROM
|
|
-n load NVR
|
|
-o for memory, specify origin
|
|
*/
|
|
|
|
t_stat sim_load (FILE *fileref, char *cptr, char *fnam, int flag)
|
|
{
|
|
t_stat r;
|
|
int32 i;
|
|
uint32 origin, limit;
|
|
extern int32 ssc_cnf;
|
|
#define SSCCNF_BLO 0x80000000
|
|
|
|
if (flag) /* dump? */
|
|
return SCPE_ARG;
|
|
if (sim_switches & SWMASK ('R')) { /* ROM? */
|
|
origin = ROMBASE;
|
|
limit = ROMBASE + ROMSIZE;
|
|
}
|
|
else if (sim_switches & SWMASK ('N')) { /* NVR? */
|
|
origin = NVRBASE;
|
|
limit = NVRBASE + NVRSIZE;
|
|
ssc_cnf = ssc_cnf & ~SSCCNF_BLO;
|
|
}
|
|
else {
|
|
origin = 0; /* memory */
|
|
limit = (uint32) cpu_unit.capac;
|
|
if (sim_switches & SWMASK ('O')) { /* origin? */
|
|
origin = (int32) get_uint (cptr, 16, 0xFFFFFFFF, &r);
|
|
if (r != SCPE_OK)
|
|
return SCPE_ARG;
|
|
}
|
|
}
|
|
while ((i = getc (fileref)) != EOF) { /* read byte stream */
|
|
if (origin >= limit) /* NXM? */
|
|
return SCPE_NXM;
|
|
if (sim_switches & SWMASK ('R')) /* ROM? */
|
|
rom_wr_B (origin, i); /* not writeable */
|
|
else WriteB (origin, i); /* store byte */
|
|
origin = origin + 1;
|
|
}
|
|
return SCPE_OK;
|
|
}
|
|
|