Thornton 2 dot Com
1K5BU

GEOS Kernal Routines by Call Address: Commodore

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


GEOS Kernal Routines
Back: Sorted Alphabetically Up: Remarks Next: By Call Address: Apple

Table of Contents

Routines by Call Address: Commodore

$7900

Name Purpose Call Address
InitForPrint Printer driver: Initialize printer for a new document. $7900
StartPrint Printer driver: Set printer for graphics printing. $7903
PrintBuffer Printer driver: Print an 8 pixel high row of graphics. $7906
StopPrint Printer driver: Flush buffer and feed in next page. $7909
GetDimensions Printer driver: Get dimensions of a printed page. $790c
PrintASCII Printer driver: Print a string of ASCII text. $790f
StartASCII Printer driver: Set printer for ASCII text printing. $7912
SetNLQ Printer driver: Set ASCII mode to Near-Letter Quality. $7915

$9000

Name Purpose Call Address
Get1stDirEntry Get the first file listed in the current directory. $9030
GetNxtDirEntry Get the next file listed in the current directory. $9033
GetOffPageTrSc Get the off-page directory block track and sector. $9036?
AllocateBlock Mark a disk block as in use. $9048
ReadLink Read the link from a disk block to the next block. $904b

$C000

Name Purpose Call Address
BootGEOS Restart GEOS from BASIC. $c000
ResetHandle Internal bootstrap entry point. $c003

$C100

Name Purpose Call Address
InterruptMain Process Interrupt Level events. $c100
InitProcesses Set up a table of recurring processes. $c103
RestartProcess Enable a recurring timed event, reset its timer. $c106
EnableProcess Force a timed event to execute, regardless of its timer. $c109
BlockProcess Disable execution of a timed event. $c10c
UnblockProcess Enable execution of a timed event. $c10f
FreezeProcess Stop the timer on a timed event. $c112
UnfreezeProcess Restart the timer on a timed event. $c115
HorizontalLine Draw a horizontal line on the screen. $c118
InvertLine Invert a horizontal line on the screen. $c11b
RecoverLine Copy a horizontal line from screen 2 to screen 1. $c11e
VerticalLine Draw a vertical line on the screen. $c121
Rectangle Fill a box with the current pattern. $c124
FrameRectangle Draw the outline of a box in a given pattern. $c127
InvertRectangle Invert the pixels in a box. $c12a
RecoverRectangle Copy a box from screen 2 to screen 1. $c12d

$C130

Name Purpose Call Address
DrawLine Draw, erase, or recover a line. $c130
DrawPoint Draw, erase, or recover a pixel. $c133
GraphicsString Process several graphics commands given in a table. $c136
SetPattern Set the current fill pattern. $c139
GetScanLine Compute the address of a given row on the screen. $c13c
TestPoint Get the value of a pixel on either screen. $c13f
BitmapUp Draw an encoded bitmap image on the screen. $c142
PutChar Display a text character on the screen. $c145
PutString Display an entire string of text. $c148
UseSystemFont Reset the current font to the default BSW 9 font. $c14b
StartMouseMode Initialize and start monitoring the mouse. $c14e
DoMenu Display and activate a menu tree. $c151
RecoverMenu Erase the current menu from the screen. $c154
RecoverAllMenus Erase all open menus from the screen. $c157
DoIcons Draw and activate the icons (buttons) in a table. $c15a
DShiftLeft Shift bits of a word left, multiplying by a power of 2. $c15d

$C160

Name Purpose Call Address
BBMult Multiply two unsigned 8-bit numbers. $c160
BMult Multiply two unsigned numbers, a 16-bit by an 8-bit. $c163
DMult Multiply two unsigned 16-bit numbers. $c166
Ddiv Divide unsigned numbers, a 16-bit by a 16-bit. $c169
DSdiv Divide signed numbers, a 16-bit by a 16-bit. $c16c
Dabs Compute the absolute value of a 16-bit number. $c16f
Dnegate Negate a signed 16-bit number. $c172
Ddec Decrement a 16-bit value. $c175
ClearRam Fill a memory region with zeroes. $c178
FillRam Fill a memory region with a byte. $c17b
MoveData Copy memory to a new location. $c17e
InitRam Initialize many memory regions using a table of values. $c181
PutDecimal Display an unsigned 16-bit integer in decimal. $c184
GetRandom Compute a new 16-bit pseudorandom number. $c187
MouseUp Turn on the mouse pointer. $c18a
MouseOff Turn off the mouse pointer. $c18d

