Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 13:06 13 Jan 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 : CMM2 V6.00.00 beta9 Onwards

Author Message
disco4now

Guru

Joined: 18/12/2014
Location: Australia
Posts: 1083
Posted: 05:44am 28 Nov 2025
Copy link to clipboard 
Print this post

V6.00.00Beta9 Onwards
The 6.00.00 Beta releases will now be via Geoff's Colour Maximite 2 page.
The CMM_Beta.zip contains the firmware,the latest manual, the release notes and the ARMCFunctions.h file for the CMM2.
There will be a separate post to capture any feedback on the manual.
This link will always point to the latest version of CMM_Beta.zip.
CMM 6.00.00 CMM2_Beta.zip

Link to previous 6.00.00 Betas (Pre Beta9)

Footnote added 2025-11-28 15:59 by disco4now
Manual Feedback in this thread.

Footnote added 2026-01-09 14:36 by disco4now
Link to Beta11 Update
F4 H7FotSF4xGT
 
disco4now

Guru

Joined: 18/12/2014
Location: Australia
Posts: 1083
Posted: 05:46am 28 Nov 2025
Copy link to clipboard 
Print this post

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

CMM2V6.00.00b9.zip

OPTION FLASH [0-6] now valid.

INSTR and LINSTR functions now disable OPTION ESCAPE while reading the regex expression.

Updated ARMCFunctions.h
option_s structure updated to match flash.h

Resolved error where OPTION SEARCH PATH was incorrectly limited to 64 chars and error message reported 23 chars max. Now allows 127 Chars and reports 127 in error message.

OPTION F11 and OPTION F12
Resolved issue where OPTION F11 and OPTION F12 reported maximum length of 23 Chars if they exceeded 63. Error message now reports 63 as maximum allowed.
If OPTION F11 or OPTION F12 were longer than 24 chars then the function key buffer was exceeded and pressing F11 or F12 produced incorrect strings. MAXKEYLEN increased to 64 to resolve this.
If OPTION F11 or OPTION F12 were longer than 40 chars then buffer was exceed when listed by OPTION LIST.Resolved by increasing the size of the buffer to 64 when printing these.

INTERRUPT command implemented.
SETPIN pin, CIN [, option] now allows options 1-5 to configure the pins.
Fixed 1msec timer CFuncmSec not calling CSUBs.
The LOG CSUB now works on the CMM2.

New Command LMID(array%(),start [,num])=string$
inserts string$ into the longstring array%() at position start replacing num existing characters. If num isn't specified then it is calculated from the length of string$. num can be 0 in which case string$ is inserted at the position specified.

MID$ command changed so the length to be replaced can be 0 - i.e. insert the new string at the position specified.

Corrected chars(220-223) in Font 4 "Fnt_10x16.h": see https://www.thebackshed.com/forum/ViewTopic.php?FID=16&TID=18046

Error Handling Fixes.
Fixed error handling when GOSUB references non existent label:
Fixed error handling so that an error thrown in the normal thread of execution is not visible in an interrupt.
Fixed error handling so that an error thrown in an interrupt is not visible in the normal thread.
Edited 2025-11-28 16:00 by disco4now
F4 H7FotSF4xGT
 
disco4now

Guru

Joined: 18/12/2014
Location: Australia
Posts: 1083
Posted: 10:39pm 28 Nov 2025
Copy link to clipboard 
Print this post

CMM2 V6.00.00 Beta10 Update
Fixes error in the LINSTR function.
The download CMM2_Beta.zip has also been updated.
CMM2V6.00.00b10.zip
F4 H7FotSF4xGT
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10845
Posted: 11:02pm 28 Nov 2025
Copy link to clipboard 
Print this post

  Quote  Fixes error in the LINSTR function.

My bug or yours?
 
disco4now

Guru

Joined: 18/12/2014
Location: Australia
Posts: 1083
Posted: 12:52am 29 Nov 2025
Copy link to clipboard 
Print this post

