|
|
1.1 root 1: #pragma once
2:
3: #ifndef __SYSREG_H__
4: #define __SYSREG_H__
5:
6:
7: #ifdef __cplusplus
8: extern "C" {
9: #endif
10:
11: /* NeXT system registers emulation */
12:
13: /* Interrupts */
14: #define INT_SOFT1 0x00000001 // level 1
15: #define INT_SOFT2 0x00000002 // level 2
16: #define INT_POWER 0x00000004 // level 3
17: #define INT_KEYMOUSE 0x00000008
18: #define INT_MONITOR 0x00000010
19: #define INT_VIDEO 0x00000020
20: #define INT_DSP_L3 0x00000040
21: #define INT_PHONE 0x00000080 // Floppy?
22: #define INT_SOUND_OVRUN 0x00000100
23: #define INT_EN_RX 0x00000200
24: #define INT_EN_TX 0x00000400
25: #define INT_PRINTER 0x00000800
26: #define INT_SCSI 0x00001000
27: #define INT_DISK 0x00002000 // in color systems this is INT_C16VIDEO
28: #define INT_DSP_L4 0x00004000 // level 4
29: #define INT_BUS 0x00008000 // level 5
30: #define INT_REMOTE 0x00010000
31: #define INT_SCC 0x00020000
32: #define INT_R2M_DMA 0x00040000 // level 6
33: #define INT_M2R_DMA 0x00080000
34: #define INT_DSP_DMA 0x00100000
35: #define INT_SCC_DMA 0x00200000
36: #define INT_SND_IN_DMA 0x00400000
37: #define INT_SND_OUT_DMA 0x00800000
38: #define INT_PRINTER_DMA 0x01000000
39: #define INT_DISK_DMA 0x02000000
40: #define INT_SCSI_DMA 0x04000000
41: #define INT_EN_RX_DMA 0x08000000
42: #define INT_EN_TX_DMA 0x10000000
43: #define INT_TIMER 0x20000000
44: #define INT_PFAIL 0x40000000 // level 7
45: #define INT_NMI 0x80000000
46:
47: /* Interrupt Level Masks */
48: #define INT_L7_MASK 0xC0000000
49: #define INT_L6_MASK 0x3FFC0000
50: #define INT_L5_MASK 0x00038000
51: #define INT_L4_MASK 0x00004000
52: #define INT_L3_MASK 0x00003FFC
53: #define INT_L2_MASK 0x00000002
54: #define INT_L1_MASK 0x00000001
55:
56: #define SET_INT 1
57: #define RELEASE_INT 0
58:
59: void set_interrupt(Uint32 intr, Uint8 state);
60: int get_interrupt_level(void);
61:
62: void set_dsp_interrupt(Uint8 state);
63:
64: void SID_Read(void);
65:
66: void SCR_Reset(void);
67: void SCR1_Read0(void);
68: void SCR1_Read1(void);
69: void SCR1_Read2(void);
70: void SCR1_Read3(void);
71:
72: void SCR2_Read0(void);
73: void SCR2_Write0(void);
74: void SCR2_Read1(void);
75: void SCR2_Write1(void);
76: void SCR2_Read2(void);
77: void SCR2_Write2(void);
78: void SCR2_Read3(void);
79: void SCR2_Write3(void);
80:
81: void IntRegStatRead(void);
82: void IntRegStatWrite(void);
83: void IntRegMaskRead(void);
84: void IntRegMaskWrite(void);
85:
86: void Hardclock_InterruptHandler(void);
87: void HardclockRead0(void);
88: void HardclockRead1(void);
89:
90: void HardclockWrite0(void);
91: void HardclockWrite1(void);
92:
93: void HardclockWriteCSR(void);
94: void HardclockReadCSR(void);
95:
96: void System_Timer_Read(void);
97: void System_Timer_Write(void);
98:
99: void ColorVideo_CMD_Write(void);
100: void color_video_interrupt(void);
101:
102: #ifdef __cplusplus
103: }
104: #endif
105:
106: #endif /* __SYSREG_H__ */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.