Home
JAQForum Ver 20.06
Log In or Join  
Active Topics
Local Time 01:33 07 May 2024 Privacy Policy
Jump to

Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.

Forum Index : Microcontroller and PC projects : Micromite MMBasic V5.3 Beta 3

     Page 1 of 3    
Author Message
Geoffg

Guru

Joined: 06/06/2011
Location: Australia
Posts: 3165
Posted: 09:57pm 22 Nov 2016
Copy link to clipboard 
Print this post

Here we go again, another version another day.

I have just finished Micromite MMBasic V5.3 Beta 3 and am looking for any brave souls who would like to give it a run. Actually this beta should be rather bug free as most of the changes have been bug fixes.

The Change Log has the full listing but the new features include:
- The LIBRARY SAVE command does not require the library area to be cleared first - so you can now incrementally add code to the library.
- Faster updating of SPI LCD display panels.
- New USB driver (functionality remains the same).
- New GUI AREA control makes it easier to construct your own controls in BASIC.
- You can now hook into each key press on the NUMBERBOX and TEXTBOX controls so you can control what the user can enter.
- A number of updates to GUI controls including flashing LEDs and multiple lines in captions.

This version can be downloaded from: http://geoffg.net/Downloads/Micromite/Micromite_5.3_Beta_3.zip

These changes should also find their way into the MZ versions by Peter and Kon.

As before, please let me know if you find any bugs.

Thanks,
Geoff

Geoff Graham - http://geoffg.net
 
sagt3k

Guru

Joined: 01/02/2015
Location: Italy
Posts: 313
Posted: 10:39pm 22 Nov 2016
Copy link to clipboard 
Print this post

Hi Geoff
EVAL function ....incredible ...
Thanks
Sagt3k
 
paceman
Guru

Joined: 07/10/2011
Location: Australia
Posts: 1328
Posted: 02:22am 23 Nov 2016
Copy link to clipboard 
Print this post

That's quite a list Geoff, thanks yet again for all you put in implementing people's requests, adding capability and squashing the bugs.

I mainly still use the MX170 and MM2 and for that I think the LIBRARY SAVE change will be particularly useful; I haven't used the library as much as I should have because of SAVE/DELETE/SAVE requirement. A faster screen load is always a plus too (thanks also to MatherP here) and no doubt there will be plenty of users for all the MM+ changes.

Thanks again,
Greg
 
robert.rozee
Guru

Joined: 31/12/2012
Location: New Zealand
Posts: 2291
Posted: 02:52am 23 Nov 2016
Copy link to clipboard 
Print this post

darn, that blasted bug in the editor is still there:
http://www.thebackshed.com/forum/forum_posts.asp?TID=8701&PN=4

geoff: what was the flash overhead of adding the EVAL function? i see it is not in the MX170 version.


cheers,
rob :-)
 
Geoffg

Guru

Joined: 06/06/2011
Location: Australia
Posts: 3165
Posted: 02:56am 23 Nov 2016
Copy link to clipboard 
Print this post

  robert.rozee said   what was the flash overhead of adding the EVAL function? i see it is not in the MX170 version.

Not a lot but I want to keep as much flash free as possible for bug fixes.
Geoff Graham - http://geoffg.net
 
robert.rozee
Guru

Joined: 31/12/2012
Location: New Zealand
Posts: 2291
Posted: 03:06am 23 Nov 2016
Copy link to clipboard 
Print this post

personally, i'd be happy to swap DISTANCE for EVAL, but i guess others would disagree!


cheers,
rob :-)
 
piclover
Senior Member

Joined: 14/06/2015
Location: France
Posts: 134
Posted: 05:02am 23 Nov 2016
Copy link to clipboard 
Print this post

  Geoffg said  
  robert.rozee said   what was the flash overhead of adding the EVAL function? i see it is not in the MX170 version.

Not a lot but I want to keep as much flash free as possible for bug fixes.

Last time I had a look at it (v5.2), the sources still let quite some optimization gains open (by grouping all the error/report strings in a single .c file): there's about 1.5kB of potential gain, IIRC. If that could allow to squeeze EVAL into the MX170, it'd be worth it...Edited by piclover 2016-11-24
 
WhiteWizzard
Guru

Joined: 05/04/2013
Location: United Kingdom
Posts: 2794
Posted: 05:26am 23 Nov 2016
Copy link to clipboard 
Print this post

Thanks Geoff for v5.3. Will test tonight . . .

Peter, Kon - if you're porting it to MZ I will be more than happy to test this too!

