<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://fileformats.archiveteam.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://fileformats.archiveteam.org/index.php?action=history&amp;feed=atom&amp;title=GLE</id>
		<title>GLE - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://fileformats.archiveteam.org/index.php?action=history&amp;feed=atom&amp;title=GLE"/>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/index.php?title=GLE&amp;action=history"/>
		<updated>2026-04-09T20:04:56Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.19.2</generator>

	<entry>
		<id>http://fileformats.archiveteam.org/index.php?title=GLE&amp;diff=28715&amp;oldid=prev</id>
		<title>Jsummers: Category:Booting</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/index.php?title=GLE&amp;diff=28715&amp;oldid=prev"/>
				<updated>2017-08-15T14:47:55Z</updated>
		
		<summary type="html">&lt;p&gt;Category:Booting&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 14:47, 15 August 2017&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 128:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 128:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Booting]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Jsummers</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/index.php?title=GLE&amp;diff=21213&amp;oldid=prev</id>
		<title>Felix: Created page with &quot;{{FormatInfo  | subcat = Graphics }} '''GLE''' is a simple monochrome graphics format used for storing the Energy Star logo in AMI BIOS images. Full splash screens are usu...&quot;</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/index.php?title=GLE&amp;diff=21213&amp;oldid=prev"/>
				<updated>2015-03-09T08:44:42Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;{{FormatInfo  | subcat = Graphics }} &amp;#039;&amp;#039;&amp;#039;GLE&amp;#039;&amp;#039;&amp;#039; is a simple monochrome graphics format used for storing the Energy Star logo in AMI &lt;a href=&quot;/wiki/BIOS&quot; title=&quot;BIOS&quot;&gt;BIOS&lt;/a&gt; images. Full splash screens are usu...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{FormatInfo&lt;br /&gt;
 | subcat = Graphics&lt;br /&gt;
}}&lt;br /&gt;
'''GLE''' is a simple monochrome graphics format used for storing the Energy Star logo in AMI [[BIOS]] images. Full splash screens are usually stored in the [[PCX]] format.&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
The layout of a GLE file is as follows.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 ! Name&lt;br /&gt;
 ! Length&lt;br /&gt;
 ! Description&lt;br /&gt;
 |-&lt;br /&gt;
 | magic&lt;br /&gt;
 | 3 bytes&lt;br /&gt;
 | Always contains &amp;lt;code&amp;gt;'G' 'L' 'E'&amp;lt;/code&amp;gt;, i.e. &amp;lt;code&amp;gt;47 4c 45&amp;lt;/code&amp;gt;.&lt;br /&gt;
 |-&lt;br /&gt;
 | ???&lt;br /&gt;
 | 1 byte&lt;br /&gt;
 | Always equal to 1 in files known to this author. It is unknown whether it should be considered a part of the magic number, format version number, bit depth, set of flags or some other indicator.&lt;br /&gt;
 |-&lt;br /&gt;
 | width&lt;br /&gt;
 | 1 byte&lt;br /&gt;
 | Image width, in character cells; usually 11. One cell is 8 pixels wide.&lt;br /&gt;
 |-&lt;br /&gt;
 | height&lt;br /&gt;
 | 1 byte&lt;br /&gt;
 | Image height, in character cells; usually 3. One cell is 14 pixels high.&lt;br /&gt;
 |-&lt;br /&gt;
 | fgcolor&lt;br /&gt;
 | 1 byte&lt;br /&gt;
 | CGA colour number of foreground (1) pixels; usually 10 (light green). See [[wikipedia:Color Graphics Adapter#Color palette]].&lt;br /&gt;
 |-&lt;br /&gt;
 | bgcolor&lt;br /&gt;
 | 1 byte&lt;br /&gt;
 | CGA colour number of background (0) pixels; usually 0.&lt;br /&gt;
 |-&lt;br /&gt;
 | data&lt;br /&gt;
 | ''width'' × ''height'' × 14 bytes&lt;br /&gt;
 | The image data itself. The pixel data is stored in a way identical to the [[Award BIOS logo|EPAv1 format]]: character cell by character cell, left to right, top to bottom. Each character cell occupies 14 bytes: the first byte corresponds to the first row of the cell, and the most significant bit corresponds to the leftmost pixel.&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
== Converter ==&lt;br /&gt;
The following C99 program converts a GLE image to [[XPM]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
#include &amp;lt;errno.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
struct gle_header {&lt;br /&gt;
	char    magic[3];&lt;br /&gt;
	uint8_t reserved; /* = 1 */&lt;br /&gt;
	uint8_t width;&lt;br /&gt;
	uint8_t height;&lt;br /&gt;
	uint8_t fgcolor;&lt;br /&gt;
	uint8_t bgcolor;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
static const uint_least32_t cga_palette[16] = {&lt;br /&gt;
	0x000000, 0x0000aa, 0x00aa00, 0x00aaaa,&lt;br /&gt;
	0xaa0000, 0xaa00aa, 0xaa5500, 0xaaaaaa,&lt;br /&gt;
	0x555555, 0x5555ff, 0x55ff55, 0x55ffff,&lt;br /&gt;
	0xff5555, 0xff55ff, 0xffff55, 0xffffff,&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char *argv[]) {&lt;br /&gt;
	if (!argv[1]) {&lt;br /&gt;
		fprintf(stderr, &amp;quot;usage: %s $filename\n&amp;quot;, argv[0]);&lt;br /&gt;
		return 1;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	FILE *inf = fopen(argv[1], &amp;quot;rb&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
	struct gle_header header;&lt;br /&gt;
	char magic[3];&lt;br /&gt;
	if (!fread(&amp;amp;header, sizeof(header), 1, inf)) {&lt;br /&gt;
		if (feof(inf))&lt;br /&gt;
			fprintf(stderr, &amp;quot;%s: %s: cannot read header: premature end of file\n&amp;quot;, argv[0], argv[1]);			&lt;br /&gt;
		else&lt;br /&gt;
			fprintf(stderr, &amp;quot;%s: %s: cannot read header: %s [%d]\n&amp;quot;, argv[0], argv[1], strerror(errno), errno);&lt;br /&gt;
		return 1;&lt;br /&gt;
	}&lt;br /&gt;
	if (memcmp(header.magic, &amp;quot;GLE&amp;quot;, 3)) {&lt;br /&gt;
		fprintf(stderr, &amp;quot;%s: %s: magic number mismatch\n&amp;quot;, argv[0], argv[1]);&lt;br /&gt;
		return 1;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	if (header.reserved != 1) {&lt;br /&gt;
		fprintf(stderr, &amp;quot;%s: %s: reserved byte == %u (!= 1), conversion may fail\n&amp;quot;, argv[0], argv[1], header.reserved);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	uint8_t bitmap[header.width * header.height * 14];&lt;br /&gt;
	if (!fread(bitmap, sizeof(bitmap), 1, inf)) {&lt;br /&gt;
		if (feof(inf))&lt;br /&gt;
			fprintf(stderr, &amp;quot;%s: %s: cannot read bitmap data: premature end of file\n&amp;quot;, argv[0], argv[1]);			&lt;br /&gt;
		else&lt;br /&gt;
			fprintf(stderr, &amp;quot;%s: %s: cannot read bitmap data: %s [%d]\n&amp;quot;, argv[0], argv[1], strerror(errno), errno);&lt;br /&gt;
		return 1;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	printf(&amp;quot;/* XPM */\n&amp;quot;);&lt;br /&gt;
	printf(&amp;quot;static char *gle[] = {\n&amp;quot;);&lt;br /&gt;
	printf(&amp;quot;\&amp;quot;%u %u 2 1 \&amp;quot;,\n&amp;quot;, header.width * 8, header.height * 14);&lt;br /&gt;
	printf(&amp;quot;\&amp;quot;  c #%06x\&amp;quot;,\n&amp;quot;, cga_palette[header.bgcolor]);&lt;br /&gt;
	printf(&amp;quot;\&amp;quot;@ c #%06x\&amp;quot;,\n&amp;quot;, cga_palette[header.fgcolor]);&lt;br /&gt;
&lt;br /&gt;
	for (size_t y = 0; y &amp;lt; 14 * header.height; ++y) {&lt;br /&gt;
		printf(&amp;quot;\&amp;quot;&amp;quot;);&lt;br /&gt;
		for (size_t x = 0; x &amp;lt; header.width; ++x) {&lt;br /&gt;
			uint8_t b = bitmap[(y - y % 14) * header.width + 14 * x + (y % 14)];&lt;br /&gt;
			printf(&amp;quot;%c%c%c%c%c%c%c%c&amp;quot;,&lt;br /&gt;
				(b &amp;gt;&amp;gt; 7)     ? '@' : ' ',&lt;br /&gt;
				(b &amp;gt;&amp;gt; 6) &amp;amp; 1 ? '@' : ' ',&lt;br /&gt;
				(b &amp;gt;&amp;gt; 5) &amp;amp; 1 ? '@' : ' ',&lt;br /&gt;
				(b &amp;gt;&amp;gt; 4) &amp;amp; 1 ? '@' : ' ',&lt;br /&gt;
				(b &amp;gt;&amp;gt; 3) &amp;amp; 1 ? '@' : ' ',&lt;br /&gt;
				(b &amp;gt;&amp;gt; 2) &amp;amp; 1 ? '@' : ' ',&lt;br /&gt;
				(b &amp;gt;&amp;gt; 1) &amp;amp; 1 ? '@' : ' ',&lt;br /&gt;
				(b     ) &amp;amp; 1 ? '@' : ' '&lt;br /&gt;
			);&lt;br /&gt;
		}&lt;br /&gt;
		printf(&amp;quot;\&amp;quot;,\n&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	printf(&amp;quot;};\n&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
	return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Felix</name></author>	</entry>

	</feed>