2026-08-10 M. Vilain <uglymike17@gmail.com>  
	* The project has now reached a stable v2.1 state.
	* The check box or radio button in front of a checkable menu item now sits clear of the item's text instead of overlapping it, and is drawn at the size the platform intends.
	* Maximising the IDE window no longer gives all the extra room to the Edit window: it keeps at most two thirds of the width and the Graphics and Text Output windows share the rest. The Edit window is left alone if you have already dragged the divider to give the output side more than that.
	* A program can now maximise the IDE window itself with the new MAXIMIZE statement. MAXIMIZE 1 does exactly what the window's maximise button does and MAXIMIZE 0 what the restore button does, and the result is remembered for the next start just as it is when you press those buttons yourself. A program started with -f fills the screen without being maximised, so MAXIMIZE 0 has nothing to restore there and does nothing.
	* The browser version has moved to an address of its own, https://run.basic256.org. The links in the README that open a program with ?run= and pick a window layout with &mode= now use it.
	* Docking the Graphics window back into the IDE after it has been floated no longer drags its floating size in with it. The pane comes back sized to the graphics canvas -- 500 wide for the usual 500x500, wider or taller if the program called GRAPHSIZE or the view is zoomed -- and never takes more than half the IDE window, whether it is docked at the side or above or below the Edit window.
	* Browser (WASM): INCLUDE now finds the bundled module library, so a program running in the browser can say include "math.kbs" exactly as it does on the desktop. The library is built into the page, so there is nothing to download or install first.
	* The Windows installer no longer puts an extra Basic256 folder in the installation directory holding a second copy of the Examples and the TestSuite. The BASIC256-Windows.zip download never had this.
	* A new Example program, SpriteStatementDemo.kbs, has been added in the Examples/Sprites directory. It is a menu-driven tour of all eight SPRITE statements and of the functions that read a sprite back -- position, size, scale, rotation, opacity, visibility and collision -- with a step for each and a closing flock of mascots that puts them together. It is in the browser version's File/Open Example list too.
	* The program has a new mascot, BitBot. He'll pop up here and there (README.md, doc.basic256.org, Discord,...). He exists in different poses. The images are drawn on a transparent background, so they sit properly on a dark or light theme.

2026-08-01 M. Vilain <uglymike17@gmail.com>  
	* The project has now moved to Beta3 state, meaning it runs, but issues might still lie dormant in both program and documentation
	* Whole numbers are the full 64 bits on every platform: the bitwise shift operators (<< and >>) work across all 64 bits, reading a large whole number from a string or with INPUT keeps its value, and a number too large to fit in a whole number is reported as an error.
	* The Edit and Text Output windows now follow a colour theme, chosen from View/Theme: Follow System (the default), Light, or Dark. Follow System needs Qt 6.5 or later and is greyed out on older builds. The Graphics Output window is not themed and stays white, so existing programs draw exactly as before.
	* The About box, Help/Online help and F1 keyword help now open https://doc.basic256.org, which serves the same documentation site under its own name.
	* Help/Check for update now simply opens the GitHub releases page, https://github.com/uglymike17/basic256/releases, where the builds for every platform are published. Compare the version there with the one in Help/About BASIC-256. 
	* Browser (WASM): sound and speech work on iPad and iPhone, started by the first touch anywhere on the page, and playing a sound file or a URL with SOUND, SOUNDPLAY or SOUNDPLAYER goes through the same in-browser decoder as SOUNDLOAD, so SOUNDLENGTH, SOUNDPOSITION and SOUNDSEEK work on them too. SAY gives up after a wait sized to the length of the text if the speech engine never reports having finished, so a program carries on instead of hanging. If an iPad stays silent, check the side switch or the Control Centre mute, which silence web audio independently of the volume keys.
	* Browser (WASM): the demos that expected a keyboard can be driven with a finger. BubbleUniverse_variations starts on a tap and cycles its variations on a tap or a click, StrangeAttractors is explored by dragging and cleared with a double-tap, and AIChatbot fills the window instead of sharing it with the editor.
	* Examples: PacMan has been reworked -- a fixed 50 frames a second, a score that carries across lives, and the playfield narrowed so the score and legend have a panel of their own. A new game, Claude-AI-neon_snake, has been added.
	* Documentation: the ELLIPSE and SETGRAPH statements and the GETARRAYBASE function, none of which had ever been documented, now have pages on the Docusaurus website, and the optional LET keyword in front of an assignment is described on the Variables page.
	* Documentation: the bit shift operators (<< and >>) and the compound assignments &= and ;= are now documented, and the order of operations tables have been corrected to match what the interpreter actually does.
	* Menu items that switch something on or off -- the windows and toolbars in the View menu, Show Whitespace Characters, Wrap Long Lines, Graphics Window Grid Lines, and the open programs in the Window menu -- now show a check box in front of them, empty or ticked, so it is clear which entries are settings and which are commands. Where only one of a group can apply at a time, View/Theme and View/Graphics Window Zoom, the entries show a round radio button instead.
	* The program has a new logo. It is used for the icon of the program itself on every platform -- Windows, macOS, Linux and the browser tab -- on the welcome page of the Windows installer, in the Help/About BASIC-256 box in place of the desktop's generic information icon, and on the loading screen of the browser version. The icons are drawn on a transparent background, so they sit properly on a dark taskbar or Dock instead of in a white square.

