Here are bugs and misprints from the geoBASIC manual:

Page 13) The sample application has been corrupted by the UPDATE command
     (strike the last sentence on page 13) and you cannot edit it
     although you can RUN and LIST it.

Page 17) Don't ever UPDATE.  Always RUN a program (even if it doesn't work)
     before QUITing or CLOSEing.

Page 18, 3 lines from the top) Change F7 to F5

Page 19, RESIZE) The heap is how much memory is left over for variables
    after the size is set for the code of your program.  If you get an
    "out of memory" error, resize the code to 2 or 3.  You will have to do 
    this every time you load your program to edit and run it but
    don't worry, if you forget, you'll just get the "out of memory"
    error to remind you.  GeoBASIC only allows up to 7k for variables,
    so you have to be very frugal.  There is an advantage to resizing
    the code to the largest possible value just before you finally make
    your program into a stand-alone application since it will run much
    faster on a real disk (as opposed to a RAM disk or shadowed disk).

Page 21, three lines from bottom)  The most negative integer value allowed
     is -32767 which is really a bug because it makes the double-byte 
     logic functions almost useless.

Page 23, end of last full paragraph)  Don't leave the trailing quotes off of
     string constants, even if it sometimes works.

Page 26, four lines up from bottom)  Integer arrays take four (not two) bytes
     per element although only two are used.  (This is no doubt a bug
     although it causes no more problem than just wasting precious
     variable memory space.)

Page 29, near top)  NOT 0 evaluates to -1 (instead of +1) and NOT 1 evaluates
     to -2 (instead of 0).  The logic functions work on all 16 bits
     individually unless an input or intermediate value is -32768.
     You can get -32768 as a result (NOT 32768 correctly returns -32768)
     and it should be legal to PRINT NOT NOT A for any value for which
     you can PRINT NOT A but it won't work for A=32768.  This means you
     must be very careful when testing programs where you really do want
     to do logic functions on all 16 bits.  Either break you values into
     two 8-bit values or guarantee that the 16th bit can never be set all
     by itself.

Page 32, last sentence)  Pay special attention to the statement that geoBASIC
     is the opposite of CBM BASIC when comparing strings.  In your mind, 
     always interchange "<" and ">" when used with strings or you will
     waste a lot of time debugging any program that uses them.  (At least
     this "bug" was documented).

Page 39 and 104, APPEND)  In the example of APPEND 2, the pointer will be at
     the new record which is 3.  (The old 3 and above have all been moved
     up one.)  The admission of a bug that prevents APPENDing to record 126
     is in error.  GEOS VLIR files can have only 127 records which are 
     admitted to, it isn't a bug at all but a documentation error?
     Actually, this "bug" is mentioned many times in the manual but I'll
     just mention it just once here.)

Page 41, CALL)  You can also PEEK the returned values of the A,X,Y, and
     status registers at locations 650 through 653 respectively.
     Unfortunately you cannot directly CALL any GEOS routines that
     pass parameters in the zero-page pseudo registers.

Page 42, list of CHR$)  CHR$(26) turns on outline printing and CHR$(27) turns
     off all effects.

Page 48, DELETE)  This command can also be used inside the editor to delete
     program lines following the same syntax as for LIST on page 66.
     Typing DELETE all by itself erases your entire program.

Page 53, FIND)  I don't think this editor command is documented anywhere in
     the manual but it is extremely useful.  It searches for every
     occurrence of a text string in your program or just within a range
     of lines.  I especially like it to detect re-used variable names by
     having it find the first three characters of a new variable name.
     If it finds another variable starting with the same three
     characters, then I need a different name.  The syntax is
     FIND "string",10,20 where the start and stop line numbers are optional.

Page 66, bottom)  Hitting the F5 key toggles the listing, don't hold it down.

Page 70, MOUSE) This command requires two more parameters and has the same 
     syntax as PROMPT on page 81.  Both commands do not take effect
     until the mainloop is entered.

Page 76, PATTERN)  The patterns are the same as those displayed in geoPaint.
     To erase an area use 0.  For a solid fill use 1.

Page 77, POINT)  This command can turn off as well as turn on individual
     screen pixels as determined by the previous setting of SETCOL.
     Use 0 to turn pixels off and 1 to turn them on.

Page 82, PRSCREEN)  If the expression is 1, the screen is printed double
     size, not rotated.  Use MAINLOOP instead of RETURN when done with 
     this command.

Page 87, RND)  This function is hardly random, use with caution.  Try this
     simple program which should place dots randomly on the screen:

     10 CLS
     20 SETCOL 1
     30 POINT RND(319), RND(199)
     40 GOTO 30

Page 88 & 89, SETCOL)  Add a 4th use for the POINT command as described
     earlier.

Page 90, last paragraph)  The first expression for voice must evaluate
     from 1 to 3 (not 0 to 3).  For the second and third expressions,
     interchange the words "high" and "low".

Page 95, near bottom)  Parameter #13 determines how the geoBASIC program
     was "RUN" or called.  If it was double-clicked on as a stand-alone
     application, the value is 0.  If it was double-clicked on prior
     to being converted to an application, the value is 1.  If geoBASIC
     itself was run and then the program was selected from the dialog
     box, the value is 2.

Page 96, TAB)  The expression must be between 0 and 319.  There is a tab
     at every pixel location, not every 40.

Page 97, TESTPT)  Change to CHKPT.