From 564a25e0e71cf5c785ac7c6983d51c14f7389564 Mon Sep 17 00:00:00 2001 From: Cody Boone Ferguson <53008573+xexyl@users.noreply.github.com> Date: Tue, 14 Mar 2023 08:35:01 -0700 Subject: [PATCH 1/2] More README.md files updated Some of the files modified include some of the files modified yesterday; others were not modified yesterday. I backtracked as I noticed some sections are missing in earlier README.md files. However more have to be checked in earlier years. I'm committing now as I have to do other things and am likely done for the day. --- 1984/anonymous/README.md | 22 +++++++++++----------- 1985/applin/README.md | 2 +- 1985/sicherman/README.md | 3 +++ 1986/applin/README.md | 4 ++++ 1986/august/README.md | 7 +++++++ 1986/hague/README.md | 9 ++++++++- 1986/marshall/README.md | 4 ++++ 1987/biggar/README.md | 3 ++- 1987/heckbert/README.md | 11 ++++++----- 1987/hines/README.md | 4 ++-- 1987/lievaart/README.md | 10 ++++++++-- 1987/wall/README.md | 17 ++++++++++++++++- 12 files changed, 72 insertions(+), 24 deletions(-) diff --git a/1984/anonymous/README.md b/1984/anonymous/README.md index 5155cdff0..7932a757b 100644 --- a/1984/anonymous/README.md +++ b/1984/anonymous/README.md @@ -6,20 +6,11 @@ Anonymous make all -## To run: +## Try: ./anonymous -## Judges' comments: - -The author was too embarrassed that he/she could write such trash, so I -promised to protect their identity. I will say that the author of this -program has a well known connection with the C programming language. - -This program is a unique variation on the age old "Hello, world" -program. What reads like a read may be written like a write! - NOTE: this entry will probably not work under macOS with the Apple chips (Intel should be fine though we have no way to test this; if anyone can confirm whether this will work under macOS with an Intel chip we'd appreciate if you let us @@ -28,7 +19,6 @@ specifically, on modern systems one might need to specify `-m32` (though this actually doesn't seem to be the case) but the Apple chips which are arm64 based will not compile this entry: - ld: unknown/unsupported architecture name for: -arch armv4t clang: error: linker command failed with exit code 1 (use -v to see invocation) make: *** [anonymous] Error 1 @@ -53,6 +43,16 @@ If we add to the CFLAGS `-include unistd.h` we will run into another problem: ssize_t read(int, void *, size_t) __DARWIN_ALIAS_C(read); ^ + +## Judges' comments: + +The author was too embarrassed that they could write such trash, so I +promised to protect their identity. I will say that the author of this +program has a well known connection with the C programming language. + +This program is a unique variation on the age old "Hello, world" +program. What reads like a read may be written like a write! + ## Author's comments: No comments were provided by the author. diff --git a/1985/applin/README.md b/1985/applin/README.md index 2deb96d23..a676d9b4d 100644 --- a/1985/applin/README.md +++ b/1985/applin/README.md @@ -6,7 +6,7 @@ Jack Applin [with help from Robert Heckendorn] make all -## To run: +## Try: ./applin diff --git a/1985/sicherman/README.md b/1985/sicherman/README.md index d7f336f3e..50143ed7c 100644 --- a/1985/sicherman/README.md +++ b/1985/sicherman/README.md @@ -8,6 +8,9 @@ Col. G. L. Sicherman NOTE: This entry requires a compiler that support `-traditional-cpp`. +## Try: + + ./sicherman < sicherman.c ## Judges' comments: diff --git a/1986/applin/README.md b/1986/applin/README.md index 3e91b27b4..475067f11 100644 --- a/1986/applin/README.md +++ b/1986/applin/README.md @@ -10,6 +10,10 @@ USA make all +## To run: + + ./applin + ### Try: sh applin.c diff --git a/1986/august/README.md b/1986/august/README.md index d38fa1d25..408487713 100644 --- a/1986/august/README.md +++ b/1986/august/README.md @@ -10,6 +10,13 @@ Sweden make all + + +## Try: + + ./august + + NOTE: this entry is very likely to core dump after its output. ## Judges' comments: diff --git a/1986/hague/README.md b/1986/hague/README.md index 209f248b2..a147d570e 100644 --- a/1986/hague/README.md +++ b/1986/hague/README.md @@ -13,10 +13,17 @@ UK NOTE: this entry uses gets() so you might get a warning about this when compiling and running this program with some systems. +## To run: + + ./hague + # enter some text + ### Try: ./hague - [enter some text] + IOCCC + International Obfuscated C Code Contest + Jim Hague ## Judges' comments: diff --git a/1986/marshall/README.md b/1986/marshall/README.md index e81a5b848..768697889 100644 --- a/1986/marshall/README.md +++ b/1986/marshall/README.md @@ -17,6 +17,10 @@ main() and the third arg was an int. He notes that he tried to keep the picture as close to the original. The line lengths are the same but some spaces had to be changed to non-spaces. Thank you Cody for your help! +## Try: + + ./marshall + # Judges' comments: This program prints the name of the picture. The layout is somewhat diff --git a/1987/biggar/README.md b/1987/biggar/README.md index 542c5441e..df5b6238d 100644 --- a/1987/biggar/README.md +++ b/1987/biggar/README.md @@ -20,6 +20,8 @@ Santa Monica, CA cat biggar.c | ./biggar | od -c +## Judges' comments: + By changing the compile line you can make this program do anything you want. This is a very efficient way to transfer source, though it increases the size of Makefiles. @@ -38,7 +40,6 @@ entry](../wall/README.md) regarding Mark's contribution but it seems to have been lost in time. If anyone knows about its whereabouts we'd appreciate letting us know. Thanks! -## Judges' comments: Passes BSD and UTS lint. At least one version of lint is thrown into an infinite loop by this entry. diff --git a/1987/heckbert/README.md b/1987/heckbert/README.md index 7fe2c4d10..720199d8f 100644 --- a/1987/heckbert/README.md +++ b/1987/heckbert/README.md @@ -12,7 +12,6 @@ On System V systems, we had to compile with `-Dindex=strchr`. To compile on a 16 bit machine, change 300000 to 30000. -## Judges' comments: ### Try: @@ -25,14 +24,16 @@ Ask yourself what happens to `foo.md` if you try: ./ph 40 < README.md > foo.md -Folding at the wrong length may be equivalent to a "Spindle or Mutilate" operation. For example: + +## Judges' comments: + +Folding at the wrong length may be equivalent to a "Spindle or Mutilate" operation. For example: ./heckbert 40 < heckbert.c > ph.c ; make ph ; ./ph 20 < heckbert.c > bar.c ; make bar - Try not to [Fold, Spindle or Mutilate](https://repository.library.brown.edu/studio/item/bdr:788264/PDF/) -files. :-) +files. :-) ## Author's comments: @@ -41,7 +42,7 @@ No comments were provided by the author. The judges used this program to fold up very long lines which the -BSD fold(1) was unable to process. This program has been added +BSD fold(1) was unable to process. This program has been added to the contest tool chest. diff --git a/1987/hines/README.md b/1987/hines/README.md index 0d05ee191..4f86c2d0a 100644 --- a/1987/hines/README.md +++ b/1987/hines/README.md @@ -21,8 +21,8 @@ USA ### Alternate code -An alternate version of this entry, `hines.alt.c`. -With older compilers you can try the alt version: +An alternate version of this entry is in `hines.alt.c`. With older compilers you +can try the alt version: make alt diff --git a/1987/lievaart/README.md b/1987/lievaart/README.md index abfa133b3..64f899675 100644 --- a/1987/lievaart/README.md +++ b/1987/lievaart/README.md @@ -17,12 +17,18 @@ compiler. ./lievaart # enter a level and start playing as described below - ./lievaart2 - # enter a level and start playing as described below NOTE: if you enter invalid input the program will enter an infinite loop displaying a string like `"You:"` repeatedly. +## Try: + +To see what it would have looked like without the size restrictions: + + ./lievaart2 + # enter a level and start playing as described below + + ## Judges' remarks: We believe that you too will be amazed at just how much power Mr. Lievaart diff --git a/1987/wall/README.md b/1987/wall/README.md index e1941daef..e8a316470 100644 --- a/1987/wall/README.md +++ b/1987/wall/README.md @@ -9,7 +9,14 @@ Panorama City, CA 91402 USA make all -## Judges' comments: +## To run: + + + ./wall + # enter some strings + + ./wall | some_command + # enter some strings ### Try: @@ -35,6 +42,9 @@ and enter some input like: quit # for the cat version +## Judges' comments: + + What we found amazing was how the flow of control was transferred between subroutines. Careful inspection will show that the array of pointers to functions named 'vi' refers to functions which seem to not @@ -44,6 +54,11 @@ done and how it is being exploited? Some compilers complained about this file, so we changed: '=++I' to '= ++I'. + +## Author's comments: + +No comments were provided by the author. + Copyright (c) 1987, Landon Curt Noll & Larry Bassel. All Rights Reserved. Permission for personal, educational or non-profit use is granted provided this this copyright and notice are included in its entirety From 15ce0dc93391f964f54862d8d5158e61ca4839ae Mon Sep 17 00:00:00 2001 From: Cody Boone Ferguson <53008573+xexyl@users.noreply.github.com> Date: Tue, 14 Mar 2023 09:15:40 -0700 Subject: [PATCH 2/2] Add author comments for 1984/mullender By a happy chance I found an article that has some words about the entry from Mullender. See the README.md for the link to that article. We thank the author of the article for this information! --- 1984/mullender/README.md | 44 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/1984/mullender/README.md b/1984/mullender/README.md index 15f51230e..20c33f1dd 100644 --- a/1984/mullender/README.md +++ b/1984/mullender/README.md @@ -44,8 +44,50 @@ couldn't! :-) ## Author's comments: -No comments were provided by the author. +These comments, found at +[https://lainsystems.com/posts/exploring-mullender-dot-c/](https://lainsystems.com/posts/exploring-mullender-dot-c/), +were provided by Sjoerd Mullender years later. We thank the author of the +article for the quote! +I have never known a lot about the VAX assembly, so we used the C compiler to +create the VAX code. We didn't write it ourselves from scratch as we did with +the PDP code. This is the reason why the VAX code is more complex, including the +extra data after the PDP code. + +Robbert and I were students at the VU (Free University in Amsterdam) at the time +(mathematics with CS as our major since there was no CS curriculum when we +started). We had an assignment to create a pair of programs for the computer +networks course. The programs were supposed to send data reliably from one +program to the other over an unreliable channel. This channel was simulated with +a pair of pipes. + +We decided for fun to create an obfuscated set of programs, only for the PDP, to +do this, but circumventing the channel. (I.e. cheating, hence the needed +obfuscation.) Our programs worked and we handed them in. + +Of course, the teacher had a good laugh and then rejected our submission. (We +knew him well, so we could get away with this.) + +Then the IOCCC came along. I don’t remember how we heard about it, but at the +time there was a world-wide messaging network Usenet where we read a bunch of +newsgroups. I’m sure it was announced there and we saw it. + +Since we had just recently created these obfuscated programs we decided we could +use the same technique for an obfuscated C program. We upped the ante a bit by +making it “portable”. + +To add to the obfuscation, we used different formats for the integers in the +array, some in decimal, some in octal, some in hexadecimal, and when the value +would fit, some as an ASCII character. + +The rest is history. + +Since this was the first contest, we hadn't seen any old entries, nor had any of +the other contestants. Of course we knew about #define and tricks you could do +with that, but we didn't need that for this program. In fact, we made it as +“standard” as possible. At the time there was this program called “cb” for C +beautifier which would re-indent your program to make the layout look better. Our +program is idempotent under cb. Copyright (c) 1984, Landon Curt Noll. All Rights Reserved. Permission for personal, educational or non-profit use is