#include "proc.h" #include "linker.h" #include "../common/graph.h" #include "../common/event.h" #include int main(int argc, char** argv) { Platform_init(); if(argc==2) { //init processor proc_t proc; initProc(&proc); //link the file given in argument if(!Linker_link(argv[1], &proc)) { fprintf(stderr, "Can not link file\n"); fprintf(stderr, "Error: %d\n", Platform_getError()); Platform_quit(); return 1; } else { printf("Linked the program\n"); } //run the program Proc_execute(&proc, -1); printf("Ran the program\n"); //dump proc status printf("Proc status:\n"); printf("\tRegisters:\n"); for(int i=0; i<256; i++) { if(proc.registers[i].i) printf("\t\t#%.2x:\t0x%.8x\t%f\t%d\n", i, proc.registers[i].i, proc.registers[i].d, proc.registers[i].i); } printf("\tInterrupt handler:\t0x%.8x\n", proc.intHandler); printf("\tSubscribed interrupts:\t0x%.8x\n", proc.subscribed); printf("\tStatus register:\t0x%.8x\n", proc.status); printf("\tLast address:\t0x%.8x\n", proc.lastAddress); printf("\tStack: %d\n", proc.stack.top); for(int i=0; i