Subversion Repositories Kolibri OS

Rev

Rev 6315 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6315 Rev 6322
1
format MS COFF
1
format MS COFF
2
public EXPORTS
2
public EXPORTS
3
section '.flat' code readable align 16
3
section '.flat' code readable align 16
4
 
4
 
5
include '../../../../macros.inc'
5
include '../../../../macros.inc'
6
include '../../../../proc32.inc'
6
include '../../../../proc32.inc'
7
 
7
 
8
 
8
 
9
 
9
 
10
;---------
10
;---------
11
offs_m_or_i    equ  8 ;ᬥ饭¨¥ ¯ à ¬¥âà  'MM' ¨«¨ 'II' (Motorola, Intel)
11
offs_m_or_i    equ  8 ;ᬥ饭¨¥ ¯ à ¬¥âà  'MM' ¨«¨ 'II' (Motorola, Intel)
12
offs_id_gr     equ 10 ;ᬥ饭¨¥ id group
12
offs_id_gr     equ 10 ;ᬥ饭¨¥ id group
13
offs_id_gr_mak equ 12 ;ᬥ饭¨¥ id group ¯à®¨§¢®¤¨â¥«ï
13
offs_id_gr_mak equ 12 ;ᬥ饭¨¥ id group ¯à®¨§¢®¤¨â¥«ï
14
offs_tag_0     equ  2 ;ᬥ饭¨¥ 0-£® ⥣ 
14
offs_tag_0     equ  2 ;ᬥ饭¨¥ 0-£® ⥣ 
15
tag_size       equ 12 ;à §¬¥à áâàãªâãàë ⥣ 
15
tag_size       equ 12 ;à §¬¥à áâàãªâãàë ⥣ 
16
;ä®à¬ âë ¤ ­­ëå
16
;ä®à¬ âë ¤ ­­ëå
17
tag_format_ui1b  equ  1 ;unsigned integer 1 byte
17
tag_format_ui1b  equ  1 ;unsigned integer 1 byte
18
tag_format_text  equ  2 ;ascii string
18
tag_format_text  equ  2 ;ascii string
19
tag_format_ui2b  equ  3 ;unsigned integer 2 byte
19
tag_format_ui2b  equ  3 ;unsigned integer 2 byte
20
tag_format_ui4b  equ  4 ;unsigned integer 4 byte
20
tag_format_ui4b  equ  4 ;unsigned integer 4 byte
21
tag_format_urb   equ  5 ;unsigned integer 4/4 byte
21
tag_format_urb   equ  5 ;unsigned integer 4/4 byte
22
tag_format_si1b  equ  6 ;signed integer 1 byte
22
tag_format_si1b  equ  6 ;signed integer 1 byte
23
tag_format_undef equ  7 ;undefined
23
tag_format_undef equ  7 ;undefined
24
tag_format_si2b  equ  8 ;signed integer 2 byte
24
tag_format_si2b  equ  8 ;signed integer 2 byte
25
tag_format_si4b  equ  9 ;signed integer 4 byte
25
tag_format_si4b  equ  9 ;signed integer 4 byte
26
tag_format_srb   equ 10 ;signed integer 4/4 byte
26
tag_format_srb   equ 10 ;signed integer 4/4 byte
27
tag_format_f4b	 equ 11 ;float 4 byte
27
tag_format_f4b	 equ 11 ;float 4 byte
28
tag_format_f8b	 equ 12 ;float 8 byte
28
tag_format_f8b	 equ 12 ;float 8 byte
29
 
29
 
30
align 4
30
align 4
31
txt_dp db ': ',0
31
txt_dp db ': ',0
32
txt_zap db ', ',0
32
txt_zap db ', ',0
33
txt_div db '/',0
33
txt_div db '/',0
34
 
34
 
35
;§ £®«®¢®ª â ¡«¨æ á £à㯯 ¬¨ ⥣®¢
35
;§ £®«®¢®ª â ¡«¨æ á £à㯯 ¬¨ ⥣®¢
36
align 4
36
align 4
37
exif_tag_numbers:
37
exif_tag_numbers:
38
dd 0,      gr_0    ;£à㯯  app1
38
dd 0,      gr_0    ;£à㯯  app1
39
dd 0x8769, gr_8769 ;Exif offset
39
dd 0x8769, gr_8769 ;Exif offset
40
dd 0xa005, gr_a005 ;Interop offset
40
dd 0xa005, gr_a005 ;Interop offset
41
dd 0x8825, gr_8825 ;GPS info
41
dd 0x8825, gr_8825 ;GPS info
42
 
42
 
43
;£àã¯ë app2 (§¤¥áì ã ª ¦¤®£® ¯à®¨§¢®¤¨â¥«ï ª ¬¥à ᢮© ä®à¬ â ⥣®¢)
43
;£àã¯ë app2 (§¤¥áì ã ª ¦¤®£® ¯à®¨§¢®¤¨â¥«ï ª ¬¥à ᢮© ä®à¬ â ⥣®¢)
44
dw 0x927c ;app2 ¤«ï Nikon
44
dw 0x927c ;app2 ¤«ï Nikon
45
db 'Ni'
45
db 'Ni'
46
dd gr_927c_Ni
46
dd gr_927c_Ni
47
 
47
 
48
dw 0x927c ;app2 ¤«ï Panasonic
48
dw 0x927c ;app2 ¤«ï Panasonic
49
db 'Pa'
49
db 'Pa'
50
dd gr_927c_Pa
50
dd gr_927c_Pa
51
 
51
 
52
dw 0x927c ;app2 ¤«ï Canon
52
dw 0x927c ;app2 ¤«ï Canon
53
db 'Ca'
53
db 'Ca'
54
dd gr_927c_Ca
54
dd gr_927c_Ca
55
 
55
 
56
dw 0x927c ;app2 ¤«ï Samsung
56
dw 0x927c ;app2 ¤«ï Samsung
57
db 'Sa'
57
db 'Sa'
58
dd gr_927c_Sa
58
dd gr_927c_Sa
59
.end:
59
.end:
60
 
60
 
