[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)