Thornton 2 Library of Scraps

GEOS Kernal Routines

The GEOS Programmer's Reference Guide
Back: Preface Up: Contents Next: Device Drivers

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, a dot (".") indicates that the GEOS jump table doesn't have an entry for that routine, and a question mark ("?") indicates that the call address is not documented. With a call address, a question mark indicates that the documentation is wrong because it conflicts with the call address of another routine in the GEOS jump table. With a call address, an exclamation point ("!") indicates that the documentation is wrong because the call address conflicts with another routine, but at least one compiler produces binaries using the call address for this routine over any other claim.

Table of Contents

Routines by Category

Math Routines, Memory Manipulation Routines, Text and Font Routines, Low Level Disk Routines, High Level Disk Routines, VLIR Support Routines, Graphics Routines, Control Routines, Miscellaneous Routines, Process Routines, Device Driver Routines.

Math Routines

Name Purpose Call Address
CBM Apple
Dnegate Negate a signed 16-bit number. $C172 $FEDE
Ddiv Divide an unsigned 16-bit number by another unsigned 16-bit number. $C169 $FED5
DMult Multiply two unsigned 16-bit numbers. $C166 $FED2
BMult Multiply an unsigned 16-bit number by an unsigned 8-bit number. $C163 $FECF
BBMult Multiply two unsigned 8-bit numbers. $C160 $FECC
DSdiv Divide a signed 16-bit number by another signed 16-bit number. $C16C $FED8
Dabs Compute the absolute value of a 16-bit number. $C16F $FEDB
Ddec Decrement a 16-bit value. $C175 $FEE1
DShiftLeft Multiply an unsigned 16-bit number by a power of 2 by shifting its bits left. $C15D $FEC6
DShiftRight Divide an unsigned 16-bit number by a power of 2 by shifting its bits right. $C262 $FEC9
CRC Compute a checksum for a data region. $C20E $FF14

Memory Manipulation Routines

Name Purpose Call Address
CBM Apple
InitRam Use a table to set various memory locations in a uniform manner. $C181
MoveData Intelligent block move. $C17E
i_MoveData Intelligent block move using inline data. $C1B7
FillRam Fill a memory region with a specified byte. $C17B $FEFF
i_FillRam Fill a memory region with a specified byte using inline data. $C1B4 $FF02
ClearRam Fill a memory region with zeroes. $C178 $FEFC
CmpString Compare two null-terminated strings. $C26B $FEED
CopyString Copy a null-terminated string. $C265 $FEE7
CmpFString Compare two fixed-length blocks of memory. $C26E $FEF0
CopyFString Copy a fixed-length block of memory. $C268 $FEEA
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 a block of memory in main RAM with one in the REU. $C2CE
VerifyRAM Verifies a block of memory in main RAM against one in the REU. $C2D1
DoRAMOp Move memory to and from the REU. $C2D4 .
DoBOp GEOS 128 only: Move, swap, or verify memory between front-RAM and back-RAM. $C2EC .

Text and Font Routines

Name Purpose Call Address
CBM Apple
PutChar Display a text character on the screen. $C145
SmallPutChar Display a text character on the screen without any special processing. $C202
PutDecimal Display an unsigned 16 bit integer. $C184
PutString Display an entire string of text. $C148
i_PutString Display an entire string of text using inline data. $C1AE
EraseCharacter Erase a text character from the screen. . $FF3E
GetNextChar Get a key from the keyboard queue. $C2A7 $FE75
GetString Input a line of text from the user. $C1BA $FE72
InitTextPrompt Make a vertical bar cursor sprite. $C1C0
PromptOn Turn on text cursor. $C29B
PromptOff Turn off text cursor. $C29E
UseSystemFont Reset the current font to the default BSW font. $C14B
LoadCharSet Change the current font. $C1CC
GetRealSize Return the actual width of a character in the current font. $C1B1 $FE84
GetCharWidth Return the width of a character in the current font. $C1C9 $FE87

Low Level Disk Routines

Name Purpose Call Address
CBM Apple
AllocateBlock Mark a disk block as in use. (Do not use on 1541 disk drives in GEOS 64.) $9048 $0300?
FreeBlock Mark a disk block as unallocated. $C2B9 $032A
SetDevice Make another device the current disk drive. $C2B0
ChangeDiskDevice Change the device number of a drive. $C2BC .
OpenDisk Open a disk to GEOS. $C2A1
NewDisk Initialize a disk drive. $C1E1
EnterTurbo Enable GEOS TurboDos in the current disk drive, uploading it if necessary. $C214 .
ExitTurbo Disable GEOS TurboDos in the current disk drive. $C232 .
PurgeTurbo Clear the drive ready status. $C235
DownDirectory Make a subdirectory the new current directory. . $0381
GoDirectory Change the current directory to another directory. . $039F
Get1stDirEntry Get the first file listed in the current directory. $9030 $039C?
GetNxtDirEntry Get the next file listed in the current directory. $9033 $039C?
GetDirHead Read the directory header from the disk. $C247 $0372
GetVBM Load the disk's first VBM block into the VBM cache. . $031E
GetOffPageTrSc Load the off-page directory block. ? .
PutDirHead Write track 18 sector 0 back to disk. $C24A
GetBlock Read a given disk block. $C1E4 $0300!
PutBlock Write a given track and sector. $C1E7
ReadBlock Read a sector from the disk. $C21A
WriteBlock Write a sector to disk. $C220
VerWriteBlock Conditionally write a sector to disk. $C223
GetPtrCurDkNm Compute the address of the disk's name. $C298 $FF56
FindBAMBit Check if a disk block is in use. $C2AD .
FindVBMBit Check if a disk block is in use. . $036C?
SetNextFree Allocate a block on the disk. $C292
BlkAlloc Allocate enough sectors for a file. $C1FC $0351
NxtBlkAlloc Allocate enough sectors for a file. $C24D
SetGEOSDisk Convert the disk to GEOS format. $C1EA
ChkDkGEOS Check if the disk is GEOS format or not. $C1DE .
CalcBlksFree Count the number of free blocks on the current disk. $C1DB $0324
GetLdVars Transfer Ld variables to GEOS pseudoregisters. . $FF44

