IBasic Standard Version 2.02D
http://www.pyxia.com/

Installation:
After unzipping into a temporary directory just double click
on the 'setup' icon and follow the instructions

Registration:
Registration costs $29.99. If you register IBasic you will receive the license key to enable executable creation and remove the 30 day trial limitation. Registration also includes free upgrades to all new versions.
Register online at:
http://www.pyxia.com/iborder.html

>>After registering you will receive an email with your license key. You will need this information to activate all of IBasic's features. Choose the 'Help' menu from within the program and then select 'Activate' or enter the key when the program starts. DO NOT share your key with anyone as it contains information about you.

System Requirements:

- Pentium 166 or better processor
- 5 MB free disk space
- 16 megabytes of RAM - 64 megabytes recommended
- Windows 95™ OSR2 or greater OR
- Windows NT 4.0 or greater

To view the user's guide you need at least IE 4.01 installed. Some systems also require an update from Microsoft to properly view HTMLhelp files. That update is available here

Shareware License:
You should carefully read the following terms and conditions before using this software. Clicking the OK button to continue installation of this software indicates your acceptance of this license agreement. If you are unable to agree to any of these terms, press the Cancel button now to abort the installation of the software.
You are hereby licensed to:
- Use the evaluation version of IBasic for a maximum of 30 days. After which the program will cease to run.
- Make as many copies of the evaluation version of this software and documentation as you wish.
- Give exact copies of the original evaluation version to anyone you wish.
- Distribute exact copies of the original evaluation version in its unmodified form, either by electronic means or on physical media.
You are specifically prohibited from:
- Charging more than the reasonable cost of materials for distributing the evaluation version.
- Using the output from the evaluation version of IBasic for any purpose other than personal evaluation or review of the product.
- "Reverse engineering" this product for any purpose whatsoever.
After the 30 day evaluation period you must either delete the evaluation version of IBasic from your computer, or purchase the registered version of the software. Unregistered use of IBasic after the 30 day period is not possible without a valid license.
Disclaimer of Warranty
THIS SOFTWARE IS SUPPLIED "AS IS" AND WITHOUT WARRANTIES AS TO PERFORMANCE, MERCHANTABILITY OR ANY OTHER KIND, EITHER EXPRESS OR IMPLIED. ANY LIABILITY OF THE SELLER WILL BE LIMITED EXCLUSIVELY TO PRODUCT REPLACEMENT OR REFUND OF PURCHASE PRICE. THIS LIMITED WARRANTY GIVES YOU SPECIFIC LEGAL RIGHTS; YOU MAY HAVE OTHERS, WHICH VARY FROM COUNTRY TO COUNTRY AND STATE TO STATE.
Windows®, Windows NT, Windows 98®, Windows 2000® and Windows XP®, are a registered trademarks of Microsoft Corporation.

If you like IBasic you'll love IBasic Professional. Find out more at http://www.pyxia.com/ibasicpro.html

Revision History:
01/2005 V2.02D
Fixed dialog editor caption bug with Windows XP
05/2004 V2.02C
Fix: Improper parsing of STEP keyword
Fix: Line number display with proportional fonts
Change: Increase internal stack for better recursion support.

11/2003 V2.02B
Added: optional format string to DATE$
Change: Passing DOUBLE types to DLL functions now working
Fix: Miscellaneous problems

10/2003 V2.02
Added: Line number display to editor
Added: Auto console on all console functions
Change: Console programs run from IDE now have close button disabled
Fix: Passing FLOAT types to DLL functions now working
Fix: Caret location in editor wrong at times

05/2003 V2.01
Added: Text and background color selection for editor.
Fix: Editor highlighting.
Fix: TAB characters interfering with editor selection.
Fix: Problem with parser and '#' after a line seperator.
Fix: Resources not released when in workbook mode.

04/2003 V2.0
Added: GETPOSITION statement
Added: GETCARETPOSITION statement
Added: DXHITANY for advanced sprite hit testing
Added: @SDUSERDATA for storing user defined sprite data.
Added: Transparency key can now be specified when using DXDRAWMAP
Added: Save All menu item and toolbar button to IDE
Added: Close All menu item to IDE
Change: DXHITSPRITE now returns 0 if both sprite parameters are the same.
Fix: SELECT 1 failing in certain cases.

