Mercurial > hg > ede
annotate emulator/emu.h @ 7:4549109a0d1e
revised report
author | james <jb302@eecs.qmul.ac.uk> |
---|---|
date | Sat, 07 Dec 2013 16:42:30 +0000 |
parents | 3c8b4a4a1787 |
children |
rev | line source |
---|---|
jb302@6 | 1 // emu.h |
jb302@6 | 2 #ifndef EMU_H |
jb302@6 | 3 #define EMU_H |
jb302@6 | 4 |
jb302@6 | 5 typedef unsigned char BYTE; |
jb302@6 | 6 typedef unsigned short WIDE; |
jb302@6 | 7 |
jb302@6 | 8 struct |
jb302@6 | 9 registers { |
jb302@6 | 10 // 8 bit registers |
jb302@6 | 11 BYTE A; |
jb302@6 | 12 BYTE R0; |
jb302@6 | 13 BYTE R1; |
jb302@6 | 14 BYTE R2; |
jb302@6 | 15 BYTE R3; |
jb302@6 | 16 BYTE flags; |
jb302@6 | 17 |
jb302@6 | 18 // 16 bit registers |
jb302@6 | 19 WIDE DPTR; |
jb302@6 | 20 WIDE SP; |
jb302@6 | 21 WIDE PC; |
jb302@6 | 22 }; |
jb302@6 | 23 |
jb302@6 | 24 // 64kB byte-addressable main memory |
jb302@6 | 25 BYTE |
jb302@6 | 26 memory[0x10000]; |
jb302@6 | 27 |
jb302@6 | 28 // memory access function definitions |
jb302@6 | 29 BYTE |
jb302@6 | 30 read_mem(WIDE addr); |
jb302@6 | 31 |
jb302@6 | 32 void |
jb302@6 | 33 write_mem(BYTE data, WIDE addr); |
jb302@6 | 34 |
jb302@6 | 35 // get byte at PC |
jb302@6 | 36 BYTE |
jb302@6 | 37 fetch(void); |
jb302@6 | 38 |
jb302@6 | 39 // set PC |
jb302@6 | 40 void |
jb302@6 | 41 set(WIDE data); |
jb302@6 | 42 |
jb302@6 | 43 #endif |
jb302@6 | 44 |
jb302@6 | 45 |