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());
+    }
+}
+
+
+