Sonsivri
 
*
Welcome, Guest. Please login or register.
Did you miss your activation email?
March 28, 2024, 09:53:45 21:53


Login with username, password and session length


Pages: [1]
Print
Author Topic: PicBasicPro 3 vs Crownhill Proton vs Swordfish etc...  (Read 10563 times)
0 Members and 1 Guest are viewing this topic.
Jayridium
Inactive

Offline Offline

Posts: 5

Thank You
-Given: 1
-Receive: 4


« on: May 24, 2019, 04:45:19 16:45 »

Hi - I've not been involved with microcontrollers for a few years, I used to like PBP3 used with microcode studio, the licenses were with a former employing company, where microcontrollers were part of a larger project I was working on. Now I'm freelancing and have something on the radar that requires I get back into microcontrollers, I'm not interested in learning another language, so any purchase has to be based on Basic, which narrows it down some what. However I'd like your opinions on the strengths / weaknesses of the mainstream basic compilers/development environments on the market. For me the two most likely to be purchased are Proton IDE, or PBP3 and microcode studio, worth mentioning is that one of my colleagues used PICaxe at highschool, and has his won licenses for some of their tools, so something similar to that syntax could be beneficial, but not necessarily a must have.

Thanks in advance for sharing your knowledge and insights with me.

Logged
HackAndCrack
Senior Member
****
Offline Offline

Posts: 294

Thank You
-Given: 175
-Receive: 800


« Reply #1 on: May 24, 2019, 05:23:06 17:23 »

I have not used Proton Development Suite and I can't answer about that but medicine for it by PICkit2 is available here in this forum.

Also, a keygen for PIC Basic Pro is available in this forum.

I use PBP sometimes. It is okay for me for some Basic PIC projects.

Also, setup file for MicroCode Studio Plus and Swordfish and medicines are available in this forum.
Logged
Checksum8
Active Member
***
Offline Offline

Posts: 126

Thank You
-Given: 123
-Receive: 100


« Reply #2 on: May 24, 2019, 06:24:24 18:24 »

If you are going to purchase a compiler make sure they support newer micros. I think PBP still adds new devices. Proton I don't know. Swordfish was pic18's only and I believe has not been updated for years?
Logged
towlerg
Senior Member
****
Offline Offline

Posts: 263

Thank You
-Given: 474
-Receive: 104

What is this for?


« Reply #3 on: May 25, 2019, 03:06:47 15:06 »

Updates/bug fixes for PBP are pretty rare. On the other hand Proton is a labor of love and is updated on a very regular basis. The only plus for Swordfish was that it implemented procedures, this has now been added to Proton albeit as an additional (£25) purchase.

One of the real strengths of Proton is the number of nice plug ins eg FuseConfigurator, PDF Now (data sheet viewer/downloader). It also has a quite extensive list of Pic devices that may be used at no charge and unborged. (Swordfish has a limited free version)

One of the the things that ticked me off about PBP was that you can't specify the Pic Device in the source, so if you do anything that deals with hardware directly (which you will) be careful. There is lots of good stuff for PBP written by Daryl  Taylor who sadly is no longer with us.

The PBP and Proton forums have approx the same activity with Swordfish pretty much quiescent.

One downside that Proton and PBP share is that the IDE is provided by a third party.

Don't forget Mikroe Basic, on the surface looks to have lots of hardware support but is pretty buggy.

 
Logged

Win 7 Ult x64 SP1 on HP2570p
metal
Global Moderator
Hero Member
*****
Offline Offline

Posts: 2420

Thank You
-Given: 862
-Receive: 678


Top Topic Starter


« Reply #4 on: May 25, 2019, 05:10:19 17:10 »

mE profits from HW, not SW.. so the software for them is sth secondary. I used PBP in 2003, since then nothing has changed Cheesy Proton is the way to go, swordfish is excellent, but has little user base, C rules for embedded dev after all.
Logged
tumbleweed
Newbie
*
Offline Offline

Posts: 34

Thank You
-Given: 57
-Receive: 41


« Reply #5 on: May 26, 2019, 10:52:45 10:52 »