02/28/2003 V1.99g
Added: DECLARE can now call DLL functions that use the CDECL calling convention
Added: Jump to line control to editor windows
Change: D3DDELETE now removes the frame from the hierarchy
Change: CHAR variable assignments are now treated as unsigned.
Change: Faster drawing in normal windows. Device contexts can now be cached.

02/15/2003 V1.99f
Added: Values can now be returned from a window handler.
Fix: INT64/UINT64 bit wise operations
Miscellaneous speed fixes.

01/27/2003 V1.99e
Added: Workbook mode toggle to View menu
Added: Scrollbars enabled in main IDE window
Fix: END not working after an IF .. THEN statement
Fix: Variable display dialog not showing 3rd dimension of an array
Fix: Error when defining array with total length over 30 characters
Fix: CTRL+C disabled in console when run from the IDE

01/03/2003 V1.99d
Fix: Find/Replace lockup.
Fix: SETLINESTYLE not working if LINE was used without a color
Fix: GETSTARTPATH not working when compiled as console only

11/22/2002 V1.99c
Added: GETUSERDATA and SETUSERDATA statements.
Added: @IDDESTROY constant.
Fix: DirectX and Direct3D now work with MDI child windows.
Fix: REM containing quotes sometimes causing problems.
Fix: @HITWINDOW returning 0 value sometimes.

11/17/2002 V1.99b
Cosmetic changes. Quick open for dialog editor added to toolbar.

11/12/2002 V1.99a
Small fixes and reduced compile size.

11/05/2002 V1.99
Added: Console only compiling
Added: Raw parameter to INKEY$
Added: DIM is now synonymous for DEF
Fix: UINT used as sub parameter
Fix: Misc. problems with USING
Fix: Character remaining in console buffer on 9x systems

10/28/2002 V1.98 Rev 3
Added: Initial directory parameter to FILEREQUEST
Added: By Pixel option to DXHITSPRITE
Fix: logic bug with local variables
Fix: Enter key closing modeless dialogs
Docs: Added Messages and Message loops section

10/13/2002 V1.98 Rev 2
Added: AUTODEFINE command
Added: AS keyword
Change: SETFONT can now specify a character set.
Change: LEN works with WINDOW variable
Change: Comments can now be used after DEF
Change: % operator supports INT64
Fix: DirectX screens flashing
Fix: CLOSEWINDOW crash when used in response to @IDMENUPICK
Fix: Reading/Writing UDT to file containing an array of UDT's
Fix: Error when implied GOSUB used as first line of program

10/06/2002 V1.98 Rev 1
Fixed problem with custom controls with a dialog parent on 9x systems

09/30/2002 V1.98
Added: Resource compiler and tools.
Added: LOADMENU, LOADTOOLBAR and LOADRESOURCE commands
Added: Support for toolbar controls
Added: User selectable font and script for IDE
Added: @BROWSELOAD command to load embedded browser from a string variable
Added: @IMGMAPCOLORS flag to LOADIMAGE
Added: Auto opening of console with PRINT statement
Added: TYPEOF constants for UINT/INT64 and UINT64
Added: Error message and checking for duplicate control ID's
Change: @RTPRINT to support margins
Change: LOADIMAGE to support resources and OEM images
Change: CONTROL statement to allow string parameter
Change: ISTRING to support strings up to 65534 characters
Fix: GPF when comparing a string to a numeric value
Fix: GPF when using a DLL function declared with no parameters
Fix: INSTR returns 0 if used with and empty search string now
Fix: Status window control resizing correctly with an MDI window
Fix: Bug with SGN function
Fix: READ and WRITE used with a MEMORY variable and a BFILE
Fix: DECLARE statement usage of UINT/INT64/UINT64
Fix: @GETPOSTDATA returning garbage sometimes.
Fix: Message processing with multiple threads of execution

