#include #include #include #include #include #include "asm.h" #include "defines.h" #include "main.ext" #include "structs.h" #include "externs.h" #include "dump.pro" /////////////////////////////////////////////////////////////////////////// UWORD dump_memory() { UWORD loc; UBYTE output_filename[MAX_FILENAME]; UBYTE count; // dumps memory and registers to file clrscr(); printf("\n\n Memory Dump"); gotoxy(30,8); printf("\nEnter output filename for memory dump -> "); gets(output_filename); if ((Out_Ptr = fopen( output_filename, "wt")) == NULL) { printf("\nError Opening memory dump file %s", output_filename); pause(); return(ERROR); } fprintf(Out_Ptr,"ORG = %d\n\r", OrgLoc); for(loc=OrgLoc; loc < (OrgLoc + ModuleEnd); loc += 16) { for(count = 0; count < 16; count ++) { fprintf(Out_Ptr,"%2.2X ", AssocMem[loc++]); } fprintf(Out_Ptr,"\n\r"); } fprintf(Out_Ptr,"\n\r\n\rCPU Registers (HEX)\n\r\n\r"); fprintf(Out_Ptr,"R0 = %2.2X R1 = %2.2X R2 = %2.2X R3 = %2.2X",Cpu.r0, Cpu.r1, Cpu.r2, Cpu.r3); fprintf(Out_Ptr,"\n\rPC = %2.2X SP = %2.2X ZERO = %2.2X NEG = %2.2X", Cpu.pc, Cpu.sp, Cpu.zero, Cpu.neg); fflush(Out_Ptr); fclose(Out_Ptr); return(OK); } ///////////////////////////////////////////////////////////////////////////