|
Forum Index : Microcontroller and PC projects : CMM2 V6.00.00 beta9 Onwards
| Author | Message | ||||
| disco4now Guru Joined: 18/12/2014 Location: AustraliaPosts: 1083 |
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: AustraliaPosts: 1083 |
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: AustraliaPosts: 1083 |
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 KingdomPosts: 10845 |
My bug or yours? |
||||
| disco4now Guru Joined: 18/12/2014 Location: AustraliaPosts: 1083 |
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: CanadaPosts: 593 |
Thank you! |
||||
| hhtg1968 Senior Member Joined: 25/05/2023 Location: GermanyPosts: 172 |
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: AustraliaPosts: 1083 |
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: GermanyPosts: 172 |
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: GermanyPosts: 172 |
... for the purposes in my program... |
||||
| hhtg1968 Senior Member Joined: 25/05/2023 Location: GermanyPosts: 172 |
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: GermanyPosts: 172 |
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: AustraliaPosts: 1083 |
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 KingdomPosts: 232 |
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: AustraliaPosts: 2924 |
It is on Geoff's site at the bottom of the page. |
||||
| elk1984 Senior Member Joined: 11/07/2020 Location: United KingdomPosts: 232 |
Thanks - spotted it now. |
||||
| The Back Shed's forum code is written, and hosted, in Australia. | © JAQ Software 2026 |