2026-07-26 M. Vilain <uglymike17@gmail.com>  
	* The project has now moved to Beta2 state, meaning it runs, but issues might still lie dormant in both program and documentation
	* Polyphonic sound have been corrected
	* A new Example program 'SoundStatementDemo.kbs' demonstrating the new SOUNDxxx statements has been added to the Examples/Sound_Speech directory
	* A new Example program 'ImageStatementDemo.kbs' demonstrating the new IMAGExxx statements has been added to the Examples/Image directory
 	* The REF() command (passing arrays to subroutines by reference) has been corrected.
	* The Edit and Output windows are now pinned to a white/light scheme so code and text stay readable on desktops using a dark OS theme (Ubuntu dark, iPhone/iPad, etc.).
	* The project has been relicensed from GPL version 2 to GPL version 3 or later.  The bundled md5 (RSA Data Security) and LineNumberArea (Qt example, BSD) files keep their own compatible licenses.
    * A macOS for Intel has been added but this requires Sequoia (macOS 15)

2026-07-17 M. Vilain <uglymike17@gmail.com>  
	* The project has now moved to Beta state, meaning it runs, but issues might still lie dormant in both program and documentation
	* A Docusaurus website has been created to replace the old doc.basic256.org in the code and is activated via the menu-item Help/Online help or by pressing F1 over a keyword. It lives on https://uglymike17.github.io/Basic256-Docs and is also shown in the Help/About BASIC-256 menu-item.
	* All desktops now show a File/Open Examples. Previously, only the WASM build gave this option.
 	* Fix small errors that cropped up during testing.

2026-07-10 M. Vilain <uglymike17@gmail.com>  
	* Another Big one: Migrating Basic256 from Qt5 to Qt6 has allowed us to build Basic256 as a WASM application, meaning you can run it from the Web Browser! Currently, it runs here: https://uglymike17.github.io/basic256/
	There are some caveats on this explained in the README.md file.
 
	* Fix small errors that cropped up during testing.

2026-07-05 M. Vilain <uglymike17@gmail.com>  
	* Big one: Migrated Basic256 from Qt5 to Qt6, which is a major update that will allow for better performance on ARM-based systems like Raspberry Pi.|  
	* Fix small errors that cropped up during edge-tests in TestSuite run.

2026-07-04 M. Vilain <uglymike17@gmail.com>  
	* Added: CLI option -f when used with -r/-a/-g/-t will now open the program fullscreen
	* Added: CLI option -s when used will supress all screen output. Mainly used during testing but could be used to read/write/change a file/DB,...
	* Small bugfix: Windows Installer created spurious basic256 directory with Examples and TestSuite.


2026-06-30 M. Vilain <uglymike17@gmail.com>  
	* Provide AppImage files for Linux-x86 and Linux-ARM in addition to the tar.gz files  
	* Improved: CLI option -g will now open the Graphics window in the size you defined it (either 500x500 or by the graphsize you specified)  
	* Small bugfix: on Windows, Iconlabels in Toolbars now follow the system settings..  


2026-06-13 M. Vilain <uglymike17@gmail.com>  
    * Copy Sourceforge build 2.0.99.10.2 over to Github    
	* replace qmake (*.pro) with CMake (build.yml, CMakeLists.txt)  
	* Replace MinGW with MSYS2 for Windows builds.  
	* Replace deprecated Qt operators  
	* move some Posix structures to Qt structures  
	* provide basic.app for MacOS Silicon (ARM64) using brew with compiler AppleClang 17.0.0.17000013  
	* provide stand-alone tarball for Linux-x86 Using compiler GNU 11.4.0.  
	* provide stand-alone tarball for Linux-ARM (RPi Trixie). Using compiler GNU 13.3.0.  
	* provide standalone zip file for Windows. No .nsi yet


