aboutsummaryrefslogtreecommitdiff
path: root/arch/casiowin/revolutionfx/include/revolution.h
blob: e53a1d0609f06403c87017cb2c605f64ca2e933d (plain)
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
/* ****************************************************************************
 * RevolutionFX's main header.
 * ************************************************************************* */
#include <cdefs.h>
#include <fx/display.h>
#include <fx/keyboard.h>
#define AllClr_DD     Bdisp_AllClr_DD
#define PutDisp_DD    Bdisp_PutDisp_DD
#define SetPoint_DD   Bdisp_SetPoint_DD
#define SetPoint_VRAM Bdisp_SetPoint_VRAM
__BEGIN_DECLS

/* VRAM */
#ifndef  VRAM
# define VRAM ((unsigned char*)0x8800498D) /* FIXME */
#endif
/* ************************************************************************* */
/*  Access the RTC                                                           */
/* ************************************************************************* */
/* The SuperH sees these values as BCD (binary coded decimals).
 * For coding 2007 in decimal:
 *	thousands = 2, hundreds = 0, tens = 0, ones = 7 */

extern void RTCReset _OF((void)) __THROW;
extern void RTCStart _OF((void)) __THROW;
extern void RTCStop  _OF((void)) __THROW;

extern void RTCSetYear       _OF((unsigned char __thousands,
	unsigned char __hundreds, unsigned char __tens, unsigned char __ones))
	__THROW;
extern void RTCSetMonth      _OF((unsigned char __tens, unsigned char __ones))
	__THROW;
extern void RTCSetDayOfMonth _OF((unsigned char __tens, unsigned char __ones))
	__THROW;
extern void RTCSetDayOfWeek  _OF((unsigned char __ones)) __THROW;
extern void RTCSetHour       _OF((unsigned char __tens, unsigned char __ones))
	__THROW;
extern void RTCSetMinute     _OF((unsigned char __tens, unsigned char __ones))
	__THROW;
extern void RTCSetSecond     _OF((unsigned char __tens, unsigned char __ones))
	__THROW;

extern int RTCReadYear       _OF((void)) __THROW;
extern int RTCReadMonth      _OF((void)) __THROW;
extern int RTCReadDayOfMonth _OF((void)) __THROW;
extern int RTCReadDayOfWeek  _OF((void)) __THROW;
extern int RTCReadHour       _OF((void)) __THROW;
extern int RTCReadMinute     _OF((void)) __THROW;
extern int RTCReadSecond     _OF((void)) __THROW;
/* ************************************************************************* */
/*  Access the ports                                                         */
/* ************************************************************************* */
/* Ports A~N (excluding I) and the SCP (Serial Communications Port). */

extern unsigned char ReadPort_A   _OF((void)) __THROW;
extern unsigned char ReadPort_B   _OF((void)) __THROW;
extern unsigned char ReadPort_C   _OF((void)) __THROW;
extern unsigned char ReadPort_D   _OF((void)) __THROW;
extern unsigned char ReadPort_E   _OF((void)) __THROW;
extern unsigned char ReadPort_F   _OF((void)) __THROW;
extern unsigned char ReadPort_G   _OF((void)) __THROW;
extern unsigned char ReadPort_H   _OF((void)) __THROW;
extern unsigned char ReadPort_J   _OF((void)) __THROW;
extern unsigned char ReadPort_K   _OF((void)) __THROW;
extern unsigned char ReadPort_L   _OF((void)) __THROW;
extern unsigned char ReadPort_M   _OF((void)) __THROW;
extern unsigned char ReadPort_N   _OF((void)) __THROW;
extern unsigned char ReadPort_SCP _OF((void)) __THROW;
/* ************************************************************************* */
/*  Change the CPU speed                                                     */
/* ************************************************************************* */
/* This is called overclocking.
 * Before doing this, please check that your program really cannot be
 * optimized enough to run correctly. */
