X-Git-Url: http://gitweb.hugovil.com/?a=blobdiff_plain;f=src%2Fmemory.h;h=c8761e9f0028ddf0423173dcd40fbbb270584ba5;hb=82819ebb72819f4a39c5a9aa95fbb2cef22d510f;hp=4166da9d6b8d292702aaae866063bdefc4f19a99;hpb=c862545432cff44e3d64614662c224732534bfd6;p=emu8051.git diff --git a/src/memory.h b/src/memory.h index 4166da9..c8761e9 100644 --- a/src/memory.h +++ b/src/memory.h @@ -24,22 +24,60 @@ #include -#define PGM_MEM_SIZE 65536 -#define INT_MEM_SIZE 256 /* IRAM = Direct addresses $00 to $7F - * SFR = Direct addresses $80 to $FF */ -#define EXT_MEM_SIZE 65536 - -enum { - PGM_MEM_ID, - INT_MEM_ID, - EXT_MEM_ID +#define PGM_MEM_MAX_SIZE 65536 +/* + * Direct addressing $00 to $7F = IRAM (8051) + * Direct addressing $80 to $FF = SFR (8051) + * Indirect addressing $80 to $FF = IRAM (8052) + */ +#define INT_MEM_MAX_SIZE 256 +#define EXT_MEM_MAX_SIZE 65536 + +#define PGM_MEM_DEFAULT_SIZE 8192 +#define EXT_MEM_DEFAULT_SIZE 1024 + +enum mem_id_t { + PGM_MEM_ID, + INT_MEM_ID, + EXT_MEM_ID, + MEM_ID_COUNT }; void -memory_write8(int memory_id, unsigned long address, u_int8_t value); +memory_init(void); + +void +memory_clear(enum mem_id_t id); + +void +memory_write8(enum mem_id_t id, unsigned long address, u_int8_t value); + +void +memory_sfr_write8(unsigned long address, u_int8_t value); + +void +memory_sfr_write_dptr(u_int16_t value); + +u_int8_t +memory_read8(enum mem_id_t id, unsigned long address); u_int8_t -memory_read8(int memory_id, unsigned long address); +memory_sfr_read8(unsigned long address); + +u_int16_t +memory_sfr_read_dptr(void); + +void +stack_push8(uint8_t value); + +void +stack_push16(uint16_t value); + +uint8_t +stack_pop8(void); + +uint16_t +stack_pop16(void); void DumpMem(char *Address, char *Asize, int memory_id);