diff --git a/2004/gavare/README.md b/2004/gavare/README.md index 8cc4c75a9..7d7e9a17f 100644 --- a/2004/gavare/README.md +++ b/2004/gavare/README.md @@ -4,7 +4,7 @@ make ``` -There are three alternate versions; see [alternate code](#alternate-code) below +There are three alternate versions; see [Alternate code](#alternate-code) below for more details. @@ -23,6 +23,10 @@ if you have ImageMagick installed, you can convert it to a jpeg: and then view `ioccc_ray.jpg` in a graphics viewer, editor or web browser. +**NOTE**: if you do not have ImageMagick installed, see the +FAQ on "[ImageMagick](../../faq.html#imagemagick)" +for help. + ## Try: @@ -43,10 +47,12 @@ image as well as the anti-alias setting, when compiling. The author also provided [on their web page for the entry](https://gavare.se/ioccc/ioccc_gavare.c.html) an unobfuscated version that was used during development, which we have included in the file -[gavare.r3.c](%%REPO_URL%%/2004/gavare/gavare.r3.c). +[gavare.r3.c](%%REPO_URL%%/2004/gavare/gavare.r3.c) (named such because that is +what they called it). Finally, the file [gavare.alt2.c](%%REPO_URL%%/2004/gavare/gavare.alt2.c) sets binary mode -on `stdout` which theoretically should work in Windows. +on `stdout` which theoretically should work in Windows (if anything works in +Windows :-) ). ### Alternate build: @@ -73,7 +79,7 @@ You may of course combine the above two commands and give any combination you wish. This is not possible with the author's version but it is with the alt versions -(Windows - see below - and otherwise). +(Windows - see below). As the Windows version will not compile on most viewers' systems we do not build it with `make alt`; instead try: @@ -93,7 +99,8 @@ Use `gavare.alt`, `gavare.r3` or `gavare.alt2` as you would `gavare` above. For users of systems that distinguish between text and binary mode (you know who you are), add a library call that specifies binary mode for `stdout` as the first statement of `main()`, -or use `freopen("ioccc_ray.ppm", "wb", stdout);` and do not use redirection. +or use `freopen("ioccc_ray.ppm", "wb", stdout);` and do not use redirection (or +see [Alternate code](#alternate-code) above). A freely distributable command-line version of Microsoft Visual C exhibits an optimizer bug when compiling this entry. Disable `/Og` for diff --git a/2004/gavare/index.html b/2004/gavare/index.html index ded4bef40..bb38cdc8f 100644 --- a/2004/gavare/index.html +++ b/2004/gavare/index.html @@ -409,7 +409,7 @@ Location: SE - Kingdom of Sweden (

To build:

    make
-

There are three alternate versions; see alternate code below +

There are three alternate versions; see Alternate code below for more details.

To use:

    ./gavare > ioccc_ray.ppm
@@ -417,6 +417,9 @@ for more details.

if you have ImageMagick installed, you can convert it to a jpeg:

    convert ioccc_ray.ppm ioccc_ray.jpg

and then view ioccc_ray.jpg in a graphics viewer, editor or web browser.

+

NOTE: if you do not have ImageMagick installed, see the +FAQ on “ImageMagick” +for help.

Try:

If you have xv(1) you can do:

    ./gavare | xv -
@@ -427,9 +430,11 @@ image as well as the anti-alias setting, when compiling.

The author also provided on their web page for the entry an unobfuscated version that was used during development, which we have included in the file -gavare.r3.c.

+gavare.r3.c (named such because that is +what they called it).

Finally, the file gavare.alt2.c sets binary mode -on stdout which theoretically should work in Windows.

+on stdout which theoretically should work in Windows (if anything works in +Windows :-) ).

Alternate build:

To build the configurable and unobfuscated versions:

    make alt
@@ -440,7 +445,7 @@ on stdout which theoretically should work in Windows.

You may of course combine the above two commands and give any combination you wish.

This is not possible with the author’s version but it is with the alt versions -(Windows - see below - and otherwise).

+(Windows - see below).

As the Windows version will not compile on most viewers’ systems we do not build it with make alt; instead try:

    make alt2
@@ -450,7 +455,8 @@ it with make alt; instead try:

For users of systems that distinguish between text and binary mode (you know who you are), add a library call that specifies binary mode for stdout as the first statement of main(), -or use freopen("ioccc_ray.ppm", "wb", stdout); and do not use redirection.

+or use freopen("ioccc_ray.ppm", "wb", stdout); and do not use redirection (or +see Alternate code above).

A freely distributable command-line version of Microsoft Visual C exhibits an optimizer bug when compiling this entry. Disable /Og for best results.

diff --git a/2004/gavin/README.md b/2004/gavin/README.md index 16deb1f1f..c2fc9b76f 100644 --- a/2004/gavin/README.md +++ b/2004/gavin/README.md @@ -5,17 +5,18 @@ ``` -There is an alternate version for those who wish to use QEMU rather than having -to reboot and rely on having a floppy drive (if you even remember what those are -:-) ) etc. See [alternate code](#alternate-code) below. +There is an alternate version for those who wish to use +[QEMU](https://www.qemu.org) rather than having +to reboot and rely on having a [floppy +drive](https://en.wikipedia.org/wiki/Floppy_disk) ([if you even +remember](https://en.wikipedia.org/wiki/History_of_the_floppy_disk) what those are +:-) ) etc. See [Alternate code](#alternate-code) below. ### Bugs and (Mis)features: The current status of this entry is: -> **STATUS: compiled executable crashes - please help us fix**
-> **STATUS: doesn't work with some platforms - please help us fix it**
> **STATUS: INABIAF - please DO NOT fix** For more detailed information see [2004/gavin in bugs.html](../../bugs.html#2004_gavin). @@ -30,8 +31,8 @@ For more detailed information see [2004/gavin in bugs.html](../../bugs.html#2004 ## Try: -To enjoy the results (on a Linux/x86 machine) with a floppy drive (remember -those? We do!): +To enjoy the results (on a Linux/x86 machine) with a floppy drive +([remember](https://en.wikipedia.org/wiki/Old_age) those? We do!): ``` @@ -45,9 +46,9 @@ whatever the floppy device is!), mount it under `/mnt/floppy` and then: cp kernel fs.tar lilo.conf boot.b /mnt/floppy ``` -NOTE: If the version of your lilo is not 21.4, use the appropriate boot.b file. +**NOTE**: If the version of your lilo is not 21.4, use the appropriate `boot.b` file. -NOTE: If your floppy drive is not `/dev/fd0`, edit lilo.conf appropriately. +**NOTE**: If your floppy drive is not `/dev/fd0`, edit `lilo.conf` appropriately. ``` lilo -C /mnt/floppy/lilo.conf @@ -92,7 +93,7 @@ you can use it with `QEMU`. ### Alternate use: The use is mostly the same as `gavin` except that one initially executes `gavin.alt` -(which `make alt` will do) and one will have to use `QEMU` instead. The files +and one will have to use `QEMU` instead. The files generated are the same names. See [to use](#to-use) and [try](#try) above as well as the judges' remarks below plus [gavin.html](gavin.html). @@ -113,9 +114,9 @@ If you do not want to mess with a floppy and you use GRUB, see You can put additional text files in `fs.tar` for browsing with vi. If you do not want to bother rebooting your computer at all, see - for QEMU ([Fabrice Bellard](../../authors.html#Fabrice_Bellard) -is an IOCCC 2001 winning entry), but your experience will be limited; use the -[alternate code](#alternate-code) instead. You'll have to move the mouse to + for QEMU (by [Fabrice +Bellard](../../authors.html#Fabrice_Bellard), an IOCCC winning author) and use +the [Alternate code](#alternate-code) instead. You'll have to move the mouse to trigger the initial screen update. The judges were able to write a few more programs to run in this OS. @@ -154,7 +155,7 @@ For further usage information see [gavin.html](gavin.html). The filenames `vi` and `sh` are significant, and should not be changed. -### Known 'features' +### Known 'features': Known issues are really too plentiful to list. @@ -188,16 +189,14 @@ keyboard maps, etc. (I should also mention that it contains mini functions to perform an x86 `in` and `out` instruction - to allow the keyboard & mouse to be driven from C code). -Porting to another architecture should be relatively easy\* - +Porting to another architecture should be relatively easy[^1] - the string simply needs be replaced with one containing data & code suitable for the new target platform. Accesses to data in the string are made relative to the define `V`, so these may need updating as appropriate (`0x90200` is the address at which a Linux bootloader loads an x86 kernel image). -``` - \* ;-) -``` +[^1]: \* ;-)

To build:

    make
-

There is an alternate version for those who wish to use QEMU rather than having -to reboot and rely on having a floppy drive (if you even remember what those are -:-) ) etc. See alternate code below.

+

There is an alternate version for those who wish to use +QEMU rather than having +to reboot and rely on having a floppy +drive (if you even +remember what those are +:-) ) etc. See Alternate code below.