I've used all three and in my opinion your choices are Proton or Swordfish. If you don't mind being limited to the pic18 series then Swordfish is easily the best choice. While it's true the main compiler hasn't been updated in a while that's because it works. It supports pretty much all of the devices in that family, and is the only one that resembles a modern programming language.

Proton would be my second choice, or if you wanted support for the other 8-bit pic families.

I wouldn't recommend PBP3 to my worst enemy, although if you want something close to the PicAxe that's the one to choose.
Logged
towlerg
Senior Member
****
Offline Offline

Posts: 263

Thank You
-Given: 474
-Receive: 104

What is this for?


« Reply #6 on: May 26, 2019, 11:08:48 11:08 »

And don't forget that Proton has a 16 bit compiler Proton24 included in the price.

It is very easy to undervalue an active forum, particularly when you're on the learning curve.  
« Last Edit: May 26, 2019, 11:15:04 11:15 by towlerg » Logged

Win 7 Ult x64 SP1 on HP2570p
bytraper
Newbie
*
Offline Offline

Posts: 29

Thank You
-Given: 9
-Receive: 60


« Reply #7 on: February 11, 2020, 02:41:40 02:41 »

I went through this same choice and I ultimately ended up paying for Proton (even though I could have used it for free!) because I'd spoken to a lot people that used all three and they had all ended up on Proton because it is constantly updated, has exceptional code compilation (compiles to shorter code then the other two) and ultimately supports more devices.

Cheers and good luck with your selection, but I guarantee you'll end up at proton!
Logged
towlerg
Senior Member
****
Offline Offline

Posts: 263

Thank You
-Given: 474
-Receive: 104

What is this for?


« Reply #8 on: February 11, 2020, 01:11:32 13:11 »

BTW The proceedures module is now included foc in the standard Proton install.
Logged

Win 7 Ult x64 SP1 on HP2570p
Vineyards
Active Member
***
Offline Offline

Posts: 168

Thank You
-Given: 62
-Receive: 37


« Reply #9 on: February 12, 2020, 06:26:52 06:26 »

I worked with Proton Basic for many years in the past. It has a number of advantages compared to other BASIC compilers such as built in libraries and associated functions which are very easy to use. You can code pretty fast. However when you are working on a large scale project (one that uses almost all the memory and storage resources of the processor) you begin to run into difficulties due to poor or incomplete bank management. There may have been newer version since the time I stopped using it. In my experience however, each new version introduced more problems while trying to solve the previous ones. This might be partly because the project seems to be a one-man effort. My verdict is it is a great learning tool, ideal for simple, straightforward projects but not particularly suitable for larger and more sophisticated projects.

BASIC language is very easy to learn at the beginning. Proton BASIC in particular offers very nifty solutions that would take more coding time to implement. An example would be their implementation of CASE statement. It works like this     "CASE temperature 10 to 15"  in which case condition is satisfied if the value of the variable is between 10 and 15. You would normally write a longer piece of code for this elsewhere. That being said, BASIC is unfortunately not an ideal platform for larger projects because of its language specific restrictions. True you have many of the aspects already of C implented in Proton BASIC but if you need the better code management, re-usability and modularity of the C platform then you should consider C.   
Logged
abuwalker
Newbie
*
Offline Offline

Posts: 9

Thank You
-Given: 1
-Receive: 1


« Reply #10 on: June 07, 2023, 02:17:56 14:17 »

