]> Shamusworld >> Repos - apple2/blobdiff - src/v65c02.h
Docs were missing GPLv3. Thanks to schampailler for the heads up. :-)
[apple2] / src / v65c02.h
old mode 100755 (executable)
new mode 100644 (file)
index 7a557ab..b81be31
@@ -1,25 +1,25 @@
 //
 // Virtual 65C02 Header file
 //
-// by James L. Hammons
-// (c) 2005 Underground Software
+// by James Hammons
+// (c) 2005-2018 Underground Software
 //
 
 #ifndef __V65C02_H__
 #define __V65C02_H__
 
-#include "types.h"
+#include <stdint.h>
 
 // Useful defines
 
-#define FLAG_N         0x80                    // Negative
-#define FLAG_V         0x40                    // oVerflow
-#define FLAG_UNK       0x20                    // ??? (always set when read?)
-#define FLAG_B         0x10                    // Break
-#define FLAG_D         0x08                    // Decimal
-#define FLAG_I         0x04                    // Interrupt
-#define FLAG_Z         0x02                    // Zero
-#define FLAG_C         0x01                    // Carry
+#define FLAG_N         0x80            // Negative
+#define FLAG_V         0x40            // oVerflow
+#define FLAG_UNK       0x20            // ??? (always set when read?)
+#define FLAG_B         0x10            // Break
+#define FLAG_D         0x08            // Decimal
+#define FLAG_I         0x04            // Interrupt
+#define FLAG_Z         0x02            // Zero
+#define FLAG_C         0x01            // Carry
 
 #define V65C02_ASSERT_LINE_RESET       0x0001          // v65C02 RESET line
 #define V65C02_ASSERT_LINE_IRQ         0x0002          // v65C02 IRQ line
 
 struct V65C02REGS
 {
-       uint16 pc;                                              // 65C02 PC register
-       uint8 cc;                                               // 65C02 Condition Code register
-       uint8 sp;                                               // 65C02 System stack pointer (bound to $01xx)
-       uint8 a;                                                // 65C02 A register
-       uint8 x;                                                // 65C02 X index register
-       uint8 y;                                                // 65C02 Y register
-       uint32 clock;                                   // 65C02 clock (@ 1 MHz, wraps at 71.5 minutes)
-       uint8 (* RdMem)(uint16);                // Address of BYTE read routine
-       void (* WrMem)(uint16, uint8);  // Address of BYTE write routine
-       uint16 cpuFlags;                                // v65C02 IRQ/RESET flags
+       uint16_t pc;                            // 65C02 PC register
+       uint8_t cc;                                     // 65C02 Condition Code register
+       uint8_t sp;                                     // 65C02 System stack pointer (bound to $01xx)
+       uint8_t a;                                      // 65C02 A register
+       uint8_t x;                                      // 65C02 X index register
+       uint8_t y;                                      // 65C02 Y register
+       uint64_t clock;                         // 65C02 clock (@1 MHz, wraps at 570,842 years)
+       uint8_t (* RdMem)(uint16_t);    // Address of BYTE read routine
+       void (* WrMem)(uint16_t, uint8_t);      // Address of BYTE write routine
+       void (* Timer)(uint16_t);       // Address of Timer routine
+       uint16_t cpuFlags;                      // v65C02 IRQ/RESET flags
+       uint64_t overflow;                      // # of cycles we went over last time through
 };
 
 // Global variables (exported)
 
 extern bool dumpDis;
 
-// Function prototypes
+// Exported functions
 
-void Execute65C02(V65C02REGS *, uint32);       // Function to execute 65C02 instructions
-uint32 GetCurrentV65C02Clock(void);                            // Get the clock of the currently executing CPU
+void Execute65C02(V65C02REGS *, uint32_t);
 
 #endif // __V65C02_H__
+