08/13/2002 V1.97 SP3
Added: Large integer support and data types INT64, UINT64
Added: UINT data type
Added: Subroutine quick jump to editor
Added: Execute after compile to executable options dialog
Fix: Problem with editor on Windows 9x systems with disappearing text
Fix: Problem with PRINT statement on Windows 9x systems
Change: LOADIMAGE to support resource ID's
Docs: Changes variables section
06/12/2002 V1.97
Added: Direct3D support
Added: ENABLETABS command to allow the TAB key to select controls in a window
Added: @RTPRINT command for rich edit printing
Change: @BROWSEPRINT to work more reliably
Fix: Problems with multiple views of the same document in editor
Fix: Nested UDT's now work properly with GET, PUT, READMEM and WRITEMEM
Fix: Context menu not working with dialogs.
Fix: Problem with USING returning strange results sometimes
Fix: Problem with sprite bitmaps containing more than 1 row
Fix: Problem using PUT with files opened with "A" mode.
Fix: TAB selection not working with SHOWDIALOG dialogs when compiled.
Fix: Random editor crash.
Docs: New Direct3D section
New samples: direct3d example1, direct3d example2, direct3d example3

SP2 changes the following
Added: ALIAS command for DLL declares
Changed: D3DCOMMAND @LOADTEXTURE to support decals
Fix: Problem with USING and commas
Optimized: String and math functions

SP1 changes the following
Added: D3DSETRENDERMODE
Added: @WRAPSHEET and @WRAPBOX texture wrapping modes
Changed: SEEK to return file positions
Fix: Scrollbars set properly in dialog editor when reloading a saved dialog.
Fix: Controls in a window show the correct cursors

05/24/2002 V1.96
Added: ADDMENUITEM and REMOVEMENUITEM statements
Added: @BROWSEPRINT browser command for printing
Added: @CTEDITNUMBER constant
Added: <CTRL><HOME> and <CTRL><END> processing to editor
Added: SHIFT + click selection in editor
Fix: Syntax hilighting in editor
Fix: Problem with @RTGETLINE and @EDGETLINE missing first 2 characters
Fix: Problem with multi-dimensioned UDT arrays.
Fix: Problem with UDT arrays containing arrays of other types.

05/14/2002 V1.95
Reg: Registering the shareware version is now done by license code
Added: SETWINDOWCOLOR and ENABLEMENU commands
Added: @RTSETCHAROFFSET for subscript/superscript in rich edit controls
Added: Find/Replace dialog to editor
Change: Dialog editor now has scrollbars
Fix: Recursion now fully supported
Fix: Nested string functions with embedded quotes
Fix: CHR$(34) problems
Fix: INKEY$ missing keys sometimes
Fix: FONTREQUEST 'flags' not being reset

SP1 fixes the following issues:
Crash when rich edit control created in window on 9x systems
Crash when window title over 80 characters specified in WINDOW statement
Static controls not redrawing when changing text
License code failing when trailing spaces present

05/05/2002 V1.94
Added: Rich edit, list view and status window controls
Added: New control types for dialog editor
Added: CONTROLCMD statement
Added: GETDXVERSION statement
Added: @NOTIFYCODE variable
Added: Control notifications
Added: New functions for edit controls
Added: New combo box constants
Change: Double click selects text in editor now
Change: SENDMESSAGE to work with INT window handle
Change: SENDMESSAGE returns values now
Change: READMEM, WRITEMEM have optional offset value
Change: FONTREQUEST initial values can now be set
Change: MEMORY types can now be assigned a value directly
Fix: FOR statement failing when variables contained the letters 'TO'
Fix: IF statement with nested single line IF after an ELSE
Fix: SETFONT incorrectly calculating sizes.
Fix: Embedded parenthesis causing errors in strings
Fix: LOADIMAGE not returning 0 on failure for GIF and JPEG types
Fix: INSERTMENU not working with dialogs
Docs: 14 new pages of information added
Samples: richedit.iba, listview.iba and statuswindow.iba

04/15/2002 V1.93
Added: GETPIXEL function
Added: SETHORIZEXTENT statement
Added: SENDMESSAGE statement
Fix: Embedded browser failing with some JAVA scripts
Fix: Pointers copying over with UDT
Fix: Description display in component dialog
Sample: dirselector.iba
Optimized code for more speed.

04/11/2002 V1.92 B
Fix: Dialog passing to DLL functions
Doc: Corrected some errors.
Sample: Fixed variable usage in mdidemo.iba and multiedit.iba

04/09/2002 V1.92
Added: NEW and DELETE functions for dynamic variables
Added: Multiple indirection for pointers
Fix: FINDNEXT not returning last entry
Fix: @BROWSESTOP constant missing
Change: About box hidden on startup for registered users
Change: ? toolbar button opens user's guide now
Doc: Added dynamic variables section
Sample: linkedlist.iba

