
Slack client for Commodore 64 - oherrala
http://1amstudios.com/2016/11/27/c64-slack-client/
======
gurgus
Come on guys...

C64 all of the things!

Some of the comments here are ridiculously negative or taking away from the
fact that Jeff has done something cool here.

Good stuff, Jeff! Keep on doing stuff like this and don't listen to the
hate/negative comments.

~~~
jeff_harris
Thanks! It's just a fun project, so of course there are lots of ways to
improve it!

I found writing 6502 assembly code is strangely comfortable once you get over
the initial face-palm moments ;)

~~~
linker3000
What a fun project! Back in the day I wrote a full VT100/VT220 emulator in
.asm for the C64 using bitmapped graphics for an 80 column screen.

------
poorman
I could really use this seeing as...
[https://twitter.com/NickPoorman/status/737647940026634240](https://twitter.com/NickPoorman/status/737647940026634240)

~~~
joshfriend
Wow, you really need to be in less slack teams...

~~~
PhasmaFelis
That memory footprint is inexcusable even if he were literally on one thousand
Slack teams. Functionally, Slack is more or less a shiny wrapper on IRC, and
you can run dozens of IRC channels in a few megabytes, if that.

------
qwertyuiop924
C'mon. Implement PPP between the C64 and a Pi, and then do the rest on the C64
itself.

------
flippyhead
> I connected the Userport to a Raspberry Pi with a artisanal, locally
> sourced, homemade cable with the UserPort connector on one end

The writing in the blog post is nearly as awesome as the project itself.

------
a1k0n
FWIW you probably don't need a USB serial port, or a RS232 converter at all;
you could just pick the TTL serial signals off the commodore port and plug
them into the TTL serial port on the Raspberry Pi 23- or 40-pin expansion slot
(pins 8, 9, and 10 are TX, ground, and RX.). Remove the tty on /dev/ttyAMA0
from the init config and you can use /dev/ttyAMA0 as your built-in Pi serial
port.

~~~
khedoros1
The DC voltage supply on the Commodore side looks like 5V, and at a guess, the
TTL probably runs at that voltage too. The Pi won't be happy with more than
3.3V on its UART pins, so the USB adapter also fills the purpose of a voltage
adapter.

~~~
a1k0n
Right. I thought it might be 5v tolerant on the RX pin but maybe not.. easy
enough to just use a resistor and a diode to the 3.3v supply to level shift
there, and the 3.3v TX should be fine for a 5v logic input.

------
joeblau
Awesome. It'e even native... not a hybrid web app built in Electron.

------
kstrauser
I think that's brilliant. Well done, Jeff! Sure, it's probably not useful.
Neither is the painting on my wall, but I'm glad someone made it!

------
JonnieCache
See also: twitch.tv chat running on a SNES, injected via an ACE exploit in
pokemon red.

[http://arstechnica.com/gaming/2015/01/pokemon-plays-
twitch-h...](http://arstechnica.com/gaming/2015/01/pokemon-plays-twitch-how-a-
robot-got-irc-running-on-an-unmodified-snes/)

------
erickhill
Does it have to be used with a Raspberry Pi? If you have a Wifi Modem for C64,
would the Slack client still work?

~~~
jeff_harris
You would need to replace the rs232 code with code to talk to the Wifi modem.
You would need to deal with websocket handling and JSON parsing.

Doable, for sure, but would be significant work (depending on the richness of
the API provided by wifi modem)

------
Chenzo11
Virtual hi5! Vic-20 and C64 were my first intros to computers

------
PhasmaFelis
I've always loved reading about weird C64 hacks, but this is the first one
that has me seriously considering digging the old 64 out of the basement.

------
LeoPanthera
How am I going to display emojis on my Commodore 64?

~~~
localhost
Well, the C64 screen resolution is 320 x 200, so you should be able to do some
awesome full screen emoji :)

~~~
amiga-workbench
Standard sprite size on the C64 in high res mode is 8x8, and you can't use
more than two colours within that space, should be serviceable.

~~~
white-flame
C64 sprites are 24x21 pixels in 1-bit monocolor (foreground color +
transparent), or wide-pixel 12x21 2-bit multicolor (3 colors + transparent).

------
LukasRos
This is an awesome showcase for how all kinds of technology can be adapted and
connected in new, unforeseen ways. Very inspiring, cool DIY project!

