News:

;) This forum is the property of Proton software developers

Main Menu

Positron Compilers Upgrade

Started by top204, May 10, 2021, 12:22 PM

Previous topic - Next topic

top204


Here are the additions to Positron8 and Positron16. Please remember, the name Positron is a name change only, and the compilers are still the same, with the same quality and the same support:

Additions made in version 4.0.0.X of Positron8 and version 1.1.0.X of Positron16

As of this upgrade to the compilers, the Proton8 compiler will be named the Positron8 compiler, and the Proton24 compiler will be named the Positron16 compiler. I won't go into details as to why, but it is fully covered on the compiler facebook group and on the compilers new forum.

Positron8 Additions
Added support for 18F devices; PIC18F25Q43, PIC18F26Q43, PIC18F27Q43, PIC8F45Q43, PIC18F46Q43, PIC18F47Q43, PIC18F55Q43, PIC18F56Q43, PIC18F57Q43.

These have a slightly different, and more efficient, RAM structure to standard 18F devices, and offer 8K of RAM.

Added support for Enhanced 14-bit core devices; PIC16F18424, PIC16F18425, PIC16F18444, PIC16F18445, PIC16F18455, PIC16F18456.

Added a new variable type named Pin, that allows a Port.Pin mask value to be sent to a procedure as a parameter, and it can also be created as a standard global or local variable. The Pin variable is unique to the Positron compilers and allows a whole new flexability to procedures.

Added a new command to enable or disable an indiviual pin's internal pull-up resistor. The command is named PinPullup.

Added a new command to set a pin to input, output, high, low, or an input with an internal pull-up resistor enabled. The command is named PinMode.

Altered the compiler's Asm listing to make it a lot more clearer to read and understand, for the user who is also learning, or uses, assembly code.

Added the ability to read the size of a Flash memory table created with the Dim As Flashx directives, within the SizeOf function and the Bound function.

Added the ability to use the SizeOf function and the Bound function within a Flash Memory table, and as a constant value in the Symbol directive.

Added an, optional, new mechanism for flash memory tables. A curly open bracket can start the table and no line continuations are required. With a curly close bracket ending the data tables. This makes Flash memory table creation a whole lot faster and easier to add too, or remove from.

Added the ability to use alias' to global variables and device SFRs as the parameter to a Procedure and as its Return variable. This can make procedures a lot more optimised, and faster in operation.

Added the ability to use the same mechanism when assigning to a String variable, when calling a procedure with a String variable parameter. i.e. MyProc("Hello " + "World " + Str$(Dec, MyByte))

Altered the syntax in the USB HID library to match some of the additions made to the compiler over the years.

Added extra HPWM channels supported by the compiler for some 18F devices, such as the PIC18F26K22 and PIC18F46K22 etc...

Significantly updated the Positron8 compiler's manual with a new front cover and the extra features added to it.


Positron16 Additions
Added support for devices; dsPIC33CK32MP102, dsPIC33CK32MP103, dsPIC33CK32MP105, dsPIC33CK32MP202, dsPIC33CK32MP203, dsPIC33CK32MP205, dsPIC33CK32MP206, dsPIC33CK32MP502, dsPIC33CK32MP503, dsPIC33CK32MP505, dsPIC33CK32MP506, dsPIC33CK64MP102, dsPIC33CK64MP103, dsPIC33CK64MP105, dsPIC33CK64MP202, dsPIC33CK64MP203, dsPIC33CK64MP205, dsPIC33CK64MP206, dsPIC33CK64MP208, dsPIC33CK64MP502, dsPIC33CK64MP503, dsPIC33CK64MP505, dsPIC33CK64MP506, dsPIC33CK64MP508, dsPIC33CK128MP202, dsPIC33CK256MP208, dsPIC33CK256MP502, dsPIC33CK256MP503, dsPIC33CK256MP505, dsPIC33CK256MP506, dsPIC33CK256MP508.

These are the newer dsPIC devices and offer a large set of internal peripherals and can operate up to 100 MIPS (200Mhz).

Also added support for devices; PIC24FJ32MC104 and dsPIC33FJ32MC104.

Added a new variable type named Pin, that allows a Port.Pin mask value to be sent to a procedure as a parameter, and it can also be created as a standard global or local variable. The Pin variable is unique to the Positron compilers and allows a whole new flexability to procedures.

Added a new command to set a pin to input, output, high or low. The command is named PinMode.

Added the ability to read the size of a Flash memory table created with the Dim As Flashx directives, within the SizeOf function and the Bound function.

Added the ability to use the SizeOf function and the Bound function within a Flash Memory table, and as a constant value in the Symbol directive.

Added an, optional, new mechanism for flash memory tables. A curly open bracket can start the table and no line continuations are required. With a curly close bracket ending the data tables. This makes Flash memory table creation a whole lot faster and easier to add too, or remove from.

Added the ability to use alias' to global variables and device SFRs as the parameter to a Procedure and as its Return variable. This can make procedures a lot more optimised, and faster in operation.

Added the ability to use the same mechanism when assigning to a String variable, when calling a procedure with a String variable parameter. i.e. MyProc("Hello " + "World " + Str$(Dec, MyByte))

Significantly updated the Positron16 compiler's manual with a new front cover and the extra features added to it.


Many thanks, and the extra funding will allow me to continue to develop the compilers.