Categorical Listing
          --------------------------------------------------------------------------
          Math routines
          -------------
          DNegate             $C172     Negate a 16 bit integer                1-001
          Ddiv                $C169     Unsigned 16 bit division               1-002
          DMult               $C166     Unsigned 16 bit by 16 bit multiply     1-003
          BMult               $C163     Unsigned 16 bit by 8 bit multiply      1-004
          BBMult              $C160     Unsigned 8 bit by 8 bit multiply       1-005
          DSdiv               $C16C     Signed 16 bit division                 1-006
          Dabs                $C16F     16 bit absolute value                  1-007
          Ddec                $C175     Decrement a 16 bit integer             1-008
          DShiftLeft          $C15D     Multiple 16 bit arithmetic shift
                                             left                              1-009
          DShiftRight         $C262     Multiple 16 bit logical shift right    1-010
          CRC                 $C20E     Compute the checksum of a memory
                                             region                            1-011


          Memory manipulation
          -------------------
          InitRam             $C181     Multiple memory location
                                             initialization                    1-101
          MoveData            $C17E     Intelligent memory block move          1-102
          i_MoveData          $C1B7     Intelligent memory block move with
                                             inline data                       1-103
          FillRam             $C17B     Memory block fill                      1-104
          i_FillRam           $C1B4     Memory block fill with inline data     1-105
          ClearRam            $C178     Fill a memory region with zeroes       1-106
          CmpString           $C26B     String compare                         1-107
          CopyString          $C265     String copy                            1-108
          CmpFString          $C26E     Memory block comparison                1-109
          CopyFString         $C268     Memory block move                      1-110


          Text and fonts
          --------------
          PutChar             $C145     Display a character                    1-201
          SmallPutChar        $C202     Draw a character on the screen         1-202
          PutDecimal          $C184     Display a 16 bit integer               1-203
          PutString           $C148     Display a text string                  1-204
          i_PutString         $C1AE     Display a text string with inline
                                             data                              1-205
          GetNextChar         $C2A7     Read a character from the keyboard     1-206
          GetString           $C1BA     Read a line of text from the user      1-207
          InitTextPrompt      $C1C0     Create the text cursor sprite          1-208
          PromptOn            $C29B     Turn on the text cursor                1-209
          PromptOff           $C29E     Turn off the text cursor               1-210
          UseSystemFont       $C14B     Select the BSW font                    1-211
          LoadCharSet         $C1CC     Make a memory resident font the
                                             current font                      1-212
          GetRealSize         $C1B1     Get a character's stats                1-213
          GetCharWidth        $C1C9     Get a character's width                1-214


          Low level disk routines
          --------------------------
          SetDevice           $C2B0     Select a drive                         1-301
          ChangeDiskDevice    $C2BC     Change disk drive device number        1-302
          OpenDisk            $C2A1     Open a disk                            1-303
          NewDisk             $C1E1     Initialize a drive                     1-304
          EnterTurbo          $C214     Setup a drive with turbodos            1-305
          ExitTurbo           $C232     Stop turbodos in a drive               1-306
          PurgeTurbo          $C235     Stop and remove turbodos in a drive    1-307
          GetDirHead          $C247     Read track 18 sector 0                 1-308
          PutDirHead          $C24A     Write to track 18 sector 0             1-309
          GetBlock            $C1E4     Read a sector                          1-310
          PutBlock            $C1E7     Write a sector                         1-311
          ReadBlock           $C21A     Read a sector with drive preset        1-312
          WriteBlock          $C220     Write a sector with drive preset       1-313
          VerWriteBlock       $C223     Verify before writing sector           1-314
          GetPtrCurDkNm       $C298     Compute address of disk's name         1-315
          FindBAMBit          $C2AD     Check if a disk sector is in use       1-316
          SetNextFree         $C292     Find and allocate a disk block         1-317
          BlkAlloc            $C1FC     Allocate sectors for a file            1-318
          NxtBlkAlloc         $C24D     Allocate sectors for a file            1-319
          SetGEOSDisk         $C1EA     Convert a disk to GEOS format          1-320
          ChkDkGEOS           $C1DE     Check if a disk is GEOS format         1-321
          CalcBlksFree        $C1DB     Compute number of free blocks on
                                             disk                              1-322
          FreeBlock           $C2B9     Free a BAM bit in memory               1-323


          High level disk routines
          ------------------------
          FindFTypes          $C23B     Create a table of file names           1-401
          FindFile            $C20B     Lookup a file in the directory         1-402
          SaveFile            $C1ED     Save memory to a file                  1-403
          WriteFile           $C1F9     Save memory to preallocated sectors    1-404
          RenameFile          $C259     Rename a file                          1-405
          DeleteFile          $C238     Delete a file                          1-406
          FastDelFile         $C244     Delete a temporary file                1-407
          FreeFile            $C226     Free a file's sectors                  1-408
          RstrAppl            $C23E     Load the SWAPFILE                      1-409
          GetFile             $C208     Load a file, given a file name         1-410
          LdFile              $C211     Load a file, given a directory entry   1-411
          LdApplic            $C21D     Load and run a file, given a
                                             directory entry                   1-412
          LdDeskAcc           $C217     Load a file with memory swapping       1-413
          ReadByte            $C2B6     Get a byte from a file                 1-414
          ReadFile            $C1FF     Load a chain into memory, given the
                                             initial track and sector          1-415
          GetFreeDirBlk       $C1F6     Find a hole in the directory           1-416
          SetGDirEntry        $C1F0     Create a directory entry on disk       1-417
          BldGDirEntry        $C1F3     Create a directory entry in memory     1-418
          GetFHdrInfo         $C229     Get a file's load address              1-419
          FollowChain         $C205     Create a list of sectors used by a
                                             file                              1-420


          VLIR support routines
          ---------------------
          OpenRecordFile      $C274     Open a VLIR file                       1-501
          PointRecord         $C280     Goto a specific VLIR chain             1-502
          PreviousRecord      $C27D     Move to previous VLIR chain            1-503
          NextRecord          $C27A     Move to next VLIR chain                1-504
          InsertRecord        $C286     Insert a VLIR chain                    1-505
          AppendRecord        $C289     Add a VLIR chain                       1-506
          DeleteRecord        $C283     Remove a VLIR chain                    1-507
          ReadRecord          $C28C     Load a VLIR chain                      1-508
          WriteRecord         $C28F     Save memory to a VLIR chain            1-509
          UpdateRecordFile    $C295     Update a VLIR file                     1-510
          CloseRecordFile     $C277     Close a VLIR file                      1-511


          Graphics
          --------
          GraphicsString      $C136     Process a graphic command table        1-601
          i_GraphicsString    $C1A8     Process a graphic command table with
                                             inline data                       1-602
          SetPattern          $C139     Select a fill pattern                  1-603
          FrameRectangle      $C127     Draw an outline in a pattern           1-604
          i_FrameRectangle    $C1A2     Draw a solid outline with inline
                                             data                              1-605
          Rectangle           $C124     Fill a box with a pattern              1-606
          i_Rectangle         $C19F     Fill a box with a pattern with
                                             inline data                       1-607
          RecoverRectangle    $C12D     Copy a box from screen 1 to screen 2   1-608
          i_RecoverRectangle  $C1A5     Copy a box from screen 1 to screen 2
                                             with inline data                  1-609
          ImprintRectangle    $C250     Copy a box from screen 2 to screen 1   1-610
          i_ImprintRectangle  $C253     Copy a box from screen 2 to screen 1
                                             with inline data                  1-611
          InvertRectangle     $C12A     Reverse video a box                    1-612
          RecoverLine         $C11E     Copy a line from screen 2 to screen 1  1-613
          InvertLine          $C11B     Reverse video a horizontal line        1-614
          DrawLine            $C130     Draw/Erase/Copy an arbitrary line      1-615
          HorizontalLine      $C118     Draw a horizontal line in a pattern    1-616
          VerticalLine        $C121     Draw a vertical line in a pattern      1-617
          GetScanLine         $C13C     Compute memory address of a row on
                                             the screen                        1-618
          TestPoint           $C13F     Test the value of a pixel              1-619
          DrawPoint           $C133     Draw/Erase/Copy a point on the
                                             screen                            1-620
          BitmapUp            $C1AB     Draw a click box with inline data      1-621
          i_BitmapUp          $C1AB     Draw a click box with inline data      1-622
          BitmapClip          $C2AA     Draw a coded image                     1-623
          BitOtherClip        $C2C5     Draw a coded image with user patches   1-624
          DrawSprite          $C1C6     Copy a sprite data block               1-625
          PosSprite           $C1CF     Position a sprite                      1-626
          EnablSprite         $C1D2     Turn on a sprite                       1-627
          DisablSprite        $C1D5     Turn off a sprite                      1-628


          Controls
          --------
          DoMenu              $C151     Menu processor                         1-701
          DoPreviousMenu      $C190     Close current menu                     1-702
          GotoFirstMenu       $C1BD     Close all menu levels                  1-703
          ReDoMenu            $C193     Draw the current menu                  1-704
          RecoverMenu         $C154     Erase the current menu                 1-705
          RecoverAllMenus     $C157     Erase all menus                        1-706
          DoIcons             $C15A     Draw a table of click boxes            1-707
          DoDlgBox            $C256     Window processor                       1-708
          RstrFrmDialogue     $C2BF     Close a window                         1-709
          IsMseInRegion       $C2B3     Check if mouse is inside a window      1-710
          Panic               $C2C2     Report system error                    1-711


          Miscellaneous
          -------------
          InitForIO           $C25C     Open serial communication              1-801
          DoneWithIO          $C25F     Close serial communication             1-802
          FirstInit           $C271     Initialize GEOS variables              1-803
          MainLoop            $C1C3     GEOS's main loop                       1-804
          InterruptMain       $C100     IRQ routine                            1-805
          BootGEOS            $C000     Reboot GEOS                            1-806
          StartAppl           $C22F     Run a program that is in memory        1-807
          EnterDesktop        $C22C     Load and run DESKTOP                   1-808
          ToBasic             $C241     Restart BASIC                          1-809
          CallRoutine         $C1D8     Perform an indirect jump               1-810
          DoInlineReturn      $C2A4     Perform a jump through a table         1-811
          StartMouseMode      $C14E     Initialize the mouse                   1-812
          MouseUp             $C18A     Turn on the mouse                      1-813
          MouseOff            $C18D     Turn off the mouse                     1-814
          ClearMouseMode      $C19C     Reset the mouse                        1-815
          Sleep               $C199     Set up a time delay                    1-816
          GetRandom           $C187     Change the random number               1-817
          GetSerialNumber     $C196     Who knows what this routine does???    1-818


          Processes
          ---------
          InitProcesses       $C103     Initialize a table of recurring
                                             timed events                      1-901
          EnableProcess       $C109     Force a recurring timed event to run   1-902
          RestartProcess      $C106     Enable a recurring timed event         1-903
          FreezeProcess       $C112     Stop a recurring timed event's timer   1-904
          BlockProcess        $C10C     Prevent a recurring timed event from
                                             running                           1-905
          UnblockProcess      $C10F     Allow a recurring timed event to
                                             execute                           1-906
          UnfreezeProcess     $C115     Start a recurring timed event's
                                             timer                             1-907

          REU Access
          ----------
          StashRAM            $C2C8
          FetchRAM            $C2CB
          SwapRAM             $C2CE
          VerifyRAM           $C2D1
          DoRAMOp             $C2D4