Thornton 2 dot Com

GEOS Kernal Routines

Ariel's GEOS Programmer's Reference Guide
Back: GEOS Development (WIP) Up: Contents Next: Device Drivers (TODO)

GEOS Kernal Routines
Back: First Up: This Next: By Category

Table of Contents


The use of the spelling "kernal" or "Kernal" or "KERNAL" is consistent with all of the Commodore and Berkeley Softworks GEOS documentation.

According to Wikipedia, the ROM kernel written by John Feagans for the Commodore PET was further developed by several people, notably Robert Russell, who added many of the features for the Commodore VIC-20 and the Commodore 64. It was known as the kernel inside Commodore, but in 1980 Russell misspelled the word as "kernal" in his notebooks. When technical writers Neil Harris and Andy Finkel collected his notes and used them as the basis for the VIC-20 programmer's manual, the misspelling followed them along and stuck. Berkeley Softworks later used the now-official misspelling when naming the core routines of GEOS.

GEOS Kernal routine names are those found in the geoProgrammer manual and other offical GEOS documentation.

Unless noted otherwise, non-inline GEOS Kernal routines are called by loading memory variables, loading registers, and executing jsr RoutineName; while inline routines are called by placing the routine's expected variable data in the bytes immediately following the jsr i_RoutineName instruction.

In the call address columns, extra symbols indicate:

A call address in hexadecimal notation. (Panic is used as an example.)
Not present in this platform's API.
Present and partly documented in this platform's API, but without a documented call address.
A probably wrong call address because it conflicts with the documented call address of a different routine.
A possibly wrong call address because it conflicts with the documented call address of a different routine, but at least one compiler produces GEOS binaries using this address for only this routine.