While surfing for the original pong schematics -I am planning to build my own original electronic version of it- I came across this video by Jon Stanley who built a relay computer. This is just amazing, and I really want to build one myself one day. The reason is pretty obvious, to program your own instructions by hand, and then hearing the sound of the actual relays performing your instructions is just beyond words! Moreover, this video shows an actual overflow in a branch loop c.q. recursion. Of course it is not exactly the same due to different architecture as your PC, but it gives an idea of what happens. A very nice visual presentation of writing into invalid memory and triggering utter processing noise, pretty awesome if you ask me.
Jon explains: The 32KB RAM is only active from x0000 to x7FFF, so when the CPU branches to xFFFC, nothing is returned on the data bus. This "nothing" or x00 is interpreted as a NOP (no operation) by the CPU, so it simply increments the program counter until an instruction appears. However, as xFFFC increments to xFFFD, xFFFE, xFFFF, the 16-bit incrementer overflows and the PC goes back to x0000. Voila, the CPU is back to the branch instruction that sent it to xFFFC. Sounds like the most worthless program, a branch that loops back to itself. However, the fact the PC changes from the low end of memory to the high end of memory causes the clicks to get heavier. Also, when the PC loads a lot of bits, i.e. xFFFC then the current draw increases dramatically. Also, the computer's clock is gradually increased from around 6 machine cycles per second at the beginning of the video to around 30 machine cycles per second near the end of the video. Beyond 30 machine cycles per second, the relay CPU will start losing bits and go haywire.
Check out his work: http://www.electronixandmore.com/project/relaycomputertwo/
















