annotate tests/emu/test_mem.c @ 33:02241452f397

8052 port code added to repo
author james <jb302@eecs.qmul.ac.uk>
date Tue, 15 Apr 2014 15:49:16 +0100
parents 6d32e54e5c16
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