2011-2026 No changelog entries although a lot of changes happened over the years.


2011-08-08 j.m.reneau <renejm@users.sourceforge.net> 0.9.6.68
	* added TEXTWIDTH statement to return width of a string i the current font before output to the graphics area

2011-08-07 j.m.reneau <renejm@users.sourceforge.net> 0.9.6.67
	* added -r option to command line to switch UI to run only mode

2011-07-01 j.m.reneau <renejm@users.sourceforge.net> 0.9.6.66
	* changed inpout32.dll linking to dynamic for Windows port to eliminate the dll hell
	* merged in http://patch-tracker.debian.org/patch/series/view/basic256/0.9.6.60-2/04_portable_sound.diff
	* fix off-line documentation load on windows - to use the application absolute path to fing help folder
	
2011-05-01 j.m.reneau <renejm@users.sourceforge.net> 0.9.6.65
	* renamed spanish help file to es not sp

2011-03-19 j.m.reneau <renejm@users.sourceforge.net> 0.9.6.65
	* Added GRAPHVISIBLE, EDITVISIBLE, and OUTPUTVISIBLE statements to hide sections if the UI from a running program.

2011-03-18 j.m.reneau <renejm@users.sourceforge.net> 0.9.6.64
	* Added option to View menu to hide Edit Widget (program source)

2011-03-17 Javier Gonz�lez
	* new Spanish UI translation

2011-03-05 j.m.reneau <renejm@users.sourceforge.net> 0.9.6.63
	* Added replace dialog and refined find dialog

2011-03-04 j.m.reneau <renejm@users.sourceforge.net> 0.9.6.62
	* Added find dialog

2011-02-14 j.m.reneau <renejm@users.sourceforge.net> 0.9.6.61
	* fixed windows only problem with DIR statement
	* restructured and documented the doc tree
	* worked on the windows installer to allow for optional install of offline help and examples

2011-02-14 j.m.reneau <renejm@users.sourceforge.net> 0.9.6.60
	* added MSEC function to return program running time in milliseconds

2011-01-20 j.m.reneau <renejm@users.sourceforge.net> 0.9.6.59
	* added option to use espeak for TTS from shell not as a library
              * update documentation in BASIC256.pro and COMPILING.txt

2011-01-07 j.m.reneau <renejm@users.sourceforge.net> 0.9.6.58
	* added OSTYPE function to return the type of OS this was compiled

2011-01-06 j.m.reneau <renejm@users.sourceforge.net> 0.9.6.57 (473)
	* added IMPLODE to change an array to a string
	* updated Russian translation

2011-01-05 j.m.reneau <renejm@users.sourceforge.net> 0.9.6.56 (469)
	* added INSTRX() to return position of a Regular Expression
	* added REPLACEX() function to find an regular expression and replace with a string
	* added COUNTX() function to retuen number of occourances of a regular expression
	* added EXPLODEX() function to split a string into a string or numeric array on a regular expression

2011-01-03 j.m.reneau <renejm@users.sourceforge.net> 0.9.6.55 (468)
	* allow assignment of indirect list of values {} to redimision an array to the correct size
	* added two optional arguments to INSTR() - Start and IgnoreCase
	* added Unicode safe string REPLACE() function
	* added Unicode safe substring count COUNT() function
	* added EXPLODE() function to split a string into a string or numeric array

2011-01-02 j.m.reneau <renejm@users.sourceforge.net> 0.9.6.54 (467)
	* added dir() function

2010-12-31 sergey irupin <lamp@altlinux.org> 0.9.6.53 (466)
	* add offline help system
	* replace About window
	* fixed highlighting of keywords

2010-12-13 j.m.reneau <renejm@users.sourceforge.net> 0.9.6.53 (452)
	* changed variables object to use a map for storage and not a static array - in preparation for some day handling run levels

2010-12-12 j.m.reneau <renejm@users.sourceforge.net> 0.9.6.52 (451)
	* moved variables out of interperter into a new object in preparation for some day adding multiple run levels to handle true functions and subroutines
	* also celeaned up several variable related memory leaks

