1
0
mirror of https://github.com/simh/simh.git synced 2026-04-30 21:38:32 +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 @@
/* hp2100_fp1.c: HP 1000 multiple-precision floating point routines
Copyright (c) 2005-2006, J. David Bryan
Copyright (c) 2005-2008, J. David Bryan
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,8 @@
in advertising or otherwise to promote the sale, use or other dealings in
this Software without prior written authorization from the author.
10-May-08 JDB Fixed uninitialized return in fp_accum when setting
19-Mar-08 JDB Reworked "complement" to avoid inlining bug in gcc-4.x
01-Dec-06 JDB Reworked into generalized multiple-precision ops for FPP
12-Oct-06 JDB Altered x_trun for F-Series FFP compatibility
Added F-Series ..TCM FFP helpers
@@ -396,7 +398,7 @@ return bits_lost;
static t_int64 unpack_int (OP packed, OPSIZE precision)
{
int32 i;
uint32 i;
t_uint64 unpacked = 0;
if (precision == in_s)
@@ -438,11 +440,6 @@ unpacked.mantissa = /* unpack and mask manti
switch (precision) {
case in_s:
case in_d:
unpacked.exponent = 0; /* integers don't use exponent */
break;
case fp_f:
case fp_x:
case fp_t:
@@ -457,6 +454,10 @@ switch (precision) {
break;
case fp_a: /* no action for value in accum */
case in_s: /* integers don't use exponent */
case in_d: /* integers don't use exponent */
default:
unpacked.exponent = 0;
break;
}
@@ -657,9 +658,12 @@ return overflow;
static void complement (FPU *result)
{
result->mantissa = -result->mantissa; /* negate mantissa */
if (result->mantissa == FP_MAXNMANT) /* maximum negative? */
lsrx (result, 1); /* correct it */
if (result->mantissa == FP_MAXNMANT) { /* maximum negative? */
result->mantissa = FP_ONEHALF; /* complement of -1.0 * 2 ^ n */
result->exponent = result->exponent + 1; /* is 0.5 * 2 ^ (n + 1) */
}
else
result->mantissa = -result->mantissa; /* negate mantissa */
return;
}
@@ -1278,7 +1282,7 @@ return overflow;
OP fp_accum (const OP *operand, OPSIZE precision)
{
OP result;
OP result = NOP;
uint16 opcode = (uint16) precision | SIGN; /* add special mode bit */
if (operand)