After using many free PIC compilers for midrange/baseline (yeah old), I came to the conclusion that PMP and PicPas have some of the best code generation, better than most commercial software. PMP also creates each function in its own asm section, so the linker shuffles the functions around to squeeze them into available pages. File usage was also good, and temporaries few. Unfortunately libraries few, and little or not integration into the language, so you're left to role your own. So after a long time i bought Les Proton Basic, and now very reasonable price as Positron Basic on ebay, and supports a wealth of libraries and is regularly updated. The code generated is about 80-90% optimal, with a lot of unecessary bank switch when calling function because of the bank0 function transition assumptions. But its got "Asm-" if you want to manage that issue yourself and do it 'your way' and push the compiler aside. So Proton (Positron manual has large chunks ripped out of Proton so assume its almost the same 'under the hood' and device superset) is comfy to program to get ideas fleshed out quick. I do a lot of inline asm, so not typical dev, who wants to abstract HL as much as possible. But i still like Proton since it gives me a HL skeleton to house my mixed asm/bas code, and easy access to raw metal without the compiler fighting me.
The only issue i have with it is debugging. Im using the Proton - MPLAB 8.92 integration, but can single step the basic source (but can run to breakpoints). If there's an error in my asm, Proton gives me an error line in 'a.s'; a temp asm file that Proton always deletes after assembling! I've  fixed this by redirecting Mpasmwin.exe (which Proton invokes) to a batch file, to save that rabbit, and change the assembler switches. Proton should really give users more control on how mpasm is run, and keep target asm files around.
Bottom line i've dropped the Proton integration, and using the a.s file to debug, which gives me HL like debugging (with basic source as comments) and symbolic labels - way better than resorting to the dissassembler view. Wouldnt it be nice if Proton would stop stripping out my inline asm comments?
Anyone have better fortunes with Proton/Positron? How's it on MPLAB/X ? Would be nice to single step the basic, and the .asm annotated target file.
Also something else to keep in mind is most compilers will dump their library code in page0, much of it bloated and you dont have any chance to rewrite it. So now i've intercepted the
proton-mpasm phase, i've got a chance to cancel that code and rewrite parts of it, which is giving me room on small parts of 1-2K words.
« Last Edit: June 09, 2023, 10:30:06 10:30 by abuwalker » Logged
mbyka
Junior Member
**
Offline Offline

Posts: 61

Thank You
-Given: 258
-Receive: 42


« Reply #11 on: June 08, 2023, 06:40:50 06:40 »

Proton IDE  new name is Positron

positron basic compiler also for 8 and 16 bit pics  in a packgage
it is  best like proc C or C++

i use only positron and pic mcu 8 -16 bit

this is link to buy  ;

How to Purchase the Positron compilers.
https://sites.google.com/view/rosetta-tech/home/how-to-purchase-the-positron-compilers

https://www.ebay.co.uk/itm/234979524072?hash=item36b5defde8:g:ug4AAOSwE1lgmnMn&amdata=enc%3AAQAIAAAAwNpz2K6FWqjz2mUbYblbwA7wyZaVrD9bKIQiXNycjQTvaDYpg%2BzVz1ENb8yf6AYtkWnNtMaKy2kRukRCqrna%2F840YV0FpOhObKtYU%2FrY9ZR3kOi8dG%2F5dRKRgn8bTJRXIjZSaMB%2FylEscU9OfYVTx7LUHodZvx0aifMcesNZkafvRVblh0LLMVxoNDddI3ZD%2FUyFNKwryStMYJKu6V9hOBG9YvMZ3wG2VF98Ie4AiCfgKS7YjP%2FkDdiQUGDNcaU41A%3D%3D%7Ctkp%3ABk9SR8b03N38YQ


this link of  positron forum

https://protoncompiler.com/index.php?action=unread
Logged
abuwalker
Newbie
*
Offline Offline

Posts: 9

Thank You
-Given: 1
-Receive: 1


« Reply #12 on: June 08, 2023, 10:20:58 10:20 »

attached are my files that gives build flexibility , targets compiled-basic annotated .asm for friendly debugging, also checks that .bas device and mplab config device agree. You can also re-write (Programmatically before each compile) the compiled basic .asm target file before assembling to cut/replace library code etc. Works with Proton+ full version, or the latest free version crownhill is giving away (supports about 80 devices). Good place to start with the free version since you'll find  a device that does aprox what you need . You'll have to tweak paths for your drives.
To set this up in mplab8.92 ;


-We use MPLAB for its ok simulator.
New project -> wizard -> active toolsuite =  Microchip MPASM toolsuite
   Next -> Create New Project File =  debug.mcp
   Next . Cick on  a.asm  . Click "Add" , Next   (adds  a.asm  to project  "Source Files" that will be build)
   When asked select "Generate absolute code"  (see  "Project.BuildOptions.Project.MPASM/C17/C18 Suite")
- Go to the project window, right click on  "Other Files" -> Add , double click on a .bas Proton file to add it as a file for editing (our PreBuildStep will build it into a.asm).

