aboutsummaryrefslogtreecommitdiff
path: root/SrcShared/Palm/Platform/Incs/Core/Hardware/M68KHwr.h
diff options
context:
space:
mode:
Diffstat (limited to 'SrcShared/Palm/Platform/Incs/Core/Hardware/M68KHwr.h')
-rw-r--r--SrcShared/Palm/Platform/Incs/Core/Hardware/M68KHwr.h113
1 files changed, 113 insertions, 0 deletions
diff --git a/SrcShared/Palm/Platform/Incs/Core/Hardware/M68KHwr.h b/SrcShared/Palm/Platform/Incs/Core/Hardware/M68KHwr.h
new file mode 100644
index 0000000..8e27eb8
--- /dev/null
+++ b/SrcShared/Palm/Platform/Incs/Core/Hardware/M68KHwr.h
@@ -0,0 +1,113 @@
+/******************************************************************************
+ *
+ * Copyright (c) 1995-1999 Palm Computing, Inc. or its subsidiaries.
+ * All rights reserved.
+ *
+ * File: M68KHwr.h
+ *
+ * Description:
+ * Pilot debugger remote hardware/system info
+ *
+ * History:
+ * 1/18/95 RM - Created by Ron Marianetti
+ *
+ *****************************************************************************/
+
+#ifndef __M68KHWR_H
+#define __M68KHWR_H
+
+// Pilot common definitions
+#include <PalmTypes.h>
+
+
+/***********************************************************************
+ * Breakpoint words we use
+ ***********************************************************************/
+#define m68kTrapInstr 0x4E40
+#define m68kTrapVectorMask 0x000F
+
+/***********************************************************************
+ * 68000 Exception Vector table
+ ***********************************************************************/
+typedef struct M68KExcTableType {
+ UInt32 initStack; // initial stack pointer
+ UInt32 initPC; // initial PC
+
+ UInt32 busErr; // 08
+ UInt32 addressErr; // 0C
+ UInt32 illegalInstr; // 10
+ UInt32 divideByZero; // 14
+ UInt32 chk; // 18
+ UInt32 trap; // 1C
+ UInt32 privilege; // 20
+ UInt32 trace; // 24
+ UInt32 aTrap; // 28
+ UInt32 fTrap; // 2C
+ UInt32 reserved12; // 30
+ UInt32 coproc; // 34
+ UInt32 formatErr; // 38
+ UInt32 unitializedInt; // 3C
+
+ UInt32 reserved[8]; // 40-5C
+
+ UInt32 spuriousInt; // 60
+ UInt32 autoVec1; // 64
+ UInt32 autoVec2; // 68
+ UInt32 autoVec3; // 6C
+ UInt32 autoVec4; // 70
+ UInt32 autoVec5; // 74
+ UInt32 autoVec6; // 78
+ UInt32 autoVec7; // 7C
+
+ UInt32 trapN[16]; // 80 - BC
+
+ UInt32 unassigned[16]; // C0 - FC
+ } M68KExcTableType;
+
+
+
+/**************************************************************************************
+ * structure for the Motorolla 68000 processor registers (variables).
+ *
+ * WARNING:
+ * This structure is used as the body of the 'read regs' command response
+ * packet. Any changes to it will require changes in the nub's code.
+ *
+ **************************************************************************************/
+typedef struct M68KRegsType {
+ UInt32 d[8]; /* data registers */
+ UInt32 a[7]; /* address registers */
+ UInt32 usp; /* user stack pointer */
+ UInt32 ssp; /* supervisor stack pointer */
+ UInt32 pc; /* program counter */
+ UInt16 sr; /* status register */
+} M68KRegsType;
+
+
+
+
+/**************************************************************************************
+ * bit masks for testing M68000 status register fields
+ **************************************************************************************/
+
+/* trace mode */
+#define m68kSrTraceMask 0x08000
+#define m68kSrTraceBit 15
+
+/* supervisor state */
+#define m68kSrSupervisorMask 0x02000
+
+/* interrupt mask */
+#define m68kSrInterruptMask 0x00700
+#define m68kSrInterruptOffset 8 /* offset for right-shifting interrupt mask */
+
+/* condition codes */
+#define m68kSrExtendMask 0x00010
+#define m68kSrNegativeMask 0x00008
+#define m68kSrZeroMask 0x00004
+#define m68kSrOverflowMask 0x00002
+#define m68kSrCarryMask 0x00001
+
+
+
+#endif //__M68KHWR_H