Please note, this is archived content and is no longer being updated. Please update your bookmarks and links to point to this permanent URL: http://curation.cs.manchester.ac.uk/digital60/www.digital60.org/rebuild/50th/competition/prizewinners.html.

Prizewinning Entries

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.

The UK Schools Winner

Brendan Campbell wrote a program to do integer division, giving quotient and remainder. This would have been an essential library routine in the early days. Note the personalisation of the program in the spare bits on the right:

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

The Runners-up

Prime Numbers

Bas Wijnen from Holland wrote a prime number generator, which was judged to be the best of the mathematical programs, a difficult choice among many possibilities. This is about the most complex calculation which can be performed in the 32 instructions (the First Program was effectively a subcomponent of this program). When the program stops having found a prime, it can be restarted and will go on to the next one.

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

Medieval Analog Clock

John Deane from Australia wrote a "Medieval analog clock which displays the hour as the number of zeroes counted from the left in location 30. The fraction of the hour is displayed in location 31 where each 0 from the left indicates 1/32 hour (about 2 minutes)."

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

Parabola

Magnus Olsson from Sweden wrote a program which: "uses the CRT as an X-Y display to plot a parabola by setting bits in the unused upper half of lines 1-22. The parabola is computed as the solution of a difference equation."

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

Tom Kilburn's Nightmare

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

The Winner

Yasuaki Watanabe from Japan provided the following description: "This is a three minutes timer program. If you want to eat instant noodles, use this program. Start the program after pour hot water into the cup. Open the cover and start to eat if the "Stop" indicator is illuminated. I promise you that the noodles taste good." On the day, a Japanese TV crew turned up and enacted this rather literally.

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).