Copy error at my end, you are OK. I notice LINSTR and INSTR now allow size to be either float on integer so will update.
What do you think about adding MM.ESC to show if OPTION ESCAPE is set.Also
OPTION ESCAPE [OFF] as the syntax so you can turn it OFF/ON as desired. i.e.
OPTION ESCAPE as is to turn it on.
OPTION ESCAPE OFF to turn it off.
This could help to make INCLUDES and Libraries and Unit tests OPTION ESCAPE aware.
Edited 2025-11-29 10:54 by disco4now
F4 H7FotSF4xGT
 
PeteCotton

Guru

Joined: 13/08/2020
Location: Canada
Posts: 593
Posted: 05:19am 29 Nov 2025
Copy link to clipboard 
Print this post

Thank you!
 
hhtg1968
Senior Member

Joined: 25/05/2023
Location: Germany
Posts: 172
Posted: 05:29pm 20 Dec 2025
Copy link to clipboard 
Print this post

this time I code a little paint program for my cmm2 g2v2. I user 6.00.00beta8. the following problem accurs:

I think that a memory error will accure if you call this commands very often (not recursive). I tested it with a little program:

dim integer n=0
cls
do
inc n
gui cursor on
print @(0,0)n
gui cursor off
loop

and after 879 loops the system says kind of "not enough internal memory". i use a cmm2 g2 v2.

is this a bug/ correct? or have I a mistaken thinking?

i will download beta10 and try it again...
 
disco4now

Guru

Joined: 18/12/2014
Location: Australia
Posts: 1083
Posted: 10:40pm 20 Dec 2025
Copy link to clipboard 
Print this post

  hhtg1968 said  I user 6.00.00beta8. the following problem occurs:

The error is also in beta10 as well. The issue is memory is allocated for the cursor twice for GUI CURSOR ON but only 1 is cleared for GUI CURSOR OFF

You can probably work around it by only using GUI CURSOR ON once and then use
GUI CURSOR HIDE and GUI CURSOR SHOW to control it.

I have now fixed it for beta 11 that I will try to get out today.

Gerry
F4 H7FotSF4xGT
 
hhtg1968
Senior Member

Joined: 25/05/2023
Location: Germany
Posts: 172
Posted: 08:20am 21 Dec 2025
Copy link to clipboard 
Print this post

thanks a lot. after reading the manual I think that the commands hide and show are more obvious anyway.
 
hhtg1968
Senior Member

Joined: 25/05/2023
Location: Germany
Posts: 172
Posted: 08:29am 21 Dec 2025
Copy link to clipboard 
Print this post

... for the purposes in my program...
 
hhtg1968
Senior Member

Joined: 25/05/2023
Location: Germany
Posts: 172
Posted: 09:06am 02 Jan 2026
Copy link to clipboard 
Print this post

hi and happy new year...

in another forum i posted a problem that may base on cursor screen area caching.

here is a link:
to the error explanation

perhaps the note here is on the right place...
 
hhtg1968
Senior Member

Joined: 25/05/2023
Location: Germany
Posts: 172
Posted: 09:08am 02 Jan 2026
Copy link to clipboard 
Print this post

wrong link?

i hope the right now:

https://www.thebackshed.com/forum/ViewTopic.php?FID=16&TID=18493

link
 
disco4now

Guru

Joined: 18/12/2014
Location: Australia
Posts: 1083
Posted: 04:32am 09 Jan 2026
Copy link to clipboard 
Print this post

CMM2 V6.00.00 Beta11 Update
The CMM2_Beta.zip download package on Geoff's website is now updated with Beta11.
CMM 6.00.00 CMM2_Beta.zip
Summary of changes.

Command Tokens are now 16BIT so restriction on 128 commands is lifted.
Several new Commands and Functions from the Picomites now migrated to CMM2

GUI CURSOR [ON|OFF] Memory leak fixed.

New function keys at the command prompt:
 SHIFT+F5  Clears the Display Console and the screen on an attached VT100
 SHIFT+F6  Sets the VT100 terminal size to match the Display Console

 Additional Programmable Function Keys:
 Shift+F3  (Option F15)
 Shift+F4  (Option F16)
 Shift+F7  (Option F19)
 Shift+F8  (Option F20)

