ti/flags.h
#include <ti/flags.h>
TI’s operating system has a lot of simple states it keeps track of, such as whether 2nd has been pressed. These settings are stored in a structure called the system flags, and can be accessed quickly by the OS. Most of these flags are useful only if you need to access OS mathematical or UI functions.
API Documentation
TI CE OS flags.
- Authors
- Matt “MateoConLechuga” Waltz - Jacob “jacobly” Young 
Defines
- 
OS_FLAG_ID(GROUP, MEMBER)
- Converts a flag group name and member ID to a literal. - The - flag_prefix is automatically taken care of.- For example, - OS_FLAG_ID(INDIC, ENABLE)- Parameters
- GROUP – [in] Flag group name without the - OS_FLAG_prefix
- MEMBER – [in] Flag item name without the - OS_FLAG_GROUP_prefix
 
 
- 
os_SetFlag(GROUP, MEMBER)
- Sets an OS flag to 1. - The - OS_FLAGS_prefix and group prefix are added automatically for you.- For example, instead of: - os_SetFlagByte(OS_FLAGS_INDIC, OS_FLAGS_INDIC_ENABLE); - you can do: - os_SetFlag(INDIC, ENABLE); 
- 
os_ResetFlag(GROUP, MEMBER)
- Clears an OS flag to 0. - See also 
- 
os_TestFlag(GROUP, MEMBER)
- Checks if an OS flag is set. - See also 
- 
OS_FLAGS_TRIG
- GROUP: Trig-related. 
- 
OS_FLAGS_TRIG_DEGREES
- Set for degrees, reset for radians. 
- 
OS_FLAGS_KBD
- GROUP: Keyboard scan control. 
- 
OS_FLAGS_KBD_SCR
- Scan Code Read. 
- 
OS_FLAGS_KBD_KEYPRESS
- Set if a key press is in the key press buffer. - See also - os_KbdScanCodein- <ti/getcsc.h>
- 
OS_FLAGS_DONE
- GROUP: “Done”. 
- 
OS_FLAGS_DONE_PRGM
- Show “Done” after program exits. 
- 
OS_FLAGS_EDIT
- GROUP: OS edit buffer. 
- 
OS_FLAGS_EDIT_OPEN
- Set if an edit buffer is open. 
- 
OS_FLAGS_ANS
- GROUP: Ans variable flags. 
- 
OS_FLAGS_ANS_SCROLL
- Set if viewing Ans can scroll, must be reset to move cursor in edit buffer. 
- 
OS_FLAGS_MON
- GROUP: System monitor. - You generally should not mess with the system monitor unless you’re writing a flash application that integrates with the OS. And we can’t sign flash applications. 
- 
OS_FLAGS_MON_ABANDON
- Don’t start any long process in put away routine. 
- 
OS_FLAGS_PLOT
- GROUP: Plot screen. 
- 
OS_FLAGS_PLOT_LOC
- 0=bkup and display, 1=display only. - By default, this memory is part of the C heap. 
- 
OS_FLAGS_PLOT_DISP
- 1=plot is in display, 0=text in display, this also indicates whether graph is being shown or not 
- 
OS_FLAGS_GRFMODE
- GROUP: Graph mode. 
- 
OS_FLAGS_GRFMODE_FUNC
- Standard function graph Y=f(x) 
- 
OS_FLAGS_GRFMODE_POLAR
- Polar graph mode. 
- 
OS_FLAGS_GRFMODE_PARAM
- Parametric graph mode. 
- 
OS_FLAGS_GRFMODE_RECUR
- Sequence graph mode. 
- 
OS_FLAGS_GRAPH
- GROUP: Graph screen. 
- 
OS_FLAGS_GRAPH_DRAW
- Redraw graph screen. - On exit, this is automatically set by the C runtime. 
- 
OS_FLAGS_GRAPH_CURSOR
- 
OS_FLAGS_GRF
- GROUP: Graph screen format. 
- 
OS_FLAGS_GRF_DOT
- Draw dots instead of connecting points. 
- 
OS_FLAGS_GRF_SIMUL
- Draw all graphs simultaneously. 
- 
OS_FLAGS_GRF_GRID
- Display grid. 
- 
OS_FLAGS_GRF_POLAR
- Display polar coordinates. 
- 
OS_FLAGS_GRF_NOCOORD
- Hide coordinates. 
- 
OS_FLAGS_GRF_NOAXIS
- Hide X and Y axes. 
- 
OS_FLAGS_GRF_LABEL
- Show axis labels. 
- 
OS_FLAGS_TEXT
- GROUP: Text display. 
- 
OS_FLAGS_TEXT_ERASEBELOW
- Erase line below small char. 
- 
OS_FLAGS_TEXT_SCROLLED
- Screen has scrolled. 
- 
OS_FLAGS_TEXT_INVERSE
- Text in inverse color. 
- 
OS_FLAGS_TEXT_INSMODE
- Insert mode. 
- 
OS_FLAGS_PARSER
- GROUP: Parser (for BASIC and equations). - No useful equates for C programs. 
- 
OS_FLAGS_PARSER2
- GROUP: Parser. 
- 
OS_FLAGS_PARSER2_NUMOP1
- Signals a result in OP1. 
- 
OS_FLAGS_NEWDISPF
- GROUP: Derivative mode. 
- 
OS_FLAGS_NEWDISPF_PRECLRFORMODE
- 1=HELP BLINK ON MODE SCREEN 
- 
OS_FLAGS_NEWDISPF_ALLOWPROGTOKENS
- 1=allow programming tokens to be parsed in BASIC programs 
- 
OS_FLAGS_APD
- GROUP: Automatic Power-Down. 
- 
OS_FLAGS_APD_ABLE
- Enable APD. 
- 
OS_FLAGS_APD_RUNNING
- APD timer active. 
- 
OS_FLAGS_APD_WARMSTART
- 1=calculator is turning on from APD or power loss 
- 
OS_FLAGS_ON
- GROUP: On key. 
- 
OS_FLAGS_ON_PARSEINPUT
- 1=parse input when done 
- 
OS_FLAGS_ON_RUNNING
- “1=calculator is running” is literally all TI wrote 
- 
OS_FLAGS_ON_INTERRUPT
- On key has been pressed at some point. - If this is set, ERR:BREAK will be displayed when the program exits. This is automatically cleared by the C runtime on exit. 
- 
OS_FLAGS_STATS
- GROUP: Statistics. 
- 
OS_FLAGS_STATS_VALID
- Reset to recompute stat vars. 
- 
OS_FLAGS_FMT
- GROUP: Numeric format. 
- 
OS_FLAGS_FMT_EXPONENT
- 1=show exponent, 0=no exponent 
- 
OS_FLAGS_FMT_ENG
- Engineering notation instead of scientific. 
- 
OS_FLAGS_NUMMODE
- GROUP: numMode. 
- 
OS_FLAGS_FMT_REAL
- 
OS_FLAGS_FMT_RECT
- 
OS_FLAGS_FMT_POLAR
- 
OS_FLAGS_FMTOVERRIDE
- GROUP: copy of fmtFlags with conversion override. 
- 
OS_FLAGS_CURSOR
- GROUP: Homescreen cursor. 
- 
OS_FLAGS_CURSOR_ABLE
- Cursor blinking enabled. 
- 
OS_FLAGS_CURSOR_ON
- Cursor is actually being shown this moment. 
- 
OS_FLAGS_CURSOR_LOCK
- 1=cursor is locked off 
- 
OS_FLAGS_CMD
- GROUP: Command editor. 
- 
OS_FLAGS_CMD_VIRGIN
- Nothing has been typed so far. 
- 
OS_FLAGS_CMD_EXEC
- Need to execute a command. 
- 
OS_FLAGS_APP
- GROUP: Application stuff. 
- 
OS_FLAGS_APP_WANTINTERRUPT
- Want ON key interrupts. 
- 
OS_FLAGS_APP_TEXTSAVE
- 1=save characters in textShadow 
- 
OS_FLAGS_APP_AUTOSCROLL
- 1=auto-scroll text on last line 
- 
OS_FLAGS_APP_MENUS
- 1=process keys that bring up menus, 0=check Lock menu flag 
- 
OS_FLAGS_APP_LOCKMENUS
- 1=ignore menu keys, 0=switch to home screen and bring up menu 
- 
OS_FLAGS_APP_CURGRAPHIC
- 1=graphic cursor 
- 
OS_FLAGS_APP_CURWORD
- 1=text cursor covers entire word 
- 
OS_FLAGS_APP_EXIT
- 1=application handles [EXIT] key itself 
- 
OS_FLAGS_RCL
- GROUP: Recall queue. 
- 
OS_FLAGS_RCL_ENABLEQUEUE
- Enable recall queue. 
- 
OS_FLAGS_SEQ
- GROUP: Sequential graph. 
- 
OS_FLAGS_SEQ_WEBMODE
- 0 = NORMAL SEQ MODE, 1 = WEB MODE 
- 
OS_FLAGS_SEQ_WEBVERT
- 
OS_FLAGS_SEQ_UV
- U vs. - V 
- 
OS_FLAGS_SEQ_VW
- V vs. - W 
- 
OS_FLAGS_SEQ_UW
- U vs. - W 
- 
OS_FLAGS_PROMPT
- GROUP: Prompt line. 
- 
OS_FLAGS_PROMPT_EDIT
- Editing in prompt buffer. 
- 
OS_FLAGS_INDIC
- GROUP: Run indicator. 
- 
OS_FLAGS_INDIC_ENABLE
- Set to enable run indicator. - The C runtime resets this automatically. 
- 
OS_FLAGS_INDIC_INUSE
- indicator save area in use=1, free=0 - resetting will disable 2nd while in _getkey 
- 
OS_FLAGS_SHIFT_2ND
- [2nd] has been pressed 
- 
OS_FLAGS_SHIFT_ALPHA
- [ALPHA] has been pressed 
- 
OS_FLAGS_SHIFT_LOWERCASE
- Little-a mode. 
- 
OS_FLAGS_SHIFT_ALPHALOCK
- [2nd]+[ALPHA] 
- 
OS_FLAGS_SHIFT_KEEPALPHA
- 1=cannot cancel alpha shift 
- 
OS_FLAGS_TABLE
- GROUP: Graph table screen. 
- 
OS_FLAGS_TABLE_AUTOFILL
- 1=prompt, 0=fillAuto 
- 
OS_FLAGS_TABLE_AUTOCALC
- 1=prompt, 0=CalcAuto 
- 
OS_FLAGS_TABLE_RETABLE
- 0=table is okay, 1=must recompute table. 
- 
OS_FLAGS_TRACE
- GROUP: Trace. 
- 
OS_FLAGS_TRACE_EXPRESSION
- set to hide expression while tracing 
- 
OS_FLAGS_STATS2
- GROUP: More stats. 
- 
OS_FLAGS_STATS2_DIAGNOSTICS
- 1 = stat diagnostics on 
- 
OS_FLAGS_STATS2_NODEL
- 1 = don’t delete stats 
- 
OS_FLAGS_GRAPH2
- GROUP: Graph screen. 
- 
OS_FLAGS_GRAPH2_SPLITOVERRIDE
- 0 = force full screen with ParseInp, or something 
- 
OS_FLAGS_ASM1
- GROUP: Intentionally unused by TI, available for programs! 
- 
OS_FLAGS_ASM2
- GROUP: Intentionally unused by TI, available for programs! 
- 
OS_FLAGS_ARCHIVE
- GROUP: Archive stuff. 
- 
OS_FLAGS_ARCHIVE_CHECKBATTERY
- 1 = check battery levels in Arc_Unarc first and throw error if low 
- 
OS_FLAGS_GETSEND
- FLAGS. 
- 
OS_FLAGS_GETSEND_COMFAILED
- 1 = Get/Send Communication Failed 
- 
OS_FLAGS_SELFTEST
- GROUP: Self-test screen. 
- 
OS_FLAGS_SELFTEST_RESETONPOWERON
- 1 = Force RAM reset when APD disabled on next power on 
- 
OS_FLAGS_LOWERCASE
- GROUP: Enable lowercase flag. 
- 
OS_FLAGS_LOWERCASE_ENABLE
- Enable lowercase flag. 
- 
OS_FLAGS_CONTEXT
- GROUP: Context vectors. 
- 
OS_FLAGS_CONTEXT_NOCXPUTAWAY
- 1 = do not call cxPutAway routine 
- 
OS_FLAGS_STATUSBAR
- FLAGS. 
- 
OS_FLAGS_STATUSBAR_NOBARMODE
- 1 = abort drawing of statusbar mode, like “TEST MODE ENABLED 
- 
OS_FLAGS_API1
- FLAGS. 
- 
OS_FLAGS_API1_APPALLOWCONTEXT
- app wants context changes to happen 
- 
OS_FLAGS_API1_APPRUNNING
- app is currently running 
- 
OS_FLAGS_API1_APPRETKEYOFF
- 1 = GetKey returns kOff when [2nd]+[ON] pressed 
- 
OS_FLAGS_API2
- FLAGS. 
- 
OS_FLAGS_API3
- FLAGS. 
- 
OS_FLAGS_API4
- FLAGS. 
- 
OS_FLAGS_API4_CELLOVERRIDE
- use cell override 
- 
OS_FLAGS_API4_FULLSCRNDRAW
- DRAW INTO LAST ROW/COL OF SCREEN. 
- 
OS_FLAGS_XAP0
- GROUP: External apps. 
- 
OS_FLAGS_XAP0_MOUSE
- Used by mouse cursor routines. 
- 
OS_FLAGS_XAP1
- GROUP: External apps. 
- 
OS_FLAGS_XAP2
- GROUP: External apps. 
- 
OS_FLAGS_XAP3
- GROUP: External apps. 
- 
OS_FLAGS_FONT
- FLAGS. 
- 
OS_FLAGS_FONT_FRACDRAWLFONT
- 
OS_FLAGS_FONT_FRACTALLLFONT
- 
OS_FLAGS_FONT_CUSTOMFONT
- 
OS_FLAGS_HOOKS1
- GROUP: OS hooks, also scriptFlag, rclFlag2, backGroundLink. - You should generally not touch these. The SDK does not have any explicit OS hook support. 
- 
OS_FLAGS_HOOKS1_ALT_ON
- run ONSCRPT at startup 
- 
OS_FLAGS_HOOKS1_ALT_OFF
- run OFFSCRPT at shutdown 
- 
OS_FLAGS_HOOKS1_USERCLQUEUEEND
- 1 = external mode 
- 
OS_FLAGS_HOOKS1_IGNOREBPLINK
- 1 = override flag for link activity hook 
- 
OS_FLAGS_HOOKS1_BPLINKON
- 1 = link activity hook active 
- 
OS_FLAGS_HOOKS1_ENABLEKEYECHO
- 1 = sends keypresses back to connected calc as remote control packets (with GetCSC vs. - GetKey codes…really dumb, TI) 
- 
OS_FLAGS_HOOKS1_NOTEMPDELETE
- 1 = do not delete temporary programs at homescreen 
- 
OS_FLAGS_HOOKS2
- FLAGS; also sysHookFlg. 
- 
OS_FLAGS_HOOKS2_GETCSC
- 1 = GetCSC hook active 
- 
OS_FLAGS_HOOKS2_LIBRARY
- 1 = library hook active 
- 
OS_FLAGS_HOOKS2_HOMESCREEN
- 1 = homescreen hook active 
- 
OS_FLAGS_HOOKS2_RAWKEY
- 1 = raw key hook active 
- 
OS_FLAGS_HOOKS2_CATALOG2
- 1 = catalog 2 hook active 
- 
OS_FLAGS_HOOKS2_CURSOR
- 1 = cursor hook active 
- 
OS_FLAGS_HOOKS3
- FLAGS; also sysHookFlg1. 
- 
OS_FLAGS_HOOKS3_TOKEN
- 1 = token hook active 
- 
OS_FLAGS_HOOKS3_LOCALIZE
- 1 = localize hook active 
- 
OS_FLAGS_HOOKS3_WINDOW
- 1 = window hook active 
- 
OS_FLAGS_HOOKS3_GRAPH
- 1 = graph hook active 
- 
OS_FLAGS_HOOKS3_YEQU
- 1 = Y= hook active 
- 
OS_FLAGS_HOOKS3_FONT
- 1 = font hook active 
- 
OS_FLAGS_HOOKS3_REGRAPH
- 1 = regraph hook active 
- 
OS_FLAGS_HOOKS3_DRAWING
- 1 = drawing hook active 
- 
OS_FLAGS_HOOKS4
- FLAGS; also sysHookFlag2. 
- 
OS_FLAGS_HOOKS4_TRACE
- 1 = trace hook active 
- 
OS_FLAGS_HOOKS4_PARSER
- 1 = parser hook active 
- 
OS_FLAGS_HOOKS4_APPCHANGE
- 1 = app change hook active 
- 
OS_FLAGS_HOOKS4_CATALOG1
- 1 = catalog 1 hook active 
- 
OS_FLAGS_HOOKS4_HELP
- 1 = help hook active 
- 
OS_FLAGS_HOOKS4_CXREDISP
- 1 = cxRedisp hook active 
- 
OS_FLAGS_HOOKS4_MENU
- 1 = menu hook active 
- 
OS_FLAGS_HOOKS4_SILENTLINK
- 1 = silent link hook active 
- 
OS_FLAGS_HOOKS5
- FLAGS. 
- 
OS_FLAGS_HOOKS5_USBACTIVITY
- 1 = USB activity hook active 
- 
OS_FLAGS_PLOT3
- GROUP: Plot screen. 
- 
OS_FLAGS_PLOT3_BUFFERONLY
- Draw commands only draw to buffer, not screen. - Will corrupt heap in default configuration. 
- 
OS_FLAGS_PLOT3_USEFASTCIRC
- Use fast circle routine, which does not pay attention to the aspect ratio of X/Y min/max. 
- 
OS_FLAGS_KEYBOARD
- GROUP: Originally TI-Keyboard accessory, probably now USB keyboards. 
- 
OS_FLAGS_KEYBOARD_DEFAULTS
- 1 = GetKey returns extended keycodes with TI-Keyboard 
- 
OS_FLAGS_SILENTLINK
- FLAGS. 
- 
OS_FLAGS_SILENTLINK_ACTIVE
- SE/84+ silent link is active. 
- 
OS_FLAGS_EXTRAHOOKS
- GROUP: Even more hooks. 
- 
OS_FLAGS_EXTRAHOOKS_CHECKCAT2VER
- 1 = check catalog 2 hook’s version before executing it (and error or take other action if so) 
- 
OS_FLAGS_EXTRAHOOKS_OPENLIBACTIVE
- 1 = OpenLib( was successfully called on a Flash application (ExecLib will error if zero) 
- 
OS_FLAGS_CLOCK
- GROUP: Clock. 
- 
OS_FLAGS_CLOCK_NOTMDYMODE
- 0 = M/D/Y format 
- 
OS_FLAGS_CLOCK_ISYMDMODE
- 1 = Y/M/D format 
- 
OS_FLAGS_CLOCK_IS24HOUR
- 1 = clock in 24 hour mode 
- 
OS_FLAGS_CLOCK_INAFTERNOON
- 1 = current time is in afternoon (PM) (I think) 
- 
OS_FLAGS_CLOCK_USETOKENSINSTRING
- 1 = use tokens instead of characters when displaying clock as string (for getTmStr and getDtStr vs. - MODE screen) (keep this reset) 
- 
OS_FLAGS_CLOCK_DISPLAYCLOCK
- 1 = display clock (this is set every second, reset otherwise) 
- 
OS_FLAGS_CLOCK_CLOCKON
- 1 = clock on 
- 
OS_FLAGS_MATHPRINT
- GROUP: MathPrint. 
- 
OS_FLAGS_MATHPRINT_ENABLED
- 1 = use mathprint styling 
- 
OS_FLAGS_BOOTMENU
- FLAGS. 
- 
OS_FLAGS_BOOTMENU_DISPINITIALMENU
- 1 = don’t display the initial boot menu 
- 
OS_FLAGS_BACKLIGHT
- FLAGS. 
- 
OS_FLAGS_BACKLIGHT_RESTORE
- 1 = restore lcd brightness when needed 
- 
OS_FLAGS_GRAPH3
- FLAGS. 
- 
OS_FLAGS_GRAPH3_DRAWLABELS
- 1 = don’t draw Graph Labels (this is usually reset anyway) 
- 
OS_FLAGS_PUTMAP
- GROUP: putMap. 
- 
OS_FLAGS_PUTMAP_USEPIXELSHADOW2
- 1 = use pixelshadow2, not pixelshadow 
- 
OS_FLAGS_PUTMAP_USECOLOR
- 1 = use custom color 
- 
OS_FLAGS_GRAPHDISP
- FLAGS. 
- 
OS_FLAGS_GRAPHDISP_BACKGROUNDVALID
- 1 = items in graph background are still valid 
- 
os_Flags
Functions
- 
void os_SetFlagByte(int offset, uint8_t set)
- Set a particular OS flag. - Parameters
- offset – [in] Offset to particular flag in list 
- set – [in] Bitmask of flag to set 
 
 
- 
uint8_t os_GetFlagByte(int offset)
- Get a particular OS flag. - Parameters
- offset – [in] Offset to particular flag in list 
- Returns
- Bitmask of flag 
 
- 
int os_TestFlagBits(uint16_t offset_pattern)
- Check OS flag bits. - Parameters
- offset_pattern – High 8 is unsigned offset, low 8 is bits to test 
- Returns
- 1 if set, 0 if not set 
 
- 
void os_SetFlagBits(int16_t offset_pattern)
- Set OS flag bits. - Parameters
- offset_pattern – High 8 is unsigned offset, low 8 is bits to test 
 
- 
void os_ResetFlagBits(int16_t offset_pattern)
- Clear OS flag bits. - Parameters
- offset_pattern – High 8 is unsigned offset, low 8 is bits to test 
 
- 
bool os_TestFlagBitsFast(uint16_t offset_pattern)
- Faster (and worse) test of OS flag bits. - Note - This function is only available on OS 5.3.6 or later. - Warning - Has a bug if bits and flags are all set! - Parameters
- offset_pattern – High 8 is unsigned offset, low 8 is bits to test