<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://dsibrew.org/w/index.php?action=history&amp;feed=atom&amp;title=User%3ASteven%2Fflip_frame_decode.c</id>
	<title>User:Steven/flip frame decode.c - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://dsibrew.org/w/index.php?action=history&amp;feed=atom&amp;title=User%3ASteven%2Fflip_frame_decode.c"/>
	<link rel="alternate" type="text/html" href="https://dsibrew.org/w/index.php?title=User:Steven/flip_frame_decode.c&amp;action=history"/>
	<updated>2026-05-03T08:53:51Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://dsibrew.org/w/index.php?title=User:Steven/flip_frame_decode.c&amp;diff=2718&amp;oldid=prev</id>
		<title>Endres: GCC gave me errors which were caused by &quot;wise&quot; M$ thinking that typecast isn&#039;t neccessary :(</title>
		<link rel="alternate" type="text/html" href="https://dsibrew.org/w/index.php?title=User:Steven/flip_frame_decode.c&amp;diff=2718&amp;oldid=prev"/>
		<updated>2010-02-15T18:18:31Z</updated>

		<summary type="html">&lt;p&gt;GCC gave me errors which were caused by &amp;quot;wise&amp;quot; M$ thinking that typecast isn&amp;#039;t neccessary :(&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 21:18, 15 February 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l99&quot;&gt;Line 99:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 99:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     printf( &amp;quot;Magic Number    : %c%c%c%c\n&amp;quot;, ptr-&amp;gt;magic[0], ptr-&amp;gt;magic[1], ptr-&amp;gt;magic[2], ptr-&amp;gt;magic[3] );&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     printf( &amp;quot;Magic Number    : %c%c%c%c\n&amp;quot;, ptr-&amp;gt;magic[0], ptr-&amp;gt;magic[1], ptr-&amp;gt;magic[2], ptr-&amp;gt;magic[3] );&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     printf( &quot;File Size       : %d (%08X)\n&quot;, ptr-&amp;gt;fileSize, ptr-&amp;gt;fileSize );&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     printf( &quot;File Size       : %d (%08X)\n&quot;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(int)&lt;/ins&gt;ptr-&amp;gt;fileSize, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(unsigned int)&lt;/ins&gt;ptr-&amp;gt;fileSize );&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     printf( &quot;Audio offset    : %d (%08X)\n&quot;, ptr-&amp;gt;audioOffset, ptr-&amp;gt;audioOffset );&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     printf( &quot;Audio offset    : %d (%08X)\n&quot;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(int)&lt;/ins&gt;ptr-&amp;gt;audioOffset, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(unsigned int)&lt;/ins&gt;ptr-&amp;gt;audioOffset );&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     printf( &amp;quot;# Frames        : %d\n&amp;quot;, ptr-&amp;gt;numberOfFrames );&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     printf( &amp;quot;# Frames        : %d\n&amp;quot;, ptr-&amp;gt;numberOfFrames );&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     printf( &amp;quot;Unknown         : 0x%04X\n&amp;quot;, ptr-&amp;gt;unk0 );&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     printf( &amp;quot;Unknown         : 0x%04X\n&amp;quot;, ptr-&amp;gt;unk0 );&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l237&quot;&gt;Line 237:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 237:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	if( buf == NULL )&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	if( buf == NULL )&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	{&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	{&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		printf( &quot;Error unable to allocate buffer for frame %d\n&quot;, frmBuf );&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		printf( &quot;Error unable to allocate buffer for frame %d\n&quot;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(int)&lt;/ins&gt;frmBuf );&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		return;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		return;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l243&quot;&gt;Line 243:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 243:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	frmOffset = getFrameOffset( frmBuf, 1 );&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	frmOffset = getFrameOffset( frmBuf, 1 );&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	printf( &quot;Frame #%d offset %08X\n&quot;, frmNum, frmOffset );&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	printf( &quot;Frame #%d offset %08X\n&quot;, frmNum, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(unsigned int)&lt;/ins&gt;frmOffset );&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	colPaper  = frmBuf[ frmOffset ] &amp;amp; 0x01;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	colPaper  = frmBuf[ frmOffset ] &amp;amp; 0x01;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l294&quot;&gt;Line 294:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 294:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			case 0: // Skip this line&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			case 0: // Skip this line&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				byteUse = 0;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				byteUse = 0;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				printf( &quot;Line %3d(%04X), Layer 1, Skip Frame [%08X]\toffset %08X\n&quot;, lnePos, lnePos, byteUse, frmOffset + 0x6a0 );&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				printf( &quot;Line %3d(%04X), Layer 1, Skip Frame [%08X]\toffset %08X\n&quot;, lnePos, lnePos, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(unsigned int)&lt;/ins&gt;byteUse, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(unsigned int)&lt;/ins&gt;frmOffset + 0x6a0 );&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				break;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				break;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			case 1: // Coded&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			case 1: // Coded&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				byteUse = getu32inv( &amp;amp;frmBuf[ frmOffset ] );&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				byteUse = getu32inv( &amp;amp;frmBuf[ frmOffset ] );&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				printf( &quot;Line %3d(%04X), Layer 1, Coded      [%08X]\toffset %08X\n&quot;, lnePos, lnePos, byteUse, frmOffset + 0x6a0 );&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				printf( &quot;Line %3d(%04X), Layer 1, Coded      [%08X]\toffset %08X\n&quot;, lnePos, lnePos, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(unsigned int)&lt;/ins&gt;byteUse, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(unsigned int)&lt;/ins&gt;frmOffset + 0x6a0 );&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				frmOffset += 4;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				frmOffset += 4;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				frmOffset += decodeLine( &amp;amp;buf[ lnePos &amp;lt;&amp;lt; 8 ], &amp;amp;frmBuf[ frmOffset ], byteUse, outFrameG[ 0 ], outFrameG[ colLayer1 ], 0 );&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				frmOffset += decodeLine( &amp;amp;buf[ lnePos &amp;lt;&amp;lt; 8 ], &amp;amp;frmBuf[ frmOffset ], byteUse, outFrameG[ 0 ], outFrameG[ colLayer1 ], 0 );&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l304&quot;&gt;Line 304:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 304:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			case 2: // Inv Coded&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			case 2: // Inv Coded&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				byteUse = getu32inv( &amp;amp;frmBuf[ frmOffset ] );&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				byteUse = getu32inv( &amp;amp;frmBuf[ frmOffset ] );&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				printf( &quot;Line %3d(%04X), Layer 1, Inv Coded  [%08X]\toffset %08X\n&quot;, lnePos, lnePos, byteUse, frmOffset + 0x6a0 );&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				printf( &quot;Line %3d(%04X), Layer 1, Inv Coded  [%08X]\toffset %08X\n&quot;, lnePos, lnePos, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(unsigned int)&lt;/ins&gt;byteUse, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(unsigned int)&lt;/ins&gt;frmOffset + 0x6a0 );&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				frmOffset += 4;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				frmOffset += 4;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				frmOffset += decodeLine( &amp;amp;buf[ lnePos &amp;lt;&amp;lt; 8 ], &amp;amp;frmBuf[ frmOffset ], byteUse, outFrameG[ colLayer1 ], outFrameG[ 0 ], 1 );&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				frmOffset += decodeLine( &amp;amp;buf[ lnePos &amp;lt;&amp;lt; 8 ], &amp;amp;frmBuf[ frmOffset ], byteUse, outFrameG[ colLayer1 ], outFrameG[ 0 ], 1 );&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l310&quot;&gt;Line 310:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 310:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			case 3: // Full Line&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			case 3: // Full Line&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				byteUse = 0xFFFFFFFF;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				byteUse = 0xFFFFFFFF;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				printf( &quot;Line %3d(%04X), Layer 1, Full Frame [%08X]\toffset %08X\n&quot;, lnePos, lnePos, byteUse, frmOffset + 0x6a0 );&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				printf( &quot;Line %3d(%04X), Layer 1, Full Frame [%08X]\toffset %08X\n&quot;, lnePos, lnePos, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(unsigned int)&lt;/ins&gt;byteUse, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(unsigned int)&lt;/ins&gt;frmOffset + 0x6a0 );&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				frmOffset += decodeLine( &amp;amp;buf[ lnePos &amp;lt;&amp;lt; 8 ], &amp;amp;frmBuf[ frmOffset ], byteUse, outFrameG[ 0 ], outFrameG[ colLayer1 ], 0 );&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				frmOffset += decodeLine( &amp;amp;buf[ lnePos &amp;lt;&amp;lt; 8 ], &amp;amp;frmBuf[ frmOffset ], byteUse, outFrameG[ 0 ], outFrameG[ colLayer1 ], 0 );&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				break;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				break;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key dsibrew-dsi_:diff:1.41:old-2068:rev-2718:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Endres</name></author>
	</entry>
	<entry>
		<id>https://dsibrew.org/w/index.php?title=User:Steven/flip_frame_decode.c&amp;diff=2068&amp;oldid=prev</id>
		<title>Steven: Steven/flip frame decode.c moved to User:Steven/flip frame decode.c: Lets try this again - Wiki NOOB ALERT XD</title>
		<link rel="alternate" type="text/html" href="https://dsibrew.org/w/index.php?title=User:Steven/flip_frame_decode.c&amp;diff=2068&amp;oldid=prev"/>
		<updated>2009-08-21T09:53:26Z</updated>

		<summary type="html">&lt;p&gt;&lt;a href=&quot;/w/index.php?title=Steven/flip_frame_decode.c&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Steven/flip frame decode.c (page does not exist)&quot;&gt;Steven/flip frame decode.c&lt;/a&gt; moved to &lt;a href=&quot;/wiki/User:Steven/flip_frame_decode.c&quot; title=&quot;User:Steven/flip frame decode.c&quot;&gt;User:Steven/flip frame decode.c&lt;/a&gt;: Lets try this again - Wiki NOOB ALERT XD&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 13:53, 21 August 2009&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key dsibrew-dsi_:diff:1.41:old-2065:rev-2068 --&gt;
