7.0 (07/28/09)- Bug fix: exponentiation (^) and the POWER() function would return wrong results with negative numbers. For instance, (-5)^3 and POWER(-5,3) returned 4 instead of -125.
- Bug fix: starting a variable assignment by the negation of a variable results in a compilation error, for example in the following syntax: A=-C
- Bug fix: a Number Stack Overflow occurred when reaching the last value in this stack.
- Bug fix: if there was only one choice in a LISTCHOICE statement, the iziBasic runtime would show a [YES]/[NO] selection window instead of no selection window at all.
- Bug fix: initial selected numerical index value in the LISTCHOICE and POPUPCHOICE statements when the selection list was pointing on the A$() array.
- The compiler now detects when a THEN is forgotten in a IF statement.
- GPRINT now manages Black & White screen (for those of you who are still targeting "antic" devices!)
- SAVEPREF now deletes the unused preference when the passed argument is an empty string. Since LOADSTRING will return the same empty string upon loading an existing empty preference or a non existing preference, this way of doing saves room in the Saved Preferences database.
- iziBasic now memorizes the parameters passed in the FINDFIRST$() function, so they are not needed anymore in the FINDNEXT$() function which was revised to the simple FINDNEXT$ format.
- Added InfraRed and Serial communications management with new statements: OPEN IR and OPEN COM. Files statements (CLOSE #, PRINT # and INPUT #) were upgraded to work with InfraRed and Serial communications.
- Added statements to manage Network communications with a new statement: OPEN NET. Related MegaString files statements (CLOSE #, PRINT$$ # and INPUT$$ #) were upgraded to work with Network communication.
- Added a new HTTPGET$$ statement, to deal with reading HTTP web pages.
- Added the ADDSTRING$$ statement to easily concatenate strings in the MegaString.
- Added a new RUN$$ statement to pass structured data to the called program, when the RUN statement would only allow passing a standard ended CHR$(0) string.
- Added Palm's 5 Way Navigation detection, new events values are returned by the DOEVENTS and WAITEVENT statements.
- Added management of scroll / caret position in fields thanks to 2 new statements: FIELDSCROLL and FIELDPOS.
- Added a new LABEL$() function to retrieve an object's label.
- Added Palm's 320x480 screen mode detection and management. The DOEVENTS and WAITEVENT statements return a new event value upon screen mode change, and the SETRES statement and HIGHRES() function were extended to manage this new screen mode.
- Corrected a bad s|t parameter explanation to the right one being c|t in the user manual for PUTCHAR$$ and PUTSTRING$$.
- Updated the NekoCat sample application so as to be able to move the cat's food using Palm's 5 Way Nav and to benefit from the 320x480 screen mode.
- Updated the iBPlot sample application to benefit from the 320x480 screen mode.
- Added 2 new sample applications: iBIrHello (showing how to exchange data between two devices by InfraRed) and iBHttpGet (showing how to retrieve a web page).
6.1 (09/17/07)- Major bug fix: data stacks management (as implemented in version 5.0) would cause device freezes or soft resets on some devices and various other side effects. All developers should put on the market a new version of their applications compiled with this new version 6.1.
- Bug fix: in the console mode, a device freeze could occur when trying to display more than 64 characters on the same line.
- Bug fix: the WORD$ function would return an empty string for the last word if the last word was only one character long.
- Bug fix: the SCROLLBAR function would cause the Palm TX to crash into the black void of doom and reset.
- The COPY statement now preserves the records' unique ID, which is normally used only during synchronization with the desktop to track records on the Palm OS device with the same records on the desktop system but which has also proven to be used by some 3rd party applications (thanks to doeni for reporting).
- User manual fix for the COLORRGB function. CORLORRGB returns Red-Green-Blue gradients in this order and not Red-Blue-Green as previously indicated.
- Added the PROCESSEVENTS statement, which does the same thing as FLUSHEVENTS, that is processing events in case the events queue gets saturated.
- Added the FLUSHQUEUE statement, which flushes the pen and key queues (thanks to JoeV for the suggestion).
- Added 2 new options to the compiler: one to always replace an existing target file without asking first and one to launch the execution of the application right away after a successful compilation (thanks to Dave for the good idea).
- Added a new sample application, so called iHeadAche, and upgraded the tinyBasic sample application. These are two interpreters for two development languages made with iziBasic in 2006 as entertainment projects.
- Added a pack of 3rd party "PP applets", made available in 2006 as a separate download.
- Added Txt2LionDoc as an alternative to MakeDoc, for converting text files to Palm DOC files, in the appendix about how to develop an iziBasic project on a Windows PC using the PsPad or the ConTEXT editors
6.0 (11/04/05)- Bug fix: iziBasic would crash when launched if the Memo Pad database had not been initialized by running the Memo Pad application at least once.
- Bug fix: in high resolution, the 20 text console lines (introduced in v4.0) would not always scroll correctly after an INPUT statement.
- Bug fix: the CLS console statement would not clear the screen in one case. Also optimized the code for the PRINT statement.
- Bug fix: the END statement, when included in a loop (IF, WHILE...), would cause an endless loop requiring a soft reset of the device.
- Bug fix: LTRIM$ญญญ, TRIM$ญญญ and RTRIM$ญญญ could eventually get into an endless loop requiring a soft reset of the device if the string parameter was empty.
- Bug fix: objects are no more limited to the [1..255] range and can now be in the [1..999] range as expected and stated in the documentation.
- Bug fix: when the facultative target Creator ID was not specified, COPY would use iziBasic's Creator ID ("LDIB") for destination file instead of the source file's Creator ID.
- Bug fix: COPY would raise a fatal error leading to a soft reset of the device when trying to copy an empty database.
- Bug fix: the tracking of being or not in the main form was not always performed correctly in the virtual machine; that could lead to system crashes when working with custom forms (opened using the OPENFORM statement).
- Bug fix: DESTROYing a NUMFIELD, TEXTFIELD or TEXTFIELD$ญญญ$ญญญ now frees the field's content in memory.
- Bug fix: a memory leak was generated (only a warning in the Palm OS Emulator when adequate debug option was checked).when quitting an application using menus, but with no side effect in real devices.
- Bug fix: calling SETFONT with either of the 128 or 129 values, or with the 130 or 131 values, was not behaving correctly.
- Enhanced integration of RESOURCEFILE by checking duplicate resources. Duplicate resources are no more added to the application and a warning is displayed.
- Enhanced the VAL function by having it consider leading spaces (" ") as zeros, so that VAL(" 10")=VAL("010")=10. Previously, a space character was considered as any other character but a digit so VAL(" 10") would have returned a zero value.
- Extended the INPUT statement from 23 to 63 characters.
- Optimization: if the personalized ABOUTBOX is not needed, its resource is no more integrated in the compiled application.
- Extended the scope of the CLOSEFORM and OPENFORM statements so that they can now handle the main form (which is, by default, built and displayed when the program is launched).
- Added a "Source Code Skeleton generator" wizard in the Options.
- Added another new option to allow pausing compilation when CHAINing source codes.
- Added a new POPUPCHOICE statement, which is very similar to the existing LISTCHOICE statement, to manage "real" popup lists (following Palm GUI guidelines).
- The list of items in a POPUCHOICE or a LISTCHOICE statement may now also be a pointer to the A$ญญญ() array, starting at index A$ญญญ(n) and stopping at the first empty index.
- Added a new UPDATECHOICE statement to allow changing the selection list of items in a POPUPCHOICE or a LISTCHOICE object.
- Just to mention it as this is a minor cosmetic enhancement, the drop-down list of iziBasic source codes that can be compiled is now resized to fit the number of source codes to display if there are less than 12 source codes available.
- Another minor cosmetic enhancement: the default about box now shows "YourApplication is powered by iziBasic" instead of "YourApplication was built with iziBasic".
- Two and many more SELECT CASE / END SELECT statements can now be imbricated one into another.
- Implemented the SCROLLBAR object. Updated the existing GUI statements and functions impacted by this new object (DESTROY, HIDE, SHOW and UPDATEVALUE).
- Added the new TEXTFIELD$ญญญ$ญญญ and GETFIELD$ญญญ$ญญญ statements to manage bigger fields with the MegaString.
- Reading deleted records in a database no more generates a FILEERROR but returns an empty value, string or MegaString. This is more convenient to scan a database in the INPUT file access mode.
- Enhanced the MegaString's INPUT$ญญญ$ญญญ and PRINT$ญญญ$ญญญ file reading and writing statements with an additional facultative parameter, to allow reading and writing sized blocks of data and no more only data ended with the CHR$ญญญ(0) character.
- Added the new FIELDCOPY, FIELDCUT, FIELDPASTE and FIELDUNDO statements in the GUI module to provide fields management.
- Added a new GETFOCUS function in the GUI module.
- Implemented a first statement for connectivity, starting with IR (InfraRed) beaming of files. This statement was named BEAMFILE.
- Optimized the handling of fatal errors in the virtual machine.
- Added a new appendix (#9) to the user manual to show ways of working on an iziBasic source code on a Windows PC or on any Windows/Linux/Mac computer.
- Added the new ViziBasic editor to the Options editors list and set up the link for automatic compilation of source codes generated by ViziBasic (ViziBasic is a new addon project to iziBasic).
- Upgraded the iBAddress sample program to use the new POPUPCHOICE statement.
- Removed a useless line in the iBClock source code.
- Bug fix: the small images checkbox now refreshes when setting to default values in the NekoCat sample program's options.
- Added a new full sample program: tinyBasic. This is a small BASIC console interpreter written in iziBasic
Also give a look to the new Memo2tinyBas GUI sample program developed to ease the keying and loading of tinyBasic source codes.
- Also added a simple sample source code, IBDim2, which is a simple application to show how to deal with 2 dimensions arrays in iziBasic, like Array(10,5), when iziBasic "only" offers access to the A(n) array (1 dimension).
5.2 (05/24/05)- Bug fix: the SQRT function returns back correct values (this was a regression since one or few iziBasic version(s) due to a change in the PP compiler and not ported to the Math library used to build iziBasic)
- "Very weird" bug fix: the compiled program could freeze or come to soft reset the device in some very particular cases, due to a bug in the final compiled code optimizer (well, it took me one month to figure this one out! This is why I qualify it as being "very weird"
)
- Bug fix: the SELECT CASE / END SELECT statements set would only work with the A-Z and A$ญญญญญญญญ-Z$ญญญญญญญญ variables, not with the Numbers and Text variables with more than one character defined with the DIM statement
- Bug fix: UPDATEVALUE would not work on some GUI objects (PUSHUBUTTON and CHECKBOX) after an UPDATETEXT was made on these objects
- Bug fix: UPDATEFIELD would keep some heap memory space locked
- Bug fix: any operation on objects in a form opened by OPENFORM would cause a crash unless a FLUSHEVENTS or an event loop (DOEVENTS, WAITEVENT) was applied just after the OPENFORM statement
- Added a new {INCLUDE t} compiling statement, to include one source code into another one and have the iziBasic compiler parse the source codes accordingly
- Added support for global variables in the so called "PP applets", for up to 256 bytes of global variables (256 bytes seems already large enough, but this could very easily be extended on request)
- Added a new sample program to demonstrate the use of the freeware CPDB library (http://cpdb.ppcompiler.org/) using a "PP applet"
5.1 (04/04/05)- Bug fix: compilation would crash in some cases when iziBasic was not installed using the standard HotSync procedure but using some third party tool instead (RescoExplorer for instance).
- Bug fix: in some cases, the compiler generated a misalignment between the A() array and the %var% variables (Numbers variables with more than one character) in the stack and, with no surprise, the same bug was found for the A$ญญญญญญญญญญ() array and the %var$ญญญญญญญญญญ variables (Text variables with more than one character).
- Bug fix: now Numbers and Text variables with more than one character (%var% and %var$ญญญญญญญญญญ) can be passed among CHAINed programs and are also considered as global variables like the A-Z and A$ญญญญญญญญญญ-Z$ญญญญญญญญญญ default variables.
- Bug fix: in the case a comment was added with a " ' " character in front of a " : " statements delimiter (so, the " ': " sequence), the comment was ignored and compilation would give unpredictable results.
- Menu's open and close events are now tracked. The MENUITEM function returns 0 if the menu was just opened or -1 if the menu was just closed.
- Extended the FLUSHEVENTS statement capabilities by adding a new facultative parameter to it.
- Upgraded the auto-repeating queuing of hard button keys events management loop in iziBasic's virtual machine.
- Added a final code optimization in the math parsing routine (when using the {PARSER ON} compiling directive) for a smaller application size and a faster execution at runtime.
- Added key shortcuts to launch different controls in iziBasic's interface.
- With SrcEdit, iziBasic can now receive from SrcEdit which source code to compile, start compiling automatically (without needing to press the [Build it] button) and send in return to SrcEdit the line where a compilation error was found (but not the error message because SrcEdit does not offer to manage this information) so that SrcEdit can open the source code directly on the line where the found error is.
- Added bookmarks in the user manual for a much easier browsing in the documentation.
5.0 (02/23/05)- Bug fix: if the console high resolution font was not found and the device had a high resolution screen, the vertical spacing of the console lines was not managed correctly.
- Bug fix: the EOF function was not always returning properly the end of file reach.
- Weird bug fix specific to Palm OS 5 causing a crash (prior versions of Palm OS do not complain!) in the handling of GUI objects.
- Bug fix in the Math parsing routine: calculations with AND, MOD, OR and XOR followed by an opening parenthesis were giving a syntax error when the expression to parse was semantically correct.
- Bug fix: in some cases, the iziBasic compiler was too permissive with the check of the statements separator character (:) and would allow statements not to be separated by this character (then things like the Pascal looking statement "WHILE test DO" were accepted).
- Split iziBasic's virtual machine (which was ~68 KB in version 4.2) into several independent modules so as to decrease the programs size. Apart from a core module (~36 KB), the other modules are now put in the application only if required.
- Changed the iziBasic's virtual machine from the 8 bits architecture (that had been built back at the beginning of the iziBasic project!) to a 16 bits one.
- Just to mention it, the 2 previous changes just above required a full revamping of almost the whole iziBasic structure and source code!
- The architecture change allowed me to extend the current data stacks to much wider sizes. The sizes are now limited by the dynamic RAM available in the devices and their Palm OS version when they were previously limited by the dynamic RAM available in a Palm OS 3.0 device. The sizing is managed by the MINOSVERSION compiling directive and the memory capacity of the developer's device.
- Upgraded the POKE statement as well as the FRE and PEEK functions to reflect the architecture upgrade.
- iziBasic now reserves the required space in the Numbers Stack for the PARSER ON compiling directive instead of using some space in the free stack on top of FRE(4). The PARSER memory usage in the Numbers stack is given for information in between brackets in the compilation report.
- Reengineered the IF statement to remove its previous limitation of accepting a GOTO only in the same THEN / ELSE, THEN / ENDIF or ELSE / ENDIF statements block. As a nice side effect, the IF statement is executed much faster in iziBasic's virtual machine. To get an idea of the speed improvement, the Bench2 benchmark (see sample programs source code) returns a ~30% decrease of execution time over this same program compiled with version 4.2 of iziBasic.
- The SELECT CASE / END SELECT, REPEAT / UNTIL, WHILE / WEND, FOR / NEXT instructions execution in iziBasic's virtual machine were also optimized.
- Implemented Numbers and Text variables with more than one character (so available in addition to A-Z and to A$ญญญญญญญญญญญญ-Z$ญญญญญญญญญญญญ) by extending the DIM usage to define these variables.
- Extended the labels and the new variables (see above) definition stack to 255 items (was 70 items before).
- To be homogeneous with the Basic language and the rest of iziBasic, labels are no more case sensitive, this means that _MyLabel and _MYLABEL are now the same.
- Added a final check for undefined labels in compiler (in the case a GOSUB or GOTO statement points to a label which is never defined afterwards).
- The ABOUTBOX and MENU statements can now be set up and changed dynamically at runtime.
- Upgraded the LISTCHOICE statement in the GUI module to work with index for initial selected item and the UPDATEVALUE to work with LISTCHOICE.
- Added the new OPENFORM, CLOSEFORM, SETFOCUS, FLUSHEVENTS, KEYBOARD, SAVESCREEN and RESTORESCREEN statements in the GUI module.
- Added a new SETRES statement in the Graphics module.
- Added a new SOUND statement in the Sound module.
- Added a new PARTIAL parameter to the KEYEVENTS compiling directive.
- Added a new CONSOLEFONT compiling directive for a potential 7 KB application size decrease.
- Extended the SECUREFILES compiling directive: when set to OFF, if a database is to be created by OPEN, it will then be with the Creator ID of the application as defined by the CREATORID compiling directive.
- Added a new appendix (#8) in this user manual to explain iziBasic's memory structure.
- Upgraded the iBAddress sample program to take benefit of the new SETFOCUS and KEYBOARD statements.
- Bug fix in the Matches sample program: the "no animation" option would not work since I added the crackling sound of burning matches in version 4.0
4.2 (01/19/05)- Bug fix: MENU would popup but not react to user input if activated by a tick on the title
- Bug fix: MENU navigation would not behave in the standard way when navigating with the up and down keys
- Enhanced syntax error tracking in some parts of the compiler
- Enhanced the GPRINT statement to now have it being able of drawing some characters with a given back color in addition to the specified text color
- Added a new PGET function in the Graphics module
- Added a new UPDATEVALUE statement in the GUI module, to allow updating the status of checkboxes and repeat buttons, and upgraded the source code of the NekoCat sample program with this new functionality
- One more time, I highly reengineered the source code of iziBasic which led to a new 2% decrease of the virtual machine size code since last version and to a faster execution of applications for events driven ones
- Apdi2003 upgraded again the French version of the user manual
4.1 (01/14/05)- Bug fix: the SELECT CASE v|c / CASE n|t / CASE ELSE / END SELECT group of statements could only be used once in a source code
- Bug fix: MENU would not work correctly
- Bug fix: in some devices equipped with Palm OS 5 but not all of them, pen moves were not tracked correctly (Palm OS 5 bug for penMoveEvent?)
- Added a new Tutorial - building and linking resources (Appendix #5) in this user manual. Thanks to Mike Featherstone for writing it. It is great to receive such a user contribution.
- Also added High Resolution icons for iziBasic. And again, this is a very kind contribution from Mike Featherstone. Thank you Mike.
- As he had done for version 3, Apdi2003 very kindly translated the user manual of version 4 to French
4.0 (01/04/05)- Bug fix: calling the ABOUTBOX would return a 0 value event in DOEVENTS, which was expected, and also in WAITEVENT, which was not expected! Now it returns a 1002 value event
- Bug fix: COPY would return a SysFatalAlert (and require a soft reset!) when copying a file with empty records to be deleted during next HotSync
- Numbers can now be passed in exponential format ( [-]n.nnnnnnne[-]nn )
- Added a CALLPPARM$ญญญญญญญญญญญญญญญญญญญญญญ function to give access to PP ARMlets from an iziBasic program. This opens wide possibilities of "full speed" routines!
- Implemented a so called "MegaString" which is 4 Kbytes big. This mainly allows reading & writing files records bigger than 63 characters. As a consequence, I added: CLEAR$ญญญญญญญญญญญญญญญญญญญญญญ$ญญญญญญญญญญญญญญญญญญญญญญ, INPUT$ญญญญญญญญญญญญญญญญญญญญญญ$ญญญญญญญญญญญญญญญญญญญญญญ, PRINT$ญญญญญญญญญญญญญญญญญญญญญญ$ญญญญญญญญญญญญญญญญญญญญญญ, PUTCHAR$ญญญญญญญญญญญญญญญญญญญญญญ$ญญญญญญญญญญญญญญญญญญญญญญ and PUTSTRING$ญญญญญญญญญญญญญญญญญญญญญญ$ญญญญญญญญญญญญญญญญญญญญญญ statements, LEN$ญญญญญญญญญญญญญญญญญญญญญญ$ญญญญญญญญญญญญญญญญญญญญญญ, GETCHAR$ญญญญญญญญญญญญญญญญญญญญญญ$ญญญญญญญญญญญญญญญญญญญญญญ and GETSTRING$ญญญญญญญญญญญญญญญญญญญญญญ$ญญญญญญญญญญญญญญญญญญญญญญ functions
- Implemented new FINDFIRST$ญญญญญญญญญญญญญญญญญญญญญญ and FINDNEXT$ญญญญญญญญญญญญญญญญญญญญญญ files functions
- Upgraded the RUN statement with a new facultative parameter to pass to the target program, and implemented a RUN$ญญญญญญญญญญญญญญญญญญญญญญ function to retrieve the passed parameter
- Added a new {SECUREFILES ON|OFF} compiling directive and upgraded the OPEN statement to take into account this new option
- Implemented {DEFINE t}, {IFDEF t}, {IFNDEF t} and {ENDIF} conditional compiling directives
- Made a technical upgrade to change iziBasic's resources from "tSTR" to "iBas" (this change has no influence for the iziBasic programmer)
- Added a new ADVICEBOX statement in the GUI module to display "tSTR" resources
- Upgraded the SETFONT statement to have it being able to work with custom fonts, implemented a new FONTWIDTH function
- In the GUI module, implemented a MENU statement and a MENUITEM function
- Implemented SELECT CASE v|c / CASE n|t / CASE ELSE / END SELECT statements in the Core module
- Implemented a new facultative parameter for the INPUT statement, which allows to capture directly a user input on the line of the requested input and which does not open the default input field and the wait button
- Changed the console font to a custom fixed font and extended the console display to 13 lines of text in low screen resolution and to 20 lines in high screen resolution (it was 11 lines previously no matter what the screen resolution was). Thanks to Philippe Guillot for allowing me to use in iziBasic the fixed fonts he designed for Piaf.
- Implemented a new GPRINT statement in the Graphics module
- Implemented a new PLAYWAVE statement in a new Sound module
- Massively reengineered the source code which led to a 10% decrease of the virtual machine size since last version, even with all new features of this new version!
- Added crackling sound of burning matches in the Matches sample program
- Upgraded the NekoCat sample program to work with high resolution images
- Upgraded a few console sample source codes to display nicely with the new fixed fonts
- Added a new GUI sample program with full source code: iBChristmas
- This is not a real iziBasic centric item: I worked on upgrading PIAF (PP's doc editor) to adapt it to editing iziBasic source codes (with color coding capabilities) and launching the iziBasic compiler. But, this was a piece of my work on the iziBasic project!
- With PIAF, iziBasic can now receive from PIAF which source code to compile, start compiling automatically (without needing to press the [Build it] button) and send in return to PIAF the line where a compilation error was found and the error message so that PIAF can open the source code directly on the given line and highlight the found error.
- Upon the request of many users, I did a "work of slave" (I am not sure of this translation from French!) on this user manual to provide descriptions and explanations for all statements and functions, and also to provide an alphabetical reference of all reserved keywords. As a consequence, the number of pages has doubled in this user manual
I hope that it will be useful!
3.2 (12/15/04)- Bug fix: ABOUTBOX would not work correctly with string variables (A$ญญญญญญญญญญญญญญญญญญญญญญญญ-Z$ญญญญญญญญญญญญญญญญญญญญญญญญ)
- Bug fix: STR$ญญญญญญญญญญญญญญญญญญญญญญญญ(v|n , v|n) would not return the correct string for values comprised in the ]-1..0[ interval
- Bug fix: compilation would hang and freeze if a stack overflow occurred
- Corrected a few minor typo mistakes in the user manual
3.1 (12/02/04)- Bug fix: in one weird case (that seemed to be random!), compilation would break on a syntax error with garbage characters
- Bug fix: the IMAGE statement can now work with the default images provided as shown in the IMAGEBUTTON statement
- Pen events are now trapped by the DOEVENTS and WAITEVENT functions
- Added a new {KEYEVENTS ON|OFF} compiling directive
- DOEVENTS and WAITEVENT may now track hard key presses if the KEYEVENTS compiling directive is set. They track for App Keys #1, #2, #3 and #4, HotSync Button on Cradle, Page Up and Page Down, Power On/Off
- Enhanced the overall events management runtime
- Changed the interpretation of the 2nd v|n in MID$ญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญ(c|t , v|n , v|n) to be compliant with other Basic dialects: it is now the number of characters (or length) and no more the last character position; upgraded the source code of the following sample programs accordingly: ToDos, iBAddress, iBClock and Numerus
- Added 3 new defined constants: FALSE, TRUE and, for the fun of it, MAYBE
- n (Number) can now be a Defined Constant
- Added an advice / trick in the user manual to prefix labels with a given character (underscore) or set of characters to avoid having labels starting with a reserved keyword; upgraded the source code of all sample programs accordingly
- Added a warning in the user manual about the use of GOTO within an IF block statement
- Added a new GUI sample program with full source code: NekoCat
3.0 (10/22/04)- Bug fix: COS(0.8) was returning a Fatal Error in devices with Palm OS < 5 (and not in the emulator!), thanks to Ken for reporting it. This bug was due to a PP compiler bug which was fixed by the brilliant author of PP
so that I just needed to recompile iziBasic with the latest version of PP
- Added {PARSER ON|OFF} compiling directive and math parsing capabilities
- Added the following new boolean math operators: = <> > >= < <=
- Changed the POP and POP$ญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญ functions to one POP statement
- Added the HIDE, SHOW and TITLE statements in the GUI module, as well as a new NOTICEBOX function
- Added the CLIPBOARDGET and CLIPBOARDPUT statements, as well as the BATTERYINFO and HOTSYNCINFO$ญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญ functions in a new System module
- Moved the GETOSVER$ญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญ function to the new System module
- Added the INSTRING, CHAR$ญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญ and WORD$ญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญ functions in the main functions module
- Added the RSORT A, RSORT A$ญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญ, SORT A and SORT A$ญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญ statements, as well as the MEAN A, MIN A, MAX A and SUM A functions in the Arrays module
- Added the EXP constant
- Added the DO / LOOP statements, which have the same behavior as REPEAT / UNTIL as some users from other Basic dialects preferred this wording
- As expected from v2.0 (see below Optimization paragraph), I optimized the virtual machine and the compiler for all the functions, for a smaller virtual machine footprint, smaller executable codes and a faster execution of programs
- Checked compatibility with Palm OS 6: iziBasic is Palm OS 6 compliant
- Added a Tutorial appendix - my first iziBasic program in the user manual, to help first time users get started in writing an iziBasic program
- Made various upgrades in some sample programs: iBClock, Matches (was formerly iBMatches) and Numerus (was formerly iBNumerus)
- Added 2 new sample programs which read and display the Memo titles and the To Do list (with priority, status, due date) of the inbuilt Memo Pad and To Do applications
2.0 (09/04/04)- Bug fix: ABOUTBOX now accepts correctly from 1 to 3 string parameters, when it was only working with 3 parameters
- Bug fix: in some weird cases, iziBasic was crashing when being launched
- Enhancement: the database backup flag is now set by files creation statements, so that the databases created by an iziBasic program will be backed up to the desktop computer
- Enhancement: the backup flag was also set for the programs compiled by iziBasic so that your wonderful creations will be sent during the next hotsync to your computer
- Enhancement: the PENX and PENY values are also updated when the pen first touches the digitiser and when it is moved on the screen (previously only when the pen was lifted from the digitizer), also added a PENDOWN function to track the pen status
- Optimization of iziBasic's compiling engine which builds smaller executable codes the generated p-code is ~30% smaller in average
- Optimization of iziBasic's virtual machine which runs faster
the Bench1 benchmark returns a 4.7% speed improvement
the Bench2 benchmark returns a 3.4% speed improvement
Note: more optimizations can be expected in a future release as I found other areas of improvement
- Added a few new math functions: ACOS, ASIN, DEGREE, LOG, POWER, RADIAN
Note: other mathematical functions could be made available (like CosH, ArcSinH, DMS2Deg, Rad2DMS, etc
). Please feel free to ask for them!
- Added CALLPP$ญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญ function, this is a PP Code Segment call feature which opens all possibilities of the Palm development by direct access to the Palm OS APIs (in other words, you can now include PP applets in an iziBasic program)
- Added COLOR(v|n) function to capture forecolor and backcolor
- Added WAITEVENT function
- Added GRAFFITISHIFT, PUSHBUTTON and TEXTSELECTOR objects
- Added UPDATEFIELD, UPDATELABEL, UPDATEPOS and UPDATETEXT statements
- Interface improvement: iziBasic now remembers the last compiled source code name, so as to ease the build and try procedure
- Interface improvement: if compilation succeeded, iziBasic now offers to run the just built program
- Interface improvement: added a button to launch your favourite editor (Memo Pad or one of these DOC editors: PIAF, QED, SiEd, SrcEdit)
- Updated and upgraded the user manual in many areas
- Made various upgrades in the sample programs and added a new iBHelloPP demo source code
1.0 (07/22/04)- initial release