Script: Quick Calc 3.51
Build: 811.1
mIRC Version: 6.16
Author: Daryth
               

0. ##### TABLE OF CONTENTS #####

	1. Loading the script
	2. Starting the script
	3. What's new in this release?
	4. Button explanation
	5. Key combinations
	6. Frequently asked questions


1. ##### LOADING THE SCRIPT #####

	   To load the script make sure you have all the files unzipped into the same
	directory and in mIRC 6.16 or later (it will fail to load in previous versions)
	type "/load -rs qcalc.mrc" without the quotes. If you unzipped the script into 
	a different directory other than your mirc directory type 
	/load -rs "drive:\directory\qcalc.mrc" where drive:\directory is the location 
	of where you unzipped the addon. 


2. ##### STARTING THE SCRIPT #####

	   To run the script right click in a channel or the status window and go down
	to Quick Calc and then go over and click on Quick Calc. You can also type
	"/qcalc" without the quotes to run it.


3. ##### WHAT'S NEW IN THIS RELEASE? #####

	1.  Improved the functionality of the 'Clear' button. Will now clear the currently selected
	    line in the current view if the editbox is empty, still clears the editbox if it isn't.
	2.  Added some optional parameters to the /qcalc command
	
		/qcalc defaults  : Resets the various settings to their default values
		/qcalc help      : Opens up this readme file
		/qcalc mode      : Opens up the Quick Calc mode dialog for changing settings
		/qcalc unload    : Closes any Quick Calc window and unloads the script
	3.  Fixed an issue of the script not displaying what popup menus are enabled when
	    you first /load the script.
	4.  Added a new TblSet option 'tableMaxloop' which is the "Number of table entries to fill in a while 
	    loop before switching over to a slower timer based method to prevent mIRC lockups. (hard set at 500 before)
	5.  Cleaned up the button explanation section in the help file a bit and corrected some minor errors.
	6.  Added a direct help system (whatever you want to call it), Hold Ctrl + Shift and click on a button
	    or an item in the window or tblset view to get a popup window with a description of it.
	7.  Renamed the 'Stor' button to 'Store'.
	8.  Fixed some factorial issues with negative numbers and zero.
	9.  Fixed editbox not auto scrolling to the left/right....


4. ##### BUTTON EXPLANATION #####

[Home]:
  Takes you to the main calculation screen. This is where all the answers
  will be displayed.

[Y=]:
  This brings you to the Y= screen which allows you to enter equations to be graphed.

[Window]:
  This button will bring you to the window setup screen which allows you to 
  change the Graphing variables.

	Angle-min    : Minimum angle value to start at - Polar graphs only
	Angle-max    : Maxmimum angle value - Polar graphs only
	Angle-step   : Increment for the angle value (>0) - Polar graphs only
	T-min        : Minimum value of T to start at - Parametric graphs only
	T-max        : Maximum value of T - Parametric graphs only
	T-step       : Increment for the T value (>0) - Parametric graphs only
	X-min        : The minimum X value boundry of the graph
	X-max        : The maximum X value boundry of the graph
	X-scale      : Distance between grid marks on the x-axis
	Y-min        : The minimum Y value boundry of the graph
	Y-max        : The maximum Y value boundry of the graph
	Y-scale      : Distance between grid marks on the y-axis
	X-res        : Increment value of X to get Y (1-10 or -1 for auto) - Function graphs only

[Graph]:
  This will graph whatever equations are stored in the Y=. 

[TblSet]:
  This brings you to the Table Setting window, This allows you to change
  the table min & max values and the scale to go by.

	tableMin     : The lowest value to start calculating the y values from
	tableMax     : The highest value to calculate y from
	tableStart   : What value to select after it's done calculating the table
	tableScale   : What value to increase x by each time to get y
	tableMaxloop : Maximum number of while loops before switching over to timer based method of filling the table

[Table]:
  This will display the Table window with the x & y values of currently selected function.

[2nd]:
  Changes the function of a few buttons on the calculator to do different things.

