Subversion Repositories Kolibri OS

Rev

Rev 5007 | Rev 5009 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5007 Rev 5008
Line 7... Line 7...
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_tag_0     equ 2 ;ᬥ饭¨¥ 0-£® ⥣ 
13
offs_tag_0     equ  2 ;ᬥ饭¨¥ 0-£® ⥣ 
13
tag_size       equ 12 ;à §¬¥à áâàãªâãàë ⥣ 
14
tag_size       equ 12 ;à §¬¥à áâàãªâãàë ⥣ 
Line 30... Line 31...
30
txt_div db '/',0
31
txt_div db '/',0
Line 31... Line 32...
31
 
32
 
32
;
33
;
33
align 4
34
align 4
-
 
35
exif_tag_numbers:
-
 
36
dd 0,      gr_0
-
 
37
dd 0x8769, gr_8769 ;Exif offset
-
 
38
dd 0xa005, gr_a005 ;Interop offset
-
 
39
dd 0x8825, gr_8825 ;GPS info
Line 34... Line 40...
34
exif_tag_numbers:
40
.end:
35
 
41
 
36
db 0x00,0x01,'Interop index',0
42
align 4
37
db 0x00,0x02,'Interop version',0
43
gr_0:
38
db 0x00,0x0b,'Processing software',0
44
db 0x00,0x0b,'Processing software',0
39
db 0x00,0xfe,'Subfile type',0
45
db 0x00,0xfe,'Subfile type',0
40
db 0x00,0xff,'OldSubfile type',0
46
db 0x00,0xff,'OldSubfile type',0
Line 129... Line 135...
129
db 0x02,0x11,'YCbCrCoefficients',0
135
db 0x02,0x11,'YCbCrCoefficients',0
130
db 0x02,0x12,'YCbCrSubSampling',0
136
db 0x02,0x12,'YCbCrSubSampling',0
131
db 0x02,0x13,'YCbCrPositioning',0
137
db 0x02,0x13,'YCbCrPositioning',0
132
db 0x02,0x14,'Reference black white',0
138
db 0x02,0x14,'Reference black white',0
133
db 0x02,0x2f,'Strip row counts',0
139
db 0x02,0x2f,'Strip row counts',0
134
db 0x02,0xbc,'Application notes',0
-
 
135
db 0x03,0xe7,'USPTO Miscellaneous',0
140
db 0x03,0xe7,'USPTO Miscellaneous',0
136
db 0x10,0x00,'Related image file format',0
-
 
137
db 0x10,0x01,'Related image width',0
-
 
138
db 0x10,0x02,'Related image height',0
-
 
139
db 0x47,0x46,'Rating',0
141
db 0x47,0x46,'Rating',0
140
db 0x47,0x47,'XP_DIP_XML',0
142
db 0x47,0x47,'XP_DIP_XML',0
141
db 0x47,0x48,'Stitch info',0
143
db 0x47,0x48,'Stitch info',0
142
db 0x47,0x49,'Rating percent',0
144
db 0x47,0x49,'Rating percent',0
143
db 0x80,0x0d,'Image ID',0
145
db 0x80,0x0d,'Image ID',0
Line 153... Line 155...
153
db 0x82,0x8d,'CFA repeat pattern dim',0
155
db 0x82,0x8d,'CFA repeat pattern dim',0
154
db 0x82,0x8e,'CFA pattern 2',0
156
db 0x82,0x8e,'CFA pattern 2',0
155
db 0x82,0x8f,'Battery level',0
157
db 0x82,0x8f,'Battery level',0
156
db 0x82,0x90,'Kodak IFD',0
158
db 0x82,0x90,'Kodak IFD',0
157
db 0x82,0x98,'Copyright',0
159
db 0x82,0x98,'Copyright',0
158
db 0x82,0x9a,'Exposure time',0
-
 
159
db 0x82,0x9d,'F number',0
-
 
