texas instrument - ti89 ti92 plus developer guide

1398
TI-89 / TI-92 Plus Developer Guide Beta Version .02

Upload: kyusang-park

Post on 03-Jan-2016

73 views

Category:

Documents


6 download

DESCRIPTION

Texas InstrumentTI-89 / TI-92 Plus Developer GuideBeta Version .02

TRANSCRIPT

  • Texas Instruments Holland B.V.Rutherfordweg 1023542 CG Utrecht-The Netherlands

    Texas Instruments U.S.A.7800 Banner Dr.Dallas TX. 75251

    www. t i . com/ca l c 1997 Texas Instruments

    TI-89 / TI-92 Plus Developer GuideBeta Version .02

    Back FrontSpine

    5.31

    8.07Variable

    spine

  • 2000, 2001 Texas Instruments Incorporated

    , TI-GRAPH LINK, and TI FLASH Studio are trademarks of Texas Instruments Incorporated.

    Sierra C is a trademark of Sierra Systems.

    Important informationTexas Instruments makes no warranty, either expressed or implied, including but notlimited to any implied warranties of merchantability and fitness for a particular purpose,regarding any programs or book materials and makes such materials available solely onan as-is basis.

    In no event shall Texas Instruments be liable to anyone for special, collateral, incidental,or consequential damages in connection with or arising out of the purchase or use ofthese materials, and the sole and exclusive liability of Texas Instruments, regardless ofthe form of action, shall not exceed the purchase price of this product. Moreover, TexasInstruments shall not be liable for any claim of any kind whatsoever against the use ofthese materials by any other party.

    The latest version of this Guide, along with all other up-to-date information fordevelopers, is available at www.ti.com/calc/developers/.

  • iTI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001

    Table of Contents

    1. Introduction ..............................................................................................11.1. Purpose of this Guide...........................................................................................11.2. Chapter Layout.....................................................................................................11.3. Conventions Used in this Guide...........................................................................3

    2. The 68000 TI AMS Operating System Overview......................................5

    3. The TI-89 / TI-92 Plus Hardware Overview..............................................73.1. Overview ..............................................................................................................73.2. Memory Map ........................................................................................................8

    3.2.1. Vector Table ...........................................................................................................93.3. ASIC registers ....................................................................................................11

    4. User Interface Overview.........................................................................154.1. Windows.............................................................................................................154.2. Menus ................................................................................................................16

    4.2.1. Toolbars................................................................................................................174.2.2. Pop-ups ................................................................................................................17

    4.2.2.1. Static Pop-ups .........................................................................................174.2.2.2. Dynamic Pop-ups ....................................................................................184.2.2.3. Dynamic Pop-ups with Menu Features....................................................18

    4.3. Dialog Boxes ......................................................................................................184.4. Fonts ..................................................................................................................194.5. The Status Line ..................................................................................................22

    5. Flash Applications vs. ASM Programs ...................................................23

    6. Assembly Language Programming Overview ........................................256.1. What are ASM Programs? .................................................................................256.2. Hardware Stack..................................................................................................256.3. Register Usage ..................................................................................................256.4. Calling Flash-ROM-Resident Routines ..............................................................26

  • ii Table of Contents

    TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001

    6.5. Subroutine Linkage ............................................................................................276.6. Sample ASM Program .......................................................................................29

    7. Flash Application Layout ........................................................................317.1. File Format .........................................................................................................31

    7.1.1. Flash Header ........................................................................................................317.1.2. Certificate Header.................................................................................................327.1.3. Application Header ...............................................................................................33

    7.1.3.1. Magic Number .........................................................................................337.1.3.2. Internal Application Name .......................................................................337.1.3.3. Flags........................................................................................................347.1.3.4. Length of Data Segment..........................................................................347.1.3.5. Byte Offset to Code Segment..................................................................347.1.3.6. Byte Offset to Initial Data Table...............................................................347.1.3.7. Length of Initial Data Table......................................................................357.1.3.8. Optional Header ......................................................................................35

    7.1.4. Relocation Map.....................................................................................................357.1.5. Application Code ..................................................................................................357.1.6. Initial Data Table...................................................................................................357.1.7. Signature ..............................................................................................................36

    7.2. Layout in Memory...............................................................................................367.3. Source Layout ....................................................................................................38

    7.3.1. Interactive Applications.........................................................................................387.3.1.1. FRAME ....................................................................................................397.3.1.2. Pointer to FRAME....................................................................................407.3.1.3. Object Frame Attributes...........................................................................40

    7.3.1.3.1. Attribute OO_APP_FLAGS (0x1).........................................................407.3.1.3.2. Attribute OO_APP_NAME (0x2) ..........................................................417.3.1.3.3. Attribute OO_APP_TOK_NAME (0x3).................................................417.3.1.3.4. Method OO_APP_PROCESS_EVENT (0x4) ......................................417.3.1.3.5. Attribute OO_APP_DEFAULT_MENU (0x5) .......................................427.3.1.3.6. Attribute OO_APP_DEFAULT_MENU_HANDLE (0x6).......................427.3.1.3.7. Attribute OO_APP_EXT_COUNT (0x7)...............................................427.3.1.3.8. Attribute OO_APP_EXTENSIONS (0x8) .............................................42

  • Table of Contents iii

    TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001

    7.3.1.3.9. Attribute OO_APP_EXT_ENTRIES (0x9)............................................427.3.1.3.10. Method OO_APP_LOCALIZE (0xA) ..................................................437.3.1.3.11. Method OO_APP_UNLOCALIZE (0xB).............................................437.3.1.3.12. Method OO_APP_CAN_DELETE (0xC)............................................437.3.1.3.13. Method OO_APP_CAN_MOVE (0xD) ...............................................437.3.1.3.14. Method OO_APP_VIEWER (0xE) .....................................................447.3.1.3.15. Attribute OO_APP_ICON (0xF) .........................................................447.3.1.3.16. Method OO_APP_EXT_HELP (0x10) ...............................................447.3.1.3.17. Method OO_APP_NOTICE_INSTALL (0x11)....................................447.3.1.3.18. Method OO_APP_ABOUT (0x12) .....................................................447.3.1.3.19. Attribute OO_APPSTRING (0x1000 and up).....................................45

    7.3.1.4. Example...................................................................................................457.3.2. TI-BASIC Extensions............................................................................................487.3.3. Shared-Code Library ............................................................................................51

    7.3.3.1. Creating the Library Interface ..................................................................517.3.3.2. Accessing a Library .................................................................................537.3.3.3. Frame Description Language ..................................................................53

    7.3.4. Language Localization..........................................................................................567.3.4.1. Localizer Template ..................................................................................567.3.4.2. How Localization Works ..........................................................................60

    8. Integrating a Flash Application ...............................................................638.1. Mode Settings ....................................................................................................63

    8.1.1. Mode Notification Flags ........................................................................................638.1.1.1. Modifying Mode Settings Within an App..................................................648.1.1.2. MO_option Array and Settings ................................................................64

    8.2. Switching to the Home Screen...........................................................................668.3. Catalog...............................................................................................................67

    8.3.1. Built-in Functions and Commands........................................................................678.3.2. User-Defined Functions and Programs ................................................................678.3.3. Flash App Extensions...........................................................................................69

    8.4. Interfacing with TI-BASIC...................................................................................708.5. Verifying the OS Version....................................................................................748.6. Optimizing Code Space .....................................................................................75

  • iv Table of Contents

    TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001

    8.7. VAR-LINK...........................................................................................................76

    9. Application Control Flow.........................................................................779.1. Event-Driven Architecture ..................................................................................779.2. Event Structure Layout.......................................................................................789.3. Commands.........................................................................................................799.4. Starting and Stopping an Application .................................................................849.5. Keyboard Events................................................................................................859.6. Menu Processing ...............................................................................................85

    9.6.1. Static Menus.........................................................................................................869.6.2. Dynamic Menus....................................................................................................87

    9.7. Paint Events .......................................................................................................889.8. Background Events ............................................................................................889.9. Default Event Handler ........................................................................................88

    9.9.1. CM_KEY_PRESS.................................................................................................889.9.2. CM_PASTE_STRING...........................................................................................919.9.3. CM_PASTE_HANDLE..........................................................................................929.9.4. CM_STO...............................................................................................................929.9.5. CM_RCL...............................................................................................................929.9.6. CM_DEACTIVATE ...............................................................................................929.9.7. CM_ACTIVATE ....................................................................................................92

    9.10. Installing, Moving, and Deleting an Application................................................92

    10. Error Handling ......................................................................................9510.1. Throwing an Error ..........................................................................................9510.2. Delayed Error Messages ...............................................................................9510.3. Throwing Your Own Errors ............................................................................9610.4. Catching Errors ..............................................................................................9710.5. Cleaning Up ...................................................................................................9710.6. Caveats..........................................................................................................98

    10.6.1. Jumping Out of TRY Blocks ..........................................................................9810.6.2. Referencing Auto Variables in ONERR/FINALLY Blocks..............................9910.6.3. Where Not to Throw Errors ...........................................................................99

  • Table of Contents v

    TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001

    11. Creating the User Interface ................................................................10111.1. Common Screen Components.....................................................................101

    11.1.1. Screen/Window Regions and Coordinates..................................................10111.1.2. BITMAP.......................................................................................................10211.1.3. ICON ...........................................................................................................102

    11.2. Windows ......................................................................................................10211.2.1. Window Regions and Coordinates ..............................................................10311.2.2. Window Routines ........................................................................................104

    11.3. Menus ..........................................................................................................10511.3.1. Menu-Draw Structure ..................................................................................10611.3.2. Menu IDs .....................................................................................................10611.3.3. Menu Routines ............................................................................................106

    11.4. Dialog Boxes................................................................................................10811.4.1. Dialog Routines ...........................................................................................10811.4.2. Dialog Fields................................................................................................109

    11.4.2.1. Field Index ...............................................................................................10911.4.2.2. DYNPOPUP.............................................................................................10911.4.2.3. EDIT_FIELD.............................................................................................109

    11.4.2.4. HEADER..................................................................................................110

    11.4.2.5. HEDIT ......................................................................................................110

    11.4.2.6. HPOPUP..................................................................................................11011.4.2.7. MENU ......................................................................................................11011.4.2.8. POPUP ....................................................................................................11111.4.2.9. SCROLL_REGION ..................................................................................11111.4.2.10. TEXT......................................................................................................112

    11.4.2.11. XFLAGS.................................................................................................11211.4.3. Dialog Flags ................................................................................................11311.4.4. Dialog Call-Backs ........................................................................................114

    11.5. Resource Compiler ......................................................................................11511.5.1. DIALOG Boxes............................................................................................11711.5.2. MENUs........................................................................................................11811.5.3. POPUPs ......................................................................................................119

    11.6. Example.......................................................................................................120

  • vi Table of Contents

    TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001

    11.6.1. Files in Example and Explanation of Details ...............................................123

    12. Basic Text Editing Facility ..................................................................12712.1. How to Edit Text...........................................................................................12712.2. Simple Text Edit Example............................................................................12812.3. Clipboard .....................................................................................................129

    13. Memory Management ........................................................................13113.1. The Heap (Dynamic RAM Storage) .............................................................13113.2. File System ..................................................................................................132

    13.2.1. Opening Multiple Files for WRITE Mode .....................................................13313.3. Managing Variables .....................................................................................134

    13.3.1. Normal Symbol Routines.............................................................................13613.3.2. Storing and Retrieving Variable Data ..........................................................137

    13.3.2.1. Store and Recall Look-up Paths ..............................................................13813.3.2.2. Recall Look-up Path.................................................................................13813.3.2.3. Store Look-up Path..................................................................................13913.3.2.4. HSYM VarRecall (BYTE *Var, RECALL_FLAGS Flags)..........................13913.3.2.5. HSYM VarStore (BYTE *DestVar, WORD Flags,

    WORD SourceSize [, parm1] [, parm2] [, parm3] . . . ) ..........................14113.3.2.6. General Data Storage..............................................................................14213.3.2.7. System Functions ....................................................................................143

    13.3.3. Low-Level Routines.....................................................................................14313.3.3.1. Utilities .....................................................................................................14413.3.3.2. Low-Level Folder Routines ......................................................................14413.3.3.3. Low-Level Symbol Routines ....................................................................144

    14. Data Types.........................................................................................14514.1. Expression ...................................................................................................147

    14.1.1. Non-Negative or Negative Integers .............................................................14714.1.2. Positive or Negative Fractions.....................................................................14714.1.3. Floating-Point Numbers...............................................................................14814.1.4. All Other Tags Not Listed Here ...................................................................148

    14.2. List ...............................................................................................................14814.3. Matrix ...........................................................................................................149

  • Table of Contents vii

    TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001

    14.4. Data Variable ...............................................................................................15014.5. Text Variable................................................................................................15114.6. String Variable .............................................................................................15114.7. Graph Database ..........................................................................................15214.8. Bitmap PIC Images......................................................................................15614.9. Tokenized Programs and Functions ............................................................15714.10. Programs and Functions in Text Format ...................................................15914.11. Third Party Data.........................................................................................16014.12. Assembly Program.....................................................................................160

    15. Expressions and the Expression Stack ..............................................16115.1. Overview......................................................................................................16115.2. Contiguous Tokenized Polish Representation .............................................161

    15.2.1. Tags ............................................................................................................16215.2.2. Numbers......................................................................................................16315.2.3. Variables, Units and Physical Constants.....................................................16515.2.4. Other Constants ..........................................................................................16615.2.5. One-argument Tags ....................................................................................16715.2.6. Two-argument Tags ....................................................................................16715.2.7. Tags That Take More Than Two or a Variable Number of Arguments ......16815.2.8. Lists and Matrices .......................................................................................16915.2.9. Primary, Secondary, and Command Tags ..................................................16915.2.10. User and Application Defined Functions and Programs............................170

    15.3. External Versus Internal Tokenized Polish ..................................................17015.4. Most Main Ordering and Internal Representations of

    Exponentiation, Multiplication, and Addition ................................................17215.5. The Expression Stack..................................................................................17415.6. An Example of Working on the EStack ........................................................175

    15.6.1. Estack Arguments and Results ...................................................................17615.6.2. Estack Calculations .....................................................................................177

    15.7. Working With Lists .......................................................................................178

    16. Working with Numbers .......................................................................18116.1. Overview......................................................................................................181

  • viii Table of Contents

    TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001

    16.2. Rational System vs. Float System ...............................................................18116.3. EXACT/APPROX/AUTO Modes ..................................................................18216.4. Floating Point Numbers ...............................................................................18316.5. Rational Numbers ........................................................................................18516.6. EStack Arithmetic.........................................................................................18516.7. Complex Numbers .......................................................................................186

    17. Graphing ............................................................................................18917.1. The Graph Screen .......................................................................................18917.2. Working with the Graph Application.............................................................19017.3. Two Graph Mode .........................................................................................19217.4. Graphing Functions .....................................................................................19317.5. Graph Application Memory Usage...............................................................19417.6. Available Graph System Routines and Global Variables.............................195

    18. TI FLASH Studio (IDE) Overview .......................................................19918.1. Introduction ..................................................................................................19918.2. Development System...................................................................................199

    18.2.1. Requirements ..............................................................................................19918.2.2. Installation ...................................................................................................20018.2.3. Compiler/Assembler/Linker .........................................................................20118.2.4. Simulator/Debugger ....................................................................................20118.2.5. IDE Overview ..............................................................................................20118.2.6. Uninstalling..................................................................................................20318.2.7. Support........................................................................................................20318.2.8. References ..................................................................................................203

    18.3. TI FLASH Studio Interface...........................................................................20418.3.1. File Menu.....................................................................................................20518.3.2. Edit Menu ....................................................................................................20618.3.3. View Menu...................................................................................................20718.3.4. Project Menu ...............................................................................................21118.3.5. Debug Menu................................................................................................21218.3.6. Simulator Menu ...........................................................................................21418.3.7. Link Menu....................................................................................................215

  • Table of Contents ix

    TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001

    18.3.8. Window Menu..............................................................................................21518.3.9. Help Menu...................................................................................................216

    18.4. Example.......................................................................................................21618.4.1. Creating a Flash Studio Project...................................................................21618.4.2. Building the Application ...............................................................................21718.4.3. Loading the Application into the Simulator ..................................................21718.4.4. Debugging the Application ..........................................................................21718.4.5. Terminating TI FLASH Studio .....................................................................21718.4.6. Preparing the Application for Site Testing ...................................................218

    18.4.6.1. Educational and Professional Developers ...............................................218

    18.4.7. Preparing for Public Release.......................................................................219

    Glossary ...................................................................................................221

    Appendix A: System Routines..................................................................225Algebra Utilities .......................................................................................................227

    are_expressions_identical ............................................................................................231compare_expressions ..................................................................................................232did_push_lincf...............................................................................................................234factor_base_index ........................................................................................................235factor_exponent_index .................................................................................................236has_different_variable ..................................................................................................237im_index .......................................................................................................................238index_if_pushed_binomial_info ....................................................................................239index_if_pushed_qquad_info........................................................................................240index_numeric_term.....................................................................................................242index_of_lead_base_of_lead_term ..............................................................................244index_reductum_with_tag_base...................................................................................245index_rmng_factor........................................................................................................246index_rmng_fctrs_start_base .......................................................................................247index_rmng_fctrs_start_base_tag ................................................................................248index_rmng_fctrs_start_fctr_tag ...................................................................................249is_free_of_tag...............................................................................................................250is_independent_of ........................................................................................................251

  • x Table of Contents

    TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001

    is_independent_of_tail..................................................................................................252is_polynomial_in_var_or_kern......................................................................................255is_tail_independent_of..................................................................................................256is_term_improper..........................................................................................................257is_totally_polynomial ....................................................................................................258lead_base_index ..........................................................................................................259lead_factor_index .........................................................................................................260lead_term_index...........................................................................................................262linear_degree................................................................................................................264main_gen_var_index ....................................................................................................265map_unary_over_comparison......................................................................................266next_var_or_kernel_index ............................................................................................267numeric_factor_index ...................................................................................................268push_but_factor............................................................................................................270push_but_term..............................................................................................................271push_constant_factors .................................................................................................272push_denominator........................................................................................................273push_dependent_factors ..............................................................................................274push_dependent_terms................................................................................................275push_desolve ...............................................................................................................276push_div_dif_1c............................................................................................................277push_div_dif_1f ............................................................................................................278push_independent_factors ...........................................................................................279push_independent_terms.............................................................................................280push_integer_gcd.........................................................................................................281push_integer_lcm .........................................................................................................282push_nonconstant_factors ...........................................................................................283push_nonconstant_terms .............................................................................................284push_nonnumeric_factors ............................................................................................285push_numerator ...........................................................................................................286push_percent................................................................................................................287push_poly_deg_in_var_or_kernel ................................................................................288push_subst_no_simp....................................................................................................289push_substitute_simplify ..............................................................................................290

  • Table of Contents xi

    TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001

    push_substitute_using_such_that ................................................................................291push_var_kern_tail .......................................................................................................292re_index........................................................................................................................293reductum_index............................................................................................................294remaining_factors_index ..............................................................................................296replace_top2_with_imre ...............................................................................................298

    Apps ........................................................................................................................299EV_getAppID................................................................................................................301EV_quit .........................................................................................................................302OO_appGetPublicStorage............................................................................................303OO_appIsMarkedDelete...............................................................................................304OO_appMarkDelete......................................................................................................305OO_AppNameToACB ..................................................................................................306OO_appSetPublicStorage ............................................................................................307OO_CondGetAttr ..........................................................................................................309OO_Deref .....................................................................................................................310OO_Destroy..................................................................................................................311OO_DestroyAll..............................................................................................................312OO_GetAppAttr ............................................................................................................313OO_GetAttr...................................................................................................................314OO_HasAttr ..................................................................................................................315OO_InstallAppHook......................................................................................................316OO_InstallAppHookByName........................................................................................318OO_InstallSystemHook ................................................................................................320OO_New.......................................................................................................................322OO_NextACB ...............................................................................................................323OO_PrevACB ...............................................................................................................324OO_SetAppAttr.............................................................................................................325OO_SetAttr ...................................................................................................................326OO_UninstallAppHook .................................................................................................327OO_UninstallAppHookByName....................................................................................328OO_UninstallSystemHook............................................................................................329

  • xii Table of Contents

    TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001

    Certificates ..............................................................................................................331freeIdList.......................................................................................................................333LIO_SendIdList.............................................................................................................334

    Data Utilities ............................................................................................................335DataTypeNames...........................................................................................................337gen_version ..................................................................................................................338GetDataType ................................................................................................................339GetFuncPrgmBodyPtr ..................................................................................................340QSysProtected .............................................................................................................341SmapTypeStrings .........................................................................................................342

    Dialog ......................................................................................................................343Dialog ...........................................................................................................................345DialogAdd.....................................................................................................................347DialogDo.......................................................................................................................349DialogNew ....................................................................................................................350DlgMessage..................................................................................................................353DrawStaticButton..........................................................................................................354ERD_dismissNotice......................................................................................................356ERD_notice ..................................................................................................................357VarNew.........................................................................................................................358VarOpen .......................................................................................................................360VarSaveAs....................................................................................................................362

    Direct Floating Point Operations .............................................................................363acos..............................................................................................................................367acosh............................................................................................................................368asin ...............................................................................................................................369asinh .............................................................................................................................370atan...............................................................................................................................371atan2.............................................................................................................................372atanh.............................................................................................................................373bcdadd..........................................................................................................................374bcdbcd..........................................................................................................................375bcdcmp.........................................................................................................................376

  • Table of Contents xiii

    TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001

    bcddiv ...........................................................................................................................377bcdlong.........................................................................................................................378bcdmul ..........................................................................................................................379bcdneg..........................................................................................................................380bcdsub..........................................................................................................................381cacos ............................................................................................................................382cacosh ..........................................................................................................................383casin .............................................................................................................................384casinh ...........................................................................................................................385catan.............................................................................................................................386catanh...........................................................................................................................387ccos ..............................................................................................................................388ccosh ............................................................................................................................389ceil ................................................................................................................................390cexp..............................................................................................................................391ck_valid_float................................................................................................................392cln .................................................................................................................................393clog10...........................................................................................................................394cos................................................................................................................................395cosh..............................................................................................................................396csin ...............................................................................................................................397csinh .............................................................................................................................398csqrt..............................................................................................................................399ctan...............................................................................................................................400ctanh.............................................................................................................................401estack_number_to_Float ..............................................................................................402estack_to_float .............................................................................................................403exp................................................................................................................................404fabs...............................................................................................................................405floor...............................................................................................................................406fmod..............................................................................................................................407frexp10..........................................................................................................................408is_float_infinity ..............................................................................................................409is_float_negative_zero..................................................................................................410

  • xiv Table of Contents

    TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001

    is_float_positive_zero ...................................................................................................411is_float_signed_infinity .................................................................................................412is_float_transfinite.........................................................................................................413is_float_unsigned_inf_or_nan.......................................................................................414is_float_unsigned_zero.................................................................................................415is_nan...........................................................................................................................416log.................................................................................................................................417log10.............................................................................................................................418modf..............................................................................................................................419pow...............................................................................................................................420push_Float....................................................................................................................421push_Float_to_nonneg_int ...........................................................................................422round12 ........................................................................................................................423round12_err ..................................................................................................................424round14 ........................................................................................................................426sin .................................................................................................................................427sinh ...............................................................................................................................428sqrt................................................................................................................................429tan.................................................................................................................................430tanh...............................................................................................................................431

    Display ....................................................................................................................433ClientToScr...................................................................................................................435display_statements.......................................................................................................436DrawStrWidth ...............................................................................................................437DrawStrWidthP .............................................................................................................438Parms2D.......................................................................................................................439Parse1DExpr ................................................................................................................440Parse2DExpr ................................................................................................................442Parse2DMultiExpr.........................................................................................................443Print2DExpr ..................................................................................................................444sf_width ........................................................................................................................445

  • Table of Contents xv

    TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001

    Error Handling .........................................................................................................447clear_error_context.......................................................................................................449ER_catch ......................................................................................................................450ER_success..................................................................................................................451ER_throwFrame ...........................................................................................................452ER_throwVar ................................................................................................................454ERD_dialog ..................................................................................................................455find_error_message......................................................................................................456

    EStack Arithmetic ....................................................................................................457add_to_top....................................................................................................................461add1_to_top..................................................................................................................462can_be_approxed.........................................................................................................463compare_complex_magnitudes....................................................................................465compare_Floats............................................................................................................466compare_numbers........................................................................................................467did_push_cnvrt_Float_to_integer .................................................................................468divide_top .....................................................................................................................469get_lb............................................................................................................................470get_ub...........................................................................................................................471integer_non_unknown ..................................................................................................472is_cFloat_agg ...............................................................................................................473is_complex_Float..........................................................................................................475is_complex0..................................................................................................................476is_complex_number .....................................................................................................477is_constant ...................................................................................................................478is_Float_exact_whole_number.....................................................................................479is_minus1 .....................................................................................................................480is_pos_int_and_eq_quantum .......................................................................................481is_reciprocal_of_quantum ............................................................................................482is_whole_number .........................................................................................................483is0 .................................................................................................................................484is1 .................................................................................................................................485negate_top....................................................................................................................486

  • xvi Table of Contents

    TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001

    push_arg_minus_1.......................................................................................................487push_arg_plus_1..........................................................................................................488push_difference............................................................................................................489push_gcd_numbers ......................................................................................................490push_is_prime ..............................................................................................................491push_minus_recip_of_quantum ...................................................................................492push_negate.................................................................................................................493push_negate_quantum_as_negint ...............................................................................494push_pi .........................................................................................................................495push_pi_on_quantum...................................................................................................496push_product................................................................................................................497push_quantum_as_nonnegative_int.............................................................................498push_quantum_pair_as_pos_frac ................................................................................499push_ratio.....................................................................................................................500push_reciprocal ............................................................................................................501push_reciprocal_of_quantum .......................................................................................502push_sum.....................................................................................................................503push0............................................................................................................................504push1............................................................................................................................505replace_top_with_reciprocal.........................................................................................506replace_top2_with_difference.......................................................................................507replace_top2_with_prod ...............................................................................................508replace_top2_with_ratio ...............................................................................................509replace_top2_with_sum................................................................................................510subtract_from_top.........................................................................................................511subtract1_from_top.......................................................................................................512times_top......................................................................................................................513

    EStack Utilities ........................................................................................................515check_estack_size .......................................................................................................517delete_between ............................................................................................................518delete_expression ........................................................................................................519deleted_between ..........................................................................................................520deleted_expression ......................................................................................................521

  • Table of Contents xvii

    TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001

    estack_to_short ............................................................................................................522estack_to_ushort ..........................................................................................................523GetValue.......................................................................................................................524move_between_to_top .................................................................................................525moved_between_to_top ...............................................................................................526next_expression_index.................................................................................................527push_between ..............................................................................................................528push_expression ..........................................................................................................529push_Float_to_rat.........................................................................................................530push_long_to_integer ...................................................................................................531push_quantum..............................................................................................................532push_ulong_to_integer .................................................................................................533push_ushort_to_integer................................................................................................534reset_estack_size.........................................................................................................535

    Expression Evaluation / Algebraic Simplification.....................................................537ForceFloat ....................................................................................................................539NG_approxESI .............................................................................................................540NG_execute..................................................................................................................541NG_rationalESI.............................................................................................................542push_approx.................................................................................................................543push_equals .................................................................................................................544push_greater_than .......................................................................................................545push_greater_than_or_equals......................................................................................546push_internal_simplify ..................................................................................................547push_less_than ............................................................................................................548push_less_than_or_equals...........................................................................................549push_not_equals ..........................................................................................................550push_simplify................................................................................................................551push_simplify_statements ............................................................................................552replace_top_with_post_simplified.................................................................................553

    Files.........................................................................................................................555FAccess........................................................................................................................557FClose ..........................................................................................................................558

  • xviii Table of Contents

    TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001

    FCreate.........................................................................................................................559FDelete .........................................................................................................................560FEof ..............................................................................................................................561FFindFirst .....................................................................................................................562FFindNext .....................................................................................................................563FGetC...........................................................................................................................564FGetPos .......................................................................................................................565FGetSize.......................................................................................................................566FOpen...........................................................................................................................567FPutC ...........................................................................................................................570FRead...........................................................................................................................571FSetBufSize..................................................................................................................572FSetPos........................................................................................................................573FSetSize .......................................................................................................................574FSetVer ........................................................................................................................575FStatus .........................................................................................................................576FType ...........................................................................................................................577FWrite ...........................................................................................................................578TokenizeName .............................................................................................................579

    Graphing .................................................................................................................581CkValidDelta.................................................................................................................583cmd_clrdraw .................................................................................................................584cmd_clrgraph................................................................................................................585cmd_rclgdb...................................................................................................................586cmd_stogdb..................................................................................................................587CptDeltax......................................................................................................................588CptDeltay......................................................................................................................589CptFuncX......................................................................................................................590CptIndep.......................................................................................................................591EQU_select ..................................................................................................................593EQU_setStyle ...............................................................................................................594FindFunc.......................................................................................................................595FindGrFunc...................................................................................................................596

  • Table of Contents xix

    TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001

    gr_CptIndepInc .............................................................................................................597gr_delete_fldpic ............................................................................................................599gr_DispLabels...............................................................................................................600gr_xres_pixel ................................................................................................................601GraphActivate...............................................................................................................602GrAxes..........................................................................................................................606GrClipLine.....................................................................................................................607GrLineFlt.......................................................................................................................609GT_Regraph.................................................................................................................610GT_Regraph_if_neccy..................................................................................................611StepCk..........................................................................................................................612XCvtFtoP ......................................................................................................................613XCvtPtoF ......................................................................................................................614YCvtFtoP ......................................................................................................................615YCvtPtoF ......................................................................................................................616

    Home Screen ..........................................................................................................617cmd_clrhome................................................................................................................619cmd_disphome .............................................................................................................620HomeAlone...................................................................................................................621HomeExecute ...............................................................................................................622HS_getAns ...................................................................................................................623HS_getEntry .................................................................................................................624HS_popEStack .............................................................................................................625

    Interrupts .................................................................................................................627idle ................................................................................................................................629off..................................................................................................................................631OSSetSR......................................................................................................................632

    Keyboard.................................................................................................................633alphaLockOff ................................................................................................................635alphaLockOn ................................................................................................................636GetAlphaStatus ............................................................................................................637GKeyFlush....................................................................................................................638GKeyIn..........................................................................................................................639

  • xx Table of Contents

    TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001

    kbhit ..............................................................................................................................641KeyYesOrNo.................................................................................................................642ngetchx .........................................................................................................................643OSCheckBreak.............................................................................................................644OSClearBreak ..............................................................................................................645OSDisableBreak ...........................................................................................................646OSEnableBreak............................................................................................................647OSInitBetweenKeyDelay ..............................................................................................648OSInitKeyInitDelay .......................................................................................................649push_getkey .................................................................................................................650pushkey ........................................................................................................................651QModeKey....................................................................................................................652QSysKey.......................................................................................................................653restoreAlphaLock..........................................................................................................654

    Link..........................................................................................................................655BatTooLowFlash...........................................................................................................657LIO_RecvData ..............................................................................................................658LIO_SendData..............................................................................................................659OSCheckLinkOpen.......................................................................................................660OSLinkClose.................................................................................................................661OSLinkOpen.................................................................................................................662OSLinkReset ................................................................................................................663

    Lists and Matrices ...................................................................................................665all_tail ...........................................................................................................................669any_tail .........................................................................................................................670cmd_sorta.....................................................................................................................671cmd_sortd.....................................................................................................................672did_map_aggregate_arg ..............................................................................................673is_matrix .......................................................................................................................674is_square_matrix ..........................................................................................................675last_element_index.......................................................................................................676map_tail ........................................................................................................................677push_augment..............................................................................................................678

  • Table of Contents xxi

    TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001

    push_coldim .................................................................................................................679push_colnorm...............................................................................................................680push_cross_product .....................................................................................................681push_cumsum ..............................................................................................................682push_determinant.........................................................................................................683push_diag .....................................................................................................................684push_dimension ...........................................................................................................685push_dot_add...............................................................................................................686push_dot_div ................................................................................................................687push_dot_mult ..............................................................................................................688push_dot_sub...............................................................................................................689push_dotproduct...........................................................................................................690push_eigvc ...................................................................................................................691push_eigvl ....................................................................................................................692push_identity_mat ........................................................................................................693push_list_to_mat ..........................................................................................................694push_mat_to_list ..........................................................................................................695push_matnorm..............................................................................................................696push_mean...................................................................................................................697push_median................................................................................................................698push_mrow...................................................................................................................700push_mrowadd.............................................................................................................702push_newlist.................................................................................................................703push_newmat ...............................................................................................................704push_prodlist ................................................................................................................705push_randmat...............................................................................................................706push_red_row_ech.......................................................................................................707push_reversed_tail .......................................................................................................708push_row_echelon .......................................................................................................709push_rowadd................................................................................................................710push_rowdim ................................................................................................................711push_rownorm..............................................................................................................712push_rowswap..............................................................................................................713push_sign .....................................................................................................................714

  • xxii Table of Contents

    TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001

    push_stddev .................................................................................................................715push_submat ................................................................................................................716push_sumlist.................................................................................................................718push_transpose_aux ....................................................................................................719push_unitv ....................................................................................................................721push_variance ..............................................................................................................722remaining_element_count ............................................................................................723

    Logic........................................................................................................................725and_onto_top................................................................................................................727is_equivalent_to............................................................................................................728is_negative ...................................................................................................................729is_never0 ......................................................................................................................730is_nonnegative .............................................................................................................731is_nonpositive...............................................................................................................732is_positive.....................................................................................................................733is_real ...........................................................................................................................734is_undefined .................................................................................................................735lead_conjunct_factor_index..........................................................................................736lead_disjunct_term_index.............................................................................................737or_onto_top ..................................................................................................................738push_and......................................................................................................................739push_but_conjunct_factor ............................................................................................740push_not.......................................................................................................................741push_or.........................................................................................................................742push_when ...................