Programming Editor Wishlist

Svejk

Senior Member
"Dockable" windows for simulation, serial ouput buffer, memory listing, eeprom content etc. would be nice to have. A proper list of variables used and available (b0 to bxx; bptr and ptr) would make life easier for larger solutions. Also the last compiled size displayed, maybe in status bar.

I think save before compiling is a good option to have. And, yes, include files (*.inc).
 

inglewoodpete

Senior Member
Select a line of code with a single click

I'd like to be able to select a line by clicking in the white space next to the left editor margin.

A small point, but I use several editors in my day job that have this feature and it is so annoying to have to click-and-drag to select a line of code in the PE.
 

srnet

Senior Member
Big buttons linking direct to the manuals.

From the number of questions you see on the forums, that are answered just by looking in the manuals, it may not be obvious that they are to be found under \help
 

AndyGadget

Senior Member
Has anyone mentioned automatic indenting yet?
Probably annoying to use 'on the fly', but how about the 'Syntax Check' function also having the option to automatically indent loops, subroutines etc.

Andy.
 
Last edited:

SD2100

New Member
Big buttons linking direct to the manuals.

From the number of questions you see on the forums, that are answered just by looking in the manuals, it may not be obvious that they are to be found under \help
Need whole new help system, nothing worse than having to go look through numerous PDF files for info on something. Should be able to type the command then
put the cursor on it then hit the help button, this would bring up the command info from manual 2, if is was for say the servo then it would also show the the servo
connections from manual 3 and if the program being written had the #Picaxe directive then the help could also display which pins the servo could be used on for
that part.
 

jfh!

New Member
There are several features that could be 'borrowed" from 'Programmer's Notepad (www.pnotepad.org); my favourite two are the automatic marking of programming blocks and the automatic highlight of every instance of any selected word. See example screenshot.pn.jpg

Oh yes, and the ability to change the default font!
 

geoff07

Senior Member
1) save an automatic copy of the source file at the time of download, with a date and time stamp in the name (much like my vbs app discussed in the forum, but automatic)
2) highlight unreferenced and overlaid variables in explorer
3) provide a program and chip-specific storage map indicating what has been used or not used (as a report to view and print)
4) use ini files or the registry (ugh) to set things like explorer width (as Axepad), font (inc fixed width) etc
5) allow the definition of functions in Picaxe Basic and their use in if, select, while/until etc.
6) allow continuation lines instead of long lines e.g. signalled by a '_' at the end as in vbs
7) use do/loop instead of main:/goto main in documentation examples (teaches bad practice to beginners)
8) make a kindle format pdf of the manuals esp manual 2 (mostly a page size thing, less white space, and some tabulation issues in the examples)
9) implement the include function at last!
10) create some time constants for use with pause that automatically allow for the clock speed e.g. pause C_100mS so they don't have to be calculated according to the setfreq setting.
11) string variables, with the content stored in the ram area not used for variables, and only a single byte in the variable area to reference the string.
12) built-in TRUE and FALSE constants

Not in any order, apologies for repeating any ideas already proposed. It is a long list but not meant to suggest what we already have isn't very nice!

Not to mention negative numbers, FP, etc which presumably will await a next generation chip.
 

Hendriks

Member
No ok button to click after uploading would also be a little friendlier.
With all respect to a great piece of software, of course.
 

ValueAdd

Senior Member
I meant the ability to load all the slots into PE and simulate the whole program including the jump between slots.
Could that be extended to slots in an external EEPROM?
External EEPROMs are already emulated for i2c read and write functions.

Also return of the still popular but recently deleted option for 24LC256 EEPROM for simulation. The 24LC256 has a 64 byte page buffer whereas the 24LC512 has a 128 byte page buffer. Maybe even allow multiple EEPROMs in simulation as for the AXE110 datalogger.

Since we have DS1307 and EEPROM could the popular DS18B20 temp sensor be considered? Maybe with the ability to set a temp in the same manner as for an ADC channel.
 

SAborn

Senior Member
No ok button to click after uploading would also be a little friendlier.
With all respect to a great piece of software, of course.
Do you realize pressing the space bar will do the same as clicking ok.

Its what i use when doing repeditive chip loadings F5, space bar, F5, space bar, ..........perhaps that might explain my comment earlier to not changing the F5 function.
 

srnet

Senior Member
I use the serial terminal a lot, often for debugging.

The serial terminal in the PE is dire, why it uses a variable width font I cant imagine, you cant format screen output to make it semi readable. Standard control characters dont seem to work either.

