int main(int argc, char *argv[]) { reset8080(0x0100); uint8_t *bufp = registerBank(0x0000, 0x10000, NULL, 0); bufp[0] = 0xc3; // FILE *fp = fopen("CPUTEST.COM", "rb"); FILE *fp = fopen("8080EXM.COM", "rb"); fread(bufp + 0x100, 1, 0x10000, fp); fclose(fp); while (!e8080.halt) { emulate8080(5 * 50 * 1000000); } return 1; }
int initalize8080 () { FILE * romBank; char *bankName[] = {"invaders.h", "invaders.g", "invaders.f", "invaders.e"}; int c; printf("Resetting the 8080...\n"); reset8080(); u8 *bankPtr = NULL; for (c = 0; c < 4; c++) { if (e8080.ram[c].flag == FLAG_ROM) { printf("ROM @ %#x (%#x) %p\n", e8080.ram[c].start, e8080.ram[c].size, e8080.ram[c].ptr); bankPtr = e8080.ram[c].ptr; break; } } if (!bankPtr) die("No rom bank defined"); for (c = 0; c < 4; c++) { romBank = fopen(bankName[c], "rb"); if (!romBank) { return 0; } if (fread(&bankPtr[0x0800 * c], 1, 0x0800, romBank) != 0x0800) { return 0; } fclose(romBank); } printf("Loaded the 4 rom banks...\n"); return 1; }