Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 22:04 20 Mar 2026 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 : ALL: LONGSTRING TRIM buffer%(),p% - Restricted to LLEN(buffer%())-1

Author Message
disco4now

Guru

Joined: 18/12/2014
Location: Australia
Posts: 1109
Posted: 02:09am 09 Feb 2023
Copy link to clipboard 
Print this post

░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░         WORK IN PROGRESS CMM2  
░░                Please don't reply to thread       ░░░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░


5.07.02 Bugs (now all added to release notes.
CMM2 Does it have MM.STARTUP

PIcomite 6.00.01betas

TODO /CHECK
load image bmp issue after a LOAD IMAGE "A1.BMP", i got the message : Error : Unsupported BMP header format\\
Save Image CMM2 Issue
CMM2 MM.STARTUP
MOUSE SET now sets the wheel position when enabled for a USB mouse (Picomite)
SPRITE(B function now properly supports all orientations of the sprite)(Picomite)
Sprinte(B
SPRITE Manual

STRUCTURES
Structures Implemented in Beta12 DONE.
RAYCASTER
I2CLCD Command
BITSTREAM Enhancement
example

ON ERROR RESTART
Updated HUMID command extra parameter missing form H7 manual

MODE 18 and OPTION DISPLAY in Option LIST
Update manual with MODE RESOLUTION and font.

STEPPER command?

A number of command and function mappings used by the CMM2 were previously also
applied to strings within MMBasic. This is now resolved.
HUMID is not changed to BITBANG DHT22 inside a string.
DHT22 is not changed to BITBANG DHT22 inside a string.
HEX$( OCT$( BIN$( not changed to BASE$([2|8|16] inside a string.
MM.INFO$ is not changed to  MM.INFO inside a string.
MM.INFO( is not changed to M.INFO$( inside a string.
ERASE is not changed to CLEAR VARS inside a string.
I2C I2C2 I2C3 SPI SPI2 are not changed inside a string.


Peter,
While copying some Picomite code to the CMM2 I think I see a potential problem with


void MIPS16 SaveProgramToFlash(unsigned char *pm, int msg)
... about line 6009
// while (*p != 0xff)
while(!(p[0] == 0xff && p[1] == 0xff)){ //guard against potential 0xFF in a token




CMM2 V6.00.00 Beta13 Update
Fix issue where an explicit END command was required at the end of a program when OPTION AUTORUN ON was used.
Fixes two bugs in stuctures as per Picomite 6.02.01RC8

CMM2 V6.00.00 Beta12 Update
CMM2 Beta12 Upsdate
Structures implemented.
Separate manual in CMM2.zip

BITSTREAM now a command (still available as BITBANG BITSTREAM)
WS2812 now a command (still available as BITBANG WS2812)
GPS checksum validation improved.

New functionality for German keyboard characters that don't have an ascii representation by giving high value codes 200 upwards.

VAR command restored, was missing with move to 16Bit commands.

MOUSE(D,0) Fixed issue where the Double Click report was not cleared when read.

Manual Updates.
These existing functions added to manual.
MOUSE(S,0) Reads current wheel value.
MOUSE(Z,0) Reads wheel value and resets it to 0 
References to MMEdit updated.
References to FontTweak updated.
Some missing MATH Commands/Functions added.
Reference to Stuctures and MMBasic Structures.pdf added
Commands and Functions that are structure aware have an indicator
in the manual to signify this. e.g.



CMM2.zip Updates.

MMBasic Structures.pdf added to CMM2 download zip.
Fontweak.zip added to CMM2 download zip.

TODO:

             

CMM2 V6.00.00 Beta11 Update
CMM2 V6.00.00 Beta11 Update
Command Tokens are now 16BIT so restriction on 128 commands is lifted.


CMM2 V6.00.00 Beta10 Update
Fixed error in LINSTR function

V6.00.00Beta9 Onwards
V6.00.00Beta9

CMM2 V6.00.00 Beta9 Update
The firmware is also attached here in case you need to regress.

Link to previous 6.00.00 Betas (Pre Beta9)

CMM2 V6.00.00 Beta8 Update
REGEX added/updated

CMM2 V6.00.00 Beta7 Update
Recompiled with STMCUBEIDE 2.0 and some STM32Drivers compiled for size to fix USBKEYBOARD issue.

CMM2 V6.00.00 Beta6 Update
CMM2 V6.00.00 Beta6 Update

CMM2 V6.00.00 Beta5 Update

CMM2V6.00.00.bin.zip


TODO/CHECK
----------

OPEN COM1:9600,INV is sticky.Once INV is set it is not cleared when COM is closed.
Fixed by clearing as part of setupuart()

Fixes bug in day$(now) function
Fix for ERASE var not recovering memory for array and string variables. (as per picomite)

SETPIN pinno,CIN [,option]      -Added as per PicoMite

MM.INFO(OPTION VCC) added returns current value for VCC

MM.INFO(BOOT) will return the reason for the last MMBasic Restart.
“Power On”, ”Reset Switch”, “MMBasic Reset”, ”CPU RESTART”, “Watchdog”, “EXECUTE Timout” or “HEAP Restart”.
These could be written to a log file in MM.STARTUP to see the history of an unattended device.

OPTION NOCHECK [ON|OFF] added.
I2C READ allows >255 chars if INT or Float array used.(as per Picomite)

PIN("TEMP") adjusted to calculate using correct value of 130 degrees for REV V chips.

BITBANG becomes DEVICE as per picomite latest release.(automatically converted)
DEVICE BITSTREAM
DEVICE LCD
DEVICE HUMID
DEVICE WS2812

Automatic length adjustment for string constants.
Where a constant string is less that 16 characters no heap will be used. The data is stored within the pre-allocated table for the variable definitions.
String variables defined with a LENGTH of less than 16 (was previously < 8) are also stored within the variable definition and require no heap allocation.

TEMPR(Pinno [,timeout]) 'new optional parameter timeout to override the default (200mSec) to allow for slow devices.
TEMPR START pinno [,resolution(0-3)] [,timeout]  'new optional  parameter timeout to override the default (100, 200, 400, or 800mSec) to allow for slow devices.

CMM2 V6.00.00 Pre Beta5 Recap
TRIM$

CMM2 V6.00.00 Beta5 Update
Edited 2026-03-19 19:59 by disco4now
F4 H7FotSF4xGT
 
Print this page


To reply to this topic, you need to log in.

The Back Shed's forum code is written, and hosted, in Australia.
© JAQ Software 2026