Thornton 2 dot Com
1K5C7

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 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