Earlier quoted context omitted.
It's a nice hack. I think this is how Woz did the Apple II paddles, too (albeit with discrete components and a timer IC). It sounds familiar.
Yes, the Apple II also uses a resistor-capacitor timing circuit to determine the paddle position. The big difference, however, is that the Apple II uses the timer and a counter to produce a paddle position 0-255. Software can then use this value to e.g. draw a paddle at a position on the screen. The game chip, on the other hand, doesn't produce a value. Instead, the timer is synchronized to the screen drawing, so whe…
Confirmed the MOS 7600/7601 Pong chip is a true microcontroller
11–20 of 49 posts
Re: Confirmed the MOS 7600/7601 Pong chip is a true microcontroller
#12Earlier quoted context omitted.
Yes, the Apple II also uses a resistor-capacitor timing circuit to determine the paddle position. The big difference, however, is that the Apple II uses the timer and a counter to produce a paddle position 0-255. Software can then use this value to e.g. draw a paddle at a position on the screen. The game chip, on the other hand, doesn't produce a value. Instead, the timer is synchronized to the screen drawing, so whe…
How is intersection with the ball detected?
I haven't figured out how the ball position is stored. It seems like they'd need a register for the X and Y position, along with an incrementer/decrementer, but I couldn't find that. Maybe there's something tricky going on. Or maybe I haven't looked in the right place.
Re: Confirmed the MOS 7600/7601 Pong chip is a true microcontroller
#13There were several machines of the time that had pluggable cartridges, from Binatone, Telarude?/Telalude? (French or Italian company I recall, I forget), Telstra/Telstar, again, I forget, it was 45 years ago, along with many others, where the display circuitry, power and joytsticks were all on the main board, but each cartridge carried its own CPU and ROM, which was the fashion back in the day.
They were an absolute bugger to write code for, no complex ALU to speak of, no register storage, no RAM, you sort of just chased the CPU with a stream of instructions, stored stuff in decay buffers (you want a countdown from 10? charge up that cap for a brief period of time then let it leak) or on the display output circuitry that you could read back if you needed. If your code went wrong, you never knew it.
You were mostly bit-banging analogue circuits to get anything to display, same for the audio, though it could also talk to some AY audio synthesizer.
I recall the 7601 had a reasonably short lifespan in the marketplace for a variety of reasons.
There were two datasheets for it that were the bible, there might have been more but I only ever had access to bad photocopies of those two. One was the usual electrical characteristics and the other was the instruction set with the usual timings, delays and addressing modes.
The addressing modes were stupidly simple by the standards of today. There were EPROM variants (gold pin variant IIRC) available that you wiped with a strong ultraviolet light, but generally you had an off-board EEPROM and you tied two of the pins high to let it know it should use the external EEPROM.
When I tell people my first game I wrote fit in less than 500 (8-bit) bytes, they wonder how that is. The game was never released but Race Electronics and their desire to cash in on this new fad and exploit the younger, more gullible version of me, did give me my start in video game development so I am thankful for that, in a way. The next game I wrote fit in 2KBytes and I had the luxury of using a 6502 CPU and access to actual RAM on a CBM PET.
Re: Confirmed the MOS 7600/7601 Pong chip is a true microcontroller
#14"The way the paddles in particular are drawn is especially ingenious; in fact, the firmware doesn't even need to position them. The paddle controls are simple potentiometers feeding into an R-C circuit (external to the chip, not shown here) that discharges at a rate based on the pot's resistance. This then feeds into an on-chip comparator in the region marked "paddles," delaying drawing the paddle a number of scanlin…
If you want the least amount of lag possible, you now know which device to turn to. I'm thinking of the famous lag table of character entry for 80s 8-bit computers and modern PCs.
Re: Confirmed the MOS 7600/7601 Pong chip is a true microcontroller
#15The crazy thing was that if you turned the sliders just right, you could also play "off menu" games which had combinations of the attributes of the official ganes. I guess this was down to some of the tricks described here. It certainly confused me a lot when I learnt to program: you can't just compose two games together by half-clicking on an option!
Re: Confirmed the MOS 7600/7601 Pong chip is a true microcontroller
#16Earlier quoted context omitted.
How is intersection with the ball detected?
I think that the circuit at the top center of the chip detects collisions. E.g. if the paddle is being drawn at the same screen position as the ball, then you know that the paddle has hit the ball. This way, you don't need to store the paddle position and you don't need to compare the paddle and ball positions, you just check if a paddle pixel and a ball pixel happen at the same time. I haven't figured out how the ba…
Re: Confirmed the MOS 7600/7601 Pong chip is a true microcontroller
#17The MOS 7601 was the first CPU I learned how to write code for, circa late 1977 to early 1978. I would scour jumble sales for broken pong games and the other, more sophisticated console variants to cannibalize for parts, with one conversation about haggling with another buyer over who got what parts leading to a job. There were several machines of the time that had pluggable cartridges, from Binatone, Telarude?/Telal…
Re: Confirmed the MOS 7600/7601 Pong chip is a true microcontroller
#18In the same way, here they cut open a microcontroller and instead of finding a neatly organized CPU with all the usual recognizable bits and software written in a straightforward ISA, there’s this weird, surprisingly analog amalgamation between hardware and software, between control and data. It’s not obvious how anything even functions because it’s so alien compared to our nice, clean, modular general-purpose CPU. Instead it feels…almost natural, like the hardware and software grew and evolved together as a single unit (which, to be fair, they probably did). It’s beautiful and terrifying at the same time.
At least, that’s how it feels to me as a (sleep-deprived) software engineer. Maybe to a hardware guy, this is just Thursday.
Re: Confirmed the MOS 7600/7601 Pong chip is a true microcontroller
#19"The way the paddles in particular are drawn is especially ingenious; in fact, the firmware doesn't even need to position them. The paddle controls are simple potentiometers feeding into an R-C circuit (external to the chip, not shown here) that discharges at a rate based on the pot's resistance. This then feeds into an on-chip comparator in the region marked "paddles," delaying drawing the paddle a number of scanlin…
If you want the least amount of lag possible, you now know which device to turn to. I'm thinking of the famous lag table of character entry for 80s 8-bit computers and modern PCs.
I have a few, but sadly I don't have the space to keep a CRT monitor too.
Re: Confirmed the MOS 7600/7601 Pong chip is a true microcontroller
#20i had a binatone pong game that sounds like it was based on this chip. It had a bunch of variants of pong you could play based on moving a couple of physical sliders -- squash (bounced off a wall), football (two bars per player), etc. The crazy thing was that if you turned the sliders just right, you could also play "off menu" games which had combinations of the attributes of the official ganes. I guess this was down…
This is called “circuit bending” now and has quite a following.
I did it with the Atari VCS (now called 2600) quite a bit. The Spider-Man cartridge had some great weird incarnations by moving power switch half-way, as did a few other carts.