1BSVC Changes
2============
3
42.2 to 2.1 (Apr 30, 2015)
5-------------------------
6BSVC 2.2 is the first major release since 1998, and is an update for modern
7systems.  This is a "first pass" release to get BSVC running on modern host
8machines.  Specific changes include:
9
10* Relicensing under the GPL v2.1.
11* Converting the assembler to ANSI C11, adding function prototypes, and
12  reformatting the source code.
13* Converting the rest of the system to ANSI C++ and starting to use C++ 11
14  features (auto, lambdas, etc).
15* Replacing some custom linked-list code with STL containers.
16* Replacing most uses of C-style strings with std::string objects.
17* Reformatting the C++ code with 'clang-format' and removing lots of extraneous
18  comments.  Copyright information is now centralized in a file in the
19  distribution top-level.
20* Replaced the recursive Makefile build system with a single non-recursive
21  Makefile.  The build system now does real dependency analysis.
22* Many code-cleanups throughout the system: it now builds C++ code with -Wall
23  and -Werror.
24* Removing Makefiles for obsolete platforms (Ultrix, HP-UX, etc).
25* The sim68000 and sim68360 code was reogranized under a single directory tree
26  and now share devices and the S-record loader.
27
28Additionally, several serious bugs in the simulator were fixed:
29
30* Updating for 64 bit host systems: Negative offsets in address register
31  indirect with displacement mode would cause bus errors on systems with
32  64-bit 'unsigned long', since the sign-extension code assumed 32-bit longs
33  on the host and the result did not overflow properly (thus yielding an
34  'address' outside of the 32-bit address space).
35  Fixed by using a properly sized type for simulator addresses.
36* Events were being lost in the event handling code due to the 'myIterations'
37  variable quickly growing so large that the number of microseconds to use when
38  searching for the next event to handle became negative.
39  Fixed by rewriting the event handler in terms of nano-seconds and clamping
40  the minimum time delta per Check() invocation to 1ns.
41
42The system is now working well enough that it can run the distributed samples,
43as well as boot a port of the Xinu (http://www.xinu.cs.purdue.edu) operating
44system.
45
46### Administrivia
47
48BSVC hosting has shifted to github and, as stated, the system has been
49relicensed under the GPL v2.1.
50
51Additionally, the mailing list has moved and been split into separate 'users'
52and 'announce' lists:
53
54* bsvc-announce@googlegroups.com:
55   [Announcements (low traffic)](https://groups.google.com/forum/#!forum/bsvc-announce)
56* bsvc-users@googlegroups.com:
57   [Questions and general discussion](https://https://groups.google.com/forum/#!forum/bsvc-users)
58
592.0 to 2.1 (11/08/98)
60---------------------
61* Some minor changes were made to the user interface to support Tcl/Tk 8.0
62* Some minor changes were made to the C++ code to support compiling with GCC
63  2.8.1
64* Jorand Didier's Motorola 68360 (sim68360) simulator has been added
65  to the distribution.  It doesn't contain all of the 68360 devices
66  but it does provide a CPU32 based simulator.
67* Xavier Plasencia's timer device has been added to the 68000
68  simulator (modeled after the 68230 PI/T timer)
69* Fixed a bug with the MOVEA instruction in the Motorola simulators
70  - Thanks to Jorand Didier for pointing this problem out to me
71* Added support for the ABCD and MOVEP instructions to the
72  Motorola simulators
73  - Thanks to Trappel Martin and Xavier Plasencia for this code
74* Fixed bug in 68000 assembler when using $FFFF as an immediate operand
75  - Thanks to Craig A. Haynal for pointing this problem out to me
76
77
782.0 Beta 1 to 2.0 (08/08/96)
79----------------------------
80* Modified the BSVC C++ framework to use "standard" C++ libraries
81  (STL).  Most of this work was done by Seunghee Lee so the
82  framework could be ported to Windows 95.
83* Some minor changes were made to the user interface to support
84  running it under Tcl/Tk for Windows 95.  This work was done
85  by Seunghee Lee.
86* Modified Sim68000 to work with the new version of the C++ framework
87* Removed the Hector 1600 and MIL-STD-1750A simulators until they
88  can be ported to the new framework
89* Fixed a problem with the predecrement and postincrement addressing
90  modes when the stack pointer and a byte size operation was specified
91  - Thanks to Jorand Didier for pointing this problem out to me
92
931.0.4 to 2.0 Beta 1 (02/10/96)
94-------------------------------
95* User interface has undergone a major revision
96* Oliver M. Kellogg's MIL-STD-1750A simulator has been added
97  to the distribution
98* Breakpoints set using Tutor under Sim68000 work correctly
99* Support for GCC 2.7.2 and Tk 4.0 added
100
1011.0.3 to 1.0.4 (07/31/95)
102-------------------------
103* Stack pointer bug in the ADDA, SUBA, CMPA, and LEA instructions fixed
104  - Thanks to James Yuill at NCSU for reporting this bug
105
1061.0.2 to 1.0.3 (07/25/95)
107-------------------------
108* Bug in Sim68000's DIVS, BCHG, BCLR, BSET, and BTST instructions fixed
109  - Thanks to Robert Woodside at NCSU for reporting the DIVS bug
110  - Thanks to John R Potter at Penn State for reporting Bit instrution bug
111* M68681 interrupt level bug fixed
112* Sim68000 interrupt servicing modified so breakpoints at a service
113  routine are handled correctly
114  - Thanks to Jonathan Bredin at the University of Pennsylvania for
115    making me check the interrupts out
116* Font resources changed for the GUI
117* Insert registers in trace window bug fixed
118  - Thanks to Stephanie Watson at NCSU for reporting the bug
119
1201.0.1 to 1.0.2 (02/18/95)
121-------------------------
122* Added support for the SUBX instruction to Sim68000
123* Bug in Sim68000's CMPM and RTR instructions fixed
124  - Thanks to John R Potter at Penn State for reporting the bug
125* Mailing list for BSVC has been setup
126
1271.0 to 1.0.1 (02/11/95)
128-----------------------
129* Memory viewer's dump utility fixed
130* Bug in Sim68000's CMP and CMPA instructions fixed
131  - Thanks to John R Potter at Penn State for reporting the bug>
132* Solaris support added
133
1341.0b3 to 1.0
135------------
136* The memory viewer has been made larger and faster
137* WWW Home Page selection has been added to the help menu
138  This starts a WWW browser pointed at the BSVC Home Page
139* Added code to handle the STOP instruction
140* Fixed a problem with the RTS instruction
141* Unimplemented intructions cause an illegal instruction exception
142* Fixed the 68000 assembler's INCLUDE directive so that it can
143  be in any case
144* Compiles with GCC 2.6.2
145
1461.0b2 to 1.0b3
147--------------
148* Added an INCLUDE directive to the 68000 assembler
149* Fixed a bug in the Program Listing window that caused it to
150  only work for programs listed in ascending order
151* Corrected a small problem with the file selector that caused it
152  to "grab" the mouse while reading a directory (This causes problems
153  with networked file systems that take a long time to read)
154* Fixed bugs in two of the Framework classes that caused them not
155  to compile under GCC 2.6.0
156
1571.0b1 to 1.0b2
158--------------
159* Added a BREAK instruction to the 68000 simulator and assembler
160  that acts like a breakpoint.  When the simulator executes this
161  instruction while "running" it will stop running like it
162  hit a breakpoint.
163* Added a new file selector to the user interface
164* Fixed several small bugs in the HECTOR 1600 simulator
165