$C190

Name Purpose Call Address
DoPreviousMenu Erase the current submenu and back up a menu level. $c190
ReDoMenu Redraw and reactivate the current menu. $c193
GetSerialNumber Load this GEOS Kernal's serial code. $c196
Sleep Pause subroutine without halting GEOS. $c199
ClearMouseMode Stop monitoring the pointer. $c19c
i_Rectangle Fill a box with the current pattern using inline data. $c19f
i_FrameRectangle Draw the outline of a box in a given pattern using inline data. $c1a2
i_RecoverRectangle Copy a box from screen 2 to screen 1 using inline data. $c1a5
i_GraphicsString Process several graphics commands designated by a table of inline data. $c1a8
i_BitmapUp Draw an encoded bitmap image on the screen using inline data. $c1ab
i_PutString Display an entire string of text using inline data. $c1ae
GetRealSize Return the actual width of a character in the current font. $c1b1
i_FillRam Fill a memory region with a byte using inline data. $c1b4
i_MoveData Copy memory to a new location using inline data. $c1b7
GetString Input a line of text from the user. $c1ba
GotoFirstMenu Close all open submenu levels. $c1bd

$C1C0

Name Purpose Call Address
InitTextPrompt Set sprite 1 as a vertical bar text cursor. $c1c0
MainLoop Enter Main Loop directly. $c1c3
DrawSprite Copy a sprite image into the internal storage area. $c1c6
GetCharWidth Return the width of a character in the current font. $c1c9
LoadCharSet Change the current font. $c1cc
PosSprite Position a sprite using GEOS coordinates. $c1cf
EnablSprite Turn a sprite on. $c1d2
DisablSprite Turn a sprite off. $c1d5
CallRoutine Conditional jump to a routine. $c1d8
CalcBlksFree Count the number of free blocks on the current disk. $c1db
ChkDkGEOS Check if the disk is GEOS format or not. $c1de
NewDisk Tell GEOS diskTurbo a new disk is in the drive. $c1e1
GetBlock Read a given disk block. $c1e4
PutBlock Write and verify a given block to disk. $c1e7
SetGEOSDisk Convert a non-GEOS CBM disk to GEOS format. $c1ea
SaveFile Save memory to a new GEOS file. $c1ed

$C1F0

Name Purpose Call Address
SetGDirEntry Create a directory entry on the disk. $c1f0
BldGDirEntry Create a directory entry in memory. $c1f3
GetFreeDirBlk Find space for a new entry in the current directory. $c1f6
WriteFile Save memory to a chain of allocated disk blocks. $c1f9
BlkAlloc Allocate enough sectors for a file. $c1fc
ReadFile Load memory from a chain of blocks on the disk. $c1ff
SmallPutChar Display a text character on the screen without any special processing. $c202
FollowChain Create a table of disk blocks used by a file. $c205
GetFile Load a GEOS file or load and run a GEOS program. $c208
FindFile Find a file in the current directory. $c20b
CRC Compute a checksum for a data region. $c20e
LdFile Load a GEOS data file. $c211
EnterTurbo Enable GEOS diskTurbo in the current disk drive, uploading it if necessary. $c214
LdDeskAcc Load and run a desk accessory file. $c217
ReadBlock Read a given disk block (without overhead). $c21a
LdApplic Load and possibly run an application file. $c21d

$C220

Name Purpose Call Address
WriteBlock Write a block to disk. $c220
VerWriteBlock Verify a block recently written to disk. $c223
FreeFile Mark a file's disk blocks as unallocated. $c226
GetFHdrInfo Load the GEOS header of a file. $c229
EnterDesktop End application and restart GEOS deskTop. $c22c
StartAppl Warmstart GEOS and run a program already in memory. $c22f
ExitTurbo Disable GEOS diskTurbo in the current disk drive. $c232
PurgeTurbo Remove GEOS diskTurbo from current drive. $c235
DeleteFile Delete a file from the disk. $c238
FindFTypes Find all files in the current directory of a specific GEOS type. $c23b
RstrAppl End desk accessory and return to calling application. $c23e
ToBasic Restart BASIC, optionally with a program to load. $c241
FastDelFile Delete a sequential file quickly. $c244
GetDirHead Read the directory header from the disk. $c247
PutDirHead Write directory header to disk. $c24a
NxtBlkAlloc Allocate more sectors for a file. $c24d