High Level Disk Routines

Name Purpose Call Address
CBM Apple
FindFTypes Find all files in the current directory of a specific GEOS type. $C23B $0366
FdFTypesInDir Find all files in a directory not the current directory of a specific GEOS type. . $0363
FindFile Find a file in the current directory. $C20B $0369
FndFilinDir Find a file in a directory not the current directory. . $036C!
SaveFile Save memory to disk. $C1ED
ReadFile Load memory from disk. $C1FF
WriteFile Save memory to specified sectors on the disk. $C1F9
RenameFile Rename a file on the current disk. $C259
DeleteDir Delete a subdirectory from the disk's current directory. . $037E
DeleteFile Delete a file from the disk. $C238 $0357
FastDelFile Delete a sequential file quickly. $C244 .
FreeDir Mark a subdirectory's disk blocks as unallocated. . $03BA
FreeFile Mark a file's disk blocks as unallocated. $C226 $035A
RstrAppl End a desk accessory and return to the suspended application. $C23E
GetFile Load a GEOS file or load and run a GEOS program. $C208 $030F
LdFile Load a file. $C211
LdApplic Load and possibly run an application file. $C21D
LdDeskAcc Load and run a desk accessory file. $C217
ReadByte Read a byte from a file. $C2B6
GetFreeDirBlk Find space for a new entry in the current directory. $C1F6 $0375
SetGDirEntry Create a directory entry on the disk. $C1F0
BldGDirEntry Create a directory entry in memory. $C1F3 $036F
GetFHdrInfo Load the GEOS header of a file. $C229 $0390
FollowChain Create a table of disk blocks used by a file. $C205 .
GetPathname Get the full pathname of a directory. . $0384

VLIR Support Routines

Name Purpose Call Address
CBM Apple
OpenRecordFile Open a VLIR file. $C274
PointRecord Get a specific VLIR chain. $C280
PreviousRecord Move to previous VLIR chain. $C27D
NextRecord Move to next VLIR chain. $C27A
InsertRecord Insert a new chain in a VLIR file. $C286
AppendRecord Append a new record in a VLIR file. $C289 $0330
DeleteRecord Remove the current VLIR record. $C283 $0336
ReadRecord Load a VLIR chain. $C28C
WriteRecord Save memory to a VLIR chain. $C28F
UpdateRecordFile Update a VLIR file. $C295
CloseRecordFile Close the open VLIR file. $C277 $0333

Graphics Routines

Name Purpose Call Address
CBM Apple
GraphicsString Process several graphics commands given in a table. $C136 $FE60
i_GraphicsString Process several graphics commands designated by a table of inline data. $C1A8
GetPattern Load the 8 bytes of a GEOS system pattern. . $FF7D
SetPattern Set the current fill pattern. $C139
FrameRectangle Draw the outline of a rectangular box in a given pattern. $C127 $FE3F
i_FrameRectangle Draw the outline of a rectangular box in a given pattern using inline data. $C1A2
Rectangle Fill a rectangular box with the current pattern. $C124
i_Rectangle Fill a rectangular box with the current pattern using inline data. $C19F
RecoverRectangle Copy a box from screen 2 to screen 1. $C12D
i_RecoverRectangle Copy a box from screen 2 to screen 1 using inline data. $C1A5
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
InvertRectangle Invert the pixels in a box. $C12A
RecoverLine Copy a horizontal line from screen 2 to screen 1. $C11E
InvertLine Invert a horizontal line on the screen. $C11B
DrawLine Draw, erase, or recover a line. $C130 $FE33
HorizontalLine Draw a horizontal line on the screen. $C118 $FE27
VerticalLine Draw a vertical line on the screen. $C121
GetScanLine Compute the address of a given row on the screen. $C13C $FE66
TestPoint Test the value of a point on the hires screen. $C13F
DrawPoint Draw, erase, or recover a pixel. $C133 $FE21
BitmapUp Draw an encoded bitmap image on the screen. $C142 $FE54
i_BitmapUp Draw an encoded bitmap image on the screen using inline data. $C1AB $FE57
BitmapClip Draw a cropped section of an encoded bitmap image. $C2AA $FE5A
BitOtherClip Draw a section of a bitmap image using call vectors. $C2C5 $FE5D
DrawSprite Copy a sprite image into the internal storage area. $C1C6 $FEA2
GetSpriteData Copy a sprite image from the internal storage area. . $FF6E
PosSprite Set the position of a sprite. $C1CF
EnablSprite Turn a sprite on. $C1D2 $FEA8
DisablSprite Turn a sprite off. $C1D5 $FEAB
CopyFullScreen Copy a full-width part of the foreground screen to another part. . $FF92
CopyLine Copy a horizontal line from one part of either screen to another part. . $FF5F
CopyScreenBlock Copy a rectangular area from one part of either screen to another part. . $FF5C
GetScreenLine Load a line from the screen as it appears in memory. . $FF62
DivideBySeven Divide an unsigned 16-bit number by 7 for direct screen access graphics. . $FF68

Control Routines

Name Purpose Call Address
CBM Apple
DoMenu Display and activate a menu tree. $C151 $FE0F
DoPreviousMenu Erase the current submenu and back up a menu level. $C190 $FE15
GotoFirstMenu Close all open submenu levels. $C1BD $FE18
ReDoMenu Redraw the current menu. $C193
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 $FE0C
DoDlgBox Show a dialog box window. $C256 $FF17
RstrFrmDialogue Close a dialog box window. $C2BF
IsMseInRegion Check if the mouse is in a box. $C2B3
Panic Draw a system error window and halt the system. $C2C2

Miscellaneous Routines

