Commit graph

4 commits

Author SHA1 Message Date
Seth Morabito
1a3e5af755 3b2: Refactoring in preparation for Rev 3
Refactor in preparation for the addition of a Rev 3 simulator for the
3B2/1000 system.

This change also includes a full cleanup of the rat's-nest of includes
and externs that plagued the 3B2 simulator and made it difficult to
understand and maintain. Headers are now required in the following
order:

  compilation unit -> "3b2_defs.h" -> {... dependencies ...}

Finally, HELP has been added to the CPU device.
2020-03-26 15:12:08 -07:00
Seth Morabito
6554e0a4ab 3b2: Fix Windows build warnings
Fixed several possible loss of precision warnings when implicitly
casting t_uint64 to uint32.
2019-07-20 20:05:32 -07:00
Seth Morabito
292898e9f4 3b2: Fix critical MAU issues
- A bug in the Square Root implementation could lead to
  an infinite loop.

- Incorrect rounding was used when MAU destination register
  was single or double word.

- Fix Coverity-discovered issues.
2019-07-19 16:34:32 -07:00
Seth Morabito
571c8f96a5 3b2: WE32106 Math Acceleration Unit (MAU)
This change adds support for the WE32106 Math Acceleration Unit (MAU).
The WE32106 is an IEEE-754 1985 compatible floating point math
acceleration unit that was an optional component on the 3B2/310 and
3B2/400.

The MAU is implemented using software floating point routines.  As
always, there may be bugs, but the MAU currently passes extensive
floating point tests with exactly the same results as a real 3B2/400
equipped with a physical MAU, so I hope these are few.
2019-06-29 08:45:27 -07:00