Sunday, 29 June 2008

More often than not, infinite loops are created by programming errors and are quickly dealt with. In sympathy for this highly persecuted group of programs, a safe haven has been created on retro code. The two infinite loops below are highly optimized examples. In fact, the actual loops are only 1 byte long!

Z80 Infinite Loop

ld hl, HEREHERE:jp (hl)

8080 Infinite Loop

lxi h, HEREHERE:pchl

Corewar Infinite Loop

jmp #0, In Corewar, the infinite loop finds its niche destroying small mobile programs called imps!

If you know any infinite loops in need of shelter, please post them in the comments below.

The 8080 & Z80 infinite loops are one instruction long but not one byte long. The 8080 JMP instruction is three bytes long. The Z80 added relative jumps which decreased local jumps to two bytes. I believe some processors (6502 maybe?) had a one-byte HLT instruction which was implemented as a jump to current location.