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',01 |
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',01 |
|
- | 1737 | ||
1684 | 1738 | >1 |
|
1685 | >1 |
1739 | |
1686 | 1740 | >=> |
|
1687 | >=> |
- |