Merge pull request #2676 from xexyl/0611

Fixes in 2006 html files and some of 2011
This commit is contained in:
Landon Curt Noll authored and GitHub committed 2024-10-08 12:39:02 -07:00
commit c1e09c4097
18 files changed
+349 -182

No files matched your search

+17 -13
View File
@@ -147,20 +147,24 @@ as you like (as understood by the C function `isspace()`).
Supported operations and functions are: Supported operations and functions are:
``` - `+`, `-`, `*`, `/`
Operation | Description - Arithmetic operations, priority of * , / over +,- is respected.
- `<,>`
- Compares the real parts of two complex numbers (the imaginary part
is ignored). Any number of conditions is allowed, the iteration will
just stop as soon as one of them fails.
- `Abs2`
- Calculates the squared norm, i.e.: `Abs2(a+b*i)` is `(a*a+b*b)+0*i`.
- `Re`
- Extract the real part, i.e.: `Re(a+b*i)` is `a+0*i`.
- `Im`
- Extract the imaginary part, i.e.: `Im(a+b*i)` is` b+0*i`.
- `Exp`
- Calculates the complex exponential, i.e. `Exp(a+b*i)` is `e^a*(cos(b)+sin(b)*i)`.
+,-,*,/ | Arithmetic operations, priority of * , / over +,- is respected. - `Ln`
<,> | Compares the real parts of two complex numbers (the imaginary part - Calculates the principal value of the natural logarithm i.e. `Ln(a+b*i)`
| is ignored). Any number of conditions is allowed, the iteration will is `ln(a*a+b*b)/2 + atan(b/a)*i`.
| just stop as soon as one of them fails.
Abs2 | Calculates the squared norm, i.e.: Abs2(a+b*i) is (a*a+b*b)+0*i.
Re | Extract the real part, i.e.: Re(a+b*i) is a+0*i.
Im | Extract the imaginary part, i.e.: Im(a+b*i) is b+0*i.
Exp | Calculates the complex exponential, i.e. Exp(a+b*i) is e^a*(cos(b)+sin(b)*i).
Ln | Calculates the principal value of the natural logarithm
| i.e. Ln(a+b*i) is ln(a*a+b*b)/2 + atan(b/a)*i.
```
Here are a few examples of fractals you can draw: Here are a few examples of fractals you can draw:
+33 -12
View File
@@ -491,18 +491,39 @@ expression must be an assignment (<code>[variable] = [expr]</code>) or a compari
<code>&lt;</code> or <code>&gt;</code> (<code>[expr1] &lt; [expr2]</code> or <code>[expr1] &gt; [expr2]</code>), and you can add spaces <code>&lt;</code> or <code>&gt;</code> (<code>[expr1] &lt; [expr2]</code> or <code>[expr1] &gt; [expr2]</code>), and you can add spaces
as you like (as understood by the C function <code>isspace()</code>).</p> as you like (as understood by the C function <code>isspace()</code>).</p>
<p>Supported operations and functions are:</p> <p>Supported operations and functions are:</p>
<pre><code> Operation | Description <ul>
<li><code>+</code>, <code>-</code>, <code>*</code>, <code>/</code>
+,-,*,/ | Arithmetic operations, priority of * , / over +,- is respected. <ul>
&lt;,&gt; | Compares the real parts of two complex numbers (the imaginary part <li>Arithmetic operations, priority of * , / over +,- is respected.</li>
| is ignored). Any number of conditions is allowed, the iteration will </ul></li>
| just stop as soon as one of them fails. <li><code>&lt;,&gt;</code>
Abs2 | Calculates the squared norm, i.e.: Abs2(a+b*i) is (a*a+b*b)+0*i. <ul>
Re | Extract the real part, i.e.: Re(a+b*i) is a+0*i. <li>Compares the real parts of two complex numbers (the imaginary part
Im | Extract the imaginary part, i.e.: Im(a+b*i) is b+0*i. is ignored). Any number of conditions is allowed, the iteration will
Exp | Calculates the complex exponential, i.e. Exp(a+b*i) is e^a*(cos(b)+sin(b)*i). just stop as soon as one of them fails.</li>
Ln | Calculates the principal value of the natural logarithm </ul></li>
| i.e. Ln(a+b*i) is ln(a*a+b*b)/2 + atan(b/a)*i.</code></pre> <li><code>Abs2</code>
<ul>
<li>Calculates the squared norm, i.e.: <code>Abs2(a+b*i)</code> is <code>(a*a+b*b)+0*i</code>.</li>
</ul></li>
<li><code>Re</code>
<ul>
<li>Extract the real part, i.e.: <code>Re(a+b*i)</code> is <code>a+0*i</code>.</li>
</ul></li>
<li><code>Im</code>
<ul>
<li>Extract the imaginary part, i.e.: <code>Im(a+b*i)</code> is<code>b+0*i</code>.</li>
</ul></li>
<li><code>Exp</code>
<ul>
<li>Calculates the complex exponential, i.e. <code>Exp(a+b*i)</code> is <code>e^a*(cos(b)+sin(b)*i)</code>.</li>
</ul></li>
<li><code>Ln</code>
<ul>
<li>Calculates the principal value of the natural logarithm i.e. <code>Ln(a+b*i)</code>
is <code>ln(a*a+b*b)/2 + atan(b/a)*i</code>.</li>
</ul></li>
</ul>
<p>Here are a few examples of fractals you can draw:</p> <p>Here are a few examples of fractals you can draw:</p>
<ul> <ul>
<li>Mandelbrot:</li> <li>Mandelbrot:</li>
+1 -1
View File
@@ -4,7 +4,7 @@
make make
``` ```
There is an alternate version that supports arrow keys. See the [alternate There is an alternate version that supports arrow keys. See the [Alternate
code](#alternate-code) section below. code](#alternate-code) section below.
+1 -1
View File
@@ -410,7 +410,7 @@ Location: <a href="../../location.html#US">US</a> - <em>United States of America
<!-- BEFORE: 1st line of markdown file: 2006/night/README.md --> <!-- BEFORE: 1st line of markdown file: 2006/night/README.md -->
<h2 id="to-build">To build:</h2> <h2 id="to-build">To build:</h2>
<pre><code> make</code></pre> <pre><code> make</code></pre>
<p>There is an alternate version that supports arrow keys. See the <a href="#alternate-code">alternate <p>There is an alternate version that supports arrow keys. See the <a href="#alternate-code">Alternate
code</a> section below.</p> code</a> section below.</p>
<h2 id="to-use">To use:</h2> <h2 id="to-use">To use:</h2>
<pre><code> ./night</code></pre> <pre><code> ./night</code></pre>
+5 -5
View File
@@ -5,7 +5,7 @@
``` ```
We recommend the alt version so that you can see what this looked like back in 2006. We recommend the alt version so that you can see what this looked like back in 2006.
If you wish to see the original faster version see [original If you wish to see the original faster version see [Original
code](#original-code) below. code](#original-code) below.
@@ -29,7 +29,7 @@ it. To do so try:
./sloane.alt ./sloane.alt
``` ```
If you wish to make it like the original, as if the below [Original If you wish to make it like the original, as if the below [original
code](#original-code) was being used, you can do: code](#original-code) was being used, you can do:
``` <!---sh--> ``` <!---sh-->
@@ -57,13 +57,13 @@ Should you wish to see the original you may do so with the original code,
./sloane ./sloane
``` ```
WARNING: if you are easily overstimulated with fast movement or have **WARNING**: if you are easily overstimulated with fast movement or have
photosensitivity please be careful running this version and instead see the photosensitivity please be careful running this version and instead see the
above! above!
NOTE: again as above, to see what is going on, we recommend that you instead use **NOTE**: again as above, to see what is going on, we recommend that you instead use
the alternate code which we described in the [To build](#to-build) and the alternate code which we described in the [To build](#to-build) and
[try](#try) sections above. [Try](#try) sections above.
## Judges' Comments: ## Judges' Comments:
+5 -5
View File
@@ -411,7 +411,7 @@ Location: <a href="../../location.html#US">US</a> - <em>United States of America
<h2 id="to-build">To build:</h2> <h2 id="to-build">To build:</h2>
<pre><code> make alt</code></pre> <pre><code> make alt</code></pre>
<p>We recommend the alt version so that you can see what this looked like back in 2006. <p>We recommend the alt version so that you can see what this looked like back in 2006.
If you wish to see the original faster version see <a href="#original-code">original If you wish to see the original faster version see <a href="#original-code">Original
code</a> below.</p> code</a> below.</p>
<h2 id="to-use">To use:</h2> <h2 id="to-use">To use:</h2>
<pre><code> ./slone.alt</code></pre> <pre><code> ./slone.alt</code></pre>
@@ -423,7 +423,7 @@ value used in <code>usleep()</code>. The default is <code>75000</code> but you c
it. To do so try:</p> it. To do so try:</p>
<pre><code> make clobber SLEEP=70000 clobber alt <pre><code> make clobber SLEEP=70000 clobber alt
./sloane.alt</code></pre> ./sloane.alt</code></pre>
<p>If you wish to make it like the original, as if the below <a href="#original-code">Original <p>If you wish to make it like the original, as if the below <a href="#original-code">original
code</a> was being used, you can do:</p> code</a> was being used, you can do:</p>
<pre><code> make SLEEP=0 clobber alt <pre><code> make SLEEP=0 clobber alt
./sloane.alt</code></pre> ./sloane.alt</code></pre>
@@ -434,12 +434,12 @@ code</a> was being used, you can do:</p>
<pre><code> make clobber all</code></pre> <pre><code> make clobber all</code></pre>
<h3 id="original-use">Original use:</h3> <h3 id="original-use">Original use:</h3>
<pre><code> ./sloane</code></pre> <pre><code> ./sloane</code></pre>
<p>WARNING: if you are easily overstimulated with fast movement or have <p><strong>WARNING</strong>: if you are easily overstimulated with fast movement or have
photosensitivity please be careful running this version and instead see the photosensitivity please be careful running this version and instead see the
above!</p> above!</p>
<p>NOTE: again as above, to see what is going on, we recommend that you instead use <p><strong>NOTE</strong>: again as above, to see what is going on, we recommend that you instead use
the alternate code which we described in the <a href="#to-build">To build</a> and the alternate code which we described in the <a href="#to-build">To build</a> and
<a href="#try">try</a> sections above.</p> <a href="#try">Try</a> sections above.</p>
<h2 id="judges-comments">Judges’ Comments:</h2> <h2 id="judges-comments">Judges’ Comments:</h2>
<p>Looks almost good enough to eat, dunnit? I suppose you could argue that, <p>Looks almost good enough to eat, dunnit? I suppose you could argue that,
at first blush, this looks like a self-reproducing program.</p> at first blush, this looks like a self-reproducing program.</p>
+11 -7
View File
@@ -32,9 +32,9 @@ where `file` is one of:
> spirals3 spirals4 squares stars stars2<br> > spirals3 spirals4 squares stars stars2<br>
> tree tree2 tree3 tree4 triangle > tree tree2 tree3 tree4 triangle
NOTE: you cannot specify a different width from height; it's one number. **NOTE**: you cannot specify a different width from height; it's one number.
NOTE: `convert(1)` belongs to [ImageMagick](https://imagemagick.org/index.php). **NOTE**: `convert(1)` belongs to [ImageMagick](https://imagemagick.org/index.php).
## Try: ## Try:
@@ -74,11 +74,13 @@ The program should be run with the following
where: where:
``` - `m`
m = The size of the picture (picture will be m X m in size). - The size of the picture (picture will be m X m in size).
n = The number of iterations to run (More will make for a clearer picture). - `n`
ifs = The file to use as input. - The number of iterations to run (More will make for a clearer picture).
```
- `ifs`
- The file to use as input.
The program will spit out an [XBM image](https://en.wikipedia.org/wiki/X_BitMap) The program will spit out an [XBM image](https://en.wikipedia.org/wiki/X_BitMap)
on standard out. Minimal checking is done on the arguments mainly that there on standard out. Minimal checking is done on the arguments mainly that there
@@ -154,6 +156,8 @@ Included in my submission will be a tarball of some IFS files,
including one that attempts (not very well) to mimic the IOCCC logo including one that attempts (not very well) to mimic the IOCCC logo
(I figure it can't hurt to attempt to suck up, right?). (I figure it can't hurt to attempt to suck up, right?).
(**NOTE from Judges**: we extracted the files.)
I would try to explain how to create an IFS file but I am not smart I would try to explain how to create an IFS file but I am not smart
enough to condense it down to something that is coherent. enough to condense it down to something that is coherent.
+17 -5
View File
@@ -430,8 +430,8 @@ pentagons rings rings2 spirals spirals2<br>
spirals3 spirals4 squares stars stars2<br> spirals3 spirals4 squares stars stars2<br>
tree tree2 tree3 tree4 triangle</p> tree tree2 tree3 tree4 triangle</p>
</blockquote> </blockquote>
<p>NOTE: you cannot specify a different width from height; it’s one number.</p> <p><strong>NOTE</strong>: you cannot specify a different width from height; it’s one number.</p>
<p>NOTE: <code>convert(1)</code> belongs to <a href="https://imagemagick.org/index.php">ImageMagick</a>.</p> <p><strong>NOTE</strong>: <code>convert(1)</code> belongs to <a href="https://imagemagick.org/index.php">ImageMagick</a>.</p>
<h2 id="try">Try:</h2> <h2 id="try">Try:</h2>
<pre><code> ./try.sh</code></pre> <pre><code> ./try.sh</code></pre>
<p>After running the program on a few files it will ask you if you wish to run it <p>After running the program on a few files it will ask you if you wish to run it
@@ -452,9 +452,20 @@ a reasonably experienced user who can parse formats in their mind. :-)</p>
<p>The program should be run with the following</p> <p>The program should be run with the following</p>
<pre><code> ./stewart &lt;m&gt; &lt;n&gt; &lt;ifs&gt;</code></pre> <pre><code> ./stewart &lt;m&gt; &lt;n&gt; &lt;ifs&gt;</code></pre>
<p>where:</p> <p>where:</p>
<pre><code> m = The size of the picture (picture will be m X m in size). <ul>
n = The number of iterations to run (More will make for a clearer picture). <li><code>m</code>
ifs = The file to use as input.</code></pre> <ul>
<li>The size of the picture (picture will be m X m in size).</li>
</ul></li>
<li><code>n</code>
<ul>
<li>The number of iterations to run (More will make for a clearer picture).</li>
</ul></li>
<li><code>ifs</code>
<ul>
<li>The file to use as input.</li>
</ul></li>
</ul>
<p>The program will spit out an <a href="https://en.wikipedia.org/wiki/X_BitMap">XBM image</a> <p>The program will spit out an <a href="https://en.wikipedia.org/wiki/X_BitMap">XBM image</a>
on standard out. Minimal checking is done on the arguments mainly that there on standard out. Minimal checking is done on the arguments mainly that there
are 3. Wrong arguments will cause the program to bomb out.</p> are 3. Wrong arguments will cause the program to bomb out.</p>
@@ -500,6 +511,7 @@ another kind of fractal, those from the IFS:
<p>Included in my submission will be a tarball of some IFS files, <p>Included in my submission will be a tarball of some IFS files,
including one that attempts (not very well) to mimic the IOCCC logo including one that attempts (not very well) to mimic the IOCCC logo
(I figure it can’t hurt to attempt to suck up, right?).</p> (I figure it can’t hurt to attempt to suck up, right?).</p>
<p>(<strong>NOTE from Judges</strong>: we extracted the files.)</p>
<p>I would try to explain how to create an IFS file but I am not smart <p>I would try to explain how to create an IFS file but I am not smart
enough to condense it down to something that is coherent.</p> enough to condense it down to something that is coherent.</p>
<p>Basically the break down is:</p> <p>Basically the break down is:</p>
+1 -1
View File
@@ -46,7 +46,7 @@ string actually forms part of the lookup table.
Intel CC warns about the lack of a declaration for the argument to `main()`. Intel CC warns about the lack of a declaration for the argument to `main()`.
(`gcc` does not notice this though, even with `-Wall`.) But anyway it can (`gcc` does not notice this though, even with `-Wall`.) But anyway it can
easily be declared as int at the expense of 4 more characters. easily be declared as `int` at the expense of 4 more characters.
I'm not sure of the effects on a hard disk of rewriting the same file I'm not sure of the effects on a hard disk of rewriting the same file
multiple times per second for a long time. Run at your own risk! multiple times per second for a long time. Run at your own risk!
+1 -1
View File
@@ -432,7 +432,7 @@ of brackets to a minimum, and to keep the character count as low as possible.</p
string actually forms part of the lookup table.</p> string actually forms part of the lookup table.</p>
<p>Intel CC warns about the lack of a declaration for the argument to <code>main()</code>. <p>Intel CC warns about the lack of a declaration for the argument to <code>main()</code>.
(<code>gcc</code> does not notice this though, even with <code>-Wall</code>.) But anyway it can (<code>gcc</code> does not notice this though, even with <code>-Wall</code>.) But anyway it can
easily be declared as int at the expense of 4 more characters.</p> easily be declared as <code>int</code> at the expense of 4 more characters.</p>
<p>I’m not sure of the effects on a hard disk of rewriting the same file <p>I’m not sure of the effects on a hard disk of rewriting the same file
multiple times per second for a long time. Run at your own risk!</p> multiple times per second for a long time. Run at your own risk!</p>
<!-- <!--
+63 -36
View File
@@ -147,10 +147,15 @@ by the provided C.BIOS.
To get a complete [CP/M](https://en.wikipedia.org/wiki/CP/M) system, you will need the following files To get a complete [CP/M](https://en.wikipedia.org/wiki/CP/M) system, you will need the following files
from the `SOURCE` directory: from the `SOURCE` directory:
``` - `ASM.COM`
ASM.COM DDT.COM DUMP.COM ED.COM LOAD.COM - `DDT.COM`
PIP.COM STAT.COM SUBMIT.COM XSUB.COM - `DUMP.COM`
``` - `ED.COM`
- `LOAD.COM`
- `PIP.COM`
- `STAT.COM`
- `SUBMIT.COM`
- `XSUB.COM`
To import them, you must run the emulator with an argument, by To import them, you must run the emulator with an argument, by
example: example:
@@ -195,23 +200,26 @@ bit 2) and `C` (Carry, bit 0).
It is easy if your platform has `getch()`/`kbhit()` and It is easy if your platform has `getch()`/`kbhit()` and
ANSI terminal: ANSI terminal:
``` - `read`
read --> Z=kbhit()?getch():0 - `Z=kbhit()?getch():0`
write --> putchar(7[o]) - `write`
system --> nothing - `putchar(7[o])`
``` - `system`
- nothing
Notice that you'll have to do `#include <conio.h>` as well. Notice that you'll have to do `#include <conio.h>` as well.
Also add the following to trap Ctrl-C: Also add the following to trap Ctrl-C:
#include <signal.h> ``` <!---c-->
signal(SIGINT, SIG_IGN); #include <signal.h>
signal(SIGINT, SIG_IGN);
```
NOTE: this is what the [alternate code](#alternate-code) is for! **NOTE**: this is what the [alternate code](#alternate-code) is for!
NOTE from the judges: in Unix like systems `getch()` is part of curses but this **NOTE from the Judges**: in Unix like systems `getch()` is part of curses but this
is not what is needed. is not what is needed.
On PC/DOS you need to add `ANSI.SYS` to `CONFIG.SYS`. On PC/DOS you need to add `ANSI.SYS` to `CONFIG.SYS`.
@@ -238,35 +246,54 @@ main loop reads every [opcode](https://en.wikipedia.org/wiki/Opcode) and
separates them in one of three common forms. A lot of ternary operators selects separates them in one of three common forms. A lot of ternary operators selects
the instruction. the instruction.
``` - `o[0]`
o[0] = B register o[1] = C register - B register
o[2] = D register o[3] = E register - `o[1]`
o[4] = H register o[5] = L register - C register
o[6] = Flags o[7] = A or accumulator - `o[2]`
``` - D register
- `o[3]`
- E register
- `o[4]`
- H register
- `o[5]`
- L register
- `o[6]`
- Flags
- `o[7]`
- A or accumulator
The following instructions do peripheral operation: The following instructions do peripheral operation:
``` - `76`
76 Quits emulator - Quits emulator
DB 00 Reads key pressed status - `DB 00`
DB 01 Reads key - Reads key pressed status
DB 02 Reads byte from file (Carry=EOF) - `DB 01`
D3 xx Writes byte from acc. to console - Reads key
ED ED 02 Reads sector - `DB 02`
ED ED 03 Writes sector - Reads byte from file (Carry=EOF)
``` - `D3 xx`
- Writes byte from acc. to console
- `ED ED 02`
- Reads sector
- `ED ED 03`
- Writes sector
Memory addresses: Memory addresses:
``` - `FBFA`
FBFA = Low source/target direction - Low source/target direction
FBFB - High source/target direction - `FBFB`
FBFC - Sector - High source/target direction
FBFD - Low cylinder - `FBFC`
FBFE - High cylinder - Sector
FBFF - Drive. - `FBFD`
``` - Low cylinder
- `FBFE`
- High cylinder
- `FBFF`
- Drive.
The BIOS is tailor made for this emulator, and helps to simplify it. The BIOS is tailor made for this emulator, and helps to simplify it.
+119 -26
View File
@@ -502,8 +502,17 @@ two files on A: drive, <code>HALT.COM</code> to stop the emulator (so it closes
by the provided C.BIOS.</p> by the provided C.BIOS.</p>
<p>To get a complete <a href="https://en.wikipedia.org/wiki/CP/M">CP/M</a> system, you will need the following files <p>To get a complete <a href="https://en.wikipedia.org/wiki/CP/M">CP/M</a> system, you will need the following files
from the <code>SOURCE</code> directory:</p> from the <code>SOURCE</code> directory:</p>
<pre><code> ASM.COM DDT.COM DUMP.COM ED.COM LOAD.COM <ul>
PIP.COM STAT.COM SUBMIT.COM XSUB.COM</code></pre> <li><code>ASM.COM</code></li>
<li><code>DDT.COM</code></li>
<li><code>DUMP.COM</code></li>
<li><code>ED.COM</code></li>
<li><code>LOAD.COM</code></li>
<li><code>PIP.COM</code></li>
<li><code>STAT.COM</code></li>
<li><code>SUBMIT.COM</code></li>
<li><code>XSUB.COM</code></li>
</ul>
<p>To import them, you must run the emulator with an argument, by <p>To import them, you must run the emulator with an argument, by
example:</p> example:</p>
<pre><code> ./toledo2 DDT.COM</code></pre> <pre><code> ./toledo2 DDT.COM</code></pre>
@@ -530,15 +539,26 @@ bit 2) and <code>C</code> (Carry, bit 0).</p>
<h3 id="porting-it">Porting it</h3> <h3 id="porting-it">Porting it</h3>
<p>It is easy if your platform has <code>getch()</code>/<code>kbhit()</code> and <p>It is easy if your platform has <code>getch()</code>/<code>kbhit()</code> and
ANSI terminal:</p> ANSI terminal:</p>
<pre><code> read --&gt; Z=kbhit()?getch():0 <ul>
write --&gt; putchar(7[o]) <li><code>read</code>
system --&gt; nothing</code></pre> <ul>
<li><code>Z=kbhit()?getch():0</code></li>
</ul></li>
<li><code>write</code>
<ul>
<li><code>putchar(7[o])</code></li>
</ul></li>
<li><code>system</code>
<ul>
<li>nothing</li>
</ul></li>
</ul>
<p>Notice that you’ll have to do <code>#include &lt;conio.h&gt;</code> as well.</p> <p>Notice that you’ll have to do <code>#include &lt;conio.h&gt;</code> as well.</p>
<p>Also add the following to trap Ctrl-C:</p> <p>Also add the following to trap Ctrl-C:</p>
<pre><code>#include &lt;signal.h&gt; <pre><code> #include &lt;signal.h&gt;
signal(SIGINT, SIG_IGN);</code></pre> signal(SIGINT, SIG_IGN);</code></pre>
<p>NOTE: this is what the <a href="#alternate-code">alternate code</a> is for!</p> <p><strong>NOTE</strong>: this is what the <a href="#alternate-code">alternate code</a> is for!</p>
<p>NOTE from the judges: in Unix like systems <code>getch()</code> is part of curses but this <p><strong>NOTE from the Judges</strong>: in Unix like systems <code>getch()</code> is part of curses but this
is not what is needed.</p> is not what is needed.</p>
<p>On PC/DOS you need to add <code>ANSI.SYS</code> to <code>CONFIG.SYS</code>.</p> <p>On PC/DOS you need to add <code>ANSI.SYS</code> to <code>CONFIG.SYS</code>.</p>
<p>In Unix the min 0 on <code>stty</code> is required but circa 2001 <p>In Unix the min 0 on <code>stty</code> is required but circa 2001
@@ -555,25 +575,98 @@ counter</a> is the <code>c</code> pointer and
main loop reads every <a href="https://en.wikipedia.org/wiki/Opcode">opcode</a> and main loop reads every <a href="https://en.wikipedia.org/wiki/Opcode">opcode</a> and
separates them in one of three common forms. A lot of ternary operators selects separates them in one of three common forms. A lot of ternary operators selects
the instruction.</p> the instruction.</p>
<pre><code> o[0] = B register o[1] = C register <ul>
o[2] = D register o[3] = E register <li><code>o[0]</code>
o[4] = H register o[5] = L register <ul>
o[6] = Flags o[7] = A or accumulator</code></pre> <li>B register</li>
</ul></li>
<li><code>o[1]</code>
<ul>
<li>C register</li>
</ul></li>
<li><code>o[2]</code>
<ul>
<li>D register</li>
</ul></li>
<li><code>o[3]</code>
<ul>
<li>E register</li>
</ul></li>
<li><code>o[4]</code>
<ul>
<li>H register</li>
</ul></li>
<li><code>o[5]</code>
<ul>
<li>L register</li>
</ul></li>
<li><code>o[6]</code>
<ul>
<li>Flags</li>
</ul></li>
<li><code>o[7]</code>
<ul>
<li>A or accumulator</li>
</ul></li>
</ul>
<p>The following instructions do peripheral operation:</p> <p>The following instructions do peripheral operation:</p>
<pre><code> 76 Quits emulator <ul>
DB 00 Reads key pressed status <li><code>76</code>
DB 01 Reads key <ul>
DB 02 Reads byte from file (Carry=EOF) <li>Quits emulator</li>
D3 xx Writes byte from acc. to console </ul></li>
ED ED 02 Reads sector <li><code>DB 00</code>
ED ED 03 Writes sector</code></pre> <ul>
<li>Reads key pressed status</li>
</ul></li>
<li><code>DB 01</code>
<ul>
<li>Reads key</li>
</ul></li>
<li><code>DB 02</code>
<ul>
<li>Reads byte from file (Carry=EOF)</li>
</ul></li>
<li><code>D3 xx</code>
<ul>
<li>Writes byte from acc. to console</li>
</ul></li>
<li><code>ED ED 02</code>
<ul>
<li>Reads sector</li>
</ul></li>
<li><code>ED ED 03</code>
<ul>
<li>Writes sector</li>
</ul></li>
</ul>
<p>Memory addresses:</p> <p>Memory addresses:</p>
<pre><code> FBFA = Low source/target direction <ul>
FBFB - High source/target direction <li><code>FBFA</code>
FBFC - Sector <ul>
FBFD - Low cylinder <li>Low source/target direction</li>
FBFE - High cylinder </ul></li>
FBFF - Drive.</code></pre> <li><code>FBFB</code>
<ul>
<li>High source/target direction</li>
</ul></li>
<li><code>FBFC</code>
<ul>
<li>Sector</li>
</ul></li>
<li><code>FBFD</code>
<ul>
<li>Low cylinder</li>
</ul></li>
<li><code>FBFE</code>
<ul>
<li>High cylinder</li>
</ul></li>
<li><code>FBFF</code>
<ul>
<li>Drive.</li>
</ul></li>
</ul>
<p>The BIOS is tailor made for this emulator, and helps to simplify it.</p> <p>The BIOS is tailor made for this emulator, and helps to simplify it.</p>
<h3 id="other-notes">Other notes</h3> <h3 id="other-notes">Other notes</h3>
<ul> <ul>
+7 -5
View File
@@ -4,13 +4,13 @@
make make
``` ```
NOTE: this entry requires the `X11/Xlib.h` header file and the X11 library to **NOTE**: this entry requires the `X11/Xlib.h` header file and the X11 library to
compile. For more information see the compile. For more information see the
FAQ on "[X11](../../faq.html#X11)". FAQ on "[X11](../../faq.html#X11)".
The author provided two alternate versions, one which adds a status bar and The author provided two alternate versions, one which adds a status bar and
another that makes it text only. The author also provided a version that they another that makes it text only. The author also provided a version that they
tested with Windows. See [alternate code](#alternate-code) below. tested with Windows. See [Alternate code](#alternate-code) below.
## To use: ## To use:
@@ -140,10 +140,12 @@ play stronger?
### UPGRADES ### UPGRADES
Using [toledo3-sbar.c](%%REPO_URL%%/2006/toledo3/toledo3-sbar.c) (which is too large for this IOCCC size Using [toledo3-sbar.c](%%REPO_URL%%/2006/toledo3/toledo3-sbar.c) (which is too
rules) creates a status display about gameplay on the window title bar. large for this IOCCC's size rules) creates a status display about gameplay on
the window title bar.
Using [toledo3-txt.c](%%REPO_URL%%/2006/toledo3/toledo3-txt.c) turns this into being purely text based. Using [toledo3-txt.c](%%REPO_URL%%/2006/toledo3/toledo3-txt.c) turns this into
being purely text based.
<!-- <!--
+7 -5
View File
@@ -410,12 +410,12 @@ Location: <a href="../../location.html#MX">MX</a> - <em>United Mexican States</e
<!-- BEFORE: 1st line of markdown file: 2006/toledo3/README.md --> <!-- BEFORE: 1st line of markdown file: 2006/toledo3/README.md -->
<h2 id="to-build">To build:</h2> <h2 id="to-build">To build:</h2>
<pre><code> make</code></pre> <pre><code> make</code></pre>
<p>NOTE: this entry requires the <code>X11/Xlib.h</code> header file and the X11 library to <p><strong>NOTE</strong>: this entry requires the <code>X11/Xlib.h</code> header file and the X11 library to
compile. For more information see the compile. For more information see the
FAQ on “<a href="../../faq.html#X11">X11</a>”.</p> FAQ on “<a href="../../faq.html#X11">X11</a>”.</p>
<p>The author provided two alternate versions, one which adds a status bar and <p>The author provided two alternate versions, one which adds a status bar and
another that makes it text only. The author also provided a version that they another that makes it text only. The author also provided a version that they
tested with Windows. See <a href="#alternate-code">alternate code</a> below.</p> tested with Windows. See <a href="#alternate-code">Alternate code</a> below.</p>
<h2 id="to-use">To use:</h2> <h2 id="to-use">To use:</h2>
<pre><code> ./toledo3 [1 | 2 | 3 [b]]</code></pre> <pre><code> ./toledo3 [1 | 2 | 3 [b]]</code></pre>
<h2 id="try">Try:</h2> <h2 id="try">Try:</h2>
@@ -492,9 +492,11 @@ graphical interface. Can you do it?</p>
<p>Can the evaluation function be enhanced to make the program <p>Can the evaluation function be enhanced to make the program
play stronger?</p> play stronger?</p>
<h3 id="upgrades">UPGRADES</h3> <h3 id="upgrades">UPGRADES</h3>
<p>Using <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2006/toledo3/toledo3-sbar.c">toledo3-sbar.c</a> (which is too large for this IOCCC size <p>Using <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2006/toledo3/toledo3-sbar.c">toledo3-sbar.c</a> (which is too
rules) creates a status display about gameplay on the window title bar.</p> large for this IOCCC’s size rules) creates a status display about gameplay on
<p>Using <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2006/toledo3/toledo3-txt.c">toledo3-txt.c</a> turns this into being purely text based.</p> the window title bar.</p>
<p>Using <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2006/toledo3/toledo3-txt.c">toledo3-txt.c</a> turns this into
being purely text based.</p>
<!-- <!--
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved. Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
+5 -5
View File
@@ -21,7 +21,7 @@ For more detailed information see [2011/dlowe in bugs.html](../../bugs.html#2011
./dlowe -<n_iterations> corpus1/ [...] corpus0/ < start.net > trained.net ./dlowe -<n_iterations> corpus1/ [...] corpus0/ < start.net > trained.net
``` ```
NOTE: In the above command, the directory args MUST end in a `/`. **NOTE**: In the above command, the directory args MUST end in a `/`.
Then to use `trained.net`: Then to use `trained.net`:
@@ -38,7 +38,7 @@ Try these pre-trained networks:
./try.sh ./try.sh
``` ```
NOTE: The [dlowe-aux-data](%%REPO_URL%%/2011/dlowe/dlowe-aux-data) directory, which [try.sh](%%REPO_URL%%/2011/dlowe/try.sh) refers to, was **NOTE**: The [dlowe-aux-data](%%REPO_URL%%/2011/dlowe/dlowe-aux-data) directory, which [try.sh](%%REPO_URL%%/2011/dlowe/try.sh) refers to, was
created by: created by:
@@ -82,7 +82,7 @@ where:
- `ioccc_lost_test/` - `ioccc_lost_test/`
1/2 of C code from entries that that did not win 1/2 of C code from entries that that did not win
NOTE: The above directories were not shipped and everything from the entries **NOTE**: The above directories were not shipped and everything from the entries
that did not win were flushed to `/dev/null`. that did not win were flushed to `/dev/null`.
The [earlystop.pl](%%REPO_URL%%/2011/dlowe/earlystop.pl) tool wrote: The [earlystop.pl](%%REPO_URL%%/2011/dlowe/earlystop.pl) tool wrote:
@@ -103,7 +103,7 @@ test is interesting:
./dlowe dlowe.c < dlowe-aux-data/ioccc-winlose-trained.net ./dlowe dlowe.c < dlowe-aux-data/ioccc-winlose-trained.net
``` ```
NOTE: this is done in [try.sh](%%REPO_URL%%/2011/dlowe/try.sh). **NOTE**: this is done in [try.sh](%%REPO_URL%%/2011/dlowe/try.sh).
The match of [dlowe.c](%%REPO_URL%%/2011/dlowe/dlowe.c) to the lose/win trailed network was: The match of [dlowe.c](%%REPO_URL%%/2011/dlowe/dlowe.c) to the lose/win trailed network was:
@@ -112,7 +112,7 @@ The match of [dlowe.c](%%REPO_URL%%/2011/dlowe/dlowe.c) to the lose/win trailed
dlowe.c 0.125108 dlowe.c 0.125108
``` ```
NOTE: The non-artificially intelligent decisions of the IOCCC judges include random **NOTE**: The non-artificially intelligent decisions of the IOCCC judges include random
quirks and their non-linear judgment calls not found in the ioccc trained network. quirks and their non-linear judgment calls not found in the ioccc trained network.
Just because C code is or isn't scored highly by this network does not Just because C code is or isn't scored highly by this network does not
mean it will win or lose a future IOCCC. On the other hand ... it just might! mean it will win or lose a future IOCCC. On the other hand ... it just might!
+5 -5
View File
@@ -419,13 +419,13 @@ Location: <a href="../../location.html#US">US</a> - <em>United States of America
<p>For more detailed information see <a href="../../bugs.html#2011_dlowe">2011/dlowe in bugs.html</a>.</p> <p>For more detailed information see <a href="../../bugs.html#2011_dlowe">2011/dlowe in bugs.html</a>.</p>
<h2 id="to-use">To use:</h2> <h2 id="to-use">To use:</h2>
<pre><code> ./dlowe -&lt;n_iterations&gt; corpus1/ [...] corpus0/ &lt; start.net &gt; trained.net</code></pre> <pre><code> ./dlowe -&lt;n_iterations&gt; corpus1/ [...] corpus0/ &lt; start.net &gt; trained.net</code></pre>
<p>NOTE: In the above command, the directory args MUST end in a <code>/</code>.</p> <p><strong>NOTE</strong>: In the above command, the directory args MUST end in a <code>/</code>.</p>
<p>Then to use <code>trained.net</code>:</p> <p>Then to use <code>trained.net</code>:</p>
<pre><code> ./dlowe file [file ...] &lt; trained.net</code></pre> <pre><code> ./dlowe file [file ...] &lt; trained.net</code></pre>
<h2 id="try">Try:</h2> <h2 id="try">Try:</h2>
<p>Try these pre-trained networks:</p> <p>Try these pre-trained networks:</p>
<pre><code> ./try.sh</code></pre> <pre><code> ./try.sh</code></pre>
<p>NOTE: The <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/dlowe/dlowe-aux-data">dlowe-aux-data</a> directory, which <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/dlowe/try.sh">try.sh</a> refers to, was <p><strong>NOTE</strong>: The <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/dlowe/dlowe-aux-data">dlowe-aux-data</a> directory, which <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/dlowe/try.sh">try.sh</a> refers to, was
created by:</p> created by:</p>
<pre><code> tar -jxf dlowe-aux-data.tar.bz2</code></pre> <pre><code> tar -jxf dlowe-aux-data.tar.bz2</code></pre>
<h2 id="judges-remarks">Judges’ remarks:</h2> <h2 id="judges-remarks">Judges’ remarks:</h2>
@@ -451,7 +451,7 @@ plus 1/2 of the C code winning entries from prior IOCCC contests</p></li>
<li><p><code>ioccc_lost_test/</code> <li><p><code>ioccc_lost_test/</code>
1/2 of C code from entries that that did not win</p></li> 1/2 of C code from entries that that did not win</p></li>
</ul> </ul>
<p>NOTE: The above directories were not shipped and everything from the entries <p><strong>NOTE</strong>: The above directories were not shipped and everything from the entries
that did not win were flushed to <code>/dev/null</code>.</p> that did not win were flushed to <code>/dev/null</code>.</p>
<p>The <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/dlowe/earlystop.pl">earlystop.pl</a> tool wrote:</p> <p>The <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/dlowe/earlystop.pl">earlystop.pl</a> tool wrote:</p>
<pre><code> training 1 to 1001... <pre><code> training 1 to 1001...
@@ -462,10 +462,10 @@ that did not win were flushed to <code>/dev/null</code>.</p>
<p>The <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/dlowe/dlowe.c">dlowe.c</a> was explicitly excluded from this trailing set, so this <p>The <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/dlowe/dlowe.c">dlowe.c</a> was explicitly excluded from this trailing set, so this
test is interesting:</p> test is interesting:</p>
<pre><code> ./dlowe dlowe.c &lt; dlowe-aux-data/ioccc-winlose-trained.net</code></pre> <pre><code> ./dlowe dlowe.c &lt; dlowe-aux-data/ioccc-winlose-trained.net</code></pre>
<p>NOTE: this is done in <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/dlowe/try.sh">try.sh</a>.</p> <p><strong>NOTE</strong>: this is done in <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/dlowe/try.sh">try.sh</a>.</p>
<p>The match of <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/dlowe/dlowe.c">dlowe.c</a> to the lose/win trailed network was:</p> <p>The match of <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/dlowe/dlowe.c">dlowe.c</a> to the lose/win trailed network was:</p>
<pre><code> dlowe.c 0.125108</code></pre> <pre><code> dlowe.c 0.125108</code></pre>
<p>NOTE: The non-artificially intelligent decisions of the IOCCC judges include random <p><strong>NOTE</strong>: The non-artificially intelligent decisions of the IOCCC judges include random
quirks and their non-linear judgment calls not found in the ioccc trained network. quirks and their non-linear judgment calls not found in the ioccc trained network.
Just because C code is or isn’t scored highly by this network does not Just because C code is or isn’t scored highly by this network does not
mean it will win or lose a future IOCCC. On the other hand … it just might!</p> mean it will win or lose a future IOCCC. On the other hand … it just might!</p>
+27 -24
View File
@@ -2418,16 +2418,16 @@ opened. The number of args is however checked.</p>
<h3 id="source-code-2006sykes1sykes1.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2006/sykes1/sykes1.c">2006/sykes1/sykes1.c</a></h3> <h3 id="source-code-2006sykes1sykes1.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2006/sykes1/sykes1.c">2006/sykes1/sykes1.c</a></h3>
<h3 id="information-2006sykes1index.html">Information: <a href="2006/sykes1/index.html">2006/sykes1/index.html</a></h3> <h3 id="information-2006sykes1index.html">Information: <a href="2006/sykes1/index.html">2006/sykes1/index.html</a></h3>
<p>The author stated:</p> <p>The author stated:</p>
<pre><code> If you pick a number higher than 19186, the program will return a <blockquote>
solution but it will be a rotation of one of the first 19186. This is <p>If you pick a number higher than 19186, the program will return a solution but
because the cross shaped piece fits 48 ways in the 4x4 cube, but only it will be a rotation of one of the first 19186. This is because the cross
2 of those ways are unique - you can rotate one of those to make any shaped piece fits 48 ways in the 4x4 cube, but only 2 of those ways are unique -
of the other 46. The algorithm used always places the cross piece you can rotate one of those to make any of the other 46. The algorithm used
first, so the first two placings of that piece result in the 19186 always places the cross piece first, so the first two placings of that piece
unique solutions. result in the 19186 unique solutions.</p>
<p>If you pick a number higher than 460464 (24x19186) the program will return
If you pick a number higher than 460464 (24x19186) the program will without outputting a solution. If you can wait that long.</p>
return without outputting a solution. If you can wait that long.</code></pre> </blockquote>
<div id="2006_toledo2"> <div id="2006_toledo2">
<h2 id="toledo2">2006/toledo2</h2> <h2 id="toledo2">2006/toledo2</h2>
</div> </div>
@@ -2437,10 +2437,11 @@ opened. The number of args is however checked.</p>
<p><a href="authors.html#Cody_Boone_Ferguson">Cody Boone Ferguson</a> fixed this program to <p><a href="authors.html#Cody_Boone_Ferguson">Cody Boone Ferguson</a> fixed this program to
not crash in macOS (it appeared to work fine in fedora linux on an <code>x86_64</code> not crash in macOS (it appeared to work fine in fedora linux on an <code>x86_64</code>
architecture but he does not know if it crashed in macOS Ventura due to the fact architecture but he does not know if it crashed in macOS Ventura due to the fact
it is an <code>arm64</code> CPU - the Apple silicon chip). This fix, BTW, is a mix of a fix it is an <code>arm64</code> CPU - the Apple silicon chip, but given that the author later
by <a href="authors.html#Yusuke_Endoh">Yusuke Endoh</a> and Cody’s. Nevertheless there are made some slight changes to make it not crash in <code>x86_64</code> macOS that might be
two features that are not bugs. Later the author made some slight changes to the case). This fix, BTW, is a mix of a fix by <a href="authors.html#Yusuke_Endoh">Yusuke
make it not crash in x86_64 macOS.</p> Endoh</a> and Cody’s.</p>
<p>Nevertheless there are two features that are not bugs.</p>
<p>By design this program is supposed to crash on termination. This actually no <p>By design this program is supposed to crash on termination. This actually no
longer seems to happen but we don’t need this to be added even if it might longer seems to happen but we don’t need this to be added even if it might
be called a bug :-)</p> be called a bug :-)</p>
@@ -2481,16 +2482,18 @@ case-sensitive.</p>
<h3 id="status-inabiaf---please-do-not-fix-58">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3> <h3 id="status-inabiaf---please-do-not-fix-58">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
<h3 id="source-code-2011borsanyiborsanyi.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/borsanyi/borsanyi.c">2011/borsanyi/borsanyi.c</a></h3> <h3 id="source-code-2011borsanyiborsanyi.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/borsanyi/borsanyi.c">2011/borsanyi/borsanyi.c</a></h3>
<h3 id="information-2011borsanyiindex.html">Information: <a href="2011/borsanyi/index.html">2011/borsanyi/index.html</a></h3> <h3 id="information-2011borsanyiindex.html">Information: <a href="2011/borsanyi/index.html">2011/borsanyi/index.html</a></h3>
<p>For a great amount of data points the program will crash, depending on your <ul>
available stack space.</p> <li><p>For a great amount of data points the program will crash, depending on your
<p>Giving too few (distinct) points can also cause a crash or division by zero.</p> available stack space.</p></li>
<p>The program expects plain numbers separated by whitespace.</p> <li><p>Giving too few (distinct) points can also cause a crash or division by zero.</p></li>
<p>This program assumes ASCII.</p> <li><p>The program expects plain numbers separated by whitespace.</p></li>
<p>If you give the program any arg it might flood the screen.</p> <li><p>This program assumes ASCII.</p></li>
<p>It requires both syscalls <code>fork(2)</code> and <code>wait(2)</code>.</p> <li><p>If you give the program any arg it might flood the screen.</p></li>
<p>Giving any arg to the program is likely to flood your screen.</p> <li><p>It requires both syscalls <code>fork(2)</code> and <code>wait(2)</code>.</p></li>
<p>Rounding errors might cause an omission in the highest bin. There might be empty <li><p>Giving any arg to the program is likely to flood your screen.</p></li>
bins at the edges.</p> <li><p>Rounding errors might cause an omission in the highest bin. There might be
empty bins at the edges.</p></li>
</ul>
<div id="2011_dlowe"> <div id="2011_dlowe">
<h2 id="dlowe-2">2011/dlowe</h2> <h2 id="dlowe-2">2011/dlowe</h2>
</div> </div>
+24 -25
View File
@@ -2948,18 +2948,15 @@ opened. The number of args is however checked.
The author stated: The author stated:
``` > If you pick a number higher than 19186, the program will return a solution but
If you pick a number higher than 19186, the program will return a it will be a rotation of one of the first 19186. This is because the cross
solution but it will be a rotation of one of the first 19186. This is shaped piece fits 48 ways in the 4x4 cube, but only 2 of those ways are unique -
because the cross shaped piece fits 48 ways in the 4x4 cube, but only you can rotate one of those to make any of the other 46. The algorithm used
2 of those ways are unique - you can rotate one of those to make any always places the cross piece first, so the first two placings of that piece
of the other 46. The algorithm used always places the cross piece result in the 19186 unique solutions.
first, so the first two placings of that piece result in the 19186 >
unique solutions. > If you pick a number higher than 460464 (24x19186) the program will return
without outputting a solution. If you can wait that long.
If you pick a number higher than 460464 (24x19186) the program will
return without outputting a solution. If you can wait that long.
```
<div id="2006_toledo2"> <div id="2006_toledo2">
@@ -2974,10 +2971,12 @@ The author stated:
[Cody Boone Ferguson](authors.html#Cody_Boone_Ferguson) fixed this program to [Cody Boone Ferguson](authors.html#Cody_Boone_Ferguson) fixed this program to
not crash in macOS (it appeared to work fine in fedora linux on an `x86_64` not crash in macOS (it appeared to work fine in fedora linux on an `x86_64`
architecture but he does not know if it crashed in macOS Ventura due to the fact architecture but he does not know if it crashed in macOS Ventura due to the fact
it is an `arm64` CPU - the Apple silicon chip). This fix, BTW, is a mix of a fix it is an `arm64` CPU - the Apple silicon chip, but given that the author later
by [Yusuke Endoh](authors.html#Yusuke_Endoh) and Cody's. Nevertheless there are made some slight changes to make it not crash in `x86_64` macOS that might be
two features that are not bugs. Later the author made some slight changes to the case). This fix, BTW, is a mix of a fix by [Yusuke
make it not crash in x86_64 macOS. Endoh](authors.html#Yusuke_Endoh) and Cody's.
Nevertheless there are two features that are not bugs.
By design this program is supposed to crash on termination. This actually no By design this program is supposed to crash on termination. This actually no
longer seems to happen but we don't need this to be added even if it might longer seems to happen but we don't need this to be added even if it might
@@ -3038,23 +3037,23 @@ There was no IOCCC in 2010.
### Source code: [2011/borsanyi/borsanyi.c](%%REPO_URL%%/2011/borsanyi/borsanyi.c) ### Source code: [2011/borsanyi/borsanyi.c](%%REPO_URL%%/2011/borsanyi/borsanyi.c)
### Information: [2011/borsanyi/index.html](2011/borsanyi/index.html) ### Information: [2011/borsanyi/index.html](2011/borsanyi/index.html)
For a great amount of data points the program will crash, depending on your - For a great amount of data points the program will crash, depending on your
available stack space. available stack space.
Giving too few (distinct) points can also cause a crash or division by zero. - Giving too few (distinct) points can also cause a crash or division by zero.
The program expects plain numbers separated by whitespace. - The program expects plain numbers separated by whitespace.
This program assumes ASCII. - This program assumes ASCII.
If you give the program any arg it might flood the screen. - If you give the program any arg it might flood the screen.
It requires both syscalls `fork(2)` and `wait(2)`. - It requires both syscalls `fork(2)` and `wait(2)`.
Giving any arg to the program is likely to flood your screen. - Giving any arg to the program is likely to flood your screen.
Rounding errors might cause an omission in the highest bin. There might be empty - Rounding errors might cause an omission in the highest bin. There might be
bins at the edges. empty bins at the edges.
<div id="2011_dlowe"> <div id="2011_dlowe">