Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 12:53 25 Nov 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 eXtreme (MMX) V5.07.00 betas

     Page 1 of 4    
Author Message
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9110
Posted: 01:49pm 27 Aug 2023
Copy link to clipboard 
Print this post

V5.07.00b0

100 and 144 pin


Micromite.X.production.zip
 

64 pin

Micromite.X.production.zip


Use LIST COMMANDS and LIST FUNCTIONS to see the complete range of what is available.

Highlights are:
Many bug fixes as found in CMM2 and PicoMite testing
Support for 16-bit parallel ILI9341, OTM8009A, and NT35510 displays (as per the ArmmiteF407
Previous command recall at the command prompt
Support for * shortcut to run programs at the command prompt
Support for MM.CMDLINE$
Support for EXECUTE, CALL, and CALL() commands and function
Huge performance improvements for more complex programs
MM.INFO(EXISTS FILE)
MM.INFO(EXISTS DIR)
Lots of other changes as per PicoMite (e.g. MID$ command functionality)

Still to-do
Major rework of audio to bring up to CMM2 standard
Major rework of file handling to bring up to CMM2 standard
Major rework of Sprites
Find a decent FFT algorithm as the Microchip IDE doesn't appear to support complex.h
Bug fixes as found
 
Pluto
Guru

Joined: 09/06/2017
Location: Finland
Posts: 357
Posted: 03:00pm 27 Aug 2023
Copy link to clipboard 
Print this post

Just loaded to a 64 pin MMX. Some problems to start. Noticed that it needs 115200 instead of the "normal" 38400 baud.

Fred
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9110
Posted: 03:27pm 27 Aug 2023
Copy link to clipboard 
Print this post

Oops forgot to mention that. Will always be 115200 default going forward
 
athlon1900
Regular Member

Joined: 10/10/2019
Location: Austria
Posts: 48
Posted: 05:55pm 27 Aug 2023
Copy link to clipboard 
Print this post

Thanks Peter  

What I would wish for is a free choice of SPI port for the displays, such as the SD card.
Have a 100-pin chip where spi2 is defective. spi1 and spi3 are ok.
That would be great.  
 
Pluto
Guru

Joined: 09/06/2017
Location: Finland
Posts: 357
Posted: 07:34am 29 Aug 2023
Copy link to clipboard 
Print this post

Peter,
testing on a 64pin device with only a ILI9341 SPI LCD attached. (No SD card).

option list
OPTION CPU 252
OPTION AUTORUN ON
OPTION LCDPANEL ILI9341, LANDSCAPE, 13, 15, 18
OPTION TOUCH 53, 48
OPTION HEARTBEAT ON
> ?mm.ver
5.0701
> ?mm.device$
Micromite eXtreme, Microchip ID 0x67209053


I am having problems with OPTION AUTORUN ON. From time to time this OPTION disappears when the power has been switched off. It should be a permanent option! No problems with the other options.

I am pleased to see that the MMX platform is getting maintenance as I have many of the 64, 100 and 144 chips in my boxes.

For programming the chips I am using Geoff's MicroBridge. It takes normally a few attempts for each chip before the uploading starts.

Thanks!

Pluto
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9110
Posted: 08:29am 29 Aug 2023
Copy link to clipboard 
Print this post

The only things that set autorun to off are the OPTION RESET, the OPTION AUTORUN command and the NEW command
 
disco4now

Guru

Joined: 18/12/2014
Location: Australia
Posts: 896
Posted: 11:02am 29 Aug 2023
Copy link to clipboard 
Print this post


MMX Testing so far



Can these be included to help with automated tests
MM.INFO(NBRPINS)
MM.INFO(LINE)


TIMER is a float in latest systems, is integer in MMX
SETPIN pin,CIN does not allow options [1-5]

LIBRARY SAVE incorrectly copies normal code to Library

This snippet from the Micromite LIBRARY SAVE command is where it should skip a blank the line.This is still tuned for the old line format which had a 3 characters as a header.This currently will only match a comment line which has two spaces before the comment character. i.e.

' This will be kept
'So will this
' this will be skipped.

A command with no parameter but a trailing comment could be omitted. e.g.
CLS 'Clear the screen

**************** Current code **************************
if(*p == '\'' && !InQuote) {       // found a modern remark char
              skipline(p);
              if(*(m-3) == 0x01) {      
                   m = TempPtr;  // if the comment was the only thing on the line don't copy the line at all
                  continue;
              } else
                  p--;
          }


The test for a comment for the Picomite and Armmite F4 is as below and seems to work OK.
if((*(m-1) == 0x01) ||  ((*(m-2) == 0x01) && (*(m-1) == 0x20))){
This picks up a line starting with a comment. Multiple spaces are reduced to a single space so a comment indented using spaces is also matched, you just need to ensure the first character is actually a space and not a command token.


******** New code in Picomite and Armmite F4 ***************
if(*p == '\'' && !InQuote) {                      // found a modern remark char
              skipline(p);
              //PIntHC(*(m-3)); PIntHC(*(m-2)); PIntHC(*(m-1)); PIntHC(*(m));
              //MMPrintString("\r\n");
              //if(*(m-3) == 0x01) {        //Original condition from Micromites
/* Check to see if comment is the first thing on the line or its only preceded by spaces. Spaces have been reduced to a single space so we treat a comment with 1 space before it as a comment line to be omitted.
*/    
              if((*(m-1) == 0x01) ||  ((*(m-2) == 0x01) && (*(m-1) == 0x20))){    
                  m = TempPtr; // if the comment was the only thing on the line don't copy the line at all
                  continue;
              } else
                  p--;
          }

Latest F4 Latest H7
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9110
Posted: 12:31pm 29 Aug 2023
Copy link to clipboard 
Print this post

Not quite sure what you are saying on the library

Does it ?
1 work but is inefficient
2 not work

What is MM.INFO(LINES), is it really needed for testing? In the CMM2 it is used associated with include files
Can't see it in the ArmmiteF407 code and don't have a variable LineCount in the MMX which is what the CMM2 returns

Timer I can change but a bit pointless as it is only accurate to a mSec on the MMX
Edited 2023-08-29 22:33 by matherp
 
Pluto
Guru

Joined: 09/06/2017
Location: Finland
Posts: 357
Posted: 01:24pm 29 Aug 2023
Copy link to clipboard 
Print this post

Can confirm. Program comments are not saved in the Library.

Pluto
 
disco4now

Guru

Joined: 18/12/2014
Location: Australia
Posts: 896
Posted: 10:31pm 29 Aug 2023
Copy link to clipboard 
Print this post

  matherp said  Not quite sure what you are saying on the library

Does it ?
1 work but is inefficient
2 not work

What is MM.INFO(LINES), is it really needed for testing? In the CMM2 it is used associated with include files
Can't see it in the ArmmiteF407 code and don't have a variable LineCount in the MMX which is what the CMM2 returns

Timer I can change but a bit pointless as it is only accurate to a mSec on the MMX


? MM.INFO$(LINE)
Returns the current line number as a string. Returns UNKNOWN if called
from the command prompt and LIBRARY if current line is within the
Library. Assists in diagnostics while unit testing.

I was hoping to use it to predict what lineno an error should report. A call to MM.INFO$(LINE) before running the error test will indicate where it is located in the program.( I presume this is why Tom originally got it in the Picomites. It is in F4 as well)

For the Library  - Update -- See post below

Timer OK as is.

Regards
Gerry
Edited 2023-08-30 15:53 by disco4now
Latest F4 Latest H7
 
disco4now

Guru

Joined: 18/12/2014
Location: Australia
Posts: 896
Posted: 05:55am 30 Aug 2023
Copy link to clipboard 
Print this post

Hi Peter,

Library issue

I have looked at the LIBRARY SAVE again and there is an issue where comment lines are not identified and are copied to the library. Also its possible some genuine commands are incorrectly omitted. This bit of nonsense code demonstrates the issue.


print "hello I am first line"
a$="4 comment lines follow -should not get to library"
' First comment
    'First comment
'First comment
'First comment
a$="check line numbers and labels OK"
500 ' First comment
501 CLS
502 CLS 'Comment
LABEL1:
LABEL2: 'comment
LABEL3:CLS
LABEL4:CLS 'comment
LABEL5: CLS

a$="REM follows - should not get to Library"

rem secondcomment

'a$="\myfile\"

a$="No comment lines above this No Blank line below"

a$="Line with multiple spaces below is kept"
 
a$="command with following 'comment should be in library"
PRINT "HELLO number 2 in library"            'My comment
PRINT 'My comment
a$="multple commands on one line follow"
a$="test":a$="test2":a$="test3"
a$="multple commands on one line follow plus trailng 'comment"
a$="test":a$="test2":a$="test3"  'My comment
CLS
CLS'comment
CLS 'comment
CLS RGB(RED) 'comment
INC c
INC c 'comment


A LIBRARY SAVE and LIBRARY LIST ALL on Picomite and F4 yields the following.
comments are stripped and blank lines omitted. Other commands copied to library.

> library list all
Print "hello I am first line"
a$="4 comment lines follow -should not get to library"
a$="check line numbers and labels OK"
500
501 CLS
502 CLS
LABEL1:
LABEL2:
LABEL3: CLS
LABEL4: CLS
LABEL5: CLS
a$="REM follows - should not get to Library"
a$="No comment lines above this No Blank line below"
a$="Line with multiple spaces below is kept"

a$="command with following 'comment should be in library"
Print "HELLO number 2 in library"
Print
a$="multple commands on one line follow"
a$="test":a$="test2":a$="test3"
a$="multple commands on one line follow plus trailng 'comment"
a$="test":a$="test2":a$="test3"
CLS
CLS
CLS
CLS RGB(RED)
Inc c
Inc c



The MMX yields this.
The following issues exist with the code saved in the library.
* The first and second lines are not saved into the library
* 502 CLS 'comment  - does not make it to the library
* LABEL5: CLS       - only the LABEL5: makes it to the library
*                   - blank lines make it to the library



>library list all
a$="check line numbers and labels OK"
500
501 CLS
LABEL1:
LABEL2:
LABEL3: CLS
LABEL4: CLS
LABEL5:
a$="No comment lines above this No Blank line below"

a$="Line with multiple spaces below is kept"

a$="command with following 'comment should be in library"
Print "HELLO number 2 in library"
Print
a$="multple commands on one line follow"
a$="test":a$="test2":a$="test3"
a$="multple commands on one line follow plus trailing 'comment"
a$="test":a$="test2":a$="test3"
CLS
CLS
CLS
CLS RGB(RED)
Inc c
Inc c



The fix outline above was included in Picomite and F4 to resolve this.
Also LIBRARY LIST ALL not yet in the MMX.


Regards
Gerry
P.S.  Any chance of the F5 key at the command prompt sending the VT100 home and clear screen sequence as it does in the Picomites and F4. I find its very useful when playing at the command prompt to get a clean screen again.
Edited 2023-08-30 16:08 by disco4now
Latest F4 Latest H7
 
TassyJim

Guru

Joined: 07/08/2011
Location: Australia
Posts: 6098
Posted: 06:57am 30 Aug 2023
Copy link to clipboard 
Print this post

I finally dusted of my MMX and updated the firmware.

In OPTION LIST
Can we have the firmware version please?


Jim
VK7JH
MMedit   MMBasic Help
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9110
Posted: 07:20am 30 Aug 2023
Copy link to clipboard 
Print this post

Gerry

I've fixed the issues as you report. Have you had a chance to think about the data statements in library issue? Just tested the PicoMite and it works the same as MMX
i.e. it doesn't work A read statement in the library fails to read from a data statement in the library. I assume the same is the case on the ArmmiteF407?

Jim: will do
 
disco4now

Guru

Joined: 18/12/2014
Location: Australia
Posts: 896
Posted: 08:19am 30 Aug 2023
Copy link to clipboard 
Print this post

  matherp said  Gerry
A read statement in the library fails to read from a data statement in the library. I assume the same is the case on the ArmmiteF407?

Yes F4 is the same.
Currently READ in the library will only find DATA in the library when there is a RESTORE first that set the pointer to the data, in which case is will find it in either the main or library. RESTORE by itself  will set the pointer to the Library if executed in the library.

The original restriction of a READ in the library only searching the main is still there if no RESTORE is done.
I think it could be made to work where a READ first looks in its own area, would need a flag to say that its should honour the RESTORE if one has been executed.

Manual currently says

If you want to read from DATA statements in the library you must use the
RESTORE command before the first READ command. This will reset the
pointer to the library space.

Is this enough?
Latest F4 Latest H7
 
TassyJim

Guru

Joined: 07/08/2011
Location: Australia
Posts: 6098
Posted: 08:25am 30 Aug 2023
Copy link to clipboard 
Print this post

mm.info$( function is repeated many times
> list functions
*              +              -              /              <
<<             <=             <>             =              =<
=>             >              >=             >>             \
^              Abs(           ACos(          And            As
Asc(           ASin(          Atan2(         Atn(           Baudrate(
Bin$(          Bin2str$(      Bound(         Call(          Choice(
Chr$(          Cint(          Cos(           CtrlVal(       Cursor(
Cwd$           Date$          DateTime$(     Deg(           Dir$(
Else           Eof(           Epoch(         Eval(          Exp(
Field$(        Fix(           For            GetScanLine(   GoSub
GoTo           GPS(           Hex$(          Inkey$         Input$(
Instr(         Int(           INV            JSON$(         Keydown
LCase$(        LCompare(      Left$(         Len(           LGetStr$(
LInStr(        LLen(          Loc(           Lof(           Log(
Math(          Max(           Mid$(          Min(           MM.Device$
MM.HRes        MM.I2C         MM.I2C2        MM.Info$(      MM.Info$(
MM.Info$(      MM.Info$(      MM.Info$(      MM.Info$(      MM.Info$(
MM.Info$(      MM.INFO(       MM.Ver         MM.VRes        MM.Watchdog
Mod            MsgBox(        Not            Oct$(          Or
OWSEARCH(      Peek(          Pi             Pin(           Pixel(
Port(          Pos            Pulsin(        Rad(           RGB(
Right$(        Rnd            Rnd(           Sgn(           Sin(
Space$(        SPI(           SPI2(          SPI3(          sprite(
Sqr(           Step           Str$(          Str2bin(       String$(
Tab(           Tan(           TEMPR(         Then           Time$
Timer          To             Touch(         UCase$(        Until
Val(           While          Xor            
Total of 133 functions and operators
>


Jim
VK7JH
MMedit   MMBasic Help
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9110
Posted: 01:28pm 30 Aug 2023
Copy link to clipboard 
Print this post

V5.07.000b1

for 100/144 pin chips

Micromite.X.production.zip


for 64-pin chips


Micromite.X.production.zip

Fixes
LIST FUNCTION
LIBRARY SAVE

ADDITIONS/CHANGES
MATH FFT ( as per PicoMite manual)
LIBRARY LIST ALL
OPTION LIST new shows version
MM.INFO(NBRPINS)
TIMER function now returns a float but still only accurate to 1mSec
Edited 2023-08-30 23:29 by matherp
 
disco4now

Guru

Joined: 18/12/2014
Location: Australia
Posts: 896
Posted: 11:37am 31 Aug 2023
Copy link to clipboard 
Print this post

Hi Peter,

Testing Continued


? MATH (CRC8 a$,len(a$),&h31,,,1,1)
? MATH (CRC16 a$,len(a$)
? MATH (CRC32 a$,len(a$),,&hffffffff,&hffffffff,1,1)
All return with error
Error : Internal fault (sorry)

Function LGETBYTE(array%(),n) seems not to be implemented.


Regards
Gerry
Latest F4 Latest H7
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9110
Posted: 11:48am 31 Aug 2023
Copy link to clipboard 
Print this post

What is a$?
 
disco4now

Guru

Joined: 18/12/2014
Location: Australia
Posts: 896
Posted: 11:54am 31 Aug 2023
Copy link to clipboard 
Print this post

a$="123456789"
Latest F4 Latest H7
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9110
Posted: 07:00pm 31 Aug 2023
Copy link to clipboard 
Print this post

Thanks Gerry. Trivial one - forgot to enable T_INT as a return from the MATH function.
Will post a new beta tomorrow
Just finishing off an audio upgrade
 
     Page 1 of 4    
Print this page
© JAQ Software 2024