src/musashi/example/history.txt

Sat, 19 Apr 2014 02:19:39 -0600

author
andrew@localhost
date
Sat, 19 Apr 2014 02:19:39 -0600
changeset 152
d61e13d6e2a5
parent 0
8bf1bf91a36d
permissions
-rw-r--r--

fixed timing on OSes that set a minimum time for sleeps (previously the main loop code assumed no minimum sleep time; the new version uses longer sleeps less frequently)

     1 The history of Musashi for anyone who might be interested:
     2 ---------------------------------------------------------
     4 Musashi was born out of sheer boredom.
     5 I needed something to code, and so having had fun with a few of the emulators
     6 around, I decided to try my hand at CPU emulation.
     7 I had owned an Amiga for many years and had done some assembly coding on it so
     8 I figured it would be the ideal chip to cut my teeth on.
     9 Had I known then how much work was involved in emulating a chip like this, I
    10 may not have even started ;-)
    14 12-May-1998: First outline
    16 11-Jun-1998: Early disassembler
    18 20-Nov-1998: First prototype v0.1
    20 04-Dec-1998: Final prototype v0.4
    22 20-Dec-1998: Beta release of Musashi v0.5 that could run Rastan Saga under MAME
    23              (barely).
    25 06-Jan-1999: Musashi 1.0 released
    27 17-Mar-1999: Musashi 2.0 released
    28              - Major code overhaul.
    29              - Replaced monolithic codebase with a code generator program.
    30              - Added correct m68000 timing.
    31              - Moved timing into the opcode handlers.
    33 25-Mar-1999: Musashi 2.1 released
    34              - Added support for m68010.
    35              - Many bugfixes.
    37 13-May-1999: Musashi 2.2 released
    38              - Added support for m68020.
    39              - Lots of bugfixes.
    41 05-Apr-2000: Musashi 3.0 released
    42              - Major code overhaul.
    43              - Rewrote code generator program and changed the format of
    44                m68k_in.c.
    45              - Added support for m68ec020.
    46              - Removed timing from the opcode handlers.
    47              - Added correct timing for m68000, m68010, and m68020.
    48                Note: 68020 timing is the cache timing from the manual.
    49              - Removed the m68k_peek_xxx() and m68k_poke_xxx() instructions and
    50                replaced them with m68k_get_reg() and m68k_set_reg().
    51              - Added support for function codes.
    52              - Revamped m68kconf.h to be easier to configure and more powerful.
    53              - Added option to separate immediate and normal reads.
    54              - Added support for (undocumented) m68000 instruction prefetch.
    55              - Rewrote indexed addressing mode handling.
    56              - Rewrote interrupt handling.
    57              - Fixed a masking bug for m68k_get_reg() when requesting the PC.
    58              - Moved the instruction table sorting routine to m68kmake.c so
    59                that it is invoked at compile time rather than at runtime.
    60              - Rewrote the exception handling routines to support different
    61                stack frames (needed for m68020 emulation).
    62              - Rewrote faster status register and condition code flag handling
    63                functions / macros.
    64              - Fixed function code handling to fetch from program space when
    65                using pc-relative addressing.
    66              - Fixed initial program counter and stack pointer fetching on
    67                reset (loads from program space now).
    68              - A lot of code cleanup.
    69              - LOTS of bugfixes (especially in the m68020 code).
    71 28-May-2000: Musashi 3.1 released
    72              - Fixed bug in m68k_get_reg() that retrieved the wrong value for
    73                the status register.
    74              - Fixed register bug in movec.
    75              - Fixed cpu type comparison problem that caused indexed
    76                addressing modes to be incorrectly interpreted when in m68ec020
    77                mode.
    78              - Added code to speed up busy waiting on some branch instructions.
    79              - Fixed some bfxxx opcode bugs.
    81 14-Aug-2000: Musashi 3.2 released
    82              - Fixed RTE bug that killed the program counter when in m68020
    83                mode.
    84              - Minor fixes in negx and nbcd.
    85              - renamed d68k.c to m68kdasm.c and merged d68k.h into m68k.h.
    86                d68k_read_xxx() instructions have been renamed to
    87                m68k_read_xxx_disassembler().
    88              - Rewrote exception processing and fixed 68020 stack frame
    89                problems.
    90              - FINALLY fixed the mull and divl instructions.
    91              - Added 64-bit safe code fixes.
    92              - Added 64-bit optimizations (these will only  be ANSI compliant
    93                under c9x, and so to use them you must turn on M68K_USE_64_BIT
    94                in m68kconf.h).
    96 27-Jan-2001: Musashi 3.3 released
    97              Note: This is the last release of Musashi before I separate the
    98                    68020 core.
    99              - Fixed problem when displaying negative numbers in disassembler
   100              - Fixed cpu type selector - was allowing 020 instructions to be
   101                disassembled when in 000 mode.
   102              - Fixed opcode jumptable generator (ambiguous operators in the
   103                test for f-line ops)
   104              - Fixed signed/unsigned problem in divl and mull opcodes (not
   105                sure if this was causing an error but best to be sure)
   106              - Cleaned up the naming scheme for the opcode handlers
   108 02-Feb-2001: Musashi 3.3.1 released
   109              Note: due to the pc-relative requirement for some new drivers
   110                    in MAME, I've released this small update.
   111              - Added pc-relative read modes
   112              - small optimizations to the exception handling that will help
   113                when splitting the cores
   114              - Updated the example (oops!)