1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/src/musashi/history.txt Sat Nov 27 01:13:12 2010 +0000 1.3 @@ -0,0 +1,114 @@ 1.4 +The history of Musashi for anyone who might be interested: 1.5 +--------------------------------------------------------- 1.6 + 1.7 +Musashi was born out of sheer boredom. 1.8 +I needed something to code, and so having had fun with a few of the emulators 1.9 +around, I decided to try my hand at CPU emulation. 1.10 +I had owned an Amiga for many years and had done some assembly coding on it so 1.11 +I figured it would be the ideal chip to cut my teeth on. 1.12 +Had I known then how much work was involved in emulating a chip like this, I 1.13 +may not have even started ;-) 1.14 + 1.15 + 1.16 + 1.17 +12-May-1998: First outline 1.18 + 1.19 +11-Jun-1998: Early disassembler 1.20 + 1.21 +20-Nov-1998: First prototype v0.1 1.22 + 1.23 +04-Dec-1998: Final prototype v0.4 1.24 + 1.25 +20-Dec-1998: Beta release of Musashi v0.5 that could run Rastan Saga under MAME 1.26 + (barely). 1.27 + 1.28 +06-Jan-1999: Musashi 1.0 released 1.29 + 1.30 +17-Mar-1999: Musashi 2.0 released 1.31 + - Major code overhaul. 1.32 + - Replaced monolithic codebase with a code generator program. 1.33 + - Added correct m68000 timing. 1.34 + - Moved timing into the opcode handlers. 1.35 + 1.36 +25-Mar-1999: Musashi 2.1 released 1.37 + - Added support for m68010. 1.38 + - Many bugfixes. 1.39 + 1.40 +13-May-1999: Musashi 2.2 released 1.41 + - Added support for m68020. 1.42 + - Lots of bugfixes. 1.43 + 1.44 +05-Apr-2000: Musashi 3.0 released 1.45 + - Major code overhaul. 1.46 + - Rewrote code generator program and changed the format of 1.47 + m68k_in.c. 1.48 + - Added support for m68ec020. 1.49 + - Removed timing from the opcode handlers. 1.50 + - Added correct timing for m68000, m68010, and m68020. 1.51 + Note: 68020 timing is the cache timing from the manual. 1.52 + - Removed the m68k_peek_xxx() and m68k_poke_xxx() instructions and 1.53 + replaced them with m68k_get_reg() and m68k_set_reg(). 1.54 + - Added support for function codes. 1.55 + - Revamped m68kconf.h to be easier to configure and more powerful. 1.56 + - Added option to separate immediate and normal reads. 1.57 + - Added support for (undocumented) m68000 instruction prefetch. 1.58 + - Rewrote indexed addressing mode handling. 1.59 + - Rewrote interrupt handling. 1.60 + - Fixed a masking bug for m68k_get_reg() when requesting the PC. 1.61 + - Moved the instruction table sorting routine to m68kmake.c so 1.62 + that it is invoked at compile time rather than at runtime. 1.63 + - Rewrote the exception handling routines to support different 1.64 + stack frames (needed for m68020 emulation). 1.65 + - Rewrote faster status register and condition code flag handling 1.66 + functions / macros. 1.67 + - Fixed function code handling to fetch from program space when 1.68 + using pc-relative addressing. 1.69 + - Fixed initial program counter and stack pointer fetching on 1.70 + reset (loads from program space now). 1.71 + - A lot of code cleanup. 1.72 + - LOTS of bugfixes (especially in the m68020 code). 1.73 + 1.74 +28-May-2000: Musashi 3.1 released 1.75 + - Fixed bug in m68k_get_reg() that retrieved the wrong value for 1.76 + the status register. 1.77 + - Fixed register bug in movec. 1.78 + - Fixed cpu type comparison problem that caused indexed 1.79 + addressing modes to be incorrectly interpreted when in m68ec020 1.80 + mode. 1.81 + - Added code to speed up busy waiting on some branch instructions. 1.82 + - Fixed some bfxxx opcode bugs. 1.83 + 1.84 +14-Aug-2000: Musashi 3.2 released 1.85 + - Fixed RTE bug that killed the program counter when in m68020 1.86 + mode. 1.87 + - Minor fixes in negx and nbcd. 1.88 + - renamed d68k.c to m68kdasm.c and merged d68k.h into m68k.h. 1.89 + d68k_read_xxx() instructions have been renamed to 1.90 + m68k_read_xxx_disassembler(). 1.91 + - Rewrote exception processing and fixed 68020 stack frame 1.92 + problems. 1.93 + - FINALLY fixed the mull and divl instructions. 1.94 + - Added 64-bit safe code fixes. 1.95 + - Added 64-bit optimizations (these will only be ANSI compliant 1.96 + under c9x, and so to use them you must turn on M68K_USE_64_BIT 1.97 + in m68kconf.h). 1.98 + 1.99 +27-Jan-2001: Musashi 3.3 released 1.100 + Note: This is the last release of Musashi before I separate the 1.101 + 68020 core. 1.102 + - Fixed problem when displaying negative numbers in disassembler 1.103 + - Fixed cpu type selector - was allowing 020 instructions to be 1.104 + disassembled when in 000 mode. 1.105 + - Fixed opcode jumptable generator (ambiguous operators in the 1.106 + test for f-line ops) 1.107 + - Fixed signed/unsigned problem in divl and mull opcodes (not 1.108 + sure if this was causing an error but best to be sure) 1.109 + - Cleaned up the naming scheme for the opcode handlers 1.110 + 1.111 +02-Feb-2001: Musashi 3.3.1 released 1.112 + Note: due to the pc-relative requirement for some new drivers 1.113 + in MAME, I've released this small update. 1.114 + - Added pc-relative read modes 1.115 + - small optimizations to the exception handling that will help 1.116 + when splitting the cores 1.117 + - Updated the example (oops!)