📄 poseidon.h
字号:
/*********************************************************************
Copyright (c) 1996 Philips Electronics, Inc.
Copyright (c) 1999-2000 Microsoft Corporation. All rights reserved
*********************************************************************/
#ifndef __POSEIDON__
#define __POSEIDON__
#define SampleRateToDividerModulus(x) (9216000 / (x * 32) - 1)
#define kPoseidonSDram1ModeAddress 0xB0F00000
#define kPoseidonSDram0ModeAddress 0xB0E00000
#define kPoseidonModuleAddress 0xB0C00000
#define kPoseidonBreakpointModuleAddress 0xFF000010
#define kPoseidonChipSelect3Address 0xB0800000
#define kPoseidonChipSelect2Address 0xB0400000
#define kPoseidonChipSelect1Address 0xB0000000
#define kCard1Addr (0x64000000 - KUSER_OFFSET)
#define kCard2Addr (0x68000000 - KUSER_OFFSET)
#define kCard1Size 0x04000000
#define kCard2Size 0x04000000
#define kCard1AttributeAddress 0x88000000
#define kCard1IOAddress 0x88000000
#define kCard2AttributeAddress 0x8C000000
#define kCard2IOAddress 0x8C000000
#define kDRAMBank0Offset 0x0
#define kDRAMBank1Offset 0x200000
#define kProtectionLimit 0x10000000 /* limit address for Poseidon protection */
#define kBootParametersOffset 0 /* offset from beginning of ROM in device */
#define kRestorePersistentRAMSize 0x00020000
#define kSystemRAMAddr 0x00000000
#define kBootStackSize 0x2000
/* NOTE: change these two in tandem */
#define kVectorDispatchTableSize 2048
#define kVectorDispatchReMapMask 0xC
/***** Poseidon Exception Number Equates *****/
/* With Poseidon there are no core exception numbers */
#define kFirstRealVector 0
#define kLCDInterrupt 0
#define kDFInterrupt 1
#define kCHIHalfInterrupt 2
#define kCHIFullInterrupt 3
#define kCHIDMACountInterrupt 4
#define kCHIinInterruptA 5
#define kCHIinintInterruptB 6
#define kCHIactInterrupt 7
#define kCHIErrorInterrupt 8
#define kSoundHalfInterrupt 9
#define kSoundFullInterrupt 10
#define kTelHalfInterrupt 11
#define kTelFullInterrupt 12
#define kSoundDMACountInterrupt 13
#define kTelDMACountInterrupt 14
#define kLeftSoundClipInterrupt 15
#define kRightSoundClipInterrupt 16
#define kvalSoundPositiveInterrupt 17
#define kvalSoundNegativeInterrupt 18
#define kvalTelPositiveInterrupt 19
#define kvalTelNegativeInterrupt 20
#define kSoundinInterrupt 21
#define kTelinInterrupt 22
#define kSIBsf0Interrupt 23
#define kSIBsf1Interrupt 24
#define kSIBPositiveInterrupt 25
#define kSIBNegativeInterrupt 26
#define kInterrupt1Reserved4 27
#define kInterrupt1Reserved3 28
#define kInterrupt1Reserved2 29
#define kInterrupt1Reserved1 30
#define kInterrupt1Reserved0 31
#define kUARTARXInterrupt 32
#define kUARTARXoverrunInterrupt 33
#define kUARTAFrameErrorInterrupt 34
#define kUARTABreakInterrupt 35
#define kUARTAParityErrorInterrupt 36
#define kUARTATXInterrupt 37
#define kUARTATXoverrunInterrupt 38
#define kUARTAEmptyInterrupt 39
#define kUARTADMAFullInterrupt 40
#define kUARTADMAHalfInterrupt 41
#define kUARTBRXInterrupt 42
#define kUARTBRXoverrunInterrupt 43
#define kUARTBFrameErrorInterrupt 44
#define kUARTBBreakInterrupt 45
#define kUARTBParityErrorInterrupt 46
#define kUARTBTXInterrupt 47
#define kUARTBTXoverrunInterrupt 48
#define kUARTBEmptyInterrupt 49
#define kUARTBDMAFullInterrupt 50
#define kUARTBDMAHalfInterrupt 51
#define kMagicBusTXBufferAvailableInterrupt 52
#define kMagicBusTXErrorInterrupt 53
#define kMagicBusEmptyInterrupt 54
#define kMagicBusRXBufferAvailableInterrupt 55
#define kMagicBusRXErrorInterrupt 56
#define kMagicBusDetInterrupt 57
#define kMagicBusDMAFullInterrupt 58
#define kMagicBusDMAHalfInterrupt 59
#define kMagicBusPositiveInterrupt 60
#define kMagicBusNegativeInterrupt 61
#define kInterrupt2Reserved1 62
#define kInterrupt2Reserved0 63
#define kmfioPositiveInterrupt31 64
#define kmfioPositiveInterrupt30 65
#define kmfioPositiveInterrupt29 66
#define kmfioPositiveInterrupt28 67
#define kmfioPositiveInterrupt27 68
#define kmfioPositiveInterrupt26 69
#define kmfioPositiveInterrupt25 70
#define kmfioPositiveInterrupt24 71
#define kmfioPositiveInterrupt23 72
#define kmfioPositiveInterrupt22 73
#define kmfioPositiveInterrupt21 74
#define kmfioPositiveInterrupt20 75
#define kmfioPositiveInterrupt19 76
#define kmfioPositiveInterrupt18 77
#define kmfioPositiveInterrupt17 78
#define kmfioPositiveInterrupt16 79
#define kmfioPositiveInterrupt15 80
#define kmfioPositiveInterrupt14 81
#define kmfioPositiveInterrupt13 82
#define kmfioPositiveInterrupt12 83
#define kmfioPositiveInterrupt11 84
#define kmfioPositiveInterrupt10 85
#define kmfioPositiveInterrupt9 86
#define kmfioPositiveInterrupt8 87
#define kmfioPositiveInterrupt7 88
#define kmfioPositiveInterrupt6 89
#define kmfioPositiveInterrupt5 90
#define kmfioPositiveInterrupt4 91
#define kmfioPositiveInterrupt3 92
#define kmfioPositiveInterrupt2 93
#define kmfioPositiveInterrupt1 94
#define kmfioPositiveInterrupt0 95
#define kmfioNegativeInterrupt31 96
#define kmfioNegativeInterrupt30 97
#define kmfioNegativeInterrupt29 98
#define kmfioNegativeInterrupt28 99
#define kmfioNegativeInterrupt27 100
#define kmfioNegativeInterrupt26 101
#define kmfioNegativeInterrupt25 102
#define kmfioNegativeInterrupt24 103
#define kmfioNegativeInterrupt23 104
#define kmfioNegativeInterrupt22 105
#define kmfioNegativeInterrupt21 106
#define kmfioNegativeInterrupt20 107
#define kmfioNegativeInterrupt19 108
#define kmfioNegativeInterrupt18 109
#define kmfioNegativeInterrupt17 110
#define kmfioNegativeInterrupt16 111
#define kmfioNegativeInterrupt15 112
#define kmfioNegativeInterrupt14 113
#define kmfioNegativeInterrupt13 114
#define kmfioNegativeInterrupt12 115
#define kmfioNegativeInterrupt11 116
#define kmfioNegativeInterrupt10 117
#define kmfioNegativeInterrupt9 118
#define kmfioNegativeInterrupt8 119
#define kmfioNegativeInterrupt7 120
#define kmfioNegativeInterrupt6 121
#define kmfioNegativeInterrupt5 122
#define kmfioNegativeInterrupt4 123
#define kmfioNegativeInterrupt3 124
#define kmfioNegativeInterrupt2 125
#define kmfioNegativeInterrupt1 126
#define kmfioNegativeInterrupt0 127
#define kRTCInterrupt 128
#define kAlarmInterrupt 129
#define kPeriodicInterrupt 130
#define kStopTimerInterrupt 131
#define kPositivePowerInterrupt 132
#define kNegativePowerInterrupt 133
#define kPositivePowerokInterrupt 134
#define kNegativePowerokInterrupt 135
#define kPositiveOnButtonInterrupt 136
#define kNegativeOnButtonInterrupt 137
#define kSPIBufferAvailableInterrupt 138
#define kSPIErrorInterrupt 139
#define kSPIrcvInterrupt 140
#define kSPIEmptyInterrupt 141
#define kIRconsmInterrupt 142
#define kcarstInterrupt 143
#define kPositivecarInterrupt 144
#define kNegativecarInterrupt 145
#define kioPositiveInterrupt6 146
#define kioPositiveInterrupt5 147
#define kioPositiveInterrupt4 148
#define kioPositiveInterrupt3 149
#define kioPositiveInterrupt2 150
#define kioPositiveInterrupt1 151
#define kioPositiveInterrupt0 152
#define kioNegativeInterrupt6 153
#define kioNegativeInterrupt5 154
#define kioNegativeInterrupt4 155
#define kioNegativeInterrupt3 156
#define kioNegativeInterrupt2 157
#define kioNegativeInterrupt1 158
#define kioNegativeInterrupt0 159
#define kGlacier1IOPositiveInterrupt12 160
#define kGlacier1IOPositiveInterrupt11 161
#define kGlacier1IOPositiveInterrupt10 162
#define kGlacier1IOPositiveInterrupt3 163
#define kGlacier1IOPositiveInterrupt2 164
#define kGlacier1IOPositiveInterrupt1 165
#define kGlacier1IONegativeInterrupt12 166
#define kGlacier1IONegativeInterrupt11 167
#define kGlacier1IONegativeInterrupt10 168
#define kGlacier1IONegativeInterrupt3 169
#define kGlacier1IONegativeInterrupt2 170
#define kGlacier1IONegativeInterrupt1 171
#define kGlacier2IOPositiveInterrupt12 172
#define kGlacier2IOPositiveInterrupt11 173
#define kGlacier2IOPositiveInterrupt10 174
#define kGlacier2IOPositiveInterrupt3 175
#define kGlacier2IOPositiveInterrupt2 176
#define kGlacier2IOPositiveInterrupt1 177
#define kGlacier2IONegativeInterrupt12 178
#define kGlacier2IONegativeInterrupt11 179
#define kGlacier2IONegativeInterrupt10 180
#define kGlacier2IONegativeInterrupt3 181
#define kGlacier2IONegativeInterrupt2 182
#define kGlacier2IONegativeInterrupt1 183
#define kNumHandlers 184
#define kNumPoseidonHandlers 160
/***** BIU Module Equates *****/
/***** Memory Configuration Register 0 Equates (PoseidonModule.memoryConfiguration0) *****/
#define kMemDClkoutTriStateMask 0x40000000 /* 30 */
#define kMemDisDqmInitMask 0x20000000 /* 29 */
#define kMemEnSdramPowDownMask 0x10000000 /* 28 */
#define kMemShowPoseidonMask 0x08000000 /* 27 */
#define kMemEnAddrRmap2Mask 0x04000000 /* 26 */
#define kMemEnAddrRmap1Mask 0x02000000 /* 25 */
#define kMemEnPageModeWrinMask 0x01000000 /* 24 */
#define kMemEnCs3UserMask 0x00800000 /* 23 */
#define kMemEnCs2UserMask 0x00400000 /* 22 */
#define kMemEnCs1UserMask 0x00200000 /* 21 */
#define kMemEnCs1Bank01Mask 0x00100000 /* 20 */
#define kMemBank1ConfMask 0x000c0000 /* 19:18 */
#define kMemBank0ConfMask 0x00030000 /* 17:16 */
#define kMemBank1RowSelMask 0x0000c000 /* 15:14 */
#define kMemBank0RowSelMask 0x00003000 /* 13:12 */
#define kMemBank1ColSelMask 0x00000f00 /* 11:8 */
#define kMemBank0ColSelMask 0x000000f0 /* 7:4 */
#define kMemCs332BitMask 0x00000008 /* 3 */
#define kMemCs232BitMask 0x00000004 /* 2 */
#define kMemCs132BitMask 0x00000002 /* 1 */
#define kMemCs032BitMask 0x00000001 /* 0 */
/***** Values for kMemBank1ConfMask field *****/
#define kMemEnBank1Sdram_16 0x000c0000
#define kMemEnBank1Sdram_8 0x00080000
#define kMemEnBank1Dram_32 0x00040000
#define kMemEnBank1Dram_16 0x00000000
#define kMemBank1ConfShift 18
/***** Values for kMemBank0ConfMask field *****/
#define kMemEnBank0Sdram_16 0x00030000
#define kMemEnBank0Sdram_8 0x00020000
#define kMemEnBank0Dram_32 0x00010000
#define kMemEnBank0Dram_16 0x00000000
#define kMemBank0ConfShift 16
/***** Values for kMemBank1RowSelMask field *****/
#define kMemBank1RowSel3 0x0000c000
#define kMemBank1RowSel2 0x00008000
#define kMemBank1RowSel1 0x00004000
#define kMemBank1RowSel0 0x00000000
#define kMemBank1RowSelShift 14
/***** Values for kMemBank0RowSelMask field *****/
#define kMemBank0RowSel3 0x00003000
#define kMemBank0RowSel2 0x00002000
#define kMemBank0RowSel1 0x00001000
#define kMemBank0RowSel0 0x00000000
#define kMemBank0RowSelShift 12
/***** Values for kMemBank1ColSelMask field *****/
#define kMemBank1ColSel9 0x00000900
#define kMemBank1ColSel8 0x00000800
#define kMemBank1ColSel7 0x00000700
#define kMemBank1ColSel6 0x00000600
#define kMemBank1ColSel5 0x00000500
#define kMemBank1ColSel4 0x00000400
#define kMemBank1ColSel3 0x00000300
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -