From 2d9e5955a87bbd97c4ff589c26d182ec1def0cb5 Mon Sep 17 00:00:00 2001
From: "ol.sc"
Date: Sat, 14 Jan 2012 11:09:40 +0000
Subject: [PATCH] The "Hitchhiker's Guide To GEOS" is the only publicly
available document containing the addresses of GEOS symbols for Apple GEOS.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5399 b7a2c559-68d2-44c3-8de9-860c34a00d81
---
libsrc/geos-common/symbols.txt | 486 +++++++++++++++++++++++++++++++++
1 file changed, 486 insertions(+)
create mode 100644 libsrc/geos-common/symbols.txt
diff --git a/libsrc/geos-common/symbols.txt b/libsrc/geos-common/symbols.txt
new file mode 100644
index 000000000..dedd4411b
--- /dev/null
+++ b/libsrc/geos-common/symbols.txt
@@ -0,0 +1,486 @@
+Source: The Hitchhiker's Guide To GEOS
+http://lyonlabs.org/commodore/onrequest/geos-manuals/The_Hitchhikers_Guide_to_GEOS.pdf
+
+
+GEOS Variables
+==============
+
+Name C64 C128 Apple Size Description
+-------------------------------------------------------------------
+alarmSetFlag $851c $851c n/a Byte TRUE if the alam is set for GEOS to monitor, else FALSE.
+alarmTmtVector $84ad $84ad $0212 Word Address of a service routine for the alarm clock time-out ...
+alphaFlag $84b4 $84b4 $0225 Byte Flag for alphanumeric string input ...
+appMain $849b $849b $0200 Word Vector that allows applications to include their own main loop ...
+backBufPtr n/a $131b $9d7c 16 Bytes Screen pointer where the back buffer cane from.
+backXBufNum n/a $132b $d98c 8 Bytes For each sprite, there is one byte here for how many bytes ...
+backYBufNum n/a $1333 $d994 8 Bytes For each sprite, there is one byte here for how many scanlines ...
+bakclr0 $d021 $d021 n/a Byte Background color 0.
+bakclr1 $d022 $d022 n/a Byte Background color 1.
+bakclr2 $d023 $d023 n/a Byte Background color 2.
+bakclr3 $d024 $d024 n/a Byte Background color 3.
+baselineOffset $26 $26 $0218 Byte Offset from top line to baseline in character set.
+bkvec $0316 $0316 n/a Word BRK instruction vector for when ROMs are switched in.
+bootName $C006 $C006 $E003 9 Bytes This is the start of the "GEOS BOOT" string.
+BRKVector $84af $84af $0214 Word Vector to the routine that is called uhen a BRK instruction is ...
+cardDataPntr $2c $2c $60 Word This is a pointer to the actual card graphics data for the ...
+CPU_DATA $01 n/a n/a Word Address of 6510 data register that controls the hardware memory ...
+CPU_DDR $00 n/a n/a Byte Address of 6510 data direction register.
+curDevice $ba $ba n/a Byte This holds the current serial deuice number.
+curDirHead $8200 $8200 $FA80 256 | 39 Bytes For CBM, it is the buffer containing header infomation ...
+curDrive $8489 $8489 $f60d Byte Holds the device number of the currently active disk drive.
+curEnable n/a $1300 $0951 Byte This is an image of the C64 mobenble register.
+curHeight $29 $29 $021b Byte Used to hold the card height in pixels of the current font in ...
+curIndexTable $2a $2a $005e Word curIndexTable points to the table of sizes, in bytes, of each ...
+curmobx2 n/a $1302 $d953 Byte Image of the C64 mobx2 register.
+curnoby2 n/a $1301 $d952 Byte Image of the C64 moby2 register.
+curPattern $22 $22 $022c Word curPattern points to the first byte of the graphics data for the ...
+curRecord $8496 $8496 $f618 Byte Holds the current record number for an open VLIR file.
+currentMode $2e $2e $021c Byte Holds the current text drawing node.
+curSetWidth $27 $27 $0219 Word Holds the card width in pixels for the current font.
+curType $88c6 $88c6 n/a Byte Holds the current disk type.
+curXpos0 n/a $1303 $d954 16 Bytes The current X positions of the C128 ami Apple soft sprites.
+curYpos0 n/a $1313 $d964 8 Bytes The current Y positions for the C128 and Apple soft sprites.
+dataDiskName $8453 $8453 $02b4 18 | 16 Bytes Holds the disk name that an application's data file is on.
+dataFileName $8442 $8442 $02a4 17 | 16 Bytes This is the name of a data file to open.
+dateCopy $c018 $c018 n/a 3 Bytes This is a copy of the system variables for year, month, and day.
+day $8518 $8518 $f202 Byte Holds the value for current day.
+dblClickCount $8515 $8515 $0258 Byte Used to determine when an icon is double clicked on.
+devTabHi n/a n/a $fae7 4 Bytes For the Apple, these are the high and low bytes of the four ...
+devTabLo n/a n/a $faeb 4 Bytes For the Apple, these are the high and low bytes of the four ...
+devUnitTab n/a n/a $faef 4 Bytes The ProDos unit numbers of the four possible devices are kept ...
+dir2Head $8900 $8900 n/a 256 Bytes This is the 2nd directory header block used for larger cpacity ...
+dirBlkno n/a n/a $f620 Word Block number of the key block of the directory containing ...
+dirEntryBuf $8400 $8400 $fa59 256 | 39 Bytes Buffer used to build a file's directory entry.
+dirPtr n/a n/a $f622 Word Pointer into diskBlkBuf for this file's entry.
+diskBlkBuf $8000 $8000 $f659 256 | 512 Bytes General disk block buffer. Initialized to all zeros.
+diskOpenFlg $848a $848a $f617 Byte Set to TRUE or FALSE to indicate whether a disk is currently ...
+dispBufferOn $2f $2f $021d Byte Routes graphic and text operations to either the foreground ...
+dlgBoxRamBuf $851f $B51f $f381 417 | 649 Bytes This is the buffer for variables that are saved when desk ...
+doRestFlag n/a $1b54 $db1d Byte Flag needed because of ouerlapping soft sprite problems on C128 ...
+DrACurDkNm $841e $841e $faa7 18 | 16 Bytes This is the disk name of the current disk in drive A.
+DrBCurDkNm $8430 $8430 $fab7 18 | 16 Bytes This is the disk name of the current disk in drive B.
+DrCCurDkNm $88dc $88dc $fac7 18 | 16 Bytes This is the disk name of the current disk in drive C.
+DrDCurDkNm $88ee $88ee $fad7 18 | 16 Bytes This is the disk name of the current disk in drive D.
+driveData $88bf $88bf n/a 4 Bytes One byte is reserved for each disk drive, to be used by the ...
+driveType $848e $848e $faf3 4 Bytes There are 4 bytes at location driueType, one for each of four ...
+drSizeHi n/a n/a $fafb 4 Bytes The high bytes of the sizes of the four possible ...
+drSizeLo n/a n/a $faf7 4 Bytes The low bytes of the sizes of the four possible ...
+extclr $20 $20 n/a Byte Holds value for exterior (border) color.
+faultData $84b6 $84b6 $0227 Byte Holds information about mouse faults.
+fileHeader $8100 $8100 $f859 256 | 512 Bytes Buffer used to hold the header block for a GEOS file.
+fileSize $8499 $8499 $f61b Word This is the current size (in blocks) of a file.
+fileTrScTab $8300 $8300 n/a 256 Bytes For Commodore, it is the buffer used to hold the track and ...
+fileWritten $8498 $8498 $f61a Byte Flag indicating if a if the currently open file has been written ...
+firstBoot $88c5 $88c5 $0281 Byte This flag is changed from 0 to $FF when the deskTop comes up ...
+fontData $850c $850c n/a(?) 9 Bytes Buffer for saving the user active font table when going into ...
+fontTable $26 $26 n/a(?) 8 Bytes fontTable is a label for the beginning of variables for the ...
+grcntr12 $d016 $d016 n/a Byte Graphics control reqister #2.
+grcntrl1 $d011 $d011 n/a Byte Graphics control register #1.
+grirq $d019 $d019 n/a Byte Graphics chip interrupt register.
+grirqen $d01a $d01a n/a Byte Graphics chip interrupt enable register.
+grmemptr $d018 $d018 n/a Byte Graphics memory pointer VM3-VttlO|CB13-CBll.
+hour $8519 $8519 $f203 Byte Variable for hour.
+iconSelFlag $84b5 $84b5 $0226 Byte This RAM variable contains flag bits in b7 and b6 to specify ...
+indexBlkno n/a n/a $f624 Word Block number of the VLIR index table.
+inputData $8506 $8506 $0247 4 Bytes This is where input drivers pass device specific information to ...
+inputDevName $88cb $88cb $08cc 17 | 16 Bytes String that holds the name of the current input device.
+inputVector $84a5 $84a5 $020a Word Pointer to routine to call on input device change.
+intBotVector $849f $849f $0204 Word Vector to routine to call after the operating system interrupt ...
+interleave $848c $848c n/a Byte Variable uused by BlkAlloc routine as the desired interleave when ...
+intSource n/a n/a $02c6 Byte Byte to indicate where interrupts are coming from on the Apple.
+intTopVector $849d $849d $0202 Word Vector to routine to call before the operating system interrupt ...
+invertBuffer n/a $1ced n/a 80 Bytes Buffer area used to speed up the 80 colunn InvertLine routine.
+irqvec $0314 $0314 n/a Word IRQ vector.
+isGEOS $848b $848b n/a Byte Flag to indicate whether the current disk is a GEOS disk.
+keyData $8504 $8504 $0245 Byte Holds the ASCII value of the current last key that was pressed.
+keyVector $84a3 $84a3 $0208 Word Vector to routine to call on keypress.
+leftMargin $35 $35 $0220 Word Leftmost point for writing characters.
+MachineType n/a n/a $02c4 Byte Type of Apple machine.
+maxMouseSpeed $8501 $8501 $027d Byte Maximum speed for mouse cursor.
+mcmclr0 $d025 $d025 n/a Byte This is the variable for nuiti-color node colors 0.
+mcmclr1 $d026 $d026 n/a Byte This is the variable for nuiti-color node colors 1.
+MenuNumber $84b7 $84b7 $0228 Byte Number of currently working menu.
+minMouseSpeed $8502 $8502 $027e Byte Minimum speed for mouse cursor.
+minutes $851a $851a $f204 Byte Variable for minutes for time of day clock.
+mob0clr $d027 $d027 n/a Byte This is the color of the 1. object (sprite) on Commodore.
+mob0xpos $d000 $d000 n/a(!) Byte This is the x position of sprite #0
+mob0ypos $d001 $d001 n/a(!) Byte This is the y position of sprite #0
+mob1clr $d028 $d028 n/a Byte This is the color of the 2. object (sprite) on Commodore.
+mob1xpos $d002 $d002 n/a(!) Byte This is the x position of sprite #1
+mob1ypos $d003 $d003 n/a(!) Byte This is the y position of sprite #1
+mob2clr $d029 $d029 n/a Byte This is the color of the 3. object (sprite) on Commodore.
+mob2xpos $d004 $d004 n/a(!) Byte This is the x position of sprite #2
+mob2ypos $d005 $d005 n/a(!) Byte This is the y position of sprite #2
+mob3clr $d02a $d02a n/a Byte This is the color of the 4. object (sprite) on Commodore.
+mob3xpos $d006 $d006 n/a(!) Byte This is the x position of sprite #3
+mob3ypos $d007 $d007 n/a(!) Byte This is the y position of sprite #3
+mob4clr $d02b $d02b n/a Byte This is the color of the 5. object (sprite) on Commodore.
+mob4xpos $d008 $d008 n/a(!) Byte This is the x position of sprite #4
+mob4ypos $d009 $d009 n/a(!) Byte This is the y position of sprite #4
+mob5clr $d02c $d02c n/a Byte This is the color of the 6. object (sprite) on Commodore.
+mob5xpos $d00a $d00a n/a(!) Byte This is the x position of sprite #5
+mob5ypos $d00b $d00b n/a(!) Byte This is the y position of sprite #5
+mob6clr $d02d $d02d n/a Byte This is the color of the 7. object (sprite) on Commodore.
+mob6xpos $d00c $d00c n/a(!) Byte This is the x position of sprite #6
+mob6ypos $d00d $d00d n/a(!) Byte This is the y position of sprite #6
+mob7clr $d02e $d02e n/a Byte This is the color of the 8. object (sprite) on Commodore.
+mob7xpos $d00e $d00e n/a(!) Byte This is the x position of sprite #7
+mob7ypos $d00f $d00f n/a(!) Byte This is the y position of sprite #7
+mobbakcol $d01f $d01f n/a Byte Sprite to background collision register for Commodore.
+mobenble $d015 $d015 $0818 Byte Sprite enable bits.
+mobmcm $d01c $d01c n/a Byte Sprite multi-color mode select.
+mobmobcol $d01e $d01e n/a Byte Object to object collision register.
+mobprior $d01b $d01b n/a Byte Object to background priority.
+mobx2 $d01d $d01d $0819 Byte Double object size in x.
+moby2 $d017 $d017 $081a Byte Double object size in y.
+month $8517 $8517 $f201 Byte Holds month for time of day clock.
+mouseAccel $8503 $8503 $027f Byte Acceleration of mouse cursor.
+mouseBottom $84b9 $84b9 $58 Byte Bottom most position for mouse cursor.
+mouseFaultVec $84a7 $84a7 $020c Word Vector to routine to call when mouse goes outside region ...
+mouseLeft $84ba $84ba $59 Word Left most position for mouse.
+mouseOn $30 $30 $5d Byte Flag indicating that the mouse is mode is on.
+mousePicData $84c1 $84c1 n/a 64 Bytes 64 byte array for the mouse sprite picture on Commodore.
+mouseRight $84bc $84bc $5b Word Right most position for mouse.
+mouseSave n/a $1b55 $ee53 24 Bytes Screen data for what is beneath mouse soft sprite.
+mouseTop $84b8 $84b8 $57 Byte Top most position for mouse.
+mouseVector $84a1 $84a1 $0206 Word Routine to call on a mouse key press.
+mouseXOffset n/a n/a $0229 Word Offset from mouseXPos to draw the mouse sprite.
+mouseXPos $3a $3a $0241 Word Mouse X position.
+mouseYOffset n/a n/a $022b Byte Offset from mouseYPos to draw the mouse sprite.
+mouseYPos $3c $3c $0243 Byte Mouse Y position.
+msbxpos $d010 $d010 n/a Byte Most significant bits for x positions of sprites.
+msePicPtr $31 $31 n/a Word Pointer to the mouse graphics data.
+nationality $c010 $c010 $e00d Byte Byte to hold nationality of Kernal.
+nmivec $0318 $0318 n/a Word NMI vector.
+noEraseSprites n/a n/a $0240 Byte Flag to stop routine TempHideMouse fron erasing sprites #2 ...
+numDrives $848d $848d $f60e Byte Set to number of drives on the system.
+obj0Pointer $8ff8 $8ff8 n/a Byte Pointer to the picture data for sprite 0.
+obj1Pointer $8ff9 $8ff9 n/a Byte Pointer to the picture data for sprite 1.
+obj2Pointer $8ffa $8ffa n/a Byte Pointer to the picture data for sprite 2.
+obj3Pointer $8ffb $8ffb n/a Byte Pointer to the picture data for sprite 3.
+obj4Pointer $8ffc $8ffc n/a Byte Pointer to the picture data for sprite 4.
+obj5Pointer $8ffd $8ffd n/a Byte Pointer to the picture data for sprite 5.
+obj6Pointer $8ffe $8ffe n/a Byte Pointer to the picture data for sprite 6.
+obj7Pointer $8fff $8fff n/a Byte Pointer to the picture data for sprite 7.
+offFlag n/a n/a $027c Byte Flag telling whether the wouse needs to be redrawn.
+otherPressVec $84a9 $84a9 $020e Word Vector to routine that is called when the mouse button is ...
+pressFlag $39 $39 $08fe Byte Flag to indicate that a new key has been pressed.
+PrntDiskName $8476 $8476 n/a 18 Bytes Disk name that current printer driver is on.
+PrntFileName $8465 $8465 $08ac 17 | 16 Bytes Name of the current printer driver.
+ramBase $88c7 $88c7 n/a 4 Bytes RAM bank for each disk drive to use if the drive type is either ...
+ramExpSize $88c3 $88c3 n/a Byte Byte for number or RAM banks available in RAM expansion unit.
+random $850a $850a $024c Word Variable incremented each interrupt to generate a randon nunber.
+rasreg $d012 $d012 n/a Byte Raster register.
+RecoverVector $84b1 $84b1 $0216 Word Pointer to routine that is called to recover the background ...
+reqXpos0 n/a n/a $0800 Word This variable corresponds to the Commodore VIC chip register ...
+reqXpos1 n/a n/a $0802 Word This variable corresponds to the Commodore VIC chip register ...
+reqXpos2 n/a n/a $0804 Word This variable corresponds to the Commodore VIC chip register ...
+reqXpos3 n/a n/a $0806 Word This variable corresponds to the Commodore VIC chip register ...
+reqXpos4 n/a n/a $0808 Word This variable corresponds to the Commodore VIC chip register ...
+reqXpos5 n/a n/a $080a Word This variable corresponds to the Commodore VIC chip register ...
+reqXpos6 n/a n/a $080c Word This variable corresponds to the Commodore VIC chip register ...
+reqXpos7 n/a n/a $080e Word This variable corresponds to the Commodore VIC chip register ...
+returnAddress $3d $3d $64 Word Address to return to from in-line call.
+rightMargin $37 $37 $0222 Word The rightmost point for writing characters.
+savedmoby2 $88bb $88bb n/a Byte Saved value of moby2 for context saving done when dialogue boxes ...
+saveFontTab $850c $850c $024e 9 | 10 Bytes When a menu is selected, the users active font table is saved ...
+scr80colors n/a $88bd n/a Byte Screen colors for 80 column node on the C128.
+scr80polar n/a $88bc n/a Byte Copy of reg 24 in the VDC for the C128.
+screencolors $851e $851e n/a Byte Default screen colors.
+seconds $851b $851b $f205 Byte Seconds variable for the time of day clock.
+selectionFlash $84b3 $84b3 $0224 Byte Variable for the speed at which menu items and icons are ...
+shiftBuf n/a $1b45 $70 7 Bytes Buffer for shifting/doubling sprites. Located in back RAM.
+shiftOutBuf n/a $1b4c $78 7 Bytes Buffer for shifting/doubling/oring sprites. Located in back ...
+sizeFlags n/a $1b53 $db1c Byte Height of sprite.
+softOnes n/a $1c2d $d000 192 Bytes Buffer used for putting sprite bitmaps up on screen without ...
+softZeros n/a $1b6d $d0e0 192 Bytes Buffer used for putting sprite bitnaps up on screen without ...
+spr0pic $8a00 $8a00 n/a 64 Bytes This is where the graphics data for sprite 0 is kept on ...
+spr1pic $8a40 $8a40 n/a 64 Bytes This is where the graphics data for sprite 1 is kept on ...
+spr2pic $8a80 $8a80 n/a 64 Bytes This is where the graphics data for sprite 2 is kept on ...
+spr3pic $8ac0 $8ac0 n/a 64 Bytes This is where the graphics data for sprite 3 is kept on ...
+spr4pic $8b00 $8b00 n/a 64 Bytes This is where the graphics data for sprite 4 is kept on ...
+spr5pic $8b40 $8b40 n/a 64 Bytes This is where the graphics data for sprite 5 is kept on ...
+spr6pic $8b80 $8b80 n/a 64 Bytes This is where the graphics data for sprite 6 is kept on ...
+spr7pic $8bc0 $8bc0 n/a 64 Bytes This is where the graphics data for sprite 7 is kept on ...
+sspr1back n/a $133b $56d0 294 | 336 Bytes For the soft sprites #1, there is a buffer in the ...
+sspr2back n/a $1461 $5820 294 | 336 Bytes For the soft sprites #2, there is a buffer in the ...
+sspr3back n/a $1587 $5970 294 | 336 Bytes For the soft sprites #3, there is a buffer in the ...
+sspr4back n/a $16ad $5ac0 294 | 336 Bytes For the soft sprites #4, there is a buffer in the ...
+sspr5back n/a $17d3 $5c10 294 | 336 Bytes For the soft sprites #5, there is a buffer in the ...
+sspr6back n/a $18f9 $5d60 294 | 336 Bytes For the soft sprites #6, there is a buffer in the ...
+sspr7back n/a $1a1f $5eb0 294 | 336 Bytes For the soft sprites #7, there is a buffer in the ...
+string $24 $24 $53 Word Used by GEOS as a pointer to string destinations for routines ...
+StringFaultVec $84ab $84ab $0210 Word Vector called when an attenpt is made to write a character ...
+stringX $84be $84be $022e Word The X position for string input.
+stringY $84c0 $84c0 $0230 Byte The Y position for string input.
+sysDBData $851d $851d $0259 Byte Variable that is used internally to indicate which icon caused ...
+sysFlgCopy $c012 $c012 n/a Byte This is a copy of the sysRAMFlg that is saved here when going ...
+sysRAMFlg $88c4 $88c4 n/a Byte If RAM expansion in, Bank 0 is reserved for the Kernal's use.
+totNumBlks n/a n/a $f60b Word Total number of blocks in current volume.
+turboFlags $8492 $8492 n/a 4 Bytes The turbo state flags for drives 8 through 11 on Commodore.
+usedRecords $8497 $8497 $f619 Byte Holds the nunber of records in an open VLIR file.
+vdcClrMode n/a $88be n/a Byte Holds the current color mode for C128 color routines.
+version $c00f $c00f $e00c Byte Holds byte indicating uhat uersion of GEOS is running.
+windowTop $33 $33 $021e Byte Top line of window for text clipping.
+year $8516 $8516 $f200 Byte Holds the year for the time of day clock.
+
+
+GEOS Routines
+=============
+
+Name C64 C128 Apple Description
+-----------------------------------------------------------
+AllocateBlock $9048 $9048 $0300 Mark a disk block as in-use.
+AppendRecord $c289 $c289 $0330 Insert a new VLIR record after the current record.
+AuxDExit n/a n/a $efa9 Aux-driver deinstall and exit routine.
+AuxDInt n/a n/a $efa3 Aux-driver interrupt level routine.
+AuxDKeyFilter n/a n/a $efa6 Aux-driver keypress filter.
+AuxDMain n/a n/a $efa0 Aux-driver MainLoop level routine.
+BBMult $c160 $c160 $fecc Byte by byte (single-precision) unsigned multiply.
+Bell n/a n/a $ff86 1000 Hz Bell sound.
+BitmapClip $c2aa $c2aa $fe5a Display a compacted bitmap, clipping to a sub-window.
+BitmapUp $c142 $c142 $fe54 Display a compacted bitmap without clipping.
+BitOtherClip $c2c5 $c2c5 $fe5d BitmapClip with data coming from elsewhere (e.g., disk).
+BldGDirEntry $c1f3 $c1f3 $036f Build a GEOS directory entry in memory.
+BlkAlloc $c1fc $c1fc $0351 Allocate space on disk.
+BlockProcess $c10c $c10c $feb4 Block process from running. Does not freeze timer.
+BMult $c163 $c163 $fecf Byte by word unsigned multiply.
+BootGEOS $c000 $c000 n/a Reboot GEOS. Requires only 128 bytes at $c000.
+CalcBlksFree $c1db $c1db $0324 Calculate total number of free disk blocks.
+CallRoutine $c1d8 $c1d8 $ff08 Pseudo-subroutine call. $0000 aborts call.
+CancelPrint n/a n/a $6018 Cancel printing, clearing printer and I/O card buffers.
+ChangeDiskDevice $c2bc $c2bc n/a Instruct CBM drive to change its serial device address.
+ChkDkGEOS $c1de $c1de n/a Check CBM disk for GEOS format.
+ClearCard n/a n/a $6715 Clear any buffered I/O operations.
+ClearMouseMode $c19c $c19c $fe9f Stop input device monitoring.
+ClearRam $c178 $c178 $fefc Clear memory to $00.
+ClockInt n/a n/a $0803 Clock driver interrupt level routine.
+CloseCard n/a n/a $670c Close access to I/O card.
+CloseRecordFile $c277 $c277 $0333 Close currently open VLIR file.
+CmpFString $c26e $c26e $fef0 Compare two fixed-length strings.
+CmpString $c26b $c26b $feed Compare two null-terminated strings.
+CopyFString $c268 $c268 $feea Copy a fixed-length string.
+CopyFullScreen n/a n/a $ff92 Fast vertical screen copy.
+CopyLine n/a n/a $ff5f Bit-boundary horizontal line copy.
+CopyScreenBlock n/a n/a $ff5c Bit-boundary rectangle copy.
+CopyString $c256 $c256 $fee7 Copy a null-terminated string.
+CRC $c20e $c20e $ff14 Cyclic Reduncancy Check calculation.
+Dabs $c16f $c16f $fedb Double-precision signed absolute value.
+Ddec $c175 $c175 $fee1 Double-precison unsigned decrement.
+Ddiv $c169 $c169 $fed5 Double-precision unsigned division.
+DeleteDir n/a n/a $037e Delete directory.
+DeleteFile $c238 $c238 $0357 Delete file.
+DeleteRecord $c283 $c283 $0336 Delete current VLIR record.
+DisablSprite $c1d5 $c1d5 $feab Disable sprite.
+DivideBySeven n/a n/a $ff68 Quick division by seven for direct screen access.
+DMult $c166 $c166 $fed2 Double-precision unsigned multiply.
+Dnegate $c172 $c172 $fede Double-precision signed negation.
+DoBOp n/a $c2ec n/a C128-backram memory primitive.
+DoDlgBox $c256 $c256 $ff17 Display and begin interaction with dialog box.
+DoIcons $c15a $c15a $fe0c Display and begin interaction with icons.
+DoInlineReturn $c2a4 $c2a4 $fe09 Return from inline subroutine.
+DoMenu $c151 $c151 $fe0f Display and begin interaction with menus.
+DoneWithIO $c25f $c25f n/a Restore system after I/O across CBM serial bus.
+DoPreviousMenu $c190 $c190 $fe15 Retract sub-menu and reactivate menus up one level.
+DoRAMOp $c2d4 $c2d4 n/a CBM RAM-expansion unit access primitive.
+DownDirectory n/a n/a $0381 Open subdirectory.
+DrawLine $c130 $c130 $fe33 Draw, clear, or recover line between two endpoints.
+DrawPoint $c133 $c133 $fe21 Draw, clear, or recover a single screen point.
+DrawSprite $c1c6 $c1c6 $fea2 Define sprite image.
+DSdiv $c16c $c16c $fed8 Double-precision signed division.
+DShiftLeft $c15d $c15d $fec6 Double-precision left shift (zeros shifted in).
+DShiftRight $c262 $c262 $fec9 Double-precision right shift (zeros shifted in).
+EnableProcess $c109 $c109 $fec3 Make a process runable immediately.
+EnablSprite $c1d2 $c1d2 $fea8 Enable sprite.
+EnterDeskTop $c22c $c22c $ff59 Leave application and return to GEOS deskTop.
+EnterTurbo $c214 $c214 n/a Activate CBM disk turbo on current drive.
+EraseCharacter n/a n/a $ff3e Erase text character from screen.
+ExitTurbo $c232 $c232 n/a Deactivate CBM disk turbo on current drive.
+FastDelFile $c244 $c244 n/a Quick file delete (requires full track/sector list).
+FdFTypesInDir n/a n/a $0363 Find files in directory other than current directory.
+FetchRAM $c2cb $c2cb n/a Transfer data from CBM RAM-expansion unit.
+FillRam $c17b $c17b $feff Fill memory with a particular byte.
+FindBAMBit $c2ad $c2ad n/a Get allocation status of particular CBM disk block.
+FindFile $c20b $c20b $0369 Search for a particular file.
+FindFTypes $c23b $c23b $0366 Find all files of a particular GEOS type.
+FindVBMBit n/a n/a $036c Get allocation status of particular ProDOS disk block.
+FirstInit $c271 $c271 $ff11 GEOS startup entry point.
+FndFilinDir n/a n/a $036c Find a file in a directory other than current directory.
+FollowChain $c205 $c205 n/a Follow chain of CBM sectors, building track/sector table.
+FrameRectangle $c127 $c127 $fe3f Draw a rectangular frame (outline).
+FreeBlock $c2b9 $c2b9 $032a Mark a disk block as not-in-use.
+FreeDir n/a n/a $03ba Free all blocks associated with a subdirectory.
+FreeFile $c226 $c226 $035a Free all blocks assocatiated with a file.
+FreezeProcess $c112 $c112 $feba Pause a process countdown timer.
+Get1stDirEntry $9030 $9030 $039c Get first directory entry.
+GetBlock $c1e4 $c1e4 $0300 Read single disk block into memory.
+GetCharWidth $c1c9 $c1c9 $fe87 Calculate width of character without style attributes.
+GetDimensions $790c $790c n/a Get CBM printer page dimensions.
+GetDirHead $c247 $c247 $0372 Read directory header into memory.
+GetFHdrInfo $c229 $c229 $0390 Read a GEOS file header into memory.
+GetFile $c208 $c208 $030f Load GEOS file.
+GetFreeDirBlk $c1f6 $c1f6 $0375 Find an empty directory slot.
+GetLdVars n/a n/a $ff44 Transfer internal Ld variables to GEOS pseudoregisters.
+GetMode n/a n/a $6012 Return current printer resolution and setable attributes.
+GetNextChar $c2a7 $c2a7 $fe75 Get next character from character queue.
+GetNxtDirEntry $9033 $9033 $039c Get directory entry other than first.
+GetPathname n/a n/a $0384 Return current path string.
+GetPattern n/a n/a $ff7d Get eight-byte GEOS pattern definition.
+GetPtrCurDkNm $c298 $c298 $ff56 Return pointer to current disk name.
+GetRandom $c187 $c187 $fee4 Calculate new random number.
+GetRealSize $c1b1 $c1b1 $fe84 Calculate actual character size with attributes.
+GetScanLine $c13c $c13c $fe66 Calculate scanline address.
+GetScreenLine n/a n/a $ff62 Copy Apple screen data to buffer.
+GetSerialNumber $c196 $c196 $4b38 Return GEOS serial number or pointer to name string.
+GetSpriteData n/a n/a $ff6e Get sprite image data.
+GetString $c1ba $c1ba $fe72 Get string input from user.
+GetVBM n/a n/a $031e Read first VBM block into VBM cache.
+GoDirectory n/a n/a $039f Go directory to a specific subdirectory.
+GotoFirstMenu $c1bd $c1bd $fe18 Retract all sub-menus and reactivate at main level.
+GraphicsString $c136 $c136 $fe60 Execute a string of graphics commands.
+HideOnlyMouse n/a $c2f2 $ff7a Temporarily remove soft-sprite mouse pointer.
+HorizontalLine $c118 $c118 $fe27 Draw a patterned horizontal line.
+i_BitmapUp $c1ab $c1ab $fe57 Inline BitmapUp.
+i_FillRam $c1b4 $c1b4 $ff02 Inline FillRam.
+i_FrameRectangle $c1a2 $c1a2 $fe42 Inline FrameRectangle.
+i_GraphicsString $c1a8 $c1a8 $fe63 Inline GraphicsString.
+i_ImprintRectangle $c253 $c253 $fe51 Inline ImprintRectangle.
+i_MoveData $c1b7 $c1b7 $fef9 Inline MoveData.
+i_NewBitUp n/a n/a $ff9e Inline NewBitUp.
+i_PutString $c1ae $c1ae $fe6c Inline PutString.
+i_RecoverRectangle $c1a5 $c1a5 $fe4b Inline RecoverRectangle.
+i_Rectangle $c19f $c19f $fe3c Inline Rectangle.
+ImprintLine n/a n/a $ff8f Imprint horizontal line to background buffer.
+ImprintRectangle $c250 $c250 $fe4e Imprint rectangular area to background buffer.
+InfoCard n/a n/a $670f Get I/O card attributes.
+InitCard n/a n/a $6700 Intialize I/O card.
+InitForDialog n/a n/a $ff4a Internal pre-dialog box intialization.
+InitForIO $c25c $c25c n/a Prepare CBM system for I/O across serial bus.
+InitForPrint $7900 $7900 $6000 Initialize printer (once per document).
+InitMouse $fe80 $fe80 $f000 Initialize input device.
+InitProcesses $c103 $c103 $feae Initialize processes.
+InitRam $c181 $c181 $ff05 Initialize memory areas from table.
+InitSprite n/a n/a $ff32 Initialize software sprites.
+InitTextPrompt $c1c0 $c1c0 $fe78 Initialize text prompt.
+InputByte n/a n/a $6709 Read byte from I/O card.
+InsertRecord $c286 $c286 $0339 Insert new VLIR record in front of current record.
+InterruptMain $c100 $c100 $fe03 Main interrupt level processing.
+InvertLine $c11b $c11b $fe2d Invert the pixels on a horizontal screen line.
+InvertRectangle $c12a $c12a $fe45 Invert the pixels in a rectangular screen area.
+IrqMiddle n/a n/a $ff20 Software interrupts entry point.
+IsMseInRegion $c2b3 $c2b3 $fe9c Check if mouse is within a screen region.
+JsrToAux n/a n/a $03b4 Call aux-memory subroutine.
+KeyFilter n/a n/a $f009 Input driver keypress filter.
+LdApplic $c21d $c21d $038d Load GEOS application.
+LdDeskAcc $c217 $c217 $035d Load GEOS desk accessory.
+LdFile $c211 $c211 $0312 Load GEOS data file.
+LoadAuxSet n/a n/a $ff77 Use aux-memory character set.
+LoadCharSet $c1cc $c1cc $fe8a Use main-memory character set.
+MainLoop $c1c3 $c1c3 $fe00 GEOS MainLoop processing.
+MakeSubDir n/a n/a $0387 Create ProDOS subdirectory.
+MouseOff $c18d $c18d $fe96 Disable mouse pointer and GEOS mouse tracking.
+MouseUp $c18a $c18a $fe99 Enable mouse pointer and GEOS mouse tracking.
+MoveAuxData n/a n/a $ff6b Apple aux-memory memory move routine.
+MoveBData n/a $c2e3 n/a C128 backram memory move routine.
+MoveData $c17c $c17e $fef6 Memory move routine.
+NewBitClip n/a n/a $ff95 Bit-boundary BitmapClip.
+NewBitOtherClip n/a n/a $ff0e Bit-boundary BitOtherClip.
+NewBitUp n/a n/a $ff1d Bit-boundary BitmapUp.
+NewDisk $c1e1 $c1e1 n/a Tell CBM disk turbo software that a new disk is in drive.
+NextRecord $c27a $c27a $0336 Make next VLIR the current record.
+NormalizeX n/a $c2e0 n/a Normalize C128 X-coordinates for 40/80 modes.
+NxtBlkAlloc $c24d $c24d $0354 Version of BlkAlloc that starts at a specific block.
+OpenCard n/a n/a $6703 Open I/O card for access.
+OpenDisk $c2a1 $c2a1 $0399 Open disk in current drive.
+OpenRecordFile $c274 $c274 $033f Open VLIR file on current disk.
+OutputByte n/a n/a $6706 Write byte to I/O card.
+Panic $c2c2 $c2c2 $fef3 System-error dialog box.
+PointRecord $c280 $c280 $0342 Make specific VLIR record the current record.
+PosSprite $c1cf $c1cf $fea5 Position sprite.
+PreviousRecord $c27d $c27d $0345 Make previous VLIR record the current record.
+PrintASCII $790f $790f $600c Send ASCII data to printer.
+PrintBuffer $7906 $7906 $6009 Send graphics data to printer.
+PromptOff $c29e $c29e $fe7e Turn off text prompt.
+PromptOn $c29b $c29b $fe7b Turn on text prompt.
+PurgeTurbo $c235 $c235 n/a Remove CBM disk turbo software from drive.
+PutBlock $c1e7 $c1e7 $0303 Write single disk block from memory.
+PutChar $c145 $c145 $fe81 Display a single character to screen.
+PutDecimal $c184 $c184 $fe6f Format and display an unsigned double-precison number.
+PutDirHead $c24a $c24a $037b Write directory header to disk.
+PutScreenLine n/a n/a $ff65 Copy buffer data to Apple screen memory.
+PutString $c148 $c148 $fe69 Print string of characters to screen.
+PutVBM n/a n/a $0321 Flush VBM cache; write currently cached block to disk.
+ReadBackLine n/a n/a $ff74 Get data from background screen in linear bitmap format.
+ReadBlock $c21a $c21a n/a CBM get disk block primitive.
+ReadByte $c2b6 $c2b6 $ff41 Read disk file a byte at a time.
+ReadClock n/a n/a $0800 Update GEOS time/date variables from clock hardware.
+ReadFile $c1ff $c1ff $0315 Read chained list of blocks into memory.
+ReadLink $904b $904b n/a Read CBM track/sector link.
+ReadRecord $c28c $c28c $0348 Read current VLIR record into memory.
+ReadScanLine n/a n/a $ff98 Get data from foreground screen in linear bitmap format.
+RecoverAllMenus $c157 $c157 $fe1e Recover all menus from background buffer.
+RecoverFG n/a n/a $03ae Restores foreground screen from data created with SaveFG.
+RecoverLine $c11e $c11e $fe30 Recover horizontal screen line from background buffer.
+RecoverMenu $c154 $c154 $fe1b Recover single menu from background buffer.
+RecoverRectangle $c12d $c12d $fe48 Recover rectangular screen area from background buffer.
+RecoverSysRam n/a n/a $ff53 Restore system after dialog box or desk accessory.
+Rectangle $c124 $c124 $fe39 Draw a filled rectangle.
+ReDoMenu $c193 $c193 $fe12 Reactivate menus at the current level.
+RenameFile $c259 $c259 $0393 Rename GEOS disk file.
+ReOpenDisk n/a n/a $03a2 Reopen disk to previous directory.
+ResetAlarm n/a n/a $080c Disable clock driver alarm.
+ResetHandle $c003 $c003 n/a Internal bootstrap entry point.
+RestartProcess $c106 $c106 $feb1 Unblock, unfreeze, and restart process.
+RestoreFontData n/a n/a $ff38 Restore font variables from saveFontTab.
+RstrAppl $c23e $c23e $0360 Leave desk accessory and return to calling application.
+RstrFrmDialog $c2bf $c2bf $ff1a Exit dialog box.
+SaveFG n/a n/a $03ab Save foreground screen data for RestoreFG.
+SaveFile $c1ed $c1ed $0318 Save/create a GEOS file.
+SaveFontData n/a n/a $ff35 Copy font variables to saveFontTab.
+SetAlarm n/a n/a $0809 Set clock driver alarm.
+SetDevice $c2b0 $c2b0 n/a Establish communication with a new serial device.
+SetGDirEntry $c1f0 $c1f0 $037b Create and save a new GEOS directory entry.
+SetGEOSDisk $c1ea $c1ea n/a Convert normal CBM disk into GEOS format disk.
+SetLdVars n/a n/a $ff47 Set internal Ld variables from GEOS pseudoregisters.
+SetMode n/a n/a $6015 Set print mode.
+SetMouse n/a $fe89 n/a Reset input device scanning circutry.
+SetMsePic n/a $c2da $ff2f Set and preshift new soft-sprite mouse picture.
+SetNewMode n/a $c2dd n/a Change GEOS 128 graphics mode (40/80 switch).
+SetNextFree $c292 $c292 $032d Search for nearby free disk block and allocate it.
+SetNLQ $7915 $7915 n/a Begin near-letter quality printing.
+SetPattern $c139 $c139 $fe36 Set current fill pattern.
+SetTimeDate n/a n/a $0806 Set clock driver time and date.
+SetUserPattern n/a n/a $ff80 Define new GEOS pattern image.
+Sleep $c199 $c199 $fec0 Put current subroutine to sleep for a specified time.
+SlowMouse $fe83 $fe83 $f003 Reset mouse velocity variables.
+SmallPutChar $c202 $c202 $fe90 Fast character print routine.
+SoftSprHandler n/a n/a $ff2c Apple soft-sprite drawing routine.
+SortAlpha n/a n/a $03a5 Insertion sort.
+StartAppl $c22f $c22f $fe06 Warmstart GEOS and start application in memory.
+StartASCII $7912 $7912 $6006 Begin ASCII mode printing.
+StartMouseMode $c14e $c14e $fe93 Start monitoring input device.
+StartPrint $7903 $7903 $6003 Begin graphics mode printing.
+StashRAM $c2c8 $c2c8 n/a Transfer memory to CBM RAM-expansion unit.
+StatusCard n/a n/a $6712 Get current status of I/O card.
+StopPrint $7909 $7909 $600f End page of printer output.
+SwapBData n/a $c2e6 n/a C128 memory swap between front/back ram.
+SwapMainAndAux n/a n/a $ff71 Apple memory swap between main and aux.
+SwapRAM $c2ce $c2ce n/a CBM RAM-expansion unit memory swap.
+TempHideMouse n/a $c2d7 $ff29 Hide soft-sprites before direct screen access.
+TestPoint $c13f $c13f $fe24 Test status of single screen point (on or off?).
+ToBasic $c241 $c241 n/a Call Commodore BASIC.
+UnblockProcess $c10f $c10f $feb7 Unblock a blocked process, allowing it to run again.
+UnfreezeProcess $c115 $c115 $febd Unpause a frozen process timer.
+UpdateMouse $fe86 $fe86 $f006 Update mouse variables from input device.
+UpdateParent n/a n/a $03b7 Update parent directory to reflect any changes.
+UpdateRecordFile $c295 $c295 $034b Update currently open VLIR file without closing it.
+UpDirectory n/a n/a $038a Close current directory and move up one level.
+UseSystemFont $c14b $c14b $fe8d Use default system font (BSW 9).
+VerifyBData n/a $c2e9 n/a C128 backram verify.
+VerifyRAM $c2d1 $c2d1 n/a CBM RAM-expansion unit verify.
+VerticalLine $c121 $c121 $fe2a Draw a patterned vertical line.
+VerWriteBlock $c223 $c223 n/a CBM disk block verify primitive.
+WarmStart n/a n/a $ff4d Bring GEOS to a warmstart state.
+WriteBlock $c220 $c220 n/a CBM write disk block primitive.
+WriteFile $c1f9 $c1f9 $031b Write chained list of blocks to disk.
+WriteRecord $c28f $c28f $034e Write current VLIR record to disk.
--
2.39.5