Kevin Kofler's Super -------------------- CHEMISTRY EQUATION SOLVER v.4.11 ================================ README ****** 1.Other languages Ce lisezmoi existe aussi en Français. Dieses Liesmich existiert auch auf Deutsch. Questo leggimi esiste anche in italiano. 2.Supported platforms Chemistry Equation Solver should work on ANY TI-89/TI-92+: You need v.2.00 or higher for non-English AMS 2.03. You need v.3.01 or higher for the 6 new languages in Language Localization 2.02 for AMS 2.03. You need v.4.11 or higher for the Polish version of AMS (new in Language Localization 2.04). 3.New in v.4.11 (2002-10-18) * Now compatible with all currently available language version of AMS, including Polish 4.The user interface To start it, just type in chemisui() and press [ENTER]. Simply enter all reagents in the first dialog and all products in the second. (Note: press [alpha] for lowercase letters, [Shift] for uppercase, press [ENTER] TWICE to go to the next dialog {the first time selects the input box}) IMPORTANT:remember to disable alpha-lock by pressing [alpha] when you enter a dialog on AMS 2.03 Syntax: (Analysis is done by the chem() function. Check its source if something isn't clear.) a.The syntax IS case-sensitive. b.Enter indices as a normal number. c.Enter positive charges as "+", negative charges as "-" or [(-)]. d.You may put a "^" in front of any charges. e.If you enter multiple charges with a number, you MUST put a "^" before. This is to differentiate between "Cu2+"="CuCu+" (doesn't exist in reality) and "Cu^2+"="Cu++" (this exists). f.You can also enter multiple charges as "++","^++","+++","^+++","--" etc. g.NEW IN v.3.00: You may also use "^"+an integer to enter charges, as "^1","^2","^-1" etc. h.NEW IN v.3.00: Multiple levels of parentheses are supported (as "Ca(HCO3)2" or "(CH3(CH2)7)2". i.NEW IN v.4.00: "e-" or "e[(-)]" can be used for electrons instead of "-" or [(-)]. j.NEW IN v.4.00: Coefficients may now contain "." to enter decimal fractions. k.NEW IN v.3.00: Advanced users can use a function interface, which supports an unlimited number of reagents and products. Use it as 'chemisfn("C6H12O6 + O2 -> CO2 + H2O")', where "->"=[STO->]. l.NEW IN v.4.00: Valid alternatives for " -> " are: "->"," = ","=", valid alternatives for " + " are: " & ","&", and "+" if you use the "^1"... syntax for charges. 5.The functions Name(arguments) size ============================ chem(str) 1951 chemisfn(chemeq) 1817 chemislv(chemeq,varlist) 346 chemslv(chemeq,varlist) 680 exp2matr(expres) 296 getvars(expres) 471 getvart2(expres,var,vl2) 291 matr2exp(var) 198 ---------------------------- TOTAL (functions) 6050 + chemisui() 5647 ---------------------------- TOTAL (package) 11697 Note: if you want to know what my functions do, you obviously are a programmer, so simply check the source, it isn't protected in any way. 6.Past history Version Date(+) t(++) --> features (+) =on my PC (date of Graph-Link-backup) (++)=time needed to solve glucose oxidation formula (1) C6H12O6 + (6) O2 -> (6) CO2 + (6) H2O (coefficients in parentheses are the output) ======================= 1.00 * 99-07-01 45s --> original version 1.10 ** 99-08-07 38s --> optimized loops in chemslv(),getvars() 1.20 ** 99-08-14 37s --> function calls in chem() not repeated 1.25 ** 99-08-17 35s --> removed "expand expres" from getvarts() 1.50 ** 99-08-17 27s --> replaced getvarts() with getvart2() 1.55 ** 99-08-17 22s --> only 1 getvart2() function call per variable in chemslv() (instead of 2) 1.60 ** 99-08-19 21s --> optimized getvars()-loop (again) 1.70 ** 99-08-19 20s --> optimized chemslv()-loop (again) 1.75 *** 99-08-21 20s --> simplified string comparisons in chem() 2.00 *** 99-12-11 20s --> compatibility with all currently availiable non-English AMS versions --> syntax help added to all functions 3.00 *** 99-12-22 20s --> improved syntax (in chem()) --> added function interface 3.01 *** 00-02-20 20s --> compatibility with the 6 new languages in Language Localization 2.02 for AMS 2.03 4.00 *** 00-08-13 20s --> "e-", "e[(-)]" now accepted as electron symbol --> decimal fractions now accepted as coefficients --> more flexible syntax in function interface --> dialog interface now supports: - automatic side-changing of negative coefficients - automatic adding of e-, H+&H2O, OH-&H2O selectable if no solution found - returning the general solution + 13 particular ones if multiple solutions possible --> some minor optimizations 4.01 *** 00-10-18 20s --> "Auto add..." now works on a TI-92+ 4.10 *** 00-10-21 20s --> New option if no solution found: "Auto add H3O+/H2O" --> "Equation too complex" now displays correctly on a TI-92+ * =released in a few copies in my school ** =never released ***=released on the Internet 7.Bugs None, I think (and hope). Versions 1.00 and 1.75 were checked with about 100 equations and no bug was discovered. V.2.00 and v.3.00 were tested with 4 very different equations to work on AMS 2.03. V.3.01 was checked to work on all languages of Language Localization 2.02 for AMS 2.03. V.4.00 was tested in detail. V.4.11 was tested for compatibility with the Polish version of AMS. Note: If you want the program to compute the coefficients so that both sides are electrically neutral, simply replace "true»expres" with "getvart2(left(chemeq),e,vl2)=0»expres" (you can use copy&paste, the "»" character is the PC equivalent for the [STO->] character) in chemslv(). If you use the ASCII-Source from my homepage, replace "true\->\expres" with "getvart2(left(chemeq),e,vl2)=0\->\expres". Warning: This modification will cause the program to produce an error if you leave out spectator ions and waste about 1s if there is no charge. 8.License a.I CAN'T BE HELD RESPONSIBLE FOR ANYTHING! NO WARRANTY! b.YOU CAN'T SELL MY PROGRAM OR CLAIM IT IS YOURS! c.IF YOU TRANSMIT ONLY PARTS OF THIS PROGRAM, YOU MUST SAY THAT IT'S A PART OF THE CHEMISLV PACKAGE AND ONLY A PART! d.NORMAL RIGHT APPLIES TO THE THINGS I'VE FORGOTTEN! 9.Contact me Homepage: http://kevinkofler.cjb.net E-Mail: kevin.kofler@chello.at