2009-11-05 j.m.reneau <renejm@users.sourceforge.net> 0.9.3o

	* added STAMP to draw a scaled poly at a position on the graphics display - sort of a simple sprite
	* added TRUE and FALSE boolean constant values
	* corrected problem with x&y reversing when an indirect list was defined for a POLY
	* removed the unused number of points from the syntax of POLY

2009-11-04 j.m.reneau <renejm@users.sourceforge.net> 0.9.3n

	* added SIZE, EXISTS, and SEEK for use during file IO

2009-11-02 j.m.reneau <renejm@users.sourceforge.net> 0.9.3m

	* rewrite popint/popfloat/popstring in interperter.cpp to return type not a stack value

2009-11-01 j.m.reneau <renejm@users.sourceforge.net> 0.9.3l

	* added alternate syntax of input statement to allow a numeric variable or array.  If non numeric
	  data is entered a zero will be stored in the variable
	* added logic to allow for < > <= >= comparisons of strings

2009-10-31 j.m.reneau <renejm@users.sourceforge.net> 0.9.3k

	* added WAVPLAY and WAVSTOP commands to asynchronously play a wav audio file and to stop it

2009-10-29 j.m.reneau <renejm@users.sourceforge.net> 0.9.3j

	* added GRAPHHEIGHT and GRAPHIDTH to return the size of the graphics window
	* worked on the HTML documentation, added GRAPHSIZE, GRAPHWIDTH, and GRAPHHEIGHT
	
2009-10-28 j.m.reneau <renejm@users.sourceforge.net> 0.9.3.i
	* worked my prior changes into the trunk

2009-10-26 j.m.reneau <renejm@users.sourceforge.net> 0.9.3h

	* changed say statement to allow for same arguments (float and string) as print
	* changes say to use espeak without a direct path to the exe file.   requires espeak in path on windows
	

2008-09-23 <renejm@users.sourceforge.net> 0.9.3g

	* added SAY ststement to call locally installed espeak to tts string - need to re-write for linux and would like to see it use the espeak lib