61
align 4
61
align 4
62
gr_0:
62
gr_0:
63
db 0x00,0x0b,'Processing software',0
63
db 0x00,0x0b,'Processing software',0
64
db 0x00,0xfe,'Subfile type',0
64
db 0x00,0xfe,'Subfile type',0
65
db 0x00,0xff,'OldSubfile type',0
65
db 0x00,0xff,'OldSubfile type',0
66
db 0x01,0x00,'Image width',0
66
db 0x01,0x00,'Image width',0
67
db 0x01,0x01,'Image height',0
67
db 0x01,0x01,'Image height',0
68
db 0x01,0x02,'Bits per sample',0
68
db 0x01,0x02,'Bits per sample',0
69
db 0x01,0x03,'Compression',0
69
db 0x01,0x03,'Compression',0
70
db 0x01,0x06,'Photometric interpretation',0
70
db 0x01,0x06,'Photometric interpretation',0
71
db 0x01,0x07,'Thresholding',0
71
db 0x01,0x07,'Thresholding',0
72
db 0x01,0x08,'Cell width',0
72
db 0x01,0x08,'Cell width',0
73
db 0x01,0x09,'Cell length',0
73
db 0x01,0x09,'Cell length',0
74
db 0x01,0x0a,'Fill order',0
74
db 0x01,0x0a,'Fill order',0
75
db 0x01,0x0d,'Document name',0
75
db 0x01,0x0d,'Document name',0
76
db 0x01,0x0e,'Image description',0
76
db 0x01,0x0e,'Image description',0
77
db 0x01,0x0f,'Manufacturer of digicam',0
77
db 0x01,0x0f,'Manufacturer of digicam',0
78
db 0x01,0x10,'Model',0
78
db 0x01,0x10,'Model',0
79
db 0x01,0x11,'Strip offsets',0
79
db 0x01,0x11,'Strip offsets',0
80
db 0x01,0x12,'Orientation',0
80
db 0x01,0x12,'Orientation',0
81
db 0x01,0x15,'Samples per pixel',0
81
db 0x01,0x15,'Samples per pixel',0
82
db 0x01,0x16,'Rows per strip',0
82
db 0x01,0x16,'Rows per strip',0
83
db 0x01,0x17,'Strip byte counts',0
83
db 0x01,0x17,'Strip byte counts',0
84
db 0x01,0x18,'Min sample value',0
84
db 0x01,0x18,'Min sample value',0
85
db 0x01,0x19,'Max sample value',0
85
db 0x01,0x19,'Max sample value',0
86
db 0x01,0x1a,'X resolution',0
86
db 0x01,0x1a,'X resolution',0
87
db 0x01,0x1b,'Y resolution',0
87
db 0x01,0x1b,'Y resolution',0
88
db 0x01,0x1c,'Planar configuration',0
88
db 0x01,0x1c,'Planar configuration',0
89
db 0x01,0x1d,'Page name',0
89
db 0x01,0x1d,'Page name',0
90
db 0x01,0x1e,'X position',0
90
db 0x01,0x1e,'X position',0
91
db 0x01,0x1f,'Y position',0
91
db 0x01,0x1f,'Y position',0
92
db 0x01,0x20,'Free offsets',0
92
db 0x01,0x20,'Free offsets',0
93
db 0x01,0x21,'Free byte counts',0
93
db 0x01,0x21,'Free byte counts',0
94
db 0x01,0x22,'Gray response unit',0
94
db 0x01,0x22,'Gray response unit',0
95
db 0x01,0x23,'Gray response curve',0
95
db 0x01,0x23,'Gray response curve',0
96
db 0x01,0x24,'T4 options',0
96
db 0x01,0x24,'T4 options',0
97
db 0x01,0x25,'T6 options',0
97
db 0x01,0x25,'T6 options',0
98
db 0x01,0x28,'Resolution unit',0
98
db 0x01,0x28,'Resolution unit',0
99
db 0x01,0x29,'Page number',0
99
db 0x01,0x29,'Page number',0
100
db 0x01,0x2c,'Color response unit',0
100
db 0x01,0x2c,'Color response unit',0
101
db 0x01,0x2d,'Transfer function',0
101
db 0x01,0x2d,'Transfer function',0
102
db 0x01,0x31,'Software',0
102
db 0x01,0x31,'Software',0
103
db 0x01,0x32,'Modify date',0
103
db 0x01,0x32,'Modify date',0
104
db 0x01,0x3b,'Artist',0
104
db 0x01,0x3b,'Artist',0
105
db 0x01,0x3c,'Host computer',0
105
db 0x01,0x3c,'Host computer',0
106
db 0x01,0x3d,'Predictor',0
106
db 0x01,0x3d,'Predictor',0
107
db 0x01,0x3e,'White point',0
107
db 0x01,0x3e,'White point',0
108
db 0x01,0x3f,'Primary chromaticities',0
108
db 0x01,0x3f,'Primary chromaticities',0
109
db 0x01,0x40,'Color map',0
109
db 0x01,0x40,'Color map',0
110
db 0x01,0x41,'Halftone hints',0
110
db 0x01,0x41,'Halftone hints',0
111
db 0x01,0x42,'Tile width',0
111
db 0x01,0x42,'Tile width',0
112
db 0x01,0x43,'Tile length',0
112
db 0x01,0x43,'Tile length',0
113
db 0x01,0x44,'Tile offsets',0
113
db 0x01,0x44,'Tile offsets',0
114
db 0x01,0x45,'Tile byte counts',0
114
db 0x01,0x45,'Tile byte counts',0
115
db 0x01,0x46,'Bad fax lines',0
115
db 0x01,0x46,'Bad fax lines',0
116
db 0x01,0x47,'Clean fax data',0
116
db 0x01,0x47,'Clean fax data',0
117
db 0x01,0x48,'Consecutive bad fax lines',0
117
db 0x01,0x48,'Consecutive bad fax lines',0
118
db 0x01,0x4a,'Sub IFDs',0
118
db 0x01,0x4a,'Sub IFDs',0
119
db 0x01,0x4c,'Ink set',0
119
db 0x01,0x4c,'Ink set',0
120
db 0x01,0x4d,'Ink names',0
120
db 0x01,0x4d,'Ink names',0
121
db 0x01,0x4e,'Numberof inks',0
121
db 0x01,0x4e,'Numberof inks',0
122
db 0x01,0x50,'Dot range',0
122
db 0x01,0x50,'Dot range',0
123
db 0x01,0x51,'Target printer',0
123
db 0x01,0x51,'Target printer',0
124
db 0x01,0x52,'Extra samples',0
124
db 0x01,0x52,'Extra samples',0
125
db 0x01,0x53,'Sample format',0
125
db 0x01,0x53,'Sample format',0
126
db 0x01,0x54,'SMin sample value',0
126
db 0x01,0x54,'SMin sample value',0
127
db 0x01,0x55,'SMax sample value',0
127
db 0x01,0x55,'SMax sample value',0
128
db 0x01,0x56,'Transfer range',0
128
db 0x01,0x56,'Transfer range',0
129
db 0x01,0x57,'Clip path',0
129
db 0x01,0x57,'Clip path',0
130
db 0x01,0x58,'X clip path units',0
130
db 0x01,0x58,'X clip path units',0
131
db 0x01,0x59,'Y clip path units',0
131
db 0x01,0x59,'Y clip path units',0
132
db 0x01,0x5a,'Indexed',0
132
db 0x01,0x5a,'Indexed',0
133
db 0x01,0x5b,'JPEG tables',0
133
db 0x01,0x5b,'JPEG tables',0
134
db 0x01,0x5f,'OPIProxy',0
134
db 0x01,0x5f,'OPIProxy',0
135
db 0x01,0x90,'Global parameters IFD',0
135
db 0x01,0x90,'Global parameters IFD',0
136
db 0x01,0x91,'Profile type',0
136
db 0x01,0x91,'Profile type',0
137
db 0x01,0x92,'Fax profile',0
137
db 0x01,0x92,'Fax profile',0
138
db 0x01,0x93,'Coding methods',0
138
db 0x01,0x93,'Coding methods',0
139
db 0x01,0x94,'Version year',0
139
db 0x01,0x94,'Version year',0
140
db 0x01,0x95,'Mode number',0
140
db 0x01,0x95,'Mode number',0
141
db 0x01,0xb1,'Decode',0
141
db 0x01,0xb1,'Decode',0
142
db 0x01,0xb2,'Default image color',0
142
db 0x01,0xb2,'Default image color',0
143
db 0x01,0xb3,'T82 options',0
143
db 0x01,0xb3,'T82 options',0
144
db 0x01,0xb5,'JPEG tables',0 ;㦥 ¡ë«® ?
144
db 0x01,0xb5,'JPEG tables',0 ;㦥 ¡ë«® ?
145
db 0x02,0x00,'JPEG proc',0
145
db 0x02,0x00,'JPEG proc',0
146
db 0x02,0x01,'Thumbnail offset',0
146
db 0x02,0x01,'Thumbnail offset',0
147
db 0x02,0x02,'Thumbnail length',0
147
db 0x02,0x02,'Thumbnail length',0
148
db 0x02,0x03,'JPEG restart interval',0
148
db 0x02,0x03,'JPEG restart interval',0
149
db 0x02,0x05,'JPEG lossless predictors',0
149
db 0x02,0x05,'JPEG lossless predictors',0
150
db 0x02,0x06,'JPEG point transforms',0
150
db 0x02,0x06,'JPEG point transforms',0
151
db 0x02,0x07,'JPEG QTables',0
151
db 0x02,0x07,'JPEG QTables',0
152
db 0x02,0x08,'JPEG DCTables',0
152
db 0x02,0x08,'JPEG DCTables',0
153
db 0x02,0x09,'JPEG ACTables',0
153
db 0x02,0x09,'JPEG ACTables',0
154
db 0x02,0x11,'YCbCrCoefficients',0
154
db 0x02,0x11,'YCbCrCoefficients',0
155
db 0x02,0x12,'YCbCrSubSampling',0
155
db 0x02,0x12,'YCbCrSubSampling',0
156
db 0x02,0x13,'YCbCrPositioning',0
156
db 0x02,0x13,'YCbCrPositioning',0
157
db 0x02,0x14,'Reference black white',0
157
db 0x02,0x14,'Reference black white',0
158
db 0x02,0x2f,'Strip row counts',0
158
db 0x02,0x2f,'Strip row counts',0
159
db 0x03,0xe7,'USPTO Miscellaneous',0
159
db 0x03,0xe7,'USPTO Miscellaneous',0
160
db 0x47,0x46,'Rating',0
160
db 0x47,0x46,'Rating',0
161
db 0x47,0x47,'XP_DIP_XML',0
161
db 0x47,0x47,'XP_DIP_XML',0
162
db 0x47,0x48,'Stitch info',0
162
db 0x47,0x48,'Stitch info',0
163
db 0x47,0x49,'Rating percent',0
163
db 0x47,0x49,'Rating percent',0
164
db 0x80,0x0d,'Image ID',0
164
db 0x80,0x0d,'Image ID',0
165
db 0x80,0xa3,'Wang tag 1',0
165
db 0x80,0xa3,'Wang tag 1',0
166
db 0x80,0xa4,'Wang annotation',0
166
db 0x80,0xa4,'Wang annotation',0
167
db 0x80,0xa5,'Wang tag 3',0
167
db 0x80,0xa5,'Wang tag 3',0
168
db 0x80,0xa6,'Wang tag 4',0
168
db 0x80,0xa6,'Wang tag 4',0
169
db 0x80,0xe3,'Matteing',0
169
db 0x80,0xe3,'Matteing',0
170
db 0x80,0xe4,'Data type',0
170
db 0x80,0xe4,'Data type',0
171
db 0x80,0xe5,'Image depth',0
171
db 0x80,0xe5,'Image depth',0
172
db 0x80,0xe6,'Tile depth',0
172
db 0x80,0xe6,'Tile depth',0
173
db 0x82,0x7d,'Model 2',0
173
db 0x82,0x7d,'Model 2',0
174
db 0x82,0x8d,'CFA repeat pattern dim',0
174
db 0x82,0x8d,'CFA repeat pattern dim',0
175
db 0x82,0x8e,'CFA pattern 2',0
175
db 0x82,0x8e,'CFA pattern 2',0
176
db 0x82,0x8f,'Battery level',0
176
db 0x82,0x8f,'Battery level',0
177
db 0x82,0x90,'Kodak IFD',0
177
db 0x82,0x90,'Kodak IFD',0
178
db 0x82,0x98,'Copyright',0
178
db 0x82,0x98,'Copyright',0
179
db 0x82,0xa5,'MD file tag',0
179
db 0x82,0xa5,'MD file tag',0
180
db 0x82,0xa6,'MD scale pixel',0
180
db 0x82,0xa6,'MD scale pixel',0
181
db 0x82,0xa7,'MD color table',0
181
db 0x82,0xa7,'MD color table',0
182
db 0x82,0xa8,'MD lab name',0
182
db 0x82,0xa8,'MD lab name',0
183
db 0x82,0xa9,'MD sample info',0
183
db 0x82,0xa9,'MD sample info',0
184
db 0x82,0xaa,'MD prep date',0
184
db 0x82,0xaa,'MD prep date',0
185
db 0x82,0xab,'MD prep time',0
185
db 0x82,0xab,'MD prep time',0
186
db 0x82,0xac,'MD file units',0
186
db 0x82,0xac,'MD file units',0
187
db 0x83,0x0e,'Pixel scale',0
187
db 0x83,0x0e,'Pixel scale',0
188
db 0x83,0x35,'Advent scale',0
188
db 0x83,0x35,'Advent scale',0
189
db 0x83,0x36,'Advent revision',0
189
db 0x83,0x36,'Advent revision',0
190
db 0x83,0x5c,'UIC1 tag',0
190
db 0x83,0x5c,'UIC1 tag',0
191
db 0x83,0x5d,'UIC2 tag',0
191
db 0x83,0x5d,'UIC2 tag',0
192
db 0x83,0x5e,'UIC3 tag',0
192
db 0x83,0x5e,'UIC3 tag',0
193
db 0x83,0x5f,'UIC4 tag',0
193
db 0x83,0x5f,'UIC4 tag',0
194
db 0x83,0xbb,'IPTC-NAA',0
194
db 0x83,0xbb,'IPTC-NAA',0
195
db 0x84,0x7e,'Intergraph packet data',0
195
db 0x84,0x7e,'Intergraph packet data',0
196
db 0x84,0x7f,'Intergraph flag registers',0
196
db 0x84,0x7f,'Intergraph flag registers',0
197
db 0x84,0x80,'Intergraph matrix',0
197
db 0x84,0x80,'Intergraph matrix',0
198
db 0x84,0x81,'INGR reserved',0
198
db 0x84,0x81,'INGR reserved',0
199
db 0x84,0x82,'Model tie point',0
199
db 0x84,0x82,'Model tie point',0
200
db 0x84,0xe0,'Site',0
200
db 0x84,0xe0,'Site',0
201
db 0x84,0xe1,'Color sequence',0
201
db 0x84,0xe1,'Color sequence',0
202
db 0x84,0xe2,'IT8 header',0
202
db 0x84,0xe2,'IT8 header',0
203
db 0x84,0xe3,'Raster padding',0
203
db 0x84,0xe3,'Raster padding',0
204
db 0x84,0xe4,'Bits per run length',0
204
db 0x84,0xe4,'Bits per run length',0
205
db 0x84,0xe5,'Bits per extended run length',0
205
db 0x84,0xe5,'Bits per extended run length',0
206
db 0x84,0xe6,'Color table',0
206
db 0x84,0xe6,'Color table',0
207
db 0x84,0xe7,'Image color indicator',0
207
db 0x84,0xe7,'Image color indicator',0
208
db 0x84,0xe8,'Background color indicator',0
208
db 0x84,0xe8,'Background color indicator',0
209
db 0x84,0xe9,'Image color value',0
209
db 0x84,0xe9,'Image color value',0
210
db 0x84,0xea,'Background color value',0
210
db 0x84,0xea,'Background color value',0
211
db 0x84,0xeb,'Pixel intensity range',0
211
db 0x84,0xeb,'Pixel intensity range',0
212
db 0x84,0xec,'Transparency indicator',0
212
db 0x84,0xec,'Transparency indicator',0
213
db 0x84,0xed,'Color characterization',0
213
db 0x84,0xed,'Color characterization',0
214
db 0x84,0xee,'HCUsage',0
214
db 0x84,0xee,'HCUsage',0
215
db 0x84,0xef,'Trap indicator',0
215
db 0x84,0xef,'Trap indicator',0
216
db 0x84,0xf0,'CMYK equivalent',0
216
db 0x84,0xf0,'CMYK equivalent',0
217
db 0x85,0x46,'SEM info',0
217
db 0x85,0x46,'SEM info',0
218
db 0x85,0x68,'AFCP_IPTC',0
218
db 0x85,0x68,'AFCP_IPTC',0
219
db 0x85,0xb8,'Pixel magic JBIG options',0
219
db 0x85,0xb8,'Pixel magic JBIG options',0
220
db 0x85,0xd8,'Model transform',0
220
db 0x85,0xd8,'Model transform',0
221
db 0x86,0x02,'WB_GRGB levels',0
221
db 0x86,0x02,'WB_GRGB levels',0
222
db 0x86,0x06,'Leaf data',0
222
db 0x86,0x06,'Leaf data',0
223
db 0x86,0x49,'Photoshop settings',0
223
db 0x86,0x49,'Photoshop settings',0
224
db 0x87,0x69,'Exif offset',0
224
db 0x87,0x69,'Exif offset',0
225
db 0x87,0x73,'ICC_Profile',0
225
db 0x87,0x73,'ICC_Profile',0
226
db 0x87,0x7f,'TIFF_FX extensions',0
226
db 0x87,0x7f,'TIFF_FX extensions',0
227
db 0x87,0x80,'Multi profiles',0
227
db 0x87,0x80,'Multi profiles',0
228
db 0x87,0x81,'Shared data',0
228
db 0x87,0x81,'Shared data',0
229
db 0x87,0x82,'T88 options',0
229
db 0x87,0x82,'T88 options',0
230
db 0x87,0xac,'Image layer',0
230
db 0x87,0xac,'Image layer',0
231
db 0x87,0xaf,'Geo tiff directory',0
231
db 0x87,0xaf,'Geo tiff directory',0
232
db 0x87,0xb0,'Geo tiff double params',0
232
db 0x87,0xb0,'Geo tiff double params',0
233
db 0x87,0xb1,'Geo tiff ascii params',0
233
db 0x87,0xb1,'Geo tiff ascii params',0
234
db 0x88,0x25,'GPS info',0
234
db 0x88,0x25,'GPS info',0
235
db 0x88,0x28,'Opto-Electric conv factor',0
235
db 0x88,0x28,'Opto-Electric conv factor',0
236
db 0x88,0x29,'Interlace',0
236
db 0x88,0x29,'Interlace',0
237
db 0x88,0x5c,'Fax recv params',0
237
db 0x88,0x5c,'Fax recv params',0
238
db 0x88,0x5d,'Fax sub address',0
238
db 0x88,0x5d,'Fax sub address',0
239
db 0x88,0x5e,'Fax recv time',0
239
db 0x88,0x5e,'Fax recv time',0
240
db 0x88,0x8a,'Leaf sub IFD',0
240
db 0x88,0x8a,'Leaf sub IFD',0
241
db 0x92,0x0b,'Flash energy',0
241
db 0x92,0x0b,'Flash energy',0
242
db 0x92,0x0c,'Spatial frequency response',0
242
db 0x92,0x0c,'Spatial frequency response',0
243
db 0x92,0x0d,'Noise',0
243
db 0x92,0x0d,'Noise',0
244
db 0x92,0x0e,'Focal plane X resolution',0
244
db 0x92,0x0e,'Focal plane X resolution',0
245
db 0x92,0x0f,'Focal plane Y resolution',0
245
db 0x92,0x0f,'Focal plane Y resolution',0
246
db 0x92,0x10,'Focal plane resolution unit',0
246
db 0x92,0x10,'Focal plane resolution unit',0
247
db 0x92,0x15,'Exposure index',0
247
db 0x92,0x15,'Exposure index',0
248
db 0x92,0x16,'TIFF-EP standard ID',0
248
db 0x92,0x16,'TIFF-EP standard ID',0
249
db 0x92,0x17,'Sensing method',0
249
db 0x92,0x17,'Sensing method',0
250
db 0x92,0x3a,'CIP3 data file',0
250
db 0x92,0x3a,'CIP3 data file',0
251
db 0x92,0x3b,'CIP3 sheet',0
251
db 0x92,0x3b,'CIP3 sheet',0
252
db 0x92,0x3c,'CIP3 side',0
252
db 0x92,0x3c,'CIP3 side',0
253
db 0x92,0x3f,'Sto nits',0
253
db 0x92,0x3f,'Sto nits',0
254
db 0x93,0x2f,'MS document text',0
254
db 0x93,0x2f,'MS document text',0
255
db 0x93,0x30,'MS property set storage',0
255
db 0x93,0x30,'MS property set storage',0
256
db 0x93,0x31,'MS document text position',0
256
db 0x93,0x31,'MS document text position',0
257
db 0x93,0x5c,'Image source data',0
257
db 0x93,0x5c,'Image source data',0
258
db 0x9c,0x9b,'XP title',0
258
db 0x9c,0x9b,'XP title',0
259
db 0x9c,0x9c,'XP comment',0
259
db 0x9c,0x9c,'XP comment',0
260
db 0x9c,0x9d,'XP author',0
260
db 0x9c,0x9d,'XP author',0
261
db 0x9c,0x9e,'XP keywords',0
261
db 0x9c,0x9e,'XP keywords',0
262
db 0x9c,0x9f,'XP subject',0
262
db 0x9c,0x9f,'XP subject',0
263
db 0xa2,0x0c,'Spatial frequency fesponse',0
263
db 0xa2,0x0c,'Spatial frequency fesponse',0
264
db 0xa2,0x0d,'Noise',0
264
db 0xa2,0x0d,'Noise',0
265
db 0xa2,0x11,'Image number',0
265
db 0xa2,0x11,'Image number',0
266
db 0xa2,0x12,'Security classification',0
266
db 0xa2,0x12,'Security classification',0
267
db 0xa2,0x13,'Image history',0
267
db 0xa2,0x13,'Image history',0
268
db 0xa2,0x16,'TIFF-EP standard ID',0
268
db 0xa2,0x16,'TIFF-EP standard ID',0
269
db 0xa4,0x80,'GDAL metadata',0
269
db 0xa4,0x80,'GDAL metadata',0
270
db 0xa4,0x81,'GDAL no data',0
270
db 0xa4,0x81,'GDAL no data',0
271
db 0xaf,0xc0,'Expand software',0
271
db 0xaf,0xc0,'Expand software',0
272
db 0xaf,0xc1,'Expand lens',0
272
db 0xaf,0xc1,'Expand lens',0
273
db 0xaf,0xc2,'Expand film',0
273
db 0xaf,0xc2,'Expand film',0
274
db 0xaf,0xc3,'Expand filterLens',0
274
db 0xaf,0xc3,'Expand filterLens',0
275
db 0xaf,0xc4,'Expand scanner',0
275
db 0xaf,0xc4,'Expand scanner',0
276
db 0xaf,0xc5,'Expand flash lamp',0
276
db 0xaf,0xc5,'Expand flash lamp',0
277
db 0xbc,0x01,'Pixel format',0
277
db 0xbc,0x01,'Pixel format',0
278
db 0xbc,0x02,'Transformation',0
278
db 0xbc,0x02,'Transformation',0
279
db 0xbc,0x03,'Uncompressed',0
279
db 0xbc,0x03,'Uncompressed',0
280
db 0xbc,0x04,'Image type',0
280
db 0xbc,0x04,'Image type',0
281
db 0xbc,0x80,'Image width',0
281
db 0xbc,0x80,'Image width',0
282
db 0xbc,0x81,'Image height',0
282
db 0xbc,0x81,'Image height',0
283
db 0xbc,0x82,'Width resolution',0
283
db 0xbc,0x82,'Width resolution',0
284
db 0xbc,0x83,'Height resolution',0
284
db 0xbc,0x83,'Height resolution',0
285
db 0xbc,0xc0,'Image offset',0
285
db 0xbc,0xc0,'Image offset',0
286
db 0xbc,0xc1,'Image byte count',0
286
db 0xbc,0xc1,'Image byte count',0
287
db 0xbc,0xc2,'Alpha offset',0
287
db 0xbc,0xc2,'Alpha offset',0
288
db 0xbc,0xc3,'Alpha byte count',0
288
db 0xbc,0xc3,'Alpha byte count',0
289
db 0xbc,0xc4,'Image data discard',0
289
db 0xbc,0xc4,'Image data discard',0
290
db 0xbc,0xc5,'Alpha data discard',0
290
db 0xbc,0xc5,'Alpha data discard',0
291
db 0xc4,0x27,'Oce scanjob desc',0
291
db 0xc4,0x27,'Oce scanjob desc',0
292
db 0xc4,0x28,'Oce application selector',0
292
db 0xc4,0x28,'Oce application selector',0
293
db 0xc4,0x29,'Oce ID number',0
293
db 0xc4,0x29,'Oce ID number',0
294
db 0xc4,0x2a,'Oce image logic',0
294
db 0xc4,0x2a,'Oce image logic',0
295
db 0xc4,0x4f,'Annotations',0
295
db 0xc4,0x4f,'Annotations',0
296
db 0xc4,0xa5,'Print IM',0
296
db 0xc4,0xa5,'Print IM',0
297
db 0xc5,0x73,'Original file name',0
297
db 0xc5,0x73,'Original file name',0
298
db 0xc5,0x80,'USPTO original content type',0
298
db 0xc5,0x80,'USPTO original content type',0
299
db 0xc6,0x12,'DNG version',0
299
db 0xc6,0x12,'DNG version',0
300
db 0xc6,0x13,'DNG backward version',0
300
db 0xc6,0x13,'DNG backward version',0
301
db 0xc6,0x14,'Unique camera model',0
301
db 0xc6,0x14,'Unique camera model',0
302
db 0xc6,0x15,'Localized camera model',0
302
db 0xc6,0x15,'Localized camera model',0
303
db 0xc6,0x16,'CFA plane color',0
303
db 0xc6,0x16,'CFA plane color',0
304
db 0xc6,0x17,'CFA layout',0
304
db 0xc6,0x17,'CFA layout',0
305
db 0xc6,0x18,'Linearization table',0
305
db 0xc6,0x18,'Linearization table',0
306
db 0xc6,0x19,'Black level repeat dim',0
306
db 0xc6,0x19,'Black level repeat dim',0
307
db 0xc6,0x1a,'Black level',0
307
db 0xc6,0x1a,'Black level',0
308
db 0xc6,0x1b,'Black level delta H',0
308
db 0xc6,0x1b,'Black level delta H',0
309
db 0xc6,0x1c,'Black level delta V',0
309
db 0xc6,0x1c,'Black level delta V',0
310
db 0xc6,0x1d,'White level',0
310
db 0xc6,0x1d,'White level',0
311
db 0xc6,0x1e,'Default scale',0
311
db 0xc6,0x1e,'Default scale',0
312
db 0xc6,0x1f,'Default crop origin',0
312
db 0xc6,0x1f,'Default crop origin',0
313
db 0xc6,0x20,'Default crop size',0
313
db 0xc6,0x20,'Default crop size',0
314
db 0xc6,0x21,'Color matrix 1',0
314
db 0xc6,0x21,'Color matrix 1',0
315
db 0xc6,0x22,'Color matrix 2',0
315
db 0xc6,0x22,'Color matrix 2',0
316
db 0xc6,0x23,'Camera calibration 1',0
316
db 0xc6,0x23,'Camera calibration 1',0
317
db 0xc6,0x24,'Camera calibration 2',0
317
db 0xc6,0x24,'Camera calibration 2',0
318
db 0xc6,0x25,'Reduction matrix 1',0
318
db 0xc6,0x25,'Reduction matrix 1',0
319
db 0xc6,0x26,'Reduction matrix 2',0
319
db 0xc6,0x26,'Reduction matrix 2',0
320
db 0xc6,0x27,'Analog balance',0
320
db 0xc6,0x27,'Analog balance',0
321
db 0xc6,0x28,'As shot neutral',0
321
db 0xc6,0x28,'As shot neutral',0
322
db 0xc6,0x29,'As shot white XY',0
322
db 0xc6,0x29,'As shot white XY',0
323
db 0xc6,0x2a,'BaselineExposure',0
323
db 0xc6,0x2a,'BaselineExposure',0
324
db 0xc6,0x2b,'BaselineNoise',0
324
db 0xc6,0x2b,'BaselineNoise',0
325
db 0xc6,0x2c,'BaselineSharpness',0
325
db 0xc6,0x2c,'BaselineSharpness',0
326
db 0xc6,0x2d,'BayerGreenSplit',0
326
db 0xc6,0x2d,'BayerGreenSplit',0
327
db 0xc6,0x2e,'Linear response limit',0
327
db 0xc6,0x2e,'Linear response limit',0
328
db 0xc6,0x2f,'Camera serial number',0
328
db 0xc6,0x2f,'Camera serial number',0
329
db 0xc6,0x30,'DNG lens info',0
329
db 0xc6,0x30,'DNG lens info',0
330
db 0xc6,0x31,'Chroma blur radius',0
330
db 0xc6,0x31,'Chroma blur radius',0
331
db 0xc6,0x32,'Anti alias strength',0
331
db 0xc6,0x32,'Anti alias strength',0
332
db 0xc6,0x33,'Shadow scale',0
332
db 0xc6,0x33,'Shadow scale',0
333
db 0xc6,0x34,'SR2 private',0
333
db 0xc6,0x34,'SR2 private',0
334
db 0xc6,0x35,'Maker note safety',0
334
db 0xc6,0x35,'Maker note safety',0
335
db 0xc6,0x40,'Raw image segmentation',0
335
db 0xc6,0x40,'Raw image segmentation',0
336
db 0xc6,0x5a,'Calibration illuminant 1',0
336
db 0xc6,0x5a,'Calibration illuminant 1',0
337
db 0xc6,0x5b,'Calibration illuminant 2',0
337
db 0xc6,0x5b,'Calibration illuminant 2',0
338
db 0xc6,0x5c,'Best quality scale',0
338
db 0xc6,0x5c,'Best quality scale',0
339
db 0xc6,0x5d,'Raw data unique ID',0
339
db 0xc6,0x5d,'Raw data unique ID',0
340
db 0xc6,0x60,'Alias layer metadata',0
340
db 0xc6,0x60,'Alias layer metadata',0
341
db 0xc6,0x8b,'Original raw file name',0
341
db 0xc6,0x8b,'Original raw file name',0
342
db 0xc6,0x8c,'Original raw file data',0
342
db 0xc6,0x8c,'Original raw file data',0
343
db 0xc6,0x8d,'Active area',0
343
db 0xc6,0x8d,'Active area',0
344
db 0xc6,0x8e,'Masked areas',0
344
db 0xc6,0x8e,'Masked areas',0
345
db 0xc6,0x8f,'AsShot ICC profile',0
345
db 0xc6,0x8f,'AsShot ICC profile',0
346
db 0xc6,0x90,'AsShot pre profile matrix',0
346
db 0xc6,0x90,'AsShot pre profile matrix',0
347
db 0xc6,0x91,'Current ICC profile',0
347
db 0xc6,0x91,'Current ICC profile',0
348
db 0xc6,0x92,'Current pre profile matrix',0
348
db 0xc6,0x92,'Current pre profile matrix',0
349
db 0xc6,0xbf,'Colorimetric reference',0
349
db 0xc6,0xbf,'Colorimetric reference',0
350
db 0xc6,0xd2,'Panasonic title',0
350
db 0xc6,0xd2,'Panasonic title',0
351
db 0xc6,0xd3,'Panasonic title 2',0
351
db 0xc6,0xd3,'Panasonic title 2',0
352
db 0xc6,0xf3,'Camera calibration sig',0
352
db 0xc6,0xf3,'Camera calibration sig',0
353
db 0xc6,0xf4,'Profile calibration sig',0
353
db 0xc6,0xf4,'Profile calibration sig',0
354
db 0xc6,0xf5,'Profile IFD',0
354
db 0xc6,0xf5,'Profile IFD',0
355
db 0xc6,0xf6,'AsShot profile name',0
355
db 0xc6,0xf6,'AsShot profile name',0
356
db 0xc6,0xf7,'Noise reduction applied',0
356
db 0xc6,0xf7,'Noise reduction applied',0
357
db 0xc6,0xf8,'Profile name',0
357
db 0xc6,0xf8,'Profile name',0
358
db 0xc6,0xf9,'Profile hue sat map dims',0
358
db 0xc6,0xf9,'Profile hue sat map dims',0
359
db 0xc6,0xfa,'Profile hue sat map data 1',0
359
db 0xc6,0xfa,'Profile hue sat map data 1',0
360
db 0xc6,0xfb,'Profile hue sat map data 2',0
360
db 0xc6,0xfb,'Profile hue sat map data 2',0
361
db 0xc6,0xfc,'Profile tone curve',0
361
db 0xc6,0xfc,'Profile tone curve',0
362
db 0xc6,0xfd,'Profile embed policy',0
362
db 0xc6,0xfd,'Profile embed policy',0
363
db 0xc6,0xfe,'Profile copyright',0
363
db 0xc6,0xfe,'Profile copyright',0
364
db 0xc7,0x14,'Forward matrix 1',0
364
db 0xc7,0x14,'Forward matrix 1',0
365
db 0xc7,0x15,'Forward matrix 2',0
365
db 0xc7,0x15,'Forward matrix 2',0
366
db 0xc7,0x16,'Preview application name',0
366
db 0xc7,0x16,'Preview application name',0
367
db 0xc7,0x17,'Preview application version',0
367
db 0xc7,0x17,'Preview application version',0
368
db 0xc7,0x18,'Preview settings name',0
368
db 0xc7,0x18,'Preview settings name',0
369
db 0xc7,0x19,'Preview settings digest',0
369
db 0xc7,0x19,'Preview settings digest',0
370
db 0xc7,0x1a,'Preview color space',0
370
db 0xc7,0x1a,'Preview color space',0
371
db 0xc7,0x1b,'Preview date time',0
371
db 0xc7,0x1b,'Preview date time',0
372
db 0xc7,0x1c,'Raw image digest',0
372
db 0xc7,0x1c,'Raw image digest',0
373
db 0xc7,0x1d,'Original raw file digest',0
373
db 0xc7,0x1d,'Original raw file digest',0
374
db 0xc7,0x1e,'Sub tile block size',0
374
db 0xc7,0x1e,'Sub tile block size',0
375
db 0xc7,0x1f,'Row interleave factor',0
375
db 0xc7,0x1f,'Row interleave factor',0
376
db 0xc7,0x25,'Profile look table dims',0
376
db 0xc7,0x25,'Profile look table dims',0
377
db 0xc7,0x26,'Profile look table data',0
377
db 0xc7,0x26,'Profile look table data',0
378
db 0xc7,0x40,'Opcode list 1',0
378
db 0xc7,0x40,'Opcode list 1',0
379
db 0xc7,0x41,'Opcode list 2',0
379
db 0xc7,0x41,'Opcode list 2',0
380
db 0xc7,0x4e,'Opcode list 3',0
380
db 0xc7,0x4e,'Opcode list 3',0
381
db 0xc7,0x61,'Noise profile',0
381
db 0xc7,0x61,'Noise profile',0
382
db 0xc7,0x63,'Time codes',0
382
db 0xc7,0x63,'Time codes',0
383
db 0xc7,0x64,'Frame rate',0
383
db 0xc7,0x64,'Frame rate',0
384
db 0xc7,0x72,'TStop',0
384
db 0xc7,0x72,'TStop',0
385
db 0xc7,0x89,'Reel name',0
385
db 0xc7,0x89,'Reel name',0
386
db 0xc7,0x91,'Original default final size',0
386
db 0xc7,0x91,'Original default final size',0
387
db 0xc7,0x92,'Original best quality size',0
387
db 0xc7,0x92,'Original best quality size',0
388
db 0xc7,0x93,'Original default crop size',0
388
db 0xc7,0x93,'Original default crop size',0
389
db 0xc7,0xa1,'Camera label',0
389
db 0xc7,0xa1,'Camera label',0
390
db 0xc7,0xa3,'Profile hue sat map encoding',0
390
db 0xc7,0xa3,'Profile hue sat map encoding',0
391
db 0xc7,0xa4,'Profile look table encoding',0
391
db 0xc7,0xa4,'Profile look table encoding',0
392
db 0xc7,0xa5,'Baseline exposure offset',0
392
db 0xc7,0xa5,'Baseline exposure offset',0
393
db 0xc7,0xa6,'Default black render',0
393
db 0xc7,0xa6,'Default black render',0
394
db 0xc7,0xa7,'New raw image digest',0
394
db 0xc7,0xa7,'New raw image digest',0
395
db 0xc7,0xa8,'Raw to preview gain',0
395
db 0xc7,0xa8,'Raw to preview gain',0
396
db 0xc7,0xb5,'Default user crop',0
396
db 0xc7,0xb5,'Default user crop',0
397
db 0xfe,0x00,'KDC_IFD',0
397
db 0xfe,0x00,'KDC_IFD',0
398
 
