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