[X-Var]:
  The X variable (used for ALL graph modes) to be used in the Y= screen only (disabled in any other screen)

[Var-Link]: (2nd)
  Brings up the variable link window to insert, delete or clear all variables.

[Catalog]:
  Brings up the catalog window which allows access to all the functions available in Quick Calc. 

[Help]: (2nd)
  Brings up this readme file

[Mode]:
  Allows you to change the various Quick Calc settings.

[Back]:
  Deletes the last character that was entered.

[Clear]:
  Clears the whole equation box or the selected line in the main window if the editbox is empty.

[ClrHst]: (2nd)
  Clears the whole history display list
  
[ClrVars]: (2nd) 
  Clears the variables list (if Var-Link is active) 

[(]:
  Parentheses which are used to open and close functions and change the order of evaluation of things.

[)]:
  Parentheses which are used to open and close functions and change the order of evaluation of things.
  
[[]:
  Brackets are like parentheses but are used if you want to do something like	5[6] and you want it to be multipled.

[]]:
  Brackets are like parentheses but are used if you want to do something like	5[6] and you want it to be multipled.
  
[Sin]:
  Will take the sine of the number following it.

[ArcSin]: (2nd)
  The Arcsine of the number following it (-1 to 1 only)

[Cos]:
  Will take the cosine of the number following it.

[ArcCos]: (2nd)
  The Arccosine of the number following it  (-1 to 1 only)

[Tan]:
  Will take the tangent of the number following it.
		 
[ArcTan]: (2nd)
  The Arctangent of the number following it (-1 to 1 only)

[Store]:
  Will store the answer of the current equation into the specified variable.

[Recall]: (2nd)
  Returns the value of the specified variable.

[7]:
  Number seven

[8]:
  Number eight
  
[9]:
  Number nine
  
[Log]:
  Returns the common log of the number after it.

[Ln]:	
  Returns the natural log of the number after it.

[Abs]:
  Will return the absolute value of the specified number. (how far away from 0)

[4]:
  Number four
  
[5]:
  Number five
  
[6]:
  Number six

[n!]:
  Takes the factorial of the number following it. ex !(4) = 24 because 4*3*2*1=24

[e^x]:
  Returns Euclid's number raised to the x power. ex e^1 = 2.718 

[^]:
  Raises the presceding number to the following power. ex 2^3 = 8
     
[]: (2nd)
  Converts the precending number to degrees, to allow degrees in radian mode

[1]:
  Number one
  
[2]:
  Number two
  
[3]:
  Number three

[x]:
  Multiply, Returns the product of the first and the second number. ex 7*4=28

[/]:
  Division.. Returns the quotient of the first and the second number. ex 9/3 = 3

[Sqrt]:
  Takes the Square of the number inside of it (has to be >0 or 0)

[0]:
  The number zero, anything that gets divided by zero will return 'Undefined'

[.]:
  Decimal point... hopefully no explaination of this is needed.

[Pi]:
  Returns Pi, that 3.14159 number that never ends.

[+]:
  Addition.. Returns the sum of the first and second number. ex 512+34=546
 
[-]:
  Subtraction.. Subtracts the second number from the first. ex 100-87=13

[Enter]:
  Multiple functions.
	Home    :  Solves the equation
	Y=      :  Assigns the equation to currently selected y=
	Window  :  Changes the selected setting to it's new value
	TblSet  :  Changes the selected setting to it's new value
	Table   :  Jumps to the value of the editbox in the table