398
 
399
dd 0
399
dd 0
400
 
400
 
401
align 4
401
align 4
402
gr_8769:
402
gr_8769:
403
db 0x02,0xbc,'Application notes',0
403
db 0x02,0xbc,'Application notes',0
404
db 0x82,0x9a,'Exposure time',0
404
db 0x82,0x9a,'Exposure time',0
405
db 0x82,0x9d,'F number',0
405
db 0x82,0x9d,'F number',0
406
db 0x88,0x22,'Exposure program',0
406
db 0x88,0x22,'Exposure program',0
407
db 0x88,0x24,'Spectral sensitivity',0
407
db 0x88,0x24,'Spectral sensitivity',0
408
db 0x88,0x27,'ISO',0
408
db 0x88,0x27,'ISO',0
409
db 0x88,0x2a,'Time zone offset',0
409
db 0x88,0x2a,'Time zone offset',0
410
db 0x88,0x2b,'Self timer mode',0
410
db 0x88,0x2b,'Self timer mode',0
411
db 0x88,0x30,'Sensitivity type',0
411
db 0x88,0x30,'Sensitivity type',0
412
db 0x88,0x31,'Standard output sensitivity',0
412
db 0x88,0x31,'Standard output sensitivity',0
413
db 0x88,0x32,'Recommended exposure index',0
413
db 0x88,0x32,'Recommended exposure index',0
414
db 0x88,0x33,'ISO speed',0
414
db 0x88,0x33,'ISO speed',0
415
db 0x88,0x34,'ISO speed latitude yyy',0
415
db 0x88,0x34,'ISO speed latitude yyy',0
416
db 0x88,0x35,'ISO speed latitude zzz',0
416
db 0x88,0x35,'ISO speed latitude zzz',0
417
db 0x90,0x00,'Exif version',0
417
db 0x90,0x00,'Exif version',0
418
db 0x90,0x03,'Date time original',0
418
db 0x90,0x03,'Date time original',0
419
db 0x90,0x04,'Create date',0
419
db 0x90,0x04,'Create date',0
420
db 0x91,0x01,'Components configuration',0
420
db 0x91,0x01,'Components configuration',0
421
db 0x91,0x02,'Compressed bits per pixel',0
421
db 0x91,0x02,'Compressed bits per pixel',0
422
db 0x92,0x01,'Shutter speed value',0
422
db 0x92,0x01,'Shutter speed value',0
423
db 0x92,0x02,'Aperture value',0
423
db 0x92,0x02,'Aperture value',0
424
db 0x92,0x03,'Brightness value',0
424
db 0x92,0x03,'Brightness value',0
425
db 0x92,0x04,'Exposure compensation',0
425
db 0x92,0x04,'Exposure compensation',0
426
db 0x92,0x05,'Max aperture value',0
426
db 0x92,0x05,'Max aperture value',0
427
db 0x92,0x06,'Subject distance',0
427
db 0x92,0x06,'Subject distance',0
428
db 0x92,0x07,'Metering mode',0
428
db 0x92,0x07,'Metering mode',0
429
db 0x92,0x08,'Light source',0
429
db 0x92,0x08,'Light source',0
430
db 0x92,0x09,'Flash',0
430
db 0x92,0x09,'Flash',0
431
db 0x92,0x0a,'Focal length',0
431
db 0x92,0x0a,'Focal length',0
432
db 0x92,0x11,'Image number',0
432
db 0x92,0x11,'Image number',0
433
db 0x92,0x12,'Security classification',0
433
db 0x92,0x12,'Security classification',0
434
db 0x92,0x13,'Image history',0
434
db 0x92,0x13,'Image history',0
435
db 0x92,0x14,'Subject area',0
435
db 0x92,0x14,'Subject area',0
436
db 0x92,0x7c,'Maker note',0
436
db 0x92,0x7c,'Maker note',0
437
db 0x92,0x86,'User comment',0
437
db 0x92,0x86,'User comment',0
438
db 0x92,0x90,'Sub sec time',0
438
db 0x92,0x90,'Sub sec time',0
439
db 0x92,0x91,'Sub sec time original',0
439
db 0x92,0x91,'Sub sec time original',0
440
db 0x92,0x92,'Sub sec time digitized',0
440
db 0x92,0x92,'Sub sec time digitized',0
441
db 0xa0,0x00,'Flashpix version',0
441
db 0xa0,0x00,'Flashpix version',0
442
db 0xa0,0x01,'Color space',0
442
db 0xa0,0x01,'Color space',0
443
db 0xa0,0x02,'Exif image width',0
443
db 0xa0,0x02,'Exif image width',0
444
db 0xa0,0x03,'Exif image height',0
444
db 0xa0,0x03,'Exif image height',0
445
db 0xa0,0x04,'Related sound file',0
445
db 0xa0,0x04,'Related sound file',0
446
db 0xa0,0x05,'Interop offset',0
446
db 0xa0,0x05,'Interop offset',0
447
db 0xa2,0x0b,'Flash energy',0
447
db 0xa2,0x0b,'Flash energy',0
448
db 0xa2,0x0e,'Focal plane X resolution',0
448
db 0xa2,0x0e,'Focal plane X resolution',0
449
db 0xa2,0x0f,'Focal plane Y resolution',0
449
db 0xa2,0x0f,'Focal plane Y resolution',0
450
db 0xa2,0x10,'Focal plane resolution unit',0
450
db 0xa2,0x10,'Focal plane resolution unit',0
451
db 0xa2,0x14,'Subject location',0
451
db 0xa2,0x14,'Subject location',0
452
db 0xa2,0x15,'Exposure index',0
452
db 0xa2,0x15,'Exposure index',0
453
db 0xa2,0x17,'Sensing method',0
453
db 0xa2,0x17,'Sensing method',0
454
db 0xa3,0x00,'File source',0
454
db 0xa3,0x00,'File source',0
455
db 0xa3,0x01,'Scene type',0
455
db 0xa3,0x01,'Scene type',0
456
db 0xa3,0x02,'CFA pattern',0
456
db 0xa3,0x02,'CFA pattern',0
457
db 0xa4,0x01,'Custom rendered',0
457
db 0xa4,0x01,'Custom rendered',0
458
db 0xa4,0x02,'Exposure mode',0
458
db 0xa4,0x02,'Exposure mode',0
459
db 0xa4,0x03,'White balance',0
459
db 0xa4,0x03,'White balance',0
460
db 0xa4,0x04,'Digital zoom ratio',0
460
db 0xa4,0x04,'Digital zoom ratio',0
461
db 0xa4,0x05,'Focal length in 35mm format',0
461
db 0xa4,0x05,'Focal length in 35mm format',0
462
db 0xa4,0x06,'Scene capture type',0
462
db 0xa4,0x06,'Scene capture type',0
463
db 0xa4,0x07,'Gain control',0
463
db 0xa4,0x07,'Gain control',0
464
db 0xa4,0x08,'Contrast',0
464
db 0xa4,0x08,'Contrast',0
465
db 0xa4,0x09,'Saturation',0
465
db 0xa4,0x09,'Saturation',0
466
db 0xa4,0x0a,'Sharpness',0
466
db 0xa4,0x0a,'Sharpness',0
467
db 0xa4,0x0b,'Device setting description',0
467
db 0xa4,0x0b,'Device setting description',0
468
db 0xa4,0x0c,'Subject distance range',0
468
db 0xa4,0x0c,'Subject distance range',0
469
db 0xa4,0x20,'Image unique ID',0
469
db 0xa4,0x20,'Image unique ID',0
470
db 0xa4,0x30,'Owner name',0
470
db 0xa4,0x30,'Owner name',0
471
db 0xa4,0x31,'Serial number',0
471
db 0xa4,0x31,'Serial number',0
472
db 0xa4,0x32,'Lens info',0
472
db 0xa4,0x32,'Lens info',0
473
db 0xa4,0x33,'Lens make',0
473
db 0xa4,0x33,'Lens make',0
474
db 0xa4,0x34,'Lens model',0
474
db 0xa4,0x34,'Lens model',0
475
db 0xa4,0x35,'Lens serial number',0
475
db 0xa4,0x35,'Lens serial number',0
476
db 0xa5,0x00,'Gamma',0
476
db 0xa5,0x00,'Gamma',0
477
db 0xea,0x1c,'Padding',0
477
db 0xea,0x1c,'Padding',0
478
db 0xea,0x1d,'Offset schema',0
478
db 0xea,0x1d,'Offset schema',0
479
db 0xfd,0xe8,'Owner name',0
479
db 0xfd,0xe8,'Owner name',0
480
db 0xfd,0xe9,'Serial number',0
480
db 0xfd,0xe9,'Serial number',0
481
db 0xfd,0xea,'Lens',0
481
db 0xfd,0xea,'Lens',0
482
db 0xfe,0x4c,'Raw file',0
482
db 0xfe,0x4c,'Raw file',0
483
db 0xfe,0x4d,'Converter',0
483
db 0xfe,0x4d,'Converter',0
484
db 0xfe,0x4e,'White balance',0
484
db 0xfe,0x4e,'White balance',0
485
db 0xfe,0x51,'Exposure',0
485
db 0xfe,0x51,'Exposure',0
486
db 0xfe,0x52,'Shadows',0
486
db 0xfe,0x52,'Shadows',0
487
db 0xfe,0x53,'Brightness',0
487
db 0xfe,0x53,'Brightness',0
488
db 0xfe,0x54,'Contrast',0
488
db 0xfe,0x54,'Contrast',0
489
db 0xfe,0x55,'Saturation',0
489
db 0xfe,0x55,'Saturation',0
490
db 0xfe,0x56,'Sharpness',0
490
db 0xfe,0x56,'Sharpness',0
491
db 0xfe,0x57,'Smoothness',0
491
db 0xfe,0x57,'Smoothness',0
492
db 0xfe,0x58,'Moire filter',0
492
db 0xfe,0x58,'Moire filter',0
493
 
493
 
494
dd 0
494
dd 0
495
 
495
 
496
align 4
496
align 4
497
gr_a005:
497
gr_a005:
498
db 0x00,0x01,'Interop index',0
498
db 0x00,0x01,'Interop index',0
499
db 0x00,0x02,'Interop version',0
499
db 0x00,0x02,'Interop version',0
500
db 0x10,0x00,'Related image file format',0
500
db 0x10,0x00,'Related image file format',0
501
db 0x10,0x01,'Related image width',0
501
db 0x10,0x01,'Related image width',0
502
db 0x10,0x02,'Related image height',0
502
db 0x10,0x02,'Related image height',0
503
dd 0
503
dd 0
504
 
504
 
505
align 4
505
align 4
506
gr_8825:
506
gr_8825:
507
db 0x00,0x00,'GPS version ID',0
507
db 0x00,0x00,'GPS version ID',0
508
db 0x00,0x01,'GPS latitude ref',0
508
db 0x00,0x01,'GPS latitude ref',0
509
db 0x00,0x02,'GPS latitude',0
509
db 0x00,0x02,'GPS latitude',0
510
db 0x00,0x03,'GPS longitude ref',0
510
db 0x00,0x03,'GPS longitude ref',0
511
db 0x00,0x04,'GPS longitude',0
511
db 0x00,0x04,'GPS longitude',0
512
db 0x00,0x05,'GPS altitude ref',0
512
db 0x00,0x05,'GPS altitude ref',0
513
db 0x00,0x06,'GPS altitude',0
513
db 0x00,0x06,'GPS altitude',0
514
db 0x00,0x07,'GPS time stamp',0
514
db 0x00,0x07,'GPS time stamp',0
515
db 0x00,0x08,'GPS satellites',0
515
db 0x00,0x08,'GPS satellites',0
516
db 0x00,0x09,'GPS status',0
516
db 0x00,0x09,'GPS status',0
517
db 0x00,0x0a,'GPS measuremode',0
517
db 0x00,0x0a,'GPS measuremode',0
518
db 0x00,0x0b,'GPS dop',0
518
db 0x00,0x0b,'GPS dop',0
519
db 0x00,0x0c,'GPS speed ref',0
519
db 0x00,0x0c,'GPS speed ref',0
520
db 0x00,0x0d,'GPS speed',0
520
db 0x00,0x0d,'GPS speed',0
521
db 0x00,0x0e,'GPS track ref',0
521
db 0x00,0x0e,'GPS track ref',0
522
db 0x00,0x0f,'GPS track',0
522
db 0x00,0x0f,'GPS track',0
523
db 0x00,0x10,'GPS img direction ref',0
523
db 0x00,0x10,'GPS img direction ref',0
524
db 0x00,0x11,'GPS img direction',0
524
db 0x00,0x11,'GPS img direction',0
525
db 0x00,0x12,'GPS map datum',0
525
db 0x00,0x12,'GPS map datum',0
526
db 0x00,0x13,'GPS dest latitude ref',0
526
db 0x00,0x13,'GPS dest latitude ref',0
527
db 0x00,0x14,'GPS dest latitude',0
527
db 0x00,0x14,'GPS dest latitude',0
528
db 0x00,0x15,'GPS dest longitude ref',0
528
db 0x00,0x15,'GPS dest longitude ref',0
529
db 0x00,0x16,'GPS dest longitude',0
529
db 0x00,0x16,'GPS dest longitude',0
530
db 0x00,0x17,'GPS dest bearing ref',0
530
db 0x00,0x17,'GPS dest bearing ref',0
531
db 0x00,0x18,'GPS dest bearing',0
531
db 0x00,0x18,'GPS dest bearing',0
532
db 0x00,0x19,'GPS dest distance ref',0
532
db 0x00,0x19,'GPS dest distance ref',0
533
db 0x00,0x1a,'GPS dest distance',0
533
db 0x00,0x1a,'GPS dest distance',0
534
db 0x00,0x1b,'GPS processing method',0
534
db 0x00,0x1b,'GPS processing method',0
535
db 0x00,0x1c,'GPS area information',0
535
db 0x00,0x1c,'GPS area information',0
536
db 0x00,0x1d,'GPS date stamp',0
536
db 0x00,0x1d,'GPS date stamp',0
537
db 0x00,0x1e,'GPS differential',0
537
db 0x00,0x1e,'GPS differential',0
538
db 0x00,0x1f,'GPS h positioning error',0
538
db 0x00,0x1f,'GPS h positioning error',0
539
 
539
 
540
dd 0
540
dd 0
541
 
541
 
