1 /*****************************************************************************/
3 /* apple2_filetype.h */
5 /* Apple ][ file type definitions */
9 /* (C) 2000 Kevin Ruland, <kevin@rodin.wustl.edu> */
10 /* (C) 2003 Ullrich von Bassewitz, <uz@cc65.org> */
13 /* This software is provided 'as-is', without any expressed or implied */
14 /* warranty. In no event will the authors be held liable for any damages */
15 /* arising from the use of this software. */
17 /* Permission is granted to anyone to use this software for any purpose, */
18 /* including commercial applications, and to alter it and redistribute it */
19 /* freely, subject to the following restrictions: */
21 /* 1. The origin of this software must not be misrepresented; you must not */
22 /* claim that you wrote the original software. If you use this software */
23 /* in a product, an acknowledgment in the product documentation would be */
24 /* appreciated but is not required. */
25 /* 2. Altered source versions must be plainly marked as such, and must not */
26 /* be misrepresented as being the original software. */
27 /* 3. This notice may not be removed or altered from any source */
30 /*****************************************************************************/
34 #ifndef _APPLE2_FILETYPE_H
35 #define _APPLE2_FILETYPE_H
39 /* Check for errors */
40 #if !defined(__APPLE2__)
41 # error This module may only be used when compiling for the Apple ][!
46 /*****************************************************************************/
48 /*****************************************************************************/
52 /* ProDOS general file types */
53 #define PRODOS_T_UNK 0x00 /* Unknown */
54 #define PRODOS_T_BAD 0x01 /* Bad blocks */
55 #define PRODOS_T_PCD 0x02 /* Pascal code */
56 #define PRODOS_T_PTX 0x03 /* Pascal text */
57 #define PRODOS_T_TXT 0x04 /* ASCII text */
58 #define PRODOS_T_PDA 0x05 /* Pascal data */
59 #define PRODOS_T_BIN 0x06 /* Binary */
60 #define PRODOS_T_FNT 0x07 /* Apple III font */
61 #define PRODOS_T_FOT 0x08 /* Hi-res, dbl hi-res graphics */
62 #define PRODOS_T_BA3 0x09 /* Apple III BASIC program */
63 #define PRODOS_T_DA3 0x09 /* Apple III BASIC data */
64 #define PRODOS_T_WPF 0x0A /* Generic word processing */
65 #define PRODOS_T_SOS 0x0B /* SOS system */
66 #define PRODOS_T_DIR 0x0F /* ProDOS directory */
68 /* ProDOS productivity file types */
69 #define PRODOS_T_RPD 0x10 /* RPS data */
70 #define PRODOS_T_RPI 0x11 /* RPS index */
71 #define PRODOS_T_AFD 0x12 /* AppleFile discard */
72 #define PRODOS_T_AFM 0x13 /* AppleFile model */
73 #define PRODOS_T_AFR 0x14 /* AppleFile report */
74 #define PRODOS_T_SCL 0x15 /* Screen library */
75 #define PRODOS_T_PFS 0x16 /* PFS document */
76 #define PRODOS_T_ADB 0x19 /* AppleWorks database */
77 #define PRODOS_T_AWP 0x1A /* AppleWorks word processing */
78 #define PRODOS_T_ASP 0x1B /* AppleWorks spreadsheet */
80 /* ProDOS code file types */
81 #define PRODOS_T_TDM 0x20 /* Desktop Manager */
82 #define PRODOS_T_IPS 0x21 /* Instant Pascal source */
83 #define PRODOS_T_UPV 0x22 /* USCD Pascal volume */
84 #define PRODOS_T_3SD 0x29 /* SOS directory */
85 #define PRODOS_T_8SC 0x2A /* Source code */
86 #define PRODOS_T_8OB 0x2B /* Object code */
87 #define PRODOS_T_8IC 0x2C /* Interpreted code */
88 #define PRODOS_T_8LD 0x2D /* Language data */
89 #define PRODOS_T_P8C 0x2E /* ProDOS 8 code module */
91 /* ProDOS miscellaneous file types */
92 #define PRODOS_T_OCR 0x41 /* Optical char recognition */
93 #define PRODOS_T_FTD 0x42 /* File type definitions */
95 /* ProDOS Apple IIgs general file types */
96 #define PRODOS_T_GWP 0x50 /* Apple IIgs word processing */
97 #define PRODOS_T_GSS 0x51 /* Apple IIgs spreadsheet */
98 #define PRODOS_T_GDB 0x52 /* Apple IIgs database */
99 #define PRODOS_T_DRW 0x53 /* Object oriented graphics */
100 #define PRODOS_T_GDP 0x54 /* Apple IIgs desktop publish */
101 #define PRODOS_T_HMD 0x55 /* HyperMedia */
102 #define PRODOS_T_EDU 0x56 /* Educational program data */
103 #define PRODOS_T_STN 0x57 /* Stationary */
104 #define PRODOS_T_HLP 0x58 /* Help */
105 #define PRODOS_T_COM 0x59 /* Communications */
106 #define PRODOS_T_CFG 0x5A /* Configuration */
107 #define PRODOS_T_ANM 0x5B /* Animation */
108 #define PRODOS_T_MUM 0x5C /* Multimedia */
109 #define PRODOS_T_ENT 0x5D /* Entertainment */
110 #define PRODOS_T_DVU 0x5E /* Development utility */
112 /* ProDOS PC Transporter file types */
113 #define PRODOS_T_PRE 0x60 /* PC pre-boot */
114 #define PRODOS_T_BIO 0x6B /* PC BIOS */
115 #define PRODOS_T_NCF 0x66 /* ProDOS File Nav command file */
116 #define PRODOS_T_DVR 0x6D /* PC driver */
117 #define PRODOS_T_PRE2 0x6E /* PC pre-boot */
118 #define PRODOS_T_HDV 0x6F /* PC hard disk image */
120 /* ProDOS Kreative Software file types */
121 #define PRODOS_T_SN2 0x70 /* Sabine's Notebook 2.0 */
122 #define PRODOS_T_KMT 0x71
123 #define PRODOS_T_DSR 0x72
124 #define PRODOS_T_BAN 0x73
125 #define PRODOS_T_CG7 0x74
126 #define PRODOS_T_TNJ 0x75
127 #define PRODOS_T_SA7 0x76
128 #define PRODOS_T_KES 0x77
129 #define PRODOS_T_JAP 0x78
130 #define PRODOS_T_CSL 0x79
131 #define PRODOS_T_TME 0x7A
132 #define PRODOS_T_TLB 0x7B
133 #define PRODOS_T_MR7 0x7C
134 #define PRODOS_T_MLR 0x7D /* Mika City */
135 #define PRODOS_T_MMM 0x7E
136 #define PRODOS_T_JCP 0x7F
138 /* ProDOS GEOS file types */
139 #define PRODOS_T_GES 0x80 /* GEOS system file */
140 #define PRODOS_T_GEA 0x81 /* GEOS desk accessory */
141 #define PRODOS_T_GEO 0x82 /* GEOS application */
142 #define PRODOS_T_GED 0x83 /* GEOS document */
143 #define PRODOS_T_GEF 0x84 /* GEOS font */
144 #define PRODOS_T_GEP 0x85 /* GEOS printer driver */
145 #define PRODOS_T_GEI 0x86 /* GEOS input driver */
146 #define PRODOS_T_GEX 0x87 /* GEOS auxiliary driver */
147 #define PRODOS_T_GEV 0x89 /* GEOS swap file */
148 #define PRODOS_T_GEC 0x8B /* GEOS clock driver */
149 #define PRODOS_T_GEK 0x8C /* GEOS interface card driver */
150 #define PRODOS_T_GEW 0x8D /* GEOS formatting data */
152 /* ProDOS Apple IIgs BASIC file types */
153 #define PRODOS_T_WP 0xA0 /* WordPerfect */
154 #define PRODOS_T_GSB 0xAB /* Apple IIgs BASIC program */
155 #define PRODOS_T_TDF 0xAB /* Apple IIgs BASIC TDF */
156 #define PRODOS_T_BDF 0xAB /* Apple IIgs BASIC data */
158 /* ProDOS Apple IIgs system file types */
159 #define PRODOS_T_SRC 0xB0 /* Apple IIgs source code */
160 #define PRODOS_T_OBJ 0xB1 /* Apple IIgs object code */
161 #define PRODOS_T_LIB 0xB2 /* Apple IIgs library */
162 #define PRODOS_T_S16 0xB3 /* Apple IIgs application pgm */
163 #define PRODOS_T_RTL 0xB4 /* Apple IIgs runtime library */
164 #define PRODOS_T_EXE 0xB5 /* Apple IIgs shell script */
165 #define PRODOS_T_PIF 0xB6 /* Apple IIgs permanent init */
166 #define PRODOS_T_TIF 0xB7 /* Apple IIgs temporary init */
167 #define PRODOS_T_NDA 0xB8 /* Apple IIgs new desk accesry */
168 #define PRODOS_T_CDA 0xB9 /* Apple IIgs classic desk aces */
169 #define PRODOS_T_TOL 0xBA /* Apple IIgs tool */
170 #define PRODOS_T_DRV 0xBB /* Apple IIgs device driver */
171 #define PRODOS_T_LDF 0xBC /* Apple IIgs generic load file */
172 #define PRODOS_T_FST 0xBD /* Apple IIgs file sys translat */
173 #define PRODOS_T_DOC 0xBF /* Apple IIgs document */
175 /* ProDOS graphics file types */
176 #define PRODOS_T_PNT 0xC0 /* Apple IIgs packed sup hi-res */
177 #define PRODOS_T_PIC 0xC1 /* Apple IIgs super hi-res */
178 #define PRODOS_T_ANI 0xC2 /* PaintWorks animation */
179 #define PRODOS_T_PAL 0xC3 /* PaintWorks palette */
180 #define PRODOS_T_OOG 0xC5 /* Object-oriented graphics */
181 #define PRODOS_T_SCR 0xC6 /* Script */
182 #define PRODOS_T_CDV 0xC7 /* Apple IIgs control panel */
183 #define PRODOS_T_FON 0xC8 /* Apple IIgs font */
184 #define PRODOS_T_FND 0xC9 /* Apple IIgs Finder data */
185 #define PRODOS_T_ICN 0xCA /* Apple IIgs icon */
187 /* ProDOS audio file types */
188 #define PRODOS_T_MUS 0xD5 /* Music */
189 #define PRODOS_T_INS 0xD6 /* Instrument */
190 #define PRODOS_T_MID 0xD7 /* MIDI */
191 #define PRODOS_T_SND 0xD8 /* Apple IIgs audio */
192 #define PRODOS_T_DBM 0xDB /* DB master document */
194 /* ProDOS miscellaneous file types */
195 #define PRODOS_T_LBR 0xE0 /* Archive */
196 #define PRODOS_T_ATK 0xE2 /* AppleTalk data */
197 #define PRODOS_T_R16 0xEE /* EDASM 816 relocatable code */
198 #define PRODOS_T_PAR 0xEF /* Pascal area */
200 /* ProDOS system file types */
201 #define PRODOS_T_CMD 0xF0 /* ProDOS command file */
202 #define PRODOS_T_OVL 0xF1 /* User defined 1 */
203 #define PRODOS_T_UD2 0xF2 /* User defined 2 */
204 #define PRODOS_T_UD3 0xF3 /* User defined 3 */
205 #define PRODOS_T_UD4 0xF4 /* User defined 4 */
206 #define PRODOS_T_BAT 0xF5 /* User defined 5 */
207 #define PRODOS_T_UD6 0xF6 /* User defined 6 */
208 #define PRODOS_T_UD7 0xF7 /* User defined 7 */
209 #define PRODOS_T_PRG 0xF8 /* User defined 8 */
210 #define PRODOS_T_P16 0xF9 /* ProDOS-16 system file */
211 #define PRODOS_T_INT 0xFA /* Integer BASIC program */
212 #define PRODOS_T_IVR 0xFB /* Integer BASIC variables */
213 #define PRODOS_T_BAS 0xFC /* Applesoft BASIC program */
214 #define PRODOS_T_VAR 0xFD /* Applesoft BASIC variables */
215 #define PRODOS_T_REL 0xFE /* EDASM relocatable code */
216 #define PRODOS_T_SYS 0xFF /* ProDOS-8 system file */
218 /* The auxiliary type of a text file specifies its record length.
219 ** A record length of 0 indicates a sequential text file, which is
220 ** equivalent to text files of other operating systems like MacOS
221 ** or Windows, except that lines are delimited by carriage returns
222 ** only. An auxiliary type value greater than 0 for a text file,
223 ** which is the record length, indicates a random access text file
224 ** with fixed-length lines.
226 #define PRODOS_AUX_T_TXT_SEQ 0x0000 /* Sequential text */
228 /* 8IC auxiliary types */
229 #define PRODOS_AUX_T_8IC_APEX_PGM 0x8003 /* Apex program */
231 /* GWP auxiliary types */
232 #define PRODOS_AUX_T_GWP_TEACH 0x5445 /* Teach */
233 #define PRODOS_AUX_T_GWP_DELUXEWRITE 0x8001 /* DeluxeWrite */
234 #define PRODOS_AUX_T_GWP_APPLEWORKS_GS 0x8010 /* AppleWorks GS */
236 /* GSS auxiliary types */
237 #define PRODOS_AUX_T_GSS_APPLEWORKS_GS 0x8010 /* AppleWorks GS */
239 /* GDB auxiliary types */
240 #define PRODOS_AUX_T_GDB_APPLEWORKS_GS 0x8010 /* AppleWorks GS DB */
241 #define PRODOS_AUX_T_GDB_AWGS_TMPL 0x8011 /* AWGS template */
242 #define PRODOS_AUX_T_GDB_GSAS 0x8013
244 /* DRW auxiliary types */
245 #define PRODOS_AUX_T_DRW_OO_GRAPHICS 0x8013 /* AWGS O-O graphics */
247 /* GDP auxiliary types */
248 #define PRODOS_AUX_T_GDP_GRAPHICWRITER 0x8002 /* A2gs GraphicWriter */
249 #define PRODOS_AUX_T_GDP_APPLEWORKS_GS 0x8010 /* A2gs AWGS */
251 /* HMD auxiliary types */
252 #define PRODOS_AUX_T_HMD_HYPERCARD_GS 0x0001 /* HyperCard GS */
253 #define PRODOS_AUX_T_HMD_TUTOR_TECH 0x8001 /* Tutor-Tech */
254 #define PRODOS_AUX_T_HMD_HYPERSTUDIO 0x8002 /* HyperStudio */
255 #define PRODOS_AUX_T_HMD_NEXUS 0x8003 /* Nexus */
257 /* COM auxiliary types */
258 #define PRODOS_AUX_T_COM_APPLEWORKS_GS 0x8003 /* AppleWorks GS */
260 /* MLR auxiliary types */
261 #define PRODOS_AUX_T_MLR_SCRIPT 0x005C /* Mika City script */
262 #define PRODOS_AUX_T_MLR_COLOR_TABLE 0xC7AB /* Mika City color table */
263 #define PRODOS_AUX_T_MLR_CHARACTER_DEF 0xCDEF /* Mika City character def */
265 /* LDF auxiliary types */
266 #define PRODOS_AUX_T_LDF_NIFTY_LIST_MOD 0x4001 /* Nifty list module */
267 #define PRODOS_AUX_T_LDF_SUPER_INFO_MOD 0x4002 /* Super info module */
268 #define PRODOS_AUX_T_LDF_TWILIGHT_MOD 0x4004 /* Twilight module */
269 #define PRODOS_AUX_T_LDF_MARINETTI_LLM 0x4004 /* Marinetti link layer mod */
271 /* PNT auxiliary types */
272 #define PRODOS_AUX_T_PNT_PK_SUPER_HIRES 0x0001 /* Packed super hi-res */
273 #define PRODOS_AUX_T_PNT_APPLE_PREF 0x0002 /* Apple preferred format */
274 #define PRODOS_AUX_T_PNT_PK_QUICKDRAWII 0x0003 /* Packed QuickDraw II */
276 /* PIC auxiliary types */
277 #define PRODOS_AUX_T_PIC_QUICKDRAW 0x0001 /* QuickDraw image */
278 #define PRODOS_AUX_T_PIC_SHIRES_3200 0x0002 /* Super hi-res 3200 */
280 /* FON auxiliary types */
281 #define PRODOS_AUX_T_FON_QUICKDRAW_BIT 0x0000 /* QuickDraw bitmap font */
282 #define PRODOS_AUX_T_FON_POINTLESS_TT 0x0001 /* Pointless TrueType font */
284 /* SND auxiliary types */
285 #define PRODOS_AUX_T_SND_AIFF 0x0000 /* AIFF */
286 #define PRODOS_AUX_T_SND_AIFF_C 0x0001 /* AIFF-C */
287 #define PRODOS_AUX_T_SND_ASIF_INSTR 0x0002 /* ASIF instrument */
288 #define PRODOS_AUX_T_SND_SOUND_RSRC 0x0003 /* Sound resource */
289 #define PRODOS_AUX_T_SND_MIDI_SYNTH_WAV 0x0004 /* MIDI synth wave */
290 #define PRODOS_AUX_T_SND_HYPERSTUDIO 0x8001 /* HyperStudio sound */
292 /* LBR auxiliary types */
293 #define PRODOS_AUX_T_LBR_ALU 0x0000 /* ALU */
294 #define PRODOS_AUX_T_LBR_APPLE_SINGLE 0x0001 /* AppleSingle */
295 #define PRODOS_AUX_T_LBR_APPLEDBL_HDR 0x0002 /* AppleDouble header */
296 #define PRODOS_AUX_T_LBR_APPLEDBL_DATA 0x0003 /* AppleDouble data */
297 #define PRODOS_AUX_T_LBR_BINARY_II 0x8000 /* Binary II */
298 #define PRODOS_AUX_T_LBR_APPLELINK_ACU 0x8001 /* AppleLink ACU */
299 #define PRODOS_AUX_T_LBR_SHRINKIT 0x8002 /* ShrinkIt */
301 /* LBR auxiliary types */
302 #define PRODOS_AUX_T_ATK_EASYMNT_ALIAS 0x0000 /* EasyMount alias */
304 /* BAS auxiliary types */
305 #define PRODOS_AUX_T_BAS_PGM_LOAD_ADDR 0x0801 /* Applesoft pgm load addr */
307 /* End of apple2_filetype.h */