1 /*****************************************************************************/
\r
5 /* Atari Lynx, Mikey chip register hardware structures */
\r
8 /* This software is provided 'as-is', without any expressed or implied */
\r
9 /* warranty. In no event will the authors be held liable for any damages */
\r
10 /* arising from the use of this software. */
\r
12 /* Permission is granted to anyone to use this software for any purpose, */
\r
13 /* including commercial applications, and to alter it and redistribute it */
\r
14 /* freely, subject to the following restrictions: */
\r
16 /* 1. The origin of this software must not be misrepresented; you must not */
\r
17 /* claim that you wrote the original software. If you use this software */
\r
18 /* in a product, an acknowledgment in the product documentation would be */
\r
19 /* appreciated but is not required. */
\r
20 /* 2. Altered source versions must be plainly marked as such, and must not */
\r
21 /* be misrepresented as being the original software. */
\r
22 /* 3. This notice may not be removed or altered from any source */
\r
25 /*****************************************************************************/
\r
30 /* timer structure */
\r
31 typedef struct _mikey_timer {
\r
32 unsigned char reload;
\r
33 unsigned char control;
\r
34 unsigned char count;
\r
35 unsigned char control2;
\r
38 typedef struct _mikey_all_timers {
\r
39 struct _mikey_timer timer[8];
\r
40 } _mikey_all_timers;
\r
42 /* audio channel structure */
\r
43 typedef struct _mikey_audio {
\r
44 unsigned char volume;
\r
45 unsigned char feedback;
\r
47 unsigned char shiftlo;
\r
48 unsigned char reload;
\r
49 unsigned char control;
\r
50 unsigned char count;
\r
51 unsigned char other;
\r
54 /* Define a structure with the mikey register offsets */
\r
56 struct _mikey_timer timer0; // 0xFD00
\r
57 struct _mikey_timer timer1; // 0xFD04
\r
58 struct _mikey_timer timer2; // 0xFD08
\r
59 struct _mikey_timer timer3; // 0xFD0C
\r
60 struct _mikey_timer timer4; // 0xFD10
\r
61 struct _mikey_timer timer5; // 0xFD14
\r
62 struct _mikey_timer timer6; // 0xFD18
\r
63 struct _mikey_timer timer7; // 0xFD1C
\r
64 struct _mikey_audio channel_a; // 0xFD20
\r
65 struct _mikey_audio channel_b; // 0xFD28
\r
66 struct _mikey_audio channel_c; // 0xFD30
\r
67 struct _mikey_audio channel_d; // 0xFD38
\r
68 unsigned char attena; // 0xFD40 ?? not yet allocated?
\r
69 unsigned char attenb; // 0xFD41 |
\r
70 unsigned char attenc; // 0xFD42 |
\r
71 unsigned char attend; // 0xFD43 |
\r
72 unsigned char panning; // 0xFD44 |
\r
73 unsigned char unused0[11]; // 0xFD45 - 0xFD4F not used
\r
74 unsigned char mstereo; // 0xFD50 stereo control bits
\r
75 unsigned char unused1[47]; // 0xFD51 - 0xFD7F not used
\r
76 unsigned char intrst; // 0xFD80 interrupt poll 0
\r
77 unsigned char intset; // 0xFD81 interrupt poll 1
\r
78 unsigned char unused2[2]; // 0xFD82 - 0xFD83 not used
\r
79 unsigned char magrdy0; // 0xFD84 mag tape channel0 ready bit
\r
80 unsigned char magrdy1; // 0xFD85 mag tape channel1 ready bit
\r
81 unsigned char audin; // 0xFD86 audio in
\r
82 unsigned char sysctl1; // 0xFD87 control bits
\r
83 unsigned char mikeyrev; // 0xFD88 mikey hardware rev
\r
84 unsigned char mikeysrev; // 0xFD89 mikey software rev
\r
85 unsigned char iodir; // 0xFD8A parallel i/o data dir
\r
86 unsigned char iodat; // 0xFD8B parallel data
\r
87 unsigned char serctl; // 0xFD8C serial control register
\r
88 unsigned char serdat; // 0xFD8D serial data
\r
89 unsigned char unused3[2]; // 0xFD8E - 0xFD8F not used
\r
90 unsigned char sdoneack; // 0xFD90 suzy done acknowledge
\r
91 unsigned char cpusleep; // 0xFD91 cpu bus request disable
\r
92 unsigned char dispctl; // 0xFD92 video bus request enable, viddma
\r
93 unsigned char pkbkup; // 0xFD93 magic 'P' count
\r
94 unsigned char *scrbase; // 0xFD94 start address of video display
\r
95 unsigned char unused4[6]; // 0xFD96 - 0xFD9B not used
\r
96 unsigned char mtest0; // 0xFD9C
\r
97 unsigned char mtest1; // 0xFD9D
\r
98 unsigned char mtest2; // 0xFD9E
\r
99 unsigned char unused5; // 0xFD9F not used
\r
100 unsigned char palette[32]; // 0xFDA0 - 0xFDBF palette 32 bytes
\r
101 // 0xFDC0 - 0xFDFF not used
\r