542
;¤ ­­ë¥ app2 ¤«ï Nikon
542
;¤ ­­ë¥ app2 ¤«ï Nikon
543
align 4
543
align 4
544
gr_927c_Ni:
544
gr_927c_Ni:
545
db 0x00,0x01,'MakerNoteVersion',0
545
db 0x00,0x01,'MakerNoteVersion',0
546
db 0x00,0x02,'ISO',0
546
db 0x00,0x02,'ISO',0
547
db 0x00,0x03,'ColorMode',0
547
db 0x00,0x03,'ColorMode',0
548
db 0x00,0x04,'Quality',0
548
db 0x00,0x04,'Quality',0
549
db 0x00,0x05,'WhiteBalance',0
549
db 0x00,0x05,'WhiteBalance',0
550
db 0x00,0x06,'Sharpness',0
550
db 0x00,0x06,'Sharpness',0
551
db 0x00,0x07,'FocusMode',0
551
db 0x00,0x07,'FocusMode',0
552
db 0x00,0x08,'FlashSetting',0
552
db 0x00,0x08,'FlashSetting',0
553
db 0x00,0x09,'FlashType',0
553
db 0x00,0x09,'FlashType',0
554
db 0x00,0x0b,'WhiteBalanceFineTune',0
554
db 0x00,0x0b,'WhiteBalanceFineTune',0
555
db 0x00,0x0c,'WB_RBLevels',0
555
db 0x00,0x0c,'WB_RBLevels',0
556
db 0x00,0x0d,'ProgramShift',0
556
db 0x00,0x0d,'ProgramShift',0
557
db 0x00,0x0e,'ExposureDifference',0
557
db 0x00,0x0e,'ExposureDifference',0
558
db 0x00,0x0f,'ISOSelection',0
558
db 0x00,0x0f,'ISOSelection',0
559
db 0x00,0x10,'DataDump',0
559
db 0x00,0x10,'DataDump',0
560
db 0x00,0x11,'PreviewIFD',0
560
db 0x00,0x11,'PreviewIFD',0
561
db 0x00,0x12,'FlashExposureComp',0
561
db 0x00,0x12,'FlashExposureComp',0
562
db 0x00,0x13,'ISOSetting',0
562
db 0x00,0x13,'ISOSetting',0
563
db 0x00,0x14,'ColorBalanceA ',0
563
db 0x00,0x14,'ColorBalanceA ',0
564
db 0x00,0x16,'ImageBoundary',0
564
db 0x00,0x16,'ImageBoundary',0
565
db 0x00,0x17,'ExternalFlashExposureComp',0
565
db 0x00,0x17,'ExternalFlashExposureComp',0
566
db 0x00,0x18,'FlashExposureBracketValue',0
566
db 0x00,0x18,'FlashExposureBracketValue',0
567
db 0x00,0x19,'ExposureBracketValue',0
567
db 0x00,0x19,'ExposureBracketValue',0
568
db 0x00,0x1a,'ImageProcessing',0
568
db 0x00,0x1a,'ImageProcessing',0
569
db 0x00,0x1b,'CropHiSpeed',0
569
db 0x00,0x1b,'CropHiSpeed',0
570
db 0x00,0x1c,'ExposureTuning',0
570
db 0x00,0x1c,'ExposureTuning',0
571
db 0x00,0x1d,'SerialNumber',0
571
db 0x00,0x1d,'SerialNumber',0
572
db 0x00,0x1e,'ColorSpace',0
572
db 0x00,0x1e,'ColorSpace',0
573
db 0x00,0x1f,'VRInfo',0
573
db 0x00,0x1f,'VRInfo',0
574
db 0x00,0x20,'ImageAuthentication',0
574
db 0x00,0x20,'ImageAuthentication',0
575
db 0x00,0x21,'FaceDetect',0
575
db 0x00,0x21,'FaceDetect',0
576
db 0x00,0x22,'ActiveD-Lighting',0
576
db 0x00,0x22,'ActiveD-Lighting',0
577
db 0x00,0x23,'PictureControlData',0
577
db 0x00,0x23,'PictureControlData',0
578
db 0x00,0x24,'WorldTime',0
578
db 0x00,0x24,'WorldTime',0
579
db 0x00,0x25,'ISOInfo',0
579
db 0x00,0x25,'ISOInfo',0
580
db 0x00,0x2a,'VignetteControl',0
580
db 0x00,0x2a,'VignetteControl',0
581
db 0x00,0x2b,'DistortInfo',0
581
db 0x00,0x2b,'DistortInfo',0
582
db 0x00,0x2c,'UnknownInfo',0
582
db 0x00,0x2c,'UnknownInfo',0
583
db 0x00,0x32,'UnknownInfo2',0
583
db 0x00,0x32,'UnknownInfo2',0
584
db 0x00,0x35,'HDRInfo',0
584
db 0x00,0x35,'HDRInfo',0
585
db 0x00,0x39,'LocationInfo',0
585
db 0x00,0x39,'LocationInfo',0
586
db 0x00,0x3d,'BlackLevel',0
586
db 0x00,0x3d,'BlackLevel',0
587
db 0x00,0x80,'ImageAdjustment',0
587
db 0x00,0x80,'ImageAdjustment',0
588
db 0x00,0x81,'ToneComp',0
588
db 0x00,0x81,'ToneComp',0
589
db 0x00,0x82,'AuxiliaryLens',0
589
db 0x00,0x82,'AuxiliaryLens',0
590
db 0x00,0x83,'LensType',0
590
db 0x00,0x83,'LensType',0
591
db 0x00,0x84,'Lens',0
591
db 0x00,0x84,'Lens',0
592
db 0x00,0x85,'ManualFocusDistance',0
592
db 0x00,0x85,'ManualFocusDistance',0
593
db 0x00,0x86,'DigitalZoom',0
593
db 0x00,0x86,'DigitalZoom',0
594
db 0x00,0x87,'FlashMode',0
594
db 0x00,0x87,'FlashMode',0
595
db 0x00,0x88,'AFInfo',0
595
db 0x00,0x88,'AFInfo',0
596
db 0x00,0x89,'ShootingMode',0
596
db 0x00,0x89,'ShootingMode',0
597
db 0x00,0x8b,'LensFStops',0
597
db 0x00,0x8b,'LensFStops',0
598
db 0x00,0x8c,'ContrastCurve',0
598
db 0x00,0x8c,'ContrastCurve',0
599
db 0x00,0x8d,'ColorHue',0
599
db 0x00,0x8d,'ColorHue',0
600
db 0x00,0x8f,'SceneMode',0
600
db 0x00,0x8f,'SceneMode',0
601
db 0x00,0x90,'LightSource',0
601
db 0x00,0x90,'LightSource',0
602
db 0x00,0x91,'ShotInfo',0
602
db 0x00,0x91,'ShotInfo',0
603
db 0x00,0x92,'HueAdjustment',0
603
db 0x00,0x92,'HueAdjustment',0
604
db 0x00,0x93,'NEFCompression',0
604
db 0x00,0x93,'NEFCompression',0
605
db 0x00,0x94,'Saturation',0
605
db 0x00,0x94,'Saturation',0
606
db 0x00,0x95,'NoiseReduction',0
606
db 0x00,0x95,'NoiseReduction',0
607
db 0x00,0x96,'NEFLinearizationTable',0
607
db 0x00,0x96,'NEFLinearizationTable',0
608
db 0x00,0x97,'ColorBalance',0
608
db 0x00,0x97,'ColorBalance',0
609
db 0x00,0x98,'LensData',0
609
db 0x00,0x98,'LensData',0
610
db 0x00,0x99,'RawImageCenter',0
610
db 0x00,0x99,'RawImageCenter',0
611
db 0x00,0x9a,'SensorPixelSize',0
611
db 0x00,0x9a,'SensorPixelSize',0
612
db 0x00,0x9c,'SceneAssist',0
612
db 0x00,0x9c,'SceneAssist',0
613
db 0x00,0x9e,'RetouchHistory',0
613
db 0x00,0x9e,'RetouchHistory',0
614
db 0x00,0xa0,'SerialNumber',0
614
db 0x00,0xa0,'SerialNumber',0
615
db 0x00,0xa2,'ImageDataSize',0
615
db 0x00,0xa2,'ImageDataSize',0
616
db 0x00,0xa5,'ImageCount',0
616
db 0x00,0xa5,'ImageCount',0
617
db 0x00,0xa6,'DeletedImageCount',0
617
db 0x00,0xa6,'DeletedImageCount',0
618
db 0x00,0xa7,'ShutterCount',0
618
db 0x00,0xa7,'ShutterCount',0
619
db 0x00,0xa8,'FlashInfo',0
619
db 0x00,0xa8,'FlashInfo',0
620
db 0x00,0xa9,'ImageOptimization',0
620
db 0x00,0xa9,'ImageOptimization',0
621
db 0x00,0xaa,'Saturation',0
621
db 0x00,0xaa,'Saturation',0
622
db 0x00,0xab,'VariProgram',0
622
db 0x00,0xab,'VariProgram',0
623
db 0x00,0xac,'ImageStabilization',0
623
db 0x00,0xac,'ImageStabilization',0
624
db 0x00,0xad,'AFResponse',0
624
db 0x00,0xad,'AFResponse',0
625
db 0x00,0xb0,'MultiExposure',0
625
db 0x00,0xb0,'MultiExposure',0
626
db 0x00,0xb1,'HighISONoiseReduction',0
626
db 0x00,0xb1,'HighISONoiseReduction',0
627
db 0x00,0xb3,'ToningEffect',0
627
db 0x00,0xb3,'ToningEffect',0
628
db 0x00,0xb6,'PowerUpTime',0
628
db 0x00,0xb6,'PowerUpTime',0
629
db 0x00,0xb7,'AFInfo2',0
629
db 0x00,0xb7,'AFInfo2',0
630
db 0x00,0xb8,'FileInfo',0
630
db 0x00,0xb8,'FileInfo',0
631
db 0x00,0xb9,'AFTune',0
631
db 0x00,0xb9,'AFTune',0
632
db 0x00,0xbd,'PictureControlData',0
632
db 0x00,0xbd,'PictureControlData',0
633
db 0x00,0xc3,'BarometerInfo',0
633
db 0x00,0xc3,'BarometerInfo',0
634
db 0x0e,0x00,'PrintIM',0
634
db 0x0e,0x00,'PrintIM',0
635
db 0x0e,0x01,'NikonCaptureData',0
635
db 0x0e,0x01,'NikonCaptureData',0
636
db 0x0e,0x09,'NikonCaptureVersion',0
636
db 0x0e,0x09,'NikonCaptureVersion',0
637
db 0x0e,0x0e,'NikonCaptureOffsets',0
637
db 0x0e,0x0e,'NikonCaptureOffsets',0
638
db 0x0e,0x10,'NikonScanIFD',0
638
db 0x0e,0x10,'NikonScanIFD',0
639
db 0x0e,0x13,'NikonCaptureEditVersions ',0
639
db 0x0e,0x13,'NikonCaptureEditVersions ',0
640
db 0x0e,0x1d,'NikonICCProfile',0
640
db 0x0e,0x1d,'NikonICCProfile',0
641
db 0x0e,0x1e,'NikonCaptureOutput',0
641
db 0x0e,0x1e,'NikonCaptureOutput',0
642
db 0x0e,0x22,'NEFBitDepth',0
642
db 0x0e,0x22,'NEFBitDepth',0
643
 
643
 
644
dd 0
644
dd 0
645
 
645
 
646
;¤ ­­ë¥ app2 ¤«ï Panasonic
646
;¤ ­­ë¥ app2 ¤«ï Panasonic
647
align 4
647
align 4
648
gr_927c_Pa:
648
gr_927c_Pa:
649
db 0x00,0x01,'ImageQuality',0
649
db 0x00,0x01,'ImageQuality',0
650
db 0x00,0x02,'FirmwareVersion',0
650
db 0x00,0x02,'FirmwareVersion',0
651
db 0x00,0x03,'WhiteBalance',0
651
db 0x00,0x03,'WhiteBalance',0
652
db 0x00,0x07,'FocusMode',0
652
db 0x00,0x07,'FocusMode',0
653
db 0x00,0x0f,'AFAreaMode',0
653
db 0x00,0x0f,'AFAreaMode',0
654
db 0x00,0x1a,'ImageStabilization',0
654
db 0x00,0x1a,'ImageStabilization',0
655
db 0x00,0x1c,'MacroMode',0
655
db 0x00,0x1c,'MacroMode',0
656
db 0x00,0x1f,'ShootingMode',0
656
db 0x00,0x1f,'ShootingMode',0
657
db 0x00,0x20,'Audio',0
657
db 0x00,0x20,'Audio',0
658
db 0x00,0x21,'DataDump',0
658
db 0x00,0x21,'DataDump',0
659
db 0x00,0x23,'WhiteBalanceBias',0
659
db 0x00,0x23,'WhiteBalanceBias',0
660
db 0x00,0x24,'FlashBias',0
660
db 0x00,0x24,'FlashBias',0
661
db 0x00,0x25,'InternalSerialNumber',0
661
db 0x00,0x25,'InternalSerialNumber',0
662
db 0x00,0x26,'PanasonicExifVersion',0
662
db 0x00,0x26,'PanasonicExifVersion',0
663
db 0x00,0x28,'ColorEffect',0
663
db 0x00,0x28,'ColorEffect',0
664
db 0x00,0x29,'TimeSincePowerOn',0
664
db 0x00,0x29,'TimeSincePowerOn',0
665
db 0x00,0x2a,'BurstMode',0
665
db 0x00,0x2a,'BurstMode',0
666
db 0x00,0x2b,'SequenceNumber',0
666
db 0x00,0x2b,'SequenceNumber',0
667
db 0x00,0x2c,'ContrastMode',0
667
db 0x00,0x2c,'ContrastMode',0
668
db 0x00,0x2d,'NoiseReduction',0
668
db 0x00,0x2d,'NoiseReduction',0
669
db 0x00,0x2e,'SelfTimer',0
669
db 0x00,0x2e,'SelfTimer',0
670
db 0x00,0x30,'Rotation',0
670
db 0x00,0x30,'Rotation',0
671
db 0x00,0x31,'AFAssistLamp',0
671
db 0x00,0x31,'AFAssistLamp',0
672
db 0x00,0x32,'ColorMode',0
672
db 0x00,0x32,'ColorMode',0
673
db 0x00,0x33,'BabyAge',0
673
db 0x00,0x33,'BabyAge',0
674
db 0x00,0x34,'OpticalZoomMode',0
674
db 0x00,0x34,'OpticalZoomMode',0
675
db 0x00,0x35,'ConversionLens',0
675
db 0x00,0x35,'ConversionLens',0
676
db 0x00,0x36,'TravelDay',0
676
db 0x00,0x36,'TravelDay',0
677
db 0x00,0x39,'Contrast',0
677
db 0x00,0x39,'Contrast',0
678
db 0x00,0x3a,'WorldTimeLocation',0
678
db 0x00,0x3a,'WorldTimeLocation',0
679
db 0x00,0x3b,'TextStamp',0
679
db 0x00,0x3b,'TextStamp',0
680
db 0x00,0x3c,'ProgramISO',0
680
db 0x00,0x3c,'ProgramISO',0
681
db 0x00,0x3d,'AdvancedSceneType',0
681
db 0x00,0x3d,'AdvancedSceneType',0
682
db 0x00,0x3f,'FacesDetected',0
682
db 0x00,0x3f,'FacesDetected',0
683
db 0x00,0x40,'Saturation',0
683
db 0x00,0x40,'Saturation',0
684
db 0x00,0x41,'Sharpness',0
684
db 0x00,0x41,'Sharpness',0
685
db 0x00,0x42,'FilmMode',0
685
db 0x00,0x42,'FilmMode',0
686
db 0x00,0x44,'ColorTempKelvin',0
686
db 0x00,0x44,'ColorTempKelvin',0
687
db 0x00,0x45,'BracketSettings',0
687
db 0x00,0x45,'BracketSettings',0
688
db 0x00,0x46,'WBShiftAB',0
688
db 0x00,0x46,'WBShiftAB',0
689
db 0x00,0x47,'WBShiftGM',0
689
db 0x00,0x47,'WBShiftGM',0
690
db 0x00,0x48,'FlashCurtain',0
690
db 0x00,0x48,'FlashCurtain',0
691
db 0x00,0x49,'LongExposureNoiseReduction',0
691
db 0x00,0x49,'LongExposureNoiseReduction',0
692
db 0x00,0x4b,'PanasonicImageWidth',0
692
db 0x00,0x4b,'PanasonicImageWidth',0
693
db 0x00,0x4c,'PanasonicImageHeight',0
693
db 0x00,0x4c,'PanasonicImageHeight',0
694
db 0x00,0x4d,'AFPointPosition',0
694
db 0x00,0x4d,'AFPointPosition',0
695
db 0x00,0x51,'LensType',0
695
db 0x00,0x51,'LensType',0
696
db 0x00,0x52,'LensSerialNumber',0
696
db 0x00,0x52,'LensSerialNumber',0
697
db 0x00,0x53,'AccessoryType',0
697
db 0x00,0x53,'AccessoryType',0
698
db 0x00,0x54,'AccessorySerialNumber',0
698
db 0x00,0x54,'AccessorySerialNumber',0
699
db 0x00,0x59,'Transform',0
699
db 0x00,0x59,'Transform',0
700
db 0x00,0x5d,'IntelligentExposure',0
700
db 0x00,0x5d,'IntelligentExposure',0
701
db 0x00,0x60,'LensFirmwareVersion',0
701
db 0x00,0x60,'LensFirmwareVersion',0
702
db 0x00,0x61,'FaceRecInfo',0
702
db 0x00,0x61,'FaceRecInfo',0
703
db 0x00,0x62,'FlashWarning',0
703
db 0x00,0x62,'FlashWarning',0
704
db 0x00,0x63,'RecognizedFaceFlags',0
704
db 0x00,0x63,'RecognizedFaceFlags',0
705
db 0x00,0x65,'Title',0
705
db 0x00,0x65,'Title',0
706
db 0x00,0x66,'BabyName',0
706
db 0x00,0x66,'BabyName',0
707
db 0x00,0x67,'Location',0
707
db 0x00,0x67,'Location',0
708
db 0x00,0x69,'Country',0
708
db 0x00,0x69,'Country',0
709
db 0x00,0x6b,'State',0
709
db 0x00,0x6b,'State',0
710
db 0x00,0x6d,'City',0
710
db 0x00,0x6d,'City',0
711
db 0x00,0x6f,'Landmark',0
711
db 0x00,0x6f,'Landmark',0
712
db 0x00,0x70,'IntelligentResolution',0
712
db 0x00,0x70,'IntelligentResolution',0
713
db 0x00,0x77,'BurstSpeed',0
713
db 0x00,0x77,'BurstSpeed',0
714
db 0x00,0x79,'IntelligentD-Range',0
714
db 0x00,0x79,'IntelligentD-Range',0
715
db 0x00,0x7c,'ClearRetouch',0
715
db 0x00,0x7c,'ClearRetouch',0
716
db 0x00,0x86,'ManometerPressure',0
716
db 0x00,0x86,'ManometerPressure',0
717
db 0x00,0x89,'PhotoStyle',0
717
db 0x00,0x89,'PhotoStyle',0
718
db 0x00,0x8a,'ShadingCompensation',0
718
db 0x00,0x8a,'ShadingCompensation',0
719
db 0x00,0x8c,'AccelerometerZ',0
719
db 0x00,0x8c,'AccelerometerZ',0
720
db 0x00,0x8d,'AccelerometerX',0
720
db 0x00,0x8d,'AccelerometerX',0
721
db 0x00,0x8e,'AccelerometerY',0
721
db 0x00,0x8e,'AccelerometerY',0
722
db 0x00,0x8f,'CameraOrientation',0
722
db 0x00,0x8f,'CameraOrientation',0
723
db 0x00,0x90,'RollAngle',0
723
db 0x00,0x90,'RollAngle',0
724
db 0x00,0x91,'PitchAngle',0
724
db 0x00,0x91,'PitchAngle',0
725
db 0x00,0x93,'SweepPanoramaDirection',0
725
db 0x00,0x93,'SweepPanoramaDirection',0
726
db 0x00,0x94,'SweepPanoramaFieldOfView',0
726
db 0x00,0x94,'SweepPanoramaFieldOfView',0
727
db 0x00,0x96,'TimerRecording',0
727
db 0x00,0x96,'TimerRecording',0
728
db 0x00,0x9d,'InternalNDFilter',0
728
db 0x00,0x9d,'InternalNDFilter',0
729
db 0x00,0x9e,'HDR',0
729
db 0x00,0x9e,'HDR',0
730
db 0x00,0x9f,'ShutterType',0
730
db 0x00,0x9f,'ShutterType',0
731
db 0x00,0xa3,'ClearRetouchValue',0
731
db 0x00,0xa3,'ClearRetouchValue',0
732
db 0x00,0xab,'TouchAE',0
732
db 0x00,0xab,'TouchAE',0
733
db 0x0e,0x00,'PrintIM',0
733
db 0x0e,0x00,'PrintIM',0
734
db 0x80,0x00,'MakerNoteVersion',0
734
db 0x80,0x00,'MakerNoteVersion',0
735
db 0x80,0x01,'SceneMode',0
735
db 0x80,0x01,'SceneMode',0
736
db 0x80,0x04,'WBRedLevel',0
736
db 0x80,0x04,'WBRedLevel',0
737
db 0x80,0x05,'WBGreenLevel',0
737
db 0x80,0x05,'WBGreenLevel',0
738
db 0x80,0x06,'WBBlueLevel',0
738
db 0x80,0x06,'WBBlueLevel',0
739
db 0x80,0x07,'FlashFired',0
739
db 0x80,0x07,'FlashFired',0
740
db 0x80,0x08,'TextStamp',0
740
db 0x80,0x08,'TextStamp',0
741
db 0x80,0x09,'TextStamp',0
741
db 0x80,0x09,'TextStamp',0
742
db 0x80,0x10,'BabyAge',0
742
db 0x80,0x10,'BabyAge',0
743
db 0x80,0x12,'Transform',0
743
db 0x80,0x12,'Transform',0
744
 
744
 
745
dd 0
745
dd 0
746
 
746
 