Project.BuiltOptions.LibraryOutput = Build normal target (invoke MPLINK)
Project.BuildOptions.Project.MPASMAssembler.UseAlternateSettings =  /e+ /l+ /x+ /c- /q+ /rDEC
   .InheritGlobalSettings =  unticked  (should be greyed out)
   -above is same for "Categories" = General / Output
Project.BuildOptions.Project.CustomBuild.PreBuildStep =  "Y:\DOC\PIC\proton.basic\prebuild.bat" $(BINDIR) $(Device) $(TargetName) $(OutputDir)
Project.BuildOptions."a.asm".MPASMAssembler.UseAlternateSettings =  /e+ /l+ /x+ /c- /q+ /rDEC
   .InheritGlobalSettings =  unticked
   -above is same for "Categories" = General / Output
Project.BuildOptions.Project.MPLINK.UseAlternateSettings = /n 0 /i /m"$(BINDIR_)$(TARGETBASE).map" /o"$(BINDIR_)$(TARGETBASE).cof"
   - /n 0   =  no pagination in listing
   - /i               : generate the .LST file and no .COD file
Project.BuildOptions.Project.Directories.BuildDirectoryPolicy = Assemble in the project directory
« Last Edit: June 09, 2023, 09:15:38 09:15 by abuwalker » Logged
abuwalker
Newbie
*
Offline Offline

Posts: 9

Thank You
-Given: 1
-Receive: 1


« Reply #13 on: June 09, 2023, 10:28:33 10:28 »

A little update to detect Proton compile errors, and put them into target a.asm file, so in the final build process, Proton's error message ends up last on mplab's ouput pane so you can have a small pane, and still see errors.

Who wants to test this on Positron (i dont have it).

Also few project settings missed;
Project.BuildOptions.Project.Directories.BuildDirectoryPolicy = Assemble in the project directory
      .ShowDirectoriesFor.OutputDirectory = Y:\pic-projects\proton\debug  (ie your project directory)
           .IntermediaryDirectory  =  same as above

Also make sure  Configure.SelectDevice.Device =  same device as "Device" line in main .bas file,
otherwise my pre-build script will catch this (how many times i forget, and wonder why the sim is bad),
and output a error message and abort the build.

You can have only 0/1  .bas file in the project dir, and it will be taken as the primary user source file (you dont modify the proton a.asm  project source target, though i have it open during simulation),
so ensure   configure.Settings.Other.AutomaticallyReload = ticked .

Also if you want to rewrite Proton's library code, then add the file "rewrite.bat" to your project directory, and it will be can start your rewrite script (eg AWK or sed in simpler cases).

Finally near the top of you .bas file add;

================================================
asm-
   errorlevel   0      ;Messages, warnings, and errors printed
   errorlevel   +301   ;turn on/off generation of "messg" user messages.
   errorlevel   -306   ;turn off warning;   CROSSING PAGE BOUNDARY -- ENSURE PAGE BITS ARE SET
   errorlevel   -205   ;turn off warning (periodically useful to turn on);  FOUND DIRECTIVE IN COLUMN 1.
   errorlevel   -312   ;turn off warning; Page or Bank selection not needed for this device.  No code generated.

   ;messg aaaaaaa MAX_BREAKPOINTS      ;print a user message in the output window / listing file
;   noexpand   ;uncomment to TURN OFF MACRO EXPANSION in listing file (default is on). This will prevent you from stepping through the actual asm at assembly level (though you can do this in the dissassembly pane).
NO_ARG set -999999999      ;no argument value to skip printing of this and later arguments to errmesg
errmesg Macro a, b, c      ;a=string, b=number, c=number. Eg.  errmesg "error number=", 5, NO_ARG
    #if #v(b) == NO_ARG
       error a
    #else
       #if #v(c) == NO_ARG
          error a #v(b)
      #else
          error a #v(b)/#v(c)
       #endif
    #endif
    Endm
endasm

=======================================

A reminder;

