[HN Gopher] C64 OS: make a Commodore 64 feel fast and useful ___________________________________________________________________ C64 OS: make a Commodore 64 feel fast and useful Author : cpeterso Score : 125 points Date : 2021-12-10 18:10 UTC (4 hours ago) (HTM) web link (c64os.com) (TXT) w3m dump (c64os.com) | colordrops wrote: | Love the design of the website, despite the difficult readability | of the fonts. Simple easy layout, happy vibes, reminds me of the | old days. | bananabernhard wrote: | I'm a bit bummed out that it's closed source - I would've liked | to look through the code. | tyingq wrote: | Interesting. I know some have tried to make faster versions of | old 8 bit computers from the hardware side instead. | | Here's an FPGA-based drop-in replacement for 65C02 that runs at | 100MHz: http://www.e-basteln.de/computing/65f02/65f02/ | | Not tried in a C64 yet, but he did get it working in a Commodore | PET. | basementcat wrote: | You can't just "drop in" a faster 6502 (or 6510) into something | like a C64. For one, all the serial i/o routines are software | bit-banged so parts of the "ROM Kernal" need to be modified. | More importantly, the VIC-II chip is the DRAM memory controller | and it is tightly coupled with NTSC or PAL signal timings. | | Most accelerator boards for the C64 need quite a bit of glue | logic to overcome these difficulties. | tyingq wrote: | It has some of that accounted for, like: | | _" Upon power-on, the 65F02 grabs the complete RAM and ROM | content from the host and copies it into the on-chip RAM, | except for the I/O area. Then the CPU gets going, using the | internal memory at 100 MHz for all bus accesses except for | any I/O addresses"_ | | There's also some soft cores for a Z80 that can work at the | stock clock speed, but do more work per cycle, which is | interesting. | | Edit: Some, not all, things are covered. | basementcat wrote: | The reason why many 8 bit home computers put the memory | controller in the graphics chip was to give the graphics | subsystem "first dibs" over bitmap data in RAM. If the | microprocessor has its own copy of RAM then the graphics | subsystem may never update the display unless the cpu | "writes through" all memory write operations (resulting in | a significant performance slowdown). | prvc wrote: | I see lots of instructions on how to set up a system on the | website, but nothing which tells me why this software would be | useful. | the_af wrote: | "Useful" in what sense? This is retrocomputing, a hobby. | Nothing about it is "useful", it's about playing with old | computers and emulators for its own sake. | kingcharles wrote: | It's a GUI OS, not command-line as I expected: | | http://c64os.com/c64os/usersguide/ (screen shot) | mastazi wrote: | You can see a bit more of the use interface here | http://c64os.com/c64os/usersguide/userinterface | z3t4 wrote: | If you are interested about the OS: http://c64os.com/c64os/ | jazzyjackson wrote: | I love these projects that show what can be done with 1mhz cpu | and mere kilobytes of ram, really makes you wonder what we're | doing with the other 99% of hardware performance we've achieved | since then | amelius wrote: | Uh... watching 4k video, for example? | badsectoracula wrote: | You certainly don't need modern PC power even for 4k video, | though you may need it for doing realtime decompression of | some very high compression codecs (but that isn't "watching | 4k video", it is "doing realtime h265 decompression for 4k | video" or something along these lines). | | Though codecs are one of the few cases where you see hardware | being taken advantage of because that is basically their | entire purpose. | codedokode wrote: | Playing video is very expensive task. Just updating 4K | screen at 60 frames per second requires transferring of | 3840x2160x60 ~ 497 million pixels or 1,49 Gbytes per second | (if you skip every fourth byte). It will take at least | several instructions (in the best case) to calculate value | of every byte so the CPU should be able to perform billions | of instructions per second. | | I doubt you can do it without a "modern PC" with hardware | graphic accelerator. | | Also modern codecs require lot of computations and lot of | memory. For example, codecs like VP9 require to buffer up | to 8 frames for reference. That would take 8x3840x2160x4 ~ | 265 Megabytes of RAM. The program will need to extract | bits, decode arithmetic coding and calculate lots of IDCTs. | | I did some research to see if it is possible to play | Youtube video on 8-bit CPUs. What I found is that there is | little hope for this. It's better to develop your own video | compression format. | badsectoracula wrote: | > Playing video is very expensive task. Just updating 4K | screen at 60 frames per second | | Nobody mentioned anything about 60 fps. A _ton_ of video | is at 24 or 30 fps. | | > requires transferring of 3840x2160x60 ~ 497 million | pixels or 1,49 Gbytes per second (if you skip every | fourth byte). | | You do not need to update the entire screen all the time, | you can do partial updates (since very frequently not | 100% of the screen changes - it is the most basic fact on | which video codecs rely on) and you can "heal" the output | over time after partial updates (also important for video | playback where you can't guarantee a fast stream). | | > I doubt you can do it without a "modern PC" with | hardware graphic accelerator. | | Why the limitation for hardware graphics accelerators? | Hardware accelerators exist for decades now and even | hardware video decoders exist for more than a decade. If | anything not using those is "not taking advantage of the | hardware" that i mentioned. | | > Also modern codecs require lot of computations and lot | of memory. For example, codecs like VP9 require to buffer | up to 8 frames for reference. That would take | 8x3840x2160x4 ~ 265 Megabytes of RAM. | | Sure, but that is RAM computers also had for more than a | decade now - the PC i used in the early/mid-2000s had 2GB | of RAM - hell, even the cheapo EeePC netbook from the | late 2000s had 1GB of RAM. | | > I did some research to see if it is possible to play | Youtube video on 8-bit CPUs. What I found is that there | is little hope for this. It's better to develop your own | video compression format. | | Sure, but i never mentioned anything about 8-bit CPUs, | YouTube or even existing video compression (or specific | framerate for that matter). What i wrote is that you do | not need "modern PC power" to do 4K video. You _do_ need | more processing power than what would be found in 8-bit | CPUs (or at least common 8-bit CPUs you 'd find in 80s | home computers), but i'm certain you can have a 10 year | old PC play 4K video without trying that much. Perhaps | even a 15 year old PC with a bit of effort. | | FWIW what i had in mind when i wrote that comment was the | "8088 Domination" demo which used a custom codec and | player to do fullscreen video and audio playback on an | original IBM PC and honestly i do not for one second buy | the notion that if you can do that on a 40 year old PC | you wont be able to have 4K video on a 15 year old PC - | if anything i might be too generous here. | rbanffy wrote: | > Playing video is very expensive task. Just updating 4K | screen at 60 frames per second requires transferring of | 3840x2160x60 ~ 497 million pixels or 1,49 Gbytes per | second | | Or an analog signal and you do it the way TVs used to do. | There were analog HDTV standards before we all moved to | digital. | cageface wrote: | The Luddite sentiment common among programmers today really | surprises me. The software we're building today is vastly more | powerful and capable than anything from the C64 era. | throwaway47292 wrote: | As I am writing this comment my 2017 macbook is spinning | fans, as if it is doing protein folding.. and it has like 3 | tabs open on chrome. | | And for what? to edit a text box? | | There are new capabilities around encryption and encoding, | things like h265 and etc, which of course help with medical | diagnostics and such. | | I would take c64 software any time, look at this | https://www.youtube.com/watch?v=ROr8JhilPhI its from 1983. | | Imagine what kind of software would the people from 1980s | write if they just had a raspberry pi 4 to work with.. | philipkglass wrote: | On the C64 text was PETSCII [1]. On your Mac in Chrome it's | Unicode. Running a basic multilingual plane text editor on | the C64 is probably impossible due to RAM constraints. Even | with a RAM expansion and imagining it had a framebuffer I'm | doubtful that the C64 could edit Unicode text at | interactive speeds. | | In the 1980s only a small portion of the developed world's | population used home computers. Today the majority of | people use computing devices. Most of them use languages | that cannot be represented with PETSCII or ASCII. It's | amazing what motivated people can do with low power | machines, but let's not forget how going back to the 1980s | would discard _valuable_ capabilities as well as bloat. | | [1] https://en.wikipedia.org/wiki/PETSCII | sebular wrote: | People from the 1980s are still alive and they're not | making anything more impressive than anyone else. | | These people weren't magicians only held back by a lack of | computer power, they were (again, "are") regular people | trying to maximize their output given their resources. | | Let's say you go back and hand a powerful computer to them. | What would Mac Paint look like? I'm sure it would have | colors (assuming you also have them a monitor), probably a | lot more of those goofy and useless textured fills nobody | wants, layers, probably some filters, higher resolutions, | and probably simple brush strokes. But do you really think | they would manage to implement any of the seriously | impressive features that modern Photoshop has? Content | aware fill? AI upscaling? Of course not. It would probably | take them a long time to get smart selection working in a | halfway decent manner. | ketralnis wrote: | I don't think it's "Luddite sentiment" to ask why one | computer feels as productive with the same perceived | performance as one that's literally a billion times faster. | | I believe the sibling saying that it's programmer | productivity is correct. That same programmer can and does | now spend a week whipping together a program in Python that | took a year under the older constraints. And users expect | more out of them, with whizz-bang animations and app-store | integration. | | But if that same programmer _did_ spend the year instead of | the week, what could they do? The quality and performance | would probably be a lot better. Unless they depend on | externalities that don't also scale up their quality game, | like basically anything involving the web. | cageface wrote: | It's Luddite in that it rejects modern tools and methods in | the belief that there's an older, more artisanal method of | doing work. | | If you believe this is the case then you can put your | belief to the test. Build software the way you think it | should be built and see if users are willing to pay for it. | [deleted] | badsectoracula wrote: | Luddite is someone who is opposed to new technology, which | doesn't apply here as the sentiment isn't about being opposed | to the new tech but about the new tech not being taken | advantage of. | | The software we build today is "vastly" more powerful in the | sense that, strictly speaking, you can do more stuff, but it | is way less powerful - and often broken - than what it could | be, considering what you can see being possible on older | hardware and what seems to be done in modern hardware. | | Also it isn't really something that happens today, here is a | nice (and funny) talk from Joe Armstrong on the topic from | almost 8 years ago[0]. Though this sort of sentiment goes way | back, e.g. Wirth's classic "Plea for lean software" article | from 1995[1]. | | (Joe's talk is more about the broken part and IMO he | misidentifies the issue being about trying to make things | fast when the real issue -that he also mentions- is that | pretty much nobody knows what is really going on with the | system itself) | | [0] https://www.youtube.com/watch?v=lKXe3HUG2l4 | | [1] https://cr.yp.to/bib/1995/wirth.pdf | cageface wrote: | This is because people don't want to pay the cost of | software carefully developed to take maximum advantage of | modern hardware. In specific niches like audio production | where this is desired then prices run into hundreds of | dollars for a single plugin to cover the development costs. | hedgewitch wrote: | And even then, quite a lot of that audio production | software is very, very inefficient, primarily due to poor | GUI development. There are a few popular choices of | software that are very well-known for being CPU hogs, | even relative to more complex software. | FleaFlicker99 wrote: | Particularly the business often doesn't want to take on | the goal of improved performance when good-enough will | suffice. Which can often make sense when you factor in | increase development costs, reduced | flexibility/maintainability, and reduced ability to | recruit for people with the skillset to work on such | things. | | Then again, performance is often a feature in itself. In | some cases it can open whole new areas of potential | business. Often times it isn't even particularly hard to | achieve, it just requires decent engineering practices. | | Unfortunately good engineering practices can be hard to | find/hire for, especially among a development | community/culture that hasn't had to bother caring about | performance for a long time. | MrBuddyCasino wrote: | Programmer productivity. As long as this is the bottleneck in | determining market success of a product, this tradeoff will | continue. | noobermin wrote: | Well in between the ads and google spying I often do not feel | productive. | nradov wrote: | Programmer productivity has gotten worse. None of the | development tools in widespread use today is as productive as | Visual Basic or Delphi were back in 1996. | keyle wrote: | Have you ever wondered why? | | It's because today isn't about programmer productivity. | | It's about enabling teams to work together without tripping | over their own feet and killing the business. | | So much complexity to solve essentially what is a human | problem. | | It takes 5 people to do the job of 1 back then, and that's | what the industry wants. No one would trust an individual. | | Too much money flowed into this industry, leading to waste, | as it became clearly a pillar of the future. | anyfoo wrote: | This needs a lot of qualifiers. I can see that for web | development maybe (I don't know, haven't done that for | almost 10 years, but I can imagine given the constraints), | but for system level programming for example I don't want | to go back to the 90s. Not that Visual Basic or Delphi | worked for that anyway. | badsectoracula wrote: | Technically Delphi could have worked but you'd need to | use your own RTL and aside from a few additional language | feature, you'd be losing 99% of what Delphi offered | anyway. | analognoise wrote: | Lazarus and FreePascal would beg to differ: | | https://www.lazarus-ide.org | | Everything you ever loved about Delphi 7, but with a ton of | modernization. LGPL, too! | beamatronic wrote: | Serious question: Can you make "Netflix money", er, | "FAANG money", as a Lazarus developer? | badsectoracula wrote: | No but that isn't because of Lazarus itself but because | "Netflix/FAANG" doesn't use it as what it does isn't | really in their business interests. Lazarus is mainly | about making desktop applications. It can do web, etc but | it isn't really a focus and you lose most of the visual | functionality anyway (yeah ok, you can set up URL routing | via the object inspector and connect DB components | together, but 99% of the work is done via code anyway so | it doesn't provide something better than what you'd find | in more popular tools). | datalus wrote: | No, but all those people making "Netflix money" aren't | really changing technology, are they? I'd argue FAANG is | stagnating it, and telling themselves differently. | | I guess if you want to make gobs of cash, fine. You could | also just go into finance and make more than FAANG money | if you're talented enough. | gibolt wrote: | I'd argue that Microsoft, Google and Apple have enabled | massive growth in technology. New uses for OSs, new | places for them to run, and ways to make starting far | more accessible/collaborative. | | Even if there is 2 step forwards, one step back, the | overall benefit of options available due to the vast | number of people contributing their creativity is only | possible due to these companies. | umanwizard wrote: | Facebook is a major contributor (sometimes the primary | one) to many famous open-source projects: Linux, | mercurial, MySQL, React, jemalloc, PyTorch, GraphQL, and | probably several others I'm not thinking of. | | They're also one of the top AI/ML research institutions | in the world with a huge chunk of the papers published at | top conferences. | | Similar statements are also true of Google. | dukeofdoom wrote: | Skype was originally written in delphi. | | "Microsoft will acquire Skype, the leading Internet | communications company, for $8.5 billion" | baq wrote: | google developed golang instead of improving pascal, so | you probably can't. the two languages have surprisingly | similar goals. | vidarh wrote: | > the two languages have surprisingly similar goals. | | Not so surprising, given the backgrounds of the key | designers of Go, I feel. Griesemer even got his PhD under | Mossenbock and Wirth. | pjmlp wrote: | Comparing Delphi and C++ Builder with modern SPAs, or dealing | with the Kubernetes boilerplate doesn't really sound that | productive to me. | codedokode wrote: | An expansion card is recommended for this OS, so there are | hundreds of kilobytes or even several megabytes, not "mere | kilobytes". | kaladin-jasnah wrote: | Even then, I think the point would still hold. | guessbest wrote: | Encryption for communications to include HTTPS and TLS 1.3. If | it wasn't for all that, you could take an early 90's computer | on the internet still. | hitekker wrote: | This is a beautiful landing page for what looks like a beautiful | project. Nicely done! | mrandish wrote: | Now if only MSFT would release a new OS that made a PC feel fast | and useful! [/JOKE] | gerdesj wrote: | I remember the first time I span up a Linux distro on a PC. The | console felt so bloody quick in comparison with the Win98 that | was shuffled out of the way to make room for something called | ext2. I compiled my first kernel - 1.98something I think - with | something called "eggs" (egcs - ooh controversial!) and the | text flew up the screen smoothly and fast, really, really fast. | | This machine had DOS and W4WG 3.11 before that and prior to | that I had a 80486 and before that a 80286 plus a '287 co pro | with just DOS 3-5ish so I had a preconception on what streaming | text consoles should look like. I'd also used some green or | amber screens with something large and complicated behind them. | That's what IT looks like to most people (something | complicated) - don't forget that! My memory grows a little dim | but I think it was a Pentium II box that I first slapped Linux | on. | | 25 years later. | | I update my various Linux boxes in a minute or two at most. I | update Windows boxes in a few hours at most - normally around | 15 mins but several hours is not unknown. | aj7 wrote: | I liked the post, but why not emulate on faster, more portable | hardware? | noobermin wrote: | There was an ad for an extreme engineering show on cable | decades back that had a dude say something like, "Why would we | put a jet engine on a motorbike? Because we can!" | nradov wrote: | Cool project. But much of that functionality was available with | GEOS in 1986. | | https://en.wikipedia.org/wiki/GEOS_%288-bit_operating_system... | the_af wrote: | The author mentions GEOS among those efforts that, and I quote: | | > [...] had good intentions but pushed the machine in ways it | wasn't designed for, compromising on speed and usability in the | pursuit of features available on more powerful computers. | | I must be honest and say the statement feels a bit puzzling, | since C64OS certainly wasn't something the C64 was designed | for... | layer8 wrote: | Maybe they are alluding to the fact that GEOS was using | graphics mode for the GUI (which makes drawing the UI slower | and requires more memory, thus arguably would require a more | powerful machine) where C64OS is using text mode (plus the | graphics split mode) which arguably is more suited to the | C64. | [deleted] | gerdesj wrote: | I remember switching floppy discs rather a lot when trying to | use GEOS back in the '80s. | | My C64 now has a USB interface 8) | dang wrote: | Past related threads: | | _Shared Libraries for C64 OS_ - | https://news.ycombinator.com/item?id=26590376 - March 2021 (1 | comment) | | _Rethinking the Commodore 64 Memory Map (2018)_ - | https://news.ycombinator.com/item?id=20317767 - June 2019 (17 | comments) | | _C64 OS: A Commodore 64 OS with Modern Concepts_ - | https://news.ycombinator.com/item?id=17997911 - Sept 2018 (42 | comments) | emrah wrote: | dang, I see you do this on a regular basis. Is it automated or | are you doing this manual? | dang wrote: | Kind of in-between. Here's a pointer to past explanations: | https://news.ycombinator.com/item?id=29370676 ___________________________________________________________________ (page generated 2021-12-10 23:00 UTC)