4 ported to small C on 25-27.10.1999
5 by Maciej 'YTM/Elysium' Witkowiak
9 apart from initializing data, structures below can be used to
10 speed up access to data and let cc65 to generate better code
11 e.g. if you have menu defined as TopMenu and you want to change the number of
13 ((struct menu*)&TopMenu)->number=newNumber;
14 This will translate into single lda/sta pair
20 struct f_date { /* date in filedesctiptor */
28 struct s_date { /* system date & time */
37 struct tr_se { /* track and sector */
42 struct fileheader { /* header block (like fileHeader) */
58 struct filehandle { /* filehandle in directory sectors */
59 char dostype; /* or in dirEntryBuf */
69 struct pixel { /* describes point */
74 struct fontdesc { /* describes font */
82 struct window { /* describes screen region */
89 struct VLIR_info { /* VLIR information */
90 char curRecord; /* currently only used in VLIR */
91 char usedRecords; /* as system info (curRecord is mainly of your interest */
96 struct process { /* process info, declare table of that type */
97 int pointer; /* (like: struct process proctab[2]=... */
98 int jiffies; /* last entry HAVE TO BE {0,0} */
102 struct iconpic { /* icon/encoded bitmap description */
103 char *pic_ptr; /* ptr to a photo scrap (or encoded bitmap) */
104 char x; /* position in cards (*8 pixels) */
106 char width; /* in cards */
107 char heigth; /* in lines (pixels) */
110 struct icondef { /* icon definition for DoIcons */
111 char *pic_ptr; /* ptr to a photo scrap (or encoded bitmap) */
112 char x; /* position in cards (*8 pixels) */
114 char width; /* of icon (in cards) */
115 char heigth; /* of icon in lines (pixels) */
116 int proc_ptr; /* pointer to function handling that icon */
120 char number; /* number of declared icons */
121 struct pixel mousepos; /* position of mouse after DoIcons */
122 struct icondef tab[]; /* table of size declared by icontab.number */
129 void *rest; /* may be ptr to function, or ptr to struct menu (submenu) */
135 struct menuitem items[];
138 struct inittab { /* use struct inittab mytab[n] for initram */
139 int ptr; /* ptr to 1st byte */
140 char number; /* number of following bytes */
141 char values[]; /* actual string of bytes */