diff options
| author | Astrid Smith | 2010-06-11 01:10:28 -0700 |
|---|---|---|
| committer | Astrid Smith | 2010-06-11 01:10:28 -0700 |
| commit | 6ecff16c32b2de32da5c8bf9792e1e35db440c99 (patch) | |
| tree | 0ce4af2e99266fa4091ff249fb3cc1c3bdca6950 /README.markdown | |
| parent | d35848eb0acdc6ef8a523aa56b6d9ecadabbdb86 (diff) | |
Added some text to the README
Diffstat (limited to 'README.markdown')
| -rw-r--r-- | README.markdown | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/README.markdown b/README.markdown index d6c2b8e..b5009a7 100644 --- a/README.markdown +++ b/README.markdown @@ -5,6 +5,37 @@ Astrid Smith Project started: 2010-06-06 GPL +The aim of this project is to provide a fast and correct TI-83+ +emulator to run on the TI-89. + +This project has a long and barren history, beginning with my first +contemplation of an emulator similar in interface to Macsbug -- in +September 2002. That foray fizzled after a long email thread with +Michael Vincent. The current iteration was sparked by a comment on +IRC by Brandon Wilson, on June 6 2010. + +The most difficult challenge in writing a 68k-hosted emulator +targetting the z80 is making it fast. TI-83+ calculators have a clock +rate in the neighborhood of 12MHz, as do TI-89s. z80 instructions +take from 4 to 23 cycles to execute. I can dispatch an instruction +with a fixed 30 cycle overhead: + + emu_fetch: + eor.w d0,d0 ; 4 cycles + move.b (a4)+,d0 ; 8 cycles + rol.w #5,d0 ; 4 cycles adjust to actual alignment + jmp 0(a3,d0) ;14 cycles + ;; overhead: 30 cycles + +From there, an instruction will take anywhere from 0 to lots of +additional cycles, but generally under 50. + +I am not aiming for exactly correct relative timing of instructions, +choosing instead to maintain the highest possible speed. As a result, +programs that depend on cycle counts to function will not work as +expected. + + ## Useful resources: |
