In 1987, Bantam published The Official GEOS Programmer's Reference Guide, a nice book for writing assembly programs for GEOS on the Commodore 64. However, so much information was inaccurate and so much more was missing that I was never able to keep straight where exactly some functions were and how to use them well. For example, GEOS had the ability to page variable-length portions of program and data files into memory by what were called "variable length indexed record" (VLIR) files, but Bantam's guide didn't accurately document how.
http://en.wikipedia.org/wiki/GEOS_%288-bit_operating_system%29