160
db 0x82,0xa5,'MD file tag',0
160
db 0x82,0xa5,'MD file tag',0
161
db 0x82,0xa6,'MD scale pixel',0
161
db 0x82,0xa6,'MD scale pixel',0
162
db 0x82,0xa7,'MD color table',0
162
db 0x82,0xa7,'MD color table',0
163
db 0x82,0xa8,'MD lab name',0
163
db 0x82,0xa8,'MD lab name',0
164
db 0x82,0xa9,'MD sample info',0
164
db 0x82,0xa9,'MD sample info',0
Line 210... Line 210...
210
db 0x87,0x82,'T88 options',0
210
db 0x87,0x82,'T88 options',0
211
db 0x87,0xac,'Image layer',0
211
db 0x87,0xac,'Image layer',0
212
db 0x87,0xaf,'Geo tiff directory',0
212
db 0x87,0xaf,'Geo tiff directory',0
213
db 0x87,0xb0,'Geo tiff double params',0
213
db 0x87,0xb0,'Geo tiff double params',0
214
db 0x87,0xb1,'Geo tiff ascii params',0
214
db 0x87,0xb1,'Geo tiff ascii params',0
215
db 0x88,0x22,'Exposure program',0
-
 
216
db 0x88,0x24,'Spectral sensitivity',0
-
 
217
db 0x88,0x25,'GPS Info',0
-
 
218
db 0x88,0x27,'ISO',0
-
 
219
db 0x88,0x28,'Opto-Electric conv factor',0
215
db 0x88,0x28,'Opto-Electric conv factor',0
220
db 0x88,0x29,'Interlace',0
216
db 0x88,0x29,'Interlace',0
221
db 0x88,0x2a,'Time zone offset',0
-
 
222
db 0x88,0x2b,'Self timer mode',0
-
 
223
db 0x88,0x30,'Sensitivity type',0
-
 
224
db 0x88,0x31,'Standard output sensitivity',0
-
 
225
db 0x88,0x32,'Recommended exposure index',0
-
 
226
db 0x88,0x33,'ISO speed',0
-
 
227
db 0x88,0x34,'ISO speed latitude yyy',0
-
 
228
db 0x88,0x35,'ISO speed latitude zzz',0
-
 
229
db 0x88,0x5c,'Fax recv params',0
217
db 0x88,0x5c,'Fax recv params',0
230
db 0x88,0x5d,'Fax sub address',0
218
db 0x88,0x5d,'Fax sub address',0
231
db 0x88,0x5e,'Fax recv time',0
219
db 0x88,0x5e,'Fax recv time',0
232
db 0x88,0x8a,'Leaf sub IFD',0
220
db 0x88,0x8a,'Leaf sub IFD',0
233
db 0x90,0x00,'Exif version',0
-
 
234
db 0x90,0x03,'Date time original',0
-
 
235
db 0x90,0x04,'Create date',0
-
 
236
db 0x91,0x01,'Components configuration',0
-
 
237
db 0x91,0x02,'Compressed bits per pixel',0
-
 
238
db 0x92,0x01,'Shutter speed value',0
-
 
239
db 0x92,0x02,'Aperture value',0
-
 
240
db 0x92,0x03,'Brightness value',0
-
 
241
db 0x92,0x04,'Exposure compensation',0
-
 
242
db 0x92,0x05,'Max aperture value',0
-
 
243
db 0x92,0x06,'Subject distance',0
-
 
244
db 0x92,0x07,'Metering mode',0
-
 
245
db 0x92,0x08,'Light source',0
-
 
246
db 0x92,0x09,'Flash',0
-
 
247
db 0x92,0x0a,'Focal length',0
-
 
248
db 0x92,0x0b,'Flash energy',0
221
db 0x92,0x0b,'Flash energy',0
249
db 0x92,0x0c,'Spatial frequency response',0
222
db 0x92,0x0c,'Spatial frequency response',0
250
db 0x92,0x0d,'Noise',0
223
db 0x92,0x0d,'Noise',0
251
db 0x92,0x0e,'Focal plane X resolution',0
224
db 0x92,0x0e,'Focal plane X resolution',0
252
db 0x92,0x0f,'Focal plane Y resolution',0
225
db 0x92,0x0f,'Focal plane Y resolution',0
253
db 0x92,0x10,'Focal plane resolution unit',0
226
db 0x92,0x10,'Focal plane resolution unit',0
254
db 0x92,0x11,'Image number',0
-
 