747
;¤ ­­ë¥ app2 ¤«ï Canon
747
;¤ ­­ë¥ app2 ¤«ï Canon
748
align 4
748
align 4
749
gr_927c_Ca:
749
gr_927c_Ca:
750
db 0x00,0x01,'CanonCameraSettings',0
750
db 0x00,0x01,'CanonCameraSettings',0
751
db 0x00,0x02,'CanonFocalLength',0
751
db 0x00,0x02,'CanonFocalLength',0
752
db 0x00,0x03,'CanonFlashInfo?',0
752
db 0x00,0x03,'CanonFlashInfo?',0
753
db 0x00,0x04,'CanonShotInfo',0
753
db 0x00,0x04,'CanonShotInfo',0
754
db 0x00,0x05,'CanonPanorama',0
754
db 0x00,0x05,'CanonPanorama',0
755
db 0x00,0x06,'CanonImageType',0
755
db 0x00,0x06,'CanonImageType',0
756
db 0x00,0x07,'CanonFirmwareVersion',0
756
db 0x00,0x07,'CanonFirmwareVersion',0
757
db 0x00,0x08,'FileNumber',0
757
db 0x00,0x08,'FileNumber',0
758
db 0x00,0x09,'OwnerName',0
758
db 0x00,0x09,'OwnerName',0
759
db 0x00,0x0a,'UnknownD30',0
759
db 0x00,0x0a,'UnknownD30',0
760
db 0x00,0x0c,'SerialNumber',0
760
db 0x00,0x0c,'SerialNumber',0
761
db 0x00,0x0d,'CanonCameraInfo',0
761
db 0x00,0x0d,'CanonCameraInfo',0
762
db 0x00,0x0e,'CanonFileLength',0
762
db 0x00,0x0e,'CanonFileLength',0
763
db 0x00,0x0f,'CustomFunctions',0
763
db 0x00,0x0f,'CustomFunctions',0
764
db 0x00,0x10,'CanonModelID',0
764
db 0x00,0x10,'CanonModelID',0
765
db 0x00,0x11,'MovieInfo',0
765
db 0x00,0x11,'MovieInfo',0
766
db 0x00,0x12,'CanonAFInfo',0
766
db 0x00,0x12,'CanonAFInfo',0
767
db 0x00,0x13,'ThumbnailImageValidArea',0
767
db 0x00,0x13,'ThumbnailImageValidArea',0
768
db 0x00,0x15,'SerialNumberFormat',0
768
db 0x00,0x15,'SerialNumberFormat',0
769
db 0x00,0x1a,'SuperMacro',0
769
db 0x00,0x1a,'SuperMacro',0
770
db 0x00,0x1c,'DateStampMode',0
770
db 0x00,0x1c,'DateStampMode',0
771
db 0x00,0x1d,'MyColors',0
771
db 0x00,0x1d,'MyColors',0
772
db 0x00,0x1e,'FirmwareRevision',0
772
db 0x00,0x1e,'FirmwareRevision',0
773
db 0x00,0x23,'Categories',0
773
db 0x00,0x23,'Categories',0
774
db 0x00,0x24,'FaceDetect1',0
774
db 0x00,0x24,'FaceDetect1',0
775
db 0x00,0x25,'FaceDetect2',0
775
db 0x00,0x25,'FaceDetect2',0
776
db 0x00,0x26,'CanonAFInfo2',0
776
db 0x00,0x26,'CanonAFInfo2',0
777
db 0x00,0x27,'ContrastInfo',0
777
db 0x00,0x27,'ContrastInfo',0
778
db 0x00,0x28,'ImageUniqueID',0
778
db 0x00,0x28,'ImageUniqueID',0
779
db 0x00,0x2f,'FaceDetect3',0
779
db 0x00,0x2f,'FaceDetect3',0
780
db 0x00,0x35,'TimeInfo',0
780
db 0x00,0x35,'TimeInfo',0
781
db 0x00,0x81,'RawDataOffset',0
781
db 0x00,0x81,'RawDataOffset',0
782
db 0x00,0x83,'OriginalDecisionDataOffset',0
782
db 0x00,0x83,'OriginalDecisionDataOffset',0
783
db 0x00,0x90,'CustomFunctions1D',0
783
db 0x00,0x90,'CustomFunctions1D',0
784
db 0x00,0x91,'PersonalFunctions',0
784
db 0x00,0x91,'PersonalFunctions',0
785
db 0x00,0x92,'PersonalFunctionValues',0
785
db 0x00,0x92,'PersonalFunctionValues',0
786
db 0x00,0x93,'CanonFileInfo',0
786
db 0x00,0x93,'CanonFileInfo',0
787
db 0x00,0x94,'AFPointsInFocus1D',0
787
db 0x00,0x94,'AFPointsInFocus1D',0
788
db 0x00,0x95,'LensModel',0
788
db 0x00,0x95,'LensModel',0
789
db 0x00,0x96,'SerialInfo ',0
789
db 0x00,0x96,'SerialInfo ',0
790
db 0x00,0x97,'DustRemovalData',0
790
db 0x00,0x97,'DustRemovalData',0
791
db 0x00,0x98,'CropInfo',0
791
db 0x00,0x98,'CropInfo',0
792
db 0x00,0x99,'CustomFunctions2',0
792
db 0x00,0x99,'CustomFunctions2',0
793
db 0x00,0x9a,'AspectInfo',0
793
db 0x00,0x9a,'AspectInfo',0
794
db 0x00,0xa0,'ProcessingInfo',0
794
db 0x00,0xa0,'ProcessingInfo',0
795
db 0x00,0xa1,'ToneCurveTable',0
795
db 0x00,0xa1,'ToneCurveTable',0
796
db 0x00,0xa2,'SharpnessTable',0
796
db 0x00,0xa2,'SharpnessTable',0
797
db 0x00,0xa3,'SharpnessFreqTable',0
797
db 0x00,0xa3,'SharpnessFreqTable',0
798
db 0x00,0xa4,'WhiteBalanceTable',0
798
db 0x00,0xa4,'WhiteBalanceTable',0
799
db 0x00,0xa9,'ColorBalance',0
799
db 0x00,0xa9,'ColorBalance',0
800
db 0x00,0xaa,'MeasuredColor',0
800
db 0x00,0xaa,'MeasuredColor',0
801
db 0x00,0xae,'ColorTemperature',0
801
db 0x00,0xae,'ColorTemperature',0
802
db 0x00,0xb0,'CanonFlags',0
802
db 0x00,0xb0,'CanonFlags',0
803
db 0x00,0xb1,'ModifiedInfo',0
803
db 0x00,0xb1,'ModifiedInfo',0
804
db 0x00,0xb2,'ToneCurveMatching',0
804
db 0x00,0xb2,'ToneCurveMatching',0
805
db 0x00,0xb3,'WhiteBalanceMatching',0
805
db 0x00,0xb3,'WhiteBalanceMatching',0
806
db 0x00,0xb4,'ColorSpace',0
806
db 0x00,0xb4,'ColorSpace',0
807
db 0x00,0xb6,'PreviewImageInfo',0
807
db 0x00,0xb6,'PreviewImageInfo',0
808
db 0x00,0xd0,'VRDOffset',0
808
db 0x00,0xd0,'VRDOffset',0
809
db 0x00,0xe0,'SensorInfo',0
809
db 0x00,0xe0,'SensorInfo',0
810
db 0x40,0x01,'ColorData',0
810
db 0x40,0x01,'ColorData',0
811
db 0x40,0x02,'CRWParam?',0
811
db 0x40,0x02,'CRWParam?',0
812
db 0x40,0x03,'ColorInfo',0
812
db 0x40,0x03,'ColorInfo',0
813
db 0x40,0x05,'Flavor?',0
813
db 0x40,0x05,'Flavor?',0
814
db 0x40,0x08,'BlackLevel?',0
814
db 0x40,0x08,'BlackLevel?',0
815
db 0x40,0x10,'CustomPictureStyleFileName',0
815
db 0x40,0x10,'CustomPictureStyleFileName',0
816
db 0x40,0x13,'AFMicroAdj',0
816
db 0x40,0x13,'AFMicroAdj',0
817
db 0x40,0x15,'VignettingCorr ',0
817
db 0x40,0x15,'VignettingCorr ',0
818
db 0x40,0x16,'VignettingCorr2',0
818
db 0x40,0x16,'VignettingCorr2',0
819
db 0x40,0x18,'LightingOpt',0
819
db 0x40,0x18,'LightingOpt',0
820
db 0x40,0x19,'LensInfo',0
820
db 0x40,0x19,'LensInfo',0
821
db 0x40,0x20,'AmbienceInfo',0
821
db 0x40,0x20,'AmbienceInfo',0
822
db 0x40,0x24,'FilterInfo',0
822
db 0x40,0x24,'FilterInfo',0
823
 
823
 
824
dd 0
824
dd 0
825
 
825
 
826
;¤ ­­ë¥ app2 ¤«ï Samsung
826
;¤ ­­ë¥ app2 ¤«ï Samsung
827
align 4
827
align 4
828
gr_927c_Sa:
828
gr_927c_Sa:
829
db 0x00,0x01,'MakerNoteVersion',0	 
829
db 0x00,0x01,'MakerNoteVersion',0	 
830
db 0x00,0x02,'DeviceType',0 
830
db 0x00,0x02,'DeviceType',0 
831
db 0x00,0x03,'SamsungModelID',0
831
db 0x00,0x03,'SamsungModelID',0
832
db 0x00,0x21,'PictureWizard',0
832
db 0x00,0x21,'PictureWizard',0
833
db 0x00,0x30,'LocalLocationName',0
833
db 0x00,0x30,'LocalLocationName',0
834
db 0x00,0x31,'LocationName',0
834
db 0x00,0x31,'LocationName',0
835
db 0x00,0x35,'PreviewIFD',0
835
db 0x00,0x35,'PreviewIFD',0
836
db 0x00,0x43,'CameraTemperature',0
836
db 0x00,0x43,'CameraTemperature',0
837
db 0x00,0x45,'RawCompressionMode',0
837
db 0x00,0x45,'RawCompressionMode',0
838
db 0x01,0x00,'FaceDetect',0
838
db 0x01,0x00,'FaceDetect',0
839
db 0x01,0x20,'FaceRecognition',0
839
db 0x01,0x20,'FaceRecognition',0
840
db 0x01,0x23,'FaceName',0
840
db 0x01,0x23,'FaceName',0
841
db 0xa0,0x01,'FirmwareName',0
841
db 0xa0,0x01,'FirmwareName',0
842
db 0xa0,0x03,'LensType',0
842
db 0xa0,0x03,'LensType',0
843
db 0xa0,0x04,'LensFirmware',0
843
db 0xa0,0x04,'LensFirmware',0
844
db 0xa0,0x05,'InternalLensSerialNumber',0
844
db 0xa0,0x05,'InternalLensSerialNumber',0
845
db 0xa0,0x10,'SensorAreas',0
845
db 0xa0,0x10,'SensorAreas',0
846
db 0xa0,0x11,'ColorSpace',0
846
db 0xa0,0x11,'ColorSpace',0
847
db 0xa0,0x12,'SmartRange',0
847
db 0xa0,0x12,'SmartRange',0
848
db 0xa0,0x13,'ExposureCompensation',0
848
db 0xa0,0x13,'ExposureCompensation',0
849
db 0xa0,0x14,'ISO',0
849
db 0xa0,0x14,'ISO',0
850
db 0xa0,0x18,'ExposureTime',0
850
db 0xa0,0x18,'ExposureTime',0
851
db 0xa0,0x19,'FNumber',0
851
db 0xa0,0x19,'FNumber',0
852
db 0xa0,0x1a,'FocalLengthIn35mmFormat',0
852
db 0xa0,0x1a,'FocalLengthIn35mmFormat',0
853
db 0xa0,0x20,'EncryptionKey',0
853
db 0xa0,0x20,'EncryptionKey',0
854
db 0xa0,0x21,'WB_RGGBLevelsUncorrected',0
854
db 0xa0,0x21,'WB_RGGBLevelsUncorrected',0
855
db 0xa0,0x22,'WB_RGGBLevelsAuto',0
855
db 0xa0,0x22,'WB_RGGBLevelsAuto',0
856
db 0xa0,0x23,'WB_RGGBLevelsIlluminator1',0
856
db 0xa0,0x23,'WB_RGGBLevelsIlluminator1',0
857
db 0xa0,0x24,'WB_RGGBLevelsIlluminator2',0
857
db 0xa0,0x24,'WB_RGGBLevelsIlluminator2',0
858
db 0xa0,0x28,'WB_RGGBLevelsBlack',0
858
db 0xa0,0x28,'WB_RGGBLevelsBlack',0
859
db 0xa0,0x30,'ColorMatrix',0
859
db 0xa0,0x30,'ColorMatrix',0
860
db 0xa0,0x31,'ColorMatrixSRGB',0
860
db 0xa0,0x31,'ColorMatrixSRGB',0
861
db 0xa0,0x32,'ColorMatrixAdobeRGB',0
861
db 0xa0,0x32,'ColorMatrixAdobeRGB',0
862
db 0xa0,0x33,'CbCrMatrixDefault',0
862
db 0xa0,0x33,'CbCrMatrixDefault',0
863
db 0xa0,0x34,'CbCrMatrix',0
863
db 0xa0,0x34,'CbCrMatrix',0
864
db 0xa0,0x35,'CbCrGainDefault',0
864
db 0xa0,0x35,'CbCrGainDefault',0
865
db 0xa0,0x36,'CbCrGain',0
865
db 0xa0,0x36,'CbCrGain',0
866
db 0xa0,0x40,'ToneCurveSRGBDefault',0
866
db 0xa0,0x40,'ToneCurveSRGBDefault',0
867
db 0xa0,0x41,'ToneCurveAdobeRGBDefault',0
867
db 0xa0,0x41,'ToneCurveAdobeRGBDefault',0
868
db 0xa0,0x42,'ToneCurveSRGB',0
868
db 0xa0,0x42,'ToneCurveSRGB',0
869
db 0xa0,0x43,'ToneCurveAdobeRGB',0
869
db 0xa0,0x43,'ToneCurveAdobeRGB',0
870
db 0xa0,0x48,'RawData?',0
870
db 0xa0,0x48,'RawData?',0
871
db 0xa0,0x50,'Distortion?',0
871
db 0xa0,0x50,'Distortion?',0
872
db 0xa0,0x51,'ChromaticAberration?',0
872
db 0xa0,0x51,'ChromaticAberration?',0
873
db 0xa0,0x52,'Vignetting?',0
873
db 0xa0,0x52,'Vignetting?',0
874
db 0xa0,0x53,'VignettingCorrection?',0
874
db 0xa0,0x53,'VignettingCorrection?',0
875
db 0xa0,0x54,'VignettingSetting?',0
875
db 0xa0,0x54,'VignettingSetting?',0
876
 
876
 
877
dd 0
877
dd 0
878
 
878
 
879
;input:
879
;input:
880
; bof - 㪠§ â¥«ì ­  ­ ç «® ä ©« 
880
; bof - 㪠§ â¥«ì ­  ­ ç «® ä ©« 
881
; app1 - 㪠§ â¥«ì ¤«ï § ¯®«­¥­¨ï exif.app1
881
; app1 - 㪠§ â¥«ì ¤«ï § ¯®«­¥­¨ï exif.app1
882
;output:
882
;output:
883
; app1 - 㪠§ â¥«ì ­  ­ ç «® exif.app1 (¨«¨ 0 ¥á«¨ ­¥ ­ ©¤¥­® ¨«¨ ä®à¬ â ä ©«  ­¥ ¯®¤¤¥à¦¨¢ ¥âáï)
883
; app1 - 㪠§ â¥«ì ­  ­ ç «® exif.app1 (¨«¨ 0 ¥á«¨ ­¥ ­ ©¤¥­® ¨«¨ ä®à¬ â ä ©«  ­¥ ¯®¤¤¥à¦¨¢ ¥âáï)
884
align 4
884
align 4
885
proc exif_get_app1 uses eax ebx edi, bof:dword, app1:dword
885
proc exif_get_app1 uses eax ebx edi, bof:dword, app1:dword
886
	mov eax,[bof]
886
	mov eax,[bof]
887
	mov edi,[app1]
887
	mov edi,[app1]
888
 
888
 
889
	;ä ©« ¢ ä®à¬ â¥ jpg?
889
	;ä ©« ¢ ä®à¬ â¥ jpg?
890
	cmp word[eax],0xd8ff
890
	cmp word[eax],0xd8ff
891
	jne .no_exif
891
	jne .no_exif
892
	add eax,2
892
	add eax,2
893
 
893
 
894
	;ä ©« ᮤ¥à¦¨â exif.app0?
894
	;ä ©« ᮤ¥à¦¨â exif.app0?
895
	cmp word[eax],0xe0ff
895
	cmp word[eax],0xe0ff
896
	jne @f
896
	jne @f
897
		add eax,2
897
		add eax,2
898
		movzx ebx,word[eax]
898
		movzx ebx,word[eax]
899
		ror bx,8 ;¢á¥£¤  «¨ â ª ­ ¤®?
899
		ror bx,8 ;¢á¥£¤  «¨ â ª ­ ¤®?
900
		add eax,ebx
900
		add eax,ebx
901
	@@:
901
	@@:
902
 
902
 
903
	;ä ©« ᮤ¥à¦¨â exif.app1?
903
	;ä ©« ᮤ¥à¦¨â exif.app1?
904
	cmp word[eax],0xe1ff
904
	cmp word[eax],0xe1ff
905
	jne .no_exif
905
	jne .no_exif
906
 
906
 
907
	xor ebx,ebx
907
	xor ebx,ebx
908
	cmp word[eax+10],'II'
908
	cmp word[eax+10],'II'
909
	je @f
909
	je @f
910
		inc ebx ;if 'MM' edx=1
910
		inc ebx ;if 'MM' edx=1
911
	@@:
911
	@@:
912
	mov word[edi+offs_m_or_i],bx ;ᯮᮡ ¢ëà ¢­¨¢ ­¨ï ç¨á¥«
912
	mov word[edi+offs_m_or_i],bx ;ᯮᮡ ¢ëà ¢­¨¢ ­¨ï ç¨á¥«
913
	mov dword[edi+offs_id_gr],0 ;id £àã¯ë ¨ ¯à®¨§¢®¤¨â¥«ï, ª®â®àë© ¢á¥£¤  0 ¤«ï app1
913
	mov dword[edi+offs_id_gr],0 ;id £àã¯ë ¨ ¯à®¨§¢®¤¨â¥«ï, ª®â®àë© ¢á¥£¤  0 ¤«ï app1
914
	add eax,18
914
	add eax,18
915
	mov [edi],eax
915
	mov [edi],eax
916
	sub eax,8
916
	sub eax,8
917
	mov [edi+4],eax
917
	mov [edi+4],eax
918
 
918
 
919
	jmp @f
919
	jmp @f
920
	.no_exif:
920
	.no_exif:
921
		mov dword[edi],0
921
		mov dword[edi],0
922
	@@:
922
	@@:
923
	ret
923
	ret
924
endp
924
endp
925
 
925
 
926
;input:
926
;input:
927
; app1 - 㪠§ â¥«ì ­  ­ ç «® exif.app1
927
; app1 - 㪠§ â¥«ì ­  ­ ç «® exif.app1
928
; num - ¯®à浪®¢ë© ­®¬¥à ⥣  (­ ç¨­ ¥âáï á 1)
928
; num - ¯®à浪®¢ë© ­®¬¥à ⥣  (­ ç¨­ ¥âáï á 1)
929
; txt - 㪠§ â¥«ì ­  ⥪áâ, ªã¤  ¡ã¤¥â § ¯¨á ­® §­ ç¥­¨¥
929
; txt - 㪠§ â¥«ì ­  ⥪áâ, ªã¤  ¡ã¤¥â § ¯¨á ­® §­ ç¥­¨¥
930
; t_max - ¬ ªá¨¬ «ì­ë© à §¬¥à ⥪áâ 
930
; t_max - ¬ ªá¨¬ «ì­ë© à §¬¥à ⥪áâ 
-
 
931
;output:
-
 
932
; txt - § ¯®«­ï¥âáï ⥪á⮬ ¢ ¢¨¤¥ "¯ à ¬¥âà: §­ ç¥­¨¥", ¥á«¨ ­¥ ­ ©¤¥­® â® ¯ãáâ ï áâப 
931
align 4
933
align 4
932
proc exif_get_app1_tag, app1:dword, num:dword, txt:dword, t_max:dword
934
proc exif_get_tag, app1:dword, num:dword, txt:dword, t_max:dword
933
pushad
935
pushad
934
	mov eax,[app1]
936
	mov eax,[app1]
935
	mov edi,[txt]
937
	mov edi,[txt]
936
	mov ecx,[num]
938
	mov ecx,[num]
937
 
939
 
938
	xor edx,edx
940
	xor edx,edx
939
	mov byte[edi],dl
941
	mov byte[edi],dl
940
	cmp [eax],edx
942
	cmp [eax],edx
941
	je .end_f ;¥á«¨ ­¥ ­ ©¤¥­ 㪠§ â¥«ì ­  ­ ç «® exif.app1
943
	je .end_f ;¥á«¨ ­¥ ­ ©¤¥­ 㪠§ â¥«ì ­  ­ ç «® exif.app1
942
	cmp ecx,edx
944
	cmp ecx,edx
943
	jle .end_f ;¥á«¨ ¯®à浪®¢ë© ­®¬¥à ⥣  <= 0
945
	jle .end_f ;¥á«¨ ¯®à浪®¢ë© ­®¬¥à ⥣  <= 0
944
 
946
 
945
	movzx edx,word[eax+offs_m_or_i] ;if 'MM' edx=1
947
	movzx edx,word[eax+offs_m_or_i] ;if 'MM' edx=1
946
 
948
 
947
	;¯à®¢¥à塞 ç¨á«® ⥣®¢
949
	;¯à®¢¥à塞 ç¨á«® ⥣®¢
948
	mov eax,[eax]
950
	mov eax,[eax]
949
	movzx ebx,word[eax]
951
	movzx ebx,word[eax]
950
	bt edx,0
952
	bt edx,0
951
	jnc @f
953
	jnc @f
952
		ror bx,8
954
		ror bx,8
953
	@@:
955
	@@:
954
	cmp ecx,ebx
956
	cmp ecx,ebx
955
	jg .end_f ;¥á«¨ ­®¬¥à ⥣  ¡®«ìè¥ ç¥¬ ¨å ¥áâì ¢ ä ©«¥
957
	jg .end_f ;¥á«¨ ­®¬¥à ⥣  ¡®«ìè¥ ç¥¬ ¨å ¥áâì ¢ ä ©«¥
956
 
958
 
957
	;¯¥à¥å®¤¨¬ ­  § ¤ ­­ë© ⥣
959
	;¯¥à¥å®¤¨¬ ­  § ¤ ­­ë© ⥣
958
	dec ecx
960
	dec ecx
959
	imul ecx,tag_size
961
	imul ecx,tag_size
