1
0
mirror of https://github.com/simh/simh.git synced 2026-05-01 05:48:35 +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 @@
/* gri_defs.h: GRI-909 simulator definitions
Copyright (c) 2001-2004, Robert M. Supnik
Copyright (c) 2001-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,7 @@
used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from Robert M Supnik.
12-Jan-08 RMS Added GRI-99 support
25-Apr-03 RMS Revised for extended file support
19-Sep-02 RMS Fixed declarations in gdev structure
@@ -37,17 +38,12 @@
(SOV). Answer: signed and unsigned.
3. Ref Manual documents a ROM-subroutine multiply operator and mentions
but does not document a "fast multiply"; MITCS uses an extended
arithmetic operator with multiply, divide, and shift. The behavior
of the extended arithmetic operator can only be inferred partially;
the shift is never used, and there is no indication of how divide
overflow is handled. Answer: EAO is a package of ROM subroutines
with just four functions: multiply, divide, arithmetic right shift,
and normalize.
arithmetic operator with multiply, divide, and shift. Answer: EAO
is a package of ROM subroutines with just four functions: multiply,
divide, arithmetic right shift, and normalize.
4. Is SOV testable even if the FOA is not ADD? Answer: AOV and SOV are
calculated regardless of the function.
5. How does the EAO handle divide overflow? Answer: set link.
6. What are the other EAO functions beside multiply and divide?
Answer: arithmetic right shift, normalize.
*/
#include "sim_defs.h" /* simulator defns */
@@ -69,6 +65,7 @@
/* Architectural constants */
#define SIGN 0100000 /* sign */
#define INDEX 0100000 /* indexed (GRI-99) */
#define DMASK 0177777 /* data mask */
#define CBIT (DMASK + 1) /* carry bit */
@@ -105,9 +102,20 @@
#define U_AO 013 /* arith out */
#define U_EAO 014 /* ext arith */
#define U_MSR 017 /* machine status */
#define U_XR 022 /* GRI-99: idx reg */
#define U_GTRP 023 /* GRI-99: alt trap */
#define U_BSW 024 /* byte swap */
#define U_BPK 025 /* byte pack */
#define U_BCP1 026 /* byte compare 1 */
#define U_BCP2 027 /* byte compare 2 */
#define U_GR 030 /* hex general regs */
#define U_CDR 055 /* card reader */
#define U_CADR 057
#define U_DWC 066 /* disk */
#define U_DCA 067
#define U_DISK 070
#define U_LPR 071 /* line printer */
#define U_CAS 074 /* casette */
#define U_RTC 075 /* clock */
#define U_HS 076 /* paper tape */
#define U_TTY 077 /* console */
@@ -173,8 +181,8 @@ struct gdev {
#define MSR_SOV (1u << MSR_V_SOV)
#define MSR_AOV (1u << MSR_V_AOV)
#define MSR_GET_FOA(x) (((x) >> MSR_V_FOA) & MSR_M_FOA)
#define MSR_PUT_FOA(x,n) (((x) & ~(MSR_M_FOA << MSR_V_FOA)) | \
(((n) & MSR_M_FOA) << MSR_V_FOA))
#define MSR_PUT_FOA(x,n) (((x) & ~(MSR_M_FOA << MSR_V_FOA)) | \
(((n) & MSR_M_FOA) << MSR_V_FOA))
#define MSR_RW (MSR_BOV|MSR_L|MSR_FOA|MSR_SOV|MSR_AOV)
/* Real time clock */
@@ -201,14 +209,24 @@ struct gdev {
#define INT_V_TTI 1 /* console in */
#define INT_V_HSP 2 /* paper tape punch */
#define INT_V_HSR 3 /* paper tape reader */
#define INT_V_LPR 5 /* line printer */
#define INT_V_CDR 7 /* card reader */
#define INT_V_CASW 9 /* casette */
#define INT_V_CASR 10
#define INT_V_RTC 11 /* clock */
#define INT_V_DISK 14 /* disk */
#define INT_V_NODEF 16 /* nodefer */
#define INT_V_ON 17 /* enable */
#define INT_TTO (1u << INT_V_TTO)
#define INT_TTI (1u << INT_V_TTI)
#define INT_HSP (1u << INT_V_HSP)
#define INT_HSR (1u << INT_V_HSR)
#define INT_LPR (1u << INT_V_LPR)
#define INT_CDR (1u << INT_V_CDR)
#define INT_CASW (1u << INT_V_CAS1)
#define INT_CASR (1u << INT_V_CAS2)
#define INT_RTC (1u << INT_V_RTC)
#define INT_DISK (1u << INT_V_DISK)
#define INT_NODEF (1u << INT_V_NODEF)
#define INT_ON (1u << INT_V_ON)
#define INT_PENDING (INT_ON | INT_NODEF)
@@ -220,4 +238,9 @@ struct gdev {
#define VEC_TTI 0014 /* console in */
#define VEC_HSP 0017 /* paper tape punch */
#define VEC_HSR 0022 /* paper tape reader */
#define VEC_LPR 0033 /* line printer */
#define VEC_CDR 0033 /* card reader */
#define VEC_CASW 0044 /* casette */
#define VEC_CASR 0047
#define VEC_DISK 0055 /* disk */
#define VEC_RTC 0100 /* clock */