![]() |
Forum Index : Microcontroller and PC projects : Micromite MMBasic V5.2 Beta 2
Page 1 of 2 ![]() ![]() |
|||||
Author | Message | ||||
Geoffg![]() Guru ![]() Joined: 06/06/2011 Location: AustraliaPosts: 3282 |
I have posted an update on the latest Micromite test version (V5.2 Beta 2) which can be downloaded from: http://geoffg.net/Downloads/Micromite/Micromite_5.2_Beta_2.zip This fixes all bugs reported in the previous version and adds the ability to specify typed CFunction parameters. These make it easier for CFunction writers to ensure that any passed parameters will be correct. It also allows CFunctions to return strings and floats as well as integers. If you are interested in the details look to the last section in this document: Embedded C Modules\Creating Modules\C Routines.pdf I know that I said this before but I believe that this is very close to the final V5.2 version which I plan to release in a week or two. As before, please report any bugs. Thanks. Geoff Geoff Graham - http://geoffg.net |
||||
robert.rozee Guru ![]() Joined: 31/12/2012 Location: New ZealandPosts: 2430 |
not quite so quick young geoff! one of the editor bugs is still present. follow the following recipe to reveal it: 1. create a program containing the line numbers 1 up to 30, with no other content. after typing in the last line number ("30"), do NOT press return, do NOT press the space bar. instead, with the flashing cursor still sitting hard to the right of the '0' of "30" press f2 to save and run. the message "Saved 123 bytes" will be displayed. 2. next type in 'edit' to return to the editor. the cursor will be sitting at the end of the last line, exactly where it was before you saved and exited. now... 3. press the up arrow key until the cursor is at the top line of the program (line 1), 4. press the left arrow key until the cursor is over the '1' of the first line, 5. press f4 to mark, 6. press the right arrow key until the cursor will move no further to the right, 7. press f4 to cut, 8. press the down arrow key and observe the cursor move down the listing until it reaches line 29, then instead of moving down one more line it will skip to the end of the status line. note: the program you saved at step 1. is 'slightly wonky'. if you were to add a space character after the "30", then the same length (123 bytes) would be saved, but the odd behaviour later on would not occur. having the cursor sitting hard at the end of the last line of the program seems to trigger things. cheers, rob :-) |
||||
Geoffg![]() Guru ![]() Joined: 06/06/2011 Location: AustraliaPosts: 3282 |
Good grief !!! Geoff Graham - http://geoffg.net |
||||
robert.rozee Guru ![]() Joined: 31/12/2012 Location: New ZealandPosts: 2430 |
![]() ![]() ![]() it might appear obscure, but is actually quite easy to trigger by accident. just type in a relatively long program (more than a page), hit f2 to save and run with the cursor sitting at the end of the last line, then go back into the editor and start cutting and pasting. things can quite quickly go to custard. cheers, rob :-) |
||||
WhiteWizzard Guru ![]() Joined: 05/04/2013 Location: United KingdomPosts: 2932 |
Enough detail there for you Geoff? ![]() Joking aside - it is very useful to have such 'steps' to follow - great job Rob. @ALL: One thing possibly that will prove useful for Geoff when he is 'debugging' is to send him the output of OPTIONS LIST when you initially report an 'issue'. This may help highlight where the 'issue' is when he is fault-finding. ![]() Thanks for this latest update Geoff. |
||||
Phil23 Guru ![]() Joined: 27/03/2016 Location: AustraliaPosts: 1667 |
Hi Geoff, Can I make a suggestion for pages 11 & 14 of the Micromite Plus Addendum Manual. It might sound a bit silly to the seasoned users, but I think it has merit for users starting out. I know the situation with the Display connections where the pins are configurable, but it would probably help new users for have a suggested pin for each of these configurable connections when starting out. It might also save them a little grief down the track, should they choose a pin that may be required for other purposes. I'd presume someone starting would be connecting a Explorer 64 or a SnadPic with a piece of ribbon cable. Experienced users will probably pluck it off the top of there head as to which pins to use. New comers will wonder where to start. They might randomly choose say a pin required for an RTC at a later point for example. By the time they have gained a little experience & understanding, they could then make alternate choices for configurable pins. Personally experienced a similar situation myself when I decided to play with an HD44780 LCD display. I read "LCD INIT 2, 3, 4, 5, 23, 24" in the manual, but also saw Pins 23, 24,25, 26, 17, 18 in the example in Silicon Chip (May '14), & did pause to think which example had what limitations. No real drama with that situation, but it did create a tangent in thoughts for a bit. Other benefit of suggesting a default, is when the users ask for help, they would be working from a known starting point, and a complete in print example to be starting from. Cheers Phil. Edit. PS, the word "Default" is a bad choice of wording, "Suggested for beginners" is more the term, just too long winded. |
||||
viscomjim Guru ![]() Joined: 08/01/2014 Location: United StatesPosts: 925 |
Just want to say a BIG thank you Geoff. Your incredible efforts are so appreciated. I am still in awe that someone like you spends the time and effort to create something so awesome and you keep making it better and better. I wish I could somehow show you the smiles on just the few people I have turned on to your amazing mmbasic. You have literally opened a whole new world to me and many others since the 150 beta days. So long story short, THANK YOU!!! YOU ARE LEGEND!!!! |
||||
Geoffg![]() Guru ![]() Joined: 06/06/2011 Location: AustraliaPosts: 3282 |
Thanks Jim, I'm glad that you are enjoying it. Thanks also Phil, I will put some suggestions into the manual. P.S. It is encouraging to see the manual being read in detail! Geoff Geoff Graham - http://geoffg.net |
||||
Phil23 Guru ![]() Joined: 27/03/2016 Location: AustraliaPosts: 1667 |
I can't quite makes sense of page 6. [Code] All these chips are in a TQFP surface mount package with a lead pitch of 0.5mm. They are reasonably easy to solder and can be mounted on a carrier board (for example futurlec.com part code 64PINTQFP) or the Explore64 which is a breadboard compatible PCB or the Explore100 which is designed to mate with a 5" display (see http://geoffg.net/micromite.html for examples). [/code] Looked at both products on futurelec and expected to see something resembling a LCD backpack from the wording above. Explore100, I searched for that but it doesn't seem to return hits. Presume it's something on the drawing board? Or is it Peter's Ultimate Backpack. Also a link to Geoff's Excellent Video on YouTube. Just spent a few minutes searching for that video Geoff, it does not seem to be getting into the search engines. Even using it's title, Google returns, and a search within search within YouTube doesn't find it. Only 1067 views of the video, should be getting heaps more. 1 Explore 64, & 3 SnadPics here as a result of that video. Cheers |
||||
lew247![]() Guru ![]() Joined: 23/12/2015 Location: United KingdomPosts: 1702 |
Geoff Any chance of a SERIALFLUSH command? like used in ESPBasic or is there a simpler way to clear the serial buffer than closing then opening it again? |
||||
Grogster![]() Admin Group ![]() Joined: 31/12/2012 Location: New ZealandPosts: 9589 |
Read everything from the buffer into a dummy string, then clear the string. Both involve a couple of commands. Close & reopen serial port = 2 commands, suck everything out of the buffer into a string, then clear the string = 2 commands. You could easily do this in a sub: Sub SERIALFLUSH (PN) Local D$ 'Define D$ only for use by this subroutine(ignores any D$ in main code) D$=Input$(LOC(PN),PN) 'Suck everything in buffer out End Sub As D$ is a "Local Variable" in that it only ever exists within that subroutine, as soon as you exit the sub, the contents of D$ from within that subroutine vanish into the big data void in the sky. ![]() You call it with: SERIALFLUSH (1) to flush handle #1 - change that number for whatever handle you need to clear. Not tried this, but should work fine. Smoke makes things work. When the smoke gets out, it stops! |
||||
nibbler Newbie ![]() Joined: 18/04/2013 Location: CanadaPosts: 11 |
Since this thread touches on documentation can I humbly suggest having an errata available to the latest version of the Micromite User Manual? Occasionally when a new version of firmware is released an error in the manual is discovered. This is usually mentioned here in the forum but it's quite easy to miss the post especially if it's in a thread that I'm not too interested in. I find the user manual to be well written and most helpful, as is the addendum. Alan |
||||
lew247![]() Guru ![]() Joined: 23/12/2015 Location: United KingdomPosts: 1702 |
Geoff Is there an arg$ function? or will there be in future versions? It would make trying to use specific sections of comma separated items so much simpler if there was. |
||||
MicroBlocks![]() Guru ![]() Joined: 12/05/2012 Location: ThailandPosts: 2209 |
A little tweak to the INSTR function would allow for simple retrievement of a value in delimited strings. [code] INSTR( [start-position,] stringsearched$, string-pattern$ ) [/code] Adding a count parameter would give the position of the nth occurance of the pattern you look for. [code] INSTR( [start-position,] stringsearched$, string-pattern$, count ) [/code] You would then use it like: [code] StartOfSixthField = INSTR(data$, ",", 5) [/code] If you then want the eighth field you do either: [code] StartOfEighthField = INSTR(data$, ",", 7) [/code] or more efficiently: [code] StartOfEighthField = INSTR(StartOfSixthField, data$, ",", 2) [/code] But this can all be done by a simple subroutine/function also. Microblocks. Build with logic. |
||||
Geoffg![]() Guru ![]() Joined: 06/06/2011 Location: AustraliaPosts: 3282 |
Thanks, a simple and I believe useful extension. I will add it to the TODO list for further investigation. Geoff Geoff Graham - http://geoffg.net |
||||
Geoffg![]() Guru ![]() Joined: 06/06/2011 Location: AustraliaPosts: 3282 |
I don't have any plans for this. It is something that you can easily create in BASIC and encapsulate in an ordinary subroutine or function. Geoff Geoff Graham - http://geoffg.net |
||||
WhiteWizzard Guru ![]() Joined: 05/04/2013 Location: United KingdomPosts: 2932 |
@Geoff Please can you clarify if v5.2 on your website is the latest version of MMBasic (and no other 'later' v5.2's were released on TBS). If there are other versions of v5.2; do they each report different numbers on PRINT MM.VER? All my units here report MM.VER = v5.02. The reason for clarifying is that PeterM has written a CFunction for me that just will not run on my units and he asked me to check I have the latest v5.2 Thanks, WW |
||||
Geoffg![]() Guru ![]() Joined: 06/06/2011 Location: AustraliaPosts: 3282 |
Yes, 5.2 on my website is the latest. Updating the firmware without incrementing the version number is a big no no but I thought I could slip it under the wire. The change was small and soon after the original release and incrementing the version number for such a trivial change seemed excessive. Sorry for the confusion but I don't think the change has any bearing on your issue. Geoff Geoff Graham - http://geoffg.net |
||||
panky![]() Guru ![]() Joined: 02/10/2012 Location: AustraliaPosts: 1114 |
Geoff, I print out the manuals when released as I find it much simpler to have these to one side when programming (even read through them in bed much to my wifes disgust ![]() Two requests please: 1. Could you include the MMBasic version number in the footer of each page of the manual? 2. For ammendments to the manuals, could you look at partial pages so that a print of several pages could accomplish updating although this may screw up page numbering? I realise this means a lot of mucking about when you do the edits but it would save having to re-print the entire manual for each release. Lastly, for font #5, is the decimal point also a valid character? If so, the manual needs to indicate this in the section on fonts. My huge congratulations on the product and the doco - quality that many, MANY companies would kill for. Thanks, Doug. ... almost all of the Maximites, the MicromMites, the MM Extremes, the ArmMites, the PicoMite and loving it! |
||||
Phil23 Guru ![]() Joined: 27/03/2016 Location: AustraliaPosts: 1667 |
Is it possible in future to report MM.Ver in the format 5.02.000 or 5.02.B01 etc? I got a little lost for a bit on which ones had which Beta's & so on. Not actually sure what's on the Snad's I have here as I don't recall when I flashed them. Phil |
||||
Page 1 of 2 ![]() ![]() |
![]() |
![]() |
The Back Shed's forum code is written, and hosted, in Australia. | © JAQ Software 2025 |