![]() |
geoGopher 2.1: a gopher client for Commodore GEOS(written for the 1541 Ultimate II+ and Ultimate 64 network interfaces)last updated 2025-08-28 |
![]() |
geoGopher is an RFC1436-compliant gopher client for the Commodore 64 running GEOS. Its main use case is to browse or search the geoSpecific collection on this site. However, geoGopher should be able to navigate any gopher site that doesn't use a lot of non-standard extensions. It ships with a configuration file containing a list of gopher sites you can visit. You can see a video of it in action. Dr Dave's Diversions had some kind words in his VCFMW 2021 video. And here's a video of the search function: I was looking for some geoPaint pictures I knew were in the geoManiacs collection. The video also shows the files being downloaded and tested.
If you have any questions about geoGopher, you can mail me: cenbe at protonmail dot com.
For those unfamiliar with gopher, it's a much simpler protocol that predated HTTP. Clients usually present information in a format similar to that commonly seen in file explorers. Here's an interesting article about gopher; if you're interested in the details, the RFC is short and understandable. And here's an excellent video of some of the creators of gopher talking about its origins, with a short demo.
At VCFMW 2017, I gave a talk on this project: here's the video, and here are the slides. Although I eventually released it on 2018-02-07, it hasn't seen much use, since it was written for the Flyer network card, which is no longer available. But in the meantime, I've been learning to code for the 1541 Ultimate II+/Ultimate 64 network interfaces, and this program seemed like a good first choice to work on. This new version of geoGopher was shown at VCFMW 2021, where I was an exhibitor. The last few (mostly cosmetic) bugs found there have been fixed, and after extensive testing by my QA engineer Wizard the Cat, he approved it for release as version 2.0. The Flyer version has been withdrawn; no more work will be done on it. (Note that the screenshots here are for the 1.0 version; I'll update them as time permits.)
As always, the project was coded entirely on a Commodore 64, although I did create text dumps of the geoWrite source files on a PC to help with searching and to use revision control (and of course I print PDFs of the source by converting to Postscript in GEOS, then to PDF on Linux). On the server side, I've provided gophermaps for Bruce Thomas' geoSpecific collection, so GEOS users can browse and search it and download individual files. The source for both the server (see below) and the program to create the gophermap for geoSpecific can be found in my GitLab repository.
Naturally, as soon 2.0 was released, I found a few more bugs. Wizard the Cat is mortified, but I've already let him know that he'll still get his bonus for acting as release manager. A 2.1 version was released on 2021-09-27 and is available below. Wizard says "meow" [sorry].
geoGopher 2.1 (D81 image)
This image contains the geoGopher executable. If you want to make modifications to it, the source and include files needed to build the program are also included. Build instructions can be found in the release notes file.
These are the geoWrite source files converted to Postscript in
GEOS, then to PDF in Linux; click to view.
geoGopherHdr (GEOS file header)
geoGopherRes (program startup)
geoGopherUtl (utility code)
geoGopherItm (gopher item handling)
geoGopherScr (scrolling routines)
geoGopherTxt (text handling)
geoGopherCvt (downloading)
geoGopherTbl (menu and icon tables)
geoGopherDat (data)
geoGopherCfg (configuration module)
geoGopherCon (connection editor editor)
geoGopherUlt (Ultimate networking driver)
geoGopher.inc (geoGohper include file)
ultimate.inc (Ultimate include file)
geoGopher.lnk (linkage directives file)
The geoSpecific collection can be reached at gopher://www.lyonlabs.org (port 70). This gopher site was intended for use by Commodore 64 clients running geoGopher, but any other gopher client should be able to navigate it as well; when downloading GEOS binaries, they'd get a file in CONVERT format (which could be copied to a Commodore 64 and converted back to a GEOS file).
The geoSpecific gopher server is written in Java, and can read GEOS files from within disk images and stream them over the network. The client converts the stream back into native GEOS format when saving to disk. Commodore 64 disk images (e.g. D64, D81) are presented as though they were a directory, allowing the user to download individual files. GEOS files are shown with both their filename and the contents of their info blocks to make it easier to browse the collection.
Consecutive info items are concatenated to reduce the amount of scrolling necessary when viewing gopher items. If there is more than will fit in the text area, an ellipsis is shown. Info items are represented by a word balloon icon, which will show the complete item text when clicked.
For text files (indicated by a "green-bar" icon), the user is given the choice to view or download the file; if it doesn't fit in memory, a warning appears, and as much of the file as possible is shown. This warning is also shown for sites with an unusually large number of gopher items.
Binaries are represented by the GEOS "globe" icon.
Note that scrollbars include arrow icons; these are "top" and "bottom" icons, not "up" and "down".
The "BACK" icon will take you to the position you were at in the location you are returning to; the "HOME" icon will return you to the main gophermap for the site you're on.