255
db 0x92,0x12,'Security classification',0
-
 
256
db 0x92,0x13,'Image history',0
-
 
257
db 0x92,0x14,'Subject area',0
-
 
258
db 0x92,0x15,'Exposure index',0
227
db 0x92,0x15,'Exposure index',0
259
db 0x92,0x16,'TIFF-EP standard ID',0
228
db 0x92,0x16,'TIFF-EP standard ID',0
260
db 0x92,0x17,'Sensing method',0
229
db 0x92,0x17,'Sensing method',0
261
db 0x92,0x3a,'CIP3 data file',0
230
db 0x92,0x3a,'CIP3 data file',0
262
db 0x92,0x3b,'CIP3 sheet',0
231
db 0x92,0x3b,'CIP3 sheet',0
263
db 0x92,0x3c,'CIP3 side',0
232
db 0x92,0x3c,'CIP3 side',0
264
db 0x92,0x3f,'Sto nits',0
233
db 0x92,0x3f,'Sto nits',0
265
db 0x92,0x7c,'Maker note',0
-
 
266
db 0x92,0x86,'User comment',0
-
 
267
db 0x92,0x90,'Sub sec time',0
-
 
268
db 0x92,0x91,'Sub sec time original',0
-
 
269
db 0x92,0x92,'Sub sec time digitized',0
-
 
270
db 0x93,0x2f,'MS document text',0
234
db 0x93,0x2f,'MS document text',0
271
db 0x93,0x30,'MS property set storage',0
235
db 0x93,0x30,'MS property set storage',0
272
db 0x93,0x31,'MS document text position',0
236
db 0x93,0x31,'MS document text position',0
273
db 0x93,0x5c,'Image source data',0
237
db 0x93,0x5c,'Image source data',0
274
db 0x9c,0x9b,'XP title',0
238
db 0x9c,0x9b,'XP title',0
275
db 0x9c,0x9c,'XP comment',0
239
db 0x9c,0x9c,'XP comment',0
276
db 0x9c,0x9d,'XP author',0
240
db 0x9c,0x9d,'XP author',0
277
db 0x9c,0x9e,'XP keywords',0
241
db 0x9c,0x9e,'XP keywords',0
278
db 0x9c,0x9f,'XP subject',0
242
db 0x9c,0x9f,'XP subject',0
279
db 0xa0,0x00,'Flashpix version',0
-
 
280
db 0xa0,0x01,'Color space',0
-
 
281
db 0xa0,0x02,'Exif image width',0
-
 
282
db 0xa0,0x03,'Exif image height',0
-
 
283
db 0xa0,0x04,'Related sound file',0
-
 
284
db 0xa0,0x05,'Interop offset',0
-
 
285
db 0xa2,0x0b,'Flash energy',0
-
 
286
db 0xa2,0x0c,'Spatial frequency fesponse',0
243
db 0xa2,0x0c,'Spatial frequency fesponse',0
287
db 0xa2,0x0d,'Noise',0
244
db 0xa2,0x0d,'Noise',0
288
db 0xa2,0x0e,'Focal plane X resolution',0
-
 
289
db 0xa2,0x0f,'Focal plane Y resolution',0
-
 
290
db 0xa2,0x10,'Focal plane resolution unit',0
-
 
291
db 0xa2,0x11,'Image number',0
245
db 0xa2,0x11,'Image number',0
292
db 0xa2,0x12,'Security classification',0
246
db 0xa2,0x12,'Security classification',0
293
db 0xa2,0x13,'Image history',0
247
db 0xa2,0x13,'Image history',0
294
db 0xa2,0x14,'Subject location',0
-
 
295
db 0xa2,0x15,'Exposure index',0
-
 
296
db 0xa2,0x16,'TIFF-EP standard ID',0
248
db 0xa2,0x16,'TIFF-EP standard ID',0
297
db 0xa2,0x17,'Sensing method',0
-
 
298
db 0xa3,0x00,'File source',0
-
 
299
db 0xa3,0x01,'Scene type',0
-
 
300
db 0xa3,0x02,'CFA pattern',0
-
 
301
db 0xa4,0x01,'Custom rendered',0
-
 
302
db 0xa4,0x02,'Exposure mode',0
-
 
