Full install of version 18.104.22.168
The links below will install the full Proton compiler version 22.214.171.124, and the beta evaluation Proton24 compiler version 126.96.36.199.
There are three installations, one for Windows XP, one for Windows 7 (32-bit), and one for Windows 7 (64) bit. The only differences are the USB drivers.
The installer will also install a special evaluation beta version of the Proton24 compiler. The Proton24 compiler is fully working, but has a limit of 3 devices, one from each family of the PIC24tm
range. Namely: p24EP128MC202, p24FJ64GA002, and p24HJ128GP502.
The evaluation beta version of the Proton24 does not require a USB key to function. Simply, install the full compiler and this version of Proton24 is completely free to use.
However, the Proton for 8-bit devices still requires a USB key.
It is required that a version of the MPLABtm IDE is installed on the same machine as the compiler. Any version from 8.53 onwards will suffice.
It may be required to copy the dongle's USB drivers from the ProtonIDE folder to the relevant positions within the Windows folder.
The Windows 7 (32-bit) compiler installer can be downloaded from here:
Proton Compiler Setup for Windows 7 32-bit - Version 188.8.131.52
The Windows 7 (64-bit) compiler installer can be downloaded from here:
Proton Compiler Setup for Windows 7 64-bit - Version 184.108.40.206
The XP compiler installer can be downloaded from here:
Proton Compiler Setup for Windows XP - Version 220.127.116.11
The MicrochipŪ MPLABtm IDE can be downloaded from here:
MPLAB_IDE_- Version 8.70.zip
Below is a patch for the Proton24 part of the installation. It updates the compiler from version 18.104.22.168 to version 22.214.171.124 and corrects an issue with some variations of Right$, Left$ and Mid$.
Proton24_Patch - ver 126.96.36.199
To implement the patch, unzip, and copy the Amicus24.exe
file to the compiler's PDS folder, overwriting the original Amicus24.exe
Fixes and Amendments made in version 188.8.131.52 of Proton and version 184.108.40.206 of Proton24
Corrected Local and Global variable access when the same name is used for both.
Removed the need for the C30_device.info file in the root of the C: drive.
Hopefully, corrected the permissions issues that some people have reported when the assembler or linker is called.
Corrected the use of != as a comparator with no spaces between operands. However, it should be considered as standard practice to separate assignments, operators and operands with a space.
Corrected some unsigned comparisons against 0.
Corrected interrupt names for the linker (version 220.127.116.11).
The compiler now traps attempting to use assembler mnemonics as variables or constants (version 18.104.22.168).
Corrected String into String library routine(version 22.214.171.124).
Corrected Dword <= Dword comparison(version 126.96.36.199).
Corrected a compiler lock up when a procedure was created without a name following it(version 188.8.131.52).
Corrected (as much as 32-bit floating point will allow) converting a floating point value to ASCII(version 184.108.40.206).
Altered the Ptr8, Ptr16, Ptr32, cPtr8, cPtr16, and cPtr32 commands so that they can now use a variable as well as a WREG SFR as the address pointer(version 220.127.116.11).
The compiler now gives a syntax error when End If and End Select are used. The correct syntax is EndIf and EndSelect(version 18.104.22.168).
Removed the use of the _setup24.inc file. The defines are now individually placed into each device's .def file(version 22.214.171.124).
Added Modf to split a floating point variable or value into its fractional part and its whole part(version 126.96.36.199).
Updated the compiler's manual to incorporate the above amendments and addition. Also added to the Proc-EndProc section(version 188.8.131.52).
Added Ceil and Floor function descriptions to the compiler's manual(version 184.108.40.206).
Proton for 8-bit devices Fixes
Corrected the SonyIn command for an oscillator frequency of 64MHz.
Corrected RAM bank switching when using a low-priority interrupt on 18F devices.
Corrected the use of != as a comparator with no spaces between operands.
The installer now adds the USB key driver files into the appropriate Windows directories(version 220.127.116.11 and version 18.104.22.168).
The installer now adds the mcPluginMgr.dll application into the appropriate Windows directory(version 22.214.171.124 and version 126.96.36.199).
Removed the use of the $include directive from the preprocessor when loading the .def files, because it was found to be a little erratic in its operation(version 188.8.131.52 and version 184.108.40.206).
Fixes and Amendments made in version 220.127.116.11
mnemonics from enhanced core devices that have less than 1 code page (2048 words).
Updated the enhanced 14-bit core optimiser to version 18.104.22.168.
Added a trap for missing TRISE when using commands: High
Altered the While
mechanism. If no text follows the While
statement, it will implement an infinite loop.
Note that this mechanism is only valid for While
on seperate lines.
The prp file mechanism has now been removed from the compiler.
Corrected an early return of the compiler if an unknown variable is use as the first parameter within a comparison.
within a signed expression.
Corrected missing escape characters within quoted strings of text.
Corrected asm duplicate label name error with certain For
Corrected some signed Dword subtraction expressions on enhanced 14-bit core devices.
when used with code reading routines in the same program on standard 14-bit core devices.
Fixes and Amendments made in version 22.214.171.124
text is now mandatory for all except; Xtal
A syntax error will be produced if the Declare is not issued.
The prp mechanism is still in place, but will be removed in the next update.
Added simple range checks for assignments loaded with constants. i.e. MyByte = -129 or MyByte = 129
Corrected Comparison Float > Constant
, where Constant is a negative value.
Corrected Timeout delay for Hrsin
for enhanced 14-bit core devices.
Corrected USB device name string and enumeration.
Corrected the creation of the system variable PP3 with the SDec
modifier on 14-bit core devices.
Corrected RAM bank switching with enhanced 14-bit core devices causes by the internal redundant Movlb
Corrected COFF creation for strings held in code memory. Data was being missed.
being loaded with a single constant or variable. i.e. StrN MyArray = "0"
Fixes and Additions made in version 126.96.36.199
Added devices 12F1501, 12LF1501, 16F1454, 16LF1454, 16F1455, 16LF1455, 16F1459, 16LF1459, 16F1512, 16LF1512, 16F1513, 16LF1513,
18F24K50, 18LF24K50, 18F25K50, 18LF25K50, 18F45K50, 18LF45K50.
Note that USB is not
implemented as commands with enhanced 14-bit core devices.
Added three new sample programs.
Corrected expression SWord = SWord / Constant, where constant is above the value 255 and not a power of 2. For all devices.
Corrected RAM bank switching for 12-bit core devices and standard 14-bit core devices.
Corrected and amended Adin
for enhanced 14-bit core devices (partially broken in version 188.8.131.52). It now also uses the value from the Declare Adin_Tad
to load the ADCON1 SFR (if available on the device).
Fix, Additions and Amendments made in version 184.108.40.206
Added enhanced 14-bit core devices 16F1782, 16FLF1782, 16F1783, 16LF1783, 16F1784, 16LF1784, 16F1786, 16LF1786, 16F1787, 16LF1787
Trapped symbol and variable names starting with a digit. i.e. Dim 10Mice as Byte
. It now produces a compiler syntax error instead of an assembler error.
Updated the assembler version.
Corrected RAM bank switching with some signed variable comparisons on 18F devices.
Fix and Amendments made in version 220.127.116.11
Reinstated the prp file created for project use with some third party plugins. This was removed in earlier versions because of issues with cof creation
Updated PDF manual to take into account the changes to Dig
Updated Timer, SPI and ADC macros to use the compiler's Include
directive instead of the pre-processor's.
Corrected floating point Less Than comparison with positive constants.
Fixes and Amendment made in version 18.104.22.168
A signed variable either side of an assignment will now cause a sign extend to occur. Meaning the assignment variable will hold a signed value.
when assignment variable is a float. The routine now converts to an integer then to a float.
Corrected obscure RAM bank and page boundary switching anomaly with enhanced 14-bit core devices.
Corrected obscure RAM bank switching anomaly with 18F devices.
Corrected installer file corruption in version 22.214.171.124 and possibly 126.96.36.199.
Fixes and Amendments made in version 188.8.131.52
Updated relevant PPI files for the CTMUCON SFR.
routines because of expression parser issues with these, now obsolete, commands.
Replaced the Rev
function with the character @. Therefore, instead of Var = Var Rev Var
, use Var = Var @ Var
Replaced the BASIC stamp version of the Dig
function with the character ?. Therefore, instead of Var = Var Dig Var
, use Var = Var ? Var
Corrected Floating point conversion into an integer array that has an expression as an index.
Corrected recognition issues of some symbol names by the expression parser.
Corrected the use of the incf
mnemonic with enhanced 14-bit core devices when using the carry flag as a follow on for a high byte calculation.
Corrected the expression dword = word - constant with enhanced 14-bit core devices.
Corrected the Clear
command with some 18F devices. It was also clearing SFRs that are outside upper Access RAM.
Corrected the Break
command when used within a loop that is within a Select-EndSelect
Corrected recognition of the Lsrf
mnemonic within the enhanced 14-bit core internal optimiser pass.
For a history of Fixes, Additions and Amendments see the What's new document that always accompanies a new update.