
C64 OS: A Commodore 64 OS with Modern Concepts - ingve
http://c64os.com/c64os
======
Flow
Here's a video of a classic Mac OS style UI running on 1.79MHz Atari 8-bit
computers. I find this to be a very very impressive feat.

[https://www.youtube.com/watch?v=T14dL9MeMHE](https://www.youtube.com/watch?v=T14dL9MeMHE)

Speed-wise this appear to me to be about the same speed 8MHz 68000 Mac SE did
run it's graphics.

~~~
itomato
I've been searching high and low for a Linux port of GEM.

------
billpg
At which point have you just replaced so much hardware that you've just got a
modern PC on your desk?

~~~
octorian
Especially when you start adding modern peripheral hardware that contains more
general-purpose processing power than the C64's CPU itself.

~~~
stiGGG
Nothing special, this game already started when you replaced your datasette
with the floppy drive back in the days.

~~~
nategri
I assume this is an allusion to the fact that the standard Commodore 64 disk
drive had an identical CPU, lol. A legitimate computer all to itself. You
could even expand the default 2KB of RAM up to 48KB. [1]

[1]
[https://en.wikipedia.org/wiki/Commodore_1541#Hardware](https://en.wikipedia.org/wiki/Commodore_1541#Hardware)

~~~
GlenTheMachine
You could also use it as a home-brew multiprocessor. I did that as a science
fair project.

~~~
michrassena
That's kind of amazing. How did you communicate between the onboard CPU and
the CPU in the floppy drive(s)?

~~~
GlenTheMachine
Through the serial port. It turns out that if you really dig into the 1541
docs, it’s possibly to push assembly code into RAM using existing 1541
commands over the serial port. And the 1541 has a command buffer. So I pushed
assembly to perform parallel calculations to it, and then pushed two commands
into the buffer, one to execute the code and the next one to resume normal
serial ops after it ret’urned. The data from the calculations was placed into
the data buffer prior to returning, and the 1541 just sent it out the port as
a regular data packet, just as if it had been read off a floppy. Or so I
recall; this was in 1986. My memory’s a little fuzzy.

It worked with N drives, too, although the C64 sort of had to act as the bus
master to avoid serial packet conflicts.

That was a long time ago and I’ve certainly forgotten many of the details. But
it won me a trip to the International Science Fair (this was before Intel
started sponsoring it).

~~~
michrassena
That's a fascinating technique. Did the commodore operating system itself push
6502 code to the floppy drives to move the heads, initiate data transfer, etc?

~~~
GlenTheMachine
No, the basic floppy control software resided in ROM on the 1541. But as
mentioned below, you could (and people did) essentially reprogram much of that
stuff to enable copy protection, increase serial throughput speeds, etc.

------
mixmastamyk
Interesting to read about pull-down menus being useful as I suffer from their
removal on current GTK apps.

~~~
sehugg
I was just thinking about DOS apps, specifically how nice it was when keyboard
shortcuts pertinent to your current mode were helpfully displayed at the
bottom of the screen.

~~~
yjftsjthsd-h
Remember the cardboard cutouts that sat over the F-keys and listed what each
did? Used by ex. Wordperfect.

~~~
sehugg
Yes, unfortunately. "Reveal Codes" FTW :)

~~~
compsciphd
alt-f3 is burned into my brain forever.

------
rocky1138
I'd like to see a comparison of this against Contiki.

~~~
TickleSteve
Contiki is an RTOS and ipv6/lowpan library, intended for modern rf-capable
microcontrollers with no UI.

This OS on the other hand is a desktop OS for an ancient 8-bit processor (far
less capable than modern microcontrollers) and oriented around the user
interface.

So... not much to compare really, they're completely different beasts.

~~~
SyneRyder
Contiki used to run on the Commodore 64 and have a desktop UI. Someone even
used it to make a Twitter client for the C64, called Breadbox64.

[http://www.c-64.org/pics/os/contiki1.html](http://www.c-64.org/pics/os/contiki1.html)

[https://commons.wikimedia.org/wiki/File:Contiki-C64.png](https://commons.wikimedia.org/wiki/File:Contiki-C64.png)

[https://www.c64-wiki.com/wiki/Contiki](https://www.c64-wiki.com/wiki/Contiki)

------
andrepd
Reminds me of KnightOS, a project in a similar vein.
[https://github.com/KnightOS/KnightOS](https://github.com/KnightOS/KnightOS)

------
baldfat
I had a 300 baud modem and text wouldn't even download close to reading speed.
I need to see if this will work on my old C64 machine. Would be fun to go
through a few BBS that are still around.

~~~
jandrese
Even in the 90s BBS experience on a C64 was pretty dismal. Everybody was
running 80x24 screens and the operators had to assume it was safe.

Shame too, because ANSI artists could have done some even more impressive
works with the PETSCII character set but the world had already moved on by
that point.

~~~
erickhill
The BBS scene is still alive. These days, people "dial in" via telnet via WiFi
modems (among other ways) using their old 8-bit and 16/32-bit hardware (e.g.
Amiga). And, as long as you set your stuff to 9600 baud, it's absolutely fast
enough.

------
erickhill
So... like GEOS. But, with more awesome?

~~~
cmrdporcupine
Worth mentioning that GEOS itself has been completely reverse engineered and
the fully commented 6502 assembler source is up on github:
[https://github.com/mist64/geos](https://github.com/mist64/geos)

In theory quite portable to other 'new' 6502/816 systems.

------
ngcc_hk
Can it run some programming language like turbo pascal?

~~~
moioci
I still have my C-64 pascal compiler from Abacus software. Apparently it can
now be downloaded online.