303
db 0xa4,0x03,'White balance',0
-
 
304
db 0xa4,0x04,'Digital zoom ratio',0
-
 
305
db 0xa4,0x05,'Focal length in 35mm format',0
-
 
306
db 0xa4,0x06,'Scene capture type',0
-
 
307
db 0xa4,0x07,'Gain control',0
-
 
308
db 0xa4,0x08,'Contrast',0
-
 
309
db 0xa4,0x09,'Saturation',0
-
 
310
db 0xa4,0x0a,'Sharpness',0
-
 
311
db 0xa4,0x0b,'Device setting description',0
-
 
312
db 0xa4,0x0c,'Subject distance range',0
-
 
313
db 0xa4,0x20,'Image unique ID',0
-
 
314
db 0xa4,0x30,'Owner name',0
-
 
315
db 0xa4,0x31,'Serial number',0
-
 
316
db 0xa4,0x32,'Lens info',0
-
 
317
db 0xa4,0x33,'Lens make',0
-
 
318
db 0xa4,0x34,'Lens model',0
-
 
319
db 0xa4,0x35,'Lens serial number',0
-
 
320
db 0xa4,0x80,'GDAL metadata',0
249
db 0xa4,0x80,'GDAL metadata',0
321
db 0xa4,0x81,'GDAL no data',0
250
db 0xa4,0x81,'GDAL no data',0
322
db 0xa5,0x00,'Gamma',0
-
 
323
db 0xaf,0xc0,'Expand software',0
251
db 0xaf,0xc0,'Expand software',0
324
db 0xaf,0xc1,'Expand lens',0
252
db 0xaf,0xc1,'Expand lens',0
325
db 0xaf,0xc2,'Expand film',0
253
db 0xaf,0xc2,'Expand film',0
326
db 0xaf,0xc3,'Expand filterLens',0
254
db 0xaf,0xc3,'Expand filterLens',0
327
db 0xaf,0xc4,'Expand scanner',0
255
db 0xaf,0xc4,'Expand scanner',0
Line 444... Line 372...
444
db 0xc7,0xa5,'Baseline exposure offset',0
372
db 0xc7,0xa5,'Baseline exposure offset',0
445
db 0xc7,0xa6,'Default black render',0
373
db 0xc7,0xa6,'Default black render',0
446
db 0xc7,0xa7,'New raw image digest',0
374
db 0xc7,0xa7,'New raw image digest',0
447
db 0xc7,0xa8,'Raw to preview gain',0
375
db 0xc7,0xa8,'Raw to preview gain',0
448
db 0xc7,0xb5,'Default user crop',0
376
db 0xc7,0xb5,'Default user crop',0
-
 
377
db 0xfe,0x00,'KDC_IFD',0
-
 
378
 
-
 
379
dd 0
-
 
380
 
-
 
381
align 4
-
 
382
gr_8769:
-
 
383
db 0x02,0xbc,'Application notes',0
-
 
384
db 0x82,0x9a,'Exposure time',0
-
 
385
db 0x82,0x9d,'F number',0
-
 
386
db 0x88,0x22,'Exposure program',0
-
 
387
db 0x88,0x24,'Spectral sensitivity',0
-
 
388
db 0x88,0x25,'GPS info',0
-
 
389
db 0x88,0x27,'ISO',0
-
 
390
db 0x88,0x2a,'Time zone offset',0
-
 
391
db 0x88,0x2b,'Self timer mode',0
-
 
392
db 0x88,0x30,'Sensitivity type',0
-
 
393
db 0x88,0x31,'Standard output sensitivity',0
-
 
394
db 0x88,0x32,'Recommended exposure index',0
-
 
395
db 0x88,0x33,'ISO speed',0
-
 
396
db 0x88,0x34,'ISO speed latitude yyy',0
-
 
397
db 0x88,0x35,'ISO speed latitude zzz',0
-
 
398
db 0x90,0x00,'Exif version',0
-
 
399
db 0x90,0x03,'Date time original',0
-
 
400
db 0x90,0x04,'Create date',0
-
 
401
db 0x91,0x01,'Components configuration',0
-
 
