Long journey of Ruby standard library at RubyConf AU 2024
Internet Technology for the Commodore 64
1. Internet Technology for theInternet Technology for the
Commodore 64Commodore 64
Leif BloomquistLeif Bloomquist
World of Commodore 2007World of Commodore 2007
2. Why TCP/IP (and Ethernet)?Why TCP/IP (and Ethernet)?
Novelty! (“Chindogu” in Japanese)Novelty! (“Chindogu” in Japanese)
Useful for data transfer between C64 and PC/MacUseful for data transfer between C64 and PC/Mac
Useful tools (terminal programs, crossdev, etc.)Useful tools (terminal programs, crossdev, etc.)
Games (coming slooowly)Games (coming slooowly)
This talk only addresses “true” Ethernet solutions, butThis talk only addresses “true” Ethernet solutions, but
other approaches (dialup, PPP, gateways) exist.other approaches (dialup, PPP, gateways) exist.
4. The TCP/IP Stack ModelThe TCP/IP Stack Model
Email, WWW, FTP, etc. (Data)Email, WWW, FTP, etc. (Data)
TCP,UDP (Connections or Paths)TCP,UDP (Connections or Paths)
IP (Packets)IP (Packets)
Ethernet (Frames)Ethernet (Frames)
CAT5 (Bits / Voltages)CAT5 (Bits / Voltages)Physical
Data Link
Network
Transport
Application
5. Layers “talk” to their equivalent on either endLayers “talk” to their equivalent on either end
Physical
Data Link
Network
Transport
Application
Physical
Data Link
Network
Transport
Application
Virtual
Connection
Physical
Connection
Computer AComputer A Computer BComputer B
6. Who Provides Which Parts?Who Provides Which Parts?
Physical
Data Link
Network
Transport
Application
Your program!
Operating System
Network Card
Physical Cable
7. A Simple Ethernet NetworkA Simple Ethernet Network
Computer #1
192.168.1.101
MAC: 00-90-4B-1F-13-17
Gateway
Private IP: 192.168.1.1
MAC: 00-40-41-14-20-61
Public IP: 216.3.6.99
MAC: 00-30-44-17-95-45Computer #3
192.168.1.103
MAC: 00-80-1B-34-55-16
Other
Segment
s
(Internet)
Computer #2
192.168.1.102
MAC: 00-90-4B-14-23-65
9. Transport Control Protocol (TCP)Transport Control Protocol (TCP)
““Phone call”Phone call”
Guarantees delivery and packet order.Guarantees delivery and packet order.
Heartbeats, ACKs and timeouts built-in.Heartbeats, ACKs and timeouts built-in.
More background “stuff” on network.More background “stuff” on network.
Use when the data must arrive, but timing isUse when the data must arrive, but timing is
not important.not important.
10. User Datagram Protocol (UDP)User Datagram Protocol (UDP)
““Postcard”Postcard”
No guarantees.No guarantees.
Heartbeats, checksums, ACKs and timeoutsHeartbeats, checksums, ACKs and timeouts
provided by...you! (if needed)provided by...you! (if needed)
Use when fast/predictable delivery is need,Use when fast/predictable delivery is need,
but can tolerate lost or out-of order of data.but can tolerate lost or out-of order of data.
12. RR-NetRR-Net
Also requires one of:Also requires one of:
Retro Replay CartridgeRetro Replay Cartridge
MMC64 CartridgeMMC64 Cartridge
IDE64 V4 (In development)IDE64 V4 (In development)
De facto StandardDe facto Standard
Approximate Cost: $75 for RR-Net onlyApproximate Cost: $75 for RR-Net only
13. ETH64ETH64
Also requires an IDE64Also requires an IDE64
Not RR-Net compatibleNot RR-Net compatible
Approximate Cost: $100 for ETH64 onlyApproximate Cost: $100 for ETH64 only
14. C64NICC64NIC
In developmentIn development
RR-Net compatibleRR-Net compatible
StandaloneStandalone
Based on original “The Final Ethernet” prototype by AdamBased on original “The Final Ethernet” prototype by Adam
Dunkels and Net64 by Till HarbaumDunkels and Net64 by Till Harbaum
Approximate Cost: $50?Approximate Cost: $50?
15. ““Super Snapshot Pro” (Tentative Name)Super Snapshot Pro” (Tentative Name)
In developmentIn development
95% RR-Net compatible95% RR-Net compatible
Compatible with Super Snapshot 5Compatible with Super Snapshot 5
Flash card reader (similar to MMC64)Flash card reader (similar to MMC64)
Approximate Cost:?Approximate Cost:?
16. More hardware to come?More hardware to come?
Enhanced TFE - in developmentEnhanced TFE - in development
Other products soon?Other products soon?
18. ContikiContiki
Multitasking O/S for C64 with Web Browser, Web Server, Telnet Client, Email,Multitasking O/S for C64 with Web Browser, Web Server, Telnet Client, Email,
IRC, and more!IRC, and more!
21. Warpcopy64Warpcopy64
Ultra-fast disk and program transferUltra-fast disk and program transfer
Turn a 1541 disk into a .D64 in 22 secondsTurn a 1541 disk into a .D64 in 22 seconds
Drag&drop files between C64 and PCDrag&drop files between C64 and PC
Only Supports RR-NetOnly Supports RR-Net
Network
23. UDPSlave and NetmonUDPSlave and Netmon
View/manipulate C64 memory from a PC over EthernetView/manipulate C64 memory from a PC over Ethernet
24. The Final Replay ROMThe Final Replay ROM
Optional ROM for theOptional ROM for the
Retro Replay CartridgeRetro Replay Cartridge
CodeNet:CodeNet:
Command-line tool for the PC for cross-developmentCommand-line tool for the PC for cross-development
Send code and data from PC to C64 over the networkSend code and data from PC to C64 over the network
Execute code remotelyExecute code remotely
NetDrive:NetDrive:
Use your PC’s hard drive as a virtual drive for C64Use your PC’s hard drive as a virtual drive for C64
25. Artillery Duel NetworkArtillery Duel Network
Proof-of-concept networked game between two C64s over the InternetProof-of-concept networked game between two C64s over the Internet
Uses the netlib64 stackUses the netlib64 stack
Internet
Commodore 64 #1 Commodore 64 #2
26. Libraries and StacksLibraries and Stacks
uIPuIP – The core of– The core of ContikiContiki. Written in C. Not tied to. Written in C. Not tied to
any particular hardware. All major protocols.any particular hardware. All major protocols.
netlib64netlib64 – A very lightweight all-ML library. Written– A very lightweight all-ML library. Written
in DASM assembler. Supportsin DASM assembler. Supports RR-NetRR-Net andand
ETH64ETH64. Supports UDP, but not TCP (yet).. Supports UDP, but not TCP (yet).
ip65ip65 – Written in ca65 assembler. Supports– Written in ca65 assembler. Supports RR-RR-
NetNet only. Supports UDP, but not TCP (yet).only. Supports UDP, but not TCP (yet).
27. VICE Emulator SupportVICE Emulator Support
Emulates RR-Net or TFEEmulates RR-Net or TFE
Emulation 95% accurateEmulation 95% accurate
28. The Future?The Future?
(What I’d like to see)(What I’d like to see)
A cheap, completely standalone EthernetA cheap, completely standalone Ethernet
cartridge.cartridge.
A standard interface to the all cartridgesA standard interface to the all cartridges
(similar to RR-Net)(similar to RR-Net)
More games!!More games!!