Z80 Emulation Engine

ketmar via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Sun Apr 20 04:16:09 PDT 2014


quick-and-dirty port of my Zymosis Z80 emulation engine to D. 
code was built from scratch and not using huge tables to generate 
huge sources (it's just one module with source size ~64KB).

it properly emulates all known Z80 quirks (including MEMPTR 
register) and passes all 1335 tests from FUSE.

sorry, it uses GDC @attribute("forceinline") feature, so you need 
latest GDC to build it. it's not strictly necessary though (speed 
optimizations? who needs that speed optimizations with current 
CPUs?!) and can be hacked away with this piece of code:

version(GNU) {
   import gcc.attribute;
} else {
   private struct Attribute(A...) { A args; }
   auto attribute(A...) (A args) if (A.length > 0 && is(A[0] == 
string)) { return Attribute!A(args); }
}

i'm pretty sure that this is the first Z80 emulator written in D. 
%-)

ah, nearly forgot to give repo URL: 
http://repo.or.cz/w/zymosis.d.git


More information about the Digitalmars-d-announce mailing list