Starting with MPLAB IDE v8.10, there are some variables that you can add to your
custom-build command:
ò $(OutputDir)
ò $(IntermediateDir)
ò $(ProjectPath)
ò $(ProjectDir)         Y:\pic-projects\proton\debug\
ò $(ProjectName)        debug.mcp
ò $(TargetPath)         Y:\pic-projects\proton\debug\a.cof
ò $(TargetDir)          Y:\pic-projects\proton\debug\
ò $(TargetName)         a.cof           (eg with a single source file  'a.asm')
ò $(Device)             PIC12F509
  $(BINDIR)             Y:\pic-projects\proton\debug

In the 'fix', these variables are used in the Pre-Build Step:
        prebuild.bat $(BINDIR) $(Device) $(TargetName) $(OutputDir)


Posted on: June 09, 2023, 10:22:40 10:22 - Automerged

> Any errors in my asm blocks cause Proton to give me an error line in 'a.s'; a temp asm file that Proton always deletes after assembling!

Not sure why Les did this... is Positron doing same?

>I'm using the Proton - MPLAB 8.92 integration, but CAN'T single step the basic source ...

Anyone got a fix for this, also is this happenning in Positron?
« Last Edit: June 10, 2023, 06:00:52 06:00 by abuwalker » Logged
abuwalker
Newbie
*
Offline Offline

Posts: 9

Thank You
-Given: 1
-Receive: 1


« Reply #14 on: June 10, 2023, 09:55:05 09:55 »

