4 ms·
The 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, m
by justinlloyd 4y ago
The 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?/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.
- retro64 4y ago...which was the fashion back in the day. Not sure if this was an intentional simpsons reference but it made me laugh anyway given the context. (seriously though, thanks for taking the time to write this up - I find these firsthand experience ramblings fascinating).
- HailTheGreenOne 4y agoWhat was the game? Could you possibly run it again?
- tssva 4y agoThis comment discusses how ball and paddle collision detection worked but leaves open the question of how the ball position was known. https://news.ycombinator.com/item?id=32862403 https://news.ycombinator.com/item?id=32862403 Given your experience programming for it can you provide any insight to how this may have been done?
- diydsp 4y agoYeah! when he mentioned making a timer by charging a cap and letting it discharge... that could apply to the ball position registers... it could also explain how they did various angles when there's no obvious multi-bit ALU.... varying dis/charge ratio...
- kens 4y agoUnfortunately there are no capacitors on the chip and the external capacitors can't fulfill this role. So I suspect they are describing a different chip. The Magnavox Odyssey game, however, worked as you describe; the ball position was the voltage on two capacitors (X/Y), and they were charged or discharged to make the ball move. (This game system was analog, built from transistors.)
- kens 4y agoAre you sure you're talking about the same chip? None of this is consistent with what I see on the die.
- justinlloyd 4y agoIt is possible I am misremembering, and possibly even smushing two memories of completely different systems together. We are talking ancient history and I only worked on these systems for a few months at most. On your die photos or block diagrams that you are referencing, are there references of where the graphics were hard-coded into the system? If I wanted to show the playfield, I could strobe an address that would draw the playield? If I wanted to show a score of 9 for player two, I could strobe another address? I recall that the playfield was frequently mirrored (left-right or top-bottom), so it was possible to combine bits of playfield for different games.
- justinlloyd 4y agoFollowing up on this: I recall the microprocessor came in a plastic and ceramic variant, and the ceramic variant, I seem to recall, had an EPROM window on it (though my memory is a little fuzzy on that detail). I do recall that GI/MOS had an ICE that closely resembled the one for the Intel MCS-4x series of microprocessors, i.e. expensive and not available to anybody without a minicomputer on hand. GI MicroElectronics and AMI MOS put out a physical catalogue of components each year that I would pore over as a kid, along with the Maplin's catalogue, Siglent, and a few others. Did anybody think to ask the original chip designers for GI out of Scotland? Many of them are on LinkedIn, though now retired. It is pretty easy to track down the GI MicroElectronics people. Go grab a couple of back issues of Practical Electronics from the 1970's and a Maplin catalogue from the 1970's, they contain almost all of the GI and AMI MOS parts, including data sheets and example code. There's probably PDFs online by now. The GI catalogues and the MOS catalogues of the day also have all the datasheets and block diagrams in them and contain every non-custom part they made, though many parts could be customized to need. The General Instruments MCS/MPS (Microprocessor Ceramic System/Microprocessor Plastic System) 7600 is based, AFAIK, on the MCS5600 with extra bits. <strikeout>I recall that AMI MOS listed all their microprocessors under the "S" range, e.g. S6800.</strikeout> But again, fuzzy on the details and I wasn't privy to a lot of information and the internet back then wasn't what it is today (That's a joke). US Patents were definitely filed for these devices by GI MicroElectronics and AMI MOS, even though, technically, the 7600 variant was developed in Glenroathes. A quick internet search shows that the patents would be the 3,800,000 to 4,000,000 range based on the date of issue. Just need to search for the designers' names, or the corporation filing. And if I have incorrectly stated anything, or lead you astray on details, it is not intentional. It's that 45 years later I didn't think I'd have to recall details about my middle-school and high-school years and my first forays in game development and electronics. And if it is a bit incoherent I blame only being on my third coffee of the day and trying to dredge up half-forgotten details. <insert Gandalf "I have no memory of this place" meme>
- tralarpa 4y agoThere were datasheets with the instruction set? But why does the article say that they were, until very recently, not sure whether it's a microcontroller?
- justinlloyd 4y agoI don't know. But really, how could somebody not know it was a microprocessor? It's in the name. MPS and MCS. MOS and GI didn't randomly and winsomely name their parts like it was a Node package on github.
- justinlloyd 4y agoI retract my statement. MOS in their early days had a terrible naming scheme. It was only later that they cleaned up their act.