Typical esoteric programming languages can use only standard input & output. For example, Brainfuck
. command does the byte-oriented output and
, does input, but nothing else.
Thus there are several operating system interfaces designed specficially for such languages. Using these layers, the program written in such languages can use the external functions via normal input and output.
EsoAPI is the earlier (if not earliest) attempt; it uses
00 (aka null byte) as special code. Version 1.0 has seven defined functions, consists of one function for printing null character (
00 00), five functions for disk I/O (
00 01 to
00 05), and one function for installation check (
00 08). Unfortunately it is intended to be used in the operating system, and doesn't fit well otherwise due to its use of bulk disk I/O.