960
	add eax,offs_tag_0
962
	add eax,offs_tag_0
961
	add eax,ecx
963
	add eax,ecx
962
 
964
 
963
	stdcall read_tag_value,[app1],[t_max]
965
	stdcall read_tag_value,[app1],[t_max]
964
 
966
 
965
	.end_f:
967
	.end_f:
966
popad
968
popad
967
	ret
969
	ret
968
endp
970
endp
969
 
971
 
970
;input:
972
;input:
-
 
973
; app1 - 㪠§ â¥«ì ­  ­ ç «® exif.app1
-
 
974
; id - ¨¤¥­â¨ä¨ª â®à ⥣  §­ ç¥­¨¥ ª®â®à®£® ­ã¦­® ­ ©â¨
-
 
975
; txt - 㪠§ â¥«ì ­  ⥪áâ, ªã¤  ¡ã¤¥â § ¯¨á ­® §­ ç¥­¨¥
-
 
976
; t_max - ¬ ªá¨¬ «ì­ë© à §¬¥à ⥪áâ 
-
 
977
;output:
-
 
978
; txt - § ¯®«­ï¥âáï ⥪á⮬ ¢ ¢¨¤¥ "¯ à ¬¥âà: §­ ç¥­¨¥", ¥á«¨ ­¥ ­ ©¤¥­® â® ¯ãáâ ï áâப 
-
 
979
align 4
-
 
980
proc exif_get_tag_id, app1:dword, id:dword, txt:dword, t_max:dword
-
 
981
pushad
-
 
982
	mov eax,[app1]
-
 
983
	mov edi,[txt]
-
 
984
 
-
 
985
	xor edx,edx
-
 
986
	mov byte[edi],dl
-
 
987
	cmp [eax],edx
-
 
988
	je .end_f ;¥á«¨ ­¥ ­ ©¤¥­ 㪠§ â¥«ì ­  ­ ç «® exif.app1
-
 
989
 
-
 
990
	mov ebx,[id]
-
 
991
	movzx edx,word[eax+offs_m_or_i] ;if 'MM' edx=1
-
 
992
	bt edx,0
-
 
993
	jnc @f
-
 
994
		ror bx,8
-
 
995
	@@:
-
 
996
 
-
 
997
	;¡¥à¥¬ ç¨á«® ⥣®¢
-
 
998
	mov eax,[eax]
-
 
999
	movzx ecx,word[eax]
-
 
1000
	bt edx,0
-
 
1001
	jnc @f
-
 
1002
		ror cx,8
-
 
1003
	@@:
-
 
1004
	;¢ ecx - ç¨á«® ⥣®¢
-
 
1005
 
-
 
1006
	;¨é¥¬ § ¤ ­­ë© ⥣
-
 
1007
	add eax,offs_tag_0
-
 
1008
	.cycle_0:
-
 
1009
		cmp word[eax],bx ;word[eax+0] - ª®¤ ⥣ 
-
 
1010
		je @f
-
 
1011
		add eax,tag_size
-
 
1012
		loop .cycle_0
-
 
1013
	jmp .end_f
-
 
1014
	@@:
-
 
1015
		stdcall read_tag_value,[app1],[t_max]
-
 
1016
	.end_f:
-
 
1017
popad
-
 
1018
	ret
-
 
1019
endp
-
 
1020
 
-
 
1021
;input:
971
; app1 - 㪠§ â¥«ì ­  exif.app1 ¨«¨ ­  exif.app1.child
1022
; app1 - 㪠§ â¥«ì ­  exif.app1 ¨«¨ ­  exif.app1.child
972
; child - 㪠§ â¥«ì ¤«ï § ¯®«­¥­¨ï ­ ç «  ¤®ç¥à­¨å ⥣®¢ exif.app1.child
1023
; child - 㪠§ â¥«ì ¤«ï § ¯®«­¥­¨ï ­ ç «  ¤®ç¥à­¨å ⥣®¢ exif.app1.child
973
; c_tag - ⥣ ¤«ï ª®â®à®£® ¤¥« ¥âáï ¯®¨áª ¤®ç¥à­¨å
1024
; c_tag - ⥣ ¤«ï ª®â®à®£® ¤¥« ¥âáï ¯®¨áª ¤®ç¥à­¨å
974
;output:
1025
;output:
975
; child - 㪠§ â¥«ì ­  ­ ç «® ¤®ç¥à­¨å ⥣®¢
1026
; child - 㪠§ â¥«ì ­  ­ ç «® ¤®ç¥à­¨å ⥣®¢
976
align 4
1027
align 4
977
proc exif_get_app1_child, app1:dword, child:dword , c_tag:dword
1028
proc exif_get_child, app1:dword, child:dword , c_tag:dword
978
pushad
1029
pushad
979
	mov eax,[app1]
1030
	mov eax,[app1]
980
	mov edi,[child]
1031
	mov edi,[child]
981
 
1032
 
982
	xor edx,edx
1033
	xor edx,edx
983
	cmp [eax],edx
1034
	cmp [eax],edx
984
	je .no_found ;¥á«¨ ­¥ ­ ©¤¥­ 㪠§ â¥«ì ­  ­ ç «® exif.app1
1035
	je .no_found ;¥á«¨ ­¥ ­ ©¤¥­ 㪠§ â¥«ì ­  ­ ç «® exif.app1
985
 
1036
 
986
	movzx edx,word[eax+offs_m_or_i] ;if 'MM' edx=1
1037
	movzx edx,word[eax+offs_m_or_i] ;if 'MM' edx=1
987
 
1038
 
988
	;­ ç «® ¯®¨áª 
1039
	;­ ç «® ¯®¨áª 
989
	mov ebx,[c_tag]
1040
	mov ebx,[c_tag]
990
	bt edx,0
1041
	bt edx,0
991
	jnc @f
1042
	jnc @f
992
		ror bx,8
1043
		ror bx,8
993
	@@:
1044
	@@:
994
 
1045
 
995
	;¯à®¢¥à塞 ç¨á«® ⥣®¢
1046
	;¯à®¢¥à塞 ç¨á«® ⥣®¢
996
	mov eax,[eax]
1047
	mov eax,[eax]
997
	movzx ecx,word[eax]
1048
	movzx ecx,word[eax]
998
	bt edx,0
1049
	bt edx,0
999
	jnc @f
1050
	jnc @f
1000
		ror cx,8
1051
		ror cx,8
1001
	@@:
1052
	@@:
1002
	cmp ecx,1
1053
	cmp ecx,1
1003
	jl .no_found ;¥á«¨ ç¨á«® ⥣®¢ <1
1054
	jl .no_found ;¥á«¨ ç¨á«® ⥣®¢ <1
1004
 
1055
 
1005
	;¯¥à¥å®¤¨¬ ­  1-© ⥣
1056
	;¯¥à¥å®¤¨¬ ­  1-© ⥣
1006
	add eax,offs_tag_0
1057
	add eax,offs_tag_0
1007
	@@:
1058
	@@:
1008
		cmp word[eax],bx
1059
		cmp word[eax],bx
1009
		je @f
1060
		je @f
1010
		add eax,tag_size
1061
		add eax,tag_size
1011
		loop @b
1062
		loop @b
1012
	jmp .no_found ;¥á«¨ ­¥ ­ ©¤¥­®
1063
	jmp .no_found ;¥á«¨ ­¥ ­ ©¤¥­®
1013
	@@: ;¥á«¨ ­ ©¤¥­®
1064
	@@: ;¥á«¨ ­ ©¤¥­®
1014
		mov ebx,dword[eax+8]
1065
		mov ebx,dword[eax+8]
1015
		bt edx,0
1066
		bt edx,0
1016
		jnc @f
1067
		jnc @f
1017
			bswap ebx
1068
			bswap ebx
1018
		@@:
1069
		@@:
1019
		mov eax,[app1]
1070
		mov eax,[app1]
1020
		add ebx,[eax+4]
1071
		add ebx,[eax+4]
1021
		mov dword[edi],ebx
1072
		mov dword[edi],ebx
1022
		m2m dword[edi+4],dword[eax+4]
1073
		m2m dword[edi+4],dword[eax+4]
1023
		ror edx,16
1074
		ror edx,16
1024
		mov dx,word[c_tag]
1075
		mov dx,word[c_tag]
1025
		ror edx,16
1076
		ror edx,16
1026
		mov dword[edi+offs_m_or_i],edx
1077
		mov dword[edi+offs_m_or_i],edx
1027
		m2m word[edi+offs_id_gr_mak],word[eax+offs_id_gr_mak]
1078
		m2m word[edi+offs_id_gr_mak],word[eax+offs_id_gr_mak]
1028
 
1079
 
1029
	jmp .end_f
1080
	jmp .end_f
1030
	.no_found:
1081
	.no_found:
1031
		mov dword[edi],0
1082
		mov dword[edi],0
1032
	.end_f:
1083
	.end_f:
1033
popad
1084
popad
1034
	ret
1085
	ret
1035
endp
1086
endp
1036
 
1087
 
1037
;output:
1088
;output:
1038
; app2 - 㪠§ â¥«ì ­  ­ ç «® exif.app2 (¨«¨ 0 ¥á«¨ ­¥ ­ ©¤¥­® ¨«¨ ä®à¬ â ä ©«  ­¥ ¯®¤¤¥à¦¨¢ ¥âáï)
1089
; app2 - 㪠§ â¥«ì ­  ­ ç «® exif.app2 (¨«¨ 0 ¥á«¨ ­¥ ­ ©¤¥­® ¨«¨ ä®à¬ â ä ©«  ­¥ ¯®¤¤¥à¦¨¢ ¥âáï)
1039
align 4
1090
align 4
1040
proc exif_get_app2, app1:dword, app2:dword
1091
proc exif_get_app2, app1:dword, app2:dword
1041
pushad
1092
pushad
1042
	mov edi,[app2]
1093
	mov edi,[app2]
1043
	mov eax,[app1]
1094
	mov eax,[app1]
1044
	xor edx,edx
1095
	xor edx,edx
1045
	cmp [eax],edx
1096
	cmp [eax],edx
1046
	je .no_suport ;¥á«¨ ­¥ ­ ©¤¥­ 㪠§ â¥«ì ­  ­ ç «® exif.app1
1097
	je .no_suport ;¥á«¨ ­¥ ­ ©¤¥­ 㪠§ â¥«ì ­  ­ ç «® exif.app1
1047
 
1098
 
1048
	movzx edx,word[eax+offs_m_or_i] ;if 'MM' edx=1
1099
	movzx edx,word[eax+offs_m_or_i] ;if 'MM' edx=1
1049
 
1100
 
1050
	;­ ç «® ¯®¨áª  ¯à®¨§¢®¤¨â¥«ï ª ¬¥àë
1101
	;­ ç «® ¯®¨áª  ¯à®¨§¢®¤¨â¥«ï ª ¬¥àë
1051
	mov ebx,0x010f
1102
	mov ebx,0x010f
1052
	bt edx,0
1103
	bt edx,0
1053
	jnc @f
1104
	jnc @f
1054
		ror bx,8
1105
		ror bx,8
1055
	@@:
1106
	@@:
1056
 
1107
 
1057
	;¯à®¢¥à塞 ç¨á«® ⥣®¢
1108
	;¯à®¢¥à塞 ç¨á«® ⥣®¢
1058
	mov eax,[eax]
1109
	mov eax,[eax]
1059
	movzx ecx,word[eax]
1110
	movzx ecx,word[eax]
1060
	bt edx,0
1111
	bt edx,0
1061
	jnc @f
1112
	jnc @f
1062
		ror cx,8
1113
		ror cx,8
1063
	@@:
1114
	@@:
1064
	cmp ecx,1
1115
	cmp ecx,1
1065
	jl .no_suport ;¥á«¨ ç¨á«® ⥣®¢ <1
1116
	jl .no_suport ;¥á«¨ ç¨á«® ⥣®¢ <1
1066
 
1117
 
1067
	;¯¥à¥å®¤¨¬ ­  1-© ⥣
1118
	;¯¥à¥å®¤¨¬ ­  1-© ⥣
1068
	add eax,offs_tag_0
1119
	add eax,offs_tag_0
1069
	@@:
1120
	@@:
1070
		cmp word[eax],bx
1121
		cmp word[eax],bx
1071
		je @f
1122
		je @f
1072
		add eax,tag_size
1123
		add eax,tag_size
1073
		loop @b
1124
		loop @b
1074
	jmp .no_suport ;¥á«¨ ­¥ ­ ©¤¥­®
1125
	jmp .no_suport ;¥á«¨ ­¥ ­ ©¤¥­®
1075
	@@: ;¥á«¨ ­ ©¤¥­®	
1126
	@@: ;¥á«¨ ­ ©¤¥­®	
1076
		mov ebx,dword[eax+4]
1127
		mov ebx,dword[eax+4]
1077
		bt edx,0
1128
		bt edx,0
1078
		jnc @f
1129
		jnc @f
1079
			bswap ebx
1130
			bswap ebx
1080
		@@:
1131
		@@:
1081
		cmp ebx,4
1132
		cmp ebx,4
1082
		jle .no_suport ;­ §¢ ­¨¥ ¯à®¨§¢®¤¨â¥«ï ¬¥­ìè¥ 4 ᨬ¢®«®¢, ­¥ ¯®¤¤¥à¦¨ ¢ ¥âáï
1133
		jle .no_suport ;­ §¢ ­¨¥ ¯à®¨§¢®¤¨â¥«ï ¬¥­ìè¥ 4 ᨬ¢®«®¢, ­¥ ¯®¤¤¥à¦¨ ¢ ¥âáï
1083
 
1134
 
1084
		mov ebx,dword[eax+8]
1135
		mov ebx,dword[eax+8]
1085
		bt edx,0
1136
		bt edx,0
1086
		jnc @f
1137
		jnc @f
1087
			bswap ebx
1138
			bswap ebx
1088
		@@:
1139
		@@:
1089
	
1140
	
1090
	;¯à®¢¥àª  ¯®¤¤¥à¦¨¢ ¥¬ëå ¯à®¨§¢®¤¨â¥«¥©
1141
	;¯à®¢¥àª  ¯®¤¤¥à¦¨¢ ¥¬ëå ¯à®¨§¢®¤¨â¥«¥©
1091
	mov eax,[app1]
1142
	mov eax,[app1]
1092
	add ebx,[eax+4]
1143
	add ebx,[eax+4]
1093
	cmp dword[ebx],'Cano'
1144
	cmp dword[ebx],'Cano'
1094
	je .suport
1145
	je .suport
1095
	cmp dword[ebx],'NIKO'
1146
	cmp dword[ebx],'NIKO'
1096
	je .suport
1147
	je .suport
1097
	cmp dword[ebx],'Pana'
1148
	cmp dword[ebx],'Pana'
1098
	je .suport
1149
	je .suport
1099
	cmp dword[ebx],'SAMS'
1150
	cmp dword[ebx],'SAMS'
1100
	je .suport
1151
	je .suport
1101
	cmp dword[ebx],'sams'
1152
	cmp dword[ebx],'sams'
1102
	je .suport
1153
	je .suport
1103
 
1154
 
1104
	;¢á¥ ®áâ «ì­ë¥ ­¥ ¯®¤¤¥à¦¨¢ îâáï
1155
	;¢á¥ ®áâ «ì­ë¥ ­¥ ¯®¤¤¥à¦¨¢ îâáï
1105
	jmp .no_suport
1156
	jmp .no_suport
1106
 
1157
 
1107
	.suport:
1158
	.suport:
1108
	;­ å®¤¨¬ ⥣ 0x8769 (à áè¨à¥­­ë¥ ¤ ­­ë¥ ¯® Exif)
1159
	;­ å®¤¨¬ ⥣ 0x8769 (à áè¨à¥­­ë¥ ¤ ­­ë¥ ¯® Exif)
1109
	stdcall exif_get_app1_child, eax,edi,0x8769
1160
	stdcall exif_get_child, eax,edi,0x8769
1110
	cmp dword[edi],0
1161
	cmp dword[edi],0
1111
	je .no_suport
1162
	je .no_suport
1112
	;­ å®¤¨¬ ⥣ 0x927c (¤ ­­ë¥ Maker ¯® ª ¬¥à¥)
1163
	;­ å®¤¨¬ ⥣ 0x927c (¤ ­­ë¥ Maker ¯® ª ¬¥à¥)
1113
	stdcall exif_get_app1_child, edi,edi, 0x927c
1164
	stdcall exif_get_child, edi,edi, 0x927c
1114
	cmp dword[edi],0
1165
	cmp dword[edi],0
1115
	je .no_suport
1166
	je .no_suport
1116
 
1167
 
1117
	cmp dword[ebx],'NIKO'
1168
	cmp dword[ebx],'NIKO'
1118
	jne @f
1169
	jne @f
1119
		;for Nikon
1170
		;for Nikon
1120
		add dword[edi],18
1171
		add dword[edi],18
1121
		mov eax,dword[edi]
1172
		mov eax,dword[edi]
1122
		sub eax,8
1173
		sub eax,8
1123
		mov dword[edi+4],eax
1174
		mov dword[edi+4],eax
1124
		mov word[edi+offs_id_gr_mak],'Ni'
1175
		mov word[edi+offs_id_gr_mak],'Ni'
1125
		jmp .end_f
1176
		jmp .end_f
1126
	@@:
1177
	@@:
1127
	cmp dword[ebx],'Pana'
1178
	cmp dword[ebx],'Pana'
1128
	jne @f
1179
	jne @f
1129
		;for Panasonic
1180
		;for Panasonic
1130
		add dword[edi],12
1181
		add dword[edi],12
1131
		mov word[edi+offs_id_gr_mak],'Pa'
1182
		mov word[edi+offs_id_gr_mak],'Pa'
1132
		jmp .end_f
1183
		jmp .end_f
1133
	@@:
1184
	@@:
1134
	cmp dword[ebx],'Cano'
1185
	cmp dword[ebx],'Cano'
1135
	jne @f
1186
	jne @f
1136
		;for Canon
1187
		;for Canon
1137
		mov word[edi+offs_id_gr_mak],'Ca'
1188
		mov word[edi+offs_id_gr_mak],'Ca'
1138
		jmp .end_f
1189
		jmp .end_f
1139
	@@:
1190
	@@:
1140
 
1191
 
1141
	cmp dword[ebx],'SAMS'
1192
	cmp dword[ebx],'SAMS'
1142
	je @f
1193
	je @f
1143
	cmp dword[ebx],'sams'
1194
	cmp dword[ebx],'sams'
1144
	je @f
1195
	je @f
1145
		jmp .end_f
1196
		jmp .end_f
1146
	@@:
1197
	@@:
1147
		;for Samsung
1198
		;for Samsung
1148
		mov word[edi+offs_id_gr_mak],'Sa'
1199
		mov word[edi+offs_id_gr_mak],'Sa'
1149
		jmp .end_f
1200
		jmp .end_f
1150
	@@:
1201
	@@:
1151
 
1202
 
1152
	.no_suport:
1203
	.no_suport:
1153
		mov dword[edi],0
1204
		mov dword[edi],0
1154
	.end_f:
1205
	.end_f:
1155
popad
1206
popad
1156
	ret
1207
	ret
1157
endp
1208
endp
1158
 
1209
 
1159
;description:
1210
;description:
1160
; ¢á¯®¬®£ â¥«ì­ ï äã­ªæ¨ï ¤«ï ç⥭¨ï ­ §­ ç¥­¨© ⥣®¢
1211
; ¢á¯®¬®£ â¥«ì­ ï äã­ªæ¨ï ¤«ï ç⥭¨ï ­ §­ ç¥­¨© ⥣®¢
1161
;input:
1212
;input:
1162
; eax - 㪠§ â¥«ì ­ ç «  ⥣ 
1213
; eax - 㪠§ â¥«ì ­ ç «  ⥣ 
1163
; edi - 㪠§ â¥«ì ­  ¯ ¬ïâì ¤«ï § ¯¨á¨ ⥪á⮢®© áâப¨
1214
; edi - 㪠§ â¥«ì ­  ¯ ¬ïâì ¤«ï § ¯¨á¨ ⥪á⮢®© áâப¨
1164
align 4
1215
align 4
1165
proc read_tag_value, app1:dword, t_max:dword
1216
proc read_tag_value, app1:dword, t_max:dword
1166
	push exif_tag_numbers
1217
	push exif_tag_numbers
1167
	pop esi
1218
	pop esi
1168
 
1219
 
1169
	;¯®¨áª â ¡«¨æë ¤«ï £à㯯ë ⥣®¢
1220
	;¯®¨áª â ¡«¨æë ¤«ï £à㯯ë ⥣®¢
