Developer Guide
Page 2
... of this Guide, along with or arising out of the purchase or use of Texas Instruments Incorporated. Moreover, Texas Instruments shall not be liable to anyone for a particular purpose, regarding any programs or book materials and makes such materials available solely on an "as-is" basis...or consequential damages in connection with all other party. Important information Texas Instruments makes no event shall Texas Instruments be liable for developers, is available at www.ti.com/calc/developers/. © 2000, 2001 Texas Instruments Incorporated , TI-GRAPH LINK, and TI FLASH Studio are ...
... of this Guide, along with or arising out of the purchase or use of Texas Instruments Incorporated. Moreover, Texas Instruments shall not be liable to anyone for a particular purpose, regarding any programs or book materials and makes such materials available solely on an "as-is" basis...or consequential damages in connection with all other party. Important information Texas Instruments makes no event shall Texas Instruments be liable for developers, is available at www.ti.com/calc/developers/. © 2000, 2001 Texas Instruments Incorporated , TI-GRAPH LINK, and TI FLASH Studio are ...
Developer Guide
Page 3
... 17 4.2.2.2. Hardware Stack 25 6.3. User Interface Overview 15 4.1. Dynamic Pop-ups 18 4.2.2.3. ASIC registers ...11 4. ASM Programs 23 6. Introduction 1 1.1. Toolbars...17 4.2.2. Dynamic Pop-ups with Menu Features 18 4.3. Fonts ...19 4.5. Memory Map ...8 3.2.1. What are ASM Programs 25 6.2. Chapter Layout...1 1.3. The 68000 TI AMS Operating System Overview 5 3. Vector Table ...9 3.3. Register Usage 25 6.4. Calling...
... 17 4.2.2.2. Hardware Stack 25 6.3. User Interface Overview 15 4.1. Dynamic Pop-ups 18 4.2.2.3. ASIC registers ...11 4. ASM Programs 23 6. Introduction 1 1.1. Toolbars...17 4.2.2. Dynamic Pop-ups with Menu Features 18 4.3. Fonts ...19 4.5. Memory Map ...8 3.2.1. What are ASM Programs 25 6.2. Chapter Layout...1 1.3. The 68000 TI AMS Operating System Overview 5 3. Vector Table ...9 3.3. Register Usage 25 6.4. Calling...
Developer Guide
Page 4
... to FRAME 40 7.3.1.3. Length of Contents 6.5. Signature ...36 7.2. Attribute OO_APP_DEFAULT_MENU (0x5 42 7.3.1.3.6. Attribute OO_APP_DEFAULT_MENU_HANDLE (0x6 42 7.3.1.3.7. Byte Offset to Initial Data Table 34 7.1.3.7. Sample ASM Program 29 7. Flags...34 7.1.3.4. Attribute OO_APP_EXTENSIONS (0x8 42 TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001 ii Table of...
... to FRAME 40 7.3.1.3. Length of Contents 6.5. Signature ...36 7.2. Attribute OO_APP_DEFAULT_MENU (0x5 42 7.3.1.3.6. Attribute OO_APP_DEFAULT_MENU_HANDLE (0x6 42 7.3.1.3.7. Byte Offset to Initial Data Table 34 7.1.3.7. Sample ASM Program 29 7. Flags...34 7.1.3.4. Attribute OO_APP_EXTENSIONS (0x8 42 TI-89 / TI-92 Plus Developer Guide Not for Distribution Beta Version January 26, 2001 ii Table of...
Developer Guide
Page 5
... TI-BASIC 70 8.5. Method OO_APP_VIEWER (0xE 44 7.3.1.3.15. Frame Description Language 53 7.3.4. Mode Notification Flags 63 8.1.1.1. Method OO_APP_UNLOCALIZE (0xB 43 7.3.1.3.12. User-Defined Functions and Programs 67 8.3.3. Accessing a Library 53 7.3.3.3. Attribute OO_APPSTRING (0x1000 and up 45 7.3.1.4. Table of Contents iii 7.3.1.3.9. Method OO_APP_ABOUT (0x12 44 7.3.1.3.19. Built-in Functions and Commands 67...
... TI-BASIC 70 8.5. Method OO_APP_VIEWER (0xE 44 7.3.1.3.15. Frame Description Language 53 7.3.4. Mode Notification Flags 63 8.1.1.1. Method OO_APP_UNLOCALIZE (0xB 43 7.3.1.3.12. User-Defined Functions and Programs 67 8.3.3. Accessing a Library 53 7.3.3.3. Attribute OO_APPSTRING (0x1000 and up 45 7.3.1.4. Table of Contents iii 7.3.1.3.9. Method OO_APP_ABOUT (0x12 44 7.3.1.3.19. Built-in Functions and Commands 67...
Developer Guide
Page 9
...Estack Arguments and Results 176 15.6.2. Text Variable 151 14.6. String Variable 151 14.7. Graph Database 152 14.8. Assembly Program 160 15. User and Application Defined Functions and Programs 170 15.3. Working with Numbers 181 16.1. Tags ...162 15.2.2. Tags That Take More Than Two or a Variable... Polish Representation 161 15.2.1. Estack Calculations 177 15.7. An Example of Arguments ...... 168 15.2.8. Data Variable 150 14.5. Tokenized Programs and Functions 157 14.10. Programs and Functions in Text Format 159 14.11. Bitmap PIC Images 156 14.9.
...Estack Arguments and Results 176 15.6.2. Text Variable 151 14.6. String Variable 151 14.7. Graph Database 152 14.8. Assembly Program 160 15. User and Application Defined Functions and Programs 170 15.3. Working with Numbers 181 16.1. Tags ...162 15.2.2. Tags That Take More Than Two or a Variable... Polish Representation 161 15.2.1. Estack Calculations 177 15.7. An Example of Arguments ...... 168 15.2.8. Data Variable 150 14.5. Tokenized Programs and Functions 157 14.10. Programs and Functions in Text Format 159 14.11. Bitmap PIC Images 156 14.9.
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
... components of TI-BASIC extensions, a shared-code library, and language localization. 1 1. TI-89 / TI-92 Plus Developer Guide Not for ASM design. Chapter 6, Assembly Language Programming Overview, discusses the general ideas and concepts necessary for Distribution Beta Version January 26, 2001 Sample applications are considering Flash application development. Also included are...
... components of TI-BASIC extensions, a shared-code library, and language localization. 1 1. TI-89 / TI-92 Plus Developer Guide Not for ASM design. Chapter 6, Assembly Language Programming Overview, discusses the general ideas and concepts necessary for Distribution Beta Version January 26, 2001 Sample applications are considering Flash application development. Also included are...
Developer Guide
Page 45
... on PC requirements, the installation process, and the interface. Conventions Used in the System Routines (Entry Points) section. It is used to distinguish Assembly or C program text. Chapter 18, TI FLASH Studio™ (IDE) Overview, is described in this Guide Bold text indicates the name of an input parameter. The Courier...
... on PC requirements, the installation process, and the interface. Conventions Used in the System Routines (Entry Points) section. It is used to distinguish Assembly or C program text. Chapter 18, TI FLASH Studio™ (IDE) Overview, is described in this Guide Bold text indicates the name of an input parameter. The Courier...
Developer Guide
Page 48
.... The address of the jump table, a table of which give the software developer much greater control over the calculator. ASM programs can access low-level device drivers, the event manager, memory manager, symbol table manager, graphical user interface library, computer algebra ... Drivers: Power, LCD, Memory Manager Keyboard, Link Port, Timer Math Package Utility Routines Figure 2.2: Application/OS Interface TI-BASIC programming language provides ease of programming at the expense of speed and control of fully integrated applications. They are generally small (≤ 8 K for AMS 2.03...
.... The address of the jump table, a table of which give the software developer much greater control over the calculator. ASM programs can access low-level device drivers, the event manager, memory manager, symbol table manager, graphical user interface library, computer algebra ... Drivers: Power, LCD, Memory Manager Keyboard, Link Port, Timer Math Package Utility Routines Figure 2.2: Application/OS Interface TI-BASIC programming language provides ease of programming at the expense of speed and control of fully integrated applications. They are generally small (≤ 8 K for AMS 2.03...
Developer Guide
Page 55
...-89 / TI-92 Plus Hardware Overview 13 The DBus protocol specifies a maximum bit time of the link port. Bits 8-11 allow monitoring of two seconds. programming serial IO on RS232 control/status registers; If this register blanks the LCD.
...-89 / TI-92 Plus Hardware Overview 13 The DBus protocol specifies a maximum bit time of the link port. Bits 8-11 allow monitoring of two seconds. programming serial IO on RS232 control/status registers; If this register blanks the LCD.
Developer Guide
Page 65
...subprograms or from TI-BASIC as O, 3 and function keys. The OS provides default behavior for many of the antipiracy mechanism. ASM Programs Resides in Executes in cooperative multitasking through the OS. The OS makes a temporary RAM copy of which allow 68000 instructions to receive input... from inadvertent or malicious changes. Yes - ASM programs must poll the keyboard to execute in RAM. All calculators come with a freeware/shareware key which may have a license for special keys on...
...subprograms or from TI-BASIC as O, 3 and function keys. The OS provides default behavior for many of the antipiracy mechanism. ASM Programs Resides in Executes in cooperative multitasking through the OS. The OS makes a temporary RAM copy of which allow 68000 instructions to receive input... from inadvertent or malicious changes. Yes - ASM programs must poll the keyboard to execute in RAM. All calculators come with a freeware/shareware key which may have a license for special keys on...
Developer Guide
Page 66
... can override many TI-BASIC extension functions and subprograms. 1 - Flash applications have no OS-supported shared-code interface. Each ASM program implements one TI-BASIC subprogram. Shared code Yes - Each Flash application has an No object frame which can be used as a... Pointers to overriding system code would become invalid. Object frames can be arranged into a class hierarchy for other Flash applications or ASM programs. No - TI-89 / TI-92 Plus Developer Guide Not for language localizers. Calculator language localization is provided by Flash applications. ...
... can override many TI-BASIC extension functions and subprograms. 1 - Flash applications have no OS-supported shared-code interface. Each ASM program implements one TI-BASIC subprogram. Shared code Yes - Each Flash application has an No object frame which can be used as a... Pointers to overriding system code would become invalid. Object frames can be arranged into a class hierarchy for other Flash applications or ASM programs. No - TI-89 / TI-92 Plus Developer Guide Not for language localizers. Calculator language localization is provided by Flash applications. ...
Developer Guide
Page 67
...temporarily pushed onto and popped from 0x0400 to the TI-BASIC interpreter when your Flash applications enjoy a measure of calculator resources that ASM programs do not take up precious RAM. Because Flash applications are loaded into and execute from the Home screen author line just like other...-89 / TI-92 Plus Developer Guide Not for the TI-89 / TI-92 Plus calculator. What are allocated on the estack to write programs for Distribution Beta Version January 26, 2001 Because they appear as an interpreted language could never attain. The level 7 auto-vector handler throws a...
...temporarily pushed onto and popped from 0x0400 to the TI-BASIC interpreter when your Flash applications enjoy a measure of calculator resources that ASM programs do not take up precious RAM. Because Flash applications are loaded into and execute from the Home screen author line just like other...-89 / TI-92 Plus Developer Guide Not for the TI-89 / TI-92 Plus calculator. What are allocated on the estack to write programs for Distribution Beta Version January 26, 2001 Because they appear as an interpreted language could never attain. The level 7 auto-vector handler throws a...
Developer Guide
Page 68
... routines and data structures. call OS routines from subroutine with register A6 to access subroutine parameters and to be returned in subroutines. Chapter 6: Assembly Language Programming Overview Besides register A7, you should only save scratch register contents before returning from assembly language. D7 and A2 - A3. the assembler recognizes SP as...
... routines and data structures. call OS routines from subroutine with register A6 to access subroutine parameters and to be returned in subroutines. Chapter 6: Assembly Language Programming Overview Besides register A7, you should only save scratch register contents before returning from assembly language. D7 and A2 - A3. the assembler recognizes SP as...
Developer Guide
Page 69
...right-to OS-resident routines on the hardware stack. TI-89 / TI-92 Plus Developer Guide Not for local variables. For example, the program would call memcmp add.w #12,sp ; Use the movem.l instruction to determine the type and order of ID move .l #5,-(sp) ;...a2),a0 ; Example: subroutine linkage for memcmp is : ; get address of an OS routine to save and restore registers. Chapter 6: Assembly Language Programming Overview 27 6.5. Arguments are pushed onto the hardware stack in mind the size and range of local variables and two parameters. Use the C declaration...
...right-to OS-resident routines on the hardware stack. TI-89 / TI-92 Plus Developer Guide Not for local variables. For example, the program would call memcmp add.w #12,sp ; Use the movem.l instruction to determine the type and order of ID move .l #5,-(sp) ;...a2),a0 ; Example: subroutine linkage for memcmp is : ; get address of an OS routine to save and restore registers. Chapter 6: Assembly Language Programming Overview 27 6.5. Arguments are pushed onto the hardware stack in mind the size and range of local variables and two parameters. Use the C declaration...
Developer Guide
Page 70
move.w move.w . . . ;subroutine exit move.w movem.l unlk rts a6,#-8 ; allocate 8 bytes for Distribution Beta Version January 26, 2001 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) ; free stack space ; A7 A6 12 bytes L20(a6) saved ...
move.w move.w . . . ;subroutine exit move.w movem.l unlk rts a6,#-8 ; allocate 8 bytes for Distribution Beta Version January 26, 2001 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) ; free stack space ; A7 A6 12 bytes L20(a6) saved ...
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); ASM program waitkey accepts a keypress from the user. EStackIndex varname; varname = top_estack; /* Argument must be string containing name ...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; varname = top_estack; /* Get a keypress */ while ((ch = EV_getc(ST_PAUSE,...
...-92 Plus Developer Guide Not for something else */ if (TokenizeSymName(varname, TSF_PASS_ERRORS) == NULL) ER_throw(ER_INDIR_STRING_NOT_VARNAME); ASM program waitkey accepts a keypress from the user. EStackIndex varname; varname = top_estack; /* Argument must be string containing name ...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; varname = top_estack; /* Get a keypress */ while ((ch = EV_getc(ST_PAUSE,...
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