402
db 0x91,0x02,'Compressed bits per pixel',0
-
 
403
db 0x92,0x01,'Shutter speed value',0
-
 
404
db 0x92,0x02,'Aperture value',0
-
 
405
db 0x92,0x03,'Brightness value',0
-
 
406
db 0x92,0x04,'Exposure compensation',0
-
 
407
db 0x92,0x05,'Max aperture value',0
-
 
408
db 0x92,0x06,'Subject distance',0
-
 
409
db 0x92,0x07,'Metering mode',0
-
 
410
db 0x92,0x08,'Light source',0
-
 
411
db 0x92,0x09,'Flash',0
-
 
412
db 0x92,0x0a,'Focal length',0
-
 
413
db 0x92,0x11,'Image number',0
-
 
414
db 0x92,0x12,'Security classification',0
-
 
415
db 0x92,0x13,'Image history',0
-
 
416
db 0x92,0x14,'Subject area',0
-
 
417
db 0x92,0x7c,'Maker note',0
-
 
418
db 0x92,0x86,'User comment',0
-
 
419
db 0x92,0x90,'Sub sec time',0
-
 
420
db 0x92,0x91,'Sub sec time original',0
-
 
421
db 0x92,0x92,'Sub sec time digitized',0
-
 
422
db 0xa0,0x00,'Flashpix version',0
-
 
423
db 0xa0,0x01,'Color space',0
-
 
424
db 0xa0,0x02,'Exif image width',0
-
 
425
db 0xa0,0x03,'Exif image height',0
-
 
426
db 0xa0,0x04,'Related sound file',0
-
 
427
db 0xa0,0x05,'Interop offset',0
-
 
428
db 0xa2,0x0b,'Flash energy',0
-
 
429
db 0xa2,0x0e,'Focal plane X resolution',0
-
 
430
db 0xa2,0x0f,'Focal plane Y resolution',0
-
 
431
db 0xa2,0x10,'Focal plane resolution unit',0
-
 
432
db 0xa2,0x14,'Subject location',0
-
 
433
db 0xa2,0x15,'Exposure index',0
-
 
434
db 0xa2,0x17,'Sensing method',0
-
 
435
db 0xa3,0x00,'File source',0
-
 
436
db 0xa3,0x01,'Scene type',0
-
 
437
db 0xa3,0x02,'CFA pattern',0
-
 
438
db 0xa4,0x01,'Custom rendered',0
-
 
439
db 0xa4,0x02,'Exposure mode',0
-
 
440
db 0xa4,0x03,'White balance',0
-
 
441
db 0xa4,0x04,'Digital zoom ratio',0
-
 
442
db 0xa4,0x05,'Focal length in 35mm format',0
-
 
443
db 0xa4,0x06,'Scene capture type',0
-
 
444
db 0xa4,0x07,'Gain control',0
-
 
445
db 0xa4,0x08,'Contrast',0
-
 
446
db 0xa4,0x09,'Saturation',0
-
 
447
db 0xa4,0x0a,'Sharpness',0
-
 
448
db 0xa4,0x0b,'Device setting description',0
-
 
449
db 0xa4,0x0c,'Subject distance range',0
-
 
450
db 0xa4,0x20,'Image unique ID',0
-
 
451
db 0xa4,0x30,'Owner name',0
-
 
452
db 0xa4,0x31,'Serial number',0
-
 
453
db 0xa4,0x32,'Lens info',0
-
 
454
db 0xa4,0x33,'Lens make',0
-
 
455
db 0xa4,0x34,'Lens model',0
-
 
456
db 0xa4,0x35,'Lens serial number',0
-
 
457
db 0xa5,0x00,'Gamma',0
449
db 0xea,0x1c,'Padding',0
458
db 0xea,0x1c,'Padding',0
450
db 0xea,0x1d,'Offset schema',0
459
db 0xea,0x1d,'Offset schema',0
451
db 0xfd,0xe8,'Owner name',0
460
db 0xfd,0xe8,'Owner name',0
452
db 0xfd,0xe9,'Serial number',0
461
db 0xfd,0xe9,'Serial number',0
453
db 0xfd,0xea,'Lens',0
462
db 0xfd,0xea,'Lens',0
454
db 0xfe,0x00,'KDC_IFD',0
-
 
