Commodore logo

geoLink

(last updated 2014-02-15)
back to main Commodore page
Commodore logo
WoC presentation

World of Commodore presentation

IRC screenshot

geoLink IRC chat

login screenshot

geoLink login screen

setup screenshot

geoLink setup screen

ping screenshot

geoLink ping screen

running on tone007's machine

tone007 running geoLink on an Educator 64

running on jasmaz' SX-64

an early build on jasmaz' SX64 at World of Commodore

disk images using the IRC client building geoLink next version

NOTE: I won't be doing any more work on this version of the program; the source will remain available in case anyone else wants to do bug fixes or enhancements.

geoLink is a networked GEOS application for the Commodore 64 and an RR-Net (or compatible) network card, written using the ip65 network stack. It was assembled and linked on the '64 using geoProgrammer (no cross-assemblers). A technical presentation on geoLink was given at the C=4 Expo on 2010-05-29. If you want to see the source code, you can download the disk image; I've also got plaintext copies that I made with a utility I wrote in Java:

For information about geoLink, make sure to look at the README on the disk. To ask questions, please use the #geos channel on NewNet. If you are having a problem with geoLink, being able to enter this channel with a different computer will at least verify that your issue is not with IRC itself. I'm usually there, but I work during the day (US Central time). Or you can send an email to shadowm at lyonlabs dot org. Note: For Scandinavian users wanting to access IRCnet, irc.swipnet.se has been reported to work well.

revision history:

2010-04-26  Version 1.01 released with the following changes:

2010-04-14  Version 1.00 released, including an IRC client instead.

2009-12-05  First prototype (0.96) shown at World of Commodore in Toronto. Contained only a simple chat client that talked to a Java-based server.

disk images

Here is a D64 image of geoLink (version 1.01), which is a bootable GEOS 2.0 disk. You must boot this image from device 8. All you need to run it is a Commodore 64, a 1541 disk drive (or 1541 Ultimate) and a mouse (there's also a joystick driver on the disk; to use it instead, hit Commodore-i and use the keyboard to select it). Oh... and a network card! geoLink requires an RR-Net compatible card, and has been tested with 64NIC+, 1541 Ultimate, RR-Net, MMC Replay, and FB-Net. It's also been reported to work with an RR-Net on the Chameleon.

This D64 contains the geoLink source code in geoProgrammer format. You can find a copy of geoWrite here if you want to have a look through it, or you can use Jonno Downes' peekbot to browse it online. Note that I have made some small modifications to ip65 to make it work with GEOS; the binary (ip65-geos) is on this disk, and here is an svn diff from the 2010-03-21 release that I checked into my own Subversion repository. You'll also want to study the API reference, although not all of it applies to geoLink, since I didn't compile it with all options enabled. I also had to create my own names for the dispatcher constants to avoid naming collisions when using geoProgrammer (compare the K_ constants in geoLink.inc with the KPR_ constants in the API reference). For register and hardware information, see Jens Schoenfeld's articles Inside RRnet and Inside Replay, or the CS8900A data sheet or application notes.

using the IRC client

Have a lot of fun!   —ShadowM

building geoLink

I'd love to see other people get interested in working on geoLink, since there are more feature requests than there is of my time. Here's a rough guide to building it from source:
  1. Make sure you have all the right tools. The source is written in geoWrite, and to build it, you'll need geoAssembler and geoLinker, which you can find on my GEOS page.

  2. Download the source code. Dissolve the D64 and put all the files on the same disk or CMD partition. You'll need a 1581 or larger; I used a 1581 partition on a CMD hard drive. An accelerator like a SuperCPU or TurboMaster will certainly help.

  3. For geoLink, assemble the following files one at a time with geoAssembler:

  4. Link the object files from the above step into an executable by running geoLinker and selecting the linkage directive file geoLink.lnk. At this point you should have the geoLink program on your disk, but it won't run yet.

  5. Build the embedder by assembling the following files with geoAssembler:

  6. Link the embedder by running geoLinker and selecting embed.lnk. At this point you should have a program named embed on your disk.

  7. Run the embedder. This will embed the TCP/IP stack (ip65-geos) into VLIR record 9 of the geoLink executable created in step 4, and the monospaced font (VIP64-mono) into record 8.

  8. You should now have a working copy of geoLink. Let me know if you have problems building it and I'll try to help.

next version

According to legend, rms was once asked when the next version of emacs would be released, and replied "Sooner if you help."

issuestatus
FEATURE REQUEST: provide a way to cancel lengthy DHCP negotiation if it is not responding  
FEATURE REQUEST: respond to CTCP version requests  
FEATURE REQUEST: randomize a valid MAC address if none has been entered yet  
BUG: incoming chat message may be echoed back as though geoLink user had said it  
BUG: crash on exit (only when using 'q' command from geoDebugger)  
BUG: IP address validator allows nonsense address to be entered (but doesn't pass it)  
BUG: messages from C64 Contiki IRC client show in italics as though they were PMs  
BUG: some combinations of cursor left and backspace will corrupt the input buffer if it's larger than what will fit in the text input area (no repro case)  

back to top