]> Shamusworld >> Repos - apple2/blobdiff - src/v65c02.cpp
Added infrastructure to handle write protecting floppy disks
[apple2] / src / v65c02.cpp
index b86f738ac66e3933f8ae65952a83ce6786950b95..59cc4157f03c716ef4e1e6155e97e87207e7a9c6 100755 (executable)
@@ -1700,6 +1700,9 @@ RTI       Implied         RTI                     40      1       6
 static void Op40(void)                                                 // RTI
 {
        regs.cc = regs.RdMem(0x0100 + ++regs.sp);
+//clear I (seems to be the case, either that or clear it in the IRQ setup...)
+//I can't find *any* verification that this is the case.
+//     regs.cc &= ~FLAG_I;
        regs.pc = regs.RdMem(0x0100 + ++regs.sp);
        regs.pc |= (uint16)(regs.RdMem(0x0100 + ++regs.sp)) << 8;
 }
@@ -2296,6 +2299,11 @@ if (regs.pc == 0xFDED)
        dumpDis = false;
 }
 #endif
+#if 0
+// ProDOS debugging
+if (regs.pc == 0x2000)
+       dumpDis = true;
+#endif
 
 #ifdef __DEBUG__
 if (dumpDis)
@@ -2310,7 +2318,7 @@ if (dumpDis)
                regs.clock += CPUCycles[opcode];
 #ifdef __DEBUG__
 if (dumpDis)
-       WriteLog(" [PC=%04X, SP=%04X, CC=%s%s-%s%s%s%s%s, A=%02X, X=%02X, Y=%02X]\n",
+       WriteLog(" [PC=%04X, SP=%04X, CC=%s%s.%s%s%s%s%s, A=%02X, X=%02X, Y=%02X]\n",
                regs.pc, 0x0100 + regs.sp,
                (regs.cc & FLAG_N ? "N" : "-"), (regs.cc & FLAG_V ? "V" : "-"),
                (regs.cc & FLAG_B ? "B" : "-"), (regs.cc & FLAG_D ? "D" : "-"),