Mercurial > hg > ede
annotate 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 |
rev | line source |
---|---|
jb302@28 | 1 #include <stdio.h> |
jb302@28 | 2 |
jb302@28 | 3 #define MAIN |
jb302@28 | 4 #include "mem.h" |
jb302@28 | 5 |
jb302@28 | 6 void |
jb302@28 | 7 main(void) { |
jb302@28 | 8 A = 0xAA; |
jb302@28 | 9 IR = 0x12; |
jb302@28 | 10 |
jb302@28 | 11 unsigned char i; |
jb302@28 | 12 for (i = 0 ; i < 8 ; i++) { |
jb302@28 | 13 set_flag(i, 1); |
jb302@28 | 14 } |
jb302@28 | 15 |
jb302@28 | 16 set_wide(DPTR, 0xDE1D); |
jb302@28 | 17 set_wide(SP, 0xADEA); |
jb302@28 | 18 set_wide(PC, 0xBEFA); |
jb302@28 | 19 set_wide(TMP, 0xEFC3); |
jb302@28 | 20 |
jb302@28 | 21 for (i = 0; i < 4; i++) { |
jb302@28 | 22 regs[i] = i; |
jb302@28 | 23 } |
jb302@28 | 24 |
jb302@28 | 25 for (i = 8; i < 0x0C; i++) { |
jb302@28 | 26 regs[i] = 0x10 | (i - 8); |
jb302@28 | 27 } |
jb302@28 | 28 |
jb302@28 | 29 /* 0xAC 0x12 0xFF |
jb302@28 | 30 * 0x00 0x01 0x02 0x03 |
jb302@28 | 31 * 0xDE 0xAD 0xBE 0xFF |
jb302@28 | 32 * 0x10 0x11 0x12 0x13 |
jb302@28 | 33 * 0x1D 0xEA 0xFA 0xC3 |
jb302@28 | 34 * 0xDE 0x1D 0xBE 0xFA |
jb302@28 | 35 * 0xAD 0xEA 0xEF 0xC3*/ |
jb302@28 | 36 |
jb302@28 | 37 putchar(A); |
jb302@28 | 38 putchar(IR); |
jb302@28 | 39 putchar(flags); |
jb302@28 | 40 |
jb302@28 | 41 for (i = 0; i < 0x10; i++) { |
jb302@28 | 42 putchar(regs[i]); |
jb302@28 | 43 } |
jb302@28 | 44 |
jb302@28 | 45 unsigned short int data_pointer = get_wide(DPTR); |
jb302@28 | 46 unsigned short int program_counter = get_wide(PC); |
jb302@28 | 47 unsigned short int stack_pointer = get_wide(SP); |
jb302@28 | 48 unsigned short int temp = get_wide(TMP); |
jb302@28 | 49 |
jb302@28 | 50 putchar((data_pointer >> 8) & 0xFF); |
jb302@28 | 51 putchar(data_pointer & 0xFF); |
jb302@28 | 52 putchar((program_counter >> 8) & 0xFF); |
jb302@28 | 53 putchar(program_counter & 0xFF); |
jb302@28 | 54 putchar((stack_pointer >> 8) & 0xFF); |
jb302@28 | 55 putchar(stack_pointer & 0xFF); |
jb302@28 | 56 putchar((temp >> 8) & 0xFF); |
jb302@28 | 57 putchar(temp & 0xFF); |
jb302@28 | 58 |
jb302@28 | 59 |
jb302@28 | 60 int ac; |
jb302@28 | 61 for (ac = 0 ; ac < 0x10000 ; ac++) { |
jb302@28 | 62 mem[ac] = ac & 0xFF; |
jb302@28 | 63 } |
jb302@28 | 64 for (ac = 0 ; ac < 0x10000 ; ac++) { |
jb302@28 | 65 putchar(fetch()); |
jb302@28 | 66 } |
jb302@28 | 67 } |
jb302@28 | 68 |
jb302@28 | 69 |
jb302@28 | 70 |