Name Purpose Call Address
CBM Apple
InitForIO Open serial communication. $C25C
DoneWithIO Close serial communication. $C25F .
FirstInit Initialize GEOS variables and data structures to boot-time states. $C271 $FF11
MainLoop Enter the GEOS main loop. $C1C3
InterruptMain Handle several items that occur at regular timed intervals. $C100
BootGEOS Restart GEOS from BASIC. $C000 .
StartAppl Run a program already in memory. $C22F
EnterDesktop End application and restart GEOS deskTop. $C22C $FF59
ToBasic Restart BASIC, optionally with a program to load. $C241
CallRoutine Conditional jump to a routine. $C1D8 $FF08
DoInlineReturn Return from inline subroutine. (Use jmp, not jsr.) $C2A4 $FE09
StartMouseMode Initialize the mouse. $C14E
MouseUp Turn on the mouse. $C18A
MouseOff Turn off the mouse. $C18D
HideOnlyMouse Temporarily hides the soft-sprite mouse pointer. $C2F2 $FF7A
ClearMouseMode Stop monitoring the pointer. $C19C $FE9F
Sleep Pause program momentarily without halting GEOS. $C199
GetRandom Compute a new 16-bit pseudorandom number. $C187 $FEE4
GetSerialNumber Load this GEOS kernal's serial code. $C196 $4B38
Bell Sound speaker at 1 KHz for about 100 ms. . $FF86

Process Routines

Name Purpose Call Address
CBM Apple
InitProcesses Set up a table of recurring timed events. $C103
EnableProcess Force a timed event to execute, regardless of its timer. $C109 $FEC3
RestartProcess Enable a recurring timed event. $C106
FreezeProcess Stop the timer on a timed event. $C112 $FEBA
BlockProcess Disable execution of a timed event. $C10C $FEB4
UnblockProcess Enable the execution of a timed event. $C10F
UnfreezeProcess Restart the timer on a timed event. $C115

Device Driver Routines

Name Purpose Call Address
CBM Apple
AuxDMain Aux driver: Main loop routine. . $EFA0
AuxDInt Aux driver: Interrupt level routine. . $EFA3
AuxDKeyFilter Aux driver: Filter current keypress. . $EFA6
AuxDExit Aux driver: Uninstall and exit. . $EFA9
ClearCard Card driver: Stop transmitting and clear its buffer. . $6715
CloseCard Card driver: Close I/O card access. . $670C
ClockInt Clock driver: Interrupt level routine. . $0803
CancelPrint Printer driver: Stop printer immediately, clear printer and I/O card buffers. . $6018
GetDimensions Printer driver: Get dimensions of a printed page. $790C .
GetMode Printer driver: Get dimensions of a printed page and print modes. . $6012

Routines Sorted Alphabetically

A, B, C, D, E, F, G, H, I, L, M, N, O, P, R, S, T, U, V, W, Inline Routines.

A

Name Purpose Call Address
CBM Apple
AllocateBlock Mark a disk block as in use. (Do not use on 1541 disk drives in GEOS 64.) $9048 $0300?
AppendRecord Append a new record in a VLIR file. $C289 $0330
AuxDExit Aux driver: Uninstall and exit. . $EFA9
AuxDInt Aux driver: Interrupt level routine. . $EFA3
AuxDKeyFilter Aux driver: Filter current keypress. . $EFA6
AuxDMain Aux driver: Main loop routine. . $EFA0

B

Name Purpose Call Address
CBM Apple
BBMult Multiply two unsigned 8-bit numbers. $C160 $FECC
Bell Sound speaker at 1 KHz for about 100 ms. . $FF86
BitOtherClip Draw a section of a bitmap image using call vectors. $C2C5 $FE5D
BitmapClip Draw a cropped section of an encoded bitmap image. $C2AA $FE5A
BitmapUp Draw an encoded bitmap image on the screen. $C142 $FE54
BldGDirEntry Create a directory entry in memory. $C1F3 $036F
BlkAlloc Allocate enough sectors for a file. $C1FC $0351
BlockProcess Disable execution of a timed event. $C10C $FEB4
BMult Multiply an unsigned 16-bit number by an unsigned 8-bit number. $C163 $FECF
BootGEOS Restart GEOS from BASIC. $C000 .

C

Name Purpose Call Address
CBM Apple
CalcBlksFree Count the number of free blocks on the current disk. $C1DB $0324
CallRoutine Conditional jump to a routine. $C1D8 $FF08
CancelPrint Printer driver: Stop printer immediately, clear printer and I/O card buffers. . $6018
ChangeDiskDevice Change the device number of a drive. $C2BC .
ChkDkGEOS Check if the disk is GEOS format or not. $C1DE .
ClearCard Card driver: Stop transmitting and clear its buffer. . $6715
ClearMouseMode Stop monitoring the pointer. $C19C $FE9F
ClearRam Fill a memory region with zeroes. $C178 $FEFC
ClockInt Clock driver: Interrupt level routine. . $0803
CloseCard Card driver: Close I/O card access. . $670C
CloseRecordFile Close the open VLIR file. $C277 $0333
CmpFString Compare two fixed-length blocks of memory. $C26E $FEF0
CmpString Compare two null-terminated strings. $C26B $FEED
CopyFString Copy a fixed-length block of memory. $C268 $FEEA
CopyFullScreen Copy a full-width part of the foreground screen to another part. . $FF92
CopyLine Copy a horizontal line from one part of either screen to another part. . $FF5F
CopyScreenBlock Copy a rectangular area from one part of either screen to another part. . $FF5C
CopyString Copy a null-terminated string. $C265 $FEE7
CRC Compute a checksum for a data region. $C20E $FF14

D