455
db 0xfe,0x4c,'Raw file',0
463
db 0xfe,0x4c,'Raw file',0
456
db 0xfe,0x4d,'Converter',0
464
db 0xfe,0x4d,'Converter',0
457
db 0xfe,0x4e,'White balance',0
465
db 0xfe,0x4e,'White balance',0
458
db 0xfe,0x51,'Exposure',0
466
db 0xfe,0x51,'Exposure',0
459
db 0xfe,0x52,'Shadows',0
467
db 0xfe,0x52,'Shadows',0
Line 462... Line 470...
462
db 0xfe,0x55,'Saturation',0
470
db 0xfe,0x55,'Saturation',0
463
db 0xfe,0x56,'Sharpness',0
471
db 0xfe,0x56,'Sharpness',0
464
db 0xfe,0x57,'Smoothness',0
472
db 0xfe,0x57,'Smoothness',0
465
db 0xfe,0x58,'Moire filter',0
473
db 0xfe,0x58,'Moire filter',0
Line -... Line 474...
-
 
474
 
-
 
475
dd 0
-
 
476
 
-
 
477
align 4
-
 
478
gr_a005:
-
 
479
db 0x00,0x01,'Interop index',0
-
 
480
db 0x00,0x02,'Interop version',0
-
 
481
db 0x10,0x00,'Related image file format',0
-
 
482
db 0x10,0x01,'Related image width',0
-
 
483
db 0x10,0x02,'Related image height',0
-
 
484
dd 0
-
 
485
 
-
 
486
align 4
466
 
487
gr_8825:
-
 
488
db 0x00,0x00,'GPS version ID',0
-
 
489
db 0x00,0x01,'GPS latitude ref',0
-
 
490
db 0x00,0x02,'GPS latitude',0
-
 
491
db 0x00,0x03,'GPS longitude ref',0
-
 
492
db 0x00,0x04,'GPS longitude',0
-
 
493
db 0x00,0x05,'GPS altitude ref',0
-
 
494
db 0x00,0x06,'GPS altitude',0
-
 
495
db 0x00,0x07,'GPS time stamp',0
-
 
496
db 0x00,0x08,'GPS satellites',0
-
 
497
db 0x00,0x09,'GPS status',0
-
 
498
db 0x00,0x0a,'GPS measuremode',0
-
 
499
db 0x00,0x0b,'GPS dop',0
-
 
500
db 0x00,0x0c,'GPS speed ref',0
-
 
501
db 0x00,0x0d,'GPS speed',0
-
 
502
db 0x00,0x0e,'GPS track ref',0
-
 
503
db 0x00,0x0f,'GPS track',0
-
 
504
db 0x00,0x10,'GPS img direction ref',0
-
 
505
db 0x00,0x11,'GPS img direction',0
-
 
506
db 0x00,0x12,'GPS map datum',0
-
 
507
db 0x00,0x13,'GPS dest latitude ref',0
-
 
508
db 0x00,0x14,'GPS dest latitude',0
-
 
509
db 0x00,0x15,'GPS dest longitude ref',0
-
 
510
db 0x00,0x16,'GPS dest longitude',0
-
 
511
db 0x00,0x17,'GPS dest bearing ref',0
-
 
512
db 0x00,0x18,'GPS dest bearing',0
-
 
513
db 0x00,0x19,'GPS dest distance ref',0
-
 
514
db 0x00,0x1a,'GPS dest distance',0
-
 
515
db 0x00,0x1b,'GPS processing method',0
-
 
516
db 0x00,0x1c,'GPS area information',0
-
 
517
db 0x00,0x1d,'GPS date stamp',0
-
 
518
db 0x00,0x1e,'GPS differential',0
Line 467... Line 519...
467
db 0x00,0x00,'GPS version ID',0
519
db 0x00,0x1f,'GPS h positioning error',0
Line 468... Line 520...
468
 
520
 
469
dd 0
521
dd 0
Line 500... Line 552...
500
	cmp word[eax+10],'II'
552
	cmp word[eax+10],'II'
501
	je @f
553
	je @f
502
		inc ebx ;if 'MM' edx=1
