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