&lt;/table&gt;</summary>
		<author><name>Steven</name></author>
	</entry>
	<entry>
		<id>https://dsibrew.org/w/index.php?title=User:Steven/flip_frame_decode.c&amp;diff=2065&amp;oldid=prev</id>
		<title>Steven: \flip frame decode.c moved to Steven/flip frame decode.c: I&#039;m too used to MS-DOS slashes...</title>
		<link rel="alternate" type="text/html" href="https://dsibrew.org/w/index.php?title=User:Steven/flip_frame_decode.c&amp;diff=2065&amp;oldid=prev"/>
		<updated>2009-08-21T09:52:27Z</updated>

		<summary type="html">&lt;p&gt;&lt;a href=&quot;/w/index.php?title=%5Cflip_frame_decode.c&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;\flip frame decode.c (page does not exist)&quot;&gt;\flip frame decode.c&lt;/a&gt; moved to &lt;a href=&quot;/w/index.php?title=Steven/flip_frame_decode.c&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Steven/flip frame decode.c (page does not exist)&quot;&gt;Steven/flip frame decode.c&lt;/a&gt;: I&amp;#039;m too used to MS-DOS slashes...&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 13:52, 21 August 2009&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key dsibrew-dsi_:diff:1.41:old-2064:rev-2065 --&gt;
