Merge pull request #911 from xexyl/faq-orig

This commit is contained in:
Landon Curt Noll authored and GitHub committed 2023-07-10 11:39:13 -07:00
commit 48fbac33c8
11 files changed
+248 -23

No files matched your search

+3
View File
@@ -4,3 +4,6 @@ koch
pi pi
quine quine
prog.orig prog.orig
fun
fun.tar.gz
bf2pdp11
+7 -1
View File
@@ -111,7 +111,7 @@ PROG= prog
# #
OBJ= ${PROG}.o OBJ= ${PROG}.o
DATA= DATA=
TARGET= ${PROG} TARGET= ${PROG} fun bf2pdp11
# #
ALT_OBJ= ALT_OBJ=
ALT_TARGET= ALT_TARGET=
@@ -133,6 +133,12 @@ all: data ${TARGET}
${PROG}: ${PROG}.c ${PROG}: ${PROG}.c
${CC} ${CFLAGS} $< -o $@ ${LDFLAGS} ${BACK_TO} ${CC} ${CFLAGS} $< -o $@ ${LDFLAGS} ${BACK_TO}
fun: fun.c
${CC} ${CFLAGS} $< -o $@ ${LDFLAGS} ${PROG}.c
bf2pdp11: bf2pdp11.c
${CC} ${CFLAGS} $< -o $@ ${LDFLAGS} ${PROG}.c
# alternative executable # alternative executable
# #
alt: data ${ALT_TARGET} alt: data ${ALT_TARGET}
+11 -2
View File
@@ -49,7 +49,6 @@ q
Observe what happens when you hit enter or another character! Send EOF to end Observe what happens when you hit enter or another character! Send EOF to end
the program. the program.
## Judges' remarks: ## Judges' remarks:
Like Marty and Doc, something nostalgic from 1984 appears live in October of Like Marty and Doc, something nostalgic from 1984 appears live in October of
@@ -61,6 +60,16 @@ A question for inquisitive readers: is the implemented subset of PDP-11
instructions Turing-complete? (For a clue, see the end of the author's remarks.) instructions Turing-complete? (For a clue, see the end of the author's remarks.)
If in doubt, use [APOUT](https://github.com/DoctorWkt/Apout). If in doubt, use [APOUT](https://github.com/DoctorWkt/Apout).
The author provided under the section 'One more thing' a program that when
compiled with this entry will generate a gzipped tarball which we have added as
[fun.c](fun.c), built by default through `make all`. To use try:
```sh
./fun > fun.tar.gz
```
for some fun :-) but we also added the tarball [fun.tar.gz](fun.tar.gz).
## Author's remarks: ## Author's remarks:
@@ -123,7 +132,7 @@ register).
### One more thing ### One more thing
Note: the program writes a binary to stdout. Note: the program writes a gzipped tarball to stdout.
short main[]={5568,1,-30460,12,2782,0,-29921,2056,-4864,6873,770,30054,11886, short main[]={5568,1,-30460,12,2782,0,-29921,2056,-4864,6873,770,30054,11886,
24948,114,21716,-28851,14043,-8944,32691,-16187,-12247,22692,-9781,-20403, 24948,114,21716,-28851,14043,-8944,32691,-16187,-12247,22692,-9781,-20403,
+76
View File
@@ -0,0 +1,76 @@
#include <stdio.h>
int main() {
unsigned short n, mem[32768], *p;
unsigned short *stack[256], **sp = stack, **sp2;
char c;
sp = stack;
p = mem;
*p++ = 0000401; p++; /* BR 1; DAT */
*p++ = 0012700; *p++ = 1; /* MOV #1,R0 */
*p++ = 0012701; *p++ = 0177777; /* MOV #-1,R1 */
for(; (c = getchar()) >= 0; ) {
switch (c) {
case '>':
*p++ = 0005741; /* TST -(R1) */
break;
case '<':
*p++ = 0005721; /* TST (R1)+ */
break;
case '+':
*p++ = 0011102; /* MOV (R1),R2 */
*p++ = 0005722; /* TST (R2)+ */
*p++ = 0077200; /* SOB R2,0 */
*p++ = 0010211; /* MOV R2,(R1) */
break;
case '-':
*p++ = 0011102; /* MOV (R1),R2 */
*p++ = 0077200; /* SOB R2,0 */
*p++ = 0010211; /* MOV R2,(R1) */
break;
case '[':
*sp++ = p;
*p++ = 0011102; /* MOV (R1),R2 */
*p++ = 0005722; /* TST (R2)+ */
*p++ = 0077200; /* SOB R2,0 */
*p++ = 0000401; /* BR 1 */
*p++ = 0000403; /* BR 3 */
*p++ = 0077202; /* SOB R2,-2 */
*p++ = 0011707; /* MOV ???,R7 (need backpatch) */
*sp++ = p++;
break;
case ']':
sp -= 2;
*p++ = 0011707; /* MOV ???,R7 */
*p++ = (*sp - mem) * 2;
*sp[1] = (p - mem) * 2;
break;
case '.':
n = (p - mem) * 2 + 8;
*p++ = 0012702; *p++= 2; /* MOV #2,R2 */
*p++ = 0011112; /* MOV (R1),(R2) */
*p++ = 0104404; *p++ = 2; *p++ = 1; /* call write() */
break;
case ',':
fputs("instruction , (getchar) is not supported\n", stderr);
return 1;
}
}
printf("short main[32768] = { ");
for (n = 0; mem + n < p - 1; n++) {
printf("%d, ", mem[n]);
}
printf("%d };\n", mem[n]);
return 0;
}
+9
View File
@@ -0,0 +1,9 @@
>++++++++++>+>+[
[+++++[>++++++++<-]>.<++++++[>--------<-]+<<<]>.>>[
[-]<[>+<-]>>[<<+>+>-]<[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-
[>+<-[>+<-[>+<-[>[-]>+>+<<<-[>+<-]]]]]]]]]]]+>>>
]<<<
]
This program doesn't terminate; you will have to kill it.
Daniel B Cristofani (cristofdathevanetdotcom)
http://www.hevanet.com/cristofd/brainfuck/
+11
View File
@@ -0,0 +1,11 @@
++++++++++[>++++++++++<-]>>++++++++++>->>>>>>>>>>>>>>>>-->+++++++[->++
++++++++<]>[->+>+>+>+<<<<]+++>>+++>>>++++++++[-<++++<++++<++++>>>]++++
+[-<++++<++++>>]>>-->++++++[->+++++++++++<]>[->+>+>+>+<<<<]+++++>>+>++
++++>++++++>++++++++[-<++++<++++<++++>>>]++++++[-<+++<+++<+++>>>]>>-->
---+[-<+]-<[+[->+]-<<->>>+>[-]++[-->++]-->+++[---++[--<++]---->>-<+>[+
+++[----<++++]--[>]++[-->++]--<]>++[--+[-<+]->>[-]+++++[---->++++]-->[
->+<]>>[.>]++[-->++]]-->+++]---+[-<+]->>-[+>>>+[-<+]->>>++++++++++<<[-
>+>-[>+>>]>[+[-<+>]>+>>]<<<<<<]>>[-]>>>++++++++++<[->-[>+>>]>[+[-<+>]>
+>>]<<<<<]>[-]>>[>++++++[-<++++++++>]<.<<+>+>[-]]<[<[->-<]++++++[->+++
+++++<]>.[-]]<<++++++[-<++++++++>]<.[-]<<[-<+>]+[-<+]->>]+[-]<<<.>>>+[
-<+]-<<]
+116
View File
@@ -0,0 +1,116 @@
short main[]={5568,1,-30460,12,2782,0,-29921,2056,-4864,6873,770,30054,11886,
24948,114,21716,-28851,14043,-8944,32691,-16187,-12247,22692,-9781,-20403,
-11771,16546,18710,17873,9233,31304,-32215,-24382,-28247,-25916,10466,24988,
-3404,-4177,-28528,-531,-3016,17300,-28552,-7708,-26180,-4297,-367,-2312,
-25611,28535,-8533,24004,25421,-1224,-5354,-20807,-21589,-6761,-5203,-1055,
-6715,-26673,-1433,-17732,-24198,14681,-3714,-6660,-14891,-25575,20349,-7701,
-8336,31433,16695,-14773,26819,3096,-12584,-28808,17825,-21200,-32399,15877,
-28890,-3728,-27126,21375,-32630,-7615,32004,-29230,-6611,-5508,-28921,12418,
27204,-5725,9643,3520,26836,-29347,2101,-29311,9320,29287,-29990,-6593,29825,
-29114,16232,25641,20672,-23501,-32127,-6546,-956,10474,-29647,1070,5516,13760,
-27814,-32488,-28006,-17968,-3146,10963,19234,22132,23988,7142,5523,9639,-6888,
-11428,7964,23099,-16822,16518,31109,-12958,10351,2434,3091,3625,2244,27512,
-28559,-10724,-19377,23625,30056,11478,-21176,27660,26517,-29037,-9390,12297,
-11903,5980,-21927,-7483,6671,11249,29638,-23827,-26358,-6856,-1063,-5303,
26636,25797,31818,26798,-4243,-18772,-13266,27472,-12005,-10642,-22524,24373,
-13111,-9062,6274,-20002,24150,22189,-14965,-31249,-13934,-6341,-18384,-32054,
-29246,10622,-9260,19428,-15485,2724,23810,16447,11627,18604,2739,27812,30295,
-21538,-31786,11355,-11308,-9006,-4987,25363,-18927,-21130,-31213,-27411,17231,
-19608,20232,27754,16476,11213,-19803,-24048,30918,-25329,21233,-10160,13519,
11828,26653,-6703,10893,6871,-12417,24471,20310,-12137,-19677,4457,-19530,
10147,17724,533,-10055,27076,10264,11274,-10511,4809,25208,16065,-5105,-19953,
3772,-12124,13475,-27559,-9955,26446,15133,15207,-23640,6425,-11010,28688,
-20064,26353,-889,-25008,10380,-14449,-6894,18920,-23900,16902,-31018,16093,
20875,-19576,4585,13126,18589,24789,19424,31274,-5059,-14538,-3125,-16527,
-25070,-9013,26628,15756,-7652,30841,-1283,17707,25717,-18315,-6342,6880,
-19176,6995,5672,2853,-9044,-3409,-14421,-7522,13108,20582,-25317,1376,-5648,
13821,17300,1220,-29437,-25832,-8332,-15575,-9744,28297,31995,-1217,23852,
14382,31059,9160,-3296,20287,-28357,24449,-10323,-21992,-4655,-32548,13237,
-15083,-25226,-21121,2015,-8996,-20247,-27551,-14771,-16089,-6920,-9645,21578,
7142,-5613,14029,24730,-29253,13931,-3862,-16634,-7388,16951,15771,31302,
-22186,-6716,18416,1698,-26200,-16231,9821,-10886,-4994,-30527,-9448,-16923,
29549,-11207,-14909,-3643,-27548,17865,28859,29753,17616,16874,-17733,9424,
21435,-31715,24544,8666,30844,25075,-18267,12027,-5346,2717,19615,-4548,-21763,
28514,11691,22268,-2338,1406,-27379,-23568,-24525,13633,11295,-14715,7877,
-27669,3475,20345,7779,-17849,2184,7132,4079,-24937,11585,22740,5810,-10855,
16203,-6371,23235,-7,-24828,-11205,-11006,-10,-17812,-14274,11504,-27517,463,
4498,-32180,-9775,-3190,-22435,-18662,-30146,-31834,-26449,-19374,-12616,
-10596,14341,-10089,-18449,-16535,21439,21191,-1651,7695,-30009,-23339,-8675,
-20774,21588,-2793,8218,-14337,-10866,14060,-15343,31712,25247,-8539,18074,
-28683,-7363,-7663,-3563,-30718,17771,28687,-30495,30584,14022,-28053,5292,
-31576,-32486,-15470,-1330,23551,-2185,-10829,-13216,-4825,-2964,-14668,24559,
-4930,23731,-1152,-11493,-2321,15987,-27073,-20305,-24065,-25048,32750,-27440,
-1169,-25633,-4356,-24993,30439,-17165,-4580,8662,22655,-4588,-6162,-3122,
31986,-2569,20371,-12320,-25613,-16133,-25644,23677,12254,5855,26325,-13425,
-15903,-1930,-28488,31222,31153,17607,-2758,7594,-8868,30434,-2518,27956,
-19424,7370,6199,-17602,17347,-14358,25588,11611,-25209,-23701,-27444,-29788,
2680,-27406,9318,22483,-28356,28482,4577,-14891,17323,-30152,2507,2977,5004,
-11696,-31623,-15149,13357,28938,-14048,19490,-19860,-26050,10842,-24922,
-20986,8847,-31184,28519,-29168,32195,10516,25713,-3493,670,31283,-12769,
-17461,11357,13180,26133,15944,18051,-32167,-27990,16813,17676,21787,-17578,
11173,19093,2836,656,-15239,4632,23937,4106,-21655,-7494,-21575,-17647,-18465,
-14654,-29990,-10707,-12440,21465,5822,26164,-1404,-14303,-26635,-6900,-23611,
11998,-18551,971,27579,13325,4579,23059,29281,22291,29880,-17546,25664,-14990,
-526,-35,28218,-3214,11965,11263,6633,30719,32400,-29,-3733,24383,32678,-27542,
-4444,6196,5975,-19722,11902,16840,-11680,11146,-26391,-8980,21573,-9043,2349,
-12887,5916,-2996,10410,-23374,26338,11867,-14518,18281,14450,-5815,13842,359,
25450,27043,3355,13423,-20880,-26311,-30720,-2503,-6046,-18156,-18558,-14774,
-15664,-29001,3365,-12689,10233,23608,24692,12039,15445,18411,-27469,3764,
-10841,22672,23844,2282,-12443,2851,-27163,13651,13738,17201,-29819,27414,
-29764,-5308,-16171,-32427,-26312,-7460,-27376,-6004,25717,29254,-15015,8754,
15493,22232,-28513,-23355,23676,7736,10571,-8120,-16677,7696,32549,-2646,25538,
3498,30960,-28459,24716,12655,-10496,402,26209,482,-16661,-20350,-3403,14015,
32299,11262,-25886,4092,-7843,-100,-1975,-58,-3729,-19269,-23583,-6929,20000,
-6089,17780,-3250,29830,19954,-29277,27896,10330,9277,-25358,31279,-14454,
24203,-30170,12872,-21973,-25773,-10502,-6647,-26143,6394,-13479,-24559,23007,
-21844,1505,24702,-23187,-24364,-20470,20765,-7107,15674,9404,17408,17964,
19820,18952,2154,-26052,30056,-3227,17770,-8557,-31018,-27700,-25974,9003,
18218,22730,-19981,6737,3532,1562,-23626,14990,28472,-5270,17358,-32204,-29197,
-3647,4296,8588,25302,-23906,30328,-29119,-24392,8992,-16557,31530,-31216,
14107,13041,-6976,7529,-8296,17865,-1462,8181,-21588,-131,-10177,-25931,-14627,
8301,3708,-32097,20808,13892,-21179,1192,20853,3249,-8774,20843,3520,24954,
-14215,-25170,-16170,2390,25964,-23923,-17464,-7177,-27568,-9880,-4647,-7323,
15388,2113,-12338,-7737,26255,26818,-22156,-19610,-911,-17057,-556,29935,27647,
31806,23676,-18132,-19234,-10869,-3715,24983,-10900,-29564,19856,-16392,-31860,
-25826,24077,12080,15383,-29852,-2266,-27217,31931,-3183,17385,-14211,19050,
-2449,-468,-2871,-11466,973,2866,649,1367,-8688,-24069,20992,25139,-25850,1184,
15851,785,16951,12160,22337,-21851,1849,-18801,14247,-429,-12682,30881,-11273,
-24819,-9794,8389,-27287,7525,16633,1328,-26650,32607,-8217,31912,7774,-16188,
-3546,-6550,-16279,-32696,1940,2577,-23723,-6484,2009,-424,27833,-21763,-13902,
7044,27360,-18450,27889,23987,3137,-7669,-5784,-7490,24946,32302,26464,-15513,
28898,2493,-17645,-4615,-13434,-20884,-4058,-29951,-22281,24784,21083,-8536,
22147,-11261,-15069,20659,2993,19029,21909,6748,-3263,1401,30960,11000,-16871,
-30566,-14959,-26356,-2885,21526,-26531,31063,12857,4992,-5067,3130,-17602,
-1732,-6593,30200,24679,3267,310,20733,24863,-15669,7875,-4577,-13821,-22325,
15548,29744,3733,-14547,21459,22122,3854,-2572,30197,-24770,-21263,8793,-8316,
1571,28191,-16143,-6446,31524,-26496,-17349,-29097,2806,11281,-7041,-683,14149,
19689,-22094,-1657,-30904,183,-15226,-6358,25461,461,1495,28345,-10554,-4004,
27119,13484,-21600,-12272,-7272,-14064,-299,10697,11280,19066,-9841,-7265,
-18002,19906,-17247,21482,-10939,-5897,-22300,-13978,27575,-8684,-6222,-19041,
5788,-30863,-10134,15142,2895,14705,-17713,12940,-21535,-11619,29416,18417,
-24973,24867,-26462,-24910,-32556,-26705,-7187,-7750,-758,-14809,20289,9260,
13778,-1422,30301,-1922,30646,27662,-15465,-912,29340,13846,-1263,28887,-20019,
32421,-29411,-27632,-7495,-8368,29230,-6386,-19536,-5235,2054,1854,23563,12348,
-15165,-2936,-28063,-15760,20126,-25531,4963,-5739,23182,16895,-17258,-10470,
-3969,-7742,-140,4475,-24014,-31961,19231,27153,-18551,20157,26443,11530,
-22214,2284,-24238,-31051,-26422,9088,29868,18458,8488,-9515,6799,-12507,54,
-19441,-32665,12561,23560,4725,-28617,-14800,-10224,-13503,-17636,-16823,
-24072,18735,-29798,-23658,-670,-21769,7489,-6468,-8961,-14785,22255,11582,
-29831,16303,-19652,2922,-4362,22966,16173,-18446,-6148,27381,-8493,-32289,
24005,-3027,-18665,-16472,-17793,-27027,-7443,17854,31365,-17726,-2510,-17546,
14893,21773,-23634,21117,32533,6637,-1106,-8152,-3672,-113,-2149,-34,-22700,
-4102,-28533,-14104,-10086,4378,13695,-15320,-28258,2246,7595,30021,13281,
-11968,-29983,14274,27152,26713,19434,17058,1142,-3043,-16496,18630,-11976,
29168,-3634,32746,27287,-268,16711,-8712,-471,12895,17406,-22548,-3969,-10733,
13128,10530,-31667,7929,-32277,30926,-1983,8401,-7705,6790,4532,1442,26728,
29600,-15358,21622,9744,11406,15989,-30741,-15044,29913,24534,6774,-3755,17623,
19647,18762,10042,9653,-5889,2408,-32579,-6285,-28559,-30655,6294,-21175,4390,
1668,25437,2821,21066,-13680,5274,-27253,-5248,-26307,29744,-26428,25358,17196,
15199,-29784,-4604,25653,-8048,-23131,-28995,31340,-9558,26186,11268,27916,
9646,-7389,-11384,-29116,-4100,160,18394,7856,738,-25920,12148,24713,-31664,
8203,-25556,13494,30352,29161,30898,1432,-5991,25411,1344,-4019,22299,15685,
-16401,-23136,-28110,11874,-18945,1879,2,0,-32256,-20996,-18169,29220,12,0,0,0,
335,-27277,-30776,20480,0};
+1
View File
@@ -0,0 +1 @@
++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.
+1 -14
View File
@@ -367,7 +367,7 @@ something was noted by the author, the judges, a consequence of earlier
requirements for winning entries or the purpose was to do something that might requirements for winning entries or the purpose was to do something that might
appear to be buggy. An example of system specific entries: appear to be buggy. An example of system specific entries:
[1984/mullender](1984/mullender/mullender.c) (see below and the [faq](/faq.md) [1984/mullender](1984/mullender/mullender.c) (see below and the [FAQ](/faq.md)
for a version that works in modern systems) is very system specific and was for a version that works in modern systems) is very system specific and was
before system specific winning entries were discouraged. This is an all time before system specific winning entries were discouraged. This is an all time
personal favourite of Landon Curt Noll. Run the alternate code to understand why personal favourite of Landon Curt Noll. Run the alternate code to understand why
@@ -1858,19 +1858,6 @@ is not. Again see his README.md for details!
# 2015 # 2015
## [2015/endoh3](2015/endoh3/prog.c) ([README.md](2015/endoh3/README.md))
## STATUS: missing files - please provide them
With Yusuke's analysis of his entry which can be found
[here](https://mame-github-io.translate.goog/ioccc-ja-spoilers/2015/endoh3.html?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-US&_x_tr_pto=wapp)
he shows a tarball with source files that work with his entry, a mock emulator
for [1984/mullender](1984/mullender/mullender.c). Unfortunately he does not have
the tarball available for download and only showed a few (which
[Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) added to the repo).
Cody has his email and WILL be contacting him in time but we note it here anyway
for now.
# 2018 # 2018
+8 -4
View File
@@ -66,9 +66,8 @@ PDP-11/40 emulator.
Others are not so easy though we're working on this and over time have added Others are not so easy though we're working on this and over time have added
alternative code. Most entries do now work and the others we are working on. In alternative code. Most entries do now work and the others we are working on. In
some cases we replaced the original code with code that works for modern systems some cases we replaced the original code with code that works for modern systems
but one can view the archive for the original code (sometimes the original code but one can view the original code in the `.orig.c` files (sometimes the
is in the directory usually as a `winner.alt.c` or `prog.alt.c` but note that original code is also in the directory as a `winner.alt.c` or `prog.alt.c`).
sometimes authors have that already as well).
## Q: After running a program my terminal is all messed up! How do I restore my terminal? ## Q: After running a program my terminal is all messed up! How do I restore my terminal?
@@ -150,7 +149,7 @@ packages: one for compiling and one for linking / running.
### macOS ### macOS
If you're using macOS there are at least three ways to obtain it. You can If you're using macOS there are at least three ways to obtain it. You can
download it from the SDL website and install the package. The latter will not download it from the SDL website and install the package. That will not
work well for the IOCCC but these will: work well for the IOCCC but these will:
#### MacPorts #### MacPorts
@@ -216,6 +215,11 @@ For the original version see the [/archive](/archive) directory where you can
find all the original winning entries. In some cases the `winner.alt.c` is the find all the original winning entries. In some cases the `winner.alt.c` is the
original source code. original source code.
## Q: Since some entries have been modified over time, how can I view the original entry?
See either the `winner.orig.c` or `prog.orig.c`, depending on the year (earlier
years we did not rename the code to `prog.c` but had it as the winner handle),
in the winning directories.
## Q: I found a bug in a previous winner, what should I do? ## Q: I found a bug in a previous winner, what should I do?
+5 -2
View File
@@ -1417,8 +1417,11 @@ The author, Yusuke, supplied the additional source files, which Cody added to
the repo for us. Yusuke wrote in his [analysis of the the repo for us. Yusuke wrote in his [analysis of the
entry](https://mame-github-io.translate.goog/ioccc-ja-spoilers/2015/endoh3.html?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-US&_x_tr_pto=wapp) entry](https://mame-github-io.translate.goog/ioccc-ja-spoilers/2015/endoh3.html?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-US&_x_tr_pto=wapp)
that there are others as well but we don't seem to have them and he didn't that there are others as well but we don't seem to have them and he didn't
provide them on his page. We've not yet contacted him for a copy but we will in provide them on his page. Cody contacted him and he sent the tarball but it was
time. also hinted that in the README.md there is a program that generates the tarball
which Cody added as [fun.c](2015/endoh3/fun.c). He also added the tarball itself
and the files within it less the README file.
## [2015/hou](2015/hou/prog.c) ([README.md](2015/hou/README.md)) ## [2015/hou](2015/hou/prog.c) ([README.md](2015/hou/README.md))