We're hoping to set up an archive of all the entries along with any additional information available (so please don't throw away any annotated assembly listings, background information etc. which you didn't send with your entry). We don't have anybody to set this up at the moment, so in the meantime here are the prizewinning programs, i.e. the winner, 4 runners-up and the UK school student winner. Since this page is a temporary stop-gap, if you want to run the programs, you'll have to save the HTML of this page, and extract the snapshot/asm files with an editor.
Quoted text is from the authors' descriptions of the programs. I've added some extra background information which I hope will be informative. However, note that I was not one of the judges so this information is not definitive.
The entries fall into two broad classes, which were dubbed "mathematical" and "graphical". The mathematical programs do some sort of calculation, with the result bit-pattern to be interpreted as one or more numbers. Graphical programs make use of the store as a bitmapped display, and the result bit-pattern was typically interpreted as an animation, or as a symbolic representation of something.
32 0000:00000000000000000000011110000000 0001:10111000000000100000010001000000 0002:11011000000001100000011110000000 0003:00111000000000100000010001000000 0004:01011000000001100000011110000000 0005:01011000000000100000000000000000 0006:10111000000000010000011111000000 0007:00111000000001100000000010000000 0008:00000000000000110000000010000000 0009:10011000000000000000010010000000 0010:11011000000000010000001100000000 0011:11111000000001100000000000000000 0012:00000000000001110000010000000000 0013:01111000000000100000010000000000 0014:00011000000000010000010000000000 0015:01111000000001100000010000000000 0016:01111000000000100000011111000000 0017:01111000000001100000000000000000 0018:11101000000000000000001111000000 0019:00000000000000000000010000000000 0020:00000000000000000000010000000000 0021:00000000000000000000010000000000 0022:00000000000000000000001111000000 0023:01000000000000000000000000000000 0024:10000000000000000000000000000000 0025:00110000000000000000000000000000 0026:00000000000000000000000000000000 0027:00000000000000000000000000000000 0028:01011001010000000000000000000000 0029:01010100000000000000000000000000 0030:00000000000000000000000000000000 0031:00000000000000000000000000000000
30 0000 JMP 24 0001 LDN 21 0002 STO 21 0003 LDN 21 0004 SUB 15 0005 STO 21 0006 LDN 15 0007 STO 22 0008 LDN 22 0009 STO 22 0010 LDN 22 0011 SUB 15 0012 STO 22 0013 SUB 21 0014 CMP 0015 NUM -1 0016 LDN 21 0017 STO 23 0018 LDN 23 0019 SUB 22 0020 JMP 0 0021 NUM 1 0024 NUM 7 0025 CMP 0026 JRP 0 0027 STO 23 0028 LDN 23 0029 SUB 22 0030 CMP 0031 JMP 20
The basic algorithm for this program appeared in a few places, but this was judged the most imaginative setting. The dog kennel on the right hand side is the University of Manchester logo.
31 0001:11011000000000100000000010000000 0002:00111000000000010000000101000000 0003:00000000000000110000001000100000 0004:00111000000000000000010010010000 0005:11111000000000100010100000001010 0006:00000000000001100101000010000101 0007:00000000000000100111001010100111 0008:00000000000000010101001010100101 0009:11111000000001100101001010100101 0010:00000000000000110101001010100101 0011:00111000000001000111111111111111 0012:10111000000000000100000000000001 0013:00111000000000100100000111000001 0014:11111000000001100100001000100001 0015:01111000000000100100010000010001 0016:00000000000001100100100000001001 0017:00000000000000100111100000001111 0018:00000000000000010000000000000000 0019:01111000000001100110001111000111 0020:01011000000000010010001010101010 0021:00000000000000110010001010010010 0022:10111000000000000010001010010010 0023:00111000000000100001110011000111 0024:01111000000001100000000000000000 0025:10111000000000000000000000000000 0026:00000000000111111111111111111111 0027:01101110100110011111111111111111 0028:10000000000000000000000000000000 0029:00000000000000000000000000000000 0030:11111111111111111111111111111111 0031:11111111111111111111111111111111
This was one of very few programs to make active use of the unused bits on the right, rather than just having a picture there (we'll see another shortly). Also a nice cross between "mathematical" and "graphical".
31 0001 LDN 29 0002 SUB 29 0003 STO 29 0004 CMP 0005 STP 0006 LDN 29 0007 STO 29 0008 LDN 22 0009 SUB 29 0010 STO 30 0011 LDN 30 0012 STO 22 0013 LDN 8 0014 SUB 28 0015 STO 30 0016 LDN 30 0017 STO 8 0018 SUB 27 0019 STO 12 0020 LDN 28 0021 SUB 26 0022 STO 28 0023 LDN 28 0024 STO 28 0025 JMP 31 0026 NUM 1 0027 NUM -8192 0028 NUM -6 0029 NUM 131072 0030 NUM 0 0031 NUM 0
There were no less than 22 instances of what became known as the "banner program", which displayed a scrolling banner moving from left to right across the bottom of the display. Well, actually 23. Such a program was written by a member of the rebuild team, and was being used as a test program for the machine well before the competition started!
Banners less than 7 lines wide were eliminated because they weren't coded tightly enough (9 is possible). Of the others, the judges looked for the most imaginative use of the idea, and chose Frank Hurley's:
"Tom Kilburn's Nightmare of '48. The program is an animation of a giant baby and Tom chasing after each other for eternity underneath a jumble of bulbs, switches, cables, smoke and iron. Viewable on store tube. The program does not terminate and the animation cycles every 8 seconds @ 700 ips. Blurred vision helps."
Note how the actual code is incorporated into the graphics. The chase happens at frantic speed on the simulator on a typical PC, it looks much better closer to the real machine speed.
32 0000:00000110101001000100000100000100 0001:10011011111100100010000010001000 0002:10000010000101101000100001010000 0003:00000010000100110100001001100000 0004:11101011111100011010101010010100 0005:10000000110000010001000010101001 0006:10000001111000010000100100001100 0007:10000001111000010000011000000010 0008:10011000000001101000011001000001 0009:10101001111000100100100100000010 0010:00000001111000110011010010000100 0011:01101001111000010011000001001000 0012:11101001111000010100100000110000 0013:10101000110001101000010000110000 0014:10100001111000010000001001001000 0015:00010011111101100000000110000100 0016:00000111111110010000000010000010 0017:10000011111101101111111111111111 0018:10101001111000100110011001100110 0019:10101000110001101111111111111111 0020:00011000110000001111111111111111 0021:01100000000000000000000000000000 0022:11100000000000000000000000000000 0023:11111111111111111111111111111111 0024:00000000000000000000000000000000 0025:00000000000000011111000000100000 0026:00000000000000100000100001010000 0027:00000000000000100010100000100000 0028:00000001111110100000100000111000 0029:00000010000000011111000000100000 0030:00011110011110001000000000100000 0031:00111111111111111110000001010000
Of course the program will typically run in much less than 3 minutes on the simulator. It turns out that rather more happens than the description suggests...
31 0000:00000000000000000000000000000000 0001:10011011111000101111110000111111 0002:00111000100001100000000000000000 0003:00111000100000100000000000000000 0004:10111000100000010000000000000000 0005:10011000000001100000110000110000 0006:11111001110000100000000000000000 0007:11011000100000010000000000000000 0008:00000000100000110000000000000000 0009:01011001110000000011110000111100 0010:10100000000000100000000000000000 0011:11011010001000010000000000000000 0012:00111011011001100000000000000000 0013:00111010101000100000110000110000 0014:10100010001001100000000000000000 0015:10000000000000100000000000000000 0016:11011011111000010000000000000000 0017:00111011110001100011110000111100 0018:00111011111000100000000000000000 0019:10000000000001100000000000000000 0020:01111011110000010000000000000000 0021:00000010001000110000110000110000 0022:00000011110001110000000000000000 0023:00000010010000000000000000000000 0024:00000010001000000000000000000000 0025:00000000000000001111110000111111 0026:01100000000000000000000000000000 0027:11111111111111111111111111111111 0029:00000000000000000000001000111111 0030:01111011111000101111110000111111 0031:00001011011000000000000000000001
John Sargeant (ex- competition coordinator).