Mercurial > hg > ede
view emulator/mem.h @ 11:bba1e3a7877b
(.Y.)
author | james <jb302@eecs.qmul.ac.uk> |
---|---|
date | Sun, 08 Dec 2013 18:50:57 +0000 |
parents | 484a6777511b |
children | e9dc055a0f8b |
line wrap: on
line source
// mem.h #ifndef MEM_H #define MEM_H /* * data types * - 8 bit BYTE * - 16 bit WIDE */ typedef unsigned char BYTE; typedef unsigned short WIDE; /* * emulator memory * - registers * - 64kB 16-bit main memory */ struct registers { // 8 bit registers BYTE A; BYTE R0; BYTE R1; BYTE R2; BYTE R3; BYTE flags; // 16 bit registers WIDE DPTR; WIDE SP; WIDE PC; }; BYTE memory[0x10000]; /* * memory access function definitions * - read_mem(WIDE) returns BYTE * - write_mem(WIDE, BYTE) * - fetch() returns BYTE * - set_pc(WIDE) * - get_reg(BYTE) returns BYTE * - set_reg(BYTE, BYTE) * - get_reg_wide(BYTE) returns WIDE * - set_reg_wide(BYTE, WIDE) */ BYTE read_mem(WIDE addr); void write_mem(WIDE addr, BYTE data); BYTE fetch(void); void set_pc(WIDE data); BYTE get_reg(BYTE reg); void set_reg(BYTE reg, BYTE data); WIDE get_reg_wide(BYTE reg); void set_reg_wide(BYTE reg, WIDE data); #endif