&lt;/table&gt;</summary>
		<author><name>Steven</name></author>
	</entry>
	<entry>
		<id>https://dsibrew.org/w/index.php?title=User:Steven/flip_frame_decode.c&amp;diff=2064&amp;oldid=prev</id>
		<title>Steven: New page: Please note that there is very little comments and this application just outputs to the text console at the moment, but the code used here can be expanded to produce any other image file f...</title>
		<link rel="alternate" type="text/html" href="https://dsibrew.org/w/index.php?title=User:Steven/flip_frame_decode.c&amp;diff=2064&amp;oldid=prev"/>
		<updated>2009-08-21T09:51:57Z</updated>

		<summary type="html">&lt;p&gt;New page: Please note that there is very little comments and this application just outputs to the text console at the moment, but the code used here can be expanded to produce any other image file f...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Please note that there is very little comments and this application just outputs to the text console at the moment, but the code used here can be expanded to produce any other image file formats you wanted.  I&amp;#039;m still working on the sound format and as such there is no functions for the sound yet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;memory.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Disable MS VC&amp;#039;s &amp;quot;unsecure / depricated&amp;quot; code warning&lt;br /&gt;
#pragma warning( disable : 4996 )&lt;br /&gt;
&lt;br /&gt;
// setup some file types for set sizes&lt;br /&gt;
typedef signed char		s8;&lt;br /&gt;
typedef signed short	s16;&lt;br /&gt;
typedef signed long		s32;&lt;br /&gt;
typedef unsigned char	u8;&lt;br /&gt;
typedef unsigned short	u16;&lt;br /&gt;
typedef unsigned long	u32;&lt;br /&gt;
&lt;br /&gt;
typedef struct PPM_HEADER&lt;br /&gt;
{&lt;br /&gt;
    u8  magic[4];&lt;br /&gt;
    u32 fileSize;&lt;br /&gt;
    u32 audioOffset;&lt;br /&gt;
    u16 numberOfFrames;&lt;br /&gt;
    u16 unk0;&lt;br /&gt;
    u16 flags;&lt;br /&gt;
    u16 previewFrameNumber;&lt;br /&gt;
    u16 originalAuthorName[11];&lt;br /&gt;
    u16 authorName[11];&lt;br /&gt;
    u16 userName[11];&lt;br /&gt;
    u8  originalAuthorID[8];&lt;br /&gt;
    u8  editAuthorID[8];&lt;br /&gt;
    u8  originalFileName[18];&lt;br /&gt;
    u8  fileName[18];&lt;br /&gt;
    u8  authorID[8];&lt;br /&gt;
    u8  unk1[8];&lt;br /&gt;
    u8  unk2[6];&lt;br /&gt;
    u8  previewBitmap[1536];&lt;br /&gt;
} ppmHeader;&lt;br /&gt;
&lt;br /&gt;
int flength(FILE *f)&lt;br /&gt;
{&lt;br /&gt;
  int pos,end;&lt;br /&gt;
  pos = ftell (f);&lt;br /&gt;
  fseek (f, 0, SEEK_END);&lt;br /&gt;
  end = ftell (f);&lt;br /&gt;
  fseek (f, pos, SEEK_SET);&lt;br /&gt;
  return end;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
char *idFromStr( u8 is[8] )&lt;br /&gt;
{&lt;br /&gt;
    static char retVal[32];&lt;br /&gt;
    int i;&lt;br /&gt;
    &lt;br /&gt;
    memset( retVal, 0, 32 );&lt;br /&gt;
    &lt;br /&gt;
    for( i = 7; i &amp;gt;= 0; i -- )&lt;br /&gt;
         sprintf( retVal, &amp;quot;%s%02X&amp;quot;, retVal, ( is[ i ] &amp;amp; 0xFF ) );&lt;br /&gt;
    &lt;br /&gt;
    return retVal;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
char *filenameFromStr( u8 fn[18] )&lt;br /&gt;
{&lt;br /&gt;
    static char retVal[64];&lt;br /&gt;
    int i;&lt;br /&gt;
    &lt;br /&gt;
    memset( retVal, 0, 32 );&lt;br /&gt;
    &lt;br /&gt;
    for( i = 0; i &amp;lt; 3; i ++ )&lt;br /&gt;
         sprintf( retVal, &amp;quot;%s%02X&amp;quot;, retVal, ( fn[ i ] &amp;amp; 0xFF ) );&lt;br /&gt;
         &lt;br /&gt;
    strcat( retVal, &amp;quot;_&amp;quot; );&lt;br /&gt;
    &lt;br /&gt;
    for( i = 3; i &amp;lt; 16; i ++ )&lt;br /&gt;
         sprintf( retVal, &amp;quot;%s%c&amp;quot;, retVal, ( fn[ i ] &amp;amp; 0xFF ) );&lt;br /&gt;
    &lt;br /&gt;
    sprintf( retVal, &amp;quot;%s_%03d&amp;quot;, retVal, ( fn[ 16 ] &amp;amp; 0xFF ) + ( ( fn[ 17 ] &amp;amp; 0xFF ) &amp;lt;&amp;lt; 8 ) );&lt;br /&gt;
    &lt;br /&gt;
    return retVal;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
char *hexFromStr( u8 is[8], int len )&lt;br /&gt;
{&lt;br /&gt;
    static char retVal[256];&lt;br /&gt;
    int i;&lt;br /&gt;
    &lt;br /&gt;
    memset( retVal, 0, 256 );&lt;br /&gt;
    &lt;br /&gt;
    for( i = 0; i &amp;lt; len; i ++ )&lt;br /&gt;
         sprintf( retVal, &amp;quot;%s%02X &amp;quot;, retVal, ( is[ i ] &amp;amp; 0xFF ) );&lt;br /&gt;
    &lt;br /&gt;
    return retVal;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void printHeaderInfo( ppmHeader *ptr )&lt;br /&gt;
{&lt;br /&gt;
    printf( &amp;quot;Magic Number    : %c%c%c%c\n&amp;quot;, ptr-&amp;gt;magic[0], ptr-&amp;gt;magic[1], ptr-&amp;gt;magic[2], ptr-&amp;gt;magic[3] );&lt;br /&gt;
    printf( &amp;quot;File Size       : %d (%08X)\n&amp;quot;, ptr-&amp;gt;fileSize, ptr-&amp;gt;fileSize );&lt;br /&gt;
    printf( &amp;quot;Audio offset    : %d (%08X)\n&amp;quot;, ptr-&amp;gt;audioOffset, ptr-&amp;gt;audioOffset );&lt;br /&gt;
    printf( &amp;quot;# Frames        : %d\n&amp;quot;, ptr-&amp;gt;numberOfFrames );&lt;br /&gt;
    printf( &amp;quot;Unknown         : 0x%04X\n&amp;quot;, ptr-&amp;gt;unk0 );&lt;br /&gt;
    printf( &amp;quot;Flags?          : 0x%04X - 0 = open, 1 = locked\n&amp;quot;, ptr-&amp;gt;flags );&lt;br /&gt;
    printf( &amp;quot;Preview Frame # : %d\n&amp;quot;, ptr-&amp;gt;previewFrameNumber );&lt;br /&gt;
    printf( &amp;quot;Orig Author     : UCS-2 string \n&amp;quot; );&lt;br /&gt;
    printf( &amp;quot;Author          : UCS-2 string \n&amp;quot; );&lt;br /&gt;
    printf( &amp;quot;Edit Author     : UCS-2 string \n&amp;quot; );&lt;br /&gt;
    printf( &amp;quot;Orig Author ID  : %s\n&amp;quot;, idFromStr( ptr-&amp;gt;originalAuthorID ) );&lt;br /&gt;
    printf( &amp;quot;Edit Author ID  : %s\n&amp;quot;, idFromStr( ptr-&amp;gt;editAuthorID ) );&lt;br /&gt;
    printf( &amp;quot;Orig Filename   : %s\n&amp;quot;, filenameFromStr( ptr-&amp;gt;originalFileName ) );&lt;br /&gt;
    printf( &amp;quot;Curr Filename   : %s\n&amp;quot;, filenameFromStr( ptr-&amp;gt;fileName ) );&lt;br /&gt;
    printf( &amp;quot;Author ID       : %s\n&amp;quot;, idFromStr( ptr-&amp;gt;authorID ) );&lt;br /&gt;
    printf( &amp;quot;Unknown 8 bytes : %s\n&amp;quot;, hexFromStr( ptr-&amp;gt;unk1, 8 ) ) ;&lt;br /&gt;
    printf( &amp;quot;Unknown 6 bytes : %s\n&amp;quot;, hexFromStr( ptr-&amp;gt;unk2, 6 ) ) ;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static char outPreviewG[] = { &amp;#039; &amp;#039;, 176, 219, 178, &amp;#039;r&amp;#039;, &amp;#039;R&amp;#039;, &amp;#039;p&amp;#039;, &amp;#039;X&amp;#039;, &amp;#039;B&amp;#039;, &amp;#039;P&amp;#039;, &amp;#039;b&amp;#039;, &amp;#039;x&amp;#039;, &amp;#039;M&amp;#039;, &amp;#039;.&amp;#039;, &amp;#039;.&amp;#039;, &amp;#039;.&amp;#039; };&lt;br /&gt;
&lt;br /&gt;
static char outFrameG0[] = {  32, 219, 176, 178 };&lt;br /&gt;
static char outFrameG1[] = { 219,  32, 176, 178 };&lt;br /&gt;
&lt;br /&gt;
void displayPreviewImage( u8 img[1536] )&lt;br /&gt;
{&lt;br /&gt;
    int x, y, cellOffset;&lt;br /&gt;
    int xp, xc;&lt;br /&gt;
    u8 c;&lt;br /&gt;
    &lt;br /&gt;
    for( y = 0; y &amp;lt; 48; y ++ )&lt;br /&gt;
    {&lt;br /&gt;
        cellOffset = ( ( y &amp;gt;&amp;gt; 3 ) * 256 ) + ( ( y &amp;amp; 0x7 ) &amp;lt;&amp;lt; 2 );&lt;br /&gt;
        for( x = 0; x &amp;lt; 64; x ++ )&lt;br /&gt;
        {&lt;br /&gt;
            xp = ( x &amp;amp; 7 ) &amp;gt;&amp;gt; 1;&lt;br /&gt;
            xc = ( ( x &amp;gt;&amp;gt; 3 ) &amp;lt;&amp;lt; 5 );&lt;br /&gt;
            c = img[ cellOffset + xp + xc ];&lt;br /&gt;
            printf( &amp;quot;%c&amp;quot;, outPreviewG[ ( x &amp;amp; 1 ? c  &amp;gt;&amp;gt; 4 : c ) &amp;amp; 0xF ] );&lt;br /&gt;
        }&lt;br /&gt;
        printf( &amp;quot;\n&amp;quot; );&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
u32 getu32( u8 *buf )&lt;br /&gt;
{&lt;br /&gt;
	u32 retVal = 0;&lt;br /&gt;
&lt;br /&gt;
	retVal = retVal | ( buf[ 0 ] &amp;lt;&amp;lt;  0 );&lt;br /&gt;
	retVal = retVal | ( buf[ 1 ] &amp;lt;&amp;lt;  8 );&lt;br /&gt;
	retVal = retVal | ( buf[ 2 ] &amp;lt;&amp;lt; 16 );&lt;br /&gt;
	retVal = retVal | ( buf[ 3 ] &amp;lt;&amp;lt; 24 );&lt;br /&gt;
&lt;br /&gt;
	return retVal;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
u32 getu32inv( u8 *buf )&lt;br /&gt;
{&lt;br /&gt;
	u32 retVal = 0;&lt;br /&gt;
&lt;br /&gt;
	retVal = retVal | ( buf[ 3 ] &amp;lt;&amp;lt;  0 );&lt;br /&gt;
	retVal = retVal | ( buf[ 2 ] &amp;lt;&amp;lt;  8 );&lt;br /&gt;
	retVal = retVal | ( buf[ 1 ] &amp;lt;&amp;lt; 16 );&lt;br /&gt;
	retVal = retVal | ( buf[ 0 ] &amp;lt;&amp;lt; 24 );&lt;br /&gt;
&lt;br /&gt;
	return retVal;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
u32 getFrameOffset( u8 *buf, u16 frm )&lt;br /&gt;
{&lt;br /&gt;
	u32 numBytes;&lt;br /&gt;
&lt;br /&gt;
	numBytes = getu32( buf );&lt;br /&gt;
&lt;br /&gt;
	if( frm &amp;gt; ( numBytes &amp;gt;&amp;gt; 2 ) )&lt;br /&gt;
		return 0;&lt;br /&gt;
	&lt;br /&gt;
	return ( getu32( &amp;amp;buf[ 4 + ( frm &amp;lt;&amp;lt; 2 ) ] ) + 8 + numBytes );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
u32 decodeLine( u8 *outB, u8 *inB, u32 useByte, u8 paper, u8 pen, u8 invflag )&lt;br /&gt;
{&lt;br /&gt;
	u32 offset = 0;&lt;br /&gt;
	u16 x = 0, i;&lt;br /&gt;
	u8 data;&lt;br /&gt;
&lt;br /&gt;
	if( useByte == 0 ) // Set the full line to the current paper colour&lt;br /&gt;
		memset( outB, paper, 256 );&lt;br /&gt;
	else // Bytes in this line, read and deal with them&lt;br /&gt;
	{&lt;br /&gt;
		while( useByte != 0 )&lt;br /&gt;
		{&lt;br /&gt;
			if( ( useByte &amp;amp; 0x80000000 ) == 0x80000000 )&lt;br /&gt;
			{&lt;br /&gt;
				// This byte exists...&lt;br /&gt;
				data = inB[ offset++ ];&lt;br /&gt;
&lt;br /&gt;
				for( i = 0; i &amp;lt; 8; i ++ )&lt;br /&gt;
				{&lt;br /&gt;
					if( ( data &amp;amp; 0x01 ) == 0x01 )&lt;br /&gt;
						outB[ x ] = invflag == 0 ? pen : paper;&lt;br /&gt;
					else&lt;br /&gt;
						outB[ x ] = invflag == 0 ? paper : pen;&lt;br /&gt;
&lt;br /&gt;
					x ++;&lt;br /&gt;
&lt;br /&gt;
					data &amp;gt;&amp;gt;= 1;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				memset( &amp;amp;outB[ x ], paper, 8 );&lt;br /&gt;
				x += 8;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			useByte &amp;lt;&amp;lt;= 1;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		if( x &amp;lt; 256 )&lt;br /&gt;
			memset( &amp;amp;outB[ x ], paper, 256 - x );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	return offset;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void displayFrame( u8 *frmBuf, u16 frmNum )&lt;br /&gt;
{&lt;br /&gt;
	u8 colPaper, colLayer1, colLayer2;&lt;br /&gt;
	u32 frmOffset;&lt;br /&gt;
	u8 lEnc[192];&lt;br /&gt;
	u8 *buf;&lt;br /&gt;
	u8 lnePos, lneCount;&lt;br /&gt;
	u8 *outFrameG;&lt;br /&gt;
	u16 x, y;&lt;br /&gt;
	u32 byteUse;&lt;br /&gt;
&lt;br /&gt;
	buf = (u8*) malloc( 256 * 192 );&lt;br /&gt;
	if( buf == NULL )&lt;br /&gt;
	{&lt;br /&gt;
		printf( &amp;quot;Error unable to allocate buffer for frame %d\n&amp;quot;, frmBuf );&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	frmOffset = getFrameOffset( frmBuf, 1 );&lt;br /&gt;
&lt;br /&gt;
	printf( &amp;quot;Frame #%d offset %08X\n&amp;quot;, frmNum, frmOffset );&lt;br /&gt;
&lt;br /&gt;
	colPaper  = frmBuf[ frmOffset ] &amp;amp; 0x01;&lt;br /&gt;
	colLayer1 = ( frmBuf[ frmOffset ] &amp;gt;&amp;gt; 1 ) &amp;amp; 0x03;&lt;br /&gt;
	colLayer2 = ( frmBuf[ frmOffset ] &amp;gt;&amp;gt; 3 ) &amp;amp; 0x03;&lt;br /&gt;
&lt;br /&gt;
	printf( &amp;quot;Paper colour:   %s\n&amp;quot;, ( colPaper == 0 ? &amp;quot;Black&amp;quot; : &amp;quot;White&amp;quot; ) );&lt;br /&gt;
	printf( &amp;quot;Layer 1 colour: %d\n&amp;quot;, colLayer1 );&lt;br /&gt;
	printf( &amp;quot;Layer 2 colour: %d\n&amp;quot;, colLayer2 );&lt;br /&gt;
&lt;br /&gt;
	if( colPaper == 0 )&lt;br /&gt;
		outFrameG = outFrameG0;&lt;br /&gt;
	else&lt;br /&gt;
		outFrameG = outFrameG1;&lt;br /&gt;
&lt;br /&gt;
	memset( buf, outFrameG[0], 192 &amp;lt;&amp;lt; 8 );&lt;br /&gt;
&lt;br /&gt;
	lnePos = 0;&lt;br /&gt;
	frmOffset ++;&lt;br /&gt;
&lt;br /&gt;
	// Read layer 1 line information into lower nibble&lt;br /&gt;
	for( lneCount = 0; lneCount &amp;lt; 48; lneCount ++ )&lt;br /&gt;
	{&lt;br /&gt;
		lEnc[ lnePos++ ] = ( frmBuf[ frmOffset ] &amp;gt;&amp;gt; 0 ) &amp;amp; 0x03;&lt;br /&gt;
		lEnc[ lnePos++ ] = ( frmBuf[ frmOffset ] &amp;gt;&amp;gt; 2 ) &amp;amp; 0x03;&lt;br /&gt;
		lEnc[ lnePos++ ] = ( frmBuf[ frmOffset ] &amp;gt;&amp;gt; 4 ) &amp;amp; 0x03;&lt;br /&gt;
		lEnc[ lnePos++ ] = ( frmBuf[ frmOffset ] &amp;gt;&amp;gt; 6 ) &amp;amp; 0x03;&lt;br /&gt;
		frmOffset ++;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	lnePos = 0;&lt;br /&gt;
	// Read layer 2 line information into upper nibble&lt;br /&gt;
	for( lneCount = 0; lneCount &amp;lt; 48; lneCount ++ )&lt;br /&gt;
	{&lt;br /&gt;
		lEnc[ lnePos++ ] |= ( frmBuf[ frmOffset ] &amp;lt;&amp;lt; 4 ) &amp;amp; 0x30;&lt;br /&gt;
		lEnc[ lnePos++ ] |= ( frmBuf[ frmOffset ] &amp;lt;&amp;lt; 2 ) &amp;amp; 0x30;&lt;br /&gt;
		lEnc[ lnePos++ ] |= ( frmBuf[ frmOffset ] &amp;gt;&amp;gt; 0 ) &amp;amp; 0x30;&lt;br /&gt;
		lEnc[ lnePos++ ] |= ( frmBuf[ frmOffset ] &amp;gt;&amp;gt; 2 ) &amp;amp; 0x30;&lt;br /&gt;
		frmOffset ++;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	//read frame here...&lt;br /&gt;
	// First read layer 1.&lt;br /&gt;
	lnePos = 0;&lt;br /&gt;
&lt;br /&gt;
	while( lnePos &amp;lt; 192 )&lt;br /&gt;
	{&lt;br /&gt;
		switch( lEnc[ lnePos ] &amp;amp; 0x03 )&lt;br /&gt;
		{&lt;br /&gt;
			case 0: // Skip this line&lt;br /&gt;
				byteUse = 0;&lt;br /&gt;
				printf( &amp;quot;Line %3d(%04X), Layer 1, Skip Frame [%08X]\toffset %08X\n&amp;quot;, lnePos, lnePos, byteUse, frmOffset + 0x6a0 );&lt;br /&gt;
				break;&lt;br /&gt;
			case 1: // Coded&lt;br /&gt;
				byteUse = getu32inv( &amp;amp;frmBuf[ frmOffset ] );&lt;br /&gt;
				printf( &amp;quot;Line %3d(%04X), Layer 1, Coded      [%08X]\toffset %08X\n&amp;quot;, lnePos, lnePos, byteUse, frmOffset + 0x6a0 );&lt;br /&gt;
				frmOffset += 4;&lt;br /&gt;
				frmOffset += decodeLine( &amp;amp;buf[ lnePos &amp;lt;&amp;lt; 8 ], &amp;amp;frmBuf[ frmOffset ], byteUse, outFrameG[ 0 ], outFrameG[ colLayer1 ], 0 );&lt;br /&gt;
				break;&lt;br /&gt;
			case 2: // Inv Coded&lt;br /&gt;
				byteUse = getu32inv( &amp;amp;frmBuf[ frmOffset ] );&lt;br /&gt;
				printf( &amp;quot;Line %3d(%04X), Layer 1, Inv Coded  [%08X]\toffset %08X\n&amp;quot;, lnePos, lnePos, byteUse, frmOffset + 0x6a0 );&lt;br /&gt;
				frmOffset += 4;&lt;br /&gt;
				frmOffset += decodeLine( &amp;amp;buf[ lnePos &amp;lt;&amp;lt; 8 ], &amp;amp;frmBuf[ frmOffset ], byteUse, outFrameG[ colLayer1 ], outFrameG[ 0 ], 1 );&lt;br /&gt;
				break;&lt;br /&gt;
			case 3: // Full Line&lt;br /&gt;
				byteUse = 0xFFFFFFFF;&lt;br /&gt;
				printf( &amp;quot;Line %3d(%04X), Layer 1, Full Frame [%08X]\toffset %08X\n&amp;quot;, lnePos, lnePos, byteUse, frmOffset + 0x6a0 );&lt;br /&gt;
				frmOffset += decodeLine( &amp;amp;buf[ lnePos &amp;lt;&amp;lt; 8 ], &amp;amp;frmBuf[ frmOffset ], byteUse, outFrameG[ 0 ], outFrameG[ colLayer1 ], 0 );&lt;br /&gt;
				break;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		lnePos ++;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	//output frame here...&lt;br /&gt;
	for( y = 0; y &amp;lt; 192; y ++ )&lt;br /&gt;
	{&lt;br /&gt;
		for( x = 0; x &amp;lt; 256; x ++ )&lt;br /&gt;
		{&lt;br /&gt;
			printf( &amp;quot;%c&amp;quot;, buf[ x + ( y &amp;lt;&amp;lt; 8 ) ] );&lt;br /&gt;
		}&lt;br /&gt;
		printf( &amp;quot;\n&amp;quot; );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void hexOut( char *buf, int len )&lt;br /&gt;
{&lt;br /&gt;
    int i;&lt;br /&gt;
    &lt;br /&gt;
    for( i = 0 ; i &amp;lt; len ; i ++ )&lt;br /&gt;
    {&lt;br /&gt;
        printf( &amp;quot;%02X &amp;quot;, buf[i] &amp;amp; 0xFF );&lt;br /&gt;
        &lt;br /&gt;
        if( ( i &amp;amp; 0xF ) == 0xF )&lt;br /&gt;
            printf( &amp;quot;\n&amp;quot; );&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char* argv[])&lt;br /&gt;
{&lt;br /&gt;
  ppmHeader *pHead;&lt;br /&gt;
  FILE *fp;&lt;br /&gt;
  int f_len;&lt;br /&gt;
  char *f_buf;&lt;br /&gt;
  &lt;br /&gt;
  if(argc != 2)&lt;br /&gt;
  {&lt;br /&gt;
    printf(&amp;quot;usage: %s &amp;lt;anim.ppm&amp;gt;\n&amp;quot;, argv[0]);&lt;br /&gt;
    exit(0);&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  fp = fopen(argv[1],&amp;quot;rb&amp;quot;);&lt;br /&gt;
  if(fp == NULL)&lt;br /&gt;
  {&lt;br /&gt;
    printf(&amp;quot;input file not found\n&amp;quot;);&lt;br /&gt;
    exit(1);&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  f_len = flength(fp);&lt;br /&gt;
  f_buf = malloc(f_len);&lt;br /&gt;
  if(f_buf == NULL)&lt;br /&gt;
  {&lt;br /&gt;
    fprintf(stderr, &amp;quot;not enough memory\n&amp;quot;);&lt;br /&gt;
    exit(1);&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  if(fread(f_buf, f_len, 1, fp) != 1)&lt;br /&gt;
  {&lt;br /&gt;
    fprintf(stderr, &amp;quot;file read failure\n&amp;quot;);&lt;br /&gt;
    exit(1);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  pHead = (ppmHeader *) f_buf;&lt;br /&gt;
&lt;br /&gt;
  printHeaderInfo( pHead );&lt;br /&gt;
  &lt;br /&gt;
  displayPreviewImage( pHead-&amp;gt;previewBitmap );&lt;br /&gt;
  &lt;br /&gt;
  printf( &amp;quot;\n&amp;quot; );&lt;br /&gt;
&lt;br /&gt;
  displayFrame( &amp;amp;f_buf[ 0x6a0 ], 1 );&lt;br /&gt;
&lt;br /&gt;
  printf( &amp;quot;\n&amp;quot; );&lt;br /&gt;
  &lt;br /&gt;
  hexOut( &amp;amp;f_buf[ 0x6a0 ], 256 );&lt;br /&gt;
  &lt;br /&gt;
  printf( &amp;quot;\n&amp;quot; );&lt;br /&gt;
  &lt;br /&gt;
  hexOut( &amp;amp;f_buf[ f_len - 256 ], 256 );&lt;br /&gt;
  &lt;br /&gt;
  printf(&amp;quot;finished..\n&amp;quot;);&lt;br /&gt;
  free( f_buf);&lt;br /&gt;
  fclose(fp);&lt;br /&gt;
 &lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Steven</name></author>
	</entry>
</feed>