See attachment for a workaround for Proton stripping away asm comments starting with ;
in asm blocks (NB; you have to replace ' with ` otherwise proton will strip from there too) .
Limitation comments must now start on a new line so indent with space  (each tabs get converted to 1 space in Proton's .asm output).

Logged
abuwalker
Newbie
*
Offline Offline

Posts: 9

Thank You
-Given: 1
-Receive: 1


« Reply #15 on: June 10, 2023, 12:14:02 12:14 »

See attachment for a workaround for Proton stripping away BASIC comments starting with ' .
Limitation; comments must now start on a new line so indent with space  (each tabs get converted to 1 space in Proton's .asm output).

So now you have a friendly way to include comments in your .bas file both at the BASIC level and the inline asm level and have them survive in the Proton target .asm file, so you can simulate/debug it with comments. Enjoy.
« Last Edit: June 10, 2023, 04:04:34 16:04 by abuwalker » Logged
abuwalker
Newbie
*
Offline Offline

Posts: 9

Thank You
-Given: 1
-Receive: 1


« Reply #16 on: June 10, 2023, 03:13:44 15:13 »

now lets use Basics statement seperator so we can put Basic comments on the same line as code.
see attachment.... how does 'insert image ' work in reply?
Logged
h0nk
Senior Member
****
Offline Offline

Posts: 256

Thank You
-Given: 208
-Receive: 230



« Reply #17 on: June 10, 2023, 04:57:29 16:57 »


 how does 'insert image ' work in reply?


Hello abuwalker,



put the link to the picture between [ img ] and [ /img ].
And remove the spaces between [ and img ... ]
I think You get it.


Best Regards


« Last Edit: June 10, 2023, 05:04:18 17:04 by h0nk » Logged
abuwalker
Newbie
*
Offline Offline

Posts: 9

Thank You
-Given: 1
-Receive: 1


« Reply #18 on: June 10, 2023, 05:27:45 17:27 »

Now I'm really getting somewhere; I've gone back to (intercepted) Proton-MPLAB integration. Now my mplab.bat script copies Pronton's hidden temp a.s to a.asm, then manually assembles a.asm (instead of a.s that proton would have done). Now when a error occurs in inline asm in your .bas file, my script will correctly give a error in a.asm in mplab's output window. Now you can double click the error message, and you'll be sent to the file + position. Scary normal, at least you can fix errors in your asm.

Breakpoints and single stepping work again in the .bas file. The dissasembly pane will now use the listing file that has native comments and symbolic constants as per your .bas file; maybe Proton always did that?

more details and files later...

« Last Edit: June 10, 2023, 05:38:17 17:38 by abuwalker » Logged
abuwalker
Newbie
*
Offline Offline

Posts: 9

Thank You
-Given: 1
-Receive: 1


« Reply #19 on: June 11, 2023, 06:13:57 06:13 »

Back to the topic;
> on. Now I'm freelancing and have something on the radar that requires I get back into microcontrollers, I'm not interested in learning another language, so any purchase has to be based on Basic, which narrows it down some what. However I'd like your opinions on the

There is GC Basic ,    https://gcbasic.sourceforge.net/Typesetter/index.php/Home

-Generates standard MPASM compatible assembly code for PIC
Which is a sad must for anything PIC, because then you can use Microchip's simulator in MPLAB... after almost a decade MPLAB-X is still 'beta grade', and the simulator very incomplete so you end up spending unreasonable time fighting the tools. Code generation is good, but worse than PMP or Proton/Positron. But for a quick , run of the mill project it doesnt matter much. Main thing is you can simulate and debug with pickit... because you'll have to pay for a decent simulator, and RealICE or anything upmarket from Microchip is heavily overprice; most other micros have Jtag or 1 wire smart 'programmer' that do this for <$100.
GPSIM is free, and debugs with .cod source level. Unfortunately it doesnt label your variables; i'm looking into some way to do that manually or automatically using a quick script. Long term i want to use it to write a virtual 'component' that talks to a com port so you can run a simulated PIC prog, and get out to the real world and control external hardware / communicate with a local/remote debugger etc. Or just communicate with win32 messaging to an app of your choice. Or super simple; redirected stdin/stdout to an exe (eg written in freebasic) of your choice. No brainer for the user.

To be frank, shockingly the PIC architecture and its tools are the worst in the industry. There is only one reason to stick to it; in 10 years time Microchip will keep fabricating classic micro silicon; look at 12F508 thats 2001 silicon based on 12C508 1994 design (way backward for its time with banking and paging on a scale that would make the i8051 livid with envy!). But there's endless supply of it, same for 12F675, 12F683, 10F200 ; these are all very dated and backward architectures. If you want a programmer's nightmare, even at the HLL layer, PIC is the way to go, and their silicon is always 50-20% overpriced. All part of a legacy marketing success.... their aquiral of Atmel and anyother major player is all continuance of that legacy. You just have to look at Microchip's dated and feature limited clunky tools to realize that this is a manufacturer that has little concern for customer wellbeing and experience at the tool level (ie where it counts). You might get a bit smoother ride with a 3rd party toolset and library, but fundementally you'll be fighting the weird PIC architecture, unless you go with their 'break from tradition' 32-bit devices and pay premium for it. If you can, go with any non-Microchip architecture, preferably open architectures like patent free 8051 or ARM (eg STM 'blue pill', EMF78 etc), where the architecture will live for decades, the silicon will follow, and the manufacturers are tool focused and you'll get free quality tools, or entry level code limited demos that will run the smaller parts, until you have a few hundred $ to justify full feature, which in Microchip speak is 'chicken feed'. Or you can look at it from a user perspective ; there's many projects for PIC still written in pure asm. This is not for Microchip's rant in their databooks "Only 33 Single-Word Instructions to Learn" (and dumbed-down banking/paging), it because of a sustained lack or cheap and effective historic alternative. How many windows apps are programed with MASM? Go figure the backwardness, and how it reflects into the future going forward... I would only accept a platform that got good HLL tools with minimal compiler bugs, and do <5% in asm on select time critical projects. Most newbies can easily go 100% HLL.

My advice to you is do yourself a favour, jump ship, spend a week learning C, and break free! Basic is not a micro language, so you'll always be locked into an aging poorly developed eco-system that your provider will eventually abandon. You deserve better than that, because once you choose a toolset, you're married to it, unless you like rewriting source code which is like a divorce and re-marriage!
« Last Edit: June 11, 2023, 09:12:00 09:12 by abuwalker » Logged
Pages: [1]
Print
Jump to:  


DISCLAIMER
WE DONT HOST ANY ILLEGAL FILES ON THE SERVER
USE CONTACT US TO REPORT ILLEGAL FILES
ADMINISTRATORS CANNOT BE HELD RESPONSIBLE FOR USERS POSTS AND LINKS

... Copyright © 2003-2999 Sonsivri.to ...
Powered by SMF 1.1.18 | SMF © 2006-2009, Simple Machines LLC | HarzeM Dilber MC