04/01/2002 V1.91
Added: USING function for formatted output
Added: Pointer de-referencing operator '#'
Added: TYPEOF and ISARRAY functions
Fix: Crash on close when passing UDT to subroutine
Fix: Variable not found error when passing UDT members to sub.
Change: WINDOW type to allow direct assignment with @HITWINDOW
Doc: Added pointer and formatted output sections to user's guide
Sample: asteroids.iba

03/26/2002 V1.9
Added: Component manager and component include features
Added: FONTREQUEST function
Added: XOR operator ||
Added: @CTEDITRETURN, @SFSTRIKEOUT constants
Added: UDT direct assignment capability
Change: GETCLIENTSIZE to work for dialogs
Change: DECLARE, TYPE to work inside subroutines
Change: Registered 'About' dialog now on timer
Fix: SETSIZE crashing when used on child window
Fix: Build dialog correctly shows name in 'Choose'
Sample: keno.iba

03/19/2002 V1.861
Fixed problem using windows as children of dialogs. Fixed problem with visible style in dialog editor.

03/18/2002 V1.86
Added SETFOCUS and GETTEXTSIZE statements. Changed WINDOW, FILEREQUEST, STARTTIMER and STOPTIMER so a dialog could be used as the parent/window parameter. Fixed bug in comment coloring in the editor. Fixed problem with MDI windows.
03/15/2002 V1.85
Added browser messages @IDBEFORENAV, @IDNAVCOMPLETE. Added 6 new browser commands. Fixed problem with @GOBACK and @GOFORWARD commands. Added options item to the file menu. Added editor options dialog. Fixed problem with windows created with no caption. Fixed problem with READ truncating the last character. Fixed problem using UDT array member access as a parameter. Fixed syntax coloring of remarks separated with the colon character.

03/11/2002 V1.84
Added embedded browser capability to windows. Added new window styles @TOOLWINDOW and @BROWSER. Added new commands SHOWDIALOG and BROWSECMD. Changed SHOWWINDOW to work with controls. INKEY$ is now non blocking. Editor now keeps track of all open windows and last used paths. Fixed bug in CONTROL definitions. Fixed editor joining lines problem. MEMORY types can now be passed to DLL's directly. Fixed problem with user data types containing arrays when passed to a DLL function. Added more predefined button styles. Dialogs can now be displayed as non modal.

03/04/2002 V1.83
Added JPEG and GIF support to LOADIMAGE, SHOWIMAGE and FREEIMAGE. Added scaling capability to SHOWIMAGE. Fixed bug in writing TYPE variables containing arrays to binary files. Fixed bug in VAL function.

02/28/2002 V1.82A
Fixed array index bug

02/27/2002 V1.82
Added REPLACE$, FINDOPEN, FINDNEXT and FINDCLOSE. Added array initializing with parameter list. Added recovery file. Added @IDCREATE to window constants. Fixed bugs in SPACE$ and nested TYPE variables. Added more sample programs.

02/19/2002 V1.81
Added FREELIB command. Added array passing by reference to subroutines and DLL's. Fixed bugs in CHR$, SETID and CLOSEWINDOW. Changed OPENFILE to work with read-only files. PSET optimized for DirectX. Optimized math functions. Updated user's guide.

02/14/2002 V1.8b
Fixed bug in FOR-NEXT loops

02/13/2002 V1.8
Optimized code generator resulting in an 150% increase in speed. New functions SETLBCOLWIDTH, CONTROLEXISTS, COPYFILE, DELETEFILE, CREATEDIR and REMOVEDIR. Added right click context menu to editor. Fixed problem with file open dialog. removed all strange quote characters from the user's guide.

02/07/2002 V1.73
Changed PRTDIALOG and OPENPRINTER to work properly on Win9x systems. Fixed bug in code generator. Added status bar display of button sizes and position in dialog editor. Added status bar display of cursor position in editor.

02/02/2002 V1.72
Added bitmap and multi-line styles to buttons and static controls. Added printing support. Menus can now be displayed in dialogs. SETFONT changed to allow setting control fonts. Bug in SHOWIMAGE fixed. Fixed @HITWINDOW not working with certain functions. Sample programs updated.

