1 /*****************************************************************************/
5 /* STDIO plugin for the sim65 6502 simulator */
9 /* (C) 2002 Ullrich von Bassewitz */
11 /* D-70597 Stuttgart */
12 /* EMail: uz@musoftware.de */
15 /* This software is provided 'as-is', without any expressed or implied */
16 /* warranty. In no event will the authors be held liable for any damages */
17 /* arising from the use of this software. */
19 /* Permission is granted to anyone to use this software for any purpose, */
20 /* including commercial applications, and to alter it and redistribute it */
21 /* freely, subject to the following restrictions: */
23 /* 1. The origin of this software must not be misrepresented; you must not */
24 /* claim that you wrote the original software. If you use this software */
25 /* in a product, an acknowledgment in the product documentation would be */
26 /* appreciated but is not required. */
27 /* 2. Altered source versions must be plainly marked as such, and must not */
28 /* be misrepresented as being the original software. */
29 /* 3. This notice may not be removed or altered from any source */
32 /*****************************************************************************/
48 /*****************************************************************************/
50 /*****************************************************************************/
54 int InitChip (const struct SimData* Data);
55 /* Initialize the chip, return an error code */
57 static void* InitInstance (unsigned Addr, unsigned Range);
58 /* Initialize a new chip instance */
60 static void Write (void* Data, unsigned Addr, unsigned char Val);
63 static unsigned char Read (void* Data, unsigned Addr);
68 /*****************************************************************************/
70 /*****************************************************************************/
74 /* Control data passed to the main program */
75 static const struct ChipData RAMData[1] = {
77 "STDIO", /* Name of the chip */
78 CHIPDATA_VER_MAJOR, /* Version information */
81 /* -- Exported functions -- */
91 /* The SimData pointer we get when InitChip is called */
92 static const SimData* Sim;
96 /*****************************************************************************/
97 /* Exported function */
98 /*****************************************************************************/
102 int GetChipData (const ChipData** Data, unsigned* Count)
104 /* Pass the control structure to the caller */
106 *Count = sizeof (Data) / sizeof (Data[0]);
108 /* Call was successful */
114 /*****************************************************************************/
116 /*****************************************************************************/
120 int InitChip (const struct SimData* Data)
121 /* Initialize the chip, return an error code */
123 /* Remember the pointer */
126 /* Always successful */
132 static void* InitInstance (unsigned Addr attribute ((unused)),
133 unsigned Range attribute ((unused)))
134 /* Initialize a new chip instance */
136 /* We don't need any instance data */
142 static void Write (void* Data attribute ((unused)),
143 unsigned Addr attribute ((unused)),
145 /* Write user data */
152 static unsigned char Read (void* Data attribute ((unused)),
153 unsigned Addr attribute ((unused)))
156 /* Read a character and return the value */