1
0
mirror of https://github.com/open-simh/simh.git synced 2026-04-26 04:07:23 +00:00

Notes For V3.8

The makefile now works for Linux and most Unix's. Howevr, 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.8-0

1.1.1 SCP and Libraries

- BREAK, NOBREAK, and SHOW BREAK with no argument will set, clear, and
  show (respectively) a breakpoint at the current PC.

1.2 GRI

- Added support for the GRI-99 processor.

1.3 HP2100

- Added support for the BACI terminal interface.
- Added support for RTE OS/VMA/EMA, SIGNAL, VIS firmware extensions.

1.4 Nova

- Added support for 64KW memory (implemented in third-party CPU's).

1.5 PDP-11

- Added support for DC11, RC11, KE11A, KG11A.
- Added modem control support for DL11.
- Added ASCII character support for all 8b devices.

2. Bugs Fixed

Please see the revision history on http://simh.trailing-edge.com or
in the source module sim_rev.h.
This commit is contained in:
Bob Supnik
2008-06-24 14:21:00 -07:00
committed by Mark Pizzolato
parent 3cb7c60d5d
commit 59aa4a73b1
136 changed files with 57039 additions and 10915 deletions

View File

@@ -1,6 +1,6 @@
/* nova_defs.h: NOVA/Eclipse simulator definitions
Copyright (c) 1993-2005, Robert M. Supnik
Copyright (c) 1993-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"),
@@ -23,6 +23,10 @@
used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from Robert M Supnik.
04-Jul-07 BKR BUSY/DONE/INTR "convenience" macros added,
INT_TRAP added for Nova 3, 4 trap instruction handling,
support for 3rd-party 64KW Nova extensions added,
removed STOP_IND_TRP definition due to common INT/TRP handling
14-Jan-04 BKR Added support for QTY and ALM
22-Nov-03 CEO Added support for PIT device
19-Jan-03 RMS Changed CMASK to CDMASK for Apple Dev kit conflict
@@ -46,27 +50,41 @@
#include "sim_defs.h" /* simulator defns */
/* Simulator stop codes */
#define STOP_RSRV 1 /* must be 1 */
#define STOP_HALT 2 /* HALT */
#define STOP_IBKPT 3 /* breakpoint */
#define STOP_IND 4 /* indirect loop */
#define STOP_IND_INT 5 /* ind loop, intr */
#define STOP_IND_TRP 6 /* ind loop, trap */
#define STOP_IND_INT 5 /* ind loop, intr or trap */
/* Memory */
#if defined (ECLIPSE)
#define MAXMEMSIZE 1048576 /* max memory size */
#else
#define MAXMEMSIZE 32768 /* max memory size */
#endif
#define AMASK 077777 /* logical addr mask */
/*----------------------*/
/* Eclipse */
/*----------------------*/
#define MAXMEMSIZE 1048576 /* max memory size in 16-bit words */
#define PAMASK (MAXMEMSIZE - 1) /* physical addr mask */
#define MEM_ADDR_OK(x) (((uint32) (x)) < (uint32) MEMSIZE)
#else
/*----------------------*/
/* Nova */
/*----------------------*/
#define MAXMEMSIZE 65536 /* max memory size in 16-bit words: 32KW = DG max, */
/* 64 KW = 3rd-party extended memory feature */
#define DFTMEMSIZE 32768 /* default/initial mem size */
#define MEM_ADDR_OK(x) (((uint32) (x)) < (uint32) MEMSIZE)
#endif
#define MEMSIZE (cpu_unit.capac) /* actual memory size */
#define A_V_IND 15 /* ind: indirect */
#define A_IND (1 << A_V_IND)
#define MEM_ADDR_OK(x) (((uint32) (x)) < MEMSIZE)
/* Architectural constants */
@@ -82,8 +100,11 @@
#define STK_JMP 3 /* stack jmp @ */
#define TRP_SAV 046 /* trap saved PC */
#define TRP_JMP 047 /* trap jmp @ */
#define AUTO_INC 020 /* start autoinc */
#define AUTO_TOP 037 /* top of autoindex */
#define AUTO_DEC 030 /* start autodec */
#define AUTO_INC 020 /* start autoinc */
/* Instruction format */
@@ -235,6 +256,7 @@ typedef struct {
#define INT_V_STK 17 /* stack overflow */
#define INT_V_NO_ION_PENDING 18 /* ion delay */
#define INT_V_ION 19 /* interrupts on */
#define INT_V_TRAP 20 /* trap instruction */
#define INT_PIT (1 << INT_V_PIT)
#define INT_DKP (1 << INT_V_DKP)
@@ -256,6 +278,7 @@ typedef struct {
#define INT_ION (1 << INT_V_ION)
#define INT_DEV ((1 << INT_V_STK) - 1) /* device ints */
#define INT_PENDING INT_ION+INT_NO_ION_PENDING
#define INT_TRAP (1 << INT_V_TRAP)
/* PI disable bits */
@@ -279,6 +302,18 @@ typedef struct {
/* #define PI_CAS 0000040 */
/* #define PI_ADCV 0000002 */
/* Macros to clear/set BUSY/DONE/INTR bits */
#define DEV_SET_BUSY( x ) dev_busy = dev_busy | (x)
#define DEV_CLR_BUSY( x ) dev_busy = dev_busy & (~(x))
#define DEV_SET_DONE( x ) dev_done = dev_done | (x)
#define DEV_CLR_DONE( x ) dev_done = dev_done & (~(x))
#define DEV_UPDATE_INTR int_req = (int_req & ~INT_DEV) | (dev_done & ~dev_disable)
#define DEV_IS_BUSY( x ) (dev_busy & (x))
#define DEV_IS_DONE( x ) (dev_done & (x))
/* Function prototypes */
int32 MapAddr (int32 map, int32 addr);