We improve the `inc/footer.default.html` file to make
the _Copyright and CC BY-SA 4.0 License_ clear.
We add `license.md` and generate `license.html` (via `make
gen_top_html`) so that key features and terms of the _Copyright and
CC BY-SA 4.0 License_ are accessible.
Add CC BY-SA 4.0 license images into the `png/` directory.
FYI: We use the license to allow the open use of IOCCC entry code,
and at the same time, we help ensure that those working on the IOCCC
have proper Attribution including, of course, the IOCCC winners
themselves! The _Copyright and CC BY-SA 4.0 License_ help ensure
that everyone may enjoy the IOCCC.
Added '#copyright' to all generated HTML pages so that the
_Copyright and CC BY-SA 4.0 License_ may be reached.
Changed `bin/gen-top-html.sh` VERSION from "1.2.2 2024-03-26"
to "1.2.3 2024-04-12".
Fix `bin/gen-sitemap.sh` to remove requirement of `ioccc.tar.bz2`.
Changed `bin/gen-sitemap.sh` VERSION from "1.3.4 2024-03-27"
to "1.3.5 2024-04-13".
Perform `make www sitemap` to perform the above.
We also give a _hint_ as to the next project.
TODO: Complete that next project we are _hinting_ at.
TODO: Review the work being done by a web designer to see
how their work might be incorporated into the web site.
375 lines
18 KiB
HTML
375 lines
18 KiB
HTML
<!DOCTYPE html>
|
||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||
<!-- START: two lines up starts content from: inc/top.default.html -->
|
||
|
||
<!-- END: this line ends content from: inc/top.default.html -->
|
||
<!-- START: this line starts content from: inc/head.default.html -->
|
||
|
||
<head>
|
||
<link rel="stylesheet" href="../../ioccc.css">
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
|
||
<title>1992/imc - Best Output</title>
|
||
<link rel="icon" type="image/x-icon" href="../../favicon.ico">
|
||
<meta name="description" content="1992 IOCCC entry imc - Best Output">
|
||
<meta name="keywords" content="IOCCC, 1992, IOCCC 1992, IOCCC entry, imc, Best Output">
|
||
</head>
|
||
|
||
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
||
<!-- !!! DO NOT MODIFY THIS FILE - This file is generated by a tool !!! -->
|
||
<!-- !!! DO NOT MODIFY THIS FILE - This file is generated by a tool !!! -->
|
||
<!-- !!! DO NOT MODIFY THIS FILE - This file is generated by a tool !!! -->
|
||
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
||
|
||
<!-- END: this line ends content from: inc/head.default.html -->
|
||
|
||
<!-- -->
|
||
<!-- This web page was formed via the tool: bin/readme2index.sh -->
|
||
<!-- The content of main section of this web page came from: 1992/imc/README.md -->
|
||
<!-- -->
|
||
|
||
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
||
<!-- !!! Do not modify this web page, instead modify the file: 1992/imc/README.md !!! -->
|
||
<!-- !!! Do not modify this web page, instead modify the file: 1992/imc/README.md !!! -->
|
||
<!-- !!! Do not modify this web page, instead modify the file: 1992/imc/README.md !!! -->
|
||
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
||
|
||
<!-- Markdown content was converted into HTML via the tool: bin/md2html.sh -->
|
||
|
||
<!-- START: this line starts content from: inc/body.default.html -->
|
||
|
||
<body>
|
||
|
||
<!-- END: this line ends content from: inc/body.default.html -->
|
||
<!-- START: this line starts content from: inc/header.default.html -->
|
||
|
||
<div class="header">
|
||
<img src="../../png/ioccc.png" alt="IOCCC image by Matt Zucker" width=300 height=110>
|
||
<h1>The International Obfuscated C Code Contest</h1>
|
||
<h2>1992/imc - Best Output</h2>
|
||
</div>
|
||
|
||
<!-- END: this line ends content from: inc/header.default.html -->
|
||
<!-- START: this line starts content from: inc/topnav.mid.html -->
|
||
|
||
<div class="topnav">
|
||
<a class="Left" href="../gson/index.html">← gson</a>
|
||
<a class="Left" href="../index.html">↑ 1992 ↑</a>
|
||
<a class="Left" href="../kivinen/index.html">kivinen →</a>
|
||
<a class="Right" href="https://github.com/ioccc-src/temp-test-ioccc/1992/imc/imc.c">C code</a>
|
||
<a class="Right" href="https://github.com/ioccc-src/temp-test-ioccc/1992/imc/Makefile">Makefile</a>
|
||
<a class="Right" href="#inventory">Inventory</a>
|
||
</div>
|
||
|
||
<!-- END: this line ends content from: inc/topnav.mid.html -->
|
||
<!-- START: this line starts content from: inc/begin-row.default.html -->
|
||
|
||
<div class="row">
|
||
|
||
<!-- END: this line ends content from: inc/begin-row.default.html -->
|
||
<!-- START: this line starts content from: inc/begin-leftcolumn.default.html -->
|
||
|
||
<div class="leftcolumn">
|
||
|
||
<!-- END: this line ends content from: inc/begin-leftcolumn.default.html -->
|
||
<!-- START: this line starts content from: inc/sidenav.default.html -->
|
||
|
||
<div class="sidenav">
|
||
<a href="#content">Jump to contents</a>
|
||
</div>
|
||
<hr>
|
||
<div class="sidenav">
|
||
<a href="../../index.html">IOCCC Home</a>
|
||
<a href="../../years.html">Winning Entries</a>
|
||
<a href="../../authors.html">People who have won</a>
|
||
<a href="../../location.html">Location of authors</a>
|
||
</div>
|
||
<hr>
|
||
<div class="sidenav">
|
||
<a href="../../news.html">IOCCC News</a>
|
||
<a href="../../status.html">Contest status</a>
|
||
<a href="../../faq.html#submit">How to enter the IOCCC</a>
|
||
<a href="../../faq.html">FAQ</a>
|
||
</div>
|
||
<hr>
|
||
<div class="sidenav">
|
||
<a href="../../bugs.html">Bugs & (mis)features</a>
|
||
<a href="../../faq.html#fix_an_entry">Fixing IOCCC entries</a>
|
||
<a href="../../faq.html#fix_web_site">Fixing the web site</a>
|
||
<a href="../../faq.html#fix_author">Fixing author info</a>
|
||
<a href="../../thanks-for-help.html">Thanks for the help</a>
|
||
</div>
|
||
<hr>
|
||
<div class="sidenav">
|
||
<a href="../../judges.html">The IOCCC Judges</a>
|
||
<a href="../../contact.html">Contacting the IOCCC</a>
|
||
</div>
|
||
<hr>
|
||
<div class="sidenav">
|
||
<a href="#top">Jump to top</a>
|
||
</div>
|
||
|
||
<!-- END: this line ends content from: inc/sidenav.default.html -->
|
||
<!-- START: this line starts content from: inc/end-leftcolumn.default.html -->
|
||
|
||
</div>
|
||
|
||
<!-- END: this line ends content from: inc/end-leftcolumn.default.html -->
|
||
<!-- START: this line starts content from: inc/begin-rightcolumn.default.html -->
|
||
|
||
<div class="rightcolumn">
|
||
|
||
<!-- END: this line ends content from: inc/begin-rightcolumn.default.html -->
|
||
<!-- START: this line starts content from: inc/before-content.default.html -->
|
||
|
||
<a name="content"></a>
|
||
|
||
<!-- END: this line ends content from: inc/before-content.default.html -->
|
||
<!-- START: this line starts content for HTML phase 20 by: bin/output-index-author.sh via bin/md2html.sh -->
|
||
|
||
<!-- START: this line starts content generated by: bin/output-index-author.sh -->
|
||
|
||
<h2 id="author"><a name="author"></a>Author:</h2>
|
||
<ul>
|
||
<li>Name: <a href="../../authors.html#Ian_Collier">Ian Collier</a><br>
|
||
Location: <a href="../../location.html#GB">GB</a> - <em>United Kingdom of Great Britain and Northern Ireland</em> (<em>United Kingdom</em>)</li>
|
||
</ul>
|
||
|
||
<!-- END: next line ends content generated by: bin/output-index-author.sh -->
|
||
|
||
<!-- END: this line ends content for HTML phase 20 by: bin/output-index-author.sh via bin/md2html.sh -->
|
||
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
|
||
|
||
<h2 id="to-build">To build:</h2>
|
||
<pre class="<!---sh-->"><code> make all</code></pre>
|
||
<h2 id="to-use">To use:</h2>
|
||
<pre class="<!---sh-->"><code> # text mode
|
||
./imc -text
|
||
|
||
./imc</code></pre>
|
||
<h2 id="try">Try:</h2>
|
||
<p>To see a number of options and configurations:</p>
|
||
<pre class="<!---sh-->"><code> ./try.sh</code></pre>
|
||
<h2 id="judges-remarks">Judges’ remarks:</h2>
|
||
<p>The program is more interesting to run on workstations that can make use of a
|
||
Sun raster file. Others can make use of the -text flag for character oriented
|
||
output.</p>
|
||
<p>Of course, the source (layout) is self-documenting! :-)</p>
|
||
<p>NOTE: The original winning source assumed that <code>exit(3)</code> returned a value which
|
||
cause problems for some systems where <code>exit(3)</code> returns a void. The file
|
||
<a href="imc.c">imc.c</a> has been modified to avoid this problem. The original file also
|
||
declared argc to be a <code>long</code> which was fixed.</p>
|
||
<h2 id="authors-remarks">Author’s remarks:</h2>
|
||
<h3 id="portability">Portability</h3>
|
||
<p>This program depends upon the ASCII character set, and makes certain assumptions
|
||
about the architecture. It naughtily declares the first argument to <code>main()</code> as
|
||
a <code>long</code>, and passes a pointer to <code>long</code> instead of <code>char</code> to <code>fwrite(3)</code>,
|
||
giving a length value of 32 bytes for an array of 8 <code>long</code>s. I guess that makes
|
||
this program OK on most flavours of unix, but not on PCs.</p>
|
||
<h3 id="about-the-program">About the program</h3>
|
||
<p>This program has several parameters; each of them has a default, so the
|
||
program runs happily without any parameters. If you supply an incorrect
|
||
parameter, an obfuscated error message results! :-) Should you want to
|
||
run the program without knowing what it does, then supplying the single
|
||
letter <code>t</code> as a parameter is a good move. Otherwise, direct the output
|
||
into a file. The resulting file is most useful on SunOS, where the
|
||
<code>file(1)</code> command will tell you what to do with it. For best results with
|
||
the <code>t</code> option, you may want to change the definition of the <code>I</code> macro :-)
|
||
Details appear later, though the formatting of the code is a large clue.</p>
|
||
<p>All the code in this program appears between the <code>;</code> and <code>)</code> in
|
||
<code>for(;;)</code>. That isn’t because I want to win the best one-liner, but
|
||
merely because it makes the code so much more impenetrable :-) In fact
|
||
running a pretty printer on the code hardly improves it at all. This
|
||
program has the obligatory macros with unmatched parentheses, and the
|
||
cleverly arranged macro names and parameters to spell out <code>"Ian Colliers Obfuscated C Code"</code>. If you expand macros, bear in mind that the more
|
||
complex ones are best left as macros, because they have well-defined and
|
||
nontrivial (IMHO) functions. These macros help to give the program’s
|
||
parameter format its flexibility. The parameters are sorted out in a
|
||
unique way (based on an idea by Pete Bevin) which hides very effectively
|
||
their identities (and I think that using a variable called <code>_</code> adds a nice
|
||
touch to the illegibility of the code). In this section of the code, the
|
||
data types of the numbers checked against is varied, and just because
|
||
you see a <code>,</code> doesn’t mean it has anything to do with commas! So I hope
|
||
you will agree that this program is more than a little obfuscated…</p>
|
||
<p>This is a Mandelbrot/Julia drawer. Normally it produces a monochrome
|
||
Sun-format raster file. The version of <code>xloadimage</code> we have is able to
|
||
view such files, and so is Sun’s <code>screenload</code> command. [Note: the header
|
||
contains eight 4-byte integers, the byte order in which depends upon the
|
||
machine. On Sun workstations they are stored MSB first].</p>
|
||
<p>The program may be asked to produce text output instead of a raster
|
||
file. Then the characters defined in the <code>I</code> macro will be used to create
|
||
up to 16 different shades of grey. Quite a respectable picture can be
|
||
gained by printing a <code>130x110</code> output on a <a href="https://en.wikipedia.org/wiki/Dot_matrix_printing">dot matrix 132 column
|
||
printer</a> with the linefeed
|
||
set to 7 points. Text output also gives a good picture when used in an X window
|
||
with small characters having a square aspect ratio.</p>
|
||
<p>The options accepted by the program follow. Each option is a single letter; it
|
||
may be preceded with a minus sign (or any character in <code>[!-/]</code>) and may be
|
||
followed by other letters, so for example:</p>
|
||
<ul>
|
||
<li>m</li>
|
||
<li>-m</li>
|
||
<li>mask</li>
|
||
<li>*mail</li>
|
||
</ul>
|
||
<p>all mean the same thing. Most options may be followed by one or two
|
||
numbers. These numbers may be separated from each other and from the
|
||
option by a space, or may be joined to each other with a comma, or may
|
||
be appended to the single-letter option, so</p>
|
||
<ul>
|
||
<li>-s100,200</li>
|
||
<li>size 100,200</li>
|
||
<li>-size123 100 200</li>
|
||
<li>s100 200</li>
|
||
</ul>
|
||
<p>all mean the same (note that in <code>-size123</code> all characters following the
|
||
initial <code>s</code> are ignored). Numbers need not be specified, as each has a
|
||
default value. In all cases except for <code>j</code>, <code>t</code>, and <code>s</code> whenever it
|
||
appears before <code>t</code>, specifying an option without numbers has no effect.
|
||
(specifying <code>-s -t</code> has the effect of producing text with the default
|
||
raster size; not a good idea!).</p>
|
||
<h3 id="options">Options</h3>
|
||
<p>The options of this program are:</p>
|
||
<pre><code> -centre x y (float x,y) Centre the picture at x+iy in the complex
|
||
plane (default x=0 y=0)
|
||
|
||
|
||
-factor f (float f) Use f pixels per unit of the plane (default
|
||
f=x/4 where x is the width)
|
||
|
||
|
||
-julia x y (float x,y) Draw a julia set. Use x+iy as the constant
|
||
to add after squaring (default x=0 y=0)
|
||
|
||
-limit l (int l) Use l iterations maximum (default l=128)
|
||
|
||
-mask m (int m) Use m as a mask in deciding the colour of each
|
||
pixel (see below) (default m=1)
|
||
|
||
-size x y (int x,y) Produce an x-by-y output (default for raster
|
||
x=768 y=768; default for text x=63 y=23)
|
||
|
||
-text Produce text instead of raster.</code></pre>
|
||
<p>The colour of each point is determined by taking the bitwise AND of the
|
||
number of iterations and the mask. For a raster, the point is black
|
||
(1-bit) if the result is zero, white otherwise. For text, the result of
|
||
the operation determines the greyness of the character produced, with a
|
||
blank for zero going up to a star for the maximum value. For a
|
||
four-colour picture, for example, use a mask with two bits set (e.g. 3),
|
||
and for a 16-colour picture use a mask with four bits set (e.g. 15). For
|
||
a picture with coarse detail, use a mask which ends with several zero
|
||
bits (e.g. 8).</p>
|
||
<p>While the program is creating your picture, it displays dots on the
|
||
standard error to indicate its progress (one dot per pixel line).</p>
|
||
<h3 id="example-pictures-to-try">Example pictures to try</h3>
|
||
<p>Here are a couple of good pictures to draw:</p>
|
||
<pre class="<!---sh-->"><code> ./imc -s 512,512 -f 600000 -l 512 -m 16 -c.00805,.74274 > screen1.ras
|
||
./imc -s512,512 -j-.523,-.535 > screen2.ras</code></pre>
|
||
<!--
|
||
|
||
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
|
||
|
||
You are free to share and adapt this file under the terms of this license:
|
||
|
||
Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)
|
||
|
||
For more information, see:
|
||
|
||
https://creativecommons.org/licenses/by-sa/4.0/
|
||
|
||
-->
|
||
|
||
<!-- END: this line ends content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
|
||
<!-- START: this line starts content for HTML phase 22 by: bin/output-index-inventory.sh via bin/md2html.sh -->
|
||
|
||
<!-- START: this line starts content generated by: bin/output-index-inventory.sh -->
|
||
|
||
<h1 id="inventory-for-1992imc"><a name="inventory"></a>Inventory for 1992/imc</h1>
|
||
<p><a href="#top">Jump to top</a></p>
|
||
<h2 id="primary-files">Primary files</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1992/imc/imc.c">imc.c</a> - entry source</li>
|
||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1992/imc/Makefile">Makefile</a> - entry Makefile</li>
|
||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1992/imc/imc.orig.c">imc.orig.c</a> - original source</li>
|
||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1992/imc/try.sh">try.sh</a> - how to run</li>
|
||
<li><a href="1992_imc.tar.bz2">1992_imc.tar.bz2</a> - download entry</li>
|
||
</ul>
|
||
<h2 id="secondary-files">Secondary files</h2>
|
||
<ul>
|
||
<li><a href="index.html">index.html</a> - this web page</li>
|
||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1992/imc/README.md">README.md</a> - markdown source for index.html</li>
|
||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1992/imc/.entry.json">.entry.json</a> - description of entry in JSON</li>
|
||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1992/imc/.gitignore">.gitignore</a> - list of files that should not be committed under git</li>
|
||
<li><a href=".path">.path</a> - directory path from top directory</li>
|
||
</ul>
|
||
|
||
<!-- END: next line ends content generated by: bin/output-index-inventory.sh -->
|
||
|
||
<!-- END: this line ends content for HTML phase 22 by: bin/output-index-inventory.sh via bin/md2html.sh -->
|
||
<!-- START: this line starts content from: inc/after-content.default.html -->
|
||
|
||
<!-- END: this line ends content from: inc/after-content.default.html -->
|
||
<!-- START: this line starts content from: inc/end-rightcolumn.default.html -->
|
||
|
||
</div>
|
||
|
||
<!-- END: this line ends content from: inc/end-rightcolumn.default.html -->
|
||
<!-- START: this line starts content from: inc/end-row.default.html -->
|
||
|
||
</div>
|
||
|
||
<!-- END: this line ends content from: inc/end-row.default.html -->
|
||
<!-- START: this line starts content from: inc/footer.default.html -->
|
||
|
||
<!--
|
||
|
||
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
|
||
|
||
You are free to share and adapt this file under the terms of this license:
|
||
|
||
Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)
|
||
|
||
For more information, see:
|
||
|
||
https://creativecommons.org/licenses/by-sa/4.0/
|
||
|
||
-->
|
||
|
||
<div class="footer">
|
||
<h2><a name="copyright"></a>Copyright and CC BY-SA 4.0 License</h2>
|
||
<p>All IOCCC content including this file and web page are:</p>
|
||
<b> Copyright © 1984-2024 by Landon Curt Noll. <a href="https://creativecommons.org/faq/#what-does-some-rights-reserved-mean">Some Rights Reserved</a>.</b>
|
||
<p>This work is licensed by Landon Curt Noll under:</p>
|
||
<p xmlns:cc="http://creativecommons.org/ns#" ><b><a href="https://creativecommons.org/licenses/by-sa/4.0/?ref=chooser-v1"
|
||
target="_blank" rel="license noopener noreferrer" style="display:inline-block;"> CC BY-SA 4.0
|
||
<img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;"
|
||
src="../..//svg/cc.svg"
|
||
alt="cc inside circle symbol">
|
||
<img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;"
|
||
src="../..//svg/by.svg"
|
||
alt="person inside circle symbol">
|
||
<img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;"
|
||
src="../..//svg/sa.svg"
|
||
alt="arrow looping back on itself inside circle symbol">
|
||
</a></b></p>
|
||
<p>The <b>CC BY-SA 4.0 LEGAL CODE</b> for this license is found under:</p>
|
||
<p> <b><a href="https://creativecommons.org/licenses/by-sa/4.0/legalcode.en">
|
||
https://creativecommons.org/licenses/by-sa/4.0/legalcode.en</a></b></p>
|
||
<p>You should <b>carefully review</b> all of the terms and conditions of the
|
||
<a href="https://creativecommons.org/licenses/by-sa/4.0/legalcode.en">actual license</a>
|
||
before using the licensed material.</p>
|
||
<p>You may wish to review the <b><a href="../../license.html">highlights of some of the key
|
||
features and terms</a></b> of the <a href="https://creativecommons.org/licenses/by-sa/4.0/legalcode.en">actual license</a>.</p>
|
||
<h2>Coda</h2>
|
||
<p><a href="https://validator.w3.org/nu/?doc=https%3A%2F%2Fioccc-src.github.io%2Ftemp-test-ioccc%2F1992%2Fimc%2Findex.html">Nu HTML check this web page</a></p>
|
||
<p><a href="#top">Jump to top</a> <a href="#content">Jump to Content</a> <a href="#inventory">Jump to Inventory</a></p>
|
||
</div>
|
||
|
||
<!-- END: this line ends content from: inc/footer.default.html -->
|
||
<!-- START: this line starts content from: inc/bottom.default.html -->
|
||
|
||
</body>
|
||
</html>
|
||
|
||
<!-- END: this line ends content from: inc/bottom.default.html -->
|