-------------------------------------------------------------------------------------------------- ** Changes and additions made in revised version 2.1.3 of PROTON+ Compiler. Fixed HPWM duty cycle anomaly. Fixed 32-bit subtraction anomaly on 16-bit core devices. Also optimised both subtraction and addition routines using 16-bit core specific mnemonics. Fixed expressions in CDATA with 16-bit core devices. Fixed ABS with 32-bit expressions and float expressions. Fixed floating point being enabled when SIN used on a 14-bit core device. Fixed LOOKUP, LOOKUPL, LOOKDOWN, LOOKDOWNL when using two consecutive commands with differing array variable types. Fixed ALL_DIGITAL directive with 12F629 device. Fixed Compiler lock up with a comment on the same line as CALL Added Identifying names for EDATA addressing. Added command RESET_BANK to manually force the RAM bank to zero. Added command SET_BANK to manually set the RAM bank of a variable. Added new DECLARE to enable/disable RAM bank resets on all BASIC labels. LABEL_BANK_RESETS = ON/OFF or TRUE/FALSE or 1/0 Added new declare to enable/disable compiler reminders. REMINDERS = ON/OFF or TRUE/FALSE or 1/0 See the help file for more details. -------------------------------------------------------------------------------------------------- ** Changes and additions made in revised version 2.1.1 of PROTON+ Compiler. Fixed BANK switching anomaly when using single page PICmicro devices. Fixed subtraction expression in an array with no white spaces present. Fixed 16-bit Greater than or Equal expression of constant value 65535. Added new declare to choose either ODD or EVEN parity when using SERIN and SEROUT. SERIAL_PARITY = ODD-EVEN , 1-0 Fixed Code and Data memory windows in Editor. They now correctly show 14 and 16 bit core device info. Added an ASCII area within Code and Data windows. Updated help file to include SERIAL_PARITY declare, and fixed BUSIN reference to MSSP typo. -------------------------------------------------------------------------------------------------- ** Changes and additions made in Released version 2.1 of PROTON+ Compiler. Added LINETO command to draw a line starting from a previous LINE command's end position. Added Compile then Download option to the editor. Pressing F12 initiates it, or use the OPTIONS menu. Fixed STR modifier with 16-bit core devices and arrays that cross over BANKA. Fixed intermittent lock-up if label names and variable names duplicated. Fixed aliasing parts of a larger variable. i.e DIM DWD as DWORD DIM VAR1 as DWD.BYTE3 DIM VAR2 as DWD.BYTE2 DIM VAR1 as DWD.BYTE1 DIM VAR0 as DWD.BYTE0 Fixed expressions in FOR-NEXT loops. Optimised FOR-NEXT loops that use expressions. Added Graphic LCD Space Invaders game to the samples folder. Also added several macro examples to the samples folder. -------------------------------------------------------------------------------------------------- ** Changes and additions made in version 2.1 Beta 6 of PROTON+ Compiler. Fixed word arrays being loaded with word arrays. Fixed Stack underflow error when expressions used as array index. Fixed DWORD > DWORD comparison. Fixed inline CASE constructs. Fixed DWORD variable loaded with an array. Fixed floating point subtract by 0 with 14-bit core devices. Fixed floating point ACOS. Fixed comment directly after certain commands (without spaces). Compiler now traps them succesfully. (but I still think it is bad programming practice). Fixed sign comparison warning message when not applicable. Added ability to place labels in 14-bit core CDATA tables. Thanks to Tim, the PPRINT subroutine is now available for 14-bit core FLASH devices. Replaced some warnings with reminders. Especially those concerning floating point SIN and COS. Updated help file with some information concerning interrupt context saving/restoring with 16-bit core devices. I would like to take this opportunity to thank Tim Box for his on going support and invaluable help in improving the functionality of the compiler. My task would have been a lot harder without his insatiable appetite for experimenting, and his patience and eagerness to help others. And I would like to thank all those who have spotted and reported anomalies. Without your constant vigilance the compiler would not be the programming aid that it is today. I take my hat off to you all!!! ------------------------------------------------------------------------------------------ PROTON Compiler Version 2.1 Beta 5 Fix's and Optimisations Fixed ADIN with certain devices. Fixed LOOKDOWN for 16-bit core devices. Fixed LOOKUPL when label names are used in the table. Fixed ALL_DIGITAL directive with 12F675 device. Fixed expressions in CWRITE for 16-bit core devices. Fixed CERASE for 16-bit core devices. Optimised ASM code produced for REPEAT..UNTIL construct. Optimised ASM code produced for BRANCH and BRANCHL with 16-bit core devices. Optimised graphic LCD library subroutines. Optimised floating point library for 16-bit core devices. Various tweeks of existing commands and expression calculations. Updated Editor to match new KEYWORDS added. Updated help file to explain the new constructs. ------------------------------------------------------------------------------------------ ** Changes and additions made in version 2.1 Beta 5 of PROTON+ Compiler. Added SELECT..CASE..ENDSELECT construct (see helpfile). Added ELSEIF to IF..THEN construct (see helpfile). Added BREAK command to prematurely exit FOR..NEXT, REPEAT..UNTIL or WHILE..WEND loops. Added LINE command for graphic LCD. Added CIRCLE command for graphic LCD. Added BOX command for graphic LCD. Added HRSIN2, HRSOUT2, HSERIN2 and HSEROUT2 for 16-bit core devices that contain a second USART. Added floating point SIN for 16-bit core devices. Added floating point COS for 16-bit core devices. Added floating point TAN for 16-bit core devices. Added floating point ATAN for 16-bit core devices. Added floating point ACOS for 16-bit core devices. Added floating point ASIN for 16-bit core devices. Added floating point LOG for 16-bit core devices. Added floating point LOG10 for 16-bit core devices. Added floating point SQR for 16-bit core devices. Added VAL command to convert a string into an Integer. Added STR$ command to convert a value into a string. Added STRN command to create a null terminated character array. i.e. A string Added Formatters for DATA, LDATA, EDATA, and 16-bit core device CDATA tables. All the data tables allow label names as entries. Added support for newer 16F and 18F devices (see helpfile for list). Added support for 16-bit core PICmicros that contain up to 1K of DATA (eeprom) memory. Added auto context saving/restoring for 16-bit core device interrupts (if required). Added WARNINGS declare to enable/disable compiler warnings (see helpfile). Added a reminder message on some messages that were previously warnings. Added an error message if PCL, TOSL or TOSH is the destination of mnemonic MOVFF. If the compiler senses this internally, it will use the two part mnemonics: - MOVFW MOVWF and issue a warning that it is doing so. This should not be encountered in normal BASIC progamming, but could be if used for more advanced coding. Added improved MACRO support (more details on this to follow). Incorporated Tim's PPRINT design into compiler's PRINT command (more details on this to follow). (This really has to be seen to be believed!).