Great work with some nice features
For everything Micromite visit micromite.org

Direct Email: whitewizzard@micromite.o
 
kiiid

Guru

Joined: 11/05/2013
Location: United Kingdom
Posts: 671
Posted: 06:48am 23 Nov 2016
Copy link to clipboard 
Print this post

Thanks Geoff, some of the new inclusions are very useful.
As to a MZ port from me, I will not be rushing with one until the final 5.3 is out. Just repeating publicly what I already said earlier - I have no intention to turn the MZ port into a sprint competition who will be first out with it. Focusing much more on quality and features.


http://rittle.org

--------------
 
WhiteWizzard
Guru

Joined: 05/04/2013
Location: United Kingdom
Posts: 2794
Posted: 07:29am 23 Nov 2016
Copy link to clipboard 
Print this post

@kiiid

That is a sensible approach. I will be testing v5.3 on MX and also Peter's MZ version so this should save you time in the long run.

Keep an eye on feedback
For everything Micromite visit micromite.org

Direct Email: whitewizzard@micromite.o
 
redrok

Senior Member

Joined: 15/09/2014
Location: United States
Posts: 209
Posted: 01:27pm 23 Nov 2016
Copy link to clipboard 
Print this post

Hi Geoff;

I just burned the new V5.3b3 into an MX170.

I have been writing a GPS handler for use as a 1PPS
time standard.
This works nicely in V5.2

I loaded this program in V5.3b3 and I get this message.
What is this and what does it mean?

I suspect there is a small bug somewhere that my code
is finding.
CPU exception #7 at address 0x9D02A56D
Processor restarted
I'm curious as to why uMITE itself didn't find anything
wrong. I have to assume this problem runs deeper.

1. This was loaded using XMODEM
2. Reburned V5.2, and my program works fine.
3. My program uses a lot of TeraTerm ANSI screen codes.
4. Burned V5.3b3 again.
4. I hand entered the classic "HELLO" program and it worked fine.
5. I saved and loaded this with XMODEM and it worked fine.
(I thought it might have been a problem with XMODEM.)

I can send you a copy of my GPS handler if you need it.
(I'm almost ashamed to show it as I'm just playing with the
nmea strings right now but it does work.)

Thanks!
redrokEdited by redrok 2016-11-24
 
Geoffg

Guru

Joined: 06/06/2011
Location: Australia
Posts: 3165
Posted: 03:04pm 23 Nov 2016
Copy link to clipboard 
Print this post

This is not good.

An exception happens when the CPU finds itself in an impossible position (in this case trying to access non existing memory) so it just reboots itself. MMBasic never gets to see the problem until after the reboot. It is always caused by a bug in MMBasic itself, not your program.

The address of the instruction that caused the exception (0x9D02A56D) places it in the routine that retrieves a character from a serial COM port queue however a quick look at that routine does not reveal anything wrong. Can you tell me what com port your program is using?
Geoff Graham - http://geoffg.net
 
redrok

Senior Member

Joined: 15/09/2014
Location: United States
Posts: 209
Posted: 03:23pm 23 Nov 2016
Copy link to clipboard 
Print this post

Hi Geoff
  Geoffg said   This is not good.

An exception happens when the CPU finds itself in an impossible position (in this case trying to access non existing memory) so it just reboots itself. MMBasic never gets to see the problem until after the reboot. It is always caused by a bug in MMBasic itself, not your program.

The address of the instruction that caused the exception (0x9D02A56D) places it in the routine that retrieves a character from a serial COM port queue however a quick look at that routine does not reveal anything wrong. Can you tell me what com port your program is using?
Yes, the GPS is on com:2

LINE INPUT #2,NMEA$

Here is the program.
GPS.bas
Note to anyone, this is only a test program.

redrok
 
Geoffg

Guru

Joined: 06/06/2011
Location: Australia
Posts: 3165
Posted: 05:30pm 23 Nov 2016
Copy link to clipboard 
Print this post

Interesting. It seems to be a compiler issue. That part of the code was compiled with the MIPS16 attribute (to reduce the size) and it causes the exception. When I remove the attribute it runs fine.

I am very reluctant to blame anything on the compiler but this seems one of the rare cases.

Could you please try the attached Beta 4. The only change is removing the MIPS16 attribute from that part of MMBasic. If it works for you I will post it as a proper release.

2016-11-24_032820_Micromite_5.3B4.zip

Thanks for finding this Duane. Your clear description helped a lot.

Geoff
Geoff Graham - http://geoffg.net
 
