diff src/cpu.h @ 43:6e7bfe83d2b0

Changed the design to vastly simplify the video hardware and support a 23-bit address space on the CPU
author Michael Pavone <pavone@retrodev.com>
date Sat, 27 Aug 2016 22:38:31 -0700
parents fb14515266f4
children 51672bd41cdd
line wrap: on
line diff
--- a/src/cpu.h	Mon Apr 11 23:35:51 2016 -0700
+++ b/src/cpu.h	Sat Aug 27 22:38:31 2016 -0700
@@ -18,8 +18,9 @@
 
 typedef struct {
 	uint8_t  *base;
-	uint16_t start;
-	uint16_t end;
+	uint32_t start;
+	uint32_t end;
+	uint32_t mask;
 	uint8_t  flags;
 } memory_region;
 
@@ -33,9 +34,13 @@
 	uint16_t regs[16];
 	uint16_t exception;
 	uint16_t exception_pc;
+	uint16_t exception_pch;
 	uint16_t exception_sr;
 	uint16_t exception_ur;
 	uint16_t vector_base;
+	uint32_t pc_msb;
+	uint32_t data_low_msb;
+	uint32_t data_high_msb;
 	
 	uint16_t prefetch;
 	
@@ -83,13 +88,13 @@
 	CMP,
 	CALL,
 	SWAP,
-	IN,
-	OUT,
+	LONGJMP,
 	INI,
 	OUTI,
 	ADDI,
 	ANDI,
 	ORI,
+	XORI,
 	LSI,
 	CMPI,
 	SINGLE_REG
@@ -97,10 +102,11 @@
 
 enum {
 	RETI,
-	TRAP,
 	TRAPI,
 	GETEPC,
 	SETEPC,
+	GETEPCH,
+	SETEPCH,
 	GETESR,
 	SETESR,
 	GETEUR,
@@ -108,7 +114,9 @@
 	GETENUM,
 	SETENUM,
 	GETVBR,
-	SETVBR
+	SETVBR,
+	GETDATABANKS,
+	SETDATABANKS,
 };
 
 enum {