Renamed `ioccc.ico` to `favicon.ico`. Correctly added use of `favicon.ico` to all constructed HTML headers. Fixed the smart quote in HTML elements problem. Moved HTML "DO NOT EDIT" comments down below at the bottom of the HTML phase 1 section. According to to the Nu Html Checker, a charset attribute on a meta element found after the first 1024 bytes. Changed `bin/md2html.sh` VERSION from "1.1.3 2024-03-28" to "1.2 2024-03-30". Improved `bin/gen-status.sh` to adjust the "status_update" value only when the "contest_status" is changed. Performed a `make www` to perform and test the above under macOS.
394 lines
23 KiB
HTML
394 lines
23 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>1991/brnstnd - Best Of Show</title>
|
||
<link rel="icon" type="image/x-icon" href="../../favicon.ico">
|
||
<meta name="description" content="1991 IOCCC entry brnstnd - Best Of Show">
|
||
<meta name="keywords" content="IOCCC, 1991, IOCCC 1991, IOCCC entry, brnstnd, Best Of Show">
|
||
</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: 1991/brnstnd/README.md -->
|
||
<!-- -->
|
||
|
||
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
||
<!-- !!! Do not modify this web page, instead modify the file: 1991/brnstnd/README.md !!! -->
|
||
<!-- !!! Do not modify this web page, instead modify the file: 1991/brnstnd/README.md !!! -->
|
||
<!-- !!! Do not modify this web page, instead modify the file: 1991/brnstnd/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>1991/brnstnd - Best Of Show</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="../ant/index.html">← ant</a>
|
||
<a class="Left" href="../index.html">↑ 1991 ↑</a>
|
||
<a class="Left" href="../buzzard/index.html">buzzard →</a>
|
||
<a class="Right" href="https://github.com/ioccc-src/temp-test-ioccc/1991/brnstnd/brnstnd.c">C code</a>
|
||
<a class="Right" href="https://github.com/ioccc-src/temp-test-ioccc/1991/brnstnd/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#Daniel_J_Bernstein">Daniel J. Bernstein</a><br>
|
||
Location: <a href="../../location.html#US">US</a> - <em>United States of America</em> (<em>United States</em>)
|
||
<br><br></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>
|
||
<div class="sourceCode" id="cb1"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> all</span></code></pre></div>
|
||
<h2 id="try">Try:</h2>
|
||
<div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.sh</span></span>
|
||
<span id="cb2-2"><a href="#cb2-2" aria-hidden="true" tabindex="-1"></a></span>
|
||
<span id="cb2-3"><a href="#cb2-3" aria-hidden="true" tabindex="-1"></a><span class="ex">./sorta</span> <span class="op"><</span> sorta.itailrec</span></code></pre></div>
|
||
<h2 id="judges-remarks">Judges’ remarks:</h2>
|
||
<p>For info on more examples, read the <a href="sorta.README.html">sorta.README.html</a> web page.</p>
|
||
<p>The author wished to win the “most useful program” award and documented this in
|
||
the source code. The judges were unmoved by this blatant attempt to influence
|
||
the contest and rejected this idea… so we gave it the “Best of Show”
|
||
instead!!</p>
|
||
<p>NOTE: One should remove the final trailing newline to obtain the
|
||
original source file. This step is not needed to compile
|
||
this entry.</p>
|
||
<p>To have a chance to compile under a modern CPP, we had to
|
||
replace <code>#D</code> with <code>#define</code>.</p>
|
||
<h2 id="authors-remarks">Author’s remarks:</h2>
|
||
<p>This is an interpreter for the programming language SORTA, a systems
|
||
and numerical programming language with features sorta from C, sorta
|
||
from FORTH, and sorta from Ada.</p>
|
||
<p>SORTA lets you manipulate files and spawn programs easily, has bitwise
|
||
operators, and gives you absolutely brilliant error messages like ‘?’
|
||
(that’s the C bit). SORTA programs work with a stack (that’s the FORTH
|
||
bit)—actually two stacks, one for integers and one for strings. And
|
||
all SORTA operations are strongly typed, detect practically any failure,
|
||
and garbage-collect (that’s the Ada bit).</p>
|
||
<p>SORTA also contains features you might not expect from such a small
|
||
interpreter: arbitrary-length string input and concatenation, for
|
||
instance, not to mention infinite-depth tail recursion.</p>
|
||
<p>SORTA ignores its arguments (though it makes them available to the
|
||
script); it takes all commands, character by character, from its
|
||
standard input. Unrecognized commands are repeated with a ‘?’.</p>
|
||
<p>SORTA maintains an <code>i</code> stack for integers and an <code>s</code> stack for strings. It also
|
||
keeps track of <code>programs</code>, one for each character. Operations are silently
|
||
ignored if the relevant stacks are too low, except as noted for <code>s</code>, <code>S</code>, and
|
||
<code>!</code>. If the <code>i</code> stack or <code>s</code> stack (or the stack of buffered macro commands)
|
||
grows too high, SORTA will exit silently with exit code 2. (Compile parameter
|
||
<code>-Do=250</code> controls what ‘too high’ means; you should not make <code>o</code> larger than
|
||
250.) I don’t think it’s possible to crash the interpreter.</p>
|
||
<p>Here, then, is the SORTA programming language. All non-digits delimit
|
||
numeric constants. Spaces and newlines are ignored except as numeric
|
||
delimiters.</p>
|
||
<h3 id="basic-operations">Basic operations</h3>
|
||
<ul>
|
||
<li><code>q</code>: quit</li>
|
||
<li><code>number</code>: push that number on top of the <code>i</code> stack</li>
|
||
<li><code>"string"</code>: push that string on top of the <code>s</code> stack, no length limit</li>
|
||
<li><code>[string]</code>: push that string on top of the <code>s</code> stack, no length limit</li>
|
||
<li><code>#</code>: make top of <code>i</code> stack non-destructively in ASCII, push result onto <code>s</code> stack</li>
|
||
<li><code>`</code>: print top of <code>s</code> stack non-destructively</li>
|
||
<li><code>$</code>: print top of <code>s</code> stack non-destructively without newline</li>
|
||
<li><code>d</code>: drop (pop) top of <code>i</code> stack</li>
|
||
<li><code>D</code>: dup (duplicate) top of <code>i</code> stack</li>
|
||
<li><code>'</code>: dup top of <code>s</code> stack</li>
|
||
<li><code>s</code>: pop top of <code>i</code> stack. If it is <code>n</code>, swap <code>(n+1)</code>th-top of <code>i</code> stack with top.
|
||
<code>1s</code>, for example, swaps the top two elements; <code>2s</code> swaps the top with the
|
||
third down; etc. This always pops the top of the <code>i</code> stack, even upon
|
||
failure.</li>
|
||
<li><code>S</code>: pop top of <code>i</code> stack, then act just like <code>s</code> but upon <code>s</code> stack</li>
|
||
<li><code>l</code>: pop top of <code>s</code> stack, push its length onto <code>i</code> stack</li>
|
||
<li><code>a</code>: push argc onto <code>i</code> stack</li>
|
||
<li><code>A</code>: pop top of <code>i</code> stack, push <code>argv[i]</code> on top of <code>s</code> stack</li>
|
||
<li><code>T</code>: concatenate top two elements of <code>s</code> stack</li>
|
||
<li><code>_</code>: negate top of <code>i</code> stack</li>
|
||
<li><code>+</code>: pop top two elements of <code>i</code> stack, add, push back sum</li>
|
||
<li><code>*</code>: pop top two elements of <code>i</code> stack, multiply, push back product</li>
|
||
<li><code>/</code>: pop top two elements of <code>i</code> stack, divide, push back quotient</li>
|
||
<li><code>></code>: pop top two elements of <code>i</code> stack, compare, push back 1 or 0 as in C</li>
|
||
<li><code>&</code>: pop top two elements of <code>i</code> stack, NAND, push back bitwise result
|
||
Note that NAND is sufficient to construct all bitwise operations, as
|
||
demonstrated by <code>icalc</code> in <a href="sorta.README.html">sorta.README.html</a>.</li>
|
||
</ul>
|
||
<h3 id="system-operations">System operations</h3>
|
||
<ul>
|
||
<li><code>o</code>: pop top of <code>s</code> stack and top two of <code>i</code> stack; <code>open(s1,i2,i1);</code> leave
|
||
result on <code>i</code> stack</li>
|
||
<li><code>O</code>: pop top of <code>i</code> stack, <code>close()</code> it</li>
|
||
<li><code>u</code>: pop top of <code>i</code> stack, <code>dup()</code> it, push result back on</li>
|
||
<li><code>F</code>: <code>fork()</code>, push result on <code>i</code> stack. This is not always safe while SORTA is
|
||
reading keyboard input or a script, as the forked programs share file
|
||
descriptors. It is always safe inside a program (see below).</li>
|
||
<li><code>P</code>: <code>pipe()</code>, push two ends <code><p0> <p1></code> onto <code>i</code> stack. In case of trouble,
|
||
<code>push <?> <-1></code> onto <code>i</code> stack.</li>
|
||
<li><code>w</code>: <code>wait()</code>, push successful result (or <code>-1</code> if no children) on <code>i</code> stack</li>
|
||
<li><code>!</code>: <code>execvp()</code> top of the <code>s</code> stack. Arguments are the next things down on
|
||
the <code>s</code> stack, in reverse order from popping; the first character of
|
||
each string is lopped off. There must be an empty string somewhere
|
||
in the <code>s</code> stack to terminate the argument list. If the <code>execve()</code>
|
||
fails, any operation involving current members of the <code>s</code> stack has
|
||
undefined effects, and <code>-1</code> is pushed onto the <code>i</code> stack.</li>
|
||
</ul>
|
||
<h3 id="high-level-language-operations">High-level language operations</h3>
|
||
<ul>
|
||
<li><code>:x</code>: copy the top of the <code>s</code> stack into a program labeled by character <code>x</code></li>
|
||
<li><code>=x</code>: pop the top of the <code>i</code> stack. If it was nonzero, execute the program
|
||
labeled by character <code>x</code>. Note that a digit at the end of a program
|
||
will merge with any digits after <code>=x</code>; in that case you usually want
|
||
to add a space at the end of the program.</li>
|
||
</ul>
|
||
<p>Common idioms: To drop the top of the <code>s</code> stack, <code>ld</code>. To do a <code><</code>, <code>1s></code>. To
|
||
unconditionally execute the program labeled by character <code>x</code>, <code>1=x</code> (or any
|
||
nonzero number followed by <code>=x</code>). To print the top of the <code>i</code> stack
|
||
non-destructively, <code>#</code> (or <code>#$</code> if you don’t want the newline). To
|
||
subtract, <code>_+</code>. To do mod or and or any of the other missing operations,
|
||
combine the available operations as illustrated below. To introduce a
|
||
comment, <code>[ this is a comment string which is promptly eliminated ]ld</code>.</p>
|
||
<p><code>SORTA</code>’s requirements: it wants <code>fork()</code>, <code>execvp()</code>, <code>open()</code>,
|
||
<code>close()</code>, <code>dup()</code>, <code>pipe()</code>, and <code>wait()</code>, so it obviously won’t even compile
|
||
on a non-UNIX machine. It also assumes that you have a size-256
|
||
character set and that the characters between <code>'0'</code> and <code>'9'</code> are exactly
|
||
the digits in order. It does <em>not</em> depend on ASCII, despite the code
|
||
appearance. Also note that SORTA does not attempt to declare <code>malloc()</code>,
|
||
so you will get some warnings about illegal pointer combinations. Also
|
||
note that there are unreachable statements in SORTA.</p>
|
||
<p>While the program source of course depends highly on <code>#define</code>s for
|
||
obfuscation, I like to think that this code has those little touches,
|
||
those professionally sharpened edges that mark true software
|
||
engineering. Observe, for instance, how <code>i</code> and <code>s</code> are the string and
|
||
integer stacks respectively. It’s these little things that make you
|
||
feel at home in an otherwise utterly useless piece of code. They’re
|
||
what make an obfuscation work.</p>
|
||
<p>The character pool (<code>I</code> after cpp) makes it rather painful to
|
||
see the effect of commands at a glance. I can just imagine people
|
||
spending hours bouncing between the pool and the rest of the code,
|
||
or accidentally changing the pool without realizing its importance.
|
||
Without documentation and example scripts, someone would find it
|
||
a challenge to figure out what the arrays are used for, let alone
|
||
that SORTA is a scripting language.</p>
|
||
<p>Another nice feature is that the SORTA language itself encourages you to write
|
||
not merely obfuscated but plain incomprehensible scripts (like the <a href="sorta.README.html">examples in
|
||
sorta.README.html</a> —after working with the language for a
|
||
while, I guess I can read it pretty easily, but I also think FORTH is a
|
||
beautiful language). The numbers running around everywhere will make people
|
||
think of ASCII, even though the code is not ASCII-dependent. What’s your first
|
||
thought when you see several <code>arrays[256]</code>? This is pretty standard obfuscation
|
||
otherwise. I like the way that unbalanced macro braces can throw off the reader
|
||
in <code>if(c>0){y+1]=z[c];</code>, and I had fun covering the alphabet with <code>#define</code>s,
|
||
but that’s nothing special.</p>
|
||
<p>Possible future extensions to SORTA include string extraction and
|
||
matching, reading from files into strings, and encrypting the string
|
||
pool to further confuse the judges. I don’t think I can fit this into
|
||
the size limit, unfortunately.</p>
|
||
<!--
|
||
|
||
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-1991brnstnd"><a name="inventory"></a>Inventory for 1991/brnstnd</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/1991/brnstnd/brnstnd.c">brnstnd.c</a> - entry source</li>
|
||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1991/brnstnd/Makefile">Makefile</a> - entry Makefile</li>
|
||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1991/brnstnd/brnstnd.orig.c">brnstnd.orig.c</a> - original source</li>
|
||
<li><a href="sorta.README.html">sorta.README.html</a> - SORTA language infomation</li>
|
||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1991/brnstnd/try.sh">try.sh</a> - how to run</li>
|
||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1991/brnstnd/try.txt">try.txt</a> - input data for try.sh</li>
|
||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1991/brnstnd/sorta.i2+2">sorta.i2+2</a> - SORTA source</li>
|
||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1991/brnstnd/sorta.iarg0">sorta.iarg0</a> - SORTA source</li>
|
||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1991/brnstnd/sorta.icalc">sorta.icalc</a> - SORTA source</li>
|
||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1991/brnstnd/sorta.idup">sorta.idup</a> - SORTA source</li>
|
||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1991/brnstnd/sorta.iecho">sorta.iecho</a> - SORTA source</li>
|
||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1991/brnstnd/sorta.ifact1">sorta.ifact1</a> - SORTA source</li>
|
||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1991/brnstnd/sorta.ifact2">sorta.ifact2</a> - SORTA source</li>
|
||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1991/brnstnd/sorta.ifact3">sorta.ifact3</a> - SORTA source</li>
|
||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1991/brnstnd/sorta.iio">sorta.iio</a> - SORTA source</li>
|
||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1991/brnstnd/sorta.irot13">sorta.irot13</a> - SORTA source</li>
|
||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1991/brnstnd/sorta.isleep">sorta.isleep</a> - SORTA source</li>
|
||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1991/brnstnd/sorta.itailrec">sorta.itailrec</a> - SORTA source</li>
|
||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1991/brnstnd/sorta.iwhosort">sorta.iwhosort</a> - SORTA source</li>
|
||
<li><a href="1991_brnstnd.tar.bz2">1991_brnstnd.tar.bz2</a> - download entry</li>
|
||
</ul>
|
||
<h2 id="secondary-files">Secondary files</h2>
|
||
<ul>
|
||
<li><a href="index.html">index.html</a> - entry home page</li>
|
||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1991/brnstnd/README.md">README.md</a> - markdown source for index.html</li>
|
||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1991/brnstnd/.entry.json">.entry.json</a> - description of entry in JSON</li>
|
||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1991/brnstnd/.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>
|
||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1991/brnstnd/sorta.README.md">sorta.README.md</a> - markdown source for sorta.README.html</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>Copyright and CC BY-SA 4.0 License</h2>
|
||
<p>This file and web page is:</p>
|
||
<blockquote><b>Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.</b></p></blockquote>
|
||
<p>You are free to share and adapt this file under the terms of this license:</p>
|
||
<blockquote><b>Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)</b></blockquote>
|
||
<p>For more information, see:</p>
|
||
<blockquote><a
|
||
href="https://creativecommons.org/licenses/by-sa/4.0/">https://creativecommons.org/licenses/by-sa/4.0/</a></blockquote>
|
||
<h2>Coda</h2>
|
||
<p><a href="https://validator.w3.org/nu/?doc=https%3A%2F%2Fioccc-src.github.io%2Ftemp-test-ioccc%2F1991%2Fbrnstnd%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 -->
|