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 Category
- Routines Sorted Alphabetically
- Routines by Call Address: Commodore
- Routines by Call Address: Apple
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 |