annotate tests/emu/test_mem.c @ 42:792da050d8c4 tip

more dox
author james <jb302@eecs.qmul.ac.uk>
date Tue, 22 Apr 2014 14:25:14 +0100
parents 4411dee34085
children
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 putchar(A);
jb302@28 30 putchar(IR);
jb302@28 31 putchar(flags);
jb302@28 32
jb302@28 33 for (i = 0; i < 0x10; i++) {
jb302@28 34 putchar(regs[i]);
jb302@28 35 }
jb302@28 36
jb302@28 37 unsigned short int data_pointer = get_wide(DPTR);
jb302@28 38 unsigned short int program_counter = get_wide(PC);
jb302@28 39 unsigned short int stack_pointer = get_wide(SP);
jb302@28 40 unsigned short int temp = get_wide(TMP);
jb302@28 41
jb302@28 42 putchar((data_pointer >> 8) & 0xFF);
jb302@28 43 putchar(data_pointer & 0xFF);
jb302@28 44 putchar((program_counter >> 8) & 0xFF);
jb302@28 45 putchar(program_counter & 0xFF);
jb302@28 46 putchar((stack_pointer >> 8) & 0xFF);
jb302@28 47 putchar(stack_pointer & 0xFF);
jb302@28 48 putchar((temp >> 8) & 0xFF);
jb302@28 49 putchar(temp & 0xFF);
jb302@28 50
jb302@28 51
jb302@28 52 int ac;
jb302@28 53 for (ac = 0 ; ac < 0x10000 ; ac++) {
jb302@28 54 mem[ac] = ac & 0xFF;
jb302@28 55 }
jb302@28 56 for (ac = 0 ; ac < 0x10000 ; ac++) {
jb302@28 57 putchar(fetch());
jb302@28 58 }
jb302@28 59 }
jb302@28 60
jb302@28 61
jb302@28 62