UWO cpuGetNextWord(void) { UWO tmp = cpu_prefetch_word; cpu_prefetch_word = cpuGetNextWordInternal(); cpuSetPC(cpuGetPC() + 2); return tmp; }
ULO cpuGetNextLong(void) { ULO tmp = cpu_prefetch_word << 16; ULO data = cpuGetNextLongInternal(); cpu_prefetch_word = (UWO) data; cpuSetPC(cpuGetPC() + 4); return tmp | (data >> 16); }
int main(void) { char *line; printf("\n\nECO32 Machine Monitor 1.0\n\n"); initInstrTable(); cpuSetPC(0xC0000000); // mgeisse execCommand("boot 0"); while (1) { line = getLine("ECO32 > "); addHist(line); execCommand(line); } return 0; }
void cpuInitializeFromNewPC(ULO new_pc) { cpuSetPC(new_pc); cpuInitializePrefetch(); }
void cpuSkipNextLong(void) { cpuSetPC(cpuGetPC() + 4); cpuInitializePrefetch(); }
void cpuSkipNextWord(void) { cpuSetPC(cpuGetPC() + 2); cpuInitializePrefetch(); }