2010-12-10 sergey irupin <lamp@altlinux.org> 0.9.6.51 (449)
	* add 2 mathematics functions - sqr()/sqrt(), exp()

2010-11-26 sergey irupin <lamp@altlinux.org> 0.9.6.50 (448)
	* icon updates and fixed functions upper() and lower()

2010-11-18 j.m.reneau <renejm@users.sourceforge.net> 0.9.6.49 (443)
	* added close of database files if database not closed by program

2010-11-03 j.m.reneau <renejm@users.sourceforge.net> 0.9.6.48 (439)
	* removed mutex from say statement - eliminate frezing after speech

2010-10-25 j.m.reneau <renejm@users.sourceforge.net> 0.9.6.47 (438)
	* initial MAC port - tested help & preferences
	* added Mac Icon
	* added logic to save font size as a preference

2010-10-24 j.m.reneau <renejm@users.sourceforge.net> 0.9.6.46 (437)
	* initial MAC port - tested sound, say, playwav, database, and networking

2010-10-17 j.m.reneau <renejm@users.sourceforge.net> 0.9.6.45 (435)
	* added IMGSAVE statement to save graphics area as a .png or other qt supported file type

2010-10-15 j.m.reneau <renejm@users.sourceforge.net> 0.9.6.44 (434)
	* forces locale to "C" so that decimal mark '.' will always work

2010-10-11 j.m.reneau <renejm@users.sourceforge.net> 0.9.6.43 (433)
	* fixed seek statement

2010-09-21 j.m.reneau <renejm@users.sourceforge.net> 0.9.6.42
	* tested inpout32 with Windows7-x64 and Vista-x32 and changed compiling instructions
	
2010-09-20 j.m.reneau <renejm@users.sourceforge.net> 0.9.6.41 (431)
	* finished and tested PORTIN/PORTOUT statements for parallel port control (WINDOWS ONLY)
	* added preference settings to allow or disable PORTIN/PORTOUT statements
	* added three new operators &, | and ~ - bitwise and or and not that work with integers

2010-09-19 j.m.reneau <renejm@users.sourceforge.net> 0.9.6.40 (430)
	* INCOMPLETE - Code to start adding PORTIN/PORTOUT statementf for parallel port control

2010-09-14 j.m.reneau <renejm@users.sourceforge.net> 0.9.6.39 (429)
	* fixed SYSTEM statement to use mutex to wait correctly
	* added preference settings to allow or disable system, get/setsetting

2010-09-12 j.m.reneau <renejm@users.sourceforge.net> 0.9.6.38 (428)
	* added GETSETTING and SETSETTING for persistant application storage to the registery/config folder

2010-09-12 j.m.reneau <renejm@users.sourceforge.net> 0.9.6.37 (427)
	* Created password protected preferences dialog - nothing on it yet except the password
	* added MD5 function to return a hex string digest for a string

2010-09-11 j.m.reneau <renejm@users.sourceforge.net> 0.9.6.36 (425)
	* added settings to restore IDE and help to size and location when re-opened
	* added list of 9 most recently opened or saved items for quick open on file menu

2010-09-08 j.m.reneau <renejm@users.sourceforge.net> 0.9.6.35 (423)
	* Added NETADDRESS to return the local IPv4 address as a string

2010-09-06 j.m.reneau <renejm@users.sourceforge.net> 0.9.6.34 (422)
	* Added kill statement to delete a file from the file system

2010-08-22 j.m.reneau <renejm@users.sourceforge.net> 0.9.6.33 (421)
	* fixed problem with focus effecting "key" statement - if focus was ever lost from
	- graphics window - key statement would stop working.  added key trap to BasicOutput
	- and logic to allow BasicGraph to regain focus
	* syntax highliter updated for a few misses commands

2010-08-17 j.m.reneau <renejm@users.sourceforge.net> 0.9.6.32 (419)
	* Added net* statements and functions to the syntax highlighter and a new networking example

2010-08-17 j.m.reneau <renejm@users.sourceforge.net> 0.9.6.31 (418)
	* fixed linux to compile again after changes in 0.9.6.30
	* removed most of the errors from LEX/basicParse.y 

2010-08-17 j.m.reneau <renejm@users.sourceforge.net> 0.9.6.30 (416)
	* changed all tokens to B256... in lex folder to stop conflicts with windows wtypes.h
	* work on porting to winsock (Windows) - have functioning well enough to test
	* changed net commands to act like file io commands and allow up to 8 open
	- sockets 0-7 with 0 being the default.
	
