-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathSAUCE.bi
123 lines (116 loc) · 4.57 KB
/
SAUCE.bi
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
'-----------------------------------------------------------------------------------------------------------------------
' QB64-PE SAUCE Library
' Copyright (c) 2024 Samuel Gomes
'
' See https://github.com/radman1/sauce
'-----------------------------------------------------------------------------------------------------------------------
$INCLUDEONCE
'$INCLUDE:'Common.bi'
'$INCLUDE:'Types.bi'
'$INCLUDE:'PointerOps.bi'
'$INCLUDE:'StringOps.bi'
CONST __SAUCE_RECORD_SIZE~%% = 128~%%
CONST __SAUCE_COMMENT_SIZE~%% = 64~%%
CONST __SAUCE_EOF_CHARACTER~%% = 26~%%
CONST __SAUCE_ID = "SAUCE"
CONST __SAUCE_COMMENT_ID = "COMNT"
CONST SAUCE_DATATYPE_NONE~%% = 0~%%
CONST SAUCE_DATATYPE_CHARACTER~%% = 1~%%
CONST SAUCE_DATATYPE_BITMAP~%% = 2~%%
CONST SAUCE_DATATYPE_VECTOR~%% = 3~%%
CONST SAUCE_DATATYPE_AUDIO~%% = 4~%%
CONST SAUCE_DATATYPE_BINARYTEXT~%% = 5~%%
CONST SAUCE_DATATYPE_XBIN~%% = 6~%%
CONST SAUCE_DATATYPE_ARCHIVE~%% = 7~%%
CONST SAUCE_DATATYPE_EXECUTABLE~%% = 8~%%
CONST __SAUCE_DATATYPE_COUNT~%% = 9~%%
CONST SAUCE_FILETYPE_NONE_UNDEFINED~%% = 0~%%
CONST SAUCE_FILETYPE_CHARACTER_ASCII~%% = 0~%%
CONST SAUCE_FILETYPE_CHARACTER_ANSI~%% = 1~%%
CONST SAUCE_FILETYPE_CHARACTER_ANSIMATION~%% = 2~%%
CONST SAUCE_FILETYPE_CHARACTER_RIPSCRIPT~%% = 3~%%
CONST SAUCE_FILETYPE_CHARACTER_PCBOARD~%% = 4~%%
CONST SAUCE_FILETYPE_CHARACTER_AVATAR~%% = 5~%%
CONST SAUCE_FILETYPE_CHARACTER_HTML~%% = 6~%%
CONST SAUCE_FILETYPE_CHARACTER_SOURCE~%% = 7~%%
CONST SAUCE_FILETYPE_CHARACTER_TUNDRADRAW~%% = 8~%%
CONST SAUCE_FILETYPE_BITMAP_GIF~%% = 0~%%
CONST SAUCE_FILETYPE_BITMAP_PCX~%% = 1~%%
CONST SAUCE_FILETYPE_BITMAP_LBMIFF~%% = 2~%%
CONST SAUCE_FILETYPE_BITMAP_TGA~%% = 3~%%
CONST SAUCE_FILETYPE_BITMAP_FLI~%% = 4~%%
CONST SAUCE_FILETYPE_BITMAP_FLC~%% = 5~%%
CONST SAUCE_FILETYPE_BITMAP_BMP~%% = 6~%%
CONST SAUCE_FILETYPE_BITMAP_GL~%% = 7~%%
CONST SAUCE_FILETYPE_BITMAP_DL~%% = 8~%%
CONST SAUCE_FILETYPE_BITMAP_WPG~%% = 9~%%
CONST SAUCE_FILETYPE_BITMAP_PNG~%% = 10~%%
CONST SAUCE_FILETYPE_BITMAP_JPEG~%% = 11~%%
CONST SAUCE_FILETYPE_BITMAP_MPG~%% = 12~%%
CONST SAUCE_FILETYPE_BITMAP_AVI~%% = 13~%%
CONST SAUCE_FILETYPE_VECTOR_DXF~%% = 0~%%
CONST SAUCE_FILETYPE_VECTOR_DWG~%% = 1~%%
CONST SAUCE_FILETYPE_VECTOR_WPG~%% = 2~%%
CONST SAUCE_FILETYPE_VECTOR_3DS~%% = 3~%%
CONST SAUCE_FILETYPE_AUDIO_MOD~%% = 0~%%
CONST SAUCE_FILETYPE_AUDIO_669~%% = 1~%%
CONST SAUCE_FILETYPE_AUDIO_STM~%% = 2~%%
CONST SAUCE_FILETYPE_AUDIO_S3M~%% = 3~%%
CONST SAUCE_FILETYPE_AUDIO_MTM~%% = 4~%%
CONST SAUCE_FILETYPE_AUDIO_FAR~%% = 5~%%
CONST SAUCE_FILETYPE_AUDIO_ULT~%% = 6~%%
CONST SAUCE_FILETYPE_AUDIO_AMF~%% = 7~%%
CONST SAUCE_FILETYPE_AUDIO_DMF~%% = 8~%%
CONST SAUCE_FILETYPE_AUDIO_OKT~%% = 9~%%
CONST SAUCE_FILETYPE_AUDIO_ROL~%% = 10~%%
CONST SAUCE_FILETYPE_AUDIO_CMF~%% = 11~%%
CONST SAUCE_FILETYPE_AUDIO_MID~%% = 12~%%
CONST SAUCE_FILETYPE_AUDIO_SADT~%% = 13~%%
CONST SAUCE_FILETYPE_AUDIO_VOC~%% = 14~%%
CONST SAUCE_FILETYPE_AUDIO_WAV~%% = 15~%%
CONST SAUCE_FILETYPE_AUDIO_SMP8~%% = 16~%%
CONST SAUCE_FILETYPE_AUDIO_SMP8S~%% = 17~%%
CONST SAUCE_FILETYPE_AUDIO_SMP16~%% = 18~%%
CONST SAUCE_FILETYPE_AUDIO_SMP16S~%% = 19~%%
CONST SAUCE_FILETYPE_AUDIO_PATCH8~%% = 20~%%
CONST SAUCE_FILETYPE_AUDIO_PATCH16~%% = 21~%%
CONST SAUCE_FILETYPE_AUDIO_XM~%% = 22~%%
CONST SAUCE_FILETYPE_AUDIO_HSC~%% = 23~%%
CONST SAUCE_FILETYPE_AUDIO_IT~%% = 24~%%
CONST SAUCE_FILETYPE_XBIN~%% = 0~%%
CONST SAUCE_FILETYPE_ARCHIVE_ZIP~%% = 0~%%
CONST SAUCE_FILETYPE_ARCHIVE_ARJ~%% = 1~%%
CONST SAUCE_FILETYPE_ARCHIVE_LZH~%% = 2~%%
CONST SAUCE_FILETYPE_ARCHIVE_ARC~%% = 3~%%
CONST SAUCE_FILETYPE_ARCHIVE_TAR~%% = 4~%%
CONST SAUCE_FILETYPE_ARCHIVE_ZOO~%% = 5~%%
CONST SAUCE_FILETYPE_ARCHIVE_RAR~%% = 6~%%
CONST SAUCE_FILETYPE_ARCHIVE_UC2~%% = 7~%%
CONST SAUCE_FILETYPE_ARCHIVE_PAK~%% = 8~%%
CONST SAUCE_FILETYPE_ARCHIVE_SQZ~%% = 9~%%
CONST SAUCE_FILETYPE_EXECUTABLE_BINARY~%% = 0~%%
CONST SAUCE_FILETYPE_EXECUTABLE_SCRIPT~%% = SAUCE_FILETYPE_CHARACTER_SOURCE
' This is the actual main SAUCE record that is used internally
TYPE __SAUCERecordType
id AS STRING * 5
version AS _UNSIGNED INTEGER
caption AS STRING * 35
author AS STRING * 20
group AS STRING * 20
date AS STRING * 8
fileSize AS _UNSIGNED LONG
dataType AS _UNSIGNED _BYTE
fileType AS _UNSIGNED _BYTE
tInfo1 AS _UNSIGNED INTEGER
tInfo2 AS _UNSIGNED INTEGER
tInfo3 AS _UNSIGNED INTEGER
tInfo4 AS _UNSIGNED INTEGER
commentLines AS _UNSIGNED _BYTE
tFlags AS _UNSIGNED _BYTE
tInfoS AS STRING * 22
END TYPE
' This is what the caller should use to use the library functions
TYPE SAUCEType
record AS __SAUCERecordType
comments AS STRING ' __SAUCE_COMMENT_SIZE * SAUCERecordType.commentLines
END TYPE