Ape 2600 -- Atari Simulator

An ongoing project to emulate an Atari 2600 on a generic machine.

  • Find and incorporate
    [Rowson 94]
    @InProceedings{Rowson:94,
      author =       "James A. Rowson",
      title =        "Hardware/Software Co-Simulation",
      booktitle =    "Proc.~of the 31st Design Automation Conference
    (DAC~'94)",
      year =         "1994",
      organization = "ACM",
      address =      "San Diego, CA",
      OPTmonth =     "June",
      note =         "(Tutorial)",
      OPTannote =    ""
    }
    

  • Find and incorporate
    @InProceedings{Rogers:92,
      author =       "Anne Rogers and Kai Li",
      title =        "Software Support for Speculative Loads",
      pages =        "38-50",
      booktitle =    "Proc.~of the 5th International Conference on Architectural
                      Support for Programming Languages and Operating Systems",
      year =         "1992",
      month =        "October"
    }
    
    Evidently contains information about a cycle-level simulator. More in
    @TechReport{Rogers:93,
      author =       "Anne Rogers and Scott Rosenberg",
      title =        "Cycle Level {SPIM}",
      institution =  "Department of Computer Science, Princeton
    University",
      year =         1993,
      address =      "Princeton, NJ",
      month =        "October"
    }
    

  • Find and incorporate
    Tracing with Pixie
    Michael D. Smith
    Center for Integrated Systems
    Stanford University
    April 91
    
    ssim: A Superscalar Simulator
    Mike Johnson
    AMD
    M. D. Smith
    Stanford Univ.
    
    Pixie front ends in ftp://velox.stanford.edu/pub

  • Find and incorporate (based on work with `pixie' and `ssim', may tell about them?)
    Johnson, Mike: Superscalar microprocessor design
    Englewood Cliffs, NJ : Prentice Hall, 1991. - XXIV, 288 S. :
    graph. Darst.
    (Prentice-Hall series in innovative technology) Literaturverz. S. 273 - 278
    ISBN 0-13-875634-1
    

  • Find and incorporate (mostly results of tracing, but may discuss simulation and tracing):
    @Book{Huck:89,
      author =       {Jerome C. Huck and Michael J. Flynn},
      title =        {Analyzing Computer Architectures},
      publisher =    {IEEE Computer Society Press},
      year =         1989,
      address =      {Washington, DC}
    }
    

  • Find out more about Robert Bedichek's T2 simulator.

  • Yaze Z80 and CP/M emulator. more info and source code.

  • WinDLX, MSWindows GUI for DLX. Also include information about DLX from [Hennessy & Patterson 93]

  • UAE Commodore Amiga hardware emulator (incomplete).

  • DEC FX!32 binary translation/emulation system for running Microsft Windows applications.

  • Find and incorporate
    %A Max Copperman
    %A Jeff Thomas
    %T Poor Man's Watchpoints
    %J ACM SIGPLAN NotIces
    %V 30
    %N 1
    %D January 1995
    %P 37-44
    
    Pardo has a copy. Executive summary: debugging tool; statically patches loads and stores with code to check for data breakpoints.

    Amusing story: The processor they were running on has load delay slots and does not have pipeline interlocks. Their tool replaces each load or store with several instructions; it patched a piece of user-mode code of the form

    load addr -> r5
    store r5 -> addr2
    
    Before patching, the code saved the old value of r5 to addr2. After patching, it saved the new value. Technically, this code was broken already because the symptom could have also been exhibited by an interrupt or exception between the load and the store.

  • Find and incorporate information about Spike. Referenced in [Conte & Gimarc 95], Tom Conte conte@eos.ncsu.edu says (paraphrpased):

    ``Spike was built inside GNU GCC by Michael Golden and myself. It includes a lot of features that have appeared in ATOM, including the simulator with the benchnark into a single ``self-tracing'' binary. The instruction trace was based on an abstract machine model distilled from GCC's RTL; it had both a high-level and a low-level form. Spike is still in occasional use, but has never been released.''

  • Find and incorporate information about Reiser & Skudlarek's paper "Program Profiling Problems, and a Solution via Machine Language Rewriting", from ACM SIGPLAN Notices, V29, $1, January 1994. Pardo has a copy.

    Basic summary: Wanted to profile. -p/-pg code is larger and slower by enough to make it hard to justify profiling as he default. Assumes the entire source is available. For these and other reasons, wrote jprof which operates with disassembly, analysis and rewriting. Discusses sampling errors, expected accuracy, stability, randomness, etc. Describes jprof: counters and stopwatches; subroutine call graph. Domain/OS on HP/Apollo using 68030. Discusses shared libraries. Can also use page-fault clock. 4-microsecond clocks. Some lessons/observations. Doesn't explain how program running time is affected by jprof.

  • Design tradeoffs between various implementations of 68k implementations (comp.arch posting).

  • More on decompilation of PC executables

  • Update the reference for Alvin R. "Alvy" Lebeck.

  • Review and include FX!32. March 5 1996 Microprocessor Report. Jim Turley, "Alpha Runs x86 Code with FX!32".

    Summary: DEC is running Win32 application binaries on Alpha by a new combination of interpreter and static translator. The static translator runs in the background, between the first and second executions of the application. It uses info collected by the interpreter during the 1st run, to reliably distinguish active code paths from r/o data and work out the effects of indirect jumps. Static analysis can't do this automatically on its own, for typical x86 binaries.

  • Add info about Doug Kwan (author of YAE, an Apple ][ emulator) to "Who's who" section. Nino says: only freely available dynamic recompilation. (Dynamic recompilation for SPARC and MIPS). Information forwarded by Marinos Yannikos <nino@complang.tuwien.ac.at>.

  • Find, read, and incorporate decompilation info (also cites a program verification dissertation):
    %A P. J. Brown
    %T Re-creation of Source Code from Reverse Polish Form
    %J Softwawe \- Practice & Experience
    %V 2
    %N 3
    %P 275-278
    %D 1972
    
    Note: there's a slightly later SPE that has a follow-up article explaining how to do it faster/more efficiently.

  • Xref: uw-beaver comp.compilers:10907 Path: uw-beaver!uhog.mit.edu!news.mathworks.com!newsfeed.internetmci.com!in2.uu.net!ivan.iecc.com!ivan.iecc.com!not-for-mail From: faase@cs.utwente.nl (Frans F.J. Faase) Newsgroups: comp.compilers Subject: Re: Need decompiler for veryyy old code.... Date: 29 Apr 1996 23:11:51 -0400 Organization: University of Twente, Dept. of Computer Science Lines: 29 Sender: johnl@iecc.com Approved: compilers@ivan.iecc.com Message-ID: <96-04-144@comp.compilers> References: <96-04-110@comp.compilers> NNTP-Posting-Host: localhost.iecc.com Keywords: disassemble, IBM > Currently I am undertaking to modify some very old IBM code (at least > 20 years old. I believe that the code is either Assembler or Cobol. I do not know whether the following is of use for you, but I do maintain a WWW page about decompilation, which has some links to other resources as well. <a href="http://www.cs.utwente.nl/~faase/Ha/decompile.html"> http://www.cs.utwente.nl/~faase/Ha/decompile.html</a> Maybe, you should contact Martin Ward <Martin.Ward@durham.ac.uk>: <a href="http://www.dur.ac.uk/~dcs0mpw/"> http://www.dur.ac.uk/~dcs0mpw/</a> Or Tim Bull <tim.bull@durham.ac.uk>: <a href="http://www.dur.ac.uk/~dcs1tmb/home.html"> http://www.dur.ac.uk/~dcs1tmb/home.html</a> Frans (P.S. Email to <PROCUNIERA@ucfv.bc.ca> bounced with 451 error) -- Frans J. Faase Information Systems Group Tel : +31-53-4894232 Department of Computer Science secr. : +31-53-4893690 University of Twente Fax : +31-53-4892927 PO box 217, 7500 AE Enschede, The Netherlands Email : faase@cs.utwente.nl --------------- http://www.cs.utwente.nl/~faase/ --------------------- -- Send compilers articles to compilers@iecc.com, meta-mail to compilers-request@iecc.com.

  • A Java runtime, which generates native code at runtime: Softway's Guava. Info from Jeremy Fitzhardinge (jeremy@suede.sw.oz.au)

  • Find, read, and summarize the following:
    %A Ariel Pashtan
    %T A Prolog Implementation of an Instruction-Level Processor Simulator
    %J Software \- Practice and Experience
    %V 17
    %N 5
    %P 309-318
    %D May 1987
    

  • Find, read and summarize "Augmint". According to Anthony-Trung Nguyen <anguyen@csrd.uiuc.edu>, it is based on MINT, and understands x86 instruction set and runs on Intel x86 boxes with UNIX (Linux, Unixware, etc.) or Windows NT. It is described further at http://www.csrd.uiuc.edu/iacoma/augmint.html and there was a paper in ICCD-96 paper, available from ftp://ftp.csrd.uiuc.edu/pub/Projects/iacoma/aug.ps.

  • Find, read and summarize "Etch".
    From: bchen@eecs.harvard.edu (Brad Chen)
    Newsgroups: comp.arch
    Subject: Windows x86 Address Traces Available
    Date: 7 Oct 1996 22:20:30 GMT
    Organization: Harvard University EECS
    Lines: 15
    Message-ID: <53bvne$5lb@necco.harvard.edu>
    NNTP-Posting-Host: steward.harvard.edu
    Keywords: Windows x86 address traces
    

    A collection of x86 memory reference traces from Win32 applications are now available from the following URL: http://etch.eecs.harvard.edu/traces/index.html. The collection includes traces from both commercial and public-domain applications. The collection currently includes:

     - Perl
     - MPeg Play
     - Borland C++
     - Microsoft Visual C
     - Microsoft Word
    
    These traces were created using Etch, and instrumentation and optimization tool for Win32 executables. For more information on Etch see the above URL.

    (etch-info@cs.washington.edu)

  • Add information on iprof. Here's a summary from Peter Kuhn:
    Peter Kuhn                                    voice: +49-89-289-23092
    Institute for Integrated Circuits (LIS)       fax1:  +49-89-289-28323
    Technical University of Munich                fax2:  +49-89-289-25304
    Arcisstr. 21, D-80290 Munich, Germany 
    email: P_Kuhn@lis.e-technik.tu-muenchen.de
    http:  //www.lis.e-technik.tu-muenchen.de/people/kp.html
    
  • Anything you know about that I haven't included and any bugs you find that I haven't fixed.




    From instruction-set simulation and tracing