554
		inc ebx ;if 'MM' edx=1
503
	@@:
555
	@@:
504
	mov [edi+offs_m_or_i],ebx
556
	mov [edi+offs_m_or_i],ebx
-
 
557
	;¯¨è¥¬ ®¤­®© ª®¬ ­¤®© ¢ dword[edi+offs_m_or_i]
-
 
558
	;¢ ¬« ¤è¨¥ 2 ¡ ©â  ᯮᮡ ¢ëà ¢­¨¢ ­¨ï ç¨á¥«
-
 
559
	;¢ áâ à訥 2 ¡ ©â  id £àã¯ë, ª®â®àë© ¢á¥£¤  0 ¤«ï app1
505
	add eax,18
560
	add eax,18
506
	mov [edi],eax
561
	mov [edi],eax
507
	sub eax,8
562
	sub eax,8
508
	mov [edi+4],eax
563
	mov [edi+4],eax
Line 611... Line 666...
611
		@@:
666
		@@:
612
		mov eax,[app1]
667
		mov eax,[app1]
613
		add ebx,[eax+4]
668
		add ebx,[eax+4]
614
		mov dword[edi],ebx
669
		mov dword[edi],ebx
615
		m2m dword[edi+4],dword[eax+4]
670
		m2m dword[edi+4],dword[eax+4]
-
 
671
		ror edx,16
-
 
672
		mov dx,word[c_tag]
-
 
673
		ror edx,16
616
		mov dword[edi+offs_m_or_i],edx
674
		mov dword[edi+offs_m_or_i],edx
Line 617... Line 675...
617
 
675
 
618
	jmp .end_f
676
	jmp .end_f
619
	.no_found:
677
	.no_found:
Line 630... Line 688...
630
; edi - 㪠§ â¥«ì ­  ¯ ¬ïâì ¤«ï § ¯¨á¨ ⥪á⮢®© áâப¨
688
; edi - 㪠§ â¥«ì ­  ¯ ¬ïâì ¤«ï § ¯¨á¨ ⥪á⮢®© áâப¨
631
align 4
689
align 4
632
proc read_tag_value, app1:dword, t_max:dword
690
proc read_tag_value, app1:dword, t_max:dword
633
	push exif_tag_numbers
691
	push exif_tag_numbers
634
	pop esi
692
	pop esi
-
 
693
 
-
 
694
	;¯®¨áª â ¡«¨æë ¤«ï £à㯯ë ⥣®¢
-
 
695
	mov ebx,[app1]
-
 
696
	mov bx,word[ebx+offs_id_gr] ;¡¥à¥¬ ¨¤¥­â¨ä¨ª â®à £à㯯ë ⥣®¢
-
 
697
	@@:
-
 
698
		cmp word[esi],bx
-
 
699
		je .set_table
-
 
700
		add esi,8
-
 
701
		cmp esi,exif_tag_numbers.end
-
 
702
		jge .tag_unknown ;⥣ ­¥ ®¯®§­ ­ (­¥ ­ ©¤¥­  â ¡«¨æ  £à㯯ë ⥣®¢)
-
 
703
		jmp @b
-
 
704
	.set_table:
-
 
705
		mov esi,dword[esi+4] ;ãáâ ­®¢ª   ¤à¥á  â ¡«¨æë ¢ esi
-
 
706
 
-
 
707
	;¯®¨áª ­ §¢ ­¨ï ⥣  ¢ â ¡«¨æ¥
635
	.next_tag:
708
	.next_tag:
636
	mov bx,word[esi]
709
	mov bx,word[esi]
637
	cmp bx,0
710
	cmp bx,0
638
	jne @f
711
	jne @f
639
		cmp dword[esi],0
712
		cmp dword[esi],0
640
		jne @f
713
		jne @f
641
		jmp .tag_unknown ;⥣ ­¥ ®¯®§­ ­
714
		jmp .tag_unknown ;⥣ ­¥ ®¯®§­ ­ (¢ £à㯯¥ ­¥ ­ ©¤¥­ ⥣)
642
	@@:
715
	@@:
643
	bt edx,0
716
	bt edx,0
644
	jc @f
717
	jc @f
645
		ror bx,8
