mirror of
https://github.com/simh/simh.git
synced 2026-04-28 20:57:26 +00:00
Notes For V3.5-0
The source set has been extensively overhauled. For correct viewing, set Visual C++ or Emacs to have tab stops every 4 characters. 1. New Features in 3.4-1 1.1 All Ethernet devices - Added Windows user-defined adapter names (from Timothe Litt) 1.2 Interdata, SDS, HP, PDP-8, PDP-18b terminal multiplexors - Added support for SET <unit>n DISCONNECT 1.3 VAX - Added latent QDSS support - Revised autoconfigure to handle QDSS 1.4 PDP-11 - Revised autoconfigure to handle more casees 2. Bugs Fixed in 3.4-1 2.1 SCP and libraries - Trim trailing spaces on all input (for example, attach file names) - Fixed sim_sock spurious SIGPIPE error in Unix/Linux - Fixed sim_tape misallocation of TPC map array for 64b simulators 2.2 1401 - Fixed bug, CPU reset was clearing SSB through SSG 2.3 PDP-11 - Fixed bug in VH vector display routine - Fixed XU runt packet processing (found by Tim Chapman) 2.4 Interdata - Fixed bug in SHOW PAS CONN/STATS - Fixed potential integer overflow exception in divide 2.5 SDS - Fixed bug in SHOW MUX CONN/STATS 2.6 HP - Fixed bug in SHOW MUX CONN/STATS 2.7 PDP-8 - Fixed bug in SHOW TTIX CONN/STATS - Fixed bug in SET/SHOW TTOXn LOG 2.8 PDP-18b - Fixed bug in SHOW TTIX CONN/STATS - Fixed bug in SET/SHOW TTOXn LOG 2.9 Nova, Eclipse - Fixed potential integer overflow exception in divide
This commit is contained in:
committed by
Mark Pizzolato
parent
ec60bbf329
commit
b7c1eae41f
@@ -1,6 +1,6 @@
|
||||
/* vax_sys.c: VAX simulator interface
|
||||
|
||||
Copyright (c) 1998-2004, Robert M Supnik
|
||||
Copyright (c) 1998-2005, 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"),
|
||||
@@ -19,11 +19,11 @@
|
||||
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
|
||||
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.
|
||||
|
||||
01-Oct-2004 RMS Cloned from vax_sys.c
|
||||
01-Oct-2004 RMS Cloned from vax_sys.c
|
||||
*/
|
||||
|
||||
#include "vax_defs.h"
|
||||
@@ -55,41 +55,42 @@ 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,
|
||||
&tti_dev,
|
||||
&tto_dev,
|
||||
&csi_dev,
|
||||
&cso_dev,
|
||||
&clk_dev,
|
||||
&dz_dev,
|
||||
&vh_dev,
|
||||
&lpt_dev,
|
||||
&rl_dev,
|
||||
&rq_dev,
|
||||
&rqb_dev,
|
||||
&rqc_dev,
|
||||
&rqd_dev,
|
||||
&ry_dev,
|
||||
&ts_dev,
|
||||
&tq_dev,
|
||||
&xq_dev,
|
||||
&xqb_dev,
|
||||
NULL };
|
||||
|
||||
&cpu_dev,
|
||||
&tlb_dev,
|
||||
&rom_dev,
|
||||
&nvr_dev,
|
||||
&sysd_dev,
|
||||
&qba_dev,
|
||||
&tti_dev,
|
||||
&tto_dev,
|
||||
&csi_dev,
|
||||
&cso_dev,
|
||||
&clk_dev,
|
||||
&dz_dev,
|
||||
&vh_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
|
||||
-r load ROM
|
||||
-n load NVR
|
||||
-o for memory, specify origin
|
||||
*/
|
||||
|
||||
t_stat sim_load (FILE *fileref, char *cptr, char *fnam, int flag)
|
||||
@@ -98,27 +99,33 @@ t_stat r;
|
||||
int32 i;
|
||||
uint32 origin, limit;
|
||||
extern int32 ssc_cnf;
|
||||
#define SSCCNF_BLO 0x80000000
|
||||
#define SSCCNF_BLO 0x80000000
|
||||
|
||||
if (flag) return SCPE_ARG; /* dump? */
|
||||
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) return SCPE_NXM; /* NXM? */
|
||||
if (sim_switches & SWMASK ('R')) /* ROM? */
|
||||
rom_wr_B (origin, i); /* not writeable */
|
||||
else WriteB (origin, i); /* store byte */
|
||||
origin = origin + 1; }
|
||||
if (flag) return SCPE_ARG; /* dump? */
|
||||
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) return SCPE_NXM; /* 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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user