OPTION DISPLAY (no parameters)
Sets the VT100 terminal size to match the Display Console.

New Commands:
SYNC [period] [,units] The SYNC command allows the user to implement very precisely timed.repeated actions (1-2 microseconds accuracy).
BIT(var%,bitno)=value  Sets a specific bit (0-63) in an integer variable. ‘value’ can be 0 or 1.
BYTE(var$,byteno)=value Sets a specific byte in a string to an integer value. ‘value’ can be in the range 0-255. The byteno can be between 1 and the current length of the string variable.
FLAG(n%)=Value Sets a bit in a system flag register. n% can be between 0 and 63 (i.e. 64 flag bits are available). Value can be 0 or 1
FLAGS=value Sets all bits in the system flag register to the value specified.

New ARRAY command handles Integer,Float and Strings. MATH [ADD|SET|INSERT|SLICE] remain for backward compatibility.
ARRAY ADD in(), value ,out()
ARRAY SET value, array()
ARRAY INSERT targetarray(),[d1] [,d2] [,d3] [,d4] [,d5],sourcearray()
ARRAY SLICE sourcearray(),[d1] [,d2] [,d3] [,d4] [,d5]destinationarray()

BEZIER x%(),y%() [,n][,colour]
Draws a Bezier curve with an unlimited number of control points. ‘x%()’ and ‘y%()’ are single dimension integer arrays holding the coordinates of the control points. The Bezier curve always starts at the first control point. The arrays must have the same dimensionality.The optional parameter ‘n’ defines how many control points to use for the plot.If omitted the size of ‘x%()’ and ‘y%()’ determine the number. n must be >=2 and <= the array size.The optional parameter ‘colour’ defines the colour to plot the curve (defaults to white).

FILL x, y, fillcolour[,bordercolour]
Fills and area of a display with a colour.
When used without the optional ‘bordercolour’ the command will read the
colour at position ‘x’,’y’ in the display and then fills the area from that point
where the current colour is the same with the new colour ‘fillcolour’.
If the optional ‘bordercolour’ is specified, the ‘fillcolour’ will replace whatever
colour is already there until it hits the ‘bordercolour’ specified. Uses less memory than PIXEL FILL which remains for backward compatibility.