01/27/2002 V1.71
Added CONTEXTMENU command. Fixed memory leaks. Changes in FILEREQUEST allowing multiple selection. Changes to READ function allowing large strings be read. Fixed array usage when using a variable as an index would sometimes cause an error. Changed OPENCONSOLE so the window would pop to front on XP and 2000. Added syntax coloring for system ID's and constants.

01/23/2002 V1.7
Added colored control capability with SETCONTROLCOLOR. Added executable options and ability to create executables that do not require DirectX. Changes to FILEREQUEST, STARTTIMER and STOPTIMER statments. Added 'Close Console' to the build menu. Added flat button style attribute to the dialog editor. Fixed bug in dialog source generation. Increased line length in editor. Added control bar buttons for commonly used tasks. Changed stack usage allowing faster code.

01/18/2002 V1.64b
Corrected double precision variable problem with intrinsic functions. Added standard keyboard shortcuts for selecting text in the editor.
01/16/2002 V1.64
New functions ENABLECONTROL and WAITUNTIL. More sample programs added.

01/13/2002 V1.63
New functions CHECKMENUITEM, ENABLEMENUITEM, DXGETMAPTILE. Arrays can now be defined dynamically using variables to specify index size. Fixed bug in map drawing always scroll wrapping. @IDMENUINIT added to message types. Fixed bug in DLL calling when a function was declared without parameters. Debugging section added to manual.

01/09/2002 V1.62
New functions DXGETMAPCOUNT, DXGETMAPWIDTH, DXGETMAPHEIGHT and DXSAVEMAP. Changes in DXFLIP command. Fixed bug in dialog editor not generating the correct variable name for controls. Fixed bug dealing with vertical and horizontal scrollbars contained within a window. Multiple directx windows can now be created simultaneously. When in the editor and an error occurs IBasic now cleans up open windows, closes the console and restores the screen if the error occurred while in full screen directx mode. Executables now report any errors instead of quietly exiting without warning.

01/06/2002 V1.61
Minor changes in message processing resulting in about a 20% improvement in speed. Maps were not displaying if the bitmap only contained one tile. fixed.

01/02/2002 V1.6
Now DirectX capable with screens, sprites and scrolling maps. 30 new commands and statements added. Fixed bugs in IF, BACKPEN and console usage. Added GETSTARTPATH, NOT, SETID, GETKEYSTATE and MESSAGEBOX functions. ADDED @NOCAPTION and @BORDER flags for window creation. Relaxed syntax when using parenthesis around statement parameters.

12/14/2001 V1.5
Added POINTER data type. DLL functions can now be called with user TYPE variables (structures). TYPE variables now accept a pack parameter that controls byte packing when passed to DLL functions. Enhanced SYSTEM command. All variable types now available as subroutine parameters. Complex variables now passed by reference to subroutines. TAB/DETAB added to editor. Debugging enhancements to variable display dialog.

12/08/2001 V1.42
Added support for more comparison operators when using strings: <, >, <=, >= . Added support for one line IF statements using the THEN keyword. Fixed small bug in master.iba sample program. Editor now uses advanced file open dialog when run in Windows 2000/XP.

12/03/2001 V1.4
IBasic now creates stand alone EXE's (registered version only). Fixed bug in loading saved dialogs. Bug fixed in nested subroutines not allocating local variables correctly. Bug fixed in array variables using a local index in a subroutine would fail sometimes. String variables can now be defined with embedded quotes without a syntax error. A$ = "this is a "test" string" for example. Manual converted to HTMLhelp.

11/14/2001 V1.3
Integrated dialog editor added! PlayWave command added. Bug fixed in 'Addstring/Insertstring' not working when controls were in a dialog. Floating point numbers can now be specified without a leading 0. Large hex numbers now supported directly using the form 0xffffffff. Changes in Read/Write allowing for directly reading/writing the contents of a file from memory allocated with Allocmem. The 'End' statment now reports a syntax error if you try to use it incorrectly.

10/24/2001 V 1.2
Many new commands for manipulating BITMAPS, ICONS and CURSORS. Add filter string to FILEREQUEST. Bug fixes in GETSTATE. Fully implemented @NOAUTODRAW for those that wish to process IDPAINT messages directly. Added commands to get/release handle of an IBasic windows DC (Device Context) to better facilitate calling WIN32 (WINAPI) routines directly.

If you like IBasic you'll love IBasic Professional. Find out more at http://www.pyxia.com/ibasicpro.html