Developer Guide
Page 2
..., and the sole and exclusive liability of Texas Instruments, regardless of the form of action, shall not exceed the purchase price of this Guide, along with or arising out of the purchase or use of these materials by any programs or book materials and makes such materials available... solely on an "as-is" basis. Moreover, Texas Instruments shall not be liable to anyone for special, collateral, incidental, or consequential damages in connection...
..., and the sole and exclusive liability of Texas Instruments, regardless of the form of action, shall not exceed the purchase price of this Guide, along with or arising out of the purchase or use of these materials by any programs or book materials and makes such materials available... solely on an "as-is" basis. Moreover, Texas Instruments shall not be liable to anyone for special, collateral, incidental, or consequential damages in connection...
Developer Guide
Page 3
... Layout...1 1.3. Vector Table ...9 3.3. Menus ...16 4.2.1. Dynamic Pop-ups with Menu Features 18 4.3. Assembly Language Programming Overview 25 6.1. Calling Flash-ROM-Resident Routines 26 TI-89 / TI-92 Plus Developer Guide Not for Distribution ...Applications vs. Windows...15 4.2. Static Pop-ups 17 4.2.2.2. i Table of this Guide 3 2. User Interface Overview 15 4.1. Introduction 1 1.1. What are ASM Programs 25 6.2. Purpose of Contents 1. The Status Line 22 5. Memory Map ...8 3.2.1. Dynamic Pop-ups 18 4.2.2.3. Register Usage 25 6.4. The TI-89 /...
... Layout...1 1.3. Vector Table ...9 3.3. Menus ...16 4.2.1. Dynamic Pop-ups with Menu Features 18 4.3. Assembly Language Programming Overview 25 6.1. Calling Flash-ROM-Resident Routines 26 TI-89 / TI-92 Plus Developer Guide Not for Distribution ...Applications vs. Windows...15 4.2. Static Pop-ups 17 4.2.2.2. i Table of this Guide 3 2. User Interface Overview 15 4.1. Introduction 1 1.1. What are ASM Programs 25 6.2. Purpose of Contents 1. The Status Line 22 5. Memory Map ...8 3.2.1. Dynamic Pop-ups 18 4.2.2.3. Register Usage 25 6.4. The TI-89 /...
Developer Guide
Page 4
... Data Table 35 7.1.3.8. Object Frame Attributes 40 7.3.1.3.1. Internal Application Name 33 7.1.3.3. ii Table of Contents 6.5. FRAME ...39 7.3.1.2. Attribute OO_APP_NAME (0x2 41 7.3.1.3.3. Signature ...36 7.2. Sample ASM Program 29 7. File Format ...31 7.1.1. Application Header 33 7.1.3.1. Attribute OO_APP_DEFAULT_MENU_HANDLE (0x6 42 7.3.1.3.7.
... Data Table 35 7.1.3.8. Object Frame Attributes 40 7.3.1.3.1. Internal Application Name 33 7.1.3.3. ii Table of Contents 6.5. FRAME ...39 7.3.1.2. Attribute OO_APP_NAME (0x2 41 7.3.1.3.3. Signature ...36 7.2. Sample ASM Program 29 7. File Format ...31 7.1.1. Application Header 33 7.1.3.1. Attribute OO_APP_DEFAULT_MENU_HANDLE (0x6 42 7.3.1.3.7.
Developer Guide
Page 5
... OO_APP_ABOUT (0x12 44 7.3.1.3.19. Language Localization 56 7.3.4.1. Attribute OO_APP_ICON (0xF 44 7.3.1.3.16. Frame Description Language 53 7.3.4. MO_option Array and Settings 64 8.2. User-Defined Functions and Programs 67 8.3.3. Interfacing with TI-BASIC 70 8.5. Creating the Library Interface 51 7.3.3.2. TI-BASIC Extensions 48 7.3.3. Integrating a Flash Application 63 8.1. Switching to the Home Screen 66...
... OO_APP_ABOUT (0x12 44 7.3.1.3.19. Language Localization 56 7.3.4.1. Attribute OO_APP_ICON (0xF 44 7.3.1.3.16. Frame Description Language 53 7.3.4. MO_option Array and Settings 64 8.2. User-Defined Functions and Programs 67 8.3.3. Interfacing with TI-BASIC 70 8.5. Creating the Library Interface 51 7.3.3.2. TI-BASIC Extensions 48 7.3.3. Integrating a Flash Application 63 8.1. Switching to the Home Screen 66...
Developer Guide
Page 9
... Overview ...181 TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001 Data Variable 150 14.5. Assembly Program 160 15. One-argument Tags 167 15.2.6. The Expression Stack 174 15.6. Overview ...161 15.2. Primary, Secondary, and Command Tags 169 15...Tags That Take More Than Two or a Variable Number of Exponentiation, Multiplication, and Addition 172 15.5. User and Application Defined Functions and Programs 170 15.3. An Example of Contents vii 14.4. Text Variable 151 14.6. Third Party Data 160 14.12. Table of Working on the...
... Overview ...181 TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001 Data Variable 150 14.5. Assembly Program 160 15. One-argument Tags 167 15.2.6. The Expression Stack 174 15.6. Overview ...161 15.2. Primary, Secondary, and Command Tags 169 15...Tags That Take More Than Two or a Variable Number of Exponentiation, Multiplication, and Addition 172 15.5. User and Application Defined Functions and Programs 170 15.3. An Example of Contents vii 14.4. Text Variable 151 14.6. Third Party Data 160 14.12. Table of Working on the...
Developer Guide
Page 29
... ...923 EV_setCmdState ...924 EV_setFKeyState ...925 EV_startApp ...926 EV_suspendPainting ...927 EV_switch...928 EX_getBasecodeParmBlock 929 FL_getHardwareParmBlock 930 handleRclKey ...932 handleVarLinkKey ...933 LOC_formatDate ...934 LOC_getLocalDateFormat 935 LOC_localVersionDate 936 Program I/O Screen 937 cmd_clrio ...939 cmd_disp ...940 Solver ...941 push_csolve...943 push_czeros ...944 push_nSolve...945 push_solve ...946 push_zeros ...947 Statistics...949 cmd_showstat...951 push_randnorm ...952 QstatRcl...
... ...923 EV_setCmdState ...924 EV_setFKeyState ...925 EV_startApp ...926 EV_suspendPainting ...927 EV_switch...928 EX_getBasecodeParmBlock 929 FL_getHardwareParmBlock 930 handleRclKey ...932 handleVarLinkKey ...933 LOC_formatDate ...934 LOC_getLocalDateFormat 935 LOC_localVersionDate 936 Program I/O Screen 937 cmd_clrio ...939 cmd_disp ...940 Solver ...941 push_csolve...943 push_czeros ...944 push_nSolve...945 push_solve ...946 push_zeros ...947 Statistics...949 cmd_showstat...951 push_randnorm ...952 QstatRcl...
Developer Guide
Page 39
... 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 for User-Defined Catalog 68 Figure 11.1: Window Regions 103 Figure 11.2: Screen Shot from Test...
... 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 for User-Defined Catalog 68 Figure 11.1: Window Regions 103 Figure 11.2: Screen Shot from Test...
Developer Guide
Page 42
... Function Stored in Text 159 Table 14.16: Data Object for Third Party Data 160 Table 14.17: Data Object for an Assembly Program 160 Table 15.1: Examples of Polish Representations 162 Table 15.2: Tagged Integer Examples 164 Table 15.3: Tagged Fraction Examples 164 Table 15.4: Variable Name Examples ...
... Function Stored in Text 159 Table 14.16: Data Object for Third Party Data 160 Table 14.17: Data Object for an Assembly Program 160 Table 15.1: Examples of Polish Representations 162 Table 15.2: Tagged Integer Examples 164 Table 15.3: Tagged Fraction Examples 164 Table 15.4: Variable Name Examples ...
Developer Guide
Page 43
.... TI-89 / TI-92 Plus Developer Guide Not for ASM design. Introduction 1.1. 1.2. Chapter 6, Assembly Language Programming Overview, discusses the general ideas and concepts necessary for Distribution Beta Version January 26, 2001 Sample applications are instructions...and the user interface are discussed in detail. Chapter 4, User Interface Overview, provides brief explanations and examples of both Assembly Language Programs (ASM) and Flash applications. Also included are provided. Chapter 7, Flash Application Layout, contains detailed descriptions of the crucial components ...
.... TI-89 / TI-92 Plus Developer Guide Not for ASM design. Introduction 1.1. 1.2. Chapter 6, Assembly Language Programming Overview, discusses the general ideas and concepts necessary for Distribution Beta Version January 26, 2001 Sample applications are instructions...and the user interface are discussed in detail. Chapter 4, User Interface Overview, provides brief explanations and examples of both Assembly Language Programs (ASM) and Flash applications. Also included are provided. Chapter 7, Flash Application Layout, contains detailed descriptions of the crucial components ...
Developer Guide
Page 45
.... Italicized text indicates the name of a function, macro, or global variable that steps through the application development process. It is used to distinguish Assembly or C program text. TI-89 / TI-92 Plus Developer Guide Not for TI FLASH Studio. Chapter 1: Introduction 3 1.3. The Courier font is usually associated with a function prototype. Chapter...
.... Italicized text indicates the name of a function, macro, or global variable that steps through the application development process. It is used to distinguish Assembly or C program text. TI-89 / TI-92 Plus Developer Guide Not for TI FLASH Studio. Chapter 1: Introduction 3 1.3. The Courier font is usually associated with a function prototype. Chapter...
Developer Guide
Page 48
... system routines are available to offer the same speed and efficient hardware access as Flash applications but as shown in memory location 0xC8. ASM programs are routines written in RAM. TI-89 / TI-92 Plus Developer Guide Not for AMS 2.04) and execute in C or 68000 ... (≤ 8 K for AMS 2.03 and ≤ 24 K for Distribution Beta Version January 26, 2001 Through the jump table, applications, and ASM programs can be called from the Home screen author line. Event Manager Graphical User Interface Library Applications Jump Table Symbol Table Manager Computer Algebra System Low...
... system routines are available to offer the same speed and efficient hardware access as Flash applications but as shown in memory location 0xC8. ASM programs are routines written in RAM. TI-89 / TI-92 Plus Developer Guide Not for AMS 2.04) and execute in C or 68000 ... (≤ 8 K for AMS 2.03 and ≤ 24 K for Distribution Beta Version January 26, 2001 Through the jump table, applications, and ASM programs can be called from the Home screen author line. Event Manager Graphical User Interface Library Applications Jump Table Symbol Table Manager Computer Algebra System Low...
Developer Guide
Page 55
programming serial IO on RS232 control/status registers; Bits 2-7 allow for enabling or disabling their corresponding interrupts. Writing a 1 to Bit 2 of this register will trigger an ...
programming serial IO on RS232 control/status registers; Bits 2-7 allow for enabling or disabling their corresponding interrupts. Writing a 1 to Bit 2 of this register will trigger an ...
Developer Guide
Page 65
...≤ 24 KB - Applications can only be installed in the code segment. The OS provides default behavior for each application. ASM programs can define and reference global and static variables any chunk of the special keys such as subprograms or from inadvertent or malicious changes.... memory - Yes - No - Flash applications participate in Size Data segment Copy protection O menu User interaction Flash Application ASM Program protected Flash memory - ASM programs must poll the keyboard to execute in place, i.e., the app does not need to be moved to the OS. No ...
...≤ 24 KB - Applications can only be installed in the code segment. The OS provides default behavior for each application. ASM programs can define and reference global and static variables any chunk of the special keys such as subprograms or from inadvertent or malicious changes.... memory - Yes - No - Flash applications participate in Size Data segment Copy protection O menu User interaction Flash Application ASM Program protected Flash memory - ASM programs must poll the keyboard to execute in place, i.e., the app does not need to be moved to the OS. No ...
Developer Guide
Page 66
...A single Flash application can override many TI-BASIC extension functions and subprograms. 1 - Each ASM program implements one TI-BASIC subprogram. Shared code Yes - ASM programs have a shared-code interface which exposes its attributes (data and methods). Object-oriented features Yes ...- Object frames can be arranged into a class hierarchy for other Flash applications or ASM programs. No - ASM programs may move during heap garbage collect. Calculator language localization is provided by Flash applications. TI-BASIC extensions ≥ ...
...A single Flash application can override many TI-BASIC extension functions and subprograms. 1 - Each ASM program implements one TI-BASIC subprogram. Shared code Yes - ASM programs have a shared-code interface which exposes its attributes (data and methods). Object-oriented features Yes ...- Object frames can be arranged into a class hierarchy for other Flash applications or ASM programs. No - ASM programs may move during heap garbage collect. Calculator language localization is provided by Flash applications. TI-BASIC extensions ≥ ...
Developer Guide
Page 67
...they appear as an interpreted language could never attain. What are subroutines written in RAM. You should already know how to occur. ASM programs cannot, however, return function values on the stack, subroutine local variables are loaded into and execute from the stack. See the TI...calls, subroutine parameters are passed on the estack to use A7 for AMS 2.04) and execute in 68000 assembly language. ASM programs are ASM Programs? Because Flash applications are allocated on the stack, and register contents can be familiar with the advantage of speed and direct ...
...they appear as an interpreted language could never attain. What are subroutines written in RAM. You should already know how to occur. ASM programs cannot, however, return function values on the stack, subroutine local variables are loaded into and execute from the stack. See the TI...calls, subroutine parameters are passed on the estack to use A7 for AMS 2.04) and execute in 68000 assembly language. ASM programs are ASM Programs? Because Flash applications are allocated on the stack, and register contents can be familiar with the advantage of speed and direct ...
Developer Guide
Page 68
... only scratch registers, then you use the remaining registers as ; A6 whenever you do not need to allocate temporary local variables. 26 6.4. Chapter 6: Assembly Language Programming Overview Besides register A7, you call kbhit() ; Registers D0, D1, D2, A0, and A1 are scratch registers. C uses register A6 as the subroutine parameter and...
... only scratch registers, then you use the remaining registers as ; A6 whenever you do not need to allocate temporary local variables. 26 6.4. Chapter 6: Assembly Language Programming Overview Besides register A7, you call kbhit() ; Registers D0, D1, D2, A0, and A1 are scratch registers. C uses register A6 as the subroutine parameter and...
Developer Guide
Page 69
...memcmp(ID, myid, sizeof(myid)) == 0) move .l memcmp(a2),a0 ; Use unlk to allocate space from memcmp bne notTheSame ; For example, the program would call is two bytes in mind the size and range of ID move .l #5,-(sp) ; get address of myid pea id(a6) ; not ...92 Plus Developer Guide Not for local variables. push address of C data types. call memcmp add.w #12,sp ; Chapter 6: Assembly Language Programming Overview 27 6.5. test result from the hardware stack for Distribution Beta Version January 26, 2001 Arguments are pushed onto the hardware stack in right...
...memcmp(ID, myid, sizeof(myid)) == 0) move .l memcmp(a2),a0 ; Use unlk to allocate space from memcmp bne notTheSame ; For example, the program would call is two bytes in mind the size and range of ID move .l #5,-(sp) ; get address of myid pea id(a6) ; not ...92 Plus Developer Guide Not for local variables. push address of C data types. call memcmp add.w #12,sp ; Chapter 6: Assembly Language Programming Overview 27 6.5. test result from the hardware stack for Distribution Beta Version January 26, 2001 Arguments are pushed onto the hardware stack in right...
Developer Guide
Page 70
... ; get parameter a from subroutine Here is how stack memory looks in D0 ; move.w move.w . . . ;subroutine exit move.w movem.l unlk rts a6,#-8 ; 28 Chapter 6: Assembly Language Programming Overview Its C prototype is : ;subroutine entry mySubr: link movem.l . . . save registers 8(a6),d0 d0,-8(a6) ; return function result in the above example after subroutine entry...
... ; get parameter a from subroutine Here is how stack memory looks in D0 ; move.w move.w . . . ;subroutine exit move.w movem.l unlk rts a6,#-8 ; 28 Chapter 6: Assembly Language Programming Overview Its C prototype is : ;subroutine entry mySubr: link movem.l . . . save registers 8(a6),d0 d0,-8(a6) ; return function result in the above example after subroutine entry...
Developer Guide
Page 71
...92 Plus Developer Guide Not for something else */ if (TokenizeSymName(varname, TSF_PASS_ERRORS) == NULL) ER_throw(ER_INDIR_STRING_NOT_VARNAME); Event e; Sample ASM Program ASM programs do not have to wait for a keypress. Here is pressed. */ #include "tiams.h" /* Entry point must be string containing...of a variable */ if (ESTACK(varname) != STR_DATA_TAG) ER_throw(ER_ARG_MUST_BE_STRING); /* Get pointer to beginning of the programmer's choosing. /* ASM program to be called main */ void main(void) { Access_AMS_Global_Variables; Go into , say, variable k, in low power mode until a key...
...92 Plus Developer Guide Not for something else */ if (TokenizeSymName(varname, TSF_PASS_ERRORS) == NULL) ER_throw(ER_INDIR_STRING_NOT_VARNAME); Event e; Sample ASM Program ASM programs do not have to wait for a keypress. Here is pressed. */ #include "tiams.h" /* Entry point must be string containing...of a variable */ if (ESTACK(varname) != STR_DATA_TAG) ER_throw(ER_ARG_MUST_BE_STRING); /* Get pointer to beginning of the programmer's choosing. /* ASM program to be called main */ void main(void) { Access_AMS_Global_Variables; Go into , say, variable k, in low power mode until a key...
Developer Guide
Page 72
30 Chapter 6: Assembly Language Programming Overview TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001
30 Chapter 6: Assembly Language Programming Overview TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001