Name Purpose Call Address
CBM Apple
Dabs Compute the absolute value of a 16-bit number. $C16F $FEDB
Ddec Decrement a 16-bit value. $C175 $FEE1
Ddiv Divide an unsigned 16-bit number by another unsigned 16-bit number. $C169 $FED5
DeleteDir Delete a subdirectory from the disk's current directory. . $037E
DeleteFile Delete a file from the disk. $C238 $0357
DeleteRecord Remove the current VLIR record. $C283 $0336
DisablSprite Turn a sprite off. $C1D5 $FEAB
DivideBySeven Divide an unsigned 16-bit number by 7 for direct screen access graphics. . $FF68
DMult Multiply two unsigned 16-bit numbers. $C166 $FED2
Dnegate Negate a signed 16-bit number. $C172 $FEDE
DoBOp GEOS 128 only: Move, swap, or verify memory between front-RAM and back-RAM. $C2EC .
DoDlgBox Show a dialog box window. $C256 $FF17
DoIcons Draw and activate the icons (buttons) in a table. $C15A $FE0C
DoInlineReturn Return from inline subroutine. (Use jmp, not jsr.) $C2A4 $FE09
DoMenu Display and activate a menu tree. $C151 $FE0F
DoneWithIO Close serial communication. $C25F .
DoPreviousMenu Erase the current submenu and back up a menu level. $C190 $FE15
DoRAMOp Move memory to and from the REU. $C2D4 .
DownDirectory Make a subdirectory the new current directory. . $0381
DrawLine Draw, erase, or recover a line. $C130 $FE33
DrawPoint Draw, erase, or recover a pixel. $C133 $FE21
DrawSprite Copy a sprite image into the internal storage area. $C1C6 $FEA2
DSdiv Divide a signed 16-bit number by another signed 16-bit number. $C16C $FED8
DShiftLeft Multiply an unsigned 16-bit number by a power of 2 by shifting its bits left. $C15D $FEC6
DShiftRight Divide an unsigned 16-bit number by a power of 2 by shifting its bits right. $C262 $FEC9

E

Name Purpose Call Address
CBM Apple
EnableProcess Force a timed event to execute, regardless of its timer. $C109 $FEC3
EnablSprite Turn a sprite on. $C1D2 $FEA8
EnterDesktop End application and restart GEOS deskTop. $C22C $FF59
EnterTurbo Enable GEOS TurboDos in the current disk drive, uploading it if necessary. $C214 .
EraseCharacter Erase a text character from the screen. . $FF3E
ExitTurbo Disable GEOS TurboDos in the current disk drive. $C232 .

F

Name Purpose Call Address
CBM Apple
FastDelFile Delete a sequential file quickly. $C244 .
FdFTypesInDir Find all files in a directory not the current directory of a specific GEOS type. . $0363
FetchRAM Copy a block of memory from the REU into main RAM. $C2CB .
FillRam Fill a memory region with a specified byte. $C17B $FEFF
FindBAMBit Check if a disk block is in use. $C2AD .
FindFile Find a file in the current directory. $C20B $0369
FindFTypes Find all files in the current directory of a specific GEOS type. $C23B $0366
FindVBMBit Check if a disk block is in use. . $036C?
FirstInit Initialize GEOS variables and data structures to boot-time states. $C271 $FF11
FndFilinDir Find a file in a directory not the current directory. . $036C!
FollowChain Create a table of disk blocks used by a file. $C205 .
FrameRectangle Draw the outline of a rectangular box in a given pattern. $C127 $FE3F
FreeBlock Mark a disk block as unallocated. $C2B9 $032A
FreeDir Mark a subdirectory's disk blocks as unallocated. . $03BA
FreeFile Mark a file's disk blocks as unallocated. $C226 $035A
FreezeProcess Stop the timer on a timed event. $C112 $FEBA

G

Name Purpose Call Address
CBM Apple
Get1stDirEntry Get the first file listed in the current directory. $9030 $039C?
GetBlock Read a given disk block. $C1E4 $0300!
GetCharWidth Return the width of a character in the current font. $C1C9 $FE87
GetDimensions Printer driver: Get dimensions of a printed page. $790C .
GetDirHead Read the directory header from the disk. $C247 $0372
GetFHdrInfo Load the GEOS header of a file. $C229 $0390
GetFile Load a GEOS file or load and run a GEOS program. $C208 $030F
GetFreeDirBlk Find space for a new entry in the current directory. $C1F6 $0375
GetLdVars Transfer Ld variables to GEOS pseudoregisters. . $FF44
GetMode Printer driver: Get dimensions of a printed page and print modes. . $6012
GetNextChar Get a key from the keyboard queue. $C2A7 $FE75
GetNxtDirEntry Get the next file listed in the current directory. $9033 $039C?
GetOffPageTrSc Load the off-page directory block. ? .
GetPathname Get the full pathname of a directory. . $0384
GetPattern Load the 8 bytes of a GEOS system pattern. . $FF7D
GetPtrCurDkNm Compute the address of the disk's name. $C298 $FF56
GetRandom Compute a new 16-bit pseudorandom number. $C187 $FEE4
GetRealSize Return the actual width of a character in the current font. $C1B1 $FE84
GetScanLine Compute the address of a given row on the screen. $C13C $FE66
GetScreenLine Load a line from the screen as it appears in memory. . $FF62
GetSerialNumber Load this GEOS kernal's serial code. $C196 $4B38
GetSpriteData Copy a sprite image from the internal storage area. . $FF6E
GetString Input a line of text from the user. $C1BA $FE72
GetVBM Load the disk's first VBM block into the VBM cache. . $031E
GoDirectory Change the current directory to another directory. . $039F
GotoFirstMenu Close all open submenu levels. $C1BD $FE18
GraphicsString Process several graphics commands given in a table. $C136 $FE60

H

Name Purpose Call Address
CBM Apple
HideOnlyMouse Temporarily hides the soft-sprite mouse pointer. $C2F2 $FF7A
HorizontalLine Draw a horizontal line on the screen. $C118 $FE27

I

Name Purpose Call Address
CBM Apple
ImprintRectangle Copy a box from screen 1 to screen 2. $C250
InitForIO Open serial communication. $C25C
InitProcesses Set up a table of recurring timed events. $C103
InitRam Use a table to set various memory locations in a uniform manner. $C181
InitTextPrompt Make a vertical bar cursor sprite. $C1C0
InsertRecord Insert a new chain in a VLIR file. $C286
InterruptMain Handle several items that occur at regular timed intervals. $C100
InvertLine Invert a horizontal line on the screen. $C11B
InvertRectangle Invert the pixels in a box. $C12A
IsMseInRegion Check if the mouse is in a box. $C2B3

