Reviving a Commodore 64 Computer Using a Raspberry Pi
concertina226 (2447056) writes "A group of Commodore fans are working on a new emulator with the ability to turn the Raspberry Pi £30 computer into a fully functioning Commodore 64 fresh from the 1980s. Scott Hutter, creator of the Commodore Pi project, together with a team of developers on Github, are seeking to build a native Commodore 64 operating system that can run on Raspberry Pi. 'The goal will be to include all of the expected emulation features such as SID sound, sprites, joystick connectivity, REU access, etc. In time, even the emulation speed could be changed, as well as additional modern graphics modes,' he writes on his website."
I use Vice on my desktop computer and Frodo C64 on my Android phone. Accordingly, I don't need an extra gadget to play with my Commodore 64.
Gamebase64 has everything you never needed to know about C64 games, Girls of '64 for everything in 8-bit nudity, and AppsnToolsBase64 for everything in utilities, business and productivity applications.
All c64 programs are tiny in modern terms; an uncompressed 1541 floppy disk image is only 170k. So you can carry every significant Commodore 64 program that was every released on a single flash drive or on your phone, and have plenty of room to spare.
If you're a zombie and you know it, bite your friend!
It's called nostalgia. You'll know what it is when you get older.
Superior in specifications, maybe. But I'd say that 99.999% of today's programmers have no fucking clue what code optimisation really means. This is nostalgia about a time when people actually gave a fuck about what they were doing.
Get free satoshi (Bitcoin) and Dogecoins
The Commodore 64 was right at the cusp of technology where a device could be almost fully understood by a dedicated layperson. If you picked up the Commodore 64 Programmers Reference Guide, you got 504 pages (1.4 lbs) of technical data, including a full system schematic. Low-level programming involved tweaking memory locations that were (effectively) hard-wired to chip pins, directly manipulating the state of the SID or modem chips. Want to watch tape I/O coming in through the bus? Just watch the right memory location.
Today's systems are far more powerful. But I bet most professional developers can't say they fully understand all of the timing, pipeline, memory I/O, bus architecture, video pipeline, and everything else that makes these machines great. There's a lot of "black box", even for the experts. Read Abrash's Graphics Programming Black Book Special Edition if you want to see how much there is to know about optimizing even a single function in what is now a 20 year old machine.
The power of computing comes from abstraction. But the Commodore 64 (and the Apple ][) marked a tipping point when you could dig into the abstraction as a motivated beginner and strip away the layers until you were dealing with the bare metal. And there is power in that understanding. A bottom-to-top stack of knowledge that helps develop mental models that make more complex systems easier to understand. While my daughter has a very powerful laptop for school, way more powerful than a C-64, it highly unlikely that she or any of her peers will be able to peel the onion back to the physics of electricity like my generation was able to.
So I'd rather have today's tech. But I'm glad that I got to spend a lot of time with a C-64 in my youth, or I'd be nowhere near the programmer I am today. That's where the nostalgia comes in. Greatness in (relative) simplicity.
It's the first computer many people had access to, and especially the first computer they could actually program themselves. In an era where PCs cost thousands of dollars, a C64 cost only a couple hundred. Parents could afford them and the default shell was a BASIC prompt. Plus, it had built-in hardware to support making games (sound chip, sprite generator, joystick port) which made interesting to the kids first learning how to program on it.
I read the internet for the articles.
I don't know that blindly optimising for one set of resources is a good thing. My grandpa would say the same thing when us kids worked in the shed, he would constantly remind us to collect the nails from the timber we were re-purposing, and straighten them and put them into jars because once upon a time in the great depression nails were much more expensive than they were now, and you couldn't go down to the store and get 100 for a dollar, and in any case you didn't have a dollar. In this sense grandpa was really optimised for nail and resource consumption, but perhaps he was not optimised for time consumption. So he was optimising for resources in a time where he would have been a better manager to optimise for time.
When you talk about code optimisation you are always talking about a trade off. In old systems you were forced to optimise for memory and processor time at the expense of time, money, security and memory protection (robustness) optimisation. Now, with far more memory and processor cycles available to us than most programs need we can optimise for other things - example: we can use frameworks and libraries to manage memory so that programs although they don't run as fast as they would if optimised for memory and processor they don't leak memory, and their performance is adequate for their use case. It also takes a lot less time and resources to develop now.
So what I am saying really is when you say something like "99.999% of today's programmers have no fucking clue what code optimisation really means", well the truth is that they do, but that they are optimising for the elements that are the most scarce rather than the elements that are now relatively abundant being memory and cpu time.
We don't believe in radical loony monotheistic religions from the middle east -- we're Christians.