2010-08-15 j.m.reneau <renejm@users.sourceforge.net> 0.9.6.29 (416)
	* cleaned up socket release (close)
	* added NETDATA function to return true if data is waiting to be received

2010-08-13 j.m.reneau <renejm@users.sourceforge.net> 0.9.6.28 (415)
	* added first attempt at networking statements
        - statements NETLISTEN, NETCONNECT, NETREAD, NETOPEN, and NETCLOSE
	* added new networking folder to Examples with a few test programs
	* not compiled or tested in Windows yet.

2010-08-09 j.m.reneau <renejm@users.sourceforge.net> 0.9.6.27 (412)
	* fixed string comparison problem caused since 0.9.6h

2010-08-05 j.m.reneau <renejm@users.sourceforge.net> 0.9.6z (409)
	* Rewrote the error messaging process to allow for error trapping and reporting logic in BASIC code
	* added ONERROR label to jump to a subroutine to handle errors
	* added LASTERROR, LASTERRORMESSAGE, LASTERRORLINE, and LASTERROREXTRA functions that describe last runtime error
	* added OFFERROR statement to restore default error handling - fail on error
	* changed parser to allow labels at the begining of any line or on a line by themselves
	* added display of column number of cursor in status bar when editing
	* added _ as a valid character in a veriable or label name (first letter MUST still be a letter)


2010-08-02 j.m.reneau <renejm@users.sourceforge.net> 0.9.6y
	* Added sqLite database processing - dbopen, dbclose, dbsetopen, dbsetclose, and dbexecute statements, also dbint, dbfloat, dbstring, and dbrow functions to manipulate recordsets

2010-07-27 j.m.reneau <renejm@users.sourceforge.net> 0.9.6x
	* left alen, alenx, and aleny in lex files when adding 2d and redim of arrays - unused - removed

2010-07-26 j.m.reneau <renejm@users.sourceforge.net> 0.9.6w (405)
	* added decimal statemene to define maximum number of decimal places to display
          (full precision of a double is still being maintained behind the scenes)
	* fixed web site on about box
	* added recent new statements to syntax highliter

2010-07-21 j.m.reneau <renejm@users.sourceforge.net> 0.9.6v (403)
	* fixed several gramatical errors with file messages - thanks joel
	* removed maximum size of graphical output widget

2010-07-13 j.m.reneau <renejm@users.sourceforge.net> 0.9.6u (402)
	* fixed wavwait logic for compile under Win32.  Also noticed in the QSound documentation
	  that wavwait will not work under Windows because of a quirk with the library.
	* made the graphics and text output so that they may float

2010-07-04 j.m.reneau <renejm@users.sourceforge.net> 0.9.6t
	* added new wavwait statement to wait for the currently playing wav to finish

2010-07-02 j.m.reneau <renejm@users.sourceforge.net> 0.9.6s
	* totally re-wrote linux sound functionallity to use the SDL library and SDL_mixer.  Resolved issued with QSound (requiring NAS) and the /dev/dsp not being released bu the TTS libraries.

2010-06-25 j.m.reneau <renejm@users.sourceforge.net> 0.9.6r
	* added currentdir and changedir statements to manage the current folder
	* moved documentation to WIKI at doc.basic256.org and changed link in documentwindow.

2010-06-25 j.m.reneau <renejm@users.sourceforge.net> 0.9.6q
	* found read statement removed from LEX - readded
	* fixed string pointer conversion in readline
	* changed sprite move to limit range to 0-graphwidth|graphheight-1
	* changed all file io statements to allow for 0-7 files simultaneously - syntax didn't change for single file operations but new filenumber parameter added to allow for multiple files

2010-06-14 j.m.reneau <renejm@users.sourceforge.net> 0.9.6p (393)
	* re-wrote the way color "Clear" works
	- getcolor and pixel will return a -1 when the drawing color or pixel requested is clear (or after a clg and nothing has been drawn there)
	- the CLEAR constant/function now has a value of -1
	- all of the drawing commands (point,line,rect,cir,poly,stamp) now will replace pixels with a transparent when color is clear
	# added clear of the graphics output area - when initialized to cleanup LINUX display

