The unexpanded ZX81's tiny memory presents a major challenge to programmers. Simply displaying a full screen takes up to 793 bytes, the system variables take up another 125 bytes, and the program, input buffer and stacks need more memory on top of that. Nonetheless, ingenious programmers are able to achieve a surprising amount with just 1 KB. One example is "1K ZX Chess" by David Horne, which includes most of the rules of chess in 672 bytes. The ZX81 conserves its memory to a certain extent by representing entire BASIC commands as one-byte tokens, stored as individual "characters" in the upper reaches of the machine's unique (non-ASCII) character set.