GEOS Kernal Routines Sorted Alphabetically
Ariel's GEOS Programmer's Reference Guide | ||
---|---|---|
Back: GEOS Development (WIP) | Up: Contents | Next: Device Drivers (TODO) |
GEOS Kernal Routines | ||
---|---|---|
Back: By Category | Up: Remarks | Next: By Call Address: Commodore |
Table of Contents
- Routines by Category
- Routines Sorted Alphabetically
- Routines by Call Address: Commodore
- Routines by Call Address: Apple
Routines Sorted Alphabetically
A
Name | Purpose | Call Address | |
---|---|---|---|
CBM | Apple | ||
AllocateBlock | Mark a disk block as in use. | $9048 | $030c? |
AppendRecord | Append a new record after current record in 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 two unsigned numbers, a 16-bit by an 8-bit. | $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 screen 1 to another part. | . | $ff92 |
CopyLine | Copy a horizontal line from one part of either screen to another part. | . | $ff5f |
CopyScreenBlock | Copy a rectangle 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 unsigned numbers, a 16-bit by a 16-bit. | $c169 | $fed5 |
DeleteDir | Delete a subdirectory from the disk's current directory. | . | $037e |
DeleteFile | Delete a file from the disk. | $c238 | $0357 |
DeleteRecord | Delete 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 | Copy, 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. | $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 signed numbers, a 16-bit by a 16-bit. | $c16c | $fed8 |
DShiftLeft | Shift bits of a word left, multiplying by a power of 2. | $c15d | $fec6 |
DShiftRight | Shift bits of a word right, dividing by a power of 2. | $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 diskTurbo in the current disk drive, uploading it if necessary. | $c214 | . |
EraseCharacter | Erase a text character from the screen. | . | $ff3e |
ExitTurbo | Disable GEOS diskTurbo 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 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 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 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 | $0396? |
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 | Get the off-page directory block track and sector. | $9036? | . |
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 hide the soft-sprite mouse pointer. | $c2f2 | $ff7a |
HorizontalLine | Draw a horizontal line on the screen. | $c118 | $fe27 |
I
Name | Purpose | Call Address | |
---|---|---|---|
CBM | Apple | ||
ImprintLine | Copy a horizontal line from screen 1 to screen 2. | . | $ff8f |
ImprintRectangle | Copy a box from screen 1 to screen 2. | $c250 | $fe4e |
InfoCard | Card driver: Get printer attributes. | . | $670f |
InitCard | Card driver: Initialize printer card. | . | $6700 |
InitForDialog | Prepare to show a dialog box. | . | $ff4a |
InitForIO | Open serial communication. | $c25c | . |
InitForPrint | Printer driver: Initialize printer for a new document. | $7900 | $6000 |
InitMouse | Input driver: Initialize pointer device. | $fe80 | $f000 |
InitProcesses | Set up a table of recurring processes. | $c103 | $feae |
InitRam | Initialize many memory regions using a table of values. | $c181 | $ff05 |
InitSprite | Initialize all software sprites. | . | $ff32 |
InitTextPrompt | Set sprite 1 as a vertical bar text cursor. | $c1c0 | $fe78 |
InputByte | Card driver: Read a byte from I/O card. | . | $6709 |
InsertRecord | Insert a new record before current record in VLIR file. | $c286 | $0339 |
InterruptMain | Process Interrupt Level events. | $c100 | $fe03 |
InvertLine | Invert a horizontal line on the screen. | $c11b | $fe2d |
InvertRectangle | Invert the pixels in a box. | $c12a | $fe45 |
IrqMiddle | Process Interrupt Level events. | . | $ff20 |
IsMseInRegion | Check if the mouse pointer is in a box. | $c2b3 | $fe9c |
J
Name | Purpose | Call Address | |
---|---|---|---|
CBM | Apple | ||
JsrToAux | Jump to a routine in auxiliary RAM. | . | $03b4 |
K
Name | Purpose | Call Address | |
---|---|---|---|
CBM | Apple | ||
KeyFilter | Input driver: Pre-process or filter out keypress. | . | $f009 |
L
Name | Purpose | Call Address | |
---|---|---|---|
CBM | Apple | ||
LdApplic | Load and possibly run an application file. | $c21d | $038d |
LdDeskAcc | Load and run a desk accessory file. | $c217 | $035d |
LdFile | Load a GEOS data file. | $c211 | $0312 |
LoadAuxSet | Change the current font to one in auxiliary RAM. | . | $ff77 |
LoadCharSet | Change the current font. | $c1cc | $fe8a |
M
Name | Purpose | Call Address | |
---|---|---|---|
CBM | Apple | ||
MainLoop | Enter Main Loop directly. | $c1c3 | $fe00 |
MakeSubDir | Create a subdirectory in the disk's current directory. | . | $0387 |
MouseOff | Turn off the mouse pointer. | $c18d | $fe96 |
MouseUp | Turn on the mouse pointer. | $c18a | $fe99 |
MoveAuxData | Copy memory in or between main and auxiliary RAM. | . | $ff6b |
MoveBData | Copy memory in or between front-RAM and back-RAM. | $c2e3 | . |
MoveData | Copy memory to a new location. | $c17e | $fef6 |
N
Name | Purpose | Call Address | |
---|---|---|---|
CBM | Apple | ||
NewBitClip | Draw a cropped section of an encoded bitmap image. | . | $ff95 |
NewBitOtherClip | Draw a section of a bitmap image using call vectors. | . | $ff0e |
NewBitUp | Draw an encoded bitmap image on the screen. | . | $ff1d |
NewDisk | Tell GEOS diskTurbo a new disk is in the drive. | $c1e1 | . |
NextRecord | Make next record current in VLIR file. | $c27a | $0336? |
NormalizeX | Adjust x-coordinate for 80-column mode. | $c2e0 | . |
NxtBlkAlloc | Allocate more sectors for a file. | $c24d | $0354 |
O
Name | Purpose | Call Address | |
---|---|---|---|
CBM | Apple | ||
OpenCard | Card driver: Open printer card for access. | . | $6703 |
OpenDisk | Open a disk to GEOS. | $c2a1 | $0399 |
OpenRecordFile | Open a VLIR file. | $c274 | $033f |
OutputByte | Card driver: Write a byte to I/O card. | . | $6706 |
P
Name | Purpose | Call Address | |
---|---|---|---|
CBM | Apple | ||
Panic | Draw a system error window and halt the system. | $c2c2 | $fef3 |
PointRecord | Make a specific record current in VLIR file. | $c280 | $0342 |
PosSprite | Position a sprite using GEOS coordinates. | $c1cf | $fea5 |
PreviousRecord | Make previous record current in VLIR file. | $c27d | $0345 |
PrintASCII | Printer driver: Print a string of ASCII text. | $790f | $600c |
PrintBuffer | Printer driver: Print an 8 pixel high row of graphics. | $7906 | $6009 |
PromptOff | Turn off text cursor. | $c29e | $fe7e |
PromptOn | Turn on text cursor. | $c29b | $fe7b |
PurgeTurbo | Remove GEOS diskTurbo from current drive. | $c235 | . |
PutBlock | Write and verify a given block to disk. | $c1e7 | $0303 |
PutChar | Display a text character on the screen. | $c145 | $fe81 |
PutDecimal | Display an unsigned 16-bit integer in decimal. | $c184 | $fe6f |
PutDirHead | Write directory header to disk. | $c24a | $037b? |
PutScreenLine | Save a line to the screen as it appears in memory. | . | $ff65 |
PutString | Display an entire string of text. | $c148 | $fe69 |
PutVBM | Flush the VBM cache to the disk's VBM block. | . | $0321 |
R
Name | Purpose | Call Address | |
---|---|---|---|
CBM | Apple | ||
ReadBackLine | Read a full-width line of pixels from screen 2. | . | $ff74 |
ReadBlock | Read a given disk block (without overhead). | $c21a | . |
ReadByte | Read a byte from a file. | $c2b6 | $ff41 |
ReadClock | Clock driver: Update GEOS clock from hardware. | . | $0800 |
ReadFile | Load memory from a chain of blocks on the disk. | $c1ff | $0315 |
ReadLink | Read the link from a disk block to the next block. | $904b | . |
ReadRecord | Read current record from VLIR file. | $c28c | $0348 |
ReadScanLine | Read a full-width line of pixels from screen 1. | . | $ff98 |
RecoverAllMenus | Erase all open menus from the screen. | $c157 | $fe1e |
RecoverFG | Recover a box on screen 1 from previously saved data. | . | $03ae |
RecoverLine | Copy a horizontal line from screen 2 to screen 1. | $c11e | $fe30 |
RecoverMenu | Erase the current menu from the screen. | $c154 | $fe1b |
RecoverRectangle | Copy a box from screen 2 to screen 1. | $c12d | $fe48 |
RecoverSysRam | Recover from showing a dialog box. | . | $ff53 |
Rectangle | Fill a box with the current pattern. | $c124 | $fe39 |
ReDoMenu | Redraw and reactivate the current menu. | $c193 | $fe12 |
RenameFile | Rename a file in the current directory. | $c259 | $0393 |
ReOpenDisk | Reopen a disk to its most recent directory. | . | $03a2 |
ResetAlarm | Clock driver: Disable the alarm. | . | $080c |
ResetHandle | Internal bootstrap entry point. | $c003 | . |
RestartProcess | Enable a recurring timed event, reset its timer. | $c106 | $feb1 |
RestoreFontData | Restore font variables from saveFontTab saved earlier. | . | $ff38 |
RstrAppl | End desk accessory and return to calling application. | $c23e | $0360 |
RstrFrmDialog | Close a dialog box window. | $c2bf | $ff1a |
S
Name | Purpose | Call Address | |
---|---|---|---|
CBM | Apple | ||
SaveFG | Save a box on screen 1 to data for recovery later. | . | $03ab |
SaveFile | Save memory to a new GEOS file. | $c1ed | $0318 |
SaveFontData | Save font variables to saveFontTab to restore later. | . | $ff35 |
SetAlarm | Clock driver: Enable the alarm, set alarm time. | . | $0809 |
SetDevice | Make another device the current disk drive. | $c2b0 | . |
SetGDirEntry | Create a directory entry on the disk. | $c1f0 | $037b? |
SetGEOSDisk | Convert a non-GEOS CBM disk to GEOS format. | $c1ea | . |
SetLdVars | Transfer GEOS pseudoregisters to Ld variables. | . | $ff47 |
SetMode | Printer driver: Set print mode. | . | $6015 |
SetMouse | Input driver: Reset mouse pot scanning lines. | $fe89 | . |
SetMsePic | Load and preshift a new soft-sprite pointer icon. | $c2da | $ff2f |
SetNewMode | Change graphics mode to 40-column or 80-column. | $c2dd | . |
SetNextFree | Allocate the next free block on the disk. | $c292 | $032d |
SetNLQ | Printer driver: Set ASCII mode to Near-Letter Quality. | $7915 | . |
SetPattern | Set the current fill pattern. | $c139 | $fe36 |
SetTimeDate | Clock driver: Set the hardware clock's time. | . | $0806 |
SetUserPattern | Set a user-defined pattern as the current fill pattern. | . | $ff80 |
Sleep | Pause subroutine without halting GEOS. | $c199 | $fec0 |
SlowMouse | Input driver: Stop and reset pointer acceleration. | $fe83 | $f003 |
SmallPutChar | Display a text character on the screen without any special processing. | $c202 | $fe90 |
SoftSprHandler | Update soft-sprites on the screen. | . | $ff2c |
SortAlpha | Sort a list of 16-byte strings (like filenames) alphabetically. | . | $03a5 |
StartAppl | Warmstart GEOS and run a program already in memory. | $c22f | $fe06 |
StartASCII | Printer driver: Set printer for ASCII text printing. | $7912 | $6006 |
StartMouseMode | Initialize and start monitoring the mouse. | $c14e | $fe93 |
StartPrint | Printer driver: Set printer for graphics printing. | $7903 | $6003 |
StashRAM | Copy a block of memory from main RAM into the REU. | $c2c8 | . |
StatusCard | Card driver: Get current I/O status. | . | $6712 |
StopPrint | Printer driver: Flush buffer and feed in next page. | $7909 | $600f |
SwapBData | Swap memory in or between front-RAM and back-RAM. | $c2e6 | . |
SwapMainAndAux | Swap memory between main and auxiliary RAM. | . | $ff71 |
SwapRAM | Swap memory between main RAM and the REU. | $c2ce | . |
T
Name | Purpose | Call Address | |
---|---|---|---|
CBM | Apple | ||
TempHideMouse | Temporarily hide all soft-sprites including pointer. | $c2d7 | $ff29 |
TestPoint | Get the value of a pixel on either screen. | $c13f | $fe24 |
ToBasic | Restart BASIC, optionally with a program to load. | $c241 | . |
U
Name | Purpose | Call Address | |
---|---|---|---|
CBM | Apple | ||
UnblockProcess | Enable execution of a timed event. | $c10f | $feb7 |
UnfreezeProcess | Restart the timer on a timed event. | $c115 | $febd |
UpdateMouse | Input driver: Update mouse variables from device. | $fe86 | $f006 |
UpdateParent | Update current and parent directory headers. | . | $03b7 |
UpdateRecordFile | Update a VLIR file. | $c295 | $034b |
UpDirectory | Make parent directory the new current directory. | . | $038a |
UseSystemFont | Reset the current font to the default BSW 9 font. | $c14b | $fe8d |
V
Name | Purpose | Call Address | |
---|---|---|---|
CBM | Apple | ||
VerifyBData | Verify a block of memory in front-RAM or back-RAM against another. | $c2e9 | . |
VerifyRAM | Verify a block of memory in main RAM against one in the REU. | $c2d1 | . |
VerticalLine | Draw a vertical line on the screen. | $c121 | $fe2a |
VerWriteBlock | Verify a block recently written to disk. | $c223 | . |
W
Name | Purpose | Call Address | |
---|---|---|---|
CBM | Apple | ||
WarmStart | Warmstart GEOS. | . | $ff4d |
WriteBlock | Write a block to disk. | $c220 | . |
WriteFile | Save memory to a chain of allocated disk blocks. | $c1f9 | $031b |
WriteRecord | Save memory to current record of VLIR file. | $c28f | $034e |
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 byte using inline data. | $c1b4 | $ff02 |
i_FrameRectangle | Draw the outline of a box in a given pattern using inline data. | $c1a2 | $fe42 |
i_GraphicsString | Process several graphics commands designated by a table of inline data. | $c1a8 | $fe63 |
i_ImprintRectangle | Copy a box from screen 1 to screen 2 using inline data. | $c253 | $fe51 |
i_MoveData | Copy memory to a new location using inline data. | $c1b7 | $fef9 |
i_NewBitUp | Draw an encoded bitmap image on the screen using inline data. | . | $ff9e |
i_PutString | Display an entire string of text using inline data. | $c1ae | $fe6c |
i_RecoverRectangle | Copy a box from screen 2 to screen 1 using inline data. | $c1a5 | $fe4b |
i_Rectangle | Fill a box with the current pattern using inline data. | $c19f | $fe3c |