2010-06-13 j.m.reneau <renejm@users.sourceforge.net> 0.9.6o
	* added spritev - visible function
	* added spriteslice - extract a sprite from the screen and demo program
	* changed sprite to be not visible when created - so that is can be moved and so that it does not change the screen when sliced out.

2010-06-09 j.m.reneau <renejm@users.sourceforge.net> 0.9.6n
	* fixed several memory leaks with strings from stack and variable assignments
	* added sprites - spritedim, spriteload, spritemove, spriteplace, spritex, spritey, spritew, spriteh, and spritecollide

2010-06-07 j.m.reneau <renejm@users.sourceforge.net> 0.9.6m
	* fixed linux compile with lib espeak
	* added logic to parser to allow for whitespace before a label - to allow older examples to run

2010-06-01 j.m.reneau <renejm@users.sourceforge.net> 0.9.6l
	* fixed help display path when windows installed.
	* added getslice, putslice, and imgload into syntax highlighter
	* changed imgload from 0.9.6k to place the center of the image at the specified coordinates
	* added rotate and scale parameters to imgload like stamp

2010-05-31 j.m.reneau <renejm@users.sourceforge.net> 0.9.6k (377)
	* added imgload statement to load a bmp, gif, jpg, or pgn from a file and siaplsy it on the graphics output window
	* compiled new ru translation from Sergey

2010-05-25 j.m.reneau <renejm@users.sourceforge.net> 0.9.6j (376)
	* added ability to enter integers in code with 0[bB][01] for binary 0[oO][0-7] for octal and 0[xX][0-9a-fA-F] for hexidecimal

2010-05-18 j.m.reneau <renejm@users.sourceforge.net> 0.9.6i (374)
	* added dialog to verify overwriting file
	* added dialog to verify loading program and loosing changes
	* changed new dialog to only appear if unsaved changes are in buffer
	* added dialog on close to verify loosing changes (both exit and window close)
	* added undo and redo to menu and toolbar for editor
	* changed genhelp.list to make all ids and see also links lowercase - for LINUX

2010-05-18 j.m.reneau <renejm@users.sourceforge.net> 0.9.6h (370)
	* added search to Documentation Window

2010-05-17 j.m.reneau <renejm@users.sourceforge.net> 0.9.6g (369)
	* changed Documentation Window to use WebView to fix the #tags for navigation

2010-05-12 j.m.reneau <renejm@users.sourceforge.net> 0.9.6f (362)
	* added error statements to linus sound and speech functions.  They are still rough and troublesome.

2010-05-11 j.m.reneau <renejm@users.sourceforge.net> 0.9.6e (361)
	* added statements to BASIC256.pro file so qmake would make the "make install" for linux to ease build

2010-05-10 j.m.reneau <renejm@users.sourceforge.net> 0.9.6c (359)
	* changes for fontsize
	* update Russian translation

2010-05-09 j.m.reneau <renejm@users.sourceforge.net> 0.9.6b (353)
	* GetSlice returns a hex string representing a slice (rectangular area) of the screen
	* PutSlice will draw the slice.  you may defina a transparent color in slice.

2010-05-02 j.m.reneau <renejm@users.sourceforge.net> 0.9.6a (350)
	* handle Utf8 strings (drblast)
	* rewrite string functions to use unicode characters
	* now program save and load in utf8
	* compiled RU translation

2010-04-18 j.m.reneau <renejm@users.sourceforge.net> 0.9.5v (329)
	* added \ operator for integer division
	* added log() and log10() functions

2010-04-15 j.m.reneau <renejm@users.sourceforge.net> 0.9.5t (326)
	* Redim an array to change it's size while maintaining it's contents

2010-03-08 j.m.reneau <renejm@users.sourceforge.net> 0.9.5m (318)
	* changed color staretemt to accept a single number RGB value r*255^2+g*255+b.
	* changed colors to constants that return a color integer
	* added rgb function to take color triplet and return color integer
	* added getcolor to return the value of the current drawing color
	* added pixel to get the color value of a pixel on the graphics output

2010-02-01 j.m.reneau <renejm@users.sourceforge.net> 0.9.5l (316)
	* finished linux implementastion of new sound command

2010-01-29 j.m.reneau <renejm@users.sourceforge.net> 0.9.5j (315)
	* added cut, copy and paste icons to tool bar
	* added option for sound to accept an array or list of frequency and durations.  This allows for fast smooth transition when playing multiple tones in a stream. linux logic not tested with this commit.