extern void CPUSpeedNormal    _OF((void)) __THROW;
extern void CPUSpeedDouble    _OF((void)) __THROW;
extern void CPUSpeedTriple    _OF((void)) __THROW;
extern void CPUSpeedQuadruple _OF((void)) __THROW;
/* ************************************************************************* */
/*  Access and control the serial port                                       */
/* ************************************************************************* */
/* Initialize, start, stop. */
extern void  Init_SerialPort _OF((void)) __THROW;
extern void Start_SerialPort _OF((void)) __THROW;
extern void Stop_SerialPort  _OF((void)) __THROW;

/* Transmit and receive data. */
extern void          SerialTransmit _OF((unsigned char __value)) __THROW;
extern unsigned char SerialReceive  _OF((void)) __THROW;
/* ************************************************************************* */
/*  Miscallaneous hardware functions                                         */
/* ************************************************************************* */
/* Reboot the calculator. */
extern void Reset_Calc _OF((void)) __THROW;
/* ************************************************************************* */
/*  Graphic functions                                                        */
/* ************************************************************************* */
/* Constants. */

enum __REVOLUTION_COLOR {
	__REVOLUTION_WHITE  = 0,
	__REVOLUTION_BLACK  = 1,
	__REVOLUTION_INVERT = 2
};

#ifdef  WHITE
# undef WHITE
#endif
#define WHITE  __REVOLUTION_WHITE
#ifdef  BLACK
# undef BLACK
#endif
#define BLACK  __REVOLUTION_BLACK
#ifdef  INVERT
# undef INVERT
#endif
#define INVERT __REVOLUTION_INVERT

/* Gray engine related functions */
# if 0 /* gray engine is yet to be implemented */
extern void DrawAll         _OF((unsigned long *__buffer)) __THROW;
extern void GrayInit        _OF((int __countdown, int __countdown2)) __THROW;
extern void GrayLinkBuffers _OF((unsigned long *__buf0,
	unsigned long *__buf1)) __THROW;
extern void GrayEnd         _OF((void)) __THROW;
extern void CopyVRAM        _OF((unsigned int *__buffer)) __THROW;
extern void Change_Contrast _OF((char __contrast)) __THROW;
# endif

/* And the functions. */

extern char GetPixel  _OF((char __x, char __y, unsigned char *__buf)) __THROW;
extern void PlotPixel _OF((char __x, char __y, unsigned char *__buf,
	char __drawtype)) __THROW;
extern void DrawLine  _OF((char __x1, char __y1, char __x2, char __y2,
	unsigned char *__buf, char __color)) __THROW;

extern void DrawSprite8    _OF((char __x, char __y, unsigned char *__buffer,
	char *__bitmap, int __trans)) __THROW;
extern void DrawSprite8x16 _OF((char __x, char __y, unsigned char *__buffer,
	char *__bitmap, int __trans)) __THROW;
extern void DrawSprite16   _OF((char __x, char __y, unsigned char *__buffer,
	char *__bitmap, int __trans)) __THROW;
extern void DrawSprite32   _OF((char __x, char __y, unsigned char *__buffer,
	char *__bitmap, int __trans)) __THROW;

# if 0 /* gray engine is yet to be implemented */
extern void DDrawSprite8    _OF((char __x, char __y,
	unsigned char *__buf0, unsigned char *__buf1,
	char *__bitmap0, char *__bitmap1, int __trans)) __THROW;
extern void DDrawSprite8x16 _OF((char __x, char __y,
	unsigned char *__buf0, unsigned char *__buf1,
	char *__bitmap0, char *__bitmap1, int __trans)) __THROW;
extern void DDrawSprite16   _OF((char __x, char __y,
	unsigned char *__buf0, unsigned char *__buf1,
	char *__bitmap0, char *__bitmap1, int __trans)) __THROW;
# endif

/* Other functions */
extern int string_input _OF((int __x, int __y, char __string[])) __THROW;

__END_DECLS