#include <Main.h>
#include <Input.h>

#include "mips.h"
#include "mipsdis.h"
#include "mipsdump.h"

CODE_BEGINS
virtual int startup(void) throw (GeneralException) {
    mipsmem * mymips = new mipsmem();
    Handle * exe = new Input("psx.exe");
    Disassembler * dis = new Disassembler(mymips);
    Dumper * dump = new Dumper(mymips);
    
    verbosity = M_INFO;
    
    mymips->LoadPSYQ(exe);
    
    dis->mainloop();
    delete dis;
    
    printm(M_STATUS, "Finished crawling, dumping...\n");
    
    dump->process();
    
    while (true);
    
    return 0;
}
CODE_ENDS