Putty (free) and is heaps and heaps better, allows for decent logging etc. If the Terminal program is terminal, why not provide the option to start up another program such as Putty ?
 

julio_gyn

New Member
I am newbie, but I think the software is a masterpiece. I don't have any suggestions for any change, but I use Pascal (Freepascal, turbo pascal, delphi) and if it in a future you could add a second language I will be at "home" :)

julio cesar
 

nick12ab

Senior Member
Its what i use when doing repeditive chip loadings F5, space bar, F5, space bar, ..........perhaps that might explain my comment earlier to not changing the F5 function.
You could use a batch file executing the command line compiler in a loop instead of this. Optionally, you could also put a press any key to continue thing in between each download so you only have to press one key.
 

geoff07

Senior Member
mass production script

Here is a vbs script that uses the command line compiler, selected by filename if present, and downloads. Add a do loop and you can repeat it as much as you want with one keypress. VBS is a horrible language but it is simple enough to edit. There is a lot on the web about how to do things. You just have to realise that objects have to be instantiated before you can use them, and actions are done by the objects methods. It is designed to be called as a context menu in xp but you can use it in other ways. It isn't perfect but it works. There is a thread about this somewhere. You might not need all the copy files it creates.

Code:
option explicit 
'============================== 
'declare constants 
const compiler_folder = "c:\Picaxe_compilers\" 'needs a location with no spaces in name 
const com_port = 4 
const list_of_valid_chips="08_08m_08m2_14m_14m2_18_18a_18m_18m2_18x_20m_20m2_20x2_28_28a_28x1_28x2" 
'============================== 
'declare variables 
dim argument            'calling arguments 
dim source_file        'Name of program file 
dim source_file_copy    'Name of program file copoy 
dim error_file          'name of error file created this run 
dim strFileProperties   'properties of file to test size 
dim fso         'filesystem Object 
dim fo             'file Object 
dim chip_id        'Picaxe chip type 
dim Wshshell        'Shell Object 
dim OBJfso              'file system object 
dim Retval              'return code  
dim Id_result           'return code from chip name test 
dim cmd_run_parm        'parameter for cmd call to compiler 
dim date_f, date_h    'storage for date format 
dim time_f        'storage for time format 
'============================== 
'check for proper call environment 
      set argument = wscript.arguments  'argument übernehmen 
      if argument.count = 0 then        'Script not started from ther context menu 
         msgbox "No argument received, aborting", vbcritical, "PICAXE-Download" 
         wscript.quit 
      end if 
      source_file = argument(0)     'source_file name 
'==============================     
'set up the date and time string 
      date_h = date() 
      date_f = right(date_h,4) & "_" & mid(date_h,4,2) & "_" & left(date_h,2) 
      time_f = time() 
      time_f = replace(time_f,":","_") 
      'msgbox now 
'============================== 
'create the new filename 
      source_file_copy = replace(source_file,".bas","_Downloaded_" & date_f & "_" & time_f & ".bas") 
      error_file = replace(source_file,".bas","_Downloaded_" & date_f & "_" & time_f & ".err") 
