Post Mon Mar 30, 2009 6:46 am

Version 1.1.4 released!

Changes from Version 1.1.2 to 1.1.4
  • + The peephole optimizer has been enabled and seems to be working
    reasonabily well (use -O3 for higher optimization).
  • ! When a DIV BY ZERO error occurs with floating point numbers the program
    crashes and resets the computer. This behaviour has been fixed
    and now returns 0 value and sets the error code 6 (Numbert Too big)
    in the ERR_NR system variable.
  • * Refactorization of the assembler and compiler so they now
    shared the OPTIONS in a better way (still to be finished). This
    makes easier to program future compiler options. Now also --debug
    flag is additive, showing more verbosity the more it is used.
  • + Memory optimization: The PRINT routine (which is about 1K) is not
    included if not USED.
  • ! Fixed a bug in negative constant integer typecasting (Thanks to LCD
    at WOS for reporting it! ;-)). It was causing decremental FOR..NEXT
    to fail.
  • ! Scientific notation numbers (e.g. 2e10) were not correctly parsed.
    Fixed. Thanks again to LCD. ;-)
  • + Added TAB compatibility for the PRINT command (both as a command
    and as a CHR$ control character).
  • * PRINT code optimized for size, maintaining speed.

====
TODO:
  • Some little more peephole optimizations.
  • Implementation of SAVE/LOAD/VERIFY with DATA/CODE/SCREENS (And maybe even the BASIC zone)
  • 8 bits AND/OR/NOT/XOR instructions
  • READ/DATA/RESTORE (mostly for compatibility)
  • CLEAR for filling memory zones.
  • USR n and USR n$ function (mostly for compatibilty)