Difference between revisions of "84PCE:OS:C Include File"
From WikiTI
Line 1: | Line 1: | ||
[[Category:84PCE:OS_Information]] | [[Category:84PCE:OS_Information]] | ||
− | = C | + | = C Definitions = |
<pre>// Parts from Matt "MateoConLechuga" Waltz and Jacob "jacobly" Young, in addtion to | <pre>// Parts from Matt "MateoConLechuga" Waltz and Jacob "jacobly" Young, in addtion to | ||
// contributors of http://wikiti.brandonw.net/index.php?title=84PCE:OS:Include_File | // contributors of http://wikiti.brandonw.net/index.php?title=84PCE:OS:Include_File | ||
− | // Latest as of | + | // Latest as of October 2016 |
#ifndef TICE_H | #ifndef TICE_H | ||
Line 12: | Line 12: | ||
#include <stddef.h> | #include <stddef.h> | ||
− | |||
− | /* | + | /************* HARDWARE AND CUSTOM ROUTINES *************/ |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | /* | + | /* Creates a random integer value */ |
− | + | #define randInt(min, max) (unsigned)rand() % ((max) - (min) + 1) + (min)) | |
− | + | ||
− | + | ||
− | + | ||
− | /* | + | /* RTC define -- useful for srand() */ |
− | + | #define rtc_Time() (*(volatile uint32_t*)0xF30044) | |
− | + | ||
− | + | ||
− | /** | + | /* RTC definitions */ |
− | * | + | #define RTC_UNFREEZE (1<<7) |
− | + | #define RTC_FREEZE (0<<7) | |
− | + | #define RTC_LOAD (1<<6) | |
− | + | #define RTC_ENABLE (1<<0)|RTC_UNFREEZE | |
+ | #define RTC_DISABLE (0<<0) | ||
+ | |||
+ | /* RTC registers */ | ||
+ | #define rtc_Seconds (*(volatile uint8_t*)0xF30000) | ||
+ | #define rtc_Minutes (*(volatile uint8_t*)0xF30004) | ||
+ | #define rtc_Hours (*(volatile uint8_t*)0xF30008) | ||
+ | #define rtc_Days (*(volatile uint16_t*)0xF3000C) | ||
+ | #define rtc_AlarmSeconds (*(uint8_t*)0xF30010) | ||
+ | #define rtc_AlarmMinutes (*(uint8_t*)0xF30014) | ||
+ | #define rtc_AlarmHours (*(uint8_t*)0xF30018) | ||
+ | #define rtc_Control (*(uint8_t*)0xF30020) | ||
+ | #define rtc_LoadSeconds (*(uint8_t*)0xF30024) | ||
+ | #define rtc_LoadMinutes (*(uint8_t*)0xF30028) | ||
+ | #define rtc_LoadHours (*(uint8_t*)0xF3002C) | ||
+ | #define rtc_LoadDays (*(uint16_t*)0xF30030) | ||
+ | #define rtc_IntStatus (*(volatile uint8_t*)0xF30034) | ||
+ | #define rtc_IntAcknowledge (*(volatile uint8_t*)0xF30034) | ||
+ | #define rtc_IsBusy() (rtc_Control & RTC_LOAD) | ||
+ | |||
+ | /* RTC interrupt masks */ | ||
+ | #define RTC_ALARM_INT_SOURCE (1<<5) | ||
+ | #define RTC_DAY_INT_SOURCE (1<<4) | ||
+ | #define RTC_HR_INT_SOURCE (1<<3) | ||
+ | #define RTC_MIN_INT_SOURCE (1<<2) | ||
+ | #define RTC_SEC_INT_SOURCE (1<<1) | ||
+ | |||
+ | /* RTC interrupt statuses */ | ||
+ | #define RTC_LOAD_INT (1<<5) | ||
+ | #define RTC_ALARM_INT (1<<4) | ||
+ | #define RTC_DAY_INT (1<<3) | ||
+ | #define RTC_HR_INT (1<<2) | ||
+ | #define RTC_MIN_INT (1<<1) | ||
+ | #define RTC_SEC_INT (1<<0) | ||
+ | #define RTC_INT_MASK (RTC_SEC_INT | RTC_MIN_INT | RTC_HR_INT | RTC_DAY_INT | RTC_ALARM_INT | RTC_LOAD_INT) | ||
+ | |||
+ | /* Whole bunch of useful timer functions */ | ||
+ | #define TIMER1_ENABLE 1 << 0 // Enables Timer 1 | ||
+ | #define TIMER1_DISABLE 0 << 0 // Disables Timer 1 | ||
+ | #define TIMER1_32K 1 << 1 // Use the 32K clock for timer 1 | ||
+ | #define TIMER1_CPU 0 << 1 // Use the CPU clock rate for timer 1 | ||
+ | #define TIMER1_0INT 1 << 2 // Enable an interrupt when 0 is reached for the timer 1 | ||
+ | #define TIMER1_NOINT 0 << 2 // Disable interrupts for the timer 1 | ||
+ | #define TIMER1_UP 1 << 9 // Timer 1 counts up | ||
+ | #define TIMER1_DOWN 0 << 9 // Timer 1 counts down | ||
+ | |||
+ | #define TIMER2_ENABLE 1 << 3 // Enables Timer 2 | ||
+ | #define TIMER2_DISABLE 0 << 3 // Enables Timer 2 | ||
+ | #define TIMER2_32K 1 << 4 // Use the 32K clock for timer 2 | ||
+ | #define TIMER2_CPU 0 << 4 // Use the CPU clock rate for timer 2 | ||
+ | #define TIMER2_0INT 1 << 5 // Enable an interrupt when 0 is reached for the timer 2 | ||
+ | #define TIMER2_NOINT 0 << 5 // Disable interrupts for the timer 2 | ||
+ | #define TIMER2_UP 1 << 10 // Timer 2 counts up | ||
+ | #define TIMER2_DOWN 0 << 10 // Timer 2 counts down | ||
+ | |||
+ | /* These defines can be used to check the status of the timer */ | ||
+ | #define TIMER1_MATCH1 1 << 0 // Timer 1 hit the first match value | ||
+ | #define TIMER1_MATCH2 1 << 1 // Timer 1 hit the second match value | ||
+ | #define TIMER1_RELOADED 1 << 2 // Timer 1 was reloaded (Needs to have TIMER1_0INT enabled) | ||
+ | |||
+ | #define TIMER2_MATCH1 1 << 3 // Timer 2 hit the first match value | ||
+ | #define TIMER2_MATCH2 1 << 4 // Timer 2 hit the second match value | ||
+ | #define TIMER2_RELOADED 1 << 5 // Timer 2 was reloaded (Needs to have TIMER2_0INT enabled) | ||
+ | |||
+ | /* Timer registers */ | ||
+ | #define timer_1_Counter (*(volatile uint32_t *)0xF20000) | ||
+ | #define timer_2_Counter (*(volatile uint32_t *)0xF20010) | ||
+ | #define timer_1_ReloadValue (*(uint32_t *)0xF20004) | ||
+ | #define timer_2_ReloadValue (*(uint32_t *)0xF20014) | ||
+ | #define timer_1_MatchValue_1 (*(uint32_t *)0xF20008) | ||
+ | #define timer_1_MatchValue_2 (*(uint32_t *)0xF2000C) | ||
+ | #define timer_2_MatchValue_1 (*(uint32_t *)0xF20018) | ||
+ | #define timer_2_MatchValue_2 (*(uint32_t *)0xF2001C) | ||
+ | #define timer_Control (*(uint32_t *)0xF20030) | ||
+ | #define timer_EnableInt (*(uint16_t *)0xF20038) | ||
+ | #define timer_IntStatus (*(volatile uint16_t *)0xF20034) | ||
+ | #define timer_IntAcknowledge (*(volatile uint16_t *)0xF20034) | ||
/* LCD defines */ | /* LCD defines */ | ||
− | #define | + | #define lcd_BacklightLevel (*(uint8_t*)0xF60024) |
− | + | ||
− | / | + | /* OS varaible type definitions */ |
− | + | ||
− | + | ||
typedef struct { int8_t sign, exp; uint8_t mant[7]; } real_t; | typedef struct { int8_t sign, exp; uint8_t mant[7]; } real_t; | ||
typedef struct { real_t real, imag; } cplx_t; | typedef struct { real_t real, imag; } cplx_t; | ||
− | typedef struct { uint16_t dim; real_t | + | typedef struct { uint16_t dim; real_t items[1]; } list_t; |
− | typedef struct { uint16_t dim; cplx_t | + | typedef struct { uint16_t dim; cplx_t items[1]; } cplx_list_t; |
− | typedef struct { uint8_t cols, rows; real_t | + | typedef struct { uint8_t cols, rows; real_t items[1]; } matrix_t; |
− | typedef struct { uint16_t size; uint8_t | + | typedef struct { uint16_t len; char data[1]; } string_t; |
+ | typedef struct { uint16_t len; char data[1]; } equ_t; | ||
+ | typedef struct { uint16_t size; uint8_t data[1]; } var_t; | ||
− | + | #define matrix_element(matrix, row, col) ((matrix)->items[(row)+(col)*(matrix)->rows]) | |
− | + | #define NEG_SIGN_MASK 0x80 | |
− | + | #define POS_SIGN_MASK 0x00 | |
− | + | #define CPLX_SIGN_MASK 0x0C | |
+ | |||
+ | /* Cleans up everything and gets ready to enter back to the OS when you are ready to exit your program */ | ||
void prgm_CleanUp(void); | void prgm_CleanUp(void); | ||
− | |||
− | |||
#define pgrm_CleanUp prgm_CleanUp | #define pgrm_CleanUp prgm_CleanUp | ||
+ | |||
+ | /* A faster implementation of memset */ | ||
+ | void *memset_fast(void *ptr,int value,size_t num); | ||
+ | |||
+ | |||
+ | /************* TI OS SPECIFIC ROUTINES AND IMPLEMENTATIONS *************/ | ||
+ | |||
/** | /** | ||
− | * | + | * Resets the RTC back to its original values |
+ | * If enable is true, the RTC will be enabled during this function | ||
*/ | */ | ||
− | void | + | void boot_RTCInitialize(bool enable); |
/** | /** | ||
Line 100: | Line 163: | ||
*/ | */ | ||
bool boot_CheckOnPressed(void); | bool boot_CheckOnPressed(void); | ||
+ | |||
+ | /** | ||
+ | * Basically a reimplemented form of printf that prints to some debugging device | ||
+ | */ | ||
+ | void boot_DebugPrintf(const char *string); | ||
/** | /** | ||
− | * | + | * Turns off the calculator (probably not a good idea to use) |
*/ | */ | ||
− | + | void boot_TurnOff(void); | |
/** | /** | ||
− | * | + | * Inserts a new line at the current cursor posistion on the homescreen |
− | + | ||
*/ | */ | ||
− | + | void boot_NewLine(void); | |
− | + | ||
− | + | /** | |
− | + | * Prints the boot version at a really silly place on the homescreen | |
− | + | */ | |
− | + | void boot_PrintBootVersion(void); | |
− | + | ||
− | + | /** | |
− | + | * Returns the current battery status | |
− | + | */ | |
− | + | uint8_t boot_GetBatteryStatus(void); | |
− | + | ||
− | + | /** | |
− | + | * Waits for 10 ms | |
− | + | */ | |
− | + | void boot_WaitShort(void); | |
− | + | ||
− | + | /** | |
− | + | * Set the time of the calculator | |
− | + | */ | |
− | + | void boot_SetTime(uint8_t seconds, uint8_t minutes, uint8_t hours); | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
/** | /** | ||
Line 176: | Line 213: | ||
*/ | */ | ||
void os_SetDrawFGColor(int color); | void os_SetDrawFGColor(int color); | ||
− | + | uint24_t os_GetDrawFGColor(void); | |
/** | /** | ||
Line 182: | Line 219: | ||
* os_GetDrawBGColor is only useable in OS 5.2 and above; use at your own risk | * os_GetDrawBGColor is only useable in OS 5.2 and above; use at your own risk | ||
*/ | */ | ||
− | void os_SetDrawBGColor( | + | void os_SetDrawBGColor(uint24_t color); |
− | + | uint24_t os_GetDrawBGColor(void); | |
/** | /** | ||
Line 189: | Line 226: | ||
*/ | */ | ||
void os_SetCursorPos(uint8_t curRow, uint8_t curCol); | void os_SetCursorPos(uint8_t curRow, uint8_t curCol); | ||
− | void os_GetCursorPos( | + | void os_GetCursorPos(uint8_t **curRow, uint8_t **curCol); |
/** | /** | ||
Line 197: | Line 234: | ||
*/ | */ | ||
void os_FontSelect(char id); | void os_FontSelect(char id); | ||
− | + | uint24_t os_FontGetID(void); | |
/** | /** | ||
Line 203: | Line 240: | ||
* Second function is used to get the height of the characters | * Second function is used to get the height of the characters | ||
*/ | */ | ||
− | + | uint24_t os_FontGetWidth(const char *string); | |
− | + | uint24_t os_FontGetHeight(void); | |
/** | /** | ||
Line 210: | Line 247: | ||
* Returns the end column | * Returns the end column | ||
*/ | */ | ||
− | + | uint24_t os_FontDrawText(const char *string, uint16_t col, uint8_t row); | |
− | + | uint24_t os_FontDrawTransText(const char *string, uint16_t col, uint8_t row); | |
/** | /** | ||
Line 217: | Line 254: | ||
* Returns 1 if string fits on screen, 0 otherwise | * Returns 1 if string fits on screen, 0 otherwise | ||
*/ | */ | ||
− | + | uint24_t os_PutStrFull(const char *string); | |
/** | /** | ||
Line 223: | Line 260: | ||
* Returns 1 if string fits on line, 0 otherwise | * Returns 1 if string fits on line, 0 otherwise | ||
*/ | */ | ||
− | + | uint24_t os_PutStrLine(const char *string); | |
/** | /** | ||
Line 240: | Line 277: | ||
*/ | */ | ||
void os_ThrowError(uint8_t error); | void os_ThrowError(uint8_t error); | ||
+ | |||
+ | /** | ||
+ | * Returns a pointer to the system stats | ||
+ | */ | ||
+ | void *os_GetSystemStats(void); | ||
+ | |||
+ | /** | ||
+ | * Sets up the defualt error handlers if an OS routine encounters an error when running | ||
+ | */ | ||
+ | void os_PushErrorHandler(void *routine); | ||
+ | void os_PopErrorHandler(void); | ||
/** | /** | ||
Line 270: | Line 318: | ||
/** | /** | ||
− | * Copies a real_t | + | * Copies a real_t |
− | + | ||
*/ | */ | ||
− | real_t | + | real_t os_RealCopy(const real_t *src); |
/** | /** | ||
− | * | + | * Unary operations used to interact with the OS math functions |
− | + | ||
*/ | */ | ||
− | real_t | + | real_t os_RealAcosRad(const real_t *arg); |
− | real_t | + | real_t os_RealAsinRad(const real_t *arg); |
− | real_t | + | real_t os_RealAtanRad(const real_t *arg); |
− | real_t | + | real_t os_RealCosRad(const real_t *arg); |
− | real_t | + | real_t os_RealRadToDeg(const real_t *arg); |
− | real_t | + | real_t os_RealExp(const real_t *arg); |
− | real_t | + | real_t os_RealFloor(const real_t *arg); |
− | real_t | + | real_t os_RealFrac(const real_t *arg); |
− | real_t | + | real_t os_RealRoundInt(const real_t *arg); |
− | real_t | + | real_t os_RealLog(const real_t *arg); |
− | real_t | + | real_t os_RealNeg(const real_t *arg); |
− | real_t | + | real_t os_RealDegToRad(const real_t *arg); |
− | real_t | + | real_t os_RealInv(const real_t *arg); |
− | real_t | + | real_t os_RealSinRad(const real_t *arg); |
− | real_t | + | real_t os_RealSqrt(const real_t *arg); |
− | real_t | + | real_t os_RealTanRad(const real_t *arg); |
− | real_t | + | real_t os_RealInt(const real_t *arg); |
− | cplx_t | + | cplx_t os_CplxSquare(const cplx_t *arg); |
/** | /** | ||
* Binary operations used to interact with the OS math functions | * Binary operations used to interact with the OS math functions | ||
− | |||
*/ | */ | ||
− | real_t | + | real_t os_RealAdd(const real_t *arg1, const real_t *arg2); |
− | real_t | + | real_t os_RealDiv(const real_t *arg1, const real_t *arg2); |
− | real_t | + | real_t os_RealGcd(const real_t *arg1, const real_t *arg2); |
− | real_t | + | real_t os_RealLcm(const real_t *arg1, const real_t *arg2); |
− | real_t | + | real_t os_RealMax(const real_t *arg1, const real_t *arg2); |
− | real_t | + | real_t os_RealMin(const real_t *arg1, const real_t *arg2); |
− | real_t | + | real_t os_RealMul(const real_t *arg1, const real_t *arg2); |
− | real_t | + | real_t os_RealNcr(const real_t *total, const real_t *num); |
− | real_t | + | real_t os_RealNpr(const real_t *total, const real_t *num); |
− | real_t | + | real_t os_RealPow(const real_t *base, const real_t *exp); |
− | real_t | + | real_t os_RealRandInt(const real_t *min, const real_t *max); |
− | real_t | + | real_t os_RealMod(const real_t *arg1, const real_t *arg2); |
− | real_t | + | real_t os_RealSub(const real_t *arg1, const real_t *arg2); |
/** | /** | ||
* digits must be in the range 0 - 9 | * digits must be in the range 0 - 9 | ||
*/ | */ | ||
− | real_t | + | real_t os_RealRound(const real_t *arg, char digits); |
/** | /** | ||
Line 324: | Line 369: | ||
*/ | */ | ||
int os_RealCompare(const real_t *arg1, const real_t *arg2); | int os_RealCompare(const real_t *arg1, const real_t *arg2); | ||
+ | |||
+ | /** | ||
+ | * Conversion routines for ti-floats. | ||
+ | * All saturate on overflow. | ||
+ | */ | ||
+ | int24_t os_RealToInt24(const real_t *arg); | ||
+ | real_t os_Int24ToReal(int24_t arg); | ||
+ | float os_RealToFloat(const real_t *arg); | ||
+ | real_t os_FloatToReal(float arg); | ||
/** os_RealToStr: | /** os_RealToStr: | ||
Line 353: | Line 407: | ||
* returns result | * returns result | ||
*/ | */ | ||
− | real_t | + | real_t os_StrToReal(const char *string, char **end); |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
/** | /** | ||
− | * | + | * High 8 is unsigned offset, low 8 is bits to test |
+ | * os_TestFlagBits will return a 0 or 1 | ||
*/ | */ | ||
− | void | + | int os_TestFlagBits(uint16_t offset_pattern); |
+ | void os_SetFlagBits(int16_t offset_pattern); | ||
+ | void os_ResetFlagBits(int16_t offset_pattern); | ||
/** | /** | ||
− | * | + | * Returns extended key in high byte |
*/ | */ | ||
− | + | uint16_t os_GetKey(void); | |
/** | /** | ||
− | * | + | * Performs an OS call to get the keypad scan code |
+ | * Technically return type is uint24_t, but that is not useful as the high byte is 0 | ||
+ | * Values returned are listed below | ||
*/ | */ | ||
− | + | uint8_t os_GetCSC(void); | |
+ | typedef uint8_t sk_key_t; | ||
/** | /** | ||
− | * | + | * Things you shouldn't use unless you know what you are doing |
− | + | ||
*/ | */ | ||
+ | void os_ForceCmdNoChar(void); | ||
void boot_Set6MHzMode(void); | void boot_Set6MHzMode(void); | ||
void boot_Set48MHzMode(void); | void boot_Set48MHzMode(void); | ||
Line 385: | Line 440: | ||
/** | /** | ||
− | * | + | * Use this function to call assembly functions in the OS and Bootcode |
+ | * i.e. _OS( asm_HomeUp ); | ||
*/ | */ | ||
− | + | void _OS(void (*function)(void)); | |
/** | /** | ||
− | * | + | * Assembly functions ( Don't forget to call from _OS() ) |
− | + | ||
*/ | */ | ||
− | void | + | void asm_MoveUp(void); |
+ | void asm_MoveDown(void); | ||
+ | void asm_HomeUp(void); | ||
+ | void asm_RunIndicOn(void); | ||
+ | void asm_RunIndicOff(void); | ||
+ | void asm_DisableAPD(void); | ||
+ | void asm_EnableAPD(void); | ||
+ | void asm_ArcChk(void); | ||
/** | /** | ||
− | * | + | * OS RAM Location defines for direct modification |
*/ | */ | ||
− | + | #define OS_BLUE_COLOR 10 | |
+ | #define OS_RED_COLOR 11 | ||
+ | #define OS_BLACK_COLOR 12 | ||
+ | #define OS_MAGENTA_COLOR 13 | ||
+ | #define OS_GREEN_COLOR 14 | ||
+ | #define OS_ORANGE_COLOR 15 | ||
+ | #define OS_BROWN_COLOR 16 | ||
+ | #define OS_NAVY_COLOR 17 | ||
+ | #define OS_LTBLUE_COLOR 18 | ||
+ | #define OS_YELLOW_COLOR 19 | ||
+ | #define OS_WHITE_COLOR 20 | ||
+ | #define OS_LTGRAY_COLOR 21 | ||
+ | #define OS_MEDGRAY_COLOR 22 | ||
+ | #define OS_GRAY_COLOR 23 | ||
+ | #define OS_DARKGRAY_COLOR 24 | ||
− | + | #define os_ramStart ((uint8_t*)0xD00000) | |
− | * | + | #define os_flags ((uint8_t*)0xD00080) |
− | */ | + | #define os_textFlags (*(uint8_t*)0xD00080) |
− | + | #define os_apdFlags (*(uint8_t*)0xD00088) | |
+ | #define os_rclFlags (*(uint8_t*)0xD0008E) | ||
+ | |||
+ | #define os_kbdScanCode (*(uint8_t*)0xD00587) | ||
+ | #define os_kbdLGSC (*(uint8_t*)0xD00588) | ||
+ | #define os_kbdPSC (*(uint8_t*)0xD00589) | ||
+ | #define os_kbdWUR (*(uint8_t*)0xD0058A) | ||
+ | #define os_kbdDebncCnt (*(uint8_t*)0xD0058B) | ||
+ | #define os_kbdKey (*(uint8_t*)0xD0058C) | ||
+ | #define os_kbdGetKy (*(uint8_t*)0xD0058D) | ||
+ | #define os_keyExtend (*(uint8_t*)0xD0058E) | ||
+ | #define os_brightness (*(uint8_t*)0xD0058F) | ||
+ | #define os_apdSubTimer (*(uint8_t*)0xD00590) | ||
+ | #define os_apdTimer (*(uint8_t*)0xD00591) | ||
+ | #define os_curRow (*(uint8_t*)0xD00595) | ||
+ | #define os_curCol (*(uint8_t*)0xD00596) | ||
+ | |||
+ | #define os_OP1 ((uint8_t*)0xD005F8) | ||
+ | #define os_OP2 ((uint8_t*)0xD00603) | ||
+ | #define os_OP3 ((uint8_t*)0xD0060E) | ||
+ | #define os_OP4 ((uint8_t*)0xD00619) | ||
+ | #define os_OP5 ((uint8_t*)0xD00624) | ||
+ | #define os_OP6 ((uint8_t*)0xD0062F) | ||
+ | |||
+ | #define os_progToEdit ((char*)0xD0065B) | ||
+ | #define os_nameBuff ((char*)0xD00663) | ||
+ | |||
+ | #define os_promptRow (*(uint8_t*)0xD00800) | ||
+ | #define os_promptCol (*(uint8_t*)0xD00801) | ||
+ | #define os_promptIns (*(uint8_t*)0xD00802) | ||
+ | #define os_promptShift (*(uint8_t*)0xD00803) | ||
+ | #define os_promptRet (*(uint8_t*)0xD00804) | ||
+ | #define os_promptValid (*(uint8_t*)0xD00807) | ||
+ | |||
+ | #define os_penCol (*(uint24_t*)0xD008D2) | ||
+ | #define os_penRow (*(uint8_t*)0xD008D5) | ||
+ | |||
+ | #define os_asmPrgmSize (*(uint16_t*)0xD0118C) | ||
+ | |||
+ | #define os_y1LineType (*(uint8_t*)0xD024BF) | ||
+ | #define os_y2LineType (*(uint8_t*)0xD024C0) | ||
+ | #define os_y3LineType (*(uint8_t*)0xD024C1) | ||
+ | #define os_y4LineType (*(uint8_t*)0xD024C2) | ||
+ | #define os_y5LineType (*(uint8_t*)0xD024C3) | ||
+ | #define os_y6LineType (*(uint8_t*)0xD024C4) | ||
+ | #define os_y7LineType (*(uint8_t*)0xD024C5) | ||
+ | #define os_y8LineType (*(uint8_t*)0xD024C6) | ||
+ | #define os_y9LineType (*(uint8_t*)0xD024C7) | ||
+ | #define os_y0LineType (*(uint8_t*)0xD024C8) | ||
+ | #define os_para1LineType (*(uint8_t*)0xD024C9) | ||
+ | #define os_para2LineType (*(uint8_t*)0xD024CA) | ||
+ | #define os_para3LineType (*(uint8_t*)0xD024CB) | ||
+ | #define os_para4LineType (*(uint8_t*)0xD024CC) | ||
+ | #define os_para5LineType (*(uint8_t*)0xD024CD) | ||
+ | #define os_para6LineType (*(uint8_t*)0xD024CE) | ||
+ | #define os_polar1LineType (*(uint8_t*)0xD024CF) | ||
+ | #define os_polar2LineType (*(uint8_t*)0xD024D0) | ||
+ | #define os_polar3LineType (*(uint8_t*)0xD024D1) | ||
+ | #define os_polar4LineType (*(uint8_t*)0xD024D2) | ||
+ | #define os_polar5LineType (*(uint8_t*)0xD024D3) | ||
+ | #define os_polar6LineType (*(uint8_t*)0xD024D4) | ||
+ | #define os_secULineType (*(uint8_t*)0xD024D5) | ||
+ | #define os_secVLineType (*(uint8_t*)0xD024D6) | ||
+ | #define os_secWLineType (*(uint8_t*)0xD024D7) | ||
+ | #define os_y1LineColor (*(uint8_t*)0xD024D8) | ||
+ | #define os_y2LineColor (*(uint8_t*)0xD024D9) | ||
+ | #define os_y3LineColor (*(uint8_t*)0xD024DA) | ||
+ | #define os_y4LineColor (*(uint8_t*)0xD024DB) | ||
+ | #define os_y5LineColor (*(uint8_t*)0xD024DC) | ||
+ | #define os_y6LineColor (*(uint8_t*)0xD024DD) | ||
+ | #define os_y7LineColor (*(uint8_t*)0xD024DE) | ||
+ | #define os_y8LineColor (*(uint8_t*)0xD024DF) | ||
+ | #define os_y9LineColor (*(uint8_t*)0xD024E0) | ||
+ | #define os_y0LineColor (*(uint8_t*)0xD024E1) | ||
+ | #define os_para1LineColor (*(uint8_t*)0xD024E2) | ||
+ | #define os_para2LineColor (*(uint8_t*)0xD024E3) | ||
+ | #define os_para3LineColor (*(uint8_t*)0xD024E4) | ||
+ | #define os_para4LineColor (*(uint8_t*)0xD024E5) | ||
+ | #define os_para5LineColor (*(uint8_t*)0xD024E6) | ||
+ | #define os_para6LineColor (*(uint8_t*)0xD024E7) | ||
+ | #define os_polar1LineColor (*(uint8_t*)0xD024E8) | ||
+ | #define os_polar2LineColor (*(uint8_t*)0xD024E9) | ||
+ | #define os_polar3LineColor (*(uint8_t*)0xD024EA) | ||
+ | #define os_polar4LineColor (*(uint8_t*)0xD024EB) | ||
+ | #define os_polar5LineColor (*(uint8_t*)0xD024EC) | ||
+ | #define os_polar6LineColor (*(uint8_t*)0xD024ED) | ||
+ | #define os_secULineColor (*(uint8_t*)0xD024EE) | ||
+ | #define os_secVLineColor (*(uint8_t*)0xD024EF) | ||
+ | #define os_secWLineColor (*(uint8_t*)0xD024F0) | ||
+ | |||
+ | #define os_appErr1 ((char*)0xD025A9) | ||
+ | #define os_appErr2 ((char*)0xD025B6) | ||
+ | |||
+ | #define os_cursorHookPtr (*(uint24_t*)0xD025D5) | ||
+ | #define os_libraryHookPtr (*(uint24_t*)0xD025D8) | ||
+ | #define os_rawKeyHookPtr (*(uint24_t*)0xD025DB) | ||
+ | #define os_getKeyHookPtr (*(uint24_t*)0xD025DE) | ||
+ | #define os_homescreenHookPtr (*(uint24_t*)0xD025E1) | ||
+ | #define os_windowHookPtr (*(uint24_t*)0xD025E4) | ||
+ | #define os_graphHookPtr (*(uint24_t*)0xD025E7) | ||
+ | #define os_yEqualsHookPtr (*(uint24_t*)0xD025EA) | ||
+ | #define os_fontHookPtr (*(uint24_t*)0xD025ED) | ||
+ | #define os_regraphHookPtr (*(uint24_t*)0xD025F0) | ||
+ | #define os_graphicsHookPtr (*(uint24_t*)0xD025F3) | ||
+ | #define os_traceHookPtr (*(uint24_t*)0xD025F6) | ||
+ | #define os_parserHookPtr (*(uint24_t*)0xD025F9) | ||
+ | #define os_appChangeHookPtr (*(uint24_t*)0xD025FC) | ||
+ | #define os_catalog1HookPtr (*(uint24_t*)0xD025FF) | ||
+ | #define os_helpHookPtr (*(uint24_t*)0xD02602) | ||
+ | #define os_cxRedispHookPtr (*(uint24_t*)0xD02605) | ||
+ | #define os_menuHookPtr (*(uint24_t*)0xD02608) | ||
+ | #define os_catalog2HookPtr (*(uint24_t*)0xD0260B) | ||
+ | #define os_tokenHookPtr (*(uint24_t*)0xD0260E) | ||
+ | #define os_localizeHookPtr (*(uint24_t*)0xD02611) | ||
+ | #define os_silentLinkHookPtr (*(uint24_t*)0xD02614) | ||
+ | #define os_USBActiveHookPtr (*(uint24_t*)0xD0261A) | ||
+ | |||
+ | #define os_tempFreeArc (*(uint24_t*)0xD02655) /* Set after asm_ArcChk call */ | ||
+ | |||
+ | #define os_textBGcolor (*(uint16_t*)0xD02688) | ||
+ | #define os_textFGcolor (*(uint16_t*)0xD0268A) | ||
+ | |||
+ | #define os_drawBGColor (*(uint16_t*)0xD026AA) | ||
+ | #define os_drawFGColor (*(uint16_t*)0xD026AC) | ||
+ | #define os_drawColorCode (*(uint8_t*)0xD026AE) | ||
+ | |||
+ | #define os_batteryStatus (*(uint8_t*)0xD02A86) | ||
+ | |||
+ | #define os_graphBGColor ((uint16_t*)0xD02A98) | ||
+ | |||
+ | #define os_fillRectColor (*(uint16_t*)0xD02AC0) | ||
+ | #define os_statusBarBGColor ((uint16_t*)0xD02ACC) | ||
/** | /** | ||
− | * | + | * ---- TI-OS Token definitions ---- |
*/ | */ | ||
− | + | #define tToDMS 0x01 | |
+ | #define tToDEC 0x02 | ||
+ | #define tToAbc 0x03 | ||
+ | #define tStore 0x04 // -> | ||
+ | #define tBoxPlot 0x05 | ||
+ | #define tLBrack 0x06 // '[' | ||
+ | #define tRBrack 0x07 // ']' | ||
+ | #define tLBrace 0x08 // '{' | ||
+ | #define tRBrace 0x09 // '}' | ||
+ | #define tFromRad 0x0A | ||
+ | #define tFromDeg 0x0B | ||
+ | #define tRecip 0x0C | ||
+ | #define tSqr 0x0D | ||
+ | #define tTrnspos 0x0E | ||
+ | #define tCube 0x0F // '^3' | ||
+ | #define tLParen 0x10 // '(' | ||
+ | #define tRParen 0x11 // ')' | ||
+ | #define tRound 0x12 // 'round' | ||
+ | #define tPxTst 0x13 // 'PXL-TEST' | ||
+ | #define tAug 0x14 // 'aug' | ||
+ | #define tRowSwap 0x15 // 'rSwap' | ||
+ | #define tRowPlu 0x16 // 'rAdd' | ||
+ | #define tmRow 0x17 // 'multR' | ||
+ | #define tmRowPlus 0x18 // 'mRAdd' | ||
+ | #define tMax 0x19 // 'max' | ||
+ | #define tMin 0x1A // 'min' | ||
+ | #define tRToPr 0x1B // 'R>Pr' | ||
+ | #define tRToPo 0x1C // 'R>Po' | ||
+ | #define tPToRx 0x1D // 'P>Rx' | ||
+ | #define tPToRy 0x1E // 'P>Ry' | ||
+ | #define tMedian 0x1F // 'MEDIAN' | ||
+ | #define tRandM 0x20 // 'randM' | ||
+ | #define tMean 0x21 // 'MEAN' | ||
+ | #define tRoot 0x22 // 'ROOT' | ||
+ | #define tSeries 0x23 // 'seq' | ||
+ | #define tFnInt 0x24 // 'fnInt' | ||
+ | #define tNDeriv 0x25 // 'fnIr' | ||
+ | #define tEvalF 0x26 | ||
+ | #define tFmin 0x27 | ||
+ | #define tFmax 0x28 | ||
+ | #define tSpace 0x29 // ' ' | ||
+ | #define tString 0x2A // '"' | ||
+ | #define tComma 0x2B // ',' | ||
+ | #define tii 0x2C // 'i' | ||
+ | #define tFact 0x2D // '!' | ||
+ | #define tCubicR 0x2E | ||
+ | #define tQuartR 0x2F | ||
+ | #define t0 0x30 | ||
+ | #define t1 0x31 | ||
+ | #define t2 0x32 | ||
+ | #define t3 0x33 | ||
+ | #define t4 0x34 | ||
+ | #define t5 0x35 | ||
+ | #define t6 0x36 | ||
+ | #define t7 0x37 | ||
+ | #define t8 0x38 | ||
+ | #define t9 0x39 | ||
+ | #define tDecPt 0x3A // '.' | ||
+ | #define tee 0x3B // 'e' | ||
+ | #define tOr 0x3C // '_or_' | ||
+ | #define tXor 0x3D | ||
+ | #define tColon 0x3E // ':' | ||
+ | #define tEnter 0x3F | ||
+ | #define tAnd 0x40 // '_and_' | ||
+ | #define tA 0x41 | ||
+ | #define tB 0x42 | ||
+ | #define tC 0x43 | ||
+ | #define tD 0x44 | ||
+ | #define tE 0x45 | ||
+ | #define tF 0x46 | ||
+ | #define tG 0x47 | ||
+ | #define tH 0x48 | ||
+ | #define tI 0x49 | ||
+ | #define tJ 0x4A | ||
+ | #define tK 0x4B | ||
+ | #define tL 0x4C | ||
+ | #define tM 0x4D | ||
+ | #define tN 0x4E | ||
+ | #define tO 0x4F | ||
+ | #define tP 0x50 | ||
+ | #define tQ 0x51 | ||
+ | #define tR 0x52 | ||
+ | #define tS 0x53 | ||
+ | #define tT 0x54 | ||
+ | #define tU 0x55 | ||
+ | #define tV 0x56 | ||
+ | #define tW 0x57 | ||
+ | #define tX 0x58 | ||
+ | #define tY 0x59 | ||
+ | #define tZ 0x5A | ||
+ | #define tTheta 0x5B | ||
/** | /** | ||
− | * | + | * Extended Tokens |
− | + | ||
*/ | */ | ||
− | + | #define tExtTok 0xEF | |
− | + | #define tSetDate 0x00 | |
− | + | #define tSetTime 0x01 | |
+ | #define tCheckTmr 0x02 | ||
+ | #define tSetDtFmt 0x03 | ||
+ | #define tSetTmFmt 0x04 | ||
+ | #define tTimeCnv 0x05 | ||
+ | #define tDayOfWk 0x06 | ||
+ | #define tGetDtStr 0x07 | ||
+ | #define tGetTmStr 0x08 | ||
+ | #define tGetDate 0x09 | ||
+ | #define tGetTime 0x0A | ||
+ | #define tStartTmr 0x0B | ||
+ | #define tGtDtFmt 0x0C | ||
+ | #define tGetTmFmt 0x0D | ||
+ | #define tIsClockOn 0x0E | ||
+ | #define tClockOff 0x0F | ||
+ | #define tClockOn 0x10 | ||
+ | #define tOpenLib 0x11 | ||
+ | #define tExecLib 0x12 | ||
+ | #define tInvT 0x13 | ||
+ | #define tChiSquaredTest 0x14 | ||
+ | #define tLinRegTInt 0x15 | ||
+ | #define tManualFit 0x16 | ||
+ | #define tZQuadrant 0x17 | ||
+ | #define tZFracHalf 0x18 | ||
+ | #define tZFracThird 0x19 | ||
+ | #define tZFracFourth 0x1A | ||
+ | #define tZFracFifth 0x1B | ||
+ | #define tZFracEighth 0x1C | ||
+ | #define tZFracTenth 0x1D | ||
+ | #define tFracSlash 0x2E | ||
+ | #define tFracMixedNum 0x2F | ||
+ | #define tSwapImProper 0x30 | ||
+ | #define tSwapFracDec 0x31 | ||
+ | #define tRemainder 0x32 | ||
+ | #define tSummationSigma 0x33 | ||
+ | #define tLogBase 0x34 | ||
+ | #define tRandIntNoRep 0x35 | ||
+ | #define tMathPrint 0x36 | ||
+ | #define tClassic 0x38 | ||
+ | #define tAutoAnswer 0x3B | ||
+ | #define tDecAnswer 0x3C | ||
+ | #define tFracAnswer 0x3D | ||
+ | #define tBlue 0x41 | ||
+ | #define tRed 0x42 | ||
+ | #define tBlack 0x43 | ||
+ | #define tMagenta 0x44 | ||
+ | #define tGreen 0x45 | ||
+ | #define tOrange 0x46 | ||
+ | #define tBrown 0x47 | ||
+ | #define tNavy 0x48 | ||
+ | #define tLtBlue 0x49 | ||
+ | #define tYellow 0x4A | ||
+ | #define tWhite 0x4B | ||
+ | #define tLtGray 0x4C | ||
+ | #define tMedGray 0x4D | ||
+ | #define tGray 0x4E | ||
+ | #define tDarkGray 0x4F | ||
+ | #define tGraphColor 0x65 | ||
+ | #define tTextColor 0x67 | ||
+ | #define tBackgroundOn 0x5B | ||
+ | #define tBackgroundOff 0x64 | ||
+ | #define tThin 0x74 | ||
+ | #define tBorderColor 0x6C | ||
+ | #define tAsm84CPrgm 0x68 | ||
+ | #define tAsm84CCmp 0x69 | ||
+ | #define tAsm84CeCmp 0x7B | ||
+ | #define tAsm84CePrgm 0x7A | ||
+ | |||
+ | #define tVarMat 0x5C | ||
+ | #define tVarLst 0x5D | ||
+ | #define tVarEqu 0x5E | ||
+ | #define tProg 0x5F | ||
+ | #define tVarPict 0x60 | ||
+ | #define tVarGDB 0x61 | ||
+ | #define tVarOut 0x62 | ||
+ | #define tVarSys 0x63 | ||
/** | /** | ||
− | * | + | * Mode settings tokens |
− | + | ||
*/ | */ | ||
− | #define | + | #define tRad 0x64 // 'Radian' |
− | #define | + | #define tDeg 0x65 // 'Degree' |
− | #define | + | #define tNormF 0x66 // 'Normal' |
− | #define | + | #define tSci 0x67 // 'Sci' |
− | #define | + | #define tEng 0x68 // 'Eng' |
− | #define | + | #define tFloat 0x69 // 'Float' |
− | #define | + | #define tFix 0x73 // 'Fix_' |
+ | #define tSplitOn 0x74 | ||
+ | #define tFullScreen 0x75 | ||
+ | #define tStndrd 0x76 // 'Func' | ||
+ | #define tParam 0x77 // 'Param' | ||
+ | #define tPolar 0x78 // 'Pol' | ||
+ | #define tSeqG 0x79 // ;79h | ||
+ | #define tAFillOn 0x7A // 'AUTO FILL ON' | ||
+ | #define tAFillOff 0x7B // 'AutoFill OFF' | ||
+ | #define tACalcOn 0x7C | ||
+ | #define tACalcOff 0x7D | ||
− | #define | + | #define tEQ 0x6A // '==' |
− | #define | + | #define tLT 0x6B // '<' |
− | #define | + | #define tGT 0x6C // '>' |
− | #define | + | #define tLE 0x6D // LLE |
− | #define | + | #define tGE 0x6E // LGE |
− | #define | + | #define tNE 0x6F // LNE |
− | #define | + | #define tAdd 0x70 // '+' |
+ | #define tSub 0x71 // '-' | ||
+ | #define tMul 0x82 // '*' | ||
+ | #define tDiv 0x83 // '/' | ||
+ | #define tAns 0x72 | ||
− | + | #define tBoxIcon 0x7F | |
− | #define | + | #define tCrossIcon 0x80 |
− | #define | + | #define tDotIcon 0x81 |
− | #define | + | |
− | #define | + | #define tTrace 0x84 // 'Trace' |
− | #define | + | #define tClDrw 0x85 // 'ClDraw' |
− | #define | + | #define tZoomStd 0x86 // 'ZStd' |
+ | #define tZoomtrg 0x87 // 'Ztrg' | ||
+ | #define tZoomBox 0x88 // 'ZBOX' | ||
+ | #define tZoomIn 0x89 // 'ZIn' | ||
+ | #define tZoomOut 0x8A // 'ZOut' | ||
+ | #define tZoomSqr 0x8B // 'ZSqr' | ||
+ | #define tZoomInt 0x8C // 'ZInt' | ||
+ | #define tZoomPrev 0x8D // 'ZPrev' | ||
+ | #define tZoomDec 0x8E // 'ZDecm' | ||
+ | #define tZoomStat 0x8F // 'ZStat | ||
+ | #define tUsrZm 0x90 // 'ZRcl' | ||
+ | #define tPrtScrn 0x91 // 'PrtScrn' | ||
+ | #define tZoomSto 0x92 // 'ZSto' | ||
+ | #define tText 0x93 | ||
− | + | #define tnPr 0x94 // '_nPr_' | |
− | + | #define tnCr 0x95 // '_nCr_' | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | / | + | // Graph Commands |
− | + | #define tYOn 0x96 // 'FnOn_' | |
− | + | #define tYOff 0x97 // 'FnOff_' | |
− | + | #define tStPic 0x98 // 'StPic_' | |
+ | #define tRcPic 0x99 // 'RcPic_' | ||
+ | #define tStoDB 0x9A // 'StGDB_' | ||
+ | #define tRclDB 0x9B // 'RcGDB_' | ||
+ | #define tLine 0x9C // 'Line' | ||
+ | #define tVert 0x9D // 'Vert_' | ||
+ | #define tPtOn 0x9E // 'PtOn' | ||
+ | #define tPtOff 0x9F // 'PtOff' | ||
+ | #define tPtChg 0xA0 // 'PtChg' | ||
+ | #define tPXOn 0xA1 | ||
+ | #define tPXOff 0xA2 | ||
+ | #define tPXChg 0xA3 | ||
+ | #define tShade 0xA4 // 'Shade' | ||
+ | #define tCircle 0xA5 // 'Circle' | ||
+ | #define tHorz 0xA6 // 'HORIZONTAL' | ||
+ | #define tTanLn 0xA7 // 'TanLn' | ||
+ | #define tDrInv 0xA8 // 'DrInv_' | ||
+ | #define tDrawF 0xA9 // 'DrawF_' | ||
+ | #define tVarStrng 0xAA | ||
+ | |||
+ | // Functions with No Argument | ||
+ | #define tRand 0xAB // 'rand' | ||
+ | #define tPi 0xAC // Lpi | ||
+ | #define tGetKey 0xAD // 'getKy' | ||
+ | #define tAPost 0xAE // ''' | ||
+ | #define tQuest 0xAF // '?' | ||
+ | #define tChs 0xB0 | ||
+ | #define tInt 0xB1 | ||
+ | #define tAbs 0xB2 | ||
+ | #define tDet 0xB3 | ||
+ | #define tIdent 0xB4 | ||
+ | #define tDim 0xB5 | ||
+ | #define tSum 0xB6 | ||
+ | #define tProd 0xB7 | ||
+ | #define tNot 0xB8 | ||
+ | #define tIPart 0xB9 | ||
+ | #define tFPart 0xBA | ||
+ | |||
+ | // New 2 Byte Tokens | ||
+ | #define t2ByteTok 0xBB | ||
+ | #define tSqrt 0xBC | ||
+ | #define tCubRt 0xBD | ||
+ | #define tLn 0xBE | ||
+ | #define tExp 0xBF | ||
+ | #define tLog 0xC0 | ||
+ | #define tALog 0xC1 | ||
+ | #define tSin 0xC2 | ||
+ | #define tASin 0xC3 | ||
+ | #define tCos 0xC4 | ||
+ | #define tACos 0xC5 | ||
+ | #define tTan 0xC6 | ||
+ | #define tATan 0xC7 | ||
+ | #define tSinH 0xC8 | ||
+ | #define tASinH 0xC9 | ||
+ | #define tCoshH 0xCA | ||
+ | #define tACosH 0xCB | ||
+ | #define tTanH 0xCC | ||
+ | #define tATanH 0xCD | ||
+ | // Some Programming Commands | ||
+ | #define tIf 0xCE // 'If_' | ||
+ | #define tThen 0xCF // 'Then_' | ||
+ | #define tElse 0xD0 // 'Else_' | ||
+ | #define tWhile 0xD1 // 'While_' | ||
+ | #define tRepeat 0xD2 // 'Repeat_' | ||
+ | #define tFor 0xD3 // 'For_' | ||
+ | #define tEnd 0xD4 // 'End' | ||
+ | #define tReturn 0xD5 // 'Return' | ||
+ | #define tLbl 0xD6 // 'Lbl_' | ||
+ | #define tGoto 0xD7 // 'Goto_' | ||
+ | #define tPause 0xD8 // 'Pause_' | ||
+ | #define tStop 0xD9 // 'Stop' | ||
+ | #define tISG 0xDA // 'IS>' | ||
+ | #define tDSL 0xDB // 'DS<' | ||
+ | #define tInput 0xDC // 'Input_' | ||
+ | #define tPrompt 0xDD // 'Prompt_' | ||
+ | #define tDisp 0xDE // 'Disp_' | ||
+ | #define tDispG 0xDF // 'DispG' | ||
+ | #define tOutput 0xE0 // 'Outpt' | ||
+ | #define tClLCD 0xE1 // 'ClLCD' | ||
+ | #define tConst 0xE2 // 'Fill' | ||
+ | #define tSortA 0xE3 // 'sortA_' | ||
+ | #define tSortD 0xE4 // 'sortD_' | ||
+ | #define tDispTab 0xE5 // 'Disp Table | ||
+ | #define tMenu 0xE6 // 'Menu' | ||
+ | #define tSendMBL 0xE7 // 'Send' | ||
+ | #define tGetMBL 0xE8 // 'Get' | ||
+ | |||
+ | // Stat Plot Commands | ||
+ | #define tPlotOn 0xE9 // 'PLOTSON' | ||
+ | #define tPlotOff 0xEA // 'PLOTSOFF | ||
+ | #define tListName 0xEB // List Designator | ||
+ | #define tPlot1 0xEC | ||
+ | #define tPlot2 0xED | ||
+ | #define tPlot3 0xEE | ||
+ | #define tUnused01 0xEF // available? | ||
+ | #define tPower 0xF0 // '^' | ||
+ | #define tXRoot 0xF1 // LsupX,Lroot | ||
+ | #define tOneVar 0xF2 // 'OneVar_' | ||
+ | #define tTwoVar 0xF3 | ||
+ | #define tLR 0xF4 // 'LinR(A+BX)' | ||
+ | #define tLRExp 0xF5 // 'ExpR_' | ||
+ | #define tLRLn 0xF6 // 'LnR_' | ||
+ | #define tLRPwr 0xF7 // 'PwrR_' | ||
+ | #define tMedMed 0xF8 | ||
+ | #define tQuad 0xF9 | ||
+ | #define tClrLst 0xFA // 'Clear List' | ||
+ | #define tClrTbl 0xFB // 'Clear Table' | ||
+ | #define tHist 0xFC // 'Hist_' | ||
+ | #define txyLine 0xFD // 'xyline_' | ||
+ | #define tScatter 0xFE // 'Scatter_' | ||
+ | #define tLR1 0xFF // 'LINR(AX+B)' | ||
+ | |||
+ | // 2nd Half Of Graph Format Tokens | ||
+ | #define tSeq 0x00 // 'SeqG' | ||
+ | #define tSimulG 0x01 // 'SimulG' | ||
+ | #define tPolarG 0x02 // 'PolarGC' | ||
+ | #define tRectG 0x03 // 'RectGC' | ||
+ | #define tCoordOn 0x04 // 'CoordOn' | ||
+ | #define tCoordOff 0x05 // 'CoordOff' | ||
+ | #define tDrawLine 0x06 // 'DrawLine' | ||
+ | #define tDrawDot 0x07 // 'DrawDot' | ||
+ | #define tAxisOn 0x08 // 'AxesOn' | ||
+ | #define tAxisOff 0x09 // 'AxesOff' | ||
+ | #define tGridOn 0x0A // 'GridOn' | ||
+ | #define tGridOff 0x0B // 'GridOff' | ||
+ | #define tLblOn 0x0C // 'LabelOn' | ||
+ | #define tLblOff 0x0D // 'LabelOff' | ||
+ | #define tWebOn 0x0E // 'WebOn' | ||
+ | #define tWebOff 0x0F // 'WebOFF' | ||
+ | #define tuv 0x10 // U vs V | ||
+ | #define tvw 0x11 // V vs W | ||
+ | #define tuw 0x12 // U vs W | ||
+ | |||
+ | // 2nd Half Of User Matrix Tokens | ||
+ | #define tMatA 0x00 // MAT A | ||
+ | #define tMatB 0x01 // MAT B | ||
+ | #define tMatC 0x02 // MAT C | ||
+ | #define tMatD 0x03 // MAT D | ||
+ | #define tMatE 0x04 // MAT E | ||
+ | #define tMatF 0x05 // MAT F | ||
+ | #define tMatG 0x06 // MAT G | ||
+ | #define tMatH 0x07 // MAT H | ||
+ | #define tMatI 0x08 // MAT I | ||
+ | #define tMatJ 0x09 // MAT J | ||
+ | |||
+ | // 2nd Half Of User List Tokens | ||
+ | #define tL1 0x00 // LIST 1 | ||
+ | #define tL2 0x01 // LIST 2 | ||
+ | #define tL3 0x02 // LIST 3 | ||
+ | #define tL4 0x03 // LIST 4 | ||
+ | #define tL5 0x04 // LIST 5 | ||
+ | #define tL6 0x05 // LIST 6 | ||
+ | |||
+ | // 2nd Half Of User Equation Tokens | ||
+ | // Y Equations have bit 4 set | ||
+ | #define tY1 0x10 // Y1 | ||
+ | #define tY2 0x11 // Y2 | ||
+ | #define tY3 0x12 // Y3 | ||
+ | #define tY4 0x13 // Y4 | ||
+ | #define tY5 0x14 // Y5 | ||
+ | #define tY6 0x15 // Y6 | ||
+ | #define tY7 0x16 // Y7 | ||
+ | #define tY8 0x17 // Y8 | ||
+ | #define tY9 0x18 // Y9 | ||
+ | #define tY0 0x19 // Y0 | ||
+ | |||
+ | // Param Equations Have Bit 5 Set | ||
+ | #define tX1T 0x20 // X1t | ||
+ | #define tY1T 0x21 // Y1t | ||
+ | #define tX2T 0x22 // X2t | ||
+ | #define tY2T 0x23 // Y2t | ||
+ | #define tX3T 0x24 // X3t | ||
+ | #define tY3T 0x25 // Y3t | ||
+ | #define tX4T 0x26 // X4t | ||
+ | #define tY4T 0x27 // Y4t | ||
+ | #define tX5T 0x28 // X5t | ||
+ | #define tY5T 0x29 // Y5t | ||
+ | #define tX6T 0x2A // X6t | ||
+ | #define tY6T 0x2B // Y6t | ||
+ | |||
+ | // Polar Equations Have Bit 6 Set | ||
+ | #define tR1 0x40 // R1 | ||
+ | #define tR2 0x41 // R2 | ||
+ | #define tR3 0x42 // R3 | ||
+ | #define tR4 0x43 // R4 | ||
+ | #define tR5 0x44 // R5 | ||
+ | #define tR6 0x45 // R6 | ||
+ | |||
+ | // Recursion Equations Have Bit 7 Set | ||
+ | #define tun 0x80 // Un | ||
+ | #define tvn 0x81 // Vn | ||
+ | #define twn 0x82 // Wn | ||
+ | |||
+ | // 2nd Half User Picture Tokens | ||
+ | #define tPic1 0x00 // PIC1 | ||
+ | #define tPic2 0x01 // PIC2 | ||
+ | #define tPic3 0x02 // PIC3 | ||
+ | #define tPic4 0x03 // PIC4 | ||
+ | #define tPic5 0x04 // PIC5 | ||
+ | #define tPic6 0x05 // PIC6 | ||
+ | #define tPic7 0x06 // PIC7 | ||
+ | #define tPic8 0x07 // PIC8 | ||
+ | #define tPic9 0x08 // PIC9 | ||
+ | #define tPic0 0x09 // PIC0 | ||
+ | |||
+ | // 2nd Half User Graph Database Tokens | ||
+ | #define tGDB1 0x00 // GDB1 | ||
+ | #define tGDB2 0x01 // GDB2 | ||
+ | #define tGDB3 0x02 // GDB3 | ||
+ | #define tGDB4 0x03 // GDB4 | ||
+ | #define tGDB5 0x04 // GDB5 | ||
+ | #define tGDB6 0x05 // GDB6 | ||
+ | #define tGDB7 0x06 // GDB7 | ||
+ | #define tGDB8 0x07 // GDB8 | ||
+ | #define tGDB9 0x08 // GDB9 | ||
+ | #define tGDB0 0x09 // GDB0 | ||
+ | |||
+ | // 2nd Half Of String Vars | ||
+ | #define tStr1 0x00 | ||
+ | #define tStr2 0x01 | ||
+ | #define tStr3 0x02 | ||
+ | #define tStr4 0x03 | ||
+ | #define tStr5 0x04 | ||
+ | #define tStr6 0x05 | ||
+ | #define tStr7 0x06 | ||
+ | #define tStr8 0x07 | ||
+ | #define tStr9 0x08 | ||
+ | #define tStr0 0x09 | ||
+ | |||
+ | // 2nd Half Of System Output Only Variables | ||
+ | #define tRegEq 0x01 // REGRESSION EQUATION | ||
+ | #define tStatN 0x02 // STATISTICS N | ||
+ | #define tXMean 0x03 // X MEAN | ||
+ | #define tSumX 0x04 // SUM(X) | ||
+ | #define tSumXSqr 0x05 // SUM(X^2) | ||
+ | #define tStdX 0x06 // STANDARD DEV X | ||
+ | #define tStdPX 0x07 // STANDARD DEV POP X | ||
+ | #define tMinX 0x08 // Min X VALUE | ||
+ | #define tMaxX 0x09 // Max X VALUE | ||
+ | #define tMinY 0x0A // Min Y VALUE | ||
+ | #define tMaxY 0x0B // Max Y VALUE | ||
+ | #define tYmean 0x0C // Y MEAN | ||
+ | #define tSumY 0x0D // SUM(Y) | ||
+ | #define tSumYSqr 0x0E // SUM(Y^2) | ||
+ | #define tStdY 0x0F // STANDARD DEV Y | ||
+ | #define tStdPY 0x10 // STANDARD DEV POP Y | ||
+ | #define tSumXY 0x11 // SUM(XY) | ||
+ | #define tCorr 0x12 // CORRELATION | ||
+ | #define tMedX 0x13 // MED(X) | ||
+ | #define tQ1 0x14 // 1ST QUADRANT OF X | ||
+ | #define tQ3 0x15 // 3RD QUADRANT OF X | ||
+ | #define tQuadA 0x16 // 1ST TERM OF QUAD POLY REG/ Y-INT | ||
+ | #define tQuadB 0x17 // 2ND TERM OF QUAD POLY REG/ SLOPE | ||
+ | #define tQuadC 0x18 // 3RD TERM OF QUAD POLY REG | ||
+ | #define tCubeD 0x19 // 4TH TERM OF CUBIC POLY REG | ||
+ | #define tQuartE 0x1A // 5TH TERM OF QUART POLY REG | ||
+ | #define tMedX1 0x1B // x1 FOR MED-MED | ||
+ | #define tMedX2 0x1C // x2 FOR MED-MED | ||
+ | #define tMedX3 0x1D // x3 FOR MED-MED | ||
+ | #define tMedY1 0x1E // y1 FOR MED-MED | ||
+ | #define tMedY2 0x1F // y2 FOR MED-MED | ||
+ | #define tMedY3 0x20 // y3 FOR MED-MED | ||
+ | #define tRecurn 0x21 // RECURSION N | ||
+ | #define tStatP 0x22 | ||
+ | #define tStatZ 0x23 | ||
+ | #define tStatT 0x24 | ||
+ | #define tStatChi 0x25 | ||
+ | #define tStatF 0x26 | ||
+ | #define tStatDF 0x27 | ||
+ | #define tStatPhat 0x28 | ||
+ | #define tStatPhat1 0x29 | ||
+ | #define tStatPhat2 0x2A | ||
+ | #define tStatMeanX1 0x2B | ||
+ | #define tStatStdX1 0x2C | ||
+ | #define tStatN1 0x2D | ||
+ | #define tStatMeanX2 0x2E | ||
+ | #define tStatStdX2 0x2F | ||
+ | #define tStatN2 0x30 | ||
+ | #define tStatStdXP 0x31 | ||
+ | #define tStatLower 0x32 | ||
+ | #define tStatUpper 0x33 | ||
+ | #define tStat_s 0x34 | ||
+ | #define tLRSqr 0x35 // r^2 | ||
+ | #define tBRSqr 0x36 // R^2 | ||
+ | |||
+ | // These next tokens are only used to access the data | ||
+ | // They are display only and the user cannot access them at all | ||
+ | #define tF_DF 0x37 // ANOFAV FACTOR DF | ||
+ | #define tF_SS 0x38 // ANOFAV FACTOR SS | ||
+ | #define tF_MS 0x39 // ANOFAV FACTOR MS | ||
+ | #define tE_DF 0x3A // ANOFAV ERROR DF | ||
+ | #define tE_SS 0x3B // ANOFAV ERROR SS | ||
+ | #define tE_MS 0x3C // ANOFAV ERROR MS | ||
+ | |||
+ | // 2nd Half Of System Input/Output Variables | ||
+ | #define tuXscl 0x00 | ||
+ | #define tuYscl 0x01 | ||
+ | #define tXscl 0x02 | ||
+ | #define tYscl 0x03 | ||
+ | #define tRecuru0 0x04 // U 1st Initial condition | ||
+ | #define tRecurv0 0x05 // V 1st Initial condition | ||
+ | #define tun1 0x06 // U(N-1); not used | ||
+ | #define tvn1 0x07 // V(N-1); not used | ||
+ | #define tuRecuru0 0x08 | ||
+ | #define tuRecurv0 0x09 | ||
+ | #define tXmin 0x0A | ||
+ | #define tXmax 0x0B | ||
+ | #define tYmin 0x0C | ||
+ | #define tYmax 0x0D | ||
+ | #define tTmin 0x0E | ||
+ | #define tTmax 0x0F | ||
+ | #define tThetaMin 0x10 | ||
+ | #define tThetaMax 0x11 | ||
+ | #define tuXmin 0x12 | ||
+ | #define tuXmax 0x13 | ||
+ | #define tuYmin 0x14 | ||
+ | #define tuYmax 0x15 | ||
+ | #define tuThetMin 0x16 | ||
+ | #define tuThetMax 0x17 | ||
+ | #define tuTmin 0x18 | ||
+ | #define tuTmax 0x19 | ||
+ | #define tTblMin 0x1A | ||
+ | #define tPlotStart 0x1B | ||
+ | #define tuPlotStart 0x1C | ||
+ | #define tnMax 0x1D | ||
+ | #define tunMax 0x1E | ||
+ | #define tnMin 0x1F | ||
+ | #define tunMin 0x20 | ||
+ | #define tTblStep 0x21 | ||
+ | #define tTStep 0x22 | ||
+ | #define tThetaStep 0x23 | ||
+ | #define tuTStep 0x24 | ||
+ | #define tuThetStep 0x25 | ||
+ | #define tDeltaX 0x26 | ||
+ | #define tDeltaY 0x27 | ||
+ | #define tXFact 0x28 | ||
+ | #define tYFact 0x29 | ||
+ | #define tTblInput 0x2A | ||
+ | #define tFinN 0x2B | ||
+ | #define tFinI 0x2C | ||
+ | #define tFinPV 0x2D | ||
+ | #define tFinPMT 0x2E | ||
+ | #define tFinFV 0x2F | ||
+ | #define tFinPY 0x30 | ||
+ | #define tFinCY 0x31 | ||
+ | #define tRecurw0 0x32 // w0(1) | ||
+ | #define tuRecurw0 0x33 | ||
+ | #define tPlotStep 0x34 | ||
+ | #define tuPlotStep 0x35 | ||
+ | #define tXres 0x36 | ||
+ | #define tuXres 0x37 | ||
+ | #define tRecuru02 0x38 // u0(2) | ||
+ | #define tuRecuru02 0x39 | ||
+ | #define tRecurv02 0x3C // v0(2) | ||
+ | #define tuRecurv02 0x3D | ||
+ | #define tRecurw02 0x3E // w0(2) | ||
+ | #define tuRecurw02 0x3F | ||
+ | |||
+ | // 2nd Byte Of t2ByteTok Tokens | ||
+ | #define tFinNPV 0x00 | ||
+ | #define tFinIRR 0x01 | ||
+ | #define tFinBAL 0x02 | ||
+ | #define tFinPRN 0x03 | ||
+ | #define tFinINT 0x04 | ||
+ | #define tFinToNom 0x05 | ||
+ | #define tFinToEff 0x06 | ||
+ | #define tFinDBD 0x07 | ||
+ | #define tLCM 0x08 | ||
+ | #define tGCD 0x09 | ||
+ | #define tRandInt 0x0A | ||
+ | #define tRandBin 0x0B | ||
+ | #define tSubStrng 0x0C | ||
+ | #define tStdDev 0x0D | ||
+ | #define tVariance 0x0E | ||
+ | #define tInStrng 0x0F | ||
+ | #define tDNormal 0x10 | ||
+ | #define tInvNorm 0x11 | ||
+ | #define tDT 0x12 | ||
+ | #define tChI 0x13 | ||
+ | #define tDF 0x14 | ||
+ | #define tBINPDF 0x15 | ||
+ | #define tBINCDF 0x16 | ||
+ | #define tPOIPDF 0x17 | ||
+ | #define tPOICDF 0x18 | ||
+ | #define tGEOPDF 0x19 | ||
+ | #define tGEOCDF 0x1A | ||
+ | #define tNormalPDF 0x1B | ||
+ | #define tTPDF 0x1C | ||
+ | #define tChiPDF 0x1D | ||
+ | #define tFPDF 0x1E | ||
+ | #define tRandNorm 0x1F | ||
+ | #define tFinFPMT 0x20 | ||
+ | #define tFinFI 0x21 | ||
+ | #define tFinFPV 0x22 | ||
+ | #define tFinFN 0x23 | ||
+ | #define tFinFFV 0x24 | ||
+ | #define tConj 0x25 | ||
+ | #define tReal 0x26 | ||
+ | #define tImag 0x27 | ||
+ | #define tAngle 0x28 | ||
+ | #define tCumSum 0x29 | ||
+ | #define tExpr 0x2A | ||
+ | #define tLength 0x2B | ||
+ | #define tDeltaLst 0x2C | ||
+ | #define tRef 0x2D | ||
+ | #define tRRef 0x2E | ||
+ | #define tToRect 0x2F | ||
+ | #define tToPolar 0x30 | ||
+ | #define tConste 0x31 | ||
+ | #define tSinReg 0x32 | ||
+ | #define tLogistic 0x33 | ||
+ | #define tLinRegTTest 0x34 | ||
+ | #define tShadeNorm 0x35 | ||
+ | #define tShadeT 0x36 | ||
+ | #define tShadeChi 0x37 | ||
+ | #define tShadeF 0x38 | ||
+ | #define tMatToLst 0x39 | ||
+ | #define tLstToMat 0x3A | ||
+ | #define tZTest 0x3B | ||
+ | #define tTTest 0x3C | ||
+ | #define t2SampZTest 0x3D | ||
+ | #define t1PropZTest 0x3E | ||
+ | #define t2PropZTest 0x3F | ||
+ | #define tChiTest 0x40 | ||
+ | #define tZIntVal 0x41 | ||
+ | #define t2SampZInt 0x42 | ||
+ | #define t1PropZInt 0x43 | ||
+ | #define t2PropZInt 0x44 | ||
+ | #define tGraphStyle 0x45 | ||
+ | #define t2SampTTest 0x46 | ||
+ | #define t2SampFTest 0x47 | ||
+ | #define tTIntVal 0x48 | ||
+ | #define t2SampTInt 0x49 | ||
+ | #define tSetupLst 0x4A | ||
+ | #define tFinPMTend 0x4B | ||
+ | #define tFinPMTbeg 0x4C | ||
+ | #define tRealM 0x4D | ||
+ | #define tPolarM 0x4E | ||
+ | #define tRectM 0x4F | ||
+ | #define tExprOn 0x50 | ||
+ | #define tExprOff 0x51 | ||
+ | #define tClrAllLst 0x52 | ||
+ | #define tGetCalc 0x53 | ||
+ | #define tDelVar 0x54 | ||
+ | #define tEquToStrng 0x55 | ||
+ | #define tStrngToequ 0x56 | ||
+ | #define tDelLast 0x57 | ||
+ | #define tSelect 0x58 | ||
+ | #define tANOVA 0x59 | ||
+ | #define tModBox 0x5A | ||
+ | #define tNormProb 0x5B | ||
+ | #define tMGT 0x64 // VERTICAL SPLIT | ||
+ | #define tZFit 0x65 // ZOOM FIT | ||
+ | #define tDiag_on 0x66 // DIANOSTIC DISPLAY ON | ||
+ | #define tDiag_off 0x67 // DIANOSTIC DISPLAY OFF | ||
+ | #define tArchive 0x68 // Archive | ||
+ | #define tUnarchive 0x69 // UnArchive | ||
+ | #define tAsm 0x6A | ||
+ | #define tAsmComp 0x6B // asm compile | ||
+ | #define tAsmPrgm 0x6C // Signifies a program is asm | ||
+ | #define tAsmCmp 0x6D // asm program is compiled | ||
+ | #define tLcapAAcute 0x6E | ||
+ | #define tLcapAGrave 0x6F | ||
+ | #define tLcapACaret 0x70 | ||
+ | #define tLcapADier 0x71 | ||
+ | #define tLaAcute 0x72 | ||
+ | #define tLaGrave 0x73 | ||
+ | #define tLaCaret 0x74 | ||
+ | #define tLaDier 0x75 | ||
+ | #define tLcapEAcute 0x76 | ||
+ | #define tLcapEGrave 0x77 | ||
+ | #define tLcapECaret 0x78 | ||
+ | #define tLcapEDier 0x79 | ||
+ | #define tLeAcute 0x7A | ||
+ | #define tLeGrave 0x7B | ||
+ | #define tLeCaret 0x7C | ||
+ | #define tLeDier 0x7D | ||
+ | #define tLcapIGrave 0x7F | ||
+ | #define tLcapICaret 0x80 | ||
+ | #define tLcapIDier 0x81 | ||
+ | #define tLiAcute 0x82 | ||
+ | #define tLiGrave 0x83 | ||
+ | #define tLiCaret 0x84 | ||
+ | #define tLiDier 0x85 | ||
+ | #define tLcapOAcute 0x86 | ||
+ | #define tLcapOGrave 0x87 | ||
+ | #define tLcapOCaret 0x88 | ||
+ | #define tLcapODier 0x89 | ||
+ | #define tLoAcute 0x8A | ||
+ | #define tLoGrave 0x8B | ||
+ | #define tLoCaret 0x8C | ||
+ | #define tLoDier 0x8D | ||
+ | #define tLcapUAcute 0x8E | ||
+ | #define tLcapUGrave 0x8F | ||
+ | #define tLcapUCaret 0x90 | ||
+ | #define tLcapUDier 0x91 | ||
+ | #define tLuAcute 0x92 | ||
+ | #define tLuGrave 0x93 | ||
+ | #define tLuCaret 0x94 | ||
+ | #define tLuDier 0x95 | ||
+ | #define tLcapCCed 0x96 | ||
+ | #define tLcCed 0x97 | ||
+ | #define tLcapNTilde 0x98 | ||
+ | #define tLnTilde 0x99 | ||
+ | #define tLaccent 0x9A | ||
+ | #define tLgrave 0x9B | ||
+ | #define tLdieresis 0x9C | ||
+ | #define tLquesDown 0x9D | ||
+ | #define tLexclamDown 0x9E | ||
+ | #define tLalpha 0x9F | ||
+ | #define tLbeta 0xA0 | ||
+ | #define tLgamma 0xA1 | ||
+ | #define tLcapDelta 0xA2 | ||
+ | #define tLdelta 0xA3 | ||
+ | #define tLepsilon 0xA4 | ||
+ | #define tLlambda 0xA5 | ||
+ | #define tLmu 0xA6 | ||
+ | #define tLpi 0xA7 | ||
+ | #define tLrho 0xA8 | ||
+ | #define tLcapSigma 0xA9 | ||
+ | #define tLphi 0xAB | ||
+ | #define tLcapOmega 0xAC | ||
+ | #define tLphat 0xAD | ||
+ | #define tLchi 0xAE | ||
+ | #define tLstatF 0xAF | ||
+ | #define tLa 0xB0 | ||
+ | #define tLb 0xB1 | ||
+ | #define tLc 0xB2 | ||
+ | #define tLd 0xB3 | ||
+ | #define tLsmalle 0xB4 | ||
+ | #define tLf 0xB5 | ||
+ | #define tLsmallg 0xB6 | ||
+ | #define tLh 0xB7 | ||
+ | #define tLi 0xB8 | ||
+ | #define tLj 0xB9 | ||
+ | #define tLk 0xBA | ||
+ | #define tLl 0xBC | ||
+ | #define tLm 0xBD | ||
+ | #define tLsmalln 0xBE | ||
+ | #define tLo 0xBF | ||
+ | #define tLp 0xC0 | ||
+ | #define tLq 0xC1 | ||
+ | #define tLsmallr 0xC2 | ||
+ | #define tLs 0xC3 | ||
+ | #define tLsmallt 0xC4 | ||
+ | #define tLu 0xC5 | ||
+ | #define tLv 0xC6 | ||
+ | #define tLw 0xC7 | ||
+ | #define tLx 0xC8 | ||
+ | #define tLy 0xC9 | ||
+ | #define tLz 0xCA | ||
+ | #define tLsigma 0xCB | ||
+ | #define tLtau 0xCC | ||
+ | #define tLcapIAcute 0xCD | ||
+ | #define tGarbageCollect 0xCE | ||
+ | |||
+ | // 2 byte extended tokens (tExtTok) present in OS 5.2 and above | ||
+ | #define tSEQn 0x8F // 'SEQ(n)' | ||
+ | #define tSEQn1 0x90 // 'SEQ(n+1)' | ||
+ | #define tSEQn2 0x91 // 'SEQ(n+2)' | ||
+ | #define tLEFT 0x92 // 'LEFT' | ||
+ | #define tCENTER 0x93 // 'CENTER' | ||
+ | #define tRIGHT 0x94 // 'RIGHT' | ||
+ | #define tInvBinom 0x95 // 'invBinom(' | ||
+ | #define tWait 0x96 // 'Wait_' | ||
+ | #define tToString 0x97 // 'toString(' | ||
+ | #define tEval 0x98 // 'eval(' | ||
/** | /** | ||
− | * | + | * --- TIOS System error codes --- |
− | + | ||
*/ | */ | ||
− | + | #define OS_E_EDIT 1<<7 | |
+ | #define OS_E_MASK 0x7F | ||
+ | #define OS_E_OVERFLOW 1+OS_E_EDIT | ||
+ | #define OS_E_DIVBY0 2+OS_E_EDIT | ||
+ | #define OS_E_SINGULARMAT 3+OS_E_EDIT | ||
+ | #define OS_E_DOMAIN 4+OS_E_EDIT | ||
+ | #define OS_E_INCREMENT 5+OS_E_EDIT | ||
+ | #define OS_E_BREAK 6+OS_E_EDIT | ||
+ | #define OS_E_NONREAL 7+OS_E_EDIT | ||
+ | #define OS_E_SYNTAX 8+OS_E_EDIT | ||
+ | #define OS_E_DATATYPE 9+OS_E_EDIT | ||
+ | #define OS_E_ARGUMENT 10+OS_E_EDIT | ||
+ | #define OS_E_DIMMISMATCH 11+OS_E_EDIT | ||
+ | #define OS_E_DIMENSION 12+OS_E_EDIT | ||
+ | #define OS_E_UNDEFINED 13+OS_E_EDIT | ||
+ | #define OS_E_MEMORY 14+OS_E_EDIT | ||
+ | #define OS_E_INVALID 15+OS_E_EDIT | ||
+ | #define OS_E_ILLEGALNEST 16+OS_E_EDIT | ||
+ | #define OS_E_BOUND 17+OS_E_EDIT | ||
+ | #define OS_E_GRAPHRANGE 18+OS_E_EDIT | ||
+ | #define OS_E_ZOOM 19+OS_E_EDIT | ||
+ | #define OS_E_LABEL 20 | ||
+ | #define OS_E_STAT 21 | ||
+ | #define OS_E_SOLVER 22+OS_E_EDIT | ||
+ | #define OS_E_SINGULARITY 23+OS_E_EDIT | ||
+ | #define OS_E_SIGNCHANGE 24+OS_E_EDIT | ||
+ | #define OS_E_ITERATIONS 25+OS_E_EDIT | ||
+ | #define OS_E_BADGUESS 26+OS_E_EDIT | ||
+ | #define OS_E_STATPLOT 27 | ||
+ | #define OS_E_TOLTOOSMALL 28+OS_E_EDIT | ||
+ | #define OS_E_RESERVED 29+OS_E_EDIT | ||
+ | #define OS_E_MODE 30+OS_E_EDIT | ||
+ | #define OS_E_LNKERR 31+OS_E_EDIT | ||
+ | #define OS_E_LNKMEMERR 32+OS_E_EDIT | ||
+ | #define OS_E_LNKTRANSERR 33+OS_E_EDIT | ||
+ | #define OS_E_LNKDUPERR 34+OS_E_EDIT | ||
+ | #define OS_E_LNKMEMFULL 35+OS_E_EDIT | ||
+ | #define OS_E_UNKNOWN 36+OS_E_EDIT | ||
+ | #define OS_E_SCALE 37+OS_E_EDIT | ||
+ | #define OS_E_IDNOTFOUND 38 | ||
+ | #define OS_E_NOMODE 39+OS_E_EDIT | ||
+ | #define OS_E_VALIDATION 40 | ||
+ | #define OS_E_LENGTH 41+OS_E_EDIT | ||
+ | #define OS_E_APPLICATION 42+OS_E_EDIT | ||
+ | #define OS_E_APPERR1 43+OS_E_EDIT | ||
+ | #define OS_E_APPERR2 44+OS_E_EDIT | ||
+ | #define OS_E_EXPIREDAPP 45 | ||
+ | #define OS_E_BADADD 46 | ||
+ | #define OS_E_ARCHIVED 47+OS_E_EDIT | ||
+ | #define OS_E_VERSION 48 | ||
+ | #define OS_E_ARCHFULL 49 | ||
+ | #define OS_E_VARIABLE 50+OS_E_EDIT | ||
+ | #define OS_E_DUPLICATE 51+OS_E_EDIT | ||
/** | /** | ||
− | * | + | * --- TI-OS os_GetCSC Scan Code Return Values --- |
*/ | */ | ||
− | + | #define sk_Down 0x01 | |
− | + | #define sk_Left 0x02 | |
− | + | #define sk_Right 0x03 | |
− | + | #define sk_Up 0x04 | |
− | + | #define sk_Enter 0x09 | |
− | + | #define sk_2nd 0x36 | |
− | + | #define sk_Clear 0x0F | |
− | + | #define sk_Alpha 0x30 | |
− | # | + | #define sk_Add 0x0A |
− | + | #define sk_Sub 0x0B | |
− | + | #define sk_Mul 0x0C | |
− | + | #define sk_Div 0x0D | |
− | + | #define sk_Graph 0x31 | |
− | + | #define sk_Trace 0x32 | |
− | + | #define sk_Zoom 0x33 | |
− | + | #define sk_Window 0x34 | |
− | + | #define sk_Yequ 0x35 | |
− | + | #define sk_Mode 0x37 | |
− | + | #define sk_Del 0x38 | |
− | + | #define sk_Store 0x2A | |
− | + | #define sk_Ln 0x2B | |
− | + | #define sk_Log 0x2C | |
− | + | #define sk_Square 0x2D | |
− | + | #define sk_Recip 0x2E | |
− | + | #define sk_Math 0x2F | |
− | + | #define sk_0 0x21 | |
− | + | #define sk_1 0x22 | |
− | + | #define sk_4 0x23 | |
− | + | #define sk_7 0x24 | |
− | + | #define sk_2 0x1A | |
− | + | #define sk_5 0x1B | |
− | + | #define sk_8 0x1C | |
− | + | #define sk_3 0x12 | |
− | + | #define sk_6 0x13 | |
− | + | #define sk_9 0x14 | |
− | + | #define sk_Comma 0x25 | |
− | + | #define sk_Sin 0x26 | |
− | + | #define sk_Apps 0x27 | |
− | + | #define sk_GraphVar 0x28 | |
− | + | #define sk_DecPnt 0x19 | |
− | + | #define sk_LParen 0x1D | |
− | + | #define sk_Cos 0x1E | |
− | + | #define sk_Prgm 0x1F | |
− | + | #define sk_Stat 0x20 | |
− | + | #define sk_Chs 0x10 | |
− | + | #define sk_RParen 0x15 | |
− | + | #define sk_Tan 0x16 | |
− | + | #define sk_Vars 0x17 | |
− | + | #define sk_Power 0x0E | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | #endif</pre> | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + |
Revision as of 22:34, 24 October 2016
C Definitions
// Parts from Matt "MateoConLechuga" Waltz and Jacob "jacobly" Young, in addtion to // contributors of http://wikiti.brandonw.net/index.php?title=84PCE:OS:Include_File // Latest as of October 2016 #ifndef TICE_H #define TICE_H #include <stdbool.h> #include <stdint.h> #include <stddef.h> /************* HARDWARE AND CUSTOM ROUTINES *************/ /* Creates a random integer value */ #define randInt(min, max) (unsigned)rand() % ((max) - (min) + 1) + (min)) /* RTC define -- useful for srand() */ #define rtc_Time() (*(volatile uint32_t*)0xF30044) /* RTC definitions */ #define RTC_UNFREEZE (1<<7) #define RTC_FREEZE (0<<7) #define RTC_LOAD (1<<6) #define RTC_ENABLE (1<<0)|RTC_UNFREEZE #define RTC_DISABLE (0<<0) /* RTC registers */ #define rtc_Seconds (*(volatile uint8_t*)0xF30000) #define rtc_Minutes (*(volatile uint8_t*)0xF30004) #define rtc_Hours (*(volatile uint8_t*)0xF30008) #define rtc_Days (*(volatile uint16_t*)0xF3000C) #define rtc_AlarmSeconds (*(uint8_t*)0xF30010) #define rtc_AlarmMinutes (*(uint8_t*)0xF30014) #define rtc_AlarmHours (*(uint8_t*)0xF30018) #define rtc_Control (*(uint8_t*)0xF30020) #define rtc_LoadSeconds (*(uint8_t*)0xF30024) #define rtc_LoadMinutes (*(uint8_t*)0xF30028) #define rtc_LoadHours (*(uint8_t*)0xF3002C) #define rtc_LoadDays (*(uint16_t*)0xF30030) #define rtc_IntStatus (*(volatile uint8_t*)0xF30034) #define rtc_IntAcknowledge (*(volatile uint8_t*)0xF30034) #define rtc_IsBusy() (rtc_Control & RTC_LOAD) /* RTC interrupt masks */ #define RTC_ALARM_INT_SOURCE (1<<5) #define RTC_DAY_INT_SOURCE (1<<4) #define RTC_HR_INT_SOURCE (1<<3) #define RTC_MIN_INT_SOURCE (1<<2) #define RTC_SEC_INT_SOURCE (1<<1) /* RTC interrupt statuses */ #define RTC_LOAD_INT (1<<5) #define RTC_ALARM_INT (1<<4) #define RTC_DAY_INT (1<<3) #define RTC_HR_INT (1<<2) #define RTC_MIN_INT (1<<1) #define RTC_SEC_INT (1<<0) #define RTC_INT_MASK (RTC_SEC_INT | RTC_MIN_INT | RTC_HR_INT | RTC_DAY_INT | RTC_ALARM_INT | RTC_LOAD_INT) /* Whole bunch of useful timer functions */ #define TIMER1_ENABLE 1 << 0 // Enables Timer 1 #define TIMER1_DISABLE 0 << 0 // Disables Timer 1 #define TIMER1_32K 1 << 1 // Use the 32K clock for timer 1 #define TIMER1_CPU 0 << 1 // Use the CPU clock rate for timer 1 #define TIMER1_0INT 1 << 2 // Enable an interrupt when 0 is reached for the timer 1 #define TIMER1_NOINT 0 << 2 // Disable interrupts for the timer 1 #define TIMER1_UP 1 << 9 // Timer 1 counts up #define TIMER1_DOWN 0 << 9 // Timer 1 counts down #define TIMER2_ENABLE 1 << 3 // Enables Timer 2 #define TIMER2_DISABLE 0 << 3 // Enables Timer 2 #define TIMER2_32K 1 << 4 // Use the 32K clock for timer 2 #define TIMER2_CPU 0 << 4 // Use the CPU clock rate for timer 2 #define TIMER2_0INT 1 << 5 // Enable an interrupt when 0 is reached for the timer 2 #define TIMER2_NOINT 0 << 5 // Disable interrupts for the timer 2 #define TIMER2_UP 1 << 10 // Timer 2 counts up #define TIMER2_DOWN 0 << 10 // Timer 2 counts down /* These defines can be used to check the status of the timer */ #define TIMER1_MATCH1 1 << 0 // Timer 1 hit the first match value #define TIMER1_MATCH2 1 << 1 // Timer 1 hit the second match value #define TIMER1_RELOADED 1 << 2 // Timer 1 was reloaded (Needs to have TIMER1_0INT enabled) #define TIMER2_MATCH1 1 << 3 // Timer 2 hit the first match value #define TIMER2_MATCH2 1 << 4 // Timer 2 hit the second match value #define TIMER2_RELOADED 1 << 5 // Timer 2 was reloaded (Needs to have TIMER2_0INT enabled) /* Timer registers */ #define timer_1_Counter (*(volatile uint32_t *)0xF20000) #define timer_2_Counter (*(volatile uint32_t *)0xF20010) #define timer_1_ReloadValue (*(uint32_t *)0xF20004) #define timer_2_ReloadValue (*(uint32_t *)0xF20014) #define timer_1_MatchValue_1 (*(uint32_t *)0xF20008) #define timer_1_MatchValue_2 (*(uint32_t *)0xF2000C) #define timer_2_MatchValue_1 (*(uint32_t *)0xF20018) #define timer_2_MatchValue_2 (*(uint32_t *)0xF2001C) #define timer_Control (*(uint32_t *)0xF20030) #define timer_EnableInt (*(uint16_t *)0xF20038) #define timer_IntStatus (*(volatile uint16_t *)0xF20034) #define timer_IntAcknowledge (*(volatile uint16_t *)0xF20034) /* LCD defines */ #define lcd_BacklightLevel (*(uint8_t*)0xF60024) /* OS varaible type definitions */ typedef struct { int8_t sign, exp; uint8_t mant[7]; } real_t; typedef struct { real_t real, imag; } cplx_t; typedef struct { uint16_t dim; real_t items[1]; } list_t; typedef struct { uint16_t dim; cplx_t items[1]; } cplx_list_t; typedef struct { uint8_t cols, rows; real_t items[1]; } matrix_t; typedef struct { uint16_t len; char data[1]; } string_t; typedef struct { uint16_t len; char data[1]; } equ_t; typedef struct { uint16_t size; uint8_t data[1]; } var_t; #define matrix_element(matrix, row, col) ((matrix)->items[(row)+(col)*(matrix)->rows]) #define NEG_SIGN_MASK 0x80 #define POS_SIGN_MASK 0x00 #define CPLX_SIGN_MASK 0x0C /* Cleans up everything and gets ready to enter back to the OS when you are ready to exit your program */ void prgm_CleanUp(void); #define pgrm_CleanUp prgm_CleanUp /* A faster implementation of memset */ void *memset_fast(void *ptr,int value,size_t num); /************* TI OS SPECIFIC ROUTINES AND IMPLEMENTATIONS *************/ /** * Resets the RTC back to its original values * If enable is true, the RTC will be enabled during this function */ void boot_RTCInitialize(bool enable); /** * Returns the Bootcode version major */ uint8_t boot_GetBootVerMajor(void); /** * Returns the Bootcode version minor */ uint8_t boot_GetBootVerMinor(void); /** * Returns the Harware version */ uint8_t boot_GetHardwareVers(void); /** * Turns all of VRAM into 0xFF (white) */ void boot_ClearVRAM(void); /** * Checks if the [on] key was pressed */ bool boot_CheckOnPressed(void); /** * Basically a reimplemented form of printf that prints to some debugging device */ void boot_DebugPrintf(const char *string); /** * Turns off the calculator (probably not a good idea to use) */ void boot_TurnOff(void); /** * Inserts a new line at the current cursor posistion on the homescreen */ void boot_NewLine(void); /** * Prints the boot version at a really silly place on the homescreen */ void boot_PrintBootVersion(void); /** * Returns the current battery status */ uint8_t boot_GetBatteryStatus(void); /** * Waits for 10 ms */ void boot_WaitShort(void); /** * Set the time of the calculator */ void boot_SetTime(uint8_t seconds, uint8_t minutes, uint8_t hours); /** * Disables the OS cursor */ void os_DisableCursor(void); /** * Enables the OS cursor */ void os_EnableCursor(void); /** * Set/Get the foreground color used to draw text on the graphscreen */ void os_SetDrawFGColor(int color); uint24_t os_GetDrawFGColor(void); /** * Set/Get the backgroundground color used to draw text on the graphscreen * os_GetDrawBGColor is only useable in OS 5.2 and above; use at your own risk */ void os_SetDrawBGColor(uint24_t color); uint24_t os_GetDrawBGColor(void); /** * Set/Get the cursor posistion used on the homescreen */ void os_SetCursorPos(uint8_t curRow, uint8_t curCol); void os_GetCursorPos(uint8_t **curRow, uint8_t **curCol); /** * Selects/Gets the font to use when drawing on the graphscreen * 0: small font * 1: large monospace font */ void os_FontSelect(char id); uint24_t os_FontGetID(void); /** * Returns the width of a string in the varaible-width format * Second function is used to get the height of the characters */ uint24_t os_FontGetWidth(const char *string); uint24_t os_FontGetHeight(void); /** * Draws a text using the small font to the screen * Returns the end column */ uint24_t os_FontDrawText(const char *string, uint16_t col, uint8_t row); uint24_t os_FontDrawTransText(const char *string, uint16_t col, uint8_t row); /** * Puts some text at the current homescreen cursor location * Returns 1 if string fits on screen, 0 otherwise */ uint24_t os_PutStrFull(const char *string); /** * Puts some text at the current homescreen cursor location * Returns 1 if string fits on line, 0 otherwise */ uint24_t os_PutStrLine(const char *string); /** * Set/Get a particular flag variable */ void os_SetFlagByte(int offset, uint8_t set); uint8_t os_GetFlagByte(int offset); /** * Returns amount of free ram, free set to start of free ram */ size_t os_MemChk(void **free); /** * Throws an OS error */ void os_ThrowError(uint8_t error); /** * Returns a pointer to the system stats */ void *os_GetSystemStats(void); /** * Sets up the defualt error handlers if an OS routine encounters an error when running */ void os_PushErrorHandler(void *routine); void os_PopErrorHandler(void); /** * Returns a pointer to symtable of the OS */ void *os_GetSymTablePtr(void); /** * Creates an appvar; and returns a pointer to the structure * Returns NULL if creation failed for some reason, otherwise a pointer to the size bytes */ var_t *os_CreateAppVar(const char *name, uint16_t size); /** * Returns next entry or NULL if no more entries, pass os_GetSymTablePtr() as first entry */ void *os_NextSymEntry(void *entry, uint24_t *type, uint24_t *nameLength, const char *name, void **data); /** * If file exists, returns 1 and sets entry and data, otherwise returns 0. * entry and/or data can be NULL if you don't care */ int os_ChkFindSym(uint8_t type, const char *name, void **entry, void **data); /** * type is set to the current varaible type in ANS, and a pointer to the data is returned * Returns NULL if Ans doesn't exist or type is NULL */ void *os_RclAns(uint8_t *type); /** * Copies a real_t */ real_t os_RealCopy(const real_t *src); /** * Unary operations used to interact with the OS math functions */ real_t os_RealAcosRad(const real_t *arg); real_t os_RealAsinRad(const real_t *arg); real_t os_RealAtanRad(const real_t *arg); real_t os_RealCosRad(const real_t *arg); real_t os_RealRadToDeg(const real_t *arg); real_t os_RealExp(const real_t *arg); real_t os_RealFloor(const real_t *arg); real_t os_RealFrac(const real_t *arg); real_t os_RealRoundInt(const real_t *arg); real_t os_RealLog(const real_t *arg); real_t os_RealNeg(const real_t *arg); real_t os_RealDegToRad(const real_t *arg); real_t os_RealInv(const real_t *arg); real_t os_RealSinRad(const real_t *arg); real_t os_RealSqrt(const real_t *arg); real_t os_RealTanRad(const real_t *arg); real_t os_RealInt(const real_t *arg); cplx_t os_CplxSquare(const cplx_t *arg); /** * Binary operations used to interact with the OS math functions */ real_t os_RealAdd(const real_t *arg1, const real_t *arg2); real_t os_RealDiv(const real_t *arg1, const real_t *arg2); real_t os_RealGcd(const real_t *arg1, const real_t *arg2); real_t os_RealLcm(const real_t *arg1, const real_t *arg2); real_t os_RealMax(const real_t *arg1, const real_t *arg2); real_t os_RealMin(const real_t *arg1, const real_t *arg2); real_t os_RealMul(const real_t *arg1, const real_t *arg2); real_t os_RealNcr(const real_t *total, const real_t *num); real_t os_RealNpr(const real_t *total, const real_t *num); real_t os_RealPow(const real_t *base, const real_t *exp); real_t os_RealRandInt(const real_t *min, const real_t *max); real_t os_RealMod(const real_t *arg1, const real_t *arg2); real_t os_RealSub(const real_t *arg1, const real_t *arg2); /** * digits must be in the range 0 - 9 */ real_t os_RealRound(const real_t *arg, char digits); /** * Returns -1, 0, or 1 depending on the comparison */ int os_RealCompare(const real_t *arg1, const real_t *arg2); /** * Conversion routines for ti-floats. * All saturate on overflow. */ int24_t os_RealToInt24(const real_t *arg); real_t os_Int24ToReal(int24_t arg); float os_RealToFloat(const real_t *arg); real_t os_FloatToReal(float arg); /** os_RealToStr: * This converts a ti-float to a ti-ascii string. * result: zero terminated string copied to this address * arg: real to convert * maxLength: * <=0: use default max length (14) * >0: max length of result, minimum of 6 * mode: * 0: Use current mode for everything (digits ignored) * 1: Normal mode * 2: Sci mode * 3: Eng mode * >4: Use current Normal/Sci/Eng mode (digits still used) * digits: * -1: Float mode * 0-9: Fix # mode * returns length of result */ int os_RealToStr(char *result, const real_t *arg, char maxLength, char mode, char digits); /** os_StrToReal: * This converts a ti-ascii string to a ti-float. * String format regexp: / *[-\032+]?[0-9]*(\.[0-9]*)?([eE\033][-\032+]?[0-9]*)?/ * result: resulting ti-float stored here, on exponent overflow this is +-9.9999999999999e99 * string: ti-ascii string to convert * end: if non-null, pointer to end of parsed number is stored here * returns result */ real_t os_StrToReal(const char *string, char **end); /** * High 8 is unsigned offset, low 8 is bits to test * os_TestFlagBits will return a 0 or 1 */ int os_TestFlagBits(uint16_t offset_pattern); void os_SetFlagBits(int16_t offset_pattern); void os_ResetFlagBits(int16_t offset_pattern); /** * Returns extended key in high byte */ uint16_t os_GetKey(void); /** * Performs an OS call to get the keypad scan code * Technically return type is uint24_t, but that is not useful as the high byte is 0 * Values returned are listed below */ uint8_t os_GetCSC(void); typedef uint8_t sk_key_t; /** * Things you shouldn't use unless you know what you are doing */ void os_ForceCmdNoChar(void); void boot_Set6MHzMode(void); void boot_Set48MHzMode(void); void boot_Set6MHzModeI(void); void boot_Set48MHzModeI(void); /** * Use this function to call assembly functions in the OS and Bootcode * i.e. _OS( asm_HomeUp ); */ void _OS(void (*function)(void)); /** * Assembly functions ( Don't forget to call from _OS() ) */ void asm_MoveUp(void); void asm_MoveDown(void); void asm_HomeUp(void); void asm_RunIndicOn(void); void asm_RunIndicOff(void); void asm_DisableAPD(void); void asm_EnableAPD(void); void asm_ArcChk(void); /** * OS RAM Location defines for direct modification */ #define OS_BLUE_COLOR 10 #define OS_RED_COLOR 11 #define OS_BLACK_COLOR 12 #define OS_MAGENTA_COLOR 13 #define OS_GREEN_COLOR 14 #define OS_ORANGE_COLOR 15 #define OS_BROWN_COLOR 16 #define OS_NAVY_COLOR 17 #define OS_LTBLUE_COLOR 18 #define OS_YELLOW_COLOR 19 #define OS_WHITE_COLOR 20 #define OS_LTGRAY_COLOR 21 #define OS_MEDGRAY_COLOR 22 #define OS_GRAY_COLOR 23 #define OS_DARKGRAY_COLOR 24 #define os_ramStart ((uint8_t*)0xD00000) #define os_flags ((uint8_t*)0xD00080) #define os_textFlags (*(uint8_t*)0xD00080) #define os_apdFlags (*(uint8_t*)0xD00088) #define os_rclFlags (*(uint8_t*)0xD0008E) #define os_kbdScanCode (*(uint8_t*)0xD00587) #define os_kbdLGSC (*(uint8_t*)0xD00588) #define os_kbdPSC (*(uint8_t*)0xD00589) #define os_kbdWUR (*(uint8_t*)0xD0058A) #define os_kbdDebncCnt (*(uint8_t*)0xD0058B) #define os_kbdKey (*(uint8_t*)0xD0058C) #define os_kbdGetKy (*(uint8_t*)0xD0058D) #define os_keyExtend (*(uint8_t*)0xD0058E) #define os_brightness (*(uint8_t*)0xD0058F) #define os_apdSubTimer (*(uint8_t*)0xD00590) #define os_apdTimer (*(uint8_t*)0xD00591) #define os_curRow (*(uint8_t*)0xD00595) #define os_curCol (*(uint8_t*)0xD00596) #define os_OP1 ((uint8_t*)0xD005F8) #define os_OP2 ((uint8_t*)0xD00603) #define os_OP3 ((uint8_t*)0xD0060E) #define os_OP4 ((uint8_t*)0xD00619) #define os_OP5 ((uint8_t*)0xD00624) #define os_OP6 ((uint8_t*)0xD0062F) #define os_progToEdit ((char*)0xD0065B) #define os_nameBuff ((char*)0xD00663) #define os_promptRow (*(uint8_t*)0xD00800) #define os_promptCol (*(uint8_t*)0xD00801) #define os_promptIns (*(uint8_t*)0xD00802) #define os_promptShift (*(uint8_t*)0xD00803) #define os_promptRet (*(uint8_t*)0xD00804) #define os_promptValid (*(uint8_t*)0xD00807) #define os_penCol (*(uint24_t*)0xD008D2) #define os_penRow (*(uint8_t*)0xD008D5) #define os_asmPrgmSize (*(uint16_t*)0xD0118C) #define os_y1LineType (*(uint8_t*)0xD024BF) #define os_y2LineType (*(uint8_t*)0xD024C0) #define os_y3LineType (*(uint8_t*)0xD024C1) #define os_y4LineType (*(uint8_t*)0xD024C2) #define os_y5LineType (*(uint8_t*)0xD024C3) #define os_y6LineType (*(uint8_t*)0xD024C4) #define os_y7LineType (*(uint8_t*)0xD024C5) #define os_y8LineType (*(uint8_t*)0xD024C6) #define os_y9LineType (*(uint8_t*)0xD024C7) #define os_y0LineType (*(uint8_t*)0xD024C8) #define os_para1LineType (*(uint8_t*)0xD024C9) #define os_para2LineType (*(uint8_t*)0xD024CA) #define os_para3LineType (*(uint8_t*)0xD024CB) #define os_para4LineType (*(uint8_t*)0xD024CC) #define os_para5LineType (*(uint8_t*)0xD024CD) #define os_para6LineType (*(uint8_t*)0xD024CE) #define os_polar1LineType (*(uint8_t*)0xD024CF) #define os_polar2LineType (*(uint8_t*)0xD024D0) #define os_polar3LineType (*(uint8_t*)0xD024D1) #define os_polar4LineType (*(uint8_t*)0xD024D2) #define os_polar5LineType (*(uint8_t*)0xD024D3) #define os_polar6LineType (*(uint8_t*)0xD024D4) #define os_secULineType (*(uint8_t*)0xD024D5) #define os_secVLineType (*(uint8_t*)0xD024D6) #define os_secWLineType (*(uint8_t*)0xD024D7) #define os_y1LineColor (*(uint8_t*)0xD024D8) #define os_y2LineColor (*(uint8_t*)0xD024D9) #define os_y3LineColor (*(uint8_t*)0xD024DA) #define os_y4LineColor (*(uint8_t*)0xD024DB) #define os_y5LineColor (*(uint8_t*)0xD024DC) #define os_y6LineColor (*(uint8_t*)0xD024DD) #define os_y7LineColor (*(uint8_t*)0xD024DE) #define os_y8LineColor (*(uint8_t*)0xD024DF) #define os_y9LineColor (*(uint8_t*)0xD024E0) #define os_y0LineColor (*(uint8_t*)0xD024E1) #define os_para1LineColor (*(uint8_t*)0xD024E2) #define os_para2LineColor (*(uint8_t*)0xD024E3) #define os_para3LineColor (*(uint8_t*)0xD024E4) #define os_para4LineColor (*(uint8_t*)0xD024E5) #define os_para5LineColor (*(uint8_t*)0xD024E6) #define os_para6LineColor (*(uint8_t*)0xD024E7) #define os_polar1LineColor (*(uint8_t*)0xD024E8) #define os_polar2LineColor (*(uint8_t*)0xD024E9) #define os_polar3LineColor (*(uint8_t*)0xD024EA) #define os_polar4LineColor (*(uint8_t*)0xD024EB) #define os_polar5LineColor (*(uint8_t*)0xD024EC) #define os_polar6LineColor (*(uint8_t*)0xD024ED) #define os_secULineColor (*(uint8_t*)0xD024EE) #define os_secVLineColor (*(uint8_t*)0xD024EF) #define os_secWLineColor (*(uint8_t*)0xD024F0) #define os_appErr1 ((char*)0xD025A9) #define os_appErr2 ((char*)0xD025B6) #define os_cursorHookPtr (*(uint24_t*)0xD025D5) #define os_libraryHookPtr (*(uint24_t*)0xD025D8) #define os_rawKeyHookPtr (*(uint24_t*)0xD025DB) #define os_getKeyHookPtr (*(uint24_t*)0xD025DE) #define os_homescreenHookPtr (*(uint24_t*)0xD025E1) #define os_windowHookPtr (*(uint24_t*)0xD025E4) #define os_graphHookPtr (*(uint24_t*)0xD025E7) #define os_yEqualsHookPtr (*(uint24_t*)0xD025EA) #define os_fontHookPtr (*(uint24_t*)0xD025ED) #define os_regraphHookPtr (*(uint24_t*)0xD025F0) #define os_graphicsHookPtr (*(uint24_t*)0xD025F3) #define os_traceHookPtr (*(uint24_t*)0xD025F6) #define os_parserHookPtr (*(uint24_t*)0xD025F9) #define os_appChangeHookPtr (*(uint24_t*)0xD025FC) #define os_catalog1HookPtr (*(uint24_t*)0xD025FF) #define os_helpHookPtr (*(uint24_t*)0xD02602) #define os_cxRedispHookPtr (*(uint24_t*)0xD02605) #define os_menuHookPtr (*(uint24_t*)0xD02608) #define os_catalog2HookPtr (*(uint24_t*)0xD0260B) #define os_tokenHookPtr (*(uint24_t*)0xD0260E) #define os_localizeHookPtr (*(uint24_t*)0xD02611) #define os_silentLinkHookPtr (*(uint24_t*)0xD02614) #define os_USBActiveHookPtr (*(uint24_t*)0xD0261A) #define os_tempFreeArc (*(uint24_t*)0xD02655) /* Set after asm_ArcChk call */ #define os_textBGcolor (*(uint16_t*)0xD02688) #define os_textFGcolor (*(uint16_t*)0xD0268A) #define os_drawBGColor (*(uint16_t*)0xD026AA) #define os_drawFGColor (*(uint16_t*)0xD026AC) #define os_drawColorCode (*(uint8_t*)0xD026AE) #define os_batteryStatus (*(uint8_t*)0xD02A86) #define os_graphBGColor ((uint16_t*)0xD02A98) #define os_fillRectColor (*(uint16_t*)0xD02AC0) #define os_statusBarBGColor ((uint16_t*)0xD02ACC) /** * ---- TI-OS Token definitions ---- */ #define tToDMS 0x01 #define tToDEC 0x02 #define tToAbc 0x03 #define tStore 0x04 // -> #define tBoxPlot 0x05 #define tLBrack 0x06 // '[' #define tRBrack 0x07 // ']' #define tLBrace 0x08 // '{' #define tRBrace 0x09 // '}' #define tFromRad 0x0A #define tFromDeg 0x0B #define tRecip 0x0C #define tSqr 0x0D #define tTrnspos 0x0E #define tCube 0x0F // '^3' #define tLParen 0x10 // '(' #define tRParen 0x11 // ')' #define tRound 0x12 // 'round' #define tPxTst 0x13 // 'PXL-TEST' #define tAug 0x14 // 'aug' #define tRowSwap 0x15 // 'rSwap' #define tRowPlu 0x16 // 'rAdd' #define tmRow 0x17 // 'multR' #define tmRowPlus 0x18 // 'mRAdd' #define tMax 0x19 // 'max' #define tMin 0x1A // 'min' #define tRToPr 0x1B // 'R>Pr' #define tRToPo 0x1C // 'R>Po' #define tPToRx 0x1D // 'P>Rx' #define tPToRy 0x1E // 'P>Ry' #define tMedian 0x1F // 'MEDIAN' #define tRandM 0x20 // 'randM' #define tMean 0x21 // 'MEAN' #define tRoot 0x22 // 'ROOT' #define tSeries 0x23 // 'seq' #define tFnInt 0x24 // 'fnInt' #define tNDeriv 0x25 // 'fnIr' #define tEvalF 0x26 #define tFmin 0x27 #define tFmax 0x28 #define tSpace 0x29 // ' ' #define tString 0x2A // '"' #define tComma 0x2B // ',' #define tii 0x2C // 'i' #define tFact 0x2D // '!' #define tCubicR 0x2E #define tQuartR 0x2F #define t0 0x30 #define t1 0x31 #define t2 0x32 #define t3 0x33 #define t4 0x34 #define t5 0x35 #define t6 0x36 #define t7 0x37 #define t8 0x38 #define t9 0x39 #define tDecPt 0x3A // '.' #define tee 0x3B // 'e' #define tOr 0x3C // '_or_' #define tXor 0x3D #define tColon 0x3E // ':' #define tEnter 0x3F #define tAnd 0x40 // '_and_' #define tA 0x41 #define tB 0x42 #define tC 0x43 #define tD 0x44 #define tE 0x45 #define tF 0x46 #define tG 0x47 #define tH 0x48 #define tI 0x49 #define tJ 0x4A #define tK 0x4B #define tL 0x4C #define tM 0x4D #define tN 0x4E #define tO 0x4F #define tP 0x50 #define tQ 0x51 #define tR 0x52 #define tS 0x53 #define tT 0x54 #define tU 0x55 #define tV 0x56 #define tW 0x57 #define tX 0x58 #define tY 0x59 #define tZ 0x5A #define tTheta 0x5B /** * Extended Tokens */ #define tExtTok 0xEF #define tSetDate 0x00 #define tSetTime 0x01 #define tCheckTmr 0x02 #define tSetDtFmt 0x03 #define tSetTmFmt 0x04 #define tTimeCnv 0x05 #define tDayOfWk 0x06 #define tGetDtStr 0x07 #define tGetTmStr 0x08 #define tGetDate 0x09 #define tGetTime 0x0A #define tStartTmr 0x0B #define tGtDtFmt 0x0C #define tGetTmFmt 0x0D #define tIsClockOn 0x0E #define tClockOff 0x0F #define tClockOn 0x10 #define tOpenLib 0x11 #define tExecLib 0x12 #define tInvT 0x13 #define tChiSquaredTest 0x14 #define tLinRegTInt 0x15 #define tManualFit 0x16 #define tZQuadrant 0x17 #define tZFracHalf 0x18 #define tZFracThird 0x19 #define tZFracFourth 0x1A #define tZFracFifth 0x1B #define tZFracEighth 0x1C #define tZFracTenth 0x1D #define tFracSlash 0x2E #define tFracMixedNum 0x2F #define tSwapImProper 0x30 #define tSwapFracDec 0x31 #define tRemainder 0x32 #define tSummationSigma 0x33 #define tLogBase 0x34 #define tRandIntNoRep 0x35 #define tMathPrint 0x36 #define tClassic 0x38 #define tAutoAnswer 0x3B #define tDecAnswer 0x3C #define tFracAnswer 0x3D #define tBlue 0x41 #define tRed 0x42 #define tBlack 0x43 #define tMagenta 0x44 #define tGreen 0x45 #define tOrange 0x46 #define tBrown 0x47 #define tNavy 0x48 #define tLtBlue 0x49 #define tYellow 0x4A #define tWhite 0x4B #define tLtGray 0x4C #define tMedGray 0x4D #define tGray 0x4E #define tDarkGray 0x4F #define tGraphColor 0x65 #define tTextColor 0x67 #define tBackgroundOn 0x5B #define tBackgroundOff 0x64 #define tThin 0x74 #define tBorderColor 0x6C #define tAsm84CPrgm 0x68 #define tAsm84CCmp 0x69 #define tAsm84CeCmp 0x7B #define tAsm84CePrgm 0x7A #define tVarMat 0x5C #define tVarLst 0x5D #define tVarEqu 0x5E #define tProg 0x5F #define tVarPict 0x60 #define tVarGDB 0x61 #define tVarOut 0x62 #define tVarSys 0x63 /** * Mode settings tokens */ #define tRad 0x64 // 'Radian' #define tDeg 0x65 // 'Degree' #define tNormF 0x66 // 'Normal' #define tSci 0x67 // 'Sci' #define tEng 0x68 // 'Eng' #define tFloat 0x69 // 'Float' #define tFix 0x73 // 'Fix_' #define tSplitOn 0x74 #define tFullScreen 0x75 #define tStndrd 0x76 // 'Func' #define tParam 0x77 // 'Param' #define tPolar 0x78 // 'Pol' #define tSeqG 0x79 // ;79h #define tAFillOn 0x7A // 'AUTO FILL ON' #define tAFillOff 0x7B // 'AutoFill OFF' #define tACalcOn 0x7C #define tACalcOff 0x7D #define tEQ 0x6A // '==' #define tLT 0x6B // '<' #define tGT 0x6C // '>' #define tLE 0x6D // LLE #define tGE 0x6E // LGE #define tNE 0x6F // LNE #define tAdd 0x70 // '+' #define tSub 0x71 // '-' #define tMul 0x82 // '*' #define tDiv 0x83 // '/' #define tAns 0x72 #define tBoxIcon 0x7F #define tCrossIcon 0x80 #define tDotIcon 0x81 #define tTrace 0x84 // 'Trace' #define tClDrw 0x85 // 'ClDraw' #define tZoomStd 0x86 // 'ZStd' #define tZoomtrg 0x87 // 'Ztrg' #define tZoomBox 0x88 // 'ZBOX' #define tZoomIn 0x89 // 'ZIn' #define tZoomOut 0x8A // 'ZOut' #define tZoomSqr 0x8B // 'ZSqr' #define tZoomInt 0x8C // 'ZInt' #define tZoomPrev 0x8D // 'ZPrev' #define tZoomDec 0x8E // 'ZDecm' #define tZoomStat 0x8F // 'ZStat #define tUsrZm 0x90 // 'ZRcl' #define tPrtScrn 0x91 // 'PrtScrn' #define tZoomSto 0x92 // 'ZSto' #define tText 0x93 #define tnPr 0x94 // '_nPr_' #define tnCr 0x95 // '_nCr_' // Graph Commands #define tYOn 0x96 // 'FnOn_' #define tYOff 0x97 // 'FnOff_' #define tStPic 0x98 // 'StPic_' #define tRcPic 0x99 // 'RcPic_' #define tStoDB 0x9A // 'StGDB_' #define tRclDB 0x9B // 'RcGDB_' #define tLine 0x9C // 'Line' #define tVert 0x9D // 'Vert_' #define tPtOn 0x9E // 'PtOn' #define tPtOff 0x9F // 'PtOff' #define tPtChg 0xA0 // 'PtChg' #define tPXOn 0xA1 #define tPXOff 0xA2 #define tPXChg 0xA3 #define tShade 0xA4 // 'Shade' #define tCircle 0xA5 // 'Circle' #define tHorz 0xA6 // 'HORIZONTAL' #define tTanLn 0xA7 // 'TanLn' #define tDrInv 0xA8 // 'DrInv_' #define tDrawF 0xA9 // 'DrawF_' #define tVarStrng 0xAA // Functions with No Argument #define tRand 0xAB // 'rand' #define tPi 0xAC // Lpi #define tGetKey 0xAD // 'getKy' #define tAPost 0xAE // ''' #define tQuest 0xAF // '?' #define tChs 0xB0 #define tInt 0xB1 #define tAbs 0xB2 #define tDet 0xB3 #define tIdent 0xB4 #define tDim 0xB5 #define tSum 0xB6 #define tProd 0xB7 #define tNot 0xB8 #define tIPart 0xB9 #define tFPart 0xBA // New 2 Byte Tokens #define t2ByteTok 0xBB #define tSqrt 0xBC #define tCubRt 0xBD #define tLn 0xBE #define tExp 0xBF #define tLog 0xC0 #define tALog 0xC1 #define tSin 0xC2 #define tASin 0xC3 #define tCos 0xC4 #define tACos 0xC5 #define tTan 0xC6 #define tATan 0xC7 #define tSinH 0xC8 #define tASinH 0xC9 #define tCoshH 0xCA #define tACosH 0xCB #define tTanH 0xCC #define tATanH 0xCD // Some Programming Commands #define tIf 0xCE // 'If_' #define tThen 0xCF // 'Then_' #define tElse 0xD0 // 'Else_' #define tWhile 0xD1 // 'While_' #define tRepeat 0xD2 // 'Repeat_' #define tFor 0xD3 // 'For_' #define tEnd 0xD4 // 'End' #define tReturn 0xD5 // 'Return' #define tLbl 0xD6 // 'Lbl_' #define tGoto 0xD7 // 'Goto_' #define tPause 0xD8 // 'Pause_' #define tStop 0xD9 // 'Stop' #define tISG 0xDA // 'IS>' #define tDSL 0xDB // 'DS<' #define tInput 0xDC // 'Input_' #define tPrompt 0xDD // 'Prompt_' #define tDisp 0xDE // 'Disp_' #define tDispG 0xDF // 'DispG' #define tOutput 0xE0 // 'Outpt' #define tClLCD 0xE1 // 'ClLCD' #define tConst 0xE2 // 'Fill' #define tSortA 0xE3 // 'sortA_' #define tSortD 0xE4 // 'sortD_' #define tDispTab 0xE5 // 'Disp Table #define tMenu 0xE6 // 'Menu' #define tSendMBL 0xE7 // 'Send' #define tGetMBL 0xE8 // 'Get' // Stat Plot Commands #define tPlotOn 0xE9 // 'PLOTSON' #define tPlotOff 0xEA // 'PLOTSOFF #define tListName 0xEB // List Designator #define tPlot1 0xEC #define tPlot2 0xED #define tPlot3 0xEE #define tUnused01 0xEF // available? #define tPower 0xF0 // '^' #define tXRoot 0xF1 // LsupX,Lroot #define tOneVar 0xF2 // 'OneVar_' #define tTwoVar 0xF3 #define tLR 0xF4 // 'LinR(A+BX)' #define tLRExp 0xF5 // 'ExpR_' #define tLRLn 0xF6 // 'LnR_' #define tLRPwr 0xF7 // 'PwrR_' #define tMedMed 0xF8 #define tQuad 0xF9 #define tClrLst 0xFA // 'Clear List' #define tClrTbl 0xFB // 'Clear Table' #define tHist 0xFC // 'Hist_' #define txyLine 0xFD // 'xyline_' #define tScatter 0xFE // 'Scatter_' #define tLR1 0xFF // 'LINR(AX+B)' // 2nd Half Of Graph Format Tokens #define tSeq 0x00 // 'SeqG' #define tSimulG 0x01 // 'SimulG' #define tPolarG 0x02 // 'PolarGC' #define tRectG 0x03 // 'RectGC' #define tCoordOn 0x04 // 'CoordOn' #define tCoordOff 0x05 // 'CoordOff' #define tDrawLine 0x06 // 'DrawLine' #define tDrawDot 0x07 // 'DrawDot' #define tAxisOn 0x08 // 'AxesOn' #define tAxisOff 0x09 // 'AxesOff' #define tGridOn 0x0A // 'GridOn' #define tGridOff 0x0B // 'GridOff' #define tLblOn 0x0C // 'LabelOn' #define tLblOff 0x0D // 'LabelOff' #define tWebOn 0x0E // 'WebOn' #define tWebOff 0x0F // 'WebOFF' #define tuv 0x10 // U vs V #define tvw 0x11 // V vs W #define tuw 0x12 // U vs W // 2nd Half Of User Matrix Tokens #define tMatA 0x00 // MAT A #define tMatB 0x01 // MAT B #define tMatC 0x02 // MAT C #define tMatD 0x03 // MAT D #define tMatE 0x04 // MAT E #define tMatF 0x05 // MAT F #define tMatG 0x06 // MAT G #define tMatH 0x07 // MAT H #define tMatI 0x08 // MAT I #define tMatJ 0x09 // MAT J // 2nd Half Of User List Tokens #define tL1 0x00 // LIST 1 #define tL2 0x01 // LIST 2 #define tL3 0x02 // LIST 3 #define tL4 0x03 // LIST 4 #define tL5 0x04 // LIST 5 #define tL6 0x05 // LIST 6 // 2nd Half Of User Equation Tokens // Y Equations have bit 4 set #define tY1 0x10 // Y1 #define tY2 0x11 // Y2 #define tY3 0x12 // Y3 #define tY4 0x13 // Y4 #define tY5 0x14 // Y5 #define tY6 0x15 // Y6 #define tY7 0x16 // Y7 #define tY8 0x17 // Y8 #define tY9 0x18 // Y9 #define tY0 0x19 // Y0 // Param Equations Have Bit 5 Set #define tX1T 0x20 // X1t #define tY1T 0x21 // Y1t #define tX2T 0x22 // X2t #define tY2T 0x23 // Y2t #define tX3T 0x24 // X3t #define tY3T 0x25 // Y3t #define tX4T 0x26 // X4t #define tY4T 0x27 // Y4t #define tX5T 0x28 // X5t #define tY5T 0x29 // Y5t #define tX6T 0x2A // X6t #define tY6T 0x2B // Y6t // Polar Equations Have Bit 6 Set #define tR1 0x40 // R1 #define tR2 0x41 // R2 #define tR3 0x42 // R3 #define tR4 0x43 // R4 #define tR5 0x44 // R5 #define tR6 0x45 // R6 // Recursion Equations Have Bit 7 Set #define tun 0x80 // Un #define tvn 0x81 // Vn #define twn 0x82 // Wn // 2nd Half User Picture Tokens #define tPic1 0x00 // PIC1 #define tPic2 0x01 // PIC2 #define tPic3 0x02 // PIC3 #define tPic4 0x03 // PIC4 #define tPic5 0x04 // PIC5 #define tPic6 0x05 // PIC6 #define tPic7 0x06 // PIC7 #define tPic8 0x07 // PIC8 #define tPic9 0x08 // PIC9 #define tPic0 0x09 // PIC0 // 2nd Half User Graph Database Tokens #define tGDB1 0x00 // GDB1 #define tGDB2 0x01 // GDB2 #define tGDB3 0x02 // GDB3 #define tGDB4 0x03 // GDB4 #define tGDB5 0x04 // GDB5 #define tGDB6 0x05 // GDB6 #define tGDB7 0x06 // GDB7 #define tGDB8 0x07 // GDB8 #define tGDB9 0x08 // GDB9 #define tGDB0 0x09 // GDB0 // 2nd Half Of String Vars #define tStr1 0x00 #define tStr2 0x01 #define tStr3 0x02 #define tStr4 0x03 #define tStr5 0x04 #define tStr6 0x05 #define tStr7 0x06 #define tStr8 0x07 #define tStr9 0x08 #define tStr0 0x09 // 2nd Half Of System Output Only Variables #define tRegEq 0x01 // REGRESSION EQUATION #define tStatN 0x02 // STATISTICS N #define tXMean 0x03 // X MEAN #define tSumX 0x04 // SUM(X) #define tSumXSqr 0x05 // SUM(X^2) #define tStdX 0x06 // STANDARD DEV X #define tStdPX 0x07 // STANDARD DEV POP X #define tMinX 0x08 // Min X VALUE #define tMaxX 0x09 // Max X VALUE #define tMinY 0x0A // Min Y VALUE #define tMaxY 0x0B // Max Y VALUE #define tYmean 0x0C // Y MEAN #define tSumY 0x0D // SUM(Y) #define tSumYSqr 0x0E // SUM(Y^2) #define tStdY 0x0F // STANDARD DEV Y #define tStdPY 0x10 // STANDARD DEV POP Y #define tSumXY 0x11 // SUM(XY) #define tCorr 0x12 // CORRELATION #define tMedX 0x13 // MED(X) #define tQ1 0x14 // 1ST QUADRANT OF X #define tQ3 0x15 // 3RD QUADRANT OF X #define tQuadA 0x16 // 1ST TERM OF QUAD POLY REG/ Y-INT #define tQuadB 0x17 // 2ND TERM OF QUAD POLY REG/ SLOPE #define tQuadC 0x18 // 3RD TERM OF QUAD POLY REG #define tCubeD 0x19 // 4TH TERM OF CUBIC POLY REG #define tQuartE 0x1A // 5TH TERM OF QUART POLY REG #define tMedX1 0x1B // x1 FOR MED-MED #define tMedX2 0x1C // x2 FOR MED-MED #define tMedX3 0x1D // x3 FOR MED-MED #define tMedY1 0x1E // y1 FOR MED-MED #define tMedY2 0x1F // y2 FOR MED-MED #define tMedY3 0x20 // y3 FOR MED-MED #define tRecurn 0x21 // RECURSION N #define tStatP 0x22 #define tStatZ 0x23 #define tStatT 0x24 #define tStatChi 0x25 #define tStatF 0x26 #define tStatDF 0x27 #define tStatPhat 0x28 #define tStatPhat1 0x29 #define tStatPhat2 0x2A #define tStatMeanX1 0x2B #define tStatStdX1 0x2C #define tStatN1 0x2D #define tStatMeanX2 0x2E #define tStatStdX2 0x2F #define tStatN2 0x30 #define tStatStdXP 0x31 #define tStatLower 0x32 #define tStatUpper 0x33 #define tStat_s 0x34 #define tLRSqr 0x35 // r^2 #define tBRSqr 0x36 // R^2 // These next tokens are only used to access the data // They are display only and the user cannot access them at all #define tF_DF 0x37 // ANOFAV FACTOR DF #define tF_SS 0x38 // ANOFAV FACTOR SS #define tF_MS 0x39 // ANOFAV FACTOR MS #define tE_DF 0x3A // ANOFAV ERROR DF #define tE_SS 0x3B // ANOFAV ERROR SS #define tE_MS 0x3C // ANOFAV ERROR MS // 2nd Half Of System Input/Output Variables #define tuXscl 0x00 #define tuYscl 0x01 #define tXscl 0x02 #define tYscl 0x03 #define tRecuru0 0x04 // U 1st Initial condition #define tRecurv0 0x05 // V 1st Initial condition #define tun1 0x06 // U(N-1); not used #define tvn1 0x07 // V(N-1); not used #define tuRecuru0 0x08 #define tuRecurv0 0x09 #define tXmin 0x0A #define tXmax 0x0B #define tYmin 0x0C #define tYmax 0x0D #define tTmin 0x0E #define tTmax 0x0F #define tThetaMin 0x10 #define tThetaMax 0x11 #define tuXmin 0x12 #define tuXmax 0x13 #define tuYmin 0x14 #define tuYmax 0x15 #define tuThetMin 0x16 #define tuThetMax 0x17 #define tuTmin 0x18 #define tuTmax 0x19 #define tTblMin 0x1A #define tPlotStart 0x1B #define tuPlotStart 0x1C #define tnMax 0x1D #define tunMax 0x1E #define tnMin 0x1F #define tunMin 0x20 #define tTblStep 0x21 #define tTStep 0x22 #define tThetaStep 0x23 #define tuTStep 0x24 #define tuThetStep 0x25 #define tDeltaX 0x26 #define tDeltaY 0x27 #define tXFact 0x28 #define tYFact 0x29 #define tTblInput 0x2A #define tFinN 0x2B #define tFinI 0x2C #define tFinPV 0x2D #define tFinPMT 0x2E #define tFinFV 0x2F #define tFinPY 0x30 #define tFinCY 0x31 #define tRecurw0 0x32 // w0(1) #define tuRecurw0 0x33 #define tPlotStep 0x34 #define tuPlotStep 0x35 #define tXres 0x36 #define tuXres 0x37 #define tRecuru02 0x38 // u0(2) #define tuRecuru02 0x39 #define tRecurv02 0x3C // v0(2) #define tuRecurv02 0x3D #define tRecurw02 0x3E // w0(2) #define tuRecurw02 0x3F // 2nd Byte Of t2ByteTok Tokens #define tFinNPV 0x00 #define tFinIRR 0x01 #define tFinBAL 0x02 #define tFinPRN 0x03 #define tFinINT 0x04 #define tFinToNom 0x05 #define tFinToEff 0x06 #define tFinDBD 0x07 #define tLCM 0x08 #define tGCD 0x09 #define tRandInt 0x0A #define tRandBin 0x0B #define tSubStrng 0x0C #define tStdDev 0x0D #define tVariance 0x0E #define tInStrng 0x0F #define tDNormal 0x10 #define tInvNorm 0x11 #define tDT 0x12 #define tChI 0x13 #define tDF 0x14 #define tBINPDF 0x15 #define tBINCDF 0x16 #define tPOIPDF 0x17 #define tPOICDF 0x18 #define tGEOPDF 0x19 #define tGEOCDF 0x1A #define tNormalPDF 0x1B #define tTPDF 0x1C #define tChiPDF 0x1D #define tFPDF 0x1E #define tRandNorm 0x1F #define tFinFPMT 0x20 #define tFinFI 0x21 #define tFinFPV 0x22 #define tFinFN 0x23 #define tFinFFV 0x24 #define tConj 0x25 #define tReal 0x26 #define tImag 0x27 #define tAngle 0x28 #define tCumSum 0x29 #define tExpr 0x2A #define tLength 0x2B #define tDeltaLst 0x2C #define tRef 0x2D #define tRRef 0x2E #define tToRect 0x2F #define tToPolar 0x30 #define tConste 0x31 #define tSinReg 0x32 #define tLogistic 0x33 #define tLinRegTTest 0x34 #define tShadeNorm 0x35 #define tShadeT 0x36 #define tShadeChi 0x37 #define tShadeF 0x38 #define tMatToLst 0x39 #define tLstToMat 0x3A #define tZTest 0x3B #define tTTest 0x3C #define t2SampZTest 0x3D #define t1PropZTest 0x3E #define t2PropZTest 0x3F #define tChiTest 0x40 #define tZIntVal 0x41 #define t2SampZInt 0x42 #define t1PropZInt 0x43 #define t2PropZInt 0x44 #define tGraphStyle 0x45 #define t2SampTTest 0x46 #define t2SampFTest 0x47 #define tTIntVal 0x48 #define t2SampTInt 0x49 #define tSetupLst 0x4A #define tFinPMTend 0x4B #define tFinPMTbeg 0x4C #define tRealM 0x4D #define tPolarM 0x4E #define tRectM 0x4F #define tExprOn 0x50 #define tExprOff 0x51 #define tClrAllLst 0x52 #define tGetCalc 0x53 #define tDelVar 0x54 #define tEquToStrng 0x55 #define tStrngToequ 0x56 #define tDelLast 0x57 #define tSelect 0x58 #define tANOVA 0x59 #define tModBox 0x5A #define tNormProb 0x5B #define tMGT 0x64 // VERTICAL SPLIT #define tZFit 0x65 // ZOOM FIT #define tDiag_on 0x66 // DIANOSTIC DISPLAY ON #define tDiag_off 0x67 // DIANOSTIC DISPLAY OFF #define tArchive 0x68 // Archive #define tUnarchive 0x69 // UnArchive #define tAsm 0x6A #define tAsmComp 0x6B // asm compile #define tAsmPrgm 0x6C // Signifies a program is asm #define tAsmCmp 0x6D // asm program is compiled #define tLcapAAcute 0x6E #define tLcapAGrave 0x6F #define tLcapACaret 0x70 #define tLcapADier 0x71 #define tLaAcute 0x72 #define tLaGrave 0x73 #define tLaCaret 0x74 #define tLaDier 0x75 #define tLcapEAcute 0x76 #define tLcapEGrave 0x77 #define tLcapECaret 0x78 #define tLcapEDier 0x79 #define tLeAcute 0x7A #define tLeGrave 0x7B #define tLeCaret 0x7C #define tLeDier 0x7D #define tLcapIGrave 0x7F #define tLcapICaret 0x80 #define tLcapIDier 0x81 #define tLiAcute 0x82 #define tLiGrave 0x83 #define tLiCaret 0x84 #define tLiDier 0x85 #define tLcapOAcute 0x86 #define tLcapOGrave 0x87 #define tLcapOCaret 0x88 #define tLcapODier 0x89 #define tLoAcute 0x8A #define tLoGrave 0x8B #define tLoCaret 0x8C #define tLoDier 0x8D #define tLcapUAcute 0x8E #define tLcapUGrave 0x8F #define tLcapUCaret 0x90 #define tLcapUDier 0x91 #define tLuAcute 0x92 #define tLuGrave 0x93 #define tLuCaret 0x94 #define tLuDier 0x95 #define tLcapCCed 0x96 #define tLcCed 0x97 #define tLcapNTilde 0x98 #define tLnTilde 0x99 #define tLaccent 0x9A #define tLgrave 0x9B #define tLdieresis 0x9C #define tLquesDown 0x9D #define tLexclamDown 0x9E #define tLalpha 0x9F #define tLbeta 0xA0 #define tLgamma 0xA1 #define tLcapDelta 0xA2 #define tLdelta 0xA3 #define tLepsilon 0xA4 #define tLlambda 0xA5 #define tLmu 0xA6 #define tLpi 0xA7 #define tLrho 0xA8 #define tLcapSigma 0xA9 #define tLphi 0xAB #define tLcapOmega 0xAC #define tLphat 0xAD #define tLchi 0xAE #define tLstatF 0xAF #define tLa 0xB0 #define tLb 0xB1 #define tLc 0xB2 #define tLd 0xB3 #define tLsmalle 0xB4 #define tLf 0xB5 #define tLsmallg 0xB6 #define tLh 0xB7 #define tLi 0xB8 #define tLj 0xB9 #define tLk 0xBA #define tLl 0xBC #define tLm 0xBD #define tLsmalln 0xBE #define tLo 0xBF #define tLp 0xC0 #define tLq 0xC1 #define tLsmallr 0xC2 #define tLs 0xC3 #define tLsmallt 0xC4 #define tLu 0xC5 #define tLv 0xC6 #define tLw 0xC7 #define tLx 0xC8 #define tLy 0xC9 #define tLz 0xCA #define tLsigma 0xCB #define tLtau 0xCC #define tLcapIAcute 0xCD #define tGarbageCollect 0xCE // 2 byte extended tokens (tExtTok) present in OS 5.2 and above #define tSEQn 0x8F // 'SEQ(n)' #define tSEQn1 0x90 // 'SEQ(n+1)' #define tSEQn2 0x91 // 'SEQ(n+2)' #define tLEFT 0x92 // 'LEFT' #define tCENTER 0x93 // 'CENTER' #define tRIGHT 0x94 // 'RIGHT' #define tInvBinom 0x95 // 'invBinom(' #define tWait 0x96 // 'Wait_' #define tToString 0x97 // 'toString(' #define tEval 0x98 // 'eval(' /** * --- TIOS System error codes --- */ #define OS_E_EDIT 1<<7 #define OS_E_MASK 0x7F #define OS_E_OVERFLOW 1+OS_E_EDIT #define OS_E_DIVBY0 2+OS_E_EDIT #define OS_E_SINGULARMAT 3+OS_E_EDIT #define OS_E_DOMAIN 4+OS_E_EDIT #define OS_E_INCREMENT 5+OS_E_EDIT #define OS_E_BREAK 6+OS_E_EDIT #define OS_E_NONREAL 7+OS_E_EDIT #define OS_E_SYNTAX 8+OS_E_EDIT #define OS_E_DATATYPE 9+OS_E_EDIT #define OS_E_ARGUMENT 10+OS_E_EDIT #define OS_E_DIMMISMATCH 11+OS_E_EDIT #define OS_E_DIMENSION 12+OS_E_EDIT #define OS_E_UNDEFINED 13+OS_E_EDIT #define OS_E_MEMORY 14+OS_E_EDIT #define OS_E_INVALID 15+OS_E_EDIT #define OS_E_ILLEGALNEST 16+OS_E_EDIT #define OS_E_BOUND 17+OS_E_EDIT #define OS_E_GRAPHRANGE 18+OS_E_EDIT #define OS_E_ZOOM 19+OS_E_EDIT #define OS_E_LABEL 20 #define OS_E_STAT 21 #define OS_E_SOLVER 22+OS_E_EDIT #define OS_E_SINGULARITY 23+OS_E_EDIT #define OS_E_SIGNCHANGE 24+OS_E_EDIT #define OS_E_ITERATIONS 25+OS_E_EDIT #define OS_E_BADGUESS 26+OS_E_EDIT #define OS_E_STATPLOT 27 #define OS_E_TOLTOOSMALL 28+OS_E_EDIT #define OS_E_RESERVED 29+OS_E_EDIT #define OS_E_MODE 30+OS_E_EDIT #define OS_E_LNKERR 31+OS_E_EDIT #define OS_E_LNKMEMERR 32+OS_E_EDIT #define OS_E_LNKTRANSERR 33+OS_E_EDIT #define OS_E_LNKDUPERR 34+OS_E_EDIT #define OS_E_LNKMEMFULL 35+OS_E_EDIT #define OS_E_UNKNOWN 36+OS_E_EDIT #define OS_E_SCALE 37+OS_E_EDIT #define OS_E_IDNOTFOUND 38 #define OS_E_NOMODE 39+OS_E_EDIT #define OS_E_VALIDATION 40 #define OS_E_LENGTH 41+OS_E_EDIT #define OS_E_APPLICATION 42+OS_E_EDIT #define OS_E_APPERR1 43+OS_E_EDIT #define OS_E_APPERR2 44+OS_E_EDIT #define OS_E_EXPIREDAPP 45 #define OS_E_BADADD 46 #define OS_E_ARCHIVED 47+OS_E_EDIT #define OS_E_VERSION 48 #define OS_E_ARCHFULL 49 #define OS_E_VARIABLE 50+OS_E_EDIT #define OS_E_DUPLICATE 51+OS_E_EDIT /** * --- TI-OS os_GetCSC Scan Code Return Values --- */ #define sk_Down 0x01 #define sk_Left 0x02 #define sk_Right 0x03 #define sk_Up 0x04 #define sk_Enter 0x09 #define sk_2nd 0x36 #define sk_Clear 0x0F #define sk_Alpha 0x30 #define sk_Add 0x0A #define sk_Sub 0x0B #define sk_Mul 0x0C #define sk_Div 0x0D #define sk_Graph 0x31 #define sk_Trace 0x32 #define sk_Zoom 0x33 #define sk_Window 0x34 #define sk_Yequ 0x35 #define sk_Mode 0x37 #define sk_Del 0x38 #define sk_Store 0x2A #define sk_Ln 0x2B #define sk_Log 0x2C #define sk_Square 0x2D #define sk_Recip 0x2E #define sk_Math 0x2F #define sk_0 0x21 #define sk_1 0x22 #define sk_4 0x23 #define sk_7 0x24 #define sk_2 0x1A #define sk_5 0x1B #define sk_8 0x1C #define sk_3 0x12 #define sk_6 0x13 #define sk_9 0x14 #define sk_Comma 0x25 #define sk_Sin 0x26 #define sk_Apps 0x27 #define sk_GraphVar 0x28 #define sk_DecPnt 0x19 #define sk_LParen 0x1D #define sk_Cos 0x1E #define sk_Prgm 0x1F #define sk_Stat 0x20 #define sk_Chs 0x10 #define sk_RParen 0x15 #define sk_Tan 0x16 #define sk_Vars 0x17 #define sk_Power 0x0E #endif