GEOS Kernal Routines by Call Address: Apple
| Ariel's GEOS Programmer's Reference Guide | ||
|---|---|---|
| Back: GEOS Development (WIP) | Up: Contents | Next: Device Drivers (TODO) |
| GEOS Kernal Routines | ||
|---|---|---|
| Back: By Call Address: Commodore | Up: Remarks | Next: Last |
Table of Contents
- Routines by Category
- Routines Sorted Alphabetically
- Routines by Call Address: Commodore
- Routines by Call Address: Apple
Routines by Call Address: Apple
$0300
| Name | Purpose | Call Address |
|---|---|---|
| GetBlock | Read a given disk block. | $0300! |
| PutBlock | Write and verify a given block to disk. | $0303 |
| AllocateBlock | Mark a disk block as in use. | $030c? |
| GetFile | Load a GEOS file or load and run a GEOS program. | $030f |
| LdFile | Load a GEOS data file. | $0312 |
| ReadFile | Load memory from a chain of blocks on the disk. | $0315 |
| SaveFile | Save memory to a new GEOS file. | $0318 |
| WriteFile | Save memory to a chain of allocated disk blocks. | $031b |
| GetVBM | Load the disk's first VBM block into the VBM cache. | $031e |
| PutVBM | Flush the VBM cache to the disk's VBM block. | $0321 |
| CalcBlksFree | Count the number of free blocks on the current disk. | $0324 |
| FreeBlock | Mark a disk block as unallocated. | $032a |
| SetNextFree | Allocate the next free block on the disk. | $032d |
$0330
| Name | Purpose | Call Address |
|---|---|---|
| AppendRecord | Append a new record after current record in VLIR file. | $0330 |
| CloseRecordFile | Close the open VLIR file. | $0333 |
| DeleteRecord | Delete the current VLIR record. | $0336? |
| NextRecord | Make next record current in VLIR file. | $0336? |
| InsertRecord | Insert a new record before current record in VLIR file. | $0339 |
| OpenRecordFile | Open a VLIR file. | $033f |
| PointRecord | Make a specific record current in VLIR file. | $0342 |
| PreviousRecord | Make previous record current in VLIR file. | $0345 |
| ReadRecord | Read current record from VLIR file. | $0348 |
| UpdateRecordFile | Update a VLIR file. | $034b |
| WriteRecord | Save memory to current record of VLIR file. | $034e |
| BlkAlloc | Allocate enough sectors for a file. | $0351 |
| NxtBlkAlloc | Allocate more sectors for a file. | $0354 |
| DeleteFile | Delete a file from the disk. | $0357 |
| FreeFile | Mark a file's disk blocks as unallocated. | $035a |
| LdDeskAcc | Load and run a desk accessory file. | $035d |
$0360
| Name | Purpose | Call Address |
|---|---|---|
| RstrAppl | End desk accessory and return to calling application. | $0360 |
| 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. | $0366 |
| FindFile | Find a file in the current directory. | $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. | $036f |
| GetDirHead | Read the directory header from the disk. | $0372 |
| GetFreeDirBlk | Find space for a new entry in the current directory. | $0375 |
| PutDirHead | Write directory header to disk. | $037b? |
| SetGDirEntry | Create a directory entry on the disk. | $037b? |
| 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 |
| MakeSubDir | Create a subdirectory in the disk's current directory. | $0387 |
| UpDirectory | Make parent directory the new current directory. | $038a |
| LdApplic | Load and possibly run an application file. | $038d |
$0390
| Name | Purpose | Call Address |
|---|---|---|
| GetFHdrInfo | Load the GEOS header of a file. | $0390 |
| RenameFile | Rename a file in the current directory. | $0393 |
| Get1stDirEntry | Get the first file listed in the current directory. | $0396? |
| OpenDisk | Open a disk to GEOS. | $0399 |
| GetNxtDirEntry | Get the next file listed in the current directory. | $039c? |
| GoDirectory | Change the current directory to another directory. | $039f |
| ReOpenDisk | Reopen a disk to its most recent directory. | $03a2 |
| SortAlpha | Sort a list of 16-byte strings (like filenames) alphabetically. | $03a5 |
| SaveFG | Save a box on screen 1 to data for recovery later. | $03ab |
| RecoverFG | Recover a box on screen 1 from previously saved data. | $03ae |
| JsrToAux | Jump to a routine in auxiliary RAM. | $03b4 |
| UpdateParent | Update current and parent directory headers. | $03b7 |
| FreeDir | Mark a subdirectory's disk blocks as unallocated. | $03ba |
$0800
| Name | Purpose | Call Address |
|---|---|---|
| ReadClock | Clock driver: Update GEOS clock from hardware. | $0800 |
| ClockInt | Clock driver: Interrupt level routine. | $0803 |
| SetTimeDate | Clock driver: Set the hardware clock's time. | $0806 |
| SetAlarm | Clock driver: Enable the alarm, set alarm time. | $0809 |
| ResetAlarm | Clock driver: Disable the alarm. | $080c |
$4000
| Name | Purpose | Call Address |
|---|---|---|
| GetSerialNumber | Load this GEOS Kernal's serial code. | $4b38 |
$6000
| Name | Purpose | Call Address |
|---|---|---|
| InitForPrint | Printer driver: Initialize printer for a new document. | $6000 |
| StartPrint | Printer driver: Set printer for graphics printing. | $6003 |
| StartASCII | Printer driver: Set printer for ASCII text printing. | $6006 |
| PrintBuffer | Printer driver: Print an 8 pixel high row of graphics. | $6009 |
| PrintASCII | Printer driver: Print a string of ASCII text. | $600c |
| StopPrint | Printer driver: Flush buffer and feed in next page. | $600f |
| GetMode | Printer driver: Get dimensions of a printed page and print modes. | $6012 |
| SetMode | Printer driver: Set print mode. | $6015 |
| CancelPrint | Printer driver: Stop printer immediately, clear printer and I/O card buffers. | $6018 |
$6700
| Name | Purpose | Call Address |
|---|---|---|
| InitCard | Card driver: Initialize printer card. | $6700 |
| OpenCard | Card driver: Open printer card for access. | $6703 |
| OutputByte | Card driver: Write a byte to I/O card. | $6706 |
| InputByte | Card driver: Read a byte from I/O card. | $6709 |
| CloseCard | Card driver: Close I/O card access. | $670c |
| InfoCard | Card driver: Get printer attributes. | $670f |
| StatusCard | Card driver: Get current I/O status. | $6712 |
| ClearCard | Card driver: Stop transmitting and clear its buffer. | $6715 |
$EFA0
| Name | Purpose | Call Address |
|---|---|---|
| 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 |
$F000
| Name | Purpose | Call Address |
|---|---|---|
| InitMouse | Input driver: Initialize pointer device. | $f000 |
| SlowMouse | Input driver: Stop and reset pointer acceleration. | $f003 |
| UpdateMouse | Input driver: Update mouse variables from device. | $f006 |
| KeyFilter | Input driver: Pre-process or filter out keypress. | $f009 |
$FE00
| Name | Purpose | Call Address |
|---|---|---|
| MainLoop | Enter Main Loop directly. | $fe00 |
| InterruptMain | Process Interrupt Level events. | $fe03 |
| StartAppl | Warmstart GEOS and run a program already in memory. | $fe06 |
| DoInlineReturn | Return from inline subroutine. | $fe09 |
| DoIcons | Draw and activate the icons (buttons) in a table. | $fe0c |
| DoMenu | Display and activate a menu tree. | $fe0f |
| ReDoMenu | Redraw and reactivate the current menu. | $fe12 |
| DoPreviousMenu | Erase the current submenu and back up a menu level. | $fe15 |
| GotoFirstMenu | Close all open submenu levels. | $fe18 |
| RecoverMenu | Erase the current menu from the screen. | $fe1b |
| RecoverAllMenus | Erase all open menus from the screen. | $fe1e |
| DrawPoint | Draw, erase, or recover a pixel. | $fe21 |
| TestPoint | Get the value of a pixel on either screen. | $fe24 |
| HorizontalLine | Draw a horizontal line on the screen. | $fe27 |
| VerticalLine | Draw a vertical line on the screen. | $fe2a |
| InvertLine | Invert a horizontal line on the screen. | $fe2d |
$FE30
| Name | Purpose | Call Address |
|---|---|---|
| RecoverLine | Copy a horizontal line from screen 2 to screen 1. | $fe30 |
| DrawLine | Draw, erase, or recover a line. | $fe33 |
| SetPattern | Set the current fill pattern. | $fe36 |
| Rectangle | Fill a box with the current pattern. | $fe39 |
| i_Rectangle | Fill a box with the current pattern using inline data. | $fe3c |
| FrameRectangle | Draw the outline of a box in a given pattern. | $fe3f |
| i_FrameRectangle | Draw the outline of a box in a given pattern using inline data. | $fe42 |
| InvertRectangle | Invert the pixels in a box. | $fe45 |
| RecoverRectangle | Copy a box from screen 2 to screen 1. | $fe48 |
| i_RecoverRectangle | Copy a box from screen 2 to screen 1 using inline data. | $fe4b |
| ImprintRectangle | Copy a box from screen 1 to screen 2. | $fe4e |
| i_ImprintRectangle | Copy a box from screen 1 to screen 2 using inline data. | $fe51 |
| BitmapUp | Draw an encoded bitmap image on the screen. | $fe54 |
| i_BitmapUp | Draw an encoded bitmap image on the screen using inline data. | $fe57 |
| BitmapClip | Draw a cropped section of an encoded bitmap image. | $fe5a |
| BitOtherClip | Draw a section of a bitmap image using call vectors. | $fe5d |
$FE60
| Name | Purpose | Call Address |
|---|---|---|
| GraphicsString | Process several graphics commands given in a table. | $fe60 |
| i_GraphicsString | Process several graphics commands designated by a table of inline data. | $fe63 |
| GetScanLine | Compute the address of a given row on the screen. | $fe66 |
| PutString | Display an entire string of text. | $fe69 |
| i_PutString | Display an entire string of text using inline data. | $fe6c |
| PutDecimal | Display an unsigned 16-bit integer in decimal. | $fe6f |
| GetString | Input a line of text from the user. | $fe72 |
| GetNextChar | Get a key from the keyboard queue. | $fe75 |
| InitTextPrompt | Set sprite 1 as a vertical bar text cursor. | $fe78 |
| PromptOn | Turn on text cursor. | $fe7b |
| PromptOff | Turn off text cursor. | $fe7e |
| PutChar | Display a text character on the screen. | $fe81 |
| GetRealSize | Return the actual width of a character in the current font. | $fe84 |
| GetCharWidth | Return the width of a character in the current font. | $fe87 |
| LoadCharSet | Change the current font. | $fe8a |
| UseSystemFont | Reset the current font to the default BSW 9 font. | $fe8d |
$FE90
| Name | Purpose | Call Address |
|---|---|---|
| SmallPutChar | Display a text character on the screen without any special processing. | $fe90 |
| StartMouseMode | Initialize and start monitoring the mouse. | $fe93 |
| MouseOff | Turn off the mouse pointer. | $fe96 |
| MouseUp | Turn on the mouse pointer. | $fe99 |
| IsMseInRegion | Check if the mouse pointer is in a box. | $fe9c |
| ClearMouseMode | Stop monitoring the pointer. | $fe9f |
| DrawSprite | Copy a sprite image into the internal storage area. | $fea2 |
| PosSprite | Position a sprite using GEOS coordinates. | $fea5 |
| EnablSprite | Turn a sprite on. | $fea8 |
| DisablSprite | Turn a sprite off. | $feab |
| InitProcesses | Set up a table of recurring processes. | $feae |
| RestartProcess | Enable a recurring timed event, reset its timer. | $feb1 |
| BlockProcess | Disable execution of a timed event. | $feb4 |
| UnblockProcess | Enable execution of a timed event. | $feb7 |
| FreezeProcess | Stop the timer on a timed event. | $feba |
| UnfreezeProcess | Restart the timer on a timed event. | $febd |
$FEC0
| Name | Purpose | Call Address |
|---|---|---|
| Sleep | Pause subroutine without halting GEOS. | $fec0 |
| EnableProcess | Force a timed event to execute, regardless of its timer. | $fec3 |
| DShiftLeft | Shift bits of a word left, multiplying by a power of 2. | $fec6 |
| DShiftRight | Shift bits of a word right, dividing by a power of 2. | $fec9 |
| BBMult | Multiply two unsigned 8-bit numbers. | $fecc |
| BMult | Multiply two unsigned numbers, a 16-bit by an 8-bit. | $fecf |
| DMult | Multiply two unsigned 16-bit numbers. | $fed2 |
| Ddiv | Divide unsigned numbers, a 16-bit by a 16-bit. | $fed5 |
| DSdiv | Divide signed numbers, a 16-bit by a 16-bit. | $fed8 |
| Dabs | Compute the absolute value of a 16-bit number. | $fedb |
| Dnegate | Negate a signed 16-bit number. | $fede |
| Ddec | Decrement a 16-bit value. | $fee1 |
| GetRandom | Compute a new 16-bit pseudorandom number. | $fee4 |
| CopyString | Copy a null-terminated string. | $fee7 |
| CopyFString | Copy a fixed-length block of memory. | $feea |
| CmpString | Compare two null-terminated strings. | $feed |
$FEF0
| Name | Purpose | Call Address |
|---|---|---|
| CmpFString | Compare two fixed-length blocks of memory. | $fef0 |
| Panic | Draw a system error window and halt the system. | $fef3 |
| MoveData | Copy memory to a new location. | $fef6 |
| i_MoveData | Copy memory to a new location using inline data. | $fef9 |
| ClearRam | Fill a memory region with zeroes. | $fefc |
| FillRam | Fill a memory region with a byte. | $feff |
| i_FillRam | Fill a memory region with a byte using inline data. | $ff02 |
| InitRam | Initialize many memory regions using a table of values. | $ff05 |
| CallRoutine | Conditional jump to a routine. | $ff08 |
| NewBitOtherClip | Draw a section of a bitmap image using call vectors. | $ff0e |
| FirstInit | Initialize GEOS variables and structures to boot-time states. | $ff11 |
| CRC | Compute a checksum for a data region. | $ff14 |
| DoDlgBox | Show a dialog box window. | $ff17 |
| RstrFrmDialog | Close a dialog box window. | $ff1a |
| NewBitUp | Draw an encoded bitmap image on the screen. | $ff1d |
$FF20
| Name | Purpose | Call Address |
|---|---|---|
| IrqMiddle | Process Interrupt Level events. | $ff20 |
| TempHideMouse | Temporarily hide all soft-sprites including pointer. | $ff29 |
| SoftSprHandler | Update soft-sprites on the screen. | $ff2c |
| SetMsePic | Load and preshift a new soft-sprite pointer icon. | $ff2f |
| InitSprite | Initialize all software sprites. | $ff32 |
| SaveFontData | Save font variables to saveFontTab to restore later. | $ff35 |
| RestoreFontData | Restore font variables from saveFontTab saved earlier. | $ff38 |
| EraseCharacter | Erase a text character from the screen. | $ff3e |
| ReadByte | Read a byte from a file. | $ff41 |
| GetLdVars | Transfer Ld variables to GEOS pseudoregisters. | $ff44 |
| SetLdVars | Transfer GEOS pseudoregisters to Ld variables. | $ff47 |
| InitForDialog | Prepare to show a dialog box. | $ff4a |
| WarmStart | Warmstart GEOS. | $ff4d |
$FF50
| Name | Purpose | Call Address |
|---|---|---|
| RecoverSysRam | Recover from showing a dialog box. | $ff53 |
| GetPtrCurDkNm | Compute the address of the disk's name. | $ff56 |
| EnterDesktop | End application and restart GEOS deskTop. | $ff59 |
| CopyScreenBlock | Copy a rectangle 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 |
| PutScreenLine | Save a line to the screen as it appears in memory. | $ff65 |
| DivideBySeven | Divide an unsigned 16-bit number by 7 for direct screen access graphics. | $ff68 |
| MoveAuxData | Copy memory in or between main and auxiliary RAM. | $ff6b |
| GetSpriteData | Copy a sprite image from the internal storage area. | $ff6e |
| SwapMainAndAux | Swap memory between main and auxiliary RAM. | $ff71 |
| ReadBackLine | Read a full-width line of pixels from screen 2. | $ff74 |
| LoadAuxSet | Change the current font to one in auxiliary RAM. | $ff77 |
| HideOnlyMouse | Temporarily hide the soft-sprite mouse pointer. | $ff7a |
| GetPattern | Load the 8 bytes of a GEOS system pattern. | $ff7d |
$FF80
| Name | Purpose | Call Address |
|---|---|---|
| SetUserPattern | Set a user-defined pattern as the current fill pattern. | $ff80 |
| Bell | Sound speaker at 1 KHz for about 100 ms. | $ff86 |
| ImprintLine | Copy a horizontal line from screen 1 to screen 2. | $ff8f |
| CopyFullScreen | Copy a full-width part of screen 1 to another part. | $ff92 |
| NewBitClip | Draw a cropped section of an encoded bitmap image. | $ff95 |
| ReadScanLine | Read a full-width line of pixels from screen 1. | $ff98 |
| i_NewBitUp | Draw an encoded bitmap image on the screen using inline data. | $ff9e |