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