From G.H. Wells:

geoBASIC bugs and workarounds:

1)  The most important bug concerns the use of the UPDATE command.
    NEVER USE IT!  If you ever UPDATE a geoBASIC program, it gets
    corrupted in such a way that later on, the end of your program
    will disappear.  "The Smee" has discovered that RUNning a program
    should be done.  His advice is to always RUN a program before
    QUITing or CLOSEing and never use UPDATE.

2)  The BITMAP command does not work after a disk command but
    you can overcome this problem by re-opening your geoBASIC program
    before using BITMAP.  The following geoBASIC sample illustrates how:

    10 CREATE "junk"
    20 SYSINFO 14, name$
    30 OPEN name$
    40 BITMAP "pic",10,10

    Assuming that "pic" is a disk-loadable bitmap, take out lines 20
    and 30 to see the problem.

3)  Don't close and re-open a VLIR file you are working on.  This
    problem was just recently discovered and a fix had not been found.
    It may be similar to the BITMAP problem.

4)  GeoBASIC is incompatible with some auto-exec files such as Blackout
    which will make the screen go black in edit mode whenever you move
    the mouse.  This can be fixed, however, by removing Blackout from
    memory before running geoBASIC.  Email bo@prismnet.com for a
    program called "AntiBLACKOUT" to accomplish this purpose.

5)  If you are running geoBASIC on the 40 column screen of GEOS 128,
    do not have any desk accessories on your disk when you make your
    program into an application or when you are running it after making
    it an application.  Desk accessories work fine under GEOS 64 but they
    screw up the loading of stand-alone applications under GEOS 128.

6)  Always RUN your program just before you make it into an application.

7)  Never POKE or LOAD anything into the background screen memory.
    The only safe place to store machine code is in the foreground screen
    memory which extends from 40960 to 48959.  It is usually easy to design
    your screens with a little blank area in them in which you can set both
    colors to white so the machine code will not show up.  If you are not a
    machine code programmer then you will not have to worry about this.

8)  WRITE puts a CHR$(0) at the end of every item which it puts into a
    file, plus another CHR$(0) at the end of each record.  This listing
    shows how to "bury"  those zeroes in a geoWrite file, so that they
    won't interfere with the text.  They're made a part of four-character
    font, style "escape sequences'"  that say, "plain text."

    Note:  Line 60 "works around" a bug in the HEADER statement.
    And, line 70 adds a field which isn't even touched by HEADER!
    Those lines show you where to go when you want to customize
    CREATE/SAVE's fileHeader.

    10 rem subject:  hiding write's chr$(0)
    20 rem this shows how to bury write's chr$(0) terminator in
       an escape sequence
    30 rem demo code makes a geowrite 1.1 file.
    40 z$=chr$(0):nc$=chr$(23)+chr$(9):ns$=nc$+z$:rem sets plain bsw9 font
    50 rl$=chr$(223)+chr$(1):rl$=z$+z$+rl$+rl$+rl$+rl$+rl$+rl$+rl$+rl$+rl$+ns$
    60 header 7, "Write Image v1.1",1: poke 28452,49:poke 28453,46:poke28454,49
    70 for p = 1 to 9:poke 28478+p, asc(mid$("geoWrite ",p)): next
    80 create "list":  for p = 0 to 125: append p: next
    90 for p=0 to 2: ptrec p: restore: write rl$
    100 for w = 1 to 16: read d$: write " " +d$+ns$," "+d$+ns$: next: write nc$: next
    110 write "": ptrec 0: close
    120 data "name-1", "name-2", "name-3", "name-4", "name-5", "name-6", "name-7"
    130 data "name-8", "name-9", "name-10", "name-11", "name-12", "name-13", "name-14"
    140 data "name-15", "name-16"

    It's important that there aren't any typographical errors in your
    program file!  Be sure to correct the two string literal constants
    (in lines 60 & 70)! They must be in lower case, with only certain
    letters in capitals.

9)  DELETE _may_ cause the same effects as UPDATE does.  Do not use DELETE
    from Direct mode unless you need to delete a lot of multiple lines.
    To delete a line it is best to type the line number the line is on
    and hit return.

10) When using the FONT command, you may have noticed that by Typing in
    FONT "BSW",9 doesn't automatically select the BSW font which is resident.
    This is not only annoying but wastes time.  Use CALL 49483 which will
    call up the BSW resident font instantly.

11) When you call up a DBSTRN dialog box, and it has TEXT which you have
    programmed into it, you may have noticed that the Text prints in bold.
    To Defeat that, type in as follows:
    DBSTRN CHR$(27)+"Enter Input",IN$

12) If you have used the variable functions within DIALOG (using the Editor
    to design the DB) You should have noticed that the last character gets
    chopped off into limbo.  To avoid this create a permanent variable such
    as SP$=" ".  There should be a space between the quotes.  When
    creating your dialog box, and you want the variable, such as B$ to
    print out in the dialog box, enter it as follows:  B$+SP$  The space
    that gets to go to limbo now is SP$.