2008-09-08 <renejm@users.sourceforge.net> 0.9.3f

	* added font "fontname", point, weight and text x, y, "txt" commands to paint text onto the graphics window (TestPrograms/testtextfont.kbs"

2008-09-07 <renejm@users.sourceforge.net>

	* added logic to yyerror in LEX\basicParse.y to fix syntax error line number problem.  If an error was the last token on the line it would report the error on the next line.  check yytoken if \n and if it is then report previous line

	* added column number to syntax error printing - added count logic to basicParse.l
	
	* fixed rand - it would return values between 0 and 1 with 1 inclusive changed to return almost one but not quite (see TestPrograms/random_one.kbs)
	
2008-09-05 <renejm@users.sourceforge.net>

	* changed yacc scriopt for order of operations
	
	* removed imask logic from BasicGraph and Interperter.  Was causing refresh and draw errors on fast (dual core win32 xp&vista) boxes
	
	* split version # out of MainWindow into Version.h

2008-09-01 <renejm@users.sourceforge.net>
	
	* Added array testing to array input like logic added 2008-08-29
	
	* Added COLOR #,#,# to set colors by rgb
	
	* changed poly to draw filled not just outline
	
	* created NSIS install script for Win32
	
	
2008-08-29 <renejm@users.sourceforge.net>
	
	* Added Functions asc, chr, float
	
	* Added command readline and writeline to i/o an entire line as a string
	
	* Added boolean flag eof to test if file was at eof
	
	* added % operator for modulo
	
	* added logic to allow for concatenation if float + string or string + float
	
	* combined redudant graphics wait mutex logic in Interperter
	
	* in Interperter added popint, popfloat, popstring to the stack and changed most ops to use these new pops so that type checking could be removed in the op code
	
	* found error in array element assign (string and number) if assigning as an array a non array variable or a non defined variable
	
	* found error in arraylist assign (string and number) if assigning as an array a non array variable or a non defined variable
		see uaarray.kbs
		
	* added print statement with no string to go to next line
	
	* added YEAR MONTH DAY HOUD MINUTE SECOND as constants like RAND and PI
	

2006-12-12    <drblast@users.sourceforge.net>

	* LEX\basicParse.y: Added sound command.

	* LEX\basicParse.l: Added sound command.

	* RunController.cpp (playSound): Added sound support.

	* Interpreter.cpp (execByteCode): Added sound support.

2006-12-10    <drblast@users.sourceforge.net>

	* BasicEdit.cpp (newProgram): fixed file overwrite bug when new program saves as last file's name.

	* LEX\basicParse.l: Added semicolon as alternate remark command

2006-12-04    <drblast@users.sourceforge.net>

	* VariableWin.cpp (addVar): Changed variable window to use TreeWidget instead of a list, to allow for showing arrays.

2006-11-28    <drblast@users.sourceforge.net>

	* Interpreter.cpp (execByteCode): Changed variable window updates to only occur in debug mode.  Otherwise this is a severe performance hit for programs updating many variables in tight loops.

	* VariableWin.cpp (clearTable): Added Variable Watch window.

2006-11-26    <drblast@users.sourceforge.net>

	* MainWindow.cpp (QMainWindow): Added two items to view menu to enable/disable text and graphics output windows.

2006-11-20    <drblast@users.sourceforge.net>

	* Interpreter.cpp (execByteCode): Merged file ops and changed them to work more simply.
	  Changed array printing to print pointer address instead of int, which should fix the 64 bit compile problem.

2006-11-19    <fhendrikx@users.sourceforge.net>

	* Added file operations "open", "read", "write", "close". The read and write functions work on a token basis. EOF is returned by returning an empty token.

	* Added code to test new functions "fileops1.kbs" (and 2 and 3). 

2006-11-17    <fhendrikx@users.sourceforge.net>

	* Added string "length" function and sample code "length.kbs"

	* Added alternative spelling for "color" function: "colour"

	* Added "poly" function and sample code "polygon.kbs"

2006-11-07    <drblast@users.sourceforge.net>

	* LEX\basicParse.y: Fixed rather important memory allocation bug that affected large programs that used lots of if statements.

	* Interpreter.cpp (execByteCode): Fixed bug 1589686

2006-11-03    <drblast@users.sourceforge.net>

	* Interpreter.cpp (compileProgram): Changed the way the interpreter keeps track of line numbers.  Now there's a CURRLINE bytecode which is executed every time the line changes. Also added step-by-step debugging.

2006-11-02    <drblast@users.sourceforge.net>

	* Interpreter.cpp (execByteCode): Printing of floating point instead of integers fixed.

2006-11-01    <drblast@users.sourceforge.net>

	* Interpreter.cpp (execByteCode): Added OP_LINE, which draws lines.

2006-10-31    <drblast@users.sourceforge.net>

	* Interpreter.cpp (execByteCode): Added pause command

	* BasicEdit.cpp (cursorMove): Added slot to calculate line number when the cursor moves, and display it on the status bar.

2006-10-25    <drblast@users.sourceforge.net>

	* Main.cpp (main): Added actions to edit menu.  Removed close button on output windows.

2006-10-20    <drblast@users.sourceforge.net>

	* Interpreter.cpp: Added internationalization support.

	* BasicEdit.cpp: Added internationalization support.

	* Main.cpp (main): Added internationalization support.

2006-10-18    <drblast@users.sourceforge.net>

	* BasicEdit.cpp (BasicEdit): Editor now won't accept rich text, fixing weird font bugs.

	* RunController.cpp (saveByteCode): Added saveByteCode function which saves the compiled byte code to a .kbc file.

	* Main.cpp (main): Added save byte code function and Advanced menu.

	* LEX\basicParse.y: Changed to more dynamic allocation of byteCode to reduce memory footprint for small programs and to prevent memory errors from occurring on 64-bit architectures.

	* Interpreter.cpp (execByteCode): Added mathematical functions FLOOR, CEIL, RAND, SIN, COS, TAN, and ABS
	Separated initialize from compileProgram to support saving byte code as a file.
	
2006-10-16    <drblast@users.sourceforge.net>

	* Interpreter.cpp (execByteCode): Added and, not, xor, and or operations

	* LEX\basicParse.y: Added AND, NOT, XOR, OR

	* LEX\basicParse.l: Added floor, ceil, int, str, and rand tokens

	* LEX\basicParse.y: Added arrays and string arrays.

	* Interpreter.h (struct variable): Added arrays and string arrays.

	* Interpreter.cpp (execByteCode): Added arrays and string arrays.

2006-10-11    <drblast@users.sourceforge.net>

	* BasicGraph.cpp (keyPressEvent): Added keyPressEvent to set currentKey global variable whenever a key is pressed during run time.

	* LEX\basicParse.y: Added KEY keyword as floatexpr

	* Interpreter.cpp (execByteCode): Added OP_KEY operation, which gets the last key pressed.

2006-10-09    <drblast@users.sourceforge.net>

	* LEX\basicParse.y: Added colon as multiple statement separator

2006-10-07    <drblast@users.sourceforge.net>

	* RunController.cpp (stopRun): Changed to threaded model.

	* Interpreter.cpp (execByteCode): Changed to a threaded model.

	* BasicOutput.cpp (getInput): Added slot to support threading.

	* Interpreter.cpp (execByteCode): Changed from using QPixmaps for graphical output to QImage, which is thread-safe.

2006-10-06    <drblast@users.sourceforge.net>

	* Interpreter.cpp (pause): Removed unnecessary pause and unpause functions

	* RunController.cpp (pauseResume): Enabled Pause/Resume feature

	* PauseButton.h: Created Pause button which changes text based on operation 

	* Main.cpp (main): Removed Renumber Lines menu option
	(main): Pause/Resume button enabled
