llvm-mos-sdk
geos_types.h
Go to the documentation of this file.
1 /***********************************************************************
2  * geos_types.h
3  *
4  * This file contains type definitions for use in GEOS applications
5  * with llvm-mos C compiler.
6  *
7  ***********************************************************************/
8 
9 #ifndef GEOS_TYPES_H
10 #define GEOS_TYPES_H
11 
12 #ifdef __cplusplus
13 extern "C" {
14 #endif
15 
16 #include "geos_constants.h"
17 
18 /***********************************************************************
19  * Generic Definintions
20  ***********************************************************************/
21 
22 typedef uint8_t track_t;
23 typedef uint8_t sector_t;
25 typedef void (*vector)(void);
26 
27 typedef char disk_name_t[DK_NM_ID_LEN];
28 typedef char file_name_t[DK_NM_ID_LEN];
29 typedef char prt_drv_name_t[17];
33 typedef struct tr_se_pair {
37 
40 typedef struct tr_se_pair file_tr_se_tab_t[128];
41 
43  "Illegal size of file_tr_se_tab_t");
44 
45 typedef struct date {
52 
53 /***********************************************************************
54  * Commodore/GEOS disk block
55  ***********************************************************************/
56 
57 typedef struct disk_block {
59  uint8_t data[254];
61 
62 _Static_assert(sizeof(disk_block_t) == 256, "Illegal size of disk_block_t");
63 
64 /***********************************************************************
65  * Commodore/GEOS directory entry
66  ***********************************************************************/
67 
68 typedef struct dir_entry {
71  char name[16];
78 
79 _Static_assert(sizeof(dir_entry_t) == 30, "Illegal size: dir_entry_t");
80 
81 typedef struct cvt_dir_entry {
83  char signature[28];
85 
86 /***********************************************************************
87  * BAM Format / Directory Header
88  ***********************************************************************/
89 
92 typedef struct bam_track {
94  uint8_t bam[3];
96 
97 _Static_assert(sizeof(bam_track_t) == 4, "Illegal size of bam_track_t");
98 
101 typedef struct dir_header {
104  char buffer;
108  char buffer2;
109  char dos_version;
110  char disk_format;
111  char buffer3[4];
113  char geos_id[16];
114  char master_disk;
115  char buffer4[66];
117 
118 _Static_assert(sizeof(dir_header_t) == 256, "Illegal size of dir_header_t");
119 
120 /***********************************************************************
121  * GEOS file header definition
122  ***********************************************************************/
123 
124 typedef struct file_header {
136  char file_name[19];
147  char par_application[20];
150  char application_use[23];
151  char notes[96];
154 
156  "Illegal size of net_file_header_t");
157 
158 typedef struct file_header_block {
163 
165  "Illegal size of file_header_t");
166 
167 typedef struct icon_table_entry {
175 
176 typedef struct icon_table {
182 
183 typedef struct menu_tab menu_tab_t;
184 typedef struct menu_item menu_item_t;
185 
186 struct menu_item {
187  char *text;
189  union {
192  };
193 };
194 
195 struct menu_tab {
196  char top;
197  char bot;
202 };
203 
204 struct init_tab {
208 };
209 
210 typedef struct icon_pic {
217 
218 typedef struct font_desc {
225 
226 typedef struct mobpos {
230 
231 #ifdef __cplusplus
232 extern "C" {
233 #endif
234 
235 #endif
#define DK_NM_ID_LEN
Definition: geos_constants.h:483
geos_file_type_t
Definition: geos_constants.h:316
file_structure_t
Definition: geos_constants.h:373
dos_file_type_t
Definition: geos_constants.h:382
struct disk_block disk_block_t
struct cvt_dir_entry cvt_dir_entry_t
struct icon_table_entry icon_table_entry_t
_Static_assert(sizeof(file_tr_se_tab_t)==256, "Illegal size of file_tr_se_tab_t")
struct tr_se_pair tr_se_pair_t
char prt_drv_name_t[17]
Definition: geos_types.h:29
uint8_t track_t
Definition: geos_types.h:22
struct font_desc font_desc_t
char file_name_t[DK_NM_ID_LEN]
Definition: geos_types.h:28
struct dir_entry dir_entry_t
struct file_header_block file_header_block_t
struct tr_se_pair file_tr_se_tab_t[128]
Definition: geos_types.h:40
struct icon_table icon_table_t
struct bam_track bam_track_t
void(* vector)(void)
Definition: geos_types.h:25
struct file_header file_header_t
struct mobpos mobpos_t
struct icon_pic icon_pic_t
uint8_t sector_t
Definition: geos_types.h:23
struct dir_header dir_header_t
struct date date_t
char disk_name_t[DK_NM_ID_LEN]
Definition: geos_types.h:27
::uint16_t uint16_t
Definition: cstdint:22
::uint8_t uint8_t
Definition: cstdint:21
Definition: geos_types.h:92
uint8_t no_of_se
Definition: geos_types.h:93
uint8_t bam[3]
Definition: geos_types.h:94
Definition: geos_types.h:81
char signature[28]
Definition: geos_types.h:83
dir_entry_t d
Definition: geos_types.h:82
Definition: geos_types.h:45
uint8_t hour
Definition: geos_types.h:49
uint8_t month
Definition: geos_types.h:47
uint8_t minute
Definition: geos_types.h:50
uint8_t year
Definition: geos_types.h:46
uint8_t day
Definition: geos_types.h:48
Definition: geos_types.h:68
char name[16]
Definition: geos_types.h:71
uint16_t size_in_blocks
Definition: geos_types.h:76
tr_se_pair_t data_block
Definition: geos_types.h:70
tr_se_pair_t header_block
Definition: geos_types.h:72
dos_file_type_t dos_file_type
Definition: geos_types.h:69
date_t date
Definition: geos_types.h:75
file_structure_t structure
Definition: geos_types.h:73
geos_file_type_t type
Definition: geos_types.h:74
Definition: geos_types.h:101
char buffer4[66]
Definition: geos_types.h:115
char buffer2
Definition: geos_types.h:108
char disk_format
Definition: geos_types.h:110
char master_disk
Definition: geos_types.h:114
char buffer3[4]
Definition: geos_types.h:111
char geos_id[16]
Definition: geos_types.h:113
char buffer
Definition: geos_types.h:104
tr_se_pair_t off_page_dir_block
Definition: geos_types.h:112
char c1541_disk_format
Definition: geos_types.h:103
char dos_version
Definition: geos_types.h:109
disk_name_t disk_name
Definition: geos_types.h:106
tr_se_pair_t dir_block
Definition: geos_types.h:102
uint16_t disk_id
Definition: geos_types.h:107
Definition: geos_types.h:57
tr_se_pair_t block_chain
Definition: geos_types.h:58
uint8_t data[254]
Definition: geos_types.h:59
Definition: geos_types.h:158
tr_se_pair_t block_chain
Definition: geos_types.h:159
file_header_t h
Definition: geos_types.h:161
Definition: geos_types.h:124
uint16_t init_prog
Definition: geos_types.h:134
uint8_t icon_data_type
Definition: geos_types.h:127
uint16_t file_start
Definition: geos_types.h:132
char notes[96]
Definition: geos_types.h:151
uint8_t icon_height
Definition: geos_types.h:126
geos_file_type_t geos_file_type
Definition: geos_types.h:130
uint8_t icon_width
Definition: geos_types.h:125
file_structure_t file_structure
Definition: geos_types.h:131
uint8_t dos_file_type
Definition: geos_types.h:129
char par_application[20]
Definition: geos_types.h:147
char file_name[19]
Definition: geos_types.h:136
char application_use[23]
Definition: geos_types.h:150
char par_disk_or_author[20]
Definition: geos_types.h:144
uint8_t c128_flags
Definition: geos_types.h:139
uint16_t file_end
Definition: geos_types.h:133
Definition: geos_types.h:218
uint8_t * data_ptr
Definition: geos_types.h:223
uint8_t baseline
Definition: geos_types.h:219
uint8_t width
Definition: geos_types.h:220
uint8_t height
Definition: geos_types.h:221
uint8_t * index_tbl
Definition: geos_types.h:222
Definition: geos_types.h:210
uint8_t * pic_ptr
Definition: geos_types.h:211
uint8_t card_width
Definition: geos_types.h:214
uint8_t top
Definition: geos_types.h:213
uint8_t heigth
Definition: geos_types.h:215
uint8_t card_left
Definition: geos_types.h:212
Definition: geos_types.h:167
uint8_t height
Definition: geos_types.h:172
vector service_routine
Definition: geos_types.h:173
uint8_t left
Definition: geos_types.h:169
uint8_t width
Definition: geos_types.h:171
uint8_t * graphic_data
Definition: geos_types.h:168
uint8_t top
Definition: geos_types.h:170
Definition: geos_types.h:176
uint8_t num_icons
Definition: geos_types.h:177
uint16_t mouse_x
Definition: geos_types.h:178
uint8_t mouse_y
Definition: geos_types.h:179
icon_table_entry_t icons[]
Definition: geos_types.h:180
Definition: geos_types.h:204
uint8_t values[]
Definition: geos_types.h:207
uint8_t * ptr
Definition: geos_types.h:205
uint8_t count
Definition: geos_types.h:206
Definition: geos_types.h:186
uint8_t action_type
Definition: geos_types.h:188
char * text
Definition: geos_types.h:187
vector handler_function
Definition: geos_types.h:190
menu_tab_t * sub_menu
Definition: geos_types.h:191
Definition: geos_types.h:195
char top
Definition: geos_types.h:196
uint16_t left
Definition: geos_types.h:198
uint8_t menu_type_and_count
Definition: geos_types.h:200
uint16_t right
Definition: geos_types.h:199
menu_item_t items[]
Definition: geos_types.h:201
char bot
Definition: geos_types.h:197
Definition: geos_types.h:226
uint8_t x
Definition: geos_types.h:227
uint8_t y
Definition: geos_types.h:228
Definition: geos_types.h:33
sector_t sector
Definition: geos_types.h:35
track_t track
Definition: geos_types.h:34