]> git.sur5r.net Git - c128-kasse/blob - include/general.h
use cget_return() to wait for a RETURN key press
[c128-kasse] / include / general.h
1 #ifndef GENERAL_H_
2 #define GENERAL_H_
3
4 #include <peekpoke.h>
5
6 typedef unsigned char BYTE;
7 typedef enum {
8   INPUT_TERMINATOR_RETURN = (1 << 0),
9   INPUT_TERMINATOR_SPACE = (1 << 1),
10 } input_terminator_t;
11 typedef input_terminator_t input_terminator_mask_t;
12 input_terminator_t get_input_terminated_by(input_terminator_mask_t terminators,
13                                            char *out, BYTE outlen);
14 char *get_input(void);
15 void cget_return(void);
16 char retry_or_quit(void);
17 char *format_euro(char *s, int maxlen, int cent);
18 void c128_perror(BYTE, char *);
19 extern BYTE _oserror;
20
21 /* C128 color codes, see PDF page 127 of
22  * http://www.pagetable.com/docs/Commodore%20128%20Programmer%27s%20Reference%20Guide.pdf
23  */
24 #define TC_BLACK 0
25 #define TC_WHITE 1
26 #define TC_RED 2
27 #define TC_CYAN 3
28 #define TC_PURPLE 4
29 #define TC_GREEN 5
30 #define TC_BLUE 6
31 #define TC_YELLOW 7
32 #define TC_ORANGE 8
33 #define TC_BROWN 9
34 /* This is the good red */
35 #define TC_LIGHT_RED 10
36 #define TC_DARK_GRAY 11
37 #define TC_MEDIUM_GRAY 12
38 /* This is the good green */
39 #define TC_LIGHT_GREEN 13
40 #define TC_LIGHT_BLUE 14
41 #define TC_LIGHT_GRAY 15
42
43 /* Carriage return */
44 #define PETSCII_CR 13
45 /* Delete */
46 #define PETSCII_DEL 20
47 /* Escape */
48 #define PETSCII_ESC 27
49 /* Space */
50 #define PETSCII_SP 32
51 #define PETSCII_0 48
52 #define PETSCII_1 49
53 #define PETSCII_2 50
54 #define PETSCII_3 51
55 #define PETSCII_4 52
56 #define PETSCII_5 53
57 #define PETSCII_6 54
58 #define PETSCII_7 55
59 #define PETSCII_8 56
60 #define PETSCII_9 57
61
62 #define VIDEOMODE (((*(BYTE *)0xD7) == 0x80) ? 80 : 40)
63
64 /* because there is no macro expansion when stringifying, we need to use two
65  * levels of macros to stringify the value of a macro (for example
66  * MAX_ITEM_NAME_LENGTH) */
67 #define xstr(s) str(s)
68 #define str(s) #s
69
70 #define max(a, b) ((a) > (b) ? (a) : (b))
71 #define min(a, b) ((a) > (b) ? (b) : (a))
72
73 #endif /*GENERAL_H_*/