summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAstrid Smith2010-06-11 01:10:28 -0700
committerAstrid Smith2010-06-11 01:10:28 -0700
commit6ecff16c32b2de32da5c8bf9792e1e35db440c99 (patch)
tree0ce4af2e99266fa4091ff249fb3cc1c3bdca6950
parentd35848eb0acdc6ef8a523aa56b6d9ecadabbdb86 (diff)
Added some text to the README
-rw-r--r--README.markdown31
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: