Best viewed in 1024x768

TI-86 System Flags

The system flags are a section of ram used for bit flags and are accessed off of the IY register. The IY register is set to the start of the flag area ($C3EF) and does not change. When you change certain bits of certain bytes, part of the calculators system functionality changes.

Example 1: set trigdeg,(iy+trigflags)
"trigflags" is the byte offset from the start of the flag area (0 in this case), and "trigdeg" is the Bit # (2 in this case).
In this case is causes the TI-86 to use degrees instead of radians.

Example 2: set textInverse, (iy+textflags)
"textflags" is the byte offset (5 in this case) and "textInverse" is the bit # (3 in this case)
This causes the system to display white on black instead of the normal black on white.

Example 3: res textInverse, (iy+textflags)
"textflags" is the byte offset (5 in this case) and "textInverse" is the bit # (3 in this case)
This causes the system to display the normal black on white again.

The values for most of these symbols are included in the include file "TI86ASM.INC"
 
Documented IY offset value Bit # Description
0 (trigflags) 2 (trigdeg) 0 = radians; 1 = degrees
2 (plotflags) & (grfmodeflags) 1 (plotloc) 0 = graph writes to display and backup buffer
1 = write to display only
2 (plotdisp) 0 = graph screen not in display
1 = graph in display
4 (grffuncm) 1 = function graph mode
5 (grfpolarm) 1 = polar graph mode
6 (grfparamm) 1 = parametric graph mode
7 (grfrecurm) 1 = differential equation graph mode
3 (graphflags) 0 (graphdraw) 0 = graph is "clean"; 1 = graph is "dirty"
2 (graphcursor) 0 = graph cursor is off; 1 = graph cursor on on
4 (grfdbflags)  0 (grfdot) 0 = line mode; 1 = dot mod
1 (grfsimul) 0 = sequential graph draw; 1 = simultaneous graph draw
2 (grfgrid) 0 = no graph grid; 1 = draw grid
3 (grfpolar) 0 = show rectangular coordinates
1 = show polar coordinates
4 (grfnocoord) 0 = show graph coordinates
1 = no graph coordinates
5 (grfnoaxis) 0 = draw axis; 1 = no axis
6 (grflabel) 0 = no graph labels; 0 = show graph labels
5 (textflags) 1 (textEraseBelow) 1 = erase line below small font write
2 (textScrolled) 1 = screen scrolled after writing to it
3 (textInverse) 1 = write in reverse video
9 (onflags) 3 (onRunning) 1 = calculator is running
4 (onInterrupt) 1 = [on] key interrupt occurred
10 (fmtflags) 0 (fmtExponent) 1 = exponential display mode
1 (fmtEng) 1 = engineering display mode
12 (curflags) 2 (curAble) 1 = cursor flash enabled
3 (curOn) 1 = cursor is showing
4 (curLock) 1 = cursor is locked off
13 (appflags) 1 (appTextSave) 1 = save chars written in textshadow
2 (appAutoScroll) 1 = auto-scroll text on last line
18 (indicflags) 0 (indicRun) 1 = run indicator ON
2 (indicOnly) 1 = interrupts will only update runindicator tor and not flash the cursor or APD
3 (shift2nd) 1=[2nd] has been pressed
4 (shiftAlpha) 1=[ALPHA] has been pressed
5 (shiftLwrAlph) 1=lower case, 0=upper case
6 (shiftALock) 1=alpha lock has been pressed
24 (newgrfflags) 6 (textwrite) 1 = small font writes to graph backup buffer
 
Undocumented IY offset value Bit # Description
35 (userflags) 0 (userFont) ;if set, calc checks for user home screen font
1 (userVfont) ;if set, calc checks for user variable-width font
2 (userInt) ;if set, calc checks for user interrupt routine
3 (userOn) ;if set, calc checks for user routine when it turns on
4 (userLink) ;if set, calc calls routine when link port triggered?
7 (userOff) ;if set, calc calls user routine when it turns off.
36 (sqrtFlags) 0 (sqrtPARSEinstalled) 1 = run this program when specified action occurs
1 (sqrtFORMinstalled) 1 = run this program when specified action occurs
2 (sqrtEXECinstalled) 1 = run this program when specified action occurs
3 (sqrtEXPRinstalled) 1 = run this program when specified action occurs
4 (sqrtHOMEinstalled) 1 = run this program when specified action occurs
5 (sqrtCMDTOKinstalled) 1 = run this program when specified action occurs
6 (sqrtKEYinstalled) 1 = run this program when specified action occurs
7 (sqrtGRFinstalled) 1 = run this program when specified action occurs

More information will be available on the undocumented flags when I learn more about it.