Developer Guide
Page 9
... with Numbers 181 16.1. Tokenized Programs and Functions 157 14.10. Overview ...181 TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001 Data Variable 150 14.5. The Expression Stack 174 15.6. Estack Calculations 177 15.7. Graph Database 152 14.8. Assembly Program 160 15. Variables, Units and...
... with Numbers 181 16.1. Tokenized Programs and Functions 157 14.10. Overview ...181 TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001 Data Variable 150 14.5. The Expression Stack 174 15.6. Estack Calculations 177 15.7. Graph Database 152 14.8. Assembly Program 160 15. Variables, Units and...
Developer Guide
Page 47
...Decode and package event completed Default event handling Application completed Handle event does not know how Figure 2.1: AMS Event Handler TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001 An application reacts to the application currently ...active in Figure 2.1. The 68000 TI AMS Operating System Overview The AMS calculator Operating System (OS) implements a classic cooperative event-driven architecture. The event manager interfaces with the device drivers to the event...
...Decode and package event completed Default event handling Application completed Handle event does not know how Figure 2.1: AMS Event Handler TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001 An application reacts to the application currently ...active in Figure 2.1. The 68000 TI AMS Operating System Overview The AMS calculator Operating System (OS) implements a classic cooperative event-driven architecture. The event manager interfaces with the device drivers to the event...
Developer Guide
Page 48
... ASM programs are routines written in C or 68000 assembly language, both of fully integrated applications. The address of the jump table, a table of every calculator feature. ASM programs are generally small (≤ 8 K for AMS 2.03 and ≤ 24 K for Distribution Beta Version January 26, 2001 TI...-89 / TI-92 Plus Developer Guide Not for AMS 2.04) and execute in RAM. 6 Chapter 2: The 68000 TI AMS Operating System Overview Many operating ...
... ASM programs are routines written in C or 68000 assembly language, both of fully integrated applications. The address of the jump table, a table of every calculator feature. ASM programs are generally small (≤ 8 K for AMS 2.03 and ≤ 24 K for Distribution Beta Version January 26, 2001 TI...-89 / TI-92 Plus Developer Guide Not for AMS 2.04) and execute in RAM. 6 Chapter 2: The 68000 TI AMS Operating System Overview Many operating ...
Developer Guide
Page 49
TI-89 / TI-92 Plus Developer Guide Not for system control. • A Motorola 68000 CPU. • 256 K bytes of RAM. • 2 MB bytes of the "glue logic" ... Figure 3.1: System Block Diagram From the block diagram, the specific details of the TI-89 / TI-92 Plus from a programmer's perspective. 3. 3.1. 7 The TI-89 / TI-92 Plus Hardware Overview Overview The TI-89 and TI-92 Plus Graphing calculators provide a platform for writing interactive applications that allows the different components to the user. Pictured...
TI-89 / TI-92 Plus Developer Guide Not for system control. • A Motorola 68000 CPU. • 256 K bytes of RAM. • 2 MB bytes of the "glue logic" ... Figure 3.1: System Block Diagram From the block diagram, the specific details of the TI-89 / TI-92 Plus from a programmer's perspective. 3. 3.1. 7 The TI-89 / TI-92 Plus Hardware Overview Overview The TI-89 and TI-92 Plus Graphing calculators provide a platform for writing interactive applications that allows the different components to the user. Pictured...
Developer Guide
Page 50
... IO interface. Memory Map Memory for Distribution Beta Version January 26, 2001 TI-89 / TI-92 Plus Developer Guide Not for the calculators consists of RAM memory, Flash memory, and address space within the ASIC. Chapter 3: The TI-89 / TI-92 Plus Hardware Overview • A black and white LCD display... (100 lines of 160 pixels for the TI-89, 128 lines of 240 pixels for...
... IO interface. Memory Map Memory for Distribution Beta Version January 26, 2001 TI-89 / TI-92 Plus Developer Guide Not for the calculators consists of RAM memory, Flash memory, and address space within the ASIC. Chapter 3: The TI-89 / TI-92 Plus Hardware Overview • A black and white LCD display... (100 lines of 160 pixels for the TI-89, 128 lines of 240 pixels for...
Developer Guide
Page 57
...recall bitmaps • Scroll horizontally or vertically If an app opens a window, that are always used for Distribution Beta Version January 26, 2001 TI-89 / TI-92 Plus Developer Guide Not for the status line. Window routines exist to the app. Note that by convention, windows that window must...the app's toolbar (dialog boxes are modal so the app's toolbar is inactive when a dialog box is clipped and will be closed. On both calculators, the display is presented in split screen mode, then it has one pixel thick if not active, two pixels thick if the active window). ...
...recall bitmaps • Scroll horizontally or vertically If an app opens a window, that are always used for Distribution Beta Version January 26, 2001 TI-89 / TI-92 Plus Developer Guide Not for the status line. Window routines exist to the app. Note that by convention, windows that window must...the app's toolbar (dialog boxes are modal so the app's toolbar is inactive when a dialog box is clipped and will be closed. On both calculators, the display is presented in split screen mode, then it has one pixel thick if not active, two pixels thick if the active window). ...
Developer Guide
Page 64
... The Status Line An app can write messages to the status line: ST_angle - Change the RAD/DEG indicator in the status line. ST_eraseHelp - 22 4.5. TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001 Clear the help message in the status line. Temporarily display a help status... cleared of any messages and the modifier status is also used to show things like the current directory, radian/degree mode, battery status, and other calculator information as shown in the status line. Turn on /off the BUSY indicator.
... The Status Line An app can write messages to the status line: ST_angle - Change the RAD/DEG indicator in the status line. ST_eraseHelp - 22 4.5. TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001 Clear the help message in the status line. Temporarily display a help status... cleared of any messages and the modifier status is also used to show things like the current directory, radian/degree mode, battery status, and other calculator information as shown in the status line. Turn on /off the BUSY indicator.
Developer Guide
Page 65
...Executes in cooperative multitasking through the OS. Calculator hardware does not allow freeware/shareware applications to RAM before executing it ...can only be installed in archive memory. All calculators come with a freeware/shareware key which may have a...license. Event driven - 23 5. A Flash application can be freely copied between calculators. Flash Applications vs. The Flash memory occupied by the amount of the special... poll the keyboard to execute in calculators that have an initial value. They can be executed. ASM programs must ...
...Executes in cooperative multitasking through the OS. Calculator hardware does not allow freeware/shareware applications to RAM before executing it ...can only be installed in archive memory. All calculators come with a freeware/shareware key which may have a...license. Event driven - 23 5. A Flash application can be freely copied between calculators. Flash Applications vs. The Flash memory occupied by the amount of the special... poll the keyboard to execute in calculators that have an initial value. They can be executed. ASM programs must ...
Developer Guide
Page 66
... may move during heap garbage collect. TI-BASIC extensions ≥ 0 - Flash applications have no OS-supported shared-code interface. TI-89 / TI-92 Plus Developer Guide Not for other Flash applications or ASM programs. No - ASM Programs Flash Application ASM Program System overrides... Yes - No - Pointers to overriding system code would become invalid. Calculator language localization is provided by Flash applications. The OS only looks at Flash apps for method and attribute inheritance and class mix-ins....
... may move during heap garbage collect. TI-BASIC extensions ≥ 0 - Flash applications have no OS-supported shared-code interface. TI-89 / TI-92 Plus Developer Guide Not for other Flash applications or ASM programs. No - ASM Programs Flash Application ASM Program System overrides... Yes - No - Pointers to overriding system code would become invalid. Calculator language localization is provided by Flash applications. The OS only looks at Flash apps for method and attribute inheritance and class mix-ins....
Developer Guide
Page 67
...programs or from the Home screen author line just like other TI-BASIC subroutines but with other calculators through the link port. ASM programs are subroutines written in the calculator which detects stack overflow. Because Flash applications are loaded into and execute from 0x0400 to share with...AMS 2.04) and execute in memory. There is the stack pointer. Do not use assembly language to use A7 for the TI-89 / TI-92 Plus calculator. Assembly Language Programming Overview This chapter covers how to write programs for anything else. ASM programs are small (≤ 8 K for ...
...programs or from the Home screen author line just like other TI-BASIC subroutines but with other calculators through the link port. ASM programs are subroutines written in the calculator which detects stack overflow. Because Flash applications are loaded into and execute from 0x0400 to share with...AMS 2.04) and execute in memory. There is the stack pointer. Do not use assembly language to use A7 for the TI-89 / TI-92 Plus calculator. Assembly Language Programming Overview This chapter covers how to write programs for anything else. ASM programs are small (≤ 8 K for ...
Developer Guide
Page 71
...variable name */ varname = next_expression_index(varname-1) + 2; /* Make sure name is pressed. The key code for a keypress. EStackIndex varname; TI-89 / TI-92 Plus Developer Guide Not for something else */ if (TokenizeSymName(varname, TSF_PASS_ERRORS) == NULL) ER_throw(ER_INDIR_STRING_NOT_VARNAME); Chapter 6: Assembly Language ... for Distribution Beta Version January 26, 2001 USHORT ch; It turns on the PAUSE indicator in the status line and puts the calculator in low power mode until a key is pressed. */ #include "tiams.h" /* Entry point must be called main */ void main...
...variable name */ varname = next_expression_index(varname-1) + 2; /* Make sure name is pressed. The key code for a keypress. EStackIndex varname; TI-89 / TI-92 Plus Developer Guide Not for something else */ if (TokenizeSymName(varname, TSF_PASS_ERRORS) == NULL) ER_throw(ER_INDIR_STRING_NOT_VARNAME); Chapter 6: Assembly Language ... for Distribution Beta Version January 26, 2001 USHORT ch; It turns on the PAUSE indicator in the status line and puts the calculator in low power mode until a key is pressed. */ #include "tiams.h" /* Entry point must be called main */ void main...
Developer Guide
Page 73
...GRAPH LINK™ software, the certificate header needed for Distribution Beta Version January 26, 2001 It also discusses what needs to be in calculator memory. 31 7. 7.1. 7.1.1. File Format AMS application files are embedded within three layers of AMS Flash applications on disk and in your ...map Application code Initial data table Signature Figure 7.1: Flash Application File Format Flash Header The Flash header is used by AMS applications. TI-89 / TI-92 Plus Developer Guide Not for license tracking, and the application header needed by the AMS OS. Flash Application Layout This ...
...GRAPH LINK™ software, the certificate header needed for Distribution Beta Version January 26, 2001 It also discusses what needs to be in calculator memory. 31 7. 7.1. 7.1.1. File Format AMS application files are embedded within three layers of AMS Flash applications on disk and in your ...map Application code Initial data table Signature Figure 7.1: Flash Application File Format Flash Header The Flash header is used by AMS applications. TI-89 / TI-92 Plus Developer Guide Not for license tracking, and the application header needed by the AMS OS. Flash Application Layout This ...
Developer Guide
Page 74
... 8 bytes) 23 filler (zeros) 1 device type (0x98 = TI-89, 0x88 = TI-92 Plus) 1 data type (0x24 = application) 24 filler (zeros) 4 length of the certificate. This header is transmitted from one calculator to another or uploaded to a computer. Other fields include the application's ... The certificate contains variable-length tagged fields. TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001 The application itself is used by the license tracking software in the calculator's unit certificate), revision number, build number, internal ...
... 8 bytes) 23 filler (zeros) 1 device type (0x98 = TI-89, 0x88 = TI-92 Plus) 1 data type (0x24 = application) 24 filler (zeros) 4 length of the certificate. This header is transmitted from one calculator to another or uploaded to a computer. Other fields include the application's ... The certificate contains variable-length tagged fields. TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001 The application itself is used by the license tracking software in the calculator's unit certificate), revision number, build number, internal ...
Developer Guide
Page 76
... (.bss) RAM sections. It consists of Built-in app's internal name to Initial Data Table The contents of the calculator's mode window is built by copying the data from this flag set. TI-89 / TI-92 Plus Developer Guide Not for the AMS Operating System (OS). Your app can call EV_getAppID with... to the application when it is the amount of the application code image. Length of Data Segment The data segment length is loaded into the calculator. Byte Offset to Code Segment The byte offset to code is a header-relative pointer to the beginning of static RAM to allocate to a built-in...
... (.bss) RAM sections. It consists of Built-in app's internal name to Initial Data Table The contents of the calculator's mode window is built by copying the data from this flag set. TI-89 / TI-92 Plus Developer Guide Not for the AMS Operating System (OS). Your app can call EV_getAppID with... to the application when it is the amount of the application code image. Length of Data Segment The data segment length is loaded into the calculator. Byte Offset to Code Segment The byte offset to code is a header-relative pointer to the beginning of static RAM to allocate to a built-in...
Developer Guide
Page 77
...in Flash memory because of bytes in the application code or initial data table an absolute address needs to be updated. TI-89 / TI-92 Plus Developer Guide Not for data-segment relative. The base is 00 for code-segment relative and 10 for...Distribution Beta Version January 26, 2001 The application's data segment is initialized when the application is installed and reinitialized every time the application is calculated from the base and relative value. Chapter 7: Flash Application Layout 35 7.1.3.7. 7.1.3.8. 7.1.4. 7.1.5. 7.1.6. The optional header length specifies how many bytes...
...in Flash memory because of bytes in the application code or initial data table an absolute address needs to be updated. TI-89 / TI-92 Plus Developer Guide Not for data-segment relative. The base is 00 for code-segment relative and 10 for...Distribution Beta Version January 26, 2001 The application's data segment is initialized when the application is installed and reinitialized every time the application is calculated from the base and relative value. Chapter 7: Flash Application Layout 35 7.1.3.7. 7.1.3.8. 7.1.4. 7.1.5. 7.1.6. The optional header length specifies how many bytes...
Developer Guide
Page 78
...-up menu. 0x0020 - Signature The signature protects everything from the beginning of the certificate header to the app's ACB. TI-89 / TI-92 Plus Developer Guide Not for each app in the calculator whether it is selected in memory. Application control flags: 0x0001 - 36 Chapter 7: Flash Application Layout 7.1.7. 7.2. ACB_INSTALLED, the OS sets...
...-up menu. 0x0020 - Signature The signature protects everything from the beginning of the certificate header to the app's ACB. TI-89 / TI-92 Plus Developer Guide Not for each app in the calculator whether it is selected in memory. Application control flags: 0x0001 - 36 Chapter 7: Flash Application Layout 7.1.7. 7.2. ACB_INSTALLED, the OS sets...
Developer Guide
Page 95
...i.e., is the app's internal name. appfunc [ slot-number ] func-name(AppID [, type . . . ]) : type ; appname is not installed in the calculator. Macros defined in fileio.h can use the function call routines in the following forms: apvpavrar [ slot-number ] ... Language is provided as a tool to simplify the process of creating an interface to end of an application/shared-code library. TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001 Accessing a Library HANDLE EV_getAppID(UCHAR const * appname)...
...i.e., is the app's internal name. appfunc [ slot-number ] func-name(AppID [, type . . . ]) : type ; appname is not installed in the calculator. Macros defined in fileio.h can use the function call routines in the following forms: apvpavrar [ slot-number ] ... Language is provided as a tool to simplify the process of creating an interface to end of an application/shared-code library. TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001 Accessing a Library HANDLE EV_getAppID(UCHAR const * appname)...
Developer Guide
Page 108
...EV_getAppID( (const UCHAR *) "TIHOME" ); if (MO_option[MO_OPT_SPLIT_2] == appID) MO_option[MO_OPT_SPLIT_2] = HomeID; MO_digestOptions(H_NULL); } TI-89 / TI-92 Plus Developer Guide Not for English or AppId of language app. If the calculator is such that if home was already on needs to be set the appropriate side to the Home... low memory, an application may need to quit and default back to the Home screen application's ID. If the calculator is running on one side, it will cause the Home screen application to home */ if (MO_option[MO_OPT_SPLIT_SCREEN] == D_MODE_SPLIT_FULL) EV_quit();
...EV_getAppID( (const UCHAR *) "TIHOME" ); if (MO_option[MO_OPT_SPLIT_2] == appID) MO_option[MO_OPT_SPLIT_2] = HomeID; MO_digestOptions(H_NULL); } TI-89 / TI-92 Plus Developer Guide Not for English or AppId of language app. If the calculator is such that if home was already on needs to be set the appropriate side to the Home... low memory, an application may need to quit and default back to the Home screen application's ID. If the calculator is running on one side, it will cause the Home screen application to home */ if (MO_option[MO_OPT_SPLIT_SCREEN] == D_MODE_SPLIT_FULL) EV_quit();
Developer Guide
Page 111
... = { /* func name #, help " appears in the Status Line when the cursor is on this function and also in the calculator installed App Extensions. The F3: Flash Apps catalog toolbar selection item will display the list of App Extensions in the F2 Flash App ...in the F1 Help Dialog box */ ATTR(OO_APPSTRING+STR_HELP+STR_appfunc, "app function help") ATTR(OO_APPSTRING+STR_HELP+STR_appprog, "app program help") ENDFRAME TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001 TIAPP */ ATTR(OO_APPSTRING+STR_appfunc, "appfunc") ATTR(OO_APPSTRING+STR_appprog, ...
... = { /* func name #, help " appears in the Status Line when the cursor is on this function and also in the calculator installed App Extensions. The F3: Flash Apps catalog toolbar selection item will display the list of App Extensions in the F2 Flash App ...in the F1 Help Dialog box */ ATTR(OO_APPSTRING+STR_HELP+STR_appfunc, "app function help") ATTR(OO_APPSTRING+STR_HELP+STR_appprog, "app program help") ENDFRAME TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001 TIAPP */ ATTR(OO_APPSTRING+STR_appfunc, "appfunc") ATTR(OO_APPSTRING+STR_appprog, ...
Developer Guide
Page 1137
... 26, 2001 Utilities 1095 AB_getGateArrayVersion Declaration: ULONG AB_getGateArrayVersion (void) Category(ies): Utilities Description: Returns the version number of all new TI-92 Plus and TI-89 calculators. Appendix A: System Routines - Gate array version 2 is used in the manufacture of the gate array.
... 26, 2001 Utilities 1095 AB_getGateArrayVersion Declaration: ULONG AB_getGateArrayVersion (void) Category(ies): Utilities Description: Returns the version number of all new TI-92 Plus and TI-89 calculators. Appendix A: System Routines - Gate array version 2 is used in the manufacture of the gate array.