L

Name Purpose Call Address
CBM Apple
LdApplic Load and possibly run an application file. $C21D
LdDeskAcc Load and run a desk accessory file. $C217
LdFile Load a file. $C211
LoadCharSet Change the current font. $C1CC

M

Name Purpose Call Address
CBM Apple
MainLoop Enter the GEOS main loop. $C1C3
MouseOff Turn off the mouse. $C18D
MouseUp Turn on the mouse. $C18A
MoveData Intelligent block move. $C17E

N

Name Purpose Call Address
CBM Apple
NewDisk Initialize a disk drive. $C1E1
NextRecord Move to next VLIR chain. $C27A
NxtBlkAlloc Allocate enough sectors for a file. $C24D

O

Name Purpose Call Address
CBM Apple
OpenDisk Open a disk to GEOS. $C2A1
OpenRecordFile Open a VLIR file. $C274

P

Name Purpose Call Address
CBM Apple
Panic Draw a system error window and halt the system. $C2C2
PointRecord Get a specific VLIR chain. $C280
PosSprite Set the position of a sprite. $C1CF
PreviousRecord Move to previous VLIR chain. $C27D
PromptOff Turn off text cursor. $C29E
PromptOn Turn on text cursor. $C29B
PurgeTurbo Clear the drive ready status. $C235
PutBlock Write a given track and sector. $C1E7
PutChar Display a text character on the screen. $C145
PutDecimal Display an unsigned 16 bit integer. $C184
PutDirHead Write track 18 sector 0 back to disk. $C24A
PutString Display an entire string of text. $C148

R

Name Purpose Call Address
CBM Apple
ReDoMenu Redraw the current menu. $C193
ReadBlock Read a sector from the disk. $C21A
ReadByte Read a byte from a file. $C2B6
ReadFile Load memory from disk. $C1FF
ReadRecord Load a VLIR chain. $C28C
RecoverAllMenus Erase all open menus from the screen. $C157
RecoverLine Copy a horizontal line from screen 2 to screen 1. $C11E
RecoverMenu Erase the current menu from the screen. $C154
RecoverRectangle Copy a box from screen 2 to screen 1. $C12D
Rectangle Fill a rectangular box with the current pattern. $C124
RenameFile Rename a file on the current disk. $C259
RestartProcess Enable a recurring timed event. $C106
RstrAppl End a desk accessory and return to the suspended application. $C23E
RstrFrmDialogue Close a dialog box window. $C2BF

S

Name Purpose Call Address
CBM Apple
SaveFile Save memory to disk. $C1ED
SetDevice Make another device the current disk drive. $C2B0
SetGDirEntry Create a directory entry on the disk. $C1F0
SetGEOSDisk Convert the disk to GEOS format. $C1EA
SetNextFree Allocate a block on the disk. $C292
SetPattern Set the current fill pattern. $C139
Sleep Pause program momentarily without halting GEOS. $C199
SmallPutChar Display a text character on the screen without any special processing. $C202
StartAppl Run a program already in memory. $C22F
StartMouseMode Initialize the mouse. $C14E
StashRAM Copy a block of memory from main RAM into the REU. $C2C8
SwapRAM Swap a block of memory in main RAM with one in the REU. $C2CE

T

Name Purpose Call Address
CBM Apple
TestPoint Test the value of a point on the hires screen. $C13F
ToBasic Restart BASIC, optionally with a program to load. $C241

U

Name Purpose Call Address
CBM Apple
UnblockProcess Enable the execution of a timed event. $C10F
UnfreezeProcess Restart the timer on a timed event. $C115
UpdateRecordFile Update a VLIR file. $C295
UseSystemFont Reset the current font to the default BSW font. $C14B

V

Name Purpose Call Address
CBM Apple
VerWriteBlock Conditionally write a sector to disk. $C223
VerifyRAM Verifies a block of memory in main RAM against one in the REU. $C2D1
VerticalLine Draw a vertical line on the screen. $C121

W

Name Purpose Call Address
CBM Apple
WriteBlock Write a sector to disk. $C220
WriteFile Save memory to specified sectors on the disk. $C1F9
WriteRecord Save memory to a VLIR chain. $C28F

Inline Routines

Name Purpose Call Address
CBM Apple
i_BitmapUp Draw an encoded bitmap image on the screen using inline data. $C1AB $FE57
i_FillRam Fill a memory region with a specified byte using inline data. $C1B4 $FF02
i_FrameRectangle Draw the outline of a rectangular box in a given pattern using inline data. $C1A2
i_GraphicsString Process several graphics commands designated by a table of inline data. $C1A8
i_ImprintRectangle Copy a box from screen 1 to screen 2 using inline data. $C253
i_MoveData Intelligent block move using inline data. $C1B7
i_PutString Display an entire string of text using inline data. $C1AE
i_RecoverRectangle Copy a box from screen 2 to screen 1 using inline data. $C1A5
i_Rectangle Fill a rectangular box with the current pattern using inline data. $C19F

Routines by Call Address: Commodore

$9000, $C000, $C100, $C130, $C160, $C190, $C1C0, $C1F0, $C220, $C250, $C280, $C2B0.

$7900

Name Purpose Call Address
CBM Apple
GetDimensions Printer driver: Get dimensions of a printed page. $790C .

$9000

Name Purpose Call Address
CBM Apple
Get1stDirEntry Get the first file listed in the current directory. $9030 $039C?
GetNxtDirEntry Get the next file listed in the current directory. $9033 $039C?
AllocateBlock Mark a disk block as in use. (Do not use on 1541 disk drives in GEOS 64.) $9048 $0300?

$C000

Name Purpose Call Address
CBM Apple
BootGEOS Restart GEOS from BASIC. $C000 .

$C100

