File: atmos.h

package info (click to toggle)
cc65 2.19-2
  • links: PTS
  • area: main
  • in suites: forky, sid, trixie
  • size: 20,268 kB
  • sloc: ansic: 117,151; asm: 66,339; pascal: 4,248; makefile: 1,009; perl: 607
file content (175 lines) | stat: -rw-r--r-- 5,888 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
/*****************************************************************************/
/*                                                                           */
/*                                 atmos.h                                   */
/*                                                                           */
/*                   Oric Atmos system-specific definitions                  */
/*                                                                           */
/*                                                                           */
/*                                                                           */
/* (C) 2002       Debrune Jérome, <jede@oric.org>                            */
/* (C) 2003-2013  Ullrich von Bassewitz                                      */
/*                Roemerstrasse 52                                           */
/*                D-70794 Filderstadt                                        */
/* EMail:         uz@cc65.org                                                */
/*                                                                           */
/*                                                                           */
/* This software is provided 'as-is', without any expressed or implied       */
/* warranty.  In no event will the authors be held liable for any damages    */
/* arising from the use of this software.                                    */
/*                                                                           */
/* Permission is granted to anyone to use this software for any purpose,     */
/* including commercial applications, and to alter it and redistribute it    */
/* freely, subject to the following restrictions:                            */
/*                                                                           */
/* 1. The origin of this software must not be misrepresented; you must not   */
/*    claim that you wrote the original software. If you use this software   */
/*    in a product, an acknowledgment in the product documentation would be  */
/*    appreciated but is not required.                                       */
/* 2. Altered source versions must be plainly marked as such, and must not   */
/*    be misrepresented as being the original software.                      */
/* 3. This notice may not be removed or altered from any source              */
/*    distribution.                                                          */
/*                                                                           */
/*****************************************************************************/



#ifndef _ATMOS_H
#define _ATMOS_H



/* Check for errors */
#if !defined(__ATMOS__)
#  error This module may only be used when compiling for the Oric Atmos!
#endif



/* Color defines */
#define COLOR_BLACK     0x00
#define COLOR_RED       0x01
#define COLOR_GREEN     0x02
#define COLOR_YELLOW    0x03
#define COLOR_BLUE      0x04
#define COLOR_MAGENTA   0x05
#define COLOR_CYAN      0x06
#define COLOR_WHITE     0x07

/* TGI color defines */
/* White and red are swapped, so that the pallete
** driver is compatible with black-and-white drivers.
*/
#define TGI_COLOR_BLACK         COLOR_BLACK
#define TGI_COLOR_WHITE         1
#define TGI_COLOR_GREEN         COLOR_GREEN
#define TGI_COLOR_YELLOW        COLOR_YELLOW
#define TGI_COLOR_BLUE          COLOR_BLUE
#define TGI_COLOR_MAGENTA       COLOR_MAGENTA
#define TGI_COLOR_CYAN          COLOR_CYAN
#define TGI_COLOR_RED           7



/* Define hardware */
#include <_6522.h>
#define VIA     (*(struct __6522*)0x300)



/* These are defined to be FUNCT + NumberKey */
#define CH_F1           0xB1
#define CH_F2           0xB2
#define CH_F3           0xB3
#define CH_F4           0xB4
#define CH_F5           0xB5
#define CH_F6           0xB6
#define CH_F7           0xB7
#define CH_F8           0xB8
#define CH_F9           0xB9
#define CH_F10          0xB0



/* Character codes */
#define CH_ULCORNER     '+'
#define CH_URCORNER     '+'
#define CH_LLCORNER     '+'
#define CH_LRCORNER     '+'
#define CH_TTEE         '+'
#define CH_BTEE         '+'
#define CH_LTEE         '+'
#define CH_RTEE         '+'
#define CH_CROSS        '+'
#define CH_CURS_UP       11
#define CH_CURS_DOWN     10
#define CH_CURS_LEFT      8
#define CH_CURS_RIGHT     9
#define CH_DEL          127
#define CH_ENTER         13
#define CH_STOP           3
#define CH_LIRA          95
#define CH_ESC           27



/* Masks for joy_read */
#define JOY_UP_MASK     0x10
#define JOY_DOWN_MASK   0x08
#define JOY_LEFT_MASK   0x01
#define JOY_RIGHT_MASK  0x02
#define JOY_BTN_1_MASK  0x20

#define JOY_FIRE_MASK   JOY_BTN_1_MASK
#define JOY_FIRE(v)     ((v) & JOY_FIRE_MASK)



/* No support for dynamically loadable drivers */
#define DYN_DRV         0



/* The addresses of the static drivers */
extern void atmos_pase_joy[];           /* Referred to by joy_static_stddrv[] */
extern void atmos_ijk_joy[];
extern void atmos_acia_ser[];
extern void atmos_228_200_3_tgi[];
extern void atmos_240_200_2_tgi[];      /* Referred to by tgi_static_stddrv[] */



/*****************************************************************************/
/*                                 Functions                                 */
/*****************************************************************************/



void __fastcall__ atmos_load(const char* name);
/* Load Atmos tape. */

void __fastcall__ atmos_save(const char* name, const void* start, const void* end);
/* Save Atmos tape. */

void atmos_explode (void);
/* Bomb sound effect */

void atmos_ping (void);
/* Bell or ricochet sound effect */

void atmos_shoot (void);
/* Pistol sound effect */

void atmos_tick (void);
/* High-pitch click */

void atmos_tock (void);
/* Low-pitch click */

void atmos_zap (void);
/* Raygun sound effect */



/* End of atmos.h */
#endif