Bugs and (Mis)features:

The current status of this entry is:

-

STATUS: compiled executable crashes - please help us fix
-STATUS: doesn’t work with some platforms - please help us fix it
-STATUS: INABIAF - please DO NOT fix

+

STATUS: INABIAF - please DO NOT fix

For more detailed information see 2004/gavin in bugs.html.

To use:

    ./gavin

Try:

-

To enjoy the results (on a Linux/x86 machine) with a floppy drive (remember -those? We do!):

+

To enjoy the results (on a Linux/x86 machine) with a floppy drive +(remember those? We do!):

    su

Make a floppy with an ext2 filesystem (mke2fs /dev/fd0 replacing fd0 with whatever the floppy device is!), mount it under /mnt/floppy and then:

    cp kernel fs.tar lilo.conf boot.b /mnt/floppy
-

NOTE: If the version of your lilo is not 21.4, use the appropriate boot.b file.

-

NOTE: If your floppy drive is not /dev/fd0, edit lilo.conf appropriately.

+

NOTE: If the version of your lilo is not 21.4, use the appropriate boot.b file.

+

NOTE: If your floppy drive is not /dev/fd0, edit lilo.conf appropriately.

    lilo -C /mnt/floppy/lilo.conf

Boot from the floppy on an x86 machine with a PS/2 keyboard and mouse. Move the window away from the corner.

