The Atari 2600 (released 1977) has no built-in BIOS, graphics, fonts etc. Everything has to be inside the ROM. So this 1K challenge perfectly fits for this little old machine.
Also, by default, there are only 128 bytes of RAM, which have to be shared between variables and stack pointer.
Besides that, there is no frame buffer. Instead a routine called the "kernel" updates the few single line, single color display objects while "racing the beam". For each scanline the 6507 CPU has 76 cycles available for doing that.
Only the time above and below the display can be used for other calculations like game logic, controller inputs etc.
Therefore for me, developing for the Atari 2600 is the ultimate challenge in size and speed effective coding.