TassyJim

Guru

Joined: 07/08/2011
Location: Australia
Posts: 5914
Posted: 05:46pm 23 Nov 2016
Copy link to clipboard 
Print this post

Redrock's program runs OK on an Explore64 with beta 3 MMPlus firmware.
The only changes I made to the program was to rem out all the
'SETPIN 2, DIN,PULLDOWN' etc
because of the different pin numbers in the Plus.
I also removed the MM.PROMPT sub but having it in made no difference - the program still ran OK.


Jim
VK7JH
MMedit   MMBasic Help
 
redrok

Senior Member

Joined: 15/09/2014
Location: United States
Posts: 209
Posted: 04:31am 24 Nov 2016
Copy link to clipboard 
Print this post

Hi Geoff;
  Geoffg said   Interesting. It seems to be a compiler issue. That part of the code was compiled with the MIPS16 attribute (to reduce the size) and it causes the exception. When I remove the attribute it runs fine.

I am very reluctant to blame anything on the compiler but this seems one of the rare cases.

Could you please try the attached Beta 4. The only change is removing the MIPS16 attribute from that part of MMBasic. If it works for you I will post it as a proper release.

2016-11-24_032820_Micromite_5.3B4.zip

Thanks for finding this Duane. Your clear description helped a lot.

Geoff
Bingo, that works.

Thanks for the new revision!

TassyJim; I apologize for the crude GPS program, but it's just experimental now.

Geoff: I see you have the EVAL function in the Plus version.
I was the one who started the thread that evolved into EVAL.
Alas, I cant use it in the MX170 though.
Is there any chance EVAL would fit into the MX170?

As I recall, the original "Tiny Basic" essentially did it in the INPUT statement.
I have to say, this was very useful and convenient.

A long time ago in Dr. Dobbs Journal there was a Microsoft Basic program
that did what Tiny Basic did to the INPUT statement. I assume similarly
to EVAL.

I've lost this. Do you know where I can find this?
Or, a uMITE program to do it or EVAL?

Thanks
redrok
 
Geoffg

Guru

Joined: 06/06/2011
Location: Australia
Posts: 3165
Posted: 05:27am 24 Nov 2016
Copy link to clipboard 
Print this post

When 5.3 has stabilised I will re look at EVAL.
Sorry, I don't have an answer to your other questions.
Geoff Graham - http://geoffg.net
 
WhiteWizzard
Guru

Joined: 05/04/2013
Location: United Kingdom
Posts: 2794
Posted: 06:17am 24 Nov 2016
Copy link to clipboard 
Print this post

Using v5.3B3 on 64pinner.

Via USB (D+/D-) to TeraTerm.

Little program loop to display Time$ on TFT (with TEXT), in a continuos DO..LOOP with a PAUSE 1 in the loop.

Set OPTION AutoRun ON. When Power reapplied and connect to MM (and as expected I have to restart TeraTerm), the program works fine (i.e. time is displayed on TFT) BUT ctrl-C not responding!

Can someone else please try this . . . .

UPDATE: Just tried a different USB lead and all works fine

Will test some more Edited by WhiteWizzard 2016-11-25
For everything Micromite visit micromite.org

Direct Email: whitewizzard@micromite.o
 
WhiteWizzard
Guru

Joined: 05/04/2013
Location: United Kingdom
Posts: 2794
Posted: 11:46pm 06 Dec 2016
Copy link to clipboard 
Print this post

@Geoffg

With v5.3 B3 on a 28 pinner (the SC BackPack on a 2.8" version), when I use GUI CALIBRATE, it does not show the 'success/failure' message on the TFT.

EDIT: Using OPTION LCDPANEL ILI9341,L, . . .

I know it is working well on the MM+, but is it easy to add this feature to the Standard MM too; or will it just use up too much precious space?

WWEdited by WhiteWizzard 2016-12-08
For everything Micromite visit micromite.org

Direct Email: whitewizzard@micromite.o
 
Geoffg

Guru

Joined: 06/06/2011
Location: Australia
Posts: 3165
Posted: 12:04am 07 Dec 2016
Copy link to clipboard 
Print this post

  WhiteWizzard said  I know it is working well on the MM+, but is it easy to add this feature to the Standard MM too; or will it just use up too much precious space

Sorry, it is MM+ only. I'm trying to conserve the MX170's flash for bug fixes and really important things.

Geoff
Geoff Graham - http://geoffg.net
 
     Page 1 of 3    
Print this page
© JAQ Software 2024