718
		ror bx,8
646
	@@:
719
	@@:
Line 653... Line 726...
653
		jne @b
726
		jne @b
654
	inc esi
727
	inc esi
655
	jmp .next_tag
728
	jmp .next_tag
656
	.found:
729
	.found:
Line 657... Line 730...
657
 
730
 
658
	;ª®¯¨à㥬 áâபã
731
	;ª®¯¨à㥬 áâபã á ­ §¢ ­¨¥¬ ⥣ 
659
	add esi,2
732
	add esi,2
Line 660... Line 733...
660
	stdcall str_n_cat,edi,esi,[t_max]
733
	stdcall str_n_cat,edi,esi,[t_max]
661
 
734
 
-
 
735
	jmp @f
662
	jmp @f
736
	.tag_unknown:
-
 
737
		;¥á«¨ ⥣ ­¥ ­ ©¤¥­ áâ ¢¨¬ ¥£® ª®¤ ¢¬¥áâ® ­ §¢ ­¨ï
663
	.tag_unknown:
738
		movzx ebx,word[eax]
664
		mov dword[edi],'???'
739
		stdcall hex_in_str, edi, ebx,4
Line 665... Line 740...
665
		mov byte[edi+3],0
740
		mov byte[edi+4],0
-
 
741
	@@:
-
 
742
 
-
 
743
	;ç¨â ¥¬ ¨­ä®à¬ æ¨î ¢ ⥣¥
-
 
744
	mov bx,tag_format_ui1b
-
 
745
	bt edx,0
-
 
746
	jnc @f
-
 
747
		ror bx,8
-
 
748
	@@:
-
 
749
	cmp word[eax+2],bx
-
 
750
	jne .tag_01
-
 
751
		stdcall str_n_cat,edi,txt_dp,[t_max]
-
 
752
		call get_tag_data_size
-
 
753
		cmp ebx,1
-
 
754
		jg .over4b_01
-
 
755
			;¥á«¨ ®¤­® 1 ¡ ©â®¢®¥ ç¨á«®
-
 
756
			movzx ebx,byte[eax+8]
-
 
757
			;bt edx,0
-
 
758
			;jnc @f
-
 
759
			;	ror bx,8
-
 
760
			;@@:
-
 
761
			stdcall str_len,edi
-
 
762
			add edi,eax
-
 
763
			mov eax,ebx
-
 
764
			call convert_int_to_str ;[t_max]
-
 
765
		.over4b_01:
-
 
766
			;...
666
	@@:
767
		jmp .end_f
667
 
768
	.tag_01:
668
	;ç¨â ¥¬ ¨­ä®à¬ æ¨î ¢ ⥣¥
769
 
669
	mov bx,tag_format_text
770
	mov bx,tag_format_text
670
	bt edx,0
771
	bt edx,0
Line 913... Line 1014...
913
	@@:
1014
	@@:
914
	sub eax,[str1]
1015
	sub eax,[str1]
915
	ret
1016
	ret
916
endp
1017
endp
Line -... Line 1018...
-
 
1018
 
-
 
1019
align 4
-
 
1020
proc hex_in_str, buf:dword,val:dword,zif:dword
-
 
1021
	pushad
-
 
1022
		mov edi,dword[buf]
-
 
1023
		mov ecx,dword[zif]
-
 
1024
		add edi,ecx
-
 
1025
		dec edi
-
 
1026
		mov ebx,dword[val]
-
 
1027
 
-
 
1028
		.cycle:
-
 
1029
			mov al,bl
-
 
1030
			and al,0xf
-
 
1031
			cmp al,10
-
 
1032
			jl @f
-
 
1033
				add al,'a'-'0'-10
-
 
1034
			@@:
-
 
1035
			add al,'0'
-
 
1036
			mov byte[edi],al
-
 
1037
			dec edi
-
 
1038
			shr ebx,4
-
 
1039
		loop .cycle
-
 
1040
 
-
 
1041
	popad
-
 
1042
	ret
-
 
1043
endp
917
 
1044
 
918
;input:
1045
;input:
919
; eax = value
1046
; eax = value
920
; edi = string buffer
1047
; edi = string buffer
921
;output:
1048
;output: