Up one Update. By Lee Davison. Up to top

Download version 3.49 source Download.

16th December 2010.

FourFive small updates that in reverse order are ..

3.49 Patches the tokeniser so that DEC and DEF aren't tokenised when they appear within hex values.

3.48 Underflow in the USING$() function now just pads with zeroes instead of causing a function call error.

3.47 The use of array elements as the variable in a FOR loop is now checked for and disallowed. This is because creation of new variables within such a loop can cause corruption in variable memory.

3.46 Updates function and function variable handling.

3.45 The handling of non existant variables is made consistent and the option of not returning an error for a non existant variable is added. If this is the behaviour you want changing novar in the source to some non zero value will achieve this.

The version number is now 3.49. Enjoy.

24th November 2010.

Overflow indication has been added to the USING$() function.

The version number is now 3.44. Enjoy.

19th November 2010.

An undocumented feature of concatenating strings has been removed.

The version number is now 3.43. Enjoy.

30th July 2010.

A couple of undocumented features snuck into the last version. Those that have been noticed are corrected in this one.

The version number is now 3.41. Enjoy.

20th June 2010.

The number to string routine has been modified to output up to seven significant figures. This means scientific notation now begins at ten million, not one million but it doesn't change the way numeric values are handled internally.

ELSE has been added to IF .. THEN.

A USING$() function has been added along with a corresponding Format error.

LOAD and SAVE have been updated to use the EASy68K code. Binary loading and saving is no longer supported.

The version number is now 3.40. Enjoy.

17th February 2005.

Just when I think it's safe to relax some undocumented features rear their ugly heads.

Firstly, if an attempt was made to access an array with an index value of n where 0 < n < 0.5 then instead of getting element 0 you sometimes got an array bounds error, this has been fixed.

Secondly, if you tried to dimension an array bigger than the available memory EhBASIC would curl up it's toes and die, this was due to an incorrect branch type and has now been fixed to give an out of memory error.

The version number is now 3.21. Enjoy.

15th February 2005.

Lots has changed from the last version, this is reflected in the change in major version number from 2.xx to 3.xx.

The biggest change is that the code is now pure, this means it is both relocatable and re-entrant so in a multitasking system only one copy of the code needs to be in memory even if multiple instances are run. The planned target to test this is the Amiga but I have not written an Amiga version just yet.

Internally there are other big changes. The code is now able to handle programs larger than 128K correctly, create and reference arrays bigger than 128K correctly and now generates an error if you try to make an array dimension larger than 65535. This should remove the last of the restrictions that made this an 8 bit interpreter that just growed.

Other changes of note ar that the USR() function needs no extra code for null functions, just an RTS will work, and, as EhBASIC's RAM can now be anywhere, the function RAMBASE has been added so that EhBASIC can work out where it's own memory is. This means the code to set the USR() function address is now ..

	LOKE RAMBASE+8,address
.. for any instance of EhBASIC68. Also the RND() function now uses a full 32 bit Galois LFSR pseudo random number generator and the scatter array has been removed, this is both faster and smaller. A lot of testing went into modifying this function including running the full sequence to test correct operation and running a number of 64K and 512K sequences to test the ramdomness or the values returned.

The version number is now 3.19. Enjoy.

26th May 2004.

The length of the keyword SWAP was incorrect in the list table. This has been fixed.

The version number is now 2.21. Enjoy.

4th May 2004.

It's been quite a while since the last update and there are a few changes.

Internally there have been big changes in the way that functions are handled. This gives better performance and makes the code easier to change.

RND(n) has been changed so that values now are scattered after being generated. This scattering, though limited in range, is truly random. The array used was generated using two hunderd and fifty six peices of numbered paper and a small cyclone generator.

LIST [n][-m] now works correctly when the first line in a program is line 0.

The version number is now 2.20. Enjoy.

25th April 2003.

The LIST command has changed internally to use the same tables that are used for tokenising by EhBASIC. This removes the need to keep two tables of keywords maintained. The downside is that the size has increased but the speed of the LIST command is better.

There have also been changes to the table orders, all byte sized data tables are now at the end so I no longer have to worry about word and longword tables being correctly aligned. Other small changes have been made to progress the code to becomming pure, i.e. both relocatable and reentrant, for possible use in multitasking systems.

The version number is now 1.10. Enjoy.

16th April 2003.

A fix to the math routines reduces errors in some cases. This was due to a potential carry being ignored and some results being truncated instead of rounded. The result of this is that ..

PI * PI / PI / PI - 1

.. now returns 0 instead of -4.65661E-10 and ..

COS( 3 * PI / 2 )

.. now returns 0 instead of -1.05849E-05

The version number is now 1.09. Enjoy.

14th April 2003.

Small changes to the way strings are compared which prevents A$="" from failing sometimes even when A$ is null. Also a change to the LOOP command which could sometimes terminate program execution if it was conditional on a string compare.

The version number is now 1.08. Enjoy.

11th April 2003.

Some changes to the way INPUT and READ parse the data stream. This also corrects some inconsistencies in the way different types of data, string, hex integer or floating, were handled.

The version number is now 1.07. Enjoy.

9th April 2003.

Some small changes to the way long integers are handled.

The version number is now 1.06. Enjoy.

28th March 2003.

An undocumented feature of the SQR() function was that it returned zero for roots in the 0.5 to 0.999999 range. This has been fixed.

The version number is now 1.05. Enjoy.

13th March 2003.

More internal changes and a fix to DEEK() and LEEK() which I'd managed to break. There has also been an update to the language reference.

The version number is now 1.04. Enjoy.

7th March 2003.

Minor changes to speed critical code and some internal functions modified. Simulator specific code changed to take advantage of updated features.

The behaviour of LEFT$(), RIGHT$() and MID$() have been changed. Now if the length of the required string is zero then a null string will be returned. MID$() has been changed so that a starting point beyond the end of the referenced string will return a null string. Also all string function values can now go up to 65535 which is the maximum string length.

Weeded out two instances where the result of a calculation could be minus zero. While there may not be much difference numerically, between plus and minus zero, when a function is expecting a positive value it will often choke on minus zero.

The version number is now 1.03. Enjoy.

5th March 2003.

Some small patches to code and a change in the way the power function works. Now if you raise a negative value to an integer power the sign is calculated correctly, also raising a negative number to a fractional power will now give a 'Function call' error.

The version number is now 1.02. Enjoy.

4th March 2003.

Due to a connection problem I never did get the source, mentioned below, uploaded. So to make up for it there are a few less undocumented features in this version.

As a result the version is now 1.01. Enjoy.

3rd March 2003.

Just a small update and, as it was only yesterday I released the source there's no version increment for this one.

Fixed a small undocumented feature with the LIST command and added ASCII SAVE and LOAD capabilities. To SAVE a program as ASCII just append the SAVE command with ,a. For more details see the language reference.


Last page update: 16th December, 2010. e-mail me e-mail