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 |