From http://www.jwz.org/xscreensaver/xscreensaver-5.38.tar.gz
[xscreensaver] / hacks / asm6502.c
index b9b7e1e47930c88dc2e2dccea076e74f5150d2c1..27d2824f45e1c050fdb077c72c9d57cd72691e9b 100644 (file)
 #include <assert.h>
 #include <ctype.h>
 #include <math.h>
-#include <inttypes.h>
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+#if defined(HAVE_STDINT_H)
+# include <stdint.h>
+#elif defined(HAVE_INTTYPES_H)
+# include <inttypes.h>
+#endif
 #include <unistd.h>
 
 #include "yarandom.h"
@@ -542,7 +549,7 @@ static void jmpBIT(machine_6502 *machine, m6502_AddrMode adm){
   Pointer ptr;
   BOOL isValue = getValue(machine, adm, &ptr);
   warnValue(isValue);
-  machine->regP = setBit(machine->regP, ZERO_FL, (ptr.value & machine->regA));
+  machine->regP = setBit(machine->regP, ZERO_FL, !(ptr.value & machine->regA));
   machine->regP = setBit(machine->regP, OVERFLOW_FL, bitOn(ptr.value, OVERFLOW_FL));
   machine->regP = setBit(machine->regP, NEGATIVE_FL, bitOn(ptr.value, NEGATIVE_FL));
   
@@ -2035,7 +2042,7 @@ static BOOL compileCode(machine_6502 *machine, const char *code){
       AsmLine *p;
       if(asmlist != NULL){
         for (p = asmlist; p != NULL; p = p->next)
-          fprintf(stderr,"%s lbl: %s addr: %d ParamLbl: %s ParamAddr: %d\n",
+          fprintf(stderr,"%s lbl: %s addr: %x ParamLbl: %s ParamAddr: %x\n",
                   p->command, p->label->label, p->label->addr,
                   p->param->label, p->param->lbladdr);
             }
@@ -2192,7 +2199,7 @@ void m6502_eval_file(machine_6502 *machine, const char *filename, m6502_Plotter
   do{
     sleep(0); /* XXX */
 #if 0
-    trace(machine);
+    m6502_trace(machine, stdout);
 #endif
     execute(machine);
   }while(machine->codeRunning);