'============================== 
'see if chip id is name prefix 
      'first lose the folder prefix 
      chip_id = right(source_file_copy,len(source_file_copy)-InStrRev(source_file_copy,"\")) 
      'msgbox "chip= "&chip_id 
      'then extract the chip 
      chip_id = left(chip_id,InStr(1,chip_id,"_")-1) 
      'msgbox "chip= "&chip_id 
      'check is valid 
      id_result = InStr(1,list_of_valid_chips,chip_id) 
'============================== 
'create copy file 
      set fso = CreateObject("Scripting.FileSystemObject") 
                                           'instantiate file system object 
      set fo = fso.GetFile(source_file)       'instantiate file object 
      fo.Copy source_file_copy           'make a copy of the file 
'============================== 
'identify the chip 
      'while id_result = 0 do 'this loop isn't implemented yet so must enter a valid name
         if id_result = 0 then 'chip_id wasn't a prefix to the file name 
            chip_id = inputbox("Using COM: "&com_port&chr(13)&chr(10)&"Enter Chip Type:"&chr(13)&chr(10)&"(e.g.28x2, x/m:lower case, for 40 use 28)") 
         end if 
         id_result = InStr(1,list_of_valid_chips,chip_id) 
      'end do 
      set wshshell = Wscript.CreateObject ("Wscript.Shell") 
'============================== 
'delete old err files if any 
      retval=WshShell.run("cmd.exe /c del /q *.err",7,True) '7=silent 
      'msgbox "RetVal="&retval         
'==============================  
'construct the compile command 
      cmd_run_parm = "cmd.exe /k " _ 
               & "c:\Picaxe_compilers\picaxe" _ 
               & chip_id _ 
               & ".exe" _ 
               & " -cCOM" _  
               & com_port _ 
               & " " _ 
               & chr(34) _ 
               & source_file_copy _  
               & chr(34)  
'==============================  
'perform the compilation 
      retval=WshShell.run(cmd_run_parm,1,True)      'compile via cmd.exe 
      'msgbox "RetVal="&retval 
'==============================  
'delete .bas file if error file size > 0 i.e. did not download 
'or delete error file if no error 
      set fo = fso.GetFile(error_file)       'Instanz von Fileobjekt einrichten 
      if fo.size > 0 then 
         'error so delete .bas file 
         retval=WshShell.run("cmd.exe /c del /q "&chr(34)&source_file_copy&chr(34),7,True) '7=silent 
         'msgbox "del bas file= "&source_file_copy       
      else 
         'no error so del error file 
         retval=WshShell.run("cmd.exe /c del /q "&chr(34)&error_file&chr(34),7,True)  
         'msgbox "del err file= "&error_file 
      end if 
'==============================  
'clean up 
      wscript.quit    'clean up and exit
 

Haku

Senior Member
Error window too small.

Quick example of what I see when I get an error:


You can press the space bar to close the window but you don't get to read all of the report, if you accidentally click the report text you get a blinking cursor and then can't press the space bar to close the window. It sorely needs updating.

In fact, I would like an option to lose the popup windows that tell you "it programmed ok" or "it passed syntax ok" or "syntax error" and have a notification bar in the top of the PE screen that reports if the operation went ok or failed, so you don't have to acknowledge the information presented to you by pressing a button meaning dealing with the resulting situation is more streamlined (fixing the error or continung to test new code etc. etc.)
 

tarzan

Senior Member
Firstly a gripe about image and perception. The image is the one of children toys each time I download a Picaxe .bas file to a microcontroller. The perception is that I’m playing with a toy. How can I be taken seriously if anyone is looking over my shoulder as this even takes place? My wish is not to display this image just a progress bar will do.

A better serial terminal would be nice.
Simulation of CGRAM characters on LCD.
Simulation of Hserin.
Colour syntax has same features as RTF mode.
Mathematical brackets.
Upper case #ENDREM.

Keep up the good work.
 

SAborn

Senior Member
Firstly a gripe about image and perception. The image is the one of children toys each time I download a Picaxe .bas file to a microcontroller. The perception is that I’m playing with a toy.
Yes i agree the image is a bit childish, and would rather see a nice circuit board design or something of a more neutral design to all, even no image would be better than the present one.

If the image was changed with version upgrades it would also help indicate what version was in use.
 

inglewoodpete

Senior Member
The serial terminal in the PE is dire, why it uses a variable width font I cant imagine, you cant format screen output to make it semi readable. Standard control characters dont seem to work either.

Putty (free) and is heaps and heaps better, allows for decent logging etc. If the Terminal program is terminal, why not provide the option to start up another program such as Putty ?
I have to agree that the PE Terminal is in need of updating. Fixed-width font is badly needed: perhaps have the chosen font stored in registry, along with other preferences. Also, optional basic ANSI formatting.

Using an external terminal program bring up all sorts of problems with serial port management. Can putty be driven from another program?
 

SAborn

Senior Member
@Haku

Spot on mate! that looks good to me, perhaps you should forward the image to Technical to save them the work.

It could also serve as advertising for any new chip releases.
 

MartinM57

Moderator
...In fact, I would like an option to lose the popup windows that tell you "it programmed ok" or "it passed syntax ok" or "syntax error" and have a notification bar in the top of the PE screen that reports if the operation went ok or failed, so you don't have to acknowledge the information presented to you by pressing a button meaning dealing with the resulting situation is more streamlined (fixing the error or continung to test new code etc. etc.)
I like that idea a lot....but maybe all these popup windows are better for 10 year olds (or even adults) just learning...so a Basic/Advanced option so the user chooses.
 

inglewoodpete

Senior Member
Another thought: When the mouse cursor is "floated" over a defined symbol, can a temporary popup show its defined value?

Refer to attatched example mocked up using VBA.

Float2.png
 

srnet

Senior Member
Using an external terminal program bring up all sorts of problems with serial port management
Of course, along the lines of 'My really cheap USB programming lead' does not work.

Not sure if it can be driven from withing a program. You would think that there is a module out there that could be used in this wauy.
 

srnet

Senior Member
In fact, I would like an option to lose the popup windows that tell you "it programmed ok" or "it passed syntax ok" or "syntax error"
And an option that says "it programmed OK, but the program has a bug'
 

inglewoodpete

Senior Member
And another (they're coming thick and fast: I'm debugging/developing a monster 40X2 program at the moment!)

Can the "Find" dialogue box have a dropdown "combo" box that remembers the last few search strings, rather than a simple text box?
 

nick12ab

Senior Member
Regarding terminals, there's this one called AiTerm which (see this thread) apparently is Hippy's although the PDF included with the program says it's AiChip's. The source code is included with the application anyway. If they are both programmed in the same programming language, then could you just copy-and-paste the code into Programming Editor's code or use it for er... inspiration?
 

Dippy

Moderator
I have a suggestion but the thread is so long that my coffee will get cold trying to read through that lot.
Can we pollify?

Error reporting format has been mentioned.
It would be nice, where possible, for the PE to report all the errors rather than one at a time.
Other compilers have a separate window at the bottom of the page listing ALL the cockups and you simply click on the error listing reference and the IDE goes to the line in code.


Also, a minor PE bugette to report.
Example:
Open a basic file.
Do a Typo.
Do an Undo (or Ctrl+Z)
Do an Undo again .... and the file usually disappears.
OK, you can get it back again but it would be nice if it knew where to stop.;)
 

Jamster

Senior Member
Fix the open samples link! Every time I click on it it does exactly the same as open and takes me to my usual place, so after browsing to the samples folder I then hit open and it takes me to the samples folder...
 

russbow

Senior Member
I find it frustrating that having invoked

#terminal4800

in one program, the terminal window opens for all subsequent programs.

P.I.T.A to go into options and un-check the relevant box
 

Technical

Technical Support
Staff member
Thanks for all the suggestions and feedback, we're pleased to say most of these are already covered in PE6 - more information soon.

russbow - #terminal off
 

Haku

Senior Member
Regarding the idea of a status bar instead of popup windows to show a process was successfully or failed to test/upload, I mean a scrollable window (possibly dockable) which shows date/time/action performed/result when you go into 'advanced' mode so the current popup window system is defaulted for people starting out - I found the PE very easy to use from the start but now I'd like a little less 'hand holding'.


One very helpful additional window I'd like to see is one that can show a chip pinout, it's not always easy to remember what port.pin relates to what pin on a Picaxe and what functions that pin is capable of, and other ICs, so being able to easily see the correlation would mean not having to flip to the PDF manual every time.

ie:







If it could be made so users can make their own pinouts then we could build a whole library of IC pinouts for everyone to use. Say editable with a text editor; giving the name of the IC, the type (SMD,DIP etc.), how many pins and what each pin does. With the PE having the basic set of Picaxe pinouts and the ability to download new ones from a depository when needed.
 

Dippy

Moderator
That's a neat idea and would also be useful to confirm your PE is current wrt the latest PICAXEs. Nice.

Yes, i agree with a variable 'Nanny Level' too. It's a pity Microschlom don't take notice....
 

Buzby

Senior Member
Another simulator feature, Overflow/Underflow warning.

This is a status flag which is Set whenever a maths function causes an Over or Underflow.
The flag is displayed on the Simulator screen. It remains Set until manually reset.
It acts as a warning that something has rolled-over.
The Simulator can then run again with 'Break when Overflowflag Set', which then pinpoints where the overflow occurs.

[ Even nicer would be an Overflow flag in the firmware, making extended counters and multi-word maths easier.
But that is request to go in a different thread, along with brackets and floating points. ]
 

SgtB

Member
If I think what you mean, then it does it already.

Just click the pin ( B.0, B.1 etc. ) on the simulator representation of the PICAXE pinout.
It will turn yellow to indicate the pin is now High.
Thanks! I feel silly for not seeing that.

Edit: I just looked, and I think I was thinking of some other software. The PE simulation UI is obvious and well laid out.
 

Haku

Senior Member
Further to the pinouts window idea, I think an extra section would be needed as quick notes about the IC in question, voltage range, current range etc., eg:





Another thing I remembered about the PE I would like to see fixed is the 'limbo zone' at the very end of the code. If you press & hold the down arrow on your keyboard to get to the bottom of the code, then press and hold left arrow the cursor goes into a 'limbo zone' at the right end of the bottom line where nothing appears when you type, you have to press the up arrow or press & hold the left arrow or click with the mouse in the coding window to restore the cursor back to working operation.
 
Top