Name Purpose Call Address
CBM Apple
InterruptMain Handle several items that occur at regular timed intervals. $C100
InitProcesses Set up a table of recurring timed events. $C103
RestartProcess Enable a recurring timed event. $C106
EnableProcess Force a timed event to execute, regardless of its timer. $C109 $FEC3
BlockProcess Disable execution of a timed event. $C10C $FEB4
UnblockProcess Enable the execution of a timed event. $C10F
FreezeProcess Stop the timer on a timed event. $C112 $FEBA
UnfreezeProcess Restart the timer on a timed event. $C115
HorizontalLine Draw a horizontal line on the screen. $C118 $FE27
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 rectangular box with the current pattern. $C124
FrameRectangle Draw the outline of a rectangular box in a given pattern. $C127 $FE3F
InvertRectangle Invert the pixels in a box. $C12A
RecoverRectangle Copy a box from screen 2 to screen 1. $C12D

$C130

Name Purpose Call Address
CBM Apple
DrawLine Draw, erase, or recover a line. $C130 $FE33
DrawPoint Draw, erase, or recover a pixel. $C133 $FE21
GraphicsString Process several graphics commands given in a table. $C136 $FE60
SetPattern Set the current fill pattern. $C139
GetScanLine Compute the address of a given row on the screen. $C13C $FE66
TestPoint Test the value of a point on the hires screen. $C13F
BitmapUp Draw an encoded bitmap image on the screen. $C142 $FE54
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 font. $C14B
StartMouseMode Initialize the mouse. $C14E
DoMenu Display and activate a menu tree. $C151 $FE0F
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 $FE0C
DShiftLeft Multiply an unsigned 16-bit number by a power of 2 by shifting its bits left. $C15D $FEC6

$C160

Name Purpose Call Address
CBM Apple
BBMult Multiply two unsigned 8-bit numbers. $C160 $FECC
BMult Multiply an unsigned 16-bit number by an unsigned 8-bit number. $C163 $FECF
DMult Multiply two unsigned 16-bit numbers. $C166 $FED2
Ddiv Divide an unsigned 16-bit number by another unsigned 16-bit number. $C169 $FED5
DSdiv Divide a signed 16-bit number by another signed 16-bit number. $C16C $FED8
Dabs Compute the absolute value of a 16-bit number. $C16F $FEDB
Dnegate Negate a signed 16-bit number. $C172 $FEDE
Ddec Decrement a 16-bit value. $C175 $FEE1
ClearRam Fill a memory region with zeroes. $C178 $FEFC
FillRam Fill a memory region with a specified byte. $C17B $FEFF
MoveData Intelligent block move. $C17E
InitRam Use a table to set various memory locations in a uniform manner. $C181
PutDecimal Display an unsigned 16 bit integer. $C184
GetRandom Compute a new 16-bit pseudorandom number. $C187 $FEE4
MouseUp Turn on the mouse. $C18A
MouseOff Turn off the mouse. $C18D

$C190

Name Purpose Call Address
CBM Apple
DoPreviousMenu Erase the current submenu and back up a menu level. $C190 $FE15
ReDoMenu Redraw the current menu. $C193
GetSerialNumber Load this GEOS kernal's serial code. $C196 $4B38
Sleep Pause program momentarily without halting GEOS. $C199
ClearMouseMode Stop monitoring the pointer. $C19C $FE9F
i_Rectangle Fill a rectangular box with the current pattern using inline data. $C19F
i_FrameRectangle Draw the outline of a rectangular 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 $FE57
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 $FE84
i_FillRam Fill a memory region with a specified byte using inline data. $C1B4 $FF02
i_MoveData Intelligent block move using inline data. $C1B7
GetString Input a line of text from the user. $C1BA $FE72
GotoFirstMenu Close all open submenu levels. $C1BD $FE18

$C1C0

Name Purpose Call Address
CBM Apple
InitTextPrompt Make a vertical bar cursor sprite. $C1C0
MainLoop Enter the GEOS main loop. $C1C3
DrawSprite Copy a sprite image into the internal storage area. $C1C6 $FEA2
GetCharWidth Return the width of a character in the current font. $C1C9 $FE87
LoadCharSet Change the current font. $C1CC
PosSprite Set the position of a sprite. $C1CF
EnablSprite Turn a sprite on. $C1D2 $FEA8
DisablSprite Turn a sprite off. $C1D5 $FEAB
CallRoutine Conditional jump to a routine. $C1D8 $FF08
CalcBlksFree Count the number of free blocks on the current disk. $C1DB $0324
ChkDkGEOS Check if the disk is GEOS format or not. $C1DE .
NewDisk Initialize a disk drive. $C1E1
GetBlock Read a given disk block. $C1E4 $0300!
PutBlock Write a given track and sector. $C1E7
SetGEOSDisk Convert the disk to GEOS format. $C1EA
SaveFile Save memory to disk. $C1ED

$C1F0

Name Purpose Call Address
CBM Apple
SetGDirEntry Create a directory entry on the disk. $C1F0
BldGDirEntry Create a directory entry in memory. $C1F3 $036F
GetFreeDirBlk Find space for a new entry in the current directory. $C1F6 $0375
WriteFile Save memory to specified sectors on the disk. $C1F9
BlkAlloc Allocate enough sectors for a file. $C1FC $0351
ReadFile Load memory from 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 $030F
FindFile Find a file in the current directory. $C20B $0369
CRC Compute a checksum for a data region. $C20E $FF14
LdFile Load a file. $C211
EnterTurbo Enable GEOS TurboDos in the current disk drive, uploading it if necessary. $C214 .
LdDeskAcc Load and run a desk accessory file. $C217
ReadBlock Read a sector from the disk. $C21A
LdApplic Load and possibly run an application file. $C21D

$C220