2010-01-28 j.m.reneau <renejm@users.sourceforge.net> 0.9.5i (312)
	* added volume command to control the amplitude of the sound wave out
	* changed LINUX TTS to flite engine from espeak. espeak was having problems releasing the /dev/dsp device
	* cleaned up syntax high-liter

2010-01-26 j.m.reneau <renejm@users.sourceforge.net> 0.9.5h (311)
	* added system command and cleaned up documentation

2010-01-26 j.m.reneau <renejm@users.sourceforge.net> 0.9.5g (310)
	* re-wrote say to use libespeak under linux - need to get same change made to windows
	* added logic to do the sound command in LINUX by writing a sine wave to /dev/dsp
	* update doc.lisp and compiling.txt with info
	* changed say command to use Microsoft SAPI instead of running a command line version of espeak. Also changed the Windows version of sound to generate a wave out to the soundcard and only use the system speaker if sound is not available (sound on a laptop)

2010-01-16 j.m.reneau <renejm@users.sourceforge.net> 0.9.5e (308)
	* added UPPER and LOWER character functions, cleaned up syntax highlighter

2010-01-15 j.m.reneau <renejm@users.sourceforge.net> 0.9.5c (306)
	* added two dimensional arrays to language (dim, reference, assignment, and input without prompt.  Still need to add to input with a prompt.
	* updated documentation and 15puzzle.kbs example

2010-01-12 j.m.reneau <renejm@users.sourceforge.net> 0.9.5c (303)
	* added left and right string functions, documented them
	* cleaned up syntax highliter with newer reserved words and fixed string highlight

2009-12-25 j.m.reneau <renejm@users.sourceforge.net> 0.9.4g (296)
	* added multi line if/endif and if/else/endif.  a;so added while/endwhile loop

0.9.4f
	* Asc, Chr, Float, Font, Text

2009-12-21 j.m.reneau <renejm@users.sourceforge.net> 0.9.4e
	* added mouse functions - Mouseb, Mousex, Mousey, Clickb, Clickx, Clicky, Clickclear

2009-12-03 j.m.reneau <renejm@users.sourceforge.net> 0.9.4
	* added date and time functions - Day,  Hour,  Minute,  Month,  Second, Year
	* added file functions - Eof, Writeline, Exist, Seek, Size
	* added sound and speak functions - Say, WAVplay, WAVstop

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 j.m.reneau <renejm@users.sourceforge.net> 0.9.3g
	* added SAY statement 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 j.m.reneau <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 ian larsen <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 ian larsen <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 ian larsen <drblast@users.sourceforge.net> 0.9.1
	* VariableWin.cpp (addVar): Changed variable window to use TreeWidget instead of a list, to allow for showing arrays.

2006-11-28 ian larsen <drblast@users.sourceforge.net> 0.9
	* 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 ian larsen <drblast@users.sourceforge.net>
	* MainWindow.cpp (QMainWindow): Added two items to view menu to enable/disable text and graphics output windows.

2006-11-20 ian larsen <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 ian larsen <drblast@users.sourceforge.net> 0.8
	* 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 ian larsen <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 ian larsen <drblast@users.sourceforge.net>
	* Interpreter.cpp (execByteCode): Printing of floating point instead of integers fixed.

2006-11-01 ian larsen <drblast@users.sourceforge.net>
	* Interpreter.cpp (execByteCode): Added OP_LINE, which draws lines.

2006-10-31 ian larsen <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 ian larsen <drblast@users.sourceforge.net> 0.7
	* Main.cpp (main): Added actions to edit menu. Removed close button on output windows.

2006-10-20 ian larsen <drblast@users.sourceforge.net> 0.6
	* Interpreter.cpp: Added internationalization support.
	* BasicEdit.cpp: Added internationalization support.
	* Main.cpp (main): Added internationalization support.

2006-10-18 ian larsen <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 ian larsen <drblast@users.sourceforge.net> 0.5
	* 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 ian larsen <drblast@users.sourceforge.net> 0.4
	* 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 ian larsen <drblast@users.sourceforge.net>
	* LEX\basicParse.y: Added colon as multiple statement separator

2006-10-07 <drblast@users.sourceforge.net> 0.3.1
	* 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 ian larsen <drblast@users.sourceforge.net> 0.3
	* 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

2006-09-30 ian larsen <drblast@users.sourceforge.net> 0.1
	* �n sourceforge.net uploaded the first version