@@ -448,7 +449,7 @@ you can use it with QEMU.

    make alt

Alternate use:

The use is mostly the same as gavin except that one initially executes gavin.alt -(which make alt will do) and one will have to use QEMU instead. The files +and one will have to use QEMU instead. The files generated are the same names. See to use and try above as well as the judges’ remarks below plus gavin.html.

Judges’ remarks:

@@ -463,9 +464,9 @@ future contests.

gavin.html.

You can put additional text files in fs.tar for browsing with vi.

If you do not want to bother rebooting your computer at all, see -http://bellard.org for QEMU (Fabrice Bellard -is an IOCCC 2001 winning entry), but your experience will be limited; use the -alternate code instead. You’ll have to move the mouse to +https://www.qemu.org for QEMU (by Fabrice +Bellard, an IOCCC winning author) and use +the Alternate code instead. You’ll have to move the mouse to trigger the initial screen update.

The judges were able to write a few more programs to run in this OS. What are the limitations for such programs?

@@ -493,7 +494,7 @@ then building a tarball containing the resulting programs (the filesystem format supported by the OS is the tarball format).

For further usage information see gavin.html.

The filenames vi and sh are significant, and should not be changed.

-

Known ‘features’

+

Known ‘features’:

Known issues are really too plentiful to list.

If the mouse pointer goes off the left hand side of the screen it will reappear on the right, and vice-versa. @@ -519,13 +520,12 @@ Linux-esque kernel header for the bootloader, protected mode descriptor tables, keyboard maps, etc. (I should also mention that it contains mini functions to perform an x86 in and out instruction - to allow the keyboard & mouse to be driven from C code).

-

Porting to another architecture should be relatively easy* - +

Porting to another architecture should be relatively easy1 - the string simply needs be replaced with one containing data & code suitable for the new target platform. Accesses to data in the string are made relative to the define V, so these may need updating as appropriate (0x90200 is the address at which a Linux bootloader loads an x86 kernel image).

-
    \* ;-)
+
+
+
Footnotes
+
    +
  1. * ;-)↩︎

  2. +