Name Purpose Call Address
CBM Apple
WriteBlock Write a sector to disk. $C220
VerWriteBlock Conditionally write a sector to disk. $C223
FreeFile Mark a file's disk blocks as unallocated. $C226 $035A
GetFHdrInfo Load the GEOS header of a file. $C229 $0390
EnterDesktop End application and restart GEOS deskTop. $C22C $FF59
StartAppl Run a program already in memory. $C22F
ExitTurbo Disable GEOS TurboDos in the current disk drive. $C232 .
PurgeTurbo Clear the drive ready status. $C235
DeleteFile Delete a file from the disk. $C238 $0357
FindFTypes Find all files in the current directory of a specific GEOS type. $C23B $0366
RstrAppl End a desk accessory and return to the suspended 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 $0372
PutDirHead Write track 18 sector 0 back to disk. $C24A
NxtBlkAlloc Allocate enough sectors for a file. $C24D

$C250

Name Purpose Call Address
CBM Apple
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 $FF17
RenameFile Rename a file on the current disk. $C259
InitForIO Open serial communication. $C25C
DoneWithIO Close serial communication. $C25F .
DShiftRight Divide an unsigned 16-bit number by a power of 2 by shifting its bits right. $C262 $FEC9
CopyString Copy a null-terminated string. $C265 $FEE7
CopyFString Copy a fixed-length block of memory. $C268 $FEEA
CmpString Compare two null-terminated strings. $C26B $FEED
CmpFString Compare two fixed-length blocks of memory. $C26E $FEF0
FirstInit Initialize GEOS variables and data structures to boot-time states. $C271 $FF11
OpenRecordFile Open a VLIR file. $C274
CloseRecordFile Close the open VLIR file. $C277 $0333
NextRecord Move to next VLIR chain. $C27A
PreviousRecord Move to previous VLIR chain. $C27D

$C280

Name Purpose Call Address
CBM Apple
PointRecord Get a specific VLIR chain. $C280
DeleteRecord Remove the current VLIR record. $C283 $0336
InsertRecord Insert a new chain in a VLIR file. $C286
AppendRecord Append a new record in a VLIR file. $C289 $0330
ReadRecord Load a VLIR chain. $C28C
WriteRecord Save memory to a VLIR chain. $C28F
SetNextFree Allocate a block on the disk. $C292
UpdateRecordFile Update a VLIR file. $C295
GetPtrCurDkNm Compute the address of the disk's name. $C298 $FF56
PromptOn Turn on text cursor. $C29B
PromptOff Turn off text cursor. $C29E
OpenDisk Open a disk to GEOS. $C2A1
DoInlineReturn Return from inline subroutine. (Use jmp, not jsr.) $C2A4 $FE09
GetNextChar Get a key from the keyboard queue. $C2A7 $FE75
BitmapClip Draw a cropped section of an encoded bitmap image. $C2AA $FE5A
FindBAMBit Check if a disk block is in use. $C2AD .

$C2B0

Name Purpose Call Address
CBM Apple
SetDevice Make another device the current disk drive. $C2B0
IsMseInRegion Check if the mouse is in a box. $C2B3
ReadByte Read a byte from a file. $C2B6
FreeBlock Mark a disk block as unallocated. $C2B9 $032A
ChangeDiskDevice Change the device number of a drive. $C2BC .
RstrFrmDialogue 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 $FE5D
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 a block of memory in main RAM with one in the REU. $C2CE
VerifyRAM Verifies a block of memory in main RAM against one in the REU. $C2D1
DoRAMOp Move memory to and from the REU. $C2D4 .
DoBOp GEOS 128 only: Move, swap, or verify memory between front-RAM and back-RAM. $C2EC .
HideOnlyMouse Temporarily hides the soft-sprite mouse pointer. $C2F2 $FF7A

Routines by Call Address: Apple

$0300, $0330, $0360, $0800, $FE00, $FE30, $FE60, $FE90, $FEC0, $FEF0, $FF20, $FF50, $FF80.

$0300

Name Purpose Call Address
CBM Apple
AllocateBlock Mark a disk block as in use. (Do not use on 1541 disk drives in GEOS 64.) $9048 $0300?
GetBlock Read a given disk block. $C1E4 $0300!
GetFile Load a GEOS file or load and run a GEOS program. $C208 $030F
GetVBM Load the disk's first VBM block into the VBM cache. . $031E
CalcBlksFree Count the number of free blocks on the current disk. $C1DB $0324
FreeBlock Mark a disk block as unallocated. $C2B9 $032A

$0330

Name Purpose Call Address
CBM Apple
AppendRecord Append a new record in a VLIR file. $C289 $0330
CloseRecordFile Close the open VLIR file. $C277 $0333
DeleteRecord Remove the current VLIR record. $C283 $0336
BlkAlloc Allocate enough sectors for a file. $C1FC $0351
DeleteFile Delete a file from the disk. $C238 $0357
FreeFile Mark a file's disk blocks as unallocated. $C226 $035A

$0360

Name Purpose Call Address
CBM Apple
FdFTypesInDir Find all files in a directory not the current directory of a specific GEOS type. . $0363
FindFTypes Find all files in the current directory of a specific GEOS type. $C23B $0366
FindFile Find a file in the current directory. $C20B $0369
FindVBMBit Check if a disk block is in use. . $036C?
FndFilinDir Find a file in a directory not the current directory. . $036C!
BldGDirEntry Create a directory entry in memory. $C1F3 $036F
GetDirHead Read the directory header from the disk. $C247 $0372
GetFreeDirBlk Find space for a new entry in the current directory. $C1F6 $0375
DeleteDir Delete a subdirectory from the disk's current directory. . $037E
DownDirectory Make a subdirectory the new current directory. . $0381
GetPathname Get the full pathname of a directory. . $0384
GetFHdrInfo Load the GEOS header of a file. $C229 $0390
Get1stDirEntry Get the first file listed in the current directory. $9030 $039C?
GetNxtDirEntry Get the next file listed in the current directory. $9033 $039C?
GoDirectory Change the current directory to another directory. . $039F
FreeDir Mark a subdirectory's disk blocks as unallocated. . $03BA

$0800

Name Purpose Call Address
CBM Apple
ClockInt Clock driver: Interrupt level routine. . $0803

$4000

Name Purpose Call Address
CBM Apple
GetSerialNumber Load this GEOS kernal's serial code. $C196 $4B38

$6000

