Mercurial > hg > ede
diff tests/emu/test_mem.c @ 28:6d32e54e5c16
emulator overhauled really, new a better memory structure
also cleaned up the file system some what.
author | james <jb302@eecs.qmul.ac.uk> |
---|---|
date | Fri, 11 Apr 2014 14:38:09 +0100 |
parents | |
children | 4411dee34085 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/emu/test_mem.c Fri Apr 11 14:38:09 2014 +0100 @@ -0,0 +1,70 @@ +#include <stdio.h> + +#define MAIN +#include "mem.h" + +void +main(void) { + A = 0xAA; + IR = 0x12; + + unsigned char i; + for (i = 0 ; i < 8 ; i++) { + set_flag(i, 1); + } + + set_wide(DPTR, 0xDE1D); + set_wide(SP, 0xADEA); + set_wide(PC, 0xBEFA); + set_wide(TMP, 0xEFC3); + + for (i = 0; i < 4; i++) { + regs[i] = i; + } + + for (i = 8; i < 0x0C; i++) { + regs[i] = 0x10 | (i - 8); + } + + /* 0xAC 0x12 0xFF + * 0x00 0x01 0x02 0x03 + * 0xDE 0xAD 0xBE 0xFF + * 0x10 0x11 0x12 0x13 + * 0x1D 0xEA 0xFA 0xC3 + * 0xDE 0x1D 0xBE 0xFA + * 0xAD 0xEA 0xEF 0xC3*/ + + putchar(A); + putchar(IR); + putchar(flags); + + for (i = 0; i < 0x10; i++) { + putchar(regs[i]); + } + + unsigned short int data_pointer = get_wide(DPTR); + unsigned short int program_counter = get_wide(PC); + unsigned short int stack_pointer = get_wide(SP); + unsigned short int temp = get_wide(TMP); + + putchar((data_pointer >> 8) & 0xFF); + putchar(data_pointer & 0xFF); + putchar((program_counter >> 8) & 0xFF); + putchar(program_counter & 0xFF); + putchar((stack_pointer >> 8) & 0xFF); + putchar(stack_pointer & 0xFF); + putchar((temp >> 8) & 0xFF); + putchar(temp & 0xFF); + + + int ac; + for (ac = 0 ; ac < 0x10000 ; ac++) { + mem[ac] = ac & 0xFF; + } + for (ac = 0 ; ac < 0x10000 ; ac++) { + putchar(fetch()); + } +} + + +