5. ##### KEY COMBINATIONS #####
  [All Views]
  
	Shift + Graph button   : Brings up the graph window size dialog to change the window dimensions.
	Shift + Catalog button : Opens up the catalog display in a seperate dialog.
	Ctrl + Shift + Click   : If you click on a button it will popup a window with a description of it.	
	
  [Home View]
 	
	Double Click	     : Brings down the selected answer in the history display to the editbox.
	Shift + Double Click   : Returns the equation in the editbox that got that answer.
	Ctrl + Double Click    : Deletes the selected line from the history display.
	Shift + Enter button   : Keeps the equation in the editbox after solving (editbox gets cleared by default).
	
  [Y= View]
  
	Double Click	     : Returns the function in the editbox.
	Shift + Double Click   : Disables/Enables the current function from being graphed. ([+] = will be graphed, [-] = wont be graphed)
	Ctrl + Double Click    : Clears the currently selected function.
	
  [Window View]
  
	Double Click           : Returns the current value in the editbox for you to modify.
	Ctrl + Shift + Click   : Popups a window with help on that setting.
	
  [TblSet View]
  
	Double Click           : Returns the current value in the editbox for you to modify.
	Ctrl + Shift + Click   : Popups a window with help on that setting.
	
  [Table View]
  	
	Any number + Enter     : Jumps to that number in the current table to view the y value.
		
  [VarLink View]
  
	Double Click	     : Returns the value of the selected variable and returns you to the previous view.
	Ctrl + Double Click    : Deletes the selected variable.	
	
  [Graphing Window]
  
	'1-9' 		     : Hide/Show that graph #
	'd'   		     : Get Distance
	'p'		           : ZoomPrev
	'r'   		     : ReGraph
	's'   		     : ZoomStd
	'w'   		     : Set graph window width/height
	'z'   		     : zoomBox
	Ctrl			     : zoomBox
	Enter 		     : Pressing enter, followed by any valid number and then enter again will get the y value for the selected graph
		
  
6. ##### FREQUENTLY ASKED QUESTIONS #####

	Q. Insert question about Quick Calc's scripting here (why it's so messy, the 1000+ lines, why didn't you use this command instead of that, etc)
	A. Because this particular version has been ongoing since the release of Quick Calc 3.0 in 04-04-1999, I've never did a complete rewrite, just added 
	   things here and there when I felt like it. I just finally got around to cleaning a few things up and releasing the damn thing. On the 1000+ lines,
	   a lot of it is in error checking (can never have enough :) ie rebuilding the data file [qcalc.dat], checking all the entered values to make sure their
	   valid, etc.
	   
	Q. Why does it take forever to graph stuff on my computer?
	A. I have no problems with speed on my computer (Athlon XP 1900+) not sure how it fairs on slower computers, if it locks up your mirc for longer than you like
	   go into mode -> advanced settings -> check 'Always use timer based graph rendering' and/or you can up the x-res/t-step/angle-step value.
	   
      Q. Where are the 't' (time) & angle variable buttons for Polar and Parametric graphing?
      A. There is none, use the x variable in place of both of them when graphing (You can also use an uppercase 'T' for Parametric graphing).
      
	Q. How come 'sin(x)' and 'SIN(X)' graphs correctly but 'tan(x)' and 'TAN(X)' does not?
	A. If you look above you'll see that an uppercase 'T' is also used as the time variable for parametric graphing and it gets replaced when graphed,
	   so your better off leaving the caps lock off. :)
      
	Q. Why doesn't your calculator have [insert math function here] in it?
	A. Dunno, let me know what you want added and I might consider it.
	
	Q. What happened to all the easter eggs that where in Quick Calc 3.0?
	A. All gone... for some reason I removed all of them a while ago but fear not I might have added a new eggy or 2.
	
	Q. Why are subsequent graphs drawn faster?
	A. Because the first time a graph is drawn it has to have the axes and grid rendered (if there enabled) which takes time, these are then cached which makes
	   subsequent redrawing a tad quicker.

	Q. How come the script only displays up to 6 decimal places and/or can't handle very large numbers?
	A. It's not a script limitation it's what mIRC's $calc identifier is only capable of. You can probably argue and say there is a way to script around it
	   but that's not something I feel like doing at the moment. 

	Q. I screwed up a lot of settings in the script and I want to reset everything to default settings is there a way?
	A. Yes, type "/qcalc defaults" in any mIRC editbox.