+
diff --git a/2004/hibachi/.entry.json b/2004/hibachi/.entry.json index e630258df..da45bbdf0 100644 --- a/2004/hibachi/.entry.json +++ b/2004/hibachi/.entry.json @@ -55,7 +55,7 @@ "OK_to_edit" : true, "display_as" : "html", "display_via_github" : false, - "entry_text" : "home page of alt HIBACHI web server" + "entry_text" : "home page of alt hibachi alt web server" }, { "file_path" : "src/configure", @@ -71,7 +71,7 @@ "OK_to_edit" : true, "display_as" : "html", "display_via_github" : false, - "entry_text" : "home page of alt HIBACHI web server" + "entry_text" : "home page of alt hibachi web server" }, { "file_path" : "src-alt/IOCCC-2004/mkentry.c", @@ -103,7 +103,7 @@ "OK_to_edit" : true, "display_as" : "html", "display_via_github" : false, - "entry_text" : "perl test page of alt HIBACHI server" + "entry_text" : "perl test page of alt hibachi server" }, { "file_path" : "src-alt/localhost/test/php/index.php", @@ -135,7 +135,7 @@ "OK_to_edit" : true, "display_as" : "text", "display_via_github" : false, - "entry_text" : "obfuscated changelog for code" + "entry_text" : "obfuscated changelog for hibachi" }, { "file_path" : "src/localhost/reference/rfc2616.html", @@ -151,7 +151,7 @@ "OK_to_edit" : true, "display_as" : "html", "display_via_github" : false, - "entry_text" : "perl test page of HIBACHI server" + "entry_text" : "perl test page of hibachi server" }, { "file_path" : "src/localhost/test/php/index.php", @@ -239,7 +239,7 @@ "OK_to_edit" : true, "display_as" : "text", "display_via_github" : false, - "entry_text" : "obfuscation change log for alt server" + "entry_text" : "changelog for hibachi alt code" }, { "file_path" : "src/configure.in", @@ -263,7 +263,7 @@ "OK_to_edit" : true, "display_as" : "text", "display_via_github" : false, - "entry_text" : "obfuscation change log" + "entry_text" : "changelog for hibachi" }, { "file_path" : "2004_hibachi.tar.bz2", diff --git a/2004/hibachi/README.md b/2004/hibachi/README.md index 756a3685d..713784f52 100644 --- a/2004/hibachi/README.md +++ b/2004/hibachi/README.md @@ -7,6 +7,16 @@ There is an alternate version that is unobfuscated, provided by the author in 2024\. See [Alternate code](#alternate-code) below. +### Bugs and (Mis)features: + +The current status of this entry is: + +> **STATUS: INABIAF - please DO NOT fix** + +For more detailed information see [2004/hibachi in bugs.html](../../bugs.html#2004_hibachi). + + + ## To use: @@ -56,7 +66,7 @@ of Mr Howe. This entry also has the dubious honour of being the only one to have been submitted with its own `configure` script. -NOTE: the author states there is a tarball `hibachi.tgz` but this was extracted +**NOTE**: the author states there is a tarball `hibachi.tgz` but this was extracted so the file does not exist here. @@ -66,7 +76,7 @@ so the file does not exist here. `Hibachi` is a simple, small, and (probably) very secure web server. -There is a `hibachi.tgz` file (NOTE: this file was removed by the judges after +There is a `hibachi.tgz` file (**NOTE**: this file was removed by the judges after extraction) that unpacks several support files and a subdirectory tree containing the documentation and examples. It can be viewed by: @@ -189,9 +199,9 @@ style](https://wiki.c2.com/?OneTrueBraceStyle). * Commented obfuscation change log information available. -### Known Issues +### Known Issue -* The [links][1] text browser does not support RFC 2616 section 7.2.1 +* The [links][1] (text) web browser does not support RFC 2616 section 7.2.1 paragraph 3 sentence 2, and so fails to display responses from `hibachi`. @@ -207,17 +217,10 @@ style](https://wiki.c2.com/?OneTrueBraceStyle). * Winner of The Far Too Much Free Time Award -### NOTICE to those who wish for a greater challenge: +### Changelog -**If you want a greater challenge, don't read any further**: -just try to understand the program via the source. - -If you get stuck, come back and read below for additional hints and information. - - -### Obfuscation change log - -For additional hints about how the source was obfuscated, read [src/localhost/CHANGELOG.TXT](src/localhost/CHANGELOG.TXT). +For a list of significant changes made during development, see +[src/localhost/CHANGELOG.TXT](src/localhost/CHANGELOG.TXT). ./gavin > kernel @@ -2564,12 +2565,11 @@ When trying to link `gavin.o` to produce `sh`, the linker generates: ld: symbol(s) not found for architecture arm64 ``` -We believe that this simply won't work with non x86 specific systems but perhaps -you have a fix? We welcome your help! -### Recent 2004/gavin mods: +#### Recent 2004/gavin mods: -Although not related some recent changes were made to 2004/gavin to let it +Although not related some recent changes were made to +[2004/gavin](2004/gavin/index.html) to let it compile under clang. The following patch was applied: ``` @@ -2642,14 +2642,28 @@ The original Makefile from 2004 had the following to say about this entry: gavin_files: boot.b lilo.conf prim gavin_install.txt ``` -The current ([Makefile](%%REPO_URL%%/2004/gavin/Makefile) was modified to try and +The current [Makefile](%%REPO_URL%%/2004/gavin/Makefile) was modified to try and fit into the current IOCCC build environment. -### STATUS: INABIAF - please **DO NOT** fix +Please also see [known features in the +index.html](2004/gavin/index.html#known-features) for things that are not bugs +but documented (mis)features. + +
+## 2004/hibachi +
+ +### STATUS: INABIAF - please **DO NOT** fix +### Source code: [2004/hibachi/hibachi.c](%%REPO_URL%%/2004/hibachi/hibachi.c) +### Information: [2004/hibachi//index.html](2004/hibachi//index.html) + +The author stated that: + +> The links (text) web browser does not support RFC 2616 section 7.2.1 paragraph 3 +sentence 2, and so fails to display responses from `hibachi`. + -See [known features in the index.html](2004/gavin/index.html#known-features) for -things that are not bugs but documented (mis)features.