internet technology for the commodore 64
DESCRIPTION
My (slightly dated) overview of the state of the art of Internet connectivity for the Commodore 64, circa 2007.TRANSCRIPT
Internet Technology for the Internet Technology for the Commodore 64Commodore 64
Leif BloomquistLeif Bloomquist
World of Commodore 2007World of Commodore 2007
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, but This talk only addresses “true” Ethernet solutions, but other approaches (dialup, PPP, gateways) exist.other approaches (dialup, PPP, gateways) exist.
About TCP/IP and EthernetAbout TCP/IP and Ethernet
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
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
ApplicationVirtual
Connection
PhysicalConnection
Computer A Computer A
Computer B Computer B
Who Provides Which Parts?Who Provides Which Parts?
Physical
Data Link
Network
Transport
Application Your program!
Operating System
Network Card
Physical Cable
A Simple Ethernet NetworkA Simple Ethernet Network
Computer #1192.168.1.101
MAC: 00-90-4B-1F-13-17
GatewayPrivate IP: 192.168.1.1
MAC: 00-40-41-14-20-61
Public IP: 216.3.6.99MAC: 00-30-44-17-95-45Computer #3
192.168.1.103MAC: 00-80-1B-34-55-16
OtherSegment
s(Internet)
Computer #2192.168.1.102
MAC: 00-90-4B-14-23-65
EncapsulationEncapsulation
Data Link
Network
Transport
Application
All layers have a “header” followed by dataAll layers have a “header” followed by data
Higher-level layers reside inside data area of lower layer
High-level packets are broken up across lower-level packets if needed
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 is Use when the data must arrive, but timing is not important.not important.
User Datagram Protocol (UDP)User Datagram Protocol (UDP)
““Postcard”Postcard”
No guarantees.No guarantees.
Heartbeats, checksums, ACKs and timeouts Heartbeats, 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.
HardwareHardware
RR-NetRR-NetAlso 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
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
C64NICC64NIC
In developmentIn development
RR-Net compatibleRR-Net compatible
StandaloneStandalone
Based on original “The Final Ethernet” prototype by Adam Based 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?
““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:?
More hardware to come?More hardware to come?
Enhanced TFE - in developmentEnhanced TFE - in development
Other products soon?Other products soon?
SoftwareSoftware
ContikiContiki
Multitasking O/S for C64 with Web Browser, Web Server, Telnet Client, Email, IRC, Multitasking O/S for C64 with Web Browser, Web Server, Telnet Client, Email, IRC, and more!and more!
Singular BrowserSingular Browser
Standalone Web BrowserStandalone Web Browser
GuruTermGuruTerm
Pseudo-Telnet client for calling Commodore Telnet BBSesPseudo-Telnet client for calling Commodore Telnet BBSes
Warpcopy64Warpcopy64
Ultra-fast disk and program transferUltra-fast disk and program transferTurn a 1541 disk into a .D64 in 22 secondsTurn a 1541 disk into a .D64 in 22 secondsDrag&drop files between C64 and PCDrag&drop files between C64 and PCOnly Supports RR-NetOnly Supports RR-Net
Network
DiskImagery64DiskImagery64
D64 Editor for Mac/Linux/PCD64 Editor for Mac/Linux/PCIntegrates with Warpcopy64Integrates with Warpcopy64
UDPSlave and NetmonUDPSlave and Netmon
View/manipulate C64 memory from a PC over EthernetView/manipulate C64 memory from a PC over Ethernet
The Final Replay ROMThe Final Replay ROM
Optional ROM for theOptional ROM for theRetro 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
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 InternetUses the netlib64 stackUses the netlib64 stack
Internet
Commodore 64 #1 Commodore 64 #2
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. Supports in DASM assembler. Supports RR-NetRR-Net and and 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).
VICE Emulator SupportVICE Emulator Support
Emulates RR-Net or TFEEmulates RR-Net or TFE
Emulation 95% accurateEmulation 95% accurate
The Future?The Future?(What I’d like to see)(What I’d like to see)
A cheap, completely standalone Ethernet A cheap, completely standalone Ethernet cartridge.cartridge.
A standard interface to the all cartridges A standard interface to the all cartridges (similar to RR-Net) (similar to RR-Net)
More games!!More games!!