A while ago I read a post about creating the smallest possible ELF executable doing something observable — printing the number 42, for example — which Linux could accept and execute successfuly. The result was 45 bytes.
This prompts a question: among retro systems which accepted batch jobs on punched cards or punched tape, has any of them had the job control language concise enough to allow a complete job on a single punched card, or its equivalent?
I have a vague recollection reading that the trick has been pioneered on IBM 1401, and such jobs were called "koans", but I was not able to find a concrete example. It would be interesting to see if the contents of the card included at least some meta-information for an operating system to parse, or just the bare machine commands for a boot loader.
How does an IBM 1401 koan look like, and were there other systems which allowed "koans"?
For an example from the other side of the Iron Curtain, a minimalistic BESM-6 batch job, using a streamed format with explicit line breaks, printing "HELLO WORLD" would look like
ШИФР 123400^ОЗУ 1^ВРЕ 1^ВХО 1^ЕВ1K000640003K000740000C0000000500000006C0070000040000000БHELLO Б WORLDЕКОНЕЦ
translated, that is
USER 123400^RAM 1^TIM 1^STA 1^ЕS1I000640003I000740000D0000000500000006D0070000040000000THELLO T WORLDЕFINIS
which would fit on a punched card in the compact (byte-based) encoding, one of the encodings accepted by the OS, that allows 120 characters per card.
Legend:
USER
: 4 digits of user ID, two digits for the job ID (arbitrary)RAM
: requested number of pages (1 page = 6 Kb) of RAMTIM
: requested time in seconds (1)STA
: start address (1)E
- end of resource sectionS1
- start loading at address 1I000640003
- instruction @1: "print" syscall, control words start at address 3I000740000
- instruction @2: "terminate" syscallD0000000500000006
- data @3: start (5) and end (6) address for printing, inclusiveD0070000040000000
- data @4: one of the 0s - text format; 70 octal - start position 56, roughly centered on a line; 4 - flag "last control word".THELLO
andT WORLD
- data @5 and @6: text information, 6 characters per word.E
- end of segment introduced byS1
FINIS
- end of job (the Russian word for "end" is 5 letters long)