$C250

Name Purpose Call Address
ImprintRectangle Copy a box from screen 1 to screen 2. $c250
i_ImprintRectangle Copy a box from screen 1 to screen 2 using inline data. $c253
DoDlgBox Show a dialog box window. $c256
RenameFile Rename a file in the current directory. $c259
InitForIO Open serial communication. $c25c
DoneWithIO Close serial communication. $c25f
DShiftRight Shift bits of a word right, dividing by a power of 2. $c262
CopyString Copy a null-terminated string. $c265
CopyFString Copy a fixed-length block of memory. $c268
CmpString Compare two null-terminated strings. $c26b
CmpFString Compare two fixed-length blocks of memory. $c26e
FirstInit Initialize GEOS variables and structures to boot-time states. $c271
OpenRecordFile Open a VLIR file. $c274
CloseRecordFile Close the open VLIR file. $c277
NextRecord Make next record current in VLIR file. $c27a
PreviousRecord Make previous record current in VLIR file. $c27d

$C280

Name Purpose Call Address
PointRecord Make a specific record current in VLIR file. $c280
DeleteRecord Delete the current VLIR record. $c283
InsertRecord Insert a new record before current record in VLIR file. $c286
AppendRecord Append a new record after current record in VLIR file. $c289
ReadRecord Read current record from VLIR file. $c28c
WriteRecord Save memory to current record of VLIR file. $c28f
SetNextFree Allocate the next free block on the disk. $c292
UpdateRecordFile Update a VLIR file. $c295
GetPtrCurDkNm Compute the address of the disk's name. $c298
PromptOn Turn on text cursor. $c29b
PromptOff Turn off text cursor. $c29e
OpenDisk Open a disk to GEOS. $c2a1
DoInlineReturn Return from inline subroutine. $c2a4
GetNextChar Get a key from the keyboard queue. $c2a7
BitmapClip Draw a cropped section of an encoded bitmap image. $c2aa
FindBAMBit Check if a disk block is in use. $c2ad

$C2B0

Name Purpose Call Address
SetDevice Make another device the current disk drive. $c2b0
IsMseInRegion Check if the mouse pointer is in a box. $c2b3
ReadByte Read a byte from a file. $c2b6
FreeBlock Mark a disk block as unallocated. $c2b9
ChangeDiskDevice Change the device number of a drive. $c2bc
RstrFrmDialog Close a dialog box window. $c2bf
Panic Draw a system error window and halt the system. $c2c2
BitOtherClip Draw a section of a bitmap image using call vectors. $c2c5
StashRAM Copy a block of memory from main RAM into the REU. $c2c8
FetchRAM Copy a block of memory from the REU into main RAM. $c2cb
SwapRAM Swap memory between main RAM and the REU. $c2ce
VerifyRAM Verify a block of memory in main RAM against one in the REU. $c2d1
DoRAMOp Move memory to and from the REU. $c2d4
TempHideMouse Temporarily hide all soft-sprites including pointer. $c2d7
SetMsePic Load and preshift a new soft-sprite pointer icon. $c2da
SetNewMode Change graphics mode to 40-column or 80-column. $c2dd
NormalizeX Adjust x-coordinate for 80-column mode. $c2e0
MoveBData Copy memory in or between front-RAM and back-RAM. $c2e3
SwapBData Swap memory in or between front-RAM and back-RAM. $c2e6
VerifyBData Verify a block of memory in front-RAM or back-RAM against another. $c2e9
DoBOp Copy, swap, or verify memory between front-RAM and back-RAM. $c2ec
HideOnlyMouse Temporarily hide the soft-sprite mouse pointer. $c2f2

$FE80

Name Purpose Call Address
InitMouse Input driver: Initialize pointer device. $fe80
SlowMouse Input driver: Stop and reset pointer acceleration. $fe83
UpdateMouse Input driver: Update mouse variables from device. $fe86
SetMouse Input driver: Reset mouse pot scanning lines. $fe89