Does anyone know where I can find a list of PropBASIC command-line switches? I'm trying to compile via command-line but despite getting no errors, I get no compiled code either - does PropBasic.exe still allow command-line usage?
Make sure you run the PropBASICIDE program. This is the front-end / editor for propbasic.
With in the editor you can select "Compile" this compiles and opens the .spin file in the Propeller Tool.
Select "Run", this uses propellent to compile and run the program from RAM.
Select "EEPROM" to burn the program into the EEPROM so it will run at power-up.
I am trying to figure out where the Propbasicide program is located.
I must say I am a bit confused!!!!!
The problem is that PropBasic is a compiler without a IDE.
It was supported by BST, but required that I send the source to BradC for him to modify and create the executable files.
It is supported by Viewport, but it is not a free program.
I wrote a very simple IDE (PropBasicIDE), but it wasn't good at all.
It is a shame that the propeller IDE does not support external compilers. That would be perfect.
I have taken to using Geany for the editor. This is what I recommend. It's not perfect, but it works.
Unzip the files in the PropBasic.zip file to C:\PropBasic
After you install geany, do Build->Set Build Commands and set the execute command as shown in the picture (note the spaces).
I hope this helps, Let me know if you need any further info.
Bean
P.S. If anyone can tell me how to highlight keywords in geany, I appreciate it...
P.S.S. The zip file also contains the latest version of PropBasic 1.30
The problem is that PropBasic is a compiler without a IDE.
It was supported by BST, but required that I send the source to BradC for him to modify and create the executable files.
It is supported by Viewport, but it is not a free program.
I wrote a very simple IDE (PropBasicIDE), but it wasn't good at all.
It is a shame that the propeller IDE does not support external compilers. That would be perfect.
I have taken to using Geany for the editor. This is what I recommend. It's not perfect, but it works.
Unzip the files in the PropBasic.zip file to C:\PropBasic
After you install geany, do Build->Set Build Commands and set the execute command as shown in the picture (note the spaces).
I hope this helps, Let me know if you need any further info.
Bean
P.S. If anyone can tell me how to highlight keywords in geany, I appreciate it...
P.S.S. The zip file also contains the latest version of PropBasic 1.30
Bill,
I had asked some time ago and he was too busy at the time to look into it.
I hate to pester people. If he reads this (or if anyone wants to bug him about it), I'd be willing to change whatever I can to make it work.
I'm still an enthusiastic supporter of PropBASIC and I make sure it works well within ViewPort. There is a free trial and and I believe ViewPort's debugging features are well worth the cost. In my opinion a text editor is for those that write perfect programs right of the bat- I'm not one of those so I use a debugger that makes me more productive and let's me solve more complex problems.
Hanno
Hi Bean. I'm sorry that I don't have time yet. I'm still tied up with getting SimpleIDE things ready for a Parallax revenue release. After that comes the SPIN specific version work. I've been asked not to deviate from the current path when another item came up ... always something shinny on the horizon.
I have been following the development of ViewPort and PropBasic for ViewPort, but as far as I am concerned, it is not yet at a stage where I will seriously consider using it.
Concerning the lack of a decent IDE for PropBASIC (no offense intended, Brad and Hanno), I use NOTEPAD++ version 6.1.8 and it works like a charm. Admittedly it is not an IDE, but it is a very nice editor and it is FREE. To my mind the extra 2 key presses required to compile and load the code to the Propeller, but having an excellent editor outweighs the allure of an IDE with a not-so-nice editor. Especially since I spend most of my time coding and not compiling.
There is a newer version of Notepad++, but the syntax highlighting method has changed entirely and I just do not feel like re-doing all the syntax highlighting which I had already done for no apparent benefit, so I am still using version 6.1.8. The examples I have attached are for NotePad++ version 6.1.8.
After you have installed Notepad++, download the Explorer Plugin (Plugins > Plugin Manager > Show Plugin Manager . There are a LOT of plugins available, so just find Explorer in the list.
You can set up shortcuts for command line compile and load for both BSTC and Propellent (From PropBASIC Ver. 00.01.08 LMM jumps use @@@ which causes a Propellent compile error, but it works with Brad’s Spin Tool Compiler - just make sure that you have downloaded bstc-0.15.4-pre13.exe). I have attached a document on how to set up the command line shortcuts in Notepadd++.
The are only two bothersome issues with Notepad++
1) It can not do syntax checking - I still use Brad's Spin Tool for syntax checking. But after a while you can recognize from the DOS window that pops up when you compile with BSTC whether there are code errors or not. The Propellent interface is quite nice and it will even give you syntax error feedback, but unfortunately Propellent does not work with the new Propbasic LMM command.
2) Because it uses command line compilers, you HAVE TO SAVE the program which you are working on BEFORE compiling to Spin.
I have attached the userDefineLang.xml file which contains all the syntax highlighting which I have set up. You can of course change if to your liking. On my Windows 7 OS the file is in:
C:\Users\"Your_User_Name"\AppData\Roaming\Notepad++\userDefineLang.xml ("Your_User_Name" is your Windows Logon User). If the file is not in this folder, it has probably been installed in the NotePad++ installation folder. If all else fails, just use Windows Search to find the file. Make sure that the "Show Hidden files, folders and drives" option is selected in the Folder Options View tab first.
Copy the new file into the folder where you found userDefineLang.xml. To change the Syntax Highlighting in Notepad++, got to View > User-Defined Dialogue and then on the pop-up screen, select PropBASIC from the drop-down list for "User language" at the top of the pop-up.
It is easy to change the shortcut keys for the command lines, but if you need to change the path to the folder were your compiler is stored, the easiest is to edit the shortcuts.xml file directly in Notepad++ :-). The shortcuts.xml file is in the same folder as the userDefineLang.xml file. In fact all the setup files are in the same folder, which makes it really easy to make a backup of your Notepad++ settings.
Apart from syntax colouring, Norepad++ has a number of nice features like Block Comment/Un-comment, Auto-complete, Tab settings, options for showing "connecting lines" for indented code with .e.g. FOR..NEXT, configurable colour selection for the line of code where the cursor is as well as for selected code, and, something which I find extremely useful: If you double-click on a word in a program, NotePad++ highlights all occurrences of that word throughout the program - no more Find Next :-)
I have also attached a screen snip of what a PropBasic program looks like in Notepadd+ as I have set it up.
All the attachments are in a .zip file.
I hope this is helpful to someone.
Regards
Andre
PS. I am still using PropBasic-bst.exe Version 1.12 because it works fine for my requirements - PropBasic-bst.exe Version 1.14 had something that sometimes made the compiler hang for a VERY long time and it also did funny things with indexes in programs that were written in version 1.12. And at least I can still use Brad's Spin Tool for syntax checking - I have no interest in switching to ViewPort at this stage.
Another PS. NotePad++ does not have a built-in Serial Terninal, but you can of course create a Run command to open the Parallax Serial Terminal.
I had a quick look at the Geany web page, but I cannot comment on using it, but just for interest, have a look at my post on using NotePad++.
Regards
Andre
PS. Can you perhaps post a list of the changes/fixes from, say PropBasic-bst.exe Version 1.12 up to PropBasic Version 1.3? It would be really useful to see what has all changed in one list, rather than trying to pick up the changes from all the posts in the forum.
Concerning the lack of a decent IDE for PropBASIC (no offense intended, Brad and Hanno), I use NOTEPAD++ version 6.1.8 and it works like a charm. Admittedly it is not an IDE, but it is a very nice editor and it is FREE. To my mind the extra 2 key presses required to compile and load the code to the Propeller, but having an excellent editor outweighs the allure of an IDE with a not-so-nice editor. Especially since I spend most of my time coding and not compiling.
I rarely use the editor that comes with an IDE; few are any good, and it's just one more thing to keep track of if you already have an editor that you're familiar and happy with. There are many great code editors to choose from, something for everyone: Vim, Emacs, Geany, Notepad++, Sublime Text, jEdit, SlickEdit (pricey but wonderful)... and more. Most of the really good editors can be tweaked easily enough into a de facto IDE (Emacs in particular). Better, I think, for IDEs to provide seamless support for external editors, unless they are to have an editor of comparable quality built in (which I've only rarely seen).
=========================================================================
PropBasic.EXE "C:\SOURCECODE\TEST.pbas"
Switches:
/Q = Quiet (No screen output)
/P = Pause on warning or error (used to debug compiler)
/E = Pause on exit
/B = Brief output (does not show source code)
/O = "Output_Directory" Specifies a diffrent directory for output files
/V = Returns Version number as exit code (exit immediately)
/NS = No Code (Does NOT include the BASIC code in the output file)
/VP = Compiling for ViewPort
Version 00.01.00
Fixed: Compiler crash on COGSTART if task name has not been defined
Fixed: Calculated constant using a long constant
mSec = _Freq / 1000
value1 CON 10_000
value2 CON value1 / 10
----------------------------------------------------------------------------
Version 00.01.01
Fixed: COGSTART doesn't add "par" to __temp1
Fixed: / doesn't error if first parameter is invalid
Fixed: minWaitCnt in tasks was 128 instead of 80
Fixed: str = str + longvar
Fixed: str = "" ' comment
----------------------------------------------------------------------------
Version 00.01.02
Fixed: test $,#1 WC ' Set Carry (doesn't work in LMM) I2CWrite
Fixed: COGINIT if taskname doesn't exist crashes
Fixed: Glitch on PinGroup = PinGroup
Fixed: IF pinName THEN
Changed: In LMM use "LONG label * 4" instead of "LONG @label - @__Init"
Changed: Use relative jumps for LMM
SUB __PC,#(($-label)*4)+4 ' Jump backward
ADD __PC,#((label-$)*4)-4 ' Jump forward
----------------------------------------------------------------------------
Version 00.01.03
Fixed: RDWORD buffer($1C0), temp
Fixed: name HUB STRING(10) = "Hello"
Fixed: trailing "," in data causes offset in next data label (counts it as element).
Now causes a syntax error.
Fixed: PULSIN hangs with RCSLOW
----------------------------------------------------------------------------
Version 00.01.04
Fixed: INC, DEC where second parameter is an array with a variable index
Added: I2CSpeed multiplier. "I2CSpeed 2" is double speed, "I2CSpeed 0.5" is half speed.
----------------------------------------------------------------------------
Version 00.01.05
Added: Allows embedded escape sequences in strings.
\r = 13
\n = 10
\\ = 92
\" = 34
\123 = 123 [must use 3 digits, so 16 would be \016 ]
\x20 = $20 [must use 2 characters, so $A would be \x0A ]
----------------------------------------------------------------------------
Version 00.01.06
Added:
"CLKSET mode,freq" command
Fixed:
Allow more nested IF...ELSEIF loops, increased c_iMaxLoops from 127 to 1024
LET pingroup= doesn't do "shl __temp1,#0" if pingroup starts at 0
HIGH,LOW,TOGGLE,INPUT,OUTPUT,REVERSE if pin # is a constant < 9 then do shift as literal
Allow I2C pins to be variables
Removed:
Copyright notice
----------------------------------------------------------------------------
Version 00.01.07
Changed LMM to use @@@ (still need offset for start address)
----------------------------------------------------------------------------
Version 00.01.08
Fixed data offsets (all messed up) from allowing embedded escape sequences
Fixed @@@ issues in _LETLong and _LetStr
----------------------------------------------------------------------------
Version 00.01.09
Fixed: I2CSTART with pins as variables
----------------------------------------------------------------------------
Version 00.01.10
Fixed: SHIFTIN - REV was using bits instead of (32-bits)
Fixed: SHIFTIN and SHIFTOUT when using a variable for 2nd parameter
----------------------------------------------------------------------------
Version 00.01.11
Fixed: ON var GOSUB label0, label1, label2
Fixed: Allow constant with COGSTOP
Fixed: Embedded escape sequences "\"
----------------------------------------------------------------------------
Version 00.01.12
Changed: Create a return stack for LMM
this will save 1 instruction for every subroutine call
and 1 long from every subroutine
Optimized: SERIN use "waitpne" and "waitpeq" to wait for state (saves 2)
use "muxz" or "muxnz" to set/clear data bits (saves 1)
use data variable to do bit count (1 shifts out) (saves 1)
----------------------------------------------------------------------------
Version 00.01.13
Optimized: WRLONG, WRWORD, WRBYTE (don't reload short constants)
Added: "STACK value" to change stack size (defaults to 16) (4 to 255 allowed)
NOTE: STACK only affects LMM code
Fixed: pin = var (didn't set zero flag)
Fixed: array(pos) = array(pos) + array(pos2)
----------------------------------------------------------------------------
Version 00.01.14
Fixed: Using long constant in LDATA Jul 26, 2011
----------------------------------------------------------------------------
Version 00.01.15 - 00.01.18
Fixed: multiply gets hung-up Sept 21, 2011
Add support for ViewPort
Added: WATCH VarName
Added: UNWATCH LongVarName turns off watching
----------------------------------------------------------------------------
Version 00.01.19
Fixed WATCH order for arrays
Allow multiple parameters for WATCH and UNWATCH
Allow WATCH and UNWATCH without any parameters for ALL
Allow Viewport modifiers as WATCH varname "modifier"
Example: WATCH time "unit=msec"
* Modifier must be used at first WATCH
----------------------------------------------------------------------------
Version 00.01.20
Fixed: remove WATCH modifier strings from HUB DATA
Fixed: Multiply (2 bits)
Added: Viewport Video support
Fixed: Fix pinvar1 = ~pinvar2
----------------------------------------------------------------------------
Version 00.01.26
FIXED: WDATA and LDATA (no data generated)
Version 00.01.27
ADDED: __txtermAdr to support viewport terminal
Version 00.01.28
Added: Support floating point values with # prefix
Fixed: FREQ command caused abort if DEVICE is misspelled
Fixed: Allow constant with COGSTOP (was NOT fixed in 1.11)
Fixed: tempStr = STR temp (needs ",len" but causes abort) [Oct 10,2012]
Version 00.01.29
Fixed: PAUSE XXXX does not cause an error
Version 00.01.30
Added: Directive VIEWPORT defined if using viewport
NEED TO FIX: DO...LOOP x => y ' should be >= but no error
Thanks Mickster for the nice illustration
I'm a big fan of Notepad++ for editing text.
ViewPort makes it really easy to use a 3rd party text editor. Just open the file in ViewPort AND in your other editor. Use ViewPort to run/debug your file and your editor to edit the code. ViewPort will recognize when you've made external changes and will prompt you to "Do you want to reload the file" when you switch to the ViewPort window.
H
ViewPort makes it really easy to use a 3rd party text editor. Just open the file in ViewPort AND in your other editor. Use ViewPort to run/debug your file and your editor to edit the code. ViewPort will recognize when you've made external changes and will prompt you to "Do you want to reload the file" when you switch to the ViewPort window.
H
That's all you need! Every IDE should do this (fortunately, most do).
Just so everyone knows, the latest version for BST is 1.14 and there is a problem in the multiplication routine.
If you multiply by a constant other than a power of 2 (2, 4, 8, 16, etc) the compiler will stop for awhile (5 seconds or so) at EVERY multiply before continuing.
Thanks Mickster for the nice illustration
I'm a big fan of Notepad++ for editing text.
ViewPort makes it really easy to use a 3rd party text editor. Just open the file in ViewPort AND in your other editor. Use ViewPort to run/debug your file and your editor to edit the code. ViewPort will recognize when you've made external changes and will prompt you to "Do you want to reload the file" when you switch to the ViewPort window.
H
Hi Nanno,
I installed ViewPort a number of months ago (cannot remember what the version was back then). but I couldn't get it to work properly with PropBasic, so I uninstalled ViewPort. Today I downloaded ViewPort v4.7.8 and installed it, but it says that my free evaluation period has expired. I uninstalled it, ran CCleaner and manually cleaned all remaining ViewPort files and folders that I could find. I then ran RegEdit and removed all ViewPort entries that I could find. Restarted the PC, re-installed ViewPort, same problem. It still finds something somewhere that says I have already installed it.
Is there a way that I can get a trial period again so that I can see what the latest version of ViewPort and PropBasic looks like?
I installed ViewPort a number of months ago (cannot remember what the version was back then). but I couldn't get it to work properly with PropBasic, so I uninstalled ViewPort. Today I downloaded ViewPort v4.7.8 and installed it, but it says that my free evaluation period has expired. I uninstalled it, ran CCleaner and manually cleaned all remaining ViewPort files and folders that I could find. I then ran RegEdit and removed all ViewPort entries that I could find. Restarted the PC, re-installed ViewPort, same problem. It still finds something somewhere that says I have already installed it.
Is there a way that I can get a trial period again so that I can see what the latest version of ViewPort and PropBasic looks like?
Regards
Andre.
Hi Andre,
I've sent you a temporary key. I apologize for having to use license keys- but this is how I feed my family.
Bean- sorry to hijack your thread
Hanno
Can anybody please tell me how to tell PropBasic that a number with a "1" in Bit 31 is not a signed number, but to treat it as an Unsigned or a positive number? I am ending up with some very large numbers for FRQx in calculations for using the Propeller Counters in Duty mode and I am getting negative answers because Bit 31 is a "1".
According to the Propeller manual (and some threads which I come across), it is possible to do unsigned calculations in PASM, but I am afraid my knowledge of Assembler is no where near the level required to do this.
I am using COUNTERA in single-ended Duty mode and I have to set FRQA to some large values, e.g. FRQA = 4080218932. If you assign 4080218932 to a Variable, the number is treated as -214748364 (negative 21474836). I have found that if you declare the numbers as Constants and let FRQA = a Constant, it works fine, but, ideally, it would be better if I could calculate the FRQA values as required in the program instead of trying to look up a value from a long list of Constants.
The problem is that I have to fade the LEDs, i.e. assign a range of constants to FRQA one by one in a LOOP. With a list of Variables I can just use an Index, e.g.
a var long = 1
b var long = 2
c var long = 3
Counter = a(2)
and Counter will = 3 (i.e. Counter = c)
I tried doing the same with Constants, e.g.
a con 1
b con 2
c con 3
FRQA= a(2)
but the compiler does not like this. Now I am stuck :-(. It looks like I am going to have to do some unsigned Assembly math. Any ideas?
The magic words are: "If you are just assigning the values to FRQA then it doesn't matter if they are negative or not."
I never thought of actually assigning the negative numbers to FREQA to see what would happen - I was only looking at the results of the calculations (DEBUGing the results) to see if they matched my spreadsheet calculations, and I just assumed that the negative numbers would not work.
HUB vars and DATA can be declared in TASKS. This should not cause any problems.
You can also use LOAD to access commonly used subroutines. If you enclose each subroutine with a '{$IFUSED name} ... {'ENDIF} pair unused subroutines will be stripped and will not take any code space. Note that the LOAD must come at the end of the program so the compiler knows what subroutines were called, and which were not.
Bean
Hi Bean, may I ask some help from your "insider knowledge" ?
Library loading into the main cog... works great
Library loading into tasks... is that supposed to work?
So far I tried and failed with many combinations of load/include both top and bottom of the task code, and adding/removing $CODE and $TASK tags... test code included.
Depending on position of LOAD in the task, error on compile is either Problem parsing PropBasic or Unknown symbol DELAY_MS_ret
Thank you !
DEVICE P8X32A, XTAL1, PLL16X
XIN 5_000_000
LOAD "lib_delays.pbas"
LED1 PIN 1 LOW
TASK_BLINKLED TASK AUTO
PROGRAM Start
Start:
DO
TOGGLE LED1
DELAY_MS 1000
LOOP
END
TASK TASK_BLINKLED
LED2 PIN 2 LOW
'LOAD "lib_delays.pbas"
DO
TOGGLE LED2
DELAY_MS 1000
LOOP
LOAD "lib_delays.pbas"
ENDTASK
Comments
Bean
I am trying to figure out where the Propbasicide program is located.
I must say I am a bit confused!!!!!
It was supported by BST, but required that I send the source to BradC for him to modify and create the executable files.
It is supported by Viewport, but it is not a free program.
I wrote a very simple IDE (PropBasicIDE), but it wasn't good at all.
It is a shame that the propeller IDE does not support external compilers. That would be perfect.
I have taken to using Geany for the editor. This is what I recommend. It's not perfect, but it works.
Unzip the files in the PropBasic.zip file to C:\PropBasic
After you install geany, do Build->Set Build Commands and set the execute command as shown in the picture (note the spaces).
I hope this helps, Let me know if you need any further info.
Bean
P.S. If anyone can tell me how to highlight keywords in geany, I appreciate it...
P.S.S. The zip file also contains the latest version of PropBasic 1.30
Did you check with Jazzed to see if SimpleIDE could be configured for PropBasic?
I had asked some time ago and he was too busy at the time to look into it.
I hate to pester people. If he reads this (or if anyone wants to bug him about it), I'd be willing to change whatever I can to make it work.
Bean
Hanno
This combo just doesn't get the support and exposure that it should!
Mickster
I have been following the development of ViewPort and PropBasic for ViewPort, but as far as I am concerned, it is not yet at a stage where I will seriously consider using it.
Concerning the lack of a decent IDE for PropBASIC (no offense intended, Brad and Hanno), I use NOTEPAD++ version 6.1.8 and it works like a charm. Admittedly it is not an IDE, but it is a very nice editor and it is FREE. To my mind the extra 2 key presses required to compile and load the code to the Propeller, but having an excellent editor outweighs the allure of an IDE with a not-so-nice editor. Especially since I spend most of my time coding and not compiling.
There is a newer version of Notepad++, but the syntax highlighting method has changed entirely and I just do not feel like re-doing all the syntax highlighting which I had already done for no apparent benefit, so I am still using version 6.1.8. The examples I have attached are for NotePad++ version 6.1.8.
After you have installed Notepad++, download the Explorer Plugin (Plugins > Plugin Manager > Show Plugin Manager . There are a LOT of plugins available, so just find Explorer in the list.
You can set up shortcuts for command line compile and load for both BSTC and Propellent (From PropBASIC Ver. 00.01.08 LMM jumps use @@@ which causes a Propellent compile error, but it works with Brad’s Spin Tool Compiler - just make sure that you have downloaded bstc-0.15.4-pre13.exe). I have attached a document on how to set up the command line shortcuts in Notepadd++.
The are only two bothersome issues with Notepad++
1) It can not do syntax checking - I still use Brad's Spin Tool for syntax checking. But after a while you can recognize from the DOS window that pops up when you compile with BSTC whether there are code errors or not. The Propellent interface is quite nice and it will even give you syntax error feedback, but unfortunately Propellent does not work with the new Propbasic LMM command.
2) Because it uses command line compilers, you HAVE TO SAVE the program which you are working on BEFORE compiling to Spin.
I have attached the userDefineLang.xml file which contains all the syntax highlighting which I have set up. You can of course change if to your liking. On my Windows 7 OS the file is in:
C:\Users\"Your_User_Name"\AppData\Roaming\Notepad++\userDefineLang.xml ("Your_User_Name" is your Windows Logon User). If the file is not in this folder, it has probably been installed in the NotePad++ installation folder. If all else fails, just use Windows Search to find the file. Make sure that the "Show Hidden files, folders and drives" option is selected in the Folder Options View tab first.
Copy the new file into the folder where you found userDefineLang.xml. To change the Syntax Highlighting in Notepad++, got to View > User-Defined Dialogue and then on the pop-up screen, select PropBASIC from the drop-down list for "User language" at the top of the pop-up.
It is easy to change the shortcut keys for the command lines, but if you need to change the path to the folder were your compiler is stored, the easiest is to edit the shortcuts.xml file directly in Notepad++ :-). The shortcuts.xml file is in the same folder as the userDefineLang.xml file. In fact all the setup files are in the same folder, which makes it really easy to make a backup of your Notepad++ settings.
Apart from syntax colouring, Norepad++ has a number of nice features like Block Comment/Un-comment, Auto-complete, Tab settings, options for showing "connecting lines" for indented code with .e.g. FOR..NEXT, configurable colour selection for the line of code where the cursor is as well as for selected code, and, something which I find extremely useful: If you double-click on a word in a program, NotePad++ highlights all occurrences of that word throughout the program - no more Find Next :-)
I have also attached a screen snip of what a PropBasic program looks like in Notepadd+ as I have set it up.
All the attachments are in a .zip file.
I hope this is helpful to someone.
Regards
Andre
PS. I am still using PropBasic-bst.exe Version 1.12 because it works fine for my requirements - PropBasic-bst.exe Version 1.14 had something that sometimes made the compiler hang for a VERY long time and it also did funny things with indexes in programs that were written in version 1.12. And at least I can still use Brad's Spin Tool for syntax checking - I have no interest in switching to ViewPort at this stage.
Another PS. NotePad++ does not have a built-in Serial Terninal, but you can of course create a Run command to open the Parallax Serial Terminal.
Here is a link to all the available plugins for NotePad++: http://sourceforge.net/projects/npp-plugins/files/?source=navbar
I had a quick look at the Geany web page, but I cannot comment on using it, but just for interest, have a look at my post on using NotePad++.
Regards
Andre
PS. Can you perhaps post a list of the changes/fixes from, say PropBasic-bst.exe Version 1.12 up to PropBasic Version 1.3? It would be really useful to see what has all changed in one list, rather than trying to pick up the changes from all the posts in the forum.
Here are my version notes:
Bean
I'm a big fan of Notepad++ for editing text.
ViewPort makes it really easy to use a 3rd party text editor. Just open the file in ViewPort AND in your other editor. Use ViewPort to run/debug your file and your editor to edit the code. ViewPort will recognize when you've made external changes and will prompt you to "Do you want to reload the file" when you switch to the ViewPort window.
H
Unfortunately none of SimpleIDE, Propeller Tool, or BST do this...
ViewPort is the only IDE that let's you use whichever editor you want...
Hanno
If you multiply by a constant other than a power of 2 (2, 4, 8, 16, etc) the compiler will stop for awhile (5 seconds or so) at EVERY multiply before continuing.
Bean
Hi Nanno,
I installed ViewPort a number of months ago (cannot remember what the version was back then). but I couldn't get it to work properly with PropBasic, so I uninstalled ViewPort. Today I downloaded ViewPort v4.7.8 and installed it, but it says that my free evaluation period has expired. I uninstalled it, ran CCleaner and manually cleaned all remaining ViewPort files and folders that I could find. I then ran RegEdit and removed all ViewPort entries that I could find. Restarted the PC, re-installed ViewPort, same problem. It still finds something somewhere that says I have already installed it.
Is there a way that I can get a trial period again so that I can see what the latest version of ViewPort and PropBasic looks like?
Regards
Andre.
Thanks for the version notes :-)
Is there a new syntax manual? The latest one I have been able to find is "PropBasic 00.01.14".
Regards
Andre
Hi Andre,
I've sent you a temporary key. I apologize for having to use license keys- but this is how I feed my family.
Bean- sorry to hijack your thread
Hanno
I know you are both very busy, so I just want to say: Thank you very much for taking time out to to help us with our queries. It is appreciated :-)
Regards
Andre
According to the Propeller manual (and some threads which I come across), it is possible to do unsigned calculations in PASM, but I am afraid my knowledge of Assembler is no where near the level required to do this.
Regards
Andre
Can you just shift it 1 bit to the right (making it 1/2 of it's original value). Then it will always be positive.
temp = FRQA
temp = temp SHR 1
Otherwise, can you show what operations you are doing with the value ?
Bean
Thanks for the quick reply.
I am using COUNTERA in single-ended Duty mode and I have to set FRQA to some large values, e.g. FRQA = 4080218932. If you assign 4080218932 to a Variable, the number is treated as -214748364 (negative 21474836). I have found that if you declare the numbers as Constants and let FRQA = a Constant, it works fine, but, ideally, it would be better if I could calculate the FRQA values as required in the program instead of trying to look up a value from a long list of Constants.
The problem is that I have to fade the LEDs, i.e. assign a range of constants to FRQA one by one in a LOOP. With a list of Variables I can just use an Index, e.g.
a var long = 1
b var long = 2
c var long = 3
Counter = a(2)
and Counter will = 3 (i.e. Counter = c)
I tried doing the same with Constants, e.g.
a con 1
b con 2
c con 3
FRQA= a(2)
but the compiler does not like this. Now I am stuck :-(. It looks like I am going to have to do some unsigned Assembly math. Any ideas?
Regards
Andre
Can you post the actual code you are working on ?
Bean
The magic words are: "If you are just assigning the values to FRQA then it doesn't matter if they are negative or not."
I never thought of actually assigning the negative numbers to FREQA to see what would happen - I was only looking at the results of the calculations (DEBUGing the results) to see if they matched my spreadsheet calculations, and I just assumed that the negative numbers would not work.
Thanks, it works just fine.
Andre
Hi Bean, may I ask some help from your "insider knowledge" ?
Library loading into the main cog... works great
Library loading into tasks... is that supposed to work?
So far I tried and failed with many combinations of load/include both top and bottom of the task code, and adding/removing $CODE and $TASK tags... test code included.
Depending on position of LOAD in the task, error on compile is either Problem parsing PropBasic or Unknown symbol DELAY_MS_ret
Thank you !