1170
	mov ebx,[app1]
1221
	mov ebx,[app1]
1171
	mov ebx,dword[ebx+offs_id_gr] ;¡¥à¥¬ ¨¤¥­â¨ä¨ª â®à £à㯯ë ⥣®¢
1222
	mov ebx,dword[ebx+offs_id_gr] ;¡¥à¥¬ ¨¤¥­â¨ä¨ª â®à £à㯯ë ⥣®¢
1172
	@@:
1223
	@@:
1173
		cmp dword[esi],ebx
1224
		cmp dword[esi],ebx
1174
		je .set_table
1225
		je .set_table
1175
		add esi,8
1226
		add esi,8
1176
		cmp esi,exif_tag_numbers.end
1227
		cmp esi,exif_tag_numbers.end
1177
		jge .tag_unknown ;⥣ ­¥ ®¯®§­ ­ (­¥ ­ ©¤¥­  â ¡«¨æ  £à㯯ë ⥣®¢)
1228
		jge .tag_unknown ;⥣ ­¥ ®¯®§­ ­ (­¥ ­ ©¤¥­  â ¡«¨æ  £à㯯ë ⥣®¢)
1178
		jmp @b
1229
		jmp @b
1179
	.set_table:
1230
	.set_table:
1180
		mov esi,dword[esi+4] ;ãáâ ­®¢ª   ¤à¥á  â ¡«¨æë ¢ esi
1231
		mov esi,dword[esi+4] ;ãáâ ­®¢ª   ¤à¥á  â ¡«¨æë ¢ esi
1181
 
1232
 
1182
	;¯®¨áª ­ §¢ ­¨ï ⥣  ¢ â ¡«¨æ¥
1233
	;¯®¨áª ­ §¢ ­¨ï ⥣  ¢ â ¡«¨æ¥
1183
	.next_tag:
1234
	.next_tag:
1184
	mov bx,word[esi]
1235
	mov bx,word[esi]
1185
	cmp bx,0
1236
	cmp bx,0
1186
	jne @f
1237
	jne @f
1187
		cmp dword[esi],0
1238
		cmp dword[esi],0
1188
		jne @f
1239
		jne @f
1189
		jmp .tag_unknown ;⥣ ­¥ ®¯®§­ ­ (¢ £à㯯¥ ­¥ ­ ©¤¥­ ⥣)
1240
		jmp .tag_unknown ;⥣ ­¥ ®¯®§­ ­ (¢ £à㯯¥ ­¥ ­ ©¤¥­ ⥣)
1190
	@@:
1241
	@@:
1191
	bt edx,0
1242
	bt edx,0
1192
	jc @f
1243
	jc @f
1193
		ror bx,8
1244
		ror bx,8
1194
	@@:
1245
	@@:
1195
	cmp word[eax],bx
1246
	cmp word[eax],bx
1196
	je .found
1247
	je .found
1197
	inc esi
1248
	inc esi
1198
	@@:
1249
	@@:
1199
		inc esi
1250
		inc esi
1200
		cmp byte[esi],0
1251
		cmp byte[esi],0
1201
		jne @b
1252
		jne @b
1202
	inc esi
1253
	inc esi
1203
	jmp .next_tag
1254
	jmp .next_tag
1204
	.found:
1255
	.found:
1205
 
1256
 
1206
	;ª®¯¨à㥬 áâபã á ­ §¢ ­¨¥¬ ⥣ 
1257
	;ª®¯¨à㥬 áâபã á ­ §¢ ­¨¥¬ ⥣ 
1207
	add esi,2
1258
	add esi,2
1208
	stdcall str_n_cat,edi,esi,[t_max]
1259
	stdcall str_n_cat,edi,esi,[t_max]
1209
 
1260
 
1210
	jmp .start_read
1261
	jmp .start_read
1211
	.tag_unknown:
1262
	.tag_unknown:
1212
		;¥á«¨ ⥣ ­¥ ­ ©¤¥­ áâ ¢¨¬ ¥£® ª®¤ ¢¬¥áâ® ­ §¢ ­¨ï
1263
		;¥á«¨ ⥣ ­¥ ­ ©¤¥­ áâ ¢¨¬ ¥£® ª®¤ ¢¬¥áâ® ­ §¢ ­¨ï
1213
		movzx ebx,word[eax]
1264
		movzx ebx,word[eax]
1214
		bt edx,0
1265
		bt edx,0
1215
		jnc @f
1266
		jnc @f
1216
			ror bx,8
1267
			ror bx,8
1217
		@@:
1268
		@@:
1218
		stdcall hex_in_str, edi, ebx,4
1269
		stdcall hex_in_str, edi, ebx,4
1219
		mov byte[edi+4],0
1270
		mov byte[edi+4],0
1220
	.start_read:
1271
	.start_read:
1221
 
1272
 
1222
	;ç¨â ¥¬ ¨­ä®à¬ æ¨î ¢ ⥣¥
1273
	;ç¨â ¥¬ ¨­ä®à¬ æ¨î ¢ ⥣¥
1223
	mov bx,tag_format_ui1b
1274
	mov bx,tag_format_ui1b
1224
	bt edx,0
1275
	bt edx,0
1225
	jnc @f
1276
	jnc @f
1226
		ror bx,8
1277
		ror bx,8
1227
	@@:
1278
	@@:
1228
	cmp word[eax+2],bx
1279
	cmp word[eax+2],bx
1229
	jne .tag_01
1280
	jne .tag_01
1230
		stdcall str_n_cat,edi,txt_dp,[t_max]
1281
		stdcall str_n_cat,edi,txt_dp,[t_max]
1231
		call get_tag_data_size
1282
		call get_tag_data_size
1232
		cmp ebx,4
1283
		cmp ebx,4
1233
		jg .over4b_01
1284
		jg .over4b_01
1234
		cmp ebx,1
1285
		cmp ebx,1
1235
		je @f
1286
		je @f
1236
			or edx,2 ;array data
1287
			or edx,2 ;array data
1237
			mov ecx,dword[eax+8]
1288
			mov ecx,dword[eax+8]
1238
			mov dh,bl
1289
			mov dh,bl
1239
		@@:
1290
		@@:
1240
			;¥á«¨ 1 ®¤­® ¡ ©â®¢®¥ ç¨á«®
1291
			;¥á«¨ 1 ®¤­® ¡ ©â®¢®¥ ç¨á«®
1241
			movzx ebx,byte[eax+8]
1292
			movzx ebx,byte[eax+8]
1242
			stdcall str_len,edi
1293
			stdcall str_len,edi
1243
			add edi,eax
1294
			add edi,eax
1244
			mov eax,ebx
1295
			mov eax,ebx
1245
			stdcall convert_int_to_str, [t_max]
1296
			stdcall convert_int_to_str, [t_max]
1246
			bt edx,1
1297
			bt edx,1
1247
			jnc .end_f
1298
			jnc .end_f
1248
			@@:
1299
			@@:
1249
				;¥á«¨ ®â 2 ¤® 4 ®¤­® ¡ ©â®¢ëå ç¨á¥«
1300
				;¥á«¨ ®â 2 ¤® 4 ®¤­® ¡ ©â®¢ëå ç¨á¥«
1250
				dec dh
1301
				dec dh
1251
				cmp dh,0
1302
				cmp dh,0
1252
				je .end_f
1303
				je .end_f
1253
				shr ecx,8
1304
				shr ecx,8
1254
				stdcall str_n_cat,edi,txt_zap,[t_max]
1305
				stdcall str_n_cat,edi,txt_zap,[t_max]
1255
				stdcall str_len,edi
1306
				stdcall str_len,edi
1256
				add edi,eax
1307
				add edi,eax
1257
				movzx eax,cl
1308
				movzx eax,cl
1258
				stdcall convert_int_to_str, [t_max]
1309
				stdcall convert_int_to_str, [t_max]
1259
				jmp @b
1310
				jmp @b
1260
		.over4b_01:
1311
		.over4b_01:
1261
			;...
1312
			;...
1262
		jmp .end_f
1313
		jmp .end_f
1263
	.tag_01:
1314
	.tag_01:
1264
 
1315
 
1265
	mov bx,tag_format_text
1316
	mov bx,tag_format_text
1266
	bt edx,0
1317
	bt edx,0
1267
	jnc @f
1318
	jnc @f
1268
		ror bx,8
1319
		ror bx,8
1269
	@@:
1320
	@@:
1270
	cmp word[eax+2],bx
1321
	cmp word[eax+2],bx
1271
	jne .tag_02
1322
	jne .tag_02
1272
		stdcall str_n_cat,edi,txt_dp,[t_max]
1323
		stdcall str_n_cat,edi,txt_dp,[t_max]
1273
		call get_tag_data_size ;¯à®¢¥à塞 ¤«¨­­ã áâப¨
1324
		call get_tag_data_size ;¯à®¢¥à塞 ¤«¨­­ã áâப¨
1274
		cmp ebx,4
1325
		cmp ebx,4
1275
		jg @f
1326
		jg @f
1276
			;¥á«¨ áâப  ¯®¬¥é ¥âáï ¢ 4 ᨬ¢®« 
1327
			;¥á«¨ áâப  ¯®¬¥é ¥âáï ¢ 4 ᨬ¢®« 
1277
			mov esi,eax
1328
			mov esi,eax
1278
			add esi,8
1329
			add esi,8
1279
			stdcall str_n_cat,edi,esi,[t_max]
1330
			stdcall str_n_cat,edi,esi,[t_max]
1280
			jmp .end_f
1331
			jmp .end_f
1281
		;¥á«¨ áâப  ­¥ ¯®¬¥é ¥âáï ¢ 4 ᨬ¢®« 
1332
		;¥á«¨ áâப  ­¥ ¯®¬¥é ¥âáï ¢ 4 ᨬ¢®« 
1282
		@@:
1333
		@@:
1283
		mov esi,dword[eax+8]
1334
		mov esi,dword[eax+8]
1284
		bt edx,0
1335
		bt edx,0
1285
		jnc @f
1336
		jnc @f
1286
			bswap esi
1337
			bswap esi
1287
		@@:
1338
		@@:
1288
		mov eax,[app1]
1339
		mov eax,[app1]
1289
		mov eax,[eax+4]
1340
		mov eax,[eax+4]
1290
		add esi,eax
1341
		add esi,eax
1291
		stdcall str_n_cat,edi,esi,[t_max]
1342
		stdcall str_n_cat,edi,esi,[t_max]
1292
		jmp .end_f
1343
		jmp .end_f
1293
	.tag_02:
1344
	.tag_02:
1294
 
1345
 
1295
	mov bx,tag_format_ui2b
1346
	mov bx,tag_format_ui2b
1296
	bt edx,0
1347
	bt edx,0
1297
	jnc @f
1348
	jnc @f
1298
		ror bx,8
1349
		ror bx,8
1299
	@@:
1350
	@@:
1300
	cmp word[eax+2],bx
1351
	cmp word[eax+2],bx
1301
	jne .tag_03
1352
	jne .tag_03
1302
		stdcall str_n_cat,edi,txt_dp,[t_max]
1353
		stdcall str_n_cat,edi,txt_dp,[t_max]
1303
		call get_tag_data_size
1354
		call get_tag_data_size
1304
		cmp ebx,2
1355
		cmp ebx,2
1305
		jg .over4b_03
1356
		jg .over4b_03
1306
		jne @f
1357
		jne @f
1307
			;¥á«¨ ¤¢  2 ¡ ©â®¢ëå ç¨á« 
1358
			;¥á«¨ ¤¢  2 ¡ ©â®¢ëå ç¨á« 
1308
			or edx,2 ;array data
1359
			or edx,2 ;array data
1309
			movzx ecx,word[eax+10]
1360
			movzx ecx,word[eax+10]
1310
			bt edx,0
1361
			bt edx,0
1311
			jnc @f
1362
			jnc @f
1312
				ror cx,8
1363
				ror cx,8
1313
			@@:
1364
			@@:
1314
			;¥á«¨ ®¤­® 2 ¡ ©â®¢®¥ ç¨á«®
1365
			;¥á«¨ ®¤­® 2 ¡ ©â®¢®¥ ç¨á«®
1315
			movzx ebx,word[eax+8]
1366
			movzx ebx,word[eax+8]
1316
			bt edx,0
1367
			bt edx,0
1317
			jnc @f
1368
			jnc @f
1318
				ror bx,8
1369
				ror bx,8
1319
			@@:
1370
			@@:
1320
			stdcall str_len,edi
1371
			stdcall str_len,edi
1321
			add edi,eax
1372
			add edi,eax
1322
			mov eax,ebx
1373
			mov eax,ebx
1323
			stdcall convert_int_to_str, [t_max]
1374
			stdcall convert_int_to_str, [t_max]
1324
			bt edx,1 ;array ?
1375
			bt edx,1 ;array ?
1325
			jnc .end_f
1376
			jnc .end_f
1326
			;¤®¡ ¢«ï¥¬ 2-¥ ç¨á«®
1377
			;¤®¡ ¢«ï¥¬ 2-¥ ç¨á«®
1327
			stdcall str_n_cat,edi,txt_zap,[t_max]
1378
			stdcall str_n_cat,edi,txt_zap,[t_max]
1328
			stdcall str_len,edi
1379
			stdcall str_len,edi
1329
			add edi,eax
1380
			add edi,eax
1330
			mov eax,ecx
1381
			mov eax,ecx
1331
			stdcall convert_int_to_str, [t_max]
1382
			stdcall convert_int_to_str, [t_max]
1332
			jmp .end_f
1383
			jmp .end_f
1333
		.over4b_03:
1384
		.over4b_03:
1334
			mov ecx,[t_max]
1385
			mov ecx,[t_max]
1335
			mov esi,dword[eax+8]
1386
			mov esi,dword[eax+8]
1336
			bt edx,0
1387
			bt edx,0
1337
			jnc @f
1388
			jnc @f
1338
				bswap esi
1389
				bswap esi
1339
			@@:
1390
			@@:
1340
			mov eax,[app1]
1391
			mov eax,[app1]
1341
			mov eax,[eax+4]
1392
			mov eax,[eax+4]
1342
			add esi,eax
1393
			add esi,eax
1343
			
1394
			
1344
			;¡¥à¥¬ ç¨á«®
1395
			;¡¥à¥¬ ç¨á«®
1345
			.array_03:
1396
			.array_03:
1346
			stdcall str_len,edi
1397
			stdcall str_len,edi
1347
			cmp ecx,eax
1398
			cmp ecx,eax
1348
			jle .end_f ;¥á«¨ ­¥ 墠⨫® áâப¨
1399
			jle .end_f ;¥á«¨ ­¥ 墠⨫® áâப¨
1349
			add edi,eax
1400
			add edi,eax
1350
			sub ecx,eax
1401
			sub ecx,eax
1351
			movzx eax,word[esi]
1402
			movzx eax,word[esi]
1352
			bt edx,0
1403
			bt edx,0
1353
			jnc @f
1404
			jnc @f
1354
				ror ax,8
1405
				ror ax,8
1355
			@@:
1406
			@@:
1356
			stdcall convert_int_to_str,ecx
1407
			stdcall convert_int_to_str,ecx
1357
 
1408
 
1358
			dec ebx
1409
			dec ebx
1359
			cmp ebx,0
1410
			cmp ebx,0
1360
			je .end_f
1411
			je .end_f
1361
 
1412
 
1362
			;¤®¡ ¢«ï¥¬ § ¯ïâãî
1413
			;¤®¡ ¢«ï¥¬ § ¯ïâãî
1363
			stdcall str_n_cat,edi,txt_zap,ecx
1414
			stdcall str_n_cat,edi,txt_zap,ecx
1364
			add esi,2
1415
			add esi,2
1365
			jmp .array_03
1416
			jmp .array_03
1366
	.tag_03:
1417
	.tag_03:
1367
 
1418
 
1368
	mov bx,tag_format_ui4b
1419
	mov bx,tag_format_ui4b
1369
	bt edx,0
1420
	bt edx,0
1370
	jnc @f
1421
	jnc @f
1371
		ror bx,8
1422
		ror bx,8
1372
	@@:
1423
	@@:
1373
	cmp word[eax+2],bx
1424
	cmp word[eax+2],bx
1374
	jne .tag_04
1425
	jne .tag_04
1375
		stdcall str_n_cat,edi,txt_dp,[t_max]
1426
		stdcall str_n_cat,edi,txt_dp,[t_max]
1376
		call get_tag_data_size
1427
		call get_tag_data_size
1377
		cmp ebx,1
1428
		cmp ebx,1
1378
		jg .over4b_04
1429
		jg .over4b_04
1379
			;¥á«¨ ®¤­® 4 ¡ ©â®¢®¥ ç¨á«®
1430
			;¥á«¨ ®¤­® 4 ¡ ©â®¢®¥ ç¨á«®
1380
			mov ebx,dword[eax+8]
1431
			mov ebx,dword[eax+8]
1381
			bt edx,0
1432
			bt edx,0
1382
			jnc @f
1433
			jnc @f
1383
				bswap ebx
1434
				bswap ebx
1384
			@@:
1435
			@@:
1385
			stdcall str_len,edi
1436
			stdcall str_len,edi
1386
			add edi,eax
1437
			add edi,eax
1387
			mov eax,ebx
1438
			mov eax,ebx
1388
			stdcall convert_int_to_str, [t_max]
1439
			stdcall convert_int_to_str, [t_max]
1389
		.over4b_04:
1440
		.over4b_04:
1390
			;...
1441
			;...
1391
		jmp .end_f
1442
		jmp .end_f
1392
	.tag_04:
1443
	.tag_04:
1393
 
1444
 
1394
	mov bx,tag_format_urb
1445
	mov bx,tag_format_urb
1395
	bt edx,0
1446
	bt edx,0
1396
	jnc @f
1447
	jnc @f
1397
		ror bx,8
1448
		ror bx,8
1398
	@@:
1449
	@@:
1399
	cmp word[eax+2],bx
1450
	cmp word[eax+2],bx
1400
	jne .tag_05
1451
	jne .tag_05
1401
		stdcall str_n_cat,edi,txt_dp,[t_max]
1452
		stdcall str_n_cat,edi,txt_dp,[t_max]
1402
		;call get_tag_data_size
1453
		;call get_tag_data_size
1403
		;cmp ebx,1
1454
		;cmp ebx,1
1404
		;jg .over4b_05
1455
		;jg .over4b_05
1405
			mov ebx,dword[eax+8]
1456
			mov ebx,dword[eax+8]
1406
			bt edx,0
1457
			bt edx,0
1407
			jnc @f
1458
			jnc @f
1408
				bswap ebx
1459
				bswap ebx
1409
			@@:
1460
			@@:
1410
			stdcall str_len,edi
1461
			stdcall str_len,edi
1411
			add edi,eax
1462
			add edi,eax
1412
			mov eax,[app1]
1463
			mov eax,[app1]
1413
			mov eax,[eax+4]
1464
			mov eax,[eax+4]
1414
			add ebx,eax
1465
			add ebx,eax
1415
			mov eax,[ebx]
1466
			mov eax,[ebx]
1416
			bt edx,0
1467
			bt edx,0
1417
			jnc @f
1468
			jnc @f
1418
				bswap eax
1469
				bswap eax
1419
			@@:
1470
			@@:
1420
			stdcall convert_int_to_str, [t_max] ;áâ ¢¨¬ 1-¥ ç¨á«®
1471
			stdcall convert_int_to_str, [t_max] ;áâ ¢¨¬ 1-¥ ç¨á«®
1421
			stdcall str_n_cat,edi,txt_div,[t_max] ;áâ ¢¨¬ §­ ª ¤¥«¥­¨ï
1472
			stdcall str_n_cat,edi,txt_div,[t_max] ;áâ ¢¨¬ §­ ª ¤¥«¥­¨ï
1422
			stdcall str_len,edi
1473
			stdcall str_len,edi
1423
			add edi,eax
1474
			add edi,eax
1424
			mov eax,[ebx+4]
1475
			mov eax,[ebx+4]
1425
			bt edx,0
1476
			bt edx,0
1426
			jnc @f
1477
			jnc @f
1427
				bswap eax
1478
				bswap eax
1428
			@@:
1479
			@@:
1429
			stdcall convert_int_to_str, [t_max] ;áâ ¢¨¬ 2-¥ ç¨á«®
1480
			stdcall convert_int_to_str, [t_max] ;áâ ¢¨¬ 2-¥ ç¨á«®
1430
		;.over4b_05:
1481
		;.over4b_05:
1431
			;...
1482
			;...
1432
		jmp .end_f
1483
		jmp .end_f
1433
	.tag_05:
1484
	.tag_05:
1434
 
1485
 
