Developer Guide
Page 5
...Library Interface 51 7.3.3.2. Accessing a Library 53 7.3.3.3. How Localization Works 60 8. Modifying Mode Settings Within an App 64 8.1.1.2. Verifying the OS Version 74 8.6. Example 45 7.3.2. Localizer Template 56 7.3.4.2. Flash App Extensions 69 8.4. Method OO_APP_CAN_DELETE (0xC 43 7.3.1.3.13. Method OO_APP_EXT_HELP (0x10 44 7.3.1.3.17. Method OO_APP_ABOUT (... Notification Flags 63 8.1.1.1. Catalog...67 8.3.1. Built-in Functions and Commands 67 8.3.2. Optimizing Code Space 75 TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001
...Library Interface 51 7.3.3.2. Accessing a Library 53 7.3.3.3. How Localization Works 60 8. Modifying Mode Settings Within an App 64 8.1.1.2. Verifying the OS Version 74 8.6. Example 45 7.3.2. Localizer Template 56 7.3.4.2. Flash App Extensions 69 8.4. Method OO_APP_CAN_DELETE (0xC 43 7.3.1.3.13. Method OO_APP_EXT_HELP (0x10 44 7.3.1.3.17. Method OO_APP_ABOUT (... Notification Flags 63 8.1.1.1. Catalog...67 8.3.1. Built-in Functions and Commands 67 8.3.2. Optimizing Code Space 75 TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001
Developer Guide
Page 13
... of Contents xi push_substitute_using_such_that 291 push_var_kern_tail ...292 re_index...293 reductum_index ...294 remaining_factors_index 296 replace_top2_with_imre 298 Apps ...299 EV_getAppID...301 EV_quit ...302 OO_appGetPublicStorage 303 OO_appIsMarkedDelete 304 OO_appMarkDelete...305 OO_AppNameToACB 306 OO_appSetPublicStorage 307 OO_CondGetAttr... ...323 OO_PrevACB ...324 OO_SetAppAttr...325 OO_SetAttr ...326 OO_UninstallAppHook 327 OO_UninstallAppHookByName 328 OO_UninstallSystemHook 329 TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001
... of Contents xi push_substitute_using_such_that 291 push_var_kern_tail ...292 re_index...293 reductum_index ...294 remaining_factors_index 296 replace_top2_with_imre 298 Apps ...299 EV_getAppID...301 EV_quit ...302 OO_appGetPublicStorage 303 OO_appIsMarkedDelete 304 OO_appMarkDelete...305 OO_AppNameToACB 306 OO_appSetPublicStorage 307 OO_CondGetAttr... ...323 OO_PrevACB ...324 OO_SetAppAttr...325 OO_SetAttr ...326 OO_UninstallAppHook 327 OO_UninstallAppHookByName 328 OO_UninstallSystemHook 329 TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001
Developer Guide
Page 36
xxxiv Table of Contents Apps ...1211 EV_appA ...1211 EV_appB ...1212 EV_appSide...1213 EV_currentApp ...1214 EV_runningApp ...1215 OO_firstACB...1216 OO_SuperFrame ...1217 FLOATTAB ...1219 IM_re_tol...1220 Display ...1221 CU_cursorState ...1221 ScrRect...1222 ... ...1229 Graphing ...1231 gr_active, gr_other...1231 gr_flags...1241 Keyboard...1243 OSFastArrows ...1243 OSModKeyStatus ...1244 Logic...1245 index_false ...1245 index_true...1246 Math ...1247 Float0Index...1247 TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001
xxxiv Table of Contents Apps ...1211 EV_appA ...1211 EV_appB ...1212 EV_appSide...1213 EV_currentApp ...1214 EV_runningApp ...1215 OO_firstACB...1216 OO_SuperFrame ...1217 FLOATTAB ...1219 IM_re_tol...1220 Display ...1221 CU_cursorState ...1221 ScrRect...1222 ... ...1229 Graphing ...1231 gr_active, gr_other...1231 gr_flags...1241 Keyboard...1243 OSFastArrows ...1243 OSModKeyStatus ...1244 Logic...1245 index_false ...1245 index_true...1246 Math ...1247 Float0Index...1247 TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001
Developer Guide
Page 39
... 20 Figure 6.1: Example of ASM Stack Memory 28 Figure 7.1: Flash Application File Format 31 Figure 7.2: Application RAM and Flash Usage 38 Figure 7.3: Linked App Frames 60 Figure 7.4: Redirected App Frame 61 Figure 8.1: Catalog ...67 Figure 8.2: Catalog Help Dialog 67 Figure 8.3: User Program ...68 Figure 8.4: User-Defined Catalog 68 Figure 8.5: Help Dialog... Shot from Test Menu Example 117 Figure 13.1: Token Representation of VarName A23456 135 Figure 17.1: Upper Left Corner of Graph Screen 190 TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001
... 20 Figure 6.1: Example of ASM Stack Memory 28 Figure 7.1: Flash Application File Format 31 Figure 7.2: Application RAM and Flash Usage 38 Figure 7.3: Linked App Frames 60 Figure 7.4: Redirected App Frame 61 Figure 8.1: Catalog ...67 Figure 8.2: Catalog Help Dialog 67 Figure 8.3: User Program ...68 Figure 8.4: User-Defined Catalog 68 Figure 8.5: Help Dialog... Shot from Test Menu Example 117 Figure 13.1: Token Representation of VarName A23456 135 Figure 17.1: Upper Left Corner of Graph Screen 190 TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001
Developer Guide
Page 57
... is normally in the top 18 pixels of the display of the TI-92 Plus and the top 16 pixels of the TI-89. All output to the app. TI-89 / TI-92 Plus Developer Guide Not for the status line. On both calculators, the display is 160 by 100 pixels. The window... to : • Open, resize, and close their own windows and that are overlapped on-top of the display are modal so the app's toolbar is inactive when a dialog box is clipped and will be closed. The TI-89 display size is divided into two regions: the window region and the status line.
... is normally in the top 18 pixels of the display of the TI-92 Plus and the top 16 pixels of the TI-89. All output to the app. TI-89 / TI-92 Plus Developer Guide Not for the status line. On both calculators, the display is 160 by 100 pixels. The window... to : • Open, resize, and close their own windows and that are overlapped on-top of the display are modal so the app's toolbar is inactive when a dialog box is clipped and will be closed. The TI-89 display size is divided into two regions: the window region and the status line.
Developer Guide
Page 59
... ID of pop-ups is called to three levels with the MenuPopup function. Pop-ups There are drawn with DynMenuChange and DynMenuAdd. TI-89 / TI-92 Plus Developer Guide Not for dealing with menu features (checkmarks, grayed-out). Add to hold additional information about the menu... - Finally MenuEnd is to select items from an app's toolbar. Static Pop-ups The simplest use of the item selected is returned. MenuBegin also creates a heap-based structure to or change a...
... ID of pop-ups is called to three levels with the MenuPopup function. Pop-ups There are drawn with DynMenuChange and DynMenuAdd. TI-89 / TI-92 Plus Developer Guide Not for dealing with menu features (checkmarks, grayed-out). Add to hold additional information about the menu... - Finally MenuEnd is to select items from an app's toolbar. Static Pop-ups The simplest use of the item selected is returned. MenuBegin also creates a heap-based structure to or change a...
Developer Guide
Page 61
... international characters, are always placed at the bottom of the dialog box). Chapter 4: User Interface Overview 19 4.4. Figure 4.6: AMS Fonts An app can control which uses the Huge font. The Large font is used in the following table. Figure 4.5: OverwriteDlg Dialog Box from each other ...toolbars on the TI-92 Plus, which of the Dialog routine (DF_OWNER_DRAW), a pop-up defined elsewhere in authoring lines on the TI-89. This is a user supplied function that interfaces between the Dialog routine and the user code. The character attribute affects how the background ...
... international characters, are always placed at the bottom of the dialog box). Chapter 4: User Interface Overview 19 4.4. Figure 4.6: AMS Fonts An app can control which uses the Huge font. The Large font is used in the following table. Figure 4.5: OverwriteDlg Dialog Box from each other ...toolbars on the TI-92 Plus, which of the Dialog routine (DF_OWNER_DRAW), a pop-up defined elsewhere in authoring lines on the TI-89. This is a user supplied function that interfaces between the Dialog routine and the user code. The character attribute affects how the background ...
Developer Guide
Page 64
... the RAD/DEG indicator in the status line. 22 4.5. ST_helpMsg - Chapter 4: User Interface Overview The Status Line An app can write messages to the status line: ST_angle - Turn on /off the BUSY indicator. TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001 ST_busy - ST_readOnly - The status...
... the RAD/DEG indicator in the status line. 22 4.5. ST_helpMsg - Chapter 4: User Interface Overview The Status Line An app can write messages to the status line: ST_angle - Turn on /off the BUSY indicator. TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001 ST_busy - ST_readOnly - The status...
Developer Guide
Page 65
...ASM programs can only be freely copied between calculators. No - Event driven - RAM or archive Flash memory - Flash apps are executed in RAM. The OS allocates a data segment for Distribution Beta Version January 26, 2001 ASM programs must poll... - RAM - Calculator hardware does not allow freeware/shareware applications to be executed in place, i.e., the app does not need to be moved to receive input from inadvertent or malicious changes. The current version of the... on the stack or within the code segment. TI-89 / TI-92 Plus Developer Guide Not for each application.
...ASM programs can only be freely copied between calculators. No - Event driven - RAM or archive Flash memory - Flash apps are executed in RAM. The OS allocates a data segment for Distribution Beta Version January 26, 2001 ASM programs must poll... - RAM - Calculator hardware does not allow freeware/shareware applications to be executed in place, i.e., the app does not need to be moved to receive input from inadvertent or malicious changes. The current version of the... on the stack or within the code segment. TI-89 / TI-92 Plus Developer Guide Not for each application.
Developer Guide
Page 66
...ASM Program System overrides Yes - No - Object frames can provide many system features. Localization Yes - The OS only looks at Flash apps for Distribution Beta Version January 26, 2001 A single Flash application can be used as a library for method and attribute inheritance and class... is provided by Flash applications. TI-BASIC extensions ≥ 0 - Flash applications have no OS-supported shared-code interface. TI-89 / TI-92 Plus Developer Guide Not for language localizers. Flash applications can be arranged into a class hierarchy for other Flash applications...
...ASM Program System overrides Yes - No - Object frames can provide many system features. Localization Yes - The OS only looks at Flash apps for Distribution Beta Version January 26, 2001 A single Flash application can be used as a library for method and attribute inheritance and class... is provided by Flash applications. TI-BASIC extensions ≥ 0 - Flash applications have no OS-supported shared-code interface. TI-89 / TI-92 Plus Developer Guide Not for language localizers. Flash applications can be arranged into a class hierarchy for other Flash applications...
Developer Guide
Page 73
... the fields of the Flash header used by TI-GRAPH LINK software. It also discusses what needs to be in calculator memory. TI-89 / TI-92 Plus Developer Guide Not for license tracking, and the application header needed by AMS applications. Flash header Certificate header Application ...Flash applications on disk and in your source code to a calculator. TI-GRAPH LINK removes this header when it sends software to make a Flash app interface with the OS. 31 7. 7.1. 7.1.1. Flash Application Layout This chapter presents the physical layout of headers: the Flash header used by TI-...
... the fields of the Flash header used by TI-GRAPH LINK software. It also discusses what needs to be in calculator memory. TI-89 / TI-92 Plus Developer Guide Not for license tracking, and the application header needed by AMS applications. Flash header Certificate header Application ...Flash applications on disk and in your source code to a calculator. TI-GRAPH LINK removes this header when it sends software to make a Flash app interface with the OS. 31 7. 7.1. 7.1.1. Flash Application Layout This chapter presents the physical layout of headers: the Flash header used by TI-...
Developer Guide
Page 75
...offset to the beginning of application code, an offset to initial data table 50 4 length of initial data table 54 4 length of apps through the AppHdr structure. The following fields may be accessed through the application header. Application Header The OS keeps track of optional header...- additional information can be identical. Table 7.2: Application Header Format Magic Number The magic number marks the beginning of initial data. TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001 Note: This field must be stored just after the ...
...offset to the beginning of application code, an offset to initial data table 50 4 length of initial data table 54 4 length of apps through the AppHdr structure. The following fields may be accessed through the application header. Application Header The OS keeps track of optional header...- additional information can be identical. Table 7.2: Application Header Format Magic Number The magic number marks the beginning of initial data. TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001 Note: This field must be stored just after the ...
Developer Guide
Page 76
... zero. The remaining flag bits are initialized by scanning all the app headers for applications with a built-in applications have internal names. TI-89 / TI-92 Plus Developer Guide Not for the AMS Operating System (OS). Your app can call EV_getAppID with this table. Byte Offset to Code Segment... TITEXTED TIINSLVR Table 7.3: Internal Names of static RAM to allocate to the application when it is a header-relative pointer to get its app ID. You can send messages to code is loaded into the calculator. Length of Data Segment The data segment length is the amount ...
... zero. The remaining flag bits are initialized by scanning all the app headers for applications with a built-in applications have internal names. TI-89 / TI-92 Plus Developer Guide Not for the AMS Operating System (OS). Your app can call EV_getAppID with this table. Byte Offset to Code Segment... TITEXTED TIINSLVR Table 7.3: Internal Names of static RAM to allocate to the application when it is a header-relative pointer to get its app ID. You can send messages to code is loaded into the calculator. Length of Data Segment The data segment length is the amount ...
Developer Guide
Page 78
... * pacb = (ACB *)HeapDeref(EV_getAppID(name)); Global OS variable OO_firstACB contains a handle to the app's ACB. ACB_LOCALIZER, the app is also the handle to the app's ACB. ACB_SELECTED, app is selected in apps that come preinstalled from the factory or installed later as a language choice. 0x0008 - Layout in ...certificate header to traverse the list of the app. ACB_INSTALLED, the OS sets this flag when app installation is one of TI_BASIC extension functions and commands in memory. TI-89 / TI-92 Plus Developer Guide Not for each app in the calculator whether it is complete....
... * pacb = (ACB *)HeapDeref(EV_getAppID(name)); Global OS variable OO_firstACB contains a handle to the app's ACB. ACB_LOCALIZER, the app is also the handle to the app's ACB. ACB_SELECTED, app is selected in apps that come preinstalled from the factory or installed later as a language choice. 0x0008 - Layout in ...certificate header to traverse the list of the app. ACB_INSTALLED, the OS sets this flag when app installation is one of TI_BASIC extension functions and commands in memory. TI-89 / TI-92 Plus Developer Guide Not for each app in the calculator whether it is complete....
Developer Guide
Page 79
...January 26, 2001 When an application is deleted. The handle to this chunk of the next app in high RAM. The OS frees the data segment when the application is deleted, applications after OS code. TI-89 / TI-92 Plus Developer Guide Not for applications from two pools. pFrame appData - One... pad byte of this process are stored in Flash ROM. The executable code and constant resources (.text and .const sections) are moved up to make sure each app begins on an even...
...January 26, 2001 When an application is deleted. The handle to this chunk of the next app in high RAM. The OS frees the data segment when the application is deleted, applications after OS code. TI-89 / TI-92 Plus Developer Guide Not for applications from two pools. pFrame appData - One... pad byte of this process are stored in Flash ROM. The executable code and constant resources (.text and .const sections) are moved up to make sure each app begins on an even...
Developer Guide
Page 80
... your application. routines which can serve several purposes. The object frame provides a directory of predefined frame attributes and methods. And, it with a library of the app's event handler. 38 Chapter 7: Flash Application Layout 7.3. 7.3.1. It is the first initialized variable in the OS or another application to the... the object frame that the OS finds the address of functions and programs. It can override tables in your application needs to the OS. TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001
... your application. routines which can serve several purposes. The object frame provides a directory of predefined frame attributes and methods. And, it with a library of the app's event handler. 38 Chapter 7: Flash Application Layout 7.3. 7.3.1. It is the first initialized variable in the OS or another application to the... the object frame that the OS finds the address of functions and programs. It can override tables in your application needs to the OS. TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001
Developer Guide
Page 82
... the attributes and methods reserved by the OS. Each attribute and method name is off. In addition, there are not meant to the app frame - For this reason, the FRAME macro also sets the read -only attributes shows only the macros to the application's object frame....-up menu. Object Frame Attributes Application object frames can be able to an application-defined structure - TI-89 / TI-92 Plus Developer Guide Not for libraries and language localization apps. 0x0002 APP_CON Attach Current/Open/New submenu to find the object frame in the .text section of a frame...
... the attributes and methods reserved by the OS. Each attribute and method name is off. In addition, there are not meant to the app frame - For this reason, the FRAME macro also sets the read -only attributes shows only the macros to the application's object frame....-up menu. Object Frame Attributes Application object frames can be able to an application-defined structure - TI-89 / TI-92 Plus Developer Guide Not for libraries and language localization apps. 0x0002 APP_CON Attach Current/Open/New submenu to find the object frame in the .text section of a frame...
Developer Guide
Page 83
... not be zero. This is displayed in sin function. If the application is being installed (CM_INSTALL), moved (CM_PACK/CM_UNPACK), or deleted (CM_UNINSTALL). TI-89 / TI-92 Plus Developer Guide Not for example, when it can ignore event messages. Chapter 7: Flash Application Layout 41 7.3.1.3.2. 7.3.1.3.3. 7.3.1.3.4. 0x0004 APP_ACCESS_SYSVARS ... the name should be confused with no more than 32 characters on the TI-89 and no user interface, then it is a library with the built-in the app's pop-up menu if the application has an interactive interface. This method is unnecessary...
... not be zero. This is displayed in sin function. If the application is being installed (CM_INSTALL), moved (CM_PACK/CM_UNPACK), or deleted (CM_UNINSTALL). TI-89 / TI-92 Plus Developer Guide Not for example, when it can ignore event messages. Chapter 7: Flash Application Layout 41 7.3.1.3.2. 7.3.1.3.3. 7.3.1.3.4. 0x0004 APP_ACCESS_SYSVARS ... the name should be confused with no more than 32 characters on the TI-89 and no user interface, then it is a library with the built-in the app's pop-up menu if the application has an interactive interface. This method is unnecessary...
Developer Guide
Page 85
Language Localization. This method is optional. 7.3.1.3.11. Implement it switched the app to the given language. Method OO_APP_UNLOCALIZE (0xB) void AppUnlocalize(AppID self) Pointer to the application's routine to the application's language localization routine.... self) Before the OS deletes an application, it calls this method to localize an application for when your app can be deleted. 7.3.1.3.13. TI-89 / TI-92 Plus Developer Guide Not for when your app can be moved. This method is optional. Method OO_APP_LOCALIZE (0xA) BOOL AppLocalize(AppID self, UCHAR const ...
Language Localization. This method is optional. 7.3.1.3.11. Implement it switched the app to the given language. Method OO_APP_UNLOCALIZE (0xB) void AppUnlocalize(AppID self) Pointer to the application's routine to the application's language localization routine.... self) Before the OS deletes an application, it calls this method to localize an application for when your app can be deleted. 7.3.1.3.13. TI-89 / TI-92 Plus Developer Guide Not for when your app can be moved. This method is optional. Method OO_APP_LOCALIZE (0xA) BOOL AppLocalize(AppID self, UCHAR const ...
Developer Guide
Page 86
... system implementation of this method displays the extension's help string if this method of each application in the VAR-LINK contents window. The app is optional. 7.3.1.3.18. TI-89 / TI-92 Plus Developer Guide Not for a function or command extension implemented by the application. This method is passed a pointer to the new...
... system implementation of this method displays the extension's help string if this method of each application in the VAR-LINK contents window. The app is optional. 7.3.1.3.18. TI-89 / TI-92 Plus Developer Guide Not for a function or command extension implemented by the application. This method is passed a pointer to the new...