NEW SOURCE FORMAT

The following changes have been made to allow for TI-89 and Fargo II support:
* To specify which calculator(s) a program is designed for, add xdef's to
  the program with the name _ti92, _ti92plus, or _ti89.  Compiling for TI-92
  will generate a Fargo II program (disabled in this release), while compiling
  for the TI-92+ or TI-89 will generate a PlusShell program.  Not including
  these xdefs will make the compiler default to TI-92+ support only.  For
  example, in a program designed to run on both the TI-92+ and the TI-89,
  you would add the following to the top of your source file:
        xdef _ti92plus
        xdef _ti89
* A variable named CALCULATOR will describe which calculator the program is
  currently running on.  It can have the value CALC_TI92, CALC_TI92PLUS, or
  CALC_TI89.  Using this value it is possible to enable/disable certain
  features on some calculators and to help cope with the screen size
  differences between the 92 and 89.  The following code would jump to a
  label named do89stuff if running on an 89:
        cmp.b #CALC_TI89,CALCULATOR
        beq do89stuff
* The values LCD_WIDTH and LCD_HEIGHT describe the width and height of the
  screen on the calculator the program is running on.  Use these values
  rather than constants if you wish for your program to run on the 89's
  smaller screen size.  The following code would draw a rectangle around
  the edge of the screen:
        move.w #LCD_HEIGHT-1,-(a7)
        move.w #LCD_WIDTH-1,-(a7)
        move.w #0,-(a7)
        move.w #0,-(a7)
        jsr util::frame_rect
        add.l #8,a7
* Use the FOLDER_LIST_HANDLE and SYM_ENTRY_LENGTH values instead of constants
  if you wish for your program to also work with Fargo II.  Also, use the
  SYM_ENTRY.name, SYM_ENTRY.flags, and SYM_ENTRY.hVal values instead of
  hardcoded offsets in a folder list entry.
* Do not use constants for memory addresses when reading the keyboard.  Use
  the Fargo names (tios::kb_globals+$1c and tios::kb_globals+$1e) or the
  PlusShell names (KEY_PRESSED_FLAG and GETKEY_CODE) instead.
* KEY_UP, KEY_DOWN, KEY_LEFT, and KEY_RIGHT should be used in place of
  constants if the program is to run on both the TI-89 and TI-92(+)


FARGO II CONVERSION

Converting most Fargo II programs to PlusShell is a very easy task.  The
following differences must be considered:

* The numbers of special handles have changed.  See the 92pinfo.htm in the
  docs directory.
* The format of the folder lists has changed.  Also see 92pinfo.htm.
* The binary format of an assembly program is different.  Code for finding
  the comment of a program, for example, would need to be changed.  The
  format of a PlusShell executable can be found in prgmfmt.htm within the
  docs directory.
* The return value of the exec function is not the same as in Fargo.
* Some ROM functions have not been found yet (tios::push_quantum, for example).
* On the TI-89, the lower and right parts of the screen will not be visible.

If you encounter another difference not listed here or have a question, feel
free to e-mail me at river@gte.net