Name Purpose Call Address
CBM Apple
GetMode Printer driver: Get dimensions of a printed page and print modes. . $6012
CancelPrint Printer driver: Stop printer immediately, clear printer and I/O card buffers. . $6018
CloseCard Card driver: Close I/O card access. . $670C
ClearCard Card driver: Stop transmitting and clear its buffer. . $6715

$EFA0

Name Purpose Call Address
CBM Apple
AuxDMain Aux driver: Main loop routine. . $EFA0
AuxDInt Aux driver: Interrupt level routine. . $EFA3
AuxDKeyFilter Aux driver: Filter current keypress. . $EFA6
AuxDExit Aux driver: Uninstall and exit. . $EFA9

$FE00

Name Purpose Call Address
CBM Apple
DoInlineReturn Return from inline subroutine. (Use jmp, not jsr.) $C2A4 $FE09
DoIcons Draw and activate the icons (buttons) in a table. $C15A $FE0C
DoMenu Display and activate a menu tree. $C151 $FE0F
DoPreviousMenu Erase the current submenu and back up a menu level. $C190 $FE15
GotoFirstMenu Close all open submenu levels. $C1BD $FE18
DrawPoint Draw, erase, or recover a pixel. $C133 $FE21
HorizontalLine Draw a horizontal line on the screen. $C118 $FE27

$FE30

Name Purpose Call Address
CBM Apple
DrawLine Draw, erase, or recover a line. $C130 $FE33
FrameRectangle Draw the outline of a rectangular box in a given pattern. $C127 $FE3F
i_BitmapUp Draw an encoded bitmap image on the screen using inline data. $C1AB $FE57

$FE60

Name Purpose Call Address
CBM Apple
GraphicsString Process several graphics commands given in a table. $C136 $FE60
GetScanLine Compute the address of a given row on the screen. $C13C $FE66
GetString Input a line of text from the user. $C1BA $FE72
GetNextChar Get a key from the keyboard queue. $C2A7 $FE75
GetRealSize Return the actual width of a character in the current font. $C1B1 $FE84
GetCharWidth Return the width of a character in the current font. $C1C9 $FE87

$FE90

Name Purpose Call Address
CBM Apple
BitmapUp Draw an encoded bitmap image on the screen. $C142 $FE54
BitmapClip Draw a cropped section of an encoded bitmap image. $C2AA $FE5A
BitOtherClip Draw a section of a bitmap image using call vectors. $C2C5 $FE5D
ClearMouseMode Stop monitoring the pointer. $C19C $FE9F
DrawSprite Copy a sprite image into the internal storage area. $C1C6 $FEA2
EnablSprite Turn a sprite on. $C1D2 $FEA8
DisablSprite Turn a sprite off. $C1D5 $FEAB
BlockProcess Disable execution of a timed event. $C10C $FEB4
FreezeProcess Stop the timer on a timed event. $C112 $FEBA

$FEC0

Name Purpose Call Address
CBM Apple
EnableProcess Force a timed event to execute, regardless of its timer. $C109 $FEC3
DShiftLeft Multiply an unsigned 16-bit number by a power of 2 by shifting its bits left. $C15D $FEC6
DShiftRight Divide an unsigned 16-bit number by a power of 2 by shifting its bits right. $C262 $FEC9
BBMult Multiply two unsigned 8-bit numbers. $C160 $FECC
BMult Multiply an unsigned 16-bit number by an unsigned 8-bit number. $C163 $FECF
DMult Multiply two unsigned 16-bit numbers. $C166 $FED2
Ddiv Divide an unsigned 16-bit number by another unsigned 16-bit number. $C169 $FED5
DSdiv Divide a signed 16-bit number by another signed 16-bit number. $C16C $FED8
Dabs Compute the absolute value of a 16-bit number. $C16F $FEDB
Dnegate Negate a signed 16-bit number. $C172 $FEDE
Ddec Decrement a 16-bit value. $C175 $FEE1
GetRandom Compute a new 16-bit pseudorandom number. $C187 $FEE4
CopyString Copy a null-terminated string. $C265 $FEE7
CopyFString Copy a fixed-length block of memory. $C268 $FEEA
CmpString Compare two null-terminated strings. $C26B $FEED

$FEF0

Name Purpose Call Address
CBM Apple
CmpFString Compare two fixed-length blocks of memory. $C26E $FEF0
ClearRam Fill a memory region with zeroes. $C178 $FEFC
FillRam Fill a memory region with a specified byte. $C17B $FEFF
i_FillRam Fill a memory region with a specified byte using inline data. $C1B4 $FF02
CallRoutine Conditional jump to a routine. $C1D8 $FF08
FirstInit Initialize GEOS variables and data structures to boot-time states. $C271 $FF11
CRC Compute a checksum for a data region. $C20E $FF14
DoDlgBox Show a dialog box window. $C256 $FF17

$FF20

Name Purpose Call Address
CBM Apple
EraseCharacter Erase a text character from the screen. . $FF3E
GetLdVars Transfer Ld variables to GEOS pseudoregisters. . $FF44

$FF50

Name Purpose Call Address
CBM Apple
GetPtrCurDkNm Compute the address of the disk's name. $C298 $FF56
EnterDesktop End application and restart GEOS deskTop. $C22C $FF59
CopyScreenBlock Copy a rectangular area from one part of either screen to another part. . $FF5C
CopyLine Copy a horizontal line from one part of either screen to another part. . $FF5F
GetScreenLine Load a line from the screen as it appears in memory. . $FF62
DivideBySeven Divide an unsigned 16-bit number by 7 for direct screen access graphics. . $FF68
GetSpriteData Copy a sprite image from the internal storage area. . $FF6E
HideOnlyMouse Temporarily hides the soft-sprite mouse pointer. $C2F2 $FF7A
GetPattern Load the 8 bytes of a GEOS system pattern. . $FF7D

$FF80

Name Purpose Call Address
CBM Apple
Bell Sound speaker at 1 KHz for about 100 ms. . $FF86
CopyFullScreen Copy a full-width part of the foreground screen to another part. . $FF92