------
jedimastert
Does the C64 have TCP/IP capabilities?

~~~
Diederich
The original version? Not even close. (:

TCP/IP was a thing when the C64 came out, but it was one of many competing
networking standards, and it wasn't even the favorite to win.

~~~
bduerst
Fascinating - what was favored to win at the time?

~~~
Diederich
IPX and NetBIOS (which MSFT called NetBUI) were introduced after the C64 came
out.

I would say DECnet phase IV or IBM's SNA were the biggest contenders, along
with X.25.

~~~
skissane
IPX is a modification of the Xerox Network Systems (XNS). XNS is c. 1977
whereas the Commodore 64 was released in 1982. In the early 1980s, networking
was such a young technology there was little commercial value in following
standards. Even when you based your product on pre-existing technology (like
Novell did), you changed it in incompatible ways.

I think if Commodore had wanted to do a LAN, they probably would have built
something proprietary similar to Acorn's Econet, which also ran on 6502
systems.

But, I think the primary focus of Commodore was on the home market, and most
people would only buy one microcomputer, and if they had two sharing floppies
was sufficient as a LAN. Acorn by contrast was more focused on the education
market, where the value of networking was much more obvious, and schools were
willing to pay for it.

------
robodale
As a C64 owner/user from back in the day...this is fucking awesome. Kudos to
the creator.

------
darklajid
Eagerly waiting for the Microsoft Teams port..

Because this company here tries very hard to find ways to rely on every
Microsoft product in existence and deprecated the (then 3 weeks old) Slack
server as soon as Microsoft Teams was announced.

------
gravypod
Why not just use the raspberry pi's UART and the C64's com port?

~~~
khedoros1
I think you'd still need a level shifter to go between the C64's 5V logic and
the Pi's 3.3V logic.

~~~
gravypod
For anyone who wants to try this 75lvc245.

------
coin
Complete with Gateway "2000" monitor

------
phyushin
This is great

------
giacomolaw
I love it!

------
amelius
The silly thing is that the Raspberry Pi that is used to implement this, is
actually a far more powerful computer than the C64 to begin with.

~~~
Retr0spectrum
If the point was th be sensible, this project wouldn't exist in the first
place.

------
Narishma
I think the title is misleading. It's really a Slack client for the Raspberry
Pi that you control using a C64.

~~~
jeff_harris
You're right in that the RasPi does the outbound connectivity and exposes a
rpc stream that the C64 can interact with more easily than JSON, but thats
all. The interactivity is driven by the C64, and honestly 99% of the effort
went into the C64 6502 assembly code, not the NodeJS proxy.

------
kzisme
Should have just stuck with IRC :(

~~~
Jaruzel
Slack _IS_ IRC... just with new clothes on. :)

~~~
Washuu
Not even close. Slack regularly screws up text, harfs on things, and does
generally not-IRC things. Overall Slack's interface is terrible and does not
seem to have been tested by anyone who has regularly used chat interfaces in
the past.

~~~
_joel
And it's a close-walled garden, not anything like what the internet elders
envisaged. IRC is a protocol. Slack is a product. AFAIK, you can't spin up
your own slack service and run your own private slack (happy to be corrected)

~~~
coldpie
You're right. We were looking for an internal chat solution for our company.
Currently we use IRC, but it would be nice to have an offline mechanism so we
don't need to run IRC bouncers or CLI clients on our servers to receive
messages when we're not in the office. We considered Slack, but decided it was
too risky to host our internal communications on someone else's service. I'm
waiting for the day Slack has a huge data breach.

We're currently considering adding some sort of backscroll support to IRC
(maybe automatically setting up proxies for users), or installing Rocket Chat
or HipChat on a local server.

~~~
pedoh
Mattermost might fit the bill. I haven't used it, personally.

[https://www.mattermost.org/features/](https://www.mattermost.org/features/)

~~~
bonzini
One issue we had with Mattermost is that some authentication modules (e.g.
OAuth) are not part of the free core. Rocket Chat does not have this issue,
though the mobile app is a bit less polished.

~~~
engelgabriel
Hi, we agree, and that's why we are about to launch brand new native apps for
iOS and Android. Let me know if you'd like to join the beta testers.

~~~
bonzini
Yes, with pleasure!

------
mkesper
Well, most of the work is done on the Raspberry Pi.

------
omouse
To echo others, the _start_ of a great hack.

