summaryrefslogtreecommitdiffstatshomepage
path: root/trunk/src/emu/cpu/saturn/saturn.h
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/src/emu/cpu/saturn/saturn.h')
-rw-r--r--trunk/src/emu/cpu/saturn/saturn.h92
1 files changed, 92 insertions, 0 deletions
diff --git a/trunk/src/emu/cpu/saturn/saturn.h b/trunk/src/emu/cpu/saturn/saturn.h
new file mode 100644
index 00000000000..1cb913e909b
--- /dev/null
+++ b/trunk/src/emu/cpu/saturn/saturn.h
@@ -0,0 +1,92 @@
+/*****************************************************************************
+ *
+ * cpustate->h
+ * portable saturn emulator interface
+ * (hp calculators)
+ *
+ * Copyright Peter Trauner, all rights reserved.
+ *
+ * Modified by Antoine Mine'
+ *
+ * - This source code is released as freeware for non-commercial purposes.
+ * - You are free to use and redistribute this code in modified or
+ * unmodified form, provided you list me in the credits.
+ * - If you modify this source code, you must add a notice to each modified
+ * source file that it has been changed. If you're a nice person, you
+ * will clearly mark each change too. :)
+ * - If you wish to use this for commercial purposes, please contact me at
+ * peter.trauner@jk.uni-linz.ac.at
+ * - The author of this copywritten work reserves the right to change the
+ * terms of its usage and license at any time, including retroactively
+ * - This entire notice must remain in the source code.
+ *
+ *****************************************************************************/
+/*
+Calculator Release Date Chip Version Analog/Digital IC
+HP71B (early) 02/01/84 1LF2 -
+HP71B (later) ??/??/?? 1LK7 -
+HP18C 06/01/86 1LK7 -
+HP28C 01/05/87 1LK7 -
+HP17B 01/04/88 1LT8 Lewis
+HP19B 01/04/88 1LT8 Lewis
+HP27S 01/04/88 1LT8 Lewis
+HP28S 01/04/88 1LT8 Lewis
+HP48SX 03/16/91 1LT8 Clarke
+HP48S 04/02/91 1LT8 Clarke
+HP48GX 06/01/93 1LT8 Yorke
+HP48G 06/01/93 1LT8 Yorke
+HP38G 09/??/95 1LT8 Yorke
+*/
+/* 4 bit processor
+ 20 address lines */
+
+#pragma once
+
+#ifndef __SATURN_H__
+#define _SATURN_H
+
+
+#define SATURN_INT_NONE 0
+#define SATURN_INT_IRQ 1
+#define SATURN_INT_NMI 2
+
+typedef struct _saturn_cpu_core saturn_cpu_core;
+struct _saturn_cpu_core
+{
+ void (*out)(device_t*,int);
+ int (*in)(device_t*);
+ void (*reset)(device_t*);
+ void (*config)(device_t*,int v);
+ void (*unconfig)(device_t*,int v);
+ int (*id)(device_t*);
+ void (*crc)(device_t*,int addr, int data);
+ void (*rsi)(device_t*);
+};
+
+enum
+{
+ SATURN_A=1, SATURN_B, SATURN_C, SATURN_D,
+ SATURN_R0, SATURN_R1, SATURN_R2, SATURN_R3, SATURN_R4,
+ SATURN_RSTK0, SATURN_RSTK1, SATURN_RSTK2, SATURN_RSTK3,
+ SATURN_RSTK4, SATURN_RSTK5, SATURN_RSTK6, SATURN_RSTK7,
+ SATURN_PC, SATURN_D0, SATURN_D1,
+
+ SATURN_P,
+ SATURN_OUT,
+ SATURN_CARRY,
+ SATURN_ST,
+ SATURN_HST,
+
+ SATURN_IRQ_STATE,
+ SATURN_SLEEPING,
+};
+
+#define SATURN_IRQ_LINE 0
+#define SATURN_NMI_LINE 1
+#define SATURN_WAKEUP_LINE 2
+
+CPU_DISASSEMBLE( saturn );
+
+DECLARE_LEGACY_CPU_DEVICE(SATURN, saturn);
+
+#endif /* __SATURN_H__ */