diff --git a/1992/nathan/README.md b/1992/nathan/README.md index ebf960802..d169fe46d 100644 --- a/1992/nathan/README.md +++ b/1992/nathan/README.md @@ -9,7 +9,7 @@ ## To build: - make all + make nathan ### To run @@ -17,29 +17,9 @@ ## Judges' comments - The US International Traffic in Arms Regulations controls certain - exportations going out of the United States. The U.S. Munitions - List gives the specific categories of restricted exports. Because - this entry appears to fall under this restricted catagory, the - judges may not be able to distribute winners outside of the USA. - - Nathan Sidwell has stated that he is willing to distribute the - winning source. To read HIS instructions of how to obtain his - winning program: - - make nathan - nathan - - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= - =-=-= The text below assumes that you have the winning source =-=-= - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= - - To use: - make nathan - Try: - nathan obfuscate < nathan.c > foobarf.c - nathan - obfuscate < foobarf.c > barfoof.c + ./nathan obfuscate < nathan.c > foobarf.c + ./nathan - obfuscate < foobarf.c > barfoof.c diff nathan.c barfoof.c WARNING: @@ -51,20 +31,40 @@ NOTE: The 'winning' catagory is also open to question. One could say that it is a 'file obfuscator'. One could also say that it - unintentionally adbused the intent of rule #7 (that programs + unintentionally abused the intent of rule #7 (that programs should be freely redistributable). We suspect that the author may not have intended to do this, but that is the way things go sometimes. BTW, 'abuse of the rules' entries do not violate the rules. Entries that violate the rules are disqualified. Abuse of the - rules entries are ones that tend to 'streach' the limits and + rules entries are ones that tend to 'stretch' the limits and take the contest into unexpected territory. + +### Historical notes for this entry from the judges + + The US International Traffic in Arms Regulations controls certain + exportations going out of the United States. The U.S. Munitions + List gives the specific categories of restricted exports. Because + this entry at one time appeared to fall under this restricted catagory, the + judges originally were not able to distribute winners outside of the USA. + + Nathan Sidwell stated that he was willing to distribute the + winning source. To read HIS instructions of how to obtain his + winning program one was able to run: + + make nathan + ./nathan + + + to learn how to get a copy of the code. + + ### Personal note from chongo: - I think this situation shows just how ridiculous US crypto - regulations really are. Certain US federal officials can get away + I think the situation showed just how ridiculous US crypto + regulations really were/are. Certain US federal officials can get away with shipping arms to certain nations in apparent violation of US laws, but I personally can't re-distribute a program contest winner to the network! @@ -89,7 +89,7 @@ PORTABILITY (A little knowledge is a dangerous thing) - Its written in ANSI C, and doesn't even assume an ASCII character + It's written in ANSI C, and doesn't even assume an ASCII character set, (it has an array of the characters to convert), so should be portable across many platforms. It passes gcc -ansi -pedantic -O -Wall with no warnings (You may get assignment in conditional diff --git a/1992/nathan/nathan.c b/1992/nathan/nathan.c index fee296399..801991c17 100644 --- a/1992/nathan/nathan.c +++ b/1992/nathan/nathan.c @@ -1,26 +1,53 @@ -#include -static char *text[] = -{ - "Export of this program from the USA is governed by the US", - "Munitions List from the ITAR (International Traffic in Arms", - "Regulations). This list gives the specific categories of", - "restricted exports and includes cryptographic exports. Traffic", - "entirely external to, entirely internal to, or into the USA is", - "not restricted.", - "To obtain a copy of the program, email to nathan@inmos.co.uk", - "with a subject \"IOCCC request\". If you know that your 'From'", - "line is incorrect, add a single line", - "\"replyto you@your.correct.address\" to the body of the message.", - "A daemon will autoreply.", - "WARNING: You must not re-export this out of the USA, or else", - "the men in black might get you.", - NULL -}; -int main() -{ - char **ptr; +#include +#include +#define printf sqrt +#define OFST 1 +#define strnel(sqrt)(sqrt-printf) + +int main(argv,argc)int argv;char*argc[] +;{char*i,*sqrt,*magic,*define;int ptr,\ + watch, + t,cond + ;for( + argc++ + ,sqrt= +"1""q""a""z""2""w""s""x""3""e""d""c""4" +"r""f""v""5""t""g""b""6""y""h""n""7""u" + +"j""m""8""i""k"",""9""o""l"".""0""p"";" +"/""[""'""`""]""\"\\"" ""Z""X""C""V""B" +"N""M" "<"">" "?""~" +"="":" "L""K" "J""H" +"G""F" "D""S" "A""!" +"Q""@" "W""#" "E""$" +"R""%" "T""^" "Y""&" +"U""*" "I""(" "O"")" + +"P""_""{""+""}""|""-",define=sqrt,cond= +strlen(printf),i=printf+cond,t=(((ptr=\ +argv<= +OFST|| +strcmp +(*argc +,i-1)) +?0:(argc + +++,argv--)),OFST-1);(watch=fgetc(((!*i\ +&&argv>OFST?i=*argc:0),stdin)))!=EOF;*i? +i++:0) +(magic +=strc\ +hr(pr\ +intf,( +define + +=(*i?(define=strchr(printf,*i))?define: +printf:sqrt),watch)))?watch=t,watch=((t= +strnel( magic)) ++(watch -strnel +(define ))*(ptr +*2-OFST )+cond* +(OFST+1 ))%cond +,ptr?t=watch:0:0,fputc(magic?watch[pri\ +ntf]:watch,stdout);return 0;} /*world*/ - for(ptr = text; *ptr; ptr++) - printf("%s\n", *ptr); - return 0; -} diff --git a/2020/ferguson2/README.md b/2020/ferguson2/README.md index b7470f4df..77ac89c9f 100644 --- a/2020/ferguson2/README.md +++ b/2020/ferguson2/README.md @@ -162,15 +162,9 @@ empty plugboard (they had none). I explain how to set up the simulator later. Yusuke Endoh asked the judges and me if the real 1992 entry source was available. Simon Cooper didn't have access to it because it was before his time in the IOCCC; but before the other judges could answer Ilya Kurdyukov sent a link to -the original 1992 code. However because I do not know the current status of the -regulation (though it seems unlikely that it still applies) I am only citing an -old version of the IOCCC website: +the original 1992 code. As of March 2023 the original before unseen code was +published but I leave this in for historical purposes. - nathan - obfuscation by (trivial) encryption (source not exported) - - Brian Westley decided to just ``screw the (US) government'' and make the real nathan.c source available. We also note that Nathan Sidwell who lives outside the US made his own source available as well. - -Anyone who wants to find it I am sure can but I leave that to them. ### Usage diff --git a/years.html b/years.html index a53168074..288d44775 100644 --- a/years.html +++ b/years.html @@ -2810,21 +2810,6 @@ may be found in albert.fix.c.
  • Makefile
  • nathan.c -
  • -Brian Westley decided -to just make the real source available. -The source at that site no longer exists. -Around the same time, were were notified by -Nathan Sidwell -(who lives outside the US) that his -source available on the Web as well. -The source at that site also no longer exists. -

    -Update: We were told that Google has a -comp.lang.c -archive with a copy of the source ported by -Nathan Sidwell. -

vern - plays chess