1435
	mov bx,tag_format_si2b
1486
	mov bx,tag_format_si2b
1436
	bt edx,0
1487
	bt edx,0
1437
	jnc @f
1488
	jnc @f
1438
		ror bx,8
1489
		ror bx,8
1439
	@@:
1490
	@@:
1440
	cmp word[eax+2],bx
1491
	cmp word[eax+2],bx
1441
	jne .tag_08
1492
	jne .tag_08
1442
		stdcall str_n_cat,edi,txt_dp,[t_max]
1493
		stdcall str_n_cat,edi,txt_dp,[t_max]
1443
		call get_tag_data_size
1494
		call get_tag_data_size
1444
		cmp ebx,2
1495
		cmp ebx,2
1445
		jg .over4b_08
1496
		jg .over4b_08
1446
		jne @f
1497
		jne @f
1447
			;¥á«¨ ¤¢  2 ¡ ©â®¢ëå ç¨á« 
1498
			;¥á«¨ ¤¢  2 ¡ ©â®¢ëå ç¨á« 
1448
			or edx,2 ;array data
1499
			or edx,2 ;array data
1449
			movzx ecx,word[eax+10]
1500
			movzx ecx,word[eax+10]
1450
			bt edx,0
1501
			bt edx,0
1451
			jnc @f
1502
			jnc @f
1452
				ror cx,8
1503
				ror cx,8
1453
			@@:		
1504
			@@:		
1454
			;¥á«¨ ®¤­® 2 ¡ ©â®¢®¥ ç¨á«®
1505
			;¥á«¨ ®¤­® 2 ¡ ©â®¢®¥ ç¨á«®
1455
			movzx ebx,word[eax+8]
1506
			movzx ebx,word[eax+8]
1456
			bt edx,0
1507
			bt edx,0
1457
			jnc @f
1508
			jnc @f
1458
				ror bx,8
1509
				ror bx,8
1459
			@@:
1510
			@@:
1460
			stdcall str_len,edi
1511
			stdcall str_len,edi
1461
			add edi,eax
1512
			add edi,eax
1462
			bt bx,15
1513
			bt bx,15
1463
			jnc @f
1514
			jnc @f
1464
				mov byte[edi],'-'
1515
				mov byte[edi],'-'
1465
				inc edi
1516
				inc edi
1466
				neg bx
1517
				neg bx
1467
				inc bx
1518
				inc bx
1468
			@@:
1519
			@@:
1469
			mov eax,ebx
1520
			mov eax,ebx
1470
			stdcall convert_int_to_str, [t_max]
1521
			stdcall convert_int_to_str, [t_max]
1471
			bt edx,1 ;array ?
1522
			bt edx,1 ;array ?
1472
			jnc .end_f
1523
			jnc .end_f
1473
			;¤®¡ ¢«ï¥¬ 2-¥ ç¨á«®
1524
			;¤®¡ ¢«ï¥¬ 2-¥ ç¨á«®
1474
			stdcall str_n_cat,edi,txt_zap,[t_max]
1525
			stdcall str_n_cat,edi,txt_zap,[t_max]
1475
			stdcall str_len,edi
1526
			stdcall str_len,edi
1476
			add edi,eax
1527
			add edi,eax
1477
			bt bx,15
1528
			bt bx,15
1478
			jnc @f
1529
			jnc @f
1479
				mov byte[edi],'-'
1530
				mov byte[edi],'-'
1480
				inc edi
1531
				inc edi
1481
				neg bx
1532
				neg bx
1482
				inc bx
1533
				inc bx
1483
			@@:
1534
			@@:
1484
			mov eax,ecx
1535
			mov eax,ecx
1485
			stdcall convert_int_to_str, [t_max]
1536
			stdcall convert_int_to_str, [t_max]
1486
			jmp .end_f
1537
			jmp .end_f
1487
		.over4b_08:
1538
		.over4b_08:
1488
			mov ecx,[t_max]
1539
			mov ecx,[t_max]
1489
			mov esi,dword[eax+8]
1540
			mov esi,dword[eax+8]
1490
			bt edx,0
1541
			bt edx,0
1491
			jnc @f
1542
			jnc @f
1492
				bswap esi
1543
				bswap esi
1493
			@@:
1544
			@@:
1494
			mov eax,[app1]
1545
			mov eax,[app1]
1495
			mov eax,[eax+4]
1546
			mov eax,[eax+4]
1496
			add esi,eax
1547
			add esi,eax
1497
			
1548
			
1498
			;¡¥à¥¬ ç¨á«®
1549
			;¡¥à¥¬ ç¨á«®
1499
			.array_08:
1550
			.array_08:
1500
			stdcall str_len,edi
1551
			stdcall str_len,edi
1501
			cmp ecx,eax
1552
			cmp ecx,eax
1502
			jle .end_f ;¥á«¨ ­¥ 墠⨫® áâப¨
1553
			jle .end_f ;¥á«¨ ­¥ 墠⨫® áâப¨
1503
			add edi,eax
1554
			add edi,eax
1504
			sub ecx,eax
1555
			sub ecx,eax
1505
			movzx eax,word[esi]
1556
			movzx eax,word[esi]
1506
			bt edx,0
1557
			bt edx,0
1507
			jnc @f
1558
			jnc @f
1508
				ror ax,8
1559
				ror ax,8
1509
			@@:
1560
			@@:
1510
			;ᬮâਬ ­  §­ ª +|-
1561
			;ᬮâਬ ­  §­ ª +|-
1511
			bt ax,15
1562
			bt ax,15
1512
			jnc @f
1563
			jnc @f
1513
				mov byte[edi],'-'
1564
				mov byte[edi],'-'
1514
				inc edi
1565
				inc edi
1515
				neg ax
1566
				neg ax
1516
				inc ax
1567
				inc ax
1517
			@@:
1568
			@@:
1518
			stdcall convert_int_to_str,ecx
1569
			stdcall convert_int_to_str,ecx
1519
 
1570
 
1520
			dec ebx
1571
			dec ebx
1521
			cmp ebx,0
1572
			cmp ebx,0
1522
			je .end_f
1573
			je .end_f
1523
 
1574
 
1524
			;¤®¡ ¢«ï¥¬ § ¯ïâãî
1575
			;¤®¡ ¢«ï¥¬ § ¯ïâãî
1525
			stdcall str_n_cat,edi,txt_zap,ecx
1576
			stdcall str_n_cat,edi,txt_zap,ecx
1526
			add esi,2
1577
			add esi,2
1527
			jmp .array_08
1578
			jmp .array_08
1528
	.tag_08:
1579
	.tag_08:
1529
 
1580
 
1530
	mov bx,tag_format_si4b
1581
	mov bx,tag_format_si4b
1531
	bt edx,0
1582
	bt edx,0
1532
	jnc @f
1583
	jnc @f
1533
		ror bx,8
1584
		ror bx,8
1534
	@@:
1585
	@@:
1535
	cmp word[eax+2],bx
1586
	cmp word[eax+2],bx
1536
	jne .tag_09
1587
	jne .tag_09
1537
		stdcall str_n_cat,edi,txt_dp,[t_max]
1588
		stdcall str_n_cat,edi,txt_dp,[t_max]
1538
		call get_tag_data_size
1589
		call get_tag_data_size
1539
		cmp ebx,1
1590
		cmp ebx,1
1540
		jg .over4b_09
1591
		jg .over4b_09
1541
			;¥á«¨ ®¤­® 4 ¡ ©â®¢®¥ ç¨á«®
1592
			;¥á«¨ ®¤­® 4 ¡ ©â®¢®¥ ç¨á«®
1542
			mov ebx,dword[eax+8]
1593
			mov ebx,dword[eax+8]
1543
			bt edx,0
1594
			bt edx,0
1544
			jnc @f
1595
			jnc @f
1545
				bswap ebx
1596
				bswap ebx
1546
			@@:
1597
			@@:
1547
			stdcall str_len,edi
1598
			stdcall str_len,edi
1548
			add edi,eax
1599
			add edi,eax
1549
			bt ebx,31
1600
			bt ebx,31
1550
			jnc @f
1601
			jnc @f
1551
				mov byte[edi],'-'
1602
				mov byte[edi],'-'
1552
				inc edi
1603
				inc edi
1553
				neg ebx
1604
				neg ebx
1554
				inc ebx
1605
				inc ebx
1555
			@@:
1606
			@@:
1556
			mov eax,ebx
1607
			mov eax,ebx
1557
			stdcall convert_int_to_str, [t_max]
1608
			stdcall convert_int_to_str, [t_max]
1558
		.over4b_09:
1609
		.over4b_09:
1559
			;...
1610
			;...
1560
		jmp .end_f
1611
		jmp .end_f
1561
	.tag_09:
1612
	.tag_09:
1562
 
1613
 
1563
	.end_f:
1614
	.end_f:
1564
	ret
1615
	ret
1565
endp
1616
endp
1566
 
1617
 
1567
;input:
1618
;input:
1568
; eax - tag pointer
1619
; eax - tag pointer
1569
; edx - 1 if 'MM', 0 if 'II'
1620
; edx - 1 if 'MM', 0 if 'II'
1570
;output:
1621
;output:
1571
; ebx - data size
1622
; ebx - data size
1572
align 4
1623
align 4
1573
get_tag_data_size:
1624
get_tag_data_size:
1574
	mov ebx,dword[eax+4]
1625
	mov ebx,dword[eax+4]
1575
	bt edx,0
1626
	bt edx,0
1576
	jnc @f
1627
	jnc @f
1577
		bswap ebx
1628
		bswap ebx
1578
	@@:
1629
	@@:
1579
	ret
1630
	ret
1580
 
1631
 
1581
align 4
1632
align 4
1582
proc str_n_cat uses eax ecx edi esi, str1:dword, str2:dword, n:dword
1633
proc str_n_cat uses eax ecx edi esi, str1:dword, str2:dword, n:dword
1583
	mov esi,dword[str2]
1634
	mov esi,dword[str2]
1584
	mov ecx,dword[n]
1635
	mov ecx,dword[n]
1585
	mov edi,dword[str1]
1636
	mov edi,dword[str1]
1586
	stdcall str_len,edi
1637
	stdcall str_len,edi
1587
	add edi,eax
1638
	add edi,eax
1588
	cld
1639
	cld
1589
	repne movsb
1640
	repne movsb
1590
	mov byte[edi],0
1641
	mov byte[edi],0
1591
	ret
1642
	ret
1592
endp
1643
endp
1593
 
1644
 
1594
;output:
1645
;output:
1595
; eax = strlen
1646
; eax = strlen
1596
align 4
1647
align 4
1597
proc str_len, str1:dword
1648
proc str_len, str1:dword
1598
	mov eax,[str1]
1649
	mov eax,[str1]
1599
	@@:
1650
	@@:
1600
		cmp byte[eax],0
1651
		cmp byte[eax],0
1601
		je @f
1652
		je @f
1602
		inc eax
1653
		inc eax
1603
		jmp @b
1654
		jmp @b
1604
	@@:
1655
	@@:
1605
	sub eax,[str1]
1656
	sub eax,[str1]
1606
	ret
1657
	ret
1607
endp
1658
endp
1608
 
1659
 
1609
align 4
1660
align 4
1610
proc hex_in_str, buf:dword,val:dword,zif:dword
1661
proc hex_in_str, buf:dword,val:dword,zif:dword
1611
	pushad
1662
	pushad
1612
		mov edi,dword[buf]
1663
		mov edi,dword[buf]
1613
		mov ecx,dword[zif]
1664
		mov ecx,dword[zif]
1614
		add edi,ecx
1665
		add edi,ecx
1615
		dec edi
1666
		dec edi
1616
		mov ebx,dword[val]
1667
		mov ebx,dword[val]
1617
 
1668
 
1618
		.cycle:
1669
		.cycle:
1619
			mov al,bl
1670
			mov al,bl
1620
			and al,0xf
1671
			and al,0xf
1621
			cmp al,10
1672
			cmp al,10
1622
			jl @f
1673
			jl @f
1623
				add al,'a'-'0'-10
1674
				add al,'a'-'0'-10
1624
			@@:
1675
			@@:
1625
			add al,'0'
1676
			add al,'0'
1626
			mov byte[edi],al
1677
			mov byte[edi],al
1627
			dec edi
1678
			dec edi
1628
			shr ebx,4
1679
			shr ebx,4
1629
		loop .cycle
1680
		loop .cycle
1630
 
1681
 
1631
	popad
1682
	popad
1632
	ret
1683
	ret
1633
endp
1684
endp
1634
 
1685
 
1635
;input:
1686
;input:
1636
; eax - ç¨á«®
1687
; eax - ç¨á«®
1637
; edi - ¡ãä¥à ¤«ï áâப¨
1688
; edi - ¡ãä¥à ¤«ï áâப¨
1638
; len - ¤«¨­­  ¡ãä¥à 
1689
; len - ¤«¨­­  ¡ãä¥à 
1639
;output:
1690
;output:
1640
align 4
1691
align 4
1641
proc convert_int_to_str, len:dword
1692
proc convert_int_to_str, len:dword
1642
pushad
1693
pushad
1643
	mov esi,[len]
1694
	mov esi,[len]
1644
	add esi,edi
1695
	add esi,edi
1645
	dec esi
1696
	dec esi
1646
	call .str
1697
	call .str
1647
popad
1698
popad
1648
	ret
1699
	ret
1649
endp
1700
endp
1650
 
1701
 
1651
align 4
1702
align 4
1652
.str:
1703
.str:
1653
	mov ecx,0x0a ;§ ¤ ¥âáï á¨á⥬  áç¨á«¥­¨ï ¨§¬¥­ïîâáï ॣ¨áâàë ebx,eax,ecx,edx ¢å®¤­ë¥ ¯ à ¬¥âàë eax - ç¨á«®
1704
	mov ecx,0x0a ;§ ¤ ¥âáï á¨á⥬  áç¨á«¥­¨ï ¨§¬¥­ïîâáï ॣ¨áâàë ebx,eax,ecx,edx ¢å®¤­ë¥ ¯ à ¬¥âàë eax - ç¨á«®
1654
	;¯à¥à¥¢®¤ ç¨á«  ¢ ASCII áâப㠢§®¤­ë¥ ¤ ­­ë¥ ecx=á¨á⥬  áç¨á«¥­ï edi  ¤à¥á ªã¤  § ¯¨á뢠âì, ¡ã¤¥¬ áâபã, ¯à¨ç¥¬ ª®­¥æ ¯¥à¥¬¥­­®© 
1705
	;¯à¥à¥¢®¤ ç¨á«  ¢ ASCII áâப㠢§®¤­ë¥ ¤ ­­ë¥ ecx=á¨á⥬  áç¨á«¥­ï edi  ¤à¥á ªã¤  § ¯¨á뢠âì, ¡ã¤¥¬ áâபã, ¯à¨ç¥¬ ª®­¥æ ¯¥à¥¬¥­­®© 
1655
	cmp eax,ecx ;áà ¢­¨âì ¥á«¨ ¢ eax ¬¥­ìè¥ ç¥¬ ¢ ecx â® ¯¥à¥©â¨ ­  @@-1 â.¥. ­  pop eax
1706
	cmp eax,ecx ;áà ¢­¨âì ¥á«¨ ¢ eax ¬¥­ìè¥ ç¥¬ ¢ ecx â® ¯¥à¥©â¨ ­  @@-1 â.¥. ­  pop eax
1656
	jb @f
1707
	jb @f
1657
		xor edx,edx ;®ç¨áâ¨âì edx
1708
		xor edx,edx ;®ç¨áâ¨âì edx
1658
		div ecx   ;à §¤¥«¨âì - ®áâ â®ª ¢ edx
1709
		div ecx   ;à §¤¥«¨âì - ®áâ â®ª ¢ edx
1659
		push edx  ;¯®«®¦¨âì ¢ á⥪
1710
		push edx  ;¯®«®¦¨âì ¢ á⥪
1660
		call .str ;¯¥à¥©â¨ ­  á ¬ã ᥡï â.¥. ¢ë§¢ âì á ¬ã á¥¡ï ¨ â ª ¤® ⮣® ¬®¬¥­â  ¯®ª  ¢ eax ­¥ áâ ­¥â ¬¥­ìè¥ ç¥¬ ¢ ecx
1711
		call .str ;¯¥à¥©â¨ ­  á ¬ã ᥡï â.¥. ¢ë§¢ âì á ¬ã á¥¡ï ¨ â ª ¤® ⮣® ¬®¬¥­â  ¯®ª  ¢ eax ­¥ áâ ­¥â ¬¥­ìè¥ ç¥¬ ¢ ecx
1661
		pop eax
1712
		pop eax
1662
	@@: ;cmp al,10 ;¯à®¢¥à¨âì ­¥ ¬¥­ìè¥ «¨ §­ ç¥­¨¥ ¢ al 祬 10 (¤«ï á¨á⥬ë áç¨á«¥­ï 10 ¤ ­­ ï ª®¬ ­¤  - «¨è­ ï))
1713
	@@: ;cmp al,10 ;¯à®¢¥à¨âì ­¥ ¬¥­ìè¥ «¨ §­ ç¥­¨¥ ¢ al 祬 10 (¤«ï á¨á⥬ë áç¨á«¥­ï 10 ¤ ­­ ï ª®¬ ­¤  - «¨è­ ï))
1663
	cmp edi,esi
1714
	cmp edi,esi
1664
	jge @f
1715
	jge @f
1665
		or al,0x30 ;¤ ­­ ï ª®¬ ­¤  ª®à®ç¥ 祬 ¤¢¥ ¢ëè¥
1716
		or al,0x30 ;¤ ­­ ï ª®¬ ­¤  ª®à®ç¥ 祬 ¤¢¥ ¢ëè¥
1666
		stosb      ;§ ¯¨á âì í«¥¬¥­â ¨§ ॣ¨áâà  al ¢ ï祪㠯 ¬ï⨠es:edi
1717
		stosb      ;§ ¯¨á âì í«¥¬¥­â ¨§ ॣ¨áâà  al ¢ ï祪㠯 ¬ï⨠es:edi
1667
		mov byte[edi],0 ;¢ ª®­¥æ áâப¨ áâ ¢¨¬ 0, çâ®-¡ë ­¥ ¢ë« §¨« ¬ãá®à
1718
		mov byte[edi],0 ;¢ ª®­¥æ áâப¨ áâ ¢¨¬ 0, çâ®-¡ë ­¥ ¢ë« §¨« ¬ãá®à
1668
	@@:
1719
	@@:
1669
	ret        ;¯®ª  ¢ á⥪¥ åà ­¨âìáï ª®«-¢® ¢ë§®¢®¢ â® á⮫쪮 à § ¬ë ¨ ¡ã¤¥¬ ¢ë§ë¢ âìáï
1720
	ret        ;¯®ª  ¢ á⥪¥ åà ­¨âìáï ª®«-¢® ¢ë§®¢®¢ â® á⮫쪮 à § ¬ë ¨ ¡ã¤¥¬ ¢ë§ë¢ âìáï
1670
 
1721
 
1671
 
1722
 
1672
 
1723
 
1673
align 16
1724
align 16
1674
EXPORTS:
1725
EXPORTS:
1675
	dd sz_exif_get_app1, exif_get_app1
1726
	dd sz_exif_get_app1, exif_get_app1
1676
	dd sz_exif_get_app1_tag, exif_get_app1_tag
-
 
1677
	dd sz_exif_get_app1_child, exif_get_app1_child
-
 
1678
	dd sz_exif_get_app2, exif_get_app2
1727
	dd sz_exif_get_app2, exif_get_app2
-
 
1728
	dd sz_exif_get_tag, exif_get_tag
-
 
1729
	dd sz_exif_get_tag_id, exif_get_tag_id
-
 
1730
	dd sz_exif_get_child, exif_get_child
1679
	dd 0,0
1731
	dd 0,0
1680
	sz_exif_get_app1 db 'exif_get_app1',0
1732
	sz_exif_get_app1 db 'exif_get_app1',0
1681
	sz_exif_get_app1_tag db 'exif_get_app1_tag',0
-
 
1682
	sz_exif_get_app1_child db 'exif_get_app1_child',0
-
 
1683
	sz_exif_get_app2 db 'exif_get_app2',0
1733
	sz_exif_get_app2 db 'exif_get_app2',0
-
 
1734
	sz_exif_get_tag db 'exif_get_tag',0
-
 
1735
	sz_exif_get_tag_id db 'exif_get_tag_id',0
-
 
1736
	sz_exif_get_child db 'exif_get_child',0
-
 
1737
 
1684
 
1738
>
1685
>
1739
 
1686
 
1740
>
1687
>
-