From d1e99637b861c4685aef7ddec45bca6a8e43abd4 Mon Sep 17 00:00:00 2001 From: HeronErin Date: Thu, 5 Oct 2023 15:23:13 +0000 Subject: [PATCH] deploy: d3ab2c5caef135b265c1f024bde8fcf34c85b37b --- .nojekyll | 0 annotated.html | 116 + annotated_dup.js | 4 + bc_s.png | Bin 0 -> 676 bytes bc_sd.png | Bin 0 -> 635 bytes classes.html | 117 + closed.png | Bin 0 -> 132 bytes d0/d15/errors_8c.html | 248 + d0/d15/errors_8c.js | 26 + d0/d15/errors_8c_source.html | 186 + d0/ddb/misc_8c.html | 265 ++ d0/ddb/misc_8c.js | 8 + d1/d74/interupts_8c.html | 193 + d1/d74/interupts_8c.js | 9 + d1/d74/interupts_8c_source.html | 247 + d2/d4a/essentials_8c.html | 319 ++ d2/d4a/essentials_8c.js | 17 + d2/dba/textio_8c.html | 398 ++ d2/dba/textio_8c.js | 14 + d2/dba/textio_8c_source.html | 342 ++ d4/d1f/floatmath_8c.html | 562 +++ d4/d1f/floatmath_8c.js | 27 + d4/d49/ti83plus_8h.html | 5179 +++++++++++++++++++++ d4/d49/ti83plus_8h.js | 4 + d4/d49/ti83plus_8h_source.html | 5155 ++++++++++++++++++++ d4/d5f/userinput_8c.html | 161 + d4/d5f/userinput_8c.js | 5 + d5/d03/structHeapItem.html | 135 + d5/d03/structHeapItem.js | 6 + d5/d95/graphics_8c.html | 479 ++ d5/d95/graphics_8c.js | 16 + d5/de8/variables_8c.html | 303 ++ d5/de8/variables_8c.js | 6 + d5/de8/variables_8c_source.html | 235 + d7/d31/fast__math_8c.html | 705 +++ d7/d31/fast__math_8c.js | 22 + d7/dbc/greyscale_8c.html | 312 ++ d7/dbc/greyscale_8c.js | 22 + df/dd5/memory_8c.html | 440 ++ df/dd5/memory_8c.js | 17 + dir_97aefd0d527b934f1d99a682da8fe6a9.html | 155 + dir_97aefd0d527b934f1d99a682da8fe6a9.js | 16 + doc.svg | 12 + docd.svg | 12 + doxygen-awesome.css | 2531 ++++++++++ doxygen.css | 1685 +++++++ doxygen.svg | 28 + dynsections.js | 192 + files.html | 129 + files_dup.js | 4 + folderclosed.svg | 11 + folderclosedd.svg | 11 + folderopen.svg | 17 + folderopend.svg | 12 + functions.html | 113 + functions_vars.html | 113 + globals.html | 352 ++ globals_defs.html | 283 ++ globals_func.html | 238 + globals_vars.html | 113 + index.html | 177 + index.js | 9 + jquery.js | 34 + minus.svg | 8 + minusd.svg | 8 + nav_f.png | Bin 0 -> 153 bytes nav_fd.png | Bin 0 -> 169 bytes nav_g.png | Bin 0 -> 95 bytes nav_h.png | Bin 0 -> 98 bytes nav_hd.png | Bin 0 -> 114 bytes navtree.css | 149 + navtree.js | 559 +++ navtreedata.js | 55 + navtreeindex0.js | 197 + open.png | Bin 0 -> 123 bytes plus.svg | 9 + plusd.svg | 9 + resize.js | 155 + search/all_0.js | 16 + search/all_1.js | 8 + search/all_10.js | 30 + search/all_11.js | 12 + search/all_12.js | 6 + search/all_13.js | 6 + search/all_14.js | 6 + search/all_15.js | 4 + search/all_16.js | 4 + search/all_2.js | 10 + search/all_3.js | 16 + search/all_4.js | 16 + search/all_5.js | 6 + search/all_6.js | 26 + search/all_7.js | 14 + search/all_8.js | 14 + search/all_9.js | 14 + search/all_a.js | 7 + search/all_b.js | 13 + search/all_c.js | 8 + search/all_d.js | 5 + search/all_e.js | 7 + search/all_f.js | 8 + search/classes_0.js | 4 + search/close.svg | 18 + search/defines_0.js | 5 + search/defines_1.js | 7 + search/defines_10.js | 22 + search/defines_11.js | 6 + search/defines_12.js | 4 + search/defines_13.js | 4 + search/defines_14.js | 4 + search/defines_15.js | 4 + search/defines_2.js | 9 + search/defines_3.js | 9 + search/defines_4.js | 13 + search/defines_5.js | 4 + search/defines_6.js | 9 + search/defines_7.js | 6 + search/defines_8.js | 5 + search/defines_9.js | 9 + search/defines_a.js | 6 + search/defines_b.js | 7 + search/defines_c.js | 6 + search/defines_d.js | 4 + search/defines_e.js | 5 + search/defines_f.js | 5 + search/files_0.js | 5 + search/files_1.js | 5 + search/files_2.js | 5 + search/files_3.js | 4 + search/files_4.js | 5 + search/files_5.js | 5 + search/files_6.js | 4 + search/files_7.js | 4 + search/functions_0.js | 14 + search/functions_1.js | 4 + search/functions_10.js | 4 + search/functions_2.js | 9 + search/functions_3.js | 6 + search/functions_4.js | 15 + search/functions_5.js | 8 + search/functions_6.js | 4 + search/functions_7.js | 6 + search/functions_8.js | 4 + search/functions_9.js | 7 + search/functions_a.js | 5 + search/functions_b.js | 4 + search/functions_c.js | 5 + search/functions_d.js | 4 + search/functions_e.js | 9 + search/functions_f.js | 5 + search/mag.svg | 24 + search/mag_d.svg | 24 + search/mag_sel.svg | 31 + search/mag_seld.svg | 31 + search/pages_0.js | 4 + search/search.css | 286 ++ search/search.js | 840 ++++ search/searchdata.js | 33 + search/variables_0.js | 4 + search/variables_1.js | 4 + search/variables_2.js | 7 + splitbar.png | Bin 0 -> 314 bytes splitbard.png | Bin 0 -> 282 bytes sync_off.png | Bin 0 -> 853 bytes sync_on.png | Bin 0 -> 845 bytes tab_a.png | Bin 0 -> 142 bytes tab_ad.png | Bin 0 -> 135 bytes tab_b.png | Bin 0 -> 169 bytes tab_bd.png | Bin 0 -> 173 bytes tab_h.png | Bin 0 -> 177 bytes tab_hd.png | Bin 0 -> 180 bytes tab_s.png | Bin 0 -> 184 bytes tab_sd.png | Bin 0 -> 188 bytes tabs.css | 1 + 174 files changed, 25566 insertions(+) create mode 100644 .nojekyll create mode 100644 annotated.html create mode 100644 annotated_dup.js create mode 100644 bc_s.png create mode 100644 bc_sd.png create mode 100644 classes.html create mode 100644 closed.png create mode 100644 d0/d15/errors_8c.html create mode 100644 d0/d15/errors_8c.js create mode 100644 d0/d15/errors_8c_source.html create mode 100644 d0/ddb/misc_8c.html create mode 100644 d0/ddb/misc_8c.js create mode 100644 d1/d74/interupts_8c.html create mode 100644 d1/d74/interupts_8c.js create mode 100644 d1/d74/interupts_8c_source.html create mode 100644 d2/d4a/essentials_8c.html create mode 100644 d2/d4a/essentials_8c.js create mode 100644 d2/dba/textio_8c.html create mode 100644 d2/dba/textio_8c.js create mode 100644 d2/dba/textio_8c_source.html create mode 100644 d4/d1f/floatmath_8c.html create mode 100644 d4/d1f/floatmath_8c.js create mode 100644 d4/d49/ti83plus_8h.html create mode 100644 d4/d49/ti83plus_8h.js create mode 100644 d4/d49/ti83plus_8h_source.html create mode 100644 d4/d5f/userinput_8c.html create mode 100644 d4/d5f/userinput_8c.js create mode 100644 d5/d03/structHeapItem.html create mode 100644 d5/d03/structHeapItem.js create mode 100644 d5/d95/graphics_8c.html create mode 100644 d5/d95/graphics_8c.js create mode 100644 d5/de8/variables_8c.html create mode 100644 d5/de8/variables_8c.js create mode 100644 d5/de8/variables_8c_source.html create mode 100644 d7/d31/fast__math_8c.html create mode 100644 d7/d31/fast__math_8c.js create mode 100644 d7/dbc/greyscale_8c.html create mode 100644 d7/dbc/greyscale_8c.js create mode 100644 df/dd5/memory_8c.html create mode 100644 df/dd5/memory_8c.js create mode 100644 dir_97aefd0d527b934f1d99a682da8fe6a9.html create mode 100644 dir_97aefd0d527b934f1d99a682da8fe6a9.js create mode 100644 doc.svg create mode 100644 docd.svg create mode 100644 doxygen-awesome.css create mode 100644 doxygen.css create mode 100644 doxygen.svg create mode 100644 dynsections.js create mode 100644 files.html create mode 100644 files_dup.js create mode 100644 folderclosed.svg create mode 100644 folderclosedd.svg create mode 100644 folderopen.svg create mode 100644 folderopend.svg create mode 100644 functions.html create mode 100644 functions_vars.html create mode 100644 globals.html create mode 100644 globals_defs.html create mode 100644 globals_func.html create mode 100644 globals_vars.html create mode 100644 index.html create mode 100644 index.js create mode 100644 jquery.js create mode 100644 minus.svg create mode 100644 minusd.svg create mode 100644 nav_f.png create mode 100644 nav_fd.png create mode 100644 nav_g.png create mode 100644 nav_h.png create mode 100644 nav_hd.png create mode 100644 navtree.css create mode 100644 navtree.js create mode 100644 navtreedata.js create mode 100644 navtreeindex0.js create mode 100644 open.png create mode 100644 plus.svg create mode 100644 plusd.svg create mode 100644 resize.js create mode 100644 search/all_0.js create mode 100644 search/all_1.js create mode 100644 search/all_10.js create mode 100644 search/all_11.js create mode 100644 search/all_12.js create mode 100644 search/all_13.js create mode 100644 search/all_14.js create mode 100644 search/all_15.js create mode 100644 search/all_16.js create mode 100644 search/all_2.js create mode 100644 search/all_3.js create mode 100644 search/all_4.js create mode 100644 search/all_5.js create mode 100644 search/all_6.js create mode 100644 search/all_7.js create mode 100644 search/all_8.js create mode 100644 search/all_9.js create mode 100644 search/all_a.js create mode 100644 search/all_b.js create mode 100644 search/all_c.js create mode 100644 search/all_d.js create mode 100644 search/all_e.js create mode 100644 search/all_f.js create mode 100644 search/classes_0.js create mode 100644 search/close.svg create mode 100644 search/defines_0.js create mode 100644 search/defines_1.js create mode 100644 search/defines_10.js create mode 100644 search/defines_11.js create mode 100644 search/defines_12.js create mode 100644 search/defines_13.js create mode 100644 search/defines_14.js create mode 100644 search/defines_15.js create mode 100644 search/defines_2.js create mode 100644 search/defines_3.js create mode 100644 search/defines_4.js create mode 100644 search/defines_5.js create mode 100644 search/defines_6.js create mode 100644 search/defines_7.js create mode 100644 search/defines_8.js create mode 100644 search/defines_9.js create mode 100644 search/defines_a.js create mode 100644 search/defines_b.js create mode 100644 search/defines_c.js create mode 100644 search/defines_d.js create mode 100644 search/defines_e.js create mode 100644 search/defines_f.js create mode 100644 search/files_0.js create mode 100644 search/files_1.js create mode 100644 search/files_2.js create mode 100644 search/files_3.js create mode 100644 search/files_4.js create mode 100644 search/files_5.js create mode 100644 search/files_6.js create mode 100644 search/files_7.js create mode 100644 search/functions_0.js create mode 100644 search/functions_1.js create mode 100644 search/functions_10.js create mode 100644 search/functions_2.js create mode 100644 search/functions_3.js create mode 100644 search/functions_4.js create mode 100644 search/functions_5.js create mode 100644 search/functions_6.js create mode 100644 search/functions_7.js create mode 100644 search/functions_8.js create mode 100644 search/functions_9.js create mode 100644 search/functions_a.js create mode 100644 search/functions_b.js create mode 100644 search/functions_c.js create mode 100644 search/functions_d.js create mode 100644 search/functions_e.js create mode 100644 search/functions_f.js create mode 100644 search/mag.svg create mode 100644 search/mag_d.svg create mode 100644 search/mag_sel.svg create mode 100644 search/mag_seld.svg create mode 100644 search/pages_0.js create mode 100644 search/search.css create mode 100644 search/search.js create mode 100644 search/searchdata.js create mode 100644 search/variables_0.js create mode 100644 search/variables_1.js create mode 100644 search/variables_2.js create mode 100644 splitbar.png create mode 100644 splitbard.png create mode 100644 sync_off.png create mode 100644 sync_on.png create mode 100644 tab_a.png create mode 100644 tab_ad.png create mode 100644 tab_b.png create mode 100644 tab_bd.png create mode 100644 tab_h.png create mode 100644 tab_hd.png create mode 100644 tab_s.png create mode 100644 tab_sd.png create mode 100644 tabs.css diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/annotated.html b/annotated.html new file mode 100644 index 0000000..5e840ca --- /dev/null +++ b/annotated.html @@ -0,0 +1,116 @@ + + + + + + + +Ti Constructor: Data Structures + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Ti Constructor +
+
+ +   + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Data Structures
+
+
+
Here are the data structures with brief descriptions:
+ + +
 CHeapItem
+
+
+
+ + + + diff --git a/annotated_dup.js b/annotated_dup.js new file mode 100644 index 0000000..4e48fd3 --- /dev/null +++ b/annotated_dup.js @@ -0,0 +1,4 @@ +var annotated_dup = +[ + [ "HeapItem", "d5/d03/structHeapItem.html", "d5/d03/structHeapItem" ] +]; \ No newline at end of file diff --git a/bc_s.png b/bc_s.png new file mode 100644 index 0000000000000000000000000000000000000000..224b29aa9847d5a4b3902efd602b7ddf7d33e6c2 GIT binary patch literal 676 zcmV;V0$crwP)y__>=_9%My z{n931IS})GlGUF8K#6VIbs%684A^L3@%PlP2>_sk`UWPq@f;rU*V%rPy_ekbhXT&s z(GN{DxFv}*vZp`F>S!r||M`I*nOwwKX+BC~3P5N3-)Y{65c;ywYiAh-1*hZcToLHK ztpl1xomJ+Yb}K(cfbJr2=GNOnT!UFA7Vy~fBz8?J>XHsbZoDad^8PxfSa0GDgENZS zuLCEqzb*xWX2CG*b&5IiO#NzrW*;`VC9455M`o1NBh+(k8~`XCEEoC1Ybwf;vr4K3 zg|EB<07?SOqHp9DhLpS&bzgo70I+ghB_#)K7H%AMU3v}xuyQq9&Bm~++VYhF09a+U zl7>n7Jjm$K#b*FONz~fj;I->Bf;ule1prFN9FovcDGBkpg>)O*-}eLnC{6oZHZ$o% zXKW$;0_{8hxHQ>l;_*HATI(`7t#^{$(zLe}h*mqwOc*nRY9=?Sx4OOeVIfI|0V(V2 zBrW#G7Ss9wvzr@>H*`r>zE z+e8bOBgqIgldUJlG(YUDviMB`9+DH8n-s9SXRLyJHO1!=wY^79WYZMTa(wiZ!zP66 zA~!21vmF3H2{ngD;+`6j#~6j;$*f*G_2ZD1E;9(yaw7d-QnSCpK(cR1zU3qU0000< KMNUMnLSTYoA~SLT literal 0 HcmV?d00001 diff --git a/bc_sd.png b/bc_sd.png new file mode 100644 index 0000000000000000000000000000000000000000..31ca888dc71049713b35c351933a8d0f36180bf1 GIT binary patch literal 635 zcmV->0)+jEP)Jwi0r1~gdSq#w{Bu1q z`craw(p2!hu$4C_$Oc3X(sI6e=9QSTwPt{G) z=htT&^~&c~L2~e{r5_5SYe7#Is-$ln>~Kd%$F#tC65?{LvQ}8O`A~RBB0N~`2M+waajO;5>3B&-viHGJeEK2TQOiPRa zfDKyqwMc4wfaEh4jt>H`nW_Zidwk@Bowp`}(VUaj-pSI(-1L>FJVsX}Yl9~JsqgsZ zUD9(rMwf23Gez6KPa|wwInZodP-2}9@fK0Ga_9{8SOjU&4l`pH4@qlQp83>>HT$xW zER^U>)MyV%t(Lu=`d=Y?{k1@}&r7ZGkFQ%z%N+sE9BtYjovzxyxCPxN6&@wLK{soQ zSmkj$aLI}miuE^p@~4}mg9OjDfGEkgY4~^XzLRUBB*O{+&vq<3v(E%+k_i%=`~j%{ Vj14gnt9}3g002ovPDHLkV1n!oC4m3{ literal 0 HcmV?d00001 diff --git a/classes.html b/classes.html new file mode 100644 index 0000000..9e5d63a --- /dev/null +++ b/classes.html @@ -0,0 +1,117 @@ + + + + + + + +Ti Constructor: Data Structure Index + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Ti Constructor +
+
+ +   + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Data Structure Index
+
+
+ +
+
+
H
+
HeapItem
+
+
+
+ + + + diff --git a/closed.png b/closed.png new file mode 100644 index 0000000000000000000000000000000000000000..98cc2c909da37a6df914fbf67780eebd99c597f5 GIT binary patch literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{V-kvUwAr*{o@8{^CZMh(5KoB^r_<4^zF@3)Cp&&t3hdujKf f*?bjBoY!V+E))@{xMcbjXe@)LtDnm{r-UW|*e5JT literal 0 HcmV?d00001 diff --git a/d0/d15/errors_8c.html b/d0/d15/errors_8c.html new file mode 100644 index 0000000..61af880 --- /dev/null +++ b/d0/d15/errors_8c.html @@ -0,0 +1,248 @@ + + + + + + + +Ti Constructor: lib/errors.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Ti Constructor +
+
+ +   + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
errors.c File Reference
+
+
+ +

Some simple ways to throw an error. +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Macros

Normal system errors, uses bjumps so this effectivly exists the program
+#define SyntaxError()   bjump( _ErrSyntax )
 Raises a syntax error and jumps to the error handling routine.
 
+#define OverflowError()   bjump( _ErrOverflow )
 Raises an overflow error and jumps to the error handling routine.
 
+#define DivideByZeroError()   bjump( _ErrDivBy0 )
 Raises a divide-by-zero error and jumps to the error handling routine.
 
+#define SingularityError()   bjump( _ErrSingularMat )
 Raises a singularity error and jumps to the error handling routine.
 
+#define DomainError()   bjump( _ErrDomain )
 Raises a domain error and jumps to the error handling routine.
 
+#define IncrementError()   bjump( _ErrIncrement )
 Raises an increment error and jumps to the error handling routine.
 
+#define NonRealError()   bjump( _ErrNon_Real )
 Raises a non-real error and jumps to the error handling routine.
 
+#define DataTypeError()   bjump( _ErrDataType )
 Raises a data type error and jumps to the error handling routine.
 
+#define ArgumentError()   bjump( _ErrArgument )
 Raises an argument error and jumps to the error handling routine.
 
+#define DimensionMismatchError()   bjump( _ErrDimMismatch )
 Raises a dimension mismatch error and jumps to the error handling routine.
 
+#define DimensionError()   bjump( _ErrDimension )
 Raises a dimension error and jumps to the error handling routine.
 
+#define UndefinedError()   bjump( _ErrUndefined )
 Raises an undefined error and jumps to the error handling routine.
 
+#define MemoryError()   bjump( _ErrMemory )
 Raises a memory error and jumps to the error handling routine.
 
+#define InvalidError()   bjump( _ErrInvalid )
 Raises an invalid error and jumps to the error handling routine.
 
+#define BreakError()   bjump( _ErrBreak )
 Raises a break error and jumps to the error handling routine.
 
+#define StatError()   bjump( _ErrStat )
 Raises a stat error and jumps to the error handling routine.
 
+#define NoSignChangeError()   bjump( _ErrSignChange )
 Raises a no sign change error and jumps to the error handling routine.
 
+#define IterationsError()   bjump( _ErrIterations )
 Raises an iterations error and jumps to the error handling routine.
 
+#define BadGuessError()   bjump( _ErrBadGuess )
 Raises a bad guess error and jumps to the error handling routine.
 
+#define TolNotMetError()   bjump( _ErrTolTooSmall )
 Raises a tolerance not met error and jumps to the error handling routine.
 
+#define StatPlotError()   bjump( _ErrStatPlot )
 Raises a stat plot error and jumps to the error handling routine.
 
+#define LinkError()   bjump( _ErrLinkXmit )
 Raises a link error and jumps to the error handling routine.
 
+ + + + +

+Functions

void CustomError (char *error_text) __naked
 Show the error screen with custom text.
 
+

Detailed Description

+

Some simple ways to throw an error.

+

Function Documentation

+ +

◆ CustomError()

+ +
+
+ + + + + + + + +
void CustomError (char * error_text)
+
+ +

Show the error screen with custom text.

+
Parameters
+ + +
[error_text]The error text to be displayed (LIMITED TO 11 in length)
+
+
+

This error uses a bcall so it should return

+ +
+
+
+
+ + + + diff --git a/d0/d15/errors_8c.js b/d0/d15/errors_8c.js new file mode 100644 index 0000000..b22abd6 --- /dev/null +++ b/d0/d15/errors_8c.js @@ -0,0 +1,26 @@ +var errors_8c = +[ + [ "ArgumentError", "d0/d15/errors_8c.html#a1da40dbd85a4026ffd644fd4d6cdb500", null ], + [ "BadGuessError", "d0/d15/errors_8c.html#a853b3468137cde9e1534df9fc8d4f287", null ], + [ "BreakError", "d0/d15/errors_8c.html#a4d095834c70fa0b66e6a28c87774c79f", null ], + [ "DataTypeError", "d0/d15/errors_8c.html#a95d975c0c67f9865b1ee5b8cafcc2877", null ], + [ "DimensionError", "d0/d15/errors_8c.html#aeb70f0a9ac64157d6454e2d27374142d", null ], + [ "DimensionMismatchError", "d0/d15/errors_8c.html#a36432c538e5ab91a5ddc57cc57137944", null ], + [ "DivideByZeroError", "d0/d15/errors_8c.html#adbf3d75c789bf8c5fec97140d9d8c92e", null ], + [ "DomainError", "d0/d15/errors_8c.html#acbeed1911f934ec737c895d0d6bb8a7f", null ], + [ "IncrementError", "d0/d15/errors_8c.html#a345b3daada30ed269af910bd1cee4363", null ], + [ "InvalidError", "d0/d15/errors_8c.html#aa06fc875af34b82ffeedce1ce0702652", null ], + [ "IterationsError", "d0/d15/errors_8c.html#a9b83e678bf33d7d3d0ee3ef348f5eaf3", null ], + [ "LinkError", "d0/d15/errors_8c.html#adffa9c95592e9d459ef5cf11306dc7c7", null ], + [ "MemoryError", "d0/d15/errors_8c.html#a0dffaf56d5a2a6659ce8d7fade4628fe", null ], + [ "NonRealError", "d0/d15/errors_8c.html#affbbfe973c221ec7e08beba5dfa6f1c5", null ], + [ "NoSignChangeError", "d0/d15/errors_8c.html#a99c3a5b362b9f6925bc69304dfdb411a", null ], + [ "OverflowError", "d0/d15/errors_8c.html#ac8f6c2b1f618a0b15c966991fe764b2d", null ], + [ "SingularityError", "d0/d15/errors_8c.html#a996a74db211fa08894f4de1438d2397a", null ], + [ "StatError", "d0/d15/errors_8c.html#aca7cc5268bad829b3f9e1ad1cabf9e6e", null ], + [ "StatPlotError", "d0/d15/errors_8c.html#a0d2833d214d90fd5220685b3d4f933e3", null ], + [ "SyntaxError", "d0/d15/errors_8c.html#a84feea59f6ea18990f1a80a6914de3ce", null ], + [ "TolNotMetError", "d0/d15/errors_8c.html#aa45676a25e0b6f55e187176d8e9107ec", null ], + [ "UndefinedError", "d0/d15/errors_8c.html#a5b7174b0f1b45647230811670d5c96dd", null ], + [ "CustomError", "d0/d15/errors_8c.html#ab0eecbc25e8f70fc9dca4f0c904ac9dc", null ] +]; \ No newline at end of file diff --git a/d0/d15/errors_8c_source.html b/d0/d15/errors_8c_source.html new file mode 100644 index 0000000..e9546f7 --- /dev/null +++ b/d0/d15/errors_8c_source.html @@ -0,0 +1,186 @@ + + + + + + + +Ti Constructor: lib/errors.c Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Ti Constructor +
+
+ +   + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
errors.c
+
+
+Go to the documentation of this file.
1
+
2#pragma once
+
3
+
4
+
5
+
+
11void CustomError(char* error_text) __naked{
+
12 __asm
+
13 pop de
+
14 pop hl
+
15 push hl
+
16 push de
+
17
+
18 ld de, #appErr1
+
19 ld bc, #11
+
20 ldir
+
21
+
22 abcall(_ErrCustom1)
+
23 ret
+
24 __endasm;
+
25}
+
+
26
+
27
+
28
+
29
+
37#define SyntaxError() bjump( _ErrSyntax )
+
38
+
42#define OverflowError() bjump( _ErrOverflow )
+
43
+
47#define DivideByZeroError() bjump( _ErrDivBy0 )
+
48
+
52#define SingularityError() bjump( _ErrSingularMat )
+
53
+
57#define DomainError() bjump( _ErrDomain )
+
58
+
62#define IncrementError() bjump( _ErrIncrement )
+
63
+
67#define NonRealError() bjump( _ErrNon_Real )
+
68
+
72#define DataTypeError() bjump( _ErrDataType )
+
73
+
77#define ArgumentError() bjump( _ErrArgument )
+
78
+
82#define DimensionMismatchError() bjump( _ErrDimMismatch )
+
83
+
87#define DimensionError() bjump( _ErrDimension )
+
88
+
92#define UndefinedError() bjump( _ErrUndefined )
+
93
+
97#define MemoryError() bjump( _ErrMemory )
+
98
+
102#define InvalidError() bjump( _ErrInvalid )
+
103
+
107#define BreakError() bjump( _ErrBreak )
+
108
+
112#define StatError() bjump( _ErrStat )
+
113
+
117#define NoSignChangeError() bjump( _ErrSignChange )
+
118
+
122#define IterationsError() bjump( _ErrIterations )
+
123
+
127#define BadGuessError() bjump( _ErrBadGuess )
+
128
+
132#define TolNotMetError() bjump( _ErrTolTooSmall )
+
133
+
137#define StatPlotError() bjump( _ErrStatPlot )
+
138
+
142#define LinkError() bjump( _ErrLinkXmit )
+
143
+
144
+
145
+
void CustomError(char *error_text) __naked
Show the error screen with custom text.
Definition errors.c:11
+
#define abcall(__LABEL__)
The asm for a bcall.
Definition essentials.c:74
+
+
+ + + + diff --git a/d0/ddb/misc_8c.html b/d0/ddb/misc_8c.html new file mode 100644 index 0000000..98b3ab1 --- /dev/null +++ b/d0/ddb/misc_8c.html @@ -0,0 +1,265 @@ + + + + + + + +Ti Constructor: lib/misc.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Ti Constructor +
+
+ +   + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
misc.c File Reference
+
+
+ +

Some random but useful functions. +More...

+ + + + + + + + + + + + + + + + + + +

+Functions

CPU speed settings
char getCpuSpeed () __naked
 Get the current cpu speed.
 
void setCpuSpeed (char speed)
 Set the current cpu speed.
 
unsigned int getTime ()
 Get bottom bytes of realtime clock.
 
void wait (unsigned char x)
 Wait for amount of time (1/8th of sec)
 
char isqrt (unsigned int val)
 DEPRECATED Int square root
 
+

Detailed Description

+

Some random but useful functions.

+

Optional #defines

+ +

Function Documentation

+ +

◆ getCpuSpeed()

+ +
+
+ + + + + + + +
char getCpuSpeed ()
+
+ +

Get the current cpu speed.

+
Returns
char of a value 0-3 0 for 8 mhz and 3 for 14.99 mhz for more info: https://wikiti.brandonw.net/index.php?title=83Plus:Ports:20
+ +
+
+ +

◆ getTime()

+ +
+
+ + + + + + + +
unsigned int getTime ()
+
+ +

Get bottom bytes of realtime clock.

+
Returns
16-bit unsigned int of the bottom bytes of the real time clock See: https://wikiti.brandonw.net/index.php?title=83Plus:Ports:45 and https://wikiti.brandonw.net/index.php?title=83Plus:Ports:40
+ +
+
+ +

◆ isqrt()

+ +
+
+ + + + + + + + +
char isqrt (unsigned int val)
+
+ +

DEPRECATED Int square root

+
Parameters
+ + +
[val]unsigned int
+
+
+
Returns
char value of sqrt(val)
+

This function is DEPRECATED and slow! Please use sqrt_rounded() in fast_math.c

+ +
+
+ +

◆ setCpuSpeed()

+ +
+
+ + + + + + + + +
void setCpuSpeed (char speed)
+
+ +

Set the current cpu speed.

+
Parameters
+ + +
[speed]char of a value 0-3 0 for 8 mhz and 3 for 14.99 mhz for more info: https://wikiti.brandonw.net/index.php?title=83Plus:Ports:20
+
+
+ +
+
+ +

◆ wait()

+ +
+
+ + + + + + + + +
void wait (unsigned char x)
+
+ +

Wait for amount of time (1/8th of sec)

+
Parameters
+ + +
[x]Amount of time to wait in intervals of 1/8th of a secound
+
+
+ +
+
+
+
+ + + + diff --git a/d0/ddb/misc_8c.js b/d0/ddb/misc_8c.js new file mode 100644 index 0000000..b94ade1 --- /dev/null +++ b/d0/ddb/misc_8c.js @@ -0,0 +1,8 @@ +var misc_8c = +[ + [ "getCpuSpeed", "d0/ddb/misc_8c.html#ab75d789d39b23bb1f1636faadf07f71b", null ], + [ "getTime", "d0/ddb/misc_8c.html#ad489769b2d140a90776726cdfbc7fd6f", null ], + [ "isqrt", "d0/ddb/misc_8c.html#aaf41caa61eadef31671cd6b0c31d8d19", null ], + [ "setCpuSpeed", "d0/ddb/misc_8c.html#a01be9569f3b9a3577843a15348e2840b", null ], + [ "wait", "d0/ddb/misc_8c.html#a6bf771f8afb49a0c3aa76993723e72f4", null ] +]; \ No newline at end of file diff --git a/d1/d74/interupts_8c.html b/d1/d74/interupts_8c.html new file mode 100644 index 0000000..3f92b00 --- /dev/null +++ b/d1/d74/interupts_8c.html @@ -0,0 +1,193 @@ + + + + + + + +Ti Constructor: lib/interupts.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Ti Constructor +
+
+ +   + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
interupts.c File Reference
+
+
+ +

Set of tools for custom interupts. +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + +

+Macros

+#define __hs   #
 Bypass rule against using # in macros.
 
+#define INTRPT_MASK   0b00001011
 Used all interupts.
 
+#define basepage   0x8584
 Apps require switching the current page, so we save the current page to this ram locations.
 
#define SET_INTERUPTS()
 Enables custom interupts.
 
+ + + + + + + +

+Functions

+void _________SET_INTERUPTS ()
 Called under the hood of SET_INTERUPTS()
 
+void _____copied_to_position () __naked
 Do not run this yourself. It is copied byte for byte into ram and is called from interupts. Interupts can not be ran from the flash, but only from ram, so we must copy it into ram.
 
+

Detailed Description

+

Set of tools for custom interupts.

+

Taken from https://www.omnimaga.org/asm-language/interrupt-routine-not-returning/msg404756/#msg404756 With interupts im not quite sure what im doing but this interupt system work

+

See https://taricorp.gitlab.io/83pa28d/lesson/day23.html and https://wikiti.brandonw.net/index.php?title=83Plus:Ports:03 interupts "interupt" your code and run something else

+

They must run fast, I recomend you only run asm ( The absolute max is 54545 t-states, just remember an interupt is ran more then 100 times per secound and the z80 only has 1 core

+

Never run anything here except SET_INTERUPTS(), in this project assume if something starts with ten underscores, don't try to run it

+

Optional #defines

+
    +
  • ADDED_ON_EXIT() - A function macro you can define that is run when interupts are disabled, used for greyscale
  • +
+

Required #defines

+
    +
  • DURING_INTERUPT() - If you use interupts you must define a function macro that is ran during interupts. And Ex #define DURING_INTERUPT() do_math()
  • +
+

Macro Definition Documentation

+ +

◆ SET_INTERUPTS

+ +
+
+ + + + + + + +
#define SET_INTERUPTS()
+
+Value:
__asm\
+
ld de, __hs (ON_EXIT-LoadInterrupt+0x8E2C) \
+
push de \
+
__endasm; _________SET_INTERUPTS(); __asm\
+
ld ix,__hs 0\
+
add ix,sp\
+
__endasm;
+
#define __hs
Bypass rule against using # in macros.
Definition interupts.c:33
+
void _________SET_INTERUPTS()
Called under the hood of SET_INTERUPTS()
Definition interupts.c:56
+
+

Enables custom interupts.

+ +
+
+
+
+ + + + diff --git a/d1/d74/interupts_8c.js b/d1/d74/interupts_8c.js new file mode 100644 index 0000000..93f2dc2 --- /dev/null +++ b/d1/d74/interupts_8c.js @@ -0,0 +1,9 @@ +var interupts_8c = +[ + [ "__hs", "d1/d74/interupts_8c.html#a080021f8b22b47e0e515fadb3342b6d8", null ], + [ "basepage", "d1/d74/interupts_8c.html#a1f71a76a10c4c9dde3696a69083045f0", null ], + [ "INTRPT_MASK", "d1/d74/interupts_8c.html#a09e68d8e9da5272f666f766a4915875f", null ], + [ "SET_INTERUPTS", "d1/d74/interupts_8c.html#a0b5d2bf2b393ff71c20569a0d6ac9994", null ], + [ "_________SET_INTERUPTS", "d1/d74/interupts_8c.html#a541352fa8faca369352a59691f4d7261", null ], + [ "_____copied_to_position", "d1/d74/interupts_8c.html#a6186bb2f266a45dadb0c9e5cfcd4b6a2", null ] +]; \ No newline at end of file diff --git a/d1/d74/interupts_8c_source.html b/d1/d74/interupts_8c_source.html new file mode 100644 index 0000000..48abfe0 --- /dev/null +++ b/d1/d74/interupts_8c_source.html @@ -0,0 +1,247 @@ + + + + + + + +Ti Constructor: lib/interupts.c Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Ti Constructor +
+
+ +   + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
interupts.c
+
+
+Go to the documentation of this file.
1#pragma once
+
33#define __hs #
+
34
+
36#define INTRPT_MASK 0b00001011
+
38#define basepage 0x8584
+
39
+
40
+
41
+
+
43#define SET_INTERUPTS() __asm\
+
44 ld de, __hs (ON_EXIT-LoadInterrupt+0x8E2C) \
+
45 push de \
+
46 __endasm; _________SET_INTERUPTS(); __asm\
+
47 ld ix,__hs 0\
+
48 add ix,sp\
+
49 __endasm;
+
+
50
+
51
+
52
+
53
+
54
+
+ +
57 __asm
+
58 ; disable interrupts and set interrupt mode 2
+
59 di
+
60 im 2
+
61
+
62 ; save whichever page we are on so that we know where to go
+
63 in a,(6)
+
64 ld (basepage),a
+
65
+
66 ; set the upper byte of the jumptable to $80
+
67 ld a,#0x80
+
68 ld i,a
+
69
+
70 ; now we copy our interrupt loader to ram, we only have to do this once
+
71 ld hl,#LoadInterrupt
+
72
+
73 // A better place to store the rom loader code
+
74 ld de, #0x8E2C
+
75 ld bc,#EndLoadInterupt-LoadInterrupt
+
76 ldir
+
77
+
78 ; create the vector table (do this every time before you enable interrupts, be sure to disable interrupts before archiving / unarchiving stuff)
+
79 ld hl, #0x8000
+
80 ld de, #0x8001
+
81 ld (hl), #0x85
+
82 ld bc,#256
+
83 ldir
+
84
+
85 ; setting up the jump handler at $8585
+
86 ld hl,#0x8585
+
87 ld (hl),#0xc3 ; this is the jp instruction
+
88 ld de,#0x8E2C ; where it jumps to
+
89 inc hl
+
90 ld (hl),e
+
91 inc hl
+
92 ld (hl),d
+
93
+
94 ; time to enable interrupts
+
95 ei
+
96
+
97
+
98 __endasm;
+
99}
+
+
100
+
+ +
103
+
104 __asm
+
105 LoadInterrupt:
+
106 di
+
107 exx
+
108 aSaveA
+
109 xor a, a
+
110 out (3),a
+
111
+
112
+
113 #ifdef FLASH_APP
+
115 in a,(6)
+
116 push af
+
117 ld a,(basepage)
+
118 out (6),a
+
119 #endif
+
120 __endasm;
+
121
+
122 DURING_INTERUPT();
+
123
+
124 __asm
+
125
+
126 #ifdef FLASH_APP
+
127 pop af
+
128 out (6),a
+
129 #endif
+
130
+
131 xor a, #INTRPT_MASK
+
132 out (3),a
+
133
+
134
+
135 aSaveA
+
136 exx
+
137 ei
+
138
+
139
+
140 ret
+
141 ON_EXIT:
+
142 di
+
143 im 1
+
144 ld a, __hs INTRPT_MASK
+
145 out (3), a
+
146
+
147 // useful for greyscale
+
148 #ifdef ADDED_ON_EXIT
+
149 __endasm;
+
150 ADDED_ON_EXIT();
+
151 __asm
+
152 #endif
+
153
+
154
+
155 ei
+
156 ret
+
157
+
158 EndLoadInterupt:
+
159 __endasm;
+
160}
+
+
#define aSaveA
ex af, af'
Definition essentials.c:27
+
#define __hs
Bypass rule against using # in macros.
Definition interupts.c:33
+
#define INTRPT_MASK
Used all interupts.
Definition interupts.c:36
+
#define basepage
Apps require switching the current page, so we save the current page to this ram locations.
Definition interupts.c:38
+
void _________SET_INTERUPTS()
Called under the hood of SET_INTERUPTS()
Definition interupts.c:56
+
void _____copied_to_position() __naked
Do not run this yourself. It is copied byte for byte into ram and is called from interupts....
Definition interupts.c:102
+
+
+ + + + diff --git a/d2/d4a/essentials_8c.html b/d2/d4a/essentials_8c.html new file mode 100644 index 0000000..5f8349f --- /dev/null +++ b/d2/d4a/essentials_8c.html @@ -0,0 +1,319 @@ + + + + + + + +Ti Constructor: lib/essentials.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Ti Constructor +
+
+ +   + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
essentials.c File Reference
+
+
+ +

This should be #included in all files. +More...

+
#include "ti83plus.h"
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Macros

Global omni-present constants
#define aSaveA   .db #0x08
 ex af, af'
 
#define SP_STORE   0x980C
 Stack pointer temp.
 
+#define spriteTemp   0x84F3
 Also used for storing the stack pointer.
 
function macros
+#define clearScreen()   bcall(_ClrLCDFull)
 Clears the screen.
 
#define bcall(__LABEL__)
 Call System routine.
 
#define bjump(__LABEL__)
 Junp to System routine.
 
#define abcall(__LABEL__)
 The asm for a bcall.
 
#define lastPressedKey()   (*(char*)(kbdScanCode))
 Get last pressed key.
 
#define scanKeys()   bcall(_kdbScan)
 Scan for pressed keys.
 
Safe Memory Areas
+#define saferam1   0x9872
 768 bytes (APDRAM)
 
+#define saferam2   0x8A3A
 531 bytes (statRAM)
 
+#define saferam3   0x8508
 128 bytes (textMem)
 
+#define saferam4   0x8478
 66 bytes (Op registers, use with caution)
 
+#define saferam5   0x8251
 8 bytes (bootTemp)
 
+

Detailed Description

+

This should be #included in all files.

+

This file #defines all required constants, and loads in "ti83plus.h" for other constantss that are needed. Only defines stuff at compile time, no real function, no extra bytes.

+

Macro Definition Documentation

+ +

◆ abcall

+ +
+
+ + + + + + + + +
#define abcall( __LABEL__)
+
+Value:
rst 40 \
+
.dw __LABEL__
+
+

The asm for a bcall.

+ +
+
+ +

◆ aSaveA

+ +
+
+ + + + +
#define aSaveA   .db #0x08
+
+ +

ex af, af'

+

Machine code to swap af and shadow af and only takes 4 t-states, only use in asm
+

+ +
+
+ +

◆ bcall

+ +
+
+ + + + + + + + +
#define bcall( __LABEL__)
+
+Value:
__asm rst 40 \
+
.dw __LABEL__ __endasm
+
+

Call System routine.

+

Preforms a bcall while in C. And keep in mind that a bcall might modify registers, meaning that any bcall can corrupt any C variable For most bcall values click here, or see TI's system routines document

+ +
+
+ +

◆ bjump

+ +
+
+ + + + + + + + +
#define bjump( __LABEL__)
+
+Value:
__asm call 0x50 \
+
.dw __LABEL__ __endasm
+
+

Junp to System routine.

+

Like a bcall() but jumps instead of calls

+ +
+
+ +

◆ lastPressedKey

+ +
+
+ + + + + + + +
#define lastPressedKey()   (*(char*)(kbdScanCode))
+
+ +

Get last pressed key.

+

Rrequires scanKeys() with custom interupts

+ +
+
+ +

◆ scanKeys

+ +
+
+ + + + + + + +
#define scanKeys()   bcall(_kdbScan)
+
+ +

Scan for pressed keys.

+

Manually scan for pressed key, only needed with custom interupts

+ +
+
+ +

◆ SP_STORE

+ +
+
+ + + + +
#define SP_STORE   0x980C
+
+ +

Stack pointer temp.

+

Used to store the stack pointer in several functions, if you are writing some assembly, feel free to use this. But not for long-term storage as it is writen to by multiple functions.

+ +
+
+
+
+ + + + diff --git a/d2/d4a/essentials_8c.js b/d2/d4a/essentials_8c.js new file mode 100644 index 0000000..ba3f94b --- /dev/null +++ b/d2/d4a/essentials_8c.js @@ -0,0 +1,17 @@ +var essentials_8c = +[ + [ "abcall", "d2/d4a/essentials_8c.html#a129499a7680583fc58a699bbb1aca61d", null ], + [ "aSaveA", "d2/d4a/essentials_8c.html#a2729ab5166820ef85f4c3a4a50c49c8e", null ], + [ "bcall", "d2/d4a/essentials_8c.html#a68264b1743db602f8233757550b88f09", null ], + [ "bjump", "d2/d4a/essentials_8c.html#a66980ae5fda680230944e831c7fd0eb4", null ], + [ "clearScreen", "d2/d4a/essentials_8c.html#aceb70c1ed7e11f0863a868704f02214b", null ], + [ "lastPressedKey", "d2/d4a/essentials_8c.html#a00779d8b864708d1f7091c47e1e87c64", null ], + [ "saferam1", "d2/d4a/essentials_8c.html#a96109672f0e8545baf4faf9ab4574343", null ], + [ "saferam2", "d2/d4a/essentials_8c.html#ac16ec4c70efc5252f43679ed11a348b8", null ], + [ "saferam3", "d2/d4a/essentials_8c.html#aaed5ef70437a2d0bbf4aad296521e8d3", null ], + [ "saferam4", "d2/d4a/essentials_8c.html#a068b742df6def2627d3fa3275f84dc8d", null ], + [ "saferam5", "d2/d4a/essentials_8c.html#a9099cbf3a5987f95a0f104c9f170cfc9", null ], + [ "scanKeys", "d2/d4a/essentials_8c.html#a5b6c33a910bc2747fbf14cfec775f11c", null ], + [ "SP_STORE", "d2/d4a/essentials_8c.html#a3f8cba501b7f79c5bb0dad8a633f8f8a", null ], + [ "spriteTemp", "d2/d4a/essentials_8c.html#a6a5942c7d60a6c2a59372f8fde03658a", null ] +]; \ No newline at end of file diff --git a/d2/dba/textio_8c.html b/d2/dba/textio_8c.html new file mode 100644 index 0000000..87c7a00 --- /dev/null +++ b/d2/dba/textio_8c.html @@ -0,0 +1,398 @@ + + + + + + + +Ti Constructor: lib/textio.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Ti Constructor +
+
+ +   + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
textio.c File Reference
+
+
+ +

String I/O type stuff. +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

void setPenRow (char row) __naked
 set the row that is currently selectd
 
void setPenCol (char col) __naked
 set the column that is currently selectd
 
+void resetPen () __naked
 Set the pen back to 0,0.
 
void fputs (char *loc) __naked
 print a string to the screen
 
void println (char *loc)
 print a string to the screen, move down a line, and reset the pen col
 
+void newline () __naked
 Go to the next line go back to the first col.
 
void printc (char ch) __naked
 prints a single char
 
void number (int x)
 Print a number to the screen.
 
void hexdump (char v) __naked
 print the hex of a char to the screen
 
void doubleHexdump (int v) __naked
 Prints a 16-bit int to the screen.
 
+ + + +

+Variables

const char hexTab [16]
 
+

Detailed Description

+

String I/O type stuff.

+

This is for printing c strings, it is not fast, but shouldn't be too large. Feel free not to use it if you need more space, although don't expect to use any other io type stuff

+

Optional #defines

+ +

Function Documentation

+ +

◆ doubleHexdump()

+ +
+
+ + + + + + + + +
void doubleHexdump (int v)
+
+ +

Prints a 16-bit int to the screen.

+
Parameters
+ + +
[v]Int to be printed
+
+
+

Basicly just calls hexdump() twice.

+ +
+
+ +

◆ fputs()

+ +
+
+ + + + + + + + +
void fputs (char * loc)
+
+ +

print a string to the screen

+
Parameters
+ + +
[loc]string to be printed Normal text output will not work in apps, this should though by repeatedly printing single chars to the string.
+
+
+ +
+
+ +

◆ hexdump()

+ +
+
+ + + + + + + + +
void hexdump (char v)
+
+ +

print the hex of a char to the screen

+
Parameters
+ + +
[v]Char to be printed This function is great for debuging but not so good for games. Should be quite fast.
+
+
+ +
+
+ +

◆ number()

+ +
+
+ + + + + + + + +
void number (int x)
+
+ +

Print a number to the screen.

+
Parameters
+ + +
[x]number to be printed
+
+
+

This function is a bit slow, but it does the job

+ +
+
+ +

◆ printc()

+ +
+
+ + + + + + + + +
void printc (char ch)
+
+ +

prints a single char

+
Parameters
+ + +
[ch]single char to be printed
+
+
+ +
+
+ +

◆ println()

+ +
+
+ + + + + + + + +
void println (char * loc)
+
+ +

print a string to the screen, move down a line, and reset the pen col

+
Parameters
+ + +
[loc]string to be printed Calls fputs() and moves the pen for you
+
+
+ +
+
+ +

◆ setPenCol()

+ +
+
+ + + + + + + + +
void setPenCol (char col)
+
+ +

set the column that is currently selectd

+
Parameters
+ + +
[col]char to move the pen to See https://wikiti.brandonw.net/index.php?title=83Plus:RAM:86D7
+
+
+ +
+
+ +

◆ setPenRow()

+ +
+
+ + + + + + + + +
void setPenRow (char row)
+
+ +

set the row that is currently selectd

+
Parameters
+ + +
[row]char to move the pen to See https://wikiti.brandonw.net/index.php?title=83Plus:RAM:86D8
+
+
+ +
+
+

Variable Documentation

+ +

◆ hexTab

+ +
+
+ + + + +
const char hexTab[16]
+
+Initial value:
= {'0', '1', '2', '3', '4', '5', '6', '7',
+
'8', '9', 'A', 'B', 'C', 'D', 'E', 'F', }
+

hex lookup table

+ +
+
+
+
+ + + + diff --git a/d2/dba/textio_8c.js b/d2/dba/textio_8c.js new file mode 100644 index 0000000..6d907c1 --- /dev/null +++ b/d2/dba/textio_8c.js @@ -0,0 +1,14 @@ +var textio_8c = +[ + [ "doubleHexdump", "d2/dba/textio_8c.html#a9d100b8bd5fe0812f617ff83cd46c2df", null ], + [ "fputs", "d2/dba/textio_8c.html#aca07b808550bc084bf01fffa964bf362", null ], + [ "hexdump", "d2/dba/textio_8c.html#ab64ca59caab800b6c00645189dd806e8", null ], + [ "newline", "d2/dba/textio_8c.html#a7ffed7dceb713fc324f0534bc9152c4b", null ], + [ "number", "d2/dba/textio_8c.html#a66a569e51623061dc516f13047a7cd8f", null ], + [ "printc", "d2/dba/textio_8c.html#a8f5c92b67e468af24552b8f68baf7fa8", null ], + [ "println", "d2/dba/textio_8c.html#a14055334d5f05def8c67b7c98212ab99", null ], + [ "resetPen", "d2/dba/textio_8c.html#ae95669a52ba3a2adb7021a225ebf8192", null ], + [ "setPenCol", "d2/dba/textio_8c.html#ad781e6859c1ac67ab4e11f90261dc287", null ], + [ "setPenRow", "d2/dba/textio_8c.html#ac8df7968d45a0cc93de680cdd7025cdb", null ], + [ "hexTab", "d2/dba/textio_8c.html#a6dd76dc5bcabf89a30f7d13e2c3469f7", null ] +]; \ No newline at end of file diff --git a/d2/dba/textio_8c_source.html b/d2/dba/textio_8c_source.html new file mode 100644 index 0000000..b4a87c6 --- /dev/null +++ b/d2/dba/textio_8c_source.html @@ -0,0 +1,342 @@ + + + + + + + +Ti Constructor: lib/textio.c Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Ti Constructor +
+
+ +   + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
textio.c
+
+
+Go to the documentation of this file.
1
+
13#pragma once
+
14
+
15
+
+
20void setPenRow(char row) __naked{
+
21 row;
+
22 __asm
+
23 pop hl ; Get input
+
24 pop bc ; and perserve
+
25 push bc
+
26 push hl ; ret value
+
27 ld a, c
+
28
+
29 ld (#penRow), a
+
30
+
31 ret
+
32 __endasm;
+
33}
+
+
+
38void setPenCol(char col) __naked{
+
39 col;
+
40 __asm
+
41 pop hl ; Get input
+
42 pop bc ; and perserve
+
43 push bc
+
44 push hl ; ret value
+
45 ld a, c
+
46
+
47 ld (#penCol), a
+
48
+
49 ret
+
50 __endasm;
+
51}
+
+
+
54void resetPen() __naked{
+
55 __asm
+
56 xor a, a
+
57
+
58 ld (#penCol), a
+
59 ld (#penRow), a
+
60 ret
+
61 __endasm;
+
62}
+
+
+
67void fputs(char* loc) __naked {
+
68 loc;
+
69 __asm
+
70 pop hl ; Get input
+
71 pop bc ; and perserve
+
72 push bc ; ret value
+
73 push hl
+
74
+
75
+
76 the_char_loop_i_need_more_good_names_for_labels:
+
77 ld a, (bc)
+
78 or a, a
+
79 ret z
+
80 push ix
+
81 abcall(_VPutMap)
+
82 pop ix
+
83 inc bc
+
84 jr the_char_loop_i_need_more_good_names_for_labels
+
85
+
86 __endasm;
+
87}
+
+
+
92void println(char* loc){
+
93 fputs(loc);
+
94 __asm
+
95 ld a, (#penRow)
+
96 ld b, #6
+
97 add b
+
98 ld (#penRow), a
+
99
+
100 xor a, a
+
101 ld (#penCol), a
+
102 __endasm;
+
103}
+
+
+
106void newline() __naked{
+
107 __asm
+
108 ld a, (#penRow)
+
109 ld b, #6
+
110 add b
+
111 ld (#penRow), a
+
112
+
113 xor a, a
+
114 ld (#penCol), a
+
115 ret
+
116 __endasm;
+
117}
+
+
+
121void printc(char ch) __naked{
+
122 ch;
+
123 __asm
+
124 pop hl ; Get input
+
125 pop bc
+
126 push bc
+
127 push hl
+
128 ld a, c
+
129 push ix
+
130 abcall(_VPutMap)
+
131 pop ix
+
132 ret
+
133 __endasm;
+
134}
+
+
135
+
136#if defined(USE_NUMBER) || defined(DOXYGEN)
+
137
+
+
143void number(int x){
+
144 int i = 0;
+
145 if (x<0){
+
146 x=0-x;
+
147 printc('-');
+
148 }
+
149 char out[25];
+
150 do {
+
151 out[i]=x % 10 + '0';
+
152 i+=1;
+
153 } while((x /= 10) > 0);
+
154 i--;
+
155 for(;i>=0; i--){
+
156 __asm
+
157 ld l, -4 (ix)
+
158 ld h, -3 (ix)
+
159 add hl, bc
+
160 ld a, (hl)
+
161
+
162 push ix
+
163 abcall(_VPutMap)
+
164 pop ix
+
165
+
166 __endasm;
+
167
+
168 }
+
169
+
170}
+
+
171#endif
+
172
+
173#if defined(USE_HEXDUMP) || defined(DOXYGEN)
+
174
+
+
176const char hexTab[16] = {'0', '1', '2', '3', '4', '5', '6', '7',
+
177 '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', };
+
+
178
+
179
+
+
184void hexdump(char v)__naked{
+
185 v;
+
186 __asm
+
187 pop hl ; Get input
+
188 pop bc ; and perserve
+
189 push bc
+
190 push hl
+
191
+
192 push ix
+
193
+
194 ld a, c
+
195 ld hl, #_hexTab
+
196 and a, #0xF0
+
197 SRL a
+
198 SRL a
+
199 SRL a
+
200 SRL a
+
201
+
202 ld e, a
+
203 ld d, #0
+
204 add hl, de
+
205 ld a, (hl)
+
206 abcall(_VPutMap)
+
207
+
208 ld a, c
+
209 ld hl, #_hexTab
+
210 and a, #0x0F
+
211 ld e, a
+
212 ld d, #0
+
213 add hl, de
+
214 ld a, (hl)
+
215 abcall(_VPutMap)
+
216
+
217
+
218 pop ix
+
219 ret
+
220 __endasm;
+
221}
+
+
+
227void doubleHexdump(int v) __naked{
+
228 __asm
+
229 pop hl
+
230 pop bc
+
231 push bc
+
232 push hl
+
233
+
234 push bc
+
235 push bc
+
236 inc sp
+
237 call _hexdump
+
238 inc sp
+
239 call _hexdump
+
240 pop bc
+
241 ret
+
242 __endasm;
+
243}
+
+
244
+
245#endif
+
#define abcall(__LABEL__)
The asm for a bcall.
Definition essentials.c:74
+
void println(char *loc)
print a string to the screen, move down a line, and reset the pen col
Definition textio.c:92
+
void number(int x)
Print a number to the screen.
Definition textio.c:143
+
const char hexTab[16]
Definition textio.c:176
+
void newline() __naked
Go to the next line go back to the first col.
Definition textio.c:106
+
void printc(char ch) __naked
prints a single char
Definition textio.c:121
+
void doubleHexdump(int v) __naked
Prints a 16-bit int to the screen.
Definition textio.c:227
+
void hexdump(char v) __naked
print the hex of a char to the screen
Definition textio.c:184
+
void setPenRow(char row) __naked
set the row that is currently selectd
Definition textio.c:20
+
void fputs(char *loc) __naked
print a string to the screen
Definition textio.c:67
+
void setPenCol(char col) __naked
set the column that is currently selectd
Definition textio.c:38
+
void resetPen() __naked
Set the pen back to 0,0.
Definition textio.c:54
+
+
+ + + + diff --git a/d4/d1f/floatmath_8c.html b/d4/d1f/floatmath_8c.html new file mode 100644 index 0000000..c20fbda --- /dev/null +++ b/d4/d1f/floatmath_8c.html @@ -0,0 +1,562 @@ + + + + + + + +Ti Constructor: lib/floatmath.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Ti Constructor +
+
+ +   + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
floatmath.c File Reference
+
+
+ +

Use the built in calculator floating point math. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Macros

#define PRINT_OP1()
 
floating point stack stuff
+#define FPS   0x9824
 
Only odd op push and pops seem to exist
+#define PushOP1()   bcall(0x43C9)
 
+#define PushOP5()   bcall(0x43C0)
 
+#define PushOP3()   bcall(0x43C3)
 
+#define PopOP5()   bcall(0x4378)
 
+#define PopOP3()   bcall(0x437B)
 
+#define PopOP1()   bcall(0x437E)
 
Stores op1 to variable
+#define OP1_TO_ANS()   bcall(0x4ABF)
 
+#define Store_Theta()   bcall(0x4AC2)
 
+#define Store_R()   bcall(0x4AC5)
 
+#define Store_Y()   bcall(0x4AC8)
 
+#define Store_N()   bcall(0x4ACB)
 
+#define Store_T()   bcall(0x4ACE)
 
+#define Store_X()   bcall(0x4AD1)
 
Math operations
+#define MATH_FLOOR()   bcall(0x405D)
 op1 = floor(op1)
 
+#define MATH_CEIL()   bcall(0x489A)
 op1 = ceil(op1)
 
+#define TEN_TO_THE_POWER_OF_OP1()   bcall(0x40B7)
 10 ^ (op1) not sure the use of this but its here
 
+#define INC_OP1()   bcall(0x4069)
 op1 += 1
 
+#define DEC_OP1()   bcall(0x406C)
 op1 -= 1
 
+#define NEG_OP1()   bcall(0x408D)
 op1 = -op1
 
+#define DOUBLE_OP1()   bcall(0x4066)
 op1 *= 2
 
+#define FP_ADD()   bcall(0x4072)
 op1 += op2
 
+#define FP_SUB()   bcall(0x406F)
 op1 -= op2
 
+#define FP_MULT()   bcall(0x4084)
 op1 *= op2
 
+#define FP_DIV()   bcall(0x4099)
 op1 /= op2
 
+#define SQUARE_OP1()   bcall(0x4081)
 op1 = op1 * op1
 
+#define CUBE_OP1()   bcall(0x407B)
 op1 = op1 * op1 * op1
 
+#define SQ_ROOT_OP1()   bcall(0x409C)
 op1 = sqrt( op1 )
 
+#define FP_Recip()   bcall(0x4096)
 op1 = 1/op1
 
+#define DEG_TO_RAD()   bcall(0x4075)
 op1 = Pi/180 * op1 may be bigger than 2pi
 
SUPER SLOW !!!! DON'T USE UNLESS NECESSARY

around 150,000 to 200,000 cycles, the base clock is 8 mhz and turbo is 16
+

+
+#define Tan()   bcall(0x40C3)
 op1 = tan(op1)
 
+#define Sin()   bcall(0x40BD)
 op1 = Sin( op1 )
 
+#define Cos()   bcall(0x40C0)
 op1 = cos( op1 )
 
op(n) load instructions
+#define OP3ToOP4()   bcall(0x4114)
 
+#define OP1ToOP4()   bcall(0x4117)
 
+#define OP2ToOP4()   bcall(0x411A)
 
+#define OP4ToOP2()   bcall(0x411D)
 
+#define OP1ToOP3()   bcall(0x4123)
 
+#define OP5ToOP2()   bcall(0x4126)
 
+#define OP5ToOP6()   bcall(0x4129)
 
+#define OP5ToOP4()   bcall(0x412C)
 
+#define OP1ToOP2()   bcall(0x412F)
 
+#define OP6ToOP2()   bcall(0x4132)
 
+#define OP6ToOP1()   bcall(0x4135)
 
+#define OP4ToOP1()   bcall(0x4138)
 
+#define OP5ToOP1()   bcall(0x413B)
 
+#define OP3ToOP1()   bcall(0x413E)
 
+#define OP6ToOP5()   bcall(0x4141)
 
+#define OP4ToOP5()   bcall(0x4144)
 
+#define OP3ToOP5()   bcall(0x4147)
 
+#define OP2ToOP5()   bcall(0x414A)
 
+#define OP2ToOP6()   bcall(0x414D)
 
+#define OP1ToOP6()   bcall(0x4150)
 
+#define OP1ToOP5()   bcall(0x4153)
 
+#define OP2ToOP1()   bcall(0x4156)
 
+#define OP2ToOP3()   bcall(0x416E);
 
+#define OP4ToOP3()   bcall(0x4171);
 
+#define OP5ToOP3()   bcall(0x4174);
 
+#define OP4ToOP6()   bcall(0x4177);
 
Easy default values sets and op value to a whole number
+#define OP4Set1()   bcall(0x4186)
 
+#define OP3Set1()   bcall(0x4189)
 
+#define OP2Set8()   bcall(0x418C)
 
+#define OP2Set5()   bcall(0x418F)
 
+#define OP2SetA()   bcall(0x4192)
 
+#define OP2Set4()   bcall(0x4195)
 
+#define OP2Set3()   bcall(0x4198)
 
+#define OP1Set1()   bcall(0x419B)
 
+#define OP1Set4()   bcall(0x419E)
 
+#define OP1Set3()   bcall(0x41A1)
 
+#define OP3Set2()   bcall(0x41A4)
 
+#define OP1Set2()   bcall(0x41A7)
 
+#define OP2Set2()   bcall(0x41AA)
 
+#define OP2Set1()   bcall(0x41AD)
 
+#define OP5Set0()   bcall(0x41B3)
 
+#define OP4Set0()   bcall(0x41B6)
 
+#define OP3Set0()   bcall(0x41B9)
 
+#define OP2Set0()   bcall(0x41BC)
 
+#define OP1Set0()   bcall(0x41BF)
 
+ + + + + + + + + + + + + + + + +

+Functions

int OPT1_TO_INT ()
 returns int of op1 "Converts a floating-point number in OP1 to a two-byte hexadecimal number in DE."
 
void MoveToOp1 (unsigned int v)
 Sets op1 to the value at a ram locations.
 
void MoveOp1To (unsigned int v)
 moves op1 to a ram location
 
void charToOp1 (char x)
 Set op1 equal to a char.
 
void intToOp1 (int x)
 set the value of an int to op1
 
+

Detailed Description

+

Use the built in calculator floating point math.

+

This library interfaces with the full normal calc float rutines. This is highly accurate but not very flexible with asm programs Also everything here is realitivly slow compared to intiger or fixed point math. And keep in mind that a bcall might modify registers, meaning that any bcall can corrupt any C variable See: https://taricorp.gitlab.io/83pa28d/lesson/week3/day18/index.html

+

Optional #defines

+ +

Macro Definition Documentation

+ +

◆ PRINT_OP1

+ +
+
+ + + + + + + +
#define PRINT_OP1()
+
+Value:
__asm \
+
ld a, #6 __endasm;\
+
bcall(_DispOP1A)
+
+
+
+

Function Documentation

+ +

◆ charToOp1()

+ +
+
+ + + + + + + + +
void charToOp1 (char x)
+
+ +

Set op1 equal to a char.

+
Parameters
+ + +
[x]number to be set
+
+
+

credit to Xeda112358 whose routine I modifed from https://www.cemetech.net/forum/viewtopic.php?t=1449&postdays=0&postorder=asc&start=126

+ +
+
+ +

◆ intToOp1()

+ +
+
+ + + + + + + + +
void intToOp1 (int x)
+
+ +

set the value of an int to op1

+
Parameters
+ + +
[x]Value to be set to op1
+
+
+ +
+
+ +

◆ MoveOp1To()

+ +
+
+ + + + + + + + +
void MoveOp1To (unsigned int v)
+
+ +

moves op1 to a ram location

+
Parameters
+ + +
[v]Ram location to copy op1 to
+
+
+ +
+
+ +

◆ MoveToOp1()

+ +
+
+ + + + + + + + +
void MoveToOp1 (unsigned int v)
+
+ +

Sets op1 to the value at a ram locations.

+
Parameters
+ + +
[v]Ram location to copy op1 from
+
+
+ +
+
+ +

◆ OPT1_TO_INT()

+ +
+
+ + + + + + + +
int OPT1_TO_INT ()
+
+ +

returns int of op1 "Converts a floating-point number in OP1 to a two-byte hexadecimal number in DE."

+ + +
+
+
+
+ + + + diff --git a/d4/d1f/floatmath_8c.js b/d4/d1f/floatmath_8c.js new file mode 100644 index 0000000..2e1460a --- /dev/null +++ b/d4/d1f/floatmath_8c.js @@ -0,0 +1,27 @@ +var floatmath_8c = +[ + [ "Cos", "d4/d1f/floatmath_8c.html#aa08263b0b9c00688f9a5cdca82cc79b6", null ], + [ "CUBE_OP1", "d4/d1f/floatmath_8c.html#ac9e02920c6da477dd7b479a0e85ef353", null ], + [ "DEC_OP1", "d4/d1f/floatmath_8c.html#aaf5e7f4074af358f032c21e87fcd26f3", null ], + [ "DEG_TO_RAD", "d4/d1f/floatmath_8c.html#a72f7f3dc385284b222a96b065e560f12", null ], + [ "DOUBLE_OP1", "d4/d1f/floatmath_8c.html#acc4dc6fcc66e86c8082009bd0104b84e", null ], + [ "FP_ADD", "d4/d1f/floatmath_8c.html#af3798975d178bf2b789e2db63ef20dc7", null ], + [ "FP_DIV", "d4/d1f/floatmath_8c.html#aaf0070b7462184ba21b587fcbdf916c3", null ], + [ "FP_MULT", "d4/d1f/floatmath_8c.html#a8d885dd2ca125dbc23cf445b1a060bff", null ], + [ "FP_Recip", "d4/d1f/floatmath_8c.html#a2ecdac285b2a0ca01ce28169042693cb", null ], + [ "FP_SUB", "d4/d1f/floatmath_8c.html#a72afb5802ac99ab0fffa5cf4c938b7d6", null ], + [ "INC_OP1", "d4/d1f/floatmath_8c.html#a85a2cc6f3e18dc9267086b9669c719b5", null ], + [ "MATH_CEIL", "d4/d1f/floatmath_8c.html#a36849b796d2daeb1003657d166ce3242", null ], + [ "MATH_FLOOR", "d4/d1f/floatmath_8c.html#a8c48e91626097b47894896e72d6f7bcb", null ], + [ "NEG_OP1", "d4/d1f/floatmath_8c.html#a2aef176fc4a8689c9067cf6a4868e755", null ], + [ "Sin", "d4/d1f/floatmath_8c.html#a8660e85f0113a58d6653145cf5d6dfde", null ], + [ "SQ_ROOT_OP1", "d4/d1f/floatmath_8c.html#ab99e2ae6245648dbf6aa294e5a35cc8c", null ], + [ "SQUARE_OP1", "d4/d1f/floatmath_8c.html#a7b80e84a37a72997923c0b61db6c1fba", null ], + [ "Tan", "d4/d1f/floatmath_8c.html#a7a985b1f17f665b3c573497c19b45a82", null ], + [ "TEN_TO_THE_POWER_OF_OP1", "d4/d1f/floatmath_8c.html#a9a3d1d697824f8930d558ad33e99509e", null ], + [ "charToOp1", "d4/d1f/floatmath_8c.html#aa60601dbfa7280f2a460cb3185c899bf", null ], + [ "intToOp1", "d4/d1f/floatmath_8c.html#a56db8db6295fead15c7ead9fbc251c50", null ], + [ "MoveOp1To", "d4/d1f/floatmath_8c.html#a7a2af65a4e59b08116536a811fea93ea", null ], + [ "MoveToOp1", "d4/d1f/floatmath_8c.html#af04b91b2a622e6f3d270b11ed57ec846", null ], + [ "OPT1_TO_INT", "d4/d1f/floatmath_8c.html#a7786275f549130affc810e217444414c", null ] +]; \ No newline at end of file diff --git a/d4/d49/ti83plus_8h.html b/d4/d49/ti83plus_8h.html new file mode 100644 index 0000000..2913fd9 --- /dev/null +++ b/d4/d49/ti83plus_8h.html @@ -0,0 +1,5179 @@ + + + + + + + +Ti Constructor: lib/ti83plus.h File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Ti Constructor +
+
+ +   + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
ti83plus.h File Reference
+
+
+ +

TI-83 Plus Include File. +More...

+ +

Go to the source code of this file.

+ + + + +

+Functions

void _ ()
 
+

Detailed Description

+

TI-83 Plus Include File.

+

This is created from the ti83plus.inc which used by many assembly programs and includes essential equates used by the operating system. This version is more complete than what TI provides, due to years of research from various programmers throughout the decades.

+

And converted into a .h file from https://wikiti.brandonw.net/index.php?title=83Plus:OS:ti83plus.inc should be C compatible now, if you see any mistakes a PR is welcome.

+

Function Documentation

+ +

◆ _()

+ +
+
+ + + + + + + +
void _ ()
+
+
+
+
//System Variable Equates
+
//------------------------------
+
#define XSCLt 2
+
#define YSCLt 3
+
#define XMINt 0x0A
+
#define XMAXt 0x0B
+
#define YMINt 0x0C
+
#define YMAXt 0x0D
+
#define TMINt 0x0E
+
#define TMAXt 0x0F
+
#define THETMINt 0x10
+
#define THETMAXt 0x11
+
#define TBLMINt 0x1A
+
#define PLOTSTARTt 0x1B
+
#define NMAXt 0x1D
+
#define NMINt 0x1F
+
#define TBLSTEPt 0x21
+
#define TSTEPt 0x22
+
#define THETSTEPt 0x23
+
#define DELTAXt 0x26
+
#define DELTAYt 0x27
+
#define XFACTt 0x28
+
#define YFACTt 0x29
+
#define FINNt 0x2B
+
#define FINIt 0x2C
+
#define FINPVt 0x2D
+
#define FINPMTt 0x2E
+
#define FINFVt 0x2F
+
#define FINPYt 0x30
+
#define FINCYt 0x31
+
#define PLOTSTEPt 0x34
+
#define XRESt 0x36
+
+
//Run indicators
+
//------------------------------------
+
#define busyPause 0b10101010
+
#define busyNormal 0b11110000
+
+
//Banked Call Equates/Macros
+
//-----------------------------------------------
+
#define rBR_CALL 0x28
+
#define BRT_JUMP0 0x50
+
// OMITED LINE: #define bcall(xxxx) rst 28h \ .dw xxxx
+
// OMITED LINE: #define bjump(xxxx) call 50h \ .dw xxxx
+
+
//Common Restart Routines
+
//------------------------------
+
#define rOP1TOOP2 0x08
+
#define rFINDSYM 0x10
+
#define rPUSHREALO1 0x18
+
#define rMOV9TOOP1 0x20
+
#define rFPADD 0x30
+
+
//Error Handler Equates/Macros
+
//-------------------------------------------
+
#define APP_PUSH_ERRORH 0x59
+
#define APP_POP_ERRORH 0x5C
+
// OMITED LINE: #define AppOnErr(xxxx) ld hl,xxxx \ call 59h
+
// OMITED LINE: #define AppOffErr call 5Ch
+
+
//Page 1Bh ROM Calls
+
//--------------------------------
+
#define _JErrorNo 0x4000
+
#define _FontHook 0x4003
+
#define _call_character_hook 0x4006 //calls character(localize) hook
+
#define _ldHLind 0x4009 //l=a=(hl),h=(hl+1)
+
#define _CpHLDE 0x400C
+
#define _DivHLBy10 0x400F
+
#define _DivHLByA 0x4012
+
#define _kdbScan 0x4015
+
#define _GetCSC 0x4018 //key board scan codes
+
#define _coorMon 0x401B //
+
#define _Mon 0x401E //system monitor, customized through the context vectors
+
#define _monForceKey 0x4021 //
+
#define _sendKPress 0x4024
+
#define _JForceCmdNoChar 0x4027
+
#define _JForceCmd 0x402A //
+
#define _sysErrHandler 0x402D //loads error context? sp=(onSP)
+
#define _newContext 0x4030 //(kbdKey)=0, loads context, restores page in 4000h-7fffh
+
#define _newContext0 0x4033 //loads context
+
#define _cxPutAway 0x4036 //
+
#define _cxPutAway2 0x4039 //same but also does a B_CALL CanAlphIns
+
#define _cxPPutAway 0x403C
+
#define _cxSizeWind 0x403F
+
#define _cxErrEP 0x4042
+
#define _cxMain 0x4045
+
#define _monErrHand 0x4048 //installs errorhandler to start of ROM call, loads error context, jumps to mon
+
#define _AppInit 0x404B //loads vector data at hl to cxMain and the rest of the vectors
+
#define _resetRam 0x404E
+
#define _lcd_busy 0x4051 //wait till bit 1 of port 2 is set
+
#define _Min 0x4054 //op1 = lowest number between op1 and op2
+
#define _Max 0x4057 //op1 = highest number between op1 and op2
+
#define _Trunc 0x4060
+
#define _InvSub 0x4063
+
#define _Times2 0x4066
+
#define _Plus1 0x4069 //op1=op1+1
+
#define _Minus1 0x406C
+
#define _FPSub 0x406F
+
#define _FPAdd 0x4072
+
#define _DToR 0x4075
+
#define _RToD 0x4078
+
#define _Cube 0x407B
+
#define _TimesPt5 0x407E
+
#define _FPSquare 0x4081
+
#define _FPMult 0x4084 //op1=op1*op2
+
#define _LJRND 0x4087 //adjusts op1 if 0s precede the actual number... rounding? when
+
#define _InvOP1SC 0x408A
+
#define _InvOP1S 0x408D
+
#define _InvOP2S 0x4090
+
#define _frac 0x4093
+
#define _fprecip 0x4096
+
#define _fpdiv 0x4099
+
#define _SqRoot 0x409C
+
#define _RndGuard 0x409F
+
#define _RnFx 0x40A2
+
#define _int 0x40A5
+
#define _Round 0x40A8
+
#define _LnX 0x40AB
+
#define _LogX 0x40AE
+
#define _LJNORND 0x40B1 //like _LJRND but no rounding
+
#define _EToX 0x40B4
+
#define _TenX 0x40B7
+
#define _SinCosRad 0x40BA
+
#define _Sin 0x40BD
+
#define _cos 0x40C0
+
#define _Tan 0x40C3
+
#define _SinHCosH 0x40C6
+
#define _TanH 0x40C9
+
#define _cosh 0x40CC
+
#define _SinH 0x40CF
+
#define _ACosRad 0x40D2
+
#define _ATanRad 0x40D5
+
#define _ATan2Rad 0x40D8
+
#define _ASinRad 0x40DB
+
#define _ACos 0x40DE
+
#define _ATan 0x40E1
+
#define _ASin 0x40E4
+
#define _ATan2 0x40E7
+
#define _ATanH 0x40EA
+
#define _ASinH 0x40ED
+
#define _ACosH 0x40F0
+
#define _PtoR 0x40F3
+
#define _RToP 0x40F6
+
#define _HLTimes9 0x40F9
+
#define _CkOP1Cplx 0x40FC
+
#define _CkOP1Real 0x40FF
+
#define _Angle 0x4102
+
#define _COP1Set0 0x4105
+
#define _CpOP4OP3 0x4108
+
#define _Mov9OP2Cp 0x410B
+
#define _AbsO1O2Cp 0x410E
+
#define _cpop1op2 0x4111
+
#define _OP3ToOP4 0x4114
+
#define _OP1ToOP4 0x4117
+
#define _OP2ToOP4 0x411A
+
#define _OP4ToOP2 0x411D
+
#define _OP1ToOP3 0x4123
+
#define _OP5ToOP2 0x4126
+
#define _OP5ToOP6 0x4129
+
#define _OP5ToOP4 0x412C
+
#define _OP1ToOP2 0x412F
+
#define _OP6ToOP2 0x4132
+
#define _OP6ToOP1 0x4135
+
#define _OP4ToOP1 0x4138
+
#define _OP5ToOP1 0x413B
+
#define _OP3ToOP1 0x413E
+
#define _OP6ToOP5 0x4141
+
#define _OP4ToOP5 0x4144
+
#define _OP3ToOP5 0x4147
+
#define _OP2ToOP5 0x414A
+
#define _OP2ToOP6 0x414D
+
#define _OP1ToOP6 0x4150
+
#define _OP1ToOP5 0x4153
+
#define _OP2ToOP1 0x4156
+
#define _Mov11B 0x4159
+
#define _Mov10B 0x415C
+
#define _Mov9B 0x415F
+
#define _mov9B2 0x4162 //points to _mov9B
+
#define _Mov8B 0x4165
+
#define _Mov7B 0x4168
+
#define _Mov7B2 0x416B //same pointer as _Mov7B
+
#define _OP2ToOP3 0x416E
+
#define _OP4ToOP3 0x4171
+
#define _OP5ToOP3 0x4174
+
#define _OP4ToOP6 0x4177
+
#define _Mov9ToOP1 0x417A
+
#define _Mov9OP1OP2 0x417D
+
#define _Mov9ToOP2 0x4180
+
#define _MovFrOP1 0x4183
+
#define _OP4Set1 0x4186
+
#define _OP3Set1 0x4189
+
#define _OP2Set8 0x418C
+
#define _OP2Set5 0x418F
+
#define _OP2SetA 0x4192
+
#define _OP2Set4 0x4195
+
#define _OP2Set3 0x4198
+
#define _OP1Set1 0x419B
+
#define _OP1Set4 0x419E
+
#define _OP1Set3 0x41A1
+
#define _OP3Set2 0x41A4
+
#define _OP1Set2 0x41A7
+
#define _OP2Set2 0x41AA
+
#define _OP2Set1 0x41AD
+
#define _Zero16D 0x41B0
+
#define _OP5Set0 0x41B3
+
#define _OP4Set0 0x41B6
+
#define _OP3Set0 0x41B9
+
#define _OP2Set0 0x41BC
+
#define _OP1Set0 0x41BF
+
#define _OPSet0 0x41C2 //hl = location to write floating point 0
+
#define _ZeroOP1 0x41C5
+
#define _ZeroOP2 0x41C8
+
#define _ZeroOP3 0x41CB
+
#define _ZeroOP 0x41CE
+
#define _ClrLp 0x41D1
+
#define _ShRAcc 0x41D4 //move high nibble in a to low nibble
+
#define _ShLAcc 0x41D7 //move low nibble in a to high nibble
+
#define _ShR18 0x41DA //insert a 0 nibble at high nibble of (hl), shift 9 bytes 1 nibble to right
+
#define _SHR18A 0x41DD //insert low nibble in a at high nibble of (hl), shift 9 bytes 1 nibble to right
+
#define _SHR16 0x41E0 //insert a 0 nibble at highnibble of (hl), shift 8 bytes 1 nibble to right
+
#define _SHR14 0x41E3 //insert low nibble in a at high nibble of (hl), shift 7 bytes 1 nibble to right
+
#define _SHL16 0x41E6 //insert nibble of 0 in low nibble of (hl), shift 8 bytes (before and including (hl)) to the left 1 nibble
+
#define _SHL14 0x41E9 //insert low nibble of a in low nibble of (hl), shift 7 bytes (before and including (hl)) to the left 1 nibble
+
#define _SRDO1 0x41EC
+
#define _SHRDRND 0x41EF
+
#define _MANTPA 0x41F2 //adds the value of a to hl which points to the end of the bcd 7 bytes long
+
#define _ADDPROP 0x41F5 //adds the value of a to hl which points to the end of the bcd (b bytes long)
+
#define _ADDPROPLP 0x41F8 //adds the value of a and carry to hl which points to the end of the bcd (b bytes long)
+
#define _ADD16D 0x41FB //adds the bcd numbers at (hl-7) and (de-7)
+
#define _ADD14D 0x41FE //adds the bcd numbers at (hl-6) and (de-6)
+
#define _SUB16D 0x4201 //subtracts bcd numbers at (hl-7) and (de-7)
+
#define _SUB14D 0x4204 //subtracts bcd numbers at (hl-6) and (de-6)
+
#define _OP2ExOP6 0x4207
+
#define _OP5ExOP6 0x420A
+
#define _OP1ExOP5 0x420D
+
#define _OP1ExOP6 0x4210
+
#define _OP2ExOP4 0x4213
+
#define _OP2ExOP5 0x4216
+
#define _OP1ExOP3 0x4219
+
#define _OP1ExOP4 0x421C
+
#define _OP1ExOP2 0x421F
+
#define _ExLp 0x4222
+
#define _CkOP1C0 0x4225
+
#define _CkOP1FP0 0x4228
+
#define _CkOP2FP0 0x422B
+
#define _PosNo0Int 0x422E
+
#define _CKPosInt 0x4231
+
#define _CKInt 0x4234
+
#define _CKOdd 0x4237
+
#define _CKOP1M 0x423A
+
#define _GETCONOP1 0x423D //a=0 opX=57.29577951308232 (1 radian in degrees)
+
#define _GETCONOP2 0x4240 //a=1 opX=1.570796326794897 (90 deg = pi/2)
+
//a=2 opX=.7853981633974483 (45 deg = pi/4)
+
//a=3 opX=.4342944819032518 (log e)
+
//a=4 opX=3.141592653589800 (pi)
+
//a=5 opX=.0174532925199433 (pi/180 = 1 degree in radians)
+
//a=6 opX=2.302585092994046 (ln 10)
+
#define _PIDIV2 0x4243 //not code, but a pointer to: .db 80h,15h,70h,79h,63h,26h,79h,48h,97h
+
#define _PIDIV4 0x4246 // .db 7fh,78h,53h,98h,16h,33h,97h,44h,83h
+
#define _PItimes2 0x4249 //not code, but a pointer to a 2*pi in non-OP format (no exponent byte)
+
#define _PI 0x424C //not code, but a pointer to a pi in non-OP format (no exponent byte)
+
#define _ExpToHex 0x424F
+
#define _OP1ExpToDec 0x4252
+
#define _ckop2pos 0x4255
+
#define _CkOP1Pos 0x4258
+
#define _ClrOP2S 0x425B
+
#define _ClrOP1S 0x425E
+
#define _FDIV100 0x4261 //op1=op1/100
+
#define _FDIV10 0x4264 //op1=op1/10
+
#define _DecO1Exp 0x4267 //decrease exponent by 1, this can go from 0 to FF
+
#define _INCO1EXP 0x426A //op1=op1*10
+
#define _INCEXP 0x426D //hl points to the floating point's exponent to be multiplied by 10
+
#define _CkValidNum 0x4270
+
#define _GETEXP 0x4273 //a=OP1's exponent, carry set if negative exponent, Z if e0
+
#define _HTimesL 0x4276
+
#define _EOP1NotReal 0x4279
+
#define _ThetaName 0x427C
+
#define _RName 0x427F
+
#define _REGEQNAME 0x4282
+
#define _RECURNNAME 0x4285
+
#define _XName 0x4288
+
#define _YName 0x428B
+
#define _TName 0x428E
+
#define _REALNAME 0x4291
+
#define _SETesTOfps 0x4294 //moves the word at fps to es
+
#define _markTableDirty 0x4297 //looks up table variable and marks VAT entry as "dirty" or selected
+
#define _OP1MOP2EXP 0x429A //op1's exponent = op1's expoent - op2's exponent
+
#define _OP1EXPMinusE 0x429D //a=(op1+1)-e
+
#define _CHKERRBREAK 0x42A0
+
#define _isA2ByteTok 0x42A3
+
#define _GETLASTENTRY 0x42A6
+
#define _GETLASTENTRYPTR 0x42A9
+
#define _REGCLRCHNG 0x42AC
+
#define _RESETWINTOP 0x42AF //takes into account grfsplitoverride and grfsplit flags
+
#define _SetYUp 0x42B2 //loads 7 to port 10... what does this do?
+
#define _SetXUp 0x42B5 //loads 5 to port 10...
+
#define _ISO1NONTLSTorPROG 0x42B8 //checks if op1 contains a list, program, group, or appvar obj name
+
#define _ISO1NONTEMPLST 0x42BB //checks if op1 contains a list (why would op1+1 contain 01, or 0d for a var name?)
+
#define _IS_A_LSTorCLST 0x42BE //checks if a = 1 or 0Dh
+
#define _CHK_HL_999 0x42C1 //returns nc if less than 999, throws invalid dim error if greater than or equal to 999
+
#define _equ_or_newequ 0x42C4
+
#define _errd_op1notpos 0x42C7
+
#define _ErrD_OP1Not_R 0x42CA
+
#define _ErrD_OP1NotPosInt 0x42CD
+
#define _ErrD_OP1_LE_0 0x42D0
+
#define _ErrD_OP1_0 0x42D3
+
#define _FINDSYM_GET_SIZE 0x42D6 //like findsym, but on output hl is the size of the variable
+
#define _STO_STATVAR 0x42D9
+
#define _Rcl_StatVar 0x42DC
+
#define _CkOP2Real 0x42DF
+
#define _GET_X_INDIRECT 0x42E2 //whatever this is, it uses the imathptrX locations
+
#define _MemChk 0x42E5
+
#define _CMPPRGNAMLEN1 0x42E8 //gets variable name length from HL
+
#define _CMPPRGNAMLEN 0x42EB //gets variable name length from OP1
+
#define _FINDPROGSYM 0x42EE //find the program whose name is in op1 (see chkfindsym in SDK)
+
#define _ChkFindSym 0x42F1
+
#define _FindSym 0x42F4
+
#define _InsertMem 0x42F7
+
#define _INSERTMEMA 0x42FA //not sure how this differs from insertmem
+
#define _EnoughMem 0x42FD
+
#define _CMPMEMNEED 0x4300
+
#define _CREATEPVAR4 0x4303
+
#define _CREATEPVAR3 0x4306
+
#define _CREATEVAR3 0x4309
+
#define _CreateCplx 0x430C
+
#define _CreateReal 0x430F
+
#define _CreateTempRList 0x4312
+
#define _CreateRList 0x4315
+
#define _CREATETCLIST 0x4318
+
#define _CreateCList 0x431B
+
#define _CreateTempRMat 0x431E
+
#define _CreateRMat 0x4321
+
#define _CreateTempString 0x4324
+
#define _CreateStrng 0x4327
+
#define _Create0Equ 0x432A
+
#define _CreateTempEqu 0x432D
+
#define _CreateEqu 0x4330
+
#define _CreatePict 0x4333
+
#define _CreateGDB 0x4336
+
#define _CreateProg 0x4339
+
#define _CHKDEL 0x433C
+
#define _CHKDELA 0x433F
+
#define _ADJPARSER 0x4342
+
#define _ADJMATH 0x4345
+
#define _ADJM7 0x4348
+
#define _DELMEMA 0x434B
+
#define _GET_FORM_NUM 0x434E
+
#define _DelVar 0x4351
+
#define _DELVARIO 0x4354
+
#define _DelMem 0x4357
+
#define _DELVAR3D 0x435A
+
#define _DELVAR3C 0x435D
+
#define _DELVAR3DC 0x4360 //may be incorrect
+
#define _IsFixedName 0x4363
+
#define _DelVarEntry 0x4366
+
#define _DataSizeA 0x4369
+
#define _DataSize 0x436C
+
#define _POPMCPLXO1 0x436F
+
#define _POPMCPLX 0x4372
+
#define _MOVCPLX 0x4375
+
#define _popOP5 0x4378
+
#define _popOP3 0x437B
+
#define _popOP1 0x437E
+
#define _PopRealO6 0x4381
+
#define _PopRealO5 0x4384
+
#define _PopRealO4 0x4387
+
#define _PopRealO3 0x438A
+
#define _PopRealO2 0x438D
+
#define _PopRealO1 0x4390
+
#define _PopReal 0x4393
+
#define _FPOPCPLX 0x4396
+
#define _FPOPREAL 0x4399
+
#define _FPOPFPS 0x439C
+
#define _DeallocFPS 0x439F
+
#define _DeallocFPS1 0x43A2
+
#define _AllocFPS 0x43A5
+
#define _AllocFPS1 0x43A8
+
#define _PushRealO6 0x43AB
+
#define _PushRealO5 0x43AE
+
#define _PushRealO4 0x43B1
+
#define _PushRealO3 0x43B4
+
#define _PushRealO2 0x43B7
+
#define _PushRealO1 0x43BA
+
#define _PushReal 0x43BD
+
#define _PushOP5 0x43C0
+
#define _PushOP3 0x43C3
+
#define _PUSHMCPLXO3 0x43C6
+
#define _PushOP1 0x43C9
+
#define _PUSHMCPLXO1 0x43CC
+
#define _PUSHMCPLX 0x43CF
+
#define _ExMCplxO1 0x43D2
+
#define _Exch9 0x43D5
+
#define _CpyTo1FPS11 0x43D8
+
#define _CpyTo2FPS5 0x43DB
+
#define _CpyTo1FPS5 0x43DE
+
#define _CpyTo2FPS6 0x43E1
+
#define _CpyTo1FPS6 0x43E4
+
#define _CpyTo2FPS7 0x43E7
+
#define _CpyTo1FPS7 0x43EA
+
#define _CpyTo1FPS8 0x43ED
+
#define _CpyTo2FPS8 0x43F0
+
#define _CpyTo1FPS10 0x43F3
+
#define _CpyTo1FPS9 0x43F6
+
#define _CpyTo2FPS4 0x43F9
+
#define _CpyTo6FPS3 0x43FC
+
#define _CpyTo6FPS2 0x43FF
+
#define _CpyTo2FPS3 0x4402
+
#define _CPYCTO1FPS3 0x4405
+
#define _CpyTo1FPS3 0x4408
+
#define _CPYFPS3 0x440B
+
#define _CpyTo1FPS4 0x440E
+
#define _CpyTo3FPS2 0x4411
+
#define _CpyTo5FPST 0x4414
+
#define _CpyTo6FPST 0x4417
+
#define _CpyTo4FPST 0x441A
+
#define _CpyTo3FPST 0x441D
+
#define _CpyTo2FPST 0x4420
+
#define _CpyTo1FPST 0x4423
+
#define _CPYFPST 0x4426
+
#define _CpyStack 0x4429
+
#define _CpyTo3FPS1 0x442C
+
#define _CpyTo2FPS1 0x442F
+
#define _CpyTo1FPS1 0x4432
+
#define _CPYFPS1 0x4435
+
#define _CpyTo2FPS2 0x4438
+
#define _CpyTo1FPS2 0x443B
+
#define _CPYFPS2 0x443E
+
#define _CpyO3ToFPST 0x4441
+
#define _CpyO2ToFPST 0x4444
+
#define _CpyO6ToFPST 0x4447
+
#define _CpyO1ToFPST 0x444A
+
#define _CpyToFPST 0x444D
+
#define _CpyToStack 0x4450
+
#define _CpyO3ToFPS1 0x4453
+
#define _CpyO5ToFPS1 0x4456
+
#define _CpyO2ToFPS1 0x4459
+
#define _CpyO1ToFPS1 0x445C
+
#define _CpyToFPS1 0x445F
+
#define _CpyO2ToFPS2 0x4462
+
#define _CpyO3ToFPS2 0x4465
+
#define _CpyO6ToFPS2 0x4468
+
#define _CpyO1ToFPS2 0x446B
+
#define _CpyToFPS2 0x446E
+
#define _CpyO5ToFPS3 0x4471
+
#define _CpyO2ToFPS3 0x4474
+
#define _CpyO1ToFPS3 0x4477
+
#define _CpyToFPS3 0x447A
+
#define _CpyO1ToFPS6 0x447D
+
#define _CpyO1ToFPS7 0x4480
+
#define _CpyO1ToFPS5 0x4483
+
#define _CpyO2ToFPS4 0x4486
+
#define _CpyO1ToFPS4 0x4489
+
#define _ErrNotEnoughMem 0x448C //only if not HL bytes free
+
#define _FPSMINUS9 0x448F
+
#define _HLMINUS9 0x4492
+
#define _ErrOverflow 0x4495
+
#define _ErrDivBy0 0x4498
+
#define _ErrSingularMat 0x449B
+
#define _ErrDomain 0x449E
+
#define _ErrIncrement 0x44A1
+
#define _ErrNon_Real 0x44A4
+
#define _ErrSyntax 0x44A7
+
#define _ErrDataType 0x44AA
+
#define _ErrArgument 0x44AD
+
#define _ErrDimMismatch 0x44B0
+
#define _ErrDimension 0x44B3
+
#define _ErrUndefined 0x44B6
+
#define _ErrMemory 0x44B9
+
#define _ErrInvalid 0x44BC
+
#define _ErrBreak 0x44BF
+
#define _ErrStat 0x44C2
+
#define _ErrSignChange 0x44C5
+
#define _ErrIterations 0x44C8
+
#define _ErrBadGuess 0x44CB
+
#define _ErrTolTooSmall 0x44CE
+
#define _ErrStatPlot 0x44D1
+
#define _ErrLinkXmit 0x44D4
+
#define _JError 0x44D7
+
#define _noErrorEntry 0x44DA
+
#define _pushErrorHandleR 0x44DD
+
#define _popErrorHandleR 0x44E0
+
#define _strcopy 0x44E3
+
#define _strCat 0x44E6
+
#define _isInSet 0x44E9
+
#define _sDone 0x44EC //this should actually be called _SetEquToOP1
+
#define _serrort 0x44EF
+
#define _sNameEq 0x44F2
+
#define _sUnderScr 0x44F5
+
#define _sFAIL 0x44F8
+
#define _sName 0x44FB
+
#define _sOK 0x44FE
+
#define _PutMap 0x4501
+
#define _PutC 0x4504
+
#define _DispHL 0x4507
+
#define _PutS 0x450A
+
#define _putpsb 0x450D
+
#define _PutPS 0x4510
+
#define _wputps 0x4513
+
#define _putbuf 0x4516
+
#define _putbuf1 0x4519
+
#define _wputc 0x451C
+
#define _wputs 0x451F
+
#define _wputsEOL 0x4522 //displays string in HL in big font, and uses ... if too long
+
#define _wdispEOL 0x4525
+
#define _whomeup 0x4528
+
#define _setNumWindow 0x452B //based on current cursor position, sets winleft and similar (for input prompts)
+
#define _newline 0x452E
+
#define _moveDown 0x4531
+
#define _scrollUp 0x4534
+
#define _shrinkWindow 0x4537
+
#define _moveUp 0x453A
+
#define _scrollDown 0x453D
+
#define _ClrLCDFull 0x4540
+
#define _ClrLCD 0x4543
+
#define _ClrScrnFull 0x4546
+
#define _ClrScrn 0x4549
+
#define _ClrTxtShd 0x454C
+
#define _ClrWindow 0x454F
+
#define _EraseEOL 0x4552
+
#define _EraseEOW 0x4555
+
#define _HomeUp 0x4558
+
#define _getcurloc 0x455B
+
#define _VPutMap 0x455E
+
#define _VPutS 0x4561
+
#define _VPutSN 0x4564
+
#define _vputsnG 0x4567
+
#define _vputsnT 0x456A
+
#define _RunIndicOn 0x456D
+
#define _RunIndicOff 0x4570
+
#define _saveCmdShadow 0x4573
+
#define _saveShadow 0x4576
+
#define _rstrShadow 0x4579
+
#define _rstrpartial 0x457C
+
#define _rstrCurRow 0x457F
+
#define _rstrUnderMenu 0x4582
+
#define _rstrbotrow 0x4585
+
#define _saveTR 0x4588 //save top right corner of LCD so 2nd arrow can be displayed, indicinuse flag must be set
+
#define _restoreTR 0x458B //restore top right corner of LCD destroyed by an arrow. indicinuse flag must be set
+
#define _GetKeyPress 0x458E
+
#define _GetTokLen 0x4591 //input: hl=pointer to token. output: a=lenght of string, hl=pointer to string on page 1
+
#define _GET_TOK_STRNG 0x4594 //input: hl=pointer to token. output: op3=string of the token, a=length of string
+
#define _GETTOKSTRING 0x4597 //input: DE=token. output: hl=pointer to the string on page 1
+
#define _PUTBPATBUF2 0x459A
+
#define _PUTBPATBUF 0x459D
+
#define _putbPAT 0x45A0
+
#define _putcCheckScrolL 0x45A3
+
#define _DispEOL 0x45A6
+
#define _fdispEOL 0x45A9
+
#define _MAKEROWCMD 0x45AC
+
#define _TOTOSTRP 0x45AF
+
#define _SETVARNAME 0x45B2
+
#define _DispDone 0x45B5
+
#define _finishoutput 0x45B8
+
#define _curBlink 0x45BB
+
#define _CursorOff 0x45BE
+
#define _hideCursor 0x45C1
+
#define _CursorOn 0x45C4
+
#define _showCursor 0x45C7
+
#define _KeyToString 0x45CA
+
#define _PULLDOWNCHK 0x45CD //something wrong here
+
#define _MenuCatCommon 0x45D0
+
#define _ZIfCatalog 0x45D3
+
#define _ZIfMatrixMenu 0x45D6 //_loadCurCat
+
#define _LoadMenuNum 0x45D9
+
#define _LoadMenuNumL 0x45DC
+
#define _MenCatRet 0x45DF //restores display as though a menu were just cleared (restores some flags too)
+
#define _MenuSwitchContext 0x45E2 //switches to context in A, calls menu hook with A=3, set 5,(iy+16h) for some sort of override to not make switch
+
#define _MenuEdKey 0x45E5
+
#define _BackUpGraphSettings 0x45E8
+
#define _notalphnum 0x45EB
+
#define _SaveSavedFlags 0x45EE
+
#define _SetMenuFlags 0x45F1
+
#define _RstrSomeFlags 0x45F4
+
#define _RstrOScreen 0x45F7 //restores saveSScreen to the display
+
#define _SaveOScreen 0x45FA //stores display in saveSScreen
+
#define _dispListName 0x45FD //_SeeIfErrorCx
+
#define _PrevContext 0x4600
+
#define _CompareContext 0x4603
+
#define _AdrMRow 0x4606
+
#define _AdrMEle 0x4609
+
#define _GETMATOP1A 0x460C
+
#define _GETM1TOOP1 0x460F
+
#define _GETM1TOP1A 0x4612
+
#define _GetMToOP1 0x4615
+
#define _PUTTOM1A 0x4618
+
#define _PUTTOMA1 0x461B
+
#define _PutToMat 0x461E
+
#define _MAT_EL_DIV 0x4621
+
#define _CMATFUN 0x4624
+
#define _ROWECH_POLY 0x4627
+
#define _ROWECHELON 0x462A
+
#define _AdrLEle 0x462D
+
#define _GETL1TOOP1 0x4630
+
#define _GETL1TOP1A 0x4633
+
#define _GetLToOP1 0x4636
+
#define _GETL1TOOP2 0x4639
+
#define _GETL1TOP2A 0x463C
+
#define _GETL2TOP1A 0x463F
+
#define _PUTTOLA1 0x4642
+
#define _PutToL 0x4645
+
#define _MAXMINLST 0x4648
+
#define _LLOW 0x464B
+
#define _LHIGH 0x464E
+
#define _LSUM 0x4651
+
#define CUMSUM 0x4654
+
#define _ToFrac 0x4657
+
#define _SEQSET 0x465A
+
#define _SEQSOLVE 0x465D
+
#define _CMP_NUM_INIT 0x4660
+
#define _BinOPExec 0x4663
+
#define _EXMEAN1 0x4666
+
#define _SET2MVLPTRS 0x4669
+
#define _SETMAT1 0x466C
+
#define _CREATETLIST 0x466F
+
#define _UnOPExec 0x4672
+
#define _ThreeExec 0x4675
+
#define _RESTOREERRNO 0x4678
+
#define _FourExec 0x467B
+
#define _FiveExec 0x467E
+
#define _CPYTO2ES1 0x4681
+
#define _CPYTO6ES1 0x4684
+
#define _CPYTO1ES1 0x4687
+
#define _CPYTO3ES1 0x468A
+
#define _CPYTO3ES2 0x468D
+
#define _CPYTO2ES2 0x4690
+
#define _CPYTO1ES2 0x4693
+
#define _CPYTO2ES3 0x4696
+
#define _CPYTO1ES3 0x4699
+
#define _CPYTO3ES4 0x469C
+
#define _CPYTO6ES3 0x469F
+
#define _CPYTO2ES4 0x46A2
+
#define _CPYTO1ES4 0x46A5
+
#define _CPYTO2ES5 0x46A8
+
#define _CPYTO1ES5 0x46AB
+
#define _CPYTO4EST 0x46AE
+
#define _CPYTO2EST 0x46B1
+
#define _CPYTO1EST 0x46B4
+
#define _CPYTO2ES6 0x46B7
+
#define _CPYTO1ES6 0x46BA
+
#define _CPYTO2ES7 0x46BD
+
#define _CPYTO1ES7 0x46C0
+
#define _CPYTO2ES8 0x46C3
+
#define _CPYTO1ES8 0x46C6
+
#define _CPYTO1ES9 0x46C9
+
#define _CPYTO2ES9 0x46CC
+
#define _CPYTO2ES10 0x46CF
+
#define _CPYTO1ES10 0x46D2
+
#define _CPYTO2ES11 0x46D5
+
#define _CPYTO1ES11 0x46D8
+
#define _CPYTO2ES12 0x46DB
+
#define _CPYTO1ES12 0x46DE
+
#define _CPYTO2ES13 0x46E1
+
#define _CPYTO1ES13 0x46E4
+
#define _CPYTO1ES14 0x46E7
+
#define _CPYTO1ES16 0x46EA
+
#define _CPYTO1ES17 0x46ED
+
#define _CPYTO1ES18 0x46F0
+
#define _CPYTO1ES15 0x46F3
+
#define _CPYTO2ES15 0x46F6
+
#define _CPYO1TOEST 0x46F9
+
#define _CPYO1TOES1 0x46FC
+
#define _CPYO6TOES1 0x46FF
+
#define _CPYO6TOES3 0x4702
+
#define _CPYO1TOES2 0x4705
+
#define _CPYO2TOES2 0x4708
+
#define _CPYO1TOES3 0x470B
+
#define _CPYO1TOES4 0x470E
+
#define _CPYO1TOES5 0x4711
+
#define _CPYO1TOES6 0x4714
+
#define _CPYO1TOES7 0x4717
+
#define _CPYO2TOES4 0x471A
+
#define _CPYO2TOES5 0x471D
+
#define _CPYO2TOES6 0x4720
+
#define _CPYO2TOES7 0x4723
+
#define _CPYO2TOES8 0x4726
+
#define _CPYO2TOES9 0x4729
+
#define _CPYO1TOES8 0x472C
+
#define _CPYO1TOES9 0x472F
+
#define _CPYO1TOES10 0x4732
+
#define _CPYO1TOES11 0x4735
+
#define _CPYO1TOES12 0x4738
+
#define _CPYO1TOES13 0x473B
+
#define _CPYO1TOES14 0x473E
+
#define _CPYO1TOES15 0x4741
+
#define _EVALF3A 0x4744
+
#define _GetK 0x4747 //?
+
#define _setTitle 0x474A
+
#define _dispVarVal 0x474D
+
#define _RecallEd 0x4750 //_setupBuffer
+
#define _createNumEditBuf 0x4753
+
#define _ProcessBufKeys 0x4756 //may be default key processing like [CLEAR], etc. especially for an edit buffer.
+
#define _CallCommon 0x4759
+
#define _CommonKeys 0x475C
+
#define _Leftmore 0x475F
+
#define _fDel 0x4762
+
#define _fClear 0x4765
+
#define _finsDisp 0x4768 //Michael says _FinsDisp02 equ 4768h (something's not right)
+
#define _FinsDisp02 0x476B //_setIndicator
+
#define _closeeditbufnor 0x476E
+
#define _releaseBuffer 0x4771
+
#define _varnameToOP1hl 0x4774
+
#define _nameToOP1 0x4777
+
#define _numPPutAway 0x477A
+
#define _numRedisp 0x477D
+
#define _numError02 0x4780
+
#define _Load_SFont 0x4783
+
#define _SFont_Len 0x4786
+
#define _InitNumVec 0x4789 //inits window settings/table setup/finance solver context (dialog-like)
+
#define _SetXXOP1 0x478C
+
#define _SetXXOP2 0x478F
+
#define _SetXXXXOP2 0x4792
+
#define _UCLineS 0x4795
+
#define _CLine 0x4798
+
#define _CLineS 0x479B
+
#define _XRootY 0x479E
+
#define _YToX 0x47A1
+
#define _ZmStats 0x47A4
+
#define _POINT_STAT_HLP 0x47A7
+
#define _DRAWSPLOT 0x47AA
+
#define _INITNEWTRACEP 0x47AD //A is input here, goes to (8E63h)
+
#define _SPLOTCOORD 0x47B0
+
#define _SPLOTRIGHT 0x47B3
+
#define _SPLOTLEFT 0x47B6
+
#define _CMPBOXINFO 0x47B9
+
#define _NEXTPLOT 0x47BC
+
#define _PREVPLOT 0x47BF
+
#define _CLRPREVPLOT 0x47C2
+
#define _PUT_INDEX_LST 0x47C5
+
#define _GET_INDEX_LST 0x47C8
+
#define _HEAP_SORT 0x47CB
+
#define _StoGDB2 0x47CE
+
#define _RclGDB2 0x47D1
+
#define _CircCmd 0x47D4
+
#define _GrphCirc 0x47D7
+
#define _Mov18B 0x47DA
+
#define _DarkLine 0x47DD
+
#define _ILine 0x47E0
+
#define _IPoint 0x47E3
+
#define _XYRNDBOTH 0x47E6
+
#define _XYRND 0x47E9
+
#define _CheckTOP 0x47EC
+
#define _CheckXY 0x47EF
+
#define _DarkPnt 0x47F2
+
#define _CPointS 0x47F5
+
#define _WTOV 0x47F8
+
#define _VtoWHLDE 0x47FB
+
#define _Xitof 0x47FE
+
#define _YftoI 0x4801
+
#define _XftoI 0x4804
+
#define _TraceOff 0x4807
+
#define _GrRedisp 0x480A
+
#define _GDISPTOKEN 0x480D
+
#define _GRDECODA 0x4810
+
#define _LABCOOR 0x4813 //draws labels with _GRLABELS and X/Y/whatever coordinates, including stat plot stuff
+
#define _COORDISP 0x4816 //draws X & Y coordinates (or R and theta if PolarGC)
+
#define _TMPEQUNOSRC 0x4819
+
#define _GRLABELS 0x481C
+
#define _YPIXSET 0x481F
+
#define _XPIXSET 0x4822
+
#define _COPYRNG 0x4825
+
#define _VALCUR 0x4828 //just sets/resets three flags, enables graph cursor
+
#define _GRPUTAWAY 0x482B
+
#define _RSTGFLAGS 0x482E
+
#define _GRReset 0x4831
+
#define _XYCENT 0x4834
+
#define _ZOOMXYCMD 0x4837
+
#define _CPTDELY 0x483A
+
#define _CPTDELX 0x483D
+
#define _SetFuncM 0x4840
+
#define _SetSeqM 0x4843
+
#define _SetPolM 0x4846
+
#define _SetParM 0x4849
+
#define _ZmInt 0x484C
+
#define _ZmDecml 0x484F
+
#define _ZmPrev 0x4852
+
#define _ZmUsr 0x4855
+
#define _SETUZM 0x4858
+
#define _ZmFit 0x485B
+
#define _ZmSquare 0x485E
+
#define _ZmTrig 0x4861
+
#define _SetXMinMax 0x4864
+
#define _ZooDefault 0x4867
+
#define _GrBufCpy 0x486A
+
#define _DRAWSPLITLINE 0x486D
+
#define _RestoreDisp 0x4870
+
#define _FNDDB 0x4873
+
#define _AllEq 0x4876
+
#define _fndallseleq 0x4879
+
#define _NEXTEQ 0x487C
+
#define _PREVEQ 0x487F
+
#define _BLINKGCUR 0x4882
+
#define _NBCURSOR 0x4885
+
#define _STATMARK 0x4888
+
#define _CHKTEXTCURS 0x488B
+
#define _Regraph 0x488E
+
#define _DOREFFLAGS02 0x4891 //something wrong here
+
#define INITNSEQ 0x4894
+
#define _YRES 0x4897 //_PLOTPTXY2
+
#define _Ceiling 0x489A //ceil(OP1)
+
#define _PutXY 0x489D //draws X & Y coordinates (regardless of PolarGC)
+
#define _PUTEQUNO 0x48A0
+
#define _PDspGrph 0x48A3
+
#define _HorizCmd 0x48A6
+
#define _VertCmd 0x48A9
+
#define _LineCmd 0x48AC
+
#define _UnLineCmd 0x48AF
+
#define _PointCmd 0x48B2
+
#define _PixelTest 0x48B5
+
#define _PixelCmd 0x48B8
+
#define _TanLnF 0x48BB
+
#define _DRAWCMD_INIT 0x48BE
+
#define _DrawCmd 0x48C1
+
#define _SHADECMD 0x48C4
+
#define _InvCmd 0x48C7
+
#define _STATSHADE 0x48CA
+
#define _dspmattable 0x48CD
+
#define _dsplsts 0x48D0
+
#define _closeEditBuf 0x48D3
+
#define _parseEditBuf 0x48D6
+
#define _putsm 0x48D9
+
#define _DspCurTbl 0x48DC
+
#define _DSPGRTBL 0x48DF
+
#define _zeroTemplate 0x48E2
+
#define _settblrefs 0x48E5
+
#define _dispTblBot 0x48E8
+
#define _DispTblTop 0x48EB
+
#define _dispTblbody 0x48EE
+
#define _VPUTBLANK 0x48F1
+
#define _TBLTRACE 0x48F4
+
#define _dispListNameY 0x48F7
+
#define _CurNameLength 0x48FA
+
#define _NameToBuf 0x48FD
+
#define _jpromptcursor 0x4900
+
#define _BufLeft 0x4903
+
#define _BufRight 0x4906
+
#define _bufInsert 0x4909
+
#define _bufQueueChar 0x490C
+
#define _BufReplace 0x490F
+
#define _BufDelete 0x4912
+
#define _BUFPEEK 0x4915
+
#define _BUFPEEK1 0x4918
+
#define _BUFPEEK2 0x491B
+
#define _BUFPEEK3 0x491E
+
#define _BufToBtm 0x4921
+
#define _setupEditEqu 0x4924
+
#define _BufToTop 0x4927
+
#define _isEditFull 0x492A
+
#define _IsEditEmpty 0x492D
+
#define _IsAtTop 0x4930
+
#define _IsAtBtm 0x4933
+
#define _BufClear 0x4936
+
#define _JcursorFirst 0x4939
+
#define _JcursorLast 0x493C
+
#define _CursorLeft 0x493F
+
#define _cursorRight 0x4942
+
#define _cursorUp 0x4945
+
#define _CursorDown 0x4948
+
#define _cursorToOffset 0x494B
+
#define _InsDisp 0x494E
+
#define _FDISPBOL1 0x4951
+
#define _FDISPBOL 0x4954
+
#define _DispEOW 0x4957
+
#define _DispHead 0x495A
+
#define _DispTail 0x495D
+
#define _PutTokString 0x4960
+
#define _setupEditCmd 0x4963
+
#define _setEmptyEditEqu 0x4966
+
#define _SetEmptyEditPtr 0x4969
+
#define _CloseEditEqu 0x496C
+
#define _GetPrevTok 0x496F
+
#define _getkey 0x4972
+
#define _canIndic 0x4975
+
#define _LCD_DRIVERON 0x4978
+
#define _DFMIN2 0x497B
+
#define _formDisp 0x497E //this is directly what the OS calls on the homescreen to display a result
+
#define _formMatrix 0x4981
+
#define _wscrollLeft 0x4984
+
#define _wscrollUp 0x4987
+
#define _wscrollDown 0x498A
+
#define _wscrollRight 0x498D
+
#define _FormEReal 0x4990
+
#define _formERealTOK 0x4993
+
#define _FormDCplx 0x4996
+
#define _FormReal 0x4999
+
#define _formScrollUp 0x499C
+
#define _setwinabove 0x499F
+
#define _disarmScroll 0x49A2
+
#define _OP1toEdit 0x49A5
+
#define _MinToEdit 0x49A8
+
#define _rclVarToEdit 0x49AB
+
#define _rclVarToEditPtR 0x49AE
+
#define _RCLENTRYTOEDIT 0x49B1
+
#define _rclToQueue 0x49B4 //recalls bytes at OP1 into edit buffer
+
#define _FORMTOTOK 0x49B7
+
#define _DISP_INTERVAL 0x49BA
+
#define _DisplstName 0x49BD
+
#define _dispSLstNameHL 0x49C0
+
#define _EditEqu 0x49C3
+
#define _closeEquField 0x49C6
+
#define _AutoSelect 0x49C9
+
#define _DISPYEOS 0x49CC
+
#define _dispNumEOS 0x49CF
+
#define _setupdispeq 0x49D2
+
#define _DispForward 0x49D5
+
#define _DispYPrompt2 0x49D8
+
#define _stringwidth 0x49DB
+
#define _dispErrorScreen 0x49DE //displays top row of error screen (error message)
+
#define _POPCX 0x49E1 //moves 14 bytes at cxPrev to cxMain, 15th byte goes to replace appflags
+
#define _loadnoeentry 0x49E4
+
#define _SaveScreen 0x49E7
+
#define _RETSCREEN 0x49EA
+
#define _RetScreenErr 0x49ED
+
#define _CheckSplitFlag 0x49F0
+
#define _SolveRedisp 0x49F3
+
#define _SolveDisp 0x49F6
+
#define _itemName 0x49F9
+
#define _SetNorm_Vals 0x49FC
+
#define _SetYOffset 0x49FF //sets up YOffset and next 4 bytes (possibly specialized for the table editor)
+
#define _ConvKeyToTok 0x4A02
+
#define _ConvFCKeyToTok 0x4A05
+
#define _ConvFEKeyToTok 0x4A08
+
#define _TokToKey 0x4A0B
+
#define _SendSkipExitPacket 0x4A0E
+
#define _GETVARCMD 0x4A11
+
#define _SendVarCmd 0x4A14
+
#define _SendScreenshot 0x4A17
+
#define keyscnlnk 0x4A1A
+
#define _DeselectAllVars 0x4A1D
+
#define _DelRes 0x4A20
+
#define _ConvLcToLr 0x4A23
+
#define _RedimMat 0x4A26
+
#define _IncLstSize 0x4A29
+
#define _InsertList 0x4A2C
+
#define _dellistel 0x4A2F
+
#define _EditProg 0x4A32
+
#define _CloseProg 0x4A35
+
#define _ClrGraphRef 0x4A38
+
#define _FixTempCnt 0x4A3B
+
#define _SAVEDATA 0x4A3E
+
#define _RESTOREDATA 0x4A41
+
#define _FindAlphaUp 0x4A44
+
#define _FindAlphaDn 0x4A47
+
#define _CmpSyms 0x4A4A
+
#define _CREATETEMP 0x4A4D
+
#define _CleanAll 0x4A50
+
#define _MoveToNextSym 0x4A53 //input: hl=pointer to type byte of VAT entry. output: hl = pointer to next entry's type byte
+
#define _ConvLrToLc 0x4A56
+
#define _TblScreenDn 0x4A59 //something is not right here
+
#define _TblScreenUp 0x4A5C
+
#define _SCREENUP 0x4A5F
+
#define _ScreenUpDown 0x4A62
+
#define _ZifRclHandler 0x4A65
+
#define _zifrclkapp 0x4A68
+
#define _rclkeyRtn 0x4A6B
+
#define _RCLKEY 0x4A6B
+
#define _RCLREGEQ_CALL 0x4A6E
+
#define _RCLREGEQ 0x4A71
+
#define _initNamePrompt 0x4A74
+
#define _NamePrompt2 0x4A77
+
#define _CATALOGCHK 0x4A7A
+
#define _clrTR 0x4A7D
+
#define _QUAD 0x4A80
+
#define _GRAPHQUAD 0x4A83
+
#define _BC2NOREAL 0x4A86
+
#define _ErrNonReal_FPST_FPS1 0x4A89
+
#define _ErrNonReal 0x4A8C //ERR:DATA TYPE if top B numers from FPS are non-real
+
#define _WRITE_TEXT 0x4A8F
+
#define _FORSEQINIT 0x4A92
+
#define _GRPHPARS 0x4A95
+
#define _PLOTPARS 0x4A98
+
#define _ParseInp 0x4A9B
+
#define _PARSEOFF 0x4A9E
+
#define _PARSESCAN 0x4AA1
+
#define _GETPARSE 0x4AA4
+
#define _SAVEPARSE 0x4AA7
+
#define _InitPFlgs 0x4AAA
+
#define _CKENDLINERR 0x4AAD
+
#define _OP2Set60 0x4AB0
+
#define _GETSTATPTR 0x4AB3
+
#define _CMP_STATPTR 0x4AB6
+
#define _VARSYSADR 0x4AB9
+
#define _StoSysTok 0x4ABC
+
#define _StoAns 0x4ABF
+
#define _StoTheta 0x4AC2
+
#define _StoR 0x4AC5
+
#define _StoY 0x4AC8
+
#define _StoN 0x4ACB
+
#define _StoT 0x4ACE
+
#define _StoX 0x4AD1
+
#define _StoOther 0x4AD4
+
#define _RclAns 0x4AD7
+
#define _RclY 0x4ADA
+
#define _RclN 0x4ADD
+
#define _RclX 0x4AE0
+
#define _RclVarSym 0x4AE3
+
#define _RclSysTok 0x4AE6
+
#define _StMatEl 0x4AE9
+
#define _STLSTVECEL 0x4AEC
+
#define _ConvOP1 0x4AEF
+
#define _Find_Parse_Formula 0x4AF2
+
#define _PARSE_FORMULA 0x4AF5
+
#define _FetchQuotedString 0x4AF8
+
#define _FetchNumLine 0x4AFB
+
#define _ParseNameTokens 0x4AFE
+
#define _ParseInpGraph 0x4B01 //same as _ParseInp except 3,(iy+1Fh) is graph/split screen override, or something
+
#define _ParseInpGraphReset 0x4B04 //_ParseInpGraph except zeroes out iy+6/7, resets 3,(iy+1Ah) & 0,(iy+1Fh), fmtFlags->fmtOverride, parse within ParseInp?
+
#define _ParseInpLastEnt 0x4B07 //ParseInp on program 05h,23h,00h
+
#define _ErrOnCertainTypes 0x4B0A //ERR:DATA TYPE if A is one of a couple of values...subroutine in ParseInp, somehow
+
#define _CreatePair 0x4B0D
+
#define _PUSHNUM 0x4B10
+
#define _INCCURPCERREND 0x4B13
+
#define _ERREND 0x4B16
+
#define _COMMAERRF 0x4B19
+
#define _COMMAERR 0x4B1C
+
#define _STEQARG2 0x4B1F
+
#define _STEQARG 0x4B22
+
#define _INPARG 0x4B25
+
#define _STEQARG3 0x4B28
+
#define _NXTFETCH 0x4B2B
+
#define _CKFETCHVAR 0x4B2E
+
#define _FETCHVARA 0x4B31
+
#define _FETCHVAR 0x4B34
+
#define _CKENDLIN 0x4B37 //gets parse byte in A and then _CKENDEXP
+
#define _CKENDEXP 0x4B3A //checks A for 3Eh or 3Fh
+
#define _CKPARSEND 0x4B3D
+
#define _STOTYPEARG 0x4B40
+
#define _ConvDim 0x4B43
+
#define _ConvDim00 0x4B46
+
#define _AHEADEQUAL 0x4B49
+
#define _PARSAHEADS 0x4B4C
+
#define _PARSAHEAD 0x4B4F
+
#define _AnsName 0x4B52
+
#define _STOCMPREALS 0x4B55
+
#define _GETDEPTR 0x4B58
+
#define _PUSH2BOPER 0x4B5B //push the value in bc onto the operator stack
+
#define _POP2BOPER 0x4B5E //pop 2 bytes on the operator stack to bc
+
#define _PUSHOPER 0x4B61 //push the value in a onto the operator stack
+
#define _POPOPER 0x4B64 //pop 1 byte on the operator stack to a
+
#define _FIND_E_UNDEF 0x4B67
+
#define _STTMPEQ 0x4B6A
+
#define _FINDEOL 0x4B6D
+
#define _BRKINC 0x4B70
+
#define _INCFETCH 0x4B73
+
#define _CURFETCH 0x4B76
+
#define _Random 0x4B79
+
#define _StoRand 0x4B7C
+
#define _RandInit 0x4B7F
+
#define _resetStacks 0x4B82 //(onsp)->(errsp), (fpbase)->(fps), (opbase)->(ops)
+
#define _Factorial 0x4B85
+
#define _YONOFF 0x4B88
+
#define _EQSELUNSEL 0x4B8B
+
#define _ITSOLVER 0x4B8E
+
#define _GRITSOLVER 0x4B91
+
#define _ITSOLVERB 0x4B94
+
#define _ITSOLVERNB 0x4B97
+
#define _ExTest_INT 0x4B9A
+
#define _DIST_FUN 0x4BAD
+
#define _LogGamma 0x4BA0
+
#define _OneVar 0x4BA3
+
#define _ONEVARS_0 0x4BA6
+
#define _ORDSTAT 0x4BA9
+
#define _INITSTATANS2 0x4BAC
+
#define _ANOVA_SPEC 0x4BAF
+
#define _OutputExpr 0x4BB2
+
#define _CentCursor 0x4BB5
+
#define _TEXT 0x4BB8
+
#define _FINISHSPEC 0x4BBB
+
#define _TRCYFUNC 0x4BBE
+
#define _RCL_SEQ_X 0x4BC1
+
#define _RCLSEQ2 0x4BC4
+
#define _GRPPutAway 0x4BC7
+
#define _CKVALDELX 0x4BCA
+
#define _CKVALDELTA 0x4BCD
+
#define _GrBufClr 0x4BD0
+
#define _GRBUFCPY_V 0x4BD3
+
#define _FNDSELEQ 0x4BD6
+
#define _CLRGRAPHXY 0x4BD9
+
#define _NEDXT_Y_STYLE 0x4BDC
+
#define _PLOTPT 0x4BDF
+
#define _NEWINDEP 0x4BE2
+
#define _Axes 0x4BE5
+
#define _setPenX 0x4BE8
+
#define _setPenY 0x4BEB
+
#define _setPenT 0x4BEE
+
#define _TAN_EQU_DISP 0x4BF1
+
#define _PutAns 0x4BF4
+
#define _DispOP1A 0x4BF7
+
#define _MATHTANLN 0x4BFA
+
#define _ENDDRAW 0x4BFD
+
#define _SetTblGraphDraw 0x4C00
+
#define _StartDialog 0x4C03
+
#define _DialogInit 0x4C06
+
#define _GetDialogNumOP1 0x4C09
+
#define _SetDialogNumOP1 0x4C0C
+
#define _GetDialogNumHL 0x4C0F
+
#define _ErrArgumentO123 0x4C12 //ERR:ARGUMENT if OP2>OP1 or OP1>OP3
+
#define _SetDialogKeyOverride 0x4C15
+
#define _ResDialogKeyOverride 0x4C18
+
#define _ForceDialogKeypress 0x4C1B
+
#define _DialogStartGetKey 0x4C1E
+
#define _StartDialog_Override 0x4C21
+
#define _CallDialogCallback 0x4C24
+
#define _SetDialogCallback 0x4C27
+
#define _ResDialogCallback 0x4C2A
+
#define _CopyDialogNum 0x4C2D
+
#define _MemClear 0x4C30
+
#define _MemSet 0x4C33
+
#define _ReloadAppEntryVecs 0x4C36
+
#define _PointOn 0x4C39
+
#define _ExecuteNewPrgm 0x4C3C
+
#define _StrLength 0x4C3F
+
#define _VPutMapRec 0x4C42
+
#define _getRomPage 0x4C45
+
#define _FindAppUp 0x4C48
+
#define _FindAppDn 0x4C4B
+
#define _FindApp 0x4C4E
+
#define _ExecuteApp 0x4C51
+
#define _MonReset 0x4C54
+
#define _ClearParseVar 0x4C57
+
#define _SetParseVarProg 0x4C5A
+
#define _isContextKey 0x4C5D
+
#define _IBounds 0x4C60
+
#define _IOffset 0x4C63
+
#define _DrawCirc2 0x4C66
+
#define _CanAlphIns 0x4C69
+
#define cxRedisp 0x4C6C
+
#define _GetBaseVer 0x4C6F
+
#define _OPSet0DE 0x4C72 //loads a floating point 0 to location de
+
#define _AppGetCbl 0x4C75
+
#define _AppGetCalc 0x4C78
+
#define _SaveDisp 0x4C7B
+
#define _SetIgnoreKey 0x4C7E //set 1,(iy+28h) / ret
+
#define _SetSendThisKeyBack 0x4C81 //set 2,(iy+28h) / ld (kbdKey),a / ret
+
#define _DisableApd 0x4C84
+
#define _EnableApd 0x4C87 //set apdable,(iy+apdflags)
+
#define _JForceCmdNoChar2 0x4C8A //2.41 at least
+
#define _set2IY34 0x4C8D //set 2,(iy+34) / ret
+
#define _forcecmd 0x4C90
+
#define _ApdSetup 0x4C93
+
#define _Get_NumKey 0x4C96
+
#define _AppSetup 0x4C99 //or _AppCleanup, or something
+
#define _HandleLinkKeyActivity 0x4C9C
+
#define _JForceCmdNoChar3 0x4C9F //2.41 at least
+
#define _ReleaseSedit 0x4CA2
+
#define _initsmalleditline 0x4CA5
+
#define _startsmalledit 0x4CA8
+
//4CABh
+
#define _SGetTokString 0x4CAE
+
#define _LoadPattern 0x4CB1
+
#define _SStringLength 0x4CB4
+
#define _RestorePenCol 0x4CB7
+
//4CBAh
+
#define _DoNothing 0x4CBD
+
#define _ForceSmallEditReturn 0x4CC0
+
//4CC3h ;saves context
+
//4CC6h
+
//4CC9h
+
//4CCCh
+
#define _VEraseEOL 0x4CCF
+
//4CD2h
+
//4CD5h
+
#define _GoToErr 0x4CD8
+
#define _initsmalleditBox 0x4CDB
+
//4CDEh
+
#define _EmptyHook 0x4CE1
+
#define _ForceSmallEditReturn2 0x4CE4
+
//4CE7h ;same as 4CC3h
+
//4CEAh
+
#define _ClearRow 0x4CED
+
//4CF0h
+
//4CF3h
+
//4CF6h
+
//4CF9h
+
//4CFCh
+
//4CFFh
+
//4D02h
+
//4D05h
+
//4D08h
+
//4D0Bh
+
//4D0Eh
+
//4D11h
+
//4D14h
+
//4D17h
+
//4D1Ah
+
//4D1Dh
+
//4D20h
+
//4D23h
+
#define _AppScreenUpDown 0x4D26 //shifts screen up/down, A is LCD row, H is number of lines to shift, (OP1)-(OP1+3) are something
+
#define _AppScreenUpDown1 0x4D29 //shifts screen up/down, but really no clue what the inputs are (all registers and (OP1)-(OP1+3))
+
//4D2Ch
+
#define _initsmalleditlinevar 0x4D2F
+
#define _initsmalleditlineop1 0x4D32
+
#define _initsmalleditboxvar 0x4D35
+
#define _initsmalleditboxop1 0x4D38
+
//4D3Bh
+
#define _RestartDialog 0x4D3E
+
#define _ErrCustom1 0x4D41
+
#define _ErrCustom2 0x4D44
+
#define _AppStartMouse 0x4D47
+
#define _AppStartMouseNoSetup 0x4D4A
+
#define _AppMouseGetKey 0x4D4D
+
#define _AppDispMouse 0x4D50
+
#define _AppEraseMouse 0x4D53
+
#define _AppSetupMouseMem 0x4D56
+
#define _GetDispRowOffset 0x4D59 //HL=A*12 (intended for A to be row and HL becomes offset into plotSScreen)
+
#define _ClearRect 0x4D5C
+
#define _InvertRect 0x4D5F
+
#define _FillRect 0x4D62
+
#define _AppUpdateMouse 0x4D65
+
#define _AppDispPrevMouse 0x4D68 //might bring previous keypress's movement to current coordinates with flags to not display
+
//4D6Bh ;restores some cursor flags and stuff
+
#define _initcellbox 0x4D6E
+
#define _drawcell 0x4D71
+
//4D74h
+
#define _invertcell 0x4D77
+
#define _setcelloverride 0x4D7A
+
#define _DrawRectBorder 0x4D7D
+
#define _ClearCell 0x4D80
+
#define _covercell 0x4D83
+
#define _EraseRectBorder 0x4D86
+
#define _FillRectPattern 0x4D89
+
#define _DrawRectBorderClear 0x4D8C
+
//4D8Fh ;mouse subroutine
+
//4D92h
+
#define _VerticalLine 0x4D95
+
#define _IBoundsFull 0x4D98
+
#define _DisplayImage 0x4D9B
+
//4D9Eh ;does something dumb with ports 10h/11h
+
//4DA1h ;mouse subroutine
+
#define _AppUpdateMouseCoords 0x4DA4
+
#define _ShiftBitsLeft 0x4DA7 //mouse subroutine, shifts B bits left from DE sprite to HL one
+
//4DAAh ;mouse subroutine
+
//4DADh ;mouse subroutine
+
//4DB0h ;mouse subroutine
+
//4DB3h ;mouse subroutine
+
//4DB6h ;mouse subroutine
+
//4DB9h ;mouse subroutine
+
//4DBCh ;mouse subroutine
+
#define _AppUpdateMouseRow 0x4DBF
+
#define _AppDrawMouse 0x4DC2 //set 2,(iy+2Ch) for AppEraseMouse, reset for AppDispMouse
+
#define _AppDrawMouseDirect 0x4DC5 //pretty much _AppDrawMouse, but you pass LCD column in A
+
#define _CPoint 0x4DC8
+
#define _DeleteApp 0x4DCB
+
#define _AppUpdateMouseXY 0x4DCE
+
#define _setmodecellflag 0x4DD1
+
#define _resetmodecellflag 0x4DD4
+
#define _ismodecellset 0x4DD7
+
#define _getmodecellflag 0x4DDA
+
//4DDDh
+
#define _CellBoxManager 0x4DE0
+
#define _startnewcell 0x4DE3
+
//4DE6h
+
#define _CellCursorHandle 0x4DE9
+
//4DECh
+
//4DEFh
+
#define _ClearCurCell 0x4DF2
+
#define _drawcurcell 0x4DF5
+
#define _invertcurcell 0x4DF8
+
#define _covercurcell 0x4DFB
+
#define _BlinkCell 0x4DFE
+
#define _BlinkCellNoLookUp 0x4E01
+
#define _BlinkCurCell 0x4E04
+
#define _BlinkCellToOn 0x4E07
+
#define _BlinkCellToOnNoLookUp 0x4E0A
+
#define _BlinkCurCellToOn 0x4E0D
+
#define _BlinkCellToOff 0x4E10
+
#define _BlinkCellToOffNoLookUp0x4E13
+
#define _BlinkCurCellToOff 0x4E16
+
#define _getcurmodecellflag 0x4E19
+
//4E1Ch
+
#define _startsmalleditreturn 0x4E1F
+
//4E22h
+
//4E25h
+
#define _CellkHandle 0x4E28
+
#define _errchkalphabox 0x4E2B
+
//4E2Eh
+
//4E31h
+
//4E34h
+
//4E37h
+
#define _eraseallcells 0x4E3A
+
#define _iscurmodecellset 0x4E3D
+
//4E40h
+
#define _initalphabox 0x4E43
+
//4E46h
+
//4E49h
+
#define _drawblnkcell 0x4E4C
+
#define _ClearBlnkCell 0x4E4F
+
#define _invertblnkcell 0x4E52
+
#define _AppMouseForceKey 0x4E55
+
#define _AppSetupMouseMemCoords 0x4E58 //this is _AppSetupMouseMem except you pass starting coordinates in HL
+
#define _AppMoveMouse 0x4E5B //this is _AppMouseForceKey and then updating coordinates
+
#define _GetStringInput 0x4E5E
+
#define _GetStringInput2 0x4E61
+
#define _WaitEnterKeyValue 0x4E64
+
#define _HorizontalLine 0x4E67
+
#define _CreateAppVar 0x4E6A
+
#define _CreateProtProg 0x4E6D
+
#define _CreateVar 0x4E70
+
#define _AsmComp 0x4E73
+
#define _GetAsmSize 0x4E76
+
#define _SquishPrgm 0x4E79
+
#define _ExecutePrgm 0x4E7C
+
#define _ChkFindSymAsm 0x4E7F
+
#define _ParsePrgmName 0x4E82
+
#define _CSub 0x4E85
+
#define _CAdd 0x4E88
+
#define _CSqaure 0x4E8B
+
#define _CMult 0x4E8E
+
#define _CRecip 0x4E91
+
#define _CDiv 0x4E94
+
#define _CAbs 0x4E97
+
#define _AddSquares 0x4E9A
+
#define _CSqRoot 0x4E9D
+
#define _CLN 0x4EA0
+
#define _CLog 0x4EA3
+
#define _CTenX 0x4EA6
+
#define _CEtoX 0x4EA9
+
#define _CXrootY 0x4EAC
+
//4EAFh
+
#define _CYtoX 0x4EB2
+
#define _InvertNonReal 0x4EB5
+
#define _CplxMult 0x4EB8
+
#define _CplxDiv 0x4EBB
+
#define _CplxTrunc 0x4EBE
+
#define _CplxFrac 0x4EC1
+
#define _CplxFloor 0x4EC4
+
#define _SendHeaderPacket 0x4EC7
+
#define _CancelTransmission 0x4ECA
+
#define _SendScreenContents 0x4ECD
+
#define _SendRAMVarData 0x4ED0
+
#define _SendRAMCmd 0x4ED3
+
#define _SendPacket 0x4ED6
+
#define _ReceiveAck 0x4ED9
+
#define _Send4BytePacket 0x4EDC
+
#define _SendDataByte 0x4EDF
+
#define _Send4Bytes 0x4EE2
+
#define _SendAByte 0x4EE5
+
#define _SendCByte 0x4EE8
+
#define _GetSmallPacket 0x4EEB
+
#define _GetDataPacket 0x4EEE
+
#define _SendAck 0x4EF1
+
#define _Get4Bytes 0x4EF4
+
#define _Get3Bytes 0x4EF7
+
#define _Rec1stByte 0x4EFA
+
#define _Rec1stByteNC 0x4EFD
+
#define _ContinueGetByte 0x4F00
+
#define _RecAByteIO 0x4F03
+
#define _ReceiveVar 0x4F06
+
#define _ReceiveVarDataExists 0x4F09
+
#define _ReceiveVarData 0x4F0C
+
#define _SrchVLstUp 0x4F0F
+
#define _SrchVLstDn 0x4F12
+
#define _SendVariable 0x4F15
+
#define _Get4BytesCursor 0x4F18
+
#define _Get4BytesNC 0x4F1B
+
#define _Convert85List 0x4F1E
+
#define _SendDirectoryContents 0x4F21
+
#define _SendReadyPacket 0x4F24
+
#define _Convert85Real 0x4F27
+
#define _ret_6 0x4F2A
+
#define _SendCertificate 0x4F2D //sends certificate in header/data packets, Flash must be unlocked, used with sending an application in LINK menu
+
#define _SendApplication 0x4F30
+
#define _SendOSHeader 0x4F33
+
#define _SendOSPage 0x4F36
+
#define _SendOS 0x4F39
+
#define _FlashWriteDisable 0x4F3C
+
#define _SendCmd 0x4F3F
+
#define _SendOSValidationData 0x4F42
+
#define _Disp 0x4F45
+
#define _SendGetkeyPress 0x4F48
+
#define _RejectCommand 0x4F4B
+
#define _CheckLinkLines 0x4F4E
+
#define _GetHookByte 0x4F51
+
#define _GetBytePaged 0x4F54
+
#define _cursorhook 0x4F57
+
#define _call_library_hook 0x4F5A
+
#define _call_rawkey_hook 0x4F5D
+
#define _setCursorHook 0x4F60 //enable cursor hook
+
#define _EnableLibraryHook 0x4F63
+
#define _SetGetKeyHook 0x4F66
+
#define _ClrCursorHook 0x4F69
+
#define _DisableLibraryHook 0x4F6C
+
#define _ClrRawKeyHook 0x4F6F
+
#define _ResetHookBytes 0x4F72
+
#define _AdjustAllHooks 0x4F75
+
#define _getkeyhook 0x4F78
+
#define _SetGetcscHook 0x4F7B
+
#define _ClrGetKeyHook 0x4F7E
+
#define _call_linkactivity_hook 0x4F81
+
#define _EnableLinkActivityHook 0x4F84
+
#define _DisableLinkHook 0x4F87
+
#define _GetSmallPacket2 0x4F8A
+
#define _EnableCatalog2Hook 0x4F8D
+
#define _DisableCatalog2Hook 0x4F90
+
#define _EnableLocalizeHook 0x4F93
+
#define _DisableLocalizeHook 0x4F96
+
#define _SetTokenHook 0x4F99
+
#define _ClearTokenHook 0x4F9C
+
//4F9Fh ld hl,92c6 / ld a,(92c5) / res 2,a / cp (hl) / ret
+
//4FA2h hl=11*(92fc)+92c9 / ld a,(hl) / and Fh / cp 2 / ret ; I can almost guarantee this is stat plot related
+
#define _DispListElementOffLA 0x4FA5
+
#define _Bit_VertSplit 0x4FA8
+
#define _SetHomescreenHook 0x4FAB
+
#define _ClrHomeScreenHook 0x4FAE
+
#define _SetWindowHook 0x4FB1
+
#define _DisableWindowHook 0x4FB4
+
#define _SetGraphModeHook 0x4FB7
+
#define _DisableGraphHook 0x4FBA
+
#define _ParseAndStoreSysVar 0x4FBD
+
#define _DisplayEditSysVar 0x4FC0
+
#define _JForceWindowSettings 0x4FC3
+
#define _DelVarArc 0x4FC6
+
#define _DelVarNoArc 0x4FC9
+
#define _SetAllPlots 0x4FCC
+
#define _SetYeditHook 0x4FCF
+
#define _DisableYEquHook 0x4FD2
+
#define _JForceYEqu 0x4FD5
+
#define _Arc_Unarc 0x4FD8 //checks for low battery
+
#define _ArchiveVar 0x4FDB //set 0,(iy+24h) to check for low battery first
+
#define _UnarchiveVar 0x4FDE
+
#define _DialogKeyHook 0x4FE1 //rawkey hook used by OS for dialog context
+
#define _SetFontHook 0x4FE4
+
#define _ClrFontHook 0x4FE7
+
#define _SetRegraphHook 0x4FEA
+
#define _DisableRegraphHook 0x4FED
+
#define _RunGraphingHook 0x4FF0
+
#define _SetTraceHook 0x4FF3
+
#define _DisableTraceHook 0x4FF6
+
#define _RunTraceHook 0x4FF9
+
#define _NDeriv 0x4FFC
+
#define _PolarDerivative 0x4FFF
+
#define _JForceGraphNoKey 0x5002
+
#define _JForceGraphKey 0x5005
+
#define _PowerOff 0x5008
+
#define _GetKeyRetOff 0x500B //same as getkey, only returns kOff if 2nd+on is pressed
+
#define _FindGroupSym 0x500E
+
#define _FillBasePageTable 0x5011
+
#define _ArcChk 0x5014
+
#define _FlashToRam 0x5017
+
#define _LoadDEIndPaged 0x501A
+
#define _LoadCIndPaged 0x501D
+
#define _SetupPagedPtr 0x5020
+
#define _PagedGet 0x5023
+
#define _SetParserHook 0x5026
+
#define _ClearParserHook 0x5029
+
#define _SetAppChangeHook 0x502C
+
#define _ClearAppChangeHook 0x502F
+
#define _EnableGraphicsHook 0x5032
+
#define _DisableGraphicsHook 0x5035
+
#define _IPointNoGraphicsHook 0x5038
+
#define _ILineNoHook 0x503B
+
//503Eh
+
#define _DeleteTempPrograms 0x5041
+
#define _EnableCatalog1Hook 0x5044
+
#define _DisableCatalog1Hook 0x5047
+
#define _EnableHelpHook 0x504A
+
#define _DisableHelpHook 0x504D
+
#define _DispCatalogEnd 0x5050
+
#define _GetMenuKeypress 0x5053
+
#define _GetCatalogItem 0x5056
+
#define _RunCatalog2Hook 0x5059
+
#define _RunCatalog1Hook 0x505C
+
//505Fh
+
//5062h
+
#define _dispMenuTitle 0x5065
+
//5068h
+
#define _EnablecxRedispHook 0x506B
+
#define _DisablecxRedispHook 0x506E
+
#define _BufCpy 0x5071
+
#define _BufClr 0x5074
+
#define _UnOPExec2 0x5077
+
#define _BinOPExec2 0x507A
+
#define _LoadMenuB 0x507D //clears screen and loads menu from B, plus a couple flag changes
+
#define _DisplayVarInfo 0x5080
+
#define _SetMenuHook 0x5083
+
#define _ClearMenuHook 0x5086
+
#define _getBCOffsetIX 0x5089
+
#define _GetBCOffsetIX2 0x508C
+
#define _ForceFullScreen 0x508F
+
#define _GetVariableData 0x5092
+
#define _FindSwapSector 0x5095
+
#define _CopyFlashPage 0x5098
+
#define _FindAppNumPages 0x509B
+
#define _HLMinus5 0x509E
+
#define _SendArcPacket 0x50A1
+
#define _ForceGraphKeypress 0x50A4
+
#define _DoNothing3 0x50A7
+
#define _FormBase 0x50AA
+
//50ADh
+
#define _IsFragmented 0x50B0
+
#define _Chk_Batt_Low 0x50B3
+
#define _Chk_Batt_Low_2 0x50B6
+
#define _Arc_Unarc2 0x50B9 //identical to _Arc_Unarc, except you can choose to res 0,(iy+24h) to skip low battery check
+
#define _GetAppBasePage 0x50BC //input: a=one of an app's pages. output: a=app's first page
+
#define _SetExSpeed 0x50BF
+
#define _RclExit 0x50C2
+
#define _GroupAllVars 0x50C5
+
#define _UngroupVar 0x50C8
+
#define _WriteToFlash 0x50CB //ReceiveApplication or something like that on OSes below 2.40
+
#define _SetSilentLinkHook 0x50CE
+
#define _DisableSilentLinkHook 0x50D1
+
#define _TwoVarSet 0x50D4
+
#define _ExecClassCToken 0x50D7
+
#define _ExecClass3Token 0x50DA
+
#define _GetSysInfo 0x50DD
+
#define _NZIf83Plus 0x50E0
+
#define _LinkStatus 0x50E3
+
#define _DoNothing2 0x50E6 //originally for TI-Navigator
+
#define _KeyboardGetKey 0x50E9
+
#define _RunAppLib 0x50EC
+
#define _FindSpecialAppHeader 0x50EF
+
#define _SendUSBData 0x50F2
+
#define _AppGetCBLUSB 0x50F5
+
#define _AppGetCalcUSB 0x50F8
+
#define _GetVarCmdUSB 0x50FB
+
//50FEh
+
#define _TenX2 0x5101
+
//5104h
+
//5107h
+
#define _GetVarVersion 0x510A
+
//510Dh
+
//5110h
+
#define _DeleteTempEditEqu 0x5113
+
#define _JcursorFirst2 0x5116
+
//5119h
+
#define _PromptMoveBackLeft 0x511C
+
#define _wputsEOL2 0x511F //same except res 0,(iy+0Eh) first
+
#define _InvertTextInsMode 0x5122
+
//5125h
+
#define _ResetDefaults 0x5128
+
#define _ZeroFinanceVars 0x512B
+
#define _DispHeader 0x512E
+
#define _JForceGroup 0x5131
+
//5134h
+
//5137h
+
#define _DispCoords 0x513A
+
//513Dh
+
//5140h
+
#define _chkTmr 0x5143
+
//5146h
+
//5149h
+
//514Ch
+
#define _getDate 0x514F
+
#define _GetDateString 0x5152
+
#define _getDtFmt 0x5155
+
#define _getDtStr 0x5158
+
#define _getTime 0x515B
+
#define _GetTimeString 0x515E
+
#define _getTmFmt 0x5161
+
#define _getTmStr 0x5164
+
#define _SetZeroOne 0x5167
+
#define _setDate 0x516A
+
#define _IsOneTwoThree 0x516D
+
#define _setTime 0x5170
+
#define _IsOP112or24 0x5173
+
#define _chkTimer0 0x5176
+
#define _timeCnv 0x5179
+
#define _GetLToOP1Extra 0x517C
+
#define _ClrWindowAndFlags 0x517F
+
#define _SetMachineID 0x5182
+
#define _ResetLists 0x5185
+
#define _DispValue 0x5188
+
//518Bh
+
//518Eh
+
#define _ExecLib 0x5191
+
//5194h
+
#define _CPOP1OP2Rounded 0x5197
+
#define _CPOP1OP2Rounded2 0x519A
+
#define _OpenLib 0x519D
+
//51A0h
+
//51A3h
+
#define _ResetIOPrompt 0x51A6
+
#define _StrCpyVarData 0x51A9
+
#define _SetUpEditor 0x51AC
+
#define _SortA 0x51AF
+
#define _SortD 0x51B2
+
//51B5h
+
#define _IsOP1ResID 0x51B8
+
#define _ListEdNameCxMain 0x51BB
+
#define _ListEdEnterNewName 0x51BE
+
//51C1h
+
#define _ForceModeKeypress 0x51C4 //forces a keypress (and calls help hook) on any of several mode-setting contexts
+
#define _DispAboutScreen 0x51C7
+
#define _ChkHelpHookVer 0x51CA
+
#define _Disp32 0x51CD
+
//51D0h
+
//51D3h
+
//51D6h
+
//51D9h
+
#define _DrawTableEditor 0x51DC //draws table editor lines
+
#define _DisplayListNameEquals 0x51DF
+
#define _DisplayListHeader 0x51E2
+
#define _DispMatrixDimensions 0x51E5
+
#define _HighlightListEdItem 0x51E8
+
//51EBh
+
//51EEh
+
#define _MatrixName 0x51F1
+
//51F4h
+
//51F7h
+
//51FAh
+
//51FDh
+
//5200h
+
//5203h
+
//5206h
+
//5209h
+
//520Ch
+
//520Fh
+
#define _SetupEmptyEditTempEqu 0x5212
+
#define _ExecClass1Token 0x5215
+
#define _HandleMathTokenParse 0x5218
+
#define _MaybePushMultiplyOp 0x521B
+
#define _RestartParseOP1Result 0x521E
+
#define _Chk_Batt_Level 0x5221
+
//5224h
+
//5227h
+
//522Ah
+
#define _DisplayListEquals 0x522D
+
#define _GetCurPlotListOffset 0x5230
+
#define _GoToLastRow 0x5233
+
#define _RectBorder 0x5236
+
//5239h
+
//523Ch
+
//523Fh
+
#define _LoadA5 0x5242
+
//5245h
+
#define _NamedListToOP1 0x5248
+
//524Bh
+
//524Eh
+
//5251h
+
#define _InitUSBDeviceCallback 0x5254
+
#define _KillUSBDevice 0x5257 //this actually recycles the USB connection and re-inits it (I think)
+
#define _SetUSBConfiguration 0x525A
+
#define _RequestUSBData 0x525D
+
#define _StopReceivingUSBData 0x5260
+
#define _FindAppHeaderByPage 0x5263
+
#define _FindNextHeaderByPage 0x5266
+
#define _IsMatchingLaunchApp 0x5269
+
#define _InitTimer 0x526C
+
#define _KillTimer 0x526F
+
#define _StartTimer 0x5272
+
#define _RestartTimer 0x5275
+
#define _StopTimer 0x5278
+
#define _WaitTimer 0x527B
+
#define _CheckTimer 0x527E
+
#define _CheckTimerRestart 0x5281
+
#define _SetVertGraphActive 0x5284
+
#define _ClearVertGraphActive 0x5287
+
#define _EnableUSBHook 0x528A
+
#define _DisableUSBHook 0x528D
+
#define _InitUSBDevice 0x5290
+
#define _KillUSBPeripheral 0x5293
+
#define _GetCurPlotListOffset2 0x5296
+
//5299h
+
#define _GraphLine 0x529C
+
//529Fh
+
//52A2h
+
//52A5h
+
//52A8h
+
//52ABh
+
//52AEh
+
#define _ZifTableEditor 0x52B1
+
//52B4h
+
#define _GetCurPlotOffset 0x52B7
+
//52BAh
+
#define _FindAppName 0x52BD
+
//52C0h
+
//52C3h
+
#define _UpdateStatPlotLists 0x52C6
+
#define _GrBufCpyCustom 0x52C9
+
//52CCh
+
//52CFh
+
//52D2h
+
#define _VDispRealOP1 0x52D5
+
#define _DispXEqualsNum 0x52D8
+
#define _ResetGraphSettings 0x52DB
+
#define _InitializeVariables 0x52DE
+
//52E1h ;bit 4,(9C75h) (this is DEFINITELY returning the status of something when acting as a TI-SmartView Input Pad...this bit is bit 1 of the data byte from a PC HID Set Report request)
+
#define _DelVarSym 0x52E4
+
#define _FindAppUpNoCase 0x52E7
+
#define _FindAppDnNoCase 0x52EA
+
#define _DeleteInvalidApps 0x52ED
+
#define _DeleteApp_Link 0x52F0
+
#define _CmpSymsNoCase 0x52F3
+
#define _SetAppRestrictions 0x52F6
+
#define _RemoveAppRestrictions 0x52F9
+
#define _QueryAppRestrictions 0x52FC
+
#define _DispAppRestrictions 0x52FF
+
#define _SetupHome 0x5302
+
#define _GRPUTAWAYFull 0x5305 //same as _GRPUTAWAY except it assumes no split screen
+
#define _SendSmartPadKeypress 0x5308 //B and A are the inputs
+
#define _ToggleUSBSmartPadInput 0x530B //A is input, 0 or 1 to enable/disable
+
#define _IsUSBDeviceConnected 0x530E //bit 4,(81h) \ ret, this is just a guess on its purpose but it seems to work
+
#define _RecycleUSB 0x5311 //identical to 5257h
+
#define _PolarEquToOP1 0x5314
+
#define _ParamXEquToOP1 0x5317
+
#define _ParamYEquToOP1 0x531A
+
#define _GetRestrictionsOptions 0x531D
+
#define _DispResetComplete 0x5320
+
#define _PTTReset 0x5323
+
#define _FindAppCustom 0x5326
+
#define _ClearGraphStyles 0x5329
+
//532Ch
+
//532Fh
+
//5332h
+
//5335h
+
//5338h
+
//533Bh
+
//533Eh
+
//5341h
+
//5344h
+
//5347h
+
//534Ah
+
//534Dh
+
//5350h
+
//5353h
+
//5356h
+
//5359h
+
//535Ch
+
//535Fh
+
//5362h
+
//5365h
+
//5368h
+
//536Bh
+
//536Eh
+
//5371h
+
//5374h
+
//5377h
+
//537Ah
+
//537Dh
+
//5380h
+
//5383h
+
//5386h
+
//5389h
+
//538Ch
+
//538Fh
+
//5392h
+
//5395h
+
//5398h
+
//539Bh
+
//539Eh
+
//53A1h
+
//53A4h
+
//53A7h
+
//53AAh
+
//53ADh
+
//53B0h
+
//53B3h
+
//53B6h
+
//53B9h
+
//53BCh
+
//53BFh
+
//53C2h
+
//53C5h
+
//53C8h
+
//53CBh
+
//53CEh
+
//53D1h
+
//53D4h
+
//53D7h
+
//53DAh
+
//53DDh
+
//53E0h
+
//53E3h
+
//53E6h
+
//53E9h
+
//53ECh
+
//53EFh
+
//53F2h
+
//53F5h
+
//53F8h
+
//53FBh
+
//53FEh
+
//5401h
+
//5404h
+
//5407h
+
//540Ah
+
//540Dh
+
//5410h
+
//5413h
+
//5416h
+
//5419h
+
//541Ch
+
//541Fh
+
//5422h
+
//5425h
+
//5428h
+
//542Bh
+
//542Eh
+
//5431h
+
//5434h
+
//5437h
+
//543Ah
+
//543Dh
+
//5440h
+
//5443h
+
//5446h
+
//5449h
+
#define _xorAret 0x5443
+
#define _scfRet 0x5446
+
#define _ret 0x5449
+
+
//Page 1Fh ROM Calls
+
//--------------------------------
+
#define bootbtf 0x8000
+
//400Fh may point to version string ("1.02 ",0)
+
#define _MD5Final 0x8018
+
#define _RSAValidate 0x801B
+
#define _cmpStr 0x801E //BigNumCompare
+
#define _WriteAByte 0x8021
+
#define _EraseFlash 0x8024
+
#define _FindFirstCertField 0x8027
+
#define _ZeroToCertificate 0x802A
+
#define _GetCertificateEnd 0x802D
+
#define _FindGroupedField 0x8030
+
#define _ret_1 0x8033
+
#define _ret_2 0x8036
+
#define _ret_3 0x8039
+
#define _ret_4 0x803C
+
#define _ret_5 0x803F
+
#define _Mult8By8 0x8042
+
#define _Mult16By8 0x8045
+
#define _Div16By8 0x8048
+
#define _Div16By16 0x804B
+
//804Eh ;scary certificate reading and writing, something about calc ID and fields 0A10/0A20
+
#define _LoadAIndPaged 0x8051
+
#define _FlashToRam2 0x8054
+
#define _GetCertificateStart 0x8057
+
#define _GetFieldSize 0x805A
+
#define _FindSubField 0x805D
+
#define _EraseCertificateSector 0x8060
+
#define _CheckHeaderKey 0x8063
+
//8066h ;just returns Z if specified data in field 0310h, subfield 0610h exists, DE points to data of that field you want to find
+
//8069h ;just returns number of 0810h/0710h fields that exist in certificate or something, in IX
+
#define _Load_LFontV2 0x806C
+
#define _Load_LFontV 0x806F
+
#define _ReceiveOS 0x8072
+
#define _FindOSHeaderSubField 0x8075
+
#define _FindNextCertField 0x8078
+
#define _GetByteOrBoot 0x807B
+
#define _getSerial 0x807E //GetCalcSerial
+
#define _ReceiveCalcID 0x8081 //receives certificate replacement (including calculator ID, fails if already exists) and writes it, requires Flash unlocked
+
#define _EraseFlashPage 0x8084
+
#define _WriteFlashUnsafe 0x8087
+
#define _dispBootVer 0x808A
+
#define _MD5Init 0x808D
+
#define _MD5Update 0x8090
+
#define _MarkOSInvalid 0x8093
+
#define _FindProgramLicense 0x8096 //copies 8010h field to appID and other insane stuff that makes zero sense
+
#define _MarkOSValid 0x8099
+
#define _CheckOSValidated 0x809C
+
#define _SetupAppPubKey 0x809F
+
#define _SigModR 0x80A2
+
#define _TransformHash 0x80A5
+
#define _IsAppFreeware 0x80A8
+
#define _FindAppHeaderSubField 0x80AB
+
#define _WriteValidationNumber 0x80AE //generates two-byte validation number from calc ID and stores to certificate
+
#define _Div32By16 0x80B1
+
#define _FindGroup 0x80B4 //searches until field of DE-like group is found (DE=0A00h, it stops when it finds 0Ax0h)
+
#define _getBootVer 0x80B7
+
#define _getHardwareVersion 0x80BA
+
#define _xorA 0x80BD //xor a
+
#define _bignumpowermod17 0x80C0
+
#define _ProdNrPart1 0x80C3
+
#define _WriteAByteSafe 0x80C6
+
#define _WriteFlash 0x80C9
+
#define _SetupDateStampPubKey 0x80CC
+
#define _SetFlashLowerBound 0x80CF
+
#define _LowBatteryBoot 0x80D2
+
//TI-84 Plus/Silver Edition Only Entry Points
+
#define _AttemptUSBOSReceive 0x80E4 //Z to wait for USB cable insert & get OS, NZ and A= contents of port 4Dh or 56h, ON to cancel & clear RAM
+
#define _DisplayBootMessage 0x80E7
+
#define _NewLine2 0x80EA
+
#define _DisplayBootError10 0x80ED
+
#define _Chk_Batt_Low_B 0x80F0
+
#define _Chk_Batt_Low_B2 0x80F3
+
#define _ReceiveOS_USB 0x80F6
+
#define _DisplayOSProgress 0x80F9
+
#define _ResetCalc 0x80FC
+
#define _SetupOSPubKey 0x80FF
+
#define _CheckHeaderKeyHL 0x8102 //same as _CheckHeaderKey, only you pass the address of header in HL, not at appData
+
#define _USBErrorCleanup 0x8105 //kills some USB stuff (doesn't completely kill periph communication), error handler in boot code
+
#define _InitUSB 0x8108 //initializes USB hardware as peripheral, sets 5,(iy+1Bh), C set if problems
+
//810Bh set 1,(81h) and wait (has something to do with USB peripheral kill, but it doesn't actually kill it)
+
#define _KillUSB 0x810E //identical to 8105h, except in the middle of the outputs, it sends zero to port 4Ch
+
#define _DisplayBootError1 0x8111
+
#define _DisplayBootError2 0x8114
+
#define _DisplayBootError3 0x8117
+
#define _DisplayBootError4 0x811A
+
#define _DisplayBootError5 0x811D
+
#define _DisplayBootError6 0x8120
+
#define _DisplayBootError7 0x8123
+
#define _DisplayBootError8 0x8126
+
#define _DisplayBootError9 0x8129
+
+
//RAM Equates
+
//--------------------------------
+
#define ramStart 0x8000
+
#define appData 0x8000
+
#define ramCode 0x8100
+
#define SmallEditColumnLeft 0x8177
+
#define SmallEditRow 0x8178
+
#define SmallEditColumnRight 0x8179
+
//penCol left edge? equ 817Bh
+
#define bigInteger1 0x8182
+
#define SmallEditCancelParse 0x8194
+
#define SmallEditRowCount 0x81B7
+
#define bigInteger2 0x81C3
+
#define SmallEditPromptString 0x81CC
+
#define ramCodeEnd 0x822F
+
#define baseAppBrTab 0x8230 //table of base pages for apps on page < 20h (starts with eight zeroes because they're OS pages)
+
#define clockFlag 0x8230 //bit 2 set for 24-hour mode and don't display "AM/PM"
+
#define clockIDs 0x8231 //five bytes, numbers 0-4 in memory, that when present, stops displaying clock numbers in time setting context?
+
#define bootTemp 0x8251
+
#define MD5Temp 0x8259
+
#define MD5Length 0x8269
+
#define MD5Hash 0x8292
+
#define appSearchPage 0x82A3
+
#define tempSwapArea 0x82A5
+
//something equ 837Bh ;18 bytes, probably indicates something about Flash app pages, start out as 0FFh
+
#define appID 0x838D
+
#define arcPageEnd 0x8392
+
#define arcPtrEnd 0x8393
+
//839Fh something...field size bytes?
+
#define MD5Buffer 0x83A5
+
#define Abackup 0x83EB
+
#define ramReturnData 0x83ED
+
#define arcInfo 0x83EE
+
#define savedArcInfo 0x8406
+
#define appInfo 0x8432
+
#define appBank_jump 0x843C
+
#define appPage 0x843E
+
#define kbdScanCode 0x843F
+
#define kbdKey 0x8444
+
#define kbdGetKy 0x8445
+
#define keyExtend 0x8446
+
#define EXTECHO keyExtend
+
#define contrast 0x8447
+
#define apdSubTimer 0x8448
+
#define apdTimer 0x8449
+
#define curTime 0x844A
+
#define curRow 0x844B
+
#define curCol 0x844C
+
#define curOffset 0x844D
+
#define curUnder 0x844E
+
#define curY 0x844F
+
#define curType 0x8450
+
#define curXRow 0x8451
+
#define prevDData 0x8452
+
#define lFont_record 0x845A
+
#define sFont_record 0x8462
+
#define tokVarPtr 0x846A
+
#define tokLen 0x846C
+
#define indicMem 0x846E //eight bytes used by _saveTR and _restoreTR to store image in top right corner
+
#define indicCounter 0x8476
+
#define indicBusy 0x8477
+
#define OP1 0x8478
+
#define OP1M 0x847A
+
#define OP2 0x8483
+
#define OP2M 0x8485
+
#define OP2EXT 0x848C
+
#define OP3 0x848E
+
#define OP3M 0x8490
+
#define OP4 0x8499
+
#define OP4M 0x849B
+
#define OP5 0x84A4
+
#define OP5M 0x84A6
+
#define OP6 0x84AF
+
#define OP6M 0x84B1
+
#define OP6EXT 0x84B8
+
#define progToEdit 0x84BF
+
#define nameBuff 0x84C7
+
#define equ_edit_save 0x84D2
+
#define iMathPtr1 0x84D3
+
#define iMathPtr2 0x84D5
+
#define iMathPtr3 0x84D7
+
#define iMathPtr4 0x84D9
+
#define iMathPtr5 0x84DB
+
#define chkDelPtr1 0x84DD
+
#define chkDelPtr2 0x84DF
+
#define insDelPtr 0x84E1
+
#define upDownPtr 0x84E3
+
#define fOutDat 0x84E5
+
#define asm_data_ptr1 0x84EB
+
#define asm_data_ptr2 0x84ED
+
#define asm_sym_ptr1 0x84EF
+
#define asm_sym_ptr2 0x84F1
+
#define asm_ram 0x84F3
+
#define asm_ind_call 0x8507
+
#define textShadow 0x8508
+
#define textShadCur 0x8588
+
#define textShadTop 0x858A
+
#define textShadAlph 0x858B
+
#define textShadIns 0x858C
+
#define cxMain 0x858D
+
#define cxPPutAway 0x858F
+
#define cxPutAway 0x8591
+
#define cxErrorEP 0x8595
+
#define cxSizeWind 0x8597
+
#define cxPage 0x8599
+
#define cxCurApp 0x859A
+
#define cxPrev 0x859B //12 bytes are shadows of cxMain through cxCurApp and appFlags
+
#define monQH 0x85AA
+
#define monQT 0x85AB
+
#define monQueue 0x85AC
+
#define onSP 0x85BC
+
#define promptRow 0x85C0
+
#define promptCol 0x85C1
+
#define promptIns 0x85C2
+
#define promptShift 0x85C3
+
#define promptRet 0x85C4
+
#define promptValid 0x85C6
+
#define promptTop 0x85C8
+
#define promptCursor 0x85CA
+
#define promptTail 0x85CC
+
#define promptBtm 0x85CE
+
#define varType 0x85D0
+
#define varCurrent 0x85D1
+
#define varClass 0x85D9
+
#define CatalogCurrent 0x85DA //word at this location starting with 6007h corresponds to what is highlighted in catalog
+
#define menuActive 0x85DC
+
#define menuAppDepth 0x85DD
+
#define MenuCurrent 0x85DE
+
// equ 85DFh ;holds current submenu index
+
// equ 85E0h ;holds currently selected item in current submenu
+
// equ 85E1h ;holds number of submenus for this menu
+
// equ 85E2h ;holds number of items in this submenu
+
// equ 85E3h ;iy+appFlags backup for menu stuff
+
// equ 85E4h ;iy+0Ch backup for menu stuff
+
// equ 85E5h ;curGStyle backup for menu stuff
+
// equ 85E6h ;iy+graphFlags backup for menu stuff
+
#define ProgCurrent 0x85E8
+
//something, OP1 backup? equ 85F2h ;type and name of topmost variable on menu with names
+
//something equ 85FDh
+
#define userMenuSA 0x85FE
+
#define ioPrompt 0x865F
+
#define dImageWidth 0x8660
+
#define ioFlag 0x8670
+
#define sndRecState 0x8672
+
#define ioErrState 0x8673
+
#define header 0x8674
+
#define ioData 0x867D
+
#define ioNewData 0x8689
+
#define bakHeader 0x868B
+
//something equ 8697h ;app bitmap for selecting stuff from menus
+
//something equ 86B7h ;used in 47h and 74h link packets
+
#define penCol 0x86D7
+
#define penRow 0x86D8
+
#define rclQueue 0x86D9
+
#define rclQueueEnd 0x86DB
+
#define errNo 0x86DD
+
#define errSP 0x86DE
+
#define errOffset 0x86E0
+
#define saveSScreen 0x86EC
+
#define asm_prgm_size 0x89EC
+
#define bstCounter 0x89EE
+
#define flags 0x89F0
+
#define appFlagsAddr 0x89FD
+
//something equ 8A36h ;stats-related? This gets stored to (varCurrent) for some reason
+
#define statVars 0x8A3A
+
#define anovaf_vars 0x8C17
+
#define infVars 0x8C4D
+
#define infVar1 0x8C56
+
#define infVar2 0x8C5F
+
#define infVar3 0x8C68
+
#define infVar4 0x8C71
+
#define infVar5 0x8C7A
+
#define infVar6 0x8C83
+
#define infVar7 0x8C8C
+
#define infVar8 0x8C95
+
#define infVar9 0x8C9E
+
#define infVar10 0x8CA7
+
#define infVar11 0x8CB0
+
#define infVar12 0x8CB9
+
#define infVar13 0x8CC2
+
#define infVar14 0x8CCB
+
#define infVar15 0x8CD4
+
#define infVar16 0x8CDD
+
#define infVar17 0x8CE6
+
#define infVar18 0x8CEF
+
#define infVar19 0x8CF8
+
#define infVar20 0x8D01
+
//something equ 8D0Bh
+
//list-related stat vars equ 8D0Dh
+
#define curGStyle 0x8D17
+
#define curGY 0x8D18
+
#define curGX 0x8D19
+
#define curGY2 0x8D1A
+
#define curGX2 0x8D1B //currently selected equation while graphing
+
#define freeSaveY 0x8D1C
+
#define freeSaveX 0x8D1D
+
//100 bytes equ 8D2Ah
+
#define XOffset 0x8DA1
+
#define YOffset 0x8DA2
+
#define lcdTallP 0x8DA3
+
#define pixWideP 0x8DA4
+
#define pixWide_m_1 0x8DA5
+
#define pixWide_m_2 0x8DA6
+
#define lastEntryPTR 0x8DA7 //pointer to the next available byte in the entry stack
+
#define lastEntryStk 0x8DA9 //the start of entry stack (note last entry is not in the stack, it is in the program '#'.) This is a stack of strings. first 2 bytes are length, followed by string. 2nd from last entry is first in this stack.
+
#define numLastEntries 0x8E29 //number of entries you can back-track through minus one
+
#define currLastEntry 0x8E2A //counter used by OS to keep track of which entry was just displayed by pressing 2nd+enter
+
#define curPlotNumber 0x8E63 //current plot being graphed (1-3), this gets reset back to 0
+
//something equ 8E65h
+
//something equ 8E66h
+
#define curInc 0x8E67
+
#define uXmin 0x8E7E
+
#define uXmax 0x8E87
+
#define uXscl 0x8E90
+
#define uYmin 0x8E99
+
#define uYmax 0x8EA2
+
#define uYscl 0x8EAB
+
#define uThetMin 0x8EB4
+
#define uThetMax 0x8EBD
+
#define uThetStep 0x8EC6
+
#define uTmin 0x8ECF
+
#define uTmax 0x8ED8
+
#define uTStep 0x8EE1
+
#define uPlotStart 0x8EEA
+
#define unMax 0x8EF3
+
#define uu0 0x8EFC
+
#define uv0 0x8F05
+
#define unMin 0x8F0E
+
#define uu02 0x8F17
+
#define uv02 0x8F20
+
#define uw0 0x8F29
+
#define uPlotStep 0x8F32
+
#define uXres 0x8F3B
+
#define uw02 0x8F44
+
#define Xmin 0x8F50
+
#define Xmax 0x8F59
+
#define Xscl 0x8F62
+
#define Ymin 0x8F6B
+
#define Ymax 0x8F74
+
#define Yscl 0x8F7D
+
#define ThetaMin 0x8F86
+
#define ThetaMax 0x8F8F
+
#define ThetaStep 0x8F98
+
#define TminPar 0x8FA1
+
#define TmaxPar 0x8FAA
+
#define Tstep 0x8FB3
+
#define PlotStart 0x8FBC
+
#define nMax 0x8FC5
+
#define u0 0x8FCE
+
#define v0 0x8FD7
+
#define nMin 0x8FE0
+
#define u02 0x8FE9
+
#define v02 0x8FF2
+
#define w0 0x8FFB
+
#define PlotStep 0x9004
+
#define XresO 0x900D
+
#define w02 0x9016
+
#define un1 0x901F
+
#define un2 0x9028
+
#define vn1 0x9031
+
#define vn2 0x903A
+
#define wn1 0x9043
+
#define wn2 0x904C
+
#define fin_N 0x9055
+
#define fin_I 0x905E
+
#define fin_PV 0x9067
+
#define fin_PMT 0x9070
+
#define fin_FV 0x9079
+
#define fin_PY 0x9082
+
#define fin_CY 0x908B
+
#define cal_N 0x9094
+
#define cal_I 0x909D
+
#define cal_PV 0x90A6
+
#define cal_PMT 0x90AF
+
#define cal_FV 0x90B8
+
#define cal_PY 0x90C1
+
#define smallEditRAM 0x90D3
+
#define XFact 0x913F
+
#define YFact 0x9148
+
#define Xres_int 0x9151
+
#define deltaX 0x9152
+
#define deltaY 0x915B
+
#define shortX 0x9164
+
#define shortY 0x916D
+
#define lower 0x9176
+
#define upper 0x917F
+
#define XOutSym 0x918C
+
#define XOutDat 0x918E
+
#define YOutSym 0x9190
+
#define YOutDat 0x9192
+
#define inputSym 0x9194
+
#define inputDat 0x9196
+
#define prevData 0x9198
+
//something equ 91D9h
+
//something equ 91DAh
+
#define CurTableRow 0x91DC
+
#define CurTableCol 0x91DD
+
#define TblMin 0x92B3
+
#define TblStep 0x92BC
+
//something equ 92C5h
+
//something equ 92C6h
+
//somePlotThing1 equ 92D9h
+
//somePlotThing2 equ 92EAh
+
//somePlotThing3 equ 92FBh
+
#define ES 0x9302 //bottom of the es
+
#define EST 0x9305 //current height of the es
+
//something equ 9311h ;this is the pointer to a table of stuff for a BASIC menu
+
#define plotSScreen 0x9340
+
#define seed1 0x9640
+
#define seed2 0x9649
+
#define basic_prog 0x9652
+
#define basic_start 0x965B
+
#define nextParseByte 0x965D //basic_pc
+
#define basic_end 0x965F
+
#define numArguments 0x9661
+
//something equ 9665h ;parser-related word
+
//something equ 966Ch
+
//something equ 966Dh
+
#define cmdShadow 0x966E
+
#define cmdShadCur 0x96EE
+
#define cmdShadAlph 0x96F0
+
#define cmdShadIns 0x96F1
+
#define cmdCursor 0x96F2
+
#define editTop 0x96F4
+
#define editCursor 0x96F6
+
#define editTail 0x96F8
+
#define editBtm 0x96FA
+
//something equ 96FEh ;word, this is offset into list for currently-highlighted element in list editor
+
//something equ 9700h ;table entry pointer used in dialog/menu/edit buffer routines
+
#define matrixDimensions 0x9702 //dimensions of matrix being edited in matrix editor
+
#define editSym 0x9706 //pointer to symbol table entry of variable being edited
+
#define editDat 0x9708 //pointer to data of variable being edited
+
//something equ 970Eh ;stats/list editor related, usually 1
+
//something equ 970Fh ;stats/list editor related, usually 0 (this is 0-based offset from listName1), pretty sure this is a page offset
+
//something equ 9710h ;stats/list editor related, usually 0 (this is 0-based currently-selected list)
+
#define listName1 0x9711
+
#define listName2 0x9716
+
#define listName3 0x971B
+
#define listName4 0x9720
+
#define listName5 0x9725
+
#define listName6 0x972A
+
#define listName7 0x972F
+
#define listName8 0x9734
+
#define listName9 0x9739
+
#define listName10 0x973E
+
#define listName11 0x9743
+
#define listName12 0x9748
+
#define listName13 0x974D
+
#define listName14 0x9752
+
#define listName15 0x9757
+
#define listName16 0x975C
+
#define listName17 0x9761
+
#define listName18 0x9766
+
#define listName19 0x976B
+
#define listName20 0x9770
+
//something equ 9775h
+
#define y1LineType 0x9776 //these bytes define the line type for functions which are graphed
+
#define y2LineType 0x9777
+
#define y3LineType 0x9778
+
#define y4LineType 0x9779
+
#define y5LineType 0x977A
+
#define y6LineType 0x977B
+
#define y7LineType 0x977C
+
#define y8LineType 0x977D
+
#define y9LineType 0x977E
+
#define y0LineType 0x977F
+
#define para1LineType 0x9780
+
#define para2LineType 0x9781
+
#define para3LineType 0x9782
+
#define para4LineType 0x9783
+
#define para5LineType 0x9784
+
#define para6LineType 0x9785
+
#define polar1LineType 0x9786
+
#define polar2LineType 0x9787
+
#define polar3LineType 0x9788
+
#define polar4LineType 0x9789
+
#define polar5LineType 0x978A
+
#define polar6LineType 0x978B
+
#define secULineType 0x978C
+
#define secVLineType 0x978D
+
#define secWLineType 0x978E
+
//something equ 979Fh
+
//something equ 97A1h
+
#define winTop 0x97A5
+
#define winBtm 0x97A6
+
#define winLeftEdge 0x97A7
+
#define winLeft 0x97A8
+
#define winAbove 0x97AA
+
#define winRow 0x97AC
+
#define winCol 0x97AE
+
#define fmtDigits 0x97B0
+
#define fmtString 0x97B1
+
#define fmtConv 0x97F2
+
#define fmtLeft 0x9804
+
#define fmtIndex 0x9806
+
#define fmtMatSym 0x9808
+
#define fmtMatMem 0x980A
+
#define EQS 0x980C
+
//something equ 980Eh
+
//something equ 9810h
+
#define freeRAM 0x9815 //pretty sure this is the amount of RAM free, valid in Mem Mgmt/Del anyway
+
//something equ 9817h
+
#define tSymPtr1 0x9818
+
#define tSymPtr2 0x981A
+
#define chkDelPtr3 0x981C
+
#define chkDelPtr4 0x981E
+
#define tempMem 0x9820
+
#define fpBase 0x9822
+
#define FPS 0x9824
+
#define OPBase 0x9826
+
#define OPS 0x9828
+
#define pTempCnt 0x982A
+
#define cleanTmp 0x982C
+
#define pTemp 0x982E //end of symbol table
+
#define progPtr 0x9830
+
#define newDataPtr 0x9832
+
#define pagedCount 0x9834
+
#define pagedPN 0x9835
+
#define pagedGetPtr 0x9836
+
#define pagedPutPtr 0x9838
+
#define pagedBuf 0x983A
+
//something equ 984Ah ;this is the top LCD row for a menu (usually 1)
+
#define appErr1 0x984D
+
#define appErr2 0x985A
+
#define flashByte1 0x9867
+
#define flashByte2 0x9868
+
#define freeArcBlock 0x9869
+
#define arcPage 0x986B
+
#define arcPtr 0x986C
+
#define appRawKeyHandle 0x9870
+
#define appBackUpScreen 0x9872
+
#define customHeight 0x9B72
+
#define localLanguage 0x9B73
+
#define hookExecTemp 0x9B75
+
#define linkActivityHook 0x9B78
+
#define cursorHookPtr 0x9B7C
+
#define libraryHookPtr 0x9B80
+
#define rawKeyHookPtr 0x9B84
+
#define getKeyHookPtr 0x9B88
+
#define homescreenHookPtr 0x9B8C
+
#define windowHookPtr 0x9B90
+
#define graphHookPtr 0x9B94
+
#define yEqualsHookPtr 0x9B98
+
#define fontHookPtr 0x9B9C
+
#define regraphHookPtr 0x9BA0
+
#define graphicsHook 0x9BA4
+
#define traceHookPtr 0x9BA8
+
#define parserHookPtr 0x9BAC
+
#define appChangeHookPtr 0x9BB0
+
#define catalog1HookPtr 0x9BB4
+
#define helpHookPtr 0x9BB8
+
#define cxRedispHookPtr 0x9BBC
+
#define menuHookPtr 0x9BC0
+
#define catalog2HookPtr 0x9BC4
+
#define tokenHookPtr 0x9BC8
+
#define localizeHookPtr 0x9BCC
+
#define silentLinkHookPtr 0x9BD0 //restartClr?
+
#define USBActivityHookPtr 0x9BD4
+
#define baseAppBrTab2 0x9C06 //table of base pages for apps on page >= 20h; first 20h bytes are zeroes.
+
#define USBcallbackPage 0x9C13
+
#define USBcallbackPtr 0x9C14
+
#define vendorID 0x9C16
+
#define productID 0x9C18
+
#define devReleaseNumber 0x9C1A
+
#define oldSESpeed 0x9C21
+
#define calcPeripheralState 0x9C26
+
#define usb_dataWaitingCount 0x9C27
+
#define basePageTable2End 0x9C6F //this is the last page
+
#define port91hTemp 0x9C79
+
#define usb_dataExpectCount 0x9C80
+
#define offPageCallPage 0x9C83 //temporarily stores off-page page and address
+
#define offPageCallAddress 0x9C84
+
//something equ 9C86h ;used with SE link activity, values of 00h, 0FAh, 0FFh probably mean something
+
//something equ 9C87h ;zero this to force the APPS menu to recache itself (this is always either 0, 1, or last app page, for some reason)
+
//something equ 9C88h ;don't know, but it's 14 bytes and has to do with selecting stuff (if 9C87h is non-zero, this is zeroed out)
+
//something equ 9C9Eh ;funky, this actually gets written to the certificate on non-83+ (11 bytes)
+
#define SEspeed 0x9CAE
+
//something, table index equ 9CAFh
+
//something equ 9CB0h
+
//something equ 9CB1h ;table
+
//something equ 9CCDh
+
#define localTokStr 0x9D65
+
#define keyForStr 0x9D76
+
#define keyToStrRam 0x9D77
+
#define sedMonSp 0x9D88 //small edit monitor SP
+
#define bpSave 0x9D8A
+
#define userMem 0x9D95
+
#define symTable 0x0FE66
+
+
//System Flags
+
//----------------------------------------------------------------------
+
#define ioDelFlag 0x0
+
#define inDelete 0 //1 = DELETE SCREEN
+
+
#define trigFlags 0x0 //Trigonometry mode settings
+
#define trigDeg 2 //1=degrees, 0=radians
+
+
#define kbdFlags 0x0 //Keyboard scan
+
#define kbdSCR 3 //1=scan code ready
+
#define kbdKeyPress 4 //1=key has been pressed
+
+
#define doneFlags 0x0 //display "Done"
+
#define donePrgm 5 //1=display "Done" after prgm
+
//----------------------------------------------------------------------
+
#define editFlags 0x1
+
#define editOpen 2 //1=edit buffer is open
+
+
#define ansFlags 1
+
#define AnsScroll 3 //1=answer can scroll, seems must be reset in order to move about edit buffer
+
+
#define monFlags 0x1 //monitor flags
+
#define monAbandon 4 //1=don't start any long process in put away (#715)
+
//----------------------------------------------------------------------
+
#define plotFlags 0x2 //plot generation flags
+
#define plotLoc 1 //0=bkup & display, 1=display only
+
#define plotDisp 2 //1=plot is in display, 0=text in display, this also indicates whether graph is being shown or not
+
+
#define grfModeFlags 0x2 //graph mode settings
+
#define grfFuncM 4 //1=function graph
+
#define grfPolarM 5 //1=polar graph
+
#define grfParamM 6 //1=parametric graph
+
#define grfRecurM 7 //1=RECURSION graph
+
//----------------------------------------------------------------------
+
#define graphFlags 0x3
+
#define graphDraw 0 //0=graph is valid, 1=redraw graph(dirty)
+
#define graphCursor 2
+
//----------------------------------------------------------------------
+
#define grfDBFlags 0x4
+
#define grfDot 0 //0=line, 1=dot
+
#define grfSimul 1 //0=sequential, 1=simultaneous
+
#define grfGrid 2 //0=no grid, 1=grid
+
#define grfPolar 3 //0=rectangular, 1=polar coordinates
+
#define grfNoCoord 4 //0=display coordinates, 1=off
+
#define grfNoAxis 5 //0=axis, 1=no axis
+
#define grfLabel 6 //0=off, 1=axis label
+
//----------------------------------------------------------------------
+
#define textFlags 0x5 //Text output flags
+
#define textEraseBelow 1 //1=erase line below small char
+
#define textScrolled 2 //1=screen scrolled
+
#define textInverse 3 //1=display inverse bit-map
+
#define textInsMode 4 //0=overstrike, 1=insert mode
+
//----------------------------------------------------------------------
+
#define ParsFlag 0x6 //PARSER flags
+
//----------------------------------------------------------------------
+
#define ParsFlag2 0x7 //PARSER flags
+
#define numOP1 0 //1=RESULT IN OP1, 0=NO RESULT
+
//----------------------------------------------------------------------
+
#define newDispF 0x8 //Derivative mode flags
+
#define preClrForMode 0 //1=HELP BLINK ON MODE SCREEN
+
#define allowProgTokens 1 //1=allow programming tokens to be parsed in BASIC programs
+
+
#define apdFlags 0x8 //Automatic power-down
+
#define apdAble 2 //1=APD enabled
+
#define apdRunning 3 //1=APD clock running
+
#define apdWarmStart 4 //1=calculator is turning on from APD or power loss
+
//----------------------------------------------------------------------
+
#define web_err_mask 0x60
+
//----------------------------------------------------------------------
+
#define onFlags 0x9 //on key flags
+
#define parseInput 1 //1=parse input when done
+
#define onRunning 3 //1=calculator is running
+
#define onInterrupt 4 //1=on key interrupt request
+
+
#define statFlags 0x9 //statistics flags
+
//unknown equ 5 ;unknown
+
#define statsValid 6 //1=stats are valid
+
//----------------------------------------------------------------------
+
#define fmtFlags 0x0A //numeric format flags
+
#define fmtExponent 0 //1=show exponent, 0=no exponent
+
#define fmtEng 1 //1=engineering notion, 0=scientific
+
#define fmtHex 2 //1=hexadecimal
+
#define fmtOct 3 //1=octal
+
#define fmtBin 4 //1=binary
+
+
#define numMode 0x0A
+
#define fmtReal 5
+
#define fmtRect 6
+
#define fmtPolar 7
+
+
#define realMode 5
+
#define rectMode 6
+
#define polarMode 7
+
// ;if Hex and Oct both = 1
+
// ; then Bin=0 means >Frac
+
// ; Bin=1 means >DMS
+
#define fmtBaseMask 0b00011100 // mask to base flags
+
#define fmtBaseShift 2 // offset to base flags
+
//
+
// CHECK IF THESE ARE USED BY NUMFORM,
+
//
+
// equ 6
+
// equ 7
+
//----------------------------------------------------------------------
+
#define fmtOverride 0x0B //copy of fmtFlags with conversion override
+
//----------------------------------------------------------------------
+
#define fmtEditFlags 0x0C //numeric editing flags
+
#define fmtEdit 0 //1=format number for editing
+
+
#define curFlags 0x0C //Cursor
+
#define curAble 2 //1=cursor flash is enabled
+
#define curOn 3 //1=cursor is showing
+
#define curLock 4 //1=cursor is locked off
+
+
#define cmdFlags 0x0C //command editor flags
+
#define cmdVirgin 5 //1=nothing has been typed in cmd bfr
+
//----------------------------------------------------------------------
+
#define appFlags 0x0D //application flags
+
#define appWantIntrpt 0 //1=want ON key interrupts
+
#define appTextSave 1 //1=save characters in textShadow
+
#define appAutoScroll 2 //1=auto-scroll text on last line
+
#define appMenus 3 //1=process keys that bring up menus, 0=check Lock menu flag
+
#define appLockMenus 4 //1=ignore menu keys, 0=switch to home screen and bring up menu
+
#define appCurGraphic 5 //1=graphic cursor
+
#define appCurWord 6 //1=text cursor covers entire word
+
#define appExit 7 //1=application handles [EXIT] key itself
+
+
#define appWantIntrptF 1<<appWantIntrpt
+
#define appTextSaveF 1<<appTextSave
+
#define appAutoScrollF 1<<appAutoScroll
+
#define appMenusF 1<<appMenus
+
#define appLockMenusF 1<<appLockMenus
+
#define appCurGraphicF 1<<appCurGraphic
+
#define appCurWordF 1<<appCurWord
+
#define appExitF 1<<appExit
+
//----------------------------------------------------------------------
+
#define rclFlag 0x0E //OS recall queue flags
+
#define enableQueue 7 //1 = enable recall queue
+
//----------------------------------------------------------------------
+
#define seqFlags 0x0F //Sequential Graph flags
+
#define webMode 0 //0 = NORMAL SEQ MODE, 1 = WEB MODE
+
#define webVert 1
+
#define sequv 2 //U vs V
+
#define seqvw 3 //V vs W
+
#define sequw 4 //U vs W
+
//----------------------------------------------------------------------
+
#define promptFlags 0x11 //prompt line flags
+
#define promptEdit 0 //1=editing in prompt buffer
+
//----------------------------------------------------------------------
+
#define indicFlags 0x12 //Indicator flags
+
#define indicRun 0 //1=run indicator ON
+
#define indicInUse 1 //indicator save area in use=1, free=0 ;resetting will disable 2nd while in _getkey
+
#define indicOnly 2 //interrupt handler only checks run indicator
+
+
#define shiftFlags 0x12 //[2nd] and [ALPHA] flags
+
#define shift2nd 3 //1=[2nd] has been pressed
+
#define shiftAlpha 4 //1=[ALPHA] has been pressed
+
#define shiftLwrAlph 5 //1=lower case, 0=upper case
+
#define shiftALock 6 //1=alpha lock has been pressed
+
#define shiftKeepAlph 7 //1=cannot cancel alpha shift
+
//----------------------------------------------------------------------
+
#define tblFlags 0x13 //table flags.
+
#define autoFill 4 //1=prompt, 0=fillAuto
+
#define autoCalc 5 //1=prompt, 0=CalcAuto
+
#define reTable 6 //0=table is okay, 1=must recompute table.
+
//----------------------------------------------------------------------
+
#define sGrFlags 0x14
+
#define grfSplit 0 //1=Split Graph, 0=Normal
+
#define vertSplit 1 //1=Vertical (left-right) Split
+
#define grfSChanged 2 //1=Graph just changed Split <-> normal
+
#define grfSplitOverride 3 //1 = ignore graph split flag if set
+
#define write_on_graph 4 //1 = TEXT OR EQU WRITING TO GRAPH SCREEN
+
#define g_style_active 5 //1 = GRAPH STYLES ARE ENABLED, USE THEM
+
#define cmp_mod_box 6 //1 = DOING MOD BOX PLOT COMPUTATION
+
#define textWrite 7
+
//----------------------------------------------------------------------
+
#define newIndicFlags 0x15
+
#define extraIndic 0
+
#define saIndic 1
+
//3 has something to do with stat/list editor
+
//----------------------------------------------------------------------
+
#define interruptFlags 0x16
+
#define secondTimerEnabled 0 //1 = second hardware timer enabled
+
#define batteryFlags 0x16
+
#define batteriesGood 2 //1 = batteries good, I think this being reset will force the calc to shut off, used in USB error handler
+
//----------------------------------------------------------------------
+
#define smartFlags 0x17
+
#define smarter_mask 3
+
#define smarter_test 1
+
#define smartGraph 0
+
#define smartGraph_inv 1
+
//----------------------------------------------------------------------
+
#define traceFlags 0x18
+
#define grfExpr 0 //set to hide expression while tracing
+
//----------------------------------------------------------------------
+
//There is a flag 19h.
+
//----------------------------------------------------------------------
+
#define statFlags2 0x1A
+
#define statDiagnosticsOn 0 //1 = stat diagnostics on
+
//----------------------------------------------------------------------
+
#define linkFlags 0x1B
+
#define IDis95h 1 //1 = link routines use machine ID 95h (CBL)
+
#define IDis82h 2 //1 = link routines use machine ID 82h (TI-82)
+
#define IDis83h 3 //1 = link routines use machine ID 83h (TI-83)
+
#define IDis03h 4 //1 = link routines use machine ID 03h (PC to TI-83)
+
#define USBenabled 5 //1 = use USB port first, or at least try to
+
//----------------------------------------------------------------------
+
//There is a flag 1Ch (stats-related).
+
//----------------------------------------------------------------------
+
//There is a flag 1Dh.
+
//----------------------------------------------------------------------
+
//There is a flag 1Eh.
+
//----------------------------------------------------------------------
+
#define varTypeMask 0x1F //is this a flag byte? yes
+
#define varGraphRef 6
+
//----------------------------------------------------------------------
+
#define graphFlags2 0x1F
+
#define splitOverride 3 //0 = force full screen with ParseInp, or something
+
//----------------------------------------------------------------------
+
#define asm_Flag1 0x21 //ASM CODING
+
#define asm_Flag2 0x22 //ASM CODING
+
#define asm_Flag3 0x23 //ASM CODING
+
//----------------------------------------------------------------------
+
#define arcFlag 0x24
+
#define checkBatteryLevelFirst 0 //1 = check battery levels in Arc_Unarc first and throw error if low
+
+
#define getSendFlg 0x24
+
#define comFailed 1 //1 = Get/Send Communication Failed
+
+
#define selfTestFlag 0x24
+
#define resetOnPowerOn 2 //1 = Force RAM reset when APD disabled on next power on
+
+
#define appLwrCaseFlag 0x24
+
#define lwrCaseActive 3
+
//----------------------------------------------------------------------
+
#define contextFlags 0x25
+
#define nocxPutAway 5 //1 = do not call cxPutAway routine
+
//----------------------------------------------------------------------
+
#define groupFlags 0x26 //used temporarily in Arc_Unarc
+
#define inGroup 1 //1 = IN GROUP CONTEXT
+
#define noCompletionByte 2 //1 = do not write 0FCh when calling Arc_Unarc, leave as 0FEh
+
#define noDataWrite 3 //1 = do not write data when calling Arc_Unarc, nor size bytes
+
#define writeSizeBytesOnly 5 //1 = only write size bytes when calling Arc_Unarc
+
//----------------------------------------------------------------------
+
//There is a flag 27h.
+
//----------------------------------------------------------------------
+
#define APIFlg 0x28
+
#define appAllowContext 0 //App wants context changes to happen
+
//1 set to ignore a key after returning from rawkeyhook
+
//2 set to send this key back?
+
//3
+
#define appRunning 4 //app is currently running
+
//5
+
//6
+
#define appRetKeyOff 7 //1 = GetKey returns kOff when [2nd]+[ON] pressed
+
//----------------------------------------------------------------------
+
#define apiFlg2 0x29
+
//----------------------------------------------------------------------
+
#define apiFlg3 0x2A
+
//1 set means using small font?
+
//----------------------------------------------------------------------
+
#define apiFlg4 0x2B
+
#define cellOverride 1 //use cell override
+
#define fullScrnDraw 2 //DRAW INTO LAST ROW/COL OF SCREEN
+
//----------------------------------------------------------------------
+
#define mouseFlag1 0x2C
+
//----------------------------------------------------------------------
+
#define mouseFlag2 0x2D //might want to keep this always reset
+
//----------------------------------------------------------------------
+
#define xapFlag0 0x2E //external app flags, do not use 0,(iy+2Eh) (used by mouse routines)
+
#define xapFlag1 0x2F
+
#define xapFlag2 0x30
+
#define xapFlag3 0x31
+
//----------------------------------------------------------------------
+
#define fontFlags 0x32
+
#define fracDrawLFont 2
+
#define fracTallLFont 3
+
#define customFont 7
+
//----------------------------------------------------------------------
+
#define hookflags1 0x33 //also scriptFlag, rclFlag2, backGroundLink
+
#define alt_On 0 //run ONSCRPT at startup
+
#define alt_Off 1 //run OFFSCRPT at shutdown
+
#define useRclQueueEnd 2 //1 = external mode
+
#define ignoreBPLink 3 //1 = override flag for link activity hook
+
#define bPLinkOn 4 //1 = link activity hook active
+
#define enableKeyEcho 5 //1 = sends keypresses back to connected calc as remote control packets (with GetCSC vs. GetKey codes...really dumb, TI)
+
#define noTempDelete 6 //1 = do not delete temporary programs at homescreen
+
//----------------------------------------------------------------------
+
#define hookflags2 0x34 //also sysHookFlg
+
#define getCSCHookActive 0 //1 = GetCSC hook active
+
#define libraryHookActive 1 //1 = library hook active
+
//2 This is set in the OS, but never referenced and the code is never executed
+
#define homescreenHookActive 4 //1 = homescreen hook active
+
#define rawKeyHookActive 5 //1 = raw key hook active
+
#define catalog2HookActive 6 //1 = catalog 2 hook active
+
#define cursorHookActive 7 //1 = cursor hook active
+
//----------------------------------------------------------------------
+
#define hookflags3 0x35 //also sysHookFlg1
+
#define tokenHookActive 0 //1 = token hook active
+
#define localizeHookActive 1 //1 = localize hook active
+
#define windowHookActive 2 //1 = window hook active
+
#define graphHookActive 3 //1 = graph hook active
+
#define yEquHookActive 4 //1 = Y= hook active
+
#define fontHookActive 5 //1 = font hook active
+
#define regraphHookActive 6 //1 = regraph hook active
+
#define drawingHookActive 7 //1 = drawing hook active
+
//----------------------------------------------------------------------
+
#define hookflags4 0x36 //also sysHookFlag2
+
#define traceHookActive 0 //1 = trace hook active
+
#define parserHookActive 1 //1 = parser hook active
+
#define appChangeHookActive 2 //1 = app change hook active
+
#define catalog1HookActive 3 //1 = catalog 1 hook active
+
#define helpHookActive 4 //1 = help hook active
+
#define cxRedispHookActive 5 //1 = cxRedisp hook active
+
#define menuHookActive 6 //1 = menu hook active
+
#define silentLinkHookActive 7 //1 = silent link hook active
+
//----------------------------------------------------------------------
+
//hookflags2Override equ 37h ;set corresponding bit to kill iy+35h hook when executing app
+
//----------------------------------------------------------------------
+
//hookflags3Override equ 38h ;set corresponding bit to kill iy+36h hook when executing app
+
//----------------------------------------------------------------------
+
//hookflags4Override equ 39h ;set corresponding bit to kill iy+37h hook when executing app
+
//----------------------------------------------------------------------
+
//hookflags5 equ 3Ah
+
#define usbActivityHookActive 0 //1 = USB activity hook active
+
//----------------------------------------------------------------------
+
#define plotFlag3 0x3C
+
#define bufferOnly 0
+
#define useFastCirc 4
+
//----------------------------------------------------------------------
+
#define dBKeyFlags 0x3D
+
#define keyDefaultsF 6 //1 = GetKey returns extended keycodes with TI-Keyboard
+
//----------------------------------------------------------------------
+
#define silentLinkFlags 0x3E
+
#define silentLinkActive 0 //1 = SE/84+ silent link is active
+
+
#define extraHookFlags 0x3E
+
#define checkCatalog2HookVer 3 //1 = check catalog 2 hook's version before executing it (and error or take other action if so)
+
#define openLibActive 4 //1 = OpenLib( was successfully called on a Flash application (ExecLib will error if zero)
+
//5
+
//----------------------------------------------------------------------
+
#define clockFlags 0x3F
+
#define notMDYMode 0 //0 = M/D/Y format
+
#define isYMDMode 1 //1 = Y/M/D format
+
#define is24Hour 2 //1 = clock in 24 hour mode
+
#define inAfternoon 3 //1 = current time is in afternoon (PM) (I think)
+
#define useTokensInString 4 //1 = use tokens instead of characters when displaying clock as string (for getTmStr and getDtStr vs. MODE screen) (keep this reset)
+
#define displayClock 5 //1 = display clock (this is set every second, reset otherwise)
+
#define clockOn 6 //1 = clock on
+
//----------------------------------------------------------------------
+
#define USBFlag1 0x40
+
//1 Reset in I/O receiving code, doesn't seem to be used anywhere else
+
#define usbReceiveZone1 2 //1 = receive to RAM pages 3/2 ("zone 1")
+
//----------------------------------------------------------------------
+
#define USBFlag2 0x41
+
//0
+
//2
+
#define noUSBHostInit 3 //1 = _InitSpecificUSBDevice must fail
+
#define usbDataWaiting 5
+
//6
+
//7
+
//----------------------------------------------------------------------
+
#define USBFlag3 0x42
+
//----------------------------------------------------------------------
+
#define USBFlag4 0x43
+
#define usbTimeoutError 0 //1 = USB timeout error (crystal timer expired)
+
//----------------------------------------------------------------------
+
+
//Character Font Equates
+
//-------------------------------
+
#define LrecurN 0x001
+
#define LrecurU 0x002
+
#define LrecurV 0x003
+
#define LrecurW 0x004
+
#define Lconvert 0x005
+
#define LsqUp 0x006
+
#define LsqDown 0x007
+
#define Lintegral 0x008
+
#define Lcross 0x009
+
#define LboxIcon 0x00A
+
#define LcrossIcon 0x00B
+
#define LdotIcon 0x00C
+
#define LsubT 0x00D //small capital T for parametric mode.
+
#define LcubeR 0x00E //slightly different 3 for cubed root.
+
#define LhexF 0x00F
+
#define Lroot 0x010
+
#define Linverse 0x011
+
#define Lsquare 0x012
+
#define Langle 0x013
+
#define Ldegree 0x014
+
#define Lradian 0x015
+
#define Ltranspose 0x016
+
#define LLE 0x017
+
#define LNE 0x018
+
#define LGE 0x019
+
#define Lneg 0x01A
+
#define Lexponent 0x01B
+
#define Lstore 0x01C
+
#define Lten 0x01D
+
#define LupArrow 0x01E
+
#define LdownArrow 0x01F
+
#define Lspace 0x020
+
#define Lexclam 0x021
+
#define Lquote 0x022
+
#define Lpound 0x023
+
#define Lfourth 0x024
+
#define Lpercent 0x025
+
#define Lampersand 0x026
+
#define Lapostrophe 0x027
+
#define LlParen 0x028
+
#define LrParen 0x029
+
#define Lasterisk 0x02A
+
#define LplusSign 0x02B
+
#define Lcomma 0x02C
+
#define Ldash 0x02D
+
#define Lperiod 0x02E
+
#define Lslash 0x02F
+
#define L0 0x030
+
#define L1 0x031
+
#define L2 0x032
+
#define L3 0x033
+
#define L4 0x034
+
#define L5 0x035
+
#define L6 0x036
+
#define L7 0x037
+
#define L8 0x038
+
#define L9 0x039
+
#define Lcolon 0x03A
+
#define Lsemicolon 0x03B
+
#define LLT 0x03C
+
#define LEQ 0x03D
+
#define LGT 0x03E
+
#define Lquestion 0x03F
+
#define LatSign 0x040
+
#define LcapA 0x041
+
#define LcapB 0x042
+
#define LcapC 0x043
+
#define LcapD 0x044
+
#define LcapE 0x045
+
#define LcapF 0x046
+
#define LcapG 0x047
+
#define LcapH 0x048
+
#define LcapI 0x049
+
#define LcapJ 0x04A
+
#define LcapK 0x04B
+
#define LcapL 0x04C
+
#define LcapM 0x04D
+
#define LcapN 0x04E
+
#define LcapO 0x04F
+
#define LcapP 0x050
+
#define LcapQ 0x051
+
#define LcapR 0x052
+
#define LcapS 0x053
+
#define LcapT 0x054
+
#define LcapU 0x055
+
#define LcapV 0x056
+
#define LcapW 0x057
+
#define LcapX 0x058
+
#define LcapY 0x059
+
#define LcapZ 0x05A
+
#define Ltheta 0x05B
+
#define Lbackslash 0x05C
+
#define LrBrack 0x05D
+
#define Lcaret 0x05E
+
#define Lunderscore 0x05F
+
#define Lbackquote 0x060
+
#define La 0x061
+
#define Lb 0x062
+
#define Lc 0x063
+
#define Ld 0x064
+
#define Le 0x065
+
#define Lf 0x066
+
#define Lg 0x067
+
#define Lh 0x068
+
#define Li 0x069
+
#define Lj 0x06A
+
#define Lk 0x06B
+
#define Ll 0x06C
+
#define Lm 0x06D
+
#define Ln 0x06E
+
#define Lo 0x06F
+
#define Lp 0x070
+
#define Lq 0x071
+
#define Lr 0x072
+
#define Ls 0x073
+
#define Lt 0x074
+
#define Lu 0x075
+
#define Lv 0x076
+
#define Lw 0x077
+
#define Lx 0x078
+
#define Ly 0x079
+
#define Lz 0x07A
+
#define LlBrace 0x07B
+
#define Lbar 0x07C
+
#define LrBrace 0x07D
+
#define Ltilde 0x07E
+
#define LinvEQ 0x07F
+
#define Lsub0 0x080
+
#define Lsub1 0x081
+
#define Lsub2 0x082
+
#define Lsub3 0x083
+
#define Lsub4 0x084
+
#define Lsub5 0x085
+
#define Lsub6 0x086
+
#define Lsub7 0x087
+
#define Lsub8 0x088
+
#define Lsub9 0x089
+
#define LcapAAcute 0x08A
+
#define LcapAGrave 0x08B
+
#define LcapACaret 0x08C
+
#define LcapADier 0x08D
+
#define LaAcute 0x08E
+
#define LaGrave 0x08F
+
#define LaCaret 0x090
+
#define LaDier 0x091
+
#define LcapEAcute 0x092
+
#define LcapEGrave 0x093
+
#define LcapECaret 0x094
+
#define LcapEDier 0x095
+
#define LeAcute 0x096
+
#define LeGrave 0x097
+
#define LeCaret 0x098
+
#define LeDier 0x099
+
#define LcapIAcute 0x09A
+
#define LcapIGrave 0x09B
+
#define LcapICaret 0x09C
+
#define LcapIDier 0x09D
+
#define LiAcute 0x09E
+
#define LiGrave 0x09F
+
#define LiCaret 0x0A0
+
#define LiDier 0x0A1
+
#define LcapOAcute 0x0A2
+
#define LcapOGrave 0x0A3
+
#define LcapOCaret 0x0A4
+
#define LcapODier 0x0A5
+
#define LoAcute 0x0A6
+
#define LoGrave 0x0A7
+
#define LoCaret 0x0A8
+
#define LoDier 0x0A9
+
#define LcapUAcute 0x0AA
+
#define LcapUGrave 0x0AB
+
#define LcapUCaret 0x0AC
+
#define LcapUDier 0x0AD
+
#define LuAcute 0x0AE
+
#define LuGrave 0x0AF
+
#define LuCaret 0x0B0
+
#define LuDier 0x0B1
+
#define LcapCCed 0x0B2
+
#define LcCed 0x0B3
+
#define LcapNTilde 0x0B4
+
#define LnTilde 0x0B5
+
#define Laccent 0x0B6
+
#define Lgrave 0x0B7
+
#define Ldieresis 0x0B8
+
#define LquesDown 0x0B9
+
#define LexclamDown 0x0BA
+
#define Lalpha 0x0BB
+
#define Lbeta 0x0BC
+
#define Lgamma 0x0BD
+
#define LcapDelta 0x0BE
+
#define Ldelta 0x0BF
+
#define Lepsilon 0x0C0
+
#define LlBrack 0x0C1
+
#define Llambda 0x0C2
+
#define Lmu 0x0C3
+
#define Lpi 0x0C4
+
#define Lrho 0x0C5
+
#define LcapSigma 0x0C6
+
#define Lsigma 0x0C7
+
#define Ltau 0x0C8
+
#define Lphi 0x0C9
+
#define LcapOmega 0x0CA
+
#define LxMean 0x0CB
+
#define LyMean 0x0CC
+
#define LsupX 0x0CD
+
#define Lellipsis 0x0CE
+
#define Lleft 0x0CF
+
#define Lblock 0x0D0
+
#define Lper 0x0D1
+
#define Lhyphen 0x0D2
+
#define Larea 0x0D3
+
#define Ltemp 0x0D4
+
#define Lcube 0x0D5
+
#define Lenter 0x0D6
+
#define LimagI 0x0D7
+
#define Lphat 0x0D8
+
#define Lchi 0x0D9
+
#define LstatF 0x0DA
+
#define Llne 0x0DB
+
#define LlistL 0x0DC
+
#define LfinanN 0x0DD
+
#define L2_r_paren 0x0DE
+
#define LblockArrow 0x0DF
+
#define LcurO 0x0E0
+
#define LcurO2 0x0E1
+
#define LcurOcapA 0x0E2
+
#define LcurOa 0x0E3
+
#define LcurI 0x0E4
+
#define LcurI2 0x0E5
+
#define LcurIcapA 0x0E6
+
#define LcurIa 0x0E7
+
#define LGline 0x0E8 // = 0
+
#define LGthick 0x0E9 // = 1
+
#define LGabove 0x0EA // = 2
+
#define LGbelow 0x0EB // = 3
+
#define LGpath 0x0EC // = 4
+
#define LGanimate 0x0ED // = 5
+
#define LGdot 0x0EE // = 6
+
#define LUpBlk 0x0EF //Up arrow and Block in solver
+
#define LDnBlk 0x0F0 //Down arrow and Block in solver
+
#define LcurFull 0x0F1 //note: must be last char (PutMap checks)
+
+
//(MenuCurrent) Values
+
//--------------------------
+
#define mConfirmation 0x01
+
#define mApps 0x02
+
#define mProgramHome 0x03
+
#define mPrgm_Run 0x00
+
#define mPrgm_Edit 0x01
+
#define mPrgm_New 0x02
+
#define mZoom 0x04
+
#define mZoom_Zoom 0x00
+
#define mZoom_Memory 0x01
+
#define mDraw 0x05
+
#define mDraw_Draw 0x00
+
#define mDraw_Points 0x01
+
#define mDraw_Store 0x02
+
#define mStatPlots 0x06
+
#define mStat 0x07
+
#define mStat_Edit 0x00
+
#define mStat_Calc 0x01
+
#define mStat_Tests 0x02
+
#define mMath 0x08
+
#define mMath_Math 0x00
+
#define mMath_Number 0x01
+
#define mMath_Complex 0x02
+
#define mMath_Prob 0x03
+
#define mTest 0x09
+
#define mTest_Test 0x00
+
#define mTest_Logic 0x01
+
#define mVars 0x0A
+
#define mVars_Vars 0x00
+
#define mVars_YVars 0x01
+
#define mMemory 0x0C
+
#define mMatrix 0x0D
+
#define mMatrix_Name 0x00
+
#define mMatrix_Math 0x01
+
#define mMatrix_Edit 0x02
+
#define mDistr 0x0E
+
#define mDistr_Distr 0x00
+
#define mDistr_Draw 0x01
+
#define mAngle 0x0F
+
#define mList 0x10
+
#define mList_Names 0x00
+
#define mList_Ops 0x01
+
#define mList_Math 0x02
+
#define mCalculate 0x11
+
#define mVarsWin 0x14
+
#define mVarsWin_XY 0x00
+
#define mVarsWin_TTh 0x01
+
#define mVarsWin_UVW 0x02
+
#define mVarsZoom 0x15
+
#define mVarsZoom_ZXY 0x00
+
#define mVarsZoom_ZT 0x01
+
#define mVarsZoom_UVW 0x02
+
#define mVarsGDB 0x16
+
#define mVarsPics 0x17
+
#define mVarsStrings 0x18
+
#define mVarsStat 0x19
+
#define mVarsStat_XY 0x00
+
#define mVarsStat_Sigma 0x01
+
#define mVarsStat_EQ 0x02
+
#define mVarsStat_Test 0x03
+
#define mVarsStat_Pts 0x04
+
#define mVarsTable 0x1A
+
#define mVarsYEqu 0x1B
+
#define mVarsParametric 0x1C
+
#define mVarsPolar 0x1D
+
#define mVarsFnOnOff 0x1E
+
#define mMemReset 0x1F
+
#define mMemReset_RAM 0x00
+
#define mMemReset_ROM 0x01
+
#define mMemReset_All 0x02
+
#define mMemMgmtDel 0x20
+
#define mMemResetDefaults 0x21
+
#define mMemResetRAMAll 0x23
+
#define mMemResetROMVars 0x24
+
#define mMemResetROMApps 0x25
+
#define mMemResetROMAll 0x26
+
#define mMemResetAll 0x27
+
#define mGroup 0x28
+
#define mGroup_New 0x00
+
#define mGroup_Ungroup 0x01
+
#define mGroupVars 0x29
+
#define mProgramEdit 0x2A
+
#define mPrgmEd_Ctrl 0x00
+
#define mPrgmEd_IO 0x01
+
#define mPrgmEd_Exec 0x02
+
#define mPrgmZoom 0x2B
+
#define mPrgmZoom_Zoom 0x00
+
#define mPrgmZoom_Mem 0x01
+
#define mPrgmDraw 0x2C
+
#define mPrgmDraw_Draw 0x00
+
#define mPrgmDraw_Pt 0x01
+
#define mPrgmDraw_Store 0x02
+
#define mPrgmStatPlot 0x2D
+
#define mPrgmSP_Plots 0x00
+
#define mPrgmSP_Type 0x01
+
#define mPrgmSP_Mark 0x02
+
#define mPrgmStat 0x2E
+
#define mPrgmStat_Edit 0x00
+
#define mPrgmStat_Calc 0x01
+
#define mPrgmStat_Tests 0x02
+
#define mPrgmMath 0x2F
+
#define mPrgmMath_Math 0x00
+
#define mPrgmMath_Num 0x01
+
#define mPrgmMath_Cplx 0x02
+
#define mPrgmMath_Prob 0x03
+
#define mLink 0x30
+
#define mLink_Send 0x00
+
#define mLink_Recieve 0x01
+
#define mLinkTrasmit 0x31
+
#define mLinkXmit_Xmit 0x01
+
#define mGarbageCollect 0x3F
+
#define mSelectGroupVars 0x40
+
#define mSelGrpVars_Sel 0x00
+
#define mSelGrpVars_Grp 0x01
+
#define mDuplicateName 0x42
+
#define mCatalog 0x45
+
#define mFinance 0x22
+
#define mFinance_Calc 0x00
+
#define mFinance_Vars 0x01
+
+
//Keypress Equates
+
//-------------------------------
+
#define kRight 0x001
+
#define kLeft 0x002
+
#define kUp 0x003
+
#define kDown 0x004
+
#define kEnter 0x005
+
#define kAlphaEnter 0x006
+
#define kAlphaUp 0x007
+
#define kAlphaDown 0x008
+
#define kClear 0x009
+
#define kDel 0x00A
+
#define kIns 0x00B
+
#define kRecall 0x00C
+
#define kLastEnt 0x00D
+
#define kBOL 0x00E
+
#define kEOL 0x00F
+
+
#define kSelAll 0x010
+
#define kUnselAll 0x011
+
#define kLtoTI82 0x012
+
#define kBackup 0x013
+
#define kRecieve 0x014
+
#define kLnkQuit 0x015
+
#define kTrans 0x016
+
#define kRename 0x017
+
#define kOverw 0x018
+
#define kOmit 0x019
+
#define kCont 0x01A
+
#define kSendID 0x01B
+
#define kSendSW 0x01C
+
#define kYes 0x01D
+
#define kNoWay 0x01E
+
#define kvSendType 0x01F
+
#define kOverWAll 0x020
+
#define kNo 0x025
+
#define kKReset 0x026
+
#define kApp 0x027
+
#define kDoug 0x028
+
#define kListflag 0x029
+
#define menuStart 0x02B
+
#define kAreYouSure 0x02B
+
#define kAppsMenu 0x02C
+
#define kPrgm 0x02D
+
#define kZoom 0x02E
+
#define kDraw 0x02F
+
#define kSPlot 0x030
+
#define kStat 0x031
+
#define kMath 0x032
+
#define kTest 0x033
+
#define kChar 0x034
+
#define kVars 0x035
+
#define kMem 0x036
+
#define kMatrix 0x037
+
#define kDist 0x038
+
#define kAngle 0x039
+
#define kList 0x03A
+
#define kCalc 0x03B
+
#define kFin 0x03C
+
#define menuEnd kFin
+
#define kCatalog 0x03E
+
#define kInputDone 0x03F
+
#define kOff kInputDone
+
#define kQuit 0x040
+
#define appStart kQuit
+
#define kLinkIO 0x041
+
#define kMatrixEd 0x042
+
#define kStatEd 0x043
+
#define kGraph 0x044
+
#define kMode 0x045
+
#define kPrgmEd 0x046 //PROGRAM EDIT
+
#define kPrgmCr 0x047 //PROGRAM CREATE
+
#define kWindow 0x048 //RANGE EDITOR
+
#define kYequ 0x049 //EQUATION EDITOR
+
#define kTable 0x04A //TABLE EDITOR
+
#define kTblSet 0x04B //TABLE SET
+
#define kChkRAM 0x04C //CHECK RAM (About screen)
+
#define kDelMem 0x04D //DELETE MEM
+
#define kResetMem 0x04E //RESET MEM
+
#define kResetDef 0x04F //RESET DEFAULT
+
#define kPrgmInput 0x050 //PROGRAM INPUT
+
#define kZFactEd 0x051 //ZOOM FACTOR EDITOR
+
#define kError 0x052 //ERROR
+
#define kSolveTVM 0x053 //TVM SOLVER
+
#define kSolveRoot 0x054 //SOLVE EDITOR
+
#define kStatP 0x055 //stat plot
+
#define kInfStat 0x056 //Inferential Statistic
+
#define kFormat 0x057 //FORMAT
+
#define kExtApps 0x058 //External Applications. NEW
+
#define kNewApps 0x059 //New Apps for Cerberus.
+
#define append kNewApps
+
#define echoStart1 0x05A
+
#define kTrace 0x05A
+
#define kZFit 0x05B
+
#define kZIn 0x05C
+
#define kZOut 0x05D
+
#define kZPrev 0x05E
+
#define kBox 0x05F
+
#define kDecml 0x060
+
#define kSetZm 0x061
+
#define kSquar 0x062
+
#define kStd 0x063
+
#define kTrig 0x064
+
#define kUsrZm 0x065
+
#define kZSto 0x066
+
#define kZInt 0x067
+
#define kZStat 0x068
+
#define echoStart2 0x069
+
#define kSelect 0x069
+
#define kCircl 0x06A
+
#define kClDrw 0x06B
+
#define kLine 0x06C
+
#define kPen 0x06D
+
#define kPtChg 0x06E
+
#define kPtOff 0x06F
+
#define kPtOn 0x070
+
#define kVert 0x071
+
#define kHoriz 0x072
+
#define kText 0x073
+
#define kTanLn 0x074
+
#define kEval 0x075
+
#define kInters 0x076
+
#define kDYDX 0x077
+
#define kFnIntg 0x078
+
#define kRootG 0x079
+
#define kDYDT 0x07A
+
#define kDXDT 0x07B
+
#define kDRDo 0x07C
+
#define KGFMin 0x07D
+
#define KGFMax 0x07E
+
#define EchoStart 0x07F
+
#define kListName 0x07F
+
#define kAdd 0x080
+
#define kSub 0x081
+
#define kMul 0x082
+
#define kDiv 0x083
+
#define kExpon 0x084
+
#define kLParen 0x085
+
#define kRParen 0x086
+
#define kLBrack 0x087
+
#define kRBrack 0x088
+
#define kShade 0x089
+
#define kStore 0x08A
+
#define kComma 0x08B
+
#define kChs 0x08C
+
#define kDecPnt 0x08D
+
#define k0 0x08E
+
#define k1 0x08F
+
#define k2 0x090
+
#define k3 0x091
+
#define k4 0x092
+
#define k5 0x093
+
#define k6 0x094
+
#define k7 0x095
+
#define k8 0x096
+
#define k9 0x097
+
#define kEE 0x098
+
#define kSpace 0x099
+
#define kCapA 0x09A
+
#define kCapB 0x09B
+
#define kCapC 0x09C
+
#define kCapD 0x09D
+
#define kCapE 0x09E
+
#define kCapF 0x09F
+
#define kCapG 0x0A0
+
#define kCapH 0x0A1
+
#define kCapI 0x0A2
+
#define kCapJ 0x0A3
+
#define kCapK 0x0A4
+
#define kCapL 0x0A5
+
#define kCapM 0x0A6
+
#define kCapN 0x0A7
+
#define kCapO 0x0A8
+
#define kCapP 0x0A9
+
#define kCapQ 0x0AA
+
#define kCapR 0x0AB
+
#define kCapS 0x0AC
+
#define kCapT 0x0AD
+
#define kCapU 0x0AE
+
#define kCapV 0x0AF
+
#define kCapW 0x0B0
+
#define kCapX 0x0B1
+
#define kCapY 0x0B2
+
#define kCapZ 0x0B3
+
#define kVarx 0x0B4
+
#define kPi 0x0B5
+
#define kInv 0x0B6
+
#define kSin 0x0B7
+
#define kASin 0x0B8
+
#define kCos 0x0B9
+
#define kACos 0x0BA
+
#define kTan 0x0BB
+
#define kATan 0x0BC
+
#define kSquare 0x0BD
+
#define kSqrt 0x0BE
+
#define kLn 0x0BF
+
#define kExp 0x0C0
+
#define kLog 0x0C1
+
#define kALog 0x0C2
+
#define kToABC 0x0C3
+
#define kClrTbl 0x0C4
+
#define kAns 0x0C5
+
#define kColon 0x0C6
+
#define kNDeriv 0x0C7
+
#define kFnInt 0x0C8
+
#define kRoot 0x0C9
+
#define kQuest 0x0CA
+
#define kQuote 0x0CB
+
#define kTheta 0x0CC
+
#define kIf 0x0CD
+
#define kThen 0x0CE
+
#define kElse 0x0CF
+
#define kFor 0x0D0
+
#define kWhile 0x0D1
+
#define kRepeat 0x0D2
+
#define kEnd 0x0D3
+
#define kPause 0x0D4
+
#define kLbl 0x0D5
+
#define kGoto 0x0D6
+
#define kISG 0x0D7
+
#define kDSL 0x0D8
+
#define kMenu 0x0D9
+
#define kExec 0x0DA
+
#define kReturn 0x0DB
+
#define kStop 0x0DC
+
#define kInput 0x0DD
+
#define kPrompt 0x0DE
+
#define kDisp 0x0DF
+
#define kDispG 0x0E0
+
#define kDispT 0x0E1
+
#define kOutput 0x0E2
+
#define kGetKey 0x0E3
+
#define kClrHome 0x0E4
+
#define kPrtScr 0x0E5
+
#define kSinH 0x0E6
+
#define kCosH 0x0E7
+
#define kTanH 0x0E8
+
#define kASinH 0x0E9
+
#define kACosH 0x0EA
+
#define kATanH 0x0EB
+
#define kLBrace 0x0EC
+
#define kRBrace 0x0ED
+
#define kI 0x0EE
+
#define kCONSTeA 0x0EF
+
#define kPlot3 0x0F0
+
#define kFMin 0x0F1
+
#define kFMax 0x0F2
+
#define kL1A 0x0F3
+
#define kL2A 0x0F4
+
#define kL3A 0x0F5
+
#define kL4A 0x0F6
+
#define kL5A 0x0F7
+
#define kL6A 0x0F8
+
#define kunA 0x0F9
+
#define kvnA 0x0FA
+
#define kwnA 0x0FB
+
+
//THIS KEY MEANS THAT IT IS A 2 BYTE KEYCODE
+
//THERE ARE 2 OF THESE KEYS; BE CAREFUL WITH USAGE
+
//------------------------------------------------
+
#define kExtendEcho2 0x0FC
+
+
//THIS KEY MEANS THAT THE KEY PRESS IS ONE THAT ECHOS
+
//INTO A BUFFER, AND IT IS A 2 BYTE KEY CODE, GO LOOK AT
+
//(EXTECHO) FOR THE KEY VALUE
+
//------------------------------------------------------
+
#define kExtendEcho 0x0FE
+
+
#define kE1BT 0
+
#define kDrawInv kE1BT
+
#define kDrawF kE1BT+1
+
#define kPixelOn kE1BT+2
+
#define kPixelOff kE1BT+3
+
#define kPxlTest kE1BT+4
+
#define kRCGDB kE1BT+5
+
#define kRCPic kE1BT+6
+
#define kSTGDB kE1BT+7
+
#define kSTPic kE1BT+8
+
#define kAbs kE1BT+9
+
#define kTEqu kE1BT+10 //==
+
#define kTNoteQ kE1BT+11 //<>
+
#define kTGT kE1BT+12 //>
+
#define kTGTE kE1BT+13 //>=
+
#define kTLT kE1BT+14 //<
+
#define kTLTE kE1BT+15 //<=
+
#define kAnd kE1BT+16
+
#define kOr kE1BT+17
+
#define kXor kE1BT+18
+
#define kNot kE1BT+19
+
#define kLR1 kE1BT+20
+
#define kXRoot kE1BT+21
+
#define kCube kE1BT+22
+
#define kCbRt kE1BT+23 //Cube ROOT
+
#define kToDec kE1BT+24
+
#define kCubicR kE1BT+25
+
#define kQuartR kE1BT+26
+
#define kPlot1 kE1BT+27
+
#define kPlot2 kE1BT+28
+
#define kRound kE1BT+29
+
#define kIPart kE1BT+30
+
#define kFPart kE1BT+31
+
#define kInt kE1BT+32
+
#define kRand kE1BT+33
+
#define kNPR kE1BT+34
+
#define kNCR kE1BT+35
+
#define kXFactorial kE1BT+36
+
#define kRad kE1BT+37
+
#define kDegr kE1BT+38 //DEGREES CONV
+
#define kAPost kE1BT+39
+
#define kToDMS kE1BT+40
+
#define kRToPo kE1BT+41 //R
+
#define kRToPr kE1BT+42
+
#define kPToRx kE1BT+43
+
#define kPToRy kE1BT+44
+
#define kRowSwap kE1BT+45
+
#define kRowPlus kE1BT+46
+
#define kTimRow kE1BT+47
+
#define kTRowP kE1BT+48
+
#define kSortA kE1BT+49
+
#define kSortD kE1BT+50
+
#define kSeq kE1BT+51
+
#define kMin kE1BT+52
+
#define kMax kE1BT+53
+
#define kMean kE1BT+54
+
#define kMedian kE1BT+55
+
#define kSum kE1BT+56
+
#define kProd kE1BT+57
+
#define kDet kE1BT+58
+
#define kTransp kE1BT+59
+
#define kDim kE1BT+60
+
#define kFill kE1BT+61
+
#define kIdent kE1BT+62
+
#define kRandm kE1BT+63
+
#define kAug kE1BT+64
+
#define kOneVar kE1BT+65
+
#define kTwoVar kE1BT+66
+
#define kLR kE1BT+67
+
#define kLRExp kE1BT+68
+
#define kLRLn kE1BT+69
+
#define kLRPwr kE1BT+70
+
#define kMedMed kE1BT+71
+
#define kQuad kE1BT+72
+
#define kClrLst kE1BT+73
+
#define kHist kE1BT+74
+
#define kxyLine kE1BT+75
+
#define kScatter kE1BT+76
+
#define kmRad kE1BT+77
+
#define kmDeg kE1BT+78
+
#define kmNormF kE1BT+79
+
#define kmSci kE1BT+80
+
#define kmEng kE1BT+81
+
#define kmFloat kE1BT+82
+
#define kFix kE1BT+83
+
#define kSplitOn kE1BT+84
+
#define kFullScreen kE1BT+85
+
#define kStndrd kE1BT+86
+
#define kParam kE1BT+87
+
#define kPolar kE1BT+88
+
#define kSeqG kE1BT+89
+
#define kAFillOn kE1BT+90
+
#define kAFillOff kE1BT+91
+
#define kACalcOn kE1BT+92
+
#define kACalcOff kE1BT+93
+
#define kFNOn kE1BT+94
+
#define kFNOff kE1BT+95
+
#define kPlotsOn kE1BT+96
+
#define kPlotsOff kE1BT+97
+
#define kPixelChg kE1BT+98
+
#define kSendMBL kE1BT+99
+
#define kRecvMBL kE1BT+100
+
#define kBoxPlot kE1BT+101
+
#define kBoxIcon kE1BT+102
+
#define kCrossIcon kE1BT+103
+
#define kDotIcon kE1BT+104
+
#define kE2BT kE1BT+105
+
#define kSeqential kE2BT
+
#define kSimulG kE2BT+1
+
#define kPolarG kE2BT+2
+
#define kRectG kE2BT+3
+
#define kCoordOn kE2BT+4
+
#define kCoordOff kE2BT+5
+
#define kDrawLine kE2BT+6
+
#define kDrawDot kE2BT+7
+
#define kAxisOn kE2BT+8
+
#define kAxisOff kE2BT+9
+
#define kGridOn kE2BT+10
+
#define kGridOff kE2BT+11
+
#define kLblOn kE2BT+12
+
#define kLblOff kE2BT+13
+
#define kL1 kE2BT+14
+
#define kL2 kE2BT+15
+
#define kL3 kE2BT+16
+
#define kL4 kE2BT+17
+
#define kL5 kE2BT+18
+
#define kL6 kE2BT+19
+
+
//These keys are laid on top of existing keys to
+
//enable localization in the inferential stats editor.
+
//----------------------------------------------------
+
#define kinfData kL1
+
#define kinfStats kL1+1
+
#define kinfYes kL1+2
+
#define kinfNo kL1+3
+
#define kinfCalc kL1+4
+
#define kinfDraw kL1+5
+
#define kinfAlt1ne kL1+6
+
#define kinfAlt1lt kL1+7
+
#define kinfAlt1gt kL1+8
+
#define kinfAlt2ne kL1+9
+
#define kinfAlt2lt kL1+10
+
#define kinfAlt2gt kL1+11
+
#define kinfAlt3ne kL1+12
+
#define kinfAlt3lt kL1+13
+
#define kinfAlt3gt kL1+14
+
#define kinfAlt4ne kL1+15
+
#define kinfAlt4lt kL1+16
+
#define kinfAlt4gt kL1+17
+
#define kinfAlt5ne kL1+18
+
#define kinfAlt5lt kL1+19
+
#define kinfAlt5gt kL1+20
+
#define kinfAlt6ne kL1+21
+
#define kinfAlt6lt kL1+22
+
#define kinfAlt6gt kL1+23
+
#define kMatA kE2BT+20
+
#define kMatB kE2BT+21
+
#define kMatC kE2BT+22
+
#define kMatD kE2BT+23
+
#define kMatE kE2BT+24
+
#define kXmin kE2BT+25
+
#define kXmax kE2BT+26
+
#define kXscl kE2BT+27
+
#define kYmin kE2BT+28
+
#define kYmax kE2BT+29
+
#define kYscl kE2BT+30
+
#define kTmin kE2BT+31
+
#define kTmax kE2BT+32
+
#define kTStep kE2BT+33
+
#define kOmin kE2BT+34
+
#define kOmax kE2BT+35
+
#define kOStep kE2BT+36
+
#define ku0 kE2BT+37
+
#define kv0 kE2BT+38
+
#define knMin kE2BT+39
+
#define knMax kE2BT+40
+
#define kDeltaY kE2BT+41
+
#define kDeltaX kE2BT+42
+
#define kZXmin kE2BT+43
+
#define kZXmax kE2BT+44
+
#define kZXscl kE2BT+45
+
#define kZYmin kE2BT+46
+
#define kZYmax kE2BT+47
+
#define kZYscl kE2BT+48
+
#define kZTmin kE2BT+49
+
#define kZTmax kE2BT+50
+
#define kZTStep kE2BT+51
+
#define kZOmin kE2BT+52
+
#define kZOmax kE2BT+53
+
#define kZOStep kE2BT+54
+
#define kZu0 kE2BT+55
+
#define kZv0 kE2BT+56
+
#define kZnMin kE2BT+57
+
#define kZnMax kE2BT+58
+
#define kDelLast kE2BT+59
+
#define kSinReg kE2BT+60
+
#define kConstE kE2BT+61
+
#define kPic1 kE2BT+62
+
#define kPic2 kE2BT+63
+
#define kPic3 kE2BT+64
+
#define kDelVar kE2BT+65
+
#define kGetCalc kE2BT+66
+
#define kRealM kE2BT+67
+
#define kPolarM kE2BT+68
+
#define kRectM kE2BT+69
+
#define kuv kE2BT+70 //U vs V
+
#define kvw kE2BT+71 //V vs W
+
#define kuw kE2BT+72 //U vs W
+
#define kFinPMTend kE2BT+73
+
#define kFinPMTbeg kE2BT+74
+
#define kGraphStyle kE2BT+75
+
#define kExprOn kE2BT+76
+
#define kExprOff kE2BT+77
+
#define kStatA kE2BT+78
+
#define kStatB kE2BT+79
+
#define kStatC kE2BT+80
+
#define kCorr kE2BT+81
+
#define kStatD kE2BT+82
+
#define kStatE kE2BT+83
+
#define kRegEq kE2BT+84
+
#define kMinX kE2BT+85
+
#define kQ1 kE2BT+86
+
#define kMD kE2BT+87
+
#define kQ3 kE2BT+88
+
#define kMaxX kE2BT+89
+
#define kStatX1 kE2BT+90
+
#define kStatY1 kE2BT+91
+
#define kStatX2 kE2BT+92
+
#define kStatY2 kE2BT+93
+
#define kStatX3 kE2BT+94
+
#define kStatY3 kE2BT+95
+
#define kTblMin kE2BT+96
+
#define kTblStep kE2BT+97
+
#define kSetupLst kE2BT+98
+
#define kClrAllLst kE2BT+99
+
#define kLogistic kE2BT+100
+
#define kZTest kE2BT+101
+
#define kTTest kE2BT+102
+
#define k2SampZTest kE2BT+103
+
#define k2SampTTest kE2BT+104
+
#define k1PropZTest kE2BT+105
+
#define k2PropZTest kE2BT+106
+
#define kChiTest kE2BT+107
+
#define k2SampFTest kE2BT+108
+
#define kZIntVal kE2BT+109
+
#define kTIntVal kE2BT+110
+
#define k2SampTInt kE2BT+111
+
#define k2SampZInt kE2BT+112
+
#define k1PropZInt kE2BT+113
+
#define k2PropZInt kE2BT+114
+
#define kDNormal kE2BT+115
+
#define kInvNorm kE2BT+116
+
#define kDT kE2BT+117
+
#define kChi kE2BT+118
+
#define kDF kE2BT+119
+
#define kBinPDF kE2BT+120
+
#define kBinCDF kE2BT+121
+
#define kPoiPDF kE2BT+122
+
#define kPoiCDF kE2BT+123
+
#define kun kE2BT+124
+
#define kvn kE2BT+125
+
#define kwn kE2BT+126
+
#define kRecn kE2BT+127
+
#define kPlotStart kE2BT+128
+
#define kZPlotStart kE2BT+129 //recursion n
+
#define kXFact kE2BT+130 //PlotStart
+
#define kYFact kE2BT+131 //ZPlotStart
+
#define kANOVA kE2BT+132 //XFact
+
#define kMaxY kE2BT+133 //YFact
+
#define kWebOn kE2BT+134 //MinY
+
#define kWebOff kE2BT+135 //MaxY
+
#define kTblInput kE2BT+136 //WEB ON
+
#define kGeoPDF kE2BT+137 //WEB OFF
+
#define kGeoCDF kE2BT+138 //WEB OFF
+
#define kShadeNorm kE2BT+139
+
#define kShadeT kE2BT+140
+
#define kShadeChi kE2BT+141
+
#define kShadeF kE2BT+142
+
#define kPlotStep kE2BT+143
+
#define kZPlotStep kE2BT+144
+
#define kLinRegtTest kE2BT+145
+
#define KMGT kE2BT+146 //VERT SPLIT
+
#define kSelectA kE2BT+147
+
#define kZFitA kE2BT+148
+
#define kE2BT_End kZFitA
+
+
//More 2 Byte Keys
+
//------------------------------------
+
#define kE2BT2 0
+
#define kGDB1 kE2BT2
+
#define kGDB2 kE2BT2+1
+
#define kGDB3 kE2BT2+2
+
#define kY1 kE2BT2+3
+
#define kY2 kE2BT2+4
+
#define kY3 kE2BT2+5
+
#define kY4 kE2BT2+6
+
#define kY5 kE2BT2+7
+
#define kY6 kE2BT2+8
+
#define kY7 kE2BT2+9
+
#define kY8 kE2BT2+10
+
#define kY9 kE2BT2+11
+
#define kY0 kE2BT2+12
+
#define kX1T kE2BT2+13
+
#define kY1T kE2BT2+14
+
#define kX2T kE2BT2+15
+
#define kY2T kE2BT2+16
+
#define kX3T kE2BT2+17
+
#define kY3T kE2BT2+18
+
#define kX4T kE2BT2+19
+
#define kY4T kE2BT2+20
+
#define kX5T kE2BT2+21
+
#define kY5T kE2BT2+22
+
#define kX6T kE2BT2+23
+
#define kY6T kE2BT2+24
+
#define kR1 kE2BT2+25
+
#define kR2 kE2BT2+26
+
#define kR3 kE2BT2+27
+
#define kR4 kE2BT2+28
+
#define kR5 kE2BT2+29
+
#define kR6 kE2BT2+30
+
#define kGDB4 kE2BT2+31
+
#define kGDB5 kE2BT2+32
+
#define kGDB6 kE2BT2+33
+
#define kPic4 kE2BT2+34
+
#define kPic5 kE2BT2+35
+
#define kPic6 kE2BT2+36
+
#define kGDB7 kE2BT2+37
+
#define kGDB8 kE2BT2+38
+
#define kGDB9 kE2BT2+39
+
#define kGDB0 kE2BT2+40
+
#define kPic7 kE2BT2+41
+
#define kPic8 kE2BT2+42
+
#define kPic9 kE2BT2+43
+
#define kPic0 kE2BT2+44
+
#define kStatN kE2BT2+45
+
#define kXMean kE2BT2+46
+
#define kConj kE2BT2+47
+
#define kReal kE2BT2+48
+
#define kFAngle kE2BT2+49
+
#define kLCM kE2BT2+50
+
#define kGCD kE2BT2+51
+
#define kRandInt kE2BT2+52
+
#define kRandNorm kE2BT2+53
+
#define kToPolar kE2BT2+54
+
#define kToRect kE2BT2+55
+
#define kYMean kE2BT2+56
+
#define kStdX kE2BT2+57
+
#define kStdX1 kE2BT2+58
+
#define kw0 kE2BT2+59
+
#define kMatF kE2BT2+60
+
#define kMatG kE2BT2+61
+
#define kMatRH kE2BT2+62
+
#define kMatI kE2BT2+63
+
#define kMatJ kE2BT2+64
+
#define kYMean1 kE2BT2+65
+
#define kStdY kE2BT2+66
+
#define kStdY1 kE2BT2+67
+
#define kMatToLst kE2BT2+68
+
#define kLstToMat kE2BT2+69
+
#define kCumSum kE2BT2+70
+
#define kDeltaLst kE2BT2+71
+
#define kStdDev kE2BT2+72
+
#define kVariance kE2BT2+73
+
#define kLength kE2BT2+74
+
#define kEquToStrng kE2BT2+75
+
#define kStrngToEqu kE2BT2+76
+
#define kExpr kE2BT2+77
+
#define kSubStrng kE2BT2+78
+
#define kInStrng kE2BT2+79
+
#define kStr1 kE2BT2+80
+
#define kStr2 kE2BT2+81
+
#define kStr3 kE2BT2+82
+
#define kStr4 kE2BT2+83
+
#define kStr5 kE2BT2+84
+
#define kStr6 kE2BT2+85
+
#define kStr7 kE2BT2+86
+
#define kStr8 kE2BT2+87
+
#define kStr9 kE2BT2+88
+
#define kStr0 kE2BT2+89
+
#define kFinN kE2BT2+90
+
#define kFinI kE2BT2+91
+
#define kFinPV kE2BT2+92
+
#define kFinPMT kE2BT2+93
+
#define kFinFV kE2BT2+94
+
#define kFinPY kE2BT2+95
+
#define kFinCY kE2BT2+96
+
#define kFinFPMT kE2BT2+97
+
#define kFinFI kE2BT2+98
+
#define kFinFPV kE2BT2+99
+
#define kFinFN kE2BT2+100
+
#define kFinFFV kE2BT2+101
+
#define kFinNPV kE2BT2+102
+
#define kFinIRR kE2BT2+103
+
#define kFinBAL kE2BT2+104
+
#define kFinPRN kE2BT2+105
+
#define kFinINT kE2BT2+106
+
#define kSumX kE2BT2+107
+
#define kSumX2 kE2BT2+108
+
#define kFinToNom kE2BT2+109
+
#define kFinToEff kE2BT2+110
+
#define kFinDBD kE2BT2+111
+
#define kStatVP kE2BT2+112
+
#define kStatZ kE2BT2+113
+
#define kStatT kE2BT2+114
+
#define kStatChi kE2BT2+115
+
#define kStatF kE2BT2+116
+
#define kStatDF kE2BT2+117
+
#define kStatPhat kE2BT2+118
+
#define kStatPhat1 kE2BT2+119
+
#define kStatPhat2 kE2BT2+120
+
#define kStatMeanX1 kE2BT2+121
+
#define kStatMeanX2 kE2BT2+122
+
#define kStatStdX1 kE2BT2+123
+
#define kStatStdX2 kE2BT2+124
+
#define kStatStdXP kE2BT2+125
+
#define kStatN1 kE2BT2+126
+
#define kStatN2 kE2BT2+127
+
#define kStatLower kE2BT2+128
+
#define kStatUpper kE2BT2+129
+
#define kuw0 kE2BT2+130
+
#define kImag kE2BT2+131
+
#define kSumY kE2BT2+132
+
#define kXres kE2BT2+133
+
#define kStat_s kE2BT2+134
+
#define kSumY2 kE2BT2+135
+
#define kSumXY kE2BT2+136
+
#define kuXres kE2BT2+137
+
#define kModBox kE2BT2+138
+
#define kNormProb kE2BT2+139
+
#define kNormalPDF kE2BT2+140
+
#define kTPDF kE2BT2+141
+
#define kChiPDF kE2BT2+142
+
#define kFPDF kE2BT2+143
+
#define kMinY kE2BT2+144 //MinY
+
#define kRandBin kE2BT2+145
+
#define kRef kE2BT2+146
+
#define kRRef kE2BT2+147
+
#define kLRSqr kE2BT2+148
+
#define kBRSqr kE2BT2+149
+
#define kDiagOn kE2BT2+150
+
#define kDiagOff kE2BT2+151
+
#define kun1 kE2BT2+152 //FOR RCL USE WHEN GOTTEN FROM 82
+
#define kvn1 kE2BT2+153 //FOR RCL USE WHEN GOTTEN FROM 82
+
#define k83_00End kvn1 //end of original keys...
+
#define kArchive k83_00End + 1
+
#define kUnarchive k83_00End + 2
+
#define kAsm k83_00End + 3 //Asm(
+
#define kAsmPrgm k83_00End + 4 //AsmPrgm
+
#define kAsmComp k83_00End + 5 //AsmComp(
+
#define kcapAAcute k83_00End + 6
+
#define kcapAGrave k83_00End + 7
+
#define kcapACaret k83_00End + 8
+
#define kcapADier k83_00End + 9
+
#define kaAcute k83_00End + 10
+
#define kaGrave k83_00End + 11
+
#define kaCaret k83_00End + 12
+
#define kaDier k83_00End + 13
+
#define kcapEAcute k83_00End + 14
+
#define kcapEGrave k83_00End + 15
+
#define kcapECaret k83_00End + 16
+
#define kcapEDier k83_00End + 17
+
#define keAcute k83_00End + 18
+
#define keGrave k83_00End + 19
+
#define keCaret k83_00End + 20
+
#define keDier k83_00End + 21
+
#define kcapIAcute k83_00End + 22
+
#define kcapIGrave k83_00End + 23
+
#define kcapICaret k83_00End + 24
+
#define kcapIDier k83_00End + 25
+
#define kiAcute k83_00End + 26
+
#define kiGrave k83_00End + 27
+
#define kiCaret k83_00End + 28
+
#define kiDier k83_00End + 29
+
#define kcapOAcute k83_00End + 30
+
#define kcapOGrave k83_00End + 31
+
#define kcapOCaret k83_00End + 32
+
#define kcapODier k83_00End + 33
+
#define koAcute k83_00End + 34
+
#define koGrave k83_00End + 35
+
#define koCaret k83_00End + 36
+
#define koDier k83_00End + 37
+
#define kcapUAcute k83_00End + 38
+
#define kcapUGrave k83_00End + 39
+
#define kcapUCaret k83_00End + 40
+
#define kcapUDier k83_00End + 41
+
#define kuAcute k83_00End + 42
+
#define kuGrave k83_00End + 43
+
#define kuCaret k83_00End + 44
+
#define kuDier k83_00End + 45
+
#define kcapCCed k83_00End + 46
+
#define kcCed k83_00End + 47
+
#define kcapNTilde k83_00End + 48
+
#define knTilde k83_00End + 49
+
#define kaccent k83_00End + 50
+
#define kgrave k83_00End + 51
+
#define kdieresis k83_00End + 52
+
#define kquesDown k83_00End + 53
+
#define kexclamDown k83_00End + 54
+
#define kalpha k83_00End + 55
+
#define kbeta k83_00End + 56
+
#define kgamma k83_00End + 57
+
#define kcapDelta k83_00End + 58
+
#define kdelta k83_00End + 59
+
#define kepsilon k83_00End + 60
+
#define klambda k83_00End + 61
+
#define kmu k83_00End + 62
+
#define kpi2 k83_00End + 63
+
#define krho k83_00End + 64
+
#define kcapSigma k83_00End + 65
+
#define ksigma k83_00End + 66
+
#define ktau k83_00End + 67
+
#define kphi k83_00End + 68
+
#define kcapOmega k83_00End + 69
+
#define kphat k83_00End + 70
+
#define kchi2 k83_00End + 71
+
#define kstatF2 k83_00End + 72
+
#define kLa k83_00End + 73
+
#define kLb k83_00End + 74
+
#define kLc k83_00End + 75
+
#define kLd k83_00End + 76
+
#define kLe k83_00End + 77
+
#define kLf k83_00End + 78
+
#define kLg k83_00End + 79
+
#define kLh k83_00End + 80
+
#define kLi k83_00End + 81
+
#define kLj k83_00End + 82
+
#define kLk k83_00End + 83
+
#define kLl k83_00End + 84
+
#define kLm k83_00End + 85
+
#define kLsmalln k83_00End + 86
+
#define kLo k83_00End + 87
+
#define kLp k83_00End + 88
+
#define kLq k83_00End + 89
+
#define kLsmallr k83_00End + 90
+
#define kLs k83_00End + 91
+
#define kLt k83_00End + 92
+
#define kLu k83_00End + 93
+
#define kLv k83_00End + 94
+
#define kLw k83_00End + 95
+
#define kLx k83_00End + 96
+
#define kLy k83_00End + 97
+
#define kLz k83_00End + 98
+
#define kGarbageC k83_00End + 99 //GarbageCollect
+
#define kE2BT2_End kGarbageC
+
+
//TI-83 Plus Context Equates
+
//---------------------------------------------
+
#define cxCmd kQuit //home screen
+
#define cxMatEdit kMatrixEd //matrix editor
+
#define cxPrgmEdit kPrgmEd //program editor
+
#define cxEquEdit kYequ //equation editor
+
#define cxGrRange kWindow //graph range editor
+
#define cxGrZfact kZFactEd //graph zoom factors editor
+
#define cxGraph kGraph //graph mode
+
#define cxStatEdit kStatEd //statistics list editor
+
#define cxPrgmInput kPrgmInput //programmed input
+
#define cxError kError //error handler
+
#define cxLinkIO kLinkIO //LINK I/O interface
+
#define cxMem kResetMem //reset memory
+
#define cxDefMem kResetDef //reset default
+
#define cxRAMApp kChkRAM //RAM usage screen
+
#define cxMode kMode //mode settings screen
+
#define cxErase kDelMem //memory erase
+
#define cxPrgmCreate kPrgmCr //PROGRAM CREATE
+
#define cxTableEditor kTable //TABLE EDITOR
+
#define cxTableSet kTblSet //TABLE SET UP
+
#define cxStatPlot kStatP //STAT PLOTS
+
#define cxInfStat kInfStat //Inferential Statistic
+
#define cxFormat kFormat //FORMAT CONTEXT
+
#define cxSolveTVM kSolveTVM //Solve TVM
+
#define cxSolveRoot kSolveRoot //Solve Root
+
#define lastOldApp kExtApps //external applications
+
#define cxextapps kExtApps
+
#define cxNewApps kNewApps //new cerberus applications
+
#define cxGroup cxNewApps+0 //1st new app.
+
#define cxUnGroup cxNewApps+1 //2nd new app.
+
#define lastNewApp cxUnGroup //last new app for this ver
+
+
//Scan Code Equates
+
//-------------------------------
+
#define skDown 0x01
+
#define skLeft 0x02
+
#define skRight 0x03
+
#define skUp 0x04
+
#define skEnter 0x09
+
#define skAdd 0x0A
+
#define skSub 0x0B
+
#define skMul 0x0C
+
#define skDiv 0x0D
+
#define skPower 0x0E
+
#define skClear 0x0F
+
#define skChs 0x11
+
#define sk3 0x12
+
#define sk6 0x13
+
#define sk9 0x14
+
#define skRParen 0x15
+
#define skTan 0x16
+
#define skVars 0x17
+
#define skDecPnt 0x19
+
#define sk2 0x1A
+
#define sk5 0x1B
+
#define sk8 0x1C
+
#define skLParen 0x1D
+
#define skCos 0x1E
+
#define skPrgm 0x1F
+
#define skStat 0x20
+
#define sk0 0x21
+
#define sk1 0x22
+
#define sk4 0x23
+
#define sk7 0x24
+
#define skComma 0x25
+
#define skSin 0x26
+
#define skMatrix 0x27
+
#define skGraphvar 0x28
+
#define skStore 0x2A
+
#define skLn 0x2B
+
#define skLog 0x2C
+
#define skSquare 0x2D
+
#define skRecip 0x2E
+
#define skMath 0x2F
+
#define skAlpha 0x30
+
#define skGraph 0x31
+
#define skTrace 0x32
+
#define skZoom 0x33
+
#define skWindow 0x34
+
#define skYEqu 0x35
+
#define sk2nd 0x36
+
#define skMode 0x37
+
#define skDel 0x38
+
+
//Tokens
+
//----------------------------------------------------
+
#define EOSSTART 0
+
+
//DISPLAY CONVERSIONS COME IMMEDIATELY BEFORE 'TSTORE'
+
//
+
#define DCONV 0x01
+
//
+
#define tToDMS DCONV //01h
+
#define tToDEC DCONV+1 //02h
+
#define tToAbc DCONV+2 //03h > A b/c
+
//
+
#define tStore DCONV+3 //04h Lstore 01
+
//
+
#define tBoxPlot 0x05
+
//
+
#define BRACKS 0x06
+
//
+
#define tLBrack BRACKS //06h '['
+
#define tRBrack BRACKS+1 //07h ']'
+
#define tLBrace BRACKS+2 //08h '{'
+
#define tRBrace BRACKS+3 //09h '}'
+
//
+
#define tPOST1 BRACKS+4
+
//
+
#define tFromRad tPOST1 //0Ah Lradian
+
#define tFromDeg tPOST1+1 //0Bh Ldegree
+
#define tRecip tPOST1+2 //0Ch Linverse
+
#define tSqr tPOST1+3 //0Dh Lsquare
+
#define tTrnspos tPOST1+4 //0Eh Ltranspose
+
#define tCube tPOST1+5 //0Fh '^3'
+
//
+
#define tLParen 0x10 //10h '('
+
#define tRParen 0x11 //11h ')'
+
//
+
#define IMUN 0x12
+
//
+
#define tRound IMUN //12h 'round'
+
#define tPxTst IMUN+1 //13h 'PXL-TEST'
+
#define tAug IMUN+2 //14h 'aug'
+
#define tRowSwap IMUN+3 //15h 'rSwap'
+
#define tRowPlus IMUN+4 //16h 'rAdd'
+
#define tmRow IMUN+5 //17h 'multR'
+
#define tmRowPlus IMUN+6 //18h 'mRAdd'
+
#define tMax IMUN+7 //19h 'max'
+
#define tMin IMUN+8 //1Ah 'min'
+
#define tRToPr IMUN+9 //1Bh 'R>Pr
+
#define tRToPo IMUN+10 //1Ch 'R>Po
+
#define tPToRx IMUN+11 //1Dh 'P>Rx
+
#define tPToRy IMUN+12 //1Eh 'P>Ry
+
#define tMedian IMUN+13 //1Fh 'MEDIAN
+
#define tRandM IMUN+14 //20h 'randM'
+
#define tMean IMUN+15 //21h
+
#define tRoot IMUN+16 //22h 'ROOT'
+
#define tSeries IMUN+17 //23h 'seq'
+
#define tFnInt IMUN+18 //24h 'fnInt'
+
#define tNDeriv IMUN+19 //25h 'fnIr'
+
#define tEvalF IMUN+20 //26h
+
#define tFmin IMUN+21 //27h
+
#define tFmax IMUN+22 //28h
+
//
+
#define tEOSEL IMUN+23
+
//
+
#define tSpace tEOSEL //29h ' '
+
#define tString tEOSEL+1 //2Ah '"'
+
#define tComma tEOSEL+2 //2Bh ','
+
//
+
#define tii 0x2C //i
+
+
//Postfix Functions
+
//-----------------------------------------
+
#define tPost 0x2D
+
//
+
#define tFact tPost //2Dh '!'
+
//
+
#define tCubicR 0x2E
+
#define tQuartR 0x2F
+
+
//Number Tokens
+
//---------------------------------------
+
#define NUMS 0x30
+
//
+
#define t0 NUMS //30h
+
#define t1 NUMS+1 //31h
+
#define t2 NUMS+2 //32h
+
#define t3 NUMS+3 //33h
+
#define t4 NUMS+4 //34h
+
#define t5 NUMS+5 //35h
+
#define t6 NUMS+6 //36h
+
#define t7 NUMS+7 //37h
+
#define t8 NUMS+8 //38h
+
#define t9 NUMS+9 //39h
+
#define tDecPt NUMS+10 //3Ah
+
#define tee NUMS+11 //3Bh
+
+
//Binary OP
+
//-------------------------------------------
+
#define tOr 0x3C //3Ch '_or_'
+
#define tXor 0x3D //3Dh
+
//
+
#define tColon 0x3E //3Eh ':'
+
#define tEnter 0x3F //3Fh Lenter
+
//
+
#define tAnd 0x40 //40h '_and_'
+
+
//Letter Tokens
+
//--------------------------------------
+
#define LET 0x41
+
#define tA LET //41h
+
#define tB LET+1 //42h
+
#define tC LET+2 //43h
+
#define tD LET+3 //44h
+
#define tE LET+4 //45h
+
#define tF LET+5 //46h
+
#define tG LET+6 //47h
+
#define tH LET+7 //48h
+
#define tI LET+8 //49h
+
#define tJ LET+9 //4Ah
+
#define tK LET+10 //4Bh
+
#define tL LET+11 //4Ch
+
#define tM LET+12 //4Dh
+
#define tN LET+13 //4Eh
+
#define tO LET+14 //4Fh
+
#define tP LET+15 //50h
+
#define tQ LET+16 //51h
+
#define tR LET+17 //52h
+
#define tS LET+18 //53h
+
#define tT LET+19 //54h
+
#define tU LET+20 //55h
+
#define tV LET+21 //56h
+
#define tW LET+22 //57h
+
#define tX LET+23 //58h
+
#define tY LET+24 //59h
+
#define tZ LET+25 //5Ah
+
#define tTheta LET+26 //5Bh
+
+
//These Var Tokens Are 1st Of A Double Token
+
//------------------------------------------
+
+
#define vToks LET+27
+
+
//User Matrix Token, 2nd Token Needed For Name
+
//
+
#define tVarMat vToks //5Ch
+
//
+
//User List Token, 2nd Token Needed For Name
+
//
+
#define tVarLst vToks+1 //5Dh
+
//
+
//User Equation Token, 2nd Token Needed For Name
+
//
+
#define tVarEqu vToks+2 //5Eh
+
#define tProg vToks+3 //5Fh
+
//
+
//User Pict Token, 2nd Token Needed For Name
+
//
+
#define tVarPict vToks+4 //60h
+
//
+
//User GDB Token, 2nd Token Needed For Name
+
//
+
#define tVarGDB vToks+5 //61h
+
#define tVarOut vToks+6 //62h
+
#define tVarSys vToks+7 //63h
+
+
//Mode Setting Commands
+
//-------------------------------------------------
+
#define MODESA vToks+8 //64h
+
#define tRad MODESA //64h 'Radian'
+
#define tDeg MODESA+1 //65h 'Degree'
+
#define tNormF MODESA+2 //66h 'Normal'
+
#define tSci MODESA+3 //67h 'Sci'
+
#define tEng MODESA+4 //68h 'Eng'
+
#define tFloat MODESA+5 //69h 'Float'
+
#define CMPS 0x6A
+
#define tEQ CMPS //6Ah '=='
+
#define tLT CMPS+1 //6Bh '<'
+
#define tGT CMPS+2 //6Ch '>'
+
#define tLE CMPS+3 //6Dh LLE
+
#define tGE CMPS+4 //6Eh LGE
+
#define tNE CMPS+5 //6Fh LNE
+
+
//Binary OP
+
//---------------------------------------
+
#define tAdd 0x70 //70h '+'
+
#define tSub 0x71 //71h '-'
+
#define tAns 0x72 //72h
+
+
//Mode Setting Commands
+
//-------------------------------------------------------
+
#define MODES 0x73
+
#define tFix MODES //73h 'Fix_'
+
#define tSplitOn MODES+1 //74h
+
#define tFullScreen MODES+2 //75h
+
#define tStndrd MODES+3 //76h 'Func'
+
#define tParam MODES+4 //77h 'Param'
+
#define tPolar MODES+5 //78h 'Pol'
+
#define tSeqG MODES+6 //79h
+
#define tAFillOn MODES+7 //7Ah 'AUTO FILL ON'
+
#define tAFillOff MODES+8 //7Bh
+
#define tACalcOn MODES+9 //7Ch
+
#define tACalcOff MODES+10 //7Dh 'AutoFill OFF'
+
+
//Graph Format Tokens Are 2 Byte Tokens
+
//----------------------------------------
+
#define tGFormat MODES+11 //7Eh
+
#define tBoxIcon 0x7F
+
#define tCrossIcon 0x80
+
#define tDotIcon 0x81
+
+
//(More) Binary OP
+
//---------------------------------------
+
#define tMul 0x82 //82h '*'
+
#define tDiv 0x83 //83h '/'
+
+
//Some Graph Commands
+
//------------------------------------------------------
+
#define GRCMDS 0x84
+
#define tTrace GRCMDS // 84h 'Trace'
+
#define tClDrw GRCMDS+1 // 85h 'ClDrw'
+
#define tZoomStd GRCMDS+2 // 86h 'ZStd'
+
#define tZoomtrg GRCMDS+3 // 87h 'Ztrg'
+
#define tZoomBox GRCMDS+4 // 88h 'ZBOX'
+
#define tZoomIn GRCMDS+5 // 89h 'ZIn'
+
#define tZoomOut GRCMDS+6 // 8Ah 'ZOut'
+
#define tZoomSqr GRCMDS+7 // 8Bh 'ZSqr'
+
#define tZoomInt GRCMDS+8 // 8Ch 'ZInt'
+
#define tZoomPrev GRCMDS+9 // 8Dh 'ZPrev'
+
#define tZoomDec GRCMDS+10 // 8Eh 'ZDecm'
+
#define tZoomStat GRCMDS+11 // 8Fh 'ZStat
+
#define tUsrZm GRCMDS+12 // 90h 'ZRcl'
+
#define tPrtScrn GRCMDS+13 // 91h 'PrtScrn'
+
#define tZoomSto GRCMDS+14 // 92h ZOOM STORE
+
#define tText GRCMDS+15 // 93h
+
+
//Binary OP (Combination & Permutation)
+
//-------------------------------------------------
+
#define tnPr GRCMDS+16 //94h '_nPr_'
+
#define tnCr GRCMDS+17 //95h '_nCr_'
+
+
//More Graph Commands
+
//--------------------------------------------------
+
#define tYOn GRCMDS+18 //96h 'FnOn_'
+
#define tYOff GRCMDS+19 //97h 'FnOff_'
+
#define tStPic GRCMDS+20 //98h 'StPic_'
+
#define tRcPic GRCMDS+21 //99h 'RcPic_'
+
#define tStoDB GRCMDS+22 //9Ah 'StGDB_'
+
#define tRclDB GRCMDS+23 //9Bh 'RcGDB_'
+
#define tLine GRCMDS+24 //9Ch 'Line'
+
#define tVert GRCMDS+25 //9Dh 'Vert_'
+
#define tPtOn GRCMDS+26 //9Eh 'PtOn'
+
#define tPtOff GRCMDS+27 //9Fh 'PtOff'
+
+
//Token A0 Cannot Be An EOS Function Since Low MULT=A0 Already
+
//------------------------------------------------------------
+
#define tPtChg GRCMDS+28 //A0h 'PtChg'
+
#define tPXOn GRCMDS+29 //A1h
+
#define tPXOff GRCMDS+30 //A2h
+
#define tPXChg GRCMDS+31 //A3h
+
#define tShade GRCMDS+32 //A4h 'Shade'
+
#define tCircl GRCMDS+33 //A5h 'Circl'
+
#define tHorz GRCMDS+34 //A6h 'HORIZONTAL'
+
#define tTanLn GRCMDS+35 //A7h 'TanLn'
+
#define tDrInv GRCMDS+36 //A8h 'DrInv_'
+
#define tDrawF GRCMDS+37 //A9h 'DrawF_'
+
#define tVarStrng 0x0AA
+
+
//Functions with No Arguments
+
//--------------------------------------------------
+
#define NOARG 0x0AB
+
#define tRand NOARG //ABh 'rand'
+
#define tPi NOARG+1 //ACh Lpi
+
#define tGetKey NOARG+2 //ADh 'getKy'
+
#define tAPost tGetKey+1 //APOSTROPHY
+
#define tQuest tAPost+1 //QUESTION MARK
+
#define UNARY tQuest+1 //B0h
+
#define tChs UNARY //B0h
+
#define tInt UNARY+1 //B1h
+
#define tAbs UNARY+2 //B2h
+
#define tDet UNARY+3 //B3h
+
#define tIdent UNARY+4 //B4h
+
#define tDim UNARY+5 //B5h
+
#define tSum UNARY+6 //B6h
+
#define tProd UNARY+7 //B7h
+
#define tNot UNARY+8 //B8h
+
#define tIPart UNARY+9 //B9h
+
#define tFPart UNARY+10 //BAh
+
+
//New 2 Byte Tokens
+
//------------------------------------------
+
#define t2ByteTok 0x0BB
+
#define UNARYLR UNARY+12
+
#define tSqrt UNARYLR //BCh
+
#define tCubRt UNARYLR+1 //BDh
+
#define tLn UNARYLR+2 //BEh
+
#define tExp UNARYLR+3 //BFh
+
#define tLog UNARYLR+4 //C0h
+
#define tALog UNARYLR+5 //C1h
+
#define tSin UNARYLR+6 //C2h
+
#define tASin UNARYLR+7 //C3h
+
#define tCos UNARYLR+8 //C4h
+
#define tACos UNARYLR+9 //C5h
+
#define tTan UNARYLR+10 //C6h
+
#define tATan UNARYLR+11 //C7h
+
#define tSinH UNARYLR+12 //C8h
+
#define tASinH UNARYLR+13 //C9h
+
#define tCoshH UNARYLR+14 //CAh
+
#define tACosH UNARYLR+15 //CBh
+
#define tTanH UNARYLR+16 //CCh
+
#define tATanH UNARYLR+17 //CDh
+
+
//Some Programming Commands
+
//------------------------------------------------------
+
#define PROGTOK UNARYLR+18
+
#define tIf PROGTOK //CEh
+
#define tThen PROGTOK+1 //CFh
+
#define tElse PROGTOK+2 //D0h
+
#define tWhile PROGTOK+3 //D1h
+
#define tRepeat PROGTOK+4 //D2h
+
#define tFor PROGTOK+5 //D3h
+
#define tEnd PROGTOK+6 //D4h
+
#define tReturn PROGTOK+7 //D5h
+
#define tLbl PROGTOK+8 //D6h 'Lbl_'
+
#define tGoto PROGTOK+9 //D7h 'Goto_'
+
#define tPause PROGTOK+10 //D8h 'Pause_'
+
#define tStop PROGTOK+11 //D9h 'Stop'
+
#define tISG PROGTOK+12 //DAh 'IS>'
+
#define tDSL PROGTOK+13 //DBh 'DS<'
+
#define tInput PROGTOK+14 //DCh 'Input_'
+
#define tPrompt PROGTOK+15 //DDh 'Prompt_'
+
#define tDisp PROGTOK+16 //DEh 'Disp_'
+
#define tDispG PROGTOK+17 //DFh 'DispG'
+
#define tOutput PROGTOK+18 //E0h 'Outpt'
+
#define tClLCD PROGTOK+19 //E1h 'ClLCD'
+
#define tConst PROGTOK+20 //E2h 'Fill'
+
#define tSortA PROGTOK+21 //E3h 'sortA_'
+
#define tSortD PROGTOK+22 //E4h 'sortD_'
+
#define tDispTab PROGTOK+23 //E5h 'Disp Table
+
#define tMenu PROGTOK+24 //E6h 'Menu'
+
#define tSendMBL PROGTOK+25 //E7h 'SEND'
+
#define tGetMBL PROGTOK+26 //E8h 'GET'
+
+
//Stat Plot Commands
+
//------------------------------------------------------
+
#define statPCmd PROGTOK+27
+
#define tPlotOn statPCmd //E9h ' PLOTSON'
+
#define tPlotOff statPCmd+1 //EAh ' PLOTSOFF
+
#define tListName 0x0EB //LIST DESIGNATOR
+
#define tPlot1 0x0EC
+
#define tPlot2 0x0ED
+
#define tPlot3 0x0EE
+
#define tUnused01 0x0EF //available?
+
#define tPower 0x0F0 //'^'
+
#define tXRoot 0x0F1 //LsupX,Lroot
+
#define STATCMD 0x0F2
+
#define tOneVar STATCMD //F2h 'OneVar_'
+
#define tTwoVar STATCMD+1 //F3h
+
#define tLR STATCMD+2 //F4h 'LinR(A+BX
+
#define tLRExp STATCMD+3 //F5h 'ExpR_'
+
#define tLRLn STATCMD+4 //F6h 'LnR_'
+
#define tLRPwr STATCMD+5 //F7h 'PwrR_'
+
#define tMedMed STATCMD+6 //F8h
+
#define tQuad STATCMD+7 //F9h
+
#define tClrLst STATCMD+8 //FAh 'CLEAR LIST
+
#define tClrTbl STATCMD+9 //FBh CLEAR TABLE
+
#define tHist STATCMD+10 //FCh 'Hist_'
+
#define txyLine STATCMD+11 //FDh 'xyline_'
+
#define tScatter STATCMD+12 //FEh 'Scatter_'
+
#define tLR1 STATCMD+13 //FFh 'LINR(AX+B
+
+
//2nd Half Of Graph Format Tokens
+
//----------------------------------------------
+
// Format settings commands
+
//
+
#define GFMT 0
+
#define tSeq GFMT // 'SeqG'
+
#define tSimulG GFMT+1 // 'SimulG'
+
#define tPolarG GFMT+2 // 'PolarGC'
+
#define tRectG GFMT+3 // 'RectGC'
+
#define tCoordOn GFMT+4 // 'CoordOn'
+
#define tCoordOff GFMT+5 // 'CoordOff'
+
#define tDrawLine GFMT+6 // 'DrawLine'
+
#define tDrawDot GFMT+7 // 'DrawDot'
+
#define tAxisOn GFMT+8 // 'AxesOn'
+
#define tAxisOff GFMT+9 // 'AxesOff'
+
#define tGridOn GFMT+10 // 'GridOn'
+
#define tGridOff GFMT+11 // 'GridOff'
+
#define tLblOn GFMT+12 // 'LabelOn'
+
#define tLblOff GFMT+13 // 'LabelOff'
+
#define tWebOn GFMT+14 // 'WebOn'
+
#define tWebOff GFMT+15 // 'WebOFF'
+
#define tuv GFMT+16 // U vs V
+
#define tvw GFMT+17 // V vs W
+
#define tuw GFMT+18 // 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 Of 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 Of 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
+
//-----------------------------------------------------------------
+
//OPEN equ 00h
+
#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
+
//------------------------------------------------
+
// SYSTEM VARIABLE EQUATES
+
//
+
#define tuXscl 0
+
#define tuYscl 1
+
#define tXscl 2
+
#define tYscl 3
+
#define tRecuru0 4 //U 1ST INITIAL COND
+
#define tRecurv0 5 //V 1ST INITIAL COND
+
#define tun1 6 //U(N-1); NOT USED
+
#define tvn1 7 //V(N-1); NOT USED
+
#define tuRecuru0 8 //
+
#define tuRecurv0 9 //
+
#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 tOkEnd2v0 0x67 //end of 2byte tokens for version 0.
+
#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 0x0A0
+
#define tLgamma 0x0A1
+
#define tLcapDelta 0x0A2
+
#define tLdelta 0x0A3
+
#define tLepsilon 0x0A4
+
#define tLlambda 0x0A5
+
#define tLmu 0x0A6
+
#define tLpi 0x0A7
+
#define tLrho 0x0A8
+
#define tLcapSigma 0x0A9
+
#define tLphi 0x0AB
+
#define tLcapOmega 0x0AC
+
#define tLphat 0x0AD
+
#define tLchi 0x0AE
+
#define tLstatF 0x0AF
+
#define tLa 0x0B0
+
#define tLb 0x0B1
+
#define tLc 0x0B2
+
#define tLd 0x0B3
+
#define tLsmalle 0x0B4
+
#define tLf 0x0B5
+
#define tLsmallg 0x0B6
+
#define tLh 0x0B7
+
#define tLi 0x0B8
+
#define tLj 0x0B9
+
#define tLk 0x0BA
+
#define tLl 0x0BC
+
#define tLm 0x0BD
+
#define tLsmalln 0x0BE
+
#define tLo 0x0BF
+
#define tLp 0x0C0
+
#define tLq 0x0C1
+
#define tLsmallr 0x0C2
+
#define tLs 0x0C3
+
#define tLsmallt 0x0C4
+
#define tLu 0x0C5
+
#define tLv 0x0C6
+
#define tLw 0x0C7
+
#define tLx 0x0C8
+
#define tLy 0x0C9
+
#define tLz 0x0CA
+
#define tLsigma 0x0CB
+
#define tLtau 0x0CC
+
#define tLcapIAcute 0x0CD
+
#define tGarbagec 0x0CE
+
#define LastToken 0x0CE //tLAST TOKEN IN THIS VERSION...
+
+
//Data Type Equates
+
//---------------------------------------------------------------------
+
#define RealObj 0
+
#define ListObj 1
+
#define MatObj 2
+
#define EquObj 3
+
#define StrngObj 4
+
#define ProgObj 5
+
#define ProtProgObj 6
+
#define PictObj 7
+
#define GDBObj 8
+
#define UnknownObj 9
+
#define UnknownEquObj 0x0A
+
#define NewEquObj 0x0B
+
#define CplxObj 0x0C
+
#define CListObj 0x0D
+
#define UndefObj 0x0E
+
#define WindowObj 0x0F
+
#define ZStoObj 0x10
+
#define TblRngObj 0x11
+
#define LCDObj 0x12
+
#define BackupObj 0x13
+
#define AppObj 0x14 //application, only used in menus/link
+
#define AppVarObj 0x15 //application variable
+
#define TempProgObj 0x16 //program, home deletes when finished
+
#define GroupObj 0x17 //group.
+
+
//I/O Equates
+
//---------------------------------------------------
+
#define D0D1_bits 0x03
+
#define D0LD1L 0x03
+
#define D0LD1H 0x01
+
#define D0HD1L 0x02
+
#define D0HD1H 0x00
+
#define bport 0 //4-bit link port (I/O)
+
+
//Device Codes
+
//-----------------------------------------------------------------
+
#define TI82DEV 0x82
+
#define PC82DEV 0x02
+
#define MAC82DEV 0x12
+
#define TI83FDEV 0x73
+
#define LINK83FDEV 0x23
+
#define TI83DEV 0x83
+
#define PC83DEV 0x03
+
#define MAC83DEV 0x13
+
#define TI85DEV 0x95 //different than real 85 so me talk
+
#define PC85DEV 0x05
+
#define MAC85DEV 0x15
+
#define TI73DEV 0x74 //device x3 is always an 83
+
#define PC73DEV 0x07
+
#define MAC73DEV 0x17
+
#define LINK73FDEV 0x23
+
#define PC83FDEV 0x23
+
+
//System Error Codes
+
//-----------------------------------------------------------
+
#define E_EDITF 7 //allow re-entering application
+
#define E_EDIT 1<<E_EDITF
+
#define E_Mask 0x7F
+
#define E_Overflow 1+E_EDIT
+
#define E_DivBy0 2+E_EDIT
+
#define E_SingularMat 3+E_EDIT
+
#define E_Domain 4+E_EDIT
+
#define E_Increment 5+E_EDIT
+
#define E_Break 6+E_EDIT
+
#define E_NonReal 7+E_EDIT
+
#define E_Syntax 8+E_EDIT
+
#define E_DataType 9+E_EDIT
+
#define E_Argument 10+E_EDIT
+
#define E_DimMismatch 11+E_EDIT
+
#define E_Dimension 12+E_EDIT
+
#define E_Undefined 13+E_EDIT
+
#define E_Memory 14+E_EDIT
+
#define E_Invalid 15+E_EDIT
+
#define E_IllegalNest 16+E_EDIT
+
#define E_Bound 17+E_EDIT
+
#define E_GraphRange 18+E_EDIT
+
#define E_Zoom 19+E_EDIT
+
#define E_Label 20
+
#define E_Stat 21
+
#define E_Solver 22+E_EDIT
+
#define E_Singularity 23+E_EDIT
+
#define E_SignChange 24+E_EDIT
+
#define E_Iterations 25+E_EDIT
+
#define E_BadGuess 26+E_EDIT
+
#define E_StatPlo 27
+
#define E_TolTooSmall 28+E_EDIT
+
#define E_Reserved 29+E_EDIT
+
#define E_Mode 30+E_EDIT
+
#define E_LnkErr 31+E_EDIT
+
#define E_LnkMemErr 32+E_EDIT
+
#define E_LnkTransErr 33+E_EDIT
+
#define E_LnkDupErr 34+E_EDIT
+
#define E_LnkMemFull 35+E_EDIT
+
#define E_Unknown 36+E_EDIT
+
#define E_Scale 37+E_EDIT
+
#define E_IdNotFound 38
+
#define E_NoMode 39+E_EDIT
+
#define E_Validation 40
+
#define E_Length 41+E_EDIT
+
#define E_Application 42+E_EDIT
+
#define E_AppErr1 43+E_EDIT
+
#define E_AppErr2 44+E_EDIT
+
#define E_ExpiredApp 45
+
#define E_BadAdd 46
+
#define E_Archived 47+E_EDIT
+
#define E_Version 48
+
#define E_ArchFull 49
+
#define E_Variable 50+E_EDIT
+
#define E_Duplicate 51+E_EDIT
+
#define HigErrNum 51
+
//Obsolete error numbers 34 ;first LINK error
+
#define E_LinkIOChkSum 34
+
#define E_LinkIOTimeOut 35
+
#define E_LinkIOBusy 36
+
#define E_LinkIOVer 37
+
+
//Equates To RAM Locations For Stat Vars
+
//----------------------------------------------------------------
+
#define FPLEN 9 //Length of a floating-point number.
+
#define StatN statVars
+
#define XMean StatN + FPLEN
+
#define SumX XMean + FPLEN
+
#define SumXSqr SumX + FPLEN
+
#define StdX SumXSqr + FPLEN
+
#define StdPX StdX + FPLEN
+
#define MinX StdPX + FPLEN
+
#define MaxX MinX + FPLEN
+
#define MinY MaxX + FPLEN
+
#define MaxY MinY + FPLEN
+
#define YMean MaxY + FPLEN
+
#define SumY YMean + FPLEN
+
#define SumYSqr SumY + FPLEN
+
#define StdY SumYSqr + FPLEN
+
#define StdPY StdY + FPLEN
+
#define SumXY StdPY + FPLEN
+
#define Corr SumXY + FPLEN
+
#define MedX Corr + FPLEN
+
#define Q1 MedX + FPLEN
+
#define Q3 Q1 + FPLEN
+
#define QuadA Q3 + FPLEN
+
#define QuadB QuadA + FPLEN
+
#define QuadC QuadB + FPLEN
+
#define CubeD QuadC + FPLEN
+
#define QuartE CubeD + FPLEN
+
#define MedX1 QuartE + FPLEN
+
#define MedX2 MedX1 + FPLEN
+
#define MedX3 MedX2 + FPLEN
+
#define MedY1 MedX3 + FPLEN
+
#define MedY2 MedY1 + FPLEN
+
#define MedY3 MedY2 + FPLEN
+
#define PStat MedY3 + 2*FPLEN
+
#define ZStat PStat + FPLEN
+
#define TStat ZStat + FPLEN
+
#define ChiStat TStat + FPLEN
+
#define FStat ChiStat + FPLEN
+
#define DF FStat + FPLEN
+
#define Phat DF + FPLEN
+
#define Phat1 Phat + FPLEN
+
#define Phat2 Phat1 + FPLEN
+
#define MeanX1 Phat2 + FPLEN
+
#define StdX1 MeanX1 + FPLEN
+
#define StatN1 StdX1 + FPLEN
+
#define MeanX2 StatN1 + FPLEN
+
#define StdX2 MeanX2 + FPLEN
+
#define StatN2 StdX2 + FPLEN
+
#define StdXP2 StatN2 + FPLEN
+
#define SLower StdXP2 + FPLEN
+
#define SUpper SLower + FPLEN
+
#define SStat SUpper + FPLEN
+
#define F_DF anovaf_vars
+
#define F_SS F_DF + FPLEN
+
#define F_MS F_SS + FPLEN
+
#define E_DF F_MS + FPLEN
+
#define E_SS E_DF + FPLEN
+
#define E_MS E_SS + FPLEN
+
+
+
+
+
+
+
+
+ + + + diff --git a/d4/d49/ti83plus_8h.js b/d4/d49/ti83plus_8h.js new file mode 100644 index 0000000..12e4bff --- /dev/null +++ b/d4/d49/ti83plus_8h.js @@ -0,0 +1,4 @@ +var ti83plus_8h = +[ + [ "_", "d4/d49/ti83plus_8h.html#af0c797815d536e2c2a4c889cd8b25846", null ] +]; \ No newline at end of file diff --git a/d4/d49/ti83plus_8h_source.html b/d4/d49/ti83plus_8h_source.html new file mode 100644 index 0000000..84ff3eb --- /dev/null +++ b/d4/d49/ti83plus_8h_source.html @@ -0,0 +1,5155 @@ + + + + + + + +Ti Constructor: lib/ti83plus.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Ti Constructor +
+
+ +   + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
ti83plus.h
+
+
+Go to the documentation of this file.
1#pragma once
+
21#ifndef DOXYGEN
+
22
+
24
+
25
+
26//System Variable Equates
+
27//------------------------------
+
28#define XSCLt 2
+
29#define YSCLt 3
+
30#define XMINt 0x0A
+
31#define XMAXt 0x0B
+
32#define YMINt 0x0C
+
33#define YMAXt 0x0D
+
34#define TMINt 0x0E
+
35#define TMAXt 0x0F
+
36#define THETMINt 0x10
+
37#define THETMAXt 0x11
+
38#define TBLMINt 0x1A
+
39#define PLOTSTARTt 0x1B
+
40#define NMAXt 0x1D
+
41#define NMINt 0x1F
+
42#define TBLSTEPt 0x21
+
43#define TSTEPt 0x22
+
44#define THETSTEPt 0x23
+
45#define DELTAXt 0x26
+
46#define DELTAYt 0x27
+
47#define XFACTt 0x28
+
48#define YFACTt 0x29
+
49#define FINNt 0x2B
+
50#define FINIt 0x2C
+
51#define FINPVt 0x2D
+
52#define FINPMTt 0x2E
+
53#define FINFVt 0x2F
+
54#define FINPYt 0x30
+
55#define FINCYt 0x31
+
56#define PLOTSTEPt 0x34
+
57#define XRESt 0x36
+
58
+
59//Run indicators
+
60//------------------------------------
+
61#define busyPause 0b10101010
+
62#define busyNormal 0b11110000
+
63
+
64//Banked Call Equates/Macros
+
65//-----------------------------------------------
+
66#define rBR_CALL 0x28
+
67#define BRT_JUMP0 0x50
+
68// OMITED LINE: #define bcall(xxxx) rst 28h \ .dw xxxx
+
69// OMITED LINE: #define bjump(xxxx) call 50h \ .dw xxxx
+
70
+
71//Common Restart Routines
+
72//------------------------------
+
73#define rOP1TOOP2 0x08
+
74#define rFINDSYM 0x10
+
75#define rPUSHREALO1 0x18
+
76#define rMOV9TOOP1 0x20
+
77#define rFPADD 0x30
+
78
+
79//Error Handler Equates/Macros
+
80//-------------------------------------------
+
81#define APP_PUSH_ERRORH 0x59
+
82#define APP_POP_ERRORH 0x5C
+
83// OMITED LINE: #define AppOnErr(xxxx) ld hl,xxxx \ call 59h
+
84// OMITED LINE: #define AppOffErr call 5Ch
+
85
+
86//Page 1Bh ROM Calls
+
87//--------------------------------
+
88#define _JErrorNo 0x4000
+
89#define _FontHook 0x4003
+
90#define _call_character_hook 0x4006 //calls character(localize) hook
+
91#define _ldHLind 0x4009 //l=a=(hl),h=(hl+1)
+
92#define _CpHLDE 0x400C
+
93#define _DivHLBy10 0x400F
+
94#define _DivHLByA 0x4012
+
95#define _kdbScan 0x4015
+
96#define _GetCSC 0x4018 //key board scan codes
+
97#define _coorMon 0x401B //
+
98#define _Mon 0x401E //system monitor, customized through the context vectors
+
99#define _monForceKey 0x4021 //
+
100#define _sendKPress 0x4024
+
101#define _JForceCmdNoChar 0x4027
+
102#define _JForceCmd 0x402A //
+
103#define _sysErrHandler 0x402D //loads error context? sp=(onSP)
+
104#define _newContext 0x4030 //(kbdKey)=0, loads context, restores page in 4000h-7fffh
+
105#define _newContext0 0x4033 //loads context
+
106#define _cxPutAway 0x4036 //
+
107#define _cxPutAway2 0x4039 //same but also does a B_CALL CanAlphIns
+
108#define _cxPPutAway 0x403C
+
109#define _cxSizeWind 0x403F
+
110#define _cxErrEP 0x4042
+
111#define _cxMain 0x4045
+
112#define _monErrHand 0x4048 //installs errorhandler to start of ROM call, loads error context, jumps to mon
+
113#define _AppInit 0x404B //loads vector data at hl to cxMain and the rest of the vectors
+
114#define _resetRam 0x404E
+
115#define _lcd_busy 0x4051 //wait till bit 1 of port 2 is set
+
116#define _Min 0x4054 //op1 = lowest number between op1 and op2
+
117#define _Max 0x4057 //op1 = highest number between op1 and op2
+
118#define _Trunc 0x4060
+
119#define _InvSub 0x4063
+
120#define _Times2 0x4066
+
121#define _Plus1 0x4069 //op1=op1+1
+
122#define _Minus1 0x406C
+
123#define _FPSub 0x406F
+
124#define _FPAdd 0x4072
+
125#define _DToR 0x4075
+
126#define _RToD 0x4078
+
127#define _Cube 0x407B
+
128#define _TimesPt5 0x407E
+
129#define _FPSquare 0x4081
+
130#define _FPMult 0x4084 //op1=op1*op2
+
131#define _LJRND 0x4087 //adjusts op1 if 0s precede the actual number... rounding? when
+
132#define _InvOP1SC 0x408A
+
133#define _InvOP1S 0x408D
+
134#define _InvOP2S 0x4090
+
135#define _frac 0x4093
+
136#define _fprecip 0x4096
+
137#define _fpdiv 0x4099
+
138#define _SqRoot 0x409C
+
139#define _RndGuard 0x409F
+
140#define _RnFx 0x40A2
+
141#define _int 0x40A5
+
142#define _Round 0x40A8
+
143#define _LnX 0x40AB
+
144#define _LogX 0x40AE
+
145#define _LJNORND 0x40B1 //like _LJRND but no rounding
+
146#define _EToX 0x40B4
+
147#define _TenX 0x40B7
+
148#define _SinCosRad 0x40BA
+
149#define _Sin 0x40BD
+
150#define _cos 0x40C0
+
151#define _Tan 0x40C3
+
152#define _SinHCosH 0x40C6
+
153#define _TanH 0x40C9
+
154#define _cosh 0x40CC
+
155#define _SinH 0x40CF
+
156#define _ACosRad 0x40D2
+
157#define _ATanRad 0x40D5
+
158#define _ATan2Rad 0x40D8
+
159#define _ASinRad 0x40DB
+
160#define _ACos 0x40DE
+
161#define _ATan 0x40E1
+
162#define _ASin 0x40E4
+
163#define _ATan2 0x40E7
+
164#define _ATanH 0x40EA
+
165#define _ASinH 0x40ED
+
166#define _ACosH 0x40F0
+
167#define _PtoR 0x40F3
+
168#define _RToP 0x40F6
+
169#define _HLTimes9 0x40F9
+
170#define _CkOP1Cplx 0x40FC
+
171#define _CkOP1Real 0x40FF
+
172#define _Angle 0x4102
+
173#define _COP1Set0 0x4105
+
174#define _CpOP4OP3 0x4108
+
175#define _Mov9OP2Cp 0x410B
+
176#define _AbsO1O2Cp 0x410E
+
177#define _cpop1op2 0x4111
+
178#define _OP3ToOP4 0x4114
+
179#define _OP1ToOP4 0x4117
+
180#define _OP2ToOP4 0x411A
+
181#define _OP4ToOP2 0x411D
+
182#define _OP1ToOP3 0x4123
+
183#define _OP5ToOP2 0x4126
+
184#define _OP5ToOP6 0x4129
+
185#define _OP5ToOP4 0x412C
+
186#define _OP1ToOP2 0x412F
+
187#define _OP6ToOP2 0x4132
+
188#define _OP6ToOP1 0x4135
+
189#define _OP4ToOP1 0x4138
+
190#define _OP5ToOP1 0x413B
+
191#define _OP3ToOP1 0x413E
+
192#define _OP6ToOP5 0x4141
+
193#define _OP4ToOP5 0x4144
+
194#define _OP3ToOP5 0x4147
+
195#define _OP2ToOP5 0x414A
+
196#define _OP2ToOP6 0x414D
+
197#define _OP1ToOP6 0x4150
+
198#define _OP1ToOP5 0x4153
+
199#define _OP2ToOP1 0x4156
+
200#define _Mov11B 0x4159
+
201#define _Mov10B 0x415C
+
202#define _Mov9B 0x415F
+
203#define _mov9B2 0x4162 //points to _mov9B
+
204#define _Mov8B 0x4165
+
205#define _Mov7B 0x4168
+
206#define _Mov7B2 0x416B //same pointer as _Mov7B
+
207#define _OP2ToOP3 0x416E
+
208#define _OP4ToOP3 0x4171
+
209#define _OP5ToOP3 0x4174
+
210#define _OP4ToOP6 0x4177
+
211#define _Mov9ToOP1 0x417A
+
212#define _Mov9OP1OP2 0x417D
+
213#define _Mov9ToOP2 0x4180
+
214#define _MovFrOP1 0x4183
+
215#define _OP4Set1 0x4186
+
216#define _OP3Set1 0x4189
+
217#define _OP2Set8 0x418C
+
218#define _OP2Set5 0x418F
+
219#define _OP2SetA 0x4192
+
220#define _OP2Set4 0x4195
+
221#define _OP2Set3 0x4198
+
222#define _OP1Set1 0x419B
+
223#define _OP1Set4 0x419E
+
224#define _OP1Set3 0x41A1
+
225#define _OP3Set2 0x41A4
+
226#define _OP1Set2 0x41A7
+
227#define _OP2Set2 0x41AA
+
228#define _OP2Set1 0x41AD
+
229#define _Zero16D 0x41B0
+
230#define _OP5Set0 0x41B3
+
231#define _OP4Set0 0x41B6
+
232#define _OP3Set0 0x41B9
+
233#define _OP2Set0 0x41BC
+
234#define _OP1Set0 0x41BF
+
235#define _OPSet0 0x41C2 //hl = location to write floating point 0
+
236#define _ZeroOP1 0x41C5
+
237#define _ZeroOP2 0x41C8
+
238#define _ZeroOP3 0x41CB
+
239#define _ZeroOP 0x41CE
+
240#define _ClrLp 0x41D1
+
241#define _ShRAcc 0x41D4 //move high nibble in a to low nibble
+
242#define _ShLAcc 0x41D7 //move low nibble in a to high nibble
+
243#define _ShR18 0x41DA //insert a 0 nibble at high nibble of (hl), shift 9 bytes 1 nibble to right
+
244#define _SHR18A 0x41DD //insert low nibble in a at high nibble of (hl), shift 9 bytes 1 nibble to right
+
245#define _SHR16 0x41E0 //insert a 0 nibble at highnibble of (hl), shift 8 bytes 1 nibble to right
+
246#define _SHR14 0x41E3 //insert low nibble in a at high nibble of (hl), shift 7 bytes 1 nibble to right
+
247#define _SHL16 0x41E6 //insert nibble of 0 in low nibble of (hl), shift 8 bytes (before and including (hl)) to the left 1 nibble
+
248#define _SHL14 0x41E9 //insert low nibble of a in low nibble of (hl), shift 7 bytes (before and including (hl)) to the left 1 nibble
+
249#define _SRDO1 0x41EC
+
250#define _SHRDRND 0x41EF
+
251#define _MANTPA 0x41F2 //adds the value of a to hl which points to the end of the bcd 7 bytes long
+
252#define _ADDPROP 0x41F5 //adds the value of a to hl which points to the end of the bcd (b bytes long)
+
253#define _ADDPROPLP 0x41F8 //adds the value of a and carry to hl which points to the end of the bcd (b bytes long)
+
254#define _ADD16D 0x41FB //adds the bcd numbers at (hl-7) and (de-7)
+
255#define _ADD14D 0x41FE //adds the bcd numbers at (hl-6) and (de-6)
+
256#define _SUB16D 0x4201 //subtracts bcd numbers at (hl-7) and (de-7)
+
257#define _SUB14D 0x4204 //subtracts bcd numbers at (hl-6) and (de-6)
+
258#define _OP2ExOP6 0x4207
+
259#define _OP5ExOP6 0x420A
+
260#define _OP1ExOP5 0x420D
+
261#define _OP1ExOP6 0x4210
+
262#define _OP2ExOP4 0x4213
+
263#define _OP2ExOP5 0x4216
+
264#define _OP1ExOP3 0x4219
+
265#define _OP1ExOP4 0x421C
+
266#define _OP1ExOP2 0x421F
+
267#define _ExLp 0x4222
+
268#define _CkOP1C0 0x4225
+
269#define _CkOP1FP0 0x4228
+
270#define _CkOP2FP0 0x422B
+
271#define _PosNo0Int 0x422E
+
272#define _CKPosInt 0x4231
+
273#define _CKInt 0x4234
+
274#define _CKOdd 0x4237
+
275#define _CKOP1M 0x423A
+
276#define _GETCONOP1 0x423D //a=0 opX=57.29577951308232 (1 radian in degrees)
+
277#define _GETCONOP2 0x4240 //a=1 opX=1.570796326794897 (90 deg = pi/2)
+
278//a=2 opX=.7853981633974483 (45 deg = pi/4)
+
279//a=3 opX=.4342944819032518 (log e)
+
280//a=4 opX=3.141592653589800 (pi)
+
281//a=5 opX=.0174532925199433 (pi/180 = 1 degree in radians)
+
282//a=6 opX=2.302585092994046 (ln 10)
+
283#define _PIDIV2 0x4243 //not code, but a pointer to: .db 80h,15h,70h,79h,63h,26h,79h,48h,97h
+
284#define _PIDIV4 0x4246 // .db 7fh,78h,53h,98h,16h,33h,97h,44h,83h
+
285#define _PItimes2 0x4249 //not code, but a pointer to a 2*pi in non-OP format (no exponent byte)
+
286#define _PI 0x424C //not code, but a pointer to a pi in non-OP format (no exponent byte)
+
287#define _ExpToHex 0x424F
+
288#define _OP1ExpToDec 0x4252
+
289#define _ckop2pos 0x4255
+
290#define _CkOP1Pos 0x4258
+
291#define _ClrOP2S 0x425B
+
292#define _ClrOP1S 0x425E
+
293#define _FDIV100 0x4261 //op1=op1/100
+
294#define _FDIV10 0x4264 //op1=op1/10
+
295#define _DecO1Exp 0x4267 //decrease exponent by 1, this can go from 0 to FF
+
296#define _INCO1EXP 0x426A //op1=op1*10
+
297#define _INCEXP 0x426D //hl points to the floating point's exponent to be multiplied by 10
+
298#define _CkValidNum 0x4270
+
299#define _GETEXP 0x4273 //a=OP1's exponent, carry set if negative exponent, Z if e0
+
300#define _HTimesL 0x4276
+
301#define _EOP1NotReal 0x4279
+
302#define _ThetaName 0x427C
+
303#define _RName 0x427F
+
304#define _REGEQNAME 0x4282
+
305#define _RECURNNAME 0x4285
+
306#define _XName 0x4288
+
307#define _YName 0x428B
+
308#define _TName 0x428E
+
309#define _REALNAME 0x4291
+
310#define _SETesTOfps 0x4294 //moves the word at fps to es
+
311#define _markTableDirty 0x4297 //looks up table variable and marks VAT entry as "dirty" or selected
+
312#define _OP1MOP2EXP 0x429A //op1's exponent = op1's expoent - op2's exponent
+
313#define _OP1EXPMinusE 0x429D //a=(op1+1)-e
+
314#define _CHKERRBREAK 0x42A0
+
315#define _isA2ByteTok 0x42A3
+
316#define _GETLASTENTRY 0x42A6
+
317#define _GETLASTENTRYPTR 0x42A9
+
318#define _REGCLRCHNG 0x42AC
+
319#define _RESETWINTOP 0x42AF //takes into account grfsplitoverride and grfsplit flags
+
320#define _SetYUp 0x42B2 //loads 7 to port 10... what does this do?
+
321#define _SetXUp 0x42B5 //loads 5 to port 10...
+
322#define _ISO1NONTLSTorPROG 0x42B8 //checks if op1 contains a list, program, group, or appvar obj name
+
323#define _ISO1NONTEMPLST 0x42BB //checks if op1 contains a list (why would op1+1 contain 01, or 0d for a var name?)
+
324#define _IS_A_LSTorCLST 0x42BE //checks if a = 1 or 0Dh
+
325#define _CHK_HL_999 0x42C1 //returns nc if less than 999, throws invalid dim error if greater than or equal to 999
+
326#define _equ_or_newequ 0x42C4
+
327#define _errd_op1notpos 0x42C7
+
328#define _ErrD_OP1Not_R 0x42CA
+
329#define _ErrD_OP1NotPosInt 0x42CD
+
330#define _ErrD_OP1_LE_0 0x42D0
+
331#define _ErrD_OP1_0 0x42D3
+
332#define _FINDSYM_GET_SIZE 0x42D6 //like findsym, but on output hl is the size of the variable
+
333#define _STO_STATVAR 0x42D9
+
334#define _Rcl_StatVar 0x42DC
+
335#define _CkOP2Real 0x42DF
+
336#define _GET_X_INDIRECT 0x42E2 //whatever this is, it uses the imathptrX locations
+
337#define _MemChk 0x42E5
+
338#define _CMPPRGNAMLEN1 0x42E8 //gets variable name length from HL
+
339#define _CMPPRGNAMLEN 0x42EB //gets variable name length from OP1
+
340#define _FINDPROGSYM 0x42EE //find the program whose name is in op1 (see chkfindsym in SDK)
+
341#define _ChkFindSym 0x42F1
+
342#define _FindSym 0x42F4
+
343#define _InsertMem 0x42F7
+
344#define _INSERTMEMA 0x42FA //not sure how this differs from insertmem
+
345#define _EnoughMem 0x42FD
+
346#define _CMPMEMNEED 0x4300
+
347#define _CREATEPVAR4 0x4303
+
348#define _CREATEPVAR3 0x4306
+
349#define _CREATEVAR3 0x4309
+
350#define _CreateCplx 0x430C
+
351#define _CreateReal 0x430F
+
352#define _CreateTempRList 0x4312
+
353#define _CreateRList 0x4315
+
354#define _CREATETCLIST 0x4318
+
355#define _CreateCList 0x431B
+
356#define _CreateTempRMat 0x431E
+
357#define _CreateRMat 0x4321
+
358#define _CreateTempString 0x4324
+
359#define _CreateStrng 0x4327
+
360#define _Create0Equ 0x432A
+
361#define _CreateTempEqu 0x432D
+
362#define _CreateEqu 0x4330
+
363#define _CreatePict 0x4333
+
364#define _CreateGDB 0x4336
+
365#define _CreateProg 0x4339
+
366#define _CHKDEL 0x433C
+
367#define _CHKDELA 0x433F
+
368#define _ADJPARSER 0x4342
+
369#define _ADJMATH 0x4345
+
370#define _ADJM7 0x4348
+
371#define _DELMEMA 0x434B
+
372#define _GET_FORM_NUM 0x434E
+
373#define _DelVar 0x4351
+
374#define _DELVARIO 0x4354
+
375#define _DelMem 0x4357
+
376#define _DELVAR3D 0x435A
+
377#define _DELVAR3C 0x435D
+
378#define _DELVAR3DC 0x4360 //may be incorrect
+
379#define _IsFixedName 0x4363
+
380#define _DelVarEntry 0x4366
+
381#define _DataSizeA 0x4369
+
382#define _DataSize 0x436C
+
383#define _POPMCPLXO1 0x436F
+
384#define _POPMCPLX 0x4372
+
385#define _MOVCPLX 0x4375
+
386#define _popOP5 0x4378
+
387#define _popOP3 0x437B
+
388#define _popOP1 0x437E
+
389#define _PopRealO6 0x4381
+
390#define _PopRealO5 0x4384
+
391#define _PopRealO4 0x4387
+
392#define _PopRealO3 0x438A
+
393#define _PopRealO2 0x438D
+
394#define _PopRealO1 0x4390
+
395#define _PopReal 0x4393
+
396#define _FPOPCPLX 0x4396
+
397#define _FPOPREAL 0x4399
+
398#define _FPOPFPS 0x439C
+
399#define _DeallocFPS 0x439F
+
400#define _DeallocFPS1 0x43A2
+
401#define _AllocFPS 0x43A5
+
402#define _AllocFPS1 0x43A8
+
403#define _PushRealO6 0x43AB
+
404#define _PushRealO5 0x43AE
+
405#define _PushRealO4 0x43B1
+
406#define _PushRealO3 0x43B4
+
407#define _PushRealO2 0x43B7
+
408#define _PushRealO1 0x43BA
+
409#define _PushReal 0x43BD
+
410#define _PushOP5 0x43C0
+
411#define _PushOP3 0x43C3
+
412#define _PUSHMCPLXO3 0x43C6
+
413#define _PushOP1 0x43C9
+
414#define _PUSHMCPLXO1 0x43CC
+
415#define _PUSHMCPLX 0x43CF
+
416#define _ExMCplxO1 0x43D2
+
417#define _Exch9 0x43D5
+
418#define _CpyTo1FPS11 0x43D8
+
419#define _CpyTo2FPS5 0x43DB
+
420#define _CpyTo1FPS5 0x43DE
+
421#define _CpyTo2FPS6 0x43E1
+
422#define _CpyTo1FPS6 0x43E4
+
423#define _CpyTo2FPS7 0x43E7
+
424#define _CpyTo1FPS7 0x43EA
+
425#define _CpyTo1FPS8 0x43ED
+
426#define _CpyTo2FPS8 0x43F0
+
427#define _CpyTo1FPS10 0x43F3
+
428#define _CpyTo1FPS9 0x43F6
+
429#define _CpyTo2FPS4 0x43F9
+
430#define _CpyTo6FPS3 0x43FC
+
431#define _CpyTo6FPS2 0x43FF
+
432#define _CpyTo2FPS3 0x4402
+
433#define _CPYCTO1FPS3 0x4405
+
434#define _CpyTo1FPS3 0x4408
+
435#define _CPYFPS3 0x440B
+
436#define _CpyTo1FPS4 0x440E
+
437#define _CpyTo3FPS2 0x4411
+
438#define _CpyTo5FPST 0x4414
+
439#define _CpyTo6FPST 0x4417
+
440#define _CpyTo4FPST 0x441A
+
441#define _CpyTo3FPST 0x441D
+
442#define _CpyTo2FPST 0x4420
+
443#define _CpyTo1FPST 0x4423
+
444#define _CPYFPST 0x4426
+
445#define _CpyStack 0x4429
+
446#define _CpyTo3FPS1 0x442C
+
447#define _CpyTo2FPS1 0x442F
+
448#define _CpyTo1FPS1 0x4432
+
449#define _CPYFPS1 0x4435
+
450#define _CpyTo2FPS2 0x4438
+
451#define _CpyTo1FPS2 0x443B
+
452#define _CPYFPS2 0x443E
+
453#define _CpyO3ToFPST 0x4441
+
454#define _CpyO2ToFPST 0x4444
+
455#define _CpyO6ToFPST 0x4447
+
456#define _CpyO1ToFPST 0x444A
+
457#define _CpyToFPST 0x444D
+
458#define _CpyToStack 0x4450
+
459#define _CpyO3ToFPS1 0x4453
+
460#define _CpyO5ToFPS1 0x4456
+
461#define _CpyO2ToFPS1 0x4459
+
462#define _CpyO1ToFPS1 0x445C
+
463#define _CpyToFPS1 0x445F
+
464#define _CpyO2ToFPS2 0x4462
+
465#define _CpyO3ToFPS2 0x4465
+
466#define _CpyO6ToFPS2 0x4468
+
467#define _CpyO1ToFPS2 0x446B
+
468#define _CpyToFPS2 0x446E
+
469#define _CpyO5ToFPS3 0x4471
+
470#define _CpyO2ToFPS3 0x4474
+
471#define _CpyO1ToFPS3 0x4477
+
472#define _CpyToFPS3 0x447A
+
473#define _CpyO1ToFPS6 0x447D
+
474#define _CpyO1ToFPS7 0x4480
+
475#define _CpyO1ToFPS5 0x4483
+
476#define _CpyO2ToFPS4 0x4486
+
477#define _CpyO1ToFPS4 0x4489
+
478#define _ErrNotEnoughMem 0x448C //only if not HL bytes free
+
479#define _FPSMINUS9 0x448F
+
480#define _HLMINUS9 0x4492
+
481#define _ErrOverflow 0x4495
+
482#define _ErrDivBy0 0x4498
+
483#define _ErrSingularMat 0x449B
+
484#define _ErrDomain 0x449E
+
485#define _ErrIncrement 0x44A1
+
486#define _ErrNon_Real 0x44A4
+
487#define _ErrSyntax 0x44A7
+
488#define _ErrDataType 0x44AA
+
489#define _ErrArgument 0x44AD
+
490#define _ErrDimMismatch 0x44B0
+
491#define _ErrDimension 0x44B3
+
492#define _ErrUndefined 0x44B6
+
493#define _ErrMemory 0x44B9
+
494#define _ErrInvalid 0x44BC
+
495#define _ErrBreak 0x44BF
+
496#define _ErrStat 0x44C2
+
497#define _ErrSignChange 0x44C5
+
498#define _ErrIterations 0x44C8
+
499#define _ErrBadGuess 0x44CB
+
500#define _ErrTolTooSmall 0x44CE
+
501#define _ErrStatPlot 0x44D1
+
502#define _ErrLinkXmit 0x44D4
+
503#define _JError 0x44D7
+
504#define _noErrorEntry 0x44DA
+
505#define _pushErrorHandleR 0x44DD
+
506#define _popErrorHandleR 0x44E0
+
507#define _strcopy 0x44E3
+
508#define _strCat 0x44E6
+
509#define _isInSet 0x44E9
+
510#define _sDone 0x44EC //this should actually be called _SetEquToOP1
+
511#define _serrort 0x44EF
+
512#define _sNameEq 0x44F2
+
513#define _sUnderScr 0x44F5
+
514#define _sFAIL 0x44F8
+
515#define _sName 0x44FB
+
516#define _sOK 0x44FE
+
517#define _PutMap 0x4501
+
518#define _PutC 0x4504
+
519#define _DispHL 0x4507
+
520#define _PutS 0x450A
+
521#define _putpsb 0x450D
+
522#define _PutPS 0x4510
+
523#define _wputps 0x4513
+
524#define _putbuf 0x4516
+
525#define _putbuf1 0x4519
+
526#define _wputc 0x451C
+
527#define _wputs 0x451F
+
528#define _wputsEOL 0x4522 //displays string in HL in big font, and uses ... if too long
+
529#define _wdispEOL 0x4525
+
530#define _whomeup 0x4528
+
531#define _setNumWindow 0x452B //based on current cursor position, sets winleft and similar (for input prompts)
+
532#define _newline 0x452E
+
533#define _moveDown 0x4531
+
534#define _scrollUp 0x4534
+
535#define _shrinkWindow 0x4537
+
536#define _moveUp 0x453A
+
537#define _scrollDown 0x453D
+
538#define _ClrLCDFull 0x4540
+
539#define _ClrLCD 0x4543
+
540#define _ClrScrnFull 0x4546
+
541#define _ClrScrn 0x4549
+
542#define _ClrTxtShd 0x454C
+
543#define _ClrWindow 0x454F
+
544#define _EraseEOL 0x4552
+
545#define _EraseEOW 0x4555
+
546#define _HomeUp 0x4558
+
547#define _getcurloc 0x455B
+
548#define _VPutMap 0x455E
+
549#define _VPutS 0x4561
+
550#define _VPutSN 0x4564
+
551#define _vputsnG 0x4567
+
552#define _vputsnT 0x456A
+
553#define _RunIndicOn 0x456D
+
554#define _RunIndicOff 0x4570
+
555#define _saveCmdShadow 0x4573
+
556#define _saveShadow 0x4576
+
557#define _rstrShadow 0x4579
+
558#define _rstrpartial 0x457C
+
559#define _rstrCurRow 0x457F
+
560#define _rstrUnderMenu 0x4582
+
561#define _rstrbotrow 0x4585
+
562#define _saveTR 0x4588 //save top right corner of LCD so 2nd arrow can be displayed, indicinuse flag must be set
+
563#define _restoreTR 0x458B //restore top right corner of LCD destroyed by an arrow. indicinuse flag must be set
+
564#define _GetKeyPress 0x458E
+
565#define _GetTokLen 0x4591 //input: hl=pointer to token. output: a=lenght of string, hl=pointer to string on page 1
+
566#define _GET_TOK_STRNG 0x4594 //input: hl=pointer to token. output: op3=string of the token, a=length of string
+
567#define _GETTOKSTRING 0x4597 //input: DE=token. output: hl=pointer to the string on page 1
+
568#define _PUTBPATBUF2 0x459A
+
569#define _PUTBPATBUF 0x459D
+
570#define _putbPAT 0x45A0
+
571#define _putcCheckScrolL 0x45A3
+
572#define _DispEOL 0x45A6
+
573#define _fdispEOL 0x45A9
+
574#define _MAKEROWCMD 0x45AC
+
575#define _TOTOSTRP 0x45AF
+
576#define _SETVARNAME 0x45B2
+
577#define _DispDone 0x45B5
+
578#define _finishoutput 0x45B8
+
579#define _curBlink 0x45BB
+
580#define _CursorOff 0x45BE
+
581#define _hideCursor 0x45C1
+
582#define _CursorOn 0x45C4
+
583#define _showCursor 0x45C7
+
584#define _KeyToString 0x45CA
+
585#define _PULLDOWNCHK 0x45CD //something wrong here
+
586#define _MenuCatCommon 0x45D0
+
587#define _ZIfCatalog 0x45D3
+
588#define _ZIfMatrixMenu 0x45D6 //_loadCurCat
+
589#define _LoadMenuNum 0x45D9
+
590#define _LoadMenuNumL 0x45DC
+
591#define _MenCatRet 0x45DF //restores display as though a menu were just cleared (restores some flags too)
+
592#define _MenuSwitchContext 0x45E2 //switches to context in A, calls menu hook with A=3, set 5,(iy+16h) for some sort of override to not make switch
+
593#define _MenuEdKey 0x45E5
+
594#define _BackUpGraphSettings 0x45E8
+
595#define _notalphnum 0x45EB
+
596#define _SaveSavedFlags 0x45EE
+
597#define _SetMenuFlags 0x45F1
+
598#define _RstrSomeFlags 0x45F4
+
599#define _RstrOScreen 0x45F7 //restores saveSScreen to the display
+
600#define _SaveOScreen 0x45FA //stores display in saveSScreen
+
601#define _dispListName 0x45FD //_SeeIfErrorCx
+
602#define _PrevContext 0x4600
+
603#define _CompareContext 0x4603
+
604#define _AdrMRow 0x4606
+
605#define _AdrMEle 0x4609
+
606#define _GETMATOP1A 0x460C
+
607#define _GETM1TOOP1 0x460F
+
608#define _GETM1TOP1A 0x4612
+
609#define _GetMToOP1 0x4615
+
610#define _PUTTOM1A 0x4618
+
611#define _PUTTOMA1 0x461B
+
612#define _PutToMat 0x461E
+
613#define _MAT_EL_DIV 0x4621
+
614#define _CMATFUN 0x4624
+
615#define _ROWECH_POLY 0x4627
+
616#define _ROWECHELON 0x462A
+
617#define _AdrLEle 0x462D
+
618#define _GETL1TOOP1 0x4630
+
619#define _GETL1TOP1A 0x4633
+
620#define _GetLToOP1 0x4636
+
621#define _GETL1TOOP2 0x4639
+
622#define _GETL1TOP2A 0x463C
+
623#define _GETL2TOP1A 0x463F
+
624#define _PUTTOLA1 0x4642
+
625#define _PutToL 0x4645
+
626#define _MAXMINLST 0x4648
+
627#define _LLOW 0x464B
+
628#define _LHIGH 0x464E
+
629#define _LSUM 0x4651
+
630#define CUMSUM 0x4654
+
631#define _ToFrac 0x4657
+
632#define _SEQSET 0x465A
+
633#define _SEQSOLVE 0x465D
+
634#define _CMP_NUM_INIT 0x4660
+
635#define _BinOPExec 0x4663
+
636#define _EXMEAN1 0x4666
+
637#define _SET2MVLPTRS 0x4669
+
638#define _SETMAT1 0x466C
+
639#define _CREATETLIST 0x466F
+
640#define _UnOPExec 0x4672
+
641#define _ThreeExec 0x4675
+
642#define _RESTOREERRNO 0x4678
+
643#define _FourExec 0x467B
+
644#define _FiveExec 0x467E
+
645#define _CPYTO2ES1 0x4681
+
646#define _CPYTO6ES1 0x4684
+
647#define _CPYTO1ES1 0x4687
+
648#define _CPYTO3ES1 0x468A
+
649#define _CPYTO3ES2 0x468D
+
650#define _CPYTO2ES2 0x4690
+
651#define _CPYTO1ES2 0x4693
+
652#define _CPYTO2ES3 0x4696
+
653#define _CPYTO1ES3 0x4699
+
654#define _CPYTO3ES4 0x469C
+
655#define _CPYTO6ES3 0x469F
+
656#define _CPYTO2ES4 0x46A2
+
657#define _CPYTO1ES4 0x46A5
+
658#define _CPYTO2ES5 0x46A8
+
659#define _CPYTO1ES5 0x46AB
+
660#define _CPYTO4EST 0x46AE
+
661#define _CPYTO2EST 0x46B1
+
662#define _CPYTO1EST 0x46B4
+
663#define _CPYTO2ES6 0x46B7
+
664#define _CPYTO1ES6 0x46BA
+
665#define _CPYTO2ES7 0x46BD
+
666#define _CPYTO1ES7 0x46C0
+
667#define _CPYTO2ES8 0x46C3
+
668#define _CPYTO1ES8 0x46C6
+
669#define _CPYTO1ES9 0x46C9
+
670#define _CPYTO2ES9 0x46CC
+
671#define _CPYTO2ES10 0x46CF
+
672#define _CPYTO1ES10 0x46D2
+
673#define _CPYTO2ES11 0x46D5
+
674#define _CPYTO1ES11 0x46D8
+
675#define _CPYTO2ES12 0x46DB
+
676#define _CPYTO1ES12 0x46DE
+
677#define _CPYTO2ES13 0x46E1
+
678#define _CPYTO1ES13 0x46E4
+
679#define _CPYTO1ES14 0x46E7
+
680#define _CPYTO1ES16 0x46EA
+
681#define _CPYTO1ES17 0x46ED
+
682#define _CPYTO1ES18 0x46F0
+
683#define _CPYTO1ES15 0x46F3
+
684#define _CPYTO2ES15 0x46F6
+
685#define _CPYO1TOEST 0x46F9
+
686#define _CPYO1TOES1 0x46FC
+
687#define _CPYO6TOES1 0x46FF
+
688#define _CPYO6TOES3 0x4702
+
689#define _CPYO1TOES2 0x4705
+
690#define _CPYO2TOES2 0x4708
+
691#define _CPYO1TOES3 0x470B
+
692#define _CPYO1TOES4 0x470E
+
693#define _CPYO1TOES5 0x4711
+
694#define _CPYO1TOES6 0x4714
+
695#define _CPYO1TOES7 0x4717
+
696#define _CPYO2TOES4 0x471A
+
697#define _CPYO2TOES5 0x471D
+
698#define _CPYO2TOES6 0x4720
+
699#define _CPYO2TOES7 0x4723
+
700#define _CPYO2TOES8 0x4726
+
701#define _CPYO2TOES9 0x4729
+
702#define _CPYO1TOES8 0x472C
+
703#define _CPYO1TOES9 0x472F
+
704#define _CPYO1TOES10 0x4732
+
705#define _CPYO1TOES11 0x4735
+
706#define _CPYO1TOES12 0x4738
+
707#define _CPYO1TOES13 0x473B
+
708#define _CPYO1TOES14 0x473E
+
709#define _CPYO1TOES15 0x4741
+
710#define _EVALF3A 0x4744
+
711#define _GetK 0x4747 //?
+
712#define _setTitle 0x474A
+
713#define _dispVarVal 0x474D
+
714#define _RecallEd 0x4750 //_setupBuffer
+
715#define _createNumEditBuf 0x4753
+
716#define _ProcessBufKeys 0x4756 //may be default key processing like [CLEAR], etc. especially for an edit buffer.
+
717#define _CallCommon 0x4759
+
718#define _CommonKeys 0x475C
+
719#define _Leftmore 0x475F
+
720#define _fDel 0x4762
+
721#define _fClear 0x4765
+
722#define _finsDisp 0x4768 //Michael says _FinsDisp02 equ 4768h (something's not right)
+
723#define _FinsDisp02 0x476B //_setIndicator
+
724#define _closeeditbufnor 0x476E
+
725#define _releaseBuffer 0x4771
+
726#define _varnameToOP1hl 0x4774
+
727#define _nameToOP1 0x4777
+
728#define _numPPutAway 0x477A
+
729#define _numRedisp 0x477D
+
730#define _numError02 0x4780
+
731#define _Load_SFont 0x4783
+
732#define _SFont_Len 0x4786
+
733#define _InitNumVec 0x4789 //inits window settings/table setup/finance solver context (dialog-like)
+
734#define _SetXXOP1 0x478C
+
735#define _SetXXOP2 0x478F
+
736#define _SetXXXXOP2 0x4792
+
737#define _UCLineS 0x4795
+
738#define _CLine 0x4798
+
739#define _CLineS 0x479B
+
740#define _XRootY 0x479E
+
741#define _YToX 0x47A1
+
742#define _ZmStats 0x47A4
+
743#define _POINT_STAT_HLP 0x47A7
+
744#define _DRAWSPLOT 0x47AA
+
745#define _INITNEWTRACEP 0x47AD //A is input here, goes to (8E63h)
+
746#define _SPLOTCOORD 0x47B0
+
747#define _SPLOTRIGHT 0x47B3
+
748#define _SPLOTLEFT 0x47B6
+
749#define _CMPBOXINFO 0x47B9
+
750#define _NEXTPLOT 0x47BC
+
751#define _PREVPLOT 0x47BF
+
752#define _CLRPREVPLOT 0x47C2
+
753#define _PUT_INDEX_LST 0x47C5
+
754#define _GET_INDEX_LST 0x47C8
+
755#define _HEAP_SORT 0x47CB
+
756#define _StoGDB2 0x47CE
+
757#define _RclGDB2 0x47D1
+
758#define _CircCmd 0x47D4
+
759#define _GrphCirc 0x47D7
+
760#define _Mov18B 0x47DA
+
761#define _DarkLine 0x47DD
+
762#define _ILine 0x47E0
+
763#define _IPoint 0x47E3
+
764#define _XYRNDBOTH 0x47E6
+
765#define _XYRND 0x47E9
+
766#define _CheckTOP 0x47EC
+
767#define _CheckXY 0x47EF
+
768#define _DarkPnt 0x47F2
+
769#define _CPointS 0x47F5
+
770#define _WTOV 0x47F8
+
771#define _VtoWHLDE 0x47FB
+
772#define _Xitof 0x47FE
+
773#define _YftoI 0x4801
+
774#define _XftoI 0x4804
+
775#define _TraceOff 0x4807
+
776#define _GrRedisp 0x480A
+
777#define _GDISPTOKEN 0x480D
+
778#define _GRDECODA 0x4810
+
779#define _LABCOOR 0x4813 //draws labels with _GRLABELS and X/Y/whatever coordinates, including stat plot stuff
+
780#define _COORDISP 0x4816 //draws X & Y coordinates (or R and theta if PolarGC)
+
781#define _TMPEQUNOSRC 0x4819
+
782#define _GRLABELS 0x481C
+
783#define _YPIXSET 0x481F
+
784#define _XPIXSET 0x4822
+
785#define _COPYRNG 0x4825
+
786#define _VALCUR 0x4828 //just sets/resets three flags, enables graph cursor
+
787#define _GRPUTAWAY 0x482B
+
788#define _RSTGFLAGS 0x482E
+
789#define _GRReset 0x4831
+
790#define _XYCENT 0x4834
+
791#define _ZOOMXYCMD 0x4837
+
792#define _CPTDELY 0x483A
+
793#define _CPTDELX 0x483D
+
794#define _SetFuncM 0x4840
+
795#define _SetSeqM 0x4843
+
796#define _SetPolM 0x4846
+
797#define _SetParM 0x4849
+
798#define _ZmInt 0x484C
+
799#define _ZmDecml 0x484F
+
800#define _ZmPrev 0x4852
+
801#define _ZmUsr 0x4855
+
802#define _SETUZM 0x4858
+
803#define _ZmFit 0x485B
+
804#define _ZmSquare 0x485E
+
805#define _ZmTrig 0x4861
+
806#define _SetXMinMax 0x4864
+
807#define _ZooDefault 0x4867
+
808#define _GrBufCpy 0x486A
+
809#define _DRAWSPLITLINE 0x486D
+
810#define _RestoreDisp 0x4870
+
811#define _FNDDB 0x4873
+
812#define _AllEq 0x4876
+
813#define _fndallseleq 0x4879
+
814#define _NEXTEQ 0x487C
+
815#define _PREVEQ 0x487F
+
816#define _BLINKGCUR 0x4882
+
817#define _NBCURSOR 0x4885
+
818#define _STATMARK 0x4888
+
819#define _CHKTEXTCURS 0x488B
+
820#define _Regraph 0x488E
+
821#define _DOREFFLAGS02 0x4891 //something wrong here
+
822#define INITNSEQ 0x4894
+
823#define _YRES 0x4897 //_PLOTPTXY2
+
824#define _Ceiling 0x489A //ceil(OP1)
+
825#define _PutXY 0x489D //draws X & Y coordinates (regardless of PolarGC)
+
826#define _PUTEQUNO 0x48A0
+
827#define _PDspGrph 0x48A3
+
828#define _HorizCmd 0x48A6
+
829#define _VertCmd 0x48A9
+
830#define _LineCmd 0x48AC
+
831#define _UnLineCmd 0x48AF
+
832#define _PointCmd 0x48B2
+
833#define _PixelTest 0x48B5
+
834#define _PixelCmd 0x48B8
+
835#define _TanLnF 0x48BB
+
836#define _DRAWCMD_INIT 0x48BE
+
837#define _DrawCmd 0x48C1
+
838#define _SHADECMD 0x48C4
+
839#define _InvCmd 0x48C7
+
840#define _STATSHADE 0x48CA
+
841#define _dspmattable 0x48CD
+
842#define _dsplsts 0x48D0
+
843#define _closeEditBuf 0x48D3
+
844#define _parseEditBuf 0x48D6
+
845#define _putsm 0x48D9
+
846#define _DspCurTbl 0x48DC
+
847#define _DSPGRTBL 0x48DF
+
848#define _zeroTemplate 0x48E2
+
849#define _settblrefs 0x48E5
+
850#define _dispTblBot 0x48E8
+
851#define _DispTblTop 0x48EB
+
852#define _dispTblbody 0x48EE
+
853#define _VPUTBLANK 0x48F1
+
854#define _TBLTRACE 0x48F4
+
855#define _dispListNameY 0x48F7
+
856#define _CurNameLength 0x48FA
+
857#define _NameToBuf 0x48FD
+
858#define _jpromptcursor 0x4900
+
859#define _BufLeft 0x4903
+
860#define _BufRight 0x4906
+
861#define _bufInsert 0x4909
+
862#define _bufQueueChar 0x490C
+
863#define _BufReplace 0x490F
+
864#define _BufDelete 0x4912
+
865#define _BUFPEEK 0x4915
+
866#define _BUFPEEK1 0x4918
+
867#define _BUFPEEK2 0x491B
+
868#define _BUFPEEK3 0x491E
+
869#define _BufToBtm 0x4921
+
870#define _setupEditEqu 0x4924
+
871#define _BufToTop 0x4927
+
872#define _isEditFull 0x492A
+
873#define _IsEditEmpty 0x492D
+
874#define _IsAtTop 0x4930
+
875#define _IsAtBtm 0x4933
+
876#define _BufClear 0x4936
+
877#define _JcursorFirst 0x4939
+
878#define _JcursorLast 0x493C
+
879#define _CursorLeft 0x493F
+
880#define _cursorRight 0x4942
+
881#define _cursorUp 0x4945
+
882#define _CursorDown 0x4948
+
883#define _cursorToOffset 0x494B
+
884#define _InsDisp 0x494E
+
885#define _FDISPBOL1 0x4951
+
886#define _FDISPBOL 0x4954
+
887#define _DispEOW 0x4957
+
888#define _DispHead 0x495A
+
889#define _DispTail 0x495D
+
890#define _PutTokString 0x4960
+
891#define _setupEditCmd 0x4963
+
892#define _setEmptyEditEqu 0x4966
+
893#define _SetEmptyEditPtr 0x4969
+
894#define _CloseEditEqu 0x496C
+
895#define _GetPrevTok 0x496F
+
896#define _getkey 0x4972
+
897#define _canIndic 0x4975
+
898#define _LCD_DRIVERON 0x4978
+
899#define _DFMIN2 0x497B
+
900#define _formDisp 0x497E //this is directly what the OS calls on the homescreen to display a result
+
901#define _formMatrix 0x4981
+
902#define _wscrollLeft 0x4984
+
903#define _wscrollUp 0x4987
+
904#define _wscrollDown 0x498A
+
905#define _wscrollRight 0x498D
+
906#define _FormEReal 0x4990
+
907#define _formERealTOK 0x4993
+
908#define _FormDCplx 0x4996
+
909#define _FormReal 0x4999
+
910#define _formScrollUp 0x499C
+
911#define _setwinabove 0x499F
+
912#define _disarmScroll 0x49A2
+
913#define _OP1toEdit 0x49A5
+
914#define _MinToEdit 0x49A8
+
915#define _rclVarToEdit 0x49AB
+
916#define _rclVarToEditPtR 0x49AE
+
917#define _RCLENTRYTOEDIT 0x49B1
+
918#define _rclToQueue 0x49B4 //recalls bytes at OP1 into edit buffer
+
919#define _FORMTOTOK 0x49B7
+
920#define _DISP_INTERVAL 0x49BA
+
921#define _DisplstName 0x49BD
+
922#define _dispSLstNameHL 0x49C0
+
923#define _EditEqu 0x49C3
+
924#define _closeEquField 0x49C6
+
925#define _AutoSelect 0x49C9
+
926#define _DISPYEOS 0x49CC
+
927#define _dispNumEOS 0x49CF
+
928#define _setupdispeq 0x49D2
+
929#define _DispForward 0x49D5
+
930#define _DispYPrompt2 0x49D8
+
931#define _stringwidth 0x49DB
+
932#define _dispErrorScreen 0x49DE //displays top row of error screen (error message)
+
933#define _POPCX 0x49E1 //moves 14 bytes at cxPrev to cxMain, 15th byte goes to replace appflags
+
934#define _loadnoeentry 0x49E4
+
935#define _SaveScreen 0x49E7
+
936#define _RETSCREEN 0x49EA
+
937#define _RetScreenErr 0x49ED
+
938#define _CheckSplitFlag 0x49F0
+
939#define _SolveRedisp 0x49F3
+
940#define _SolveDisp 0x49F6
+
941#define _itemName 0x49F9
+
942#define _SetNorm_Vals 0x49FC
+
943#define _SetYOffset 0x49FF //sets up YOffset and next 4 bytes (possibly specialized for the table editor)
+
944#define _ConvKeyToTok 0x4A02
+
945#define _ConvFCKeyToTok 0x4A05
+
946#define _ConvFEKeyToTok 0x4A08
+
947#define _TokToKey 0x4A0B
+
948#define _SendSkipExitPacket 0x4A0E
+
949#define _GETVARCMD 0x4A11
+
950#define _SendVarCmd 0x4A14
+
951#define _SendScreenshot 0x4A17
+
952#define keyscnlnk 0x4A1A
+
953#define _DeselectAllVars 0x4A1D
+
954#define _DelRes 0x4A20
+
955#define _ConvLcToLr 0x4A23
+
956#define _RedimMat 0x4A26
+
957#define _IncLstSize 0x4A29
+
958#define _InsertList 0x4A2C
+
959#define _dellistel 0x4A2F
+
960#define _EditProg 0x4A32
+
961#define _CloseProg 0x4A35
+
962#define _ClrGraphRef 0x4A38
+
963#define _FixTempCnt 0x4A3B
+
964#define _SAVEDATA 0x4A3E
+
965#define _RESTOREDATA 0x4A41
+
966#define _FindAlphaUp 0x4A44
+
967#define _FindAlphaDn 0x4A47
+
968#define _CmpSyms 0x4A4A
+
969#define _CREATETEMP 0x4A4D
+
970#define _CleanAll 0x4A50
+
971#define _MoveToNextSym 0x4A53 //input: hl=pointer to type byte of VAT entry. output: hl = pointer to next entry's type byte
+
972#define _ConvLrToLc 0x4A56
+
973#define _TblScreenDn 0x4A59 //something is not right here
+
974#define _TblScreenUp 0x4A5C
+
975#define _SCREENUP 0x4A5F
+
976#define _ScreenUpDown 0x4A62
+
977#define _ZifRclHandler 0x4A65
+
978#define _zifrclkapp 0x4A68
+
979#define _rclkeyRtn 0x4A6B
+
980#define _RCLKEY 0x4A6B
+
981#define _RCLREGEQ_CALL 0x4A6E
+
982#define _RCLREGEQ 0x4A71
+
983#define _initNamePrompt 0x4A74
+
984#define _NamePrompt2 0x4A77
+
985#define _CATALOGCHK 0x4A7A
+
986#define _clrTR 0x4A7D
+
987#define _QUAD 0x4A80
+
988#define _GRAPHQUAD 0x4A83
+
989#define _BC2NOREAL 0x4A86
+
990#define _ErrNonReal_FPST_FPS1 0x4A89
+
991#define _ErrNonReal 0x4A8C //ERR:DATA TYPE if top B numers from FPS are non-real
+
992#define _WRITE_TEXT 0x4A8F
+
993#define _FORSEQINIT 0x4A92
+
994#define _GRPHPARS 0x4A95
+
995#define _PLOTPARS 0x4A98
+
996#define _ParseInp 0x4A9B
+
997#define _PARSEOFF 0x4A9E
+
998#define _PARSESCAN 0x4AA1
+
999#define _GETPARSE 0x4AA4
+
1000#define _SAVEPARSE 0x4AA7
+
1001#define _InitPFlgs 0x4AAA
+
1002#define _CKENDLINERR 0x4AAD
+
1003#define _OP2Set60 0x4AB0
+
1004#define _GETSTATPTR 0x4AB3
+
1005#define _CMP_STATPTR 0x4AB6
+
1006#define _VARSYSADR 0x4AB9
+
1007#define _StoSysTok 0x4ABC
+
1008#define _StoAns 0x4ABF
+
1009#define _StoTheta 0x4AC2
+
1010#define _StoR 0x4AC5
+
1011#define _StoY 0x4AC8
+
1012#define _StoN 0x4ACB
+
1013#define _StoT 0x4ACE
+
1014#define _StoX 0x4AD1
+
1015#define _StoOther 0x4AD4
+
1016#define _RclAns 0x4AD7
+
1017#define _RclY 0x4ADA
+
1018#define _RclN 0x4ADD
+
1019#define _RclX 0x4AE0
+
1020#define _RclVarSym 0x4AE3
+
1021#define _RclSysTok 0x4AE6
+
1022#define _StMatEl 0x4AE9
+
1023#define _STLSTVECEL 0x4AEC
+
1024#define _ConvOP1 0x4AEF
+
1025#define _Find_Parse_Formula 0x4AF2
+
1026#define _PARSE_FORMULA 0x4AF5
+
1027#define _FetchQuotedString 0x4AF8
+
1028#define _FetchNumLine 0x4AFB
+
1029#define _ParseNameTokens 0x4AFE
+
1030#define _ParseInpGraph 0x4B01 //same as _ParseInp except 3,(iy+1Fh) is graph/split screen override, or something
+
1031#define _ParseInpGraphReset 0x4B04 //_ParseInpGraph except zeroes out iy+6/7, resets 3,(iy+1Ah) & 0,(iy+1Fh), fmtFlags->fmtOverride, parse within ParseInp?
+
1032#define _ParseInpLastEnt 0x4B07 //ParseInp on program 05h,23h,00h
+
1033#define _ErrOnCertainTypes 0x4B0A //ERR:DATA TYPE if A is one of a couple of values...subroutine in ParseInp, somehow
+
1034#define _CreatePair 0x4B0D
+
1035#define _PUSHNUM 0x4B10
+
1036#define _INCCURPCERREND 0x4B13
+
1037#define _ERREND 0x4B16
+
1038#define _COMMAERRF 0x4B19
+
1039#define _COMMAERR 0x4B1C
+
1040#define _STEQARG2 0x4B1F
+
1041#define _STEQARG 0x4B22
+
1042#define _INPARG 0x4B25
+
1043#define _STEQARG3 0x4B28
+
1044#define _NXTFETCH 0x4B2B
+
1045#define _CKFETCHVAR 0x4B2E
+
1046#define _FETCHVARA 0x4B31
+
1047#define _FETCHVAR 0x4B34
+
1048#define _CKENDLIN 0x4B37 //gets parse byte in A and then _CKENDEXP
+
1049#define _CKENDEXP 0x4B3A //checks A for 3Eh or 3Fh
+
1050#define _CKPARSEND 0x4B3D
+
1051#define _STOTYPEARG 0x4B40
+
1052#define _ConvDim 0x4B43
+
1053#define _ConvDim00 0x4B46
+
1054#define _AHEADEQUAL 0x4B49
+
1055#define _PARSAHEADS 0x4B4C
+
1056#define _PARSAHEAD 0x4B4F
+
1057#define _AnsName 0x4B52
+
1058#define _STOCMPREALS 0x4B55
+
1059#define _GETDEPTR 0x4B58
+
1060#define _PUSH2BOPER 0x4B5B //push the value in bc onto the operator stack
+
1061#define _POP2BOPER 0x4B5E //pop 2 bytes on the operator stack to bc
+
1062#define _PUSHOPER 0x4B61 //push the value in a onto the operator stack
+
1063#define _POPOPER 0x4B64 //pop 1 byte on the operator stack to a
+
1064#define _FIND_E_UNDEF 0x4B67
+
1065#define _STTMPEQ 0x4B6A
+
1066#define _FINDEOL 0x4B6D
+
1067#define _BRKINC 0x4B70
+
1068#define _INCFETCH 0x4B73
+
1069#define _CURFETCH 0x4B76
+
1070#define _Random 0x4B79
+
1071#define _StoRand 0x4B7C
+
1072#define _RandInit 0x4B7F
+
1073#define _resetStacks 0x4B82 //(onsp)->(errsp), (fpbase)->(fps), (opbase)->(ops)
+
1074#define _Factorial 0x4B85
+
1075#define _YONOFF 0x4B88
+
1076#define _EQSELUNSEL 0x4B8B
+
1077#define _ITSOLVER 0x4B8E
+
1078#define _GRITSOLVER 0x4B91
+
1079#define _ITSOLVERB 0x4B94
+
1080#define _ITSOLVERNB 0x4B97
+
1081#define _ExTest_INT 0x4B9A
+
1082#define _DIST_FUN 0x4BAD
+
1083#define _LogGamma 0x4BA0
+
1084#define _OneVar 0x4BA3
+
1085#define _ONEVARS_0 0x4BA6
+
1086#define _ORDSTAT 0x4BA9
+
1087#define _INITSTATANS2 0x4BAC
+
1088#define _ANOVA_SPEC 0x4BAF
+
1089#define _OutputExpr 0x4BB2
+
1090#define _CentCursor 0x4BB5
+
1091#define _TEXT 0x4BB8
+
1092#define _FINISHSPEC 0x4BBB
+
1093#define _TRCYFUNC 0x4BBE
+
1094#define _RCL_SEQ_X 0x4BC1
+
1095#define _RCLSEQ2 0x4BC4
+
1096#define _GRPPutAway 0x4BC7
+
1097#define _CKVALDELX 0x4BCA
+
1098#define _CKVALDELTA 0x4BCD
+
1099#define _GrBufClr 0x4BD0
+
1100#define _GRBUFCPY_V 0x4BD3
+
1101#define _FNDSELEQ 0x4BD6
+
1102#define _CLRGRAPHXY 0x4BD9
+
1103#define _NEDXT_Y_STYLE 0x4BDC
+
1104#define _PLOTPT 0x4BDF
+
1105#define _NEWINDEP 0x4BE2
+
1106#define _Axes 0x4BE5
+
1107#define _setPenX 0x4BE8
+
1108#define _setPenY 0x4BEB
+
1109#define _setPenT 0x4BEE
+
1110#define _TAN_EQU_DISP 0x4BF1
+
1111#define _PutAns 0x4BF4
+
1112#define _DispOP1A 0x4BF7
+
1113#define _MATHTANLN 0x4BFA
+
1114#define _ENDDRAW 0x4BFD
+
1115#define _SetTblGraphDraw 0x4C00
+
1116#define _StartDialog 0x4C03
+
1117#define _DialogInit 0x4C06
+
1118#define _GetDialogNumOP1 0x4C09
+
1119#define _SetDialogNumOP1 0x4C0C
+
1120#define _GetDialogNumHL 0x4C0F
+
1121#define _ErrArgumentO123 0x4C12 //ERR:ARGUMENT if OP2>OP1 or OP1>OP3
+
1122#define _SetDialogKeyOverride 0x4C15
+
1123#define _ResDialogKeyOverride 0x4C18
+
1124#define _ForceDialogKeypress 0x4C1B
+
1125#define _DialogStartGetKey 0x4C1E
+
1126#define _StartDialog_Override 0x4C21
+
1127#define _CallDialogCallback 0x4C24
+
1128#define _SetDialogCallback 0x4C27
+
1129#define _ResDialogCallback 0x4C2A
+
1130#define _CopyDialogNum 0x4C2D
+
1131#define _MemClear 0x4C30
+
1132#define _MemSet 0x4C33
+
1133#define _ReloadAppEntryVecs 0x4C36
+
1134#define _PointOn 0x4C39
+
1135#define _ExecuteNewPrgm 0x4C3C
+
1136#define _StrLength 0x4C3F
+
1137#define _VPutMapRec 0x4C42
+
1138#define _getRomPage 0x4C45
+
1139#define _FindAppUp 0x4C48
+
1140#define _FindAppDn 0x4C4B
+
1141#define _FindApp 0x4C4E
+
1142#define _ExecuteApp 0x4C51
+
1143#define _MonReset 0x4C54
+
1144#define _ClearParseVar 0x4C57
+
1145#define _SetParseVarProg 0x4C5A
+
1146#define _isContextKey 0x4C5D
+
1147#define _IBounds 0x4C60
+
1148#define _IOffset 0x4C63
+
1149#define _DrawCirc2 0x4C66
+
1150#define _CanAlphIns 0x4C69
+
1151#define cxRedisp 0x4C6C
+
1152#define _GetBaseVer 0x4C6F
+
1153#define _OPSet0DE 0x4C72 //loads a floating point 0 to location de
+
1154#define _AppGetCbl 0x4C75
+
1155#define _AppGetCalc 0x4C78
+
1156#define _SaveDisp 0x4C7B
+
1157#define _SetIgnoreKey 0x4C7E //set 1,(iy+28h) / ret
+
1158#define _SetSendThisKeyBack 0x4C81 //set 2,(iy+28h) / ld (kbdKey),a / ret
+
1159#define _DisableApd 0x4C84
+
1160#define _EnableApd 0x4C87 //set apdable,(iy+apdflags)
+
1161#define _JForceCmdNoChar2 0x4C8A //2.41 at least
+
1162#define _set2IY34 0x4C8D //set 2,(iy+34) / ret
+
1163#define _forcecmd 0x4C90
+
1164#define _ApdSetup 0x4C93
+
1165#define _Get_NumKey 0x4C96
+
1166#define _AppSetup 0x4C99 //or _AppCleanup, or something
+
1167#define _HandleLinkKeyActivity 0x4C9C
+
1168#define _JForceCmdNoChar3 0x4C9F //2.41 at least
+
1169#define _ReleaseSedit 0x4CA2
+
1170#define _initsmalleditline 0x4CA5
+
1171#define _startsmalledit 0x4CA8
+
1172//4CABh
+
1173#define _SGetTokString 0x4CAE
+
1174#define _LoadPattern 0x4CB1
+
1175#define _SStringLength 0x4CB4
+
1176#define _RestorePenCol 0x4CB7
+
1177//4CBAh
+
1178#define _DoNothing 0x4CBD
+
1179#define _ForceSmallEditReturn 0x4CC0
+
1180//4CC3h ;saves context
+
1181//4CC6h
+
1182//4CC9h
+
1183//4CCCh
+
1184#define _VEraseEOL 0x4CCF
+
1185//4CD2h
+
1186//4CD5h
+
1187#define _GoToErr 0x4CD8
+
1188#define _initsmalleditBox 0x4CDB
+
1189//4CDEh
+
1190#define _EmptyHook 0x4CE1
+
1191#define _ForceSmallEditReturn2 0x4CE4
+
1192//4CE7h ;same as 4CC3h
+
1193//4CEAh
+
1194#define _ClearRow 0x4CED
+
1195//4CF0h
+
1196//4CF3h
+
1197//4CF6h
+
1198//4CF9h
+
1199//4CFCh
+
1200//4CFFh
+
1201//4D02h
+
1202//4D05h
+
1203//4D08h
+
1204//4D0Bh
+
1205//4D0Eh
+
1206//4D11h
+
1207//4D14h
+
1208//4D17h
+
1209//4D1Ah
+
1210//4D1Dh
+
1211//4D20h
+
1212//4D23h
+
1213#define _AppScreenUpDown 0x4D26 //shifts screen up/down, A is LCD row, H is number of lines to shift, (OP1)-(OP1+3) are something
+
1214#define _AppScreenUpDown1 0x4D29 //shifts screen up/down, but really no clue what the inputs are (all registers and (OP1)-(OP1+3))
+
1215//4D2Ch
+
1216#define _initsmalleditlinevar 0x4D2F
+
1217#define _initsmalleditlineop1 0x4D32
+
1218#define _initsmalleditboxvar 0x4D35
+
1219#define _initsmalleditboxop1 0x4D38
+
1220//4D3Bh
+
1221#define _RestartDialog 0x4D3E
+
1222#define _ErrCustom1 0x4D41
+
1223#define _ErrCustom2 0x4D44
+
1224#define _AppStartMouse 0x4D47
+
1225#define _AppStartMouseNoSetup 0x4D4A
+
1226#define _AppMouseGetKey 0x4D4D
+
1227#define _AppDispMouse 0x4D50
+
1228#define _AppEraseMouse 0x4D53
+
1229#define _AppSetupMouseMem 0x4D56
+
1230#define _GetDispRowOffset 0x4D59 //HL=A*12 (intended for A to be row and HL becomes offset into plotSScreen)
+
1231#define _ClearRect 0x4D5C
+
1232#define _InvertRect 0x4D5F
+
1233#define _FillRect 0x4D62
+
1234#define _AppUpdateMouse 0x4D65
+
1235#define _AppDispPrevMouse 0x4D68 //might bring previous keypress's movement to current coordinates with flags to not display
+
1236//4D6Bh ;restores some cursor flags and stuff
+
1237#define _initcellbox 0x4D6E
+
1238#define _drawcell 0x4D71
+
1239//4D74h
+
1240#define _invertcell 0x4D77
+
1241#define _setcelloverride 0x4D7A
+
1242#define _DrawRectBorder 0x4D7D
+
1243#define _ClearCell 0x4D80
+
1244#define _covercell 0x4D83
+
1245#define _EraseRectBorder 0x4D86
+
1246#define _FillRectPattern 0x4D89
+
1247#define _DrawRectBorderClear 0x4D8C
+
1248//4D8Fh ;mouse subroutine
+
1249//4D92h
+
1250#define _VerticalLine 0x4D95
+
1251#define _IBoundsFull 0x4D98
+
1252#define _DisplayImage 0x4D9B
+
1253//4D9Eh ;does something dumb with ports 10h/11h
+
1254//4DA1h ;mouse subroutine
+
1255#define _AppUpdateMouseCoords 0x4DA4
+
1256#define _ShiftBitsLeft 0x4DA7 //mouse subroutine, shifts B bits left from DE sprite to HL one
+
1257//4DAAh ;mouse subroutine
+
1258//4DADh ;mouse subroutine
+
1259//4DB0h ;mouse subroutine
+
1260//4DB3h ;mouse subroutine
+
1261//4DB6h ;mouse subroutine
+
1262//4DB9h ;mouse subroutine
+
1263//4DBCh ;mouse subroutine
+
1264#define _AppUpdateMouseRow 0x4DBF
+
1265#define _AppDrawMouse 0x4DC2 //set 2,(iy+2Ch) for AppEraseMouse, reset for AppDispMouse
+
1266#define _AppDrawMouseDirect 0x4DC5 //pretty much _AppDrawMouse, but you pass LCD column in A
+
1267#define _CPoint 0x4DC8
+
1268#define _DeleteApp 0x4DCB
+
1269#define _AppUpdateMouseXY 0x4DCE
+
1270#define _setmodecellflag 0x4DD1
+
1271#define _resetmodecellflag 0x4DD4
+
1272#define _ismodecellset 0x4DD7
+
1273#define _getmodecellflag 0x4DDA
+
1274//4DDDh
+
1275#define _CellBoxManager 0x4DE0
+
1276#define _startnewcell 0x4DE3
+
1277//4DE6h
+
1278#define _CellCursorHandle 0x4DE9
+
1279//4DECh
+
1280//4DEFh
+
1281#define _ClearCurCell 0x4DF2
+
1282#define _drawcurcell 0x4DF5
+
1283#define _invertcurcell 0x4DF8
+
1284#define _covercurcell 0x4DFB
+
1285#define _BlinkCell 0x4DFE
+
1286#define _BlinkCellNoLookUp 0x4E01
+
1287#define _BlinkCurCell 0x4E04
+
1288#define _BlinkCellToOn 0x4E07
+
1289#define _BlinkCellToOnNoLookUp 0x4E0A
+
1290#define _BlinkCurCellToOn 0x4E0D
+
1291#define _BlinkCellToOff 0x4E10
+
1292#define _BlinkCellToOffNoLookUp0x4E13
+
1293#define _BlinkCurCellToOff 0x4E16
+
1294#define _getcurmodecellflag 0x4E19
+
1295//4E1Ch
+
1296#define _startsmalleditreturn 0x4E1F
+
1297//4E22h
+
1298//4E25h
+
1299#define _CellkHandle 0x4E28
+
1300#define _errchkalphabox 0x4E2B
+
1301//4E2Eh
+
1302//4E31h
+
1303//4E34h
+
1304//4E37h
+
1305#define _eraseallcells 0x4E3A
+
1306#define _iscurmodecellset 0x4E3D
+
1307//4E40h
+
1308#define _initalphabox 0x4E43
+
1309//4E46h
+
1310//4E49h
+
1311#define _drawblnkcell 0x4E4C
+
1312#define _ClearBlnkCell 0x4E4F
+
1313#define _invertblnkcell 0x4E52
+
1314#define _AppMouseForceKey 0x4E55
+
1315#define _AppSetupMouseMemCoords 0x4E58 //this is _AppSetupMouseMem except you pass starting coordinates in HL
+
1316#define _AppMoveMouse 0x4E5B //this is _AppMouseForceKey and then updating coordinates
+
1317#define _GetStringInput 0x4E5E
+
1318#define _GetStringInput2 0x4E61
+
1319#define _WaitEnterKeyValue 0x4E64
+
1320#define _HorizontalLine 0x4E67
+
1321#define _CreateAppVar 0x4E6A
+
1322#define _CreateProtProg 0x4E6D
+
1323#define _CreateVar 0x4E70
+
1324#define _AsmComp 0x4E73
+
1325#define _GetAsmSize 0x4E76
+
1326#define _SquishPrgm 0x4E79
+
1327#define _ExecutePrgm 0x4E7C
+
1328#define _ChkFindSymAsm 0x4E7F
+
1329#define _ParsePrgmName 0x4E82
+
1330#define _CSub 0x4E85
+
1331#define _CAdd 0x4E88
+
1332#define _CSqaure 0x4E8B
+
1333#define _CMult 0x4E8E
+
1334#define _CRecip 0x4E91
+
1335#define _CDiv 0x4E94
+
1336#define _CAbs 0x4E97
+
1337#define _AddSquares 0x4E9A
+
1338#define _CSqRoot 0x4E9D
+
1339#define _CLN 0x4EA0
+
1340#define _CLog 0x4EA3
+
1341#define _CTenX 0x4EA6
+
1342#define _CEtoX 0x4EA9
+
1343#define _CXrootY 0x4EAC
+
1344//4EAFh
+
1345#define _CYtoX 0x4EB2
+
1346#define _InvertNonReal 0x4EB5
+
1347#define _CplxMult 0x4EB8
+
1348#define _CplxDiv 0x4EBB
+
1349#define _CplxTrunc 0x4EBE
+
1350#define _CplxFrac 0x4EC1
+
1351#define _CplxFloor 0x4EC4
+
1352#define _SendHeaderPacket 0x4EC7
+
1353#define _CancelTransmission 0x4ECA
+
1354#define _SendScreenContents 0x4ECD
+
1355#define _SendRAMVarData 0x4ED0
+
1356#define _SendRAMCmd 0x4ED3
+
1357#define _SendPacket 0x4ED6
+
1358#define _ReceiveAck 0x4ED9
+
1359#define _Send4BytePacket 0x4EDC
+
1360#define _SendDataByte 0x4EDF
+
1361#define _Send4Bytes 0x4EE2
+
1362#define _SendAByte 0x4EE5
+
1363#define _SendCByte 0x4EE8
+
1364#define _GetSmallPacket 0x4EEB
+
1365#define _GetDataPacket 0x4EEE
+
1366#define _SendAck 0x4EF1
+
1367#define _Get4Bytes 0x4EF4
+
1368#define _Get3Bytes 0x4EF7
+
1369#define _Rec1stByte 0x4EFA
+
1370#define _Rec1stByteNC 0x4EFD
+
1371#define _ContinueGetByte 0x4F00
+
1372#define _RecAByteIO 0x4F03
+
1373#define _ReceiveVar 0x4F06
+
1374#define _ReceiveVarDataExists 0x4F09
+
1375#define _ReceiveVarData 0x4F0C
+
1376#define _SrchVLstUp 0x4F0F
+
1377#define _SrchVLstDn 0x4F12
+
1378#define _SendVariable 0x4F15
+
1379#define _Get4BytesCursor 0x4F18
+
1380#define _Get4BytesNC 0x4F1B
+
1381#define _Convert85List 0x4F1E
+
1382#define _SendDirectoryContents 0x4F21
+
1383#define _SendReadyPacket 0x4F24
+
1384#define _Convert85Real 0x4F27
+
1385#define _ret_6 0x4F2A
+
1386#define _SendCertificate 0x4F2D //sends certificate in header/data packets, Flash must be unlocked, used with sending an application in LINK menu
+
1387#define _SendApplication 0x4F30
+
1388#define _SendOSHeader 0x4F33
+
1389#define _SendOSPage 0x4F36
+
1390#define _SendOS 0x4F39
+
1391#define _FlashWriteDisable 0x4F3C
+
1392#define _SendCmd 0x4F3F
+
1393#define _SendOSValidationData 0x4F42
+
1394#define _Disp 0x4F45
+
1395#define _SendGetkeyPress 0x4F48
+
1396#define _RejectCommand 0x4F4B
+
1397#define _CheckLinkLines 0x4F4E
+
1398#define _GetHookByte 0x4F51
+
1399#define _GetBytePaged 0x4F54
+
1400#define _cursorhook 0x4F57
+
1401#define _call_library_hook 0x4F5A
+
1402#define _call_rawkey_hook 0x4F5D
+
1403#define _setCursorHook 0x4F60 //enable cursor hook
+
1404#define _EnableLibraryHook 0x4F63
+
1405#define _SetGetKeyHook 0x4F66
+
1406#define _ClrCursorHook 0x4F69
+
1407#define _DisableLibraryHook 0x4F6C
+
1408#define _ClrRawKeyHook 0x4F6F
+
1409#define _ResetHookBytes 0x4F72
+
1410#define _AdjustAllHooks 0x4F75
+
1411#define _getkeyhook 0x4F78
+
1412#define _SetGetcscHook 0x4F7B
+
1413#define _ClrGetKeyHook 0x4F7E
+
1414#define _call_linkactivity_hook 0x4F81
+
1415#define _EnableLinkActivityHook 0x4F84
+
1416#define _DisableLinkHook 0x4F87
+
1417#define _GetSmallPacket2 0x4F8A
+
1418#define _EnableCatalog2Hook 0x4F8D
+
1419#define _DisableCatalog2Hook 0x4F90
+
1420#define _EnableLocalizeHook 0x4F93
+
1421#define _DisableLocalizeHook 0x4F96
+
1422#define _SetTokenHook 0x4F99
+
1423#define _ClearTokenHook 0x4F9C
+
1424//4F9Fh ld hl,92c6 / ld a,(92c5) / res 2,a / cp (hl) / ret
+
1425//4FA2h hl=11*(92fc)+92c9 / ld a,(hl) / and Fh / cp 2 / ret ; I can almost guarantee this is stat plot related
+
1426#define _DispListElementOffLA 0x4FA5
+
1427#define _Bit_VertSplit 0x4FA8
+
1428#define _SetHomescreenHook 0x4FAB
+
1429#define _ClrHomeScreenHook 0x4FAE
+
1430#define _SetWindowHook 0x4FB1
+
1431#define _DisableWindowHook 0x4FB4
+
1432#define _SetGraphModeHook 0x4FB7
+
1433#define _DisableGraphHook 0x4FBA
+
1434#define _ParseAndStoreSysVar 0x4FBD
+
1435#define _DisplayEditSysVar 0x4FC0
+
1436#define _JForceWindowSettings 0x4FC3
+
1437#define _DelVarArc 0x4FC6
+
1438#define _DelVarNoArc 0x4FC9
+
1439#define _SetAllPlots 0x4FCC
+
1440#define _SetYeditHook 0x4FCF
+
1441#define _DisableYEquHook 0x4FD2
+
1442#define _JForceYEqu 0x4FD5
+
1443#define _Arc_Unarc 0x4FD8 //checks for low battery
+
1444#define _ArchiveVar 0x4FDB //set 0,(iy+24h) to check for low battery first
+
1445#define _UnarchiveVar 0x4FDE
+
1446#define _DialogKeyHook 0x4FE1 //rawkey hook used by OS for dialog context
+
1447#define _SetFontHook 0x4FE4
+
1448#define _ClrFontHook 0x4FE7
+
1449#define _SetRegraphHook 0x4FEA
+
1450#define _DisableRegraphHook 0x4FED
+
1451#define _RunGraphingHook 0x4FF0
+
1452#define _SetTraceHook 0x4FF3
+
1453#define _DisableTraceHook 0x4FF6
+
1454#define _RunTraceHook 0x4FF9
+
1455#define _NDeriv 0x4FFC
+
1456#define _PolarDerivative 0x4FFF
+
1457#define _JForceGraphNoKey 0x5002
+
1458#define _JForceGraphKey 0x5005
+
1459#define _PowerOff 0x5008
+
1460#define _GetKeyRetOff 0x500B //same as getkey, only returns kOff if 2nd+on is pressed
+
1461#define _FindGroupSym 0x500E
+
1462#define _FillBasePageTable 0x5011
+
1463#define _ArcChk 0x5014
+
1464#define _FlashToRam 0x5017
+
1465#define _LoadDEIndPaged 0x501A
+
1466#define _LoadCIndPaged 0x501D
+
1467#define _SetupPagedPtr 0x5020
+
1468#define _PagedGet 0x5023
+
1469#define _SetParserHook 0x5026
+
1470#define _ClearParserHook 0x5029
+
1471#define _SetAppChangeHook 0x502C
+
1472#define _ClearAppChangeHook 0x502F
+
1473#define _EnableGraphicsHook 0x5032
+
1474#define _DisableGraphicsHook 0x5035
+
1475#define _IPointNoGraphicsHook 0x5038
+
1476#define _ILineNoHook 0x503B
+
1477//503Eh
+
1478#define _DeleteTempPrograms 0x5041
+
1479#define _EnableCatalog1Hook 0x5044
+
1480#define _DisableCatalog1Hook 0x5047
+
1481#define _EnableHelpHook 0x504A
+
1482#define _DisableHelpHook 0x504D
+
1483#define _DispCatalogEnd 0x5050
+
1484#define _GetMenuKeypress 0x5053
+
1485#define _GetCatalogItem 0x5056
+
1486#define _RunCatalog2Hook 0x5059
+
1487#define _RunCatalog1Hook 0x505C
+
1488//505Fh
+
1489//5062h
+
1490#define _dispMenuTitle 0x5065
+
1491//5068h
+
1492#define _EnablecxRedispHook 0x506B
+
1493#define _DisablecxRedispHook 0x506E
+
1494#define _BufCpy 0x5071
+
1495#define _BufClr 0x5074
+
1496#define _UnOPExec2 0x5077
+
1497#define _BinOPExec2 0x507A
+
1498#define _LoadMenuB 0x507D //clears screen and loads menu from B, plus a couple flag changes
+
1499#define _DisplayVarInfo 0x5080
+
1500#define _SetMenuHook 0x5083
+
1501#define _ClearMenuHook 0x5086
+
1502#define _getBCOffsetIX 0x5089
+
1503#define _GetBCOffsetIX2 0x508C
+
1504#define _ForceFullScreen 0x508F
+
1505#define _GetVariableData 0x5092
+
1506#define _FindSwapSector 0x5095
+
1507#define _CopyFlashPage 0x5098
+
1508#define _FindAppNumPages 0x509B
+
1509#define _HLMinus5 0x509E
+
1510#define _SendArcPacket 0x50A1
+
1511#define _ForceGraphKeypress 0x50A4
+
1512#define _DoNothing3 0x50A7
+
1513#define _FormBase 0x50AA
+
1514//50ADh
+
1515#define _IsFragmented 0x50B0
+
1516#define _Chk_Batt_Low 0x50B3
+
1517#define _Chk_Batt_Low_2 0x50B6
+
1518#define _Arc_Unarc2 0x50B9 //identical to _Arc_Unarc, except you can choose to res 0,(iy+24h) to skip low battery check
+
1519#define _GetAppBasePage 0x50BC //input: a=one of an app's pages. output: a=app's first page
+
1520#define _SetExSpeed 0x50BF
+
1521#define _RclExit 0x50C2
+
1522#define _GroupAllVars 0x50C5
+
1523#define _UngroupVar 0x50C8
+
1524#define _WriteToFlash 0x50CB //ReceiveApplication or something like that on OSes below 2.40
+
1525#define _SetSilentLinkHook 0x50CE
+
1526#define _DisableSilentLinkHook 0x50D1
+
1527#define _TwoVarSet 0x50D4
+
1528#define _ExecClassCToken 0x50D7
+
1529#define _ExecClass3Token 0x50DA
+
1530#define _GetSysInfo 0x50DD
+
1531#define _NZIf83Plus 0x50E0
+
1532#define _LinkStatus 0x50E3
+
1533#define _DoNothing2 0x50E6 //originally for TI-Navigator
+
1534#define _KeyboardGetKey 0x50E9
+
1535#define _RunAppLib 0x50EC
+
1536#define _FindSpecialAppHeader 0x50EF
+
1537#define _SendUSBData 0x50F2
+
1538#define _AppGetCBLUSB 0x50F5
+
1539#define _AppGetCalcUSB 0x50F8
+
1540#define _GetVarCmdUSB 0x50FB
+
1541//50FEh
+
1542#define _TenX2 0x5101
+
1543//5104h
+
1544//5107h
+
1545#define _GetVarVersion 0x510A
+
1546//510Dh
+
1547//5110h
+
1548#define _DeleteTempEditEqu 0x5113
+
1549#define _JcursorFirst2 0x5116
+
1550//5119h
+
1551#define _PromptMoveBackLeft 0x511C
+
1552#define _wputsEOL2 0x511F //same except res 0,(iy+0Eh) first
+
1553#define _InvertTextInsMode 0x5122
+
1554//5125h
+
1555#define _ResetDefaults 0x5128
+
1556#define _ZeroFinanceVars 0x512B
+
1557#define _DispHeader 0x512E
+
1558#define _JForceGroup 0x5131
+
1559//5134h
+
1560//5137h
+
1561#define _DispCoords 0x513A
+
1562//513Dh
+
1563//5140h
+
1564#define _chkTmr 0x5143
+
1565//5146h
+
1566//5149h
+
1567//514Ch
+
1568#define _getDate 0x514F
+
1569#define _GetDateString 0x5152
+
1570#define _getDtFmt 0x5155
+
1571#define _getDtStr 0x5158
+
1572#define _getTime 0x515B
+
1573#define _GetTimeString 0x515E
+
1574#define _getTmFmt 0x5161
+
1575#define _getTmStr 0x5164
+
1576#define _SetZeroOne 0x5167
+
1577#define _setDate 0x516A
+
1578#define _IsOneTwoThree 0x516D
+
1579#define _setTime 0x5170
+
1580#define _IsOP112or24 0x5173
+
1581#define _chkTimer0 0x5176
+
1582#define _timeCnv 0x5179
+
1583#define _GetLToOP1Extra 0x517C
+
1584#define _ClrWindowAndFlags 0x517F
+
1585#define _SetMachineID 0x5182
+
1586#define _ResetLists 0x5185
+
1587#define _DispValue 0x5188
+
1588//518Bh
+
1589//518Eh
+
1590#define _ExecLib 0x5191
+
1591//5194h
+
1592#define _CPOP1OP2Rounded 0x5197
+
1593#define _CPOP1OP2Rounded2 0x519A
+
1594#define _OpenLib 0x519D
+
1595//51A0h
+
1596//51A3h
+
1597#define _ResetIOPrompt 0x51A6
+
1598#define _StrCpyVarData 0x51A9
+
1599#define _SetUpEditor 0x51AC
+
1600#define _SortA 0x51AF
+
1601#define _SortD 0x51B2
+
1602//51B5h
+
1603#define _IsOP1ResID 0x51B8
+
1604#define _ListEdNameCxMain 0x51BB
+
1605#define _ListEdEnterNewName 0x51BE
+
1606//51C1h
+
1607#define _ForceModeKeypress 0x51C4 //forces a keypress (and calls help hook) on any of several mode-setting contexts
+
1608#define _DispAboutScreen 0x51C7
+
1609#define _ChkHelpHookVer 0x51CA
+
1610#define _Disp32 0x51CD
+
1611//51D0h
+
1612//51D3h
+
1613//51D6h
+
1614//51D9h
+
1615#define _DrawTableEditor 0x51DC //draws table editor lines
+
1616#define _DisplayListNameEquals 0x51DF
+
1617#define _DisplayListHeader 0x51E2
+
1618#define _DispMatrixDimensions 0x51E5
+
1619#define _HighlightListEdItem 0x51E8
+
1620//51EBh
+
1621//51EEh
+
1622#define _MatrixName 0x51F1
+
1623//51F4h
+
1624//51F7h
+
1625//51FAh
+
1626//51FDh
+
1627//5200h
+
1628//5203h
+
1629//5206h
+
1630//5209h
+
1631//520Ch
+
1632//520Fh
+
1633#define _SetupEmptyEditTempEqu 0x5212
+
1634#define _ExecClass1Token 0x5215
+
1635#define _HandleMathTokenParse 0x5218
+
1636#define _MaybePushMultiplyOp 0x521B
+
1637#define _RestartParseOP1Result 0x521E
+
1638#define _Chk_Batt_Level 0x5221
+
1639//5224h
+
1640//5227h
+
1641//522Ah
+
1642#define _DisplayListEquals 0x522D
+
1643#define _GetCurPlotListOffset 0x5230
+
1644#define _GoToLastRow 0x5233
+
1645#define _RectBorder 0x5236
+
1646//5239h
+
1647//523Ch
+
1648//523Fh
+
1649#define _LoadA5 0x5242
+
1650//5245h
+
1651#define _NamedListToOP1 0x5248
+
1652//524Bh
+
1653//524Eh
+
1654//5251h
+
1655#define _InitUSBDeviceCallback 0x5254
+
1656#define _KillUSBDevice 0x5257 //this actually recycles the USB connection and re-inits it (I think)
+
1657#define _SetUSBConfiguration 0x525A
+
1658#define _RequestUSBData 0x525D
+
1659#define _StopReceivingUSBData 0x5260
+
1660#define _FindAppHeaderByPage 0x5263
+
1661#define _FindNextHeaderByPage 0x5266
+
1662#define _IsMatchingLaunchApp 0x5269
+
1663#define _InitTimer 0x526C
+
1664#define _KillTimer 0x526F
+
1665#define _StartTimer 0x5272
+
1666#define _RestartTimer 0x5275
+
1667#define _StopTimer 0x5278
+
1668#define _WaitTimer 0x527B
+
1669#define _CheckTimer 0x527E
+
1670#define _CheckTimerRestart 0x5281
+
1671#define _SetVertGraphActive 0x5284
+
1672#define _ClearVertGraphActive 0x5287
+
1673#define _EnableUSBHook 0x528A
+
1674#define _DisableUSBHook 0x528D
+
1675#define _InitUSBDevice 0x5290
+
1676#define _KillUSBPeripheral 0x5293
+
1677#define _GetCurPlotListOffset2 0x5296
+
1678//5299h
+
1679#define _GraphLine 0x529C
+
1680//529Fh
+
1681//52A2h
+
1682//52A5h
+
1683//52A8h
+
1684//52ABh
+
1685//52AEh
+
1686#define _ZifTableEditor 0x52B1
+
1687//52B4h
+
1688#define _GetCurPlotOffset 0x52B7
+
1689//52BAh
+
1690#define _FindAppName 0x52BD
+
1691//52C0h
+
1692//52C3h
+
1693#define _UpdateStatPlotLists 0x52C6
+
1694#define _GrBufCpyCustom 0x52C9
+
1695//52CCh
+
1696//52CFh
+
1697//52D2h
+
1698#define _VDispRealOP1 0x52D5
+
1699#define _DispXEqualsNum 0x52D8
+
1700#define _ResetGraphSettings 0x52DB
+
1701#define _InitializeVariables 0x52DE
+
1702//52E1h ;bit 4,(9C75h) (this is DEFINITELY returning the status of something when acting as a TI-SmartView Input Pad...this bit is bit 1 of the data byte from a PC HID Set Report request)
+
1703#define _DelVarSym 0x52E4
+
1704#define _FindAppUpNoCase 0x52E7
+
1705#define _FindAppDnNoCase 0x52EA
+
1706#define _DeleteInvalidApps 0x52ED
+
1707#define _DeleteApp_Link 0x52F0
+
1708#define _CmpSymsNoCase 0x52F3
+
1709#define _SetAppRestrictions 0x52F6
+
1710#define _RemoveAppRestrictions 0x52F9
+
1711#define _QueryAppRestrictions 0x52FC
+
1712#define _DispAppRestrictions 0x52FF
+
1713#define _SetupHome 0x5302
+
1714#define _GRPUTAWAYFull 0x5305 //same as _GRPUTAWAY except it assumes no split screen
+
1715#define _SendSmartPadKeypress 0x5308 //B and A are the inputs
+
1716#define _ToggleUSBSmartPadInput 0x530B //A is input, 0 or 1 to enable/disable
+
1717#define _IsUSBDeviceConnected 0x530E //bit 4,(81h) \ ret, this is just a guess on its purpose but it seems to work
+
1718#define _RecycleUSB 0x5311 //identical to 5257h
+
1719#define _PolarEquToOP1 0x5314
+
1720#define _ParamXEquToOP1 0x5317
+
1721#define _ParamYEquToOP1 0x531A
+
1722#define _GetRestrictionsOptions 0x531D
+
1723#define _DispResetComplete 0x5320
+
1724#define _PTTReset 0x5323
+
1725#define _FindAppCustom 0x5326
+
1726#define _ClearGraphStyles 0x5329
+
1727//532Ch
+
1728//532Fh
+
1729//5332h
+
1730//5335h
+
1731//5338h
+
1732//533Bh
+
1733//533Eh
+
1734//5341h
+
1735//5344h
+
1736//5347h
+
1737//534Ah
+
1738//534Dh
+
1739//5350h
+
1740//5353h
+
1741//5356h
+
1742//5359h
+
1743//535Ch
+
1744//535Fh
+
1745//5362h
+
1746//5365h
+
1747//5368h
+
1748//536Bh
+
1749//536Eh
+
1750//5371h
+
1751//5374h
+
1752//5377h
+
1753//537Ah
+
1754//537Dh
+
1755//5380h
+
1756//5383h
+
1757//5386h
+
1758//5389h
+
1759//538Ch
+
1760//538Fh
+
1761//5392h
+
1762//5395h
+
1763//5398h
+
1764//539Bh
+
1765//539Eh
+
1766//53A1h
+
1767//53A4h
+
1768//53A7h
+
1769//53AAh
+
1770//53ADh
+
1771//53B0h
+
1772//53B3h
+
1773//53B6h
+
1774//53B9h
+
1775//53BCh
+
1776//53BFh
+
1777//53C2h
+
1778//53C5h
+
1779//53C8h
+
1780//53CBh
+
1781//53CEh
+
1782//53D1h
+
1783//53D4h
+
1784//53D7h
+
1785//53DAh
+
1786//53DDh
+
1787//53E0h
+
1788//53E3h
+
1789//53E6h
+
1790//53E9h
+
1791//53ECh
+
1792//53EFh
+
1793//53F2h
+
1794//53F5h
+
1795//53F8h
+
1796//53FBh
+
1797//53FEh
+
1798//5401h
+
1799//5404h
+
1800//5407h
+
1801//540Ah
+
1802//540Dh
+
1803//5410h
+
1804//5413h
+
1805//5416h
+
1806//5419h
+
1807//541Ch
+
1808//541Fh
+
1809//5422h
+
1810//5425h
+
1811//5428h
+
1812//542Bh
+
1813//542Eh
+
1814//5431h
+
1815//5434h
+
1816//5437h
+
1817//543Ah
+
1818//543Dh
+
1819//5440h
+
1820//5443h
+
1821//5446h
+
1822//5449h
+
1823#define _xorAret 0x5443
+
1824#define _scfRet 0x5446
+
1825#define _ret 0x5449
+
1826
+
1827//Page 1Fh ROM Calls
+
1828//--------------------------------
+
1829#define bootbtf 0x8000
+
1830//400Fh may point to version string ("1.02 ",0)
+
1831#define _MD5Final 0x8018
+
1832#define _RSAValidate 0x801B
+
1833#define _cmpStr 0x801E //BigNumCompare
+
1834#define _WriteAByte 0x8021
+
1835#define _EraseFlash 0x8024
+
1836#define _FindFirstCertField 0x8027
+
1837#define _ZeroToCertificate 0x802A
+
1838#define _GetCertificateEnd 0x802D
+
1839#define _FindGroupedField 0x8030
+
1840#define _ret_1 0x8033
+
1841#define _ret_2 0x8036
+
1842#define _ret_3 0x8039
+
1843#define _ret_4 0x803C
+
1844#define _ret_5 0x803F
+
1845#define _Mult8By8 0x8042
+
1846#define _Mult16By8 0x8045
+
1847#define _Div16By8 0x8048
+
1848#define _Div16By16 0x804B
+
1849//804Eh ;scary certificate reading and writing, something about calc ID and fields 0A10/0A20
+
1850#define _LoadAIndPaged 0x8051
+
1851#define _FlashToRam2 0x8054
+
1852#define _GetCertificateStart 0x8057
+
1853#define _GetFieldSize 0x805A
+
1854#define _FindSubField 0x805D
+
1855#define _EraseCertificateSector 0x8060
+
1856#define _CheckHeaderKey 0x8063
+
1857//8066h ;just returns Z if specified data in field 0310h, subfield 0610h exists, DE points to data of that field you want to find
+
1858//8069h ;just returns number of 0810h/0710h fields that exist in certificate or something, in IX
+
1859#define _Load_LFontV2 0x806C
+
1860#define _Load_LFontV 0x806F
+
1861#define _ReceiveOS 0x8072
+
1862#define _FindOSHeaderSubField 0x8075
+
1863#define _FindNextCertField 0x8078
+
1864#define _GetByteOrBoot 0x807B
+
1865#define _getSerial 0x807E //GetCalcSerial
+
1866#define _ReceiveCalcID 0x8081 //receives certificate replacement (including calculator ID, fails if already exists) and writes it, requires Flash unlocked
+
1867#define _EraseFlashPage 0x8084
+
1868#define _WriteFlashUnsafe 0x8087
+
1869#define _dispBootVer 0x808A
+
1870#define _MD5Init 0x808D
+
1871#define _MD5Update 0x8090
+
1872#define _MarkOSInvalid 0x8093
+
1873#define _FindProgramLicense 0x8096 //copies 8010h field to appID and other insane stuff that makes zero sense
+
1874#define _MarkOSValid 0x8099
+
1875#define _CheckOSValidated 0x809C
+
1876#define _SetupAppPubKey 0x809F
+
1877#define _SigModR 0x80A2
+
1878#define _TransformHash 0x80A5
+
1879#define _IsAppFreeware 0x80A8
+
1880#define _FindAppHeaderSubField 0x80AB
+
1881#define _WriteValidationNumber 0x80AE //generates two-byte validation number from calc ID and stores to certificate
+
1882#define _Div32By16 0x80B1
+
1883#define _FindGroup 0x80B4 //searches until field of DE-like group is found (DE=0A00h, it stops when it finds 0Ax0h)
+
1884#define _getBootVer 0x80B7
+
1885#define _getHardwareVersion 0x80BA
+
1886#define _xorA 0x80BD //xor a
+
1887#define _bignumpowermod17 0x80C0
+
1888#define _ProdNrPart1 0x80C3
+
1889#define _WriteAByteSafe 0x80C6
+
1890#define _WriteFlash 0x80C9
+
1891#define _SetupDateStampPubKey 0x80CC
+
1892#define _SetFlashLowerBound 0x80CF
+
1893#define _LowBatteryBoot 0x80D2
+
1894//TI-84 Plus/Silver Edition Only Entry Points
+
1895#define _AttemptUSBOSReceive 0x80E4 //Z to wait for USB cable insert & get OS, NZ and A= contents of port 4Dh or 56h, ON to cancel & clear RAM
+
1896#define _DisplayBootMessage 0x80E7
+
1897#define _NewLine2 0x80EA
+
1898#define _DisplayBootError10 0x80ED
+
1899#define _Chk_Batt_Low_B 0x80F0
+
1900#define _Chk_Batt_Low_B2 0x80F3
+
1901#define _ReceiveOS_USB 0x80F6
+
1902#define _DisplayOSProgress 0x80F9
+
1903#define _ResetCalc 0x80FC
+
1904#define _SetupOSPubKey 0x80FF
+
1905#define _CheckHeaderKeyHL 0x8102 //same as _CheckHeaderKey, only you pass the address of header in HL, not at appData
+
1906#define _USBErrorCleanup 0x8105 //kills some USB stuff (doesn't completely kill periph communication), error handler in boot code
+
1907#define _InitUSB 0x8108 //initializes USB hardware as peripheral, sets 5,(iy+1Bh), C set if problems
+
1908//810Bh set 1,(81h) and wait (has something to do with USB peripheral kill, but it doesn't actually kill it)
+
1909#define _KillUSB 0x810E //identical to 8105h, except in the middle of the outputs, it sends zero to port 4Ch
+
1910#define _DisplayBootError1 0x8111
+
1911#define _DisplayBootError2 0x8114
+
1912#define _DisplayBootError3 0x8117
+
1913#define _DisplayBootError4 0x811A
+
1914#define _DisplayBootError5 0x811D
+
1915#define _DisplayBootError6 0x8120
+
1916#define _DisplayBootError7 0x8123
+
1917#define _DisplayBootError8 0x8126
+
1918#define _DisplayBootError9 0x8129
+
1919
+
1920//RAM Equates
+
1921//--------------------------------
+
1922#define ramStart 0x8000
+
1923#define appData 0x8000
+
1924#define ramCode 0x8100
+
1925#define SmallEditColumnLeft 0x8177
+
1926#define SmallEditRow 0x8178
+
1927#define SmallEditColumnRight 0x8179
+
1928//penCol left edge? equ 817Bh
+
1929#define bigInteger1 0x8182
+
1930#define SmallEditCancelParse 0x8194
+
1931#define SmallEditRowCount 0x81B7
+
1932#define bigInteger2 0x81C3
+
1933#define SmallEditPromptString 0x81CC
+
1934#define ramCodeEnd 0x822F
+
1935#define baseAppBrTab 0x8230 //table of base pages for apps on page < 20h (starts with eight zeroes because they're OS pages)
+
1936#define clockFlag 0x8230 //bit 2 set for 24-hour mode and don't display "AM/PM"
+
1937#define clockIDs 0x8231 //five bytes, numbers 0-4 in memory, that when present, stops displaying clock numbers in time setting context?
+
1938#define bootTemp 0x8251
+
1939#define MD5Temp 0x8259
+
1940#define MD5Length 0x8269
+
1941#define MD5Hash 0x8292
+
1942#define appSearchPage 0x82A3
+
1943#define tempSwapArea 0x82A5
+
1944//something equ 837Bh ;18 bytes, probably indicates something about Flash app pages, start out as 0FFh
+
1945#define appID 0x838D
+
1946#define arcPageEnd 0x8392
+
1947#define arcPtrEnd 0x8393
+
1948//839Fh something...field size bytes?
+
1949#define MD5Buffer 0x83A5
+
1950#define Abackup 0x83EB
+
1951#define ramReturnData 0x83ED
+
1952#define arcInfo 0x83EE
+
1953#define savedArcInfo 0x8406
+
1954#define appInfo 0x8432
+
1955#define appBank_jump 0x843C
+
1956#define appPage 0x843E
+
1957#define kbdScanCode 0x843F
+
1958#define kbdKey 0x8444
+
1959#define kbdGetKy 0x8445
+
1960#define keyExtend 0x8446
+
1961#define EXTECHO keyExtend
+
1962#define contrast 0x8447
+
1963#define apdSubTimer 0x8448
+
1964#define apdTimer 0x8449
+
1965#define curTime 0x844A
+
1966#define curRow 0x844B
+
1967#define curCol 0x844C
+
1968#define curOffset 0x844D
+
1969#define curUnder 0x844E
+
1970#define curY 0x844F
+
1971#define curType 0x8450
+
1972#define curXRow 0x8451
+
1973#define prevDData 0x8452
+
1974#define lFont_record 0x845A
+
1975#define sFont_record 0x8462
+
1976#define tokVarPtr 0x846A
+
1977#define tokLen 0x846C
+
1978#define indicMem 0x846E //eight bytes used by _saveTR and _restoreTR to store image in top right corner
+
1979#define indicCounter 0x8476
+
1980#define indicBusy 0x8477
+
1981#define OP1 0x8478
+
1982#define OP1M 0x847A
+
1983#define OP2 0x8483
+
1984#define OP2M 0x8485
+
1985#define OP2EXT 0x848C
+
1986#define OP3 0x848E
+
1987#define OP3M 0x8490
+
1988#define OP4 0x8499
+
1989#define OP4M 0x849B
+
1990#define OP5 0x84A4
+
1991#define OP5M 0x84A6
+
1992#define OP6 0x84AF
+
1993#define OP6M 0x84B1
+
1994#define OP6EXT 0x84B8
+
1995#define progToEdit 0x84BF
+
1996#define nameBuff 0x84C7
+
1997#define equ_edit_save 0x84D2
+
1998#define iMathPtr1 0x84D3
+
1999#define iMathPtr2 0x84D5
+
2000#define iMathPtr3 0x84D7
+
2001#define iMathPtr4 0x84D9
+
2002#define iMathPtr5 0x84DB
+
2003#define chkDelPtr1 0x84DD
+
2004#define chkDelPtr2 0x84DF
+
2005#define insDelPtr 0x84E1
+
2006#define upDownPtr 0x84E3
+
2007#define fOutDat 0x84E5
+
2008#define asm_data_ptr1 0x84EB
+
2009#define asm_data_ptr2 0x84ED
+
2010#define asm_sym_ptr1 0x84EF
+
2011#define asm_sym_ptr2 0x84F1
+
2012#define asm_ram 0x84F3
+
2013#define asm_ind_call 0x8507
+
2014#define textShadow 0x8508
+
2015#define textShadCur 0x8588
+
2016#define textShadTop 0x858A
+
2017#define textShadAlph 0x858B
+
2018#define textShadIns 0x858C
+
2019#define cxMain 0x858D
+
2020#define cxPPutAway 0x858F
+
2021#define cxPutAway 0x8591
+
2022#define cxErrorEP 0x8595
+
2023#define cxSizeWind 0x8597
+
2024#define cxPage 0x8599
+
2025#define cxCurApp 0x859A
+
2026#define cxPrev 0x859B //12 bytes are shadows of cxMain through cxCurApp and appFlags
+
2027#define monQH 0x85AA
+
2028#define monQT 0x85AB
+
2029#define monQueue 0x85AC
+
2030#define onSP 0x85BC
+
2031#define promptRow 0x85C0
+
2032#define promptCol 0x85C1
+
2033#define promptIns 0x85C2
+
2034#define promptShift 0x85C3
+
2035#define promptRet 0x85C4
+
2036#define promptValid 0x85C6
+
2037#define promptTop 0x85C8
+
2038#define promptCursor 0x85CA
+
2039#define promptTail 0x85CC
+
2040#define promptBtm 0x85CE
+
2041#define varType 0x85D0
+
2042#define varCurrent 0x85D1
+
2043#define varClass 0x85D9
+
2044#define CatalogCurrent 0x85DA //word at this location starting with 6007h corresponds to what is highlighted in catalog
+
2045#define menuActive 0x85DC
+
2046#define menuAppDepth 0x85DD
+
2047#define MenuCurrent 0x85DE
+
2048// equ 85DFh ;holds current submenu index
+
2049// equ 85E0h ;holds currently selected item in current submenu
+
2050// equ 85E1h ;holds number of submenus for this menu
+
2051// equ 85E2h ;holds number of items in this submenu
+
2052// equ 85E3h ;iy+appFlags backup for menu stuff
+
2053// equ 85E4h ;iy+0Ch backup for menu stuff
+
2054// equ 85E5h ;curGStyle backup for menu stuff
+
2055// equ 85E6h ;iy+graphFlags backup for menu stuff
+
2056#define ProgCurrent 0x85E8
+
2057//something, OP1 backup? equ 85F2h ;type and name of topmost variable on menu with names
+
2058//something equ 85FDh
+
2059#define userMenuSA 0x85FE
+
2060#define ioPrompt 0x865F
+
2061#define dImageWidth 0x8660
+
2062#define ioFlag 0x8670
+
2063#define sndRecState 0x8672
+
2064#define ioErrState 0x8673
+
2065#define header 0x8674
+
2066#define ioData 0x867D
+
2067#define ioNewData 0x8689
+
2068#define bakHeader 0x868B
+
2069//something equ 8697h ;app bitmap for selecting stuff from menus
+
2070//something equ 86B7h ;used in 47h and 74h link packets
+
2071#define penCol 0x86D7
+
2072#define penRow 0x86D8
+
2073#define rclQueue 0x86D9
+
2074#define rclQueueEnd 0x86DB
+
2075#define errNo 0x86DD
+
2076#define errSP 0x86DE
+
2077#define errOffset 0x86E0
+
2078#define saveSScreen 0x86EC
+
2079#define asm_prgm_size 0x89EC
+
2080#define bstCounter 0x89EE
+
2081#define flags 0x89F0
+
2082#define appFlagsAddr 0x89FD
+
2083//something equ 8A36h ;stats-related? This gets stored to (varCurrent) for some reason
+
2084#define statVars 0x8A3A
+
2085#define anovaf_vars 0x8C17
+
2086#define infVars 0x8C4D
+
2087#define infVar1 0x8C56
+
2088#define infVar2 0x8C5F
+
2089#define infVar3 0x8C68
+
2090#define infVar4 0x8C71
+
2091#define infVar5 0x8C7A
+
2092#define infVar6 0x8C83
+
2093#define infVar7 0x8C8C
+
2094#define infVar8 0x8C95
+
2095#define infVar9 0x8C9E
+
2096#define infVar10 0x8CA7
+
2097#define infVar11 0x8CB0
+
2098#define infVar12 0x8CB9
+
2099#define infVar13 0x8CC2
+
2100#define infVar14 0x8CCB
+
2101#define infVar15 0x8CD4
+
2102#define infVar16 0x8CDD
+
2103#define infVar17 0x8CE6
+
2104#define infVar18 0x8CEF
+
2105#define infVar19 0x8CF8
+
2106#define infVar20 0x8D01
+
2107//something equ 8D0Bh
+
2108//list-related stat vars equ 8D0Dh
+
2109#define curGStyle 0x8D17
+
2110#define curGY 0x8D18
+
2111#define curGX 0x8D19
+
2112#define curGY2 0x8D1A
+
2113#define curGX2 0x8D1B //currently selected equation while graphing
+
2114#define freeSaveY 0x8D1C
+
2115#define freeSaveX 0x8D1D
+
2116//100 bytes equ 8D2Ah
+
2117#define XOffset 0x8DA1
+
2118#define YOffset 0x8DA2
+
2119#define lcdTallP 0x8DA3
+
2120#define pixWideP 0x8DA4
+
2121#define pixWide_m_1 0x8DA5
+
2122#define pixWide_m_2 0x8DA6
+
2123#define lastEntryPTR 0x8DA7 //pointer to the next available byte in the entry stack
+
2124#define lastEntryStk 0x8DA9 //the start of entry stack (note last entry is not in the stack, it is in the program '#'.) This is a stack of strings. first 2 bytes are length, followed by string. 2nd from last entry is first in this stack.
+
2125#define numLastEntries 0x8E29 //number of entries you can back-track through minus one
+
2126#define currLastEntry 0x8E2A //counter used by OS to keep track of which entry was just displayed by pressing 2nd+enter
+
2127#define curPlotNumber 0x8E63 //current plot being graphed (1-3), this gets reset back to 0
+
2128//something equ 8E65h
+
2129//something equ 8E66h
+
2130#define curInc 0x8E67
+
2131#define uXmin 0x8E7E
+
2132#define uXmax 0x8E87
+
2133#define uXscl 0x8E90
+
2134#define uYmin 0x8E99
+
2135#define uYmax 0x8EA2
+
2136#define uYscl 0x8EAB
+
2137#define uThetMin 0x8EB4
+
2138#define uThetMax 0x8EBD
+
2139#define uThetStep 0x8EC6
+
2140#define uTmin 0x8ECF
+
2141#define uTmax 0x8ED8
+
2142#define uTStep 0x8EE1
+
2143#define uPlotStart 0x8EEA
+
2144#define unMax 0x8EF3
+
2145#define uu0 0x8EFC
+
2146#define uv0 0x8F05
+
2147#define unMin 0x8F0E
+
2148#define uu02 0x8F17
+
2149#define uv02 0x8F20
+
2150#define uw0 0x8F29
+
2151#define uPlotStep 0x8F32
+
2152#define uXres 0x8F3B
+
2153#define uw02 0x8F44
+
2154#define Xmin 0x8F50
+
2155#define Xmax 0x8F59
+
2156#define Xscl 0x8F62
+
2157#define Ymin 0x8F6B
+
2158#define Ymax 0x8F74
+
2159#define Yscl 0x8F7D
+
2160#define ThetaMin 0x8F86
+
2161#define ThetaMax 0x8F8F
+
2162#define ThetaStep 0x8F98
+
2163#define TminPar 0x8FA1
+
2164#define TmaxPar 0x8FAA
+
2165#define Tstep 0x8FB3
+
2166#define PlotStart 0x8FBC
+
2167#define nMax 0x8FC5
+
2168#define u0 0x8FCE
+
2169#define v0 0x8FD7
+
2170#define nMin 0x8FE0
+
2171#define u02 0x8FE9
+
2172#define v02 0x8FF2
+
2173#define w0 0x8FFB
+
2174#define PlotStep 0x9004
+
2175#define XresO 0x900D
+
2176#define w02 0x9016
+
2177#define un1 0x901F
+
2178#define un2 0x9028
+
2179#define vn1 0x9031
+
2180#define vn2 0x903A
+
2181#define wn1 0x9043
+
2182#define wn2 0x904C
+
2183#define fin_N 0x9055
+
2184#define fin_I 0x905E
+
2185#define fin_PV 0x9067
+
2186#define fin_PMT 0x9070
+
2187#define fin_FV 0x9079
+
2188#define fin_PY 0x9082
+
2189#define fin_CY 0x908B
+
2190#define cal_N 0x9094
+
2191#define cal_I 0x909D
+
2192#define cal_PV 0x90A6
+
2193#define cal_PMT 0x90AF
+
2194#define cal_FV 0x90B8
+
2195#define cal_PY 0x90C1
+
2196#define smallEditRAM 0x90D3
+
2197#define XFact 0x913F
+
2198#define YFact 0x9148
+
2199#define Xres_int 0x9151
+
2200#define deltaX 0x9152
+
2201#define deltaY 0x915B
+
2202#define shortX 0x9164
+
2203#define shortY 0x916D
+
2204#define lower 0x9176
+
2205#define upper 0x917F
+
2206#define XOutSym 0x918C
+
2207#define XOutDat 0x918E
+
2208#define YOutSym 0x9190
+
2209#define YOutDat 0x9192
+
2210#define inputSym 0x9194
+
2211#define inputDat 0x9196
+
2212#define prevData 0x9198
+
2213//something equ 91D9h
+
2214//something equ 91DAh
+
2215#define CurTableRow 0x91DC
+
2216#define CurTableCol 0x91DD
+
2217#define TblMin 0x92B3
+
2218#define TblStep 0x92BC
+
2219//something equ 92C5h
+
2220//something equ 92C6h
+
2221//somePlotThing1 equ 92D9h
+
2222//somePlotThing2 equ 92EAh
+
2223//somePlotThing3 equ 92FBh
+
2224#define ES 0x9302 //bottom of the es
+
2225#define EST 0x9305 //current height of the es
+
2226//something equ 9311h ;this is the pointer to a table of stuff for a BASIC menu
+
2227#define plotSScreen 0x9340
+
2228#define seed1 0x9640
+
2229#define seed2 0x9649
+
2230#define basic_prog 0x9652
+
2231#define basic_start 0x965B
+
2232#define nextParseByte 0x965D //basic_pc
+
2233#define basic_end 0x965F
+
2234#define numArguments 0x9661
+
2235//something equ 9665h ;parser-related word
+
2236//something equ 966Ch
+
2237//something equ 966Dh
+
2238#define cmdShadow 0x966E
+
2239#define cmdShadCur 0x96EE
+
2240#define cmdShadAlph 0x96F0
+
2241#define cmdShadIns 0x96F1
+
2242#define cmdCursor 0x96F2
+
2243#define editTop 0x96F4
+
2244#define editCursor 0x96F6
+
2245#define editTail 0x96F8
+
2246#define editBtm 0x96FA
+
2247//something equ 96FEh ;word, this is offset into list for currently-highlighted element in list editor
+
2248//something equ 9700h ;table entry pointer used in dialog/menu/edit buffer routines
+
2249#define matrixDimensions 0x9702 //dimensions of matrix being edited in matrix editor
+
2250#define editSym 0x9706 //pointer to symbol table entry of variable being edited
+
2251#define editDat 0x9708 //pointer to data of variable being edited
+
2252//something equ 970Eh ;stats/list editor related, usually 1
+
2253//something equ 970Fh ;stats/list editor related, usually 0 (this is 0-based offset from listName1), pretty sure this is a page offset
+
2254//something equ 9710h ;stats/list editor related, usually 0 (this is 0-based currently-selected list)
+
2255#define listName1 0x9711
+
2256#define listName2 0x9716
+
2257#define listName3 0x971B
+
2258#define listName4 0x9720
+
2259#define listName5 0x9725
+
2260#define listName6 0x972A
+
2261#define listName7 0x972F
+
2262#define listName8 0x9734
+
2263#define listName9 0x9739
+
2264#define listName10 0x973E
+
2265#define listName11 0x9743
+
2266#define listName12 0x9748
+
2267#define listName13 0x974D
+
2268#define listName14 0x9752
+
2269#define listName15 0x9757
+
2270#define listName16 0x975C
+
2271#define listName17 0x9761
+
2272#define listName18 0x9766
+
2273#define listName19 0x976B
+
2274#define listName20 0x9770
+
2275//something equ 9775h
+
2276#define y1LineType 0x9776 //these bytes define the line type for functions which are graphed
+
2277#define y2LineType 0x9777
+
2278#define y3LineType 0x9778
+
2279#define y4LineType 0x9779
+
2280#define y5LineType 0x977A
+
2281#define y6LineType 0x977B
+
2282#define y7LineType 0x977C
+
2283#define y8LineType 0x977D
+
2284#define y9LineType 0x977E
+
2285#define y0LineType 0x977F
+
2286#define para1LineType 0x9780
+
2287#define para2LineType 0x9781
+
2288#define para3LineType 0x9782
+
2289#define para4LineType 0x9783
+
2290#define para5LineType 0x9784
+
2291#define para6LineType 0x9785
+
2292#define polar1LineType 0x9786
+
2293#define polar2LineType 0x9787
+
2294#define polar3LineType 0x9788
+
2295#define polar4LineType 0x9789
+
2296#define polar5LineType 0x978A
+
2297#define polar6LineType 0x978B
+
2298#define secULineType 0x978C
+
2299#define secVLineType 0x978D
+
2300#define secWLineType 0x978E
+
2301//something equ 979Fh
+
2302//something equ 97A1h
+
2303#define winTop 0x97A5
+
2304#define winBtm 0x97A6
+
2305#define winLeftEdge 0x97A7
+
2306#define winLeft 0x97A8
+
2307#define winAbove 0x97AA
+
2308#define winRow 0x97AC
+
2309#define winCol 0x97AE
+
2310#define fmtDigits 0x97B0
+
2311#define fmtString 0x97B1
+
2312#define fmtConv 0x97F2
+
2313#define fmtLeft 0x9804
+
2314#define fmtIndex 0x9806
+
2315#define fmtMatSym 0x9808
+
2316#define fmtMatMem 0x980A
+
2317#define EQS 0x980C
+
2318//something equ 980Eh
+
2319//something equ 9810h
+
2320#define freeRAM 0x9815 //pretty sure this is the amount of RAM free, valid in Mem Mgmt/Del anyway
+
2321//something equ 9817h
+
2322#define tSymPtr1 0x9818
+
2323#define tSymPtr2 0x981A
+
2324#define chkDelPtr3 0x981C
+
2325#define chkDelPtr4 0x981E
+
2326#define tempMem 0x9820
+
2327#define fpBase 0x9822
+
2328#define FPS 0x9824
+
2329#define OPBase 0x9826
+
2330#define OPS 0x9828
+
2331#define pTempCnt 0x982A
+
2332#define cleanTmp 0x982C
+
2333#define pTemp 0x982E //end of symbol table
+
2334#define progPtr 0x9830
+
2335#define newDataPtr 0x9832
+
2336#define pagedCount 0x9834
+
2337#define pagedPN 0x9835
+
2338#define pagedGetPtr 0x9836
+
2339#define pagedPutPtr 0x9838
+
2340#define pagedBuf 0x983A
+
2341//something equ 984Ah ;this is the top LCD row for a menu (usually 1)
+
2342#define appErr1 0x984D
+
2343#define appErr2 0x985A
+
2344#define flashByte1 0x9867
+
2345#define flashByte2 0x9868
+
2346#define freeArcBlock 0x9869
+
2347#define arcPage 0x986B
+
2348#define arcPtr 0x986C
+
2349#define appRawKeyHandle 0x9870
+
2350#define appBackUpScreen 0x9872
+
2351#define customHeight 0x9B72
+
2352#define localLanguage 0x9B73
+
2353#define hookExecTemp 0x9B75
+
2354#define linkActivityHook 0x9B78
+
2355#define cursorHookPtr 0x9B7C
+
2356#define libraryHookPtr 0x9B80
+
2357#define rawKeyHookPtr 0x9B84
+
2358#define getKeyHookPtr 0x9B88
+
2359#define homescreenHookPtr 0x9B8C
+
2360#define windowHookPtr 0x9B90
+
2361#define graphHookPtr 0x9B94
+
2362#define yEqualsHookPtr 0x9B98
+
2363#define fontHookPtr 0x9B9C
+
2364#define regraphHookPtr 0x9BA0
+
2365#define graphicsHook 0x9BA4
+
2366#define traceHookPtr 0x9BA8
+
2367#define parserHookPtr 0x9BAC
+
2368#define appChangeHookPtr 0x9BB0
+
2369#define catalog1HookPtr 0x9BB4
+
2370#define helpHookPtr 0x9BB8
+
2371#define cxRedispHookPtr 0x9BBC
+
2372#define menuHookPtr 0x9BC0
+
2373#define catalog2HookPtr 0x9BC4
+
2374#define tokenHookPtr 0x9BC8
+
2375#define localizeHookPtr 0x9BCC
+
2376#define silentLinkHookPtr 0x9BD0 //restartClr?
+
2377#define USBActivityHookPtr 0x9BD4
+
2378#define baseAppBrTab2 0x9C06 //table of base pages for apps on page >= 20h; first 20h bytes are zeroes.
+
2379#define USBcallbackPage 0x9C13
+
2380#define USBcallbackPtr 0x9C14
+
2381#define vendorID 0x9C16
+
2382#define productID 0x9C18
+
2383#define devReleaseNumber 0x9C1A
+
2384#define oldSESpeed 0x9C21
+
2385#define calcPeripheralState 0x9C26
+
2386#define usb_dataWaitingCount 0x9C27
+
2387#define basePageTable2End 0x9C6F //this is the last page
+
2388#define port91hTemp 0x9C79
+
2389#define usb_dataExpectCount 0x9C80
+
2390#define offPageCallPage 0x9C83 //temporarily stores off-page page and address
+
2391#define offPageCallAddress 0x9C84
+
2392//something equ 9C86h ;used with SE link activity, values of 00h, 0FAh, 0FFh probably mean something
+
2393//something equ 9C87h ;zero this to force the APPS menu to recache itself (this is always either 0, 1, or last app page, for some reason)
+
2394//something equ 9C88h ;don't know, but it's 14 bytes and has to do with selecting stuff (if 9C87h is non-zero, this is zeroed out)
+
2395//something equ 9C9Eh ;funky, this actually gets written to the certificate on non-83+ (11 bytes)
+
2396#define SEspeed 0x9CAE
+
2397//something, table index equ 9CAFh
+
2398//something equ 9CB0h
+
2399//something equ 9CB1h ;table
+
2400//something equ 9CCDh
+
2401#define localTokStr 0x9D65
+
2402#define keyForStr 0x9D76
+
2403#define keyToStrRam 0x9D77
+
2404#define sedMonSp 0x9D88 //small edit monitor SP
+
2405#define bpSave 0x9D8A
+
2406#define userMem 0x9D95
+
2407#define symTable 0x0FE66
+
2408
+
2409//System Flags
+
2410//----------------------------------------------------------------------
+
2411#define ioDelFlag 0x0
+
2412#define inDelete 0 //1 = DELETE SCREEN
+
2413
+
2414#define trigFlags 0x0 //Trigonometry mode settings
+
2415#define trigDeg 2 //1=degrees, 0=radians
+
2416
+
2417#define kbdFlags 0x0 //Keyboard scan
+
2418#define kbdSCR 3 //1=scan code ready
+
2419#define kbdKeyPress 4 //1=key has been pressed
+
2420
+
2421#define doneFlags 0x0 //display "Done"
+
2422#define donePrgm 5 //1=display "Done" after prgm
+
2423//----------------------------------------------------------------------
+
2424#define editFlags 0x1
+
2425#define editOpen 2 //1=edit buffer is open
+
2426
+
2427#define ansFlags 1
+
2428#define AnsScroll 3 //1=answer can scroll, seems must be reset in order to move about edit buffer
+
2429
+
2430#define monFlags 0x1 //monitor flags
+
2431#define monAbandon 4 //1=don't start any long process in put away (#715)
+
2432//----------------------------------------------------------------------
+
2433#define plotFlags 0x2 //plot generation flags
+
2434#define plotLoc 1 //0=bkup & display, 1=display only
+
2435#define plotDisp 2 //1=plot is in display, 0=text in display, this also indicates whether graph is being shown or not
+
2436
+
2437#define grfModeFlags 0x2 //graph mode settings
+
2438#define grfFuncM 4 //1=function graph
+
2439#define grfPolarM 5 //1=polar graph
+
2440#define grfParamM 6 //1=parametric graph
+
2441#define grfRecurM 7 //1=RECURSION graph
+
2442//----------------------------------------------------------------------
+
2443#define graphFlags 0x3
+
2444#define graphDraw 0 //0=graph is valid, 1=redraw graph(dirty)
+
2445#define graphCursor 2
+
2446//----------------------------------------------------------------------
+
2447#define grfDBFlags 0x4
+
2448#define grfDot 0 //0=line, 1=dot
+
2449#define grfSimul 1 //0=sequential, 1=simultaneous
+
2450#define grfGrid 2 //0=no grid, 1=grid
+
2451#define grfPolar 3 //0=rectangular, 1=polar coordinates
+
2452#define grfNoCoord 4 //0=display coordinates, 1=off
+
2453#define grfNoAxis 5 //0=axis, 1=no axis
+
2454#define grfLabel 6 //0=off, 1=axis label
+
2455//----------------------------------------------------------------------
+
2456#define textFlags 0x5 //Text output flags
+
2457#define textEraseBelow 1 //1=erase line below small char
+
2458#define textScrolled 2 //1=screen scrolled
+
2459#define textInverse 3 //1=display inverse bit-map
+
2460#define textInsMode 4 //0=overstrike, 1=insert mode
+
2461//----------------------------------------------------------------------
+
2462#define ParsFlag 0x6 //PARSER flags
+
2463//----------------------------------------------------------------------
+
2464#define ParsFlag2 0x7 //PARSER flags
+
2465#define numOP1 0 //1=RESULT IN OP1, 0=NO RESULT
+
2466//----------------------------------------------------------------------
+
2467#define newDispF 0x8 //Derivative mode flags
+
2468#define preClrForMode 0 //1=HELP BLINK ON MODE SCREEN
+
2469#define allowProgTokens 1 //1=allow programming tokens to be parsed in BASIC programs
+
2470
+
2471#define apdFlags 0x8 //Automatic power-down
+
2472#define apdAble 2 //1=APD enabled
+
2473#define apdRunning 3 //1=APD clock running
+
2474#define apdWarmStart 4 //1=calculator is turning on from APD or power loss
+
2475//----------------------------------------------------------------------
+
2476#define web_err_mask 0x60
+
2477//----------------------------------------------------------------------
+
2478#define onFlags 0x9 //on key flags
+
2479#define parseInput 1 //1=parse input when done
+
2480#define onRunning 3 //1=calculator is running
+
2481#define onInterrupt 4 //1=on key interrupt request
+
2482
+
2483#define statFlags 0x9 //statistics flags
+
2484//unknown equ 5 ;unknown
+
2485#define statsValid 6 //1=stats are valid
+
2486//----------------------------------------------------------------------
+
2487#define fmtFlags 0x0A //numeric format flags
+
2488#define fmtExponent 0 //1=show exponent, 0=no exponent
+
2489#define fmtEng 1 //1=engineering notion, 0=scientific
+
2490#define fmtHex 2 //1=hexadecimal
+
2491#define fmtOct 3 //1=octal
+
2492#define fmtBin 4 //1=binary
+
2493
+
2494#define numMode 0x0A
+
2495#define fmtReal 5
+
2496#define fmtRect 6
+
2497#define fmtPolar 7
+
2498
+
2499#define realMode 5
+
2500#define rectMode 6
+
2501#define polarMode 7
+
2502// ;if Hex and Oct both = 1
+
2503// ; then Bin=0 means >Frac
+
2504// ; Bin=1 means >DMS
+
2505#define fmtBaseMask 0b00011100 // mask to base flags
+
2506#define fmtBaseShift 2 // offset to base flags
+
2507//
+
2508// CHECK IF THESE ARE USED BY NUMFORM,
+
2509//
+
2510// equ 6
+
2511// equ 7
+
2512//----------------------------------------------------------------------
+
2513#define fmtOverride 0x0B //copy of fmtFlags with conversion override
+
2514//----------------------------------------------------------------------
+
2515#define fmtEditFlags 0x0C //numeric editing flags
+
2516#define fmtEdit 0 //1=format number for editing
+
2517
+
2518#define curFlags 0x0C //Cursor
+
2519#define curAble 2 //1=cursor flash is enabled
+
2520#define curOn 3 //1=cursor is showing
+
2521#define curLock 4 //1=cursor is locked off
+
2522
+
2523#define cmdFlags 0x0C //command editor flags
+
2524#define cmdVirgin 5 //1=nothing has been typed in cmd bfr
+
2525//----------------------------------------------------------------------
+
2526#define appFlags 0x0D //application flags
+
2527#define appWantIntrpt 0 //1=want ON key interrupts
+
2528#define appTextSave 1 //1=save characters in textShadow
+
2529#define appAutoScroll 2 //1=auto-scroll text on last line
+
2530#define appMenus 3 //1=process keys that bring up menus, 0=check Lock menu flag
+
2531#define appLockMenus 4 //1=ignore menu keys, 0=switch to home screen and bring up menu
+
2532#define appCurGraphic 5 //1=graphic cursor
+
2533#define appCurWord 6 //1=text cursor covers entire word
+
2534#define appExit 7 //1=application handles [EXIT] key itself
+
2535
+
2536#define appWantIntrptF 1<<appWantIntrpt
+
2537#define appTextSaveF 1<<appTextSave
+
2538#define appAutoScrollF 1<<appAutoScroll
+
2539#define appMenusF 1<<appMenus
+
2540#define appLockMenusF 1<<appLockMenus
+
2541#define appCurGraphicF 1<<appCurGraphic
+
2542#define appCurWordF 1<<appCurWord
+
2543#define appExitF 1<<appExit
+
2544//----------------------------------------------------------------------
+
2545#define rclFlag 0x0E //OS recall queue flags
+
2546#define enableQueue 7 //1 = enable recall queue
+
2547//----------------------------------------------------------------------
+
2548#define seqFlags 0x0F //Sequential Graph flags
+
2549#define webMode 0 //0 = NORMAL SEQ MODE, 1 = WEB MODE
+
2550#define webVert 1
+
2551#define sequv 2 //U vs V
+
2552#define seqvw 3 //V vs W
+
2553#define sequw 4 //U vs W
+
2554//----------------------------------------------------------------------
+
2555#define promptFlags 0x11 //prompt line flags
+
2556#define promptEdit 0 //1=editing in prompt buffer
+
2557//----------------------------------------------------------------------
+
2558#define indicFlags 0x12 //Indicator flags
+
2559#define indicRun 0 //1=run indicator ON
+
2560#define indicInUse 1 //indicator save area in use=1, free=0 ;resetting will disable 2nd while in _getkey
+
2561#define indicOnly 2 //interrupt handler only checks run indicator
+
2562
+
2563#define shiftFlags 0x12 //[2nd] and [ALPHA] flags
+
2564#define shift2nd 3 //1=[2nd] has been pressed
+
2565#define shiftAlpha 4 //1=[ALPHA] has been pressed
+
2566#define shiftLwrAlph 5 //1=lower case, 0=upper case
+
2567#define shiftALock 6 //1=alpha lock has been pressed
+
2568#define shiftKeepAlph 7 //1=cannot cancel alpha shift
+
2569//----------------------------------------------------------------------
+
2570#define tblFlags 0x13 //table flags.
+
2571#define autoFill 4 //1=prompt, 0=fillAuto
+
2572#define autoCalc 5 //1=prompt, 0=CalcAuto
+
2573#define reTable 6 //0=table is okay, 1=must recompute table.
+
2574//----------------------------------------------------------------------
+
2575#define sGrFlags 0x14
+
2576#define grfSplit 0 //1=Split Graph, 0=Normal
+
2577#define vertSplit 1 //1=Vertical (left-right) Split
+
2578#define grfSChanged 2 //1=Graph just changed Split <-> normal
+
2579#define grfSplitOverride 3 //1 = ignore graph split flag if set
+
2580#define write_on_graph 4 //1 = TEXT OR EQU WRITING TO GRAPH SCREEN
+
2581#define g_style_active 5 //1 = GRAPH STYLES ARE ENABLED, USE THEM
+
2582#define cmp_mod_box 6 //1 = DOING MOD BOX PLOT COMPUTATION
+
2583#define textWrite 7
+
2584//----------------------------------------------------------------------
+
2585#define newIndicFlags 0x15
+
2586#define extraIndic 0
+
2587#define saIndic 1
+
2588//3 has something to do with stat/list editor
+
2589//----------------------------------------------------------------------
+
2590#define interruptFlags 0x16
+
2591#define secondTimerEnabled 0 //1 = second hardware timer enabled
+
2592#define batteryFlags 0x16
+
2593#define batteriesGood 2 //1 = batteries good, I think this being reset will force the calc to shut off, used in USB error handler
+
2594//----------------------------------------------------------------------
+
2595#define smartFlags 0x17
+
2596#define smarter_mask 3
+
2597#define smarter_test 1
+
2598#define smartGraph 0
+
2599#define smartGraph_inv 1
+
2600//----------------------------------------------------------------------
+
2601#define traceFlags 0x18
+
2602#define grfExpr 0 //set to hide expression while tracing
+
2603//----------------------------------------------------------------------
+
2604//There is a flag 19h.
+
2605//----------------------------------------------------------------------
+
2606#define statFlags2 0x1A
+
2607#define statDiagnosticsOn 0 //1 = stat diagnostics on
+
2608//----------------------------------------------------------------------
+
2609#define linkFlags 0x1B
+
2610#define IDis95h 1 //1 = link routines use machine ID 95h (CBL)
+
2611#define IDis82h 2 //1 = link routines use machine ID 82h (TI-82)
+
2612#define IDis83h 3 //1 = link routines use machine ID 83h (TI-83)
+
2613#define IDis03h 4 //1 = link routines use machine ID 03h (PC to TI-83)
+
2614#define USBenabled 5 //1 = use USB port first, or at least try to
+
2615//----------------------------------------------------------------------
+
2616//There is a flag 1Ch (stats-related).
+
2617//----------------------------------------------------------------------
+
2618//There is a flag 1Dh.
+
2619//----------------------------------------------------------------------
+
2620//There is a flag 1Eh.
+
2621//----------------------------------------------------------------------
+
2622#define varTypeMask 0x1F //is this a flag byte? yes
+
2623#define varGraphRef 6
+
2624//----------------------------------------------------------------------
+
2625#define graphFlags2 0x1F
+
2626#define splitOverride 3 //0 = force full screen with ParseInp, or something
+
2627//----------------------------------------------------------------------
+
2628#define asm_Flag1 0x21 //ASM CODING
+
2629#define asm_Flag2 0x22 //ASM CODING
+
2630#define asm_Flag3 0x23 //ASM CODING
+
2631//----------------------------------------------------------------------
+
2632#define arcFlag 0x24
+
2633#define checkBatteryLevelFirst 0 //1 = check battery levels in Arc_Unarc first and throw error if low
+
2634
+
2635#define getSendFlg 0x24
+
2636#define comFailed 1 //1 = Get/Send Communication Failed
+
2637
+
2638#define selfTestFlag 0x24
+
2639#define resetOnPowerOn 2 //1 = Force RAM reset when APD disabled on next power on
+
2640
+
2641#define appLwrCaseFlag 0x24
+
2642#define lwrCaseActive 3
+
2643//----------------------------------------------------------------------
+
2644#define contextFlags 0x25
+
2645#define nocxPutAway 5 //1 = do not call cxPutAway routine
+
2646//----------------------------------------------------------------------
+
2647#define groupFlags 0x26 //used temporarily in Arc_Unarc
+
2648#define inGroup 1 //1 = IN GROUP CONTEXT
+
2649#define noCompletionByte 2 //1 = do not write 0FCh when calling Arc_Unarc, leave as 0FEh
+
2650#define noDataWrite 3 //1 = do not write data when calling Arc_Unarc, nor size bytes
+
2651#define writeSizeBytesOnly 5 //1 = only write size bytes when calling Arc_Unarc
+
2652//----------------------------------------------------------------------
+
2653//There is a flag 27h.
+
2654//----------------------------------------------------------------------
+
2655#define APIFlg 0x28
+
2656#define appAllowContext 0 //App wants context changes to happen
+
2657//1 set to ignore a key after returning from rawkeyhook
+
2658//2 set to send this key back?
+
2659//3
+
2660#define appRunning 4 //app is currently running
+
2661//5
+
2662//6
+
2663#define appRetKeyOff 7 //1 = GetKey returns kOff when [2nd]+[ON] pressed
+
2664//----------------------------------------------------------------------
+
2665#define apiFlg2 0x29
+
2666//----------------------------------------------------------------------
+
2667#define apiFlg3 0x2A
+
2668//1 set means using small font?
+
2669//----------------------------------------------------------------------
+
2670#define apiFlg4 0x2B
+
2671#define cellOverride 1 //use cell override
+
2672#define fullScrnDraw 2 //DRAW INTO LAST ROW/COL OF SCREEN
+
2673//----------------------------------------------------------------------
+
2674#define mouseFlag1 0x2C
+
2675//----------------------------------------------------------------------
+
2676#define mouseFlag2 0x2D //might want to keep this always reset
+
2677//----------------------------------------------------------------------
+
2678#define xapFlag0 0x2E //external app flags, do not use 0,(iy+2Eh) (used by mouse routines)
+
2679#define xapFlag1 0x2F
+
2680#define xapFlag2 0x30
+
2681#define xapFlag3 0x31
+
2682//----------------------------------------------------------------------
+
2683#define fontFlags 0x32
+
2684#define fracDrawLFont 2
+
2685#define fracTallLFont 3
+
2686#define customFont 7
+
2687//----------------------------------------------------------------------
+
2688#define hookflags1 0x33 //also scriptFlag, rclFlag2, backGroundLink
+
2689#define alt_On 0 //run ONSCRPT at startup
+
2690#define alt_Off 1 //run OFFSCRPT at shutdown
+
2691#define useRclQueueEnd 2 //1 = external mode
+
2692#define ignoreBPLink 3 //1 = override flag for link activity hook
+
2693#define bPLinkOn 4 //1 = link activity hook active
+
2694#define enableKeyEcho 5 //1 = sends keypresses back to connected calc as remote control packets (with GetCSC vs. GetKey codes...really dumb, TI)
+
2695#define noTempDelete 6 //1 = do not delete temporary programs at homescreen
+
2696//----------------------------------------------------------------------
+
2697#define hookflags2 0x34 //also sysHookFlg
+
2698#define getCSCHookActive 0 //1 = GetCSC hook active
+
2699#define libraryHookActive 1 //1 = library hook active
+
2700//2 This is set in the OS, but never referenced and the code is never executed
+
2701#define homescreenHookActive 4 //1 = homescreen hook active
+
2702#define rawKeyHookActive 5 //1 = raw key hook active
+
2703#define catalog2HookActive 6 //1 = catalog 2 hook active
+
2704#define cursorHookActive 7 //1 = cursor hook active
+
2705//----------------------------------------------------------------------
+
2706#define hookflags3 0x35 //also sysHookFlg1
+
2707#define tokenHookActive 0 //1 = token hook active
+
2708#define localizeHookActive 1 //1 = localize hook active
+
2709#define windowHookActive 2 //1 = window hook active
+
2710#define graphHookActive 3 //1 = graph hook active
+
2711#define yEquHookActive 4 //1 = Y= hook active
+
2712#define fontHookActive 5 //1 = font hook active
+
2713#define regraphHookActive 6 //1 = regraph hook active
+
2714#define drawingHookActive 7 //1 = drawing hook active
+
2715//----------------------------------------------------------------------
+
2716#define hookflags4 0x36 //also sysHookFlag2
+
2717#define traceHookActive 0 //1 = trace hook active
+
2718#define parserHookActive 1 //1 = parser hook active
+
2719#define appChangeHookActive 2 //1 = app change hook active
+
2720#define catalog1HookActive 3 //1 = catalog 1 hook active
+
2721#define helpHookActive 4 //1 = help hook active
+
2722#define cxRedispHookActive 5 //1 = cxRedisp hook active
+
2723#define menuHookActive 6 //1 = menu hook active
+
2724#define silentLinkHookActive 7 //1 = silent link hook active
+
2725//----------------------------------------------------------------------
+
2726//hookflags2Override equ 37h ;set corresponding bit to kill iy+35h hook when executing app
+
2727//----------------------------------------------------------------------
+
2728//hookflags3Override equ 38h ;set corresponding bit to kill iy+36h hook when executing app
+
2729//----------------------------------------------------------------------
+
2730//hookflags4Override equ 39h ;set corresponding bit to kill iy+37h hook when executing app
+
2731//----------------------------------------------------------------------
+
2732//hookflags5 equ 3Ah
+
2733#define usbActivityHookActive 0 //1 = USB activity hook active
+
2734//----------------------------------------------------------------------
+
2735#define plotFlag3 0x3C
+
2736#define bufferOnly 0
+
2737#define useFastCirc 4
+
2738//----------------------------------------------------------------------
+
2739#define dBKeyFlags 0x3D
+
2740#define keyDefaultsF 6 //1 = GetKey returns extended keycodes with TI-Keyboard
+
2741//----------------------------------------------------------------------
+
2742#define silentLinkFlags 0x3E
+
2743#define silentLinkActive 0 //1 = SE/84+ silent link is active
+
2744
+
2745#define extraHookFlags 0x3E
+
2746#define checkCatalog2HookVer 3 //1 = check catalog 2 hook's version before executing it (and error or take other action if so)
+
2747#define openLibActive 4 //1 = OpenLib( was successfully called on a Flash application (ExecLib will error if zero)
+
2748//5
+
2749//----------------------------------------------------------------------
+
2750#define clockFlags 0x3F
+
2751#define notMDYMode 0 //0 = M/D/Y format
+
2752#define isYMDMode 1 //1 = Y/M/D format
+
2753#define is24Hour 2 //1 = clock in 24 hour mode
+
2754#define inAfternoon 3 //1 = current time is in afternoon (PM) (I think)
+
2755#define useTokensInString 4 //1 = use tokens instead of characters when displaying clock as string (for getTmStr and getDtStr vs. MODE screen) (keep this reset)
+
2756#define displayClock 5 //1 = display clock (this is set every second, reset otherwise)
+
2757#define clockOn 6 //1 = clock on
+
2758//----------------------------------------------------------------------
+
2759#define USBFlag1 0x40
+
2760//1 Reset in I/O receiving code, doesn't seem to be used anywhere else
+
2761#define usbReceiveZone1 2 //1 = receive to RAM pages 3/2 ("zone 1")
+
2762//----------------------------------------------------------------------
+
2763#define USBFlag2 0x41
+
2764//0
+
2765//2
+
2766#define noUSBHostInit 3 //1 = _InitSpecificUSBDevice must fail
+
2767#define usbDataWaiting 5
+
2768//6
+
2769//7
+
2770//----------------------------------------------------------------------
+
2771#define USBFlag3 0x42
+
2772//----------------------------------------------------------------------
+
2773#define USBFlag4 0x43
+
2774#define usbTimeoutError 0 //1 = USB timeout error (crystal timer expired)
+
2775//----------------------------------------------------------------------
+
2776
+
2777//Character Font Equates
+
2778//-------------------------------
+
2779#define LrecurN 0x001
+
2780#define LrecurU 0x002
+
2781#define LrecurV 0x003
+
2782#define LrecurW 0x004
+
2783#define Lconvert 0x005
+
2784#define LsqUp 0x006
+
2785#define LsqDown 0x007
+
2786#define Lintegral 0x008
+
2787#define Lcross 0x009
+
2788#define LboxIcon 0x00A
+
2789#define LcrossIcon 0x00B
+
2790#define LdotIcon 0x00C
+
2791#define LsubT 0x00D //small capital T for parametric mode.
+
2792#define LcubeR 0x00E //slightly different 3 for cubed root.
+
2793#define LhexF 0x00F
+
2794#define Lroot 0x010
+
2795#define Linverse 0x011
+
2796#define Lsquare 0x012
+
2797#define Langle 0x013
+
2798#define Ldegree 0x014
+
2799#define Lradian 0x015
+
2800#define Ltranspose 0x016
+
2801#define LLE 0x017
+
2802#define LNE 0x018
+
2803#define LGE 0x019
+
2804#define Lneg 0x01A
+
2805#define Lexponent 0x01B
+
2806#define Lstore 0x01C
+
2807#define Lten 0x01D
+
2808#define LupArrow 0x01E
+
2809#define LdownArrow 0x01F
+
2810#define Lspace 0x020
+
2811#define Lexclam 0x021
+
2812#define Lquote 0x022
+
2813#define Lpound 0x023
+
2814#define Lfourth 0x024
+
2815#define Lpercent 0x025
+
2816#define Lampersand 0x026
+
2817#define Lapostrophe 0x027
+
2818#define LlParen 0x028
+
2819#define LrParen 0x029
+
2820#define Lasterisk 0x02A
+
2821#define LplusSign 0x02B
+
2822#define Lcomma 0x02C
+
2823#define Ldash 0x02D
+
2824#define Lperiod 0x02E
+
2825#define Lslash 0x02F
+
2826#define L0 0x030
+
2827#define L1 0x031
+
2828#define L2 0x032
+
2829#define L3 0x033
+
2830#define L4 0x034
+
2831#define L5 0x035
+
2832#define L6 0x036
+
2833#define L7 0x037
+
2834#define L8 0x038
+
2835#define L9 0x039
+
2836#define Lcolon 0x03A
+
2837#define Lsemicolon 0x03B
+
2838#define LLT 0x03C
+
2839#define LEQ 0x03D
+
2840#define LGT 0x03E
+
2841#define Lquestion 0x03F
+
2842#define LatSign 0x040
+
2843#define LcapA 0x041
+
2844#define LcapB 0x042
+
2845#define LcapC 0x043
+
2846#define LcapD 0x044
+
2847#define LcapE 0x045
+
2848#define LcapF 0x046
+
2849#define LcapG 0x047
+
2850#define LcapH 0x048
+
2851#define LcapI 0x049
+
2852#define LcapJ 0x04A
+
2853#define LcapK 0x04B
+
2854#define LcapL 0x04C
+
2855#define LcapM 0x04D
+
2856#define LcapN 0x04E
+
2857#define LcapO 0x04F
+
2858#define LcapP 0x050
+
2859#define LcapQ 0x051
+
2860#define LcapR 0x052
+
2861#define LcapS 0x053
+
2862#define LcapT 0x054
+
2863#define LcapU 0x055
+
2864#define LcapV 0x056
+
2865#define LcapW 0x057
+
2866#define LcapX 0x058
+
2867#define LcapY 0x059
+
2868#define LcapZ 0x05A
+
2869#define Ltheta 0x05B
+
2870#define Lbackslash 0x05C
+
2871#define LrBrack 0x05D
+
2872#define Lcaret 0x05E
+
2873#define Lunderscore 0x05F
+
2874#define Lbackquote 0x060
+
2875#define La 0x061
+
2876#define Lb 0x062
+
2877#define Lc 0x063
+
2878#define Ld 0x064
+
2879#define Le 0x065
+
2880#define Lf 0x066
+
2881#define Lg 0x067
+
2882#define Lh 0x068
+
2883#define Li 0x069
+
2884#define Lj 0x06A
+
2885#define Lk 0x06B
+
2886#define Ll 0x06C
+
2887#define Lm 0x06D
+
2888#define Ln 0x06E
+
2889#define Lo 0x06F
+
2890#define Lp 0x070
+
2891#define Lq 0x071
+
2892#define Lr 0x072
+
2893#define Ls 0x073
+
2894#define Lt 0x074
+
2895#define Lu 0x075
+
2896#define Lv 0x076
+
2897#define Lw 0x077
+
2898#define Lx 0x078
+
2899#define Ly 0x079
+
2900#define Lz 0x07A
+
2901#define LlBrace 0x07B
+
2902#define Lbar 0x07C
+
2903#define LrBrace 0x07D
+
2904#define Ltilde 0x07E
+
2905#define LinvEQ 0x07F
+
2906#define Lsub0 0x080
+
2907#define Lsub1 0x081
+
2908#define Lsub2 0x082
+
2909#define Lsub3 0x083
+
2910#define Lsub4 0x084
+
2911#define Lsub5 0x085
+
2912#define Lsub6 0x086
+
2913#define Lsub7 0x087
+
2914#define Lsub8 0x088
+
2915#define Lsub9 0x089
+
2916#define LcapAAcute 0x08A
+
2917#define LcapAGrave 0x08B
+
2918#define LcapACaret 0x08C
+
2919#define LcapADier 0x08D
+
2920#define LaAcute 0x08E
+
2921#define LaGrave 0x08F
+
2922#define LaCaret 0x090
+
2923#define LaDier 0x091
+
2924#define LcapEAcute 0x092
+
2925#define LcapEGrave 0x093
+
2926#define LcapECaret 0x094
+
2927#define LcapEDier 0x095
+
2928#define LeAcute 0x096
+
2929#define LeGrave 0x097
+
2930#define LeCaret 0x098
+
2931#define LeDier 0x099
+
2932#define LcapIAcute 0x09A
+
2933#define LcapIGrave 0x09B
+
2934#define LcapICaret 0x09C
+
2935#define LcapIDier 0x09D
+
2936#define LiAcute 0x09E
+
2937#define LiGrave 0x09F
+
2938#define LiCaret 0x0A0
+
2939#define LiDier 0x0A1
+
2940#define LcapOAcute 0x0A2
+
2941#define LcapOGrave 0x0A3
+
2942#define LcapOCaret 0x0A4
+
2943#define LcapODier 0x0A5
+
2944#define LoAcute 0x0A6
+
2945#define LoGrave 0x0A7
+
2946#define LoCaret 0x0A8
+
2947#define LoDier 0x0A9
+
2948#define LcapUAcute 0x0AA
+
2949#define LcapUGrave 0x0AB
+
2950#define LcapUCaret 0x0AC
+
2951#define LcapUDier 0x0AD
+
2952#define LuAcute 0x0AE
+
2953#define LuGrave 0x0AF
+
2954#define LuCaret 0x0B0
+
2955#define LuDier 0x0B1
+
2956#define LcapCCed 0x0B2
+
2957#define LcCed 0x0B3
+
2958#define LcapNTilde 0x0B4
+
2959#define LnTilde 0x0B5
+
2960#define Laccent 0x0B6
+
2961#define Lgrave 0x0B7
+
2962#define Ldieresis 0x0B8
+
2963#define LquesDown 0x0B9
+
2964#define LexclamDown 0x0BA
+
2965#define Lalpha 0x0BB
+
2966#define Lbeta 0x0BC
+
2967#define Lgamma 0x0BD
+
2968#define LcapDelta 0x0BE
+
2969#define Ldelta 0x0BF
+
2970#define Lepsilon 0x0C0
+
2971#define LlBrack 0x0C1
+
2972#define Llambda 0x0C2
+
2973#define Lmu 0x0C3
+
2974#define Lpi 0x0C4
+
2975#define Lrho 0x0C5
+
2976#define LcapSigma 0x0C6
+
2977#define Lsigma 0x0C7
+
2978#define Ltau 0x0C8
+
2979#define Lphi 0x0C9
+
2980#define LcapOmega 0x0CA
+
2981#define LxMean 0x0CB
+
2982#define LyMean 0x0CC
+
2983#define LsupX 0x0CD
+
2984#define Lellipsis 0x0CE
+
2985#define Lleft 0x0CF
+
2986#define Lblock 0x0D0
+
2987#define Lper 0x0D1
+
2988#define Lhyphen 0x0D2
+
2989#define Larea 0x0D3
+
2990#define Ltemp 0x0D4
+
2991#define Lcube 0x0D5
+
2992#define Lenter 0x0D6
+
2993#define LimagI 0x0D7
+
2994#define Lphat 0x0D8
+
2995#define Lchi 0x0D9
+
2996#define LstatF 0x0DA
+
2997#define Llne 0x0DB
+
2998#define LlistL 0x0DC
+
2999#define LfinanN 0x0DD
+
3000#define L2_r_paren 0x0DE
+
3001#define LblockArrow 0x0DF
+
3002#define LcurO 0x0E0
+
3003#define LcurO2 0x0E1
+
3004#define LcurOcapA 0x0E2
+
3005#define LcurOa 0x0E3
+
3006#define LcurI 0x0E4
+
3007#define LcurI2 0x0E5
+
3008#define LcurIcapA 0x0E6
+
3009#define LcurIa 0x0E7
+
3010#define LGline 0x0E8 // = 0
+
3011#define LGthick 0x0E9 // = 1
+
3012#define LGabove 0x0EA // = 2
+
3013#define LGbelow 0x0EB // = 3
+
3014#define LGpath 0x0EC // = 4
+
3015#define LGanimate 0x0ED // = 5
+
3016#define LGdot 0x0EE // = 6
+
3017#define LUpBlk 0x0EF //Up arrow and Block in solver
+
3018#define LDnBlk 0x0F0 //Down arrow and Block in solver
+
3019#define LcurFull 0x0F1 //note: must be last char (PutMap checks)
+
3020
+
3021//(MenuCurrent) Values
+
3022//--------------------------
+
3023#define mConfirmation 0x01
+
3024#define mApps 0x02
+
3025#define mProgramHome 0x03
+
3026#define mPrgm_Run 0x00
+
3027#define mPrgm_Edit 0x01
+
3028#define mPrgm_New 0x02
+
3029#define mZoom 0x04
+
3030#define mZoom_Zoom 0x00
+
3031#define mZoom_Memory 0x01
+
3032#define mDraw 0x05
+
3033#define mDraw_Draw 0x00
+
3034#define mDraw_Points 0x01
+
3035#define mDraw_Store 0x02
+
3036#define mStatPlots 0x06
+
3037#define mStat 0x07
+
3038#define mStat_Edit 0x00
+
3039#define mStat_Calc 0x01
+
3040#define mStat_Tests 0x02
+
3041#define mMath 0x08
+
3042#define mMath_Math 0x00
+
3043#define mMath_Number 0x01
+
3044#define mMath_Complex 0x02
+
3045#define mMath_Prob 0x03
+
3046#define mTest 0x09
+
3047#define mTest_Test 0x00
+
3048#define mTest_Logic 0x01
+
3049#define mVars 0x0A
+
3050#define mVars_Vars 0x00
+
3051#define mVars_YVars 0x01
+
3052#define mMemory 0x0C
+
3053#define mMatrix 0x0D
+
3054#define mMatrix_Name 0x00
+
3055#define mMatrix_Math 0x01
+
3056#define mMatrix_Edit 0x02
+
3057#define mDistr 0x0E
+
3058#define mDistr_Distr 0x00
+
3059#define mDistr_Draw 0x01
+
3060#define mAngle 0x0F
+
3061#define mList 0x10
+
3062#define mList_Names 0x00
+
3063#define mList_Ops 0x01
+
3064#define mList_Math 0x02
+
3065#define mCalculate 0x11
+
3066#define mVarsWin 0x14
+
3067#define mVarsWin_XY 0x00
+
3068#define mVarsWin_TTh 0x01
+
3069#define mVarsWin_UVW 0x02
+
3070#define mVarsZoom 0x15
+
3071#define mVarsZoom_ZXY 0x00
+
3072#define mVarsZoom_ZT 0x01
+
3073#define mVarsZoom_UVW 0x02
+
3074#define mVarsGDB 0x16
+
3075#define mVarsPics 0x17
+
3076#define mVarsStrings 0x18
+
3077#define mVarsStat 0x19
+
3078#define mVarsStat_XY 0x00
+
3079#define mVarsStat_Sigma 0x01
+
3080#define mVarsStat_EQ 0x02
+
3081#define mVarsStat_Test 0x03
+
3082#define mVarsStat_Pts 0x04
+
3083#define mVarsTable 0x1A
+
3084#define mVarsYEqu 0x1B
+
3085#define mVarsParametric 0x1C
+
3086#define mVarsPolar 0x1D
+
3087#define mVarsFnOnOff 0x1E
+
3088#define mMemReset 0x1F
+
3089#define mMemReset_RAM 0x00
+
3090#define mMemReset_ROM 0x01
+
3091#define mMemReset_All 0x02
+
3092#define mMemMgmtDel 0x20
+
3093#define mMemResetDefaults 0x21
+
3094#define mMemResetRAMAll 0x23
+
3095#define mMemResetROMVars 0x24
+
3096#define mMemResetROMApps 0x25
+
3097#define mMemResetROMAll 0x26
+
3098#define mMemResetAll 0x27
+
3099#define mGroup 0x28
+
3100#define mGroup_New 0x00
+
3101#define mGroup_Ungroup 0x01
+
3102#define mGroupVars 0x29
+
3103#define mProgramEdit 0x2A
+
3104#define mPrgmEd_Ctrl 0x00
+
3105#define mPrgmEd_IO 0x01
+
3106#define mPrgmEd_Exec 0x02
+
3107#define mPrgmZoom 0x2B
+
3108#define mPrgmZoom_Zoom 0x00
+
3109#define mPrgmZoom_Mem 0x01
+
3110#define mPrgmDraw 0x2C
+
3111#define mPrgmDraw_Draw 0x00
+
3112#define mPrgmDraw_Pt 0x01
+
3113#define mPrgmDraw_Store 0x02
+
3114#define mPrgmStatPlot 0x2D
+
3115#define mPrgmSP_Plots 0x00
+
3116#define mPrgmSP_Type 0x01
+
3117#define mPrgmSP_Mark 0x02
+
3118#define mPrgmStat 0x2E
+
3119#define mPrgmStat_Edit 0x00
+
3120#define mPrgmStat_Calc 0x01
+
3121#define mPrgmStat_Tests 0x02
+
3122#define mPrgmMath 0x2F
+
3123#define mPrgmMath_Math 0x00
+
3124#define mPrgmMath_Num 0x01
+
3125#define mPrgmMath_Cplx 0x02
+
3126#define mPrgmMath_Prob 0x03
+
3127#define mLink 0x30
+
3128#define mLink_Send 0x00
+
3129#define mLink_Recieve 0x01
+
3130#define mLinkTrasmit 0x31
+
3131#define mLinkXmit_Xmit 0x01
+
3132#define mGarbageCollect 0x3F
+
3133#define mSelectGroupVars 0x40
+
3134#define mSelGrpVars_Sel 0x00
+
3135#define mSelGrpVars_Grp 0x01
+
3136#define mDuplicateName 0x42
+
3137#define mCatalog 0x45
+
3138#define mFinance 0x22
+
3139#define mFinance_Calc 0x00
+
3140#define mFinance_Vars 0x01
+
3141
+
3142//Keypress Equates
+
3143//-------------------------------
+
3144#define kRight 0x001
+
3145#define kLeft 0x002
+
3146#define kUp 0x003
+
3147#define kDown 0x004
+
3148#define kEnter 0x005
+
3149#define kAlphaEnter 0x006
+
3150#define kAlphaUp 0x007
+
3151#define kAlphaDown 0x008
+
3152#define kClear 0x009
+
3153#define kDel 0x00A
+
3154#define kIns 0x00B
+
3155#define kRecall 0x00C
+
3156#define kLastEnt 0x00D
+
3157#define kBOL 0x00E
+
3158#define kEOL 0x00F
+
3159
+
3160#define kSelAll 0x010
+
3161#define kUnselAll 0x011
+
3162#define kLtoTI82 0x012
+
3163#define kBackup 0x013
+
3164#define kRecieve 0x014
+
3165#define kLnkQuit 0x015
+
3166#define kTrans 0x016
+
3167#define kRename 0x017
+
3168#define kOverw 0x018
+
3169#define kOmit 0x019
+
3170#define kCont 0x01A
+
3171#define kSendID 0x01B
+
3172#define kSendSW 0x01C
+
3173#define kYes 0x01D
+
3174#define kNoWay 0x01E
+
3175#define kvSendType 0x01F
+
3176#define kOverWAll 0x020
+
3177#define kNo 0x025
+
3178#define kKReset 0x026
+
3179#define kApp 0x027
+
3180#define kDoug 0x028
+
3181#define kListflag 0x029
+
3182#define menuStart 0x02B
+
3183#define kAreYouSure 0x02B
+
3184#define kAppsMenu 0x02C
+
3185#define kPrgm 0x02D
+
3186#define kZoom 0x02E
+
3187#define kDraw 0x02F
+
3188#define kSPlot 0x030
+
3189#define kStat 0x031
+
3190#define kMath 0x032
+
3191#define kTest 0x033
+
3192#define kChar 0x034
+
3193#define kVars 0x035
+
3194#define kMem 0x036
+
3195#define kMatrix 0x037
+
3196#define kDist 0x038
+
3197#define kAngle 0x039
+
3198#define kList 0x03A
+
3199#define kCalc 0x03B
+
3200#define kFin 0x03C
+
3201#define menuEnd kFin
+
3202#define kCatalog 0x03E
+
3203#define kInputDone 0x03F
+
3204#define kOff kInputDone
+
3205#define kQuit 0x040
+
3206#define appStart kQuit
+
3207#define kLinkIO 0x041
+
3208#define kMatrixEd 0x042
+
3209#define kStatEd 0x043
+
3210#define kGraph 0x044
+
3211#define kMode 0x045
+
3212#define kPrgmEd 0x046 //PROGRAM EDIT
+
3213#define kPrgmCr 0x047 //PROGRAM CREATE
+
3214#define kWindow 0x048 //RANGE EDITOR
+
3215#define kYequ 0x049 //EQUATION EDITOR
+
3216#define kTable 0x04A //TABLE EDITOR
+
3217#define kTblSet 0x04B //TABLE SET
+
3218#define kChkRAM 0x04C //CHECK RAM (About screen)
+
3219#define kDelMem 0x04D //DELETE MEM
+
3220#define kResetMem 0x04E //RESET MEM
+
3221#define kResetDef 0x04F //RESET DEFAULT
+
3222#define kPrgmInput 0x050 //PROGRAM INPUT
+
3223#define kZFactEd 0x051 //ZOOM FACTOR EDITOR
+
3224#define kError 0x052 //ERROR
+
3225#define kSolveTVM 0x053 //TVM SOLVER
+
3226#define kSolveRoot 0x054 //SOLVE EDITOR
+
3227#define kStatP 0x055 //stat plot
+
3228#define kInfStat 0x056 //Inferential Statistic
+
3229#define kFormat 0x057 //FORMAT
+
3230#define kExtApps 0x058 //External Applications. NEW
+
3231#define kNewApps 0x059 //New Apps for Cerberus.
+
3232#define append kNewApps
+
3233#define echoStart1 0x05A
+
3234#define kTrace 0x05A
+
3235#define kZFit 0x05B
+
3236#define kZIn 0x05C
+
3237#define kZOut 0x05D
+
3238#define kZPrev 0x05E
+
3239#define kBox 0x05F
+
3240#define kDecml 0x060
+
3241#define kSetZm 0x061
+
3242#define kSquar 0x062
+
3243#define kStd 0x063
+
3244#define kTrig 0x064
+
3245#define kUsrZm 0x065
+
3246#define kZSto 0x066
+
3247#define kZInt 0x067
+
3248#define kZStat 0x068
+
3249#define echoStart2 0x069
+
3250#define kSelect 0x069
+
3251#define kCircl 0x06A
+
3252#define kClDrw 0x06B
+
3253#define kLine 0x06C
+
3254#define kPen 0x06D
+
3255#define kPtChg 0x06E
+
3256#define kPtOff 0x06F
+
3257#define kPtOn 0x070
+
3258#define kVert 0x071
+
3259#define kHoriz 0x072
+
3260#define kText 0x073
+
3261#define kTanLn 0x074
+
3262#define kEval 0x075
+
3263#define kInters 0x076
+
3264#define kDYDX 0x077
+
3265#define kFnIntg 0x078
+
3266#define kRootG 0x079
+
3267#define kDYDT 0x07A
+
3268#define kDXDT 0x07B
+
3269#define kDRDo 0x07C
+
3270#define KGFMin 0x07D
+
3271#define KGFMax 0x07E
+
3272#define EchoStart 0x07F
+
3273#define kListName 0x07F
+
3274#define kAdd 0x080
+
3275#define kSub 0x081
+
3276#define kMul 0x082
+
3277#define kDiv 0x083
+
3278#define kExpon 0x084
+
3279#define kLParen 0x085
+
3280#define kRParen 0x086
+
3281#define kLBrack 0x087
+
3282#define kRBrack 0x088
+
3283#define kShade 0x089
+
3284#define kStore 0x08A
+
3285#define kComma 0x08B
+
3286#define kChs 0x08C
+
3287#define kDecPnt 0x08D
+
3288#define k0 0x08E
+
3289#define k1 0x08F
+
3290#define k2 0x090
+
3291#define k3 0x091
+
3292#define k4 0x092
+
3293#define k5 0x093
+
3294#define k6 0x094
+
3295#define k7 0x095
+
3296#define k8 0x096
+
3297#define k9 0x097
+
3298#define kEE 0x098
+
3299#define kSpace 0x099
+
3300#define kCapA 0x09A
+
3301#define kCapB 0x09B
+
3302#define kCapC 0x09C
+
3303#define kCapD 0x09D
+
3304#define kCapE 0x09E
+
3305#define kCapF 0x09F
+
3306#define kCapG 0x0A0
+
3307#define kCapH 0x0A1
+
3308#define kCapI 0x0A2
+
3309#define kCapJ 0x0A3
+
3310#define kCapK 0x0A4
+
3311#define kCapL 0x0A5
+
3312#define kCapM 0x0A6
+
3313#define kCapN 0x0A7
+
3314#define kCapO 0x0A8
+
3315#define kCapP 0x0A9
+
3316#define kCapQ 0x0AA
+
3317#define kCapR 0x0AB
+
3318#define kCapS 0x0AC
+
3319#define kCapT 0x0AD
+
3320#define kCapU 0x0AE
+
3321#define kCapV 0x0AF
+
3322#define kCapW 0x0B0
+
3323#define kCapX 0x0B1
+
3324#define kCapY 0x0B2
+
3325#define kCapZ 0x0B3
+
3326#define kVarx 0x0B4
+
3327#define kPi 0x0B5
+
3328#define kInv 0x0B6
+
3329#define kSin 0x0B7
+
3330#define kASin 0x0B8
+
3331#define kCos 0x0B9
+
3332#define kACos 0x0BA
+
3333#define kTan 0x0BB
+
3334#define kATan 0x0BC
+
3335#define kSquare 0x0BD
+
3336#define kSqrt 0x0BE
+
3337#define kLn 0x0BF
+
3338#define kExp 0x0C0
+
3339#define kLog 0x0C1
+
3340#define kALog 0x0C2
+
3341#define kToABC 0x0C3
+
3342#define kClrTbl 0x0C4
+
3343#define kAns 0x0C5
+
3344#define kColon 0x0C6
+
3345#define kNDeriv 0x0C7
+
3346#define kFnInt 0x0C8
+
3347#define kRoot 0x0C9
+
3348#define kQuest 0x0CA
+
3349#define kQuote 0x0CB
+
3350#define kTheta 0x0CC
+
3351#define kIf 0x0CD
+
3352#define kThen 0x0CE
+
3353#define kElse 0x0CF
+
3354#define kFor 0x0D0
+
3355#define kWhile 0x0D1
+
3356#define kRepeat 0x0D2
+
3357#define kEnd 0x0D3
+
3358#define kPause 0x0D4
+
3359#define kLbl 0x0D5
+
3360#define kGoto 0x0D6
+
3361#define kISG 0x0D7
+
3362#define kDSL 0x0D8
+
3363#define kMenu 0x0D9
+
3364#define kExec 0x0DA
+
3365#define kReturn 0x0DB
+
3366#define kStop 0x0DC
+
3367#define kInput 0x0DD
+
3368#define kPrompt 0x0DE
+
3369#define kDisp 0x0DF
+
3370#define kDispG 0x0E0
+
3371#define kDispT 0x0E1
+
3372#define kOutput 0x0E2
+
3373#define kGetKey 0x0E3
+
3374#define kClrHome 0x0E4
+
3375#define kPrtScr 0x0E5
+
3376#define kSinH 0x0E6
+
3377#define kCosH 0x0E7
+
3378#define kTanH 0x0E8
+
3379#define kASinH 0x0E9
+
3380#define kACosH 0x0EA
+
3381#define kATanH 0x0EB
+
3382#define kLBrace 0x0EC
+
3383#define kRBrace 0x0ED
+
3384#define kI 0x0EE
+
3385#define kCONSTeA 0x0EF
+
3386#define kPlot3 0x0F0
+
3387#define kFMin 0x0F1
+
3388#define kFMax 0x0F2
+
3389#define kL1A 0x0F3
+
3390#define kL2A 0x0F4
+
3391#define kL3A 0x0F5
+
3392#define kL4A 0x0F6
+
3393#define kL5A 0x0F7
+
3394#define kL6A 0x0F8
+
3395#define kunA 0x0F9
+
3396#define kvnA 0x0FA
+
3397#define kwnA 0x0FB
+
3398
+
3399//THIS KEY MEANS THAT IT IS A 2 BYTE KEYCODE
+
3400//THERE ARE 2 OF THESE KEYS; BE CAREFUL WITH USAGE
+
3401//------------------------------------------------
+
3402#define kExtendEcho2 0x0FC
+
3403
+
3404//THIS KEY MEANS THAT THE KEY PRESS IS ONE THAT ECHOS
+
3405//INTO A BUFFER, AND IT IS A 2 BYTE KEY CODE, GO LOOK AT
+
3406//(EXTECHO) FOR THE KEY VALUE
+
3407//------------------------------------------------------
+
3408#define kExtendEcho 0x0FE
+
3409
+
3410#define kE1BT 0
+
3411#define kDrawInv kE1BT
+
3412#define kDrawF kE1BT+1
+
3413#define kPixelOn kE1BT+2
+
3414#define kPixelOff kE1BT+3
+
3415#define kPxlTest kE1BT+4
+
3416#define kRCGDB kE1BT+5
+
3417#define kRCPic kE1BT+6
+
3418#define kSTGDB kE1BT+7
+
3419#define kSTPic kE1BT+8
+
3420#define kAbs kE1BT+9
+
3421#define kTEqu kE1BT+10 //==
+
3422#define kTNoteQ kE1BT+11 //<>
+
3423#define kTGT kE1BT+12 //>
+
3424#define kTGTE kE1BT+13 //>=
+
3425#define kTLT kE1BT+14 //<
+
3426#define kTLTE kE1BT+15 //<=
+
3427#define kAnd kE1BT+16
+
3428#define kOr kE1BT+17
+
3429#define kXor kE1BT+18
+
3430#define kNot kE1BT+19
+
3431#define kLR1 kE1BT+20
+
3432#define kXRoot kE1BT+21
+
3433#define kCube kE1BT+22
+
3434#define kCbRt kE1BT+23 //Cube ROOT
+
3435#define kToDec kE1BT+24
+
3436#define kCubicR kE1BT+25
+
3437#define kQuartR kE1BT+26
+
3438#define kPlot1 kE1BT+27
+
3439#define kPlot2 kE1BT+28
+
3440#define kRound kE1BT+29
+
3441#define kIPart kE1BT+30
+
3442#define kFPart kE1BT+31
+
3443#define kInt kE1BT+32
+
3444#define kRand kE1BT+33
+
3445#define kNPR kE1BT+34
+
3446#define kNCR kE1BT+35
+
3447#define kXFactorial kE1BT+36
+
3448#define kRad kE1BT+37
+
3449#define kDegr kE1BT+38 //DEGREES CONV
+
3450#define kAPost kE1BT+39
+
3451#define kToDMS kE1BT+40
+
3452#define kRToPo kE1BT+41 //R
+
3453#define kRToPr kE1BT+42
+
3454#define kPToRx kE1BT+43
+
3455#define kPToRy kE1BT+44
+
3456#define kRowSwap kE1BT+45
+
3457#define kRowPlus kE1BT+46
+
3458#define kTimRow kE1BT+47
+
3459#define kTRowP kE1BT+48
+
3460#define kSortA kE1BT+49
+
3461#define kSortD kE1BT+50
+
3462#define kSeq kE1BT+51
+
3463#define kMin kE1BT+52
+
3464#define kMax kE1BT+53
+
3465#define kMean kE1BT+54
+
3466#define kMedian kE1BT+55
+
3467#define kSum kE1BT+56
+
3468#define kProd kE1BT+57
+
3469#define kDet kE1BT+58
+
3470#define kTransp kE1BT+59
+
3471#define kDim kE1BT+60
+
3472#define kFill kE1BT+61
+
3473#define kIdent kE1BT+62
+
3474#define kRandm kE1BT+63
+
3475#define kAug kE1BT+64
+
3476#define kOneVar kE1BT+65
+
3477#define kTwoVar kE1BT+66
+
3478#define kLR kE1BT+67
+
3479#define kLRExp kE1BT+68
+
3480#define kLRLn kE1BT+69
+
3481#define kLRPwr kE1BT+70
+
3482#define kMedMed kE1BT+71
+
3483#define kQuad kE1BT+72
+
3484#define kClrLst kE1BT+73
+
3485#define kHist kE1BT+74
+
3486#define kxyLine kE1BT+75
+
3487#define kScatter kE1BT+76
+
3488#define kmRad kE1BT+77
+
3489#define kmDeg kE1BT+78
+
3490#define kmNormF kE1BT+79
+
3491#define kmSci kE1BT+80
+
3492#define kmEng kE1BT+81
+
3493#define kmFloat kE1BT+82
+
3494#define kFix kE1BT+83
+
3495#define kSplitOn kE1BT+84
+
3496#define kFullScreen kE1BT+85
+
3497#define kStndrd kE1BT+86
+
3498#define kParam kE1BT+87
+
3499#define kPolar kE1BT+88
+
3500#define kSeqG kE1BT+89
+
3501#define kAFillOn kE1BT+90
+
3502#define kAFillOff kE1BT+91
+
3503#define kACalcOn kE1BT+92
+
3504#define kACalcOff kE1BT+93
+
3505#define kFNOn kE1BT+94
+
3506#define kFNOff kE1BT+95
+
3507#define kPlotsOn kE1BT+96
+
3508#define kPlotsOff kE1BT+97
+
3509#define kPixelChg kE1BT+98
+
3510#define kSendMBL kE1BT+99
+
3511#define kRecvMBL kE1BT+100
+
3512#define kBoxPlot kE1BT+101
+
3513#define kBoxIcon kE1BT+102
+
3514#define kCrossIcon kE1BT+103
+
3515#define kDotIcon kE1BT+104
+
3516#define kE2BT kE1BT+105
+
3517#define kSeqential kE2BT
+
3518#define kSimulG kE2BT+1
+
3519#define kPolarG kE2BT+2
+
3520#define kRectG kE2BT+3
+
3521#define kCoordOn kE2BT+4
+
3522#define kCoordOff kE2BT+5
+
3523#define kDrawLine kE2BT+6
+
3524#define kDrawDot kE2BT+7
+
3525#define kAxisOn kE2BT+8
+
3526#define kAxisOff kE2BT+9
+
3527#define kGridOn kE2BT+10
+
3528#define kGridOff kE2BT+11
+
3529#define kLblOn kE2BT+12
+
3530#define kLblOff kE2BT+13
+
3531#define kL1 kE2BT+14
+
3532#define kL2 kE2BT+15
+
3533#define kL3 kE2BT+16
+
3534#define kL4 kE2BT+17
+
3535#define kL5 kE2BT+18
+
3536#define kL6 kE2BT+19
+
3537
+
3538//These keys are laid on top of existing keys to
+
3539//enable localization in the inferential stats editor.
+
3540//----------------------------------------------------
+
3541#define kinfData kL1
+
3542#define kinfStats kL1+1
+
3543#define kinfYes kL1+2
+
3544#define kinfNo kL1+3
+
3545#define kinfCalc kL1+4
+
3546#define kinfDraw kL1+5
+
3547#define kinfAlt1ne kL1+6
+
3548#define kinfAlt1lt kL1+7
+
3549#define kinfAlt1gt kL1+8
+
3550#define kinfAlt2ne kL1+9
+
3551#define kinfAlt2lt kL1+10
+
3552#define kinfAlt2gt kL1+11
+
3553#define kinfAlt3ne kL1+12
+
3554#define kinfAlt3lt kL1+13
+
3555#define kinfAlt3gt kL1+14
+
3556#define kinfAlt4ne kL1+15
+
3557#define kinfAlt4lt kL1+16
+
3558#define kinfAlt4gt kL1+17
+
3559#define kinfAlt5ne kL1+18
+
3560#define kinfAlt5lt kL1+19
+
3561#define kinfAlt5gt kL1+20
+
3562#define kinfAlt6ne kL1+21
+
3563#define kinfAlt6lt kL1+22
+
3564#define kinfAlt6gt kL1+23
+
3565#define kMatA kE2BT+20
+
3566#define kMatB kE2BT+21
+
3567#define kMatC kE2BT+22
+
3568#define kMatD kE2BT+23
+
3569#define kMatE kE2BT+24
+
3570#define kXmin kE2BT+25
+
3571#define kXmax kE2BT+26
+
3572#define kXscl kE2BT+27
+
3573#define kYmin kE2BT+28
+
3574#define kYmax kE2BT+29
+
3575#define kYscl kE2BT+30
+
3576#define kTmin kE2BT+31
+
3577#define kTmax kE2BT+32
+
3578#define kTStep kE2BT+33
+
3579#define kOmin kE2BT+34
+
3580#define kOmax kE2BT+35
+
3581#define kOStep kE2BT+36
+
3582#define ku0 kE2BT+37
+
3583#define kv0 kE2BT+38
+
3584#define knMin kE2BT+39
+
3585#define knMax kE2BT+40
+
3586#define kDeltaY kE2BT+41
+
3587#define kDeltaX kE2BT+42
+
3588#define kZXmin kE2BT+43
+
3589#define kZXmax kE2BT+44
+
3590#define kZXscl kE2BT+45
+
3591#define kZYmin kE2BT+46
+
3592#define kZYmax kE2BT+47
+
3593#define kZYscl kE2BT+48
+
3594#define kZTmin kE2BT+49
+
3595#define kZTmax kE2BT+50
+
3596#define kZTStep kE2BT+51
+
3597#define kZOmin kE2BT+52
+
3598#define kZOmax kE2BT+53
+
3599#define kZOStep kE2BT+54
+
3600#define kZu0 kE2BT+55
+
3601#define kZv0 kE2BT+56
+
3602#define kZnMin kE2BT+57
+
3603#define kZnMax kE2BT+58
+
3604#define kDelLast kE2BT+59
+
3605#define kSinReg kE2BT+60
+
3606#define kConstE kE2BT+61
+
3607#define kPic1 kE2BT+62
+
3608#define kPic2 kE2BT+63
+
3609#define kPic3 kE2BT+64
+
3610#define kDelVar kE2BT+65
+
3611#define kGetCalc kE2BT+66
+
3612#define kRealM kE2BT+67
+
3613#define kPolarM kE2BT+68
+
3614#define kRectM kE2BT+69
+
3615#define kuv kE2BT+70 //U vs V
+
3616#define kvw kE2BT+71 //V vs W
+
3617#define kuw kE2BT+72 //U vs W
+
3618#define kFinPMTend kE2BT+73
+
3619#define kFinPMTbeg kE2BT+74
+
3620#define kGraphStyle kE2BT+75
+
3621#define kExprOn kE2BT+76
+
3622#define kExprOff kE2BT+77
+
3623#define kStatA kE2BT+78
+
3624#define kStatB kE2BT+79
+
3625#define kStatC kE2BT+80
+
3626#define kCorr kE2BT+81
+
3627#define kStatD kE2BT+82
+
3628#define kStatE kE2BT+83
+
3629#define kRegEq kE2BT+84
+
3630#define kMinX kE2BT+85
+
3631#define kQ1 kE2BT+86
+
3632#define kMD kE2BT+87
+
3633#define kQ3 kE2BT+88
+
3634#define kMaxX kE2BT+89
+
3635#define kStatX1 kE2BT+90
+
3636#define kStatY1 kE2BT+91
+
3637#define kStatX2 kE2BT+92
+
3638#define kStatY2 kE2BT+93
+
3639#define kStatX3 kE2BT+94
+
3640#define kStatY3 kE2BT+95
+
3641#define kTblMin kE2BT+96
+
3642#define kTblStep kE2BT+97
+
3643#define kSetupLst kE2BT+98
+
3644#define kClrAllLst kE2BT+99
+
3645#define kLogistic kE2BT+100
+
3646#define kZTest kE2BT+101
+
3647#define kTTest kE2BT+102
+
3648#define k2SampZTest kE2BT+103
+
3649#define k2SampTTest kE2BT+104
+
3650#define k1PropZTest kE2BT+105
+
3651#define k2PropZTest kE2BT+106
+
3652#define kChiTest kE2BT+107
+
3653#define k2SampFTest kE2BT+108
+
3654#define kZIntVal kE2BT+109
+
3655#define kTIntVal kE2BT+110
+
3656#define k2SampTInt kE2BT+111
+
3657#define k2SampZInt kE2BT+112
+
3658#define k1PropZInt kE2BT+113
+
3659#define k2PropZInt kE2BT+114
+
3660#define kDNormal kE2BT+115
+
3661#define kInvNorm kE2BT+116
+
3662#define kDT kE2BT+117
+
3663#define kChi kE2BT+118
+
3664#define kDF kE2BT+119
+
3665#define kBinPDF kE2BT+120
+
3666#define kBinCDF kE2BT+121
+
3667#define kPoiPDF kE2BT+122
+
3668#define kPoiCDF kE2BT+123
+
3669#define kun kE2BT+124
+
3670#define kvn kE2BT+125
+
3671#define kwn kE2BT+126
+
3672#define kRecn kE2BT+127
+
3673#define kPlotStart kE2BT+128
+
3674#define kZPlotStart kE2BT+129 //recursion n
+
3675#define kXFact kE2BT+130 //PlotStart
+
3676#define kYFact kE2BT+131 //ZPlotStart
+
3677#define kANOVA kE2BT+132 //XFact
+
3678#define kMaxY kE2BT+133 //YFact
+
3679#define kWebOn kE2BT+134 //MinY
+
3680#define kWebOff kE2BT+135 //MaxY
+
3681#define kTblInput kE2BT+136 //WEB ON
+
3682#define kGeoPDF kE2BT+137 //WEB OFF
+
3683#define kGeoCDF kE2BT+138 //WEB OFF
+
3684#define kShadeNorm kE2BT+139
+
3685#define kShadeT kE2BT+140
+
3686#define kShadeChi kE2BT+141
+
3687#define kShadeF kE2BT+142
+
3688#define kPlotStep kE2BT+143
+
3689#define kZPlotStep kE2BT+144
+
3690#define kLinRegtTest kE2BT+145
+
3691#define KMGT kE2BT+146 //VERT SPLIT
+
3692#define kSelectA kE2BT+147
+
3693#define kZFitA kE2BT+148
+
3694#define kE2BT_End kZFitA
+
3695
+
3696//More 2 Byte Keys
+
3697//------------------------------------
+
3698#define kE2BT2 0
+
3699#define kGDB1 kE2BT2
+
3700#define kGDB2 kE2BT2+1
+
3701#define kGDB3 kE2BT2+2
+
3702#define kY1 kE2BT2+3
+
3703#define kY2 kE2BT2+4
+
3704#define kY3 kE2BT2+5
+
3705#define kY4 kE2BT2+6
+
3706#define kY5 kE2BT2+7
+
3707#define kY6 kE2BT2+8
+
3708#define kY7 kE2BT2+9
+
3709#define kY8 kE2BT2+10
+
3710#define kY9 kE2BT2+11
+
3711#define kY0 kE2BT2+12
+
3712#define kX1T kE2BT2+13
+
3713#define kY1T kE2BT2+14
+
3714#define kX2T kE2BT2+15
+
3715#define kY2T kE2BT2+16
+
3716#define kX3T kE2BT2+17
+
3717#define kY3T kE2BT2+18
+
3718#define kX4T kE2BT2+19
+
3719#define kY4T kE2BT2+20
+
3720#define kX5T kE2BT2+21
+
3721#define kY5T kE2BT2+22
+
3722#define kX6T kE2BT2+23
+
3723#define kY6T kE2BT2+24
+
3724#define kR1 kE2BT2+25
+
3725#define kR2 kE2BT2+26
+
3726#define kR3 kE2BT2+27
+
3727#define kR4 kE2BT2+28
+
3728#define kR5 kE2BT2+29
+
3729#define kR6 kE2BT2+30
+
3730#define kGDB4 kE2BT2+31
+
3731#define kGDB5 kE2BT2+32
+
3732#define kGDB6 kE2BT2+33
+
3733#define kPic4 kE2BT2+34
+
3734#define kPic5 kE2BT2+35
+
3735#define kPic6 kE2BT2+36
+
3736#define kGDB7 kE2BT2+37
+
3737#define kGDB8 kE2BT2+38
+
3738#define kGDB9 kE2BT2+39
+
3739#define kGDB0 kE2BT2+40
+
3740#define kPic7 kE2BT2+41
+
3741#define kPic8 kE2BT2+42
+
3742#define kPic9 kE2BT2+43
+
3743#define kPic0 kE2BT2+44
+
3744#define kStatN kE2BT2+45
+
3745#define kXMean kE2BT2+46
+
3746#define kConj kE2BT2+47
+
3747#define kReal kE2BT2+48
+
3748#define kFAngle kE2BT2+49
+
3749#define kLCM kE2BT2+50
+
3750#define kGCD kE2BT2+51
+
3751#define kRandInt kE2BT2+52
+
3752#define kRandNorm kE2BT2+53
+
3753#define kToPolar kE2BT2+54
+
3754#define kToRect kE2BT2+55
+
3755#define kYMean kE2BT2+56
+
3756#define kStdX kE2BT2+57
+
3757#define kStdX1 kE2BT2+58
+
3758#define kw0 kE2BT2+59
+
3759#define kMatF kE2BT2+60
+
3760#define kMatG kE2BT2+61
+
3761#define kMatRH kE2BT2+62
+
3762#define kMatI kE2BT2+63
+
3763#define kMatJ kE2BT2+64
+
3764#define kYMean1 kE2BT2+65
+
3765#define kStdY kE2BT2+66
+
3766#define kStdY1 kE2BT2+67
+
3767#define kMatToLst kE2BT2+68
+
3768#define kLstToMat kE2BT2+69
+
3769#define kCumSum kE2BT2+70
+
3770#define kDeltaLst kE2BT2+71
+
3771#define kStdDev kE2BT2+72
+
3772#define kVariance kE2BT2+73
+
3773#define kLength kE2BT2+74
+
3774#define kEquToStrng kE2BT2+75
+
3775#define kStrngToEqu kE2BT2+76
+
3776#define kExpr kE2BT2+77
+
3777#define kSubStrng kE2BT2+78
+
3778#define kInStrng kE2BT2+79
+
3779#define kStr1 kE2BT2+80
+
3780#define kStr2 kE2BT2+81
+
3781#define kStr3 kE2BT2+82
+
3782#define kStr4 kE2BT2+83
+
3783#define kStr5 kE2BT2+84
+
3784#define kStr6 kE2BT2+85
+
3785#define kStr7 kE2BT2+86
+
3786#define kStr8 kE2BT2+87
+
3787#define kStr9 kE2BT2+88
+
3788#define kStr0 kE2BT2+89
+
3789#define kFinN kE2BT2+90
+
3790#define kFinI kE2BT2+91
+
3791#define kFinPV kE2BT2+92
+
3792#define kFinPMT kE2BT2+93
+
3793#define kFinFV kE2BT2+94
+
3794#define kFinPY kE2BT2+95
+
3795#define kFinCY kE2BT2+96
+
3796#define kFinFPMT kE2BT2+97
+
3797#define kFinFI kE2BT2+98
+
3798#define kFinFPV kE2BT2+99
+
3799#define kFinFN kE2BT2+100
+
3800#define kFinFFV kE2BT2+101
+
3801#define kFinNPV kE2BT2+102
+
3802#define kFinIRR kE2BT2+103
+
3803#define kFinBAL kE2BT2+104
+
3804#define kFinPRN kE2BT2+105
+
3805#define kFinINT kE2BT2+106
+
3806#define kSumX kE2BT2+107
+
3807#define kSumX2 kE2BT2+108
+
3808#define kFinToNom kE2BT2+109
+
3809#define kFinToEff kE2BT2+110
+
3810#define kFinDBD kE2BT2+111
+
3811#define kStatVP kE2BT2+112
+
3812#define kStatZ kE2BT2+113
+
3813#define kStatT kE2BT2+114
+
3814#define kStatChi kE2BT2+115
+
3815#define kStatF kE2BT2+116
+
3816#define kStatDF kE2BT2+117
+
3817#define kStatPhat kE2BT2+118
+
3818#define kStatPhat1 kE2BT2+119
+
3819#define kStatPhat2 kE2BT2+120
+
3820#define kStatMeanX1 kE2BT2+121
+
3821#define kStatMeanX2 kE2BT2+122
+
3822#define kStatStdX1 kE2BT2+123
+
3823#define kStatStdX2 kE2BT2+124
+
3824#define kStatStdXP kE2BT2+125
+
3825#define kStatN1 kE2BT2+126
+
3826#define kStatN2 kE2BT2+127
+
3827#define kStatLower kE2BT2+128
+
3828#define kStatUpper kE2BT2+129
+
3829#define kuw0 kE2BT2+130
+
3830#define kImag kE2BT2+131
+
3831#define kSumY kE2BT2+132
+
3832#define kXres kE2BT2+133
+
3833#define kStat_s kE2BT2+134
+
3834#define kSumY2 kE2BT2+135
+
3835#define kSumXY kE2BT2+136
+
3836#define kuXres kE2BT2+137
+
3837#define kModBox kE2BT2+138
+
3838#define kNormProb kE2BT2+139
+
3839#define kNormalPDF kE2BT2+140
+
3840#define kTPDF kE2BT2+141
+
3841#define kChiPDF kE2BT2+142
+
3842#define kFPDF kE2BT2+143
+
3843#define kMinY kE2BT2+144 //MinY
+
3844#define kRandBin kE2BT2+145
+
3845#define kRef kE2BT2+146
+
3846#define kRRef kE2BT2+147
+
3847#define kLRSqr kE2BT2+148
+
3848#define kBRSqr kE2BT2+149
+
3849#define kDiagOn kE2BT2+150
+
3850#define kDiagOff kE2BT2+151
+
3851#define kun1 kE2BT2+152 //FOR RCL USE WHEN GOTTEN FROM 82
+
3852#define kvn1 kE2BT2+153 //FOR RCL USE WHEN GOTTEN FROM 82
+
3853#define k83_00End kvn1 //end of original keys...
+
3854#define kArchive k83_00End + 1
+
3855#define kUnarchive k83_00End + 2
+
3856#define kAsm k83_00End + 3 //Asm(
+
3857#define kAsmPrgm k83_00End + 4 //AsmPrgm
+
3858#define kAsmComp k83_00End + 5 //AsmComp(
+
3859#define kcapAAcute k83_00End + 6
+
3860#define kcapAGrave k83_00End + 7
+
3861#define kcapACaret k83_00End + 8
+
3862#define kcapADier k83_00End + 9
+
3863#define kaAcute k83_00End + 10
+
3864#define kaGrave k83_00End + 11
+
3865#define kaCaret k83_00End + 12
+
3866#define kaDier k83_00End + 13
+
3867#define kcapEAcute k83_00End + 14
+
3868#define kcapEGrave k83_00End + 15
+
3869#define kcapECaret k83_00End + 16
+
3870#define kcapEDier k83_00End + 17
+
3871#define keAcute k83_00End + 18
+
3872#define keGrave k83_00End + 19
+
3873#define keCaret k83_00End + 20
+
3874#define keDier k83_00End + 21
+
3875#define kcapIAcute k83_00End + 22
+
3876#define kcapIGrave k83_00End + 23
+
3877#define kcapICaret k83_00End + 24
+
3878#define kcapIDier k83_00End + 25
+
3879#define kiAcute k83_00End + 26
+
3880#define kiGrave k83_00End + 27
+
3881#define kiCaret k83_00End + 28
+
3882#define kiDier k83_00End + 29
+
3883#define kcapOAcute k83_00End + 30
+
3884#define kcapOGrave k83_00End + 31
+
3885#define kcapOCaret k83_00End + 32
+
3886#define kcapODier k83_00End + 33
+
3887#define koAcute k83_00End + 34
+
3888#define koGrave k83_00End + 35
+
3889#define koCaret k83_00End + 36
+
3890#define koDier k83_00End + 37
+
3891#define kcapUAcute k83_00End + 38
+
3892#define kcapUGrave k83_00End + 39
+
3893#define kcapUCaret k83_00End + 40
+
3894#define kcapUDier k83_00End + 41
+
3895#define kuAcute k83_00End + 42
+
3896#define kuGrave k83_00End + 43
+
3897#define kuCaret k83_00End + 44
+
3898#define kuDier k83_00End + 45
+
3899#define kcapCCed k83_00End + 46
+
3900#define kcCed k83_00End + 47
+
3901#define kcapNTilde k83_00End + 48
+
3902#define knTilde k83_00End + 49
+
3903#define kaccent k83_00End + 50
+
3904#define kgrave k83_00End + 51
+
3905#define kdieresis k83_00End + 52
+
3906#define kquesDown k83_00End + 53
+
3907#define kexclamDown k83_00End + 54
+
3908#define kalpha k83_00End + 55
+
3909#define kbeta k83_00End + 56
+
3910#define kgamma k83_00End + 57
+
3911#define kcapDelta k83_00End + 58
+
3912#define kdelta k83_00End + 59
+
3913#define kepsilon k83_00End + 60
+
3914#define klambda k83_00End + 61
+
3915#define kmu k83_00End + 62
+
3916#define kpi2 k83_00End + 63
+
3917#define krho k83_00End + 64
+
3918#define kcapSigma k83_00End + 65
+
3919#define ksigma k83_00End + 66
+
3920#define ktau k83_00End + 67
+
3921#define kphi k83_00End + 68
+
3922#define kcapOmega k83_00End + 69
+
3923#define kphat k83_00End + 70
+
3924#define kchi2 k83_00End + 71
+
3925#define kstatF2 k83_00End + 72
+
3926#define kLa k83_00End + 73
+
3927#define kLb k83_00End + 74
+
3928#define kLc k83_00End + 75
+
3929#define kLd k83_00End + 76
+
3930#define kLe k83_00End + 77
+
3931#define kLf k83_00End + 78
+
3932#define kLg k83_00End + 79
+
3933#define kLh k83_00End + 80
+
3934#define kLi k83_00End + 81
+
3935#define kLj k83_00End + 82
+
3936#define kLk k83_00End + 83
+
3937#define kLl k83_00End + 84
+
3938#define kLm k83_00End + 85
+
3939#define kLsmalln k83_00End + 86
+
3940#define kLo k83_00End + 87
+
3941#define kLp k83_00End + 88
+
3942#define kLq k83_00End + 89
+
3943#define kLsmallr k83_00End + 90
+
3944#define kLs k83_00End + 91
+
3945#define kLt k83_00End + 92
+
3946#define kLu k83_00End + 93
+
3947#define kLv k83_00End + 94
+
3948#define kLw k83_00End + 95
+
3949#define kLx k83_00End + 96
+
3950#define kLy k83_00End + 97
+
3951#define kLz k83_00End + 98
+
3952#define kGarbageC k83_00End + 99 //GarbageCollect
+
3953#define kE2BT2_End kGarbageC
+
3954
+
3955//TI-83 Plus Context Equates
+
3956//---------------------------------------------
+
3957#define cxCmd kQuit //home screen
+
3958#define cxMatEdit kMatrixEd //matrix editor
+
3959#define cxPrgmEdit kPrgmEd //program editor
+
3960#define cxEquEdit kYequ //equation editor
+
3961#define cxGrRange kWindow //graph range editor
+
3962#define cxGrZfact kZFactEd //graph zoom factors editor
+
3963#define cxGraph kGraph //graph mode
+
3964#define cxStatEdit kStatEd //statistics list editor
+
3965#define cxPrgmInput kPrgmInput //programmed input
+
3966#define cxError kError //error handler
+
3967#define cxLinkIO kLinkIO //LINK I/O interface
+
3968#define cxMem kResetMem //reset memory
+
3969#define cxDefMem kResetDef //reset default
+
3970#define cxRAMApp kChkRAM //RAM usage screen
+
3971#define cxMode kMode //mode settings screen
+
3972#define cxErase kDelMem //memory erase
+
3973#define cxPrgmCreate kPrgmCr //PROGRAM CREATE
+
3974#define cxTableEditor kTable //TABLE EDITOR
+
3975#define cxTableSet kTblSet //TABLE SET UP
+
3976#define cxStatPlot kStatP //STAT PLOTS
+
3977#define cxInfStat kInfStat //Inferential Statistic
+
3978#define cxFormat kFormat //FORMAT CONTEXT
+
3979#define cxSolveTVM kSolveTVM //Solve TVM
+
3980#define cxSolveRoot kSolveRoot //Solve Root
+
3981#define lastOldApp kExtApps //external applications
+
3982#define cxextapps kExtApps
+
3983#define cxNewApps kNewApps //new cerberus applications
+
3984#define cxGroup cxNewApps+0 //1st new app.
+
3985#define cxUnGroup cxNewApps+1 //2nd new app.
+
3986#define lastNewApp cxUnGroup //last new app for this ver
+
3987
+
3988//Scan Code Equates
+
3989//-------------------------------
+
3990#define skDown 0x01
+
3991#define skLeft 0x02
+
3992#define skRight 0x03
+
3993#define skUp 0x04
+
3994#define skEnter 0x09
+
3995#define skAdd 0x0A
+
3996#define skSub 0x0B
+
3997#define skMul 0x0C
+
3998#define skDiv 0x0D
+
3999#define skPower 0x0E
+
4000#define skClear 0x0F
+
4001#define skChs 0x11
+
4002#define sk3 0x12
+
4003#define sk6 0x13
+
4004#define sk9 0x14
+
4005#define skRParen 0x15
+
4006#define skTan 0x16
+
4007#define skVars 0x17
+
4008#define skDecPnt 0x19
+
4009#define sk2 0x1A
+
4010#define sk5 0x1B
+
4011#define sk8 0x1C
+
4012#define skLParen 0x1D
+
4013#define skCos 0x1E
+
4014#define skPrgm 0x1F
+
4015#define skStat 0x20
+
4016#define sk0 0x21
+
4017#define sk1 0x22
+
4018#define sk4 0x23
+
4019#define sk7 0x24
+
4020#define skComma 0x25
+
4021#define skSin 0x26
+
4022#define skMatrix 0x27
+
4023#define skGraphvar 0x28
+
4024#define skStore 0x2A
+
4025#define skLn 0x2B
+
4026#define skLog 0x2C
+
4027#define skSquare 0x2D
+
4028#define skRecip 0x2E
+
4029#define skMath 0x2F
+
4030#define skAlpha 0x30
+
4031#define skGraph 0x31
+
4032#define skTrace 0x32
+
4033#define skZoom 0x33
+
4034#define skWindow 0x34
+
4035#define skYEqu 0x35
+
4036#define sk2nd 0x36
+
4037#define skMode 0x37
+
4038#define skDel 0x38
+
4039
+
4040//Tokens
+
4041//----------------------------------------------------
+
4042#define EOSSTART 0
+
4043
+
4044//DISPLAY CONVERSIONS COME IMMEDIATELY BEFORE 'TSTORE'
+
4045//
+
4046#define DCONV 0x01
+
4047//
+
4048#define tToDMS DCONV //01h
+
4049#define tToDEC DCONV+1 //02h
+
4050#define tToAbc DCONV+2 //03h > A b/c
+
4051//
+
4052#define tStore DCONV+3 //04h Lstore 01
+
4053//
+
4054#define tBoxPlot 0x05
+
4055//
+
4056#define BRACKS 0x06
+
4057//
+
4058#define tLBrack BRACKS //06h '['
+
4059#define tRBrack BRACKS+1 //07h ']'
+
4060#define tLBrace BRACKS+2 //08h '{'
+
4061#define tRBrace BRACKS+3 //09h '}'
+
4062//
+
4063#define tPOST1 BRACKS+4
+
4064//
+
4065#define tFromRad tPOST1 //0Ah Lradian
+
4066#define tFromDeg tPOST1+1 //0Bh Ldegree
+
4067#define tRecip tPOST1+2 //0Ch Linverse
+
4068#define tSqr tPOST1+3 //0Dh Lsquare
+
4069#define tTrnspos tPOST1+4 //0Eh Ltranspose
+
4070#define tCube tPOST1+5 //0Fh '^3'
+
4071//
+
4072#define tLParen 0x10 //10h '('
+
4073#define tRParen 0x11 //11h ')'
+
4074//
+
4075#define IMUN 0x12
+
4076//
+
4077#define tRound IMUN //12h 'round'
+
4078#define tPxTst IMUN+1 //13h 'PXL-TEST'
+
4079#define tAug IMUN+2 //14h 'aug'
+
4080#define tRowSwap IMUN+3 //15h 'rSwap'
+
4081#define tRowPlus IMUN+4 //16h 'rAdd'
+
4082#define tmRow IMUN+5 //17h 'multR'
+
4083#define tmRowPlus IMUN+6 //18h 'mRAdd'
+
4084#define tMax IMUN+7 //19h 'max'
+
4085#define tMin IMUN+8 //1Ah 'min'
+
4086#define tRToPr IMUN+9 //1Bh 'R>Pr
+
4087#define tRToPo IMUN+10 //1Ch 'R>Po
+
4088#define tPToRx IMUN+11 //1Dh 'P>Rx
+
4089#define tPToRy IMUN+12 //1Eh 'P>Ry
+
4090#define tMedian IMUN+13 //1Fh 'MEDIAN
+
4091#define tRandM IMUN+14 //20h 'randM'
+
4092#define tMean IMUN+15 //21h
+
4093#define tRoot IMUN+16 //22h 'ROOT'
+
4094#define tSeries IMUN+17 //23h 'seq'
+
4095#define tFnInt IMUN+18 //24h 'fnInt'
+
4096#define tNDeriv IMUN+19 //25h 'fnIr'
+
4097#define tEvalF IMUN+20 //26h
+
4098#define tFmin IMUN+21 //27h
+
4099#define tFmax IMUN+22 //28h
+
4100//
+
4101#define tEOSEL IMUN+23
+
4102//
+
4103#define tSpace tEOSEL //29h ' '
+
4104#define tString tEOSEL+1 //2Ah '"'
+
4105#define tComma tEOSEL+2 //2Bh ','
+
4106//
+
4107#define tii 0x2C //i
+
4108
+
4109//Postfix Functions
+
4110//-----------------------------------------
+
4111#define tPost 0x2D
+
4112//
+
4113#define tFact tPost //2Dh '!'
+
4114//
+
4115#define tCubicR 0x2E
+
4116#define tQuartR 0x2F
+
4117
+
4118//Number Tokens
+
4119//---------------------------------------
+
4120#define NUMS 0x30
+
4121//
+
4122#define t0 NUMS //30h
+
4123#define t1 NUMS+1 //31h
+
4124#define t2 NUMS+2 //32h
+
4125#define t3 NUMS+3 //33h
+
4126#define t4 NUMS+4 //34h
+
4127#define t5 NUMS+5 //35h
+
4128#define t6 NUMS+6 //36h
+
4129#define t7 NUMS+7 //37h
+
4130#define t8 NUMS+8 //38h
+
4131#define t9 NUMS+9 //39h
+
4132#define tDecPt NUMS+10 //3Ah
+
4133#define tee NUMS+11 //3Bh
+
4134
+
4135//Binary OP
+
4136//-------------------------------------------
+
4137#define tOr 0x3C //3Ch '_or_'
+
4138#define tXor 0x3D //3Dh
+
4139//
+
4140#define tColon 0x3E //3Eh ':'
+
4141#define tEnter 0x3F //3Fh Lenter
+
4142//
+
4143#define tAnd 0x40 //40h '_and_'
+
4144
+
4145//Letter Tokens
+
4146//--------------------------------------
+
4147#define LET 0x41
+
4148#define tA LET //41h
+
4149#define tB LET+1 //42h
+
4150#define tC LET+2 //43h
+
4151#define tD LET+3 //44h
+
4152#define tE LET+4 //45h
+
4153#define tF LET+5 //46h
+
4154#define tG LET+6 //47h
+
4155#define tH LET+7 //48h
+
4156#define tI LET+8 //49h
+
4157#define tJ LET+9 //4Ah
+
4158#define tK LET+10 //4Bh
+
4159#define tL LET+11 //4Ch
+
4160#define tM LET+12 //4Dh
+
4161#define tN LET+13 //4Eh
+
4162#define tO LET+14 //4Fh
+
4163#define tP LET+15 //50h
+
4164#define tQ LET+16 //51h
+
4165#define tR LET+17 //52h
+
4166#define tS LET+18 //53h
+
4167#define tT LET+19 //54h
+
4168#define tU LET+20 //55h
+
4169#define tV LET+21 //56h
+
4170#define tW LET+22 //57h
+
4171#define tX LET+23 //58h
+
4172#define tY LET+24 //59h
+
4173#define tZ LET+25 //5Ah
+
4174#define tTheta LET+26 //5Bh
+
4175
+
4176//These Var Tokens Are 1st Of A Double Token
+
4177//------------------------------------------
+
4178
+
4179#define vToks LET+27
+
4180
+
4181//User Matrix Token, 2nd Token Needed For Name
+
4182//
+
4183#define tVarMat vToks //5Ch
+
4184//
+
4185//User List Token, 2nd Token Needed For Name
+
4186//
+
4187#define tVarLst vToks+1 //5Dh
+
4188//
+
4189//User Equation Token, 2nd Token Needed For Name
+
4190//
+
4191#define tVarEqu vToks+2 //5Eh
+
4192#define tProg vToks+3 //5Fh
+
4193//
+
4194//User Pict Token, 2nd Token Needed For Name
+
4195//
+
4196#define tVarPict vToks+4 //60h
+
4197//
+
4198//User GDB Token, 2nd Token Needed For Name
+
4199//
+
4200#define tVarGDB vToks+5 //61h
+
4201#define tVarOut vToks+6 //62h
+
4202#define tVarSys vToks+7 //63h
+
4203
+
4204//Mode Setting Commands
+
4205//-------------------------------------------------
+
4206#define MODESA vToks+8 //64h
+
4207#define tRad MODESA //64h 'Radian'
+
4208#define tDeg MODESA+1 //65h 'Degree'
+
4209#define tNormF MODESA+2 //66h 'Normal'
+
4210#define tSci MODESA+3 //67h 'Sci'
+
4211#define tEng MODESA+4 //68h 'Eng'
+
4212#define tFloat MODESA+5 //69h 'Float'
+
4213#define CMPS 0x6A
+
4214#define tEQ CMPS //6Ah '=='
+
4215#define tLT CMPS+1 //6Bh '<'
+
4216#define tGT CMPS+2 //6Ch '>'
+
4217#define tLE CMPS+3 //6Dh LLE
+
4218#define tGE CMPS+4 //6Eh LGE
+
4219#define tNE CMPS+5 //6Fh LNE
+
4220
+
4221//Binary OP
+
4222//---------------------------------------
+
4223#define tAdd 0x70 //70h '+'
+
4224#define tSub 0x71 //71h '-'
+
4225#define tAns 0x72 //72h
+
4226
+
4227//Mode Setting Commands
+
4228//-------------------------------------------------------
+
4229#define MODES 0x73
+
4230#define tFix MODES //73h 'Fix_'
+
4231#define tSplitOn MODES+1 //74h
+
4232#define tFullScreen MODES+2 //75h
+
4233#define tStndrd MODES+3 //76h 'Func'
+
4234#define tParam MODES+4 //77h 'Param'
+
4235#define tPolar MODES+5 //78h 'Pol'
+
4236#define tSeqG MODES+6 //79h
+
4237#define tAFillOn MODES+7 //7Ah 'AUTO FILL ON'
+
4238#define tAFillOff MODES+8 //7Bh
+
4239#define tACalcOn MODES+9 //7Ch
+
4240#define tACalcOff MODES+10 //7Dh 'AutoFill OFF'
+
4241
+
4242//Graph Format Tokens Are 2 Byte Tokens
+
4243//----------------------------------------
+
4244#define tGFormat MODES+11 //7Eh
+
4245#define tBoxIcon 0x7F
+
4246#define tCrossIcon 0x80
+
4247#define tDotIcon 0x81
+
4248
+
4249//(More) Binary OP
+
4250//---------------------------------------
+
4251#define tMul 0x82 //82h '*'
+
4252#define tDiv 0x83 //83h '/'
+
4253
+
4254//Some Graph Commands
+
4255//------------------------------------------------------
+
4256#define GRCMDS 0x84
+
4257#define tTrace GRCMDS // 84h 'Trace'
+
4258#define tClDrw GRCMDS+1 // 85h 'ClDrw'
+
4259#define tZoomStd GRCMDS+2 // 86h 'ZStd'
+
4260#define tZoomtrg GRCMDS+3 // 87h 'Ztrg'
+
4261#define tZoomBox GRCMDS+4 // 88h 'ZBOX'
+
4262#define tZoomIn GRCMDS+5 // 89h 'ZIn'
+
4263#define tZoomOut GRCMDS+6 // 8Ah 'ZOut'
+
4264#define tZoomSqr GRCMDS+7 // 8Bh 'ZSqr'
+
4265#define tZoomInt GRCMDS+8 // 8Ch 'ZInt'
+
4266#define tZoomPrev GRCMDS+9 // 8Dh 'ZPrev'
+
4267#define tZoomDec GRCMDS+10 // 8Eh 'ZDecm'
+
4268#define tZoomStat GRCMDS+11 // 8Fh 'ZStat
+
4269#define tUsrZm GRCMDS+12 // 90h 'ZRcl'
+
4270#define tPrtScrn GRCMDS+13 // 91h 'PrtScrn'
+
4271#define tZoomSto GRCMDS+14 // 92h ZOOM STORE
+
4272#define tText GRCMDS+15 // 93h
+
4273
+
4274//Binary OP (Combination & Permutation)
+
4275//-------------------------------------------------
+
4276#define tnPr GRCMDS+16 //94h '_nPr_'
+
4277#define tnCr GRCMDS+17 //95h '_nCr_'
+
4278
+
4279//More Graph Commands
+
4280//--------------------------------------------------
+
4281#define tYOn GRCMDS+18 //96h 'FnOn_'
+
4282#define tYOff GRCMDS+19 //97h 'FnOff_'
+
4283#define tStPic GRCMDS+20 //98h 'StPic_'
+
4284#define tRcPic GRCMDS+21 //99h 'RcPic_'
+
4285#define tStoDB GRCMDS+22 //9Ah 'StGDB_'
+
4286#define tRclDB GRCMDS+23 //9Bh 'RcGDB_'
+
4287#define tLine GRCMDS+24 //9Ch 'Line'
+
4288#define tVert GRCMDS+25 //9Dh 'Vert_'
+
4289#define tPtOn GRCMDS+26 //9Eh 'PtOn'
+
4290#define tPtOff GRCMDS+27 //9Fh 'PtOff'
+
4291
+
4292//Token A0 Cannot Be An EOS Function Since Low MULT=A0 Already
+
4293//------------------------------------------------------------
+
4294#define tPtChg GRCMDS+28 //A0h 'PtChg'
+
4295#define tPXOn GRCMDS+29 //A1h
+
4296#define tPXOff GRCMDS+30 //A2h
+
4297#define tPXChg GRCMDS+31 //A3h
+
4298#define tShade GRCMDS+32 //A4h 'Shade'
+
4299#define tCircl GRCMDS+33 //A5h 'Circl'
+
4300#define tHorz GRCMDS+34 //A6h 'HORIZONTAL'
+
4301#define tTanLn GRCMDS+35 //A7h 'TanLn'
+
4302#define tDrInv GRCMDS+36 //A8h 'DrInv_'
+
4303#define tDrawF GRCMDS+37 //A9h 'DrawF_'
+
4304#define tVarStrng 0x0AA
+
4305
+
4306//Functions with No Arguments
+
4307//--------------------------------------------------
+
4308#define NOARG 0x0AB
+
4309#define tRand NOARG //ABh 'rand'
+
4310#define tPi NOARG+1 //ACh Lpi
+
4311#define tGetKey NOARG+2 //ADh 'getKy'
+
4312#define tAPost tGetKey+1 //APOSTROPHY
+
4313#define tQuest tAPost+1 //QUESTION MARK
+
4314#define UNARY tQuest+1 //B0h
+
4315#define tChs UNARY //B0h
+
4316#define tInt UNARY+1 //B1h
+
4317#define tAbs UNARY+2 //B2h
+
4318#define tDet UNARY+3 //B3h
+
4319#define tIdent UNARY+4 //B4h
+
4320#define tDim UNARY+5 //B5h
+
4321#define tSum UNARY+6 //B6h
+
4322#define tProd UNARY+7 //B7h
+
4323#define tNot UNARY+8 //B8h
+
4324#define tIPart UNARY+9 //B9h
+
4325#define tFPart UNARY+10 //BAh
+
4326
+
4327//New 2 Byte Tokens
+
4328//------------------------------------------
+
4329#define t2ByteTok 0x0BB
+
4330#define UNARYLR UNARY+12
+
4331#define tSqrt UNARYLR //BCh
+
4332#define tCubRt UNARYLR+1 //BDh
+
4333#define tLn UNARYLR+2 //BEh
+
4334#define tExp UNARYLR+3 //BFh
+
4335#define tLog UNARYLR+4 //C0h
+
4336#define tALog UNARYLR+5 //C1h
+
4337#define tSin UNARYLR+6 //C2h
+
4338#define tASin UNARYLR+7 //C3h
+
4339#define tCos UNARYLR+8 //C4h
+
4340#define tACos UNARYLR+9 //C5h
+
4341#define tTan UNARYLR+10 //C6h
+
4342#define tATan UNARYLR+11 //C7h
+
4343#define tSinH UNARYLR+12 //C8h
+
4344#define tASinH UNARYLR+13 //C9h
+
4345#define tCoshH UNARYLR+14 //CAh
+
4346#define tACosH UNARYLR+15 //CBh
+
4347#define tTanH UNARYLR+16 //CCh
+
4348#define tATanH UNARYLR+17 //CDh
+
4349
+
4350//Some Programming Commands
+
4351//------------------------------------------------------
+
4352#define PROGTOK UNARYLR+18
+
4353#define tIf PROGTOK //CEh
+
4354#define tThen PROGTOK+1 //CFh
+
4355#define tElse PROGTOK+2 //D0h
+
4356#define tWhile PROGTOK+3 //D1h
+
4357#define tRepeat PROGTOK+4 //D2h
+
4358#define tFor PROGTOK+5 //D3h
+
4359#define tEnd PROGTOK+6 //D4h
+
4360#define tReturn PROGTOK+7 //D5h
+
4361#define tLbl PROGTOK+8 //D6h 'Lbl_'
+
4362#define tGoto PROGTOK+9 //D7h 'Goto_'
+
4363#define tPause PROGTOK+10 //D8h 'Pause_'
+
4364#define tStop PROGTOK+11 //D9h 'Stop'
+
4365#define tISG PROGTOK+12 //DAh 'IS>'
+
4366#define tDSL PROGTOK+13 //DBh 'DS<'
+
4367#define tInput PROGTOK+14 //DCh 'Input_'
+
4368#define tPrompt PROGTOK+15 //DDh 'Prompt_'
+
4369#define tDisp PROGTOK+16 //DEh 'Disp_'
+
4370#define tDispG PROGTOK+17 //DFh 'DispG'
+
4371#define tOutput PROGTOK+18 //E0h 'Outpt'
+
4372#define tClLCD PROGTOK+19 //E1h 'ClLCD'
+
4373#define tConst PROGTOK+20 //E2h 'Fill'
+
4374#define tSortA PROGTOK+21 //E3h 'sortA_'
+
4375#define tSortD PROGTOK+22 //E4h 'sortD_'
+
4376#define tDispTab PROGTOK+23 //E5h 'Disp Table
+
4377#define tMenu PROGTOK+24 //E6h 'Menu'
+
4378#define tSendMBL PROGTOK+25 //E7h 'SEND'
+
4379#define tGetMBL PROGTOK+26 //E8h 'GET'
+
4380
+
4381//Stat Plot Commands
+
4382//------------------------------------------------------
+
4383#define statPCmd PROGTOK+27
+
4384#define tPlotOn statPCmd //E9h ' PLOTSON'
+
4385#define tPlotOff statPCmd+1 //EAh ' PLOTSOFF
+
4386#define tListName 0x0EB //LIST DESIGNATOR
+
4387#define tPlot1 0x0EC
+
4388#define tPlot2 0x0ED
+
4389#define tPlot3 0x0EE
+
4390#define tUnused01 0x0EF //available?
+
4391#define tPower 0x0F0 //'^'
+
4392#define tXRoot 0x0F1 //LsupX,Lroot
+
4393#define STATCMD 0x0F2
+
4394#define tOneVar STATCMD //F2h 'OneVar_'
+
4395#define tTwoVar STATCMD+1 //F3h
+
4396#define tLR STATCMD+2 //F4h 'LinR(A+BX
+
4397#define tLRExp STATCMD+3 //F5h 'ExpR_'
+
4398#define tLRLn STATCMD+4 //F6h 'LnR_'
+
4399#define tLRPwr STATCMD+5 //F7h 'PwrR_'
+
4400#define tMedMed STATCMD+6 //F8h
+
4401#define tQuad STATCMD+7 //F9h
+
4402#define tClrLst STATCMD+8 //FAh 'CLEAR LIST
+
4403#define tClrTbl STATCMD+9 //FBh CLEAR TABLE
+
4404#define tHist STATCMD+10 //FCh 'Hist_'
+
4405#define txyLine STATCMD+11 //FDh 'xyline_'
+
4406#define tScatter STATCMD+12 //FEh 'Scatter_'
+
4407#define tLR1 STATCMD+13 //FFh 'LINR(AX+B
+
4408
+
4409//2nd Half Of Graph Format Tokens
+
4410//----------------------------------------------
+
4411// Format settings commands
+
4412//
+
4413#define GFMT 0
+
4414#define tSeq GFMT // 'SeqG'
+
4415#define tSimulG GFMT+1 // 'SimulG'
+
4416#define tPolarG GFMT+2 // 'PolarGC'
+
4417#define tRectG GFMT+3 // 'RectGC'
+
4418#define tCoordOn GFMT+4 // 'CoordOn'
+
4419#define tCoordOff GFMT+5 // 'CoordOff'
+
4420#define tDrawLine GFMT+6 // 'DrawLine'
+
4421#define tDrawDot GFMT+7 // 'DrawDot'
+
4422#define tAxisOn GFMT+8 // 'AxesOn'
+
4423#define tAxisOff GFMT+9 // 'AxesOff'
+
4424#define tGridOn GFMT+10 // 'GridOn'
+
4425#define tGridOff GFMT+11 // 'GridOff'
+
4426#define tLblOn GFMT+12 // 'LabelOn'
+
4427#define tLblOff GFMT+13 // 'LabelOff'
+
4428#define tWebOn GFMT+14 // 'WebOn'
+
4429#define tWebOff GFMT+15 // 'WebOFF'
+
4430#define tuv GFMT+16 // U vs V
+
4431#define tvw GFMT+17 // V vs W
+
4432#define tuw GFMT+18 // U vs W
+
4433
+
4434//2nd Half Of User Matrix Tokens
+
4435//-------------------------------------
+
4436#define tMatA 0x00 //MAT A
+
4437#define tMatB 0x01 //MAT B
+
4438#define tMatC 0x02 //MAT C
+
4439#define tMatD 0x03 //MAT D
+
4440#define tMatE 0x04 //MAT E
+
4441#define tMatF 0x05 //MAT F
+
4442#define tMatG 0x06 //MAT G
+
4443#define tMatH 0x07 //MAT H
+
4444#define tMatI 0x08 //MAT I
+
4445#define tMatJ 0x09 //MAT J
+
4446
+
4447//2nd Half Of User List Tokens
+
4448//--------------------------------------
+
4449#define tL1 0x00 //LIST 1
+
4450#define tL2 0x01 //LIST 2
+
4451#define tL3 0x02 //LIST 3
+
4452#define tL4 0x03 //LIST 4
+
4453#define tL5 0x04 //LIST 5
+
4454#define tL6 0x05 //LIST 6
+
4455
+
4456//2nd Half Of User Equation Tokens
+
4457//----------------------------------
+
4458// "Y" EQUATIONS HAVE BIT 4 SET
+
4459//
+
4460#define tY1 0x10 //Y1
+
4461#define tY2 0x11 //Y2
+
4462#define tY3 0x12 //Y3
+
4463#define tY4 0x13 //Y4
+
4464#define tY5 0x14 //Y5
+
4465#define tY6 0x15 //Y6
+
4466#define tY7 0x16 //Y7
+
4467#define tY8 0x17 //Y8
+
4468#define tY9 0x18 //Y9
+
4469#define tY0 0x19 //Y0
+
4470
+
4471//Param Equations Have Bit 5 Set
+
4472//-----------------------------------
+
4473#define tX1T 0x20 //X1t
+
4474#define tY1T 0x21 //Y1t
+
4475#define tX2T 0x22 //X2t
+
4476#define tY2T 0x23 //Y2t
+
4477#define tX3T 0x24 //X3t
+
4478#define tY3T 0x25 //Y3t
+
4479#define tX4T 0x26 //X4t
+
4480#define tY4T 0x27 //Y4t
+
4481#define tX5T 0x28 //X5t
+
4482#define tY5T 0x29 //Y5t
+
4483#define tX6T 0x2A //X6t
+
4484#define tY6T 0x2B //Y6t
+
4485
+
4486//Polar Equations Have Bit 6 Set
+
4487//----------------------------------
+
4488#define tR1 0x40 //R1
+
4489#define tR2 0x41 //R2
+
4490#define tR3 0x42 //R3
+
4491#define tR4 0x43 //R4
+
4492#define tR5 0x44 //R5
+
4493#define tR6 0x45 //R6
+
4494
+
4495//Recursion Equations Have Bit 7 Set
+
4496//----------------------------------
+
4497#define tun 0x80 //Un
+
4498#define tvn 0x81 //Vn
+
4499#define twn 0x82 //Wn
+
4500
+
4501//2nd Half Of User Picture Tokens
+
4502//------------------------------------
+
4503#define tPic1 0x00 //PIC1
+
4504#define tPic2 0x01 //PIC2
+
4505#define tPic3 0x02 //PIC3
+
4506#define tPic4 0x03 //PIC4
+
4507#define tPic5 0x04 //PIC5
+
4508#define tPic6 0x05 //PIC6
+
4509#define tPic7 0x06 //PIC7
+
4510#define tPic8 0x07 //PIC8
+
4511#define tPic9 0x08 //PIC9
+
4512#define tPic0 0x09 //PIC0
+
4513
+
4514//2nd Half Of User Graph Database Tokens
+
4515//--------------------------------------
+
4516#define tGDB1 0x00 //GDB1
+
4517#define tGDB2 0x01 //GDB2
+
4518#define tGDB3 0x02 //GDB3
+
4519#define tGDB4 0x03 //GDB4
+
4520#define tGDB5 0x04 //GDB5
+
4521#define tGDB6 0x05 //GDB6
+
4522#define tGDB7 0x06 //GDB7
+
4523#define tGDB8 0x07 //GDB8
+
4524#define tGDB9 0x08 //GDB9
+
4525#define tGDB0 0x09 //GDB0
+
4526
+
4527//2nd Half Of String Vars
+
4528//------------------------------
+
4529#define tStr1 0x00
+
4530#define tStr2 0x01
+
4531#define tStr3 0x02
+
4532#define tStr4 0x03
+
4533#define tStr5 0x04
+
4534#define tStr6 0x05
+
4535#define tStr7 0x06
+
4536#define tStr8 0x07
+
4537#define tStr9 0x08
+
4538#define tStr0 0x09
+
4539
+
4540//2nd Half Of System Output Only Variables
+
4541//-----------------------------------------------------------------
+
4542//OPEN equ 00h
+
4543#define tRegEq 0x01 //REGRESSION EQUATION
+
4544#define tStatN 0x02 //STATISTICS N
+
4545#define tXMean 0x03 //X MEAN
+
4546#define tSumX 0x04 //SUM(X)
+
4547#define tSumXSqr 0x05 //SUM(X^2)
+
4548#define tStdX 0x06 //STANDARD DEV X
+
4549#define tStdPX 0x07 //STANDARD DEV POP X
+
4550#define tMinX 0x08 //Min X VALUE
+
4551#define tMaxX 0x09 //Max X VALUE
+
4552#define tMinY 0x0A //Min Y VALUE
+
4553#define tMaxY 0x0B //Max Y VALUE
+
4554#define tYmean 0x0C //Y MEAN
+
4555#define tSumY 0x0D //SUM(Y)
+
4556#define tSumYSqr 0x0E //SUM(Y^2)
+
4557#define tStdY 0x0F //STANDARD DEV Y
+
4558#define tStdPY 0x10 //STANDARD DEV POP Y
+
4559#define tSumXY 0x11 //SUM(XY)
+
4560#define tCorr 0x12 //CORRELATION
+
4561#define tMedX 0x13 //MED(X)
+
4562#define tQ1 0x14 //1ST QUADRANT OF X
+
4563#define tQ3 0x15 //3RD QUADRANT OF X
+
4564#define tQuadA 0x16 //1ST TERM OF QUAD POLY REG/ Y-INT
+
4565#define tQuadB 0x17 //2ND TERM OF QUAD POLY REG/ SLOPE
+
4566#define tQuadC 0x18 //3RD TERM OF QUAD POLY REG
+
4567#define tCubeD 0x19 //4TH TERM OF CUBIC POLY REG
+
4568#define tQuartE 0x1A //5TH TERM OF QUART POLY REG
+
4569#define tMedX1 0x1B //x1 FOR MED-MED
+
4570#define tMedX2 0x1C //x2 FOR MED-MED
+
4571#define tMedX3 0x1D //x3 FOR MED-MED
+
4572#define tMedY1 0x1E //y1 FOR MED-MED
+
4573#define tMedY2 0x1F //y2 FOR MED-MED
+
4574#define tMedY3 0x20 //y3 FOR MED-MED
+
4575#define tRecurn 0x21 //RECURSION N
+
4576#define tStatP 0x22
+
4577#define tStatZ 0x23
+
4578#define tStatT 0x24
+
4579#define tStatChi 0x25
+
4580#define tStatF 0x26
+
4581#define tStatDF 0x27
+
4582#define tStatPhat 0x28
+
4583#define tStatPhat1 0x29
+
4584#define tStatPhat2 0x2A
+
4585#define tStatMeanX1 0x2B
+
4586#define tStatStdX1 0x2C
+
4587#define tStatN1 0x2D
+
4588#define tStatMeanX2 0x2E
+
4589#define tStatStdX2 0x2F
+
4590#define tStatN2 0x30
+
4591#define tStatStdXP 0x31
+
4592#define tStatLower 0x32
+
4593#define tStatUpper 0x33
+
4594#define tStat_s 0x34
+
4595#define tLRSqr 0x35 //r^2
+
4596#define tBRSqr 0x36 //R^2
+
4597
+
4598//These next tokens are only used to access the data
+
4599//they are display only and the user cannot access them at all
+
4600//------------------------------------------------------------
+
4601#define tF_DF 0x37 //ANOFAV FACTOR DF
+
4602#define tF_SS 0x38 //ANOFAV FACTOR SS
+
4603#define tF_MS 0x39 //ANOFAV FACTOR MS
+
4604#define tE_DF 0x3A //ANOFAV ERROR DF
+
4605#define tE_SS 0x3B //ANOFAV ERROR SS
+
4606#define tE_MS 0x3C //ANOFAV ERROR MS
+
4607
+
4608//2nd Half Of System Input/Output Variables
+
4609//------------------------------------------------
+
4610// SYSTEM VARIABLE EQUATES
+
4611//
+
4612#define tuXscl 0
+
4613#define tuYscl 1
+
4614#define tXscl 2
+
4615#define tYscl 3
+
4616#define tRecuru0 4 //U 1ST INITIAL COND
+
4617#define tRecurv0 5 //V 1ST INITIAL COND
+
4618#define tun1 6 //U(N-1); NOT USED
+
4619#define tvn1 7 //V(N-1); NOT USED
+
4620#define tuRecuru0 8 //
+
4621#define tuRecurv0 9 //
+
4622#define tXmin 0x0A
+
4623#define tXmax 0x0B
+
4624#define tYmin 0x0C
+
4625#define tYmax 0x0D
+
4626#define tTmin 0x0E
+
4627#define tTmax 0x0F
+
4628#define tThetaMin 0x10
+
4629#define tThetaMax 0x11
+
4630#define tuXmin 0x12
+
4631#define tuXmax 0x13
+
4632#define tuYmin 0x14
+
4633#define tuYmax 0x15
+
4634#define tuThetMin 0x16
+
4635#define tuThetMax 0x17
+
4636#define tuTmin 0x18
+
4637#define tuTmax 0x19
+
4638#define tTblMin 0x1A
+
4639#define tPlotStart 0x1B
+
4640#define tuPlotStart 0x1C
+
4641#define tnMax 0x1D
+
4642#define tunMax 0x1E
+
4643#define tnMin 0x1F
+
4644#define tunMin 0x20
+
4645#define tTblStep 0x21
+
4646#define tTStep 0x22
+
4647#define tThetaStep 0x23
+
4648#define tuTStep 0x24
+
4649#define tuThetStep 0x25
+
4650#define tDeltaX 0x26
+
4651#define tDeltaY 0x27
+
4652#define tXFact 0x28
+
4653#define tYFact 0x29
+
4654#define tTblInput 0x2A
+
4655#define tFinN 0x2B
+
4656#define tFinI 0x2C
+
4657#define tFinPV 0x2D
+
4658#define tFinPMT 0x2E
+
4659#define tFinFV 0x2F
+
4660#define tFinPY 0x30
+
4661#define tFinCY 0x31
+
4662#define tRecurw0 0x32 //w0(1)
+
4663#define tuRecurw0 0x33
+
4664#define tPlotStep 0x34
+
4665#define tuPlotStep 0x35
+
4666#define tXres 0x36
+
4667#define tuXres 0x37
+
4668#define tRecuru02 0x38 //u0(2)
+
4669#define tuRecuru02 0x39
+
4670#define tRecurv02 0x3C //v0(2)
+
4671#define tuRecurv02 0x3D
+
4672#define tRecurw02 0x3E //w0(2)
+
4673#define tuRecurw02 0x3F
+
4674
+
4675//2nd Byte Of t2ByteTok Tokens
+
4676//------------------------------
+
4677#define tFinNPV 0x00
+
4678#define tFinIRR 0x01
+
4679#define tFinBAL 0x02
+
4680#define tFinPRN 0x03
+
4681#define tFinINT 0x04
+
4682#define tFinToNom 0x05
+
4683#define tFinToEff 0x06
+
4684#define tFinDBD 0x07
+
4685#define tLCM 0x08
+
4686#define tGCD 0x09
+
4687#define tRandInt 0x0A
+
4688#define tRandBin 0x0B
+
4689#define tSubStrng 0x0C
+
4690#define tStdDev 0x0D
+
4691#define tVariance 0x0E
+
4692#define tInStrng 0x0F
+
4693#define tDNormal 0x10
+
4694#define tInvNorm 0x11
+
4695#define tDT 0x12
+
4696#define tChI 0x13
+
4697#define tDF 0x14
+
4698#define tBINPDF 0x15
+
4699#define tBINCDF 0x16
+
4700#define tPOIPDF 0x17
+
4701#define tPOICDF 0x18
+
4702#define tGEOPDF 0x19
+
4703#define tGEOCDF 0x1A
+
4704#define tNormalPDF 0x1B
+
4705#define tTPDF 0x1C
+
4706#define tChiPDF 0x1D
+
4707#define tFPDF 0x1E
+
4708#define tRandNorm 0x1F
+
4709#define tFinFPMT 0x20
+
4710#define tFinFI 0x21
+
4711#define tFinFPV 0x22
+
4712#define tFinFN 0x23
+
4713#define tFinFFV 0x24
+
4714#define tConj 0x25
+
4715#define tReal 0x26
+
4716#define tImag 0x27
+
4717#define tAngle 0x28
+
4718#define tCumSum 0x29
+
4719#define tExpr 0x2A
+
4720#define tLength 0x2B
+
4721#define tDeltaLst 0x2C
+
4722#define tRef 0x2D
+
4723#define tRRef 0x2E
+
4724#define tToRect 0x2F
+
4725#define tToPolar 0x30
+
4726#define tConste 0x31
+
4727#define tSinReg 0x32
+
4728#define tLogistic 0x33
+
4729#define tLinRegTTest 0x34
+
4730#define tShadeNorm 0x35
+
4731#define tShadeT 0x36
+
4732#define tShadeChi 0x37
+
4733#define tShadeF 0x38
+
4734#define tMatToLst 0x39
+
4735#define tLstToMat 0x3A
+
4736#define tZTest 0x3B
+
4737#define tTTest 0x3C
+
4738#define t2SampZTest 0x3D
+
4739#define t1PropZTest 0x3E
+
4740#define t2PropZTest 0x3F
+
4741#define tChiTest 0x40
+
4742#define tZIntVal 0x41
+
4743#define t2SampZInt 0x42
+
4744#define t1PropZInt 0x43
+
4745#define t2PropZInt 0x44
+
4746#define tGraphStyle 0x45
+
4747#define t2SampTTest 0x46
+
4748#define t2SampFTest 0x47
+
4749#define tTIntVal 0x48
+
4750#define t2SampTInt 0x49
+
4751#define tSetupLst 0x4A
+
4752#define tFinPMTend 0x4B
+
4753#define tFinPMTbeg 0x4C
+
4754#define tRealM 0x4D
+
4755#define tPolarM 0x4E
+
4756#define tRectM 0x4F
+
4757#define tExprOn 0x50
+
4758#define tExprOff 0x51
+
4759#define tClrAllLst 0x52
+
4760#define tGetCalc 0x53
+
4761#define tDelVar 0x54
+
4762#define tEquToStrng 0x55
+
4763#define tStrngToEqu 0x56
+
4764#define tDelLast 0x57
+
4765#define tSelect 0x58
+
4766#define tANOVA 0x59
+
4767#define tModBox 0x5A
+
4768#define tNormProb 0x5B
+
4769#define tMGT 0x64 //VERTICAL SPLIT
+
4770#define tZFit 0x65 //ZOOM FIT
+
4771#define tDiag_on 0x66 //DIANOSTIC DISPLAY ON
+
4772#define tDiag_off 0x67 //DIANOSTIC DISPLAY OFF
+
4773#define tOkEnd2v0 0x67 //end of 2byte tokens for version 0.
+
4774#define tArchive 0x68 //archive
+
4775#define tUnarchive 0x69 //unarchive
+
4776#define tasm 0x6A
+
4777#define tasmComp 0x6B //asm compile
+
4778#define tasmPrgm 0x6C //signifies a program is asm
+
4779#define tasmCmp 0x6D //asm program is compiled
+
4780#define tLcapAAcute 0x6E
+
4781#define tLcapAGrave 0x6F
+
4782#define tLcapACaret 0x70
+
4783#define tLcapADier 0x71
+
4784#define tLaAcute 0x72
+
4785#define tLaGrave 0x73
+
4786#define tLaCaret 0x74
+
4787#define tLaDier 0x75
+
4788#define tLcapEAcute 0x76
+
4789#define tLcapEGrave 0x77
+
4790#define tLcapECaret 0x78
+
4791#define tLcapEDier 0x79
+
4792#define tLeAcute 0x7A
+
4793#define tLeGrave 0x7B
+
4794#define tLeCaret 0x7C
+
4795#define tLeDier 0x7D
+
4796#define tLcapIGrave 0x7F
+
4797#define tLcapICaret 0x80
+
4798#define tLcapIDier 0x81
+
4799#define tLiAcute 0x82
+
4800#define tLiGrave 0x83
+
4801#define tLiCaret 0x84
+
4802#define tLiDier 0x85
+
4803#define tLcapOAcute 0x86
+
4804#define tLcapOGrave 0x87
+
4805#define tLcapOCaret 0x88
+
4806#define tLcapODier 0x89
+
4807#define tLoAcute 0x8A
+
4808#define tLoGrave 0x8B
+
4809#define tLoCaret 0x8C
+
4810#define tLoDier 0x8D
+
4811#define tLcapUAcute 0x8E
+
4812#define tLcapUGrave 0x8F
+
4813#define tLcapUCaret 0x90
+
4814#define tLcapUDier 0x91
+
4815#define tLuAcute 0x92
+
4816#define tLuGrave 0x93
+
4817#define tLuCaret 0x94
+
4818#define tLuDier 0x95
+
4819#define tLcapCCed 0x96
+
4820#define tLcCed 0x97
+
4821#define tLcapNTilde 0x98
+
4822#define tLnTilde 0x99
+
4823#define tLaccent 0x9A
+
4824#define tLgrave 0x9B
+
4825#define tLdieresis 0x9C
+
4826#define tLquesDown 0x9D
+
4827#define tLexclamDown 0x9E
+
4828#define tLalpha 0x9F
+
4829#define tLbeta 0x0A0
+
4830#define tLgamma 0x0A1
+
4831#define tLcapDelta 0x0A2
+
4832#define tLdelta 0x0A3
+
4833#define tLepsilon 0x0A4
+
4834#define tLlambda 0x0A5
+
4835#define tLmu 0x0A6
+
4836#define tLpi 0x0A7
+
4837#define tLrho 0x0A8
+
4838#define tLcapSigma 0x0A9
+
4839#define tLphi 0x0AB
+
4840#define tLcapOmega 0x0AC
+
4841#define tLphat 0x0AD
+
4842#define tLchi 0x0AE
+
4843#define tLstatF 0x0AF
+
4844#define tLa 0x0B0
+
4845#define tLb 0x0B1
+
4846#define tLc 0x0B2
+
4847#define tLd 0x0B3
+
4848#define tLsmalle 0x0B4
+
4849#define tLf 0x0B5
+
4850#define tLsmallg 0x0B6
+
4851#define tLh 0x0B7
+
4852#define tLi 0x0B8
+
4853#define tLj 0x0B9
+
4854#define tLk 0x0BA
+
4855#define tLl 0x0BC
+
4856#define tLm 0x0BD
+
4857#define tLsmalln 0x0BE
+
4858#define tLo 0x0BF
+
4859#define tLp 0x0C0
+
4860#define tLq 0x0C1
+
4861#define tLsmallr 0x0C2
+
4862#define tLs 0x0C3
+
4863#define tLsmallt 0x0C4
+
4864#define tLu 0x0C5
+
4865#define tLv 0x0C6
+
4866#define tLw 0x0C7
+
4867#define tLx 0x0C8
+
4868#define tLy 0x0C9
+
4869#define tLz 0x0CA
+
4870#define tLsigma 0x0CB
+
4871#define tLtau 0x0CC
+
4872#define tLcapIAcute 0x0CD
+
4873#define tGarbagec 0x0CE
+
4874#define LastToken 0x0CE //tLAST TOKEN IN THIS VERSION...
+
4875
+
4876//Data Type Equates
+
4877//---------------------------------------------------------------------
+
4878#define RealObj 0
+
4879#define ListObj 1
+
4880#define MatObj 2
+
4881#define EquObj 3
+
4882#define StrngObj 4
+
4883#define ProgObj 5
+
4884#define ProtProgObj 6
+
4885#define PictObj 7
+
4886#define GDBObj 8
+
4887#define UnknownObj 9
+
4888#define UnknownEquObj 0x0A
+
4889#define NewEquObj 0x0B
+
4890#define CplxObj 0x0C
+
4891#define CListObj 0x0D
+
4892#define UndefObj 0x0E
+
4893#define WindowObj 0x0F
+
4894#define ZStoObj 0x10
+
4895#define TblRngObj 0x11
+
4896#define LCDObj 0x12
+
4897#define BackupObj 0x13
+
4898#define AppObj 0x14 //application, only used in menus/link
+
4899#define AppVarObj 0x15 //application variable
+
4900#define TempProgObj 0x16 //program, home deletes when finished
+
4901#define GroupObj 0x17 //group.
+
4902
+
4903//I/O Equates
+
4904//---------------------------------------------------
+
4905#define D0D1_bits 0x03
+
4906#define D0LD1L 0x03
+
4907#define D0LD1H 0x01
+
4908#define D0HD1L 0x02
+
4909#define D0HD1H 0x00
+
4910#define bport 0 //4-bit link port (I/O)
+
4911
+
4912//Device Codes
+
4913//-----------------------------------------------------------------
+
4914#define TI82DEV 0x82
+
4915#define PC82DEV 0x02
+
4916#define MAC82DEV 0x12
+
4917#define TI83FDEV 0x73
+
4918#define LINK83FDEV 0x23
+
4919#define TI83DEV 0x83
+
4920#define PC83DEV 0x03
+
4921#define MAC83DEV 0x13
+
4922#define TI85DEV 0x95 //different than real 85 so me talk
+
4923#define PC85DEV 0x05
+
4924#define MAC85DEV 0x15
+
4925#define TI73DEV 0x74 //device x3 is always an 83
+
4926#define PC73DEV 0x07
+
4927#define MAC73DEV 0x17
+
4928#define LINK73FDEV 0x23
+
4929#define PC83FDEV 0x23
+
4930
+
4931//System Error Codes
+
4932//-----------------------------------------------------------
+
4933#define E_EDITF 7 //allow re-entering application
+
4934#define E_EDIT 1<<E_EDITF
+
4935#define E_Mask 0x7F
+
4936#define E_Overflow 1+E_EDIT
+
4937#define E_DivBy0 2+E_EDIT
+
4938#define E_SingularMat 3+E_EDIT
+
4939#define E_Domain 4+E_EDIT
+
4940#define E_Increment 5+E_EDIT
+
4941#define E_Break 6+E_EDIT
+
4942#define E_NonReal 7+E_EDIT
+
4943#define E_Syntax 8+E_EDIT
+
4944#define E_DataType 9+E_EDIT
+
4945#define E_Argument 10+E_EDIT
+
4946#define E_DimMismatch 11+E_EDIT
+
4947#define E_Dimension 12+E_EDIT
+
4948#define E_Undefined 13+E_EDIT
+
4949#define E_Memory 14+E_EDIT
+
4950#define E_Invalid 15+E_EDIT
+
4951#define E_IllegalNest 16+E_EDIT
+
4952#define E_Bound 17+E_EDIT
+
4953#define E_GraphRange 18+E_EDIT
+
4954#define E_Zoom 19+E_EDIT
+
4955#define E_Label 20
+
4956#define E_Stat 21
+
4957#define E_Solver 22+E_EDIT
+
4958#define E_Singularity 23+E_EDIT
+
4959#define E_SignChange 24+E_EDIT
+
4960#define E_Iterations 25+E_EDIT
+
4961#define E_BadGuess 26+E_EDIT
+
4962#define E_StatPlo 27
+
4963#define E_TolTooSmall 28+E_EDIT
+
4964#define E_Reserved 29+E_EDIT
+
4965#define E_Mode 30+E_EDIT
+
4966#define E_LnkErr 31+E_EDIT
+
4967#define E_LnkMemErr 32+E_EDIT
+
4968#define E_LnkTransErr 33+E_EDIT
+
4969#define E_LnkDupErr 34+E_EDIT
+
4970#define E_LnkMemFull 35+E_EDIT
+
4971#define E_Unknown 36+E_EDIT
+
4972#define E_Scale 37+E_EDIT
+
4973#define E_IdNotFound 38
+
4974#define E_NoMode 39+E_EDIT
+
4975#define E_Validation 40
+
4976#define E_Length 41+E_EDIT
+
4977#define E_Application 42+E_EDIT
+
4978#define E_AppErr1 43+E_EDIT
+
4979#define E_AppErr2 44+E_EDIT
+
4980#define E_ExpiredApp 45
+
4981#define E_BadAdd 46
+
4982#define E_Archived 47+E_EDIT
+
4983#define E_Version 48
+
4984#define E_ArchFull 49
+
4985#define E_Variable 50+E_EDIT
+
4986#define E_Duplicate 51+E_EDIT
+
4987#define HigErrNum 51
+
4988//Obsolete error numbers 34 ;first LINK error
+
4989#define E_LinkIOChkSum 34
+
4990#define E_LinkIOTimeOut 35
+
4991#define E_LinkIOBusy 36
+
4992#define E_LinkIOVer 37
+
4993
+
4994//Equates To RAM Locations For Stat Vars
+
4995//----------------------------------------------------------------
+
4996#define FPLEN 9 //Length of a floating-point number.
+
4997#define StatN statVars
+
4998#define XMean StatN + FPLEN
+
4999#define SumX XMean + FPLEN
+
5000#define SumXSqr SumX + FPLEN
+
5001#define StdX SumXSqr + FPLEN
+
5002#define StdPX StdX + FPLEN
+
5003#define MinX StdPX + FPLEN
+
5004#define MaxX MinX + FPLEN
+
5005#define MinY MaxX + FPLEN
+
5006#define MaxY MinY + FPLEN
+
5007#define YMean MaxY + FPLEN
+
5008#define SumY YMean + FPLEN
+
5009#define SumYSqr SumY + FPLEN
+
5010#define StdY SumYSqr + FPLEN
+
5011#define StdPY StdY + FPLEN
+
5012#define SumXY StdPY + FPLEN
+
5013#define Corr SumXY + FPLEN
+
5014#define MedX Corr + FPLEN
+
5015#define Q1 MedX + FPLEN
+
5016#define Q3 Q1 + FPLEN
+
5017#define QuadA Q3 + FPLEN
+
5018#define QuadB QuadA + FPLEN
+
5019#define QuadC QuadB + FPLEN
+
5020#define CubeD QuadC + FPLEN
+
5021#define QuartE CubeD + FPLEN
+
5022#define MedX1 QuartE + FPLEN
+
5023#define MedX2 MedX1 + FPLEN
+
5024#define MedX3 MedX2 + FPLEN
+
5025#define MedY1 MedX3 + FPLEN
+
5026#define MedY2 MedY1 + FPLEN
+
5027#define MedY3 MedY2 + FPLEN
+
5028#define PStat MedY3 + 2*FPLEN
+
5029#define ZStat PStat + FPLEN
+
5030#define TStat ZStat + FPLEN
+
5031#define ChiStat TStat + FPLEN
+
5032#define FStat ChiStat + FPLEN
+
5033#define DF FStat + FPLEN
+
5034#define Phat DF + FPLEN
+
5035#define Phat1 Phat + FPLEN
+
5036#define Phat2 Phat1 + FPLEN
+
5037#define MeanX1 Phat2 + FPLEN
+
5038#define StdX1 MeanX1 + FPLEN
+
5039#define StatN1 StdX1 + FPLEN
+
5040#define MeanX2 StatN1 + FPLEN
+
5041#define StdX2 MeanX2 + FPLEN
+
5042#define StatN2 StdX2 + FPLEN
+
5043#define StdXP2 StatN2 + FPLEN
+
5044#define SLower StdXP2 + FPLEN
+
5045#define SUpper SLower + FPLEN
+
5046#define SStat SUpper + FPLEN
+
5047#define F_DF anovaf_vars
+
5048#define F_SS F_DF + FPLEN
+
5049#define F_MS F_SS + FPLEN
+
5050#define E_DF F_MS + FPLEN
+
5051#define E_SS E_DF + FPLEN
+
5052#define E_MS E_SS + FPLEN
+
5053
+
5054
+
5055
+
5057
+
5058
+
5059#endif
+
5060
+
5061#ifdef DOXYGEN
+
5062void _(); // needed to keep doxygen including the file
+
5063#endif
+
void _()
+
+
+ + + + diff --git a/d4/d5f/userinput_8c.html b/d4/d5f/userinput_8c.html new file mode 100644 index 0000000..df30118 --- /dev/null +++ b/d4/d5f/userinput_8c.html @@ -0,0 +1,161 @@ + + + + + + + +Ti Constructor: lib/userinput.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Ti Constructor +
+
+ +   + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
userinput.c File Reference
+
+
+ +

2 useful functions for getting user input +More...

+ + + + + +

+Macros

+#define PressAnyKey()   bcall(0x4972)
 Wait for a key to be pressed and return it in the "A" assembly register This is mostly used at the end of a program, bewarned that this(like any bcall) my mess with C vars, see https://wikiti.brandonw.net/index.php?title=83Plus:BCALLs:4972.
 
+ + + + +

+Functions

char getKey ()
 DEPRECATED Scan for keypresses and returns the currently pressed key
 
+

Detailed Description

+

2 useful functions for getting user input

+

You don't actually need getKey() unless custom interupts (like greyscale.c) are used.

+

Optional #defines

+ +

Function Documentation

+ +

◆ getKey()

+ +
+
+ + + + + + + +
char getKey ()
+
+ +

DEPRECATED Scan for keypresses and returns the currently pressed key

+
Returns
char of the currently pressed key (see: https://wikiti.brandonw.net/index.php?title=83Plus:RAM:843F)
+

DEPRECATED You probably do not need this, but if interupts are disable/customized or greyscale is active, this will work for you.

+ +
+
+
+
+ + + + diff --git a/d4/d5f/userinput_8c.js b/d4/d5f/userinput_8c.js new file mode 100644 index 0000000..318f9bb --- /dev/null +++ b/d4/d5f/userinput_8c.js @@ -0,0 +1,5 @@ +var userinput_8c = +[ + [ "PressAnyKey", "d4/d5f/userinput_8c.html#adeed93c34ed50c8c4ccc7d0555408013", null ], + [ "getKey", "d4/d5f/userinput_8c.html#a2da36c055d23bb1f20f20bfabbb40661", null ] +]; \ No newline at end of file diff --git a/d5/d03/structHeapItem.html b/d5/d03/structHeapItem.html new file mode 100644 index 0000000..0bcca42 --- /dev/null +++ b/d5/d03/structHeapItem.html @@ -0,0 +1,135 @@ + + + + + + + +Ti Constructor: HeapItem Struct Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Ti Constructor +
+
+ +   + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
HeapItem Struct Reference
+
+
+ + + + + + + + + + + +

+Data Fields

+char HeapItemBitmap
 Bitmap of atributes of heap item. bit 0: isfreed, OR set to 0xFF if not items exit.
 
+void * HeapItemSize
 Size of current heap item including header.
 
+void body
 The allocated memory of the size at HeapItemSize.
 
+

Detailed Description

+

General structure of the a HeapItem

+

The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/d5/d03/structHeapItem.js b/d5/d03/structHeapItem.js new file mode 100644 index 0000000..dd40ce2 --- /dev/null +++ b/d5/d03/structHeapItem.js @@ -0,0 +1,6 @@ +var structHeapItem = +[ + [ "body", "d5/d03/structHeapItem.html#a129677f70fb4efe0cbf28cc3b72db6ce", null ], + [ "HeapItemBitmap", "d5/d03/structHeapItem.html#afd22583a08b879c069a76b98c34f0da0", null ], + [ "HeapItemSize", "d5/d03/structHeapItem.html#a7ceb3f24e73d4c37482ef6d3278f39ed", null ] +]; \ No newline at end of file diff --git a/d5/d95/graphics_8c.html b/d5/d95/graphics_8c.html new file mode 100644 index 0000000..5971032 --- /dev/null +++ b/d5/d95/graphics_8c.html @@ -0,0 +1,479 @@ + + + + + + + +Ti Constructor: lib/graphics.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Ti Constructor +
+
+ +   + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
graphics.c File Reference
+
+
+ +

some useful graphics functions +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Macros

Drawing settings
+#define G_SCREEN_BUFFER   plotSScreen
 the temp ram where you draw to
 
+#define G_COL_START   0x20
 
+#define G_START_ROW   0x80
 
+#define G_ROW_END   0xBF
 
+#define G_MAX_ROW   12
 
+#define G_BLOB_END   768
 
+#define G_CLEAR_BUFFER_CO   48
 
+#define buff   ( (char*)G_SCREEN_BUFFER )
 Use this like a variable for interacting with the screen buffer.
 
+#define _LCD_BUSY_QUICK   0x000B
 function to call from ASM to wait required amount of time between screen calls
 
+#define XMAX   96
 Width of screen in pixels.
 
+#define YMAX   64
 Height of screen in pixels.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

void clearBuffer ()
 clears screen buffer as defined by G_SCREEN_BUFFER If you wish to redefine the screen size you muse set multiple #defines before you include this file. You can find an example of this in examples/2048/main.c
 
+void swap ()
 fast enough way to display SCREEN_BUFFER on lcd See the scoreboard in examples/2048/main.c for redefining the location of the screen
 
void line (char x, char y, char x2, char y2) __naked
 Draw a line between any 2 valid points.
 
void vertical_line (char x, char start, char height, char not_used) __naked
 Quick verticle line drawing routine.
 
void vertical_dotted_line (char x, char start, char height, char not_used) __naked
 Quick dotted verticle line drawing routine.
 
void setPix (char x, char y)
 Set a pixel on the screen.
 
+void __drawCircleSegment (char xc, char yc, char x, char y)
 Do not call me.
 
void circle (char xc, char yc, char r)
 Circle drawing routine.
 
+

Detailed Description

+

some useful graphics functions

+

Optional #defines

+

Functions enables

+
    +
  • USE_LINE - enables line()
  • +
  • USE_SET_PIX - enables setPix()
  • +
  • USE_CIRCLE - enables circle()

    Functions Disables

    +
  • +
+ +
    +
  • G_SCREEN_BUFFER - allows you to redefine the location of the screen buffer. This is not recommended as the default is plotSScreen
  • +
  • G_COL_START - allows you to redefine where the screen starts drawing. Not recommended
  • +
  • G_START_ROW - allows you to redefine where the screen starts drawing. Not recommended
  • +
  • G_ROW_END - allows you to redefine where the screen stops drawing. Not recommended
  • +
  • G_MAX_ROW - allows you to redefine where the screen stops drawing. Not recommended
  • +
  • G_BLOB_END - allows you to redefine how large the screen buffer is. Could be cause errors if you redefine without changing G_CLEAR_BUFFER_CO
  • +
  • G_CLEAR_BUFFER_CO - allows you to redefine the math behind clearBuffer(). By default is set to 48 beacuse 48*8=384 times, @ 2 bytes a PUSH = 768 bytes
      +
    • XMAX - Max x value. Not recommended. Requires changing a lot of defines
    • +
    • YMAX - Max y value. Not recommended. Requires changing a lot of defines
    • +
    +
  • +
+

Function Documentation

+ +

◆ circle()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void circle (char xc,
char yc,
char r 
)
+
+ +

Circle drawing routine.

+
Parameters
+ + + + +
[xc]X coord of center of the circle
[yc]Y coord of center of the circle
[r]Radius of the circle
+
+
+

This code is quite slow as it is entirly written in c and uses the already quite slow setPix()

+

taken from https://www.geeksforgeeks.org/bresenhams-circle-drawing-algorithm/ and modified

+ +
+
+ +

◆ clearBuffer()

+ +
+
+ + + + + + + +
void clearBuffer ()
+
+ +

clears screen buffer as defined by G_SCREEN_BUFFER If you wish to redefine the screen size you muse set multiple #defines before you include this file. You can find an example of this in examples/2048/main.c

+

Taken from https://taricorp.gitlab.io/83pa28d/lesson/day10.html

+ +
+
+ +

◆ line()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void line (char x,
char y,
char x2,
char y2 
)
+
+ +

Draw a line between any 2 valid points.

+
Parameters
+ + + + + +
[x]First x coord (between 0-XMAX)
[x]First y coord (between 0-YMAX)
[x2]Secound x coord (between 0-XMAX)
[y2]Secound y coord (between 0-YMAX)
+
+
+

Draws a line onto G_SCREEN_BUFFER between (x, y) and (x2, y2)

+

taken from https://wikiti.brandonw.net/index.php?title=Z80_Routines:Graphic:LineDraw and adapted for sdcc, should be quite fast

+ +
+
+ +

◆ setPix()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void setPix (char x,
char y 
)
+
+ +

Set a pixel on the screen.

+
Parameters
+ + + +
[x]the x value to draw at (0-XMAX)
[y]the y value to draw at (0-YMAX) It ain't fast, and it ain't pretty, but it works.
+
+
+

TODO: rewite in a quicker asm implementation

+ +
+
+ +

◆ vertical_dotted_line()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void vertical_dotted_line (char x,
char start,
char height,
char not_used 
)
+
+ +

Quick dotted verticle line drawing routine.

+
Parameters
+ + + + + +
[x]the x value to draw at (0-XMAX)
[start]the y value to start at (0-YMAX-1)
[height]How long the line should be (1-YMAX)
[not_used]Can be anything, this value is just discarded. Odd number byte params require more instructions than Even number params
+
+
+

Quickly draws a dotted verticle line onto G_SCREEN_BUFFER

+ +
+
+ +

◆ vertical_line()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void vertical_line (char x,
char start,
char height,
char not_used 
)
+
+ +

Quick verticle line drawing routine.

+
Parameters
+ + + + + +
[x]the x value to draw at (0-XMAX)
[start]the y value to start at (0-YMAX-1)
[height]How long the line should be (1-YMAX)
[not_used]Can be anything, this value is just discarded. Odd number byte params require more instructions than Even number params
+
+
+

Quickly draws a verticle line onto G_SCREEN_BUFFER

+ +
+
+
+
+ + + + diff --git a/d5/d95/graphics_8c.js b/d5/d95/graphics_8c.js new file mode 100644 index 0000000..bed7036 --- /dev/null +++ b/d5/d95/graphics_8c.js @@ -0,0 +1,16 @@ +var graphics_8c = +[ + [ "_LCD_BUSY_QUICK", "d5/d95/graphics_8c.html#a34ae1178623830a7a8b2c06ad82759be", null ], + [ "buff", "d5/d95/graphics_8c.html#a49b4801ec4ecca0932baadffe07d994b", null ], + [ "G_SCREEN_BUFFER", "d5/d95/graphics_8c.html#a2ea627d6e756dbfc4694ea0db433ba16", null ], + [ "XMAX", "d5/d95/graphics_8c.html#a0312cb6d6cbc719075d4e5380c387ab3", null ], + [ "YMAX", "d5/d95/graphics_8c.html#a610d6ad95b18966b70b6845de2a9c56b", null ], + [ "__drawCircleSegment", "d5/d95/graphics_8c.html#a03e4a9618b2b842c224b6115a4f5fe66", null ], + [ "circle", "d5/d95/graphics_8c.html#addbd291e4bf35b4b8871c344ac36a348", null ], + [ "clearBuffer", "d5/d95/graphics_8c.html#a20bbd4d45e3f01305dd709f5a9cc9952", null ], + [ "line", "d5/d95/graphics_8c.html#af9395be22fea2203f30c59b8be653c14", null ], + [ "setPix", "d5/d95/graphics_8c.html#a03dd9e1f7e1bbc7f9537acb869b339d7", null ], + [ "swap", "d5/d95/graphics_8c.html#a07bca8cc0cfca0e80cac16305cac9f13", null ], + [ "vertical_dotted_line", "d5/d95/graphics_8c.html#a463706520b4764bf2273330592c8d05c", null ], + [ "vertical_line", "d5/d95/graphics_8c.html#abb95569c1cc36c678574d4ee8486ef65", null ] +]; \ No newline at end of file diff --git a/d5/de8/variables_8c.html b/d5/de8/variables_8c.html new file mode 100644 index 0000000..f9461a3 --- /dev/null +++ b/d5/de8/variables_8c.html @@ -0,0 +1,303 @@ + + + + + + + +Ti Constructor: lib/variables.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Ti Constructor +
+
+ +   + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
variables.c File Reference
+
+
+ +

Used for working with calculator variables. +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Macros

Adds token to string constant for variable name
+#define addRealObj(xxxxxxxxxx)   ("\x00" xxxxxxxxxx)
 
+#define addListObj(xxxxxxxxxx)   ("\x01" xxxxxxxxxx)
 
+#define addMatObj(xxxxxxxxxx)   ("\x02" xxxxxxxxxx)
 
+#define addEquObj(xxxxxxxxxx)   ("\x03" xxxxxxxxxx)
 
+#define addStrngObj(xxxxxxxxxx)   ("\x04" xxxxxxxxxx)
 
+#define addProgObj(xxxxxxxxxx)   ("\x05" xxxxxxxxxx)
 
+#define addProtProgObj(xxxxxxxxxx)   ("\x06" xxxxxxxxxx)
 
+#define addPictObj(xxxxxxxxxx)   ("\x07" xxxxxxxxxx)
 
+#define addGDBObj(xxxxxxxxxx)   ("\x08" xxxxxxxxxx)
 
+#define addUnknownObj(xxxxxxxxxx)   ("\x09" xxxxxxxxxx)
 
+#define addUnknownEquObj(xxxxxxxxxx)   ("\x0A" xxxxxxxxxx)
 
+#define addNewEquObj(xxxxxxxxxx)   ("\x0B" xxxxxxxxxx)
 
+#define addCplxObj(xxxxxxxxxx)   ("\x0C" xxxxxxxxxx)
 
+#define addCListObj(xxxxxxxxxx)   ("\x0D" xxxxxxxxxx)
 
+#define addUndefObj(xxxxxxxxxx)   ("\x0E" xxxxxxxxxx)
 
+#define addWindowObj(xxxxxxxxxx)   ("\x0F" xxxxxxxxxx)
 
+#define addZStoObj(xxxxxxxxxx)   ("\x10" xxxxxxxxxx)
 
+#define addTblRngObj(xxxxxxxxxx)   ("\x11" xxxxxxxxxx)
 
+#define addLCDObj(xxxxxxxxxx)   ("\x12" xxxxxxxxxx)
 
+#define addBackupObj(xxxxxxxxxx)   ("\x13" xxxxxxxxxx)
 
+#define addAppObj(xxxxxxxxxx)   ("\x14" xxxxxxxxxx)
 
+#define addAppVarObj(xxxxxxxxxx)   ("\x15" xxxxxxxxxx)
 
+#define addTempProgObj(xxxxxxxxxx)   ("\x16" xxxxxxxxxx)
 
+#define addGroupObj(xxxxxxxxxx)   ("\x17" xxxxxxxxxx)
 
+ + + + + + + + + + +

+Functions

char * getOrCreateVar (char *name, int size) __naked
 Gets a var or creates one a given size.
 
void archive (char *name) __naked
 Toggles if a var is archived.
 
void delete (char *name) __naked
 Delete a var.
 
+

Detailed Description

+

Used for working with calculator variables.

+

Function Documentation

+ +

◆ archive()

+ +
+
+ + + + + + + + +
void archive (char * name)
+
+ +

Toggles if a var is archived.

+
Parameters
+ + +
[name]Name of the var to be archived/archived
+
+
+

See: https://wikiti.brandonw.net/index.php?title=83Plus:BCALLs:4FD8

+ +
+
+ +

◆ delete()

+ +
+
+ + + + + + + + +
void delete (char * name)
+
+ +

Delete a var.

+
Parameters
+ + +
[name]Name of the var to be removed
+
+
+ +
+
+ +

◆ getOrCreateVar()

+ +
+
+ + + + + + + + + + + + + + + + + + +
char * getOrCreateVar (char * name,
int size 
)
+
+ +

Gets a var or creates one a given size.

+
Parameters
+ + + +
[name]the name of a variable after adding the type to the name (like with addAppVarObj())
[size]the size of a variable
+
+
+
Returns
Memory address of the variable
+

I only care about appvars, but delete and archive should work for anything Also float math could be combined with these of you use _StoSysTok see: https://taricorp.gitlab.io/83pa28d/lesson/day19.html and https://taricorp.gitlab.io/83pa28d/lesson/day20.html

+ +
+
+
+
+ + + + diff --git a/d5/de8/variables_8c.js b/d5/de8/variables_8c.js new file mode 100644 index 0000000..b1f9775 --- /dev/null +++ b/d5/de8/variables_8c.js @@ -0,0 +1,6 @@ +var variables_8c = +[ + [ "archive", "d5/de8/variables_8c.html#a0d3f0d93af7f9eb4419173b24c725343", null ], + [ "delete", "d5/de8/variables_8c.html#a2f62cc8750ffebff2a9eee2d2f732922", null ], + [ "getOrCreateVar", "d5/de8/variables_8c.html#afe191947cfd17993fcca9d9101c3895f", null ] +]; \ No newline at end of file diff --git a/d5/de8/variables_8c_source.html b/d5/de8/variables_8c_source.html new file mode 100644 index 0000000..babb819 --- /dev/null +++ b/d5/de8/variables_8c_source.html @@ -0,0 +1,235 @@ + + + + + + + +Ti Constructor: lib/variables.c Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Ti Constructor +
+
+ +   + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
variables.c
+
+
+Go to the documentation of this file.
1#pragma once
+
6#define addRealObj(xxxxxxxxxx) ("\x00" xxxxxxxxxx)
+
7#define addListObj(xxxxxxxxxx) ("\x01" xxxxxxxxxx)
+
8#define addMatObj(xxxxxxxxxx) ("\x02" xxxxxxxxxx)
+
9#define addEquObj(xxxxxxxxxx) ("\x03" xxxxxxxxxx)
+
10#define addStrngObj(xxxxxxxxxx) ("\x04" xxxxxxxxxx)
+
11#define addProgObj(xxxxxxxxxx) ("\x05" xxxxxxxxxx)
+
12#define addProtProgObj(xxxxxxxxxx) ("\x06" xxxxxxxxxx)
+
13#define addPictObj(xxxxxxxxxx) ("\x07" xxxxxxxxxx)
+
14#define addGDBObj(xxxxxxxxxx) ("\x08" xxxxxxxxxx)
+
15#define addUnknownObj(xxxxxxxxxx) ("\x09" xxxxxxxxxx)
+
16#define addUnknownEquObj(xxxxxxxxxx) ("\x0A" xxxxxxxxxx)
+
17#define addNewEquObj(xxxxxxxxxx) ("\x0B" xxxxxxxxxx)
+
18#define addCplxObj(xxxxxxxxxx) ("\x0C" xxxxxxxxxx)
+
19#define addCListObj(xxxxxxxxxx) ("\x0D" xxxxxxxxxx)
+
20#define addUndefObj(xxxxxxxxxx) ("\x0E" xxxxxxxxxx)
+
21#define addWindowObj(xxxxxxxxxx) ("\x0F" xxxxxxxxxx)
+
22#define addZStoObj(xxxxxxxxxx) ("\x10" xxxxxxxxxx)
+
23#define addTblRngObj(xxxxxxxxxx) ("\x11" xxxxxxxxxx)
+
24#define addLCDObj(xxxxxxxxxx) ("\x12" xxxxxxxxxx)
+
25#define addBackupObj(xxxxxxxxxx) ("\x13" xxxxxxxxxx)
+
26#define addAppObj(xxxxxxxxxx) ("\x14" xxxxxxxxxx)
+
27#define addAppVarObj(xxxxxxxxxx) ("\x15" xxxxxxxxxx)
+
28#define addTempProgObj(xxxxxxxxxx) ("\x16" xxxxxxxxxx)
+
29#define addGroupObj(xxxxxxxxxx) ("\x17" xxxxxxxxxx)
+
30
+
+
46char* getOrCreateVar(char* name, int size)__naked{
+
47 __asm
+
48 pop de
+
49 pop hl
+
50 push hl
+
51 push de
+
52
+
53
+
54
+
55 rst rMOV9TOOP1
+
56 abcall(_ChkFindSym)
+
57 jr c,notfound
+
58 ex de,hl
+
59 xor a
+
60 cp b
+
61 jr z,unarchived
+
62
+
63
+
64 di
+
65
+
66 exx
+
67 push ix
+
68 abcall(_Arc_Unarc)
+
69 pop ix
+
70 exx
+
71
+
72 ei
+
73 jp _getOrCreateVar
+
74
+
75
+
76 unarchived:
+
77
+
78 ret
+
79
+
80 notfound:
+
81 pop de
+
82 pop bc
+
83 pop hl // hl = size
+
84 push hl
+
85 push bc
+
86 push de
+
87
+
88 ld a, (bc)
+
89 abcall(_CreateVar) // old _CreateAppVar
+
90 jp _getOrCreateVar
+
91
+
92
+
93
+
94 __endasm;
+
95}
+
+
96
+
105// took me 7 hours to figure out, but _Arc_Unarc destroys everything and it is better off to let it destroy the shadow registers instead, otherwise everything crashes
+
+
106void archive(char* name)__naked{
+
107 __asm
+
108 pop de
+
109 pop hl
+
110 push hl
+
111 push de
+
112
+
113 rst 0x20 ; Mov9ToOP1
+
114 di
+
115
+
116 exx
+
117 push ix
+
118 abcall(_Arc_Unarc)
+
119 pop ix
+
120 exx
+
121
+
122 ei
+
123 ret
+
124
+
125 __endasm;
+
126
+
127}
+
+
128
+
+
134void delete(char* name)__naked{
+
135 __asm
+
136 pop de
+
137 pop hl
+
138 push hl
+
139 push de
+
140
+
141 rst 0x20 ; Mov9ToOP1
+
142 abcall(_ChkFindSym)
+
143 abcall(_DelVar)
+
144 ret
+
145 __endasm;
+
146}
+
+
#define abcall(__LABEL__)
The asm for a bcall.
Definition essentials.c:74
+
void archive(char *name) __naked
Toggles if a var is archived.
Definition variables.c:106
+
char * getOrCreateVar(char *name, int size) __naked
Gets a var or creates one a given size.
Definition variables.c:46
+
+
+ + + + diff --git a/d7/d31/fast__math_8c.html b/d7/d31/fast__math_8c.html new file mode 100644 index 0000000..bd8a956 --- /dev/null +++ b/d7/d31/fast__math_8c.html @@ -0,0 +1,705 @@ + + + + + + + +Ti Constructor: lib/fast_math.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Ti Constructor +
+
+ +   + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
fast_math.c File Reference
+
+
+ +

Fast math operations, and some 16-bit fixed point path. +More...

+
#include "textio.c"
+
+ + + + +

+Macros

#define FX(R)   (int)((R) > 0 ? (R)*256 : 0xFFFF-((-(R)) *256) )
 Inline compile time fixed point number.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

char FX_floor_int (int f) __naked
 Fixed point number to char number.
 
int FX_floor (int f) __naked
 Round fixed point number.
 
char sqrt_rounded (int x) __naked
 Gets the square root of a 16-bit intager to a 8 bit char.
 
long mul_int (int x, int y) __naked
 Multiple two 16-bit ints together.
 
int div_int (int x, int y) __naked
 Divide two 16-bit ints together.
 
int FX_mul (int x, int y) __naked
 Multiple two 16-bit fixed point numbers.
 
int FX_div (int x, int y) __naked
 Divide two 16-bit fixed point numbers.
 
int FX_sqrt (int x) __naked
 Take the sqrt of a fixed point number.
 
int FX_abs (int x) __naked
 Take the abs of a fixed point number.
 
void FX_number (int x) __naked
 Print a fixed point number to the screen.
 
void __fast_16_bit_sqrt_asm () __naked
 Assembly 16-bit Square Root routine
 
void __mult_de_bc () __naked
 Assembly 16-bit multiplication routine
 
void __div_32_by_16 () __naked
 Assembly 32-bit by 16-bit division routine
 
void __div_ac_de () __naked
 Assembly 16-bit division routine
 
+ + + + + + + + + + + + + +

Fixed point trig functions (requires #define FX_TRIG)

+const int FX_sine_lookup [] = {4, 13, 22, 31, 40, 48, 57, 66, 74, 83, 91, 100, 108, 116, 124, 131, 139, 146, 154, 161, 167, 174, 181, 187, 193, 198, 204, 209, 214, 219, 223, 228, 232, 235, 238, 242, 244, 247, 249, 251, 252, 254, 255, 255, 255, 255, 255, 255, 254, 252, 251, 249, 247, 244, 242, 238, 235, 232, 228, 223, 219, 214, 209, 204, 198, 193, 187, 181, 174, 167, 161, 154, 146, 139, 131, 124, 116, 108, 100, 91, 83, 74, 66, 57, 48, 40, 31, 22, 13, 4, -4, -13, -22, -31, -40, -48, -57, -66, -74, -83, -91, -100, -108, -116, -124, -131, -139, -146, -154, -161, -167, -174, -181, -187, -193, -198, -204, -209, -214, -219, -223, -228, -232, -235, -238, -242, -244, -247, -249, -251, -252, -254, -255, -255, -255, -255, -255, -255, -254, -252, -251, -249, -247, -244, -242, -238, -235, -232, -228, -223, -219, -214, -209, -204, -198, -193, -187, -181, -174, -167, -161, -154, -146, -139, -131, -124, -116, -108, -100, -91, -83, -74, -66, -57, -48, -40, -31, -22, -13, -4}
 Fixed point sine lookup table. Takes up 360 bytes
+
 
int FX_sine (int deg)
 Fixed point sine operation.
 
int FX_cos (int deg)
 Fixed point cosine operation.
 
int FX_tan (int deg)
 Fixed point tangent operation.
 
+

Detailed Description

+

Fast math operations, and some 16-bit fixed point path.

+

Faster then fixedpoint.c but more complex and less precise. Uses 16 bit (int) for fixed point math (8 for decimal and 8 for fraction). It should be noted that if you are worried about the size of your program, this is quite a large file.

+

Mostly sourced from https://wikiti.brandonw.net/index.php?title=Category:Z80_Routines

+

Optional #defines

+ +

Macro Definition Documentation

+ +

◆ FX

+ +
+
+ + + + + + + + +
#define FX( R)   (int)((R) > 0 ? (R)*256 : 0xFFFF-((-(R)) *256) )
+
+ +

Inline compile time fixed point number.

+
Parameters
+ + +
[R]Number to be converted
+
+
+
Returns
Fixed point number
+

This is used to create a fixed point number at compile time, highly NOT recommended to use at run time, or with anything other than a literal.

+ +
+
+

Function Documentation

+ +

◆ __div_32_by_16()

+ +
+
+ + + + + + + +
void __div_32_by_16 ()
+
+ +

Assembly 32-bit by 16-bit division routine

+

ONLY CALL FROM ASM

+

IN: ACIX=dividend, DE=divisor OUT: ACIX=quotient, DE=divisor, HL=remainder, B=0

+ +
+
+ +

◆ __div_ac_de()

+ +
+
+ + + + + + + +
void __div_ac_de ()
+
+ +

Assembly 16-bit division routine

+

ONLY CALL FROM ASM

+

This assembly routine divides ac by de and places the quotient in ac and the remainder in hl

+ +
+
+ +

◆ __fast_16_bit_sqrt_asm()

+ +
+
+ + + + + + + +
void __fast_16_bit_sqrt_asm ()
+
+ +

Assembly 16-bit Square Root routine

+

ONLY CALL FROM ASM

+

la is the 16-bit operand and D is the 8-bit result.

+ +
+
+ +

◆ __mult_de_bc()

+ +
+
+ + + + + + + +
void __mult_de_bc ()
+
+ +

Assembly 16-bit multiplication routine

+

ONLY CALL FROM ASM

+

bc by de and places the result in dehl.

+ +
+
+ +

◆ div_int()

+ +
+
+ + + + + + + + + + + + + + + + + + +
int div_int (int x,
int y 
)
+
+ +

Divide two 16-bit ints together.

+
Parameters
+ + + +
[x]A 16-bit int (NOT fixed point number)
[y]Another 16-bit int (NOT fixed point number)
+
+
+
Returns
A 16-bit int of x/y
+ +
+
+ +

◆ FX_abs()

+ +
+
+ + + + + + + + +
int FX_abs (int x)
+
+ +

Take the abs of a fixed point number.

+
Parameters
+ + +
[x]A 16-bit fixed point number
+
+
+
Returns
The fixed point result of abs(x)
+

Taken from https://learn.cemetech.net/index.php?title=Z80:Math_Routines#absHL

+ +
+
+ +

◆ FX_cos()

+ +
+
+ + + + + + + + +
int FX_cos (int deg)
+
+ +

Fixed point cosine operation.

+
Parameters
+ + +
[deg]A degree as an INTEGER
+
+
+
Returns
The fixed point cosine value
+ +
+
+ +

◆ FX_div()

+ +
+
+ + + + + + + + + + + + + + + + + + +
int FX_div (int x,
int y 
)
+
+ +

Divide two 16-bit fixed point numbers.

+
Parameters
+ + + +
[x]A 16-bit fixed point number
[y]Another 16-bit fixed point number
+
+
+
Returns
The fixed point result of x/y
+

Takes about 1800 t-states (+-500)

+ +
+
+ +

◆ FX_floor()

+ +
+
+ + + + + + + + +
int FX_floor (int f)
+
+ +

Round fixed point number.

+
Parameters
+ + +
[f]Number to be rounded
+
+
+
Returns
Another fixed point number
+ +
+
+ +

◆ FX_floor_int()

+ +
+
+ + + + + + + + +
char FX_floor_int (int f)
+
+ +

Fixed point number to char number.

+
Parameters
+ + +
[f]Number to be converted
+
+
+
Returns
char
+ +
+
+ +

◆ FX_mul()

+ +
+
+ + + + + + + + + + + + + + + + + + +
int FX_mul (int x,
int y 
)
+
+ +

Multiple two 16-bit fixed point numbers.

+
Parameters
+ + + +
[x]A 16-bit fixed point number
[y]Another 16-bit fixed point number
+
+
+
Returns
The fixed point result of x*y
+ +
+
+ +

◆ FX_number()

+ +
+
+ + + + + + + + +
void FX_number (int x)
+
+ +

Print a fixed point number to the screen.

+
Parameters
+ + +
[x]A 16-bit fixed point number
+
+
+ +
+
+ +

◆ FX_sine()

+ +
+
+ + + + + + + + +
int FX_sine (int deg)
+
+ +

Fixed point sine operation.

+
Parameters
+ + +
[deg]A degree as an INTEGER
+
+
+
Returns
The fixed point sine value
+ +
+
+ +

◆ FX_sqrt()

+ +
+
+ + + + + + + + +
int FX_sqrt (int x)
+
+ +

Take the sqrt of a fixed point number.

+
Parameters
+ + +
[x]A 16-bit fixed point number
+
+
+
Returns
The fixed point result of sqrt(x)
+ +
+
+ +

◆ FX_tan()

+ +
+
+ + + + + + + + +
int FX_tan (int deg)
+
+ +

Fixed point tangent operation.

+
Parameters
+ + +
[deg]A degree as an INTEGER
+
+
+
Returns
The fixed point tangent value
+ +
+
+ +

◆ mul_int()

+ +
+
+ + + + + + + + + + + + + + + + + + +
long mul_int (int x,
int y 
)
+
+ +

Multiple two 16-bit ints together.

+
Parameters
+ + + +
[x]A 16-bit int (NOT fixed point number)
[y]Another 16-bit int (NOT fixed point number)
+
+
+
Returns
A long(32-bit) value of x*y
+ +
+
+ +

◆ sqrt_rounded()

+ +
+
+ + + + + + + + +
char sqrt_rounded (int x)
+
+ +

Gets the square root of a 16-bit intager to a 8 bit char.

+
Parameters
+ + +
[x]A 16-bit INTEGER (NOT fixed point number)
+
+
+
Returns
A rounded char of the sqrt(x)
+ +
+
+
+
+ + + + diff --git a/d7/d31/fast__math_8c.js b/d7/d31/fast__math_8c.js new file mode 100644 index 0000000..64775b0 --- /dev/null +++ b/d7/d31/fast__math_8c.js @@ -0,0 +1,22 @@ +var fast__math_8c = +[ + [ "FX", "d7/d31/fast__math_8c.html#a837a137e392ae871a39de8f0757e64ad", null ], + [ "__div_32_by_16", "d7/d31/fast__math_8c.html#aca8c524d27be5cfbed4ec3f4c11979ae", null ], + [ "__div_ac_de", "d7/d31/fast__math_8c.html#ad9881431b8062e65cd27eb83d70998d8", null ], + [ "__fast_16_bit_sqrt_asm", "d7/d31/fast__math_8c.html#adef27832f737507abf3e51908c480b9c", null ], + [ "__mult_de_bc", "d7/d31/fast__math_8c.html#a1726e8497ddd5282b66882b4ccc86dce", null ], + [ "div_int", "d7/d31/fast__math_8c.html#a66bc0fe0d2a312e16310040a00402d69", null ], + [ "FX_abs", "d7/d31/fast__math_8c.html#aaa2f72733b04c7943e07dd4fcf6c59f0", null ], + [ "FX_cos", "d7/d31/fast__math_8c.html#a9f5659631c18d301cb73c7ec7a58b43e", null ], + [ "FX_div", "d7/d31/fast__math_8c.html#af7e4eca9425ab1e402c3af3b74420b13", null ], + [ "FX_floor", "d7/d31/fast__math_8c.html#ae142ca5b74ec6a03b86a0f9a6d00a72d", null ], + [ "FX_floor_int", "d7/d31/fast__math_8c.html#a5529a599fa2c1cb7e7323116a86387df", null ], + [ "FX_mul", "d7/d31/fast__math_8c.html#a27d77f268f943ac12c22ca98d334a412", null ], + [ "FX_number", "d7/d31/fast__math_8c.html#a9b6ed49928434dc6bd1c347069c19c6f", null ], + [ "FX_sine", "d7/d31/fast__math_8c.html#a45860b312b69da7d3ba4afa0ec9b89d5", null ], + [ "FX_sqrt", "d7/d31/fast__math_8c.html#a73a2cf0c8d3ec760234a654af87cba82", null ], + [ "FX_tan", "d7/d31/fast__math_8c.html#acb214629c138c1a16dd2759e0bcfa2a2", null ], + [ "mul_int", "d7/d31/fast__math_8c.html#a864a6c649cc122b08b911f2065ef02eb", null ], + [ "sqrt_rounded", "d7/d31/fast__math_8c.html#a596724bfaacd207eb1ee760887a5546a", null ], + [ "FX_sine_lookup", "d7/d31/fast__math_8c.html#a4edfba9be986bb2e99b54fe21c6aa149", null ] +]; \ No newline at end of file diff --git a/d7/dbc/greyscale_8c.html b/d7/dbc/greyscale_8c.html new file mode 100644 index 0000000..69e45f6 --- /dev/null +++ b/d7/dbc/greyscale_8c.html @@ -0,0 +1,312 @@ + + + + + + + +Ti Constructor: lib/greyscale.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Ti Constructor +
+
+ +   + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
greyscale.c File Reference
+
+
+ +

Unlocks greyscale on the calc at the cost of some cpu. +More...

+
#include "interupts.c"
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Macros

+#define _LCD_BUSY_QUICK   0x000B
 
+#define __hs   #
 Bypass allowing for # in preprocess direcive values.
 
+#define WAIT_LOC   0x85BE
 Ram location for wait char.
 
+#define CONTRAST_LOC   (WAIT_LOC+1)
 Ram location for constast char.
 
+#define GRAY_CYCLE   (CONTRAST_LOC+1)
 0 - 0x25, do not set this yourself
 
+#define GRAY_CYCLE_CARRY   (GRAY_CYCLE+1)
 Used for greyscale math, do not set this yourself.
 
+#define SAVE_CONTRAST   0x9D88
 Ram location of where the old contrast of the screen is stored.
 
+#define DEFAULT_MAX_COL   12
 Only used when setting the initial MAX_COL.
 
+#define COL_START_CONST   0x20
 Only used when setting the initial START_COL.
 
+#define ROW_CONST   0x80
 Only used when setting the initial START_ROW.
 
+#define ROW_END_CONST   0xBF
 Only used when setting the initial END_ROW.
 
+#define XMAX   96
 
+#define YMAX   64
 
#define INIT_GREYSCALE()
 Call this to enable greyscale interupts, change greyscale settings after calling this
 
#define ADDED_ON_EXIT()
 
+#define OVERIDE_INTERUPTS
 
+#define DURING_INTERUPT()   grey_interupt()
 
Greyscale setting ram locations
+#define START_ROW   (GRAY_CYCLE_CARRY+1)
 Ram location whoose value starts at 0x80 and defines what row the greyscale starts at.
 
+#define END_ROW   (START_ROW+1)
 Ram location whoose value starts at 0xBF and defines what row the greyscale ends at.
 
IF YOU CHANGE COL, YOU MUST CHANGE THE XMAX, OTHERWISE THE IMAGE IS MESSED UP: #define XMAX (endcol - startcol)*8
+#define START_COL   (END_ROW+1)
 Ram location of what colum the greyscale starts.
 
+#define MAX_COL   (START_COL+1)
 Ram location of how many colums to draw.
 
Grey scale screen buffer locations
+#define LIGHT_GREY_LOC   plotSScreen
 Ram location of where light grey pixels are set.
 
+#define DARK_GREY_LOC   appBackUpScreen
 Ram location of where dark grey pixels are set.
 
+ + + + + + + +

+Functions

+void grey_interupt () __naked
 Called during interupts, DO NOT CALL YOURSELF
 
+void clearGreyScaleBuffer ()
 Quickly clears both LIGHT_GREY_LOC and DARK_GREY_LOC.
 
+

Detailed Description

+

Unlocks greyscale on the calc at the cost of some cpu.

+

Warnings: This may take up 90% of the cpu time and should be used with cpu turbo setCpuSpeed(3) Look at the example in examples/greyScale Usage:

+

you might want to know that there is an emergency killswitch built in, if you press the on button it will stop the greyscale, but you can disable the killswitch with #define DISABLE_ON_BUTTON_KILL before you include this file

+

Greyscale uses interupts so no need for a swap (don't even try to use swap) First put your image in LIGHT_GREY_LOC and DARK_GREY_LOC, since there is 4 different color options (off, light grey, dark grey, and black) you need need 2 bits per pixel (one in LIGHT_GREY_LOC and the other in DARK_GREY_LOC), both bits are set for black and both are zero for off Use clearGreyScaleBuffer to clear these two buffers quickly

+

Your first instruction should be clearGreyScaleBuffer() followed by INIT_GREYSCALE()

+

Next you may need to set your drawing settings (since default values are set in INIT_GREYSCALE) this can be done in C as follows: *((char*)START_ROW) = ROW_CONST; *((char*)START_COL) = COL_START_CONST;

+

*((char*)END_ROW) = ROW_END_CONST; *((char*)MAX_COL) = DEFAULT_MAX_COL; // you must change your XMAX (or equivalent) along with your DEFAULT_MAX_COL, otherwise things tend to break

+

It is recommended to add/subtrace to/from the default values due to some of them being offseted values (the setting for row 0 is 0x80 and column 0 is 0x20)

+

Ps. The emulator dosn't work with greyscale well

+

Also if you use an appvar for greyscale settings use the name "greycfg" and use this structor [0x69, WAIT_TIME, CONTRAST, 0x69] 0x69 is for integrity checking (Im not immature at all lol) see the 2048 in examples/

+

Macro Definition Documentation

+ +

◆ ADDED_ON_EXIT

+ +
+
+ + + + + + + +
#define ADDED_ON_EXIT()
+
+Value:
__asm\
+
ld a, (SAVE_CONTRAST)\
+
ld (contrast), a\
+
add a, __hs 0xD8\
+
out (0x10), a\
+
ret\
+
__endasm
+
#define __hs
Bypass allowing for # in preprocess direcive values.
Definition greyscale.c:40
+
#define SAVE_CONTRAST
Ram location of where the old contrast of the screen is stored.
Definition greyscale.c:76
+
+
+
+ +

◆ INIT_GREYSCALE

+ +
+
+ + + + + + + +
#define INIT_GREYSCALE()
+
+Value:
*((char*)GRAY_CYCLE) = 0b01101101 ;\
+
*((char*)CONTRAST_LOC) = 0x15;\
+
*((char*)SAVE_CONTRAST) = *((char*)contrast);\
+
*((char*)contrast) = 0;\
+
*(char*)WAIT_LOC = 0x9F;\
+
*((char*)GRAY_CYCLE_CARRY) = 1;\
+
\
+
\
+
*((char*)START_ROW) = ROW_CONST;\
+
*((char*)START_COL) = COL_START_CONST;\
+
\
+
*((char*)END_ROW) = ROW_END_CONST;\
+
*((char*)MAX_COL) = DEFAULT_MAX_COL;\
+
SET_INTERUPTS(); __asm\
+
\
+
ld a, __hs 0x40 \
+
out (0x33), a ;10922 Hz \
+
ld a, __hs 2 \
+
out (0x34), a \
+
ld a, (WAIT_LOC) \
+
out (0x35), a \
+
__endasm
+
#define ROW_END_CONST
Only used when setting the initial END_ROW.
Definition greyscale.c:88
+
#define ROW_CONST
Only used when setting the initial START_ROW.
Definition greyscale.c:86
+
#define DEFAULT_MAX_COL
Only used when setting the initial MAX_COL.
Definition greyscale.c:79
+
#define CONTRAST_LOC
Ram location for constast char.
Definition greyscale.c:46
+
#define START_COL
Ram location of what colum the greyscale starts.
Definition greyscale.c:69
+
#define END_ROW
Ram location whoose value starts at 0xBF and defines what row the greyscale ends at.
Definition greyscale.c:62
+
#define MAX_COL
Ram location of how many colums to draw.
Definition greyscale.c:71
+
#define GRAY_CYCLE
0 - 0x25, do not set this yourself
Definition greyscale.c:49
+
#define WAIT_LOC
Ram location for wait char.
Definition greyscale.c:43
+
#define GRAY_CYCLE_CARRY
Used for greyscale math, do not set this yourself.
Definition greyscale.c:52
+
#define COL_START_CONST
Only used when setting the initial START_COL.
Definition greyscale.c:84
+
#define START_ROW
Ram location whoose value starts at 0x80 and defines what row the greyscale starts at.
Definition greyscale.c:60
+
+

Call this to enable greyscale interupts, change greyscale settings after calling this

+ +
+
+
+
+ + + + diff --git a/d7/dbc/greyscale_8c.js b/d7/dbc/greyscale_8c.js new file mode 100644 index 0000000..cf90ab8 --- /dev/null +++ b/d7/dbc/greyscale_8c.js @@ -0,0 +1,22 @@ +var greyscale_8c = +[ + [ "__hs", "d7/dbc/greyscale_8c.html#a080021f8b22b47e0e515fadb3342b6d8", null ], + [ "COL_START_CONST", "d7/dbc/greyscale_8c.html#ad7ec6474c074831d2a3d774564337aad", null ], + [ "CONTRAST_LOC", "d7/dbc/greyscale_8c.html#a1b314ca85c938c9352de4512efffd642", null ], + [ "DARK_GREY_LOC", "d7/dbc/greyscale_8c.html#a72ce1600877c91649360dc0786e98f09", null ], + [ "DEFAULT_MAX_COL", "d7/dbc/greyscale_8c.html#a11168a5098e7692094b7b6879558ecc0", null ], + [ "END_ROW", "d7/dbc/greyscale_8c.html#a5c6dc4004a28fea314f91ccc7bd7abe5", null ], + [ "GRAY_CYCLE", "d7/dbc/greyscale_8c.html#a9f741cd56abeb0dc5e44623d691c2ec5", null ], + [ "GRAY_CYCLE_CARRY", "d7/dbc/greyscale_8c.html#ad129d98e7f6db51ea51c8bd33a49d11d", null ], + [ "INIT_GREYSCALE", "d7/dbc/greyscale_8c.html#a533ad373350e15bbee92fb6f790d61a7", null ], + [ "LIGHT_GREY_LOC", "d7/dbc/greyscale_8c.html#a422e7cd1a0055b8cac4e90ecafedb1bb", null ], + [ "MAX_COL", "d7/dbc/greyscale_8c.html#a97e80440b5a5ec2ffc172dead9f8d2ec", null ], + [ "ROW_CONST", "d7/dbc/greyscale_8c.html#a0999f61805fd5db8ec16a027c1db621c", null ], + [ "ROW_END_CONST", "d7/dbc/greyscale_8c.html#a0997428a77d4eda7188f0dd77a006790", null ], + [ "SAVE_CONTRAST", "d7/dbc/greyscale_8c.html#a9ba79c0c7ca01d04ac7e77b6c5c974a2", null ], + [ "START_COL", "d7/dbc/greyscale_8c.html#a39d4b8bb4368e58868cad71db4842492", null ], + [ "START_ROW", "d7/dbc/greyscale_8c.html#aef84164dbbbf950ffc5da7ffcaf7f91c", null ], + [ "WAIT_LOC", "d7/dbc/greyscale_8c.html#acf4ad1993081b85bd9f163e75dd7317d", null ], + [ "clearGreyScaleBuffer", "d7/dbc/greyscale_8c.html#ac5082e0fa1de607c1f6d085366d02591", null ], + [ "grey_interupt", "d7/dbc/greyscale_8c.html#abbebc026da0bcc62f8667548ed32aa9d", null ] +]; \ No newline at end of file diff --git a/df/dd5/memory_8c.html b/df/dd5/memory_8c.html new file mode 100644 index 0000000..5e72017 --- /dev/null +++ b/df/dd5/memory_8c.html @@ -0,0 +1,440 @@ + + + + + + + +Ti Constructor: lib/memory.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Ti Constructor +
+
+ +   + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
memory.c File Reference
+
+
+ +

A simple and preforment memory allocator. +More...

+
#include "variables.c"
+#include "errors.c"
+
+ + + +

+Data Structures

struct  HeapItem
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Macros

+#define HEAP_SIZE   1024
 The size of the calculator variable the heap is stored as. You can set this to a larger (or smaller) value if you want.
 
+#define CUSTOM_HEAP_NAME   "ConHeap"
 allows setting a custom heap variable name
 
#define purge_heap()   delete(HEAP_VAR_NAME)
 Cleans up the heap for when the program is closing.
 
+#define __hs   #
 
#define auto_purge_heap()
 Automaticlly runs purge_heap() for you.
 
Heap memory locations
+#define HEAP_LOCATION   0x83E5
 Memory location of heap related information.
 
+#define HEAP_CONSTANT   HEAP_LOCATION
 
+#define HEAP_CONSTANT2   ( HEAP_CONSTANT+1)
 
+#define HEAP_LOCATION_PTR   (HEAP_CONSTANT2+1)
 
+#define HEAP_TEMP   (HEAP_LOCATION_PTR+2)
 
+ + + + + + + + + + + + + + + + + + + + + + +

+Functions

void initHeap ()
 Create the heap for you.
 
void _malloc () __naked
 Assembly malloc implementation.
 
void * malloc (int size) __naked
 Request to allocate an amount of memory from the heap (filled undefined random data)
 
void _free () __naked
 Assembly free() implementation.
 
void free (void *ptr) __naked
 Frees an allocated memory address from the heap.
 
void _calloc () __naked
 Assembly function for calloc()
 
void * calloc (int size) __naked
 Request to allocate an amount of memory from the heap (filled zeros)
 
+ + + + +

+Variables

+const char HEAP_VAR_NAME [] = addAppVarObj(CUSTOM_HEAP_NAME)
 Name of heap variable in calculator.
 
+

Detailed Description

+

A simple and preforment memory allocator.

+

This file allows for a psuedo-heap, it is a lot like how the heap works in the typical c std. This works by creating a calculator variable typically called "ConHeap" where the data is stored. It should be noted that initHeap() uses getOrCreateVar() so if somebody forgets to purge_heap() and you are using a custom HEAP_SIZE you might run into some error. So always call purge_heap() or make use of auto_purge_heap() !

+

It should be noted that auto_purge_heap() seems not to run correctly in programs

+

Optional #defines

+
    +
  • HEAP_SIZE - A number that is the size of varible to create for the heap.
  • +
  • CUSTOM_HEAP_NAME - Sets the heap variable to a custom name
  • +
+

Macro Definition Documentation

+ +

◆ auto_purge_heap

+ +
+
+ + + + + + + +
#define auto_purge_heap()
+
+Value:
__asm \
+
ld hl, __hs AUTO_CLOSE_HEAP_LOCATION \
+
push hl \
+
jp AFTER_AUTO_CLOSE_HEAP \
+
AUTO_CLOSE_HEAP_LOCATION: \
+
__endasm; purge_heap(); __asm \
+
ret \
+
AFTER_AUTO_CLOSE_HEAP: __endasm
+
#define __hs
Bypass allowing for # in preprocess direcive values.
Definition greyscale.c:40
+
#define purge_heap()
Cleans up the heap for when the program is closing.
Definition memory.c:68
+
+

Automaticlly runs purge_heap() for you.

+

This must be called in main, this is because it will automaticlly run purge_heap() when the current function returns. This also must be called before ANY variables are set, it will destroy the hl register. If you call auto_purge_heap() in main before any variables are set, it will automaticlly call purge_heap() for you as main returns.

+

Also doesn't seem to run currectly programs.

+ +
+
+ +

◆ purge_heap

+ +
+
+ + + + + + + +
#define purge_heap()   delete(HEAP_VAR_NAME)
+
+ +

Cleans up the heap for when the program is closing.

+

Call this before you exit the program if you initialized the heap

+ +
+
+

Function Documentation

+ +

◆ _calloc()

+ +
+
+ + + + + + + +
void _calloc ()
+
+ +

Assembly function for calloc()

+
Parameters
+ + +
[bc]Size of memory to be requested
+
+
+
Returns
hl = memory location
+ +
+
+ +

◆ _free()

+ +
+
+ + + + + + + +
void _free ()
+
+ +

Assembly free() implementation.

+
Parameters
+ + +
[hl]Location of memory to be freed
+
+
+

See free()

+ +
+
+ +

◆ _malloc()

+ +
+
+ + + + + + + +
void _malloc ()
+
+ +

Assembly malloc implementation.

+
Parameters
+ + +
[bc]Size of memory to be requested
+
+
+
Returns
hl = memory location
+

See malloc() and all error conditions apply.

+ +
+
+ +

◆ calloc()

+ +
+
+ + + + + + + + +
void * calloc (int size)
+
+ +

Request to allocate an amount of memory from the heap (filled zeros)

+
Parameters
+ + +
[size]Amount of memory to be allocated
+
+
+
Returns
A pointer to free memory
+

Same as malloc() except fills data buffer with zeros

+ +
+
+ +

◆ free()

+ +
+
+ + + + + + + + +
void free (void * ptr)
+
+ +

Frees an allocated memory address from the heap.

+
Parameters
+ + +
[ptr]Memory to be freed
+
+
+ +
+
+ +

◆ initHeap()

+ +
+
+ + + + + + + +
void initHeap ()
+
+ +

Create the heap for you.

+

Call this to create/reset the heap. You can call this a secound time to reset the heap for you. But don't use any pointers you got from malloc/calloc or you might get undefined outputs.

+ +
+
+ +

◆ malloc()

+ +
+
+ + + + + + + + +
void * malloc (int size)
+
+ +

Request to allocate an amount of memory from the heap (filled undefined random data)

+
Parameters
+ + +
[size]Amount of memory to be allocated
+
+
+
Returns
A pointer to free memory
+

This should be identical to the normal malloc function. But be warned that if you write to bytes past what you have allocated you can cause undefined behavior!

+

If NO_MEMMORY_ERRORS is defined instead of raising an error, malloc will return NULL. Malloc can error for two reasons, if you pass in zero, or if you allocate too much memory for the heap variable.

+ +
+
+
+
+ + + + diff --git a/df/dd5/memory_8c.js b/df/dd5/memory_8c.js new file mode 100644 index 0000000..4a31e46 --- /dev/null +++ b/df/dd5/memory_8c.js @@ -0,0 +1,17 @@ +var memory_8c = +[ + [ "HeapItem", "d5/d03/structHeapItem.html", "d5/d03/structHeapItem" ], + [ "auto_purge_heap", "df/dd5/memory_8c.html#aa67674772f75f551422c1a374a8a4b79", null ], + [ "CUSTOM_HEAP_NAME", "df/dd5/memory_8c.html#a33bf31228fd22e4afa06a93bfa681d5b", null ], + [ "HEAP_LOCATION", "df/dd5/memory_8c.html#a2f58e25d4dae7f2d95850d174c5f2820", null ], + [ "HEAP_SIZE", "df/dd5/memory_8c.html#a1b45302695680930829cac31d65e41e1", null ], + [ "purge_heap", "df/dd5/memory_8c.html#a2d462dbeb5a594ac82d2827821aa5573", null ], + [ "_calloc", "df/dd5/memory_8c.html#ac9ca267ed9fd6f2ebd03150b16f230a0", null ], + [ "_free", "df/dd5/memory_8c.html#af1d881f34c18d1e2c88a14f5d94e971b", null ], + [ "_malloc", "df/dd5/memory_8c.html#a4d78a5f4102f4b0691ecf164af9dadf1", null ], + [ "calloc", "df/dd5/memory_8c.html#a1f0eeac79b62f335c80572b9607331a6", null ], + [ "free", "df/dd5/memory_8c.html#a26d7887be1fe25a2cfb8239362f16938", null ], + [ "initHeap", "df/dd5/memory_8c.html#a137db60eec8a1abc98c96580d7b764fc", null ], + [ "malloc", "df/dd5/memory_8c.html#a15854dc49461bfcaa4a38cb359f3e71f", null ], + [ "HEAP_VAR_NAME", "df/dd5/memory_8c.html#aacc2cdf7bc1195adb693bf201ff2c8b6", null ] +]; \ No newline at end of file diff --git a/dir_97aefd0d527b934f1d99a682da8fe6a9.html b/dir_97aefd0d527b934f1d99a682da8fe6a9.html new file mode 100644 index 0000000..6c7d65d --- /dev/null +++ b/dir_97aefd0d527b934f1d99a682da8fe6a9.html @@ -0,0 +1,155 @@ + + + + + + + +Ti Constructor: lib Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Ti Constructor +
+
+ +   + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
lib Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

 errors.c
 Some simple ways to throw an error.
 
 essentials.c
 This should be #included in all files.
 
 fast_math.c
 Fast math operations, and some 16-bit fixed point path.
 
 floatmath.c
 Use the built in calculator floating point math.
 
 graphics.c
 some useful graphics functions
 
 greyscale.c
 Unlocks greyscale on the calc at the cost of some cpu.
 
 interupts.c
 Set of tools for custom interupts.
 
 memory.c
 A simple and preforment memory allocator.
 
 misc.c
 Some random but useful functions.
 
 textio.c
 String I/O type stuff.
 
 ti83plus.h
 TI-83 Plus Include File.
 
 userinput.c
 2 useful functions for getting user input
 
 variables.c
 Used for working with calculator variables.
 
+
+
+ + + + diff --git a/dir_97aefd0d527b934f1d99a682da8fe6a9.js b/dir_97aefd0d527b934f1d99a682da8fe6a9.js new file mode 100644 index 0000000..aac718b --- /dev/null +++ b/dir_97aefd0d527b934f1d99a682da8fe6a9.js @@ -0,0 +1,16 @@ +var dir_97aefd0d527b934f1d99a682da8fe6a9 = +[ + [ "errors.c", "d0/d15/errors_8c.html", "d0/d15/errors_8c" ], + [ "essentials.c", "d2/d4a/essentials_8c.html", "d2/d4a/essentials_8c" ], + [ "fast_math.c", "d7/d31/fast__math_8c.html", "d7/d31/fast__math_8c" ], + [ "floatmath.c", "d4/d1f/floatmath_8c.html", "d4/d1f/floatmath_8c" ], + [ "graphics.c", "d5/d95/graphics_8c.html", "d5/d95/graphics_8c" ], + [ "greyscale.c", "d7/dbc/greyscale_8c.html", "d7/dbc/greyscale_8c" ], + [ "interupts.c", "d1/d74/interupts_8c.html", "d1/d74/interupts_8c" ], + [ "memory.c", "df/dd5/memory_8c.html", "df/dd5/memory_8c" ], + [ "misc.c", "d0/ddb/misc_8c.html", "d0/ddb/misc_8c" ], + [ "textio.c", "d2/dba/textio_8c.html", "d2/dba/textio_8c" ], + [ "ti83plus.h", "d4/d49/ti83plus_8h.html", "d4/d49/ti83plus_8h" ], + [ "userinput.c", "d4/d5f/userinput_8c.html", "d4/d5f/userinput_8c" ], + [ "variables.c", "d5/de8/variables_8c.html", "d5/de8/variables_8c" ] +]; \ No newline at end of file diff --git a/doc.svg b/doc.svg new file mode 100644 index 0000000..0b928a5 --- /dev/null +++ b/doc.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/docd.svg b/docd.svg new file mode 100644 index 0000000..ac18b27 --- /dev/null +++ b/docd.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/doxygen-awesome.css b/doxygen-awesome.css new file mode 100644 index 0000000..836f277 --- /dev/null +++ b/doxygen-awesome.css @@ -0,0 +1,2531 @@ +/** + +Doxygen Awesome +https://github.com/jothepro/doxygen-awesome-css + +MIT License + +Copyright (c) 2021 - 2023 jothepro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +*/ + +html { + /* primary theme color. This will affect the entire websites color scheme: links, arrows, labels, ... */ + --primary-color: #1779c4; + --primary-dark-color: #335c80; + --primary-light-color: #70b1e9; + + /* page base colors */ + --page-background-color: #ffffff; + --page-foreground-color: #2f4153; + --page-secondary-foreground-color: #6f7e8e; + + /* color for all separators on the website: hr, borders, ... */ + --separator-color: #dedede; + + /* border radius for all rounded components. Will affect many components, like dropdowns, memitems, codeblocks, ... */ + --border-radius-large: 8px; + --border-radius-small: 4px; + --border-radius-medium: 6px; + + /* default spacings. Most components reference these values for spacing, to provide uniform spacing on the page. */ + --spacing-small: 5px; + --spacing-medium: 10px; + --spacing-large: 16px; + + /* default box shadow used for raising an element above the normal content. Used in dropdowns, search result, ... */ + --box-shadow: 0 2px 8px 0 rgba(0,0,0,.075); + + --odd-color: rgba(0,0,0,.028); + + /* font-families. will affect all text on the website + * font-family: the normal font for text, headlines, menus + * font-family-monospace: used for preformatted text in memtitle, code, fragments + */ + --font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif; + --font-family-monospace: ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace; + + /* font sizes */ + --page-font-size: 15.6px; + --navigation-font-size: 14.4px; + --toc-font-size: 13.4px; + --code-font-size: 14px; /* affects code, fragment */ + --title-font-size: 22px; + + /* content text properties. These only affect the page content, not the navigation or any other ui elements */ + --content-line-height: 27px; + /* The content is centered and constraint in it's width. To make the content fill the whole page, set the variable to auto.*/ + --content-maxwidth: 1050px; + --table-line-height: 24px; + --toc-sticky-top: var(--spacing-medium); + --toc-width: 200px; + --toc-max-height: calc(100vh - 2 * var(--spacing-medium) - 85px); + + /* colors for various content boxes: @warning, @note, @deprecated @bug */ + --warning-color: #f8d1cc; + --warning-color-dark: #b61825; + --warning-color-darker: #75070f; + --note-color: #faf3d8; + --note-color-dark: #f3a600; + --note-color-darker: #5f4204; + --todo-color: #e4f3ff; + --todo-color-dark: #1879C4; + --todo-color-darker: #274a5c; + --deprecated-color: #ecf0f3; + --deprecated-color-dark: #5b6269; + --deprecated-color-darker: #43454a; + --bug-color: #e4dafd; + --bug-color-dark: #5b2bdd; + --bug-color-darker: #2a0d72; + --invariant-color: #d8f1e3; + --invariant-color-dark: #44b86f; + --invariant-color-darker: #265532; + + /* blockquote colors */ + --blockquote-background: #f8f9fa; + --blockquote-foreground: #636568; + + /* table colors */ + --tablehead-background: #f1f1f1; + --tablehead-foreground: var(--page-foreground-color); + + /* menu-display: block | none + * Visibility of the top navigation on screens >= 768px. On smaller screen the menu is always visible. + * `GENERATE_TREEVIEW` MUST be enabled! + */ + --menu-display: block; + + --menu-focus-foreground: var(--page-background-color); + --menu-focus-background: var(--primary-color); + --menu-selected-background: rgba(0,0,0,.05); + + + --header-background: var(--page-background-color); + --header-foreground: var(--page-foreground-color); + + /* searchbar colors */ + --searchbar-background: var(--side-nav-background); + --searchbar-foreground: var(--page-foreground-color); + + /* searchbar size + * (`searchbar-width` is only applied on screens >= 768px. + * on smaller screens the searchbar will always fill the entire screen width) */ + --searchbar-height: 33px; + --searchbar-width: 210px; + --searchbar-border-radius: var(--searchbar-height); + + /* code block colors */ + --code-background: #f5f5f5; + --code-foreground: var(--page-foreground-color); + + /* fragment colors */ + --fragment-background: #F8F9FA; + --fragment-foreground: #37474F; + --fragment-keyword: #bb6bb2; + --fragment-keywordtype: #8258b3; + --fragment-keywordflow: #d67c3b; + --fragment-token: #438a59; + --fragment-comment: #969696; + --fragment-link: #5383d6; + --fragment-preprocessor: #46aaa5; + --fragment-linenumber-color: #797979; + --fragment-linenumber-background: #f4f4f5; + --fragment-linenumber-border: #e3e5e7; + --fragment-lineheight: 20px; + + /* sidebar navigation (treeview) colors */ + --side-nav-background: #fbfbfb; + --side-nav-foreground: var(--page-foreground-color); + --side-nav-arrow-opacity: 0; + --side-nav-arrow-hover-opacity: 0.9; + + --toc-background: var(--side-nav-background); + --toc-foreground: var(--side-nav-foreground); + + /* height of an item in any tree / collapsible table */ + --tree-item-height: 30px; + + --memname-font-size: var(--code-font-size); + --memtitle-font-size: 18px; + + --webkit-scrollbar-size: 7px; + --webkit-scrollbar-padding: 4px; + --webkit-scrollbar-color: var(--separator-color); +} + +@media screen and (max-width: 767px) { + html { + --page-font-size: 16px; + --navigation-font-size: 16px; + --toc-font-size: 15px; + --code-font-size: 15px; /* affects code, fragment */ + --title-font-size: 22px; + } +} + +@media (prefers-color-scheme: dark) { + html:not(.light-mode) { + color-scheme: dark; + + --primary-color: #1982d2; + --primary-dark-color: #86a9c4; + --primary-light-color: #4779ac; + + --box-shadow: 0 2px 8px 0 rgba(0,0,0,.35); + + --odd-color: rgba(100,100,100,.06); + + --menu-selected-background: rgba(0,0,0,.4); + + --page-background-color: #1C1D1F; + --page-foreground-color: #d2dbde; + --page-secondary-foreground-color: #859399; + --separator-color: #38393b; + --side-nav-background: #252628; + + --code-background: #2a2c2f; + + --tablehead-background: #2a2c2f; + + --blockquote-background: #222325; + --blockquote-foreground: #7e8c92; + + --warning-color: #2e1917; + --warning-color-dark: #ad2617; + --warning-color-darker: #f5b1aa; + --note-color: #3b2e04; + --note-color-dark: #f1b602; + --note-color-darker: #ceb670; + --todo-color: #163750; + --todo-color-dark: #1982D2; + --todo-color-darker: #dcf0fa; + --deprecated-color: #2e323b; + --deprecated-color-dark: #738396; + --deprecated-color-darker: #abb0bd; + --bug-color: #2a2536; + --bug-color-dark: #7661b3; + --bug-color-darker: #ae9ed6; + --invariant-color: #303a35; + --invariant-color-dark: #76ce96; + --invariant-color-darker: #cceed5; + + --fragment-background: #282c34; + --fragment-foreground: #dbe4eb; + --fragment-keyword: #cc99cd; + --fragment-keywordtype: #ab99cd; + --fragment-keywordflow: #e08000; + --fragment-token: #7ec699; + --fragment-comment: #999999; + --fragment-link: #98c0e3; + --fragment-preprocessor: #65cabe; + --fragment-linenumber-color: #cccccc; + --fragment-linenumber-background: #35393c; + --fragment-linenumber-border: #1f1f1f; + } +} + +/* dark mode variables are defined twice, to support both the dark-mode without and with doxygen-awesome-darkmode-toggle.js */ +html.dark-mode { + color-scheme: dark; + + --primary-color: #1982d2; + --primary-dark-color: #86a9c4; + --primary-light-color: #4779ac; + + --box-shadow: 0 2px 8px 0 rgba(0,0,0,.30); + + --odd-color: rgba(100,100,100,.06); + + --menu-selected-background: rgba(0,0,0,.4); + + --page-background-color: #1C1D1F; + --page-foreground-color: #d2dbde; + --page-secondary-foreground-color: #859399; + --separator-color: #38393b; + --side-nav-background: #252628; + + --code-background: #2a2c2f; + + --tablehead-background: #2a2c2f; + + --blockquote-background: #222325; + --blockquote-foreground: #7e8c92; + + --warning-color: #2e1917; + --warning-color-dark: #ad2617; + --warning-color-darker: #f5b1aa; + --note-color: #3b2e04; + --note-color-dark: #f1b602; + --note-color-darker: #ceb670; + --todo-color: #163750; + --todo-color-dark: #1982D2; + --todo-color-darker: #dcf0fa; + --deprecated-color: #2e323b; + --deprecated-color-dark: #738396; + --deprecated-color-darker: #abb0bd; + --bug-color: #2a2536; + --bug-color-dark: #7661b3; + --bug-color-darker: #ae9ed6; + --invariant-color: #303a35; + --invariant-color-dark: #76ce96; + --invariant-color-darker: #cceed5; + + --fragment-background: #282c34; + --fragment-foreground: #dbe4eb; + --fragment-keyword: #cc99cd; + --fragment-keywordtype: #ab99cd; + --fragment-keywordflow: #e08000; + --fragment-token: #7ec699; + --fragment-comment: #999999; + --fragment-link: #98c0e3; + --fragment-preprocessor: #65cabe; + --fragment-linenumber-color: #cccccc; + --fragment-linenumber-background: #35393c; + --fragment-linenumber-border: #1f1f1f; +} + +body { + color: var(--page-foreground-color); + background-color: var(--page-background-color); + font-size: var(--page-font-size); +} + +body, table, div, p, dl, #nav-tree .label, .title, +.sm-dox a, .sm-dox a:hover, .sm-dox a:focus, #projectname, +.SelectItem, #MSearchField, .navpath li.navelem a, +.navpath li.navelem a:hover, p.reference, p.definition { + font-family: var(--font-family); +} + +h1, h2, h3, h4, h5 { + margin-top: .9em; + font-weight: 600; + line-height: initial; +} + +p, div, table, dl, p.reference, p.definition { + font-size: var(--page-font-size); +} + +p.reference, p.definition { + color: var(--page-secondary-foreground-color); +} + +a:link, a:visited, a:hover, a:focus, a:active { + color: var(--primary-color) !important; + font-weight: 500; +} + +a.anchor { + scroll-margin-top: var(--spacing-large); + display: block; +} + +/* + Title and top navigation + */ + +#top { + background: var(--header-background); + border-bottom: 1px solid var(--separator-color); +} + +@media screen and (min-width: 768px) { + #top { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + align-items: center; + } +} + +#main-nav { + flex-grow: 5; + padding: var(--spacing-small) var(--spacing-medium); +} + +#titlearea { + width: auto; + padding: var(--spacing-medium) var(--spacing-large); + background: none; + color: var(--header-foreground); + border-bottom: none; +} + +@media screen and (max-width: 767px) { + #titlearea { + padding-bottom: var(--spacing-small); + } +} + +#titlearea table tbody tr { + height: auto !important; +} + +#projectname { + font-size: var(--title-font-size); + font-weight: 600; +} + +#projectnumber { + font-family: inherit; + font-size: 60%; +} + +#projectbrief { + font-family: inherit; + font-size: 80%; +} + +#projectlogo { + vertical-align: middle; +} + +#projectlogo img { + max-height: calc(var(--title-font-size) * 2); + margin-right: var(--spacing-small); +} + +.sm-dox, .tabs, .tabs2, .tabs3 { + background: none; + padding: 0; +} + +.tabs, .tabs2, .tabs3 { + border-bottom: 1px solid var(--separator-color); + margin-bottom: -1px; +} + +.main-menu-btn-icon, .main-menu-btn-icon:before, .main-menu-btn-icon:after { + background: var(--page-secondary-foreground-color); +} + +@media screen and (max-width: 767px) { + .sm-dox a span.sub-arrow { + background: var(--code-background); + } + + #main-menu a.has-submenu span.sub-arrow { + color: var(--page-secondary-foreground-color); + border-radius: var(--border-radius-medium); + } + + #main-menu a.has-submenu:hover span.sub-arrow { + color: var(--page-foreground-color); + } +} + +@media screen and (min-width: 768px) { + .sm-dox li, .tablist li { + display: var(--menu-display); + } + + .sm-dox a span.sub-arrow { + border-color: var(--header-foreground) transparent transparent transparent; + } + + .sm-dox a:hover span.sub-arrow { + border-color: var(--menu-focus-foreground) transparent transparent transparent; + } + + .sm-dox ul a span.sub-arrow { + border-color: transparent transparent transparent var(--page-foreground-color); + } + + .sm-dox ul a:hover span.sub-arrow { + border-color: transparent transparent transparent var(--menu-focus-foreground); + } +} + +.sm-dox ul { + background: var(--page-background-color); + box-shadow: var(--box-shadow); + border: 1px solid var(--separator-color); + border-radius: var(--border-radius-medium) !important; + padding: var(--spacing-small); + animation: ease-out 150ms slideInMenu; +} + +@keyframes slideInMenu { + from { + opacity: 0; + transform: translate(0px, -2px); + } + + to { + opacity: 1; + transform: translate(0px, 0px); + } +} + +.sm-dox ul a { + color: var(--page-foreground-color) !important; + background: var(--page-background-color); + font-size: var(--navigation-font-size); +} + +.sm-dox>li>ul:after { + border-bottom-color: var(--page-background-color) !important; +} + +.sm-dox>li>ul:before { + border-bottom-color: var(--separator-color) !important; +} + +.sm-dox ul a:hover, .sm-dox ul a:active, .sm-dox ul a:focus { + font-size: var(--navigation-font-size) !important; + color: var(--menu-focus-foreground) !important; + text-shadow: none; + background-color: var(--menu-focus-background); + border-radius: var(--border-radius-small) !important; +} + +.sm-dox a, .sm-dox a:focus, .tablist li, .tablist li a, .tablist li.current a { + text-shadow: none; + background: transparent; + background-image: none !important; + color: var(--header-foreground) !important; + font-weight: normal; + font-size: var(--navigation-font-size); + border-radius: var(--border-radius-small) !important; +} + +.sm-dox a:focus { + outline: auto; +} + +.sm-dox a:hover, .sm-dox a:active, .tablist li a:hover { + text-shadow: none; + font-weight: normal; + background: var(--menu-focus-background); + color: var(--menu-focus-foreground) !important; + border-radius: var(--border-radius-small) !important; + font-size: var(--navigation-font-size); +} + +.tablist li.current { + border-radius: var(--border-radius-small); + background: var(--menu-selected-background); +} + +.tablist li { + margin: var(--spacing-small) 0 var(--spacing-small) var(--spacing-small); +} + +.tablist a { + padding: 0 var(--spacing-large); +} + + +/* + Search box + */ + +#MSearchBox { + height: var(--searchbar-height); + background: var(--searchbar-background); + border-radius: var(--searchbar-border-radius); + border: 1px solid var(--separator-color); + overflow: hidden; + width: var(--searchbar-width); + position: relative; + box-shadow: none; + display: block; + margin-top: 0; +} + +/* until Doxygen 1.9.4 */ +.left img#MSearchSelect { + left: 0; + user-select: none; + padding-left: 8px; +} + +/* Doxygen 1.9.5 */ +.left span#MSearchSelect { + left: 0; + user-select: none; + margin-left: 8px; + padding: 0; +} + +.left #MSearchSelect[src$=".png"] { + padding-left: 0 +} + +.SelectionMark { + user-select: none; +} + +.tabs .left #MSearchSelect { + padding-left: 0; +} + +.tabs #MSearchBox { + position: absolute; + right: var(--spacing-medium); +} + +@media screen and (max-width: 767px) { + .tabs #MSearchBox { + position: relative; + right: 0; + margin-left: var(--spacing-medium); + margin-top: 0; + } +} + +#MSearchSelectWindow, #MSearchResultsWindow { + z-index: 9999; +} + +#MSearchBox.MSearchBoxActive { + border-color: var(--primary-color); + box-shadow: inset 0 0 0 1px var(--primary-color); +} + +#main-menu > li:last-child { + margin-right: 0; +} + +@media screen and (max-width: 767px) { + #main-menu > li:last-child { + height: 50px; + } +} + +#MSearchField { + font-size: var(--navigation-font-size); + height: calc(var(--searchbar-height) - 2px); + background: transparent; + width: calc(var(--searchbar-width) - 64px); +} + +.MSearchBoxActive #MSearchField { + color: var(--searchbar-foreground); +} + +#MSearchSelect { + top: calc(calc(var(--searchbar-height) / 2) - 11px); +} + +#MSearchBox span.left, #MSearchBox span.right { + background: none; + background-image: none; +} + +#MSearchBox span.right { + padding-top: calc(calc(var(--searchbar-height) / 2) - 12px); + position: absolute; + right: var(--spacing-small); +} + +.tabs #MSearchBox span.right { + top: calc(calc(var(--searchbar-height) / 2) - 12px); +} + +@keyframes slideInSearchResults { + from { + opacity: 0; + transform: translate(0, 15px); + } + + to { + opacity: 1; + transform: translate(0, 20px); + } +} + +#MSearchResultsWindow { + left: auto !important; + right: var(--spacing-medium); + border-radius: var(--border-radius-large); + border: 1px solid var(--separator-color); + transform: translate(0, 20px); + box-shadow: var(--box-shadow); + animation: ease-out 280ms slideInSearchResults; + background: var(--page-background-color); +} + +iframe#MSearchResults { + margin: 4px; +} + +iframe { + color-scheme: normal; +} + +@media (prefers-color-scheme: dark) { + html:not(.light-mode) iframe#MSearchResults { + filter: invert() hue-rotate(180deg); + } +} + +html.dark-mode iframe#MSearchResults { + filter: invert() hue-rotate(180deg); +} + +#MSearchResults .SRPage { + background-color: transparent; +} + +#MSearchResults .SRPage .SREntry { + font-size: 10pt; + padding: var(--spacing-small) var(--spacing-medium); +} + +#MSearchSelectWindow { + border: 1px solid var(--separator-color); + border-radius: var(--border-radius-medium); + box-shadow: var(--box-shadow); + background: var(--page-background-color); + padding-top: var(--spacing-small); + padding-bottom: var(--spacing-small); +} + +#MSearchSelectWindow a.SelectItem { + font-size: var(--navigation-font-size); + line-height: var(--content-line-height); + margin: 0 var(--spacing-small); + border-radius: var(--border-radius-small); + color: var(--page-foreground-color) !important; + font-weight: normal; +} + +#MSearchSelectWindow a.SelectItem:hover { + background: var(--menu-focus-background); + color: var(--menu-focus-foreground) !important; +} + +@media screen and (max-width: 767px) { + #MSearchBox { + margin-top: var(--spacing-medium); + margin-bottom: var(--spacing-medium); + width: calc(100vw - 30px); + } + + #main-menu > li:last-child { + float: none !important; + } + + #MSearchField { + width: calc(100vw - 110px); + } + + @keyframes slideInSearchResultsMobile { + from { + opacity: 0; + transform: translate(0, 15px); + } + + to { + opacity: 1; + transform: translate(0, 20px); + } + } + + #MSearchResultsWindow { + left: var(--spacing-medium) !important; + right: var(--spacing-medium); + overflow: auto; + transform: translate(0, 20px); + animation: ease-out 280ms slideInSearchResultsMobile; + width: auto !important; + } + + /* + * Overwrites for fixing the searchbox on mobile in doxygen 1.9.2 + */ + label.main-menu-btn ~ #searchBoxPos1 { + top: 3px !important; + right: 6px !important; + left: 45px; + display: flex; + } + + label.main-menu-btn ~ #searchBoxPos1 > #MSearchBox { + margin-top: 0; + margin-bottom: 0; + flex-grow: 2; + float: left; + } +} + +/* + Tree view + */ + +#side-nav { + padding: 0 !important; + background: var(--side-nav-background); + min-width: 8px; + max-width: 50vw; +} + +@media screen and (max-width: 767px) { + #side-nav { + display: none; + } + + #doc-content { + margin-left: 0 !important; + } +} + +#nav-tree { + background: transparent; + margin-right: 1px; +} + +#nav-tree .label { + font-size: var(--navigation-font-size); +} + +#nav-tree .item { + height: var(--tree-item-height); + line-height: var(--tree-item-height); +} + +#nav-sync { + bottom: 12px; + right: 12px; + top: auto !important; + user-select: none; +} + +#nav-tree .selected { + text-shadow: none; + background-image: none; + background-color: transparent; + position: relative; +} + +#nav-tree .selected::after { + content: ""; + position: absolute; + top: 1px; + bottom: 1px; + left: 0; + width: 4px; + border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0; + background: var(--primary-color); +} + + +#nav-tree a { + color: var(--side-nav-foreground) !important; + font-weight: normal; +} + +#nav-tree a:focus { + outline-style: auto; +} + +#nav-tree .arrow { + opacity: var(--side-nav-arrow-opacity); +} + +.arrow { + color: inherit; + cursor: pointer; + font-size: 45%; + vertical-align: middle; + margin-right: 2px; + font-family: serif; + height: auto; + text-align: right; +} + +#nav-tree div.item:hover .arrow, #nav-tree a:focus .arrow { + opacity: var(--side-nav-arrow-hover-opacity); +} + +#nav-tree .selected a { + color: var(--primary-color) !important; + font-weight: bolder; + font-weight: 600; +} + +.ui-resizable-e { + width: 4px; + background: transparent; + box-shadow: inset -1px 0 0 0 var(--separator-color); +} + +/* + Contents + */ + +div.header { + border-bottom: 1px solid var(--separator-color); + background-color: var(--page-background-color); + background-image: none; +} + +@media screen and (min-width: 1000px) { + #doc-content > div > div.contents, + .PageDoc > div.contents { + display: flex; + flex-direction: row-reverse; + flex-wrap: nowrap; + align-items: flex-start; + } + + div.contents .textblock { + min-width: 200px; + flex-grow: 1; + } +} + +div.contents, div.header .title, div.header .summary { + max-width: var(--content-maxwidth); +} + +div.contents, div.header .title { + line-height: initial; + margin: calc(var(--spacing-medium) + .2em) auto var(--spacing-medium) auto; +} + +div.header .summary { + margin: var(--spacing-medium) auto 0 auto; +} + +div.headertitle { + padding: 0; +} + +div.header .title { + font-weight: 600; + font-size: 225%; + padding: var(--spacing-medium) var(--spacing-large); + word-break: break-word; +} + +div.header .summary { + width: auto; + display: block; + float: none; + padding: 0 var(--spacing-large); +} + +td.memSeparator { + border-color: var(--separator-color); +} + +span.mlabel { + background: var(--primary-color); + border: none; + padding: 4px 9px; + border-radius: 12px; + margin-right: var(--spacing-medium); +} + +span.mlabel:last-of-type { + margin-right: 2px; +} + +div.contents { + padding: 0 var(--spacing-large); +} + +div.contents p, div.contents li { + line-height: var(--content-line-height); +} + +div.contents div.dyncontent { + margin: var(--spacing-medium) 0; +} + +@media (prefers-color-scheme: dark) { + html:not(.light-mode) div.contents div.dyncontent img, + html:not(.light-mode) div.contents center img, + html:not(.light-mode) div.contents > table img, + html:not(.light-mode) div.contents div.dyncontent iframe, + html:not(.light-mode) div.contents center iframe, + html:not(.light-mode) div.contents table iframe, + html:not(.light-mode) div.contents .dotgraph iframe { + filter: brightness(89%) hue-rotate(180deg) invert(); + } +} + +html.dark-mode div.contents div.dyncontent img, +html.dark-mode div.contents center img, +html.dark-mode div.contents > table img, +html.dark-mode div.contents div.dyncontent iframe, +html.dark-mode div.contents center iframe, +html.dark-mode div.contents table iframe, +html.dark-mode div.contents .dotgraph iframe + { + filter: brightness(89%) hue-rotate(180deg) invert(); +} + +h2.groupheader { + border-bottom: 0px; + color: var(--page-foreground-color); + box-shadow: + 100px 0 var(--page-background-color), + -100px 0 var(--page-background-color), + 100px 0.75px var(--separator-color), + -100px 0.75px var(--separator-color), + 500px 0 var(--page-background-color), + -500px 0 var(--page-background-color), + 500px 0.75px var(--separator-color), + -500px 0.75px var(--separator-color), + 900px 0 var(--page-background-color), + -900px 0 var(--page-background-color), + 900px 0.75px var(--separator-color), + -900px 0.75px var(--separator-color), + 1400px 0 var(--page-background-color), + -1400px 0 var(--page-background-color), + 1400px 0.75px var(--separator-color), + -1400px 0.75px var(--separator-color), + 1900px 0 var(--page-background-color), + -1900px 0 var(--page-background-color), + 1900px 0.75px var(--separator-color), + -1900px 0.75px var(--separator-color); +} + +blockquote { + margin: 0 var(--spacing-medium) 0 var(--spacing-medium); + padding: var(--spacing-small) var(--spacing-large); + background: var(--blockquote-background); + color: var(--blockquote-foreground); + border-left: 0; + overflow: visible; + border-radius: var(--border-radius-medium); + overflow: visible; + position: relative; +} + +blockquote::before, blockquote::after { + font-weight: bold; + font-family: serif; + font-size: 360%; + opacity: .15; + position: absolute; +} + +blockquote::before { + content: "“"; + left: -10px; + top: 4px; +} + +blockquote::after { + content: "”"; + right: -8px; + bottom: -25px; +} + +blockquote p { + margin: var(--spacing-small) 0 var(--spacing-medium) 0; +} +.paramname { + font-weight: 600; + color: var(--primary-dark-color); +} + +.paramname > code { + border: 0; +} + +table.params .paramname { + font-weight: 600; + font-family: var(--font-family-monospace); + font-size: var(--code-font-size); + padding-right: var(--spacing-small); + line-height: var(--table-line-height); +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px var(--primary-light-color); +} + +.alphachar a { + color: var(--page-foreground-color); +} + +.dotgraph { + max-width: 100%; + overflow-x: scroll; +} + +.dotgraph .caption { + position: sticky; + left: 0; +} + +/* Wrap Graphviz graphs with the `interactive_dotgraph` class if `INTERACTIVE_SVG = YES` */ +.interactive_dotgraph .dotgraph iframe { + max-width: 100%; +} + +/* + Table of Contents + */ + +div.contents .toc { + max-height: var(--toc-max-height); + min-width: var(--toc-width); + border: 0; + border-left: 1px solid var(--separator-color); + border-radius: 0; + background-color: transparent; + box-shadow: none; + position: sticky; + top: var(--toc-sticky-top); + padding: 0 var(--spacing-large); + margin: var(--spacing-small) 0 var(--spacing-large) var(--spacing-large); +} + +div.toc h3 { + color: var(--toc-foreground); + font-size: var(--navigation-font-size); + margin: var(--spacing-large) 0 var(--spacing-medium) 0; +} + +div.toc li { + padding: 0; + background: none; + line-height: var(--toc-font-size); + margin: var(--toc-font-size) 0 0 0; +} + +div.toc li::before { + display: none; +} + +div.toc ul { + margin-top: 0 +} + +div.toc li a { + font-size: var(--toc-font-size); + color: var(--page-foreground-color) !important; + text-decoration: none; +} + +div.toc li a:hover, div.toc li a.active { + color: var(--primary-color) !important; +} + +div.toc li a.aboveActive { + color: var(--page-secondary-foreground-color) !important; +} + + +@media screen and (max-width: 999px) { + div.contents .toc { + max-height: 45vh; + float: none; + width: auto; + margin: 0 0 var(--spacing-medium) 0; + position: relative; + top: 0; + position: relative; + border: 1px solid var(--separator-color); + border-radius: var(--border-radius-medium); + background-color: var(--toc-background); + box-shadow: var(--box-shadow); + } + + div.contents .toc.interactive { + max-height: calc(var(--navigation-font-size) + 2 * var(--spacing-large)); + overflow: hidden; + } + + div.contents .toc > h3 { + -webkit-tap-highlight-color: transparent; + cursor: pointer; + position: sticky; + top: 0; + background-color: var(--toc-background); + margin: 0; + padding: var(--spacing-large) 0; + display: block; + } + + div.contents .toc.interactive > h3::before { + content: ""; + width: 0; + height: 0; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-top: 5px solid var(--primary-color); + display: inline-block; + margin-right: var(--spacing-small); + margin-bottom: calc(var(--navigation-font-size) / 4); + transform: rotate(-90deg); + transition: transform 0.25s ease-out; + } + + div.contents .toc.interactive.open > h3::before { + transform: rotate(0deg); + } + + div.contents .toc.interactive.open { + max-height: 45vh; + overflow: auto; + transition: max-height 0.2s ease-in-out; + } + + div.contents .toc a, div.contents .toc a.active { + color: var(--primary-color) !important; + } + + div.contents .toc a:hover { + text-decoration: underline; + } +} + +/* + Code & Fragments + */ + +code, div.fragment, pre.fragment { + border-radius: var(--border-radius-small); + border: 1px solid var(--separator-color); + overflow: hidden; +} + +code { + display: inline; + background: var(--code-background); + color: var(--code-foreground); + padding: 2px 6px; +} + +div.fragment, pre.fragment { + margin: var(--spacing-medium) 0; + padding: calc(var(--spacing-large) - (var(--spacing-large) / 6)) var(--spacing-large); + background: var(--fragment-background); + color: var(--fragment-foreground); + overflow-x: auto; +} + +@media screen and (max-width: 767px) { + div.fragment, pre.fragment { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + border-right: 0; + } + + .contents > div.fragment, + .textblock > div.fragment, + .textblock > pre.fragment, + .contents > .doxygen-awesome-fragment-wrapper > div.fragment, + .textblock > .doxygen-awesome-fragment-wrapper > div.fragment, + .textblock > .doxygen-awesome-fragment-wrapper > pre.fragment { + margin: var(--spacing-medium) calc(0px - var(--spacing-large)); + border-radius: 0; + border-left: 0; + } + + .textblock li > .fragment, + .textblock li > .doxygen-awesome-fragment-wrapper > .fragment { + margin: var(--spacing-medium) calc(0px - var(--spacing-large)); + } + + .memdoc li > .fragment, + .memdoc li > .doxygen-awesome-fragment-wrapper > .fragment { + margin: var(--spacing-medium) calc(0px - var(--spacing-medium)); + } + + .textblock ul, .memdoc ul { + overflow: initial; + } + + .memdoc > div.fragment, + .memdoc > pre.fragment, + dl dd > div.fragment, + dl dd pre.fragment, + .memdoc > .doxygen-awesome-fragment-wrapper > div.fragment, + .memdoc > .doxygen-awesome-fragment-wrapper > pre.fragment, + dl dd > .doxygen-awesome-fragment-wrapper > div.fragment, + dl dd .doxygen-awesome-fragment-wrapper > pre.fragment { + margin: var(--spacing-medium) calc(0px - var(--spacing-medium)); + border-radius: 0; + border-left: 0; + } +} + +code, code a, pre.fragment, div.fragment, div.fragment .line, div.fragment span, div.fragment .line a, div.fragment .line span { + font-family: var(--font-family-monospace); + font-size: var(--code-font-size) !important; +} + +div.line:after { + margin-right: var(--spacing-medium); +} + +div.fragment .line, pre.fragment { + white-space: pre; + word-wrap: initial; + line-height: var(--fragment-lineheight); +} + +div.fragment span.keyword { + color: var(--fragment-keyword); +} + +div.fragment span.keywordtype { + color: var(--fragment-keywordtype); +} + +div.fragment span.keywordflow { + color: var(--fragment-keywordflow); +} + +div.fragment span.stringliteral { + color: var(--fragment-token) +} + +div.fragment span.comment { + color: var(--fragment-comment); +} + +div.fragment a.code { + color: var(--fragment-link) !important; +} + +div.fragment span.preprocessor { + color: var(--fragment-preprocessor); +} + +div.fragment span.lineno { + display: inline-block; + width: 27px; + border-right: none; + background: var(--fragment-linenumber-background); + color: var(--fragment-linenumber-color); +} + +div.fragment span.lineno a { + background: none; + color: var(--fragment-link) !important; +} + +div.fragment .line:first-child .lineno { + box-shadow: -999999px 0px 0 999999px var(--fragment-linenumber-background), -999998px 0px 0 999999px var(--fragment-linenumber-border); +} + +div.line { + border-radius: var(--border-radius-small); +} + +div.line.glow { + background-color: var(--primary-light-color); + box-shadow: none; +} + +/* + dl warning, attention, note, deprecated, bug, ... + */ + +dl.bug dt a, dl.deprecated dt a, dl.todo dt a { + font-weight: bold !important; +} + +dl.warning, dl.attention, dl.note, dl.deprecated, dl.bug, dl.invariant, dl.pre, dl.post, dl.todo, dl.remark { + padding: var(--spacing-medium); + margin: var(--spacing-medium) 0; + color: var(--page-background-color); + overflow: hidden; + margin-left: 0; + border-radius: var(--border-radius-small); +} + +dl.section dd { + margin-bottom: 2px; +} + +dl.warning, dl.attention { + background: var(--warning-color); + border-left: 8px solid var(--warning-color-dark); + color: var(--warning-color-darker); +} + +dl.warning dt, dl.attention dt { + color: var(--warning-color-dark); +} + +dl.note, dl.remark { + background: var(--note-color); + border-left: 8px solid var(--note-color-dark); + color: var(--note-color-darker); +} + +dl.note dt, dl.remark dt { + color: var(--note-color-dark); +} + +dl.todo { + background: var(--todo-color); + border-left: 8px solid var(--todo-color-dark); + color: var(--todo-color-darker); +} + +dl.todo dt { + color: var(--todo-color-dark); +} + +dl.bug dt a { + color: var(--todo-color-dark) !important; +} + +dl.bug { + background: var(--bug-color); + border-left: 8px solid var(--bug-color-dark); + color: var(--bug-color-darker); +} + +dl.bug dt a { + color: var(--bug-color-dark) !important; +} + +dl.deprecated { + background: var(--deprecated-color); + border-left: 8px solid var(--deprecated-color-dark); + color: var(--deprecated-color-darker); +} + +dl.deprecated dt a { + color: var(--deprecated-color-dark) !important; +} + +dl.section dd, dl.bug dd, dl.deprecated dd, dl.todo dd { + margin-inline-start: 0px; +} + +dl.invariant, dl.pre, dl.post { + background: var(--invariant-color); + border-left: 8px solid var(--invariant-color-dark); + color: var(--invariant-color-darker); +} + +dl.invariant dt, dl.pre dt, dl.post dt { + color: var(--invariant-color-dark); +} + +/* + memitem + */ + +div.memdoc, div.memproto, h2.memtitle { + box-shadow: none; + background-image: none; + border: none; +} + +div.memdoc { + padding: 0 var(--spacing-medium); + background: var(--page-background-color); +} + +h2.memtitle, div.memitem { + border: 1px solid var(--separator-color); + box-shadow: var(--box-shadow); +} + +h2.memtitle { + box-shadow: 0px var(--spacing-medium) 0 -1px var(--fragment-background), var(--box-shadow); +} + +div.memitem { + transition: none; +} + +div.memproto, h2.memtitle { + background: var(--fragment-background); +} + +h2.memtitle { + font-weight: 500; + font-size: var(--memtitle-font-size); + font-family: var(--font-family-monospace); + border-bottom: none; + border-top-left-radius: var(--border-radius-medium); + border-top-right-radius: var(--border-radius-medium); + word-break: break-all; + position: relative; +} + +h2.memtitle:after { + content: ""; + display: block; + background: var(--fragment-background); + height: var(--spacing-medium); + bottom: calc(0px - var(--spacing-medium)); + left: 0; + right: -14px; + position: absolute; + border-top-right-radius: var(--border-radius-medium); +} + +h2.memtitle > span.permalink { + font-size: inherit; +} + +h2.memtitle > span.permalink > a { + text-decoration: none; + padding-left: 3px; + margin-right: -4px; + user-select: none; + display: inline-block; + margin-top: -6px; +} + +h2.memtitle > span.permalink > a:hover { + color: var(--primary-dark-color) !important; +} + +a:target + h2.memtitle, a:target + h2.memtitle + div.memitem { + border-color: var(--primary-light-color); +} + +div.memitem { + border-top-right-radius: var(--border-radius-medium); + border-bottom-right-radius: var(--border-radius-medium); + border-bottom-left-radius: var(--border-radius-medium); + overflow: hidden; + display: block !important; +} + +div.memdoc { + border-radius: 0; +} + +div.memproto { + border-radius: 0 var(--border-radius-small) 0 0; + overflow: auto; + border-bottom: 1px solid var(--separator-color); + padding: var(--spacing-medium); + margin-bottom: -1px; +} + +div.memtitle { + border-top-right-radius: var(--border-radius-medium); + border-top-left-radius: var(--border-radius-medium); +} + +div.memproto table.memname { + font-family: var(--font-family-monospace); + color: var(--page-foreground-color); + font-size: var(--memname-font-size); + text-shadow: none; +} + +div.memproto div.memtemplate { + font-family: var(--font-family-monospace); + color: var(--primary-dark-color); + font-size: var(--memname-font-size); + margin-left: 2px; + text-shadow: none; +} + +table.mlabels, table.mlabels > tbody { + display: block; +} + +td.mlabels-left { + width: auto; +} + +td.mlabels-right { + margin-top: 3px; + position: sticky; + left: 0; +} + +table.mlabels > tbody > tr:first-child { + display: flex; + justify-content: space-between; + flex-wrap: wrap; +} + +.memname, .memitem span.mlabels { + margin: 0 +} + +/* + reflist + */ + +dl.reflist { + box-shadow: var(--box-shadow); + border-radius: var(--border-radius-medium); + border: 1px solid var(--separator-color); + overflow: hidden; + padding: 0; +} + + +dl.reflist dt, dl.reflist dd { + box-shadow: none; + text-shadow: none; + background-image: none; + border: none; + padding: 12px; +} + + +dl.reflist dt { + font-weight: 500; + border-radius: 0; + background: var(--code-background); + border-bottom: 1px solid var(--separator-color); + color: var(--page-foreground-color) +} + + +dl.reflist dd { + background: none; +} + +/* + Table + */ + +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname), +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody { + display: inline-block; + max-width: 100%; +} + +.contents > table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname):not(.classindex) { + margin-left: calc(0px - var(--spacing-large)); + margin-right: calc(0px - var(--spacing-large)); + max-width: calc(100% + 2 * var(--spacing-large)); +} + +table.fieldtable, +table.markdownTable tbody, +table.doxtable tbody { + border: none; + margin: var(--spacing-medium) 0; + box-shadow: 0 0 0 1px var(--separator-color); + border-radius: var(--border-radius-small); +} + +table.markdownTable, table.doxtable, table.fieldtable { + padding: 1px; +} + +table.doxtable caption { + display: block; +} + +table.fieldtable { + border-collapse: collapse; + width: 100%; +} + +th.markdownTableHeadLeft, +th.markdownTableHeadRight, +th.markdownTableHeadCenter, +th.markdownTableHeadNone, +table.doxtable th { + background: var(--tablehead-background); + color: var(--tablehead-foreground); + font-weight: 600; + font-size: var(--page-font-size); +} + +th.markdownTableHeadLeft:first-child, +th.markdownTableHeadRight:first-child, +th.markdownTableHeadCenter:first-child, +th.markdownTableHeadNone:first-child, +table.doxtable tr th:first-child { + border-top-left-radius: var(--border-radius-small); +} + +th.markdownTableHeadLeft:last-child, +th.markdownTableHeadRight:last-child, +th.markdownTableHeadCenter:last-child, +th.markdownTableHeadNone:last-child, +table.doxtable tr th:last-child { + border-top-right-radius: var(--border-radius-small); +} + +table.markdownTable td, +table.markdownTable th, +table.fieldtable td, +table.fieldtable th, +table.doxtable td, +table.doxtable th { + border: 1px solid var(--separator-color); + padding: var(--spacing-small) var(--spacing-medium); +} + +table.markdownTable td:last-child, +table.markdownTable th:last-child, +table.fieldtable td:last-child, +table.fieldtable th:last-child, +table.doxtable td:last-child, +table.doxtable th:last-child { + border-right: none; +} + +table.markdownTable td:first-child, +table.markdownTable th:first-child, +table.fieldtable td:first-child, +table.fieldtable th:first-child, +table.doxtable td:first-child, +table.doxtable th:first-child { + border-left: none; +} + +table.markdownTable tr:first-child td, +table.markdownTable tr:first-child th, +table.fieldtable tr:first-child td, +table.fieldtable tr:first-child th, +table.doxtable tr:first-child td, +table.doxtable tr:first-child th { + border-top: none; +} + +table.markdownTable tr:last-child td, +table.markdownTable tr:last-child th, +table.fieldtable tr:last-child td, +table.fieldtable tr:last-child th, +table.doxtable tr:last-child td, +table.doxtable tr:last-child th { + border-bottom: none; +} + +table.markdownTable tr, table.doxtable tr { + border-bottom: 1px solid var(--separator-color); +} + +table.markdownTable tr:last-child, table.doxtable tr:last-child { + border-bottom: none; +} + +.full_width_table table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) { + display: block; +} + +.full_width_table table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody { + display: table; + width: 100%; +} + +table.fieldtable th { + font-size: var(--page-font-size); + font-weight: 600; + background-image: none; + background-color: var(--tablehead-background); + color: var(--tablehead-foreground); +} + +table.fieldtable td.fieldtype, .fieldtable td.fieldname, .fieldtable td.fielddoc, .fieldtable th { + border-bottom: 1px solid var(--separator-color); + border-right: 1px solid var(--separator-color); +} + +table.fieldtable tr:last-child td:first-child { + border-bottom-left-radius: var(--border-radius-small); +} + +table.fieldtable tr:last-child td:last-child { + border-bottom-right-radius: var(--border-radius-small); +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: var(--primary-light-color); + box-shadow: none; +} + +table.memberdecls { + display: block; + -webkit-tap-highlight-color: transparent; +} + +table.memberdecls tr[class^='memitem'] { + font-family: var(--font-family-monospace); + font-size: var(--code-font-size); +} + +table.memberdecls tr[class^='memitem'] .memTemplParams { + font-family: var(--font-family-monospace); + font-size: var(--code-font-size); + color: var(--primary-dark-color); + white-space: normal; +} + +table.memberdecls .memItemLeft, +table.memberdecls .memItemRight, +table.memberdecls .memTemplItemLeft, +table.memberdecls .memTemplItemRight, +table.memberdecls .memTemplParams { + transition: none; + padding-top: var(--spacing-small); + padding-bottom: var(--spacing-small); + border-top: 1px solid var(--separator-color); + border-bottom: 1px solid var(--separator-color); + background-color: var(--fragment-background); +} + +table.memberdecls .memTemplItemLeft, +table.memberdecls .memTemplItemRight { + padding-top: 2px; +} + +table.memberdecls .memTemplParams { + border-bottom: 0; + border-left: 1px solid var(--separator-color); + border-right: 1px solid var(--separator-color); + border-radius: var(--border-radius-small) var(--border-radius-small) 0 0; + padding-bottom: var(--spacing-small); +} + +table.memberdecls .memTemplItemLeft { + border-radius: 0 0 0 var(--border-radius-small); + border-left: 1px solid var(--separator-color); + border-top: 0; +} + +table.memberdecls .memTemplItemRight { + border-radius: 0 0 var(--border-radius-small) 0; + border-right: 1px solid var(--separator-color); + padding-left: 0; + border-top: 0; +} + +table.memberdecls .memItemLeft { + border-radius: var(--border-radius-small) 0 0 var(--border-radius-small); + border-left: 1px solid var(--separator-color); + padding-left: var(--spacing-medium); + padding-right: 0; +} + +table.memberdecls .memItemRight { + border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0; + border-right: 1px solid var(--separator-color); + padding-right: var(--spacing-medium); + padding-left: 0; + +} + +table.memberdecls .mdescLeft, table.memberdecls .mdescRight { + background: none; + color: var(--page-foreground-color); + padding: var(--spacing-small) 0; +} + +table.memberdecls .memItemLeft, +table.memberdecls .memTemplItemLeft { + padding-right: var(--spacing-medium); +} + +table.memberdecls .memSeparator { + background: var(--page-background-color); + height: var(--spacing-large); + border: 0; + transition: none; +} + +table.memberdecls .groupheader { + margin-bottom: var(--spacing-large); +} + +table.memberdecls .inherit_header td { + padding: 0 0 var(--spacing-medium) 0; + text-indent: -12px; + color: var(--page-secondary-foreground-color); +} + +table.memberdecls img[src="closed.png"], +table.memberdecls img[src="open.png"], +div.dynheader img[src="open.png"], +div.dynheader img[src="closed.png"] { + width: 0; + height: 0; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-top: 5px solid var(--primary-color); + margin-top: 8px; + display: block; + float: left; + margin-left: -10px; + transition: transform 0.25s ease-out; +} + +table.memberdecls img { + margin-right: 10px; +} + +table.memberdecls img[src="closed.png"], +div.dynheader img[src="closed.png"] { + transform: rotate(-90deg); + +} + +.compoundTemplParams { + font-family: var(--font-family-monospace); + color: var(--primary-dark-color); + font-size: var(--code-font-size); +} + +@media screen and (max-width: 767px) { + + table.memberdecls .memItemLeft, + table.memberdecls .memItemRight, + table.memberdecls .mdescLeft, + table.memberdecls .mdescRight, + table.memberdecls .memTemplItemLeft, + table.memberdecls .memTemplItemRight, + table.memberdecls .memTemplParams { + display: block; + text-align: left; + padding-left: var(--spacing-large); + margin: 0 calc(0px - var(--spacing-large)) 0 calc(0px - var(--spacing-large)); + border-right: none; + border-left: none; + border-radius: 0; + white-space: normal; + } + + table.memberdecls .memItemLeft, + table.memberdecls .mdescLeft, + table.memberdecls .memTemplItemLeft { + border-bottom: 0; + padding-bottom: 0; + } + + table.memberdecls .memTemplItemLeft { + padding-top: 0; + } + + table.memberdecls .mdescLeft { + margin-bottom: calc(0px - var(--page-font-size)); + } + + table.memberdecls .memItemRight, + table.memberdecls .mdescRight, + table.memberdecls .memTemplItemRight { + border-top: 0; + padding-top: 0; + padding-right: var(--spacing-large); + overflow-x: auto; + } + + table.memberdecls tr[class^='memitem']:not(.inherit) { + display: block; + width: calc(100vw - 2 * var(--spacing-large)); + } + + table.memberdecls .mdescRight { + color: var(--page-foreground-color); + } + + table.memberdecls tr.inherit { + visibility: hidden; + } + + table.memberdecls tr[style="display: table-row;"] { + display: block !important; + visibility: visible; + width: calc(100vw - 2 * var(--spacing-large)); + animation: fade .5s; + } + + @keyframes fade { + 0% { + opacity: 0; + max-height: 0; + } + + 100% { + opacity: 1; + max-height: 200px; + } + } +} + + +/* + Horizontal Rule + */ + +hr { + margin-top: var(--spacing-large); + margin-bottom: var(--spacing-large); + height: 1px; + background-color: var(--separator-color); + border: 0; +} + +.contents hr { + box-shadow: 100px 0 0 var(--separator-color), + -100px 0 0 var(--separator-color), + 500px 0 0 var(--separator-color), + -500px 0 0 var(--separator-color), + 1500px 0 0 var(--separator-color), + -1500px 0 0 var(--separator-color), + 2000px 0 0 var(--separator-color), + -2000px 0 0 var(--separator-color); +} + +.contents img, .contents .center, .contents center, .contents div.image object { + max-width: 100%; + overflow: auto; +} + +@media screen and (max-width: 767px) { + .contents .dyncontent > .center, .contents > center { + margin-left: calc(0px - var(--spacing-large)); + margin-right: calc(0px - var(--spacing-large)); + max-width: calc(100% + 2 * var(--spacing-large)); + } +} + +/* + Directories + */ +div.directory { + border-top: 1px solid var(--separator-color); + border-bottom: 1px solid var(--separator-color); + width: auto; +} + +table.directory { + font-family: var(--font-family); + font-size: var(--page-font-size); + font-weight: normal; + width: 100%; +} + +table.directory td.entry, table.directory td.desc { + padding: calc(var(--spacing-small) / 2) var(--spacing-small); + line-height: var(--table-line-height); +} + +table.directory tr.even td:last-child { + border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0; +} + +table.directory tr.even td:first-child { + border-radius: var(--border-radius-small) 0 0 var(--border-radius-small); +} + +table.directory tr.even:last-child td:last-child { + border-radius: 0 var(--border-radius-small) 0 0; +} + +table.directory tr.even:last-child td:first-child { + border-radius: var(--border-radius-small) 0 0 0; +} + +table.directory td.desc { + min-width: 250px; +} + +table.directory tr.even { + background-color: var(--odd-color); +} + +table.directory tr.odd { + background-color: transparent; +} + +.icona { + width: auto; + height: auto; + margin: 0 var(--spacing-small); +} + +.icon { + background: var(--primary-color); + border-radius: var(--border-radius-small); + font-size: var(--page-font-size); + padding: calc(var(--page-font-size) / 5); + line-height: var(--page-font-size); + transform: scale(0.8); + height: auto; + width: var(--page-font-size); + user-select: none; +} + +.iconfopen, .icondoc, .iconfclosed { + background-position: center; + margin-bottom: 0; + height: var(--table-line-height); +} + +.icondoc { + filter: saturate(0.2); +} + +@media screen and (max-width: 767px) { + div.directory { + margin-left: calc(0px - var(--spacing-large)); + margin-right: calc(0px - var(--spacing-large)); + } +} + +@media (prefers-color-scheme: dark) { + html:not(.light-mode) .iconfopen, html:not(.light-mode) .iconfclosed { + filter: hue-rotate(180deg) invert(); + } +} + +html.dark-mode .iconfopen, html.dark-mode .iconfclosed { + filter: hue-rotate(180deg) invert(); +} + +/* + Class list + */ + +.classindex dl.odd { + background: var(--odd-color); + border-radius: var(--border-radius-small); +} + +.classindex dl.even { + background-color: transparent; +} + +/* + Class Index Doxygen 1.8 +*/ + +table.classindex { + margin-left: 0; + margin-right: 0; + width: 100%; +} + +table.classindex table div.ah { + background-image: none; + background-color: initial; + border-color: var(--separator-color); + color: var(--page-foreground-color); + box-shadow: var(--box-shadow); + border-radius: var(--border-radius-large); + padding: var(--spacing-small); +} + +div.qindex { + background-color: var(--odd-color); + border-radius: var(--border-radius-small); + border: 1px solid var(--separator-color); + padding: var(--spacing-small) 0; +} + +/* + Footer and nav-path + */ + +#nav-path { + width: 100%; +} + +#nav-path ul { + background-image: none; + background: var(--page-background-color); + border: none; + border-top: 1px solid var(--separator-color); + border-bottom: 1px solid var(--separator-color); + border-bottom: 0; + box-shadow: 0 0.75px 0 var(--separator-color); + font-size: var(--navigation-font-size); +} + +img.footer { + width: 60px; +} + +.navpath li.footer { + color: var(--page-secondary-foreground-color); +} + +address.footer { + color: var(--page-secondary-foreground-color); + margin-bottom: var(--spacing-large); +} + +#nav-path li.navelem { + background-image: none; + display: flex; + align-items: center; +} + +.navpath li.navelem a { + text-shadow: none; + display: inline-block; + color: var(--primary-color) !important; +} + +.navpath li.navelem b { + color: var(--primary-dark-color); + font-weight: 500; +} + +li.navelem { + padding: 0; + margin-left: -8px; +} + +li.navelem:first-child { + margin-left: var(--spacing-large); +} + +li.navelem:first-child:before { + display: none; +} + +#nav-path li.navelem:after { + content: ''; + border: 5px solid var(--page-background-color); + border-bottom-color: transparent; + border-right-color: transparent; + border-top-color: transparent; + transform: translateY(-1px) scaleY(4.2); + z-index: 10; + margin-left: 6px; +} + +#nav-path li.navelem:before { + content: ''; + border: 5px solid var(--separator-color); + border-bottom-color: transparent; + border-right-color: transparent; + border-top-color: transparent; + transform: translateY(-1px) scaleY(3.2); + margin-right: var(--spacing-small); +} + +.navpath li.navelem a:hover { + color: var(--primary-color); +} + +/* + Scrollbars for Webkit +*/ + +#nav-tree::-webkit-scrollbar, +div.fragment::-webkit-scrollbar, +pre.fragment::-webkit-scrollbar, +div.memproto::-webkit-scrollbar, +.contents center::-webkit-scrollbar, +.contents .center::-webkit-scrollbar, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody::-webkit-scrollbar, +div.contents .toc::-webkit-scrollbar, +.contents .dotgraph::-webkit-scrollbar, +.contents .tabs-overview-container::-webkit-scrollbar { + background: transparent; + width: calc(var(--webkit-scrollbar-size) + var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding)); + height: calc(var(--webkit-scrollbar-size) + var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding)); +} + +#nav-tree::-webkit-scrollbar-thumb, +div.fragment::-webkit-scrollbar-thumb, +pre.fragment::-webkit-scrollbar-thumb, +div.memproto::-webkit-scrollbar-thumb, +.contents center::-webkit-scrollbar-thumb, +.contents .center::-webkit-scrollbar-thumb, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody::-webkit-scrollbar-thumb, +div.contents .toc::-webkit-scrollbar-thumb, +.contents .dotgraph::-webkit-scrollbar-thumb, +.contents .tabs-overview-container::-webkit-scrollbar-thumb { + background-color: transparent; + border: var(--webkit-scrollbar-padding) solid transparent; + border-radius: calc(var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding)); + background-clip: padding-box; +} + +#nav-tree:hover::-webkit-scrollbar-thumb, +div.fragment:hover::-webkit-scrollbar-thumb, +pre.fragment:hover::-webkit-scrollbar-thumb, +div.memproto:hover::-webkit-scrollbar-thumb, +.contents center:hover::-webkit-scrollbar-thumb, +.contents .center:hover::-webkit-scrollbar-thumb, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody:hover::-webkit-scrollbar-thumb, +div.contents .toc:hover::-webkit-scrollbar-thumb, +.contents .dotgraph:hover::-webkit-scrollbar-thumb, +.contents .tabs-overview-container:hover::-webkit-scrollbar-thumb { + background-color: var(--webkit-scrollbar-color); +} + +#nav-tree::-webkit-scrollbar-track, +div.fragment::-webkit-scrollbar-track, +pre.fragment::-webkit-scrollbar-track, +div.memproto::-webkit-scrollbar-track, +.contents center::-webkit-scrollbar-track, +.contents .center::-webkit-scrollbar-track, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody::-webkit-scrollbar-track, +div.contents .toc::-webkit-scrollbar-track, +.contents .dotgraph::-webkit-scrollbar-track, +.contents .tabs-overview-container::-webkit-scrollbar-track { + background: transparent; +} + +#nav-tree::-webkit-scrollbar-corner { + background-color: var(--side-nav-background); +} + +#nav-tree, +div.fragment, +pre.fragment, +div.memproto, +.contents center, +.contents .center, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody, +div.contents .toc { + overflow-x: auto; + overflow-x: overlay; +} + +#nav-tree { + overflow-x: auto; + overflow-y: auto; + overflow-y: overlay; +} + +/* + Scrollbars for Firefox +*/ + +#nav-tree, +div.fragment, +pre.fragment, +div.memproto, +.contents center, +.contents .center, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody, +div.contents .toc, +.contents .dotgraph, +.contents .tabs-overview-container { + scrollbar-width: thin; +} + +/* + Optional Dark mode toggle button +*/ + +doxygen-awesome-dark-mode-toggle { + display: inline-block; + margin: 0 0 0 var(--spacing-small); + padding: 0; + width: var(--searchbar-height); + height: var(--searchbar-height); + background: none; + border: none; + border-radius: var(--searchbar-height); + vertical-align: middle; + text-align: center; + line-height: var(--searchbar-height); + font-size: 22px; + display: flex; + align-items: center; + justify-content: center; + user-select: none; + cursor: pointer; +} + +doxygen-awesome-dark-mode-toggle > svg { + transition: transform .1s ease-in-out; +} + +doxygen-awesome-dark-mode-toggle:active > svg { + transform: scale(.5); +} + +doxygen-awesome-dark-mode-toggle:hover { + background-color: rgba(0,0,0,.03); +} + +html.dark-mode doxygen-awesome-dark-mode-toggle:hover { + background-color: rgba(0,0,0,.18); +} + +/* + Optional fragment copy button +*/ +.doxygen-awesome-fragment-wrapper { + position: relative; +} + +doxygen-awesome-fragment-copy-button { + opacity: 0; + background: var(--fragment-background); + width: 28px; + height: 28px; + position: absolute; + right: calc(var(--spacing-large) - (var(--spacing-large) / 2.5)); + top: calc(var(--spacing-large) - (var(--spacing-large) / 2.5)); + border: 1px solid var(--fragment-foreground); + cursor: pointer; + border-radius: var(--border-radius-small); + display: flex; + justify-content: center; + align-items: center; +} + +.doxygen-awesome-fragment-wrapper:hover doxygen-awesome-fragment-copy-button, doxygen-awesome-fragment-copy-button.success { + opacity: .28; +} + +doxygen-awesome-fragment-copy-button:hover, doxygen-awesome-fragment-copy-button.success { + opacity: 1 !important; +} + +doxygen-awesome-fragment-copy-button:active:not([class~=success]) svg { + transform: scale(.91); +} + +doxygen-awesome-fragment-copy-button svg { + fill: var(--fragment-foreground); + width: 18px; + height: 18px; +} + +doxygen-awesome-fragment-copy-button.success svg { + fill: rgb(14, 168, 14); +} + +doxygen-awesome-fragment-copy-button.success { + border-color: rgb(14, 168, 14); +} + +@media screen and (max-width: 767px) { + .textblock > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button, + .textblock li > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button, + .memdoc li > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button, + .memdoc > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button, + dl dd > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button { + right: 0; + } +} + +/* + Optional paragraph link button +*/ + +a.anchorlink { + font-size: 90%; + margin-left: var(--spacing-small); + color: var(--page-foreground-color) !important; + text-decoration: none; + opacity: .15; + display: none; + transition: opacity .1s ease-in-out, color .1s ease-in-out; +} + +a.anchorlink svg { + fill: var(--page-foreground-color); +} + +h3 a.anchorlink svg, h4 a.anchorlink svg { + margin-bottom: -3px; + margin-top: -4px; +} + +a.anchorlink:hover { + opacity: .45; +} + +h2:hover a.anchorlink, h1:hover a.anchorlink, h3:hover a.anchorlink, h4:hover a.anchorlink { + display: inline-block; +} + +/* + Optional tab feature +*/ + +.tabbed { + margin: var(--spacing-medium) auto; +} + +.tabbed ul { + padding-inline-start: 0px; + margin: 0; + padding: var(--spacing-small) 0; + border-bottom: 1px solid var(--separator-color); +} + +.tabbed li { + display: none; +} + +.tabbed li.selected { + display: block; +} + +.tabs-overview-container { + overflow-x: auto; + display: block; + overflow-y: visible; +} + +.tabs-overview { + border-bottom: 1px solid var(--separator-color); + display: flex; + flex-direction: row; +} + +.tabs-overview button.tab-button { + color: var(--page-foreground-color); + margin: 0; + border: none; + background: transparent; + padding: var(--spacing-small) 0; + display: inline-block; + font-size: var(--page-font-size); + cursor: pointer; + box-shadow: 0 1px 0 0 var(--separator-color); + position: relative; +} + +.tabs-overview button.tab-button .tab-title { + float: left; + white-space: nowrap; + padding: var(--spacing-small) var(--spacing-large); + border-radius: var(--border-radius-medium); +} + +.tabs-overview button.tab-button:not(:last-child) .tab-title { + box-shadow: 8px 0 0 -7px var(--separator-color); +} + +.tabs-overview button.tab-button:hover .tab-title { + background: var(--separator-color); + box-shadow: none; +} + +.tabs-overview button.tab-button.active { + color: var(--primary-color); +} + +.tabs-overview button.tab-button.active::after { + content: ''; + display: block; + position: absolute; + left: 0px; + bottom: 0; + right: 0px; + height: 3px; + border-radius: var(--border-radius-small) var(--border-radius-small) 0 0; + background-color: var(--primary-color); +} +#projectalign {padding-right: 1em;} diff --git a/doxygen.css b/doxygen.css new file mode 100644 index 0000000..8cff99e --- /dev/null +++ b/doxygen.css @@ -0,0 +1,1685 @@ +/* The standard CSS for doxygen 1.9.8*/ + +body { + background-color: white; + color: black; +} + +body, table, div, p, dl { + font-weight: 400; + font-size: 14px; + font-family: Roboto,sans-serif; + line-height: 22px; +} + +/* @group Heading Levels */ + +.title { + font-weight: 400; + font-size: 14px; + font-family: Roboto,sans-serif; + line-height: 28px; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h1.groupheader { + font-size: 150%; +} + +h2.groupheader { + border-bottom: 1px solid #879ECB; + color: #354C7B; + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + +dt { + font-weight: bold; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +th p.starttd, th p.intertd, th p.endtd { + font-size: 100%; + font-weight: 700; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +p.interli { +} + +p.interdd { +} + +p.intertd { +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.navtab { + padding-right: 15px; + text-align: right; + line-height: 110%; +} + +div.navtab table { + border-spacing: 0; +} + +td.navtab { + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL a, td.navtabHL a:visited { + color: white; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} + +a.navtab { + font-weight: bold; +} + +div.qindex{ + text-align: center; + width: 100%; + line-height: 140%; + font-size: 130%; + color: #A0A0A0; +} + +#main-menu a:focus { + outline: auto; + z-index: 10; + position: relative; +} + +dt.alphachar{ + font-size: 180%; + font-weight: bold; +} + +.alphachar a{ + color: black; +} + +.alphachar a:hover, .alphachar a:visited{ + text-decoration: none; +} + +.classindex dl { + padding: 25px; + column-count:1 +} + +.classindex dd { + display:inline-block; + margin-left: 50px; + width: 90%; + line-height: 1.15em; +} + +.classindex dl.even { + background-color: white; +} + +.classindex dl.odd { + background-color: #F8F9FC; +} + +@media(min-width: 1120px) { + .classindex dl { + column-count:2 + } +} + +@media(min-width: 1320px) { + .classindex dl { + column-count:3 + } +} + + +/* @group Link Styling */ + +a { + color: #3D578C; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #4665A2; +} + +a:hover { + text-decoration: underline; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: #4665A2; +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: #4665A2; +} + +a.code.hl_class { /* style for links to class names in code snippets */ } +a.code.hl_struct { /* style for links to struct names in code snippets */ } +a.code.hl_union { /* style for links to union names in code snippets */ } +a.code.hl_interface { /* style for links to interface names in code snippets */ } +a.code.hl_protocol { /* style for links to protocol names in code snippets */ } +a.code.hl_category { /* style for links to category names in code snippets */ } +a.code.hl_exception { /* style for links to exception names in code snippets */ } +a.code.hl_service { /* style for links to service names in code snippets */ } +a.code.hl_singleton { /* style for links to singleton names in code snippets */ } +a.code.hl_concept { /* style for links to concept names in code snippets */ } +a.code.hl_namespace { /* style for links to namespace names in code snippets */ } +a.code.hl_package { /* style for links to package names in code snippets */ } +a.code.hl_define { /* style for links to macro names in code snippets */ } +a.code.hl_function { /* style for links to function names in code snippets */ } +a.code.hl_variable { /* style for links to variable names in code snippets */ } +a.code.hl_typedef { /* style for links to typedef names in code snippets */ } +a.code.hl_enumvalue { /* style for links to enum value names in code snippets */ } +a.code.hl_enumeration { /* style for links to enumeration names in code snippets */ } +a.code.hl_signal { /* style for links to Qt signal names in code snippets */ } +a.code.hl_slot { /* style for links to Qt slot names in code snippets */ } +a.code.hl_friend { /* style for links to friend names in code snippets */ } +a.code.hl_dcop { /* style for links to KDE3 DCOP names in code snippets */ } +a.code.hl_property { /* style for links to property names in code snippets */ } +a.code.hl_event { /* style for links to event names in code snippets */ } +a.code.hl_sequence { /* style for links to sequence names in code snippets */ } +a.code.hl_dictionary { /* style for links to dictionary names in code snippets */ } + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +ul { + overflow: visible; +} + +ul.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; + list-style-type: none; +} + +#side-nav ul { + overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ +} + +#main-nav ul { + overflow: visible; /* reset ul rule for the navigation bar drop down lists */ +} + +.fragment { + text-align: left; + direction: ltr; + overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ + overflow-y: hidden; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + color: black; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; + font-size: 105%; +} + +div.fragment { + padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ + margin: 4px 8px 4px 2px; + color: black; + background-color: #FBFCFD; + border: 1px solid #C4CFE5; +} + +div.line { + font-family: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; + font-size: 13px; + min-height: 13px; + line-height: 1.2; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line:after { + content:"\000A"; + white-space: pre; +} + +div.line.glow { + background-color: cyan; + box-shadow: 0 0 10px cyan; +} + +span.fold { + margin-left: 5px; + margin-right: 1px; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; + display: inline-block; + width: 12px; + height: 12px; + background-repeat:no-repeat; + background-position:center; +} + +span.lineno { + padding-right: 4px; + margin-right: 9px; + text-align: right; + border-right: 2px solid #00FF00; + color: black; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a, span.lineno a:visited { + color: #4665A2; + background-color: #D8D8D8; +} + +span.lineno a:hover { + color: #4665A2; + background-color: #C8C8C8; +} + +.lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +p.formulaDsp { + text-align: center; +} + +img.dark-mode-visible { + display: none; +} +img.light-mode-visible { + display: none; +} + +img.formulaDsp { + +} + +img.formulaInl, img.inline { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; + width: 104px; +} + +.compoundTemplParams { + color: #4665A2; + font-size: 80%; + line-height: 120%; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000; +} + +span.keywordtype { + color: #604020; +} + +span.keywordflow { + color: #E08000; +} + +span.comment { + color: #800000; +} + +span.preprocessor { + color: #806020; +} + +span.stringliteral { + color: #002080; +} + +span.charliteral { + color: #008080; +} + +span.xmlcdata { + color: black; +} + +span.vhdldigit { + color: #FF00FF; +} + +span.vhdlchar { + color: #000000; +} + +span.vhdlkeyword { + color: #700070; +} + +span.vhdllogic { + color: #FF0000; +} + +blockquote { + background-color: #F7F8FB; + border-left: 2px solid #9CAFD4; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #2D4068; +} + +th.dirtab { + background-color: #374F7F; + color: #FFFFFF; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #4A6AAA; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F9FAFC; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memSeparator { + border-bottom: 1px solid #DEE4F0; + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight, .memTemplItemRight { + width: 100%; +} + +.memTemplParams { + color: #4665A2; + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtitle { + padding: 8px; + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-image: url('nav_f.png'); + background-repeat: repeat-x; + background-color: #E2E8F2; + line-height: 1.25; + font-weight: 300; + float:left; +} + +.permalink +{ + font-size: 65%; + display: inline-block; + vertical-align: middle; +} + +.memtemplate { + font-size: 80%; + color: #4665A2; + font-weight: normal; + margin-left: 9px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; +} + +.memname { + font-weight: 400; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 0px 6px 0px; + color: #253555; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-color: #DFE5F1; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; +} + +.overload { + font-family: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; + font-size: 65%; +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 10px 2px 10px; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: white; + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype, .tparams .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir, .tparams .paramdir { + font-family: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: #728DC1; + border-top:1px solid #5373B4; + border-left:1px solid #5373B4; + border-right:1px solid #C4CFE5; + border-bottom:1px solid #C4CFE5; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid #9CAFD4; + border-bottom: 1px solid #9CAFD4; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.odd { + padding-left: 6px; + background-color: #F8F9FC; +} + +.directory tr.even { + padding-left: 6px; + background-color: white; +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #3D578C; +} + +.arrow { + color: #9CAFD4; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: Arial,Helvetica; + line-height: normal; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: #728DC1; + color: white; + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderopen.svg'); + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderclosed.svg'); + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('doc.svg'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: #2A3D61; +} + +table.doxtable caption { + caption-side: top; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + margin-bottom: 10px; + border: 1px solid #A8B8D9; + border-spacing: 0px; + border-radius: 4px; + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #A8B8D9; + border-bottom: 1px solid #A8B8D9; + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #A8B8D9; +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image: url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + font-size: 90%; + color: #253555; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + font-weight: 400; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #A8B8D9; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image: url('tab_b.png'); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:#283A5D; + border:solid 1px #C2CDE4; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color: #364D7C; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: #283A5D; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color: white; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color: #2A3D61; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image: url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + margin: 0px; + border-bottom: 1px solid #C4CFE5; +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +.PageDocRTL-title div.headertitle { + text-align: right; + direction: rtl; +} + +dl { + padding: 0 0 0 0; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ +dl.section { + margin-left: 0px; + padding-left: 0px; +} + +dl.note { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00D000; +} + +dl.deprecated { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #505050; +} + +dl.todo { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00C0E0; +} + +dl.test { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #3030E0; +} + +dl.bug { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectrow +{ + height: 56px; +} + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; + padding-left: 0.5em; +} + +#projectname +{ + font-size: 200%; + font-family: Tahoma,Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font-size: 90%; + font-family: Tahoma,Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font-size: 50%; + font-family: 50% Tahoma,Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #5373B4; + background-color: white; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.plantumlgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#334975; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; + text-align:right; + width:52px; +} + +dl.citelist dd { + margin:2px 0 2px 72px; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #F4F6FA; + border: 1px solid #D8DFEE; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +div.toc li { + background: url("data:image/svg+xml;utf8,&%238595;") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,'DejaVu Sans',Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 Verdana,'DejaVu Sans',Geneva,sans-serif; + color: #4665A2; + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 15px; +} + +div.toc li.level4 { + margin-left: 15px; +} + +span.emoji { + /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html + * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort; + */ +} + +span.obfuscator { + display: none; +} + +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + /*white-space: nowrap;*/ + color: black; + background-color: white; + border: 1px solid gray; + border-radius: 4px 4px 4px 4px; + box-shadow: 1px 1px 7px gray; + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: grey; + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip a { + color: #4665A2; +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: #006318; +} + +#powerTip div { + margin: 0px; + padding: 0px; + font-size: 12px; + font-family: Roboto,sans-serif; + line-height: 16px; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: white; + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before, #powerTip.ne:before, #powerTip.nw:before { + border-top-color: gray; + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: white; + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: gray; + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: gray; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: gray; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: gray; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: gray; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + +/* @group Markdown */ + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft, td.markdownTableBodyLeft { + text-align: left +} + +th.markdownTableHeadRight, td.markdownTableBodyRight { + text-align: right +} + +th.markdownTableHeadCenter, td.markdownTableBodyCenter { + text-align: center +} + +tt, code, kbd, samp +{ + display: inline-block; +} +/* @end */ + +u { + text-decoration: underline; +} + +details>summary { + list-style-type: none; +} + +details > summary::-webkit-details-marker { + display: none; +} + +details>summary::before { + content: "\25ba"; + padding-right:4px; + font-size: 80%; +} + +details[open]>summary::before { + content: "\25bc"; + padding-right:4px; + font-size: 80%; +} + diff --git a/doxygen.svg b/doxygen.svg new file mode 100644 index 0000000..79a7635 --- /dev/null +++ b/doxygen.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dynsections.js b/dynsections.js new file mode 100644 index 0000000..ee3f142 --- /dev/null +++ b/dynsections.js @@ -0,0 +1,192 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); + $('table.directory tr'). + removeClass('odd').filter(':visible:odd').addClass('odd'); +} + +function toggleLevel(level) +{ + $('table.directory tr').each(function() { + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l'); + // add vertical lines to other rows + $('span[class=lineno]').not(':eq(0)').append(''); + // add toggle controls to lines with fold divs + $('div[class=foldopen]').each(function() { + // extract specific id to use + var id = $(this).attr('id').replace('foldopen',''); + // extract start and end foldable fragment attributes + var start = $(this).attr('data-start'); + var end = $(this).attr('data-end'); + // replace normal fold span with controls for the first line of a foldable fragment + $(this).find('span[class=fold]:first').replaceWith(''); + // append div for folded (closed) representation + $(this).after(''); + // extract the first line from the "open" section to represent closed content + var line = $(this).children().first().clone(); + // remove any glow that might still be active on the original line + $(line).removeClass('glow'); + if (start) { + // if line already ends with a start marker (e.g. trailing {), remove it + $(line).html($(line).html().replace(new RegExp('\\s*'+start+'\\s*$','g'),'')); + } + // replace minus with plus symbol + $(line).find('span[class=fold]').css('background-image',plusImg[relPath]); + // append ellipsis + $(line).append(' '+start+''+end); + // insert constructed line into closed div + $('#foldclosed'+id).html(line); + }); +} + +/* @license-end */ diff --git a/files.html b/files.html new file mode 100644 index 0000000..e0a95e9 --- /dev/null +++ b/files.html @@ -0,0 +1,129 @@ + + + + + + + +Ti Constructor: File List + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Ti Constructor +
+
+ +   + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
File List
+
+
+
Here is a list of all documented files with brief descriptions:
+
[detail level 12]
+ + + + + + + + + + + + + + +
  lib
 errors.cSome simple ways to throw an error
 essentials.cThis should be #included in all files
 fast_math.cFast math operations, and some 16-bit fixed point path
 floatmath.cUse the built in calculator floating point math
 graphics.cSome useful graphics functions
 greyscale.cUnlocks greyscale on the calc at the cost of some cpu
 interupts.cSet of tools for custom interupts
 memory.cA simple and preforment memory allocator
 misc.cSome random but useful functions
 textio.cString I/O type stuff
 ti83plus.hTI-83 Plus Include File
 userinput.c2 useful functions for getting user input
 variables.cUsed for working with calculator variables
+
+
+
+ + + + diff --git a/files_dup.js b/files_dup.js new file mode 100644 index 0000000..1be523d --- /dev/null +++ b/files_dup.js @@ -0,0 +1,4 @@ +var files_dup = +[ + [ "lib", "dir_97aefd0d527b934f1d99a682da8fe6a9.html", "dir_97aefd0d527b934f1d99a682da8fe6a9" ] +]; \ No newline at end of file diff --git a/folderclosed.svg b/folderclosed.svg new file mode 100644 index 0000000..b04bed2 --- /dev/null +++ b/folderclosed.svg @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/folderclosedd.svg b/folderclosedd.svg new file mode 100644 index 0000000..52f0166 --- /dev/null +++ b/folderclosedd.svg @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/folderopen.svg b/folderopen.svg new file mode 100644 index 0000000..f6896dd --- /dev/null +++ b/folderopen.svg @@ -0,0 +1,17 @@ + + + + + + + + + + diff --git a/folderopend.svg b/folderopend.svg new file mode 100644 index 0000000..2d1f06e --- /dev/null +++ b/folderopend.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/functions.html b/functions.html new file mode 100644 index 0000000..fab173b --- /dev/null +++ b/functions.html @@ -0,0 +1,113 @@ + + + + + + + +Ti Constructor: Data Fields + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Ti Constructor +
+
+ +   + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:
+
+
+ + + + diff --git a/functions_vars.html b/functions_vars.html new file mode 100644 index 0000000..449467c --- /dev/null +++ b/functions_vars.html @@ -0,0 +1,113 @@ + + + + + + + +Ti Constructor: Data Fields - Variables + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Ti Constructor +
+
+ +   + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented variables with links to the struct/union documentation for each field:
+
+
+ + + + diff --git a/globals.html b/globals.html new file mode 100644 index 0000000..746bbe4 --- /dev/null +++ b/globals.html @@ -0,0 +1,352 @@ + + + + + + + +Ti Constructor: Globals + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Ti Constructor +
+
+ +   + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:
+ +

- _ -

+ + +

- a -

+ + +

- b -

+ + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- g -

+ + +

- h -

+ + +

- i -

+ + +

- l -

+ + +

- m -

+ + +

- n -

+ + +

- o -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+ + +

- u -

+ + +

- v -

+ + +

- w -

+ + +

- x -

+ + +

- y -

+
+
+ + + + diff --git a/globals_defs.html b/globals_defs.html new file mode 100644 index 0000000..1fac8aa --- /dev/null +++ b/globals_defs.html @@ -0,0 +1,283 @@ + + + + + + + +Ti Constructor: Globals + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Ti Constructor +
+
+ +   + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented macros with links to the documentation:
+ +

- _ -

+ + +

- a -

+ + +

- b -

+ + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- g -

+ + +

- h -

+ + +

- i -

+ + +

- l -

+ + +

- m -

+ + +

- n -

+ + +

- o -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+ + +

- u -

+ + +

- w -

+ + +

- x -

+ + +

- y -

+
+
+ + + + diff --git a/globals_func.html b/globals_func.html new file mode 100644 index 0000000..8daad7d --- /dev/null +++ b/globals_func.html @@ -0,0 +1,238 @@ + + + + + + + +Ti Constructor: Globals + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Ti Constructor +
+
+ +   + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented functions with links to the documentation:
+ +

- _ -

+ + +

- a -

+ + +

- c -

+ + +

- d -

+ + +

- f -

+ + +

- g -

+ + +

- h -

+ + +

- i -

+ + +

- l -

+ + +

- m -

+ + +

- n -

+ + +

- o -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- v -

+ + +

- w -

+
+
+ + + + diff --git a/globals_vars.html b/globals_vars.html new file mode 100644 index 0000000..c9ca6b1 --- /dev/null +++ b/globals_vars.html @@ -0,0 +1,113 @@ + + + + + + + +Ti Constructor: Globals + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Ti Constructor +
+
+ +   + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented variables with links to the documentation:
+
+
+ + + + diff --git a/index.html b/index.html new file mode 100644 index 0000000..b5c0aaa --- /dev/null +++ b/index.html @@ -0,0 +1,177 @@ + + + + + + + +Ti Constructor: # TiConstructor + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Ti Constructor +
+
+ +   + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
# TiConstructor
+
+
+

Click here for docs.
+ Or click here to get back to github from the docs.

+

        This is a remake of my LibTi84 project and aims to provide a means for the construction of games for the ti-84 (NON CE). This is more or less a culmination of all my knowledge in this niche field. I am not an expert. And this is a personal tool I use in my quest for a real-time 3d game for the ti-84. Everything should be capable of being built as an app or as a program (As long as you don't use any non-constant global variables).

+

        I do not plan to rely on any shells, although Noshell is recommended for asm programs. This is made for linux, although you can use WSL if you must use windows.

+

+How to get started

+

        First, make sure you have the right project, this is for the ti-84 monochrome calculators, if your calculator has color you have come to the wrong place. Next, I recommend you use an emulator for development so you don't brick your real device, I personally never run anything other than the end product on my physical calculator. You might want to use jsTIfied, an Online TI-83+/TI-84+ Graphing Calculator Emulator hosted on cemetech. But if you use an emulator you will need a rom (Read Only Memory dump of a calculator), the legal option is to dump your calculator's rom using rom 8x, although you can also download a rom from archive.org. Next, you will need to follow the installation steps. If you have the helloworld successfully building and running in the emulator you are about done. At this point, if you don't know what to do now, I recommend you learn how to program with the calculator from ti-84 in 28 days guide, I know you came here for C, but it provided essential info. Along with SDCC - Interfacing with Z80 assembler code, whitch provides essential info on how to use inline asm and differences with sdcc's z80 asm and what the guide uses. Also look in the src/ and look as what functions are avalible to use.

+

        Ok, ok, I know that was a lot to digest, but if you did all that, you are now ready to make all sorts of cool shit. If you want to make fun 2d games you can do it all in c(sort of), if you want to make some 3d games, you might not have such luck. That is what this project's goal is, to make a real-time 3d game, but that is quite hard with this calculator being an 8-bit device with half-baked 16-bit compatibility. But as of now, a world of possibilities is opened.

+

+How to install

+
    +
  1. First im going to assume you are using linux, or at least set up WSL. Although if you don't want to install anything you can try out github codespaces and skip the clone step, but everytime you build you need to download file.
  2. +
  3. Clone this repo with: git clone https://github.com/HeronErin/TiConstructor.git
  4. +
  5. Install SDCC version 4.1 +
  6. +
  7. If you are using Ubuntu you need to use the rabbitsign ubuntu versing rm other_files/rabbitsign && mv other_files/rabbitsign_ubuntu_build other_files/rabbitsign && chmod +x other_files/rabbitsign
  8. +
  9. Test it out
  10. +
+
bash build_prog.sh examples/helloworld/ helloWorld
+

or

+
bash build_app.sh examples/helloworld/ helloWorld
+

Now that you have a working build system, install tilp (or TI Connect for windows) and send the file to your calc.

+

+How this works

+

        This is not something that was simple to figure out, there is no unified guide to the ti84/ti83+. But here is my explanation of what this toolkit does. SDCC compiles c code to z80 assembly and assembles it into a binary file. Then if you are making a program binpac8x.py will pack it into a program file (.8xp). If you are making an app a buildid is generated for you, my script generates a custom header for you, and rabbitsign will sign it with the freeware key and converts it to an app file (.8xk). But thanks to the work of me and the giants whose shoulders I stand on, that is all abstracted away from you with a single line build command.

+

        For you, the developer, I gave you a few files in the lib/ forlder, these are some useful tools for what ever you are making. Since you are often trying to keep build sizes down, many functions require you to enable them with #define USE_FUNCTION_NAME after you #include the source file. I recommend you look at the source code of the library itself for the exact #includes you need to use. And now there exists some documentation for this toolkit over here.

+

Ps. Don't remove the .buildid files, you need to keep the same .buildid everytime you update an app on your calculator

+

+Some useful resources

+ +

+Random fun facts

+
    +
  1. When you build an app, a .buildid file is generated with a unique(ish) id for your app. This is what allows you to update it on the calculator because can't replace an app on your calculator with an app with the same name but a different build id, and the calculator refuses to allow 2 apps to exist with the same build id, so don't delete your .buildid or you will be forced to get a new name >:{
  2. +
  3. Since apps require you to bcall JForceCmdNoChar before you exit, I came up with an interesting trick to do this for you, since I didn't want a mandatory bcall. If you push a value to the stack without popping it, the ret keyword will jump to that memory address, this is how functions work, so before your app runs, I simply push the address of my code that runs the required bcall, making this run after your main function returns.
  4. +
+

+Credits

+

I did take some code from others, I just can't do it all myself.

+ +
+
+
+ + + + diff --git a/index.js b/index.js new file mode 100644 index 0000000..83bc7bb --- /dev/null +++ b/index.js @@ -0,0 +1,9 @@ +var index = +[ + [ "How to get started", "index.html#autotoc_md0", null ], + [ "How to install", "index.html#autotoc_md1", null ], + [ "How this works", "index.html#autotoc_md2", null ], + [ "Some useful resources", "index.html#autotoc_md3", null ], + [ "Random fun facts", "index.html#autotoc_md4", null ], + [ "Credits", "index.html#autotoc_md5", null ] +]; \ No newline at end of file diff --git a/jquery.js b/jquery.js new file mode 100644 index 0000000..1dffb65 --- /dev/null +++ b/jquery.js @@ -0,0 +1,34 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=y(e||this.defaultElement||this)[0],this.element=y(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=y(),this.hoverable=y(),this.focusable=y(),this.classesElementLookup={},e!==this&&(y.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=y(e.style?e.ownerDocument:e.document||e),this.window=y(this.document[0].defaultView||this.document[0].parentWindow)),this.options=y.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:y.noop,_create:y.noop,_init:y.noop,destroy:function(){var i=this;this._destroy(),y.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:y.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return y.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=y.widget.extend({},this.options[t]),n=0;n
"),i=e.children()[0];return y("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthx(D(s),D(n))?o.important="horizontal":o.important="vertical",p.using.call(this,t,o)}),h.offset(y.extend(l,{using:t}))})},y.ui.position={fit:{left:function(t,e){var i=e.within,s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,h=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),y.ui.plugin={add:function(t,e,i){var s,n=y.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;n").css({overflow:"hidden",position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),e.autoHide&&y(this.element).on("mouseenter",function(){e.disabled||(i._removeClass("ui-resizable-autohide"),i._handles.show())}).on("mouseleave",function(){e.disabled||i.resizing||(i._addClass("ui-resizable-autohide"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy(),this._addedHandles.remove();function t(t){y(t).removeData("resizable").removeData("ui-resizable").off(".resizable")}var e;return this.elementIsWrapper&&(t(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;case"aspectRatio":this._aspectRatio=!!e}},_setupHandles:function(){var t,e,i,s,n,o=this.options,h=this;if(this.handles=o.handles||(y(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=y(),this._addedHandles=y(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),i=this.handles.split(","),this.handles={},e=0;e"),this._addClass(n,"ui-resizable-handle "+s),n.css({zIndex:o.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.children(this.handles[t]).length||(this.element.append(n),this._addedHandles=this._addedHandles.add(n));this._renderAxis=function(t){var e,i,s;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=y(this.handles[e]),this._on(this.handles[e],{mousedown:h._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=y(this.handles[e],this.element),s=/sw|ne|nw|se|n|s/.test(e)?i.outerHeight():i.outerWidth(),i=["padding",/ne|nw|n/.test(e)?"Top":/se|sw|s/.test(e)?"Bottom":/^e$/.test(e)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add(this.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){h.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),h.axis=n&&n[1]?n[1]:"se")}),o.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._addedHandles.remove()},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)(i=y(this.handles[e])[0])!==t.target&&!y.contains(i,t.target)||(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s=this.options,n=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),s.containment&&(e+=y(s.containment).scrollLeft()||0,i+=y(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:n.width(),height:n.height()},this.originalSize=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()},this.sizeDiff={width:n.outerWidth()-n.width(),height:n.outerHeight()-n.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=y(".ui-resizable-"+this.axis).css("cursor"),y("body").css("cursor","auto"===s?this.axis+"-resize":s),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var e=this.originalMousePosition,i=this.axis,s=t.pageX-e.left||0,e=t.pageY-e.top||0,i=this._change[i];return this._updatePrevProperties(),i&&(e=i.apply(this,[t,s,e]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(e=this._updateRatio(e,t)),e=this._respectSize(e,t),this._updateCache(e),this._propagate("resize",t),e=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),y.isEmptyObject(e)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(s=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:o.sizeDiff.height,i=e?0:o.sizeDiff.width,e={width:o.helper.width()-i,height:o.helper.height()-s},i=parseFloat(o.element.css("left"))+(o.position.left-o.originalPosition.left)||null,s=parseFloat(o.element.css("top"))+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(y.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),y("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s=this.options,n={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0};(this._aspectRatio||t)&&(e=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,s=n.maxHeight*this.aspectRatio,t=n.maxWidth/this.aspectRatio,e>n.minWidth&&(n.minWidth=e),i>n.minHeight&&(n.minHeight=i),st.width,h=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,a=this.originalPosition.left+this.originalSize.width,r=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),h&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=a-e.minWidth),s&&l&&(t.left=a-e.maxWidth),h&&i&&(t.top=r-e.minHeight),n&&i&&(t.top=r-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];e<4;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;e").css({overflow:"hidden"}),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++e.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){y.ui.plugin.call(this,t,[e,this.ui()]),"resize"!==t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),y.ui.plugin.add("resizable","animate",{stop:function(e){var i=y(this).resizable("instance"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],"left")?0:i.sizeDiff.height,h=n?0:i.sizeDiff.width,n={width:i.size.width-h,height:i.size.height-o},h=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,o=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(y.extend(n,o&&h?{top:o,left:h}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};s&&s.length&&y(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),y.ui.plugin.add("resizable","containment",{start:function(){var i,s,n=y(this).resizable("instance"),t=n.options,e=n.element,o=t.containment,h=o instanceof y?o.get(0):/parent/.test(o)?e.parent().get(0):o;h&&(n.containerElement=y(h),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:y(document),left:0,top:0,width:y(document).width(),height:y(document).height()||document.body.parentNode.scrollHeight}):(i=y(h),s=[],y(["Top","Right","Left","Bottom"]).each(function(t,e){s[t]=n._num(i.css("padding"+e))}),n.containerOffset=i.offset(),n.containerPosition=i.position(),n.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},t=n.containerOffset,e=n.containerSize.height,o=n.containerSize.width,o=n._hasScroll(h,"left")?h.scrollWidth:o,e=n._hasScroll(h)?h.scrollHeight:e,n.parentData={element:h,left:t.left,top:t.top,width:o,height:e}))},resize:function(t){var e=y(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.position,o=e._aspectRatio||t.shiftKey,h={top:0,left:0},a=e.containerElement,t=!0;a[0]!==document&&/static/.test(a.css("position"))&&(h=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-h.left),o&&(e.size.height=e.size.width/e.aspectRatio,t=!1),e.position.left=i.helper?s.left:0),n.top<(e._helper?s.top:0)&&(e.size.height=e.size.height+(e._helper?e.position.top-s.top:e.position.top),o&&(e.size.width=e.size.height*e.aspectRatio,t=!1),e.position.top=e._helper?s.top:0),i=e.containerElement.get(0)===e.element.parent().get(0),n=/relative|absolute/.test(e.containerElement.css("position")),i&&n?(e.offset.left=e.parentData.left+e.position.left,e.offset.top=e.parentData.top+e.position.top):(e.offset.left=e.element.offset().left,e.offset.top=e.element.offset().top),n=Math.abs(e.sizeDiff.width+(e._helper?e.offset.left-h.left:e.offset.left-s.left)),s=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-h.top:e.offset.top-s.top)),n+e.size.width>=e.parentData.width&&(e.size.width=e.parentData.width-n,o&&(e.size.height=e.size.width/e.aspectRatio,t=!1)),s+e.size.height>=e.parentData.height&&(e.size.height=e.parentData.height-s,o&&(e.size.width=e.size.height*e.aspectRatio,t=!1)),t||(e.position.left=e.prevPosition.left,e.position.top=e.prevPosition.top,e.size.width=e.prevSize.width,e.size.height=e.prevSize.height)},stop:function(){var t=y(this).resizable("instance"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=y(t.helper),h=o.offset(),a=o.outerWidth()-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o}),t._helper&&!e.animate&&/static/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o})}}),y.ui.plugin.add("resizable","alsoResize",{start:function(){var t=y(this).resizable("instance").options;y(t.alsoResize).each(function(){var t=y(this);t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,i){var e=y(this).resizable("instance"),s=e.options,n=e.originalSize,o=e.originalPosition,h={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};y(s.alsoResize).each(function(){var t=y(this),s=y(this).data("ui-resizable-alsoresize"),n={},e=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];y.each(e,function(t,e){var i=(s[e]||0)+(h[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){y(this).removeData("ui-resizable-alsoresize")}}),y.ui.plugin.add("resizable","ghost",{start:function(){var t=y(this).resizable("instance"),e=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==y.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=y(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=y(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),y.ui.plugin.add("resizable","grid",{resize:function(){var t,e=y(this).resizable("instance"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,h=e.axis,a="number"==typeof i.grid?[i.grid,i.grid]:i.grid,r=a[0]||1,l=a[1]||1,u=Math.round((s.width-n.width)/r)*r,p=Math.round((s.height-n.height)/l)*l,d=n.width+u,c=n.height+p,f=i.maxWidth&&i.maxWidthd,s=i.minHeight&&i.minHeight>c;i.grid=a,m&&(d+=r),s&&(c+=l),f&&(d-=r),g&&(c-=l),/^(se|s|e)$/.test(h)?(e.size.width=d,e.size.height=c):/^(ne)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.top=o.top-p):/^(sw)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.left=o.left-u):((c-l<=0||d-r<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + * http://www.smartmenus.org/ + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/minus.svg b/minus.svg new file mode 100644 index 0000000..f70d0c1 --- /dev/null +++ b/minus.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/minusd.svg b/minusd.svg new file mode 100644 index 0000000..5f8e879 --- /dev/null +++ b/minusd.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/nav_f.png b/nav_f.png new file mode 100644 index 0000000000000000000000000000000000000000..72a58a529ed3a9ed6aa0c51a79cf207e026deee2 GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQVE_ejv*C{Z|{2ZH7M}7UYxc) zn!W8uqtnIQ>_z8U literal 0 HcmV?d00001 diff --git a/nav_fd.png b/nav_fd.png new file mode 100644 index 0000000000000000000000000000000000000000..032fbdd4c54f54fa9a2e6423b94ef4b2ebdfaceb GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQU#tajv*C{Z|C~*H7f|XvG1G8 zt7aS*L7xwMeS}!z6R#{C5tIw-s~AJ==F^i}x3XyJseHR@yF& zerFf(Zf;Dd{+(0lDIROL@Sj-Ju2JQ8&-n%4%q?>|^bShc&lR?}7HeMo@BDl5N(aHY Uj$gdr1MOz;boFyt=akR{0D!zeaR2}S literal 0 HcmV?d00001 diff --git a/nav_g.png b/nav_g.png new file mode 100644 index 0000000000000000000000000000000000000000..2093a237a94f6c83e19ec6e5fd42f7ddabdafa81 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrB!3HFm1ilyoDK$?Q$B+ufw|5PB85lU25BhtE tr?otc=hd~V+ws&_A@j8Fiv!KF$B+ufw|5=67#uj90@pIL wZ=Q8~_Ju`#59=RjDrmm`tMD@M=!-l18IR?&vFVdQ&MBb@0HFXL6W-eg#Jd_@e6*DPn)w;=|1H}Zvm9l6xXXB%>yL=NQU;mg M>FVdQ&MBb@0Bdt1Qvd(} literal 0 HcmV?d00001 diff --git a/navtree.css b/navtree.css new file mode 100644 index 0000000..6b1e5e4 --- /dev/null +++ b/navtree.css @@ -0,0 +1,149 @@ +#nav-tree .children_ul { + margin:0; + padding:4px; +} + +#nav-tree ul { + list-style:none outside none; + margin:0px; + padding:0px; +} + +#nav-tree li { + white-space:nowrap; + margin:0px; + padding:0px; +} + +#nav-tree .plus { + margin:0px; +} + +#nav-tree .selected { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + color: white; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} + +#nav-tree .selected .arrow { + color: #9CAFD4; + text-shadow: none; +} + +#nav-tree img { + margin:0px; + padding:0px; + border:0px; + vertical-align: middle; +} + +#nav-tree a { + text-decoration:none; + padding:0px; + margin:0px; +} + +#nav-tree .label { + margin:0px; + padding:0px; + font: 12px 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +} + +#nav-tree .label a { + padding:2px; +} + +#nav-tree .selected a { + text-decoration:none; + color:white; +} + +#nav-tree .children_ul { + margin:0px; + padding:0px; +} + +#nav-tree .item { + margin:0px; + padding:0px; +} + +#nav-tree { + padding: 0px 0px; + font-size:14px; + overflow:auto; +} + +#doc-content { + overflow:auto; + display:block; + padding:0px; + margin:0px; + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#side-nav { + padding:0 6px 0 0; + margin: 0px; + display:block; + position: absolute; + left: 0px; + width: $width; + overflow : hidden; +} + +.ui-resizable .ui-resizable-handle { + display:block; +} + +.ui-resizable-e { + background-image:url('splitbar.png'); + background-size:100%; + background-repeat:repeat-y; + background-attachment: scroll; + cursor:ew-resize; + height:100%; + right:0; + top:0; + width:6px; +} + +.ui-resizable-handle { + display:none; + font-size:0.1px; + position:absolute; + z-index:1; +} + +#nav-tree-contents { + margin: 6px 0px 0px 0px; +} + +#nav-tree { + background-repeat:repeat-x; + background-color: #F9FAFC; + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#nav-sync { + position:absolute; + top:5px; + right:24px; + z-index:0; +} + +#nav-sync img { + opacity:0.3; +} + +#nav-sync img:hover { + opacity:0.9; +} + +@media print +{ + #nav-tree { display: none; } + div.ui-resizable-handle { display: none; position: relative; } +} + diff --git a/navtree.js b/navtree.js new file mode 100644 index 0000000..93dd3d4 --- /dev/null +++ b/navtree.js @@ -0,0 +1,559 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +var navTreeSubIndices = new Array(); +var arrowDown = '▼'; +var arrowRight = '►'; + +function getData(varName) +{ + var i = varName.lastIndexOf('/'); + var n = i>=0 ? varName.substring(i+1) : varName; + return eval(n.replace(/\-/g,'_')); +} + +function stripPath(uri) +{ + return uri.substring(uri.lastIndexOf('/')+1); +} + +function stripPath2(uri) +{ + var i = uri.lastIndexOf('/'); + var s = uri.substring(i+1); + var m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/); + return m ? uri.substring(i-6) : s; +} + +function hashValue() +{ + return $(location).attr('hash').substring(1).replace(/[^\w\-]/g,''); +} + +function hashUrl() +{ + return '#'+hashValue(); +} + +function pathName() +{ + return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;\(\)]/g, ''); +} + +function localStorageSupported() +{ + try { + return 'localStorage' in window && window['localStorage'] !== null && window.localStorage.getItem; + } + catch(e) { + return false; + } +} + +function storeLink(link) +{ + if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) { + window.localStorage.setItem('navpath',link); + } +} + +function deleteLink() +{ + if (localStorageSupported()) { + window.localStorage.setItem('navpath',''); + } +} + +function cachedLink() +{ + if (localStorageSupported()) { + return window.localStorage.getItem('navpath'); + } else { + return ''; + } +} + +function getScript(scriptName,func) +{ + var head = document.getElementsByTagName("head")[0]; + var script = document.createElement('script'); + script.id = scriptName; + script.type = 'text/javascript'; + script.onload = func; + script.src = scriptName+'.js'; + head.appendChild(script); +} + +function createIndent(o,domNode,node,level) +{ + var level=-1; + var n = node; + while (n.parentNode) { level++; n=n.parentNode; } + if (node.childrenData) { + var imgNode = document.createElement("span"); + imgNode.className = 'arrow'; + imgNode.style.paddingLeft=(16*level).toString()+'px'; + imgNode.innerHTML=arrowRight; + node.plus_img = imgNode; + node.expandToggle = document.createElement("a"); + node.expandToggle.href = "javascript:void(0)"; + node.expandToggle.onclick = function() { + if (node.expanded) { + $(node.getChildrenUL()).slideUp("fast"); + node.plus_img.innerHTML=arrowRight; + node.expanded = false; + } else { + expandNode(o, node, false, true); + } + } + node.expandToggle.appendChild(imgNode); + domNode.appendChild(node.expandToggle); + } else { + var span = document.createElement("span"); + span.className = 'arrow'; + span.style.width = 16*(level+1)+'px'; + span.innerHTML = ' '; + domNode.appendChild(span); + } +} + +var animationInProgress = false; + +function gotoAnchor(anchor,aname,updateLocation) +{ + var pos, docContent = $('#doc-content'); + var ancParent = $(anchor.parent()); + if (ancParent.hasClass('memItemLeft') || + ancParent.hasClass('memtitle') || + ancParent.hasClass('fieldname') || + ancParent.hasClass('fieldtype') || + ancParent.is(':header')) + { + pos = ancParent.position().top; + } else if (anchor.position()) { + pos = anchor.position().top; + } + if (pos) { + var dist = Math.abs(Math.min( + pos-docContent.offset().top, + docContent[0].scrollHeight- + docContent.height()-docContent.scrollTop())); + animationInProgress=true; + docContent.animate({ + scrollTop: pos + docContent.scrollTop() - docContent.offset().top + },Math.max(50,Math.min(500,dist)),function(){ + if (updateLocation) window.location.href=aname; + animationInProgress=false; + }); + } +} + +function newNode(o, po, text, link, childrenData, lastNode) +{ + var node = new Object(); + node.children = Array(); + node.childrenData = childrenData; + node.depth = po.depth + 1; + node.relpath = po.relpath; + node.isLast = lastNode; + + node.li = document.createElement("li"); + po.getChildrenUL().appendChild(node.li); + node.parentNode = po; + + node.itemDiv = document.createElement("div"); + node.itemDiv.className = "item"; + + node.labelSpan = document.createElement("span"); + node.labelSpan.className = "label"; + + createIndent(o,node.itemDiv,node,0); + node.itemDiv.appendChild(node.labelSpan); + node.li.appendChild(node.itemDiv); + + var a = document.createElement("a"); + node.labelSpan.appendChild(a); + node.label = document.createTextNode(text); + node.expanded = false; + a.appendChild(node.label); + if (link) { + var url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + link = url; + } else { + url = node.relpath+link; + } + a.className = stripPath(link.replace('#',':')); + if (link.indexOf('#')!=-1) { + var aname = '#'+link.split('#')[1]; + var srcPage = stripPath(pathName()); + var targetPage = stripPath(link.split('#')[0]); + a.href = srcPage!=targetPage ? url : "javascript:void(0)"; + a.onclick = function(){ + storeLink(link); + if (!$(a).parent().parent().hasClass('selected')) + { + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + $(a).parent().parent().addClass('selected'); + $(a).parent().parent().attr('id','selected'); + } + var anchor = $(aname); + gotoAnchor(anchor,aname,true); + }; + } else { + a.href = url; + a.onclick = function() { storeLink(link); } + } + } else { + if (childrenData != null) + { + a.className = "nolink"; + a.href = "javascript:void(0)"; + a.onclick = node.expandToggle.onclick; + } + } + + node.childrenUL = null; + node.getChildrenUL = function() { + if (!node.childrenUL) { + node.childrenUL = document.createElement("ul"); + node.childrenUL.className = "children_ul"; + node.childrenUL.style.display = "none"; + node.li.appendChild(node.childrenUL); + } + return node.childrenUL; + }; + + return node; +} + +function showRoot() +{ + var headerHeight = $("#top").height(); + var footerHeight = $("#nav-path").height(); + var windowHeight = $(window).height() - headerHeight - footerHeight; + (function (){ // retry until we can scroll to the selected item + try { + var navtree=$('#nav-tree'); + navtree.scrollTo('#selected',100,{offset:-windowHeight/2}); + } catch (err) { + setTimeout(arguments.callee, 0); + } + })(); +} + +function expandNode(o, node, imm, setFocus) +{ + if (node.childrenData && !node.expanded) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + expandNode(o, node, imm, setFocus); + }); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).slideDown("fast"); + node.plus_img.innerHTML = arrowDown; + node.expanded = true; + if (setFocus) { + $(node.expandToggle).focus(); + } + } + } +} + +function glowEffect(n,duration) +{ + n.addClass('glow').delay(duration).queue(function(next){ + $(this).removeClass('glow');next(); + }); +} + +function highlightAnchor() +{ + var aname = hashUrl(); + var anchor = $(aname); + if (anchor.parent().attr('class')=='memItemLeft'){ + var rows = $('.memberdecls tr[class$="'+hashValue()+'"]'); + glowEffect(rows.children(),300); // member without details + } else if (anchor.parent().attr('class')=='fieldname'){ + glowEffect(anchor.parent().parent(),1000); // enum value + } else if (anchor.parent().attr('class')=='fieldtype'){ + glowEffect(anchor.parent().parent(),1000); // struct field + } else if (anchor.parent().is(":header")) { + glowEffect(anchor.parent(),1000); // section header + } else { + glowEffect(anchor.next(),1000); // normal member + } +} + +function selectAndHighlight(hash,n) +{ + var a; + if (hash) { + var link=stripPath(pathName())+':'+hash.substring(1); + a=$('.item a[class$="'+link+'"]'); + } + if (a && a.length) { + a.parent().parent().addClass('selected'); + a.parent().parent().attr('id','selected'); + highlightAnchor(); + } else if (n) { + $(n.itemDiv).addClass('selected'); + $(n.itemDiv).attr('id','selected'); + } + var topOffset=5; + if (typeof page_layout!=='undefined' && page_layout==1) { + topOffset+=$('#top').outerHeight(); + } + if ($('#nav-tree-contents .item:first').hasClass('selected')) { + topOffset+=25; + } + $('#nav-sync').css('top',topOffset+'px'); + showRoot(); +} + +function showNode(o, node, index, hash) +{ + if (node && node.childrenData) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + showNode(o,node,index,hash); + }); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).css({'display':'block'}); + node.plus_img.innerHTML = arrowDown; + node.expanded = true; + var n = node.children[o.breadcrumbs[index]]; + if (index+11) hash = '#'+parts[1].replace(/[^\w\-]/g,''); + else hash=''; + } + if (hash.match(/^#l\d+$/)) { + var anchor=$('a[name='+hash.substring(1)+']'); + glowEffect(anchor.parent(),1000); // line number + hash=''; // strip line number anchors + } + var url=root+hash; + var i=-1; + while (NAVTREEINDEX[i+1]<=url) i++; + if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath) + } else { + getScript(relpath+'navtreeindex'+i,function(){ + navTreeSubIndices[i] = eval('NAVTREEINDEX'+i); + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath); + } + }); + } +} + +function showSyncOff(n,relpath) +{ + n.html(''); +} + +function showSyncOn(n,relpath) +{ + n.html(''); +} + +function toggleSyncButton(relpath) +{ + var navSync = $('#nav-sync'); + if (navSync.hasClass('sync')) { + navSync.removeClass('sync'); + showSyncOff(navSync,relpath); + storeLink(stripPath2(pathName())+hashUrl()); + } else { + navSync.addClass('sync'); + showSyncOn(navSync,relpath); + deleteLink(); + } +} + +var loadTriggered = false; +var readyTriggered = false; +var loadObject,loadToRoot,loadUrl,loadRelPath; + +$(window).on('load',function(){ + if (readyTriggered) { // ready first + navTo(loadObject,loadToRoot,loadUrl,loadRelPath); + showRoot(); + } + loadTriggered=true; +}); + +function initNavTree(toroot,relpath) +{ + var o = new Object(); + o.toroot = toroot; + o.node = new Object(); + o.node.li = document.getElementById("nav-tree-contents"); + o.node.childrenData = NAVTREE; + o.node.children = new Array(); + o.node.childrenUL = document.createElement("ul"); + o.node.getChildrenUL = function() { return o.node.childrenUL; }; + o.node.li.appendChild(o.node.childrenUL); + o.node.depth = 0; + o.node.relpath = relpath; + o.node.expanded = false; + o.node.isLast = true; + o.node.plus_img = document.createElement("span"); + o.node.plus_img.className = 'arrow'; + o.node.plus_img.innerHTML = arrowRight; + + if (localStorageSupported()) { + var navSync = $('#nav-sync'); + if (cachedLink()) { + showSyncOff(navSync,relpath); + navSync.removeClass('sync'); + } else { + showSyncOn(navSync,relpath); + } + navSync.click(function(){ toggleSyncButton(relpath); }); + } + + if (loadTriggered) { // load before ready + navTo(o,toroot,hashUrl(),relpath); + showRoot(); + } else { // ready before load + loadObject = o; + loadToRoot = toroot; + loadUrl = hashUrl(); + loadRelPath = relpath; + readyTriggered=true; + } + + $(window).bind('hashchange', function(){ + if (window.location.hash && window.location.hash.length>1){ + var a; + if ($(location).attr('hash')){ + var clslink=stripPath(pathName())+':'+hashValue(); + a=$('.item a[class$="'+clslink.replace(/1|%O$WD@{VPM$7~Ar*{o?;hlAFyLXmaDC0y znK1_#cQqJWPES%4Uujug^TE?jMft$}Eq^WaR~)%f)vSNs&gek&x%A9X9sM + + + + + + + + diff --git a/plusd.svg b/plusd.svg new file mode 100644 index 0000000..0c65bfe --- /dev/null +++ b/plusd.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/resize.js b/resize.js new file mode 100644 index 0000000..aaeb6fc --- /dev/null +++ b/resize.js @@ -0,0 +1,155 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +var once=1; +function initResizable() +{ + var cookie_namespace = 'doxygen'; + var sidenav,navtree,content,header,barWidth=6,desktop_vp=768,titleHeight; + + function readSetting(cookie) + { + if (window.chrome) { + var val = localStorage.getItem(cookie_namespace+'_width'); + if (val) return val; + } else { + var myCookie = cookie_namespace+"_"+cookie+"="; + if (document.cookie) { + var index = document.cookie.indexOf(myCookie); + if (index != -1) { + var valStart = index + myCookie.length; + var valEnd = document.cookie.indexOf(";", valStart); + if (valEnd == -1) { + valEnd = document.cookie.length; + } + var val = document.cookie.substring(valStart, valEnd); + return val; + } + } + } + return 250; + } + + function writeSetting(cookie, val) + { + if (window.chrome) { + localStorage.setItem(cookie_namespace+"_width",val); + } else { + var date = new Date(); + date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week + expiration = date.toGMTString(); + document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; SameSite=Lax; expires=" + expiration+"; path=/"; + } + } + + function resizeWidth() + { + var windowWidth = $(window).width() + "px"; + var sidenavWidth = $(sidenav).outerWidth(); + content.css({marginLeft:parseInt(sidenavWidth)+"px"}); + if (typeof page_layout!=='undefined' && page_layout==1) { + footer.css({marginLeft:parseInt(sidenavWidth)+"px"}); + } + writeSetting('width',sidenavWidth-barWidth); + } + + function restoreWidth(navWidth) + { + var windowWidth = $(window).width() + "px"; + content.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); + if (typeof page_layout!=='undefined' && page_layout==1) { + footer.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); + } + sidenav.css({width:navWidth + "px"}); + } + + function resizeHeight() + { + var headerHeight = header.outerHeight(); + var footerHeight = footer.outerHeight(); + var windowHeight = $(window).height(); + var contentHeight,navtreeHeight,sideNavHeight; + if (typeof page_layout==='undefined' || page_layout==0) { /* DISABLE_INDEX=NO */ + contentHeight = windowHeight - headerHeight - footerHeight; + navtreeHeight = contentHeight; + sideNavHeight = contentHeight; + } else if (page_layout==1) { /* DISABLE_INDEX=YES */ + contentHeight = windowHeight - footerHeight; + navtreeHeight = windowHeight - headerHeight; + sideNavHeight = windowHeight; + } + content.css({height:contentHeight + "px"}); + navtree.css({height:navtreeHeight + "px"}); + sidenav.css({height:sideNavHeight + "px"}); + if (location.hash.slice(1)) { + (document.getElementById(location.hash.slice(1))||document.body).scrollIntoView(); + } + } + + function collapseExpand() + { + var newWidth; + if (sidenav.width()>0) { + newWidth=0; + } + else { + var width = readSetting('width'); + newWidth = (width>250 && width<$(window).width()) ? width : 250; + } + restoreWidth(newWidth); + var sidenavWidth = $(sidenav).outerWidth(); + writeSetting('width',sidenavWidth-barWidth); + } + + header = $("#top"); + sidenav = $("#side-nav"); + content = $("#doc-content"); + navtree = $("#nav-tree"); + footer = $("#nav-path"); + $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } }); + $(sidenav).resizable({ minWidth: 0 }); + $(window).resize(function() { resizeHeight(); }); + var device = navigator.userAgent.toLowerCase(); + var touch_device = device.match(/(iphone|ipod|ipad|android)/); + if (touch_device) { /* wider split bar for touch only devices */ + $(sidenav).css({ paddingRight:'20px' }); + $('.ui-resizable-e').css({ width:'20px' }); + $('#nav-sync').css({ right:'34px' }); + barWidth=20; + } + var width = readSetting('width'); + if (width) { restoreWidth(width); } else { resizeWidth(); } + resizeHeight(); + var url = location.href; + var i=url.indexOf("#"); + if (i>=0) window.location.hash=url.substr(i); + var _preventDefault = function(evt) { evt.preventDefault(); }; + $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); + if (once) { + $(".ui-resizable-handle").dblclick(collapseExpand); + once=0 + } + $(window).on('load',resizeHeight); +} +/* @license-end */ diff --git a/search/all_0.js b/search/all_0.js new file mode 100644 index 0000000..c01e271 --- /dev/null +++ b/search/all_0.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['_5f_0',['_',['../d4/d49/ti83plus_8h.html#af0c797815d536e2c2a4c889cd8b25846',1,'ti83plus.h']]], + ['_5f_5f_5f_5f_5f_5f_5f_5f_5fset_5finterupts_1',['_________SET_INTERUPTS',['../d1/d74/interupts_8c.html#a541352fa8faca369352a59691f4d7261',1,'interupts.c']]], + ['_5f_5f_5f_5f_5fcopied_5fto_5fposition_2',['_____copied_to_position',['../d1/d74/interupts_8c.html#a6186bb2f266a45dadb0c9e5cfcd4b6a2',1,'interupts.c']]], + ['_5f_5fdiv_5f32_5fby_5f16_3',['__div_32_by_16',['../d7/d31/fast__math_8c.html#aca8c524d27be5cfbed4ec3f4c11979ae',1,'fast_math.c']]], + ['_5f_5fdiv_5fac_5fde_4',['__div_ac_de',['../d7/d31/fast__math_8c.html#ad9881431b8062e65cd27eb83d70998d8',1,'fast_math.c']]], + ['_5f_5fdrawcirclesegment_5',['__drawCircleSegment',['../d5/d95/graphics_8c.html#a03e4a9618b2b842c224b6115a4f5fe66',1,'graphics.c']]], + ['_5f_5ffast_5f16_5fbit_5fsqrt_5fasm_6',['__fast_16_bit_sqrt_asm',['../d7/d31/fast__math_8c.html#adef27832f737507abf3e51908c480b9c',1,'fast_math.c']]], + ['_5f_5fhs_7',['__hs',['../d7/dbc/greyscale_8c.html#a080021f8b22b47e0e515fadb3342b6d8',1,'__hs: greyscale.c'],['../d1/d74/interupts_8c.html#a080021f8b22b47e0e515fadb3342b6d8',1,'__hs: interupts.c']]], + ['_5f_5fmult_5fde_5fbc_8',['__mult_de_bc',['../d7/d31/fast__math_8c.html#a1726e8497ddd5282b66882b4ccc86dce',1,'fast_math.c']]], + ['_5fcalloc_9',['_calloc',['../df/dd5/memory_8c.html#ac9ca267ed9fd6f2ebd03150b16f230a0',1,'memory.c']]], + ['_5ffree_10',['_free',['../df/dd5/memory_8c.html#af1d881f34c18d1e2c88a14f5d94e971b',1,'memory.c']]], + ['_5flcd_5fbusy_5fquick_11',['_LCD_BUSY_QUICK',['../d5/d95/graphics_8c.html#a34ae1178623830a7a8b2c06ad82759be',1,'graphics.c']]], + ['_5fmalloc_12',['_malloc',['../df/dd5/memory_8c.html#a4d78a5f4102f4b0691ecf164af9dadf1',1,'memory.c']]] +]; diff --git a/search/all_1.js b/search/all_1.js new file mode 100644 index 0000000..4f9ec3e --- /dev/null +++ b/search/all_1.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['abcall_0',['abcall',['../d2/d4a/essentials_8c.html#a129499a7680583fc58a699bbb1aca61d',1,'essentials.c']]], + ['archive_1',['archive',['../d5/de8/variables_8c.html#a0d3f0d93af7f9eb4419173b24c725343',1,'variables.c']]], + ['argumenterror_2',['ArgumentError',['../d0/d15/errors_8c.html#a1da40dbd85a4026ffd644fd4d6cdb500',1,'errors.c']]], + ['asavea_3',['aSaveA',['../d2/d4a/essentials_8c.html#a2729ab5166820ef85f4c3a4a50c49c8e',1,'essentials.c']]], + ['auto_5fpurge_5fheap_4',['auto_purge_heap',['../df/dd5/memory_8c.html#aa67674772f75f551422c1a374a8a4b79',1,'memory.c']]] +]; diff --git a/search/all_10.js b/search/all_10.js new file mode 100644 index 0000000..c12f1b2 --- /dev/null +++ b/search/all_10.js @@ -0,0 +1,30 @@ +var searchData= +[ + ['saferam1_0',['saferam1',['../d2/d4a/essentials_8c.html#a96109672f0e8545baf4faf9ab4574343',1,'essentials.c']]], + ['saferam2_1',['saferam2',['../d2/d4a/essentials_8c.html#ac16ec4c70efc5252f43679ed11a348b8',1,'essentials.c']]], + ['saferam3_2',['saferam3',['../d2/d4a/essentials_8c.html#aaed5ef70437a2d0bbf4aad296521e8d3',1,'essentials.c']]], + ['saferam4_3',['saferam4',['../d2/d4a/essentials_8c.html#a068b742df6def2627d3fa3275f84dc8d',1,'essentials.c']]], + ['saferam5_4',['saferam5',['../d2/d4a/essentials_8c.html#a9099cbf3a5987f95a0f104c9f170cfc9',1,'essentials.c']]], + ['save_5fcontrast_5',['SAVE_CONTRAST',['../d7/dbc/greyscale_8c.html#a9ba79c0c7ca01d04ac7e77b6c5c974a2',1,'greyscale.c']]], + ['scankeys_6',['scanKeys',['../d2/d4a/essentials_8c.html#a5b6c33a910bc2747fbf14cfec775f11c',1,'essentials.c']]], + ['set_5finterupts_7',['SET_INTERUPTS',['../d1/d74/interupts_8c.html#a0b5d2bf2b393ff71c20569a0d6ac9994',1,'interupts.c']]], + ['setcpuspeed_8',['setCpuSpeed',['../d0/ddb/misc_8c.html#a01be9569f3b9a3577843a15348e2840b',1,'misc.c']]], + ['setpencol_9',['setPenCol',['../d2/dba/textio_8c.html#ad781e6859c1ac67ab4e11f90261dc287',1,'textio.c']]], + ['setpenrow_10',['setPenRow',['../d2/dba/textio_8c.html#ac8df7968d45a0cc93de680cdd7025cdb',1,'textio.c']]], + ['setpix_11',['setPix',['../d5/d95/graphics_8c.html#a03dd9e1f7e1bbc7f9537acb869b339d7',1,'graphics.c']]], + ['sin_12',['Sin',['../d4/d1f/floatmath_8c.html#a8660e85f0113a58d6653145cf5d6dfde',1,'floatmath.c']]], + ['singularityerror_13',['SingularityError',['../d0/d15/errors_8c.html#a996a74db211fa08894f4de1438d2397a',1,'errors.c']]], + ['some_20useful_20resources_14',['Some useful resources',['../index.html#autotoc_md3',1,'']]], + ['sp_5fstore_15',['SP_STORE',['../d2/d4a/essentials_8c.html#a3f8cba501b7f79c5bb0dad8a633f8f8a',1,'essentials.c']]], + ['spritetemp_16',['spriteTemp',['../d2/d4a/essentials_8c.html#a6a5942c7d60a6c2a59372f8fde03658a',1,'essentials.c']]], + ['sq_5froot_5fop1_17',['SQ_ROOT_OP1',['../d4/d1f/floatmath_8c.html#ab99e2ae6245648dbf6aa294e5a35cc8c',1,'floatmath.c']]], + ['sqrt_5frounded_18',['sqrt_rounded',['../d7/d31/fast__math_8c.html#a596724bfaacd207eb1ee760887a5546a',1,'fast_math.c']]], + ['square_5fop1_19',['SQUARE_OP1',['../d4/d1f/floatmath_8c.html#a7b80e84a37a72997923c0b61db6c1fba',1,'floatmath.c']]], + ['start_5fcol_20',['START_COL',['../d7/dbc/greyscale_8c.html#a39d4b8bb4368e58868cad71db4842492',1,'greyscale.c']]], + ['start_5frow_21',['START_ROW',['../d7/dbc/greyscale_8c.html#aef84164dbbbf950ffc5da7ffcaf7f91c',1,'greyscale.c']]], + ['started_22',['How to get started',['../index.html#autotoc_md0',1,'']]], + ['staterror_23',['StatError',['../d0/d15/errors_8c.html#aca7cc5268bad829b3f9e1ad1cabf9e6e',1,'errors.c']]], + ['statploterror_24',['StatPlotError',['../d0/d15/errors_8c.html#a0d2833d214d90fd5220685b3d4f933e3',1,'errors.c']]], + ['swap_25',['swap',['../d5/d95/graphics_8c.html#a07bca8cc0cfca0e80cac16305cac9f13',1,'graphics.c']]], + ['syntaxerror_26',['SyntaxError',['../d0/d15/errors_8c.html#a84feea59f6ea18990f1a80a6914de3ce',1,'errors.c']]] +]; diff --git a/search/all_11.js b/search/all_11.js new file mode 100644 index 0000000..9506509 --- /dev/null +++ b/search/all_11.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['tan_0',['Tan',['../d4/d1f/floatmath_8c.html#a7a985b1f17f665b3c573497c19b45a82',1,'floatmath.c']]], + ['ten_5fto_5fthe_5fpower_5fof_5fop1_1',['TEN_TO_THE_POWER_OF_OP1',['../d4/d1f/floatmath_8c.html#a9a3d1d697824f8930d558ad33e99509e',1,'floatmath.c']]], + ['textio_2ec_2',['textio.c',['../d2/dba/textio_8c.html',1,'']]], + ['this_20works_3',['How this works',['../index.html#autotoc_md2',1,'']]], + ['ti83plus_2eh_4',['ti83plus.h',['../d4/d49/ti83plus_8h.html',1,'']]], + ['ticonstructor_5',['# TiConstructor',['../index.html',1,'']]], + ['to_20get_20started_6',['How to get started',['../index.html#autotoc_md0',1,'']]], + ['to_20install_7',['How to install',['../index.html#autotoc_md1',1,'']]], + ['tolnotmeterror_8',['TolNotMetError',['../d0/d15/errors_8c.html#aa45676a25e0b6f55e187176d8e9107ec',1,'errors.c']]] +]; diff --git a/search/all_12.js b/search/all_12.js new file mode 100644 index 0000000..437431b --- /dev/null +++ b/search/all_12.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['undefinederror_0',['UndefinedError',['../d0/d15/errors_8c.html#a5b7174b0f1b45647230811670d5c96dd',1,'errors.c']]], + ['useful_20resources_1',['Some useful resources',['../index.html#autotoc_md3',1,'']]], + ['userinput_2ec_2',['userinput.c',['../d4/d5f/userinput_8c.html',1,'']]] +]; diff --git a/search/all_13.js b/search/all_13.js new file mode 100644 index 0000000..c6da2fc --- /dev/null +++ b/search/all_13.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['variables_2ec_0',['variables.c',['../d5/de8/variables_8c.html',1,'']]], + ['vertical_5fdotted_5fline_1',['vertical_dotted_line',['../d5/d95/graphics_8c.html#a463706520b4764bf2273330592c8d05c',1,'graphics.c']]], + ['vertical_5fline_2',['vertical_line',['../d5/d95/graphics_8c.html#abb95569c1cc36c678574d4ee8486ef65',1,'graphics.c']]] +]; diff --git a/search/all_14.js b/search/all_14.js new file mode 100644 index 0000000..b0f70cb --- /dev/null +++ b/search/all_14.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['wait_0',['wait',['../d0/ddb/misc_8c.html#a6bf771f8afb49a0c3aa76993723e72f4',1,'misc.c']]], + ['wait_5floc_1',['WAIT_LOC',['../d7/dbc/greyscale_8c.html#acf4ad1993081b85bd9f163e75dd7317d',1,'greyscale.c']]], + ['works_2',['How this works',['../index.html#autotoc_md2',1,'']]] +]; diff --git a/search/all_15.js b/search/all_15.js new file mode 100644 index 0000000..0a34388 --- /dev/null +++ b/search/all_15.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['xmax_0',['XMAX',['../d5/d95/graphics_8c.html#a0312cb6d6cbc719075d4e5380c387ab3',1,'graphics.c']]] +]; diff --git a/search/all_16.js b/search/all_16.js new file mode 100644 index 0000000..2b30341 --- /dev/null +++ b/search/all_16.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['ymax_0',['YMAX',['../d5/d95/graphics_8c.html#a610d6ad95b18966b70b6845de2a9c56b',1,'graphics.c']]] +]; diff --git a/search/all_2.js b/search/all_2.js new file mode 100644 index 0000000..32e45bd --- /dev/null +++ b/search/all_2.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['badguesserror_0',['BadGuessError',['../d0/d15/errors_8c.html#a853b3468137cde9e1534df9fc8d4f287',1,'errors.c']]], + ['basepage_1',['basepage',['../d1/d74/interupts_8c.html#a1f71a76a10c4c9dde3696a69083045f0',1,'interupts.c']]], + ['bcall_2',['bcall',['../d2/d4a/essentials_8c.html#a68264b1743db602f8233757550b88f09',1,'essentials.c']]], + ['bjump_3',['bjump',['../d2/d4a/essentials_8c.html#a66980ae5fda680230944e831c7fd0eb4',1,'essentials.c']]], + ['body_4',['body',['../d5/d03/structHeapItem.html#a129677f70fb4efe0cbf28cc3b72db6ce',1,'HeapItem']]], + ['breakerror_5',['BreakError',['../d0/d15/errors_8c.html#a4d095834c70fa0b66e6a28c87774c79f',1,'errors.c']]], + ['buff_6',['buff',['../d5/d95/graphics_8c.html#a49b4801ec4ecca0932baadffe07d994b',1,'graphics.c']]] +]; diff --git a/search/all_3.js b/search/all_3.js new file mode 100644 index 0000000..c923683 --- /dev/null +++ b/search/all_3.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['calloc_0',['calloc',['../df/dd5/memory_8c.html#a1f0eeac79b62f335c80572b9607331a6',1,'memory.c']]], + ['chartoop1_1',['charToOp1',['../d4/d1f/floatmath_8c.html#aa60601dbfa7280f2a460cb3185c899bf',1,'floatmath.c']]], + ['circle_2',['circle',['../d5/d95/graphics_8c.html#addbd291e4bf35b4b8871c344ac36a348',1,'graphics.c']]], + ['clearbuffer_3',['clearBuffer',['../d5/d95/graphics_8c.html#a20bbd4d45e3f01305dd709f5a9cc9952',1,'graphics.c']]], + ['cleargreyscalebuffer_4',['clearGreyScaleBuffer',['../d7/dbc/greyscale_8c.html#ac5082e0fa1de607c1f6d085366d02591',1,'greyscale.c']]], + ['clearscreen_5',['clearScreen',['../d2/d4a/essentials_8c.html#aceb70c1ed7e11f0863a868704f02214b',1,'essentials.c']]], + ['col_5fstart_5fconst_6',['COL_START_CONST',['../d7/dbc/greyscale_8c.html#ad7ec6474c074831d2a3d774564337aad',1,'greyscale.c']]], + ['contrast_5floc_7',['CONTRAST_LOC',['../d7/dbc/greyscale_8c.html#a1b314ca85c938c9352de4512efffd642',1,'greyscale.c']]], + ['cos_8',['Cos',['../d4/d1f/floatmath_8c.html#aa08263b0b9c00688f9a5cdca82cc79b6',1,'floatmath.c']]], + ['credits_9',['Credits',['../index.html#autotoc_md5',1,'']]], + ['cube_5fop1_10',['CUBE_OP1',['../d4/d1f/floatmath_8c.html#ac9e02920c6da477dd7b479a0e85ef353',1,'floatmath.c']]], + ['custom_5fheap_5fname_11',['CUSTOM_HEAP_NAME',['../df/dd5/memory_8c.html#a33bf31228fd22e4afa06a93bfa681d5b',1,'memory.c']]], + ['customerror_12',['CustomError',['../d0/d15/errors_8c.html#ab0eecbc25e8f70fc9dca4f0c904ac9dc',1,'errors.c']]] +]; diff --git a/search/all_4.js b/search/all_4.js new file mode 100644 index 0000000..65ff9a0 --- /dev/null +++ b/search/all_4.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['dark_5fgrey_5floc_0',['DARK_GREY_LOC',['../d7/dbc/greyscale_8c.html#a72ce1600877c91649360dc0786e98f09',1,'greyscale.c']]], + ['datatypeerror_1',['DataTypeError',['../d0/d15/errors_8c.html#a95d975c0c67f9865b1ee5b8cafcc2877',1,'errors.c']]], + ['dec_5fop1_2',['DEC_OP1',['../d4/d1f/floatmath_8c.html#aaf5e7f4074af358f032c21e87fcd26f3',1,'floatmath.c']]], + ['default_5fmax_5fcol_3',['DEFAULT_MAX_COL',['../d7/dbc/greyscale_8c.html#a11168a5098e7692094b7b6879558ecc0',1,'greyscale.c']]], + ['deg_5fto_5frad_4',['DEG_TO_RAD',['../d4/d1f/floatmath_8c.html#a72f7f3dc385284b222a96b065e560f12',1,'floatmath.c']]], + ['delete_5',['delete',['../d5/de8/variables_8c.html#a2f62cc8750ffebff2a9eee2d2f732922',1,'variables.c']]], + ['dimensionerror_6',['DimensionError',['../d0/d15/errors_8c.html#aeb70f0a9ac64157d6454e2d27374142d',1,'errors.c']]], + ['dimensionmismatcherror_7',['DimensionMismatchError',['../d0/d15/errors_8c.html#a36432c538e5ab91a5ddc57cc57137944',1,'errors.c']]], + ['div_5fint_8',['div_int',['../d7/d31/fast__math_8c.html#a66bc0fe0d2a312e16310040a00402d69',1,'fast_math.c']]], + ['dividebyzeroerror_9',['DivideByZeroError',['../d0/d15/errors_8c.html#adbf3d75c789bf8c5fec97140d9d8c92e',1,'errors.c']]], + ['domainerror_10',['DomainError',['../d0/d15/errors_8c.html#acbeed1911f934ec737c895d0d6bb8a7f',1,'errors.c']]], + ['double_5fop1_11',['DOUBLE_OP1',['../d4/d1f/floatmath_8c.html#acc4dc6fcc66e86c8082009bd0104b84e',1,'floatmath.c']]], + ['doublehexdump_12',['doubleHexdump',['../d2/dba/textio_8c.html#a9d100b8bd5fe0812f617ff83cd46c2df',1,'textio.c']]] +]; diff --git a/search/all_5.js b/search/all_5.js new file mode 100644 index 0000000..b5ad799 --- /dev/null +++ b/search/all_5.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['end_5frow_0',['END_ROW',['../d7/dbc/greyscale_8c.html#a5c6dc4004a28fea314f91ccc7bd7abe5',1,'greyscale.c']]], + ['errors_2ec_1',['errors.c',['../d0/d15/errors_8c.html',1,'']]], + ['essentials_2ec_2',['essentials.c',['../d2/d4a/essentials_8c.html',1,'']]] +]; diff --git a/search/all_6.js b/search/all_6.js new file mode 100644 index 0000000..a871374 --- /dev/null +++ b/search/all_6.js @@ -0,0 +1,26 @@ +var searchData= +[ + ['facts_0',['Random fun facts',['../index.html#autotoc_md4',1,'']]], + ['fast_5fmath_2ec_1',['fast_math.c',['../d7/d31/fast__math_8c.html',1,'']]], + ['floatmath_2ec_2',['floatmath.c',['../d4/d1f/floatmath_8c.html',1,'']]], + ['fp_5fadd_3',['FP_ADD',['../d4/d1f/floatmath_8c.html#af3798975d178bf2b789e2db63ef20dc7',1,'floatmath.c']]], + ['fp_5fdiv_4',['FP_DIV',['../d4/d1f/floatmath_8c.html#aaf0070b7462184ba21b587fcbdf916c3',1,'floatmath.c']]], + ['fp_5fmult_5',['FP_MULT',['../d4/d1f/floatmath_8c.html#a8d885dd2ca125dbc23cf445b1a060bff',1,'floatmath.c']]], + ['fp_5frecip_6',['FP_Recip',['../d4/d1f/floatmath_8c.html#a2ecdac285b2a0ca01ce28169042693cb',1,'floatmath.c']]], + ['fp_5fsub_7',['FP_SUB',['../d4/d1f/floatmath_8c.html#a72afb5802ac99ab0fffa5cf4c938b7d6',1,'floatmath.c']]], + ['fputs_8',['fputs',['../d2/dba/textio_8c.html#aca07b808550bc084bf01fffa964bf362',1,'textio.c']]], + ['free_9',['free',['../df/dd5/memory_8c.html#a26d7887be1fe25a2cfb8239362f16938',1,'memory.c']]], + ['fun_20facts_10',['Random fun facts',['../index.html#autotoc_md4',1,'']]], + ['fx_11',['FX',['../d7/d31/fast__math_8c.html#a837a137e392ae871a39de8f0757e64ad',1,'fast_math.c']]], + ['fx_5fabs_12',['FX_abs',['../d7/d31/fast__math_8c.html#aaa2f72733b04c7943e07dd4fcf6c59f0',1,'fast_math.c']]], + ['fx_5fcos_13',['FX_cos',['../d7/d31/fast__math_8c.html#a9f5659631c18d301cb73c7ec7a58b43e',1,'fast_math.c']]], + ['fx_5fdiv_14',['FX_div',['../d7/d31/fast__math_8c.html#af7e4eca9425ab1e402c3af3b74420b13',1,'fast_math.c']]], + ['fx_5ffloor_15',['FX_floor',['../d7/d31/fast__math_8c.html#ae142ca5b74ec6a03b86a0f9a6d00a72d',1,'fast_math.c']]], + ['fx_5ffloor_5fint_16',['FX_floor_int',['../d7/d31/fast__math_8c.html#a5529a599fa2c1cb7e7323116a86387df',1,'fast_math.c']]], + ['fx_5fmul_17',['FX_mul',['../d7/d31/fast__math_8c.html#a27d77f268f943ac12c22ca98d334a412',1,'fast_math.c']]], + ['fx_5fnumber_18',['FX_number',['../d7/d31/fast__math_8c.html#a9b6ed49928434dc6bd1c347069c19c6f',1,'fast_math.c']]], + ['fx_5fsine_19',['FX_sine',['../d7/d31/fast__math_8c.html#a45860b312b69da7d3ba4afa0ec9b89d5',1,'fast_math.c']]], + ['fx_5fsine_5flookup_20',['FX_sine_lookup',['../d7/d31/fast__math_8c.html#a4edfba9be986bb2e99b54fe21c6aa149',1,'fast_math.c']]], + ['fx_5fsqrt_21',['FX_sqrt',['../d7/d31/fast__math_8c.html#a73a2cf0c8d3ec760234a654af87cba82',1,'fast_math.c']]], + ['fx_5ftan_22',['FX_tan',['../d7/d31/fast__math_8c.html#acb214629c138c1a16dd2759e0bcfa2a2',1,'fast_math.c']]] +]; diff --git a/search/all_7.js b/search/all_7.js new file mode 100644 index 0000000..091f45b --- /dev/null +++ b/search/all_7.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['g_5fscreen_5fbuffer_0',['G_SCREEN_BUFFER',['../d5/d95/graphics_8c.html#a2ea627d6e756dbfc4694ea0db433ba16',1,'graphics.c']]], + ['get_20started_1',['How to get started',['../index.html#autotoc_md0',1,'']]], + ['getcpuspeed_2',['getCpuSpeed',['../d0/ddb/misc_8c.html#ab75d789d39b23bb1f1636faadf07f71b',1,'misc.c']]], + ['getkey_3',['getKey',['../d4/d5f/userinput_8c.html#a2da36c055d23bb1f20f20bfabbb40661',1,'userinput.c']]], + ['getorcreatevar_4',['getOrCreateVar',['../d5/de8/variables_8c.html#afe191947cfd17993fcca9d9101c3895f',1,'variables.c']]], + ['gettime_5',['getTime',['../d0/ddb/misc_8c.html#ad489769b2d140a90776726cdfbc7fd6f',1,'misc.c']]], + ['graphics_2ec_6',['graphics.c',['../d5/d95/graphics_8c.html',1,'']]], + ['gray_5fcycle_7',['GRAY_CYCLE',['../d7/dbc/greyscale_8c.html#a9f741cd56abeb0dc5e44623d691c2ec5',1,'greyscale.c']]], + ['gray_5fcycle_5fcarry_8',['GRAY_CYCLE_CARRY',['../d7/dbc/greyscale_8c.html#ad129d98e7f6db51ea51c8bd33a49d11d',1,'greyscale.c']]], + ['grey_5finterupt_9',['grey_interupt',['../d7/dbc/greyscale_8c.html#abbebc026da0bcc62f8667548ed32aa9d',1,'greyscale.c']]], + ['greyscale_2ec_10',['greyscale.c',['../d7/dbc/greyscale_8c.html',1,'']]] +]; diff --git a/search/all_8.js b/search/all_8.js new file mode 100644 index 0000000..98ec43f --- /dev/null +++ b/search/all_8.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['heap_5flocation_0',['HEAP_LOCATION',['../df/dd5/memory_8c.html#a2f58e25d4dae7f2d95850d174c5f2820',1,'memory.c']]], + ['heap_5fsize_1',['HEAP_SIZE',['../df/dd5/memory_8c.html#a1b45302695680930829cac31d65e41e1',1,'memory.c']]], + ['heap_5fvar_5fname_2',['HEAP_VAR_NAME',['../df/dd5/memory_8c.html#aacc2cdf7bc1195adb693bf201ff2c8b6',1,'memory.c']]], + ['heapitem_3',['HeapItem',['../d5/d03/structHeapItem.html',1,'']]], + ['heapitembitmap_4',['HeapItemBitmap',['../d5/d03/structHeapItem.html#afd22583a08b879c069a76b98c34f0da0',1,'HeapItem']]], + ['heapitemsize_5',['HeapItemSize',['../d5/d03/structHeapItem.html#a7ceb3f24e73d4c37482ef6d3278f39ed',1,'HeapItem']]], + ['hexdump_6',['hexdump',['../d2/dba/textio_8c.html#ab64ca59caab800b6c00645189dd806e8',1,'textio.c']]], + ['hextab_7',['hexTab',['../d2/dba/textio_8c.html#a6dd76dc5bcabf89a30f7d13e2c3469f7',1,'textio.c']]], + ['how_20this_20works_8',['How this works',['../index.html#autotoc_md2',1,'']]], + ['how_20to_20get_20started_9',['How to get started',['../index.html#autotoc_md0',1,'']]], + ['how_20to_20install_10',['How to install',['../index.html#autotoc_md1',1,'']]] +]; diff --git a/search/all_9.js b/search/all_9.js new file mode 100644 index 0000000..7561a0d --- /dev/null +++ b/search/all_9.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['inc_5fop1_0',['INC_OP1',['../d4/d1f/floatmath_8c.html#a85a2cc6f3e18dc9267086b9669c719b5',1,'floatmath.c']]], + ['incrementerror_1',['IncrementError',['../d0/d15/errors_8c.html#a345b3daada30ed269af910bd1cee4363',1,'errors.c']]], + ['init_5fgreyscale_2',['INIT_GREYSCALE',['../d7/dbc/greyscale_8c.html#a533ad373350e15bbee92fb6f790d61a7',1,'greyscale.c']]], + ['initheap_3',['initHeap',['../df/dd5/memory_8c.html#a137db60eec8a1abc98c96580d7b764fc',1,'memory.c']]], + ['install_4',['How to install',['../index.html#autotoc_md1',1,'']]], + ['interupts_2ec_5',['interupts.c',['../d1/d74/interupts_8c.html',1,'']]], + ['intrpt_5fmask_6',['INTRPT_MASK',['../d1/d74/interupts_8c.html#a09e68d8e9da5272f666f766a4915875f',1,'interupts.c']]], + ['inttoop1_7',['intToOp1',['../d4/d1f/floatmath_8c.html#a56db8db6295fead15c7ead9fbc251c50',1,'floatmath.c']]], + ['invaliderror_8',['InvalidError',['../d0/d15/errors_8c.html#aa06fc875af34b82ffeedce1ce0702652',1,'errors.c']]], + ['isqrt_9',['isqrt',['../d0/ddb/misc_8c.html#aaf41caa61eadef31671cd6b0c31d8d19',1,'misc.c']]], + ['iterationserror_10',['IterationsError',['../d0/d15/errors_8c.html#a9b83e678bf33d7d3d0ee3ef348f5eaf3',1,'errors.c']]] +]; diff --git a/search/all_a.js b/search/all_a.js new file mode 100644 index 0000000..9726d79 --- /dev/null +++ b/search/all_a.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['lastpressedkey_0',['lastPressedKey',['../d2/d4a/essentials_8c.html#a00779d8b864708d1f7091c47e1e87c64',1,'essentials.c']]], + ['light_5fgrey_5floc_1',['LIGHT_GREY_LOC',['../d7/dbc/greyscale_8c.html#a422e7cd1a0055b8cac4e90ecafedb1bb',1,'greyscale.c']]], + ['line_2',['line',['../d5/d95/graphics_8c.html#af9395be22fea2203f30c59b8be653c14',1,'graphics.c']]], + ['linkerror_3',['LinkError',['../d0/d15/errors_8c.html#adffa9c95592e9d459ef5cf11306dc7c7',1,'errors.c']]] +]; diff --git a/search/all_b.js b/search/all_b.js new file mode 100644 index 0000000..7792ab1 --- /dev/null +++ b/search/all_b.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['malloc_0',['malloc',['../df/dd5/memory_8c.html#a15854dc49461bfcaa4a38cb359f3e71f',1,'memory.c']]], + ['math_5fceil_1',['MATH_CEIL',['../d4/d1f/floatmath_8c.html#a36849b796d2daeb1003657d166ce3242',1,'floatmath.c']]], + ['math_5ffloor_2',['MATH_FLOOR',['../d4/d1f/floatmath_8c.html#a8c48e91626097b47894896e72d6f7bcb',1,'floatmath.c']]], + ['max_5fcol_3',['MAX_COL',['../d7/dbc/greyscale_8c.html#a97e80440b5a5ec2ffc172dead9f8d2ec',1,'greyscale.c']]], + ['memory_2ec_4',['memory.c',['../df/dd5/memory_8c.html',1,'']]], + ['memoryerror_5',['MemoryError',['../d0/d15/errors_8c.html#a0dffaf56d5a2a6659ce8d7fade4628fe',1,'errors.c']]], + ['misc_2ec_6',['misc.c',['../d0/ddb/misc_8c.html',1,'']]], + ['moveop1to_7',['MoveOp1To',['../d4/d1f/floatmath_8c.html#a7a2af65a4e59b08116536a811fea93ea',1,'floatmath.c']]], + ['movetoop1_8',['MoveToOp1',['../d4/d1f/floatmath_8c.html#af04b91b2a622e6f3d270b11ed57ec846',1,'floatmath.c']]], + ['mul_5fint_9',['mul_int',['../d7/d31/fast__math_8c.html#a864a6c649cc122b08b911f2065ef02eb',1,'fast_math.c']]] +]; diff --git a/search/all_c.js b/search/all_c.js new file mode 100644 index 0000000..f5a6955 --- /dev/null +++ b/search/all_c.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['neg_5fop1_0',['NEG_OP1',['../d4/d1f/floatmath_8c.html#a2aef176fc4a8689c9067cf6a4868e755',1,'floatmath.c']]], + ['newline_1',['newline',['../d2/dba/textio_8c.html#a7ffed7dceb713fc324f0534bc9152c4b',1,'textio.c']]], + ['nonrealerror_2',['NonRealError',['../d0/d15/errors_8c.html#affbbfe973c221ec7e08beba5dfa6f1c5',1,'errors.c']]], + ['nosignchangeerror_3',['NoSignChangeError',['../d0/d15/errors_8c.html#a99c3a5b362b9f6925bc69304dfdb411a',1,'errors.c']]], + ['number_4',['number',['../d2/dba/textio_8c.html#a66a569e51623061dc516f13047a7cd8f',1,'textio.c']]] +]; diff --git a/search/all_d.js b/search/all_d.js new file mode 100644 index 0000000..9783b0a --- /dev/null +++ b/search/all_d.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['opt1_5fto_5fint_0',['OPT1_TO_INT',['../d4/d1f/floatmath_8c.html#a7786275f549130affc810e217444414c',1,'floatmath.c']]], + ['overflowerror_1',['OverflowError',['../d0/d15/errors_8c.html#ac8f6c2b1f618a0b15c966991fe764b2d',1,'errors.c']]] +]; diff --git a/search/all_e.js b/search/all_e.js new file mode 100644 index 0000000..daa025a --- /dev/null +++ b/search/all_e.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['pressanykey_0',['PressAnyKey',['../d4/d5f/userinput_8c.html#adeed93c34ed50c8c4ccc7d0555408013',1,'userinput.c']]], + ['printc_1',['printc',['../d2/dba/textio_8c.html#a8f5c92b67e468af24552b8f68baf7fa8',1,'textio.c']]], + ['println_2',['println',['../d2/dba/textio_8c.html#a14055334d5f05def8c67b7c98212ab99',1,'textio.c']]], + ['purge_5fheap_3',['purge_heap',['../df/dd5/memory_8c.html#a2d462dbeb5a594ac82d2827821aa5573',1,'memory.c']]] +]; diff --git a/search/all_f.js b/search/all_f.js new file mode 100644 index 0000000..4c98151 --- /dev/null +++ b/search/all_f.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['random_20fun_20facts_0',['Random fun facts',['../index.html#autotoc_md4',1,'']]], + ['resetpen_1',['resetPen',['../d2/dba/textio_8c.html#ae95669a52ba3a2adb7021a225ebf8192',1,'textio.c']]], + ['resources_2',['Some useful resources',['../index.html#autotoc_md3',1,'']]], + ['row_5fconst_3',['ROW_CONST',['../d7/dbc/greyscale_8c.html#a0999f61805fd5db8ec16a027c1db621c',1,'greyscale.c']]], + ['row_5fend_5fconst_4',['ROW_END_CONST',['../d7/dbc/greyscale_8c.html#a0997428a77d4eda7188f0dd77a006790',1,'greyscale.c']]] +]; diff --git a/search/classes_0.js b/search/classes_0.js new file mode 100644 index 0000000..a3e9af3 --- /dev/null +++ b/search/classes_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['heapitem_0',['HeapItem',['../d5/d03/structHeapItem.html',1,'']]] +]; diff --git a/search/close.svg b/search/close.svg new file mode 100644 index 0000000..337d6cc --- /dev/null +++ b/search/close.svg @@ -0,0 +1,18 @@ + + + + + + diff --git a/search/defines_0.js b/search/defines_0.js new file mode 100644 index 0000000..dcd378b --- /dev/null +++ b/search/defines_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['_5f_5fhs_0',['__hs',['../d7/dbc/greyscale_8c.html#a080021f8b22b47e0e515fadb3342b6d8',1,'__hs: greyscale.c'],['../d1/d74/interupts_8c.html#a080021f8b22b47e0e515fadb3342b6d8',1,'__hs: interupts.c']]], + ['_5flcd_5fbusy_5fquick_1',['_LCD_BUSY_QUICK',['../d5/d95/graphics_8c.html#a34ae1178623830a7a8b2c06ad82759be',1,'graphics.c']]] +]; diff --git a/search/defines_1.js b/search/defines_1.js new file mode 100644 index 0000000..b148337 --- /dev/null +++ b/search/defines_1.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['abcall_0',['abcall',['../d2/d4a/essentials_8c.html#a129499a7680583fc58a699bbb1aca61d',1,'essentials.c']]], + ['argumenterror_1',['ArgumentError',['../d0/d15/errors_8c.html#a1da40dbd85a4026ffd644fd4d6cdb500',1,'errors.c']]], + ['asavea_2',['aSaveA',['../d2/d4a/essentials_8c.html#a2729ab5166820ef85f4c3a4a50c49c8e',1,'essentials.c']]], + ['auto_5fpurge_5fheap_3',['auto_purge_heap',['../df/dd5/memory_8c.html#aa67674772f75f551422c1a374a8a4b79',1,'memory.c']]] +]; diff --git a/search/defines_10.js b/search/defines_10.js new file mode 100644 index 0000000..8fe1951 --- /dev/null +++ b/search/defines_10.js @@ -0,0 +1,22 @@ +var searchData= +[ + ['saferam1_0',['saferam1',['../d2/d4a/essentials_8c.html#a96109672f0e8545baf4faf9ab4574343',1,'essentials.c']]], + ['saferam2_1',['saferam2',['../d2/d4a/essentials_8c.html#ac16ec4c70efc5252f43679ed11a348b8',1,'essentials.c']]], + ['saferam3_2',['saferam3',['../d2/d4a/essentials_8c.html#aaed5ef70437a2d0bbf4aad296521e8d3',1,'essentials.c']]], + ['saferam4_3',['saferam4',['../d2/d4a/essentials_8c.html#a068b742df6def2627d3fa3275f84dc8d',1,'essentials.c']]], + ['saferam5_4',['saferam5',['../d2/d4a/essentials_8c.html#a9099cbf3a5987f95a0f104c9f170cfc9',1,'essentials.c']]], + ['save_5fcontrast_5',['SAVE_CONTRAST',['../d7/dbc/greyscale_8c.html#a9ba79c0c7ca01d04ac7e77b6c5c974a2',1,'greyscale.c']]], + ['scankeys_6',['scanKeys',['../d2/d4a/essentials_8c.html#a5b6c33a910bc2747fbf14cfec775f11c',1,'essentials.c']]], + ['set_5finterupts_7',['SET_INTERUPTS',['../d1/d74/interupts_8c.html#a0b5d2bf2b393ff71c20569a0d6ac9994',1,'interupts.c']]], + ['sin_8',['Sin',['../d4/d1f/floatmath_8c.html#a8660e85f0113a58d6653145cf5d6dfde',1,'floatmath.c']]], + ['singularityerror_9',['SingularityError',['../d0/d15/errors_8c.html#a996a74db211fa08894f4de1438d2397a',1,'errors.c']]], + ['sp_5fstore_10',['SP_STORE',['../d2/d4a/essentials_8c.html#a3f8cba501b7f79c5bb0dad8a633f8f8a',1,'essentials.c']]], + ['spritetemp_11',['spriteTemp',['../d2/d4a/essentials_8c.html#a6a5942c7d60a6c2a59372f8fde03658a',1,'essentials.c']]], + ['sq_5froot_5fop1_12',['SQ_ROOT_OP1',['../d4/d1f/floatmath_8c.html#ab99e2ae6245648dbf6aa294e5a35cc8c',1,'floatmath.c']]], + ['square_5fop1_13',['SQUARE_OP1',['../d4/d1f/floatmath_8c.html#a7b80e84a37a72997923c0b61db6c1fba',1,'floatmath.c']]], + ['start_5fcol_14',['START_COL',['../d7/dbc/greyscale_8c.html#a39d4b8bb4368e58868cad71db4842492',1,'greyscale.c']]], + ['start_5frow_15',['START_ROW',['../d7/dbc/greyscale_8c.html#aef84164dbbbf950ffc5da7ffcaf7f91c',1,'greyscale.c']]], + ['staterror_16',['StatError',['../d0/d15/errors_8c.html#aca7cc5268bad829b3f9e1ad1cabf9e6e',1,'errors.c']]], + ['statploterror_17',['StatPlotError',['../d0/d15/errors_8c.html#a0d2833d214d90fd5220685b3d4f933e3',1,'errors.c']]], + ['syntaxerror_18',['SyntaxError',['../d0/d15/errors_8c.html#a84feea59f6ea18990f1a80a6914de3ce',1,'errors.c']]] +]; diff --git a/search/defines_11.js b/search/defines_11.js new file mode 100644 index 0000000..5aa3ba0 --- /dev/null +++ b/search/defines_11.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['tan_0',['Tan',['../d4/d1f/floatmath_8c.html#a7a985b1f17f665b3c573497c19b45a82',1,'floatmath.c']]], + ['ten_5fto_5fthe_5fpower_5fof_5fop1_1',['TEN_TO_THE_POWER_OF_OP1',['../d4/d1f/floatmath_8c.html#a9a3d1d697824f8930d558ad33e99509e',1,'floatmath.c']]], + ['tolnotmeterror_2',['TolNotMetError',['../d0/d15/errors_8c.html#aa45676a25e0b6f55e187176d8e9107ec',1,'errors.c']]] +]; diff --git a/search/defines_12.js b/search/defines_12.js new file mode 100644 index 0000000..9340172 --- /dev/null +++ b/search/defines_12.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['undefinederror_0',['UndefinedError',['../d0/d15/errors_8c.html#a5b7174b0f1b45647230811670d5c96dd',1,'errors.c']]] +]; diff --git a/search/defines_13.js b/search/defines_13.js new file mode 100644 index 0000000..0802eeb --- /dev/null +++ b/search/defines_13.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['wait_5floc_0',['WAIT_LOC',['../d7/dbc/greyscale_8c.html#acf4ad1993081b85bd9f163e75dd7317d',1,'greyscale.c']]] +]; diff --git a/search/defines_14.js b/search/defines_14.js new file mode 100644 index 0000000..0a34388 --- /dev/null +++ b/search/defines_14.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['xmax_0',['XMAX',['../d5/d95/graphics_8c.html#a0312cb6d6cbc719075d4e5380c387ab3',1,'graphics.c']]] +]; diff --git a/search/defines_15.js b/search/defines_15.js new file mode 100644 index 0000000..2b30341 --- /dev/null +++ b/search/defines_15.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['ymax_0',['YMAX',['../d5/d95/graphics_8c.html#a610d6ad95b18966b70b6845de2a9c56b',1,'graphics.c']]] +]; diff --git a/search/defines_2.js b/search/defines_2.js new file mode 100644 index 0000000..935d217 --- /dev/null +++ b/search/defines_2.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['badguesserror_0',['BadGuessError',['../d0/d15/errors_8c.html#a853b3468137cde9e1534df9fc8d4f287',1,'errors.c']]], + ['basepage_1',['basepage',['../d1/d74/interupts_8c.html#a1f71a76a10c4c9dde3696a69083045f0',1,'interupts.c']]], + ['bcall_2',['bcall',['../d2/d4a/essentials_8c.html#a68264b1743db602f8233757550b88f09',1,'essentials.c']]], + ['bjump_3',['bjump',['../d2/d4a/essentials_8c.html#a66980ae5fda680230944e831c7fd0eb4',1,'essentials.c']]], + ['breakerror_4',['BreakError',['../d0/d15/errors_8c.html#a4d095834c70fa0b66e6a28c87774c79f',1,'errors.c']]], + ['buff_5',['buff',['../d5/d95/graphics_8c.html#a49b4801ec4ecca0932baadffe07d994b',1,'graphics.c']]] +]; diff --git a/search/defines_3.js b/search/defines_3.js new file mode 100644 index 0000000..d736bcd --- /dev/null +++ b/search/defines_3.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['clearscreen_0',['clearScreen',['../d2/d4a/essentials_8c.html#aceb70c1ed7e11f0863a868704f02214b',1,'essentials.c']]], + ['col_5fstart_5fconst_1',['COL_START_CONST',['../d7/dbc/greyscale_8c.html#ad7ec6474c074831d2a3d774564337aad',1,'greyscale.c']]], + ['contrast_5floc_2',['CONTRAST_LOC',['../d7/dbc/greyscale_8c.html#a1b314ca85c938c9352de4512efffd642',1,'greyscale.c']]], + ['cos_3',['Cos',['../d4/d1f/floatmath_8c.html#aa08263b0b9c00688f9a5cdca82cc79b6',1,'floatmath.c']]], + ['cube_5fop1_4',['CUBE_OP1',['../d4/d1f/floatmath_8c.html#ac9e02920c6da477dd7b479a0e85ef353',1,'floatmath.c']]], + ['custom_5fheap_5fname_5',['CUSTOM_HEAP_NAME',['../df/dd5/memory_8c.html#a33bf31228fd22e4afa06a93bfa681d5b',1,'memory.c']]] +]; diff --git a/search/defines_4.js b/search/defines_4.js new file mode 100644 index 0000000..0e811f6 --- /dev/null +++ b/search/defines_4.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['dark_5fgrey_5floc_0',['DARK_GREY_LOC',['../d7/dbc/greyscale_8c.html#a72ce1600877c91649360dc0786e98f09',1,'greyscale.c']]], + ['datatypeerror_1',['DataTypeError',['../d0/d15/errors_8c.html#a95d975c0c67f9865b1ee5b8cafcc2877',1,'errors.c']]], + ['dec_5fop1_2',['DEC_OP1',['../d4/d1f/floatmath_8c.html#aaf5e7f4074af358f032c21e87fcd26f3',1,'floatmath.c']]], + ['default_5fmax_5fcol_3',['DEFAULT_MAX_COL',['../d7/dbc/greyscale_8c.html#a11168a5098e7692094b7b6879558ecc0',1,'greyscale.c']]], + ['deg_5fto_5frad_4',['DEG_TO_RAD',['../d4/d1f/floatmath_8c.html#a72f7f3dc385284b222a96b065e560f12',1,'floatmath.c']]], + ['dimensionerror_5',['DimensionError',['../d0/d15/errors_8c.html#aeb70f0a9ac64157d6454e2d27374142d',1,'errors.c']]], + ['dimensionmismatcherror_6',['DimensionMismatchError',['../d0/d15/errors_8c.html#a36432c538e5ab91a5ddc57cc57137944',1,'errors.c']]], + ['dividebyzeroerror_7',['DivideByZeroError',['../d0/d15/errors_8c.html#adbf3d75c789bf8c5fec97140d9d8c92e',1,'errors.c']]], + ['domainerror_8',['DomainError',['../d0/d15/errors_8c.html#acbeed1911f934ec737c895d0d6bb8a7f',1,'errors.c']]], + ['double_5fop1_9',['DOUBLE_OP1',['../d4/d1f/floatmath_8c.html#acc4dc6fcc66e86c8082009bd0104b84e',1,'floatmath.c']]] +]; diff --git a/search/defines_5.js b/search/defines_5.js new file mode 100644 index 0000000..dd770b7 --- /dev/null +++ b/search/defines_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['end_5frow_0',['END_ROW',['../d7/dbc/greyscale_8c.html#a5c6dc4004a28fea314f91ccc7bd7abe5',1,'greyscale.c']]] +]; diff --git a/search/defines_6.js b/search/defines_6.js new file mode 100644 index 0000000..deb73c1 --- /dev/null +++ b/search/defines_6.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['fp_5fadd_0',['FP_ADD',['../d4/d1f/floatmath_8c.html#af3798975d178bf2b789e2db63ef20dc7',1,'floatmath.c']]], + ['fp_5fdiv_1',['FP_DIV',['../d4/d1f/floatmath_8c.html#aaf0070b7462184ba21b587fcbdf916c3',1,'floatmath.c']]], + ['fp_5fmult_2',['FP_MULT',['../d4/d1f/floatmath_8c.html#a8d885dd2ca125dbc23cf445b1a060bff',1,'floatmath.c']]], + ['fp_5frecip_3',['FP_Recip',['../d4/d1f/floatmath_8c.html#a2ecdac285b2a0ca01ce28169042693cb',1,'floatmath.c']]], + ['fp_5fsub_4',['FP_SUB',['../d4/d1f/floatmath_8c.html#a72afb5802ac99ab0fffa5cf4c938b7d6',1,'floatmath.c']]], + ['fx_5',['FX',['../d7/d31/fast__math_8c.html#a837a137e392ae871a39de8f0757e64ad',1,'fast_math.c']]] +]; diff --git a/search/defines_7.js b/search/defines_7.js new file mode 100644 index 0000000..021b32a --- /dev/null +++ b/search/defines_7.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['g_5fscreen_5fbuffer_0',['G_SCREEN_BUFFER',['../d5/d95/graphics_8c.html#a2ea627d6e756dbfc4694ea0db433ba16',1,'graphics.c']]], + ['gray_5fcycle_1',['GRAY_CYCLE',['../d7/dbc/greyscale_8c.html#a9f741cd56abeb0dc5e44623d691c2ec5',1,'greyscale.c']]], + ['gray_5fcycle_5fcarry_2',['GRAY_CYCLE_CARRY',['../d7/dbc/greyscale_8c.html#ad129d98e7f6db51ea51c8bd33a49d11d',1,'greyscale.c']]] +]; diff --git a/search/defines_8.js b/search/defines_8.js new file mode 100644 index 0000000..443fa21 --- /dev/null +++ b/search/defines_8.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['heap_5flocation_0',['HEAP_LOCATION',['../df/dd5/memory_8c.html#a2f58e25d4dae7f2d95850d174c5f2820',1,'memory.c']]], + ['heap_5fsize_1',['HEAP_SIZE',['../df/dd5/memory_8c.html#a1b45302695680930829cac31d65e41e1',1,'memory.c']]] +]; diff --git a/search/defines_9.js b/search/defines_9.js new file mode 100644 index 0000000..a228c44 --- /dev/null +++ b/search/defines_9.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['inc_5fop1_0',['INC_OP1',['../d4/d1f/floatmath_8c.html#a85a2cc6f3e18dc9267086b9669c719b5',1,'floatmath.c']]], + ['incrementerror_1',['IncrementError',['../d0/d15/errors_8c.html#a345b3daada30ed269af910bd1cee4363',1,'errors.c']]], + ['init_5fgreyscale_2',['INIT_GREYSCALE',['../d7/dbc/greyscale_8c.html#a533ad373350e15bbee92fb6f790d61a7',1,'greyscale.c']]], + ['intrpt_5fmask_3',['INTRPT_MASK',['../d1/d74/interupts_8c.html#a09e68d8e9da5272f666f766a4915875f',1,'interupts.c']]], + ['invaliderror_4',['InvalidError',['../d0/d15/errors_8c.html#aa06fc875af34b82ffeedce1ce0702652',1,'errors.c']]], + ['iterationserror_5',['IterationsError',['../d0/d15/errors_8c.html#a9b83e678bf33d7d3d0ee3ef348f5eaf3',1,'errors.c']]] +]; diff --git a/search/defines_a.js b/search/defines_a.js new file mode 100644 index 0000000..55b77ce --- /dev/null +++ b/search/defines_a.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['lastpressedkey_0',['lastPressedKey',['../d2/d4a/essentials_8c.html#a00779d8b864708d1f7091c47e1e87c64',1,'essentials.c']]], + ['light_5fgrey_5floc_1',['LIGHT_GREY_LOC',['../d7/dbc/greyscale_8c.html#a422e7cd1a0055b8cac4e90ecafedb1bb',1,'greyscale.c']]], + ['linkerror_2',['LinkError',['../d0/d15/errors_8c.html#adffa9c95592e9d459ef5cf11306dc7c7',1,'errors.c']]] +]; diff --git a/search/defines_b.js b/search/defines_b.js new file mode 100644 index 0000000..491196f --- /dev/null +++ b/search/defines_b.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['math_5fceil_0',['MATH_CEIL',['../d4/d1f/floatmath_8c.html#a36849b796d2daeb1003657d166ce3242',1,'floatmath.c']]], + ['math_5ffloor_1',['MATH_FLOOR',['../d4/d1f/floatmath_8c.html#a8c48e91626097b47894896e72d6f7bcb',1,'floatmath.c']]], + ['max_5fcol_2',['MAX_COL',['../d7/dbc/greyscale_8c.html#a97e80440b5a5ec2ffc172dead9f8d2ec',1,'greyscale.c']]], + ['memoryerror_3',['MemoryError',['../d0/d15/errors_8c.html#a0dffaf56d5a2a6659ce8d7fade4628fe',1,'errors.c']]] +]; diff --git a/search/defines_c.js b/search/defines_c.js new file mode 100644 index 0000000..6e82b97 --- /dev/null +++ b/search/defines_c.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['neg_5fop1_0',['NEG_OP1',['../d4/d1f/floatmath_8c.html#a2aef176fc4a8689c9067cf6a4868e755',1,'floatmath.c']]], + ['nonrealerror_1',['NonRealError',['../d0/d15/errors_8c.html#affbbfe973c221ec7e08beba5dfa6f1c5',1,'errors.c']]], + ['nosignchangeerror_2',['NoSignChangeError',['../d0/d15/errors_8c.html#a99c3a5b362b9f6925bc69304dfdb411a',1,'errors.c']]] +]; diff --git a/search/defines_d.js b/search/defines_d.js new file mode 100644 index 0000000..fa83157 --- /dev/null +++ b/search/defines_d.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['overflowerror_0',['OverflowError',['../d0/d15/errors_8c.html#ac8f6c2b1f618a0b15c966991fe764b2d',1,'errors.c']]] +]; diff --git a/search/defines_e.js b/search/defines_e.js new file mode 100644 index 0000000..9f25144 --- /dev/null +++ b/search/defines_e.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['pressanykey_0',['PressAnyKey',['../d4/d5f/userinput_8c.html#adeed93c34ed50c8c4ccc7d0555408013',1,'userinput.c']]], + ['purge_5fheap_1',['purge_heap',['../df/dd5/memory_8c.html#a2d462dbeb5a594ac82d2827821aa5573',1,'memory.c']]] +]; diff --git a/search/defines_f.js b/search/defines_f.js new file mode 100644 index 0000000..056cfea --- /dev/null +++ b/search/defines_f.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['row_5fconst_0',['ROW_CONST',['../d7/dbc/greyscale_8c.html#a0999f61805fd5db8ec16a027c1db621c',1,'greyscale.c']]], + ['row_5fend_5fconst_1',['ROW_END_CONST',['../d7/dbc/greyscale_8c.html#a0997428a77d4eda7188f0dd77a006790',1,'greyscale.c']]] +]; diff --git a/search/files_0.js b/search/files_0.js new file mode 100644 index 0000000..cf0b9a7 --- /dev/null +++ b/search/files_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['errors_2ec_0',['errors.c',['../d0/d15/errors_8c.html',1,'']]], + ['essentials_2ec_1',['essentials.c',['../d2/d4a/essentials_8c.html',1,'']]] +]; diff --git a/search/files_1.js b/search/files_1.js new file mode 100644 index 0000000..04506a1 --- /dev/null +++ b/search/files_1.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['fast_5fmath_2ec_0',['fast_math.c',['../d7/d31/fast__math_8c.html',1,'']]], + ['floatmath_2ec_1',['floatmath.c',['../d4/d1f/floatmath_8c.html',1,'']]] +]; diff --git a/search/files_2.js b/search/files_2.js new file mode 100644 index 0000000..d1581ed --- /dev/null +++ b/search/files_2.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['graphics_2ec_0',['graphics.c',['../d5/d95/graphics_8c.html',1,'']]], + ['greyscale_2ec_1',['greyscale.c',['../d7/dbc/greyscale_8c.html',1,'']]] +]; diff --git a/search/files_3.js b/search/files_3.js new file mode 100644 index 0000000..6621c2c --- /dev/null +++ b/search/files_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['interupts_2ec_0',['interupts.c',['../d1/d74/interupts_8c.html',1,'']]] +]; diff --git a/search/files_4.js b/search/files_4.js new file mode 100644 index 0000000..980e003 --- /dev/null +++ b/search/files_4.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['memory_2ec_0',['memory.c',['../df/dd5/memory_8c.html',1,'']]], + ['misc_2ec_1',['misc.c',['../d0/ddb/misc_8c.html',1,'']]] +]; diff --git a/search/files_5.js b/search/files_5.js new file mode 100644 index 0000000..ce4af17 --- /dev/null +++ b/search/files_5.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['textio_2ec_0',['textio.c',['../d2/dba/textio_8c.html',1,'']]], + ['ti83plus_2eh_1',['ti83plus.h',['../d4/d49/ti83plus_8h.html',1,'']]] +]; diff --git a/search/files_6.js b/search/files_6.js new file mode 100644 index 0000000..d99f69b --- /dev/null +++ b/search/files_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['userinput_2ec_0',['userinput.c',['../d4/d5f/userinput_8c.html',1,'']]] +]; diff --git a/search/files_7.js b/search/files_7.js new file mode 100644 index 0000000..c8e817b --- /dev/null +++ b/search/files_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['variables_2ec_0',['variables.c',['../d5/de8/variables_8c.html',1,'']]] +]; diff --git a/search/functions_0.js b/search/functions_0.js new file mode 100644 index 0000000..0972571 --- /dev/null +++ b/search/functions_0.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['_5f_0',['_',['../d4/d49/ti83plus_8h.html#af0c797815d536e2c2a4c889cd8b25846',1,'ti83plus.h']]], + ['_5f_5f_5f_5f_5f_5f_5f_5f_5fset_5finterupts_1',['_________SET_INTERUPTS',['../d1/d74/interupts_8c.html#a541352fa8faca369352a59691f4d7261',1,'interupts.c']]], + ['_5f_5f_5f_5f_5fcopied_5fto_5fposition_2',['_____copied_to_position',['../d1/d74/interupts_8c.html#a6186bb2f266a45dadb0c9e5cfcd4b6a2',1,'interupts.c']]], + ['_5f_5fdiv_5f32_5fby_5f16_3',['__div_32_by_16',['../d7/d31/fast__math_8c.html#aca8c524d27be5cfbed4ec3f4c11979ae',1,'fast_math.c']]], + ['_5f_5fdiv_5fac_5fde_4',['__div_ac_de',['../d7/d31/fast__math_8c.html#ad9881431b8062e65cd27eb83d70998d8',1,'fast_math.c']]], + ['_5f_5fdrawcirclesegment_5',['__drawCircleSegment',['../d5/d95/graphics_8c.html#a03e4a9618b2b842c224b6115a4f5fe66',1,'graphics.c']]], + ['_5f_5ffast_5f16_5fbit_5fsqrt_5fasm_6',['__fast_16_bit_sqrt_asm',['../d7/d31/fast__math_8c.html#adef27832f737507abf3e51908c480b9c',1,'fast_math.c']]], + ['_5f_5fmult_5fde_5fbc_7',['__mult_de_bc',['../d7/d31/fast__math_8c.html#a1726e8497ddd5282b66882b4ccc86dce',1,'fast_math.c']]], + ['_5fcalloc_8',['_calloc',['../df/dd5/memory_8c.html#ac9ca267ed9fd6f2ebd03150b16f230a0',1,'memory.c']]], + ['_5ffree_9',['_free',['../df/dd5/memory_8c.html#af1d881f34c18d1e2c88a14f5d94e971b',1,'memory.c']]], + ['_5fmalloc_10',['_malloc',['../df/dd5/memory_8c.html#a4d78a5f4102f4b0691ecf164af9dadf1',1,'memory.c']]] +]; diff --git a/search/functions_1.js b/search/functions_1.js new file mode 100644 index 0000000..c8b7f99 --- /dev/null +++ b/search/functions_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['archive_0',['archive',['../d5/de8/variables_8c.html#a0d3f0d93af7f9eb4419173b24c725343',1,'variables.c']]] +]; diff --git a/search/functions_10.js b/search/functions_10.js new file mode 100644 index 0000000..86df24e --- /dev/null +++ b/search/functions_10.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['wait_0',['wait',['../d0/ddb/misc_8c.html#a6bf771f8afb49a0c3aa76993723e72f4',1,'misc.c']]] +]; diff --git a/search/functions_2.js b/search/functions_2.js new file mode 100644 index 0000000..7892632 --- /dev/null +++ b/search/functions_2.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['calloc_0',['calloc',['../df/dd5/memory_8c.html#a1f0eeac79b62f335c80572b9607331a6',1,'memory.c']]], + ['chartoop1_1',['charToOp1',['../d4/d1f/floatmath_8c.html#aa60601dbfa7280f2a460cb3185c899bf',1,'floatmath.c']]], + ['circle_2',['circle',['../d5/d95/graphics_8c.html#addbd291e4bf35b4b8871c344ac36a348',1,'graphics.c']]], + ['clearbuffer_3',['clearBuffer',['../d5/d95/graphics_8c.html#a20bbd4d45e3f01305dd709f5a9cc9952',1,'graphics.c']]], + ['cleargreyscalebuffer_4',['clearGreyScaleBuffer',['../d7/dbc/greyscale_8c.html#ac5082e0fa1de607c1f6d085366d02591',1,'greyscale.c']]], + ['customerror_5',['CustomError',['../d0/d15/errors_8c.html#ab0eecbc25e8f70fc9dca4f0c904ac9dc',1,'errors.c']]] +]; diff --git a/search/functions_3.js b/search/functions_3.js new file mode 100644 index 0000000..4e94f6b --- /dev/null +++ b/search/functions_3.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['delete_0',['delete',['../d5/de8/variables_8c.html#a2f62cc8750ffebff2a9eee2d2f732922',1,'variables.c']]], + ['div_5fint_1',['div_int',['../d7/d31/fast__math_8c.html#a66bc0fe0d2a312e16310040a00402d69',1,'fast_math.c']]], + ['doublehexdump_2',['doubleHexdump',['../d2/dba/textio_8c.html#a9d100b8bd5fe0812f617ff83cd46c2df',1,'textio.c']]] +]; diff --git a/search/functions_4.js b/search/functions_4.js new file mode 100644 index 0000000..7d1298d --- /dev/null +++ b/search/functions_4.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['fputs_0',['fputs',['../d2/dba/textio_8c.html#aca07b808550bc084bf01fffa964bf362',1,'textio.c']]], + ['free_1',['free',['../df/dd5/memory_8c.html#a26d7887be1fe25a2cfb8239362f16938',1,'memory.c']]], + ['fx_5fabs_2',['FX_abs',['../d7/d31/fast__math_8c.html#aaa2f72733b04c7943e07dd4fcf6c59f0',1,'fast_math.c']]], + ['fx_5fcos_3',['FX_cos',['../d7/d31/fast__math_8c.html#a9f5659631c18d301cb73c7ec7a58b43e',1,'fast_math.c']]], + ['fx_5fdiv_4',['FX_div',['../d7/d31/fast__math_8c.html#af7e4eca9425ab1e402c3af3b74420b13',1,'fast_math.c']]], + ['fx_5ffloor_5',['FX_floor',['../d7/d31/fast__math_8c.html#ae142ca5b74ec6a03b86a0f9a6d00a72d',1,'fast_math.c']]], + ['fx_5ffloor_5fint_6',['FX_floor_int',['../d7/d31/fast__math_8c.html#a5529a599fa2c1cb7e7323116a86387df',1,'fast_math.c']]], + ['fx_5fmul_7',['FX_mul',['../d7/d31/fast__math_8c.html#a27d77f268f943ac12c22ca98d334a412',1,'fast_math.c']]], + ['fx_5fnumber_8',['FX_number',['../d7/d31/fast__math_8c.html#a9b6ed49928434dc6bd1c347069c19c6f',1,'fast_math.c']]], + ['fx_5fsine_9',['FX_sine',['../d7/d31/fast__math_8c.html#a45860b312b69da7d3ba4afa0ec9b89d5',1,'fast_math.c']]], + ['fx_5fsqrt_10',['FX_sqrt',['../d7/d31/fast__math_8c.html#a73a2cf0c8d3ec760234a654af87cba82',1,'fast_math.c']]], + ['fx_5ftan_11',['FX_tan',['../d7/d31/fast__math_8c.html#acb214629c138c1a16dd2759e0bcfa2a2',1,'fast_math.c']]] +]; diff --git a/search/functions_5.js b/search/functions_5.js new file mode 100644 index 0000000..4996cba --- /dev/null +++ b/search/functions_5.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['getcpuspeed_0',['getCpuSpeed',['../d0/ddb/misc_8c.html#ab75d789d39b23bb1f1636faadf07f71b',1,'misc.c']]], + ['getkey_1',['getKey',['../d4/d5f/userinput_8c.html#a2da36c055d23bb1f20f20bfabbb40661',1,'userinput.c']]], + ['getorcreatevar_2',['getOrCreateVar',['../d5/de8/variables_8c.html#afe191947cfd17993fcca9d9101c3895f',1,'variables.c']]], + ['gettime_3',['getTime',['../d0/ddb/misc_8c.html#ad489769b2d140a90776726cdfbc7fd6f',1,'misc.c']]], + ['grey_5finterupt_4',['grey_interupt',['../d7/dbc/greyscale_8c.html#abbebc026da0bcc62f8667548ed32aa9d',1,'greyscale.c']]] +]; diff --git a/search/functions_6.js b/search/functions_6.js new file mode 100644 index 0000000..28387ef --- /dev/null +++ b/search/functions_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['hexdump_0',['hexdump',['../d2/dba/textio_8c.html#ab64ca59caab800b6c00645189dd806e8',1,'textio.c']]] +]; diff --git a/search/functions_7.js b/search/functions_7.js new file mode 100644 index 0000000..0837bfa --- /dev/null +++ b/search/functions_7.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['initheap_0',['initHeap',['../df/dd5/memory_8c.html#a137db60eec8a1abc98c96580d7b764fc',1,'memory.c']]], + ['inttoop1_1',['intToOp1',['../d4/d1f/floatmath_8c.html#a56db8db6295fead15c7ead9fbc251c50',1,'floatmath.c']]], + ['isqrt_2',['isqrt',['../d0/ddb/misc_8c.html#aaf41caa61eadef31671cd6b0c31d8d19',1,'misc.c']]] +]; diff --git a/search/functions_8.js b/search/functions_8.js new file mode 100644 index 0000000..fe19634 --- /dev/null +++ b/search/functions_8.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['line_0',['line',['../d5/d95/graphics_8c.html#af9395be22fea2203f30c59b8be653c14',1,'graphics.c']]] +]; diff --git a/search/functions_9.js b/search/functions_9.js new file mode 100644 index 0000000..ed26b53 --- /dev/null +++ b/search/functions_9.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['malloc_0',['malloc',['../df/dd5/memory_8c.html#a15854dc49461bfcaa4a38cb359f3e71f',1,'memory.c']]], + ['moveop1to_1',['MoveOp1To',['../d4/d1f/floatmath_8c.html#a7a2af65a4e59b08116536a811fea93ea',1,'floatmath.c']]], + ['movetoop1_2',['MoveToOp1',['../d4/d1f/floatmath_8c.html#af04b91b2a622e6f3d270b11ed57ec846',1,'floatmath.c']]], + ['mul_5fint_3',['mul_int',['../d7/d31/fast__math_8c.html#a864a6c649cc122b08b911f2065ef02eb',1,'fast_math.c']]] +]; diff --git a/search/functions_a.js b/search/functions_a.js new file mode 100644 index 0000000..cbd8218 --- /dev/null +++ b/search/functions_a.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['newline_0',['newline',['../d2/dba/textio_8c.html#a7ffed7dceb713fc324f0534bc9152c4b',1,'textio.c']]], + ['number_1',['number',['../d2/dba/textio_8c.html#a66a569e51623061dc516f13047a7cd8f',1,'textio.c']]] +]; diff --git a/search/functions_b.js b/search/functions_b.js new file mode 100644 index 0000000..b06aaab --- /dev/null +++ b/search/functions_b.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['opt1_5fto_5fint_0',['OPT1_TO_INT',['../d4/d1f/floatmath_8c.html#a7786275f549130affc810e217444414c',1,'floatmath.c']]] +]; diff --git a/search/functions_c.js b/search/functions_c.js new file mode 100644 index 0000000..e9dad0c --- /dev/null +++ b/search/functions_c.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['printc_0',['printc',['../d2/dba/textio_8c.html#a8f5c92b67e468af24552b8f68baf7fa8',1,'textio.c']]], + ['println_1',['println',['../d2/dba/textio_8c.html#a14055334d5f05def8c67b7c98212ab99',1,'textio.c']]] +]; diff --git a/search/functions_d.js b/search/functions_d.js new file mode 100644 index 0000000..0958dfe --- /dev/null +++ b/search/functions_d.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['resetpen_0',['resetPen',['../d2/dba/textio_8c.html#ae95669a52ba3a2adb7021a225ebf8192',1,'textio.c']]] +]; diff --git a/search/functions_e.js b/search/functions_e.js new file mode 100644 index 0000000..95f3647 --- /dev/null +++ b/search/functions_e.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['setcpuspeed_0',['setCpuSpeed',['../d0/ddb/misc_8c.html#a01be9569f3b9a3577843a15348e2840b',1,'misc.c']]], + ['setpencol_1',['setPenCol',['../d2/dba/textio_8c.html#ad781e6859c1ac67ab4e11f90261dc287',1,'textio.c']]], + ['setpenrow_2',['setPenRow',['../d2/dba/textio_8c.html#ac8df7968d45a0cc93de680cdd7025cdb',1,'textio.c']]], + ['setpix_3',['setPix',['../d5/d95/graphics_8c.html#a03dd9e1f7e1bbc7f9537acb869b339d7',1,'graphics.c']]], + ['sqrt_5frounded_4',['sqrt_rounded',['../d7/d31/fast__math_8c.html#a596724bfaacd207eb1ee760887a5546a',1,'fast_math.c']]], + ['swap_5',['swap',['../d5/d95/graphics_8c.html#a07bca8cc0cfca0e80cac16305cac9f13',1,'graphics.c']]] +]; diff --git a/search/functions_f.js b/search/functions_f.js new file mode 100644 index 0000000..3b81dbf --- /dev/null +++ b/search/functions_f.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['vertical_5fdotted_5fline_0',['vertical_dotted_line',['../d5/d95/graphics_8c.html#a463706520b4764bf2273330592c8d05c',1,'graphics.c']]], + ['vertical_5fline_1',['vertical_line',['../d5/d95/graphics_8c.html#abb95569c1cc36c678574d4ee8486ef65',1,'graphics.c']]] +]; diff --git a/search/mag.svg b/search/mag.svg new file mode 100644 index 0000000..ffb6cf0 --- /dev/null +++ b/search/mag.svg @@ -0,0 +1,24 @@ + + + + + + + diff --git a/search/mag_d.svg b/search/mag_d.svg new file mode 100644 index 0000000..4122773 --- /dev/null +++ b/search/mag_d.svg @@ -0,0 +1,24 @@ + + + + + + + diff --git a/search/mag_sel.svg b/search/mag_sel.svg new file mode 100644 index 0000000..553dba8 --- /dev/null +++ b/search/mag_sel.svg @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/search/mag_seld.svg b/search/mag_seld.svg new file mode 100644 index 0000000..c906f84 --- /dev/null +++ b/search/mag_seld.svg @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/search/pages_0.js b/search/pages_0.js new file mode 100644 index 0000000..3dea8d2 --- /dev/null +++ b/search/pages_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['ticonstructor_0',['# TiConstructor',['../index.html',1,'']]] +]; diff --git a/search/search.css b/search/search.css new file mode 100644 index 0000000..2aa5e14 --- /dev/null +++ b/search/search.css @@ -0,0 +1,286 @@ +/*---------------- Search Box */ + +#MSearchBox { + position: absolute; + right: 5px; +} +/*---------------- Search box styling */ + +.SRPage * { + font-weight: normal; + line-height: normal; +} + +dark-mode-toggle { + margin-left: 5px; + display: flex; + float: right; +} + +#MSearchBox { + display: inline-block; + white-space : nowrap; + background: white; + border-radius: 0.65em; + box-shadow: inset 0.5px 0.5px 3px 0px #555; + z-index: 102; +} + +#MSearchBox .left { + display: inline-block; + vertical-align: middle; + height: 1.4em; +} + +#MSearchSelect { + display: inline-block; + vertical-align: middle; + width: 20px; + height: 19px; + background-image: url('mag_sel.svg'); + margin: 0 0 0 0.3em; + padding: 0; +} + +#MSearchSelectExt { + display: inline-block; + vertical-align: middle; + width: 10px; + height: 19px; + background-image: url('mag.svg'); + margin: 0 0 0 0.5em; + padding: 0; +} + + +#MSearchField { + display: inline-block; + vertical-align: middle; + width: 7.5em; + height: 19px; + margin: 0 0.15em; + padding: 0; + line-height: 1em; + border:none; + color: #909090; + outline: none; + font-family: Arial,Verdana,sans-serif; + -webkit-border-radius: 0px; + border-radius: 0px; + background: none; +} + +@media(hover: none) { + /* to avoid zooming on iOS */ + #MSearchField { + font-size: 16px; + } +} + +#MSearchBox .right { + display: inline-block; + vertical-align: middle; + width: 1.4em; + height: 1.4em; +} + +#MSearchClose { + display: none; + font-size: inherit; + background : none; + border: none; + margin: 0; + padding: 0; + outline: none; + +} + +#MSearchCloseImg { + padding: 0.3em; + margin: 0; +} + +.MSearchBoxActive #MSearchField { + color: black; +} + + + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #90A5CE; + background-color: #F9FAFC; + z-index: 10001; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt Arial,Verdana,sans-serif; + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: black; + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: black; + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: white; + background-color: #3D578C; + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + /*width: 60ex;*/ + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid black; + background-color: #EEF1F7; + z-index:10000; + width: 300px; + height: 400px; + overflow: auto; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +div.SRPage { + margin: 5px 2px; + background-color: #EEF1F7; +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: #425E97; + font-family: Arial,Verdana,sans-serif; + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: #425E97; + font-family: Arial,Verdana,sans-serif; + font-size: 8pt; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; + font-family: Arial,Verdana,sans-serif; +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; + font-family: Arial,Verdana,sans-serif; +} + +.SRResult { + display: none; +} + +div.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: url("../tab_a.png"); + background-repeat: repeat-x; + text-shadow: 0 1px 1px #000000; +} + +.pages { + line-height: 17px; + margin-left: 4px; + text-decoration: none; +} + +.hl { + font-weight: bold; +} + +#searchresults { + margin-bottom: 20px; +} + +.searchpages { + margin-top: 10px; +} + diff --git a/search/search.js b/search/search.js new file mode 100644 index 0000000..6fd40c6 --- /dev/null +++ b/search/search.js @@ -0,0 +1,840 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function convertToId(search) +{ + var result = ''; + for (i=0;i do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + e.stopPropagation(); + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair + { + idxChar = searchValue.substr(0, 2); + } + + var jsFile; + + var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) + { + var hexCode=idx.toString(16); + jsFile = this.resultsPath + indexSectionNames[this.searchIndex] + '_' + hexCode + '.js'; + } + + var loadJS = function(url, impl, loc){ + var scriptTag = document.createElement('script'); + scriptTag.src = url; + scriptTag.onload = impl; + scriptTag.onreadystatechange = impl; + loc.appendChild(scriptTag); + } + + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + var domSearchBox = this.DOMSearchBox(); + var domPopupSearchResults = this.DOMPopupSearchResults(); + var domSearchClose = this.DOMSearchClose(); + var resultsPath = this.resultsPath; + + var handleResults = function() { + document.getElementById("Loading").style.display="none"; + if (typeof searchData !== 'undefined') { + createResults(resultsPath); + document.getElementById("NoMatches").style.display="none"; + } + + if (idx!=-1) { + searchResults.Search(searchValue); + } else { // no file with search results => force empty search results + searchResults.Search('===='); + } + + if (domPopupSearchResultsWindow.style.display!='block') + { + domSearchClose.style.display = 'inline-block'; + var left = getXPos(domSearchBox) + 150; + var top = getYPos(domSearchBox) + 20; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + var maxWidth = document.body.clientWidth; + var maxHeight = document.body.clientHeight; + var width = 300; + if (left<10) left=10; + if (width+left+8>maxWidth) width=maxWidth-left-8; + var height = 400; + if (height+top+8>maxHeight) height=maxHeight-top-8; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResultsWindow.style.height = height + 'px'; + } + } + + if (jsFile) { + loadJS(jsFile, handleResults, this.DOMPopupSearchResultsWindow()); + } else { + handleResults(); + } + + this.lastSearchValue = searchValue; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + this.searchActive = true; + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + this.DOMSearchField().value = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of . + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + e.stopPropagation(); + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + e.stopPropagation(); + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} + +function setKeyActions(elem,action) +{ + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); +} + +function setClassAttr(elem,attr) +{ + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); +} + +function createResults(resultsPath) +{ + var results = document.getElementById("SRResults"); + results.innerHTML = ''; + for (var e=0; e-{AmhX=Jf(#6djGiuzAr*{o?=JLmPLyc> z_*`QK&+BH@jWrYJ7>r6%keRM@)Qyv8R=enp0jiI>aWlGyB58O zFVR20d+y`K7vDw(hJF3;>dD*3-?v=<8M)@x|EEGLnJsniYK!2U1 Y!`|5biEc?d1`HDhPgg&ebxsLQ02F6;9RL6T literal 0 HcmV?d00001 diff --git a/splitbard.png b/splitbard.png new file mode 100644 index 0000000000000000000000000000000000000000..8367416d757fd7b6dc4272b6432dc75a75abd068 GIT binary patch literal 282 zcmeAS@N?(olHy`uVBq!ia0vp^Yzz!63>-{AmhX=Jf@VhhFKy35^fiT zT~&lUj3=cDh^%3HDY9k5CEku}PHXNoNC(_$U3XPb&Q*ME25pT;2(*BOgAf<+R$lzakPG`kF31()Fx{L5Wrac|GQzjeE= zueY1`Ze{#x<8=S|`~MgGetGce)#vN&|J{Cd^tS%;tBYTo?+^d68<#n_Y_xx`J||4O V@QB{^CqU0Kc)I$ztaD0e0svEzbJzd? literal 0 HcmV?d00001 diff --git a/sync_off.png b/sync_off.png new file mode 100644 index 0000000000000000000000000000000000000000..3b443fc62892114406e3d399421b2a881b897acc GIT binary patch literal 853 zcmV-b1FHOqP)oT|#XixUYy%lpuf3i8{fX!o zUyDD0jOrAiT^tq>fLSOOABs-#u{dV^F$b{L9&!2=9&RmV;;8s^x&UqB$PCj4FdKbh zoB1WTskPUPu05XzFbA}=KZ-GP1fPpAfSs>6AHb12UlR%-i&uOlTpFNS7{jm@mkU1V zh`nrXr~+^lsV-s1dkZOaI|kYyVj3WBpPCY{n~yd%u%e+d=f%`N0FItMPtdgBb@py; zq@v6NVArhyTC7)ULw-Jy8y42S1~4n(3LkrW8mW(F-4oXUP3E`e#g**YyqI7h-J2zK zK{m9##m4ri!7N>CqQqCcnI3hqo1I;Yh&QLNY4T`*ptiQGozK>FF$!$+84Z`xwmeMh zJ0WT+OH$WYFALEaGj2_l+#DC3t7_S`vHpSivNeFbP6+r50cO8iu)`7i%Z4BTPh@_m3Tk!nAm^)5Bqnr%Ov|Baunj#&RPtRuK& z4RGz|D5HNrW83-#ydk}tVKJrNmyYt-sTxLGlJY5nc&Re zU4SgHNPx8~Yxwr$bsju?4q&%T1874xxzq+_%?h8_ofw~(bld=o3iC)LUNR*BY%c0y zWd_jX{Y8`l%z+ol1$@Qa?Cy!(0CVIEeYpKZ`(9{z>3$CIe;pJDQk$m3p}$>xBm4lb zKo{4S)`wdU9Ba9jJbVJ0C=SOefZe%d$8=2r={nu<_^a3~>c#t_U6dye5)JrR(_a^E f@}b6j1K9lwFJq@>o)+Ry00000NkvXXu0mjfWa5j* literal 0 HcmV?d00001 diff --git a/sync_on.png b/sync_on.png new file mode 100644 index 0000000000000000000000000000000000000000..e08320fb64e6fa33b573005ed6d8fe294e19db76 GIT binary patch literal 845 zcmV-T1G4;yP)Y;xxyHF2B5Wzm| zOOGupOTn@c(JmBOl)e;XMNnZuiTJP>rM8<|Q`7I_))aP?*T)ow&n59{}X4$3Goat zgjs?*aasfbrokzG5cT4K=uG`E14xZl@z)F={P0Y^?$4t z>v!teRnNZym<6h{7sLyF1V0HsfEl+l6TrZpsfr1}luH~F7L}ktXu|*uVX^RG$L0`K zWs3j|0tIvVe(N%_?2{(iCPFGf#B6Hjy6o&}D$A%W%jfO8_W%ZO#-mh}EM$LMn7joJ z05dHr!5Y92g+31l<%i1(=L1a1pXX+OYnalY>31V4K}BjyRe3)9n#;-cCVRD_IG1fT zOKGeNY8q;TL@K{dj@D^scf&VCs*-Jb>8b>|`b*osv52-!A?BpbYtTQBns5EAU**$m zSnVSm(teh>tQi*S*A>#ySc=n;`BHz`DuG4&g4Kf8lLhca+zvZ7t7RflD6-i-mcK=M z!=^P$*u2)bkY5asG4gsss!Hn%u~>}kIW`vMs%lJLH+u*9<4PaV_c6U`KqWXQH%+Nu zTv41O(^ZVi@qhjQdG!fbZw&y+2o!iYymO^?ud3{P*HdoX83YV*Uu_HB=?U&W9%AU# z80}k1SS-CXTU7dcQlsm<^oYLxVSseqY6NO}dc`Nj?8vrhNuCdm@^{a3AQ_>6myOj+ z`1RsLUXF|dm|3k7s2jD(B{rzE>WI2scH8i1;=O5Cc9xB3^aJk%fQjqsu+kH#0=_5a z0nCE8@dbQa-|YIuUVvG0L_IwHMEhOj$Mj4Uq05 X8=0q~qBNan00000NkvXXu0mjfptF>5 literal 0 HcmV?d00001 diff --git a/tab_a.png b/tab_a.png new file mode 100644 index 0000000000000000000000000000000000000000..3b725c41c5a527a3a3e40097077d0e206a681247 GIT binary patch literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QlXwMjv*C{Z|8b*H5dputLHD# z=<0|*y7z(Vor?d;H&?EG&cXR}?!j-Lm&u1OOI7AIF5&c)RFE;&p0MYK>*Kl@eiymD r@|NpwKX@^z+;{u_Z~trSBfrMKa%3`zocFjEXaR$#tDnm{r-UW|TZ1%4 literal 0 HcmV?d00001 diff --git a/tab_ad.png b/tab_ad.png new file mode 100644 index 0000000000000000000000000000000000000000..e34850acfc24be58da6d2fd1ccc6b29cc84fe34d GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QhuH;jv*C{Z|5d*H3V=pKi{In zd2jxLclDRPylmD}^l7{QOtL{vUjO{-WqItb5sQp2h-99b8^^Scr-=2mblCdZuUm?4 jzOJvgvt3{(cjKLW5(A@0qPS@<&}0TrS3j3^P6y&q2{!U5bk+Tso_B!YCpDh>v z{CM*1U8YvQRyBUHt^Ju0W_sq-?;9@_4equ-bavTs=gk796zopr0EBT&m;e9( literal 0 HcmV?d00001 diff --git a/tab_s.png b/tab_s.png new file mode 100644 index 0000000000000000000000000000000000000000..ab478c95b67371d700a20869f7de1ddd73522d50 GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QuUrLjv*C{Z|^p8HaRdjTwH7) zC?wLlL}}I{)n%R&r+1}IGmDnq;&J#%V6)9VsYhS`O^BVBQlxOUep0c$RENLq#g8A$ z)z7%K_bI&n@J+X_=x}fJoEKed-$<>=ZI-;YrdjIl`U`uzuDWSP?o#Dmo{%SgM#oan kX~E1%D-|#H#QbHoIja2U-MgvsK&LQxy85}Sb4q9e0Efg%P5=M^ literal 0 HcmV?d00001 diff --git a/tab_sd.png b/tab_sd.png new file mode 100644 index 0000000000000000000000000000000000000000..757a565ced4730f85c833fb2547d8e199ae68f19 GIT binary patch literal 188 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!Qq7(&jv*C{Z|_!fH5o7*c=%9% zcILh!EA=pAQKdx-Cdiev=v{eg{8Ht<{e8_NAN~b=)%W>-WDCE0PyDHGemi$BoXwcK z{>e9^za6*c1ilttWw&V+U;WCPlV9{LdC~Ey%_H(qj`xgfES(4Yz5jSTZfCt`4E$0YRsR*S^mTCR^;V&sxC8{l_Cp7w8-YPgg&ebxsLQ00$vXK>z>% literal 0 HcmV?d00001 diff --git a/tabs.css b/tabs.css new file mode 100644 index 0000000..8920117 --- /dev/null +++ b/tabs.css @@ -0,0 +1 @@ +.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:#364D7C;-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-image:url('tab_b.png')}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0px 1px 1px rgba(255, 255, 255, 0.9);color:#283A5D;outline:0}.sm-dox a:hover{background-image:url('tab_a.png');background-repeat:repeat-x;color:white;text-shadow:0px 1px 1px rgba(0, 0, 0, 1.0)}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:rgba(255, 255, 255, 0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:white}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url('tab_a.png');background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url('tab_b.png');line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283A5D transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url('tab_s.png');background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:url('tab_a.png');background-repeat:repeat-x;color:white;text-shadow:0px 1px 1px rgba(0, 0, 0, 1.0)}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent white transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:white;-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555555;background-image:none;border:0 !important;color:#555555;background-image:none}.sm-dox ul a:hover{background-image:url('tab_a.png');background-repeat:repeat-x;color:white;text-shadow:0px 1px 1px rgba(0, 0, 0, 1.0)}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:white;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url('tab_b.png')}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:white}} \ No newline at end of file