World of Commodore presentation
geoLink IRC chat
geoLink login screen
geoLink setup screen
geoLink ping screen
tone007 running geoLink on an Educator 64
an early build on jasmaz' SX64 at World of Commodore
geoLink is a
networked GEOS application for
the Commodore 64 written by ShadowM 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.
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.
2010-04-14 Version 1.00 released, including
an IRC client instead.
2010-04-26 Version 1.01 released with the
following changes:
- All debug and motd ("message of the day") output has been turned
off to minimize screen rendering and scrolling. This should solve
problems with geoLink being unable to keep up while the motd is
being sent right after connection.
- Double-buffering of the screen has been turned off. This gives a
small but noticeable increase in rendering speed.
- The latest release (2010-03-21) of ip65 is being used. This
includes a TCP fix ("when using tcp_listen, an incorrect sequence
number was being sent in the SYN/ACK packet"). I've also changed my
build scripts to remove some more unused features, which gives me
additional memory to work with. Per Olofsson (original author of
ip65) is now credited in the info dialog along with the current
maintainer, Jonno Downes.
- A separate buffer is now used to build screen output (rather
than re-using the TCP input buffer).
- The channel name in the title bar is not changed when a /join or
/part is sent, but only when the corresponding notification is
received from the server.
- Support for desk accessories has been removed.
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.org. Note: For
Scandinavian users wanting to access
IRCnet, irc.swipnet.se
has been reported to work well.
Here is a D64 image of geoLink
(version 1.01), which is a bootable GEOS 2.0 disk. All you need to run
it is a Commodore 64, a 1541 disk drive or 1541 Ultimate (it will
not run on a µIEC) 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.
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. For register and hardware information, see Jens
Schoenfeld's
articles Inside
RRnet
and Inside
Replay, or the
CS8900A data
sheet
or application
notes.
- Boot the client
disk (
LOAD":*",8,1
).
- Double-click the
README file (there's a copy of geoWrite and several printer
drivers on the disk), and read it. For those without a
printer for their Commodore system, here's
a scan of the README to print out
on your more modern computer.
- Double-click the
geoLink icon to start the client.
- The first time
the program is run, a setup dialog will appear. Enter your network
information or click "use DHCP", then click the OK icon. It is
suggested that you use a MAC address beginning with Commodore's
reserved OUI of 00:80:10. DHCP negotiation may take a minute or
more the first time.
- When connected
successfully, the program will ask you to save your settings to a
file. Although not necessary, this will make starting the program
again much easier. If settings have been saved, a dialog will
appear when the program starts asking you which settings file to
use (you can also cancel that dialog and enter new settings).
- To test
connectivity, you can select
options/ping
from the
menu. Enter a hostname or IP address to ping. The exit icon in the
upper right of this dialog will exit the ping module.
- To enter IRC,
select
options/IRC
from the menu. Further information
can be found in the README.
Have a lot of
fun! —ShadowM
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:
- 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.
- 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.
- For geoLink, assemble the following files one at a time with
geoAssembler:
- geoLinkRes
- geoLinkVal
- geoLinkSetup
- geoLinkPing
- geoLinkLogin
- geoLinkIRC
- geoLinkParse
- geoLinkText
- geoLinkIRCd
- geoLinkHdr
- Link the object files from the above step into an executable by
running geoLink 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.
- Build the embedder by assembling the following files with
geoAssembler:
- Link the embedder by running geoLink and selecting embed.lnk. At
this point you should have a program named embed on your
disk.
- 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.
- You should now have a working copy of geoLink. Let me know if you
have problems building it and I'll try to help.
issue | status |
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 |
|
back
to top