REDIM [PRESERVE]array1(dimensions) [,array2(dimensions]…[,arrayn(dimensions]
This resizes the array(s) specified with the dimensions given.
If the optional sub-command PRESERVE is specified the existing data will be
copied into the new array.
The new array can be bigger or smaller than the original.
In the case of string arrays, the original LENGTH specified is preserved.
Note that for multi-dimensional arrays only the last dimension can be changed
if PRESERVE is used.
When using PRESERVE there must be enough memory available for both the
original array and its changed version to exist simultaneously. The memory
allocated to the original array is freed as the command exits.

MATH SINC x_in(), y_in(), n, m, window, freq, x_out(),y_out()
MATH SINC x_in(), y_in(), n,window, freq, x_out(), y_out()
Applies a windowed sinc filter to smooth or interpolate coordinate data.
A sinc filter is an ideal low-pass filter that removes high-frequency noise while
preserving the signal shape. It is particularly good for resampling
(interpolation).

New Functions:
LINPUT(array%(),fnbr,nbr)  Returns number of characters read.  
MM.FLAGS  Returns the value of system flag register. 
FLAG(n%) Returns the value (0 or 1) of the bit n% (0-63) in the system flag register 
BIT(var%,bitno)  Returns the value of a specific bit (0-63) in an integer variable (0 or 1).
BYTE(var$,byteno) Returns the integer value of a specific byte in a string (0-255).  

OPTION ESCAPE [OFF]  Allow escaping of special characters in strings.
MM.ESC Returns 1 if OPTION ESCAPE is set, else 0.

PEEK(CFUNCADDR cfun) Returns address of a CSUB or CFUNCTION
PEEK(BP n%)  Returns byte at address n% and increments n% to point to next byte.
PEEK(SP n%)  Returns short at address n% and increments n% to point to next short.
PEEK(WP n%)  Returns word at address n% and increments n% to point to next word.

CFunctions as well as CSubs now supported.
CFUNCTION
END CFUNCTION
ARMCFunctions.h updated to match new options.


Obsolete function POS now fully removed.
MM.POS Returns current position of cursor on the line to replace its functionality if required.

GPS command updated to allow increased resolution for Latitude and Longitude.
see https://www.thebackshed.com/forum/ViewTopic.php?TID=15035

ARC command updated to faster version from Picomites

INSTR and LINSTR now accept the size parameter as either a float or integer.

PWM will set output pin to OC(Open Collector/Drain) if frequency given as -ve number.

ADC START now accepts additional parameters that allow mapping of the the output data to a desired range.
ADC START array1!()[,array2!()] [,array3!()]
[,C1min] [,C1max] [,C2min][,C2max] [,C3min] [,C3max]

ADC TRIGGER now allows a timeout value to be set. 'timeout' is the number of ADC samples to take before abandoning the wait for the trigger condition. Setting a value equal to the frequency of the sampling would give a timeout of 1 second.
ADC TRIGGER,channel,level[,timeout]

DRAW3D Function corrected and now works as expected.
The DRAW3D function can be used to determine the boundaries of a 3D object and could be used to define an area to be erased before re-drawing.

DRAW3D(XMIN n)'returns the leftmost x coordinate of a box bounding the render of 3d object n on the screen
DRAW3D(XMAX n)'returns the rightmost x coordinate of a box bounding the render of 3d object n on the screen
DRAW3D(YMIN n)'returns the upper y coordinate of a box bounding the render of 3d object n on the screen
DRAW3D(YMAX n)'returns the lower y coordinate of a box bounding the render of 3d
object n on the screen
DRAW3D(DISTANCE n)'Returns distance to the object n ???
DRAW3D(X n)'returns the x coordinate in the world current used to display 3D object n
DRAW3D(Y n)'returns the y coordinate in the world current used to display 3D object n
DRAW3D(Z n)'returns the y coordinate in the world current used to display 3D object n

TEMPR now allow default timeout to be changed to allow for slower devices.
TEMPR( pin [,timeout])    
TEMPR START pin [,precision] [,timeout]


Manual updated.
Edited 2026-01-09 14:45 by disco4now
F4 H7FotSF4xGT
 
elk1984

Senior Member

Joined: 11/07/2020
Location: United Kingdom
Posts: 232
Posted: 02:48pm 11 Jan 2026
Copy link to clipboard 
Print this post

  disco4now said  CMM2 V6.00.00 Beta11 Update
The CMM2_Beta.zip download package on Geoff's website is now updated with Beta11.
CMM 6.00.00 CMM2_Beta.zip


Hi there.  Is it also linked from the pages on Geoff's site, or do I use the link above?  I can't find any mention beyond v5.07.01 at https://geoffg.net/maximite.html


Thanks


Trevor.
Edited 2026-01-12 00:49 by elk1984
 
phil99

Guru

Joined: 11/02/2018
Location: Australia
Posts: 2924
Posted: 08:28pm 11 Jan 2026
Copy link to clipboard 
Print this post

It is on Geoff's site at the bottom of the page.
  Other Downloads said  Colour Maximite 2 Beta Test Version of the Firmware
This is the latest test version of the next firmware release (may include bugs).
 
elk1984

Senior Member

Joined: 11/07/2020
Location: United Kingdom
Posts: 232
Posted: 01:22pm 12 Jan 2026
Copy link to clipboard 
Print this post

  phil99 said  It is on Geoff's site at the bottom of the page.
  Other Downloads said  Colour Maximite 2 Beta Test Version of the Firmware
This is the latest test version of the next firmware release (may include bugs).


Thanks - spotted it now.
 
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