Menu

Release 15.08.4

2016-02-28
2016-02-29
  • Rob Hagemans

    Rob Hagemans - 2016-02-28

    Hi all, I've uploaded release 15.08.4.
    This update brings the following improvements:

    • overhauled, much improved documentation
    • fix for a number of crashes, including PRINT ***, STRING$(7), VAL("--1"), recursive FN calls, BLOAD in SCREEN 6, PRINT (-1)^0.5
    • correct operator precedence for unary operators
    • correct behaviour of \, MOD, EQV and IMP operators for negative operands
    • fix errors in config file examples
    • allow UTF-8 encoding of config file
    • KEY 1, "" and KEY 1, chr$(0) switch off key macro
    • add Devanagari and Cyrillic codepages
    • fix a number of integer overflow issues
    • implement DOS device files AUX, CON, PRN and NUL
    • enable the cassette port to be set as current device
    • fix issues with overlong strings
    • error trapping is exited by CLEAR.
    • allow empty numeric values in READ A and INPUT A

    Thanks to all bug reporters, you know who you are!
    Rob

     
  • Wengier

    Wengier - 2016-02-29

    Thanks for the update! It is great that it works better than before. However, remember that I uploaded the USRMAN25.BAS program in this thread below? With this new version the program is no longer able to save and load the data file that it uses properly. The command "PRINT ERR,ERL" shows that error 14 (Out of string space) occurs in line 170 and 1480. Note that this error did not occur with release 15.08.3.
    https://sourceforge.net/p/pcbasic/discussion/general/thread/cd3374af/?page=1

    Wengier

     
  • Wengier

    Wengier - 2016-02-29

    Also, the CLOCK program does not work properly with this version. It results in the "Out of memory in 190" error, which did not occur with release 15.08.3. I believe I had uploaded the program somewhere in the forum before too, but since I can't find it I am uploading it again.

    Wengier

     
    • Rob Hagemans

      Rob Hagemans - 2016-02-29

      Thanks. I suspect the issue with CLOCK.BAS is related to the fix of recursive FN calls, as a rexcursive call should give an Out of Memory error. However, the FNANG call is obviously not recursive, so will check why it triggers the error.

       
      • Rob Hagemans

        Rob Hagemans - 2016-02-29

        Hi Wengier, the issue with CLOCK.BAS has been found and solved for the .5 release. I'm hoping to push that out a bit quicker as .4 took too long.

        The issue with USRMAN25.BAS is more complicated, it's actually quite surprising that it worked before. The problem is caused because PC-BASIC maps all strings to memory locations and throws an error if the emulated memory is full. However, in GW-BASIC, strings defined as literals in the program code are not stored separately in memory, but are rather kept as a pointer to the program code. Therefore, all the strings in DATA commands in your program will take up string space in PC-BASIC but not in GW-BASIC.

        It's a problem that I've noticed before in a different context, but solving it properly is likely to require a substantial rewrite of how I'm dealing with strings. Which needs to happen at some point anyway, it's just not clear it can be done for a minor update or will need to be part of the next major update. Unfortunately the latter has been much delayed due to lack of spare time.

        Bottom line is, it will be solved but it may take a while. (Reverting the change that caused it would make USRMAN25.BAS work, so I'll probably do that for now, but it's not a proper solution. Other programs would fail even without the change.)

        Thanks again for reporting the bug!
        Rob

         
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.