<?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=Universal_Machine_%28ICFP_programming_contest_2006%29</id>
		<title>Universal Machine (ICFP programming contest 2006) - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://fileformats.archiveteam.org/index.php?action=history&amp;feed=atom&amp;title=Universal_Machine_%28ICFP_programming_contest_2006%29"/>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/index.php?title=Universal_Machine_(ICFP_programming_contest_2006)&amp;action=history"/>
		<updated>2026-04-17T19:00:35Z</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=Universal_Machine_(ICFP_programming_contest_2006)&amp;diff=28150&amp;oldid=prev</id>
		<title>Jsummers at 19:53, 6 June 2017</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/index.php?title=Universal_Machine_(ICFP_programming_contest_2006)&amp;diff=28150&amp;oldid=prev"/>
				<updated>2017-06-06T19:53:38Z</updated>
		
		<summary type="html">&lt;p&gt;&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 19:53, 6 June 2017&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 31:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 31:&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;/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;/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;[[Category:CMU]]&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;[[Category:CMU]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Category:&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Geek humor&lt;/del&gt;]]&lt;/div&gt;&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;[[Category:&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Humor&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=Universal_Machine_(ICFP_programming_contest_2006)&amp;diff=14627&amp;oldid=prev</id>
		<title>Dan Tobias at 00:20, 3 November 2013</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/index.php?title=Universal_Machine_(ICFP_programming_contest_2006)&amp;diff=14627&amp;oldid=prev"/>
				<updated>2013-11-03T00:20:22Z</updated>
		
		<summary type="html">&lt;p&gt;&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 00:20, 3 November 2013&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 15:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 15:&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;At some point upon correctly implementing the virtual machine and executing the provided program file on it, you'll be asked for a decryption key; during the contest separate keys were assigned to each team, but for the public use of the files now you are supposed to use &amp;lt;code&amp;gt;(\b.bb)(\v.vv)06FHPVboundvarHRAk&amp;lt;/code&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;At some point upon correctly implementing the virtual machine and executing the provided program file on it, you'll be asked for a decryption key; during the contest separate keys were assigned to each team, but for the public use of the files now you are supposed to use &amp;lt;code&amp;gt;(\b.bb)(\v.vv)06FHPVboundvarHRAk&amp;lt;/code&amp;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;/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;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;If everything goes well, you'll end up in a [[Unix]]-ish command line shell with access to a filesystem that includes a program in a variety of [[BASIC]] that uses only Roman numerals, which needs to be debugged (among other issues, you need to make sure it never produces a value of zero, since there is no Roman numeral for it and thus the program crashes with an error). Solving this will point you to the next task.&lt;/div&gt;&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;If everything goes well, you'll end up in a [[Unix]]-ish command line shell with access to a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[&lt;/ins&gt;filesystem&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]] &lt;/ins&gt;that includes a program in a variety of [[BASIC]] that uses only &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[&lt;/ins&gt;Roman numerals&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]]&lt;/ins&gt;, which needs to be debugged (among other issues, you need to make sure it never produces a value of zero, since there is no Roman numeral for it and thus the program crashes with an error). Solving this will point you to the next task.&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;/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;/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;== Virtual machine spec ==&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;== Virtual machine spec ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dan Tobias</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/index.php?title=Universal_Machine_(ICFP_programming_contest_2006)&amp;diff=14626&amp;oldid=prev</id>
		<title>Dan Tobias at 21:56, 2 November 2013</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/index.php?title=Universal_Machine_(ICFP_programming_contest_2006)&amp;diff=14626&amp;oldid=prev"/>
				<updated>2013-11-02T21:56:18Z</updated>
		
		<summary type="html">&lt;p&gt;&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 21:56, 2 November 2013&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 5:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 5:&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;|released=2006&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;|released=2006&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;}}&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;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The '''Universal Machine''' was a virtual machine which participants in the ICFP programming contest of 2006 needed to implement as the first step in a complicated series of programming achievements, each of which unlocked clues about how to proceed from there. This implementation was needed to run programs provided to the participants in .um and .umz files (the latter being self-extracting archives which expanded upon execution in the virtual machine). A detailed spec was given. The machine supposedly duplicated an ancient computing device that operated with sandstone tablets thousands of years ago in ancient Pittsburgh. The contest was hosted by Carnegie Mellon Unversity in Pittsburgh, but participants could be anywhere in the world, submitting their results electronically. The contest is long-finished now, but the materials are still available for anybody who wants to try to solve it.&lt;/div&gt;&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;The '''Universal Machine''' was a virtual machine which participants in the ICFP programming contest of 2006 &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;(Cult of the Bound Variable) &lt;/ins&gt;needed to implement as the first step in a complicated series of programming achievements, each of which unlocked clues about how to proceed from there. This implementation was needed to run programs provided to the participants in .um and .umz files (the latter being self-extracting archives which expanded upon execution in the virtual machine). A detailed spec was given. The machine supposedly duplicated an ancient computing device that operated with sandstone tablets thousands of years ago in ancient Pittsburgh. The contest was hosted by Carnegie Mellon Unversity in Pittsburgh, but participants could be anywhere in the world, submitting their results electronically. The contest is long-finished now, but the materials are still available for anybody who wants to try to solve it.&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;/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;/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;== Format ==&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;== Format ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dan Tobias</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/index.php?title=Universal_Machine_(ICFP_programming_contest_2006)&amp;diff=14625&amp;oldid=prev</id>
		<title>Dan Tobias: /* Format */</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/index.php?title=Universal_Machine_(ICFP_programming_contest_2006)&amp;diff=14625&amp;oldid=prev"/>
				<updated>2013-11-02T21:19:48Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Format&lt;/span&gt;&lt;/span&gt;&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 21:19, 2 November 2013&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 9:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 9:&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;== Format ==&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;== Format ==&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;/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;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The Universal Machine is a Turing-complete device that stores 32-bit values on a series of platters, some of which are designated as registers, some as program memory, and some as data storage. Input and output is done a single 8-bit character at a time.&lt;/div&gt;&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;The Universal Machine is a Turing-complete device that stores 32-bit values on a series of platters, some of which are designated as registers, some as program memory, and some as data storage. Input and output &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;to the outside world &lt;/ins&gt;is done a single 8-bit character at a time.&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;/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;/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;Because it is a 32-bit machine, the files for it consist of sequences of 32-bit (4-byte) values, stored in [[Endianness|big-endian]] fashion. The machine specs designate which bits of a value correspond to program instructions and which are data values or register references that the instruction operates on, for values that are part of a program.&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;Because it is a 32-bit machine, the files for it consist of sequences of 32-bit (4-byte) values, stored in [[Endianness|big-endian]] fashion. The machine specs designate which bits of a value correspond to program instructions and which are data values or register references that the instruction operates on, for values that are part of a program.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dan Tobias</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/index.php?title=Universal_Machine_(ICFP_programming_contest_2006)&amp;diff=14624&amp;oldid=prev</id>
		<title>Dan Tobias: /* Format */</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/index.php?title=Universal_Machine_(ICFP_programming_contest_2006)&amp;diff=14624&amp;oldid=prev"/>
				<updated>2013-11-02T20:34:35Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Format&lt;/span&gt;&lt;/span&gt;&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 20:34, 2 November 2013&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 15:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 15:&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;At some point upon correctly implementing the virtual machine and executing the provided program file on it, you'll be asked for a decryption key; during the contest separate keys were assigned to each team, but for the public use of the files now you are supposed to use &amp;lt;code&amp;gt;(\b.bb)(\v.vv)06FHPVboundvarHRAk&amp;lt;/code&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;At some point upon correctly implementing the virtual machine and executing the provided program file on it, you'll be asked for a decryption key; during the contest separate keys were assigned to each team, but for the public use of the files now you are supposed to use &amp;lt;code&amp;gt;(\b.bb)(\v.vv)06FHPVboundvarHRAk&amp;lt;/code&amp;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;/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;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;If everything goes well, you'll end up in a [[Unix]]-ish command line shell with access to a filesystem that includes a program in a variety of BASIC that uses only Roman numerals, which needs to be debugged (among other issues, you need to make sure it never produces a value of zero, since there is no Roman numeral for it and thus the program crashes with an error). Solving this will point you to the next task.&lt;/div&gt;&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;If everything goes well, you'll end up in a [[Unix]]-ish command line shell with access to a filesystem that includes a program in a variety of &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[&lt;/ins&gt;BASIC&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]] &lt;/ins&gt;that uses only Roman numerals, which needs to be debugged (among other issues, you need to make sure it never produces a value of zero, since there is no Roman numeral for it and thus the program crashes with an error). Solving this will point you to the next task.&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;/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;/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;== Virtual machine spec ==&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;== Virtual machine spec ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dan Tobias</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/index.php?title=Universal_Machine_(ICFP_programming_contest_2006)&amp;diff=14621&amp;oldid=prev</id>
		<title>Dan Tobias at 20:32, 2 November 2013</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/index.php?title=Universal_Machine_(ICFP_programming_contest_2006)&amp;diff=14621&amp;oldid=prev"/>
				<updated>2013-11-02T20:32:19Z</updated>
		
		<summary type="html">&lt;p&gt;&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 20:32, 2 November 2013&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 29:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 29:&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;* [http://www.boundvariable.org/task.shtml Task description page with all the info you need to get started]&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;* [http://www.boundvariable.org/task.shtml Task description page with all the info you need to get started]&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;* [http://www.youtube.com/watch?v=KjLLEMYK5g8 Video (with lots of spoilers if you haven't solved it yet)]&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;* [http://www.youtube.com/watch?v=KjLLEMYK5g8 Video (with lots of spoilers if you haven't solved it yet)]&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:CMU]]&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:Geek humor]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dan Tobias</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/index.php?title=Universal_Machine_(ICFP_programming_contest_2006)&amp;diff=14620&amp;oldid=prev</id>
		<title>Dan Tobias: Created page with &quot;{{FormatInfo |formattype=electronic |subcat=Executables |extensions={{ext|um}}, {{ext|umz}} |released=2006 }} The '''Universal Machine''' was a virtual machine which participa...&quot;</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/index.php?title=Universal_Machine_(ICFP_programming_contest_2006)&amp;diff=14620&amp;oldid=prev"/>
				<updated>2013-11-02T20:31:43Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;{{FormatInfo |formattype=electronic |subcat=Executables |extensions={{ext|um}}, {{ext|umz}} |released=2006 }} The &amp;#039;&amp;#039;&amp;#039;Universal Machine&amp;#039;&amp;#039;&amp;#039; was a virtual machine which participa...&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;
|formattype=electronic&lt;br /&gt;
|subcat=Executables&lt;br /&gt;
|extensions={{ext|um}}, {{ext|umz}}&lt;br /&gt;
|released=2006&lt;br /&gt;
}}&lt;br /&gt;
The '''Universal Machine''' was a virtual machine which participants in the ICFP programming contest of 2006 needed to implement as the first step in a complicated series of programming achievements, each of which unlocked clues about how to proceed from there. This implementation was needed to run programs provided to the participants in .um and .umz files (the latter being self-extracting archives which expanded upon execution in the virtual machine). A detailed spec was given. The machine supposedly duplicated an ancient computing device that operated with sandstone tablets thousands of years ago in ancient Pittsburgh. The contest was hosted by Carnegie Mellon Unversity in Pittsburgh, but participants could be anywhere in the world, submitting their results electronically. The contest is long-finished now, but the materials are still available for anybody who wants to try to solve it.&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
&lt;br /&gt;
The Universal Machine is a Turing-complete device that stores 32-bit values on a series of platters, some of which are designated as registers, some as program memory, and some as data storage. Input and output is done a single 8-bit character at a time.&lt;br /&gt;
&lt;br /&gt;
Because it is a 32-bit machine, the files for it consist of sequences of 32-bit (4-byte) values, stored in [[Endianness|big-endian]] fashion. The machine specs designate which bits of a value correspond to program instructions and which are data values or register references that the instruction operates on, for values that are part of a program.&lt;br /&gt;
&lt;br /&gt;
At some point upon correctly implementing the virtual machine and executing the provided program file on it, you'll be asked for a decryption key; during the contest separate keys were assigned to each team, but for the public use of the files now you are supposed to use &amp;lt;code&amp;gt;(\b.bb)(\v.vv)06FHPVboundvarHRAk&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If everything goes well, you'll end up in a [[Unix]]-ish command line shell with access to a filesystem that includes a program in a variety of BASIC that uses only Roman numerals, which needs to be debugged (among other issues, you need to make sure it never produces a value of zero, since there is no Roman numeral for it and thus the program crashes with an error). Solving this will point you to the next task.&lt;br /&gt;
&lt;br /&gt;
== Virtual machine spec ==&lt;br /&gt;
* [http://www.boundvariable.org/um-spec.txt The spec is here]&lt;br /&gt;
&lt;br /&gt;
== Sample files ==&lt;br /&gt;
* [http://www.boundvariable.org/codex.umz codex.umz]&lt;br /&gt;
* [http://www.boundvariable.org/sandmark.umz sandmark.umz]&lt;br /&gt;
* [http://www.boundvariable.org/um.um um.um]&lt;br /&gt;
&lt;br /&gt;
== Other links ==&lt;br /&gt;
* [http://www.boundvariable.org/ Programming contest main page]&lt;br /&gt;
* [http://www.boundvariable.org/task.shtml Task description page with all the info you need to get started]&lt;br /&gt;
* [http://www.youtube.com/watch?v=KjLLEMYK5g8 Video (with lots of spoilers if you haven't solved it yet)]&lt;/div&gt;</summary>
		<author><name>Dan Tobias</name></author>	</entry>

	</feed>