GEOS Programmer's Reference Guide

This book is an interactive adaptation of the GEOS Programmer's Reference Guide text file that has been floating about in Usenet and on the Internet for many, many years.  My hope is that it's a faithful and useful adaptation of the source document by Alex Boyce as revised by Bo Zimmerman, compiled and updated with other sources amplifying the information's completeness.  This book will also contain data from The Official GEOS Programmer's Reference Guide authored by Michael Farr and Berkeley Softworks and published by Bantam, The Hitchhiker's Guide to GEOS, and other sources as appropriate.



This document was written after having disassembled the GEOS Kernal and completely commenting and reverse engineering it. It took a great deal of time to do this, but I did it because I enjoy computer programming and deciphering other people's programs. Because of the amount of effort involved in creating this document, I do not really wish to give it away. However, I know there are other programmers who will benefit from my hard work. Therefore I am offering this document as shareware. If you get good use out of this document, send me whatever you feel it is worth to you (or some reasonable amount, personally I find it invaluable). A few dollars would be appreciated. Here is my address:

Alexander Donald Boyce
2269 Grandview Ave., Apt. 1
Cleveland Heights, Ohio 44106-3144

Thank you and happy computing!!

Alex Boyce
October 1986

1997 Revision Notes

Wow! This document has been floating around for over 11 years! I wonder if Mr. Boyce still uses a Commodore, or has ever thought about this document written so long ago? Anyway, this revision contains many changes to reflect BSW's release of geoProgrammer, some new information, and a better organization.

Those of you who know the previous version of this document will first notice that the names of all the routines and memory locations have been changed to reflect the official names that BSW gave them. This is to aid those of us using geoProgrammer for our coding. You'll find these names throughout the kernal descriptions, as well as many of the BSW logicals where appropriate.

The prior version of this document was also fairly deficient in the non-kernal chapters dealing with file formats, device drivers, etc. These chapters have all been beefed up a bit. Another appendix has also been added for character set reference and another for 6502/6510/8502 assembly.

Lastly, the order of all the kernal routines have been changed. This is just to cut down on page flipping and TOC referencing by putting all related routines together.

Bo Zimmerman
October, 1997
July, 2000
August, 2001


Chapter 1: GEOS Kernal Routines

Defines all the GEOS kernal routines along with their input and output requirements.

+GEOS Kernal Routines
The use of the spelling "kernal" (with an A) is consistent with all of the Berkeley Softworks GEOS documentation. Editors, please ...

Chapter 2: Device Drivers

Defines the format for input and printer drivers.

+Device Drivers
Input drivers exist in memory from $FE80 to $FFF9. They do not have a start address since they are not executable programs. The default ...

Chapter 3: File Formats

Describes the format of all of GEOS's various files.

+File Formats
A VLIR file is a tree structured file. The directory points to a single sector called the VLIR sector. The VLIR sector is a ...

Chapter 4: Directory Structure

Describes the structure of a GEOS disk's directory.

Chapter 5: Information Sector Format

Describes the structure and the data contained in a file's information sector.

Chapter 6: Memory Map

Defines the memory locations used by GEOS.


Appendix I: GEOS Errors

Defines the error numbers that can be returned by the GEOS Kernal routines.

Appendix II: Glossary

Defines several terms used in this document.

Appendix III: Fill Patterns

A representation of GEOS's 32 fill patterns.

Appendix IV: Programming Notes

Information necessary for GEOS programming.

Appendix V: GEOS/ASCII/PETSCII Character Sets

Appendix VI: 6502/6510/8502 Assembly Language



2110 medium
Full list of journal entries